mirror of
https://gitlab.gnome.org/GNOME/gimp.git
synced 2025-10-06 01:12:40 +02:00
Compare commits
64 Commits
alxsa-expo
...
9243da158f
Author | SHA1 | Date | |
---|---|---|---|
|
9243da158f | ||
|
ebd6e64dc8 | ||
|
4768a4283d | ||
|
fe4a698928 | ||
|
d8d73266bc | ||
|
356c2baec5 | ||
|
aea7042aa1 | ||
|
97944a5415 | ||
|
a5182a010f | ||
|
9c2c5ff183 | ||
|
f09007507f | ||
|
2b91551f4e | ||
|
cbe56ff388 | ||
|
7cec3f52b9 | ||
|
81c67e5614 | ||
|
67fa72a94e | ||
|
6587256c3a | ||
|
ad9dbf2c8b | ||
|
2f0bfc569b | ||
|
36330a271a | ||
|
baa4825880 | ||
|
8c910c2b6b | ||
|
a025cfe41b | ||
|
41035c7589 | ||
|
7275569079 | ||
|
dfafb7c6f2 | ||
|
25d1b7f8c3 | ||
|
0edf615333 | ||
|
daf23e1a50 | ||
|
b633b4b9c7 | ||
|
cfa3fd6bb7 | ||
|
669685d1d8 | ||
|
f032153596 | ||
|
13639b1d3d | ||
|
eb0bfe7bdb | ||
|
393ca59e79 | ||
|
3a698a05a1 | ||
|
f4a7da1ee3 | ||
|
bb9d8df855 | ||
|
78e68efd06 | ||
|
2fa82d51ee | ||
|
f223dae9fe | ||
|
9daf5d2e5d | ||
|
789af76a32 | ||
|
f9ba343558 | ||
|
014aa5ae6f | ||
|
47eac319b1 | ||
|
3bde6195f6 | ||
|
b0689f565b | ||
|
1e46438ced | ||
|
2b32496195 | ||
|
de62139894 | ||
|
f774ad7f16 | ||
|
f53a843c3d | ||
|
46d9a09698 | ||
|
355d695607 | ||
|
714e9041d8 | ||
|
24c8f86c85 | ||
|
f50145c155 | ||
|
7f8298467b | ||
|
23a9758a7b | ||
|
0af9261980 | ||
|
77d25750a7 | ||
|
67f067183d |
259
.gitlab-ci.yml
259
.gitlab-ci.yml
@@ -13,7 +13,7 @@ spec:
|
||||
test_pipeline:
|
||||
description: 'Pipelines used only for testing'
|
||||
options:
|
||||
- GIMP_CI_MESON_GCC #trigger the Debian GCC build (rare usefulness)
|
||||
- GIMP_CI_MESON_CLANG #trigger the Debian Clang build (rare usefulness)
|
||||
- GIMP_CI_RASTER_ICONS #trigger the Debian Clang build without vector icons (rare usefulness)
|
||||
- GIMP_CI_CPPCHECK #trigger cppcheck (static code analysis)
|
||||
- none
|
||||
@@ -30,7 +30,7 @@ workflow:
|
||||
##################################################
|
||||
|
||||
## 1. On MERGE REQUESTS, the following are triggered:
|
||||
## - Abbreviated Linux Clang build
|
||||
## - Abbreviated Linux build
|
||||
## - Building quality tests (static code analysis)
|
||||
## - clang-format (static code analysis)
|
||||
## - Execution tests (dynamic code analysis)
|
||||
@@ -44,7 +44,7 @@ workflow:
|
||||
# GitLab is quite sensitive about rules 'if' order so be careful
|
||||
|
||||
## 3. On COMMITS except tags.
|
||||
## - Linux Clang build
|
||||
## - Linux build
|
||||
## - Building quality tests (static code analysis)
|
||||
## - Execution tests (dynamic code analysis)
|
||||
## - Source tarball
|
||||
@@ -84,6 +84,7 @@ workflow:
|
||||
image: $CI_REGISTRY_IMAGE:build-debian-${DEB_VERSION}-${RUNNER}
|
||||
variables:
|
||||
DEB_VERSION: "bookworm"
|
||||
UMFPACK: libumfpack5
|
||||
RUNNER: "x86_64_v3"
|
||||
# Common cloning procedure
|
||||
GIT_DEPTH: "1"
|
||||
@@ -102,24 +103,27 @@ stages:
|
||||
- analysis
|
||||
- distribution
|
||||
|
||||
## AppImage CI (Debian) ##
|
||||
.debian:
|
||||
|
||||
## Common GNU/Linux 64-bit CI (Debian) ##
|
||||
.debian-nonreloc:
|
||||
extends: .default
|
||||
rules:
|
||||
- if: '$CI_MERGE_REQUEST_LABELS =~ /.*Package:AppImage.*/'
|
||||
interruptible: true
|
||||
- if: '$GIMP_CI_APPIMAGE != null || "$[[ inputs.distribution_pipeline ]]" =~ /.*GIMP_CI_APPIMAGE.*/'
|
||||
- <<: *CI_MERGE
|
||||
- <<: *CI_COMMIT
|
||||
variables: {}
|
||||
- if: '$GIMP_CI_MESON_CLANG != null || "$[[ inputs.test_pipeline ]]" =~ /.*GIMP_CI_MESON_CLANG.*/'
|
||||
variables:
|
||||
CC: clang
|
||||
CXX: clang++
|
||||
CC_LD: lld
|
||||
CXX_LD: lld
|
||||
TOOLCHAIN: "clang lld"
|
||||
VARIANT: -clang
|
||||
- if: '$GIMP_CI_RASTER_ICONS != null || "$[[ inputs.test_pipeline ]]" =~ /.*GIMP_CI_RASTER_ICONS.*/'
|
||||
variables:
|
||||
MESON_OPTIONS: "-Dvector-icons=false"
|
||||
VARIANT: "-raster"
|
||||
- <<: *CI_RELEASE
|
||||
parallel:
|
||||
matrix:
|
||||
- RUNNER: [aarch64, x86_64_v3]
|
||||
tags:
|
||||
- $RUNNER
|
||||
variables:
|
||||
CC: "clang"
|
||||
CXX: "clang++"
|
||||
CC_LD: lld
|
||||
CXX_LD: lld
|
||||
before_script:
|
||||
- export GIMP_PREFIX="${CI_PROJECT_DIR}/_install-${RUNNER}"
|
||||
timeout: 30m
|
||||
@@ -138,13 +142,12 @@ stages:
|
||||
- export GI_TYPELIB_PATH="${GIMP_PREFIX}/${LIB_DIR}/${LIB_SUBDIR}girepository-1.0${GI_TYPELIB_PATH:+:$GI_TYPELIB_PATH}"
|
||||
- printf "\e[0Ksection_end:`date +%s`:environ\r\e[0K\n"
|
||||
|
||||
deps-debian:
|
||||
extends: .debian
|
||||
deps-debian-nonreloc:
|
||||
extends: .debian-nonreloc
|
||||
stage: dependencies
|
||||
image: quay.io/buildah/stable
|
||||
variables:
|
||||
GIT_STRATEGY: none
|
||||
PKGCONF_RELOCATABLE_OPTION: '-Dpkgconfig.relocatable=true'
|
||||
script:
|
||||
- export BUILDAH_FORMAT=docker
|
||||
- export STORAGE_DRIVER=vfs
|
||||
@@ -158,16 +161,15 @@ deps-debian:
|
||||
- echo "RUN apt-get install -qq -y --no-install-recommends ca-certificates" >> Dockerfile
|
||||
## Build-time only dependencies
|
||||
- echo "RUN apt-get install -qq -y --no-install-recommends \\" >> Dockerfile
|
||||
- echo "appstream
|
||||
- echo "${TOOLCHAIN:-build-essential}
|
||||
appstream
|
||||
bison
|
||||
clang
|
||||
desktop-file-utils
|
||||
flex
|
||||
gi-docgen
|
||||
git
|
||||
gobject-introspection
|
||||
libgtk-3-bin
|
||||
lld
|
||||
meson
|
||||
valac
|
||||
xsltproc" >> Dockerfile
|
||||
@@ -194,6 +196,7 @@ deps-debian:
|
||||
libgtk-3-dev
|
||||
libgudev-1.0-dev
|
||||
libheif-dev
|
||||
$LIBHEIF_PLUGINS
|
||||
libjson-glib-dev
|
||||
libjxl-dev
|
||||
liblcms2-dev
|
||||
@@ -209,7 +212,7 @@ deps-debian:
|
||||
librsvg2-dev
|
||||
libsuitesparse-dev
|
||||
libtiff-dev
|
||||
libumfpack5
|
||||
$UMFPACK
|
||||
libunwind-dev
|
||||
libwebp-dev
|
||||
libwmf-dev
|
||||
@@ -226,10 +229,12 @@ deps-debian:
|
||||
- echo "RUN printf \"\e[0Ksection_start:`date +%s`:environ[collapsed=true]\r\e[0KPreparing build environment\n\"" >> Dockerfile2;
|
||||
- echo "ENV PKG_CONFIG_PATH=\"${GIMP_PREFIX}/lib/$([ "$(uname -m)" = 'aarch64' ] && echo "aarch64-linux-gnu/" || echo "x86_64-linux-gnu/")pkgconfig${PKG_CONFIG_PATH:+:$PKG_CONFIG_PATH}\"" >> Dockerfile2;
|
||||
- echo "ENV XDG_DATA_DIRS=\"${GIMP_PREFIX}/share:/usr/share${XDG_DATA_DIRS:+:$XDG_DATA_DIRS}\"" >> Dockerfile2;
|
||||
- echo "ENV CC=\"$CC\"" >> Dockerfile2;
|
||||
- echo "ENV CXX=\"$CXX\"" >> Dockerfile2;
|
||||
- echo "ENV CC_LD=\"$CC_LD\"" >> Dockerfile2;
|
||||
- echo "ENV CXX_LD=\"$CXX_LD\"" >> Dockerfile2;
|
||||
- if [ "$VARIANT" = "-clang" ]; then
|
||||
echo "ENV CC=\"$CC\"" >> Dockerfile2;
|
||||
echo "ENV CXX=\"$CXX\"" >> Dockerfile2;
|
||||
echo "ENV CC_LD=\"$CC_LD\"" >> Dockerfile2;
|
||||
echo "ENV CXX_LD=\"$CXX_LD\"" >> Dockerfile2;
|
||||
fi
|
||||
- echo "ENV CLICOLOR_FORCE=\"1\"" >> Dockerfile2;
|
||||
- echo "RUN printf \"\e[0Ksection_end:`date +%s`:environ\r\e[0K\n\"" >> Dockerfile2;
|
||||
# Build some dependencies
|
||||
@@ -259,11 +264,88 @@ deps-debian:
|
||||
- gegl/_build-${RUNNER}/config.h
|
||||
expire_in: 2 hours
|
||||
|
||||
gimp-debian-nonreloc:
|
||||
extends: .debian-nonreloc
|
||||
needs: ["deps-debian-nonreloc"]
|
||||
stage: build
|
||||
variables:
|
||||
GIT_SUBMODULE_STRATEGY: recursive
|
||||
script:
|
||||
- *ENVIRON
|
||||
# Check building
|
||||
- printf "\e[0Ksection_start:`date +%s`:gimp_build[collapsed=true]\r\e[0KBuilding GIMP\n"
|
||||
- meson setup _build-${RUNNER} -Dprefix="${GIMP_PREFIX}"
|
||||
-Dfile-plug-ins-test=true
|
||||
$MESON_OPTIONS
|
||||
- cd _build-${RUNNER}
|
||||
- ninja
|
||||
- printf "\e[0Ksection_end:`date +%s`:gimp_build\r\e[0K\n"
|
||||
# Check execution
|
||||
- printf "\e[0Ksection_start:`date +%s`:gimp_test[collapsed=true]\r\e[0KTesting GIMP execution\n"
|
||||
- ninja test
|
||||
- printf "\e[0Ksection_end:`date +%s`:gimp_test\r\e[0K\n"
|
||||
# Check source
|
||||
- printf "\e[0Ksection_start:`date +%s`:gimp_tar[collapsed=true]\r\e[0KChecking GIMP source\n"
|
||||
- if [ $(git diff |wc -l) -ne 0 ]; then
|
||||
printf "ERROR. A generated file was updated without the source:\n";
|
||||
git diff;
|
||||
exit 1;
|
||||
fi
|
||||
- if [ "$VARIANT" != "-clang" ] && [ "$VARIANT" != "-raster" ] && [ "$CI_PIPELINE_SOURCE" != "merge_request_event" ]; then
|
||||
ninja dist > ninja_dist.log 2>&1 || { cat ninja_dist.log; exit 1; };
|
||||
fi
|
||||
- printf "\e[0Ksection_end:`date +%s`:gimp_tar\r\e[0K\n"
|
||||
# Check install
|
||||
- printf "\e[0Ksection_start:`date +%s`:gimp_install[collapsed=true]\r\e[0KChecking GIMP installation\n"
|
||||
- ninja install > ninja_install.log 2>&1 || { cat ninja_install.log; exit 1; };
|
||||
- printf "\e[0Ksection_end:`date +%s`:gimp_install\r\e[0K\n"
|
||||
artifacts:
|
||||
paths:
|
||||
- _install-${RUNNER}/
|
||||
- _build-${RUNNER}/meson-logs/meson-log.txt
|
||||
- _build-${RUNNER}/meson-dist/
|
||||
- _build-${RUNNER}/config.h
|
||||
reports:
|
||||
junit: "_build-${RUNNER}/meson-logs/testlog.junit.xml"
|
||||
expire_in: 2 days
|
||||
|
||||
|
||||
## AppImage CI (Debian) ##
|
||||
.debian:
|
||||
extends: .debian-nonreloc
|
||||
rules:
|
||||
- if: '$CI_MERGE_REQUEST_LABELS =~ /.*Package:AppImage.*/'
|
||||
interruptible: true
|
||||
- if: '$GIMP_CI_APPIMAGE != null || "$[[ inputs.distribution_pipeline ]]" =~ /.*GIMP_CI_APPIMAGE.*/'
|
||||
- <<: *CI_RELEASE
|
||||
parallel:
|
||||
matrix:
|
||||
- RUNNER: [aarch64, x86_64_v3]
|
||||
tags:
|
||||
- $RUNNER
|
||||
variables:
|
||||
#FIXME: remove this variables: key and go back to relying on .default DEB_VERSION on GIMP 3.3/3.4
|
||||
DEB_VERSION: "trixie"
|
||||
UMFPACK: libumfpack6
|
||||
LIBHEIF_PLUGINS: "libheif-plugin-dav1d libheif-plugin-aomenc libheif-plugin-libde265 libheif-plugin-x265 libheif-plugin-j2kdec libheif-plugin-j2kenc"
|
||||
|
||||
deps-debian:
|
||||
extends: .debian
|
||||
stage: !reference [deps-debian-nonreloc, stage]
|
||||
image: !reference [deps-debian-nonreloc, image]
|
||||
variables:
|
||||
GIT_STRATEGY: none
|
||||
PKGCONF_RELOCATABLE_OPTION: '-Dpkgconfig.relocatable=true'
|
||||
script:
|
||||
- !reference [deps-debian-nonreloc, script]
|
||||
artifacts: !reference [deps-debian-nonreloc, artifacts]
|
||||
|
||||
gimp-debian:
|
||||
extends: .debian
|
||||
needs: ["deps-debian"]
|
||||
stage: build
|
||||
stage: !reference [gimp-debian-nonreloc, stage]
|
||||
variables:
|
||||
#FIXME: remove this variables: key and go back to relying on gimp-debian-nonreloc variables: on GIMP 3.3/3.4
|
||||
GIT_SUBMODULE_STRATEGY: recursive
|
||||
script:
|
||||
- *ENVIRON
|
||||
@@ -293,85 +375,6 @@ gimp-debian:
|
||||
expire_in: 2 days
|
||||
|
||||
|
||||
## GNU/Linux 64-bit CIs (Debian) ##
|
||||
.debian-nonreloc:
|
||||
extends: .debian
|
||||
rules:
|
||||
- <<: *CI_MERGE
|
||||
- <<: *CI_COMMIT
|
||||
variables: {}
|
||||
- if: '$GIMP_CI_MESON_GCC != null || "$[[ inputs.test_pipeline ]]" =~ /.*GIMP_CI_MESON_GCC.*/'
|
||||
variables:
|
||||
CC: "cc"
|
||||
CXX: "c++"
|
||||
CC_LD: bfd
|
||||
CXX_LD: bfd
|
||||
VARIANT: "-gcc"
|
||||
- if: '$GIMP_CI_RASTER_ICONS != null || "$[[ inputs.test_pipeline ]]" =~ /.*GIMP_CI_RASTER_ICONS.*/'
|
||||
variables:
|
||||
MESON_OPTIONS: "-Dvector-icons=false"
|
||||
VARIANT: "-raster"
|
||||
- <<: *CI_RELEASE
|
||||
parallel:
|
||||
matrix:
|
||||
- RUNNER: x86_64_v3
|
||||
tags: []
|
||||
|
||||
deps-debian-nonreloc:
|
||||
extends: .debian-nonreloc
|
||||
stage: !reference [deps-debian, stage]
|
||||
image: !reference [deps-debian, image]
|
||||
variables:
|
||||
GIT_STRATEGY: none
|
||||
script:
|
||||
- !reference [deps-debian, script]
|
||||
artifacts: !reference [deps-debian, artifacts]
|
||||
|
||||
gimp-debian-nonreloc:
|
||||
extends: .debian-nonreloc
|
||||
needs: ["deps-debian-nonreloc"]
|
||||
stage: !reference [gimp-debian, stage]
|
||||
variables: !reference [gimp-debian, variables]
|
||||
script:
|
||||
- *ENVIRON
|
||||
# Check building
|
||||
- printf "\e[0Ksection_start:`date +%s`:gimp_build[collapsed=true]\r\e[0KBuilding GIMP\n"
|
||||
- meson setup _build-${RUNNER} -Dprefix="${GIMP_PREFIX}"
|
||||
-Dfile-plug-ins-test=true
|
||||
$MESON_OPTIONS
|
||||
- cd _build-${RUNNER}
|
||||
- ninja
|
||||
- printf "\e[0Ksection_end:`date +%s`:gimp_build\r\e[0K\n"
|
||||
# Check execution
|
||||
- printf "\e[0Ksection_start:`date +%s`:gimp_test[collapsed=true]\r\e[0KTesting GIMP execution\n"
|
||||
- ninja test
|
||||
- printf "\e[0Ksection_end:`date +%s`:gimp_test\r\e[0K\n"
|
||||
# Check source
|
||||
- printf "\e[0Ksection_start:`date +%s`:gimp_tar[collapsed=true]\r\e[0KChecking GIMP source\n"
|
||||
- if [ $(git diff |wc -l) -ne 0 ]; then
|
||||
printf "ERROR. A generated file was updated without the source:\n";
|
||||
git diff;
|
||||
exit 1;
|
||||
fi
|
||||
- if [ "$VARIANT" != "-gcc" ] && [ "$VARIANT" != "-raster" ] && [ "$CI_PIPELINE_SOURCE" != "merge_request_event" ]; then
|
||||
ninja dist > ninja_dist.log 2>&1 || { cat ninja_dist.log; exit 1; };
|
||||
fi
|
||||
- printf "\e[0Ksection_end:`date +%s`:gimp_tar\r\e[0K\n"
|
||||
# Check install
|
||||
- printf "\e[0Ksection_start:`date +%s`:gimp_install[collapsed=true]\r\e[0KChecking GIMP installation\n"
|
||||
- ninja install > ninja_install.log 2>&1 || { cat ninja_install.log; exit 1; };
|
||||
- printf "\e[0Ksection_end:`date +%s`:gimp_install\r\e[0K\n"
|
||||
artifacts:
|
||||
paths:
|
||||
- _install-${RUNNER}/
|
||||
- _build-${RUNNER}/meson-logs/meson-log.txt
|
||||
- _build-${RUNNER}/meson-dist/
|
||||
- _build-${RUNNER}/config.h
|
||||
reports:
|
||||
junit: "_build-${RUNNER}/meson-logs/testlog.junit.xml"
|
||||
expire_in: 2 days
|
||||
|
||||
|
||||
## Flatpak CI (Fedora) ##
|
||||
.flatpak:
|
||||
extends: .default
|
||||
@@ -392,7 +395,8 @@ gimp-debian-nonreloc:
|
||||
MESON_DIST: 0
|
||||
before_script:
|
||||
- export GIMP_PREFIX="${CI_PROJECT_DIR}/_install"
|
||||
timeout: 30m
|
||||
#30min is enough only if no module was updated/rebuilt, we need more time in case of module bumps
|
||||
timeout: 90m
|
||||
|
||||
deps-flatpak:
|
||||
extends: .flatpak
|
||||
@@ -529,10 +533,7 @@ gimp-snap:
|
||||
STORE_OPTION: '-Dms-store=true'
|
||||
parallel:
|
||||
matrix:
|
||||
- RUNNER: windows-aarch64
|
||||
MSYSTEM_PREFIX: clangarm64
|
||||
- RUNNER: win32-ps
|
||||
MSYSTEM_PREFIX: clang64
|
||||
- RUNNER: [windows-aarch64, win32-ps]
|
||||
tags:
|
||||
- $RUNNER
|
||||
variables:
|
||||
@@ -540,8 +541,8 @@ gimp-snap:
|
||||
#meson.build forces non-relocatable .pc. See: https://github.com/mesonbuild/meson/issues/14346
|
||||
PKGCONF_RELOCATABLE_OPTION: '-Dpkgconfig.relocatable=true'
|
||||
before_script:
|
||||
# FIXME:'gimpenv' have buggy code about Windows paths. See: https://gitlab.gnome.org/GNOME/gimp/-/issues/12284
|
||||
- $GIMP_PREFIX = "$PWD\_install-$MSYSTEM_PREFIX".Replace('\', '/')
|
||||
- if (-not $env:MSYSTEM_PREFIX) { $env:MSYSTEM_PREFIX = if ((Get-WmiObject Win32_ComputerSystem).SystemType -like 'ARM64*') { 'clangarm64' } else { 'clang64' }}
|
||||
- $GIMP_PREFIX = "$PWD\_install-$env:MSYSTEM_PREFIX"
|
||||
timeout: 30m
|
||||
|
||||
.win_environ: &WIN_ENVIRON
|
||||
@@ -562,9 +563,9 @@ deps-win:
|
||||
- build\windows\1_build-deps-msys2.ps1
|
||||
artifacts:
|
||||
paths:
|
||||
- _install-$MSYSTEM_PREFIX/
|
||||
- babl/_build-$MSYSTEM_PREFIX/meson-logs/meson-log.txt
|
||||
- gegl/_build-$MSYSTEM_PREFIX/meson-logs/meson-log.txt
|
||||
- _install-*/
|
||||
- babl/_build-*/meson-logs/meson-log.txt
|
||||
- gegl/_build-*/meson-logs/meson-log.txt
|
||||
expire_in: 2 hours
|
||||
|
||||
gimp-win:
|
||||
@@ -580,14 +581,14 @@ gimp-win:
|
||||
- build\windows\2_build-gimp-msys2.ps1
|
||||
artifacts:
|
||||
paths:
|
||||
- gimp-$MSYSTEM_PREFIX/
|
||||
- _build-$MSYSTEM_PREFIX/meson-logs/meson-log.txt
|
||||
- _build-$MSYSTEM_PREFIX/done-dll.list
|
||||
- gimp-*/
|
||||
- _build-*/meson-logs/meson-log.txt
|
||||
- _build-*/done-dll.list
|
||||
# Needed by dist-installer-weekly and dist-store-weekly
|
||||
- _build-$MSYSTEM_PREFIX/config.h
|
||||
- _build-$MSYSTEM_PREFIX/plug-ins/file_associations.list
|
||||
- _build-$MSYSTEM_PREFIX/build/windows/installer/
|
||||
- _build-$MSYSTEM_PREFIX/build/windows/store/
|
||||
- _build-*/config.h
|
||||
- _build-*/plug-ins/file_associations.list
|
||||
- _build-*/build/windows/installer/
|
||||
- _build-*/build/windows/store/
|
||||
expire_in: 2 days
|
||||
|
||||
|
||||
@@ -596,12 +597,10 @@ gimp-win:
|
||||
extends: .win
|
||||
parallel:
|
||||
matrix:
|
||||
- RUNNER: win32-ps
|
||||
MSYSTEM_PREFIX: mingw32
|
||||
- RUNNER: [win32-ps]
|
||||
variables:
|
||||
MSYSTEM_PREFIX: mingw32
|
||||
MINGW_PACKAGE_PREFIX: mingw-w64-i686
|
||||
CC: cc
|
||||
CXX: c++
|
||||
|
||||
deps-win-eol:
|
||||
extends: .win-eol
|
||||
|
@@ -24,7 +24,7 @@ https://gitlab.gnome.org/GNOME/gimp/-/issues/?sort=updated_desc&state=all&label_
|
||||
- "Be considerate and respectful". This is our main rule.
|
||||
E.g. avoid negative emotional writing which only generates more upsetting
|
||||
interactions.
|
||||
- Stay on topic by writting only one bug per report created.
|
||||
- Stay on topic by writing only one bug per report created.
|
||||
- Add full (not cropped) screenshots or other files using the clip button on GitLab. -->
|
||||
|
||||
### Reproduction
|
||||
|
@@ -12,4 +12,4 @@
|
||||
Only human created works please!
|
||||
|
||||
- You can request the devs to allow installable packages to be
|
||||
generated from this MR by writting ~Package: in the comments -->
|
||||
generated from this MR by writing ~Package: in the comments -->
|
||||
|
28
NEWS
28
NEWS
@@ -11,8 +11,6 @@ Overview of Changes from GIMP 3.1.4 to GIMP 3.2-RC1
|
||||
|
||||
Core:
|
||||
|
||||
- Improve Export to SVG of paths by not exporting the DTD and adding
|
||||
an explicit SVG version.
|
||||
- macOS: "Quit" from the dock's right-click menu will now follow our
|
||||
standard Quit procedure, by intercepting the
|
||||
applicationShouldTerminate signal, instead of forcing the
|
||||
@@ -26,16 +24,13 @@ Graphical User Interface:
|
||||
|
||||
- "Monitor Linked Image" and "Discard Link Information" menu items
|
||||
added to Layer menu when the selected layer is a link layer.
|
||||
- Palette Import dialog now display file format filters, both to let
|
||||
users hide irrelevant files from view and to highlight which formats
|
||||
we support.
|
||||
- The GimpColorHexEntry will now update the chosen color as you type.
|
||||
- Use a standard, yet extended, AppMenu on macOS.
|
||||
|
||||
Plug-Ins:
|
||||
|
||||
- Fixed vulnerabilities: ZDI-CAN-27684, ZDI-CAN-27863, ZDI-CAN-27878,
|
||||
ZDI-CAN-27836, ZDI-CAN-27823, ZDI-CAN-27793
|
||||
- macOS: improved handling of plug-in icons which were flashing in
|
||||
macOS dock.
|
||||
- file-compressor: add zip decompression support. This allows support
|
||||
for .hgt.zip files, as well as other formats compressed with zip.
|
||||
|
||||
API:
|
||||
|
||||
@@ -83,22 +78,9 @@ API:
|
||||
* gimp_procedure_add_link_layer_argument
|
||||
* gimp_procedure_add_link_layer_aux_argument
|
||||
* gimp_procedure_add_link_layer_return_value
|
||||
* gimp_link_layer_get_mime_type
|
||||
- New libgimp class: GimpLinkLayer
|
||||
|
||||
Build:
|
||||
|
||||
- CI:
|
||||
* Linux builds ported from unmaintained Kaniko to Buildah.
|
||||
* Colored output and .pdb support for builds of dependency using
|
||||
CMake.
|
||||
* Ability to apply remote patches on dependency builds.
|
||||
* New job "branches-check" to warn about dead branches.
|
||||
- We now build Exiv2 ourselves on Windows as a temporary workaround to
|
||||
issue #12626.
|
||||
- release-stats.sh script updated to generate text directly pastable
|
||||
into our release news.
|
||||
- Improved packages binary caching with ORAS for Flatpak.
|
||||
|
||||
|
||||
Overview of Changes from GIMP 3.1.2 to GIMP 3.1.4
|
||||
=================================================
|
||||
|
@@ -307,13 +307,8 @@ gint n_dialogs_dockable_actions = G_N_ELEMENTS (dialogs_dockable_actions);
|
||||
static const GimpStringActionEntry dialogs_toplevel_actions[] =
|
||||
{
|
||||
{ "dialogs-preferences", GIMP_ICON_PREFERENCES_SYSTEM,
|
||||
#if defined(PLATFORM_OSX)
|
||||
NC_("dialogs-action", "_Settings..."),
|
||||
NC_("dialogs-action", "_Settings..."),
|
||||
#else
|
||||
NC_("dialogs-action", "_Preferences"),
|
||||
NC_("dialogs-action", "_Preferences"),
|
||||
#endif
|
||||
{ NULL },
|
||||
NC_("dialogs-action", "Open the preferences dialog"),
|
||||
"gimp-preferences-dialog",
|
||||
@@ -360,8 +355,6 @@ static const GimpStringActionEntry dialogs_toplevel_actions[] =
|
||||
{ "dialogs-about", GIMP_ICON_HELP_ABOUT,
|
||||
#if defined(G_OS_WIN32)
|
||||
NC_("dialogs-action", "About GIMP"),
|
||||
#elif defined(PLATFORM_OSX)
|
||||
NC_("dialogs-action", "About"),
|
||||
#else /* UNIX: use GNOME HIG */
|
||||
NC_("dialogs-action", "_About"),
|
||||
#endif
|
||||
|
@@ -101,6 +101,6 @@ libappactions = static_library('appactions',
|
||||
include_directories: [ rootInclude, rootAppInclude, ],
|
||||
c_args: '-DG_LOG_DOMAIN="Gimp-Actions"',
|
||||
dependencies: [
|
||||
gegl, gdk_pixbuf, gtk3,
|
||||
gegl, gdk_pixbuf, gtk3, gexiv2,
|
||||
],
|
||||
)
|
||||
|
@@ -44,7 +44,7 @@ libappconfig = static_library('appconfig',
|
||||
include_directories: [ rootInclude, rootAppInclude, ],
|
||||
c_args: '-DG_LOG_DOMAIN="Gimp-Config"',
|
||||
dependencies: [
|
||||
cairo, gegl, gdk_pixbuf, gio, gio_specific, libmypaint,
|
||||
cairo, gegl, gdk_pixbuf, gexiv2, gio, gio_specific, libmypaint,
|
||||
],
|
||||
)
|
||||
|
||||
|
@@ -539,16 +539,16 @@ welcome_dialog_create_welcome_page (Gimp *gimp,
|
||||
/* "globe with meridians" emoticone in UTF-8. */
|
||||
"\xf0\x9f\x8c\x90",
|
||||
_("GIMP website"), "https://www.gimp.org/");
|
||||
welcome_add_link (GTK_GRID (grid), 0, &row,
|
||||
/* "graduation cap" emoticone in UTF-8. */
|
||||
"\xf0\x9f\x8e\x93",
|
||||
_("Tutorials"),
|
||||
"https://www.gimp.org/tutorials/");
|
||||
welcome_add_link (GTK_GRID (grid), 0, &row,
|
||||
/* "open book" emoticone in UTF-8. */
|
||||
"\xf0\x9f\x93\x96",
|
||||
_("Documentation"),
|
||||
"https://docs.gimp.org/");
|
||||
welcome_add_link (GTK_GRID (grid), 0, &row,
|
||||
/* "graduation cap" emoticone in UTF-8. */
|
||||
"\xf0\x9f\x8e\x93",
|
||||
_("Community Tutorials"),
|
||||
"https://www.gimp.org/tutorials/");
|
||||
|
||||
/* XXX: should we add API docs for plug-in developers once it's
|
||||
* properly set up? */
|
||||
@@ -1125,10 +1125,19 @@ welcome_dialog_create_release_page (Gimp *gimp,
|
||||
|
||||
tmp = g_strdup_printf (GIMP_VERSION);
|
||||
if (GIMP_MINOR_VERSION % 2 == 0 && ! strstr (tmp, "RC"))
|
||||
release_link = g_strdup_printf ("https://www.gimp.org/release-notes/gimp-%d.%d.html",
|
||||
GIMP_MAJOR_VERSION, GIMP_MINOR_VERSION);
|
||||
{
|
||||
if (GIMP_MICRO_VERSION == 0 && ! strstr (tmp, "RC"))
|
||||
release_link = g_strdup_printf ("https://www.gimp.org/release-notes/gimp-%d.%d.html",
|
||||
GIMP_MAJOR_VERSION, GIMP_MINOR_VERSION);
|
||||
else
|
||||
release_link = g_strdup_printf ("https://www.gimp.org/release/%d.%d.%d/",
|
||||
GIMP_MAJOR_VERSION, GIMP_MINOR_VERSION,
|
||||
GIMP_MICRO_VERSION);
|
||||
}
|
||||
else
|
||||
release_link = g_strdup ("https://www.gimp.org/");
|
||||
{
|
||||
release_link = g_strdup ("https://www.gimp.org/");
|
||||
}
|
||||
g_free (tmp);
|
||||
|
||||
widget = gtk_link_button_new_with_label (release_link, _("Learn more"));
|
||||
|
@@ -464,12 +464,10 @@ gimp_image_window_constructed (GObject *object)
|
||||
}
|
||||
}
|
||||
|
||||
#ifndef GDK_WINDOWING_QUARTZ
|
||||
/* Docs says that macOS always returns FALSE but we actually want to create
|
||||
* our custom macOS menu.
|
||||
*/
|
||||
#ifdef GDK_WINDOWING_QUARTZ
|
||||
menus_quartz_app_menu (private->gimp);
|
||||
#else
|
||||
use_app_menu = gtk_application_prefers_app_menu (GTK_APPLICATION (private->gimp->app));
|
||||
#endif /* !GDK_WINDOWING_QUARTZ */
|
||||
|
||||
if (use_app_menu)
|
||||
{
|
||||
@@ -482,6 +480,7 @@ gimp_image_window_constructed (GObject *object)
|
||||
gtk_application_set_app_menu (GTK_APPLICATION (private->gimp->app),
|
||||
G_MENU_MODEL (app_menu_model));
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Create the hbox that contains docks and images */
|
||||
private->hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
|
||||
|
@@ -122,6 +122,6 @@ libappdisplay = static_library('appdisplay',
|
||||
include_directories: [ rootInclude, rootAppInclude, ],
|
||||
c_args: '-DG_LOG_DOMAIN="Gimp-Display"',
|
||||
dependencies: [
|
||||
gegl, gtk3, cairo,
|
||||
gegl, gtk3, cairo, gexiv2
|
||||
],
|
||||
)
|
||||
|
@@ -16,6 +16,7 @@ libappfiledata = static_library('appfiledata',
|
||||
cairo,
|
||||
gdk_pixbuf,
|
||||
gegl,
|
||||
gexiv2,
|
||||
libarchive,
|
||||
],
|
||||
)
|
||||
|
@@ -248,7 +248,15 @@ file_open_image (Gimp *gimp,
|
||||
{
|
||||
if (image)
|
||||
{
|
||||
/* Only set the load procedure if it hasn't already been set. */
|
||||
/* Only set the load procedure if it hasn't already been set.
|
||||
* The reason is that we want to know the information of the
|
||||
* inner format, in case loading the file went through
|
||||
* intermediate container file formats procedures, typically
|
||||
* the procedures registered by the file-compressor plug-in.
|
||||
*
|
||||
* E.g. it could be used for our compressed XCF, but also for
|
||||
* commonly compressed formats such as .hgt.zip.
|
||||
*/
|
||||
if (! gimp_image_get_load_proc (image))
|
||||
gimp_image_set_load_proc (image, file_proc);
|
||||
|
||||
@@ -815,7 +823,9 @@ file_open_link_image (Gimp *gimp,
|
||||
layer = gimp_link_layer_new (image, link);
|
||||
gimp_image_add_layer (image, layer, NULL, 0, FALSE);
|
||||
|
||||
gimp_image_set_load_proc (image, gimp_link_get_load_proc (link));
|
||||
if (! gimp_image_get_load_proc (image))
|
||||
gimp_image_set_load_proc (image, gimp_link_get_load_proc (link));
|
||||
|
||||
file_proc = gimp_image_get_load_proc (image);
|
||||
if (mime_type)
|
||||
*mime_type = g_slist_nth_data (file_proc->mime_types_list, 0);
|
||||
@@ -945,14 +955,11 @@ file_open_file_proc_is_import (GimpPlugInProcedure *file_proc)
|
||||
|
||||
proc_name = gimp_object_get_name (file_proc);
|
||||
|
||||
return (g_strcmp0 (proc_name, "gimp-xcf-load") != 0 &&
|
||||
/* Assuming that all file-compressor file are XCF.
|
||||
* So far, this is always true with current file-compressor
|
||||
* implementation.
|
||||
*/
|
||||
g_strcmp0 (proc_name, "file-gz-load") != 0 &&
|
||||
g_strcmp0 (proc_name, "file-bz2-load") != 0 &&
|
||||
g_strcmp0 (proc_name, "file-xz-load") != 0);
|
||||
/* Even when loading through an intermediate container format plug-in
|
||||
* (e.g. file-compressor), the stored procedure shall be the inner
|
||||
* format.
|
||||
*/
|
||||
return (g_strcmp0 (proc_name, "gimp-xcf-load") != 0);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
|
@@ -11,6 +11,6 @@ libappfile = static_library('appfile',
|
||||
include_directories: [ rootInclude, rootAppInclude, ],
|
||||
c_args: '-DG_LOG_DOMAIN="Gimp-File"',
|
||||
dependencies: [
|
||||
gegl, gdk_pixbuf,
|
||||
gegl, gdk_pixbuf, gexiv2
|
||||
],
|
||||
)
|
||||
|
@@ -56,5 +56,6 @@ libappgegl = static_library('appgegl',
|
||||
cairo,
|
||||
gegl,
|
||||
gdk_pixbuf,
|
||||
gexiv2
|
||||
],
|
||||
)
|
||||
|
@@ -414,8 +414,30 @@ gimp_check_updates_callback (GObject *source,
|
||||
{
|
||||
gchar *uri = g_file_get_uri (G_FILE (source));
|
||||
|
||||
#ifndef GIMP_CONSOLE_COMPILATION
|
||||
if (error->domain == G_IO_ERROR &&
|
||||
error->code == G_IO_ERROR_NOT_SUPPORTED)
|
||||
{
|
||||
#ifndef G_OS_WIN32
|
||||
g_message ("%s: loading of %s failed: %s\n\n%s",
|
||||
G_STRFUNC, uri, error->message,
|
||||
_("Perhaps you are missing GIO backends and need "
|
||||
"to install GVFS?"));
|
||||
#else
|
||||
g_message ("%s: loading of %s failed: %s\n\n%s",
|
||||
G_STRFUNC, uri, error->message,
|
||||
_("Perhaps you are missing GIO backends."));
|
||||
#endif /* G_OS_WIN32 */
|
||||
}
|
||||
else
|
||||
{
|
||||
g_printerr ("%s: loading of %s failed: %s\n", G_STRFUNC,
|
||||
uri, error->message);
|
||||
}
|
||||
#else
|
||||
g_printerr ("%s: loading of %s failed: %s\n", G_STRFUNC,
|
||||
uri, error->message);
|
||||
#endif /* GIMP_CONSOLE_COMPILATION */
|
||||
|
||||
g_free (uri);
|
||||
g_clear_error (&error);
|
||||
|
@@ -31,7 +31,7 @@ libappgui = static_library('appgui',
|
||||
include_directories: [ rootInclude, rootAppInclude, ],
|
||||
c_args: '-DG_LOG_DOMAIN="Gimp-GUI"',
|
||||
dependencies: [
|
||||
cairo, gegl, gdk_pixbuf, gio_specific, gtk3
|
||||
cairo, gegl, gdk_pixbuf, gexiv2, gio_specific, gtk3
|
||||
],
|
||||
install: false,
|
||||
)
|
||||
|
@@ -20,6 +20,10 @@
|
||||
#include <gegl.h>
|
||||
#include <gtk/gtk.h>
|
||||
|
||||
#ifdef PLATFORM_OSX
|
||||
#include <AppKit/AppKit.h>
|
||||
#endif
|
||||
|
||||
#include "libgimpbase/gimpbase.h"
|
||||
|
||||
#include "menus-types.h"
|
||||
@@ -52,7 +56,11 @@
|
||||
|
||||
/* private variables */
|
||||
|
||||
static gboolean menurc_deleted = FALSE;
|
||||
static gboolean menurc_deleted = FALSE;
|
||||
|
||||
#ifdef PLATFORM_OSX
|
||||
static Gimp *unique_gimp = NULL;
|
||||
#endif
|
||||
|
||||
|
||||
/* public functions */
|
||||
@@ -542,3 +550,115 @@ menus_get_image_manager_singleton (Gimp *gimp)
|
||||
|
||||
return image_ui_manager;
|
||||
}
|
||||
|
||||
#ifdef PLATFORM_OSX
|
||||
@interface GimpappMenuHandler : NSObject
|
||||
@end
|
||||
|
||||
@implementation GimpappMenuHandler
|
||||
+ (void) gimpShowAbout:(id) sender
|
||||
{
|
||||
GimpUIManager *ui_manager = menus_get_image_manager_singleton (unique_gimp);
|
||||
|
||||
gimp_ui_manager_activate_action (ui_manager, "dialogs", "dialogs-about");
|
||||
}
|
||||
|
||||
+ (void) gimpShowWelcomeDialog:(id) sender
|
||||
{
|
||||
GimpUIManager *ui_manager = menus_get_image_manager_singleton (unique_gimp);
|
||||
|
||||
gimp_ui_manager_activate_action (ui_manager, "dialogs", "dialogs-welcome");
|
||||
}
|
||||
|
||||
+ (void) gimpShowPreferences:(id) sender
|
||||
{
|
||||
GimpUIManager *ui_manager = menus_get_image_manager_singleton (unique_gimp);
|
||||
|
||||
gimp_ui_manager_activate_action (ui_manager, "dialogs", "dialogs-preferences");
|
||||
}
|
||||
|
||||
+ (void) gimpShowInputDevices:(id) sender
|
||||
{
|
||||
GimpUIManager *ui_manager = menus_get_image_manager_singleton (unique_gimp);
|
||||
|
||||
gimp_ui_manager_activate_action (ui_manager, "dialogs", "dialogs-input-devices");
|
||||
}
|
||||
|
||||
+ (void) gimpShowKeyboardShortcuts:(id) sender
|
||||
{
|
||||
GimpUIManager *ui_manager = menus_get_image_manager_singleton (unique_gimp);
|
||||
|
||||
gimp_ui_manager_activate_action (ui_manager, "dialogs", "dialogs-keyboard-shortcuts");
|
||||
}
|
||||
|
||||
+ (void) gimpQuit:(id) sender
|
||||
{
|
||||
GimpUIManager *ui_manager = menus_get_image_manager_singleton (unique_gimp);
|
||||
|
||||
gimp_ui_manager_activate_action (ui_manager, "file", "file-quit");
|
||||
}
|
||||
@end
|
||||
|
||||
void
|
||||
menus_quartz_app_menu (Gimp *gimp)
|
||||
{
|
||||
NSMenu *main_menu;
|
||||
NSMenuItem *app_menu_item;
|
||||
NSMenu *app_menu;
|
||||
NSInteger last_index;
|
||||
NSMenuItem *item;
|
||||
|
||||
g_return_if_fail (GIMP_IS_GIMP (gimp));
|
||||
|
||||
unique_gimp = gimp;
|
||||
|
||||
main_menu = [NSApp mainMenu];
|
||||
app_menu_item = [main_menu itemAtIndex:0];
|
||||
app_menu = [app_menu_item submenu];
|
||||
|
||||
/* On macOS, some standard menu items (e.g. "Hide", "Hide Others", "Show All", "Quit")
|
||||
* are automatically provided by the system rather than created by our application.
|
||||
* For the items we need to customize, we override their default behavior with our own
|
||||
* implementations. In addition, we extend the menu with extra entries specific to
|
||||
* our application’s functionality. */
|
||||
|
||||
[app_menu setTitle:@"GIMP"];
|
||||
|
||||
/* About */
|
||||
item = [app_menu itemAtIndex:0];
|
||||
[item setTarget:[GimpappMenuHandler class]];
|
||||
[item setAction:@selector (gimpShowAbout:)];
|
||||
|
||||
/* Welcome Dialog */
|
||||
item = [[NSMenuItem alloc] initWithTitle:@"Welcome Dialog"
|
||||
action:@selector (gimpShowWelcomeDialog:)
|
||||
keyEquivalent:@""];
|
||||
[item setTarget:[GimpappMenuHandler class]];
|
||||
[app_menu insertItem:item atIndex:1];
|
||||
|
||||
/* Settings */
|
||||
item = [app_menu itemAtIndex:3];
|
||||
[item setTarget:[GimpappMenuHandler class]];
|
||||
[item setAction:@selector (gimpShowPreferences:)];
|
||||
|
||||
/* Input Devices */
|
||||
item = [[NSMenuItem alloc] initWithTitle:@"Input Devices"
|
||||
action:@selector (gimpShowInputDevices:)
|
||||
keyEquivalent:@""];
|
||||
[item setTarget:[GimpappMenuHandler class]];
|
||||
[app_menu insertItem:item atIndex:4];
|
||||
|
||||
/* Keyboard Shortcuts */
|
||||
item = [[NSMenuItem alloc] initWithTitle:@"Keyboard Shortcuts"
|
||||
action:@selector (gimpShowKeyboardShortcuts:)
|
||||
keyEquivalent:@""];
|
||||
[item setTarget:[GimpappMenuHandler class]];
|
||||
[app_menu insertItem:item atIndex:5];
|
||||
|
||||
/* Quit */
|
||||
last_index = [app_menu numberOfItems] - 1;
|
||||
item = [app_menu itemAtIndex:last_index];
|
||||
[item setTarget:[GimpappMenuHandler class]];
|
||||
[item setAction:@selector (gimpQuit:)];
|
||||
}
|
||||
#endif
|
||||
|
@@ -31,3 +31,7 @@ void menus_remove (Gimp *gimp);
|
||||
|
||||
GimpMenuFactory * menus_get_global_menu_factory (Gimp *gimp);
|
||||
GimpUIManager * menus_get_image_manager_singleton (Gimp *gimp);
|
||||
|
||||
#ifdef PLATFORM_OSX
|
||||
void menus_quartz_app_menu (Gimp *gimp);
|
||||
#endif
|
||||
|
@@ -16,6 +16,6 @@ libappmenus = static_library('appmenus',
|
||||
include_directories: [ rootInclude, rootAppInclude, ],
|
||||
c_args: '-DG_LOG_DOMAIN="Gimp-Menus"',
|
||||
dependencies: [
|
||||
gegl, gtk3
|
||||
gegl, gtk3, gexiv2
|
||||
],
|
||||
)
|
||||
|
@@ -25,6 +25,6 @@ libapplayermodeslegacy = static_library('applayermodeslegacy',
|
||||
include_directories: [ rootInclude, rootAppInclude, ],
|
||||
c_args: '-DG_LOG_DOMAIN="Gimp-Layer-Modes-Legacy"',
|
||||
dependencies: [
|
||||
cairo, gegl, gdk_pixbuf,
|
||||
cairo, gegl, gdk_pixbuf, gexiv2
|
||||
],
|
||||
)
|
||||
|
@@ -50,5 +50,6 @@ libapplayermodes = static_library('applayermodes',
|
||||
cairo,
|
||||
gegl,
|
||||
gdk_pixbuf,
|
||||
gexiv2
|
||||
],
|
||||
)
|
||||
|
@@ -66,7 +66,7 @@ libappoperations = static_library('appoperations',
|
||||
include_directories: [ rootInclude, rootAppInclude, ],
|
||||
c_args: '-DG_LOG_DOMAIN="Gimp-Operations"',
|
||||
dependencies: [
|
||||
cairo, gegl, gdk_pixbuf,
|
||||
cairo, gegl, gdk_pixbuf, gexiv2
|
||||
],
|
||||
)
|
||||
|
||||
|
@@ -63,6 +63,6 @@ libapppaint = static_library('apppaint',
|
||||
include_directories: [ rootInclude, rootAppInclude, ],
|
||||
c_args: '-DG_LOG_DOMAIN="Gimp-Paint"',
|
||||
dependencies: [
|
||||
cairo, gegl, gdk_pixbuf, libmypaint,
|
||||
cairo, gegl, gdk_pixbuf, gexiv2, libmypaint,
|
||||
],
|
||||
)
|
||||
|
@@ -22,6 +22,6 @@ libapppath = static_library('apppath',
|
||||
include_directories: [ rootInclude, rootAppInclude, ],
|
||||
c_args: '-DG_LOG_DOMAIN="Gimp-Path"',
|
||||
dependencies: [
|
||||
cairo, gegl, gdk_pixbuf,
|
||||
cairo, gegl, gdk_pixbuf, gexiv2
|
||||
],
|
||||
)
|
||||
|
@@ -84,8 +84,17 @@ file_load_invoker (GimpProcedure *procedure,
|
||||
gimp_value_array_index (new_args, 1));
|
||||
|
||||
for (i = 2; i < proc->num_args; i++)
|
||||
if (G_IS_PARAM_SPEC_STRING (proc->args[i]))
|
||||
g_value_set_static_string (gimp_value_array_index (new_args, i), "");
|
||||
if (GIMP_IS_PARAM_SPEC_CHOICE (proc->args[i]))
|
||||
{
|
||||
GParamSpecString *string_spec = G_PARAM_SPEC_STRING (proc->args[i]);
|
||||
|
||||
g_value_set_static_string (gimp_value_array_index (new_args, i),
|
||||
string_spec->default_value);
|
||||
}
|
||||
else if (G_IS_PARAM_SPEC_STRING (proc->args[i]))
|
||||
{
|
||||
g_value_set_static_string (gimp_value_array_index (new_args, i), "");
|
||||
}
|
||||
|
||||
return_vals =
|
||||
gimp_pdb_execute_procedure_by_name_args (gimp->pdb,
|
||||
@@ -103,7 +112,16 @@ file_load_invoker (GimpProcedure *procedure,
|
||||
{
|
||||
GimpImage *image =
|
||||
g_value_get_object (gimp_value_array_index (return_vals, 1));
|
||||
gimp_image_set_load_proc (image, file_proc);
|
||||
|
||||
if (! gimp_image_get_load_proc (image))
|
||||
/* Leave the initial load procedure if it already exists as
|
||||
* it will give information about the source format. See
|
||||
* similar code in file_open_image().
|
||||
*/
|
||||
gimp_image_set_load_proc (image, file_proc);
|
||||
|
||||
if (! gimp_image_get_file (image))
|
||||
gimp_image_set_imported_file (image, file);
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -75,7 +75,7 @@ libapppdb = static_library('apppdb',
|
||||
include_directories: [ rootInclude, rootAppInclude, ],
|
||||
c_args: '-DG_LOG_DOMAIN="Gimp-PDB"',
|
||||
dependencies: [
|
||||
cairo, gegl, gdk_pixbuf,
|
||||
cairo, gegl, gdk_pixbuf, gexiv2
|
||||
],
|
||||
)
|
||||
|
||||
@@ -85,7 +85,7 @@ libappinternalprocs = static_library('appinternalprocs',
|
||||
include_directories: [ rootInclude, rootAppInclude, ],
|
||||
c_args: '-DG_LOG_DOMAIN="Gimp-PDB"',
|
||||
dependencies: [
|
||||
cairo, gegl, gdk_pixbuf, pangocairo, pango,
|
||||
cairo, gegl, gdk_pixbuf, gexiv2, pangocairo, pango,
|
||||
],
|
||||
sources: [
|
||||
pdbgen
|
||||
|
@@ -56,6 +56,6 @@ libappplugin = static_library('appplug-in',
|
||||
include_directories: [ rootInclude, rootAppInclude, ],
|
||||
c_args: '-DG_LOG_DOMAIN="Gimp-Plug-In"',
|
||||
dependencies: [
|
||||
cairo, gegl, gdk_pixbuf,
|
||||
cairo, gegl, gdk_pixbuf, gexiv2,
|
||||
],
|
||||
)
|
||||
|
@@ -28,6 +28,6 @@ libapppropgui = static_library('apppropgui',
|
||||
include_directories: [ rootInclude, rootAppInclude, ],
|
||||
c_args: '-DG_LOG_DOMAIN="Gimp-PropGUI"',
|
||||
dependencies: [
|
||||
gegl, gtk3,
|
||||
gegl, gtk3, gexiv2
|
||||
],
|
||||
)
|
||||
|
@@ -464,7 +464,7 @@ sanity_check_babl (void)
|
||||
|
||||
#define BABL_REQUIRED_MAJOR 0
|
||||
#define BABL_REQUIRED_MINOR 1
|
||||
#define BABL_REQUIRED_MICRO 114
|
||||
#define BABL_REQUIRED_MICRO 116
|
||||
|
||||
babl_get_version (&babl_major_version,
|
||||
&babl_minor_version,
|
||||
@@ -502,7 +502,7 @@ sanity_check_gegl (void)
|
||||
|
||||
#define GEGL_REQUIRED_MAJOR 0
|
||||
#define GEGL_REQUIRED_MINOR 4
|
||||
#define GEGL_REQUIRED_MICRO 62
|
||||
#define GEGL_REQUIRED_MICRO 64
|
||||
|
||||
gegl_get_version (&gegl_major_version,
|
||||
&gegl_minor_version,
|
||||
|
@@ -42,6 +42,6 @@ libapptext = static_library('apptext',
|
||||
include_directories: [ rootInclude, rootAppInclude, ],
|
||||
c_args: '-DG_LOG_DOMAIN="Gimp-Text"',
|
||||
dependencies: [
|
||||
gegl, gdk_pixbuf, harfbuzz, pangocairo, pangoft2,
|
||||
gegl, gdk_pixbuf, gexiv2, harfbuzz, pangocairo, pangoft2,
|
||||
],
|
||||
)
|
||||
|
@@ -39,6 +39,7 @@
|
||||
#include "core/gimpimageproxy.h"
|
||||
#include "core/gimpitem.h"
|
||||
#include "core/gimplineart.h"
|
||||
#include "core/gimplinklayer.h"
|
||||
#include "core/gimppickable.h"
|
||||
#include "core/gimppickable-contiguous-region.h"
|
||||
#include "core/gimpprogress.h"
|
||||
@@ -50,6 +51,8 @@
|
||||
|
||||
#include "operations/layer-modes/gimp-layer-modes.h"
|
||||
|
||||
#include "path/gimpvectorlayer.h"
|
||||
|
||||
#include "widgets/gimphelp-ids.h"
|
||||
#include "widgets/gimpwidgets-utils.h"
|
||||
|
||||
@@ -620,7 +623,21 @@ gimp_bucket_fill_tool_button_press (GimpTool *tool,
|
||||
return;
|
||||
}
|
||||
|
||||
if (gimp_item_is_content_locked (GIMP_ITEM (drawable), &locked_item))
|
||||
if (gimp_item_is_link_layer (GIMP_ITEM (drawable)))
|
||||
{
|
||||
gimp_tool_message_literal (tool, display,
|
||||
_("Link layers must be rasterized "
|
||||
"before they can be painted on."));
|
||||
return;
|
||||
}
|
||||
else if (gimp_item_is_vector_layer (GIMP_ITEM (drawable)))
|
||||
{
|
||||
gimp_tool_message_literal (tool, display,
|
||||
_("Vector layers must be rasterized "
|
||||
"before they can be painted on."));
|
||||
return;
|
||||
}
|
||||
else if (gimp_item_is_content_locked (GIMP_ITEM (drawable), &locked_item))
|
||||
{
|
||||
gimp_tool_message_literal (tool, display,
|
||||
_("The selected layer's pixels are locked."));
|
||||
|
@@ -562,48 +562,50 @@ gimp_filter_tool_control (GimpTool *tool,
|
||||
|
||||
case GIMP_TOOL_ACTION_COMMIT:
|
||||
if (filter_tool->filter)
|
||||
drawable = gimp_drawable_filter_get_drawable (filter_tool->filter);
|
||||
|
||||
/* TODO: Expand non-destructive editing to other drawables
|
||||
* besides layers and channels */
|
||||
if ((! GIMP_IS_LAYER (drawable) && ! GIMP_IS_CHANNEL (drawable)) ||
|
||||
GIMP_IS_LAYER_MASK (drawable) ||
|
||||
(! filter_tool->existing_filter && options->merge_filter))
|
||||
non_destructive = FALSE;
|
||||
|
||||
if (filter_tool->operation)
|
||||
{
|
||||
gegl_node_get (filter_tool->operation,
|
||||
"operation", &operation_name,
|
||||
NULL);
|
||||
drawable = gimp_drawable_filter_get_drawable (filter_tool->filter);
|
||||
|
||||
if (! g_strcmp0 (operation_name, "gegl:nop"))
|
||||
/* TODO: Expand non-destructive editing to other drawables
|
||||
* besides layers and channels */
|
||||
if ((! GIMP_IS_LAYER (drawable) && ! GIMP_IS_CHANNEL (drawable)) ||
|
||||
GIMP_IS_LAYER_MASK (drawable) ||
|
||||
(! filter_tool->existing_filter && options->merge_filter))
|
||||
non_destructive = FALSE;
|
||||
|
||||
/* TODO: Once we can serialize GimpDrawable, remove so that filters with
|
||||
* aux nodes can be non-destructive */
|
||||
if (gegl_node_has_pad (filter_tool->operation, "aux") ||
|
||||
/* GEGL graph is dangerous even without using third-party
|
||||
* effects, because it may run any effect. E.g. it can
|
||||
* run sink effects overwriting any local files with user
|
||||
* rights. We leave a way in through an environment
|
||||
* variable because it is a useful tool for GEGL ops
|
||||
* developers but it should only be set while knowing what
|
||||
* you are doing.
|
||||
*/
|
||||
(g_strcmp0 (operation_name, "gegl:gegl") == 0 &&
|
||||
g_getenv ("GIMP_ALLOW_GEGL_GRAPH_LAYER_EFFECT") == NULL))
|
||||
non_destructive = FALSE;
|
||||
if (filter_tool->operation)
|
||||
{
|
||||
gegl_node_get (filter_tool->operation,
|
||||
"operation", &operation_name,
|
||||
NULL);
|
||||
|
||||
g_free (operation_name);
|
||||
if (! g_strcmp0 (operation_name, "gegl:nop"))
|
||||
non_destructive = FALSE;
|
||||
|
||||
/* TODO: Once we can serialize GimpDrawable, remove so that
|
||||
* filters with aux nodes can be non-destructive */
|
||||
if (gegl_node_has_pad (filter_tool->operation, "aux") ||
|
||||
/* GEGL graph is dangerous even without using third-party
|
||||
* effects, because it may run any effect. E.g. it can
|
||||
* run sink effects overwriting any local files with user
|
||||
* rights. We leave a way in through an environment
|
||||
* variable because it is a useful tool for GEGL ops
|
||||
* developers but it should only be set while knowing what
|
||||
* you are doing.
|
||||
*/
|
||||
(g_strcmp0 (operation_name, "gegl:gegl") == 0 &&
|
||||
g_getenv ("GIMP_ALLOW_GEGL_GRAPH_LAYER_EFFECT") == NULL))
|
||||
non_destructive = FALSE;
|
||||
|
||||
g_free (operation_name);
|
||||
}
|
||||
|
||||
/* Ensure that filters applied to group, vector or link layers are
|
||||
* non-destructive */
|
||||
if (GIMP_IS_GROUP_LAYER (drawable) ||
|
||||
gimp_item_is_vector_layer (GIMP_ITEM (drawable)) ||
|
||||
gimp_item_is_link_layer (GIMP_ITEM (drawable)))
|
||||
non_destructive = TRUE;
|
||||
}
|
||||
|
||||
/* Ensure that filters applied to group, vector or link layers are non-destructive */
|
||||
if (GIMP_IS_GROUP_LAYER (drawable) ||
|
||||
gimp_item_is_vector_layer (GIMP_ITEM (drawable)) ||
|
||||
gimp_item_is_link_layer (GIMP_ITEM (drawable)))
|
||||
non_destructive = TRUE;
|
||||
|
||||
gimp_filter_tool_commit (filter_tool, non_destructive);
|
||||
break;
|
||||
}
|
||||
|
@@ -127,6 +127,8 @@ static void gimp_mybrush_tool_cursor_update (GimpTool *tool,
|
||||
options->view_zoom = (gimp_zoom_model_get_factor (shell->zoom) > 0.0f) ?
|
||||
gimp_zoom_model_get_factor (shell->zoom) : 1.0f;
|
||||
options->view_rotation = shell->rotate_angle;
|
||||
|
||||
GIMP_TOOL_CLASS (parent_class)->cursor_update (tool, coords, state, display);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@@ -143,6 +143,6 @@ libapptools = static_library('apptools',
|
||||
include_directories: [ rootInclude, rootAppInclude, ],
|
||||
c_args: '-DG_LOG_DOMAIN="Gimp-Tools"',
|
||||
dependencies: [
|
||||
gegl, gtk3,
|
||||
gegl, gtk3, gexiv2,
|
||||
],
|
||||
)
|
||||
|
@@ -222,7 +222,7 @@ gimp_palette_view_button_press (GtkWidget *widget,
|
||||
gimp_palette_view_select_entry (view, entry);
|
||||
|
||||
/* Usually the menu is provided by a GimpEditor.
|
||||
* Make sure it's also run by returning FALSE here */
|
||||
* Make sure it's also run by returning FALSE here */
|
||||
return FALSE;
|
||||
}
|
||||
else if (bevent->button == 1)
|
||||
|
@@ -161,13 +161,12 @@ gimp_view_renderer_palette_render (GimpViewRenderer *renderer,
|
||||
|
||||
if ((y % renderpal->cell_height) == 0)
|
||||
{
|
||||
guchar rgba[4];
|
||||
gint n = 0;
|
||||
guchar *d = row;
|
||||
|
||||
for (x = 0; x < renderer->width; x++, d += 4)
|
||||
{
|
||||
guchar rgba[4];
|
||||
|
||||
if ((x % renderpal->cell_width) == 0)
|
||||
{
|
||||
if (list && n < renderpal->columns &&
|
||||
|
@@ -280,6 +280,6 @@ libappwidgets = static_library('appwidgets',
|
||||
include_directories: [ rootInclude, rootAppInclude, ],
|
||||
c_args: '-DG_LOG_DOMAIN="Gimp-Widgets"',
|
||||
dependencies: [
|
||||
gegl, gtk3,
|
||||
gegl, gtk3, gexiv2,
|
||||
],
|
||||
)
|
||||
|
@@ -13,6 +13,6 @@ libappxcf = static_library('appxcf',
|
||||
include_directories: [ rootInclude, rootAppInclude, ],
|
||||
c_args: '-DG_LOG_DOMAIN="Gimp-XCF"',
|
||||
dependencies: [
|
||||
cairo, gegl, gdk_pixbuf, zlib
|
||||
cairo, gegl, gdk_pixbuf, gexiv2, zlib
|
||||
],
|
||||
)
|
||||
|
@@ -304,6 +304,7 @@ prep_pkg "xapps-common"
|
||||
bund_usr "$UNIX_PREFIX" "share/glib-*/schemas"
|
||||
### Glib commonly required modules
|
||||
bund_usr "$UNIX_PREFIX" "lib/gvfs/*.so"
|
||||
bund_usr "$UNIX_PREFIX" "lib/libproxy/libpxbackend*.so" --dest "${LIB_DIR}/${LIB_SUBDIR}"
|
||||
bund_usr "$UNIX_PREFIX" "lib/gio/modules/*"
|
||||
conf_app GIO_MODULE_DIR "${LIB_DIR}/${LIB_SUBDIR}gio/modules"
|
||||
conf_app GIO_EXTRA_MODULES "" --no-expand
|
||||
@@ -324,6 +325,7 @@ conf_app GTK_PATH "${LIB_DIR}/${LIB_SUBDIR}gtk-3.0"
|
||||
prep_pkg "ibus-gtk3"
|
||||
bund_usr "$UNIX_PREFIX" "lib/gtk-3.0/*.*.*/immodules/*.so" --bundler
|
||||
conf_app GTK_IM_MODULE_FILE "${LIB_DIR}/${LIB_SUBDIR}gtk-3.0/*.*.*/immodules.cache"
|
||||
conf_app GTK_MODULES "" --no-expand
|
||||
|
||||
## Core features
|
||||
bund_usr "$GIMP_PREFIX" "lib/libbabl*"
|
||||
@@ -352,9 +354,16 @@ bund_usr "$GIMP_PREFIX" "etc/gimp"
|
||||
## Other features and plug-ins
|
||||
### mypaint brushes
|
||||
bund_usr "$UNIX_PREFIX" "share/mypaint-data/2.0"
|
||||
####https://salsa.debian.org/multimedia-team/mypaint-brushes/-/merge_requests/2
|
||||
for myb in $(find "$USR_DIR/share/mypaint-data/2.0/brushes/Dieterle" -iname "*.myb"); do
|
||||
sed -i -e 's|surfacemap_x|gridmap_x|g' -e 's|surfacemap_y|gridmap_y|g' $myb;
|
||||
done
|
||||
### Needed for 'th' word breaking in Text tool etc
|
||||
bund_usr "$UNIX_PREFIX" "share/libthai"
|
||||
conf_app LIBTHAI_DICTDIR "share/libthai"
|
||||
### Needed for file-heif work
|
||||
bund_usr "$UNIX_PREFIX" "lib/libheif/plugins/*.so"
|
||||
conf_app LIBHEIF_PLUGIN_PATH "${LIB_DIR}/${LIB_SUBDIR}libheif/plugins"
|
||||
### Needed for full CJK and Cyrillic support in file-pdf
|
||||
bund_usr "$UNIX_PREFIX" "share/poppler"
|
||||
### Needed for file-ps work. See: #14785
|
||||
@@ -375,9 +384,6 @@ if [ "$GIMP_UNSTABLE" ] || [ -z "$GIMP_RELEASE" ]; then
|
||||
### Needed for GTK inspector
|
||||
bund_usr "$UNIX_PREFIX" "lib/libEGL*"
|
||||
bund_usr "$UNIX_PREFIX" "lib/libGL*"
|
||||
bund_usr "$UNIX_PREFIX" "lib/dri*"
|
||||
#TODO: remove this on Debian Trixie (which have Mesa 24.2)
|
||||
conf_app LIBGL_DRIVERS_PATH "${LIB_DIR}/${LIB_SUBDIR}dri"
|
||||
fi
|
||||
### Debug dialog
|
||||
bund_usr "$GIMP_PREFIX" "bin/gimp-debug-tool*" --dest "libexec"
|
||||
@@ -391,7 +397,8 @@ wipe_usr ${LIB_DIR}/*.pyc
|
||||
conf_app PYTHONDONTWRITEBYTECODE "1" --no-expand
|
||||
#### JavaScript plug-ins support
|
||||
bund_usr "$UNIX_PREFIX" "bin/gjs*"
|
||||
bund_usr "$UNIX_PREFIX" "lib/gjs/girepository-1.0/Gjs*" --dest "${LIB_DIR}/${LIB_SUBDIR}girepository-1.0"
|
||||
bund_usr "$UNIX_PREFIX" "lib/gjs/girepository-*/Gjs*.typelib" --dest "${LIB_DIR}/${LIB_SUBDIR}girepository-1.0"
|
||||
bund_usr "$UNIX_PREFIX" "lib/girepository-*/GioUnix*.typelib"
|
||||
####FIXME: lua crashes with loop: See: #11895
|
||||
#bund_usr "$UNIX_PREFIX" "bin/luajit" --rename "lua"
|
||||
#bund_usr "$UNIX_PREFIX" "lib/liblua5.1-lgi*"
|
||||
|
@@ -8,11 +8,11 @@ if [ -z "$APPDIR" ]; then
|
||||
fi
|
||||
|
||||
|
||||
## Minimum runtime-sandboxed paths. See: #13527, #13603 and #13001
|
||||
## Minimum runtime paths. See: #13527 and #13603
|
||||
export PATH="${APPDIR}/usr/bin/:$PATH"
|
||||
unset LD_PRELOAD
|
||||
unset LD_LIBRARY_PATH
|
||||
export XDG_DATA_DIRS="${APPDIR}/usr/share/"
|
||||
export XDG_DATA_DIRS="${APPDIR}/usr/share/:$XDG_DATA_DIRS"
|
||||
|
||||
|
||||
## Other needed runtime paths (added by 3_dist-gimp-goappimage.sh)
|
||||
|
@@ -29,6 +29,7 @@
|
||||
"--filesystem=/tmp",
|
||||
"--filesystem=xdg-run/gvfs",
|
||||
"--filesystem=xdg-run/gvfsd",
|
||||
"--unset-env=GTK_MODULES",
|
||||
"--talk-name=org.gtk.vfs.*",
|
||||
"--talk-name=org.freedesktop.FileManager1",
|
||||
"--talk-name=org.gnome.Shell.Screenshot",
|
||||
@@ -98,10 +99,8 @@
|
||||
],
|
||||
"buildsystem": "meson",
|
||||
"config-opts": [
|
||||
"-Dintrospection=false",
|
||||
"-Dpython3=false",
|
||||
"-Dtools=false",
|
||||
"-Dvapi=false"
|
||||
"-Dtools=false"
|
||||
],
|
||||
"modules": [
|
||||
{
|
||||
@@ -244,8 +243,8 @@
|
||||
"sources": [
|
||||
{
|
||||
"type": "archive",
|
||||
"url": "https://poppler.freedesktop.org/poppler-25.09.1.tar.xz",
|
||||
"sha256": "0c1091d01d3dd1664a13816861e812d02b29201e96665454b81b52d261fad658",
|
||||
"url": "https://poppler.freedesktop.org/poppler-25.10.0.tar.xz",
|
||||
"sha256": "6b5e9bb64dabb15787a14db1675291c7afaf9387438cc93a4fb7f6aec4ee6fe0",
|
||||
"x-checker-data": {
|
||||
"type": "anitya",
|
||||
"project-id": 3686,
|
||||
|
@@ -21,14 +21,16 @@ apps:
|
||||
desktop: usr/share/applications/gimp.desktop
|
||||
environment:
|
||||
HOME: $SNAP_REAL_HOME
|
||||
#Matting Leving support on FG select
|
||||
LD_LIBRARY_PATH: $SNAP/usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/blas:$SNAP/usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/lapack:$LD_LIBRARY_PATH
|
||||
#Internet connection and Matting Leving support on FG select
|
||||
LD_LIBRARY_PATH: $SNAP/gnome-platform/usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/libproxy:$SNAP/usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/blas:$SNAP/usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/lapack:$LD_LIBRARY_PATH
|
||||
#JavaScript plug-ins support
|
||||
GI_TYPELIB_PATH: $SNAP/gnome-platform/usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/gjs/girepository-1.0:$GI_TYPELIB_PATH
|
||||
#AVIF, HEIC and HEJ2 plug-ins support
|
||||
LIBHEIF_PLUGIN_PATH: $SNAP/usr/lib/$CRAFT_ARCH_TRIPLET_BUILD_FOR/libheif/plugins
|
||||
#PostScript plug-in support
|
||||
GS_LIB: $SNAP/usr/share/ghostscript/10.02.1/Resource/Init
|
||||
#Acessibility support
|
||||
GTK_MODULES: ""
|
||||
slots:
|
||||
- dbus-gimp
|
||||
plugs:
|
||||
@@ -164,3 +166,7 @@ parts:
|
||||
# get gimp icon for proper desktop integration
|
||||
cp $CRAFT_STAGE/usr/share/icons/hicolor/scalable/apps/gimp.svg $CRAFT_PRIME/gimp
|
||||
craftctl default
|
||||
#https://salsa.debian.org/multimedia-team/mypaint-brushes/-/merge_requests/2
|
||||
for myb in $(find "$CRAFT_PRIME/usr/share/mypaint-data/2.0/brushes/Dieterle" -iname "*.myb"); do
|
||||
sed -i -e 's|surfacemap_x|gridmap_x|g' -e 's|surfacemap_y|gridmap_y|g' $myb;
|
||||
done
|
||||
|
@@ -32,8 +32,7 @@ if ($GITLAB_CI)
|
||||
# Prepare env
|
||||
if (-not $GIMP_PREFIX)
|
||||
{
|
||||
#FIXME:'gimpenv' have buggy code about Windows paths. See: https://gitlab.gnome.org/GNOME/gimp/-/issues/12284
|
||||
$GIMP_PREFIX = "$PWD\..\_install".Replace('\', '/')
|
||||
$GIMP_PREFIX = "$PWD\..\_install"
|
||||
}
|
||||
Invoke-Expression ((Get-Content .gitlab-ci.yml | Select-String 'win_environ\[' -Context 0,7) -replace '> ','' -replace '- ','')
|
||||
|
||||
|
@@ -26,7 +26,7 @@ Write-Output "$([char]27)[0Ksection_start:$(Get-Date -UFormat %s -Millisecond 0)
|
||||
## Install or Update Inno (if needed)
|
||||
## (We need to ensure that TLS 1.2 is enabled because of some runners)
|
||||
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
|
||||
Invoke-WebRequest https://jrsoftware.org/download.php/is.exe -OutFile ..\is.exe
|
||||
Invoke-WebRequest https://files.jrsoftware.org/is/6/innosetup-6.5.4.exe -OutFile ..\is.exe
|
||||
$inno_version_downloaded = (Get-Item ..\is.exe).VersionInfo.ProductVersion -replace ' ',''
|
||||
$broken_inno = Get-ChildItem $env:TMP -Filter *.isl.bak -ErrorAction SilentlyContinue
|
||||
$inno_version = Get-ItemProperty Registry::'HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Uninstall\Inno Setup*' -ErrorAction SilentlyContinue | Select-Object -ExpandProperty DisplayVersion
|
||||
|
@@ -140,10 +140,12 @@
|
||||
|
||||
|
||||
;3 INSTALLER SOURCE
|
||||
#define ASSETS_DIR BUILD_DIR + "\build\windows\installer"
|
||||
|
||||
;3.1.1 Icons and other files
|
||||
#define ASSETS_DIR BUILD_DIR + "\build\windows\installer"
|
||||
#include ASSETS_DIR + "\splash-dimensions.h"
|
||||
#define WIZARD_SMALL_IMAGE ASSETS_DIR + "\gimp.scale-100.bmp," + ASSETS_DIR + "\gimp.scale-125.bmp," + ASSETS_DIR + "\gimp.scale-150.bmp," + ASSETS_DIR + "\gimp.scale-175.bmp," + ASSETS_DIR + "\gimp.scale-200.bmp," + ASSETS_DIR + "\gimp.scale-225.bmp," + ASSETS_DIR + "\gimp.scale-250.bmp"
|
||||
#define WIZARD_IMAGE ASSETS_DIR + "\install-end.scale-100.bmp," + ASSETS_DIR + "\install-end.scale-125.bmp," + ASSETS_DIR + "\install-end.scale-150.bmp," + ASSETS_DIR + "\install-end.scale-175.bmp," + ASSETS_DIR + "\install-end.scale-200.bmp," + ASSETS_DIR + "\install-end.scale-225.bmp," + ASSETS_DIR + "\install-end.scale-250.bmp"
|
||||
|
||||
;3.1.2 Installer lang files
|
||||
[Languages]
|
||||
@@ -247,8 +249,9 @@ AlwaysShowDirOnReadyPage=yes
|
||||
WizardStyle=modern
|
||||
WizardSizePercent=100
|
||||
WizardResizable=no
|
||||
WizardSmallImageFile={#ASSETS_DIR}\gimp.scale-100.bmp,{#ASSETS_DIR}\gimp.scale-125.bmp,{#ASSETS_DIR}\gimp.scale-150.bmp,{#ASSETS_DIR}\gimp.scale-175.bmp,{#ASSETS_DIR}\gimp.scale-200.bmp,{#ASSETS_DIR}\gimp.scale-225.bmp,{#ASSETS_DIR}\gimp.scale-250.bmp
|
||||
WizardImageFile={#ASSETS_DIR}\install-end.scale-100.bmp,{#ASSETS_DIR}\install-end.scale-125.bmp,{#ASSETS_DIR}\install-end.scale-150.bmp,{#ASSETS_DIR}\install-end.scale-175.bmp,{#ASSETS_DIR}\install-end.scale-200.bmp,{#ASSETS_DIR}\install-end.scale-225.bmp,{#ASSETS_DIR}\install-end.scale-250.bmp
|
||||
WizardImageAlphaFormat=defined
|
||||
WizardSmallImageFile={#WIZARD_SMALL_IMAGE}
|
||||
WizardImageFile={#WIZARD_IMAGE}
|
||||
WizardImageStretch=yes
|
||||
[LangOptions]
|
||||
DialogFontName=Segoe UI
|
||||
|
@@ -48,7 +48,7 @@ if have_vala and have_gobject_introspection
|
||||
'goat-exercise-vala.vala',
|
||||
include_directories: [ rootInclude, ],
|
||||
dependencies: [
|
||||
libgimp_vapi, libgimpui_vapi, gtk3, gegl, math,
|
||||
libgimp_vapi, libgimpui_vapi, libgimpui_dep, math,
|
||||
],
|
||||
c_args: [
|
||||
'-DGETTEXT_PACKAGE="@0@"'.format('org.gimp.extension.goat-exercises'),
|
||||
|
Submodule gimp-data updated: 9218ec5970...048d766855
@@ -361,6 +361,32 @@ libgimpui_introspectable = [
|
||||
]
|
||||
|
||||
|
||||
if glib.version().version_compare('>=2.86')
|
||||
if not platform_windows
|
||||
gio_specific_gir = 'GioUnix-2.0'
|
||||
gio_specific_vapi = 'gio-unix-2.0'
|
||||
else
|
||||
gio_specific_gir = 'GioWin32-2.0'
|
||||
gio_specific_vapi = 'gio-windows-2.0'
|
||||
endif
|
||||
else
|
||||
gio_specific_gir = ''
|
||||
gio_specific_vapi = ''
|
||||
endif
|
||||
|
||||
libgimp_deps_table = [
|
||||
{ 'gir': 'Babl-0.1', 'vapi': 'babl-0.1', },
|
||||
{ 'gir': 'cairo-1.0', 'vapi': 'cairo-1.0', },
|
||||
{ 'gir': 'GdkPixbuf-2.0', 'vapi': 'gdk-pixbuf-2.0', },
|
||||
{ 'gir': 'Gegl-0.4', 'vapi': 'gegl-0.4', },
|
||||
{ 'gir': 'Gio-2.0', 'vapi': 'gio-2.0', },
|
||||
{ 'gir': gio_specific_gir, 'vapi': gio_specific_vapi, },
|
||||
{ 'gir': 'GLib-2.0', 'vapi': 'glib-2.0', },
|
||||
{ 'gir': 'GObject-2.0', 'vapi': 'gobject-2.0', },
|
||||
{ 'gir': 'Pango-1.0', 'vapi': 'gtk+-3.0', },
|
||||
]
|
||||
|
||||
|
||||
libgimp = library('gimp-'+ gimp_api_version,
|
||||
libgimp_sources,
|
||||
include_directories: rootInclude,
|
||||
@@ -395,6 +421,7 @@ libgimp_dep = declare_dependency(
|
||||
cairo,
|
||||
gdk_pixbuf,
|
||||
gegl,
|
||||
gexiv2,
|
||||
],
|
||||
link_with: [
|
||||
libgimp,
|
||||
@@ -412,7 +439,6 @@ libgimpui = library('gimpui-'+ gimp_api_version,
|
||||
libgimpui_sources,
|
||||
dependencies: [
|
||||
libgimp_dep,
|
||||
gexiv2,
|
||||
gtk3,
|
||||
],
|
||||
sources: [
|
||||
@@ -489,23 +515,12 @@ elif get_option('b_sanitize') != 'none'
|
||||
warnings += gobject_introspection_warning
|
||||
else
|
||||
have_gobject_introspection = true
|
||||
libgimp_gir_includes = [
|
||||
'Babl-0.1',
|
||||
'cairo-1.0',
|
||||
'GdkPixbuf-2.0',
|
||||
'Gegl-0.4',
|
||||
'Gio-2.0',
|
||||
'GLib-2.0',
|
||||
'GObject-2.0',
|
||||
'Pango-1.0',
|
||||
]
|
||||
if glib.version().version_compare('>=2.86')
|
||||
if not platform_windows
|
||||
libgimp_gir_includes += [ 'GioUnix-2.0' ]
|
||||
else
|
||||
libgimp_gir_includes += [ 'GioWin32-2.0' ]
|
||||
libgimp_gir_includes = []
|
||||
foreach dep : libgimp_deps_table
|
||||
if dep['gir'] != ''
|
||||
libgimp_gir_includes += [dep['gir']]
|
||||
endif
|
||||
endif
|
||||
endforeach
|
||||
|
||||
gir_args = [
|
||||
'-DGIMP_COMPILATION',
|
||||
@@ -569,23 +584,12 @@ else
|
||||
endif
|
||||
|
||||
if have_vala
|
||||
vapi_deps = [
|
||||
'babl-0.1',
|
||||
'cairo-1.0',
|
||||
'gdk-pixbuf-2.0',
|
||||
'gegl-0.4',
|
||||
'gio-2.0',
|
||||
'glib-2.0',
|
||||
'gobject-2.0',
|
||||
'gtk+-3.0',
|
||||
]
|
||||
if glib.version().version_compare('>=2.86')
|
||||
if not platform_windows
|
||||
vapi_deps += [ 'gio-unix-2.0' ]
|
||||
else
|
||||
vapi_deps += [ 'gio-windows-2.0' ]
|
||||
vapi_deps = []
|
||||
foreach dep : libgimp_deps_table
|
||||
if dep['vapi'] != ''
|
||||
vapi_deps += [dep['vapi']]
|
||||
endif
|
||||
endif
|
||||
endforeach
|
||||
|
||||
libgimp_vapi = gnome.generate_vapi('gimp-' + gimp_api_version,
|
||||
sources: libgimp_gir[0],
|
||||
|
@@ -26,6 +26,9 @@
|
||||
#include <string.h>
|
||||
|
||||
#include <lcms2.h>
|
||||
#ifdef HAVE_LCMS_FAST_FLOAT_PLUGIN
|
||||
#include <lcms2_fast_float.h>
|
||||
#endif
|
||||
|
||||
#include <gio/gio.h>
|
||||
#include <gegl.h>
|
||||
@@ -128,6 +131,10 @@ gimp_color_transform_class_init (GimpColorTransformClass *klass)
|
||||
G_TYPE_NONE, 1,
|
||||
G_TYPE_DOUBLE);
|
||||
|
||||
#ifdef HAVE_LCMS_FAST_FLOAT_PLUGIN
|
||||
cmsPlugin (cmsFastFloatExtensions ());
|
||||
#endif
|
||||
|
||||
cmsSetLogErrorHandler (lcms_error_handler);
|
||||
}
|
||||
|
||||
|
@@ -36,7 +36,7 @@ libgimpcolor = library('gimpcolor-' + gimp_api_version,
|
||||
libgimpcolor_sources,
|
||||
include_directories: rootInclude,
|
||||
dependencies: [
|
||||
cairo, gdk_pixbuf, gegl, lcms, math,
|
||||
cairo, gdk_pixbuf, gegl, gexiv2, lcms, math,
|
||||
],
|
||||
c_args: [ '-DG_LOG_DOMAIN="LibGimpColor"', '-DGIMP_COLOR_COMPILATION', ],
|
||||
link_with: [ libgimpbase, ],
|
||||
|
@@ -307,8 +307,8 @@ gimp_config_param_spec_duplicate (GParamSpec *pspec)
|
||||
const gchar *type_name = g_type_name (value_type);
|
||||
|
||||
if (value_type == G_TYPE_FILE ||
|
||||
/* These types are not visibile in libgimpconfig so we compare
|
||||
* with type names instead.
|
||||
/* These types are not visible in libgimpconfig
|
||||
* so we compare with type names instead.
|
||||
*/
|
||||
g_strcmp0 (type_name, "GimpImage") == 0 ||
|
||||
g_strcmp0 (type_name, "GimpDisplay") == 0 ||
|
||||
|
@@ -70,7 +70,7 @@ libgimpconfig = library('gimpconfig-' + gimp_api_version,
|
||||
libgimpconfig_sources,
|
||||
include_directories: rootInclude,
|
||||
dependencies: [
|
||||
cairo, gdk_pixbuf, gegl, gio, gio_specific,
|
||||
cairo, gdk_pixbuf, gegl, gexiv2, gio, gio_specific,
|
||||
],
|
||||
c_args: [ '-DG_LOG_DOMAIN="LibGimpConfig"', '-DGIMP_CONFIG_COMPILATION', ],
|
||||
link_with: [
|
||||
|
@@ -19,7 +19,7 @@ libgimpmodule = library('gimpmodule-' + gimp_api_version,
|
||||
libgimpmodule_sources,
|
||||
include_directories: rootInclude,
|
||||
dependencies: [
|
||||
gegl, gio, glib, gmodule,
|
||||
gegl, gexiv2, gio, glib, gmodule,
|
||||
],
|
||||
c_args: [ '-DG_LOG_DOMAIN="LibGimpModule"', '-DGIMP_MODULE_COMPILATION', ],
|
||||
link_with: [
|
||||
|
@@ -65,7 +65,7 @@ libgimpthumb = library('gimpthumb-'+ gimp_api_version,
|
||||
libgimpthumb_sources,
|
||||
include_directories: rootInclude,
|
||||
dependencies: [
|
||||
gegl, glib, gobject, gdk_pixbuf, gio,
|
||||
gegl, gexiv2, glib, gobject, gdk_pixbuf, gio,
|
||||
],
|
||||
c_args: [ '-DG_LOG_DOMAIN="LibGimpThumb"', '-DGIMP_THUMB_COMPILATION', ],
|
||||
link_with: [
|
||||
|
@@ -163,16 +163,19 @@ gimp_color_hex_entry_init (GimpColorHexEntry *entry)
|
||||
gtk_entry_set_completion (GTK_ENTRY (entry), completion);
|
||||
g_object_unref (completion);
|
||||
|
||||
g_signal_connect (entry, "focus-out-event",
|
||||
G_CALLBACK (gimp_color_hex_entry_events),
|
||||
NULL);
|
||||
g_signal_connect (entry, "key-press-event",
|
||||
G_CALLBACK (gimp_color_hex_entry_events),
|
||||
NULL);
|
||||
g_signal_connect_object (entry, "focus-out-event",
|
||||
G_CALLBACK (gimp_color_hex_entry_events),
|
||||
NULL, 0);
|
||||
g_signal_connect_object (entry, "key-press-event",
|
||||
G_CALLBACK (gimp_color_hex_entry_events),
|
||||
NULL, 0);
|
||||
g_signal_connect_object (entry, "key-release-event",
|
||||
G_CALLBACK (gimp_color_hex_entry_events),
|
||||
NULL, 0);
|
||||
|
||||
g_signal_connect (completion, "match-selected",
|
||||
G_CALLBACK (gimp_color_hex_entry_matched),
|
||||
entry);
|
||||
g_signal_connect_object (completion, "match-selected",
|
||||
G_CALLBACK (gimp_color_hex_entry_matched),
|
||||
entry, 0);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -263,7 +266,8 @@ static gboolean
|
||||
gimp_color_hex_entry_events (GtkWidget *widget,
|
||||
GdkEvent *event)
|
||||
{
|
||||
GimpColorHexEntry *entry = GIMP_COLOR_HEX_ENTRY (widget);
|
||||
GimpColorHexEntry *entry = GIMP_COLOR_HEX_ENTRY (widget);
|
||||
gboolean check_color = FALSE;
|
||||
|
||||
switch (event->type)
|
||||
{
|
||||
@@ -271,39 +275,52 @@ gimp_color_hex_entry_events (GtkWidget *widget,
|
||||
{
|
||||
GdkEventKey *kevent = (GdkEventKey *) event;
|
||||
|
||||
if (kevent->keyval != GDK_KEY_Return &&
|
||||
kevent->keyval != GDK_KEY_KP_Enter &&
|
||||
kevent->keyval != GDK_KEY_ISO_Enter)
|
||||
break;
|
||||
/* else fall through */
|
||||
if (kevent->keyval == GDK_KEY_Return ||
|
||||
kevent->keyval == GDK_KEY_KP_Enter ||
|
||||
kevent->keyval == GDK_KEY_ISO_Enter)
|
||||
check_color = TRUE;
|
||||
}
|
||||
|
||||
case GDK_KEY_RELEASE:
|
||||
case GDK_FOCUS_CHANGE:
|
||||
{
|
||||
const gchar *text;
|
||||
gchar buffer[8];
|
||||
guchar rgb[3];
|
||||
gsize len;
|
||||
|
||||
text = gtk_entry_get_text (GTK_ENTRY (widget));
|
||||
len = strlen (text);
|
||||
|
||||
gegl_color_get_pixel (entry->color, babl_format ("R'G'B' u8"), rgb);
|
||||
g_snprintf (buffer, sizeof (buffer), "%.2x%.2x%.2x", rgb[0], rgb[1], rgb[2]);
|
||||
|
||||
if (g_ascii_strcasecmp (buffer, text) != 0)
|
||||
if (len >= 6 || check_color)
|
||||
{
|
||||
GeglColor *color = NULL;
|
||||
gsize len = strlen (text);
|
||||
gegl_color_get_pixel (entry->color, babl_format ("R'G'B' u8"),
|
||||
rgb);
|
||||
g_snprintf (buffer, sizeof (buffer), "%.2x%.2x%.2x",
|
||||
rgb[0], rgb[1], rgb[2]);
|
||||
|
||||
if (len > 0 &&
|
||||
((color = gimp_color_parse_hex_substring (text, len)) ||
|
||||
(color = gimp_color_parse_name (text))))
|
||||
if (g_ascii_strcasecmp (buffer, text) != 0)
|
||||
{
|
||||
gimp_color_hex_entry_set_color (entry, color);
|
||||
g_object_unref (color);
|
||||
}
|
||||
else
|
||||
{
|
||||
gtk_entry_set_text (GTK_ENTRY (entry), buffer);
|
||||
GeglColor *color = NULL;
|
||||
gint position;
|
||||
|
||||
position = gtk_editable_get_position (GTK_EDITABLE (widget));
|
||||
|
||||
if (len > 0 &&
|
||||
((color = gimp_color_parse_hex_substring (text, len)) ||
|
||||
(color = gimp_color_parse_name (text))))
|
||||
{
|
||||
gimp_color_hex_entry_set_color (entry, color);
|
||||
g_object_unref (color);
|
||||
|
||||
if (! check_color)
|
||||
gtk_editable_set_position (GTK_EDITABLE (entry),
|
||||
position);
|
||||
}
|
||||
else if (event->type == GDK_FOCUS_CHANGE || check_color)
|
||||
{
|
||||
gtk_entry_set_text (GTK_ENTRY (entry), buffer);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -207,7 +207,7 @@ libgimpwidgets = library('gimpwidgets-'+ gimp_api_version,
|
||||
libgimpwidgets_sources,
|
||||
include_directories: rootInclude,
|
||||
dependencies: [
|
||||
gegl, gtk3, lcms, math, mscms
|
||||
gegl, gexiv2, gtk3, lcms, math, mscms
|
||||
],
|
||||
c_args: [ '-DG_LOG_DOMAIN="LibGimpWidgets"', '-DGIMP_WIDGETS_COMPILATION', ],
|
||||
link_with: [
|
||||
|
15
meson.build
15
meson.build
@@ -128,7 +128,7 @@ fs = import('fs')
|
||||
|
||||
cc = meson.get_compiler('c')
|
||||
cxx = meson.get_compiler('cpp')
|
||||
prefix = get_option('prefix')
|
||||
prefix = get_option('prefix').replace('\\', '/')
|
||||
buildtype = get_option('buildtype')
|
||||
exec_ver = '-' + gimp_app_version
|
||||
|
||||
@@ -334,6 +334,9 @@ if get_option('buildtype') == 'debug' or get_option('buildtype') == 'debugoptimi
|
||||
if not platform_windows
|
||||
# DWARF symbols for GCC and LLDB on Unix
|
||||
debugging_format = 'native'
|
||||
elif cc.get_argument_syntax() == 'msvc'
|
||||
# CodeView symbols for DIA or DbgHelp debuggers and LLDB on Windows
|
||||
debugging_format = 'Native'
|
||||
elif platform_windows and get_option('win-debugging') == 'native' and cc.has_argument('-gcodeview') and cc.has_link_argument('-Wl,--pdb=') and cc.get_id() == 'clang'
|
||||
# CodeView symbols for DIA or DbgHelp debuggers and LLDB on Windows
|
||||
debugging_format = 'native'
|
||||
@@ -406,7 +409,7 @@ winsock = platform_windows ? cc.find_library('ws2_32') : no_dep
|
||||
mscms = platform_windows ? cc.find_library('mscms') : no_dep
|
||||
atk_minver = '2.4.0'
|
||||
atk = dependency('atk', version: '>='+atk_minver)
|
||||
babl_minver = '0.1.114'
|
||||
babl_minver = '0.1.116'
|
||||
babl = dependency('babl-0.1', version: '>='+babl_minver, required: false)
|
||||
if not babl.found()
|
||||
# babl changed its pkg-config name from 'babl' to 'babl-0.1' in version
|
||||
@@ -428,7 +431,7 @@ freetype2_minver = '2.1.7'
|
||||
freetype2 = dependency('freetype2', version: '>='+freetype2_minver)
|
||||
gdk_pixbuf_minver = '2.30.8'
|
||||
gdk_pixbuf = dependency('gdk-pixbuf-2.0', version: '>='+gdk_pixbuf_minver)
|
||||
gegl_minver = '0.4.62'
|
||||
gegl_minver = '0.4.64'
|
||||
gegl = dependency('gegl-0.4', version: '>='+gegl_minver)
|
||||
exiv2_minver = '0.27.4'
|
||||
exiv2 = dependency('exiv2', version: '>='+exiv2_minver)
|
||||
@@ -473,6 +476,10 @@ json_glib_minver = '1.2.6'
|
||||
json_glib = dependency('json-glib-1.0', version: '>='+json_glib_minver)
|
||||
lcms_minver = '2.8'
|
||||
lcms = dependency('lcms2', version: '>='+lcms_minver)
|
||||
if cc.has_header('lcms2_fast_float.h')
|
||||
conf.set('HAVE_LCMS_FAST_FLOAT_PLUGIN', 1)
|
||||
endif
|
||||
|
||||
libmypaint_minver = '1.5.0'
|
||||
libmypaint = dependency('libmypaint', version: '>='+libmypaint_minver)
|
||||
mypaint_brushes = dependency('mypaint-brushes-2.0')
|
||||
@@ -2046,7 +2053,7 @@ pkgconfig.generate(libgimpui,
|
||||
# Install native debug data (.pdb) on Windows
|
||||
# Ideally meson should take care of it automatically.
|
||||
# See: https://github.com/mesonbuild/meson/issues/12977
|
||||
if platform_windows and debugging_format == 'native'
|
||||
if platform_windows and debugging_format == 'native' and cc.get_argument_syntax() != 'msvc'
|
||||
install_win_debug_script = find_program('build/windows/2_bundle-gimp-uni_sym.py')
|
||||
meson.add_install_script(install_win_debug_script)
|
||||
endif
|
||||
|
@@ -1,6 +1,6 @@
|
||||
|
||||
modules_deps = [
|
||||
gtk3, babl, gegl, math,
|
||||
gtk3, babl, gegl, gexiv2, math,
|
||||
]
|
||||
|
||||
color_selector_libs = [
|
||||
|
@@ -76,8 +76,17 @@ HELP
|
||||
gimp_value_array_index (new_args, 1));
|
||||
|
||||
for (i = 2; i < proc->num_args; i++)
|
||||
if (G_IS_PARAM_SPEC_STRING (proc->args[i]))
|
||||
g_value_set_static_string (gimp_value_array_index (new_args, i), "");
|
||||
if (GIMP_IS_PARAM_SPEC_CHOICE (proc->args[i]))
|
||||
{
|
||||
GParamSpecString *string_spec = G_PARAM_SPEC_STRING (proc->args[i]);
|
||||
|
||||
g_value_set_static_string (gimp_value_array_index (new_args, i),
|
||||
string_spec->default_value);
|
||||
}
|
||||
else if (G_IS_PARAM_SPEC_STRING (proc->args[i]))
|
||||
{
|
||||
g_value_set_static_string (gimp_value_array_index (new_args, i), "");
|
||||
}
|
||||
|
||||
return_vals =
|
||||
gimp_pdb_execute_procedure_by_name_args (gimp->pdb,
|
||||
@@ -95,7 +104,16 @@ HELP
|
||||
{
|
||||
GimpImage *image =
|
||||
g_value_get_object (gimp_value_array_index (return_vals, 1));
|
||||
gimp_image_set_load_proc (image, file_proc);
|
||||
|
||||
if (! gimp_image_get_load_proc (image))
|
||||
/* Leave the initial load procedure if it already exists as
|
||||
* it will give information about the source format. See
|
||||
* similar code in file_open_image().
|
||||
*/
|
||||
gimp_image_set_load_proc (image, file_proc);
|
||||
|
||||
if (! gimp_image_get_file (image))
|
||||
gimp_image_set_imported_file (image, file);
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -88,6 +88,8 @@
|
||||
|
||||
#include "libgimp/stdplugins-intl.h"
|
||||
|
||||
#include <archive.h>
|
||||
#include <archive_entry.h>
|
||||
#include <zlib.h>
|
||||
#include <bzlib.h>
|
||||
#include <lzma.h>
|
||||
@@ -201,6 +203,9 @@ static gboolean xz_load (GFile *infi
|
||||
GFile *outfile);
|
||||
static gboolean xz_export (GFile *infile,
|
||||
GFile *outfile);
|
||||
|
||||
static gboolean zip_load (GFile *infile,
|
||||
GFile *outfile);
|
||||
static goffset get_file_info (GFile *file);
|
||||
|
||||
|
||||
@@ -215,58 +220,77 @@ static const CompressorEntry compressors[] =
|
||||
{
|
||||
N_("gzip archive"),
|
||||
"application/x-gzip",
|
||||
"xcf.gz,xcfgz", /* FIXME "xcf.gz,gz,xcfgz" */
|
||||
"gz,xcf.gz,xcfgz",
|
||||
"0,string,\037\213",
|
||||
".xcfgz",
|
||||
".gz",
|
||||
|
||||
"file-gz-load",
|
||||
"loads files compressed with gzip",
|
||||
"This procedure loads files in the gzip compressed format.",
|
||||
N_("Loads files compressed with gzip"),
|
||||
N_("This procedure loads files in the gzip compressed format."),
|
||||
gzip_load,
|
||||
|
||||
"file-gz-export",
|
||||
"saves files compressed with gzip",
|
||||
"This procedure saves files in the gzip compressed format.",
|
||||
N_("Exports files compressed with gzip"),
|
||||
N_("This procedure exports files in the gzip compressed format."),
|
||||
gzip_export
|
||||
},
|
||||
|
||||
{
|
||||
N_("bzip archive"),
|
||||
"application/x-bzip",
|
||||
"xcf.bz2,xcfbz2", /* FIXME "xcf.bz2,bz2,xcfbz2" */
|
||||
"bz2,xcf.bz2,xcfbz2",
|
||||
"0,string,BZh",
|
||||
".xcfbz2",
|
||||
".bz2",
|
||||
|
||||
"file-bz2-load",
|
||||
"loads files compressed with bzip2",
|
||||
"This procedure loads files in the bzip2 compressed format.",
|
||||
N_("Loads files compressed with bzip2"),
|
||||
N_("This procedure loads files in the bzip2 compressed format."),
|
||||
bzip2_load,
|
||||
|
||||
"file-bz2-export",
|
||||
"saves files compressed with bzip2",
|
||||
"This procedure saves files in the bzip2 compressed format.",
|
||||
N_("Exports files compressed with bzip2"),
|
||||
N_("This procedure exports files in the bzip2 compressed format."),
|
||||
bzip2_export
|
||||
},
|
||||
|
||||
{
|
||||
N_("xz archive"),
|
||||
"application/x-xz",
|
||||
"xcf.xz,xcfxz", /* FIXME "xcf.xz,xz,xcfxz" */
|
||||
"xz,xcf.xz,xcfxz",
|
||||
"0,string,\3757zXZ\x00",
|
||||
".xcfxz",
|
||||
".xz",
|
||||
|
||||
"file-xz-load",
|
||||
"loads files compressed with xz",
|
||||
"This procedure loads files in the xz compressed format.",
|
||||
N_("Loads files compressed with xz"),
|
||||
N_("This procedure loads files in the xz compressed format."),
|
||||
xz_load,
|
||||
|
||||
"file-xz-export",
|
||||
"saves files compressed with xz",
|
||||
"This procedure saves files in the xz compressed format.",
|
||||
N_("Exports files compressed with xz"),
|
||||
N_("This procedure exports files in the xz compressed format."),
|
||||
xz_export
|
||||
},
|
||||
|
||||
{
|
||||
N_("zip archive"),
|
||||
"application/zip",
|
||||
"zip,hgt.zip",
|
||||
"0,string,PK\x03\x04",
|
||||
".xcfzip",
|
||||
".zip",
|
||||
|
||||
"file-zip-load",
|
||||
N_("Loads files compressed with zip"),
|
||||
N_("This procedure loads files in the zip compressed format."),
|
||||
zip_load,
|
||||
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL
|
||||
}
|
||||
};
|
||||
|
||||
@@ -297,7 +321,8 @@ compressor_query_procedures (GimpPlugIn *plug_in)
|
||||
const CompressorEntry *compressor = &compressors[i];
|
||||
|
||||
list = g_list_append (list, g_strdup (compressor->load_proc));
|
||||
list = g_list_append (list, g_strdup (compressor->save_proc));
|
||||
if (compressor->save_proc)
|
||||
list = g_list_append (list, g_strdup (compressor->save_proc));
|
||||
}
|
||||
|
||||
return list;
|
||||
@@ -322,14 +347,14 @@ compressor_create_procedure (GimpPlugIn *plug_in,
|
||||
(gpointer) compressor, NULL);
|
||||
|
||||
gimp_procedure_set_documentation (procedure,
|
||||
compressor->load_blurb,
|
||||
compressor->load_help,
|
||||
_(compressor->load_blurb),
|
||||
_(compressor->load_help),
|
||||
name);
|
||||
|
||||
gimp_file_procedure_set_magics (GIMP_FILE_PROCEDURE (procedure),
|
||||
compressor->magic);
|
||||
}
|
||||
else if (! strcmp (name, compressor->save_proc))
|
||||
else if (compressor->save_proc && ! strcmp (name, compressor->save_proc))
|
||||
{
|
||||
procedure = gimp_export_procedure_new (plug_in, name,
|
||||
GIMP_PDB_PROC_TYPE_PLUGIN,
|
||||
@@ -339,8 +364,8 @@ compressor_create_procedure (GimpPlugIn *plug_in,
|
||||
gimp_procedure_set_image_types (procedure, "RGB*, GRAY*, INDEXED*");
|
||||
|
||||
gimp_procedure_set_documentation (procedure,
|
||||
compressor->save_blurb,
|
||||
compressor->save_help,
|
||||
_(compressor->save_blurb),
|
||||
_(compressor->save_help),
|
||||
name);
|
||||
}
|
||||
|
||||
@@ -387,8 +412,7 @@ compressor_load (GimpProcedure *procedure,
|
||||
gimp_plug_in_set_pdb_error_handler (gimp_procedure_get_plug_in (procedure),
|
||||
GIMP_PDB_ERROR_HANDLER_PLUGIN);
|
||||
|
||||
image = load_image (compressor, file, run_mode,
|
||||
&status, &error);
|
||||
image = load_image (compressor, file, run_mode, &status, &error);
|
||||
|
||||
return_vals = gimp_procedure_new_return_values (procedure, status, error);
|
||||
|
||||
@@ -526,9 +550,17 @@ load_image (const CompressorEntry *compressor,
|
||||
|
||||
if (image)
|
||||
{
|
||||
GFile *xcf_file;
|
||||
|
||||
*status = GIMP_PDB_SUCCESS;
|
||||
|
||||
gimp_image_set_file (image, file);
|
||||
if ((xcf_file = gimp_image_get_xcf_file (image)))
|
||||
/* Replace the temporary file with the actual source file, but
|
||||
* only if the inner format was actually XCF.
|
||||
*/
|
||||
gimp_image_set_file (image, file);
|
||||
|
||||
g_clear_object (&xcf_file);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1018,6 +1050,79 @@ xz_export (GFile *infile,
|
||||
return ret;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
zip_load (GFile *infile,
|
||||
GFile *outfile)
|
||||
{
|
||||
gboolean ret;
|
||||
FILE *in;
|
||||
FILE *out;
|
||||
struct archive *a;
|
||||
struct archive_entry *entry;
|
||||
gint r;
|
||||
|
||||
ret = FALSE;
|
||||
in = NULL;
|
||||
out = NULL;
|
||||
|
||||
in = g_fopen (g_file_peek_path (infile), "rb");
|
||||
if (!in)
|
||||
goto out;
|
||||
|
||||
out = g_fopen (g_file_peek_path (outfile), "wb");
|
||||
if (! out)
|
||||
goto out;
|
||||
|
||||
if ((a = archive_read_new ()))
|
||||
{
|
||||
const gchar *name = gimp_file_get_utf8_name (infile);
|
||||
|
||||
archive_read_support_format_all (a);
|
||||
|
||||
r = archive_read_open_filename (a, name, 10240);
|
||||
if (r != ARCHIVE_OK)
|
||||
{
|
||||
archive_read_close (a);
|
||||
archive_read_free (a);
|
||||
|
||||
goto out;
|
||||
}
|
||||
|
||||
if (archive_read_next_header (a, &entry) == ARCHIVE_OK)
|
||||
{
|
||||
r = archive_read_data_into_fd (a, fileno (out));
|
||||
|
||||
if (r != ARCHIVE_OK)
|
||||
{
|
||||
archive_read_close (a);
|
||||
archive_read_free (a);
|
||||
|
||||
goto out;
|
||||
}
|
||||
ret = TRUE;
|
||||
|
||||
if (archive_read_next_header (a, &entry) != ARCHIVE_EOF)
|
||||
/* Leave a chance for the load to succeed (in case the first
|
||||
* file happens to be an image file), yet still warns. This
|
||||
* procedure expects that the archive contains a single
|
||||
* file.
|
||||
*/
|
||||
g_message (_("This zip archive contains more than one file."));
|
||||
}
|
||||
archive_read_close (a);
|
||||
archive_read_free (a);
|
||||
}
|
||||
|
||||
out:
|
||||
if (in)
|
||||
fclose (in);
|
||||
|
||||
if (out)
|
||||
fclose (out);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* get file size from a filename */
|
||||
static goffset
|
||||
get_file_info (GFile *file)
|
||||
|
@@ -10,9 +10,7 @@ common_plugins_list = [
|
||||
{ 'name': 'colormap-remap', },
|
||||
{ 'name': 'compose', },
|
||||
{ 'name': 'contrast-retinex', },
|
||||
{ 'name': 'crop-zealous',
|
||||
'deps': [ gtk3, gegl, gdk_pixbuf, cairo, ],
|
||||
},
|
||||
{ 'name': 'crop-zealous' },
|
||||
{ 'name': 'curve-bend', },
|
||||
{ 'name': 'decompose', },
|
||||
{ 'name': 'depth-merge', },
|
||||
@@ -20,7 +18,7 @@ common_plugins_list = [
|
||||
{ 'name': 'destripe', },
|
||||
{ 'name': 'file-cel', },
|
||||
{ 'name': 'file-compressor',
|
||||
'deps': [ gegl, gdk_pixbuf, cairo, gio, liblzma, pango, bz2, zlib, ],
|
||||
'deps': [ gio, libarchive, liblzma, pango, bz2, zlib, ],
|
||||
},
|
||||
{ 'name': 'file-csource', },
|
||||
{ 'name': 'file-dicom', },
|
||||
@@ -28,34 +26,32 @@ common_plugins_list = [
|
||||
{ 'name': 'file-gbr', },
|
||||
{ 'name': 'file-gegl', },
|
||||
{ 'name': 'file-gif-load',
|
||||
'deps': [ gtk3, gegl, gdk_pixbuf, cairo, zlib, ],
|
||||
'deps': [ zlib, ],
|
||||
},
|
||||
{ 'name': 'file-gif-export', },
|
||||
{ 'name': 'file-gih', },
|
||||
{ 'name': 'file-glob',
|
||||
'deps': [ gtk3, gegl, gdk_pixbuf, cairo, ],
|
||||
},
|
||||
{ 'name': 'file-glob', },
|
||||
{ 'name': 'file-header', },
|
||||
{ 'name': 'file-html-table', },
|
||||
{ 'name': 'file-paa', },
|
||||
{ 'name': 'file-pat', },
|
||||
{ 'name': 'file-pcx', },
|
||||
{ 'name': 'file-pdf-load',
|
||||
'deps': [ gtk3, gegl, gdk_pixbuf, poppler ],
|
||||
'deps': [ poppler ],
|
||||
},
|
||||
{ 'name': 'file-pix', },
|
||||
{ 'name': 'file-png',
|
||||
'deps': [ gtk3, gegl, libpng, lcms ],
|
||||
'deps': [ libpng, lcms ],
|
||||
},
|
||||
{ 'name': 'file-pnm', },
|
||||
{ 'name': 'file-psp',
|
||||
'deps': [ gtk3, gegl, zlib, ],
|
||||
'deps': [ zlib, ],
|
||||
},
|
||||
{ 'name': 'file-raw-data', },
|
||||
{ 'name': 'file-seattle-filmworks', },
|
||||
{ 'name': 'file-sunras', },
|
||||
{ 'name': 'file-svg',
|
||||
'deps': [ gtk3, gegl, rsvg, ],
|
||||
'deps': [ rsvg, ],
|
||||
},
|
||||
{ 'name': 'file-tga', },
|
||||
{ 'name': 'file-tim', },
|
||||
@@ -88,26 +84,26 @@ common_plugins_list = [
|
||||
if libaa.found()
|
||||
common_plugins_list += {
|
||||
'name': 'file-aa',
|
||||
'deps': [ gtk3, gegl, gdk_pixbuf, libaa, ],
|
||||
'deps': [ libaa, ],
|
||||
}
|
||||
endif
|
||||
|
||||
if have_heif
|
||||
common_plugins_list += { 'name': 'file-heif',
|
||||
'deps': [ gtk3, gegl, libheif, gexiv2, lcms, ],
|
||||
'deps': [ libheif, lcms, ],
|
||||
}
|
||||
endif
|
||||
|
||||
if openjpeg.found()
|
||||
common_plugins_list += { 'name': 'file-jp2',
|
||||
'deps': [ gtk3, gegl, gdk_pixbuf, openjpeg, ],
|
||||
'deps': [ openjpeg, ],
|
||||
}
|
||||
endif
|
||||
|
||||
if libjxl.found() and libjxl_threads.found()
|
||||
common_plugins_list += {
|
||||
'name': 'file-jpegxl',
|
||||
'deps': [ gtk3, gegl, gexiv2, libjxl, libjxl_threads, ],
|
||||
'deps': [ libjxl, libjxl_threads, ],
|
||||
}
|
||||
endif
|
||||
|
||||
@@ -117,57 +113,55 @@ if libmng.found()
|
||||
mng_cflags = [ '-DMNG_USE_DLL' ]
|
||||
endif
|
||||
common_plugins_list += { 'name': 'file-mng',
|
||||
'deps': [ gtk3, gegl, libmng, libpng, ],
|
||||
'deps': [ libmng, libpng, ],
|
||||
'cflags': mng_cflags,
|
||||
}
|
||||
endif
|
||||
|
||||
if cairopdf.found()
|
||||
common_plugins_list += { 'name': 'file-pdf-export',
|
||||
'deps': [ gtk3, gegl, gdk_pixbuf, poppler, cairo, cairopdf ],
|
||||
'deps': [ poppler, cairopdf ],
|
||||
}
|
||||
endif
|
||||
|
||||
if ghostscript.found()
|
||||
common_plugins_list += { 'name': 'file-ps',
|
||||
'deps': [ gtk3, gegl, gdk_pixbuf, ghostscript, ],
|
||||
'deps': [ ghostscript, ],
|
||||
}
|
||||
endif
|
||||
|
||||
if wmf.found()
|
||||
common_plugins_list += { 'name': 'file-wmf',
|
||||
'deps': [ gtk3, gegl, wmf, ],
|
||||
'deps': [ wmf, ],
|
||||
}
|
||||
endif
|
||||
|
||||
if xmc.found()
|
||||
common_plugins_list += { 'name': 'file-xmc',
|
||||
'deps': [ gtk3, gegl, xmc, ],
|
||||
'deps': [ xmc, ],
|
||||
}
|
||||
endif
|
||||
|
||||
if libxpm.found()
|
||||
common_plugins_list += { 'name': 'file-xpm',
|
||||
'deps': [ gtk3, gegl, libxpm, ],
|
||||
'deps': [ libxpm, ],
|
||||
}
|
||||
endif
|
||||
|
||||
if have_qoi
|
||||
common_plugins_list += {
|
||||
'name': 'file-qoi',
|
||||
'deps': [ gtk3, gegl, ],
|
||||
}
|
||||
endif
|
||||
|
||||
if libiff.found() and libilbm.found()
|
||||
common_plugins_list += {
|
||||
'name': 'file-iff',
|
||||
'deps': [ gtk3, gegl, libiff, libilbm, ],
|
||||
'deps': [ libiff, libilbm, ],
|
||||
}
|
||||
elif have_ilbm
|
||||
common_plugins_list += {
|
||||
'name': 'file-iff',
|
||||
'deps': [ gtk3, gegl, ],
|
||||
}
|
||||
endif
|
||||
|
||||
@@ -178,7 +172,6 @@ endif
|
||||
if platform_linux
|
||||
common_plugins_list += {
|
||||
'name': 'file-desktop-link',
|
||||
'deps': [ gtk3, gegl, gdk_pixbuf, cairo, ],
|
||||
}
|
||||
endif
|
||||
if not platform_windows
|
||||
@@ -187,7 +180,7 @@ endif
|
||||
|
||||
if get_option('webkit-unmaintained')
|
||||
common_plugins_list += { 'name': 'web-page',
|
||||
'deps': [ gtk3, gegl, gdk_pixbuf, webkit, ],
|
||||
'deps': [ webkit, ],
|
||||
}
|
||||
endif
|
||||
|
||||
@@ -195,7 +188,7 @@ plugin_custom_targets = []
|
||||
foreach plugin : common_plugins_list
|
||||
plugin_name = plugin.get('name')
|
||||
plugin_sources = [ plugin.get('sources', plugin_name + '.c') ]
|
||||
plugin_deps = plugin.get('deps', [ gtk3, gegl, gdk_pixbuf, ])
|
||||
plugin_deps = plugin.get('deps', [])
|
||||
plugin_cflags = plugin.get('cflags', [])
|
||||
|
||||
if platform_windows
|
||||
@@ -241,7 +234,7 @@ foreach plugin : common_plugins_list
|
||||
libgimpui,
|
||||
libgimpwidgets,
|
||||
],
|
||||
dependencies: [ plugin_deps, math ],
|
||||
dependencies: [ plugin_deps, math, libgimpui_dep ],
|
||||
c_args: plugin_cflags,
|
||||
win_subsystem: 'windows',
|
||||
install: true,
|
||||
|
@@ -28,7 +28,7 @@ help_plugin_lib = static_library('help_plugin',
|
||||
plugin_sources,
|
||||
include_directories: [ rootInclude, ],
|
||||
dependencies: [
|
||||
gtk3, gegl, cairo, gio, gdk_pixbuf,
|
||||
libgimpui_dep, gio,
|
||||
],
|
||||
install: false,
|
||||
)
|
||||
|
@@ -229,7 +229,7 @@ def export_ora(procedure, run_mode, image, file, options, metadata, config, data
|
||||
tmp_img.set_palette(image.get_palette())
|
||||
|
||||
tmp_layer = Gimp.Layer.new_from_drawable (drawable, tmp_img)
|
||||
tmp_layer.set_visible (False)
|
||||
tmp_layer.set_offsets (0, 0)
|
||||
tmp_img.insert_layer (tmp_layer, None, 0)
|
||||
|
||||
pdb_proc = Gimp.get_pdb().lookup_procedure('file-png-export')
|
||||
|
700
po-libgimp/da.po
700
po-libgimp/da.po
File diff suppressed because it is too large
Load Diff
1751
po-libgimp/ru.po
1751
po-libgimp/ru.po
File diff suppressed because it is too large
Load Diff
16490
po-plug-ins/ru.po
16490
po-plug-ins/ru.po
File diff suppressed because it is too large
Load Diff
@@ -9,8 +9,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: gimp-plug-ins\n"
|
||||
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gimp/issues\n"
|
||||
"POT-Creation-Date: 2025-09-04 09:35+0000\n"
|
||||
"PO-Revision-Date: 2025-09-04 19:10+0300\n"
|
||||
"POT-Creation-Date: 2025-10-02 00:31+0000\n"
|
||||
"PO-Revision-Date: 2025-10-02 11:21+0300\n"
|
||||
"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
|
||||
"Language-Team: Ukrainian <trans-uk@lists.fedoraproject.org>\n"
|
||||
"Language: uk\n"
|
||||
@@ -42,7 +42,7 @@ msgstr "Приклад додатка мовою C"
|
||||
#: plug-ins/common/qbist.c:254 plug-ins/common/sample-colorize.c:425
|
||||
#: plug-ins/common/smooth-palette.c:193 plug-ins/common/sparkle.c:301
|
||||
#: plug-ins/common/sphere-designer.c:3199 plug-ins/common/tile.c:222
|
||||
#: plug-ins/common/tile-small.c:312 plug-ins/common/van-gogh-lic.c:242
|
||||
#: plug-ins/common/tile-small.c:311 plug-ins/common/van-gogh-lic.c:242
|
||||
#: plug-ins/common/warp.c:344 plug-ins/common/wavelet-decompose.c:179
|
||||
#: plug-ins/flame/flame.c:297 plug-ins/fractal-explorer/fractal-explorer.c:427
|
||||
#: plug-ins/gfig/gfig.c:213 plug-ins/gimpressionist/gimp.c:184
|
||||
@@ -568,7 +568,7 @@ msgstr "_Кількість сегментів"
|
||||
msgid "Number of segments in blinds"
|
||||
msgstr "Кількість сегментів у жалюзі"
|
||||
|
||||
#: plug-ins/common/blinds.c:165 plug-ins/map-object/map-object-ui.c:408
|
||||
#: plug-ins/common/blinds.c:165 plug-ins/map-object/map-object-ui.c:412
|
||||
msgid "Orient_ation"
|
||||
msgstr "_Орієнтація"
|
||||
|
||||
@@ -603,7 +603,7 @@ msgstr "Жалюзі"
|
||||
#.
|
||||
#. * Create the "background" layer to hold the image...
|
||||
#.
|
||||
#: plug-ins/common/blinds.c:260 plug-ins/common/compose.c:1230
|
||||
#: plug-ins/common/blinds.c:260 plug-ins/common/compose.c:1234
|
||||
#: plug-ins/common/decompose.c:642 plug-ins/common/file-cel.c:475
|
||||
#: plug-ins/common/file-cel.c:480 plug-ins/common/file-dicom.c:765
|
||||
#: plug-ins/common/file-farbfeld.c:307 plug-ins/common/file-gegl.c:446
|
||||
@@ -1711,36 +1711,36 @@ msgstr "Не вдається отримати шари зображення %d"
|
||||
msgid "Composing"
|
||||
msgstr "Збирання"
|
||||
|
||||
#: plug-ins/common/compose.c:1075 plug-ins/common/compose.c:1475
|
||||
#: plug-ins/common/compose.c:1079 plug-ins/common/compose.c:1479
|
||||
msgid "At least one image is needed to compose"
|
||||
msgstr "Для збирання треба принаймні одне зображення"
|
||||
|
||||
#: plug-ins/common/compose.c:1096
|
||||
#: plug-ins/common/compose.c:1100
|
||||
msgid "Drawables have different size"
|
||||
msgstr "Малюнки мають різні розміри"
|
||||
|
||||
#: plug-ins/common/compose.c:1124
|
||||
#: plug-ins/common/compose.c:1128
|
||||
msgid "Images have different size"
|
||||
msgstr "Зображення мають різний розмір"
|
||||
|
||||
#: plug-ins/common/compose.c:1142
|
||||
#: plug-ins/common/compose.c:1146
|
||||
msgid "Error in getting layer IDs"
|
||||
msgstr "Помилка отримання ідентифікатора шару"
|
||||
|
||||
#: plug-ins/common/compose.c:1275
|
||||
#: plug-ins/common/compose.c:1279
|
||||
msgid "Compose"
|
||||
msgstr "Зібрати"
|
||||
|
||||
#: plug-ins/common/compose.c:1290
|
||||
#: plug-ins/common/compose.c:1294
|
||||
msgid "Compose Channels"
|
||||
msgstr "Зібрати канали"
|
||||
|
||||
#. Channel representation grid
|
||||
#: plug-ins/common/compose.c:1305
|
||||
#: plug-ins/common/compose.c:1309
|
||||
msgid "Channel Representations"
|
||||
msgstr "Представлення каналу"
|
||||
|
||||
#: plug-ins/common/compose.c:1365
|
||||
#: plug-ins/common/compose.c:1369
|
||||
msgid "Mask value"
|
||||
msgstr "Значення маски"
|
||||
|
||||
@@ -2009,7 +2009,7 @@ msgstr "Неможливо виконувати дії з порожнім ви
|
||||
#: plug-ins/common/file-pcx.c:490 plug-ins/common/file-pcx.c:533
|
||||
#: plug-ins/common/file-png.c:800 plug-ins/common/file-png.c:1370
|
||||
#: plug-ins/common/file-ps.c:1158 plug-ins/common/file-ps.c:3738
|
||||
#: plug-ins/common/file-psp.c:2634 plug-ins/common/file-psp.c:2684
|
||||
#: plug-ins/common/file-psp.c:2638 plug-ins/common/file-psp.c:2688
|
||||
#: plug-ins/common/file-qoi.c:275 plug-ins/common/file-raw-data.c:608
|
||||
#: plug-ins/common/file-raw-data.c:796 plug-ins/common/file-raw-data.c:1841
|
||||
#: plug-ins/common/file-seattle-filmworks.c:232
|
||||
@@ -2102,7 +2102,7 @@ msgstr "Переставити дві криві"
|
||||
|
||||
#. The Reset button
|
||||
#: plug-ins/common/curve-bend.c:1232 plug-ins/common/sphere-designer.c:2654
|
||||
#: plug-ins/common/tile-small.c:523 plug-ins/gimpressionist/preview.c:182
|
||||
#: plug-ins/common/tile-small.c:522 plug-ins/gimpressionist/preview.c:182
|
||||
#: plug-ins/ifs-compose/ifs-compose.c:912
|
||||
msgid "_Reset"
|
||||
msgstr "_Скинути"
|
||||
@@ -2702,7 +2702,7 @@ msgstr "«%s»: Кінець файлу або помилка при читан
|
||||
#. * Open the file for writing...
|
||||
#.
|
||||
#: plug-ins/common/file-cel.c:825 plug-ins/common/file-farbfeld.c:364
|
||||
#: plug-ins/common/file-gif-export.c:939 plug-ins/common/file-html-table.c:360
|
||||
#: plug-ins/common/file-gif-export.c:939 plug-ins/common/file-html-table.c:358
|
||||
#: plug-ins/common/file-jp2.c:1804 plug-ins/common/file-jpegxl.c:1389
|
||||
#: plug-ins/common/file-pcx.c:1083 plug-ins/common/file-pix.c:636
|
||||
#: plug-ins/common/file-png.c:1915 plug-ins/common/file-pnm.c:1623
|
||||
@@ -2723,116 +2723,194 @@ msgstr "Експортування «%s»"
|
||||
msgid "C source code"
|
||||
msgstr "Програма на C"
|
||||
|
||||
#: plug-ins/common/file-csource.c:125
|
||||
#: plug-ins/common/file-csource.c:125 plug-ins/common/file-csource.c:127
|
||||
msgid "Dump image data in RGB(A) format for C source"
|
||||
msgstr ""
|
||||
"Створити дамп даних зображення у форматі RGB(A) для початкового коду C"
|
||||
|
||||
#: plug-ins/common/file-csource.c:127
|
||||
msgid "CSource cannot be run non-interactively."
|
||||
msgstr "CSource не можна запускати у неінтерактивному режимі."
|
||||
|
||||
#: plug-ins/common/file-csource.c:135
|
||||
#: plug-ins/common/file-csource.c:136
|
||||
msgid "C-Source"
|
||||
msgstr "Початковий код C"
|
||||
|
||||
#: plug-ins/common/file-csource.c:149
|
||||
#: plug-ins/common/file-csource.c:150
|
||||
msgid "_Prefixed name"
|
||||
msgstr "Назва з пре_фіксом"
|
||||
|
||||
#: plug-ins/common/file-csource.c:150
|
||||
#: plug-ins/common/file-csource.c:151
|
||||
msgid "Prefixed name"
|
||||
msgstr "Назва з префіксом"
|
||||
|
||||
#: plug-ins/common/file-csource.c:155
|
||||
#: plug-ins/common/file-csource.c:156
|
||||
msgid "Comme_nt"
|
||||
msgstr "Ко_ментар"
|
||||
|
||||
#: plug-ins/common/file-csource.c:156
|
||||
#: plug-ins/common/file-csource.c:157
|
||||
msgid "Comment"
|
||||
msgstr "Коментар"
|
||||
|
||||
#: plug-ins/common/file-csource.c:164
|
||||
#: plug-ins/common/file-csource.c:165
|
||||
msgid "Save comment to _file"
|
||||
msgstr "Зберегти коментар у фа_йлі"
|
||||
|
||||
#: plug-ins/common/file-csource.c:165
|
||||
#: plug-ins/common/file-csource.c:166
|
||||
msgid "Save comment"
|
||||
msgstr "Зберегти коментар"
|
||||
|
||||
#: plug-ins/common/file-csource.c:170
|
||||
#: plug-ins/common/file-csource.c:171
|
||||
msgid "Use GLib types (guint_8*)"
|
||||
msgstr "Використовувати типи GLib (guint_8*)"
|
||||
|
||||
#: plug-ins/common/file-csource.c:171
|
||||
#: plug-ins/common/file-csource.c:172
|
||||
msgid "Use GLib types"
|
||||
msgstr "Використовувати типи GLib"
|
||||
|
||||
#: plug-ins/common/file-csource.c:176
|
||||
#: plug-ins/common/file-csource.c:177
|
||||
msgid "Save alpha channel (RG_BA/RGB)"
|
||||
msgstr "Зберегти а_льфа-канал (RGBA/RGB)"
|
||||
|
||||
#: plug-ins/common/file-csource.c:177
|
||||
#: plug-ins/common/file-csource.c:178
|
||||
msgid "Save the alpha channel"
|
||||
msgstr "Зберегти альфа-канал"
|
||||
|
||||
#: plug-ins/common/file-csource.c:182
|
||||
#: plug-ins/common/file-csource.c:183
|
||||
msgid "Save as RGB565 (1_6-bit)"
|
||||
msgstr "Зберегти як RGB565 (1_6 біт)"
|
||||
|
||||
#: plug-ins/common/file-csource.c:183
|
||||
#: plug-ins/common/file-csource.c:184
|
||||
msgid "Use RGB565 encoding"
|
||||
msgstr "Використовувати кодування RGB565"
|
||||
|
||||
#: plug-ins/common/file-csource.c:188
|
||||
#: plug-ins/common/file-csource.c:189
|
||||
msgid "_Use macros instead of struct"
|
||||
msgstr "Ви_користовувати макроси замість структур"
|
||||
|
||||
#: plug-ins/common/file-csource.c:189
|
||||
#: plug-ins/common/file-csource.c:190
|
||||
msgid "Use C macros"
|
||||
msgstr "Використати макрос C"
|
||||
|
||||
#: plug-ins/common/file-csource.c:194
|
||||
#: plug-ins/common/file-csource.c:195
|
||||
msgid "Use _1 bit Run-Length-Encoding"
|
||||
msgstr "Використовувати _1-бітове RLE"
|
||||
|
||||
#: plug-ins/common/file-csource.c:195
|
||||
#: plug-ins/common/file-csource.c:196
|
||||
msgid "Use run-length-encoding"
|
||||
msgstr "Використовувати RLE"
|
||||
|
||||
#: plug-ins/common/file-csource.c:200 plug-ins/pagecurl/pagecurl.c:262
|
||||
#: plug-ins/common/file-csource.c:201 plug-ins/pagecurl/pagecurl.c:262
|
||||
msgid "Opaci_ty"
|
||||
msgstr "Неп_розорість"
|
||||
|
||||
#: plug-ins/common/file-csource.c:201 plug-ins/pagecurl/pagecurl.c:263
|
||||
#: plug-ins/common/file-csource.c:202 plug-ins/pagecurl/pagecurl.c:263
|
||||
msgid "Opacity"
|
||||
msgstr "Непрозорість"
|
||||
|
||||
#: plug-ins/common/file-compressor.c:216
|
||||
#: plug-ins/common/file-compressor.c:221
|
||||
msgid "gzip archive"
|
||||
msgstr "архів gzip"
|
||||
|
||||
#: plug-ins/common/file-compressor.c:229
|
||||
msgid "Loads files compressed with gzip"
|
||||
msgstr "Завантажує файли, які стиснуто за допомогою gzip"
|
||||
|
||||
#: plug-ins/common/file-compressor.c:230
|
||||
#| msgid ""
|
||||
#| "This plug-in loads files in the various Netpbm portable file formats."
|
||||
msgid "This procedure loads files in the gzip compressed format."
|
||||
msgstr "Ця процедура завантажує файли у стисненому форматі gzip."
|
||||
|
||||
#: plug-ins/common/file-compressor.c:234
|
||||
msgid "Exports files compressed with gzip"
|
||||
msgstr "Експортує файли, які стиснуто за допомогою gzip"
|
||||
|
||||
#: plug-ins/common/file-compressor.c:235
|
||||
#| msgid "Exports files in the PNM file format"
|
||||
msgid "This procedure exports files in the gzip compressed format."
|
||||
msgstr "Ця процедура експортує файли у стисненому форматі gzip."
|
||||
|
||||
#: plug-ins/common/file-compressor.c:240
|
||||
msgid "bzip archive"
|
||||
msgstr "архів bzip"
|
||||
|
||||
#: plug-ins/common/file-compressor.c:248
|
||||
msgid "Loads files compressed with bzip2"
|
||||
msgstr "Завантажує файли, які стиснуто за допомогою bzip2"
|
||||
|
||||
#: plug-ins/common/file-compressor.c:249
|
||||
#| msgid ""
|
||||
#| "This plug-in loads files in the various Netpbm portable file formats."
|
||||
msgid "This procedure loads files in the bzip2 compressed format."
|
||||
msgstr "Ця процедура завантажує файли у стисненому форматі bzip2."
|
||||
|
||||
#: plug-ins/common/file-compressor.c:253
|
||||
msgid "Exports files compressed with bzip2"
|
||||
msgstr "Експортує файли, які стиснуто за допомогою bzip2"
|
||||
|
||||
#: plug-ins/common/file-compressor.c:254
|
||||
#| msgid ""
|
||||
#| "This plug-in loads files in the various Netpbm portable file formats."
|
||||
msgid "This procedure exports files in the bzip2 compressed format."
|
||||
msgstr "Ця процедура експортує файли у стисненому форматі bzip2."
|
||||
|
||||
#: plug-ins/common/file-compressor.c:259
|
||||
msgid "xz archive"
|
||||
msgstr "архів xz"
|
||||
|
||||
#: plug-ins/common/file-compressor.c:447
|
||||
#: plug-ins/common/file-compressor.c:267
|
||||
msgid "Loads files compressed with xz"
|
||||
msgstr "Завантажує файли, які стиснуто за допомогою xz"
|
||||
|
||||
#: plug-ins/common/file-compressor.c:268
|
||||
#| msgid ""
|
||||
#| "This plug-in loads files in the various Netpbm portable file formats."
|
||||
msgid "This procedure loads files in the xz compressed format."
|
||||
msgstr "Ця процедура завантажує файли у стисненому форматі xz."
|
||||
|
||||
#: plug-ins/common/file-compressor.c:272
|
||||
#| msgid "Error reading compressed data. "
|
||||
msgid "Exports files compressed with xz"
|
||||
msgstr "Експортує файли, які стиснуто за допомогою xz"
|
||||
|
||||
#: plug-ins/common/file-compressor.c:273
|
||||
#| msgid "Exports files in the PNM file format"
|
||||
msgid "This procedure exports files in the xz compressed format."
|
||||
msgstr "Ця процедура експортує файли у стисненому форматі xz."
|
||||
|
||||
#: plug-ins/common/file-compressor.c:278
|
||||
msgid "zip archive"
|
||||
msgstr "архів zip"
|
||||
|
||||
#: plug-ins/common/file-compressor.c:286
|
||||
msgid "Loads files compressed with zip"
|
||||
msgstr "Завантажує файли, які стиснуто за допомогою zip"
|
||||
|
||||
#: plug-ins/common/file-compressor.c:287
|
||||
#| msgid ""
|
||||
#| "This plug-in loads files in the various Netpbm portable file formats."
|
||||
msgid "This procedure loads files in the zip compressed format."
|
||||
msgstr "Ця процедура завантажує файли у стисненому форматі zip."
|
||||
|
||||
#: plug-ins/common/file-compressor.c:471
|
||||
msgid "No sensible file extension, saving as compressed XCF."
|
||||
msgstr "Немає потрібного розширення, зберігається як стиснутий XCF."
|
||||
|
||||
#: plug-ins/common/file-compressor.c:467
|
||||
#: plug-ins/common/file-compressor.c:491
|
||||
#, c-format
|
||||
msgid "Compressing '%s'"
|
||||
msgstr "Стиснення «%s»"
|
||||
|
||||
#: plug-ins/common/file-compressor.c:505
|
||||
#: plug-ins/common/file-compressor.c:529
|
||||
msgid "No sensible file extension, attempting to load with file magic."
|
||||
msgstr "Немає потрібного розширення, спроба визначення типу за вмістом файлу."
|
||||
|
||||
#. Leave a chance for the load to succeed (in case the first
|
||||
#. * file happens to be an image file), yet still warns. This
|
||||
#. * procedure expects that the archive contains a single
|
||||
#. * file.
|
||||
#.
|
||||
#: plug-ins/common/file-compressor.c:1110
|
||||
msgid "This zip archive contains more than one file."
|
||||
msgstr "В архіві zip міститься декілька файлів."
|
||||
|
||||
#: plug-ins/common/file-desktop-link.c:114
|
||||
msgid "Desktop Link"
|
||||
msgstr "Посилання .desktop"
|
||||
@@ -2907,14 +2985,11 @@ msgstr ""
|
||||
#, c-format
|
||||
msgid "'%s' has a bpp of %d which GIMP cannot handle."
|
||||
msgstr ""
|
||||
"«%s» використовує кількість бітів на піксель %d, з якою не може працювати"
|
||||
" GIMP."
|
||||
"«%s» використовує кількість бітів на піксель %d, з якою не може працювати "
|
||||
"GIMP."
|
||||
|
||||
#: plug-ins/common/file-dicom.c:719
|
||||
#, c-format
|
||||
#| msgid ""
|
||||
#| "'%s':\n"
|
||||
#| "Image width is larger than GIMP can handle"
|
||||
msgid "'%s' has a larger image size (%d x %d) than GIMP can handle."
|
||||
msgstr ""
|
||||
"«%s» містить зображення більшого розміру (%d x %d), ніж може обробляти GIMP."
|
||||
@@ -2923,16 +2998,15 @@ msgstr ""
|
||||
#, c-format
|
||||
msgid "'%s' has samples per pixel of %d which GIMP cannot handle."
|
||||
msgstr ""
|
||||
"«%s» використовує кількість семплів на піксель %d, з якою не може працювати"
|
||||
" GIMP."
|
||||
"«%s» використовує кількість семплів на піксель %d, з якою не може працювати "
|
||||
"GIMP."
|
||||
|
||||
#: plug-ins/common/file-dicom.c:741
|
||||
#, c-format
|
||||
#| msgid "Overflow reading compressed data. Possibly corrupt file."
|
||||
msgid "'%s' has not enough pixel data. Possibly corrupt image."
|
||||
msgstr ""
|
||||
"«%s» не має достатнього обсягу даних пікселів. Ймовірно, зображення"
|
||||
" пошкоджено."
|
||||
"«%s» не має достатнього обсягу даних пікселів. Ймовірно, зображення "
|
||||
"пошкоджено."
|
||||
|
||||
#: plug-ins/common/file-dicom.c:1543
|
||||
msgid "Cannot save images with alpha channel."
|
||||
@@ -3499,20 +3573,20 @@ msgstr "Розмір_ність"
|
||||
msgid "How many dimensions the animated brush has"
|
||||
msgstr "Кількість розмірностей анімаційного пензля"
|
||||
|
||||
#: plug-ins/common/file-gih.c:521
|
||||
#: plug-ins/common/file-gih.c:529
|
||||
msgid "Width Mismatch!"
|
||||
msgstr "Невідповідність ширини!"
|
||||
|
||||
#: plug-ins/common/file-gih.c:522
|
||||
#: plug-ins/common/file-gih.c:530
|
||||
msgid "Height Mismatch!"
|
||||
msgstr "Невідповідність висоти!"
|
||||
|
||||
#: plug-ins/common/file-gih.c:569
|
||||
#: plug-ins/common/file-gih.c:577
|
||||
#, c-format
|
||||
msgid "Displays as a %d × %d grid on each layer"
|
||||
msgstr "Показує як ґратку %d × %d на кожному шарі"
|
||||
|
||||
#: plug-ins/common/file-gih.c:755
|
||||
#: plug-ins/common/file-gih.c:763
|
||||
msgid "Ranks:"
|
||||
msgstr "Кількість кадрів:"
|
||||
|
||||
@@ -3877,7 +3951,7 @@ msgstr "_Інтервал між комірками"
|
||||
msgid "The amount of cell spacing."
|
||||
msgstr "Об'єм інтервалу між комірками."
|
||||
|
||||
#: plug-ins/common/file-html-table.c:610
|
||||
#: plug-ins/common/file-html-table.c:608
|
||||
msgid ""
|
||||
"You are about to create a huge\n"
|
||||
"HTML file which will most likely\n"
|
||||
@@ -3887,19 +3961,19 @@ msgstr ""
|
||||
"HTML-файл, який майже напевне\n"
|
||||
"призведе до збою вашого переглядача."
|
||||
|
||||
#: plug-ins/common/file-html-table.c:628
|
||||
#: plug-ins/common/file-html-table.c:626
|
||||
msgid "Warning"
|
||||
msgstr "Попередження"
|
||||
|
||||
#: plug-ins/common/file-html-table.c:642
|
||||
#: plug-ins/common/file-html-table.c:640
|
||||
msgid "HTML Page Options"
|
||||
msgstr "Параметри HTML-сторінки"
|
||||
|
||||
#: plug-ins/common/file-html-table.c:653
|
||||
#: plug-ins/common/file-html-table.c:651
|
||||
msgid "Table Creation Options"
|
||||
msgstr "Параметри створення таблиці"
|
||||
|
||||
#: plug-ins/common/file-html-table.c:673
|
||||
#: plug-ins/common/file-html-table.c:671
|
||||
msgid "Table Options"
|
||||
msgstr "Параметри таблиці"
|
||||
|
||||
@@ -3922,9 +3996,6 @@ msgstr "В ILBM не міститься даних зображення — йм
|
||||
|
||||
#: plug-ins/common/file-iff.c:363
|
||||
#, c-format
|
||||
#| msgid ""
|
||||
#| "'%s':\n"
|
||||
#| "Invalid color map"
|
||||
msgid "Invalid ILBM colormap size"
|
||||
msgstr "Некоректний розмір карти кольорів ILBM"
|
||||
|
||||
@@ -4944,6 +5015,7 @@ msgstr ""
|
||||
"Software: %s"
|
||||
|
||||
#: plug-ins/common/file-pix.c:582
|
||||
#, c-format
|
||||
msgid "Invalid Esm Software PIX file"
|
||||
msgstr "Некоректний файл PIX Esm Software"
|
||||
|
||||
@@ -5528,7 +5600,7 @@ msgstr ""
|
||||
"Якщо увімкнено, при експортуванні буде збережено пропорції. Якщо не буде "
|
||||
"увімкнено, буде використано значення ширини і висоти."
|
||||
|
||||
#: plug-ins/common/file-ps.c:565 plug-ins/map-object/map-object-ui.c:719
|
||||
#: plug-ins/common/file-ps.c:565 plug-ins/map-object/map-object-ui.c:723
|
||||
msgid "Rotation"
|
||||
msgstr "Обертання"
|
||||
|
||||
@@ -5797,97 +5869,97 @@ msgstr "Помилка читання фрагмента інформації к
|
||||
msgid "Invalid channel type %d in channel information chunk"
|
||||
msgstr "Хибний тип каналу %d у фрагменті інформації каналу"
|
||||
|
||||
#: plug-ins/common/file-psp.c:2281 plug-ins/common/file-psp.c:2298
|
||||
#: plug-ins/common/file-psp.c:2283 plug-ins/common/file-psp.c:2300
|
||||
#, c-format
|
||||
msgid "Error reading tube data chunk"
|
||||
msgstr "Помилка при читання фрагмента даних тюбика"
|
||||
|
||||
#: plug-ins/common/file-psp.c:2385 plug-ins/common/file-psp.c:2401
|
||||
#: plug-ins/common/file-psp.c:2389 plug-ins/common/file-psp.c:2405
|
||||
#, c-format
|
||||
msgid "Error reading selection chunk"
|
||||
msgstr "Помилка зчитування фрагмента позначеного"
|
||||
|
||||
#: plug-ins/common/file-psp.c:2394
|
||||
#: plug-ins/common/file-psp.c:2398
|
||||
#, c-format
|
||||
msgid "Invalid selection chunk size"
|
||||
msgstr "Некоректний розмір фрагмента позначеного"
|
||||
|
||||
#: plug-ins/common/file-psp.c:2418
|
||||
#: plug-ins/common/file-psp.c:2422
|
||||
#, c-format
|
||||
msgid "Error reading end of selection chunk"
|
||||
msgstr "Помилка зчитування кінця фрагмента позначеного"
|
||||
|
||||
#: plug-ins/common/file-psp.c:2443
|
||||
#: plug-ins/common/file-psp.c:2447
|
||||
#, c-format
|
||||
msgid "Error reading extended block chunk header"
|
||||
msgstr "Помилка при читанні заголовка фрагмента розширеного блока"
|
||||
|
||||
#: plug-ins/common/file-psp.c:2451
|
||||
#: plug-ins/common/file-psp.c:2455
|
||||
#, c-format
|
||||
msgid "Invalid extended block chunk header"
|
||||
msgstr "Некоректний заголовок фрагмента розширеного блоку"
|
||||
|
||||
#: plug-ins/common/file-psp.c:2462
|
||||
#: plug-ins/common/file-psp.c:2466
|
||||
#, c-format
|
||||
msgid "Invalid extended block chunk size"
|
||||
msgstr "Некоректний розмір фрагмента розширеного блоку"
|
||||
|
||||
#: plug-ins/common/file-psp.c:2483
|
||||
#: plug-ins/common/file-psp.c:2487
|
||||
#, c-format
|
||||
msgid "Error reading extended chunk grid data"
|
||||
msgstr "Помилка зчитування даних ґратки розширеного фрагмента"
|
||||
|
||||
#: plug-ins/common/file-psp.c:2511
|
||||
#: plug-ins/common/file-psp.c:2515
|
||||
#, c-format
|
||||
msgid "Error reading extended chunk guide data"
|
||||
msgstr "Помилка при читанні розширеного фрагмента даних напрямної"
|
||||
|
||||
#: plug-ins/common/file-psp.c:2529
|
||||
#: plug-ins/common/file-psp.c:2533
|
||||
#, c-format
|
||||
msgid "Invalid guide orientation"
|
||||
msgstr "Некоректна орієнтація напрямної"
|
||||
|
||||
#: plug-ins/common/file-psp.c:2543
|
||||
#: plug-ins/common/file-psp.c:2547
|
||||
#, c-format
|
||||
msgid "Error reading extended block chunk"
|
||||
msgstr "Помилка зчитування фрагмента розширеного блоку"
|
||||
|
||||
#: plug-ins/common/file-psp.c:2569 plug-ins/common/file-psp.c:2581
|
||||
#: plug-ins/common/file-psp.c:2592
|
||||
#: plug-ins/common/file-psp.c:2573 plug-ins/common/file-psp.c:2585
|
||||
#: plug-ins/common/file-psp.c:2596
|
||||
#, c-format
|
||||
msgid "Error reading colorprofile chunk"
|
||||
msgstr "Помилка під час читання фрагмента профілю кольорів"
|
||||
|
||||
#: plug-ins/common/file-psp.c:2645
|
||||
#: plug-ins/common/file-psp.c:2649
|
||||
#, c-format
|
||||
msgid "Error reading file header."
|
||||
msgstr "Помилка при читанні заголовка файлу."
|
||||
|
||||
#: plug-ins/common/file-psp.c:2652
|
||||
#: plug-ins/common/file-psp.c:2656
|
||||
#, c-format
|
||||
msgid "Incorrect file signature."
|
||||
msgstr "Хибна сигнатура файлу."
|
||||
|
||||
#: plug-ins/common/file-psp.c:2666
|
||||
#: plug-ins/common/file-psp.c:2670
|
||||
#, c-format
|
||||
msgid "Unsupported PSP file format version %d.%d."
|
||||
msgstr "Непідтримувана версія формату файлу PSP %d.%d."
|
||||
|
||||
#: plug-ins/common/file-psp.c:2686
|
||||
#: plug-ins/common/file-psp.c:2690
|
||||
msgid "invalid block size"
|
||||
msgstr "хибний розмір блока"
|
||||
|
||||
#: plug-ins/common/file-psp.c:2695
|
||||
#: plug-ins/common/file-psp.c:2699
|
||||
#, c-format
|
||||
msgid "Duplicate General Image Attributes block."
|
||||
msgstr "Повторний блок загальних атрибутів зображення."
|
||||
|
||||
#: plug-ins/common/file-psp.c:2723
|
||||
#: plug-ins/common/file-psp.c:2727
|
||||
#, c-format
|
||||
msgid "Missing General Image Attributes block."
|
||||
msgstr "Відсутній блок загальних атрибутів зображення."
|
||||
|
||||
#: plug-ins/common/file-psp.c:2848
|
||||
#: plug-ins/common/file-psp.c:2852
|
||||
#, c-format
|
||||
msgid "Exporting not implemented yet."
|
||||
msgstr "Експорт ще не реалізовано."
|
||||
@@ -6677,7 +6749,6 @@ msgstr "«%s»: некоректні розміри, %u x %u"
|
||||
|
||||
#: plug-ins/common/file-wbmp.c:517
|
||||
#, c-format
|
||||
#| msgid "Failed to read frame %d. Possibly corrupt animation.\n"
|
||||
msgid "Read failure at position %u. Possibly corrupt image."
|
||||
msgstr "Помилка читання на позиції %u. Ймовірно, зображення пошкоджено."
|
||||
|
||||
@@ -7271,7 +7342,6 @@ msgstr "Помилка позиціювання"
|
||||
|
||||
#: plug-ins/common/file-xwd.c:1692
|
||||
#, c-format
|
||||
#| msgid "Failed to read frame %d. Possibly corrupt animation.\n"
|
||||
msgid "Invalid colormap offset. Possibly corrupt image."
|
||||
msgstr "Некоректний зсув карти кольорів. Ймовірно, зображення пошкоджено."
|
||||
|
||||
@@ -7647,7 +7717,7 @@ msgstr "Надати зображенню вигляд головоломки-п
|
||||
msgid "Jigsaw puzzle look"
|
||||
msgstr "Вигляд складанки"
|
||||
|
||||
#: plug-ins/common/jigsaw.c:483 plug-ins/common/tile-small.c:503
|
||||
#: plug-ins/common/jigsaw.c:483 plug-ins/common/tile-small.c:502
|
||||
msgid "_Horizontal"
|
||||
msgstr "Г_оризонтально"
|
||||
|
||||
@@ -7655,7 +7725,7 @@ msgstr "Г_оризонтально"
|
||||
msgid "Number of pieces going across"
|
||||
msgstr "Кількість частин вздовж горизонталі"
|
||||
|
||||
#: plug-ins/common/jigsaw.c:489 plug-ins/common/tile-small.c:513
|
||||
#: plug-ins/common/jigsaw.c:489 plug-ins/common/tile-small.c:512
|
||||
msgid "_Vertical"
|
||||
msgstr "_Вертикально"
|
||||
|
||||
@@ -7700,6 +7770,7 @@ msgid "Assembling jigsaw"
|
||||
msgstr "Складання головоломки"
|
||||
|
||||
#: plug-ins/common/jigsaw.c:791
|
||||
#, c-format
|
||||
msgid "draw_jigsaw: bad style\n"
|
||||
msgstr "draw_jigsaw: помилковий стиль\n"
|
||||
|
||||
@@ -8598,7 +8669,7 @@ msgstr "Н_ове зображення"
|
||||
msgid "Create a new image"
|
||||
msgstr "Створення нового зображення"
|
||||
|
||||
#: plug-ins/common/tile.c:258 plug-ins/common/tile-small.c:375
|
||||
#: plug-ins/common/tile.c:258 plug-ins/common/tile-small.c:374
|
||||
msgid "Tiling"
|
||||
msgstr "Укладання черепиці"
|
||||
|
||||
@@ -8610,57 +8681,57 @@ msgstr "Черепиця"
|
||||
msgid "Tile to New Size"
|
||||
msgstr "Розмір площі покриття"
|
||||
|
||||
#: plug-ins/common/tile-small.c:270
|
||||
#: plug-ins/common/tile-small.c:269
|
||||
msgid "_Small Tiles..."
|
||||
msgstr "_Дрібна черепиця..."
|
||||
|
||||
#: plug-ins/common/tile-small.c:274
|
||||
#: plug-ins/common/tile-small.c:273
|
||||
msgid "Tile image into smaller versions of the original"
|
||||
msgstr "Створити зображення з маленьких копій оригіналу"
|
||||
|
||||
#: plug-ins/common/tile-small.c:284
|
||||
#: plug-ins/common/tile-small.c:283
|
||||
msgid "_n²"
|
||||
msgstr "_n²"
|
||||
|
||||
#: plug-ins/common/tile-small.c:285
|
||||
#: plug-ins/common/tile-small.c:284
|
||||
msgid "Number of tiles to make"
|
||||
msgstr "Кількість створених плиток"
|
||||
|
||||
#: plug-ins/common/tile-small.c:330
|
||||
#: plug-ins/common/tile-small.c:329
|
||||
msgid "Region selected for filter is empty."
|
||||
msgstr "Вибрана для фільтра область порожня."
|
||||
|
||||
#: plug-ins/common/tile-small.c:441
|
||||
#: plug-ins/common/tile-small.c:440
|
||||
msgid "Small Tiles"
|
||||
msgstr "Дрібна черепиця"
|
||||
|
||||
#. Area for buttons etc
|
||||
#. Flip
|
||||
#: plug-ins/common/tile-small.c:490 plug-ins/ifs-compose/ifs-compose.c:724
|
||||
#: plug-ins/common/tile-small.c:489 plug-ins/ifs-compose/ifs-compose.c:724
|
||||
msgid "Flip"
|
||||
msgstr "Віддзеркалення"
|
||||
|
||||
#: plug-ins/common/tile-small.c:539
|
||||
#: plug-ins/common/tile-small.c:538
|
||||
msgid "A_ll tiles"
|
||||
msgstr "_Усіх секторів"
|
||||
|
||||
#: plug-ins/common/tile-small.c:552
|
||||
#: plug-ins/common/tile-small.c:551
|
||||
msgid "Al_ternate tiles"
|
||||
msgstr "Кожного д_ругого сектору"
|
||||
|
||||
#: plug-ins/common/tile-small.c:565
|
||||
#: plug-ins/common/tile-small.c:564
|
||||
msgid "_Explicit tile"
|
||||
msgstr "Вка_заного сектору"
|
||||
|
||||
#: plug-ins/common/tile-small.c:570
|
||||
#: plug-ins/common/tile-small.c:569
|
||||
msgid "Ro_w:"
|
||||
msgstr "_Рядок:"
|
||||
|
||||
#: plug-ins/common/tile-small.c:595
|
||||
#: plug-ins/common/tile-small.c:594
|
||||
msgid "Col_umn:"
|
||||
msgstr "Ст_овпчик:"
|
||||
|
||||
#: plug-ins/common/tile-small.c:627
|
||||
#: plug-ins/common/tile-small.c:626
|
||||
#: plug-ins/fractal-explorer/fractal-explorer.c:1358
|
||||
#: plug-ins/gimpressionist/orientmap.c:527
|
||||
#: plug-ins/gimpressionist/presets.c:1064 plug-ins/gimpressionist/sizemap.c:400
|
||||
@@ -8669,11 +8740,11 @@ msgid "_Apply"
|
||||
msgstr "_Застосувати"
|
||||
|
||||
#. Widget for selecting the Opacity
|
||||
#: plug-ins/common/tile-small.c:643
|
||||
#: plug-ins/common/tile-small.c:642
|
||||
msgid "O_pacity:"
|
||||
msgstr "_Непрозорість:"
|
||||
|
||||
#: plug-ins/common/tile-small.c:654
|
||||
#: plug-ins/common/tile-small.c:653
|
||||
msgid "Number of Segments"
|
||||
msgstr "Кількість сегментів"
|
||||
|
||||
@@ -15260,7 +15331,7 @@ msgstr "_Відстань"
|
||||
msgid "Distance of observer from surface"
|
||||
msgstr "Відстань спостерігача від поверхні"
|
||||
|
||||
#: plug-ins/lighting/lighting-ui.c:247 plug-ins/map-object/map-object-ui.c:363
|
||||
#: plug-ins/lighting/lighting-ui.c:247 plug-ins/map-object/map-object-ui.c:367
|
||||
msgid "Recompute preview image"
|
||||
msgstr "Переобчислити перегляд зображення"
|
||||
|
||||
@@ -15280,7 +15351,7 @@ msgstr "_Параметри"
|
||||
msgid "_Light"
|
||||
msgstr "С_вітло"
|
||||
|
||||
#: plug-ins/lighting/lighting-ui.c:272 plug-ins/map-object/map-object-ui.c:406
|
||||
#: plug-ins/lighting/lighting-ui.c:272 plug-ins/map-object/map-object-ui.c:410
|
||||
msgid "_Material"
|
||||
msgstr "_Матеріал"
|
||||
|
||||
@@ -15292,16 +15363,16 @@ msgstr "Мапа _рельєфу"
|
||||
msgid "_Environment Map"
|
||||
msgstr "Мапа с_ередовища"
|
||||
|
||||
#: plug-ins/lighting/lighting-ui.c:281 plug-ins/map-object/map-object-ui.c:419
|
||||
#: plug-ins/lighting/lighting-ui.c:281 plug-ins/map-object/map-object-ui.c:423
|
||||
msgid "General Options"
|
||||
msgstr "Загальні параметри"
|
||||
|
||||
#: plug-ins/lighting/lighting-ui.c:313 plug-ins/map-object/map-object-ui.c:455
|
||||
#: plug-ins/lighting/lighting-ui.c:313 plug-ins/map-object/map-object-ui.c:459
|
||||
msgid "Light Settings"
|
||||
msgstr "Параметри світла"
|
||||
|
||||
#: plug-ins/lighting/lighting-ui.c:332 plug-ins/map-object/map-object-ui.c:487
|
||||
#: plug-ins/map-object/map-object-ui.c:699
|
||||
#: plug-ins/lighting/lighting-ui.c:332 plug-ins/map-object/map-object-ui.c:491
|
||||
#: plug-ins/map-object/map-object-ui.c:703
|
||||
#: plug-ins/print/print-page-layout.c:385
|
||||
msgid "Position"
|
||||
msgstr "Позиція"
|
||||
@@ -15616,81 +15687,81 @@ msgstr "Дов_жина циліндра"
|
||||
msgid "Cylinder length"
|
||||
msgstr "Довжина циліндра"
|
||||
|
||||
#: plug-ins/map-object/map-object-ui.c:315
|
||||
#: plug-ins/map-object/map-object-ui.c:319
|
||||
msgid "Map to Object"
|
||||
msgstr "Проекція"
|
||||
|
||||
#: plug-ins/map-object/map-object-ui.c:351
|
||||
#: plug-ins/map-object/map-object-ui.c:355
|
||||
msgid "_Preview!"
|
||||
msgstr "_Перегляд"
|
||||
|
||||
#: plug-ins/map-object/map-object-ui.c:381
|
||||
#: plug-ins/map-object/map-object-ui.c:385
|
||||
msgid "Show _wireframe"
|
||||
msgstr "Показати _каркас"
|
||||
|
||||
#: plug-ins/map-object/map-object-ui.c:390
|
||||
#: plug-ins/map-object/map-object-ui.c:394
|
||||
msgid "Update preview _live"
|
||||
msgstr "Оновити перегляд _живих"
|
||||
|
||||
#: plug-ins/map-object/map-object-ui.c:400
|
||||
#: plug-ins/map-object/map-object-ui.c:404
|
||||
msgid "O_ptions"
|
||||
msgstr "_Параметри"
|
||||
|
||||
#: plug-ins/map-object/map-object-ui.c:402
|
||||
#: plug-ins/map-object/map-object-ui.c:406
|
||||
msgid "Li_ght"
|
||||
msgstr "Св_ітло"
|
||||
|
||||
#: plug-ins/map-object/map-object-ui.c:404
|
||||
#: plug-ins/map-object/map-object-ui.c:408
|
||||
msgid "_Viewpoint"
|
||||
msgstr "_Точка перегляду"
|
||||
|
||||
#: plug-ins/map-object/map-object-ui.c:411
|
||||
#: plug-ins/map-object/map-object-ui.c:415
|
||||
msgid "Sp_here"
|
||||
msgstr "С_фера"
|
||||
|
||||
#: plug-ins/map-object/map-object-ui.c:413
|
||||
#: plug-ins/map-object/map-object-ui.c:417
|
||||
msgid "_Box"
|
||||
msgstr "_Паралелепіпед"
|
||||
|
||||
#: plug-ins/map-object/map-object-ui.c:415
|
||||
#: plug-ins/map-object/map-object-ui.c:419
|
||||
msgid "C_ylinder"
|
||||
msgstr "_Циліндр"
|
||||
|
||||
#: plug-ins/map-object/map-object-ui.c:473
|
||||
#: plug-ins/map-object/map-object-ui.c:477
|
||||
msgid "Direction Vector"
|
||||
msgstr "Вектор напрямку"
|
||||
|
||||
#: plug-ins/map-object/map-object-ui.c:544
|
||||
#: plug-ins/map-object/map-object-ui.c:547
|
||||
msgid "Viewpoint Position"
|
||||
msgstr "Позиція точки перегляду"
|
||||
|
||||
#: plug-ins/map-object/map-object-ui.c:566
|
||||
#: plug-ins/map-object/map-object-ui.c:569
|
||||
msgid "First Axis"
|
||||
msgstr "Перша вісь"
|
||||
|
||||
#: plug-ins/map-object/map-object-ui.c:586
|
||||
#: plug-ins/map-object/map-object-ui.c:589
|
||||
msgid "Second Axis"
|
||||
msgstr "Друга вісь"
|
||||
|
||||
#: plug-ins/map-object/map-object-ui.c:642
|
||||
#: plug-ins/map-object/map-object-ui.c:646
|
||||
msgid "Intensity Levels"
|
||||
msgstr "Рівні інтенсивності"
|
||||
|
||||
#: plug-ins/map-object/map-object-ui.c:656
|
||||
#: plug-ins/map-object/map-object-ui.c:660
|
||||
msgid "Reflectivity"
|
||||
msgstr "Коефіцієнт відбиття"
|
||||
|
||||
#: plug-ins/map-object/map-object-ui.c:759
|
||||
#: plug-ins/map-object/map-object-ui.c:859
|
||||
#: plug-ins/map-object/map-object-ui.c:763
|
||||
#: plug-ins/map-object/map-object-ui.c:863
|
||||
#: plug-ins/print/print-page-layout.c:254
|
||||
msgid "Size"
|
||||
msgstr "Розмір"
|
||||
|
||||
#: plug-ins/map-object/map-object-ui.c:772
|
||||
#: plug-ins/map-object/map-object-ui.c:776
|
||||
msgid "Map Images to Box Faces"
|
||||
msgstr "Спроектувати на площину паралелепіпеда"
|
||||
|
||||
#: plug-ins/map-object/map-object-ui.c:840
|
||||
#: plug-ins/map-object/map-object-ui.c:844
|
||||
msgid "Images for the Cap Faces"
|
||||
msgstr "Зображення для основного циліндра"
|
||||
|
||||
@@ -17013,6 +17084,9 @@ msgstr "Не знайдено драйвера TWAIN. Не можна скори
|
||||
msgid "Transferring data from scanner/camera"
|
||||
msgstr "Отримання даних зі сканера/камери"
|
||||
|
||||
#~ msgid "CSource cannot be run non-interactively."
|
||||
#~ msgstr "CSource не можна запускати у неінтерактивному режимі."
|
||||
|
||||
#, c-format
|
||||
#~ msgid "File size: %s"
|
||||
#~ msgstr "Розмір файлу: %s"
|
||||
|
@@ -671,8 +671,6 @@ app/xcf/xcf-write.c
|
||||
|
||||
app-tools/gimp-debug-tool.c
|
||||
|
||||
data/tags/gimp-tags-default.xml.in
|
||||
|
||||
menus/brush-editor-menu.ui
|
||||
menus/brushes-menu.ui
|
||||
menus/buffers-menu.ui
|
||||
|
146
po/it.po
146
po/it.po
@@ -45,8 +45,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: gimp 2.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-09-23 16:13+0200\n"
|
||||
"PO-Revision-Date: 2025-09-23 16:09+0200\n"
|
||||
"POT-Creation-Date: 2025-10-01 12:30+0200\n"
|
||||
"PO-Revision-Date: 2025-10-01 12:37+0200\n"
|
||||
"Last-Translator: Marco Ciampa <ciampix@posteo.net>\n"
|
||||
"Language-Team: gimp@erlug.linux.it\n"
|
||||
"Language: it\n"
|
||||
@@ -124,7 +124,15 @@ msgstr ""
|
||||
msgid "If you wanted to quit immediately instead, call GIMP with --quit."
|
||||
msgstr "Se invece si desidera uscire immediatamente, chiamare GIMP con --quit."
|
||||
|
||||
#: ../app/gimp-update.c:444
|
||||
#: ../app/gimp-update.c:424
|
||||
msgid "Perhaps you are missing GIO backends and need to install GVFS?"
|
||||
msgstr "Forse mancano i backend GIO e bisogna installare GVFS?"
|
||||
|
||||
#: ../app/gimp-update.c:429
|
||||
msgid "Perhaps you are missing GIO backends."
|
||||
msgstr "Forse mancano i backend GIO."
|
||||
|
||||
#: ../app/gimp-update.c:466
|
||||
#, c-format
|
||||
msgid ""
|
||||
"A new version of GIMP (%s) was released.\n"
|
||||
@@ -2535,8 +2543,8 @@ msgid "Enter a description for the marker"
|
||||
msgstr "Inserire una descrizione per il marcatore"
|
||||
|
||||
#: ../app/actions/data-commands.c:90 ../app/actions/documents-commands.c:393
|
||||
#: ../app/actions/file-commands.c:234 ../app/dialogs/file-open-dialog.c:253
|
||||
#: ../app/dialogs/file-open-dialog.c:295
|
||||
#: ../app/actions/file-commands.c:234 ../app/dialogs/file-open-dialog.c:254
|
||||
#: ../app/dialogs/file-open-dialog.c:300
|
||||
#: ../app/dialogs/file-open-location-dialog.c:217
|
||||
#: ../app/dialogs/file-open-location-dialog.c:233
|
||||
#: ../app/display/gimpdisplayshell-dnd.c:646
|
||||
@@ -3053,134 +3061,124 @@ msgctxt "dialogs-action"
|
||||
msgid "Open the dashboard"
|
||||
msgstr "Apri il cruscotto"
|
||||
|
||||
#: ../app/actions/dialogs-actions.c:311 ../app/actions/dialogs-actions.c:312
|
||||
msgctxt "dialogs-action"
|
||||
msgid "_Settings..."
|
||||
msgstr "Impo_stazioni..."
|
||||
|
||||
#: ../app/actions/dialogs-actions.c:314 ../app/actions/dialogs-actions.c:315
|
||||
#: ../app/actions/dialogs-actions.c:310 ../app/actions/dialogs-actions.c:311
|
||||
msgctxt "dialogs-action"
|
||||
msgid "_Preferences"
|
||||
msgstr "_Preferenze"
|
||||
|
||||
#: ../app/actions/dialogs-actions.c:318
|
||||
#: ../app/actions/dialogs-actions.c:313
|
||||
msgctxt "dialogs-action"
|
||||
msgid "Open the preferences dialog"
|
||||
msgstr "Apri la finestra delle preferenze"
|
||||
|
||||
#: ../app/actions/dialogs-actions.c:323
|
||||
#: ../app/actions/dialogs-actions.c:318
|
||||
msgctxt "dialogs-action"
|
||||
msgid "_Input Devices Editor"
|
||||
msgstr "Editor dispositivi di _ingresso"
|
||||
|
||||
#: ../app/actions/dialogs-actions.c:324
|
||||
#: ../app/actions/dialogs-actions.c:319
|
||||
msgctxt "dialogs-action"
|
||||
msgid "_Input Devices"
|
||||
msgstr "Dispositivi di _ingresso"
|
||||
|
||||
#: ../app/actions/dialogs-actions.c:326
|
||||
#: ../app/actions/dialogs-actions.c:321
|
||||
msgctxt "dialogs-action"
|
||||
msgid "Open the input devices editor"
|
||||
msgstr "Apri la modifica dei dispositivi d'ingresso"
|
||||
|
||||
#: ../app/actions/dialogs-actions.c:331
|
||||
#: ../app/actions/dialogs-actions.c:326
|
||||
msgctxt "dialogs-action"
|
||||
msgid "_Keyboard Shortcuts Editor"
|
||||
msgstr "Editor _tasti scorciatoia"
|
||||
|
||||
#: ../app/actions/dialogs-actions.c:332
|
||||
#: ../app/actions/dialogs-actions.c:327
|
||||
msgctxt "dialogs-action"
|
||||
msgid "_Keyboard Shortcuts"
|
||||
msgstr "_Tasti scorciatoia"
|
||||
|
||||
#: ../app/actions/dialogs-actions.c:334
|
||||
#: ../app/actions/dialogs-actions.c:329
|
||||
msgctxt "dialogs-action"
|
||||
msgid "Open the keyboard shortcuts editor"
|
||||
msgstr "Apri la modifica dei tasti scorciatoia"
|
||||
|
||||
#: ../app/actions/dialogs-actions.c:339
|
||||
#: ../app/actions/dialogs-actions.c:334
|
||||
msgctxt "dialogs-action"
|
||||
msgid "_Modules Dialog"
|
||||
msgstr "Finestra _moduli"
|
||||
|
||||
#: ../app/actions/dialogs-actions.c:340
|
||||
#: ../app/actions/dialogs-actions.c:335
|
||||
msgctxt "dialogs-action"
|
||||
msgid "_Modules"
|
||||
msgstr "_Moduli"
|
||||
|
||||
#: ../app/actions/dialogs-actions.c:342
|
||||
#: ../app/actions/dialogs-actions.c:337
|
||||
msgctxt "dialogs-action"
|
||||
msgid "Open the module manager dialog"
|
||||
msgstr "Apri finestra di gestione moduli"
|
||||
|
||||
#: ../app/actions/dialogs-actions.c:347
|
||||
#: ../app/actions/dialogs-actions.c:342
|
||||
msgctxt "dialogs-action"
|
||||
msgid "_Tip of the Day"
|
||||
msgstr "Suggerimenti del _giorno"
|
||||
|
||||
#: ../app/actions/dialogs-actions.c:349
|
||||
#: ../app/actions/dialogs-actions.c:344
|
||||
msgctxt "dialogs-action"
|
||||
msgid "Show some helpful tips on using GIMP"
|
||||
msgstr "Mostra alcuni utili suggerimenti sull'uso di GIMP"
|
||||
|
||||
#: ../app/actions/dialogs-actions.c:354
|
||||
#: ../app/actions/dialogs-actions.c:349
|
||||
msgctxt "dialogs-action"
|
||||
msgid "Welcome Dialog"
|
||||
msgstr "Finestra di benvenuto"
|
||||
|
||||
#: ../app/actions/dialogs-actions.c:356
|
||||
#: ../app/actions/dialogs-actions.c:351
|
||||
msgctxt "dialogs-action"
|
||||
msgid "Show information on running GIMP release"
|
||||
msgstr "Mostra informazioni sulla versione di GIMP in esecuzione"
|
||||
|
||||
#: ../app/actions/dialogs-actions.c:362 ../app/actions/dialogs-actions.c:369
|
||||
#: ../app/actions/dialogs-actions.c:357 ../app/actions/dialogs-actions.c:362
|
||||
msgctxt "dialogs-action"
|
||||
msgid "About GIMP"
|
||||
msgstr "Informazioni su GIMP"
|
||||
|
||||
#: ../app/actions/dialogs-actions.c:364
|
||||
msgctxt "dialogs-action"
|
||||
msgid "About"
|
||||
msgstr "Informazioni"
|
||||
|
||||
#: ../app/actions/dialogs-actions.c:366
|
||||
#: ../app/actions/dialogs-actions.c:359
|
||||
msgctxt "dialogs-action"
|
||||
msgid "_About"
|
||||
msgstr "_Informazioni"
|
||||
|
||||
#: ../app/actions/dialogs-actions.c:374
|
||||
#: ../app/actions/dialogs-actions.c:367
|
||||
msgctxt "dialogs-action"
|
||||
msgid "_Search and Run a Command"
|
||||
msgstr "Cerca ed e_segui un comando"
|
||||
|
||||
#: ../app/actions/dialogs-actions.c:376
|
||||
#: ../app/actions/dialogs-actions.c:369
|
||||
msgctxt "dialogs-action"
|
||||
msgid "Search commands by keyword, and run them"
|
||||
msgstr "Cerca comandi per parola-chiave e li esegue"
|
||||
|
||||
#: ../app/actions/dialogs-actions.c:382
|
||||
#: ../app/actions/dialogs-actions.c:375
|
||||
msgctxt "dialogs-action"
|
||||
msgid "Manage _Extensions"
|
||||
msgstr "Gestione _estensioni"
|
||||
|
||||
#: ../app/actions/dialogs-actions.c:384
|
||||
#: ../app/actions/dialogs-actions.c:377
|
||||
msgctxt "dialogs-action"
|
||||
msgid "Manage Extensions: search, install, uninstall, update."
|
||||
msgstr "Gestione estensioni: cerca, installa, disinstalla, aggiorna."
|
||||
|
||||
#: ../app/actions/dialogs-actions.c:448
|
||||
#: ../app/actions/dialogs-actions.c:441
|
||||
msgid "Tool_box"
|
||||
msgstr "Pannello strumenti"
|
||||
|
||||
#: ../app/actions/dialogs-actions.c:449
|
||||
#: ../app/actions/dialogs-actions.c:442
|
||||
msgid "Raise the toolbox"
|
||||
msgstr "Alza il pannello strumenti"
|
||||
|
||||
#: ../app/actions/dialogs-actions.c:453
|
||||
#: ../app/actions/dialogs-actions.c:446
|
||||
msgid "New Tool_box"
|
||||
msgstr "Nuovo pannello strum_enti"
|
||||
|
||||
#: ../app/actions/dialogs-actions.c:454
|
||||
#: ../app/actions/dialogs-actions.c:447
|
||||
msgid "Create a new toolbox"
|
||||
msgstr "Crea un nuovo pennello strumenti"
|
||||
|
||||
@@ -12988,7 +12986,7 @@ msgstr ""
|
||||
|
||||
#: ../app/core/gimp-contexts.c:153 ../app/core/gimp-internal-data.c:338
|
||||
#: ../app/core/gimptooloptions.c:361 ../app/gui/modifiers.c:191
|
||||
#: ../app/gui/session.c:449 ../app/menus/menus.c:480
|
||||
#: ../app/gui/session.c:449 ../app/menus/menus.c:488
|
||||
#: ../app/widgets/gimpdevices.c:226
|
||||
#, c-format
|
||||
msgid "Deleting \"%s\" failed: %s"
|
||||
@@ -14960,11 +14958,11 @@ msgstr "Lunghezza massima chiusura diritta"
|
||||
msgid "Maximum straight length (in pixels) to close the line art"
|
||||
msgstr "Lunghezza massima retta (in pixel) per chiudere il tratteggio"
|
||||
|
||||
#: ../app/core/gimplink.c:255
|
||||
#: ../app/core/gimplink.c:256
|
||||
msgid "The file got deleted"
|
||||
msgstr "Il file è stato eliminato"
|
||||
|
||||
#: ../app/core/gimplink.c:349
|
||||
#: ../app/core/gimplink.c:351
|
||||
msgid "No file was set"
|
||||
msgstr "Nessun file impostato"
|
||||
|
||||
@@ -16146,10 +16144,15 @@ msgid "Search extensions matching these keywords"
|
||||
msgstr "Cerca le estensioni che corrispondono a queste parole chiave"
|
||||
|
||||
#: ../app/dialogs/file-open-dialog.c:142 ../app/dialogs/file-open-dialog.c:168
|
||||
#: ../app/dialogs/file-open-dialog.c:286
|
||||
#: ../app/dialogs/file-open-dialog.c:291
|
||||
msgid "Open layers"
|
||||
msgstr "Apri livelli"
|
||||
|
||||
#: ../app/dialogs/file-open-dialog.c:258
|
||||
#, c-format
|
||||
msgid "Opening '%s' failed."
|
||||
msgstr "L'apertura di '%s' è fallita."
|
||||
|
||||
#: ../app/dialogs/file-open-location-dialog.c:74
|
||||
msgid "Open Location"
|
||||
msgstr "Apri posizione"
|
||||
@@ -18867,13 +18870,13 @@ msgid "GIMP website"
|
||||
msgstr "Il sito di GIMP"
|
||||
|
||||
#: ../app/dialogs/welcome-dialog.c:545
|
||||
msgid "Tutorials"
|
||||
msgstr "Guide"
|
||||
|
||||
#: ../app/dialogs/welcome-dialog.c:550
|
||||
msgid "Documentation"
|
||||
msgstr "Documentazione"
|
||||
|
||||
#: ../app/dialogs/welcome-dialog.c:550
|
||||
msgid "Community Tutorials"
|
||||
msgstr "Guide della comunità"
|
||||
|
||||
#. XXX: should we add API docs for plug-in developers once it's
|
||||
#. * properly set up?
|
||||
#. Welcome message: right
|
||||
@@ -19920,26 +19923,26 @@ msgstr "Clic e trascina per spostare il punto cardine"
|
||||
msgid "Click-Drag to shear"
|
||||
msgstr "Clic e trascina per inclinare"
|
||||
|
||||
#: ../app/file/file-open.c:264
|
||||
#: ../app/file/file-open.c:272
|
||||
#, c-format
|
||||
msgid "%s plug-in returned SUCCESS but did not return an image"
|
||||
msgstr "Il plug-in %s ha risposto successo ma non ha restituito un'immagine"
|
||||
|
||||
#: ../app/file/file-open.c:275
|
||||
#: ../app/file/file-open.c:283
|
||||
#, c-format
|
||||
msgid "%s plug-in could not open image"
|
||||
msgstr "Il plug-in %s non poteva aprire l'immagine"
|
||||
|
||||
#: ../app/file/file-open.c:690
|
||||
#: ../app/file/file-open.c:698
|
||||
msgid "Image doesn't contain any layers"
|
||||
msgstr "L'immagine non contiene nessun livello"
|
||||
|
||||
#: ../app/file/file-open.c:748
|
||||
#: ../app/file/file-open.c:756
|
||||
#, c-format
|
||||
msgid "Opening '%s' failed: %s"
|
||||
msgstr "L'apertura di \"%s\" è fallita: %s"
|
||||
|
||||
#: ../app/file/file-open.c:836
|
||||
#: ../app/file/file-open.c:846
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Only platform-native file paths are supported: '%s' cannot be opened as link."
|
||||
@@ -19947,11 +19950,11 @@ msgstr ""
|
||||
"Sono supportati solo i percorsi file nativi della piattaforma: '%s' non può "
|
||||
"essere aperto come collegamento."
|
||||
|
||||
#: ../app/file/file-open.c:978 ../app/file/file-save.c:132
|
||||
#: ../app/file/file-open.c:985 ../app/file/file-save.c:132
|
||||
msgid "Not a regular file"
|
||||
msgstr "Non è un file normale"
|
||||
|
||||
#: ../app/file/file-open.c:987 ../app/file/file-save.c:141
|
||||
#: ../app/file/file-open.c:994 ../app/file/file-save.c:141
|
||||
msgid "Permission denied"
|
||||
msgstr "Permesso negato"
|
||||
|
||||
@@ -21716,11 +21719,7 @@ msgstr "Ruota livello vettoriale"
|
||||
msgid "Transform Vector Layer"
|
||||
msgstr "Trasforma livello vettoriale"
|
||||
|
||||
#: ../app/path/gimpvectorlayer.c:526
|
||||
msgid "Discard Vector Informations"
|
||||
msgstr "Abbandona le informazioni vettoriali"
|
||||
|
||||
#: ../app/path/gimpvectorlayer.c:669
|
||||
#: ../app/path/gimpvectorlayer.c:526 ../app/path/gimpvectorlayer.c:669
|
||||
msgid "Discard Vector Information"
|
||||
msgstr "Abbandona le informazioni vettoriali"
|
||||
|
||||
@@ -22277,7 +22276,7 @@ msgstr "Autoritaglio immagine"
|
||||
msgid "Autocrop layer"
|
||||
msgstr "Autoritaglio livello"
|
||||
|
||||
#: ../app/pdb/image-cmds.c:2556
|
||||
#: ../app/pdb/image-cmds.c:2564
|
||||
msgid ""
|
||||
"Image resolution is out of bounds, using the default resolution instead."
|
||||
msgstr ""
|
||||
@@ -22306,43 +22305,48 @@ msgstr "Trasformazione 2D"
|
||||
msgid "2D Transforming"
|
||||
msgstr "Trasformazione 2D in corso"
|
||||
|
||||
#: ../app/pdb/link-layer-cmds.c:67 ../app/pdb/link-layer-cmds.c:89
|
||||
#, c-format
|
||||
msgid "Failed to create link layer"
|
||||
msgstr "Impossibile creare livello collegato"
|
||||
|
||||
#: ../app/pdb/path-cmds.c:325
|
||||
msgid "Remove path stroke"
|
||||
msgstr "Rimuovi delineatura del tracciato"
|
||||
|
||||
#: ../app/pdb/path-cmds.c:362
|
||||
msgid "Close path stroke"
|
||||
msgstr "Chiudi la delineatura del tracciato"
|
||||
msgstr "Chiudi delineatura tracciato"
|
||||
|
||||
#: ../app/pdb/path-cmds.c:401
|
||||
msgid "Reverse path stroke"
|
||||
msgstr "Inverti delineatura del tracciato"
|
||||
msgstr "Inverti delineatura tracciato"
|
||||
|
||||
#: ../app/pdb/path-cmds.c:446
|
||||
msgid "Translate path stroke"
|
||||
msgstr "Trasla la delineatura del tracciato"
|
||||
msgstr "Trasla delineatura tracciato"
|
||||
|
||||
#: ../app/pdb/path-cmds.c:491
|
||||
msgid "Scale path stroke"
|
||||
msgstr "Scala la delineatura del tracciato"
|
||||
msgstr "Scala delineatura tracciato"
|
||||
|
||||
#: ../app/pdb/path-cmds.c:538
|
||||
msgid "Rotate path stroke"
|
||||
msgstr "Ruota la delineatura del tracciato"
|
||||
msgstr "Ruota delineatura tracciato"
|
||||
|
||||
#: ../app/pdb/path-cmds.c:583 ../app/pdb/path-cmds.c:632
|
||||
msgid "Flip path stroke"
|
||||
msgstr "Rifletti la delineatura del tracciato"
|
||||
msgstr "Rifletti delineatura tracciato"
|
||||
|
||||
#: ../app/pdb/path-cmds.c:761 ../app/pdb/path-cmds.c:884
|
||||
#: ../app/pdb/path-cmds.c:1114
|
||||
msgid "Add path stroke"
|
||||
msgstr "Aggiungi la delineatura del tracciato"
|
||||
msgstr "Aggiungi delineatura tracciato"
|
||||
|
||||
#: ../app/pdb/path-cmds.c:938 ../app/pdb/path-cmds.c:994
|
||||
#: ../app/pdb/path-cmds.c:1058
|
||||
msgid "Extend path stroke"
|
||||
msgstr "Estendi la delineatura del tracciato"
|
||||
msgstr "Estendi delineatura tracciato"
|
||||
|
||||
#: ../app/pdb/pdb-cmds.c:1185 ../app/pdb/pdb-cmds.c:1227
|
||||
#, c-format
|
||||
@@ -24333,7 +24337,7 @@ msgstr "Selezione sconosciuta"
|
||||
|
||||
#: ../app/tools/gimpforegroundselecttool.c:667
|
||||
msgid "press Enter to preview."
|
||||
msgstr "premere invio l'anteprima."
|
||||
msgstr "premere invio per l'anteprima."
|
||||
|
||||
#: ../app/tools/gimpforegroundselecttool.c:669
|
||||
msgid "press Escape to exit preview or Enter to apply."
|
||||
@@ -27751,7 +27755,7 @@ msgstr "Informazioni varie"
|
||||
msgid "Select fields"
|
||||
msgstr "Seleziona campi"
|
||||
|
||||
#. Tranlators: "N/A" is an abbreviation for "not available"
|
||||
#. Translators: "N/A" is an abbreviation for "not available"
|
||||
#: ../app/widgets/gimpdashboard.c:3323
|
||||
msgctxt "dashboard-value"
|
||||
msgid "N/A"
|
||||
|
144
po/ka.po
144
po/ka.po
@@ -7,8 +7,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: gimp\n"
|
||||
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gimp/issues\n"
|
||||
"POT-Creation-Date: 2025-09-24 03:08+0000\n"
|
||||
"PO-Revision-Date: 2025-09-24 07:08+0200\n"
|
||||
"POT-Creation-Date: 2025-09-29 13:22+0000\n"
|
||||
"PO-Revision-Date: 2025-09-29 16:50+0200\n"
|
||||
"Last-Translator: Ekaterine Papava <papava.e@gtu.ge>\n"
|
||||
"Language-Team: Georgian <(nothing)>\n"
|
||||
"Language: ka\n"
|
||||
@@ -160,7 +160,15 @@ msgstr ""
|
||||
msgid "If you wanted to quit immediately instead, call GIMP with --quit."
|
||||
msgstr "თუ გნებავთ გასვლა დაუყოვნებლივ, გამოიძახეთ GIMP პარამეტრით --quit."
|
||||
|
||||
#: app/gimp-update.c:444
|
||||
#: app/gimp-update.c:421
|
||||
msgid "Perhaps you are missing GIO backends and need to install GVFS?"
|
||||
msgstr "ალბათ არ გაქვთ GIO-ის უკანაბოლოები და გჭირდებათ, დააყენოთ GVFS?"
|
||||
|
||||
#: app/gimp-update.c:426
|
||||
msgid "Perhaps you are missing GIO backends."
|
||||
msgstr "ალბათ არ გაქვთ GIO-ის უკანაბოლოები."
|
||||
|
||||
#: app/gimp-update.c:458
|
||||
#, c-format
|
||||
msgid ""
|
||||
"A new version of GIMP (%s) was released.\n"
|
||||
@@ -2533,8 +2541,8 @@ msgid "Enter a description for the marker"
|
||||
msgstr "შეიყვანეთ სანიშნის აღწერა"
|
||||
|
||||
#: app/actions/data-commands.c:90 app/actions/documents-commands.c:393
|
||||
#: app/actions/file-commands.c:234 app/dialogs/file-open-dialog.c:253
|
||||
#: app/dialogs/file-open-dialog.c:295
|
||||
#: app/actions/file-commands.c:234 app/dialogs/file-open-dialog.c:254
|
||||
#: app/dialogs/file-open-dialog.c:300
|
||||
#: app/dialogs/file-open-location-dialog.c:217
|
||||
#: app/dialogs/file-open-location-dialog.c:233
|
||||
#: app/display/gimpdisplayshell-dnd.c:646 app/widgets/gimplayertreeview.c:796
|
||||
@@ -3047,134 +3055,124 @@ msgctxt "dialogs-action"
|
||||
msgid "Open the dashboard"
|
||||
msgstr "სამუშაო მაგიდის ფანჯრის გახსნა"
|
||||
|
||||
#: app/actions/dialogs-actions.c:311 app/actions/dialogs-actions.c:312
|
||||
msgctxt "dialogs-action"
|
||||
msgid "_Settings..."
|
||||
msgstr "_მორგება..."
|
||||
|
||||
#: app/actions/dialogs-actions.c:314 app/actions/dialogs-actions.c:315
|
||||
#: app/actions/dialogs-actions.c:310 app/actions/dialogs-actions.c:311
|
||||
msgctxt "dialogs-action"
|
||||
msgid "_Preferences"
|
||||
msgstr "გამართვა"
|
||||
|
||||
#: app/actions/dialogs-actions.c:318
|
||||
#: app/actions/dialogs-actions.c:313
|
||||
msgctxt "dialogs-action"
|
||||
msgid "Open the preferences dialog"
|
||||
msgstr "გამართვის ფანჯრის გახსნა"
|
||||
|
||||
#: app/actions/dialogs-actions.c:323
|
||||
#: app/actions/dialogs-actions.c:318
|
||||
msgctxt "dialogs-action"
|
||||
msgid "_Input Devices Editor"
|
||||
msgstr "შემომტანი მოწყობილობები_ს რედაქტორი"
|
||||
|
||||
#: app/actions/dialogs-actions.c:324
|
||||
#: app/actions/dialogs-actions.c:319
|
||||
msgctxt "dialogs-action"
|
||||
msgid "_Input Devices"
|
||||
msgstr "შემომტანი მოწყობილობები"
|
||||
|
||||
#: app/actions/dialogs-actions.c:326
|
||||
#: app/actions/dialogs-actions.c:321
|
||||
msgctxt "dialogs-action"
|
||||
msgid "Open the input devices editor"
|
||||
msgstr "შემომტანი მოწყობილობების ფანჯრის გახსნა"
|
||||
|
||||
#: app/actions/dialogs-actions.c:331
|
||||
#: app/actions/dialogs-actions.c:326
|
||||
msgctxt "dialogs-action"
|
||||
msgid "_Keyboard Shortcuts Editor"
|
||||
msgstr "კლავიატურის მალსახმობების _რედაქტორი"
|
||||
|
||||
#: app/actions/dialogs-actions.c:332
|
||||
#: app/actions/dialogs-actions.c:327
|
||||
msgctxt "dialogs-action"
|
||||
msgid "_Keyboard Shortcuts"
|
||||
msgstr "კლავიატურის მალსახმობები"
|
||||
|
||||
#: app/actions/dialogs-actions.c:334
|
||||
#: app/actions/dialogs-actions.c:329
|
||||
msgctxt "dialogs-action"
|
||||
msgid "Open the keyboard shortcuts editor"
|
||||
msgstr "კლავიატურის მალსახმობების ფანჯრის გახსნა"
|
||||
|
||||
#: app/actions/dialogs-actions.c:339
|
||||
#: app/actions/dialogs-actions.c:334
|
||||
msgctxt "dialogs-action"
|
||||
msgid "_Modules Dialog"
|
||||
msgstr "_მოდულების ფანჯარა"
|
||||
|
||||
#: app/actions/dialogs-actions.c:340
|
||||
#: app/actions/dialogs-actions.c:335
|
||||
msgctxt "dialogs-action"
|
||||
msgid "_Modules"
|
||||
msgstr "_მოდულები"
|
||||
|
||||
#: app/actions/dialogs-actions.c:342
|
||||
#: app/actions/dialogs-actions.c:337
|
||||
msgctxt "dialogs-action"
|
||||
msgid "Open the module manager dialog"
|
||||
msgstr "მოდულების ფანჯრის გახსნა"
|
||||
|
||||
#: app/actions/dialogs-actions.c:347
|
||||
#: app/actions/dialogs-actions.c:342
|
||||
msgctxt "dialogs-action"
|
||||
msgid "_Tip of the Day"
|
||||
msgstr "დღის მინიშნება"
|
||||
|
||||
#: app/actions/dialogs-actions.c:349
|
||||
#: app/actions/dialogs-actions.c:344
|
||||
msgctxt "dialogs-action"
|
||||
msgid "Show some helpful tips on using GIMP"
|
||||
msgstr "რამდენიმე გამოსადეგი რჩევა GIMP-ის მოხმარების შესახებ"
|
||||
|
||||
#: app/actions/dialogs-actions.c:354
|
||||
#: app/actions/dialogs-actions.c:349
|
||||
msgctxt "dialogs-action"
|
||||
msgid "Welcome Dialog"
|
||||
msgstr "პირველი ფანჯარა"
|
||||
|
||||
#: app/actions/dialogs-actions.c:356
|
||||
#: app/actions/dialogs-actions.c:351
|
||||
msgctxt "dialogs-action"
|
||||
msgid "Show information on running GIMP release"
|
||||
msgstr "GIMP-ის გაშვებული რელიზის შესახებ ინფორმაციის ჩვენება"
|
||||
|
||||
#: app/actions/dialogs-actions.c:362 app/actions/dialogs-actions.c:369
|
||||
#: app/actions/dialogs-actions.c:357 app/actions/dialogs-actions.c:362
|
||||
msgctxt "dialogs-action"
|
||||
msgid "About GIMP"
|
||||
msgstr "GIMP-ის შესახებ"
|
||||
|
||||
#: app/actions/dialogs-actions.c:364
|
||||
msgctxt "dialogs-action"
|
||||
msgid "About"
|
||||
msgstr "შესახებ"
|
||||
|
||||
#: app/actions/dialogs-actions.c:366
|
||||
#: app/actions/dialogs-actions.c:359
|
||||
msgctxt "dialogs-action"
|
||||
msgid "_About"
|
||||
msgstr "_შესახებ"
|
||||
|
||||
#: app/actions/dialogs-actions.c:374
|
||||
#: app/actions/dialogs-actions.c:367
|
||||
msgctxt "dialogs-action"
|
||||
msgid "_Search and Run a Command"
|
||||
msgstr "მოძებნა და ბრძანების _გაშვება"
|
||||
|
||||
#: app/actions/dialogs-actions.c:376
|
||||
#: app/actions/dialogs-actions.c:369
|
||||
msgctxt "dialogs-action"
|
||||
msgid "Search commands by keyword, and run them"
|
||||
msgstr "ბრძანებების პირობით ძებნა და მათი გაშვება"
|
||||
|
||||
#: app/actions/dialogs-actions.c:382
|
||||
#: app/actions/dialogs-actions.c:375
|
||||
msgctxt "dialogs-action"
|
||||
msgid "Manage _Extensions"
|
||||
msgstr "გაფართოებების მართვა"
|
||||
|
||||
#: app/actions/dialogs-actions.c:384
|
||||
#: app/actions/dialogs-actions.c:377
|
||||
msgctxt "dialogs-action"
|
||||
msgid "Manage Extensions: search, install, uninstall, update."
|
||||
msgstr "გაფართოებების მართვა: მოძებნეთ, დააყენეთ, წაშალეთ, განაახლეთ."
|
||||
|
||||
#: app/actions/dialogs-actions.c:448
|
||||
#: app/actions/dialogs-actions.c:441
|
||||
msgid "Tool_box"
|
||||
msgstr "ხელს_აწყოები"
|
||||
|
||||
#: app/actions/dialogs-actions.c:449
|
||||
#: app/actions/dialogs-actions.c:442
|
||||
msgid "Raise the toolbox"
|
||||
msgstr "ხელსაწყოების აწევა"
|
||||
|
||||
#: app/actions/dialogs-actions.c:453
|
||||
#: app/actions/dialogs-actions.c:446
|
||||
msgid "New Tool_box"
|
||||
msgstr "ხელსაწყოების ა_ხალი პანელი"
|
||||
|
||||
#: app/actions/dialogs-actions.c:454
|
||||
#: app/actions/dialogs-actions.c:447
|
||||
msgid "Create a new toolbox"
|
||||
msgstr "ხელსაწყოების ახალი პანელის შექმნა"
|
||||
|
||||
@@ -12706,7 +12704,7 @@ msgstr ""
|
||||
|
||||
#: app/core/gimp-contexts.c:153 app/core/gimp-internal-data.c:338
|
||||
#: app/core/gimptooloptions.c:361 app/gui/modifiers.c:191 app/gui/session.c:449
|
||||
#: app/menus/menus.c:480 app/widgets/gimpdevices.c:226
|
||||
#: app/menus/menus.c:488 app/widgets/gimpdevices.c:226
|
||||
#, c-format
|
||||
msgid "Deleting \"%s\" failed: %s"
|
||||
msgstr "\"%s\"-ის წაშლა ჩაიშალა: %s"
|
||||
@@ -14617,11 +14615,11 @@ msgstr ""
|
||||
msgid "Maximum straight length (in pixels) to close the line art"
|
||||
msgstr ""
|
||||
|
||||
#: app/core/gimplink.c:255
|
||||
#: app/core/gimplink.c:256
|
||||
msgid "The file got deleted"
|
||||
msgstr "ფაილი წაიშალა"
|
||||
|
||||
#: app/core/gimplink.c:349
|
||||
#: app/core/gimplink.c:351
|
||||
msgid "No file was set"
|
||||
msgstr "ფაილი დაყენებული არ იყო"
|
||||
|
||||
@@ -15397,7 +15395,7 @@ msgstr "ბოლოს შემოწმების თარიღი %s %s"
|
||||
#: app/dialogs/about-dialog.c:609
|
||||
#, c-format
|
||||
msgid "Up to date as of %s at %s"
|
||||
msgstr ""
|
||||
msgstr "განახლებულია %s %s თარიღი/დროისთვის"
|
||||
|
||||
#: app/dialogs/about-dialog.c:837
|
||||
msgid "GIMP is brought to you by"
|
||||
@@ -15788,10 +15786,15 @@ msgid "Search extensions matching these keywords"
|
||||
msgstr "გაფართოებების საკვანძო სიტყვებით ძებნა"
|
||||
|
||||
#: app/dialogs/file-open-dialog.c:142 app/dialogs/file-open-dialog.c:168
|
||||
#: app/dialogs/file-open-dialog.c:286
|
||||
#: app/dialogs/file-open-dialog.c:291
|
||||
msgid "Open layers"
|
||||
msgstr "ფენების გახსნა"
|
||||
|
||||
#: app/dialogs/file-open-dialog.c:258
|
||||
#, c-format
|
||||
msgid "Opening '%s' failed."
|
||||
msgstr "'%s'-ის გახსნის შეცდომა."
|
||||
|
||||
#: app/dialogs/file-open-location-dialog.c:74
|
||||
msgid "Open Location"
|
||||
msgstr "მდებარეობის გახსნა"
|
||||
@@ -16067,7 +16070,7 @@ msgstr "ნიღბის ინვერსია"
|
||||
|
||||
#: app/dialogs/layer-add-mask-dialog.c:200
|
||||
msgid "_Edit mask immediately"
|
||||
msgstr ""
|
||||
msgstr "ნიღბის დაუყოვნ_ებლივი ჩასწორება"
|
||||
|
||||
#: app/dialogs/layer-add-mask-dialog.c:235
|
||||
msgid "Please select a channel first"
|
||||
@@ -16188,6 +16191,8 @@ msgstr "დონე: %s, სიცოცხლეები: %s"
|
||||
#: app/dialogs/lebl-dialog.c:150
|
||||
msgid "Left/Right to move, Space to fire, 'p' to pause, 'q' to quit"
|
||||
msgstr ""
|
||||
"მარცხნივ/მარჯვნივ გადასაადგილებლად, ჰარე სასროლად, 'p' დასაპაუზებლად, 'q' "
|
||||
"გასასვლელად"
|
||||
|
||||
#: app/dialogs/lebl-dialog.c:816
|
||||
msgid "Killer GEGLs from Outer Space"
|
||||
@@ -16359,35 +16364,35 @@ msgstr "ყველა პალიტრის ფაილი (*.*)"
|
||||
|
||||
#: app/dialogs/palette-import-dialog.c:910
|
||||
msgid "GIMP Palette (*.gpl)"
|
||||
msgstr ""
|
||||
msgstr "GIMP-ის პალიტრა (*.gpl)"
|
||||
|
||||
#: app/dialogs/palette-import-dialog.c:916
|
||||
msgid "Adobe Color Table (*.act)"
|
||||
msgstr ""
|
||||
msgstr "Adobe-ის ფერების ცხრილი (*.act)"
|
||||
|
||||
#: app/dialogs/palette-import-dialog.c:922
|
||||
msgid "Adobe Color Swatch (*.aco)"
|
||||
msgstr ""
|
||||
msgstr "Adobe Color Swatch (*.aco)"
|
||||
|
||||
#: app/dialogs/palette-import-dialog.c:928
|
||||
msgid "Adobe Color Book (*.acb)"
|
||||
msgstr ""
|
||||
msgstr "Adobe Color Book (*.acb)"
|
||||
|
||||
#: app/dialogs/palette-import-dialog.c:934
|
||||
msgid "Adobe Swatch Exchange (*.ase)"
|
||||
msgstr ""
|
||||
msgstr "Adobe Swatch Exchange (*.ase)"
|
||||
|
||||
#: app/dialogs/palette-import-dialog.c:940
|
||||
msgid "Cascading Style Sheet (*.css)"
|
||||
msgstr ""
|
||||
msgstr "Cascading Style Sheet (*.css)"
|
||||
|
||||
#: app/dialogs/palette-import-dialog.c:946
|
||||
msgid "JASC or RIFF Palette (*.pal)"
|
||||
msgstr ""
|
||||
msgstr "JASC or RIFF Palette (*.pal)"
|
||||
|
||||
#: app/dialogs/palette-import-dialog.c:952
|
||||
msgid "SwatchBooker (*.sbz)"
|
||||
msgstr ""
|
||||
msgstr "SwatchBooker (*.sbz)"
|
||||
|
||||
#: app/dialogs/preferences-dialog.c:215
|
||||
msgid "Reset All Preferences"
|
||||
@@ -18436,13 +18441,13 @@ msgid "GIMP website"
|
||||
msgstr "GIMP-ის ვებგვერდი"
|
||||
|
||||
#: app/dialogs/welcome-dialog.c:545
|
||||
msgid "Tutorials"
|
||||
msgstr "სახელმძღვანელოები"
|
||||
|
||||
#: app/dialogs/welcome-dialog.c:550
|
||||
msgid "Documentation"
|
||||
msgstr "დოკუმენტაცია"
|
||||
|
||||
#: app/dialogs/welcome-dialog.c:550
|
||||
msgid "Community Tutorials"
|
||||
msgstr "მომხმარებლების ნაწერი სახელმძღვანელოები"
|
||||
|
||||
#. XXX: should we add API docs for plug-in developers once it's
|
||||
#. * properly set up?
|
||||
#. Welcome message: right
|
||||
@@ -20734,7 +20739,7 @@ msgstr "გაძლიერება"
|
||||
|
||||
#: app/paint/gimpmybrushoptions.c:129
|
||||
msgid "Adjust strength of input pressure"
|
||||
msgstr ""
|
||||
msgstr "შეყვანის წნევის სიძლიერის გასწორება"
|
||||
|
||||
#: app/paint/gimpmybrushoptions.c:153
|
||||
msgid "Erase with this brush"
|
||||
@@ -20913,7 +20918,7 @@ msgstr "გამეორება"
|
||||
|
||||
#: app/paint/gimppaintoptions.c:381
|
||||
msgid "How fade is repeated as you paint"
|
||||
msgstr ""
|
||||
msgstr "როგორ მეორდება მინავლება ხატვისას"
|
||||
|
||||
#: app/paint/gimppaintoptions.c:393 app/tools/gimpgradientoptions.c:282
|
||||
#: app/tools/gimppaintoptions-gui.c:398
|
||||
@@ -21187,11 +21192,7 @@ msgstr "ვექტორული ფენის შებრუნება"
|
||||
msgid "Transform Vector Layer"
|
||||
msgstr "ვექტორული ფენის ტრანსფორმირება"
|
||||
|
||||
#: app/path/gimpvectorlayer.c:526
|
||||
msgid "Discard Vector Informations"
|
||||
msgstr "ვექტორის ინფორმაციების მოცილება"
|
||||
|
||||
#: app/path/gimpvectorlayer.c:669
|
||||
#: app/path/gimpvectorlayer.c:526 app/path/gimpvectorlayer.c:669
|
||||
msgid "Discard Vector Information"
|
||||
msgstr "ვექტორის ინფორმაციის მოცილება"
|
||||
|
||||
@@ -26963,7 +26964,7 @@ msgstr "სხვა ინფორმაცია"
|
||||
msgid "Select fields"
|
||||
msgstr "აირჩიეთ ველები"
|
||||
|
||||
#. Tranlators: "N/A" is an abbreviation for "not available"
|
||||
#. Translators: "N/A" is an abbreviation for "not available"
|
||||
#: app/widgets/gimpdashboard.c:3323
|
||||
msgctxt "dashboard-value"
|
||||
msgid "N/A"
|
||||
@@ -29300,6 +29301,17 @@ msgctxt "edit-action"
|
||||
msgid "Undo History Menu"
|
||||
msgstr "დაბრუნების ისტორია"
|
||||
|
||||
#~ msgctxt "dialogs-action"
|
||||
#~ msgid "_Settings..."
|
||||
#~ msgstr "_მორგება..."
|
||||
|
||||
#~ msgctxt "dialogs-action"
|
||||
#~ msgid "About"
|
||||
#~ msgstr "შესახებ"
|
||||
|
||||
#~ msgid "Discard Vector Informations"
|
||||
#~ msgstr "ვექტორის ინფორმაციების მოცილება"
|
||||
|
||||
#~ msgctxt "vector-mode"
|
||||
#~ msgid "Edit"
|
||||
#~ msgstr "ჩასწორება"
|
||||
|
109
po/sl.po
109
po/sl.po
@@ -10,8 +10,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: GIMP master\n"
|
||||
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gimp/issues\n"
|
||||
"POT-Creation-Date: 2025-09-24 05:10+0000\n"
|
||||
"PO-Revision-Date: 2025-09-24 13:26+0200\n"
|
||||
"POT-Creation-Date: 2025-09-29 12:38+0000\n"
|
||||
"PO-Revision-Date: 2025-09-29 15:20+0200\n"
|
||||
"Last-Translator: Martin Srebotnjak <miles@filmsi.net>\n"
|
||||
"Language-Team: Martin Srebotnjak <miles@filmsi.net>\n"
|
||||
"Language: sl\n"
|
||||
@@ -178,7 +178,15 @@ msgstr ""
|
||||
msgid "If you wanted to quit immediately instead, call GIMP with --quit."
|
||||
msgstr "Če želite namesto tega takoj prenehati, pokličite GIMP s --quit."
|
||||
|
||||
#: app/gimp-update.c:444
|
||||
#: app/gimp-update.c:421
|
||||
msgid "Perhaps you are missing GIO backends and need to install GVFS?"
|
||||
msgstr "Morda vam manjka ogrodje GIO in morate namestiti GVFS?"
|
||||
|
||||
#: app/gimp-update.c:426
|
||||
msgid "Perhaps you are missing GIO backends."
|
||||
msgstr "Morda vam manjka ogrodje GIO."
|
||||
|
||||
#: app/gimp-update.c:458
|
||||
#, c-format
|
||||
msgid ""
|
||||
"A new version of GIMP (%s) was released.\n"
|
||||
@@ -2570,8 +2578,8 @@ msgid "Enter a description for the marker"
|
||||
msgstr "Vnesite opis oznake"
|
||||
|
||||
#: app/actions/data-commands.c:90 app/actions/documents-commands.c:393
|
||||
#: app/actions/file-commands.c:234 app/dialogs/file-open-dialog.c:253
|
||||
#: app/dialogs/file-open-dialog.c:295
|
||||
#: app/actions/file-commands.c:234 app/dialogs/file-open-dialog.c:254
|
||||
#: app/dialogs/file-open-dialog.c:300
|
||||
#: app/dialogs/file-open-location-dialog.c:217
|
||||
#: app/dialogs/file-open-location-dialog.c:233
|
||||
#: app/display/gimpdisplayshell-dnd.c:646 app/widgets/gimplayertreeview.c:796
|
||||
@@ -3086,134 +3094,124 @@ msgctxt "dialogs-action"
|
||||
msgid "Open the dashboard"
|
||||
msgstr "Odpri nadzorno ploščo"
|
||||
|
||||
#: app/actions/dialogs-actions.c:311 app/actions/dialogs-actions.c:312
|
||||
msgctxt "dialogs-action"
|
||||
msgid "_Settings..."
|
||||
msgstr "_Nastavitve …"
|
||||
|
||||
#: app/actions/dialogs-actions.c:314 app/actions/dialogs-actions.c:315
|
||||
#: app/actions/dialogs-actions.c:310 app/actions/dialogs-actions.c:311
|
||||
msgctxt "dialogs-action"
|
||||
msgid "_Preferences"
|
||||
msgstr "_Nastavitve"
|
||||
|
||||
#: app/actions/dialogs-actions.c:318
|
||||
#: app/actions/dialogs-actions.c:313
|
||||
msgctxt "dialogs-action"
|
||||
msgid "Open the preferences dialog"
|
||||
msgstr "Odpre pogovorno okno nastavitev"
|
||||
|
||||
#: app/actions/dialogs-actions.c:323
|
||||
#: app/actions/dialogs-actions.c:318
|
||||
msgctxt "dialogs-action"
|
||||
msgid "_Input Devices Editor"
|
||||
msgstr "V_hodne naprave (okno)"
|
||||
|
||||
#: app/actions/dialogs-actions.c:324
|
||||
#: app/actions/dialogs-actions.c:319
|
||||
msgctxt "dialogs-action"
|
||||
msgid "_Input Devices"
|
||||
msgstr "V_hodne naprave"
|
||||
|
||||
#: app/actions/dialogs-actions.c:326
|
||||
#: app/actions/dialogs-actions.c:321
|
||||
msgctxt "dialogs-action"
|
||||
msgid "Open the input devices editor"
|
||||
msgstr "Odpre urejevalnik vhodnih naprav"
|
||||
|
||||
#: app/actions/dialogs-actions.c:331
|
||||
#: app/actions/dialogs-actions.c:326
|
||||
msgctxt "dialogs-action"
|
||||
msgid "_Keyboard Shortcuts Editor"
|
||||
msgstr "_Tipke za bližnjico (okno)"
|
||||
|
||||
#: app/actions/dialogs-actions.c:332
|
||||
#: app/actions/dialogs-actions.c:327
|
||||
msgctxt "dialogs-action"
|
||||
msgid "_Keyboard Shortcuts"
|
||||
msgstr "_Tipke za bližnjico"
|
||||
|
||||
#: app/actions/dialogs-actions.c:334
|
||||
#: app/actions/dialogs-actions.c:329
|
||||
msgctxt "dialogs-action"
|
||||
msgid "Open the keyboard shortcuts editor"
|
||||
msgstr "Odpre urejevalnik tipk za bližnjice"
|
||||
|
||||
#: app/actions/dialogs-actions.c:339
|
||||
#: app/actions/dialogs-actions.c:334
|
||||
msgctxt "dialogs-action"
|
||||
msgid "_Modules Dialog"
|
||||
msgstr "_Gradniki (okno)"
|
||||
|
||||
#: app/actions/dialogs-actions.c:340
|
||||
#: app/actions/dialogs-actions.c:335
|
||||
msgctxt "dialogs-action"
|
||||
msgid "_Modules"
|
||||
msgstr "_Gradniki"
|
||||
|
||||
#: app/actions/dialogs-actions.c:342
|
||||
#: app/actions/dialogs-actions.c:337
|
||||
msgctxt "dialogs-action"
|
||||
msgid "Open the module manager dialog"
|
||||
msgstr "Odpri pogovorno okno upravitelja gradnikov"
|
||||
|
||||
#: app/actions/dialogs-actions.c:347
|
||||
#: app/actions/dialogs-actions.c:342
|
||||
msgctxt "dialogs-action"
|
||||
msgid "_Tip of the Day"
|
||||
msgstr "_Nasvet dneva"
|
||||
|
||||
#: app/actions/dialogs-actions.c:349
|
||||
#: app/actions/dialogs-actions.c:344
|
||||
msgctxt "dialogs-action"
|
||||
msgid "Show some helpful tips on using GIMP"
|
||||
msgstr "Pokaže priročne namige pri delu s programom GIMP"
|
||||
|
||||
#: app/actions/dialogs-actions.c:354
|
||||
#: app/actions/dialogs-actions.c:349
|
||||
msgctxt "dialogs-action"
|
||||
msgid "Welcome Dialog"
|
||||
msgstr "Pogovorno okno dobrodošlice"
|
||||
|
||||
#: app/actions/dialogs-actions.c:356
|
||||
#: app/actions/dialogs-actions.c:351
|
||||
msgctxt "dialogs-action"
|
||||
msgid "Show information on running GIMP release"
|
||||
msgstr "Pokaži informacije o zagonu izdaje GIMP"
|
||||
|
||||
#: app/actions/dialogs-actions.c:362 app/actions/dialogs-actions.c:369
|
||||
#: app/actions/dialogs-actions.c:357 app/actions/dialogs-actions.c:362
|
||||
msgctxt "dialogs-action"
|
||||
msgid "About GIMP"
|
||||
msgstr "O programu GIMP"
|
||||
|
||||
#: app/actions/dialogs-actions.c:364
|
||||
msgctxt "dialogs-action"
|
||||
msgid "About"
|
||||
msgstr "O programu"
|
||||
|
||||
#: app/actions/dialogs-actions.c:366
|
||||
#: app/actions/dialogs-actions.c:359
|
||||
msgctxt "dialogs-action"
|
||||
msgid "_About"
|
||||
msgstr "_O programu"
|
||||
|
||||
#: app/actions/dialogs-actions.c:374
|
||||
#: app/actions/dialogs-actions.c:367
|
||||
msgctxt "dialogs-action"
|
||||
msgid "_Search and Run a Command"
|
||||
msgstr "_Najdi in zaženi ukaz"
|
||||
|
||||
#: app/actions/dialogs-actions.c:376
|
||||
#: app/actions/dialogs-actions.c:369
|
||||
msgctxt "dialogs-action"
|
||||
msgid "Search commands by keyword, and run them"
|
||||
msgstr "Poiščite ukaze po ključnih besedah in jih zaženite"
|
||||
|
||||
#: app/actions/dialogs-actions.c:382
|
||||
#: app/actions/dialogs-actions.c:375
|
||||
msgctxt "dialogs-action"
|
||||
msgid "Manage _Extensions"
|
||||
msgstr "Upravljaj _razširitve"
|
||||
|
||||
#: app/actions/dialogs-actions.c:384
|
||||
#: app/actions/dialogs-actions.c:377
|
||||
msgctxt "dialogs-action"
|
||||
msgid "Manage Extensions: search, install, uninstall, update."
|
||||
msgstr "Upravljanje razširitev: iskanje, namestitev, odstranitev, posodobitev."
|
||||
|
||||
#: app/actions/dialogs-actions.c:448
|
||||
#: app/actions/dialogs-actions.c:441
|
||||
msgid "Tool_box"
|
||||
msgstr "O_rodjarna"
|
||||
|
||||
#: app/actions/dialogs-actions.c:449
|
||||
#: app/actions/dialogs-actions.c:442
|
||||
msgid "Raise the toolbox"
|
||||
msgstr "Privzdigni orodjarno"
|
||||
|
||||
#: app/actions/dialogs-actions.c:453
|
||||
#: app/actions/dialogs-actions.c:446
|
||||
msgid "New Tool_box"
|
||||
msgstr "Nova o_rodjarna"
|
||||
|
||||
#: app/actions/dialogs-actions.c:454
|
||||
#: app/actions/dialogs-actions.c:447
|
||||
msgid "Create a new toolbox"
|
||||
msgstr "Ustvari novo orodjarno"
|
||||
|
||||
@@ -7664,7 +7662,7 @@ msgstr "Slikajte vzdolž poti z zadnjimi vrednostmi"
|
||||
#: app/actions/paths-actions.c:135
|
||||
msgctxt "paths-action"
|
||||
msgid "Co_py Paths"
|
||||
msgstr "Ko_piraj poti …"
|
||||
msgstr "Ko_piraj poti"
|
||||
|
||||
#: app/actions/paths-actions.c:140
|
||||
msgctxt "paths-action"
|
||||
@@ -12908,7 +12906,7 @@ msgstr ""
|
||||
|
||||
#: app/core/gimp-contexts.c:153 app/core/gimp-internal-data.c:338
|
||||
#: app/core/gimptooloptions.c:361 app/gui/modifiers.c:191 app/gui/session.c:449
|
||||
#: app/menus/menus.c:480 app/widgets/gimpdevices.c:226
|
||||
#: app/menus/menus.c:488 app/widgets/gimpdevices.c:226
|
||||
#, c-format
|
||||
msgid "Deleting \"%s\" failed: %s"
|
||||
msgstr "Brisanje »%s« ni uspelo: %s"
|
||||
@@ -14866,11 +14864,11 @@ msgstr "Največja dolžina ravnega sklenjanja"
|
||||
msgid "Maximum straight length (in pixels) to close the line art"
|
||||
msgstr "Največja ravna dolžina (v slikovnih točkah) za zapiranje črt"
|
||||
|
||||
#: app/core/gimplink.c:255
|
||||
#: app/core/gimplink.c:256
|
||||
msgid "The file got deleted"
|
||||
msgstr "Datoteka je izbrisana"
|
||||
|
||||
#: app/core/gimplink.c:349
|
||||
#: app/core/gimplink.c:351
|
||||
msgid "No file was set"
|
||||
msgstr "Nobena datoteka ni nastavljena"
|
||||
|
||||
@@ -16043,10 +16041,15 @@ msgid "Search extensions matching these keywords"
|
||||
msgstr "Išči razširitve, ki se ujemajo s temi ključnimi besedami"
|
||||
|
||||
#: app/dialogs/file-open-dialog.c:142 app/dialogs/file-open-dialog.c:168
|
||||
#: app/dialogs/file-open-dialog.c:286
|
||||
#: app/dialogs/file-open-dialog.c:291
|
||||
msgid "Open layers"
|
||||
msgstr "Odpri plasti"
|
||||
|
||||
#: app/dialogs/file-open-dialog.c:258
|
||||
#, c-format
|
||||
msgid "Opening '%s' failed."
|
||||
msgstr "Odpiranje »%s« ni uspelo."
|
||||
|
||||
#: app/dialogs/file-open-location-dialog.c:74
|
||||
msgid "Open Location"
|
||||
msgstr "Odpri naslov"
|
||||
@@ -18735,13 +18738,13 @@ msgid "GIMP website"
|
||||
msgstr "Spletišče GIMP"
|
||||
|
||||
#: app/dialogs/welcome-dialog.c:545
|
||||
msgid "Tutorials"
|
||||
msgstr "Priročniki"
|
||||
|
||||
#: app/dialogs/welcome-dialog.c:550
|
||||
msgid "Documentation"
|
||||
msgstr "Dokumentacija"
|
||||
|
||||
#: app/dialogs/welcome-dialog.c:550
|
||||
msgid "Community Tutorials"
|
||||
msgstr "Vadnice iz skupnosti"
|
||||
|
||||
#. XXX: should we add API docs for plug-in developers once it's
|
||||
#. * properly set up?
|
||||
#. Welcome message: right
|
||||
@@ -21534,11 +21537,7 @@ msgstr "Zasukaj vektorsko plast"
|
||||
msgid "Transform Vector Layer"
|
||||
msgstr "Preoblikuj vektorsko plast"
|
||||
|
||||
#: app/path/gimpvectorlayer.c:526
|
||||
msgid "Discard Vector Informations"
|
||||
msgstr "Zavrzi podatke o vektorju"
|
||||
|
||||
#: app/path/gimpvectorlayer.c:669
|
||||
#: app/path/gimpvectorlayer.c:526 app/path/gimpvectorlayer.c:669
|
||||
msgid "Discard Vector Information"
|
||||
msgstr "Zavrzi podatke o vektorju"
|
||||
|
||||
@@ -27443,7 +27442,7 @@ msgstr "Drugi podatki"
|
||||
msgid "Select fields"
|
||||
msgstr "Izberite polja"
|
||||
|
||||
#. Tranlators: "N/A" is an abbreviation for "not available"
|
||||
#. Translators: "N/A" is an abbreviation for "not available"
|
||||
#: app/widgets/gimpdashboard.c:3323
|
||||
msgctxt "dashboard-value"
|
||||
msgid "N/A"
|
||||
|
131
po/uk.po
131
po/uk.po
@@ -9,8 +9,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: gimp\n"
|
||||
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gimp/issues\n"
|
||||
"POT-Creation-Date: 2025-09-24 14:14+0000\n"
|
||||
"PO-Revision-Date: 2025-09-24 18:56+0300\n"
|
||||
"POT-Creation-Date: 2025-09-29 19:28+0000\n"
|
||||
"PO-Revision-Date: 2025-09-29 22:51+0300\n"
|
||||
"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
|
||||
"Language-Team: Ukrainian <trans-uk@lists.fedoraproject.org>\n"
|
||||
"Language: uk\n"
|
||||
@@ -182,7 +182,15 @@ msgstr ""
|
||||
"Якщо ви хочете негайно завершити роботу програми, запустіть GIMP з "
|
||||
"параметром --quit."
|
||||
|
||||
#: app/gimp-update.c:444
|
||||
#: app/gimp-update.c:424
|
||||
msgid "Perhaps you are missing GIO backends and need to install GVFS?"
|
||||
msgstr "Можливо, не вистачає механізму GIO, і треба встановити GVFS?"
|
||||
|
||||
#: app/gimp-update.c:429
|
||||
msgid "Perhaps you are missing GIO backends."
|
||||
msgstr "Можливо, у вас не вистачає модулів обробки GIO."
|
||||
|
||||
#: app/gimp-update.c:466
|
||||
#, c-format
|
||||
msgid ""
|
||||
"A new version of GIMP (%s) was released.\n"
|
||||
@@ -2574,8 +2582,8 @@ msgid "Enter a description for the marker"
|
||||
msgstr "Введіть опис позначки"
|
||||
|
||||
#: app/actions/data-commands.c:90 app/actions/documents-commands.c:393
|
||||
#: app/actions/file-commands.c:234 app/dialogs/file-open-dialog.c:253
|
||||
#: app/dialogs/file-open-dialog.c:295
|
||||
#: app/actions/file-commands.c:234 app/dialogs/file-open-dialog.c:254
|
||||
#: app/dialogs/file-open-dialog.c:300
|
||||
#: app/dialogs/file-open-location-dialog.c:217
|
||||
#: app/dialogs/file-open-location-dialog.c:233
|
||||
#: app/display/gimpdisplayshell-dnd.c:646 app/widgets/gimplayertreeview.c:796
|
||||
@@ -3090,134 +3098,124 @@ msgctxt "dialogs-action"
|
||||
msgid "Open the dashboard"
|
||||
msgstr "Відкрити панель приладів"
|
||||
|
||||
#: app/actions/dialogs-actions.c:311 app/actions/dialogs-actions.c:312
|
||||
msgctxt "dialogs-action"
|
||||
msgid "_Settings..."
|
||||
msgstr "_Параметри..."
|
||||
|
||||
#: app/actions/dialogs-actions.c:314 app/actions/dialogs-actions.c:315
|
||||
#: app/actions/dialogs-actions.c:310 app/actions/dialogs-actions.c:311
|
||||
msgctxt "dialogs-action"
|
||||
msgid "_Preferences"
|
||||
msgstr "_Параметри"
|
||||
|
||||
#: app/actions/dialogs-actions.c:318
|
||||
#: app/actions/dialogs-actions.c:313
|
||||
msgctxt "dialogs-action"
|
||||
msgid "Open the preferences dialog"
|
||||
msgstr "Відкрити діалог параметрів програми"
|
||||
|
||||
#: app/actions/dialogs-actions.c:323
|
||||
#: app/actions/dialogs-actions.c:318
|
||||
msgctxt "dialogs-action"
|
||||
msgid "_Input Devices Editor"
|
||||
msgstr "Редактор пристроїв _введення"
|
||||
|
||||
#: app/actions/dialogs-actions.c:324
|
||||
#: app/actions/dialogs-actions.c:319
|
||||
msgctxt "dialogs-action"
|
||||
msgid "_Input Devices"
|
||||
msgstr "Пристрої _вводу"
|
||||
|
||||
#: app/actions/dialogs-actions.c:326
|
||||
#: app/actions/dialogs-actions.c:321
|
||||
msgctxt "dialogs-action"
|
||||
msgid "Open the input devices editor"
|
||||
msgstr "Відкрити редактор пристроїв вводу"
|
||||
|
||||
#: app/actions/dialogs-actions.c:331
|
||||
#: app/actions/dialogs-actions.c:326
|
||||
msgctxt "dialogs-action"
|
||||
msgid "_Keyboard Shortcuts Editor"
|
||||
msgstr "Редактор _комбінацій клавіш"
|
||||
|
||||
#: app/actions/dialogs-actions.c:332
|
||||
#: app/actions/dialogs-actions.c:327
|
||||
msgctxt "dialogs-action"
|
||||
msgid "_Keyboard Shortcuts"
|
||||
msgstr "_Комбінації клавіш"
|
||||
|
||||
#: app/actions/dialogs-actions.c:334
|
||||
#: app/actions/dialogs-actions.c:329
|
||||
msgctxt "dialogs-action"
|
||||
msgid "Open the keyboard shortcuts editor"
|
||||
msgstr "Відкрити діалог налаштування комбінацій клавіш"
|
||||
|
||||
#: app/actions/dialogs-actions.c:339
|
||||
#: app/actions/dialogs-actions.c:334
|
||||
msgctxt "dialogs-action"
|
||||
msgid "_Modules Dialog"
|
||||
msgstr "Вікно _модулів"
|
||||
|
||||
#: app/actions/dialogs-actions.c:340
|
||||
#: app/actions/dialogs-actions.c:335
|
||||
msgctxt "dialogs-action"
|
||||
msgid "_Modules"
|
||||
msgstr "_Модулі"
|
||||
|
||||
#: app/actions/dialogs-actions.c:342
|
||||
#: app/actions/dialogs-actions.c:337
|
||||
msgctxt "dialogs-action"
|
||||
msgid "Open the module manager dialog"
|
||||
msgstr "Відкрити діалог керування модулями"
|
||||
|
||||
#: app/actions/dialogs-actions.c:347
|
||||
#: app/actions/dialogs-actions.c:342
|
||||
msgctxt "dialogs-action"
|
||||
msgid "_Tip of the Day"
|
||||
msgstr "По_рада дня"
|
||||
|
||||
#: app/actions/dialogs-actions.c:349
|
||||
#: app/actions/dialogs-actions.c:344
|
||||
msgctxt "dialogs-action"
|
||||
msgid "Show some helpful tips on using GIMP"
|
||||
msgstr "Показати збірку корисних порід з використання GIMP"
|
||||
|
||||
#: app/actions/dialogs-actions.c:354
|
||||
#: app/actions/dialogs-actions.c:349
|
||||
msgctxt "dialogs-action"
|
||||
msgid "Welcome Dialog"
|
||||
msgstr "Вікно вітання"
|
||||
|
||||
#: app/actions/dialogs-actions.c:356
|
||||
#: app/actions/dialogs-actions.c:351
|
||||
msgctxt "dialogs-action"
|
||||
msgid "Show information on running GIMP release"
|
||||
msgstr "Показати відомості щодо запущеного випуску GIMP"
|
||||
|
||||
#: app/actions/dialogs-actions.c:362 app/actions/dialogs-actions.c:369
|
||||
#: app/actions/dialogs-actions.c:357 app/actions/dialogs-actions.c:362
|
||||
msgctxt "dialogs-action"
|
||||
msgid "About GIMP"
|
||||
msgstr "Про програму GIMP"
|
||||
|
||||
#: app/actions/dialogs-actions.c:364
|
||||
msgctxt "dialogs-action"
|
||||
msgid "About"
|
||||
msgstr "Про програму"
|
||||
|
||||
#: app/actions/dialogs-actions.c:366
|
||||
#: app/actions/dialogs-actions.c:359
|
||||
msgctxt "dialogs-action"
|
||||
msgid "_About"
|
||||
msgstr "_Про програму"
|
||||
|
||||
#: app/actions/dialogs-actions.c:374
|
||||
#: app/actions/dialogs-actions.c:367
|
||||
msgctxt "dialogs-action"
|
||||
msgid "_Search and Run a Command"
|
||||
msgstr "_Пошук і запуск команди"
|
||||
|
||||
#: app/actions/dialogs-actions.c:376
|
||||
#: app/actions/dialogs-actions.c:369
|
||||
msgctxt "dialogs-action"
|
||||
msgid "Search commands by keyword, and run them"
|
||||
msgstr "Пошук команд за ключовим словом та їх запуск"
|
||||
|
||||
#: app/actions/dialogs-actions.c:382
|
||||
#: app/actions/dialogs-actions.c:375
|
||||
msgctxt "dialogs-action"
|
||||
msgid "Manage _Extensions"
|
||||
msgstr "Керування _розширеннями"
|
||||
|
||||
#: app/actions/dialogs-actions.c:384
|
||||
#: app/actions/dialogs-actions.c:377
|
||||
msgctxt "dialogs-action"
|
||||
msgid "Manage Extensions: search, install, uninstall, update."
|
||||
msgstr "Керування розширеннями: пошук, встановлення, вилучення, оновлення."
|
||||
|
||||
#: app/actions/dialogs-actions.c:448
|
||||
#: app/actions/dialogs-actions.c:441
|
||||
msgid "Tool_box"
|
||||
msgstr "Панель _інструментів"
|
||||
|
||||
#: app/actions/dialogs-actions.c:449
|
||||
#: app/actions/dialogs-actions.c:442
|
||||
msgid "Raise the toolbox"
|
||||
msgstr "Підняти вгору панель інструментів"
|
||||
|
||||
#: app/actions/dialogs-actions.c:453
|
||||
#: app/actions/dialogs-actions.c:446
|
||||
msgid "New Tool_box"
|
||||
msgstr "Додати п_анель інструментів"
|
||||
|
||||
#: app/actions/dialogs-actions.c:454
|
||||
#: app/actions/dialogs-actions.c:447
|
||||
msgid "Create a new toolbox"
|
||||
msgstr "Створити нову панель інструментів"
|
||||
|
||||
@@ -12956,7 +12954,7 @@ msgstr ""
|
||||
|
||||
#: app/core/gimp-contexts.c:153 app/core/gimp-internal-data.c:338
|
||||
#: app/core/gimptooloptions.c:361 app/gui/modifiers.c:191 app/gui/session.c:449
|
||||
#: app/menus/menus.c:480 app/widgets/gimpdevices.c:226
|
||||
#: app/menus/menus.c:488 app/widgets/gimpdevices.c:226
|
||||
#, c-format
|
||||
msgid "Deleting \"%s\" failed: %s"
|
||||
msgstr "Не вдалось вилучити «%s»: %s"
|
||||
@@ -16103,10 +16101,16 @@ msgid "Search extensions matching these keywords"
|
||||
msgstr "Шукати розширення за цими ключовими словами"
|
||||
|
||||
#: app/dialogs/file-open-dialog.c:142 app/dialogs/file-open-dialog.c:168
|
||||
#: app/dialogs/file-open-dialog.c:286
|
||||
#: app/dialogs/file-open-dialog.c:291
|
||||
msgid "Open layers"
|
||||
msgstr "Відкрити шари"
|
||||
|
||||
#: app/dialogs/file-open-dialog.c:258
|
||||
#, c-format
|
||||
#| msgid "Opening '%s' failed: %s"
|
||||
msgid "Opening '%s' failed."
|
||||
msgstr "Не вдалося відкрити «%s»."
|
||||
|
||||
#: app/dialogs/file-open-location-dialog.c:74
|
||||
msgid "Open Location"
|
||||
msgstr "Відкривання адреси"
|
||||
@@ -18800,13 +18804,14 @@ msgid "GIMP website"
|
||||
msgstr "Сайт GIMP"
|
||||
|
||||
#: app/dialogs/welcome-dialog.c:545
|
||||
msgid "Tutorials"
|
||||
msgstr "Підручники"
|
||||
|
||||
#: app/dialogs/welcome-dialog.c:550
|
||||
msgid "Documentation"
|
||||
msgstr "Документація"
|
||||
|
||||
#: app/dialogs/welcome-dialog.c:550
|
||||
#| msgid "Tutorials"
|
||||
msgid "Community Tutorials"
|
||||
msgstr "Підручники спільноти"
|
||||
|
||||
#. XXX: should we add API docs for plug-in developers once it's
|
||||
#. * properly set up?
|
||||
#. Welcome message: right
|
||||
@@ -19860,26 +19865,26 @@ msgstr "Натисніть і перетягніть, щоб пересунут
|
||||
msgid "Click-Drag to shear"
|
||||
msgstr "Натисніть і перетягніть для перекошування"
|
||||
|
||||
#: app/file/file-open.c:264
|
||||
#: app/file/file-open.c:272
|
||||
#, c-format
|
||||
msgid "%s plug-in returned SUCCESS but did not return an image"
|
||||
msgstr "Доповнення %s успішно завершило роботу, але не повернуло зображення."
|
||||
|
||||
#: app/file/file-open.c:275
|
||||
#: app/file/file-open.c:283
|
||||
#, c-format
|
||||
msgid "%s plug-in could not open image"
|
||||
msgstr "Доповненню %s не вдалось відкрити зображення"
|
||||
|
||||
#: app/file/file-open.c:690
|
||||
#: app/file/file-open.c:698
|
||||
msgid "Image doesn't contain any layers"
|
||||
msgstr "Зображення не містить шарів"
|
||||
|
||||
#: app/file/file-open.c:748
|
||||
#: app/file/file-open.c:756
|
||||
#, c-format
|
||||
msgid "Opening '%s' failed: %s"
|
||||
msgstr "Не вдалось відкрити «%s»: %s"
|
||||
|
||||
#: app/file/file-open.c:836
|
||||
#: app/file/file-open.c:846
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Only platform-native file paths are supported: '%s' cannot be opened as link."
|
||||
@@ -19887,11 +19892,11 @@ msgstr ""
|
||||
"Передбачено підтримку лише рідних для платформи шляхів до файлів: «%s» не "
|
||||
"можна відкривати як посилання."
|
||||
|
||||
#: app/file/file-open.c:978 app/file/file-save.c:132
|
||||
#: app/file/file-open.c:985 app/file/file-save.c:132
|
||||
msgid "Not a regular file"
|
||||
msgstr "Не є звичайним файлом"
|
||||
|
||||
#: app/file/file-open.c:987 app/file/file-save.c:141
|
||||
#: app/file/file-open.c:994 app/file/file-save.c:141
|
||||
msgid "Permission denied"
|
||||
msgstr "Доступ заборонений"
|
||||
|
||||
@@ -21621,11 +21626,7 @@ msgstr "Обертати векторний шар"
|
||||
msgid "Transform Vector Layer"
|
||||
msgstr "Перетворити векторний шар"
|
||||
|
||||
#: app/path/gimpvectorlayer.c:526
|
||||
msgid "Discard Vector Informations"
|
||||
msgstr "Відкинути дані щодо векторних елементів"
|
||||
|
||||
#: app/path/gimpvectorlayer.c:669
|
||||
#: app/path/gimpvectorlayer.c:526 app/path/gimpvectorlayer.c:669
|
||||
msgid "Discard Vector Information"
|
||||
msgstr "Відкинути дані щодо векторних елементів"
|
||||
|
||||
@@ -22196,7 +22197,6 @@ msgstr "2D перетворення"
|
||||
|
||||
#: app/pdb/link-layer-cmds.c:67 app/pdb/link-layer-cmds.c:89
|
||||
#, c-format
|
||||
#| msgid "Failed to create text layer"
|
||||
msgid "Failed to create link layer"
|
||||
msgstr "Не вдалось створити шар посилання"
|
||||
|
||||
@@ -27559,7 +27559,7 @@ msgstr "Різноманітні відомості"
|
||||
msgid "Select fields"
|
||||
msgstr "Виберіть поля"
|
||||
|
||||
#. Tranlators: "N/A" is an abbreviation for "not available"
|
||||
#. Translators: "N/A" is an abbreviation for "not available"
|
||||
#: app/widgets/gimpdashboard.c:3323
|
||||
msgctxt "dashboard-value"
|
||||
msgid "N/A"
|
||||
@@ -29937,6 +29937,17 @@ msgctxt "edit-action"
|
||||
msgid "Undo History Menu"
|
||||
msgstr "Меню журналу скасувань"
|
||||
|
||||
#~ msgctxt "dialogs-action"
|
||||
#~ msgid "_Settings..."
|
||||
#~ msgstr "_Параметри..."
|
||||
|
||||
#~ msgctxt "dialogs-action"
|
||||
#~ msgid "About"
|
||||
#~ msgstr "Про програму"
|
||||
|
||||
#~ msgid "Discard Vector Informations"
|
||||
#~ msgstr "Відкинути дані щодо векторних елементів"
|
||||
|
||||
#~ msgctxt "vector-mode"
|
||||
#~ msgid "Edit"
|
||||
#~ msgstr "Редагувати"
|
||||
|
@@ -10,7 +10,7 @@ gimptool = executable('gimptool' + exec_ver,
|
||||
'gimptool.c',
|
||||
include_directories: rootInclude,
|
||||
dependencies: [
|
||||
gegl, gtk3,
|
||||
gegl, gtk3, gexiv2
|
||||
],
|
||||
link_with: [
|
||||
libgimpbase,
|
||||
@@ -25,7 +25,7 @@ gimp_test_clipboard = executable('gimp-test-clipboard' + exec_ver,
|
||||
'gimp-test-clipboard.c',
|
||||
include_directories: rootInclude,
|
||||
dependencies: [
|
||||
gegl, gtk3,
|
||||
gegl, gtk3, gexiv2
|
||||
],
|
||||
install: true,
|
||||
)
|
||||
|
@@ -20,45 +20,77 @@
|
||||
############################################
|
||||
|
||||
#### Usage ####
|
||||
if [ "$#" -ne 2 -a "$#" -ne 1 ]; then
|
||||
echo "Usage: $0 <GIMP_TAG_PREV> <GIMP_TAG_CUR>"
|
||||
echo
|
||||
echo " GIMP_TAG_PREV: last tag release or commit (non-included in stats)"
|
||||
echo " ex: GIMP_2_9_6"
|
||||
echo " GIMP_TAG_CUR: current tag release or commit (included in stats); ex: GIMP_2_9_8"
|
||||
echo " ex: GIMP_2_9_8."
|
||||
echo " Optional. If absent, statistics up to HEAD."
|
||||
exit 1
|
||||
fi
|
||||
printf "GIMP version to release: "; read ver
|
||||
|
||||
PREV=$1
|
||||
git --no-pager show $PREV >/dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "First tag is unknown: $PREV"
|
||||
exit 2
|
||||
fi
|
||||
if [ -z "$ver" ]; then
|
||||
TAG="HEAD"
|
||||
PREV_TAG=$(git ls-remote --tags --exit-code --refs "https://gitlab.gnome.org/GNOME/gimp.git" |grep -o "GIMP_[0-9]*_[0-9]*_[0-9]*" | sort --version-sort | tail -1)
|
||||
INTERMEDIATE_TAG=$PREV_TAG
|
||||
|
||||
if [ "$#" = 2 ]; then
|
||||
CUR=$2
|
||||
git --no-pager show $CUR >/dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Second tag is unknown: $CUR"
|
||||
exit 2
|
||||
fi
|
||||
is_dev_release=1
|
||||
else
|
||||
CUR='HEAD'
|
||||
major=$(echo "$ver" | cut -d'.' -f1)
|
||||
minor=$(echo "$ver" | cut -d'.' -f2)
|
||||
micro=$(echo "$ver" | cut -d'.' -f3)
|
||||
|
||||
TAG=GIMP_${major}_${minor}_${micro}
|
||||
|
||||
git --no-pager show $TAG >/dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Tag is unknown: $TAG"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
is_dev_release=$((minor % 2))
|
||||
|
||||
if [ $((micro % 2)) -ne 0 ]; then
|
||||
echo "Releases must have an even micro version."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# The previous tag will be in the same branch. For instance 3.0.4 is
|
||||
# previous to 3.0.6 even if we may have released 3.1 versions
|
||||
# in-between.
|
||||
PREV_TAG=$(git ls-remote --tags --exit-code --refs "https://gitlab.gnome.org/GNOME/gimp.git" |grep -o "GIMP_[0-9]*_[0-9]*_[0-9]*" | sort --version-sort | grep -B1 $TAG | head -1)
|
||||
# The intermediate tag is the actual version we released before.
|
||||
INTERMEDIATE_TAG=$(git ls-remote --tags --sort=taggerdate --exit-code --refs "https://gitlab.gnome.org/GNOME/gimp.git" |grep -o "GIMP_[0-9]*_[0-9]*_[0-9]*" | grep -B1 $TAG | head -1)
|
||||
fi
|
||||
|
||||
prev_date=`git log -1 --format=%ci $PREV`
|
||||
cur_date=`git log -1 --format=%ci $CUR`
|
||||
#if [ $is_dev_release -eq 0 ]; then
|
||||
#read -p "Previous stable GIMP version:" ver
|
||||
#elif [ $micro -eq 0 ];
|
||||
#else
|
||||
#read -p "Previous GIMP version:" ver
|
||||
#fi
|
||||
|
||||
prevmajor=$(echo "$1" | cut -d'_' -f2)
|
||||
prevminor=$(echo "$1" | cut -d'_' -f3)
|
||||
prevmicro=$(echo "$1" | cut -d'_' -f4)
|
||||
prevmajor=$(echo "$PREV_TAG" | cut -d'_' -f2)
|
||||
prevminor=$(echo "$PREV_TAG" | cut -d'_' -f3)
|
||||
prevmicro=$(echo "$PREV_TAG" | cut -d'_' -f4)
|
||||
|
||||
major=$(echo "$2" | cut -d'_' -f2)
|
||||
minor=$(echo "$2" | cut -d'_' -f3)
|
||||
micro=$(echo "$2" | cut -d'_' -f4)
|
||||
intmajor=$(echo "$INTERMEDIATE_TAG" | cut -d'_' -f2)
|
||||
intminor=$(echo "$INTERMEDIATE_TAG" | cut -d'_' -f3)
|
||||
intmicro=$(echo "$INTERMEDIATE_TAG" | cut -d'_' -f4)
|
||||
|
||||
echo "Previous Release: $prevmajor.$prevminor.$prevmicro"
|
||||
if [ "$PREV_TAG" != "$INTERMEDIATE_TAG" ]; then
|
||||
echo "Intermediate Release: $intmajor.$intminor.$intmicro"
|
||||
fi
|
||||
|
||||
#if [ $((prevmicro % 2)) -ne 0 ]; then
|
||||
#echo "Releases must have an even micro version."
|
||||
#exit 1
|
||||
#fi
|
||||
|
||||
#if [ $is_dev_release -eq 0 ]; then
|
||||
#if [ $((prevminor % 2)) -ne 0 ]; then
|
||||
#echo "$ver is not a stable version."
|
||||
#exit 1
|
||||
#fi
|
||||
#fi
|
||||
|
||||
prev_date=`git log -1 --format=%ci $PREV_TAG`
|
||||
int_date=`git log -1 --format=%ci $INTERMEDIATE_TAG`
|
||||
cur_date=`git log -1 --format=%ci $TAG`
|
||||
|
||||
get_issues_mrs()
|
||||
{
|
||||
@@ -116,7 +148,7 @@ count_contributors()
|
||||
folders=$1
|
||||
text=$2
|
||||
|
||||
contributors=`git --no-pager shortlog -sn $PREV..$CUR -- $folders`
|
||||
contributors=`git --no-pager shortlog -sn $PREV_TAG..$TAG -- $folders`
|
||||
if [ -n "$contributors" ]; then
|
||||
contributors=`echo "$contributors" | cut -f2`
|
||||
n_contributors=`echo "$contributors" | wc -l`
|
||||
@@ -152,11 +184,16 @@ count_repo_contributors()
|
||||
text=$3
|
||||
prev_tag=$4
|
||||
cur_tag=$5
|
||||
since_date=$6
|
||||
|
||||
cd $repo
|
||||
git fetch origin > /dev/null 2>&1
|
||||
if [ -z "$cur_tag" ]; then
|
||||
contributors=`git --no-pager shortlog -sn --since="$prev_date" --until="$cur_date" origin/$branch`
|
||||
if [ -z "$since_date" ]; then
|
||||
contributors=`git --no-pager shortlog -sn --since="$prev_date" --until="$cur_date" origin/$branch`
|
||||
else
|
||||
contributors=`git --no-pager shortlog -sn --since="$since_date" --until="$cur_date" origin/$branch`
|
||||
fi
|
||||
else
|
||||
contributors=`git --no-pager shortlog -sn $prev_tag..$cur_tag`
|
||||
fi
|
||||
@@ -177,15 +214,20 @@ count_repo_contributors()
|
||||
cd - > /dev/null
|
||||
}
|
||||
|
||||
echo "Copy the below text into your release news:"
|
||||
echo
|
||||
echo "-------------------------------------------"
|
||||
echo
|
||||
|
||||
echo "Since [GIMP $prevmajor.$prevminor.$prevmicro](/release/$prevmajor.$prevminor.$prevmicro/), in the main GIMP repository:"
|
||||
echo
|
||||
echo "* $closed_issues reports were closed as FIXED."
|
||||
echo "* $merged_mrs merge requests were merged."
|
||||
|
||||
# Main stats:
|
||||
contribs=`git --no-pager shortlog -s -n $PREV..$CUR`
|
||||
contribs=`git --no-pager shortlog -s -n $PREV_TAG..$TAG`
|
||||
contribs_n=`printf "$contribs" | wc -l`
|
||||
commits_n=`git log --oneline $PREV..$CUR | wc -l`
|
||||
commits_n=`git log --oneline $PREV_TAG..$TAG | wc -l`
|
||||
|
||||
echo "* $commits_n commits were pushed."
|
||||
|
||||
@@ -195,16 +237,16 @@ echo "* $commits_n commits were pushed."
|
||||
#commits_rate=$(( $commits_n / $days_n ))
|
||||
|
||||
#echo "Start date: $prev_date - End date: $cur_date"
|
||||
#echo "Between $PREV and $CUR, $contribs_n people contributed $commits_n commits to GIMP."
|
||||
#echo "Between $PREV_TAG and $TAG, $contribs_n people contributed $commits_n commits to GIMP."
|
||||
#echo "This is an average of $commits_rate commits a day."
|
||||
#echo
|
||||
#echo "Statistics on all files:" `git diff --shortstat $PREV..$CUR 2>/dev/null`
|
||||
#echo "Statistics on all files:" `git diff --shortstat $PREV_TAG..$TAG 2>/dev/null`
|
||||
#echo
|
||||
#echo "Total contributor list:"
|
||||
#printf "$contribs"
|
||||
|
||||
# Translation stats:
|
||||
i18n=`git --no-pager log --stat $PREV..$CUR -- po* | grep "Updated\? .* \(translation\|language\)"`
|
||||
i18n=`git --no-pager log --stat $PREV_TAG..$TAG -- po* | grep "Updated\? .* \(translation\|language\)"`
|
||||
i18n=`printf "$i18n" | sed "s/ *Updated\? \(.*\) \(translation\|language\).*/\\1/" | sort | uniq`
|
||||
i18n_n=`printf "$i18n" | wc -l`
|
||||
# It seems that if the last line has no newline, wc does not count it.
|
||||
@@ -214,7 +256,7 @@ i18n_comma=`printf "$i18n" | paste -s -d, | sed 's/,/, /g'`
|
||||
|
||||
echo "* $i18n_n translations were updated: $i18n_comma."
|
||||
|
||||
#echo "Statistics on C files:" `git diff --shortstat $PREV..$CUR -- "*.[ch]" 2>/dev/null`
|
||||
#echo "Statistics on C files:" `git diff --shortstat $PREV_TAG..$TAG -- "*.[ch]" 2>/dev/null`
|
||||
|
||||
echo
|
||||
echo "$contribs_n people contributed changes or fixes to GIMP $major.$minor.$micro codebase (order
|
||||
@@ -229,7 +271,7 @@ count_contributors 'themes/*/*.css themes/*/*png' "%d theme designers: %s"
|
||||
meson_builds=`find . -name meson.build -not -path gimp-data`
|
||||
count_contributors "meson_options.txt $meson_builds .gitlab-ci.yml build" "%d build, packaging or CI contributors: %s"
|
||||
count_contributors 'data/ etc/ desktop/ menus/ docs/ devel-docs/ NEWS INSTALL.in' "%d contributors on other types of resources: %s"
|
||||
count_repo_contributors "gimp-data" main "The gimp-data submodule had %d commits by %d contributors: %s"
|
||||
count_repo_contributors "gimp-data" main "The gimp-data submodule had %d commits by %d contributors: %s" "" "" $int_date
|
||||
count_data_contributors 'images' "%d image creators: %s"
|
||||
count_data_contributors 'icons/*.svg icons/*.png' "%d icon designers: %s"
|
||||
count_data_contributors 'cursors' "%d cursor designers: %s"
|
||||
@@ -251,23 +293,23 @@ echo "number of commits):"
|
||||
echo
|
||||
echo "* Our UX tracker had $ux_closed_issues reports closed as FIXED."
|
||||
|
||||
babl_ver=`get_latest_from_meson babl $CUR`
|
||||
prev_babl_ver=`get_latest_from_meson babl $PREV`
|
||||
babl_ver=`get_latest_from_meson babl $TAG`
|
||||
prev_babl_ver=`get_latest_from_meson babl $PREV_TAG`
|
||||
if [ "$babl_ver" != "$prev_babl_ver" ]; then
|
||||
prev_tag=`get_tag_from_version BABL $prev_babl_ver`
|
||||
cur_tag=`get_tag_from_version BABL $babl_ver`
|
||||
count_repo_contributors "../babl" master "babl $babl_ver is made of %d commits by %d contributors: %s" $prev_tag $cur_tag
|
||||
fi
|
||||
|
||||
gegl_ver=`get_latest_from_meson gegl $CUR`
|
||||
prev_gegl_ver=`get_latest_from_meson gegl $PREV`
|
||||
gegl_ver=`get_latest_from_meson gegl $TAG`
|
||||
prev_gegl_ver=`get_latest_from_meson gegl $PREV_TAG`
|
||||
if [ "$gegl_ver" != "$prev_gegl_ver" ]; then
|
||||
prev_tag=`get_tag_from_version GEGL $prev_gegl_ver`
|
||||
cur_tag=`get_tag_from_version GEGL $gegl_ver`
|
||||
count_repo_contributors "../gegl" master "GEGL $gegl_ver is made of %d commits by %d contributors: %s" $prev_tag $cur_tag
|
||||
fi
|
||||
|
||||
count_repo_contributors "../ctx.graphics" dev "[ctx](https://ctx.graphics/) had %d commits since $prevmajor.$prevminor.$prevmicro release by %d contributors: %s"
|
||||
count_repo_contributors "../ctx.graphics" dev "[ctx](https://ctx.graphics/) had %d commits since $intmajor.$intminor.$intmicro release by %d contributors: %s"
|
||||
count_repo_contributors "../gimp-test-images" main "The \`gimp-test-images\` (unit testing repository) repository had %d commits by %d contributors: %s"
|
||||
count_repo_contributors "../gimp-macos-build" master "The \`gimp-macos-build\` (macOS packaging scripts) release had %d commits by %d contributors: %s"
|
||||
# TODO:
|
||||
|
Reference in New Issue
Block a user