diff options
author | Cam Cook <cam.cook@linux.com> | 2022-12-23 11:02:18 -0500 |
---|---|---|
committer | Cam Cook <cam.cook@linux.com> | 2022-12-23 11:02:18 -0500 |
commit | 424d56830a2bb16da77bce43f04ae2c1b54d3ff8 (patch) | |
tree | 047493c5633b9182b5a5f14639f4c58ad58e8392 | |
parent | 7fc4d0285159bf99953340a9d815e7a7b7cd99fc (diff) | |
parent | f6bd63c9ad70936ef0dbfd33853649ae4f6f35e8 (diff) | |
download | gtk+-424d56830a2bb16da77bce43f04ae2c1b54d3ff8.tar.gz |
Merge remote-tracking branch 'upstream/main' into ccook/doc-changes-1
244 files changed, 15582 insertions, 3299 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index a78287b8b5..7338279661 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -26,7 +26,7 @@ variables: BACKEND_FLAGS: "-Dx11-backend=true -Dwayland-backend=true -Dbroadway-backend=true" FEATURE_FLAGS: "-Dvulkan=enabled -Dcloudproviders=enabled" MESON_TEST_TIMEOUT_MULTIPLIER: 3 - FEDORA_IMAGE: "registry.gitlab.gnome.org/gnome/gtk/fedora:v38" + FEDORA_IMAGE: "registry.gitlab.gnome.org/gnome/gtk/fedora:v40" FLATPAK_IMAGE: "quay.io/gnome_infrastructure/gnome-runtime-images:gnome-master" .only-default: @@ -71,11 +71,6 @@ style-check-diff: key: "$CI_JOB_NAME" paths: - _ccache/ - - subprojects/gdk-pixbuf/ - - subprojects/glib/ - - subprojects/graphene/ - - subprojects/libepoxy/ - - subprojects/pango/ fedora-x86_64: extends: .build-fedora-default @@ -85,10 +80,17 @@ fedora-x86_64: EXTRA_MESON_FLAGS: "--buildtype=debug --default-library=both" script: - .gitlab-ci/show-info-linux.sh - - meson subprojects update + - export PATH="$HOME/.local/bin:$PATH" + - pip3 install --user meson~=0.64 + - meson subprojects download + - meson subprojects update --reset - mkdir _install - - meson --prefix=${CI_PROJECT_DIR}/_install - ${COMMON_MESON_FLAGS} ${EXTRA_MESON_FLAGS} ${BACKEND_FLAGS} ${FEATURE_FLAGS} + - meson setup + --prefix=${CI_PROJECT_DIR}/_install + ${COMMON_MESON_FLAGS} + ${EXTRA_MESON_FLAGS} + ${BACKEND_FLAGS} + ${FEATURE_FLAGS} _build - meson compile -C _build - meson install -C _build @@ -107,10 +109,12 @@ release-build: EXTRA_MESON_FLAGS: "--buildtype=release" script: - .gitlab-ci/show-info-linux.sh - - meson subprojects update - - meson ${COMMON_MESON_FLAGS} ${EXTRA_MESON_FLAGS} ${BACKEND_FLAGS} ${FEATURE_FLAGS} - _build - - ninja -C _build + - export PATH="$HOME/.local/bin:$PATH" + - pip3 install --user meson~=0.64 + - meson subprojects download + - meson subprojects update --reset + - meson setup ${COMMON_MESON_FLAGS} ${EXTRA_MESON_FLAGS} ${BACKEND_FLAGS} ${FEATURE_FLAGS} _build + - meson compile -C _build - .gitlab-ci/run-tests.sh _build x11 fedora-mingw64: @@ -131,34 +135,24 @@ fedora-mingw64: # mingw64-graphene (rawhide) script: - .gitlab-ci/show-info-linux.sh - - meson subprojects update - - mkdir _build && cd _build - - mingw64-meson -Dintrospection=disabled -Dgraphene:introspection=disabled - - ninja - -installed-tests: - extends: .build-fedora-default - stage: build - needs: [] - variables: - EXTRA_MESON_FLAGS: "--prefix=/usr --libdir=/usr/lib64 -Dinstall-tests=true" - G_TEST_ACCESSIBLE: 1 - script: - - .gitlab-ci/show-info-linux.sh - - meson subprojects update - - meson ${COMMON_MESON_FLAGS} ${EXTRA_MESON_FLAGS} ${BACKEND_FLAGS} ${FEATURE_FLAGS} - _build + - export PATH="$HOME/.local/bin:$PATH" + - pip3 install --user meson~=0.64 + - meson subprojects download + - meson subprojects update --reset + # Test that mingw64-meson still fails. If it has stopped failing, the CI + # will fail and now you should remove the hack that follows this. + - FAILED=false + - mingw64-meson --version || FAILED=true + - test $FAILED = false && echo "mingw64-meson works now, remove the hack" && exit 1 + # HACK: Running mingw64-meson directly fails on the CI with: + # /usr/bin/mingw64-meson: line 92: fg: no job control + # Because rpm is not evaluating %__meson and it gets interpreted as a job + # specifier. So we fix that and run it ourselves. + - rpm --eval "%{mingw64_meson}" > mingw64-meson.sh + - sed -i -e 's/%__meson/meson/' mingw64-meson.sh + - chmod +x mingw64-meson.sh + - ./mingw64-meson.sh -Dintrospection=disabled -Dgraphene:introspection=disabled _build - ninja -C _build - - sudo ninja -C _build install - - dbus-run-session xvfb-run -a -s "-screen 0 1024x768x24" - gnome-desktop-testing-runner - --report-directory=_build/installed-tests-report/failed/ - --parallel=0 - gtk-4.0 - artifacts: - paths: - - "_build/installed-tests-report/" - .mingw-defaults: extends: .only-default @@ -191,6 +185,8 @@ msys2-mingw64: - "${CI_PROJECT_DIR}/_build/gtkdll.tar.gz" macos: + # Sadly, this fails regularly, and its failure is never enlightening + allow_failure: true extends: .only-default only: - branches@GNOME/gtk @@ -200,12 +196,13 @@ macos: needs: [] before_script: - bash .gitlab-ci/show-info-osx.sh - - pip3 install --user meson==0.60.3 + - pip3 install --user meson~=0.64 - pip3 install --user ninja - export PATH=/Users/gitlabrunner/Library/Python/3.7/bin:$PATH - export MESON_FORCE_BACKTRACE=1 script: - - meson -Dx11-backend=false + - meson setup + -Dx11-backend=false -Dbroadway-backend=true -Dmacos-backend=true -Dmedia-gstreamer=disabled @@ -214,7 +211,7 @@ macos: -Dpixman:tests=disabled -Dlibjpeg-turbo:simd=disabled _build - - ninja -C _build + - meson compile -C _build artifacts: when: always paths: @@ -339,15 +336,17 @@ static-scan: variables: EXTRA_MESON_FLAGS: "--buildtype=debug" script: - - meson ${COMMON_MESON_FLAGS} ${EXTRA_MESON_FLAGS} _scan_build + - export PATH="$HOME/.local/bin:$PATH" + - pip3 install --user meson~=0.64 + - meson setup ${COMMON_MESON_FLAGS} ${EXTRA_MESON_FLAGS} _scan_build - ninja -C _scan_build scan-build artifacts: paths: - _scan_build/meson-logs allow_failure: true -# Run tests with the address sanitizer. We need to turn off introspection, -# since it is incompatible with asan +# Run tests with the address sanitizer. We need to turn off introspection +# and f16c, since they are incompatible with asan asan-build: image: $FEDORA_IMAGE tags: [ asan ] @@ -355,7 +354,9 @@ asan-build: needs: [] variables: script: - - CC=clang meson --buildtype=debugoptimized -Db_sanitize=address -Db_lundef=false -Dintrospection=disabled _build + - export PATH="$HOME/.local/bin:$PATH" + - pip3 install --user meson~=0.64 + - CC=clang meson setup --buildtype=debugoptimized -Db_sanitize=address -Db_lundef=false -Dintrospection=disabled -Df16c=disabled _build - ninja -C _build - .gitlab-ci/run-tests.sh _build wayland artifacts: @@ -370,7 +371,9 @@ reference: variables: EXTRA_MESON_FLAGS: "--buildtype=release --force-fallback-for=gdk-pixbuf,pango" script: - - meson ${COMMON_MESON_FLAGS} ${EXTRA_MESON_FLAGS} -Dgtk_doc=true -Dgdk-pixbuf:gtk_doc=true -Dpango:gtk_doc=true _build + - export PATH="$HOME/.local/bin:$PATH" + - pip3 install --user meson~=0.64 + - meson setup ${COMMON_MESON_FLAGS} ${EXTRA_MESON_FLAGS} -Dgtk_doc=true -Dgdk-pixbuf:gtk_doc=true -Dpango:gtk_doc=true _build - meson compile -C _build - mkdir -p _reference/ - mv _build/docs/reference/gdk/gdk4/ _reference/gdk4/ diff --git a/.gitlab-ci/fedora.Dockerfile b/.gitlab-ci/fedora.Dockerfile index 6800059bf7..4b61ed0e9a 100644 --- a/.gitlab-ci/fedora.Dockerfile +++ b/.gitlab-ci/fedora.Dockerfile @@ -1,4 +1,4 @@ -FROM fedora:36 +FROM fedora:37 RUN dnf -y install \ adwaita-icon-theme \ @@ -18,7 +18,9 @@ RUN dnf -y install \ dejavu-sans-mono-fonts \ desktop-file-utils \ diffutils \ + docbook-style-xsl \ elfutils-libelf-devel \ + expat-devel \ fribidi-devel \ gcc \ gcc-c++ \ @@ -31,6 +33,7 @@ RUN dnf -y install \ glibc-devel \ glibc-headers \ gnome-desktop-testing \ + gnupg2 \ gobject-introspection-devel \ graphene-devel \ graphviz \ @@ -70,7 +73,6 @@ RUN dnf -y install \ mesa-dri-drivers \ mesa-libEGL-devel \ mesa-libGLES-devel \ - meson \ ninja-build \ pango-devel \ pcre-devel \ @@ -82,7 +84,6 @@ RUN dnf -y install \ python3-markdown \ python3-pip \ python3-pygments \ - python3-toml \ python3-typogrify \ python3-wheel \ redhat-rpm-config \ @@ -94,8 +95,6 @@ RUN dnf -y install \ weston-libs \ which \ xorg-x11-server-Xvfb \ - && dnf install -y 'dnf-command(builddep)' \ - && dnf builddep -y wayland \ && dnf clean all # Enable sudo for wheel users diff --git a/.gitlab-ci/run-tests.sh b/.gitlab-ci/run-tests.sh index b60c3b38cc..a4593532f3 100755 --- a/.gitlab-ci/run-tests.sh +++ b/.gitlab-ci/run-tests.sh @@ -8,7 +8,7 @@ builddir=$1 backend=$2 # Ignore memory leaks lower in dependencies -export LSAN_OPTIONS=suppressions=$srcdir/lsan.supp:print_suppressions=0 +export LSAN_OPTIONS=suppressions=$srcdir/lsan.supp:print_suppressions=0:verbosity=1:log_threads=1 export G_SLICE=always-malloc case "${backend}" in diff --git a/.gitlab-ci/test-msvc.bat b/.gitlab-ci/test-msvc.bat index cf8d9b130c..c985c413fc 100644 --- a/.gitlab-ci/test-msvc.bat +++ b/.gitlab-ci/test-msvc.bat @@ -5,7 +5,7 @@ call "C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Auxiliar @echo on :: FIXME: make warnings fatal -pip3 install --upgrade --user meson==0.60.3 || goto :error +pip3 install --upgrade --user meson~=0.64 || goto :error meson -Ddebug=false -Dmedia-gstreamer=disabled _build || goto :error ninja -C _build || goto :error diff --git a/demos/gtk-demo/meson.build b/demos/gtk-demo/meson.build index ef89fbc7d2..5537cf20a5 100644 --- a/demos/gtk-demo/meson.build +++ b/demos/gtk-demo/meson.build @@ -156,7 +156,7 @@ demos_h = custom_target('gtk4 demo header', objcopy_supports_add_symbol = false objcopy = find_program('objcopy', required : false) if objcopy.found() - objcopy_supports_add_symbol = run_command(objcopy, '--help').stdout().contains('--add-symbol') + objcopy_supports_add_symbol = run_command(objcopy, '--help', check: false).stdout().contains('--add-symbol') endif ld = find_program('ld', required : false) diff --git a/demos/gtk-demo/pickers.c b/demos/gtk-demo/pickers.c index 3a97fa7b37..bed57cecc5 100644 --- a/demos/gtk-demo/pickers.c +++ b/demos/gtk-demo/pickers.c @@ -10,6 +10,8 @@ #include <gtk/gtk.h> +static GtkWidget *app_picker; + static void file_opened (GObject *source, GAsyncResult *result, @@ -25,12 +27,17 @@ file_opened (GObject *source, { g_print ("%s\n", error->message); g_error_free (error); + gtk_widget_set_sensitive (app_picker, FALSE); + g_object_set_data (G_OBJECT (app_picker), "file", NULL); return; } name = g_file_get_basename (file); gtk_label_set_label (GTK_LABEL (data), name); g_free (name); + + gtk_widget_set_sensitive (app_picker, TRUE); + g_object_set_data_full (G_OBJECT (app_picker), "file", g_object_ref (file), g_object_unref); } static gboolean @@ -65,6 +72,36 @@ open_file (GtkButton *picker, g_object_unref (dialog); } +static void +launch_done (GObject *source, + GAsyncResult *result, + gpointer data) +{ + GtkFileLauncher *launcher = GTK_FILE_LAUNCHER (source); + GError *error = NULL; + + if (!gtk_file_launcher_launch_finish (launcher, result, &error)) + { + g_print ("%s\n", error->message); + g_error_free (error); + } +} + +static void +open_app (GtkButton *picker) +{ + GtkWindow *parent = GTK_WINDOW (gtk_widget_get_root (GTK_WIDGET (picker))); + GtkFileLauncher *launcher; + GFile *file; + + file = G_FILE (g_object_get_data (G_OBJECT (picker), "file")); + launcher = gtk_file_launcher_new (file); + + gtk_file_launcher_launch (launcher, parent, NULL, launch_done, NULL); + + g_object_unref (launcher); +} + GtkWidget * do_pickers (GtkWidget *do_widget) { @@ -123,20 +160,17 @@ do_pickers (GtkWidget *do_widget) gtk_box_append (GTK_BOX (picker), button); gtk_grid_attach (GTK_GRID (table), picker, 1, 2, 1, 1); -G_GNUC_BEGIN_IGNORE_DEPRECATIONS - - label = gtk_label_new ("Mail:"); + label = gtk_label_new ("Application:"); gtk_widget_set_halign (label, GTK_ALIGN_START); gtk_widget_set_valign (label, GTK_ALIGN_CENTER); gtk_widget_set_hexpand (label, TRUE); + gtk_grid_attach (GTK_GRID (table), label, 0, 4, 1, 1); - picker = gtk_app_chooser_button_new ("x-scheme-handler/mailto"); - gtk_app_chooser_button_set_show_dialog_item (GTK_APP_CHOOSER_BUTTON (picker), TRUE); - -G_GNUC_END_IGNORE_DEPRECATIONS - - gtk_grid_attach (GTK_GRID (table), label, 0, 3, 1, 1); - gtk_grid_attach (GTK_GRID (table), picker, 1, 3, 1, 1); + app_picker = gtk_button_new_from_icon_name ("emblem-system-symbolic"); + gtk_widget_set_halign (app_picker, GTK_ALIGN_END); + gtk_widget_set_sensitive (app_picker, FALSE); + g_signal_connect (app_picker, "clicked", G_CALLBACK (open_app), NULL); + gtk_grid_attach (GTK_GRID (table), app_picker, 1, 4, 1, 1); } if (!gtk_widget_get_visible (window)) diff --git a/demos/node-editor/meson.build b/demos/node-editor/meson.build index 03489f3f75..72d48cd12c 100644 --- a/demos/node-editor/meson.build +++ b/demos/node-editor/meson.build @@ -14,9 +14,7 @@ executable('gtk4-node-editor', sources: [node_editor_sources, node_editor_resources], dependencies: [ libgtk_dep, demo_conf_h ], include_directories: confinc, - c_args: [ - '-DNODE_EDITOR_SOURCE_DIR="@0@/../../testsuite/gsk/compare/"'.format(meson.current_source_dir()) - ] + common_cflags, + c_args: common_cflags, win_subsystem: 'windows', link_args: extra_demo_ldflags, install: true, diff --git a/demos/node-editor/node-editor-window.c b/demos/node-editor/node-editor-window.c index 3a4800ff73..89110c64be 100644 --- a/demos/node-editor/node-editor-window.c +++ b/demos/node-editor/node-editor-window.c @@ -32,10 +32,6 @@ #include "gsk/vulkan/gskvulkanrenderer.h" #endif -#ifndef NODE_EDITOR_SOURCE_DIR -#define NODE_EDITOR_SOURCE_DIR "." /* Fallback */ -#endif - typedef struct { gsize start_chars; @@ -788,12 +784,52 @@ testcase_name_entry_changed_cb (GtkWidget *button, gtk_widget_set_sensitive (self->testcase_save_button, FALSE); } +/* Returns the location where gsk test cases are stored in + * the GTK testsuite, if we can determine it. + * + * When running node editor outside of a GTK build, you can + * set GTK_SOURCE_DIR to point it at the checkout. + */ +static char * +get_source_dir (void) +{ + const char *subdir = "testsuite/gsk/compare"; + const char *source_dir; + char *current_dir; + char *dir; + + source_dir = g_getenv ("GTK_SOURCE_DIR"); + current_dir = g_get_current_dir (); + + if (source_dir) + { + char *abs_source_dir = g_canonicalize_filename (source_dir, NULL); + dir = g_canonicalize_filename (subdir, abs_source_dir); + g_free (abs_source_dir); + } + else + { + dir = g_canonicalize_filename (subdir, current_dir); + } + + if (g_file_test (dir, G_FILE_TEST_EXISTS)) + { + g_free (current_dir); + + return dir; + } + + g_free (dir); + + return current_dir; +} + static void testcase_save_clicked_cb (GtkWidget *button, NodeEditorWindow *self) { const char *testcase_name = gtk_editable_get_text (GTK_EDITABLE (self->testcase_name_entry)); - char *source_dir = g_canonicalize_filename (NODE_EDITOR_SOURCE_DIR, NULL); + char *source_dir = get_source_dir (); char *node_file_name; char *node_file; char *png_file_name; @@ -806,6 +842,8 @@ testcase_save_clicked_cb (GtkWidget *button, node_file = g_build_filename (source_dir, node_file_name, NULL); g_free (node_file_name); + g_debug ("Saving testcase in %s", node_file); + png_file_name = g_strconcat (testcase_name, ".png", NULL); png_file = g_build_filename (source_dir, png_file_name, NULL); g_free (png_file_name); diff --git a/demos/widget-factory/meson.build b/demos/widget-factory/meson.build index 550eb09bd9..0513555a3f 100644 --- a/demos/widget-factory/meson.build +++ b/demos/widget-factory/meson.build @@ -3,7 +3,7 @@ objcopy_supports_add_symbol = false objcopy = find_program('objcopy', required : false) if objcopy.found() - objcopy_supports_add_symbol = run_command(objcopy, '--help').stdout().contains('--add-symbol') + objcopy_supports_add_symbol = run_command(objcopy, '--help', check: false).stdout().contains('--add-symbol') endif ld = find_program('ld', required : false) diff --git a/docs/reference/gtk/building.md b/docs/reference/gtk/building.md index 31073d1d04..2be7da9916 100644 --- a/docs/reference/gtk/building.md +++ b/docs/reference/gtk/building.md @@ -294,7 +294,7 @@ is mainly useful for shortening turnaround times on developer systems. Installed builds of GTK should always have introspection support. -### `build-tests`, `install-tests`, `demos` +### `build-tests`, `demos` By default, GTK will build quite a few tests and demos. While these are useful on a developer system, they are not diff --git a/docs/reference/gtk/getting_started.md b/docs/reference/gtk/getting_started.md index bde0a6d0d0..03660763f1 100644 --- a/docs/reference/gtk/getting_started.md +++ b/docs/reference/gtk/getting_started.md @@ -51,7 +51,7 @@ main (int argc, GtkApplication *app; int status; - app = gtk_application_new ("org.gtk.example", G_APPLICATION_FLAGS_NONE); + app = gtk_application_new ("org.gtk.example", G_APPLICATION_DEFAULT_FLAGS); g_signal_connect (app, "activate", G_CALLBACK (activate), NULL); status = g_application_run (G_APPLICATION (app), argc, argv); g_object_unref (app); @@ -189,7 +189,7 @@ main (int argc, GtkApplication *app; int status; - app = gtk_application_new ("org.gtk.example", G_APPLICATION_FLAGS_NONE); + app = gtk_application_new ("org.gtk.example", G_APPLICATION_DEFAULT_FLAGS); g_signal_connect (app, "activate", G_CALLBACK (activate), NULL); status = g_application_run (G_APPLICATION (app), argc, argv); g_object_unref (app); @@ -338,7 +338,7 @@ main (int argc, GtkApplication *app; int status; - app = gtk_application_new ("org.gtk.example", G_APPLICATION_FLAGS_NONE); + app = gtk_application_new ("org.gtk.example", G_APPLICATION_DEFAULT_FLAGS); g_signal_connect (app, "activate", G_CALLBACK (activate), NULL); status = g_application_run (G_APPLICATION (app), argc, argv); g_object_unref (app); @@ -560,7 +560,7 @@ main (int argc, GtkApplication *app; int status; - app = gtk_application_new ("org.gtk.example", G_APPLICATION_FLAGS_NONE); + app = gtk_application_new ("org.gtk.example", G_APPLICATION_DEFAULT_FLAGS); g_signal_connect (app, "activate", G_CALLBACK (activate), NULL); status = g_application_run (G_APPLICATION (app), argc, argv); g_object_unref (app); @@ -641,7 +641,7 @@ main (int argc, g_chdir (GTK_SRCDIR); #endif - GtkApplication *app = gtk_application_new ("org.gtk.example", G_APPLICATION_FLAGS_NONE); + GtkApplication *app = gtk_application_new ("org.gtk.example", G_APPLICATION_DEFAULT_FLAGS); g_signal_connect (app, "activate", G_CALLBACK (activate), NULL); int status = g_application_run (G_APPLICATION (app), argc, argv); @@ -1018,6 +1018,10 @@ Our application now looks like this: In this step, we make our application show the content of all the files that it is given on the commandline. +**Note: Providing filenames (e.g. `./exampleapp examplewin.c examplewin.h`) at +the command line is a requirement for example apps 3-9 to display as shown in +the screenshots below.** + To this end, we add a member to the struct of our application window subclass and keep a reference to the `GtkStack` there. The first member of the struct should be the parent type from which the class is derived. Here, diff --git a/docs/reference/meson.build b/docs/reference/meson.build index df5e3d9909..292e82163e 100644 --- a/docs/reference/meson.build +++ b/docs/reference/meson.build @@ -1,7 +1,7 @@ toml_conf = configuration_data() toml_conf.set('version', meson.project_version()) -gidocgen = find_program('gi-docgen', required: get_option('gtk_doc')) +gidocgen = find_program('gi-docgen', required: get_option('gtk_doc'), native: true) gidocgen_common_args = [ '--quiet', diff --git a/examples/action-namespace.c b/examples/action-namespace.c index fb0247c482..9170600e45 100644 --- a/examples/action-namespace.c +++ b/examples/action-namespace.c @@ -106,7 +106,7 @@ activate (GApplication *app, gtk_widget_set_halign (GTK_WIDGET (button), GTK_ALIGN_CENTER); gtk_widget_set_valign (GTK_WIDGET (button), GTK_ALIGN_START); gtk_window_set_child (GTK_WINDOW (window), button); - gtk_widget_show (win); + gtk_window_present (GTK_WINDOW (win)); g_object_unref (button_menu); g_object_unref (doc_actions); diff --git a/examples/bp/bloatpad.c b/examples/bp/bloatpad.c index 0054d77a67..78ea8deb2d 100644 --- a/examples/bp/bloatpad.c +++ b/examples/bp/bloatpad.c @@ -292,7 +292,7 @@ new_window (GApplication *app, G_CALLBACK (text_buffer_changed_cb), window); text_buffer_changed_cb (gtk_text_view_get_buffer (GTK_TEXT_VIEW (view)), window); - gtk_widget_show (GTK_WIDGET (window)); + gtk_window_present (GTK_WINDOW (window)); } static void @@ -465,7 +465,7 @@ edit_accels (GSimpleAction *action, gtk_drop_down_set_selected (GTK_DROP_DOWN (combo), 0); - gtk_widget_show (dialog); + gtk_window_present (GTK_WINDOW (dialog)); } static gboolean diff --git a/examples/builder.c b/examples/builder.c index 5a93c974ae..353cf5aa20 100644 --- a/examples/builder.c +++ b/examples/builder.c @@ -37,7 +37,7 @@ activate (GtkApplication *app, button = gtk_builder_get_object (builder, "quit"); g_signal_connect_swapped (button, "clicked", G_CALLBACK (quit_cb), window); - gtk_widget_show (GTK_WIDGET (window)); + gtk_window_present (GTK_WINDOW (window)); g_object_unref (builder); } diff --git a/examples/drawing.c b/examples/drawing.c index 5a12a89e6f..805975d228 100644 --- a/examples/drawing.c +++ b/examples/drawing.c @@ -164,7 +164,7 @@ activate (GtkApplication *app, g_signal_connect (press, "pressed", G_CALLBACK (pressed), drawing_area); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); } int diff --git a/examples/grid-packing.c b/examples/grid-packing.c index 7d98c9a1db..b7d78b46e7 100644 --- a/examples/grid-packing.c +++ b/examples/grid-packing.c @@ -49,7 +49,7 @@ activate (GtkApplication *app, */ gtk_grid_attach (GTK_GRID (grid), button, 0, 1, 2, 1); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); } diff --git a/examples/hello/hello-world.c b/examples/hello/hello-world.c index a597a97573..3f501dfe64 100644 --- a/examples/hello/hello-world.c +++ b/examples/hello/hello-world.c @@ -27,7 +27,7 @@ activate (GtkApplication *app, gtk_window_set_child (GTK_WINDOW (window), button); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); } int diff --git a/examples/plugman.c b/examples/plugman.c index da91f9de99..8fb19d7b91 100644 --- a/examples/plugman.c +++ b/examples/plugman.c @@ -112,7 +112,7 @@ new_window (GApplication *app, } } - gtk_widget_show (GTK_WIDGET (window)); + gtk_window_present (GTK_WINDOW (window)); } static void diff --git a/examples/search-bar.c b/examples/search-bar.c index f60e1e8cfe..62f034e4b5 100644 --- a/examples/search-bar.c +++ b/examples/search-bar.c @@ -2,7 +2,7 @@ static void activate_cb (GtkApplication *app, - gpointer user_data) + gpointer user_data) { GtkWidget *window; GtkWidget *search_bar; @@ -11,12 +11,11 @@ activate_cb (GtkApplication *app, GtkWidget *menu_button; window = gtk_application_window_new (app); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); search_bar = gtk_search_bar_new (); gtk_widget_set_valign (search_bar, GTK_ALIGN_START); gtk_window_set_child (GTK_WINDOW (window), search_bar); - gtk_widget_show (search_bar); box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6); gtk_search_bar_set_child (GTK_SEARCH_BAR (search_bar), box); diff --git a/examples/sunny.c b/examples/sunny.c index c4aeba52f6..34e717d98c 100644 --- a/examples/sunny.c +++ b/examples/sunny.c @@ -43,7 +43,7 @@ new_window (GApplication *app, } } - gtk_widget_show (GTK_WIDGET (window)); + gtk_window_present (GTK_WINDOW (window)); } static void diff --git a/examples/window-default.c b/examples/window-default.c index 96d7cb85be..86ff66b4bc 100644 --- a/examples/window-default.c +++ b/examples/window-default.c @@ -9,7 +9,7 @@ activate (GtkApplication* app, window = gtk_application_window_new (app); gtk_window_set_title (GTK_WINDOW (window), "Window"); gtk_window_set_default_size (GTK_WINDOW (window), 200, 200); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); } int @@ -118,7 +118,8 @@ static const GdkDebugKey gdk_debug_keys[] = { { "selection", GDK_DEBUG_SELECTION, "Information about selections" }, { "clipboard", GDK_DEBUG_CLIPBOARD, "Information about clipboards" }, { "nograbs", GDK_DEBUG_NOGRABS, "Disable pointer and keyboard grabs (X11)", TRUE }, - { "portals", GDK_DEBUG_PORTALS, "Force the use of portals", TRUE }, + { "portals", GDK_DEBUG_PORTALS, "Force use of portals", TRUE }, + { "no-portals", GDK_DEBUG_NO_PORTALS, "Disable use of portals", TRUE }, { "gl-disable", GDK_DEBUG_GL_DISABLE, "Disable OpenGL support", TRUE }, { "gl-debug", GDK_DEBUG_GL_DEBUG, "Insert debugging information in OpenGL", TRUE }, { "gl-legacy", GDK_DEBUG_GL_LEGACY, "Use a legacy OpenGL context", TRUE }, @@ -359,6 +360,9 @@ gdk_should_use_portal (void) if (gdk_display_get_debug_flags (NULL) & GDK_DEBUG_PORTALS) return TRUE; + if (gdk_display_get_debug_flags (NULL) & GDK_DEBUG_NO_PORTALS) + return FALSE; + if (gdk_running_in_sandbox ()) return TRUE; diff --git a/gdk/gdkcontentserializer.c b/gdk/gdkcontentserializer.c index 2ffbbf5ae5..da9f668d8c 100644 --- a/gdk/gdkcontentserializer.c +++ b/gdk/gdkcontentserializer.c @@ -795,6 +795,22 @@ file_serializer_finish (GObject *source, gdk_content_serializer_return_success (serializer); } +static char * +file_get_native_uri (GFile *file) +{ + char *path; + + path = g_file_get_path (file); + if (path != NULL) + { + char *uri = g_filename_to_uri (path, NULL, NULL); + g_free (path); + return uri; + } + + return g_file_get_uri (file); +} + static void file_uri_serializer (GdkContentSerializer *serializer) { @@ -811,7 +827,7 @@ file_uri_serializer (GdkContentSerializer *serializer) file = g_value_get_object (gdk_content_serializer_get_value (serializer)); if (file) { - uri = g_file_get_uri (file); + uri = file_get_native_uri (file); g_string_append (str, uri); g_free (uri); } @@ -827,7 +843,7 @@ file_uri_serializer (GdkContentSerializer *serializer) for (l = g_value_get_boxed (value); l; l = l->next) { - uri = g_file_get_uri (l->data); + uri = file_get_native_uri (l->data); g_string_append (str, uri); g_free (uri); g_string_append (str, "\r\n"); diff --git a/gdk/gdkdebugprivate.h b/gdk/gdkdebugprivate.h index d778414d58..c9baba28a7 100644 --- a/gdk/gdkdebugprivate.h +++ b/gdk/gdkdebugprivate.h @@ -40,7 +40,8 @@ typedef enum { /* flags below are influencing behavior */ GDK_DEBUG_NOGRABS = 1 << 11, GDK_DEBUG_PORTALS = 1 << 12, - GDK_DEBUG_GL_DISABLE = 1 << 13, + GDK_DEBUG_NO_PORTALS = 1 << 13, + GDK_DEBUG_GL_DISABLE = 1 << 14, GDK_DEBUG_GL_LEGACY = 1 << 16, GDK_DEBUG_GL_GLES = 1 << 17, GDK_DEBUG_GL_DEBUG = 1 << 18, diff --git a/gdk/gdkdevicetool.c b/gdk/gdkdevicetool.c index e112926e59..1869cc348d 100644 --- a/gdk/gdkdevicetool.c +++ b/gdk/gdkdevicetool.c @@ -197,7 +197,7 @@ gdk_device_tool_get_serial (GdkDeviceTool *tool) * * Gets the hardware ID of this tool, or 0 if it's not known. * - * When non-zero, the identificator is unique for the given tool model, + * When non-zero, the identifier is unique for the given tool model, * meaning that two identical tools will share the same @hardware_id, * but will have different serial numbers (see * [method@Gdk.DeviceTool.get_serial]). @@ -205,9 +205,9 @@ gdk_device_tool_get_serial (GdkDeviceTool *tool) * This is a more concrete (and device specific) method to identify * a `GdkDeviceTool` than [method@Gdk.DeviceTool.get_tool_type], * as a tablet may support multiple devices with the same - * `GdkDeviceToolType`, but different hardware identificators. + * `GdkDeviceToolType`, but different hardware identifiers. * - * Returns: The hardware identificator of this tool. + * Returns: The hardware identifier of this tool. */ guint64 gdk_device_tool_get_hardware_id (GdkDeviceTool *tool) diff --git a/gdk/gdkevents.c b/gdk/gdkevents.c index e63c54fcb4..6bb9c91a74 100644 --- a/gdk/gdkevents.c +++ b/gdk/gdkevents.c @@ -1174,9 +1174,16 @@ gdk_event_get_axes (GdkEvent *event, double **axes, guint *n_axes) { + gboolean ret; + g_return_val_if_fail (GDK_IS_EVENT (event), FALSE); - return GDK_EVENT_GET_CLASS (event)->get_axes (event, axes, n_axes); + ret = GDK_EVENT_GET_CLASS (event)->get_axes (event, axes, n_axes); + + if (*axes == NULL) + return FALSE; + + return ret; } double * diff --git a/gdk/gdkprivate.h b/gdk/gdkprivate.h index 0f37cb0d8b..b93e1800f5 100644 --- a/gdk/gdkprivate.h +++ b/gdk/gdkprivate.h @@ -23,4 +23,23 @@ void gdk_source_set_static_name_by_id (guint tag, #define I_(string) g_intern_static_string (string) #endif +#if !GLIB_CHECK_VERSION (2, 75, 1) +static inline gboolean +g_set_str (char **str_pointer, + const char *new_str) +{ + char *copy; + + if (*str_pointer == new_str || + (*str_pointer && new_str && strcmp (*str_pointer, new_str) == 0)) + return FALSE; + + copy = g_strdup (new_str); + g_free (*str_pointer); + *str_pointer = copy; + + return TRUE; +} +#endif + #endif /* __GDK__PRIVATE_H__ */ diff --git a/gdk/gdkvulkancontext.c b/gdk/gdkvulkancontext.c index 70450f2334..c28327fbd2 100644 --- a/gdk/gdkvulkancontext.c +++ b/gdk/gdkvulkancontext.c @@ -94,7 +94,7 @@ gdk_vulkan_strerror (VkResult result) * Because the Vulkan people don't make adding this too easy, here's * the process to manage it: * 1. go to - * https://github.com/KhronosGroup/Vulkan-Headers/blob/master/include/vulkan/vulkan_core.h + * https://github.com/KhronosGroup/Vulkan-Headers/blob/main/include/vulkan/vulkan_core.h * 2. Find the line where this enum value was added. * 3. Click the commit that added this line. * 4. The commit you're looking at now should also change @@ -215,6 +215,10 @@ gdk_vulkan_strerror (VkResult result) case VK_ERROR_PIPELINE_COMPILE_REQUIRED_EXT: return "A requested pipeline creation would have required compilation, but the application requested compilation to not be performed. (VK_ERROR_PIPELINE_COMPILE_REQUIRED_EXT)"; #endif +#if VK_HEADER_VERSION >= 213 + case VK_ERROR_COMPRESSION_EXHAUSTED_EXT: + return "An image creation failed because internal resources required for compression are exhausted. (VK_ERROR_COMPRESSION_EXHAUSTED_EXT)"; +#endif #if VK_HEADER_VERSION < 140 case VK_RESULT_RANGE_SIZE: #endif @@ -488,7 +492,7 @@ gdk_vulkan_context_end_frame (GdkDrawContext *draw_context, priv->draw_semaphore }, .swapchainCount = 1, - .pSwapchains = (VkSwapchainKHR[]) { + .pSwapchains = (VkSwapchainKHR[]) { priv->swapchain }, .pImageIndices = (uint32_t[]) { @@ -608,7 +612,7 @@ gdk_vulkan_context_real_init (GInitable *initable, { g_set_error_literal (error, GDK_VULKAN_ERROR, GDK_VULKAN_ERROR_NOT_AVAILABLE, "No supported image format found."); - goto out_surface; + goto out_surface; } priv->image_format = formats[i]; priv->has_present_region = device_supports_incremental_present (display->vk_physical_device); @@ -1037,8 +1041,8 @@ gdk_display_create_vulkan_instance (GdkDisplay *display, GDK_VK_CHECK (vkEnumerateInstanceExtensionProperties, NULL, &n_extensions, extensions); used_extensions = g_ptr_array_new (); - g_ptr_array_add (used_extensions, (gpointer) VK_KHR_SURFACE_EXTENSION_NAME); - g_ptr_array_add (used_extensions, (gpointer) GDK_DISPLAY_GET_CLASS (display)->vk_extension_name); + g_ptr_array_add (used_extensions, (gpointer) VK_KHR_SURFACE_EXTENSION_NAME); + g_ptr_array_add (used_extensions, (gpointer) GDK_DISPLAY_GET_CLASS (display)->vk_extension_name); for (i = 0; i < n_extensions; i++) { @@ -1118,7 +1122,7 @@ gdk_display_create_vulkan_instance (GdkDisplay *display, if (have_debug_report) { PFN_vkCreateDebugReportCallbackEXT vkCreateDebugReportCallbackEXT; - + vkCreateDebugReportCallbackEXT = (PFN_vkCreateDebugReportCallbackEXT) vkGetInstanceProcAddr (display->vk_instance, "vkCreateDebugReportCallbackEXT" ); GDK_VK_CHECK (vkCreateDebugReportCallbackEXT, display->vk_instance, &(VkDebugReportCallbackCreateInfoEXT) { @@ -1167,7 +1171,7 @@ gdk_display_ref_vulkan (GdkDisplay *display, } display->vulkan_refcount++; - + return TRUE; } @@ -1180,7 +1184,7 @@ gdk_display_unref_vulkan (GdkDisplay *display) display->vulkan_refcount--; if (display->vulkan_refcount > 0) return; - + vkDestroyDevice (display->vk_device, NULL); display->vk_device = VK_NULL_HANDLE; if (display->vk_debug_callback != VK_NULL_HANDLE) diff --git a/gdk/macos/gdkmacosdisplay-translate.c b/gdk/macos/gdkmacosdisplay-translate.c index 502a9a8cac..b06dc83dbe 100644 --- a/gdk/macos/gdkmacosdisplay-translate.c +++ b/gdk/macos/gdkmacosdisplay-translate.c @@ -760,16 +760,9 @@ find_surface_under_pointer (GdkMacosDisplay *self, int *x, int *y) { - GdkPointerSurfaceInfo *info; GdkMacosSurface *surface; - GdkDevice *pointer; - GdkSeat *seat; int x_tmp, y_tmp; - seat = gdk_display_get_default_seat (GDK_DISPLAY (self)); - pointer = gdk_seat_get_pointer (seat); - info = _gdk_display_get_pointer_info (GDK_DISPLAY (self), pointer); - surface = _gdk_macos_display_get_surface_at_display_coords (self, screen_point.x, screen_point.y, diff --git a/gdk/macos/gdkmacosdisplay.c b/gdk/macos/gdkmacosdisplay.c index a999908d88..0e5a9b8eb6 100644 --- a/gdk/macos/gdkmacosdisplay.c +++ b/gdk/macos/gdkmacosdisplay.c @@ -870,15 +870,12 @@ _gdk_macos_display_get_surface_at_coords (GdkMacosDisplay *self, for (const GList *iter = surfaces; iter; iter = iter->next) { GdkSurface *surface = iter->data; - NSWindow *nswindow; g_assert (GDK_IS_MACOS_SURFACE (surface)); if (!gdk_surface_get_mapped (surface)) continue; - nswindow = _gdk_macos_surface_get_native (GDK_MACOS_SURFACE (surface)); - if (x >= GDK_MACOS_SURFACE (surface)->root_x && y >= GDK_MACOS_SURFACE (surface)->root_y && x <= (GDK_MACOS_SURFACE (surface)->root_x + surface->width) && diff --git a/gdk/macos/gdkmacosglcontext.c b/gdk/macos/gdkmacosglcontext.c index 20ed528ff9..8b6b928d5f 100644 --- a/gdk/macos/gdkmacosglcontext.c +++ b/gdk/macos/gdkmacosglcontext.c @@ -460,12 +460,10 @@ gdk_macos_gl_context_begin_frame (GdkDrawContext *context, { GdkMacosGLContext *self = (GdkMacosGLContext *)context; GdkMacosBuffer *buffer; - cairo_region_t *copy; GdkSurface *surface; g_assert (GDK_IS_MACOS_GL_CONTEXT (self)); - copy = cairo_region_copy (region); surface = gdk_draw_context_get_surface (context); buffer = _gdk_macos_surface_get_buffer (GDK_MACOS_SURFACE (surface)); diff --git a/gdk/macos/gdkmacoskeymap.c b/gdk/macos/gdkmacoskeymap.c index 5cf34d3ed3..a286c093bb 100644 --- a/gdk/macos/gdkmacoskeymap.c +++ b/gdk/macos/gdkmacoskeymap.c @@ -276,10 +276,8 @@ gdk_macos_keymap_update (GdkMacosKeymap *self) { UInt32 state = 0; OSStatus err; - UInt16 key_code; UniChar uc; - key_code = modifiers[j] | i; err = UCKeyTranslate (chr_data, i, kUCKeyActionDisplay, (modifiers[j] >> 8) & 0xFF, LMGetKbdType(), @@ -369,7 +367,7 @@ gdk_macos_keymap_update (GdkMacosKeymap *self) if (p[0] == known_numeric_keys[i].normal_keyval) p[0] = known_numeric_keys[i].keypad_keyval; } - + for (i = 0; i < G_N_ELEMENTS (jis_keys); i++) { p = keyval_array + jis_keys[i].keycode * KEYVALS_PER_KEYCODE; diff --git a/gdk/macos/gdkmacosmonitor.c b/gdk/macos/gdkmacosmonitor.c index a9aba3634b..df2676b6cf 100644 --- a/gdk/macos/gdkmacosmonitor.c +++ b/gdk/macos/gdkmacosmonitor.c @@ -215,7 +215,6 @@ gdk_macos_monitor_display_link_cb (GdkMacosMonitor *self) { gint64 presentation_time; gint64 refresh_interval; - gint64 now; GList *iter; g_assert (GDK_IS_MACOS_MONITOR (self)); @@ -225,7 +224,6 @@ gdk_macos_monitor_display_link_cb (GdkMacosMonitor *self) presentation_time = self->display_link->presentation_time; refresh_interval = self->display_link->refresh_interval; - now = g_source_get_time ((GSource *)self->display_link); iter = self->awaiting_frames.head; diff --git a/gdk/macos/gdkmacossurface.c b/gdk/macos/gdkmacossurface.c index 00a33975d4..ef0b5efa17 100644 --- a/gdk/macos/gdkmacossurface.c +++ b/gdk/macos/gdkmacossurface.c @@ -195,7 +195,6 @@ gdk_macos_surface_hide (GdkSurface *surface) { GdkMacosSurface *self = (GdkMacosSurface *)surface; GdkSeat *seat; - gboolean was_mapped; gboolean was_key; g_assert (GDK_IS_MACOS_SURFACE (self)); @@ -204,7 +203,6 @@ gdk_macos_surface_hide (GdkSurface *surface) _gdk_macos_surface_cancel_frame (self); - was_mapped = GDK_SURFACE_IS_MAPPED (surface); was_key = [self->window isKeyWindow]; seat = gdk_display_get_default_seat (surface->display); @@ -285,14 +283,12 @@ gdk_macos_surface_end_frame (GdkMacosSurface *self) { GdkFrameTimings *timings; GdkFrameClock *frame_clock; - GdkDisplay *display; g_assert (GDK_IS_MACOS_SURFACE (self)); if (GDK_SURFACE_DESTROYED (self)) return; - display = gdk_surface_get_display (GDK_SURFACE (self)); frame_clock = gdk_surface_get_frame_clock (GDK_SURFACE (self)); if ((timings = gdk_frame_clock_get_current_timings (frame_clock))) @@ -420,7 +416,6 @@ gdk_macos_surface_drag_begin (GdkSurface *surface, GdkMacosSurface *drag_surface; GdkMacosDrag *drag; GdkCursor *cursor; - GdkSeat *seat; double px; double py; int sx; @@ -432,7 +427,6 @@ gdk_macos_surface_drag_begin (GdkSurface *surface, g_assert (GDK_IS_MACOS_DEVICE (device)); g_assert (GDK_IS_CONTENT_PROVIDER (content)); - seat = gdk_device_get_seat (device); gdk_macos_device_query_state (device, surface, NULL, &px, &py, NULL); _gdk_macos_surface_get_root_coords (GDK_MACOS_SURFACE (surface), &sx, &sy); drag_surface = _gdk_macos_surface_new (GDK_MACOS_DISPLAY (surface->display), diff --git a/gdk/win32/gdkclipdrop-win32.c b/gdk/win32/gdkclipdrop-win32.c index 57ade2180d..aeadad56c8 100644 --- a/gdk/win32/gdkclipdrop-win32.c +++ b/gdk/win32/gdkclipdrop-win32.c @@ -2081,23 +2081,30 @@ transmute_cf_unicodetext_to_utf8_string (const guchar *data, gsize *set_data_length, GDestroyNotify *set_data_destroy) { - wchar_t *ptr, *p, *q; + wchar_t *ptr, *p, *q, *endp; char *result; glong wclen, u8_len; - /* Strip out \r */ + /* Replace CR and CR+LF with LF */ ptr = (wchar_t *) data; p = ptr; q = ptr; + endp = ptr + length / 2; wclen = 0; - while (p < ptr + length / 2) + while (p < endp) { if (*p != L'\r') { *q++ = *p; wclen++; } + else if (p + 1 >= endp || *(p + 1) != L'\n') + { + *q++ = L'\n'; + wclen++; + } + p++; } @@ -2282,7 +2289,7 @@ transmute_cf_text_to_utf8_string (const guchar *data, gsize *set_data_length, GDestroyNotify *set_data_destroy) { - char *ptr, *p, *q; + char *ptr, *p, *q, *endp; char *result; glong wclen, u8_len; wchar_t *wstr; @@ -2291,15 +2298,22 @@ transmute_cf_text_to_utf8_string (const guchar *data, ptr = (char *) data; p = ptr; q = ptr; + endp = ptr + length / 2; wclen = 0; - while (p < ptr + length / 2) + while (p < endp) { if (*p != '\r') { *q++ = *p; wclen++; } + else if (p + 1 > endp || *(p + 1) != '\n') + { + *q++ = '\n'; + wclen++; + } + p++; } diff --git a/gdk/win32/gdkevents-win32.c b/gdk/win32/gdkevents-win32.c index 60fd778a4a..10803a4845 100644 --- a/gdk/win32/gdkevents-win32.c +++ b/gdk/win32/gdkevents-win32.c @@ -2731,22 +2731,15 @@ gdk_event_translate (MSG *msg, } break; - case WM_MOUSEACTIVATE: - { - if (GDK_IS_DRAG_SURFACE (window)) - { - *ret_valp = MA_NOACTIVATE; - return_val = TRUE; - } - - if (_gdk_modal_blocked (window)) - { - *ret_valp = MA_NOACTIVATEANDEAT; - return_val = TRUE; - } - } - - break; + case WM_MOUSEACTIVATE: + if (GDK_IS_DRAG_SURFACE (window) || + _gdk_modal_blocked (window)) + { + *ret_valp = MA_NOACTIVATE; + return_val = TRUE; + } + + break; case WM_POINTERACTIVATE: if (GDK_IS_DRAG_SURFACE (window) || @@ -2990,6 +2983,8 @@ gdk_event_translate (MSG *msg, } #endif + impl = GDK_WIN32_SURFACE (window); + /* Break grabs on unmap or minimize */ if (windowpos->flags & SWP_HIDEWINDOW || ((windowpos->flags & SWP_STATECHANGED) && IsIconic (msg->hwnd))) @@ -3050,9 +3045,18 @@ gdk_event_translate (MSG *msg, !(windowpos->flags & SWP_NOCLIENTSIZE) || (windowpos->flags & SWP_SHOWWINDOW)) { - if (!IsIconic (msg->hwnd) && - !GDK_SURFACE_DESTROYED (window)) - gdk_surface_request_layout (window); + if (!IsIconic (msg->hwnd) && !GDK_SURFACE_DESTROYED (window)) + { + if (!_gdk_win32_surface_lacks_wm_decorations (window) && + !(windowpos->flags & SWP_NOCLIENTSIZE) && + window->width == impl->next_layout.configured_width && + window->height == impl->next_layout.configured_height) + { + impl->inhibit_configure = TRUE; + } + + gdk_surface_request_layout (window); + } } if ((windowpos->flags & SWP_HIDEWINDOW) && diff --git a/gdk/x11/gdksurface-x11.c b/gdk/x11/gdksurface-x11.c index b77cd2e3ad..f32190b385 100644 --- a/gdk/x11/gdksurface-x11.c +++ b/gdk/x11/gdksurface-x11.c @@ -759,6 +759,8 @@ gdk_x11_surface_finalize (GObject *object) } g_clear_pointer (&impl->surface_is_on_monitor, g_list_free); + g_clear_handle_id (&impl->compute_size_source_id, g_source_remove); + g_clear_pointer (&impl->toplevel_layout, gdk_toplevel_layout_unref); g_free (impl->toplevel); diff --git a/gtk/deprecated/gtkappchooserbutton.c b/gtk/deprecated/gtkappchooserbutton.c index 3f83f2fde7..7d7a5df577 100644 --- a/gtk/deprecated/gtkappchooserbutton.c +++ b/gtk/deprecated/gtkappchooserbutton.c @@ -320,7 +320,7 @@ gtk_app_chooser_button_ensure_dialog_item (GtkAppChooserButton *self, gtk_list_store_insert_after (self->store, &iter, &iter2); real_insert_custom_item (self, CUSTOM_ITEM_OTHER_APP, - _("Other application…"), NULL, + _("Other app…"), NULL, FALSE, &iter); } diff --git a/gtk/deprecated/gtkappchooserwidget.c b/gtk/deprecated/gtkappchooserwidget.c index 60e31fc336..2f69d7e80a 100644 --- a/gtk/deprecated/gtkappchooserwidget.c +++ b/gtk/deprecated/gtkappchooserwidget.c @@ -522,7 +522,7 @@ gtk_app_chooser_add_default (GtkAppChooserWidget *self, gboolean unref_icon; unref_icon = FALSE; - string = g_strdup_printf ("<b>%s</b>", _("Default Application")); + string = g_strdup_printf ("<b>%s</b>", _("Default App")); gtk_list_store_append (self->program_list_store, &iter); gtk_list_store_set (self->program_list_store, &iter, @@ -572,7 +572,7 @@ update_no_applications_label (GtkAppChooserWidget *self) if (self->content_type) desc = g_content_type_get_description (self->content_type); - string = text = g_strdup_printf (_("No applications found for “%sâ€."), desc); + string = text = g_strdup_printf (_("No apps found for “%sâ€."), desc); g_free (desc); } else @@ -655,7 +655,7 @@ gtk_app_chooser_widget_real_add_items (GtkAppChooserWidget *self) if (self->content_type) recommended_apps = g_app_info_get_recommended_for_type (self->content_type); - apps_added |= gtk_app_chooser_widget_add_section (self, _("Recommended Applications"), + apps_added |= gtk_app_chooser_widget_add_section (self, _("Recommended Apps"), show_headings, !self->show_all, /* mark as recommended */ FALSE, /* mark as fallback */ @@ -670,7 +670,7 @@ gtk_app_chooser_widget_real_add_items (GtkAppChooserWidget *self) if (self->content_type) fallback_apps = g_app_info_get_fallback_for_type (self->content_type); - apps_added |= gtk_app_chooser_widget_add_section (self, _("Related Applications"), + apps_added |= gtk_app_chooser_widget_add_section (self, _("Related Apps"), show_headings, FALSE, /* mark as recommended */ !self->show_all, /* mark as fallback */ @@ -684,7 +684,7 @@ gtk_app_chooser_widget_real_add_items (GtkAppChooserWidget *self) { all_applications = g_app_info_get_all (); - apps_added |= gtk_app_chooser_widget_add_section (self, _("Other Applications"), + apps_added |= gtk_app_chooser_widget_add_section (self, _("Other Apps"), show_headings, FALSE, FALSE, diff --git a/gtk/gtkshow.c b/gtk/deprecated/gtkshow.c index 15c4ee1b11..ff57a27550 100644 --- a/gtk/gtkshow.c +++ b/gtk/deprecated/gtkshow.c @@ -27,6 +27,8 @@ #include "gtkalertdialog.h" #include <glib/gi18n-lib.h> +G_GNUC_BEGIN_IGNORE_DEPRECATIONS + typedef struct { GtkWindow *parent; GAppLaunchContext *context; @@ -96,6 +98,8 @@ window_handle_exported (GtkWindow *window, * * This is the recommended call to be used as it passes information * necessary for sandbox helpers to parent their dialogs properly. + * + * Deprecated: 4.10: Use [method@Gtk.FileLauncher.launch] instead */ void gtk_show_uri_full (GtkWindow *parent, @@ -142,6 +146,8 @@ gtk_show_uri_full (GtkWindow *parent, * * Returns: %TRUE if the URI was shown successfully. * Otherwise, %FALSE is returned and @error is set + * + * Deprecated: 4.10: Use [method@Gtk.FileLauncher.launch_finish] instead */ gboolean gtk_show_uri_full_finish (GtkWindow *parent, @@ -184,6 +190,8 @@ show_uri_done (GObject *object, * * This function launches the default application for showing * a given uri, or shows an error dialog if that fails. + * + * Deprecated: 4.10: Use [method@Gtk.FileLauncher.launch] instead */ void gtk_show_uri (GtkWindow *parent, diff --git a/gtk/gtkshow.h b/gtk/deprecated/gtkshow.h index 0c5cea6fba..6915be0b11 100644 --- a/gtk/gtkshow.h +++ b/gtk/deprecated/gtkshow.h @@ -29,7 +29,7 @@ G_BEGIN_DECLS -GDK_AVAILABLE_IN_ALL +GDK_DEPRECATED_IN_4_10_FOR(gtk_file_launcher_launch) void gtk_show_uri_full (GtkWindow *parent, const char *uri, guint32 timestamp, @@ -37,12 +37,12 @@ void gtk_show_uri_full (GtkWindow *parent, GAsyncReadyCallback callback, gpointer user_data); -GDK_AVAILABLE_IN_ALL +GDK_DEPRECATED_IN_4_10_FOR(gtk_file_launcher_launch) gboolean gtk_show_uri_full_finish (GtkWindow *parent, GAsyncResult *result, GError **error); -GDK_AVAILABLE_IN_ALL +GDK_DEPRECATED_IN_4_10_FOR(gtk_file_launcher_launch) void gtk_show_uri (GtkWindow *parent, const char *uri, guint32 timestamp); diff --git a/gtk/deprecated/gtktreeview.c b/gtk/deprecated/gtktreeview.c index 7ade280056..150c963f63 100644 --- a/gtk/deprecated/gtktreeview.c +++ b/gtk/deprecated/gtktreeview.c @@ -4395,7 +4395,6 @@ gtk_tree_view_bin_snapshot (GtkWidget *widget, GList *first_column, *last_column; gboolean has_can_focus_cell; gboolean rtl; - int n_visible_columns; int expander_size; gboolean draw_vgrid_lines, draw_hgrid_lines; GtkStyleContext *context; @@ -4455,14 +4454,6 @@ gtk_tree_view_bin_snapshot (GtkWidget *widget, || priv->grid_lines == GTK_TREE_VIEW_GRID_LINES_BOTH; expander_size = gtk_tree_view_get_expander_size (tree_view); - n_visible_columns = 0; - for (list = priv->columns; list; list = list->next) - { - if (!gtk_tree_view_column_get_visible (GTK_TREE_VIEW_COLUMN (list->data))) - continue; - n_visible_columns ++; - } - /* Find the last column */ for (last_column = g_list_last (priv->columns); last_column && @@ -4487,7 +4478,6 @@ gtk_tree_view_bin_snapshot (GtkWidget *widget, do { gboolean is_separator = FALSE; - int n_col = 0; parity = !parity; is_separator = row_is_separator (tree_view, &iter, NULL); @@ -4537,7 +4527,6 @@ gtk_tree_view_bin_snapshot (GtkWidget *widget, if (!gtk_tree_view_column_get_visible (column)) continue; - n_col++; width = gtk_tree_view_column_get_width (column); if (cell_offset > clip.x + clip.width || @@ -6098,7 +6087,6 @@ do_validate_rows (GtkTreeView *tree_view, gboolean queue_resize) GtkTreePath *path = NULL; GtkTreeIter iter; GTimer *timer; - int i = 0; int y = -1; int prev_height = -1; @@ -6208,8 +6196,6 @@ do_validate_rows (GtkTreeView *tree_view, gboolean queue_resize) else if (prev_height != height) fixed_height = FALSE; } - - i++; } while (g_timer_elapsed (timer, NULL) < GTK_TREE_VIEW_TIME_MS_PER_IDLE / 1000.); diff --git a/gtk/deprecated/meson.build b/gtk/deprecated/meson.build index 600934b02d..dd6c8ade9d 100644 --- a/gtk/deprecated/meson.build +++ b/gtk/deprecated/meson.build @@ -32,6 +32,7 @@ gtk_deprecated_sources = [ 'deprecated/gtkinfobar.c', 'deprecated/gtkliststore.c', 'deprecated/gtkrender.c', + 'deprecated/gtkshow.c', 'deprecated/gtkstylecontext.c', 'deprecated/gtktreedatalist.c', 'deprecated/gtktreednd.c', @@ -88,6 +89,7 @@ gtk_deprecated_headers = [ 'deprecated/gtkliststore.h', 'deprecated/gtkmessagedialog.h', 'deprecated/gtkrender.h', + 'deprecated/gtkshow.h', 'deprecated/gtkstylecontext.h', 'deprecated/gtktreednd.h', 'deprecated/gtktreemodel.h', diff --git a/gtk/gen-gtk-gresources-xml.py b/gtk/gen-gtk-gresources-xml.py index 179761a154..66d2246343 100644 --- a/gtk/gen-gtk-gresources-xml.py +++ b/gtk/gen-gtk-gresources-xml.py @@ -70,6 +70,10 @@ for f in get_files('ui', '.ui'): xml += '\n' +xml += ''' + <file compressed="true">icons/hicolor.index.theme</file> +''' + for s in ['16x16', '32x32', '64x64', 'scalable']: for c in ['actions', 'categories', 'emblems', 'emotes', 'devices', 'mimetypes', 'places', 'status']: icons_dir = 'icons/{0}/{1}'.format(s,c) diff --git a/gtk/gopenuriportal.c b/gtk/gopenuriportal.c index 6c9b2323b8..16c63cbd9a 100644 --- a/gtk/gopenuriportal.c +++ b/gtk/gopenuriportal.c @@ -29,6 +29,8 @@ #include "gopenuriportal.h" #include "xdp-dbus.h" #include "gtkwindowprivate.h" +#include "gtkprivate.h" +#include "gtkdialogerror.h" #ifdef G_OS_UNIX #include <gio/gunixfdlist.h> @@ -56,12 +58,12 @@ init_openuri_portal (void) if (connection != NULL) { openuri = gxdp_open_uri_proxy_new_sync (connection, 0, - "org.freedesktop.portal.Desktop", - "/org/freedesktop/portal/desktop", + PORTAL_BUS_NAME, + PORTAL_OBJECT_PATH, NULL, &error); if (openuri == NULL) { - g_warning ("Cannot create document portal proxy: %s", error->message); + g_warning ("Cannot create OpenURI portal proxy: %s", error->message); g_error_free (error); } @@ -69,7 +71,7 @@ init_openuri_portal (void) } else { - g_warning ("Cannot connect to session bus when initializing document portal: %s", + g_warning ("Cannot connect to session bus when initializing OpenURI portal: %s", error->message); g_error_free (error); } @@ -80,12 +82,55 @@ init_openuri_portal (void) return openuri != NULL; } +gboolean +g_openuri_portal_is_available (void) +{ + return init_openuri_portal (); +} + enum { XDG_DESKTOP_PORTAL_SUCCESS = 0, XDG_DESKTOP_PORTAL_CANCELLED = 1, XDG_DESKTOP_PORTAL_FAILED = 2 }; +enum { + OPEN_URI = 0, + OPEN_FILE = 1, + OPEN_FOLDER = 2 +}; + +typedef struct { + GtkWindow *parent; + GFile *file; + gboolean open_folder; + GDBusConnection *connection; + GCancellable *cancellable; + GTask *task; + char *handle; + guint signal_id; + glong cancel_handler; + int call; +} OpenUriData; + +static void +open_uri_data_free (OpenUriData *data) +{ + if (data->signal_id) + g_dbus_connection_signal_unsubscribe (data->connection, data->signal_id); + g_clear_object (&data->connection); + if (data->cancel_handler) + g_signal_handler_disconnect (data->cancellable, data->cancel_handler); + if (data->parent) + gtk_window_unexport_handle (data->parent); + g_clear_object (&data->parent); + g_clear_object (&data->file); + g_clear_object (&data->cancellable); + g_clear_object (&data->task); + g_free (data->handle); + g_free (data); +} + static void response_received (GDBusConnection *connection, const char *sender_name, @@ -97,10 +142,6 @@ response_received (GDBusConnection *connection, { GTask *task = user_data; guint32 response; - guint signal_id; - - signal_id = GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (task), "signal-id")); - g_dbus_connection_signal_unsubscribe (connection, signal_id); g_variant_get (parameters, "(u@a{sv})", &response, NULL); @@ -110,11 +151,11 @@ response_received (GDBusConnection *connection, g_task_return_boolean (task, TRUE); break; case XDG_DESKTOP_PORTAL_CANCELLED: - g_task_return_new_error (task, G_IO_ERROR, G_IO_ERROR_CANCELLED, "Launch cancelled"); + g_task_return_new_error (task, GTK_DIALOG_ERROR, GTK_DIALOG_ERROR_CANCELLED, "The portal dialog was closed"); break; case XDG_DESKTOP_PORTAL_FAILED: default: - g_task_return_new_error (task, G_IO_ERROR, G_IO_ERROR_FAILED, "Launch failed"); + g_task_return_new_error (task, GTK_DIALOG_ERROR, GTK_DIALOG_ERROR_FAILED, "The application launch failed"); break; } @@ -127,105 +168,145 @@ open_call_done (GObject *source, gpointer user_data) { GXdpOpenURI *portal = GXDP_OPEN_URI (source); - GDBusConnection *connection; GTask *task = user_data; + OpenUriData *data = g_task_get_task_data (task); GError *error = NULL; - gboolean open_file; gboolean res; char *path = NULL; - const char *handle; - guint signal_id; - - connection = g_dbus_proxy_get_connection (G_DBUS_PROXY (portal)); - open_file = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (task), "open-file")); - if (open_file) - res = gxdp_open_uri_call_open_file_finish (portal, &path, NULL, result, &error); - else - res = gxdp_open_uri_call_open_uri_finish (portal, &path, result, &error); + switch (data->call) + { + case OPEN_FILE: + res = gxdp_open_uri_call_open_file_finish (portal, &path, NULL, result, &error); + break; + case OPEN_FOLDER: + res = gxdp_open_uri_call_open_directory_finish (portal, &path, NULL, result, &error); + break; + case OPEN_URI: + res = gxdp_open_uri_call_open_uri_finish (portal, &path, result, &error); + break; + default: + g_assert_not_reached (); + break; + } if (!res) { + g_free (path); g_task_return_error (task, error); g_object_unref (task); - g_free (path); return; } - handle = (const char *)g_object_get_data (G_OBJECT (task), "handle"); - if (g_strcmp0 (handle, path) != 0) + if (g_strcmp0 (data->handle, path) != 0) { - signal_id = GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (task), "signal-id")); - g_dbus_connection_signal_unsubscribe (connection, signal_id); - - signal_id = g_dbus_connection_signal_subscribe (connection, - "org.freedesktop.portal.Desktop", - "org.freedesktop.portal.Request", - "Response", - path, - NULL, - G_DBUS_SIGNAL_FLAGS_NO_MATCH_RULE, - response_received, - task, - NULL); - g_object_set_data (G_OBJECT (task), "signal-id", GINT_TO_POINTER (signal_id)); + g_dbus_connection_signal_unsubscribe (data->connection, data->signal_id); + + data->signal_id = g_dbus_connection_signal_subscribe (data->connection, + PORTAL_BUS_NAME, + PORTAL_REQUEST_INTERFACE, + "Response", + path, + NULL, + G_DBUS_SIGNAL_FLAGS_NO_MATCH_RULE, + response_received, + task, + NULL); + g_free (data->handle); + data->handle = g_strdup (path); } + + g_free (path); +} + +static void +send_close (OpenUriData *data) +{ + GDBusMessage *message; + GError *error = NULL; + + message = g_dbus_message_new_method_call (PORTAL_BUS_NAME, + PORTAL_OBJECT_PATH, + PORTAL_REQUEST_INTERFACE, + "Close"); + g_dbus_message_set_body (message, g_variant_new ("(o)", data->handle)); + + if (!g_dbus_connection_send_message (data->connection, + message, + G_DBUS_SEND_MESSAGE_FLAGS_NONE, + NULL, &error)) + { + g_warning ("unable to send Close message: %s", error->message); + g_error_free (error); + } + + g_object_unref (message); +} + +static void +canceled (GCancellable *cancellable, + GTask *task) +{ + OpenUriData *data = g_task_get_task_data (task); + + send_close (data); + + g_task_return_new_error (task, + GTK_DIALOG_ERROR, GTK_DIALOG_ERROR_ABORTED, + "The OpenURI portal call was cancelled programmatically"); + g_object_unref (task); } static void open_uri (GFile *file, + gboolean open_folder, const char *parent_window, - GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data) { + OpenUriData *data = user_data; GTask *task; GVariant *opts = NULL; int i; - guint signal_id; - - if (callback) - { - GDBusConnection *connection; - GVariantBuilder opt_builder; - char *token; - char *sender; - char *handle; - - connection = g_dbus_proxy_get_connection (G_DBUS_PROXY (openuri)); - - task = g_task_new (NULL, cancellable, callback, user_data); - - token = g_strdup_printf ("gtk%d", g_random_int_range (0, G_MAXINT)); - sender = g_strdup (g_dbus_connection_get_unique_name (connection) + 1); - for (i = 0; sender[i]; i++) - if (sender[i] == '.') - sender[i] = '_'; - - handle = g_strdup_printf ("/org/freedesktop/portal/desktop/request/%s/%s", sender, token); - g_object_set_data_full (G_OBJECT (task), "handle", handle, g_free); - g_free (sender); - - signal_id = g_dbus_connection_signal_subscribe (connection, - "org.freedesktop.portal.Desktop", - "org.freedesktop.portal.Request", - "Response", - handle, - NULL, - G_DBUS_SIGNAL_FLAGS_NO_MATCH_RULE, - response_received, - task, - NULL); - g_object_set_data (G_OBJECT (task), "signal-id", GINT_TO_POINTER (signal_id)); - - g_variant_builder_init (&opt_builder, G_VARIANT_TYPE_VARDICT); - g_variant_builder_add (&opt_builder, "{sv}", "handle_token", g_variant_new_string (token)); - g_free (token); - - opts = g_variant_builder_end (&opt_builder); - } - else - task = NULL; + GDBusConnection *connection; + GVariantBuilder opt_builder; + char *token; + char *sender; + + connection = g_dbus_proxy_get_connection (G_DBUS_PROXY (openuri)); + data->connection = g_object_ref (connection); + + task = g_task_new (NULL, NULL, callback, user_data); + g_task_set_check_cancellable (task, FALSE); + g_task_set_task_data (task, user_data, NULL); + if (data->cancellable) + data->cancel_handler = g_signal_connect (data->cancellable, "cancelled", G_CALLBACK (canceled), task); + + token = g_strdup_printf ("gtk%d", g_random_int_range (0, G_MAXINT)); + sender = g_strdup (g_dbus_connection_get_unique_name (connection) + 1); + for (i = 0; sender[i]; i++) + if (sender[i] == '.') + sender[i] = '_'; + + data->handle = g_strdup_printf ("/org/freedesktop/portal/desktop/request/%s/%s", sender, token); + g_free (sender); + + data->signal_id = g_dbus_connection_signal_subscribe (connection, + PORTAL_BUS_NAME, + PORTAL_REQUEST_INTERFACE, + "Response", + data->handle, + NULL, + G_DBUS_SIGNAL_FLAGS_NO_MATCH_RULE, + response_received, + task, + NULL); + + g_variant_builder_init (&opt_builder, G_VARIANT_TYPE_VARDICT); + g_variant_builder_add (&opt_builder, "{sv}", "handle_token", g_variant_new_string (token)); + g_free (token); + + opts = g_variant_builder_end (&opt_builder); if (g_file_is_native (file)) { @@ -233,17 +314,15 @@ open_uri (GFile *file, GUnixFDList *fd_list = NULL; int fd, fd_id, errsv; - if (task) - g_object_set_data (G_OBJECT (task), "open-file", GINT_TO_POINTER (TRUE)); - path = g_file_peek_path (file); fd = g_open (path, O_RDONLY | O_CLOEXEC); errsv = errno; if (fd == -1) { - g_task_report_new_error (NULL, callback, user_data, NULL, + g_task_return_new_error (task, G_IO_ERROR, g_io_error_from_errno (errsv), - "OpenURI portal is not available"); + "Failed to open file"); + g_object_unref (task); return; } @@ -254,49 +333,49 @@ open_uri (GFile *file, fd = -1; fd_id = 0; - gxdp_open_uri_call_open_file (openuri, - parent_window ? parent_window : "", - g_variant_new ("h", fd_id), - opts, - fd_list, - cancellable, - task ? open_call_done : NULL, - task); + if (open_folder) + { + data->call = OPEN_FOLDER; + gxdp_open_uri_call_open_directory (openuri, + parent_window ? parent_window : "", + g_variant_new ("h", fd_id), + opts, + fd_list, + NULL, + open_call_done, + task); + } + else + { + data->call = OPEN_FILE; + gxdp_open_uri_call_open_file (openuri, + parent_window ? parent_window : "", + g_variant_new ("h", fd_id), + opts, + fd_list, + NULL, + open_call_done, + task); + } + g_object_unref (fd_list); } else { char *uri = g_file_get_uri (file); + data->call = OPEN_URI; gxdp_open_uri_call_open_uri (openuri, parent_window ? parent_window : "", uri, opts, - cancellable, - task ? open_call_done : NULL, + NULL, + open_call_done, task); - g_free (uri); } } -typedef struct { - GtkWindow *parent; - GFile *file; - GTask *task; -} OpenUriData; - -static void -open_uri_data_free (OpenUriData *data) -{ - if (data->parent) - gtk_window_unexport_handle (data->parent); - g_clear_object (&data->parent); - g_clear_object (&data->file); - g_clear_object (&data->task); - g_free (data); -} - static void open_uri_done (GObject *source, GAsyncResult *result, @@ -306,7 +385,17 @@ open_uri_done (GObject *source, GError *error = NULL; if (!g_task_propagate_boolean (G_TASK (result), &error)) - g_task_return_error (data->task, error); + { + if (g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) + { + g_error_free (error); + g_task_return_new_error (data->task, + GTK_DIALOG_ERROR, GTK_DIALOG_ERROR_ABORTED, + "The operation was aborted programmatically"); + } + else + g_task_return_error (data->task, error); + } else g_task_return_boolean (data->task, TRUE); @@ -320,11 +409,12 @@ window_handle_exported (GtkWindow *window, { OpenUriData *data = user_data; - open_uri (data->file, handle, g_task_get_cancellable (data->task), open_uri_done, data); + open_uri (data->file, data->open_folder, handle, open_uri_done, data); } void g_openuri_portal_open_async (GFile *file, + gboolean open_folder, GtkWindow *parent, GCancellable *cancellable, GAsyncReadyCallback callback, @@ -335,15 +425,18 @@ g_openuri_portal_open_async (GFile *file, if (!init_openuri_portal ()) { g_task_report_new_error (NULL, callback, user_data, NULL, - G_IO_ERROR, G_IO_ERROR_NOT_INITIALIZED, - "OpenURI portal is not available"); + GTK_DIALOG_ERROR, GTK_DIALOG_ERROR_FAILED, + "The OpenURI portal is not available"); return; } data = g_new0 (OpenUriData, 1); data->parent = parent ? g_object_ref (parent) : NULL; data->file = g_object_ref (file); + data->open_folder = open_folder; + data->cancellable = cancellable ? g_object_ref (cancellable) : NULL; data->task = g_task_new (parent, cancellable, callback, user_data); + g_task_set_check_cancellable (data->task, FALSE); g_task_set_source_tag (data->task, g_openuri_portal_open_async); if (!parent || !gtk_window_export_handle (parent, window_handle_exported, data)) diff --git a/gtk/gopenuriportal.h b/gtk/gopenuriportal.h index 848d93499d..cd3992f6c2 100644 --- a/gtk/gopenuriportal.h +++ b/gtk/gopenuriportal.h @@ -26,14 +26,17 @@ G_BEGIN_DECLS -void g_openuri_portal_open_async (GFile *file, - GtkWindow *window, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data); - -gboolean g_openuri_portal_open_finish (GAsyncResult *result, - GError **error); +gboolean g_openuri_portal_is_available (void); + +void g_openuri_portal_open_async (GFile *file, + gboolean open_folder, + GtkWindow *window, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + +gboolean g_openuri_portal_open_finish (GAsyncResult *result, + GError **error); G_END_DECLS @@ -130,6 +130,7 @@ #include <gtk/deprecated/gtkfilechooserwidget.h> #include <gtk/gtkfiledialog.h> #include <gtk/gtkfilefilter.h> +#include <gtk/gtkfilelauncher.h> #include <gtk/gtkfilter.h> #include <gtk/gtkfilterlistmodel.h> #include <gtk/gtkcustomfilter.h> @@ -237,7 +238,7 @@ #include <gtk/gtkshortcutsshortcut.h> #include <gtk/gtkshortcutswindow.h> #include <gtk/gtkshortcuttrigger.h> -#include <gtk/gtkshow.h> +#include <gtk/deprecated/gtkshow.h> #include <gtk/gtksignallistitemfactory.h> #include <gtk/gtksingleselection.h> #include <gtk/gtkslicelistmodel.h> diff --git a/gtk/gtkaboutdialog.c b/gtk/gtkaboutdialog.c index 739f8607f9..0e634e78fc 100644 --- a/gtk/gtkaboutdialog.c +++ b/gtk/gtkaboutdialog.c @@ -44,7 +44,7 @@ #include "gtkorientable.h" #include "gtkscrolledwindow.h" #include "gtktextview.h" -#include "gtkshow.h" +#include "gtkfilelauncher.h" #include "gtkmain.h" #include "gtktogglebutton.h" #include "gtktypebuiltins.h" @@ -78,7 +78,7 @@ * ![An example GtkAboutDialog](aboutdialog.png) * * About dialogs often contain links and email addresses. `GtkAboutDialog` - * displays these as clickable links. By default, it calls [func@Gtk.show_uri] + * displays these as clickable links. By default, it calls [method@Gtk.FileLauncher.launch] * when a user clicks one. The behaviour can be overridden with the * [signal@Gtk.AboutDialog::activate-link] signal. * @@ -361,7 +361,7 @@ gtk_about_dialog_class_init (GtkAboutDialogClass *klass) * Emitted every time a URL is activated. * * Applications may connect to it to override the default behaviour, - * which is to call [func@Gtk.show_uri]. + * which is to call [method@Gtk.FileLauncher.launch]. * * Returns: `TRUE` if the link has been activated */ @@ -932,7 +932,17 @@ static gboolean gtk_about_dialog_activate_link (GtkAboutDialog *about, const char *uri) { - gtk_show_uri (GTK_WINDOW (about), uri, GDK_CURRENT_TIME); + GtkFileLauncher *launcher; + GFile *file; + + file = g_file_new_for_uri (uri); + launcher = gtk_file_launcher_new (file); + + gtk_file_launcher_launch (launcher, GTK_WINDOW (about), NULL, NULL, NULL); + + g_object_unref (launcher); + g_object_unref (file); + return TRUE; } diff --git a/gtk/gtkatcontext.c b/gtk/gtkatcontext.c index aa4b9f51f2..07d330d59e 100644 --- a/gtk/gtkatcontext.c +++ b/gtk/gtkatcontext.c @@ -902,31 +902,6 @@ gtk_at_context_get_accessible_relation (GtkATContext *self, return gtk_accessible_attribute_set_get_value (self->relations, relation); } -static gboolean -is_structural_role (GtkAccessibleRole role) -{ - /* Keep the switch small while avoiding the compiler warning for - * unhandled enumeration values - */ - switch ((int) role) - { - case GTK_ACCESSIBLE_ROLE_FORM: - case GTK_ACCESSIBLE_ROLE_GROUP: - case GTK_ACCESSIBLE_ROLE_GENERIC: - case GTK_ACCESSIBLE_ROLE_LANDMARK: - case GTK_ACCESSIBLE_ROLE_LIST_ITEM: - case GTK_ACCESSIBLE_ROLE_REGION: - case GTK_ACCESSIBLE_ROLE_SEARCH: - case GTK_ACCESSIBLE_ROLE_SEPARATOR: - return TRUE; - - default: - break; - } - - return FALSE; -} - /* See the WAI-ARIA § 4.3, "Accessible Name and Description Computation" */ static void gtk_at_context_get_name_accumulate (GtkATContext *self, @@ -998,13 +973,6 @@ gtk_at_context_get_name_accumulate (GtkATContext *self, return; } - /* This fallback is in place only for unlabelled elements */ - if (names->len != 0) - return; - - /* Ignore structural elements, namely: generic containers */ - if (self->accessible != NULL && !is_structural_role (role)) - g_ptr_array_add (names, (char *)G_OBJECT_TYPE_NAME (self->accessible)); } static void diff --git a/gtk/gtkbuilderscope.c b/gtk/gtkbuilderscope.c index 6d472dc6a8..8d18c44c96 100644 --- a/gtk/gtkbuilderscope.c +++ b/gtk/gtkbuilderscope.c @@ -41,6 +41,10 @@ * * By default, GTK will use its own implementation of `GtkBuilderScope` * for the C language which can be created via [ctor@Gtk.BuilderCScope.new]. + * + * If you implement `GtkBuilderScope` for a language binding, you + * may want to (partially) derive from or fall back to a [class@Gtk.BuilderCScope], + * as that class implements support for automatic lookups from C symbols. */ /** diff --git a/gtk/gtkcheckbutton.c b/gtk/gtkcheckbutton.c index f0cc8ea6ff..4dec0530ce 100644 --- a/gtk/gtkcheckbutton.c +++ b/gtk/gtkcheckbutton.c @@ -77,6 +77,11 @@ * * To add a `GtkCheckButton` to a group, use [method@Gtk.CheckButton.set_group]. * + * When the code must keep track of the state of a group of radio buttons, it + * is recommended to keep track of such state through a stateful + * `GAction` with a target for each button. Using the `toggled` signals to keep + * track of the group changes and state is discouraged. + * * # CSS nodes * * ``` diff --git a/gtk/gtkcolordialog.c b/gtk/gtkcolordialog.c index 05b2f64a71..3d02733599 100644 --- a/gtk/gtkcolordialog.c +++ b/gtk/gtkcolordialog.c @@ -458,6 +458,7 @@ gtk_color_dialog_choose_rgba (GtkColorDialog *self, window = create_color_chooser (self, parent, initial_color); task = g_task_new (self, cancellable, callback, user_data); + g_task_set_check_cancellable (task, FALSE); g_task_set_source_tag (task, gtk_color_dialog_choose_rgba); g_task_set_task_data (task, window, (GDestroyNotify) gtk_window_destroy); @@ -472,7 +473,7 @@ gtk_color_dialog_choose_rgba (GtkColorDialog *self, * gtk_color_dialog_choose_rgba_finish: * @self: a `GtkColorDialog` * @result: a `GAsyncResult` - * @error: return location for an error + * @error: return location for a [enum@Gtk.DialogError] error * * Finishes the [method@Gtk.ColorDialog.choose_rgba] call and * returns the resulting color. diff --git a/gtk/gtkcolordialogbutton.c b/gtk/gtkcolordialogbutton.c index 76e007f6cc..10f527febf 100644 --- a/gtk/gtkcolordialogbutton.c +++ b/gtk/gtkcolordialogbutton.c @@ -338,8 +338,9 @@ drag_prepare (GtkDragSource *source, static void update_button_sensitivity (GtkColorDialogButton *self) { - gtk_widget_set_sensitive (self->button, - self->dialog != NULL && self->cancellable == NULL); + if (self->button) + gtk_widget_set_sensitive (self->button, + self->dialog != NULL && self->cancellable == NULL); } static void @@ -347,10 +348,11 @@ color_chosen (GObject *source, GAsyncResult *result, gpointer data) { + GtkColorDialog *dialog = GTK_COLOR_DIALOG (source); GtkColorDialogButton *self = data; GdkRGBA *color; - color = gtk_color_dialog_choose_rgba_finish (self->dialog, result, NULL); + color = gtk_color_dialog_choose_rgba_finish (dialog, result, NULL); if (color) { gtk_color_dialog_button_set_rgba (self, color); diff --git a/gtk/gtkcolumnviewtitle.c b/gtk/gtkcolumnviewtitle.c index 8b9987a62d..6c7f729f95 100644 --- a/gtk/gtkcolumnviewtitle.c +++ b/gtk/gtkcolumnviewtitle.c @@ -251,6 +251,18 @@ click_released_cb (GtkGestureClick *gesture, } static void +click_pressed_cb (GtkGestureClick *gesture, + int n_press, + double x, + double y, + GtkColumnView *self) +{ + /* Claim the state here to prevent propagation, the event controllers in + * GtkColumView have already been handled in the CAPTURE phase */ + gtk_gesture_set_state (GTK_GESTURE (gesture), GTK_EVENT_SEQUENCE_CLAIMED); +} + +static void gtk_column_view_title_init (GtkColumnViewTitle *self) { GtkWidget *widget = GTK_WIDGET (self); @@ -272,6 +284,7 @@ gtk_column_view_title_init (GtkColumnViewTitle *self) gesture = gtk_gesture_click_new (); gtk_gesture_single_set_button (GTK_GESTURE_SINGLE (gesture), 0); g_signal_connect (gesture, "released", G_CALLBACK (click_released_cb), self); + g_signal_connect (gesture, "pressed", G_CALLBACK (click_pressed_cb), self); gtk_widget_add_controller (GTK_WIDGET (self), GTK_EVENT_CONTROLLER (gesture)); } diff --git a/gtk/gtkcomposetable.c b/gtk/gtkcomposetable.c index 37a70ec6a6..7c2dd2cb16 100644 --- a/gtk/gtkcomposetable.c +++ b/gtk/gtkcomposetable.c @@ -1428,11 +1428,9 @@ gtk_compose_table_foreach (const GtkComposeTable *table, { int index_stride = table->max_seq_len + 2; gunichar *sequence; - int seqno; sequence = g_newa (gunichar, table->max_seq_len + 1); - seqno = 0; for (int idx = 0; idx < table->n_index_size; idx++) { const guint16 *seq_index = table->data + (idx * index_stride); @@ -1471,7 +1469,6 @@ gtk_compose_table_foreach (const GtkComposeTable *table, } callback (sequence, len, value, data); - seqno++; } } } diff --git a/gtk/gtkemojichooser.c b/gtk/gtkemojichooser.c index 8415ed3eb3..29e3924eb5 100644 --- a/gtk/gtkemojichooser.c +++ b/gtk/gtkemojichooser.c @@ -312,7 +312,7 @@ populate_recent_section (GtkEmojiChooser *chooser) GVariant *variant; GVariant *item; GVariantIter iter; - gboolean empty = FALSE; + gboolean empty = TRUE; variant = g_settings_get_value (chooser->settings, "recent-emoji"); g_variant_iter_init (&iter, variant); diff --git a/gtk/gtkfilechooserprivate.h b/gtk/gtkfilechooserprivate.h index ac6da257a4..7f3215ff3e 100644 --- a/gtk/gtkfilechooserprivate.h +++ b/gtk/gtkfilechooserprivate.h @@ -46,6 +46,7 @@ G_BEGIN_DECLS #define SETTINGS_KEY_CLOCK_FORMAT "clock-format" #define SETTINGS_KEY_DATE_FORMAT "date-format" #define SETTINGS_KEY_TYPE_FORMAT "type-format" +#define SETTINGS_KEY_VIEW_TYPE "view-type" #define GTK_FILE_CHOOSER_GET_IFACE(inst) (G_TYPE_INSTANCE_GET_INTERFACE ((inst), GTK_TYPE_FILE_CHOOSER, GtkFileChooserIface)) diff --git a/gtk/gtkfilechooserwidget.c b/gtk/gtkfilechooserwidget.c index d9085f1571..ed85b0eb9e 100644 --- a/gtk/gtkfilechooserwidget.c +++ b/gtk/gtkfilechooserwidget.c @@ -53,6 +53,7 @@ #include "gtkplacesviewprivate.h" #include "gtkprivate.h" #include "gtkrecentmanager.h" +#include "gtkscrolledwindow.h" #include "gtksearchentryprivate.h" #include "gtksettings.h" #include "gtksingleselection.h" @@ -64,7 +65,7 @@ #include "gtkcheckbutton.h" #include "gtkwindowgroup.h" #include <glib/gi18n-lib.h> -#include "gtkshow.h" +#include "gtkfilelauncher.h" #include "gtkmain.h" #include "gtkscrollable.h" #include "gtkpopover.h" @@ -180,6 +181,11 @@ typedef enum { TYPE_FORMAT_CATEGORY } TypeFormat; +typedef enum { + VIEW_TYPE_LIST, + VIEW_TYPE_GRID, +} ViewType; + typedef struct _GtkFileChooserWidgetClass GtkFileChooserWidgetClass; struct _GtkFileChooserWidget @@ -211,6 +217,8 @@ struct _GtkFileChooserWidget GtkWidget *browse_files_stack; GtkWidget *browse_files_swin; GtkWidget *browse_files_column_view; + GtkWidget *browse_files_grid_view; + GtkWidget *browse_toggle_view_button; GtkWidget *remote_warning_bar; GtkWidget *browse_files_popover; @@ -312,6 +320,8 @@ struct _GtkFileChooserWidget TypeFormat type_format; + ViewType view_type; + /* Flags */ guint select_multiple : 1; @@ -1370,68 +1380,14 @@ open_folder_cb (GSimpleAction *action, GtkWindow *toplevel = GTK_IS_WINDOW (root) ? GTK_WINDOW (root) : NULL; GFileInfo *info; GFile *file; - char *uri; + GtkFileLauncher *launcher; info = g_list_model_get_item (G_LIST_MODEL (impl->selection_model), impl->browse_files_popover_item); file = _gtk_file_info_get_file (info); -#ifdef G_OS_WIN32 - - uri = g_file_get_uri (file); - gtk_show_uri (toplevel, uri, GDK_CURRENT_TIME); - g_free (uri); - -#else - - if (gdk_should_use_portal ()) - { - g_openuri_portal_open_async (file, toplevel, NULL, NULL, NULL); - } - else - { - GDBusConnection *bus; - GVariantBuilder *uris_builder; - GVariant *result; - GError *error = NULL; - - uri = g_file_get_uri (file); - - bus = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, NULL); - - uris_builder = g_variant_builder_new (G_VARIANT_TYPE ("as")); - g_variant_builder_add (uris_builder, "s", uri); - - result = g_dbus_connection_call_sync (bus, - FILE_MANAGER_DBUS_NAME, - FILE_MANAGER_DBUS_PATH, - FILE_MANAGER_DBUS_IFACE, - "ShowFolders", - g_variant_new ("(ass)", uris_builder, ""), - NULL, /* ignore returned type */ - G_DBUS_CALL_FLAGS_NONE, - -1, - NULL, - &error); - if (error) - { - if (g_error_matches (error, G_DBUS_ERROR, G_DBUS_ERROR_NAME_HAS_NO_OWNER) || - g_error_matches (error, G_DBUS_ERROR, G_DBUS_ERROR_SERVICE_UNKNOWN)) - g_debug ("No " FILE_MANAGER_DBUS_NAME " available"); - else - g_warning ("Failed to call ShowFolders: %s", error->message); - - g_error_free (error); - } - - if (result) - g_variant_unref (result); - else - gtk_show_uri (toplevel, uri, GDK_CURRENT_TIME); - - g_free (uri); - } - -#endif + launcher = gtk_file_launcher_new (file); + gtk_file_launcher_open_containing_folder (launcher, toplevel, NULL, NULL, NULL); + g_object_unref (launcher); g_clear_object (&info); } @@ -1704,6 +1660,88 @@ popup_file_list_menu (GSimpleAction *action, file_list_show_popover (impl, x, y); } +static GtkWidget* +get_current_view_widget (GtkFileChooserWidget *impl) +{ + switch (impl->view_type) + { + case VIEW_TYPE_LIST: + return impl->browse_files_column_view; + + case VIEW_TYPE_GRID: + return impl->browse_files_grid_view; + + default: + g_assert_not_reached (); + } + + return NULL; +} + +static void +set_view_type (GtkFileChooserWidget *impl, + ViewType view_type) +{ + const char *tooltip_text; + const char *icon_name; + GtkWidget *child; + + if (impl->view_type == view_type) + return; + + impl->view_type = view_type; + + g_object_ref (impl->browse_files_grid_view); + g_object_ref (impl->browse_files_column_view); + + switch (impl->view_type) + { + case VIEW_TYPE_LIST: + child = impl->browse_files_column_view; + icon_name = "view-grid-symbolic"; + tooltip_text = _("Grid View"); + break; + + case VIEW_TYPE_GRID: + child = impl->browse_files_grid_view; + icon_name = "view-list-symbolic"; + tooltip_text = _("List View"); + break; + + default: + g_assert_not_reached (); + } + + gtk_widget_set_tooltip_text (impl->browse_toggle_view_button, tooltip_text); + gtk_button_set_icon_name (GTK_BUTTON (impl->browse_toggle_view_button), icon_name); + gtk_scrolled_window_set_child (GTK_SCROLLED_WINDOW (impl->browse_files_swin), child); + + g_object_unref (impl->browse_files_grid_view); + g_object_unref (impl->browse_files_column_view); +} + +static void +toggle_view_cb (GSimpleAction *action, + GVariant *parameter, + gpointer user_data) +{ + GtkFileChooserWidget *impl = user_data; + + switch (impl->view_type) + { + case VIEW_TYPE_LIST: + set_view_type (impl, VIEW_TYPE_GRID); + break; + + case VIEW_TYPE_GRID: + set_view_type (impl, VIEW_TYPE_LIST); + break; + + default: + g_assert_not_reached (); + } +} + static GActionEntry entries[] = { { "visit", visit_file_cb, NULL, NULL, NULL }, { "open", open_folder_cb, NULL, NULL, NULL }, @@ -1717,7 +1755,8 @@ static GActionEntry entries[] = { { "toggle-show-size", NULL, NULL, "false", change_show_size_state }, { "toggle-show-type", NULL, NULL, "false", change_show_type_state }, { "toggle-show-time", NULL, NULL, "false", change_show_time_state }, - { "toggle-sort-dirs-first", NULL, NULL, "false", change_sort_directories_first_state } + { "toggle-sort-dirs-first", NULL, NULL, "false", change_sort_directories_first_state }, + { "toggle-view", toggle_view_cb, NULL, NULL, NULL }, }; static void @@ -1769,14 +1808,17 @@ file_list_build_popover (GtkFileChooserWidget *impl) g_object_unref (item); item = g_menu_item_new (_("Show _Size Column"), "item.toggle-show-size"); + g_menu_item_set_attribute (item, "hidden-when", "s", "action-disabled"); g_menu_append_item (section, item); g_object_unref (item); item = g_menu_item_new (_("Show T_ype Column"), "item.toggle-show-type"); + g_menu_item_set_attribute (item, "hidden-when", "s", "action-disabled"); g_menu_append_item (section, item); g_object_unref (item); item = g_menu_item_new (_("Show _Time"), "item.toggle-show-time"); + g_menu_item_set_attribute (item, "hidden-when", "s", "action-disabled"); g_menu_append_item (section, item); g_object_unref (item); @@ -1825,12 +1867,15 @@ file_list_update_popover (GtkFileChooserWidget *impl) g_simple_action_set_state (G_SIMPLE_ACTION (action), g_variant_new_boolean (impl->show_hidden)); action = g_action_map_lookup_action (G_ACTION_MAP (impl->item_actions), "toggle-show-size"); + g_simple_action_set_enabled (G_SIMPLE_ACTION (action), (impl->view_type == VIEW_TYPE_LIST)); g_simple_action_set_state (G_SIMPLE_ACTION (action), g_variant_new_boolean (impl->show_size_column)); action = g_action_map_lookup_action (G_ACTION_MAP (impl->item_actions), "toggle-show-type"); + g_simple_action_set_enabled (G_SIMPLE_ACTION (action), (impl->view_type == VIEW_TYPE_LIST)); g_simple_action_set_state (G_SIMPLE_ACTION (action), g_variant_new_boolean (impl->show_type_column)); action = g_action_map_lookup_action (G_ACTION_MAP (impl->item_actions), "toggle-show-time"); + g_simple_action_set_enabled (G_SIMPLE_ACTION (action), (impl->view_type == VIEW_TYPE_LIST)); g_simple_action_set_state (G_SIMPLE_ACTION (action), g_variant_new_boolean (impl->show_time)); action = g_action_map_lookup_action (G_ACTION_MAP (impl->item_actions), "toggle-sort-dirs-first"); @@ -1860,10 +1905,11 @@ list_popup_menu_cb (GtkWidget *widget, { GtkFileChooserWidget *impl = GTK_FILE_CHOOSER_WIDGET (user_data); graphene_rect_t bounds; + GtkWidget *view_widget; + + view_widget = get_current_view_widget (impl); - if (!gtk_widget_compute_bounds (impl->browse_files_column_view, - GTK_WIDGET (impl), - &bounds)) + if (!gtk_widget_compute_bounds (view_widget, GTK_WIDGET (impl), &bounds)) return FALSE; file_list_show_popover (impl, @@ -2051,21 +2097,12 @@ static char * column_view_get_tooltip_text (GtkListItem *list_item, GFileInfo *info) { - GtkFileChooserWidget *impl; GFile *file; if (!info) return NULL; - impl = GTK_FILE_CHOOSER_WIDGET (gtk_widget_get_ancestor (gtk_list_item_get_child (list_item), - GTK_TYPE_FILE_CHOOSER_WIDGET)); - g_assert (impl != NULL); - - if (impl->operation_mode == OPERATION_MODE_BROWSE) - return NULL; - file = _gtk_file_info_get_file (info); - return g_file_get_path (file); } @@ -2397,7 +2434,7 @@ location_mode_set (GtkFileChooserWidget *impl, location_switch_to_path_bar (impl); if (switch_to_file_list) - gtk_widget_grab_focus (impl->browse_files_column_view); + gtk_widget_grab_focus (get_current_view_widget (impl)); break; @@ -2709,13 +2746,14 @@ operation_mode_set_recent (GtkFileChooserWidget *impl) old_revealer_transition_type = gtk_revealer_get_transition_type (GTK_REVEALER (impl->browse_header_revealer)); gtk_revealer_set_transition_type (GTK_REVEALER (impl->browse_header_revealer), GTK_REVEALER_TRANSITION_TYPE_NONE); - gtk_revealer_set_reveal_child (GTK_REVEALER (impl->browse_header_revealer), FALSE); + gtk_revealer_set_reveal_child (GTK_REVEALER (impl->browse_header_revealer), TRUE); gtk_revealer_set_transition_type (GTK_REVEALER (impl->browse_header_revealer), old_revealer_transition_type); location_bar_update (impl); recent_start_loading (impl); file = g_file_new_for_uri ("recent:///"); + _gtk_path_bar_set_file (GTK_PATH_BAR (impl->browse_path_bar), file, FALSE); gtk_places_sidebar_set_location (GTK_PLACES_SIDEBAR (impl->places_sidebar), file); g_object_notify (G_OBJECT (impl), "subtitle"); g_object_unref (file); @@ -3130,6 +3168,7 @@ settings_load (GtkFileChooserWidget *impl) gboolean sort_directories_first; DateFormat date_format; TypeFormat type_format; + ViewType view_type; int sort_column; GtkSortType sort_order; StartupMode startup_mode; @@ -3148,6 +3187,7 @@ settings_load (GtkFileChooserWidget *impl) sort_directories_first = g_settings_get_boolean (settings, SETTINGS_KEY_SORT_DIRECTORIES_FIRST); date_format = g_settings_get_enum (settings, SETTINGS_KEY_DATE_FORMAT); type_format = g_settings_get_enum (settings, SETTINGS_KEY_TYPE_FORMAT); + view_type = g_settings_get_enum (settings, SETTINGS_KEY_VIEW_TYPE); set_show_hidden (impl, show_hidden); @@ -3164,6 +3204,8 @@ settings_load (GtkFileChooserWidget *impl) impl->clock_format = g_settings_get_enum (settings, "clock-format"); impl->type_format = type_format; + set_view_type (impl, view_type); + /* We don't call set_sort_column() here as the models may not have been * created yet. The individual functions that create and set the models will * call set_sort_column() themselves. @@ -3200,6 +3242,7 @@ settings_save (GtkFileChooserWidget *impl) gtk_paned_get_position (GTK_PANED (impl->browse_widgets_hpaned))); g_settings_set_enum (settings, SETTINGS_KEY_DATE_FORMAT, impl->show_time ? DATE_FORMAT_WITH_TIME : DATE_FORMAT_REGULAR); g_settings_set_enum (settings, SETTINGS_KEY_TYPE_FORMAT, impl->type_format); + g_settings_set_enum (settings, SETTINGS_KEY_VIEW_TYPE, impl->view_type); /* Now apply the settings */ g_settings_apply (settings); @@ -4654,7 +4697,7 @@ gtk_file_chooser_widget_get_files (GtkFileChooser *chooser) current_focus = NULL; file_list_seen = FALSE; - if (current_focus == impl->browse_files_column_view) + if (current_focus == get_current_view_widget (impl)) { GtkBitsetIter iter; GtkBitset *bitset; @@ -4717,7 +4760,7 @@ gtk_file_chooser_widget_get_files (GtkFileChooser *chooser) else goto empty; } - else if (impl->toplevel_last_focus_widget == impl->browse_files_column_view) + else if (impl->toplevel_last_focus_widget == get_current_view_widget (impl)) goto file_list; else if (impl->location_entry && impl->toplevel_last_focus_widget == impl->location_entry) goto file_entry; @@ -5324,7 +5367,7 @@ gtk_file_chooser_widget_should_respond (GtkFileChooserWidget *impl) current_focus = gtk_root_get_focus (GTK_ROOT (toplevel)); - if (current_focus == impl->browse_files_column_view) + if (current_focus == get_current_view_widget (impl)) { /* The following array encodes what we do based on the impl->action and the * number of files selected. @@ -5526,7 +5569,7 @@ gtk_file_chooser_widget_should_respond (GtkFileChooserWidget *impl) g_object_unref (file); } - else if (impl->toplevel_last_focus_widget == impl->browse_files_column_view) + else if (impl->toplevel_last_focus_widget == get_current_view_widget (impl)) { /* The focus is on a dialog's action area button, *and* the widget that * was focused immediately before it is the file list. @@ -5570,7 +5613,7 @@ gtk_file_chooser_widget_initial_focus (GtkFileChooserWidget *impl) { if (impl->location_mode == LOCATION_MODE_PATH_BAR || impl->operation_mode == OPERATION_MODE_RECENT) - widget = impl->browse_files_column_view; + widget = get_current_view_widget (impl); else widget = impl->location_entry; } @@ -6041,9 +6084,9 @@ list_items_changed (GListModel *model, } static gboolean -browse_files_column_view_keynav_failed_cb (GtkWidget *widget, - GtkDirectionType direction, - gpointer user_data) +browse_files_view_keynav_failed_cb (GtkWidget *widget, + GtkDirectionType direction, + gpointer user_data) { GtkFileChooserWidget *impl = user_data; @@ -6057,11 +6100,13 @@ browse_files_column_view_keynav_failed_cb (GtkWidget *widget, return FALSE; } -/* Callback used when a row in the file list is activated */ +/* Callback used when a row in the file list is activated. 'view' may + * be either a GtkColumnView, or a GtkGridView. + */ static void -column_view_row_activated_cb (GtkColumnView *column_view, - guint position, - GtkFileChooserWidget *self) +browse_files_view_row_activated_cb (GtkWidget *view, + guint position, + GtkFileChooserWidget *self) { GFileInfo *info; @@ -6077,9 +6122,9 @@ column_view_row_activated_cb (GtkColumnView *column_view, self->action == GTK_FILE_CHOOSER_ACTION_SAVE) { /* prevent recursion */ - g_signal_handlers_block_by_func (column_view, column_view_row_activated_cb, self); + g_signal_handlers_block_by_func (view, browse_files_view_row_activated_cb, self); gtk_widget_activate_default (GTK_WIDGET (self)); - g_signal_handlers_unblock_by_func (column_view, column_view_row_activated_cb, self); + g_signal_handlers_unblock_by_func (view, browse_files_view_row_activated_cb, self); } g_clear_object (&info); @@ -6691,12 +6736,14 @@ gtk_file_chooser_widget_class_init (GtkFileChooserWidgetClass *class) gtk_widget_class_bind_template_child (widget_class, GtkFileChooserWidget, places_sidebar); gtk_widget_class_bind_template_child (widget_class, GtkFileChooserWidget, places_view); gtk_widget_class_bind_template_child (widget_class, GtkFileChooserWidget, browse_files_column_view); + gtk_widget_class_bind_template_child (widget_class, GtkFileChooserWidget, browse_files_grid_view); gtk_widget_class_bind_template_child (widget_class, GtkFileChooserWidget, browse_files_swin); gtk_widget_class_bind_template_child (widget_class, GtkFileChooserWidget, browse_header_revealer); gtk_widget_class_bind_template_child (widget_class, GtkFileChooserWidget, browse_header_stack); gtk_widget_class_bind_template_child (widget_class, GtkFileChooserWidget, browse_new_folder_button); gtk_widget_class_bind_template_child (widget_class, GtkFileChooserWidget, browse_path_bar_size_group); gtk_widget_class_bind_template_child (widget_class, GtkFileChooserWidget, browse_path_bar); + gtk_widget_class_bind_template_child (widget_class, GtkFileChooserWidget, browse_toggle_view_button); gtk_widget_class_bind_template_child (widget_class, GtkFileChooserWidget, column_view_name_column); gtk_widget_class_bind_template_child (widget_class, GtkFileChooserWidget, column_view_location_column); gtk_widget_class_bind_template_child (widget_class, GtkFileChooserWidget, column_view_size_column); @@ -6721,7 +6768,8 @@ gtk_file_chooser_widget_class_init (GtkFileChooserWidgetClass *class) gtk_widget_class_bind_template_child (widget_class, GtkFileChooserWidget, box); /* And a *lot* of callbacks to bind ... */ - gtk_widget_class_bind_template_callback (widget_class, browse_files_column_view_keynav_failed_cb); + gtk_widget_class_bind_template_callback (widget_class, browse_files_view_row_activated_cb); + gtk_widget_class_bind_template_callback (widget_class, browse_files_view_keynav_failed_cb); gtk_widget_class_bind_template_callback (widget_class, filter_combo_changed); gtk_widget_class_bind_template_callback (widget_class, path_bar_clicked); gtk_widget_class_bind_template_callback (widget_class, places_sidebar_open_location_cb); @@ -6742,7 +6790,6 @@ gtk_file_chooser_widget_class_init (GtkFileChooserWidgetClass *class) gtk_widget_class_bind_template_callback (widget_class, column_view_get_location); gtk_widget_class_bind_template_callback (widget_class, column_view_get_size); gtk_widget_class_bind_template_callback (widget_class, column_view_get_tooltip_text); - gtk_widget_class_bind_template_callback (widget_class, column_view_row_activated_cb); gtk_widget_class_set_css_name (widget_class, I_("filechooser")); @@ -6830,10 +6877,23 @@ post_process_ui (GtkFileChooserWidget *impl) gtk_shortcut_controller_add_shortcut (GTK_SHORTCUT_CONTROLLER (controller), shortcut); gtk_widget_add_controller (GTK_WIDGET (impl->browse_files_column_view), controller); + controller = gtk_shortcut_controller_new (); + trigger = gtk_alternative_trigger_new (gtk_keyval_trigger_new (GDK_KEY_F10, GDK_SHIFT_MASK), + gtk_keyval_trigger_new (GDK_KEY_Menu, 0)); + action = gtk_callback_action_new (list_popup_menu_cb, impl, NULL); + shortcut = gtk_shortcut_new (trigger, action); + gtk_shortcut_controller_add_shortcut (GTK_SHORTCUT_CONTROLLER (controller), shortcut); + gtk_widget_add_controller (GTK_WIDGET (impl->browse_files_grid_view), controller); + controller = gtk_event_controller_key_new (); gtk_event_controller_set_propagation_phase (controller, GTK_PHASE_CAPTURE); g_signal_connect (controller, "key-pressed", G_CALLBACK (files_list_restrict_key_presses), impl); gtk_widget_add_controller (impl->browse_files_column_view, controller); + + controller = gtk_event_controller_key_new (); + gtk_event_controller_set_propagation_phase (controller, GTK_PHASE_CAPTURE); + g_signal_connect (controller, "key-pressed", G_CALLBACK (files_list_restrict_key_presses), impl); + gtk_widget_add_controller (impl->browse_files_grid_view, controller); } void @@ -7195,6 +7255,7 @@ gtk_file_chooser_widget_init (GtkFileChooserWidget *impl) impl->location_mode = LOCATION_MODE_PATH_BAR; impl->operation_mode = OPERATION_MODE_BROWSE; impl->sort_order = GTK_SORT_ASCENDING; + impl->view_type = VIEW_TYPE_LIST; impl->create_folders = TRUE; impl->auto_selecting_first_row = FALSE; impl->renamed_file = NULL; diff --git a/gtk/gtkfiledialog.c b/gtk/gtkfiledialog.c index 410da0b099..d35deeac06 100644 --- a/gtk/gtkfiledialog.c +++ b/gtk/gtkfiledialog.c @@ -25,6 +25,8 @@ #include "gtkfilechoosernativeprivate.h" #include "gtkdialogerror.h" #include <glib/gi18n-lib.h> +#include "gdk/gdkprivate.h" +#include "gdk/gdkdebugprivate.h" /** * GtkFileDialog: @@ -50,6 +52,7 @@ struct _GtkFileDialog GObject parent_instance; char *title; + char *accept_label; unsigned int modal : 1; GListModel *filters; @@ -66,6 +69,7 @@ enum PROP_SHORTCUT_FOLDERS, PROP_CURRENT_FILTER, PROP_CURRENT_FOLDER, + PROP_ACCEPT_LABEL, NUM_PROPERTIES }; @@ -86,6 +90,7 @@ gtk_file_dialog_finalize (GObject *object) GtkFileDialog *self = GTK_FILE_DIALOG (object); g_free (self->title); + g_free (self->accept_label); g_clear_object (&self->filters); g_clear_object (&self->shortcut_folders); g_clear_object (&self->current_filter); @@ -128,6 +133,10 @@ gtk_file_dialog_get_property (GObject *object, g_value_set_object (value, self->current_folder); break; + case PROP_ACCEPT_LABEL: + g_value_set_string (value, self->accept_label); + break; + default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; @@ -168,6 +177,10 @@ gtk_file_dialog_set_property (GObject *object, gtk_file_dialog_set_current_folder (self, g_value_get_object (value)); break; + case PROP_ACCEPT_LABEL: + gtk_file_dialog_set_accept_label (self, g_value_get_string (value)); + break; + default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; @@ -258,6 +271,18 @@ gtk_file_dialog_class_init (GtkFileDialogClass *class) G_TYPE_FILE, G_PARAM_READWRITE|G_PARAM_STATIC_STRINGS|G_PARAM_EXPLICIT_NOTIFY); + /** + * GtkFileDialog:accept-label: (attributes org.gtk.Property.get=gtk_file_dialog_get_accept_label org.gtk.Property.set=gtk_file_dialog_set_accept_label) + * + * Label for the file chooser's accept button. + * + * Since: 4.10 + */ + properties[PROP_ACCEPT_LABEL] = + g_param_spec_string ("accept-label", NULL, NULL, + NULL, + G_PARAM_READWRITE|G_PARAM_STATIC_STRINGS|G_PARAM_EXPLICIT_NOTIFY); + g_object_class_install_properties (object_class, NUM_PROPERTIES, properties); } @@ -655,32 +680,52 @@ create_file_chooser (GtkFileDialog *self, gboolean select_multiple) { GtkFileChooserNative *chooser; - const char *accept; - const char *title; + const char *default_accept_label, *accept; + const char *default_title, *title; + GdkDisplay *display G_GNUC_UNUSED; switch (action) { case GTK_FILE_CHOOSER_ACTION_OPEN: - accept = _("_Open"); - title = select_multiple ? _("Pick Files") : _("Pick a File"); + default_accept_label = _("_Open"); + default_title = select_multiple ? _("Pick Files") : _("Pick a File"); break; case GTK_FILE_CHOOSER_ACTION_SAVE: - accept = _("_Save"); - title = _("Save a File"); + default_accept_label = _("_Save"); + default_title = _("Save a File"); break; case GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER: - accept = _("_Select"); - title = select_multiple ? _("Select Folders") : _("Select a Folder"); + default_accept_label = _("_Select"); + default_title = select_multiple ? _("Select Folders") : _("Select a Folder"); break; default: g_assert_not_reached (); } + if (self->title) + title = self->title; + else + title = default_title; + + if (self->accept_label) + accept = self->accept_label; + else + accept = default_accept_label; + chooser = gtk_file_chooser_native_new (title, parent, action, accept, _("_Cancel")); - gtk_file_chooser_native_set_use_portal (chooser, TRUE); + + if (parent) + display = gtk_widget_get_display (GTK_WIDGET (parent)); + else + display = gdk_display_get_default (); + + if (GDK_DISPLAY_DEBUG_CHECK (display, NO_PORTALS)) + gtk_file_chooser_native_set_use_portal (chooser, FALSE); + else + gtk_file_chooser_native_set_use_portal (chooser, TRUE); gtk_native_dialog_set_modal (GTK_NATIVE_DIALOG (chooser), self->modal); gtk_file_chooser_set_select_multiple (GTK_FILE_CHOOSER (chooser), select_multiple); @@ -773,6 +818,7 @@ gtk_file_dialog_open (GtkFileDialog *self, current_file, NULL, FALSE); task = g_task_new (self, cancellable, callback, user_data); + g_task_set_check_cancellable (task, FALSE); g_task_set_source_tag (task, gtk_file_dialog_open); g_task_set_task_data (task, chooser, (GDestroyNotify) gtk_native_dialog_destroy); @@ -849,6 +895,7 @@ gtk_file_dialog_select_folder (GtkFileDialog *self, current_folder, NULL, FALSE); task = g_task_new (self, cancellable, callback, user_data); + g_task_set_check_cancellable (task, FALSE); g_task_set_source_tag (task, gtk_file_dialog_select_folder); g_task_set_task_data (task, chooser, (GDestroyNotify) gtk_native_dialog_destroy); @@ -930,6 +977,7 @@ gtk_file_dialog_save (GtkFileDialog *self, current_file, current_name, FALSE); task = g_task_new (self, cancellable, callback, user_data); + g_task_set_check_cancellable (task, FALSE); g_task_set_source_tag (task, gtk_file_dialog_save); g_task_set_task_data (task, chooser, (GDestroyNotify) gtk_native_dialog_destroy); @@ -1003,6 +1051,7 @@ gtk_file_dialog_open_multiple (GtkFileDialog *self, NULL, NULL, TRUE); task = g_task_new (self, cancellable, callback, user_data); + g_task_set_check_cancellable (task, FALSE); g_task_set_source_tag (task, gtk_file_dialog_open_multiple); g_task_set_task_data (task, chooser, (GDestroyNotify) gtk_native_dialog_destroy); @@ -1077,6 +1126,7 @@ gtk_file_dialog_select_multiple_folders (GtkFileDialog *self, NULL, NULL, TRUE); task = g_task_new (self, cancellable, callback, user_data); + g_task_set_check_cancellable (task, FALSE); g_task_set_source_tag (task, gtk_file_dialog_select_multiple_folders); g_task_set_task_data (task, chooser, (GDestroyNotify) gtk_native_dialog_destroy); @@ -1115,6 +1165,44 @@ gtk_file_dialog_select_multiple_folders_finish (GtkFileDialog *self, return finish_multiple_files_op (self, G_TASK (result), error); } +/** + * gtk_file_dialog_get_accept_label: + * @self: a `GtkFileDialog` + * + * Returns: (nullable): the label shown on the file chooser's accept button. + * + * Since: 4.10 + */ +const char * +gtk_file_dialog_get_accept_label (GtkFileDialog *self) +{ + g_return_val_if_fail (GTK_IS_FILE_DIALOG (self), NULL); + + return self->accept_label; +} + +/** + * gtk_file_dialog_set_accept_label: + * @self: a `GtkFileDialog` + * @accept_label: (nullable): the new accept label + * + * Sets the label shown on the file chooser's accept button. + * + * Leaving the accept label unset or setting it as `NULL` will fall back to + * a default label, depending on what API is used to launch the file dialog. + * + * Since: 4.10 + */ +void +gtk_file_dialog_set_accept_label (GtkFileDialog *self, + const char *accept_label) +{ + g_return_if_fail (GTK_IS_FILE_DIALOG (self)); + + if (g_set_str (&self->accept_label, accept_label)) + g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_ACCEPT_LABEL]); +} + /* }}} */ /* vim:set foldmethod=marker expandtab: */ diff --git a/gtk/gtkfiledialog.h b/gtk/gtkfiledialog.h index 34664d646b..5c3cac52bc 100644 --- a/gtk/gtkfiledialog.h +++ b/gtk/gtkfiledialog.h @@ -148,4 +148,11 @@ GListModel * gtk_file_dialog_select_multiple_folders_finish GAsyncResult *result, GError **error); +GDK_AVAILABLE_IN_4_10 +const char * gtk_file_dialog_get_accept_label (GtkFileDialog *self); + +GDK_AVAILABLE_IN_4_10 +void gtk_file_dialog_set_accept_label (GtkFileDialog *self, + const char *accept_label); + G_END_DECLS diff --git a/gtk/gtkfilelauncher.c b/gtk/gtkfilelauncher.c new file mode 100644 index 0000000000..0b433595b1 --- /dev/null +++ b/gtk/gtkfilelauncher.c @@ -0,0 +1,502 @@ +/* + * GTK - The GIMP Toolkit + * Copyright (C) 2022 Red Hat, Inc. + * All rights reserved. + * + * This Library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This Library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library. If not, see <http://www.gnu.org/licenses/>. + */ + +#include "config.h" + +#include "gtkfilelauncher.h" + +#include "gtkdialogerror.h" +#include "gopenuriportal.h" +#include "deprecated/gtkshow.h" +#include <glib/gi18n-lib.h> + +/** + * GtkFileLauncher: + * + * A `GtkFileLauncher` object collects the arguments that are needed to open a uri + * with an application. + * + * Depending on system configuration, user preferences and available APIs, this + * may or may not show an app chooser dialog or launch the default application + * right away. + * + * The operation is started with the [method@Gtk.FileLauncher.launch] function. + * This API follows the GIO async pattern, and the result can be obtained by + * calling [method@Gtk.FileLauncher.launch_finish]. + * + * Since: 4.10 + */ + +/* {{{ GObject implementation */ + +struct _GtkFileLauncher +{ + GObject parent_instance; + + GFile *file; +}; + +enum { + PROP_FILE = 1, + + NUM_PROPERTIES +}; + +static GParamSpec *properties[NUM_PROPERTIES]; + +G_DEFINE_TYPE (GtkFileLauncher, gtk_file_launcher, G_TYPE_OBJECT) + +static void +gtk_file_launcher_init (GtkFileLauncher *self) +{ +} + +static void +gtk_file_launcher_finalize (GObject *object) +{ + //GtkFileLauncher *self = GTK_FILE_LAUNCHER (object); + + G_OBJECT_CLASS (gtk_file_launcher_parent_class)->finalize (object); +} + +static void +gtk_file_launcher_get_property (GObject *object, + unsigned int property_id, + GValue *value, + GParamSpec *pspec) +{ + GtkFileLauncher *self = GTK_FILE_LAUNCHER (object); + + switch (property_id) + { + case PROP_FILE: + g_value_set_object (value, self->file); + break; + + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + break; + } +} + +static void +gtk_file_launcher_set_property (GObject *object, + unsigned int property_id, + const GValue *value, + GParamSpec *pspec) +{ + GtkFileLauncher *self = GTK_FILE_LAUNCHER (object); + + switch (property_id) + { + case PROP_FILE: + gtk_file_launcher_set_file (self, g_value_get_object (value)); + break; + + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + break; + } +} + +static void +gtk_file_launcher_class_init (GtkFileLauncherClass *class) +{ + GObjectClass *object_class = G_OBJECT_CLASS (class); + + object_class->finalize = gtk_file_launcher_finalize; + object_class->get_property = gtk_file_launcher_get_property; + object_class->set_property = gtk_file_launcher_set_property; + + /** + * GtkFileLauncher:file: (attributes org.gtk.Property.get=gtk_file_launcher_get_file org.gtk.Property.set=gtk_file_launcher_set_file) + * + * The file to launch. + * + * Since: 4.10 + */ + properties[PROP_FILE] = + g_param_spec_object ("file", NULL, NULL, + G_TYPE_FILE, + G_PARAM_READWRITE|G_PARAM_STATIC_STRINGS|G_PARAM_EXPLICIT_NOTIFY); + + g_object_class_install_properties (object_class, NUM_PROPERTIES, properties); +} + +/* }}} */ +/* {{{ API: Constructor */ + +/** + * gtk_file_launcher_new: + * @file: (nullable): the file to open + * + * Creates a new `GtkFileLauncher` object. + * + * Returns: the new `GtkFileLauncher` + * + * Since: 4.10 + */ +GtkFileLauncher * +gtk_file_launcher_new (GFile *file) +{ + return g_object_new (GTK_TYPE_FILE_LAUNCHER, + "file", file, + NULL); +} + + /* }}} */ +/* {{{ API: Getters and setters */ + +/** + * gtk_file_launcher_get_file: + * @self: a `GtkFileLauncher` + * + * Gets the file that will be opened. + * + * Returns: (transfer none) (nullable): the file + * + * Since: 4.10 + */ +GFile * +gtk_file_launcher_get_file (GtkFileLauncher *self) +{ + g_return_val_if_fail (GTK_IS_FILE_LAUNCHER (self), NULL); + + return self->file; +} + +/** + * gtk_file_launcher_set_file: + * @self: a `GtkFileLauncher` + * @file: (nullable): a `GFile` + * + * Sets the file that will be opened. + * + * Since: 4.10 + */ +void +gtk_file_launcher_set_file (GtkFileLauncher *self, + GFile *file) +{ + g_return_if_fail (GTK_IS_FILE_LAUNCHER (self)); + g_return_if_fail (file == NULL || G_IS_FILE (file)); + + if (!g_set_object (&self->file, file)) + return; + + g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_FILE]); +} + +/* }}} */ +/* {{{ Async implementation */ + +#ifndef G_OS_WIN32 +static void +open_done (GObject *source, + GAsyncResult *result, + gpointer data) +{ + GTask *task = G_TASK (data); + GError *error = NULL; + + if (!g_openuri_portal_open_finish (result, &error)) + g_task_return_error (task, error); + else + g_task_return_boolean (task, TRUE); + + g_object_unref (task); +} +#endif + +static void +show_folder_done (GObject *source, + GAsyncResult *result, + gpointer data) +{ + GDBusConnection *bus = G_DBUS_CONNECTION (source); + GTask *task = G_TASK (data); + GVariant *res; + GError *error = NULL; + + res = g_dbus_connection_call_finish (bus, result, &error); + if (res) + g_variant_unref (res); + + if (error) + { + if (g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) + g_task_return_new_error (task, GTK_DIALOG_ERROR, GTK_DIALOG_ERROR_CANCELLED, "Cancelled by user"); + else + g_task_return_new_error (task, GTK_DIALOG_ERROR, GTK_DIALOG_ERROR_FAILED, "%s", error->message); + g_error_free (error); + } + else + g_task_return_boolean (task, TRUE); + + g_object_unref (task); +} + +#define FILE_MANAGER_DBUS_NAME "org.freedesktop.FileManager1" +#define FILE_MANAGER_DBUS_IFACE "org.freedesktop.FileManager1" +#define FILE_MANAGER_DBUS_PATH "/org/freedesktop/FileManager1" + +static void +show_folder (GtkWindow *parent, + const char *uri, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + GDBusConnection *bus; + GVariantBuilder uris_builder = G_VARIANT_BUILDER_INIT (G_VARIANT_TYPE_STRING_ARRAY); + + bus = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, NULL); + + if (!bus) + { + g_task_return_new_error (G_TASK (user_data), + GTK_DIALOG_ERROR, GTK_DIALOG_ERROR_FAILED, + "Session bus not available"); + g_object_unref (G_TASK (user_data)); + return; + } + + g_variant_builder_add (&uris_builder, "s", uri); + + g_dbus_connection_call (bus, + FILE_MANAGER_DBUS_NAME, + FILE_MANAGER_DBUS_PATH, + FILE_MANAGER_DBUS_IFACE, + "ShowFolders", + g_variant_new ("(ass)", &uris_builder, ""), + NULL, /* ignore returned type */ + G_DBUS_CALL_FLAGS_NONE, + -1, + cancellable, + show_folder_done, + user_data); +} + +G_GNUC_BEGIN_IGNORE_DEPRECATIONS +static void +show_uri_done (GObject *source, + GAsyncResult *result, + gpointer data) +{ + GtkWindow *parent = GTK_WINDOW (source); + GTask *task = G_TASK (data); + GError *error = NULL; + + if (!gtk_show_uri_full_finish (parent, result, &error)) + { + if (g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) + g_task_return_new_error (task, GTK_DIALOG_ERROR, GTK_DIALOG_ERROR_CANCELLED, "Cancelled by user"); + else + g_task_return_new_error (task, GTK_DIALOG_ERROR, GTK_DIALOG_ERROR_FAILED, "%s", error->message); + g_error_free (error); + } + else + g_task_return_boolean (task, TRUE); + + g_object_unref (task); +} +G_GNUC_END_IGNORE_DEPRECATIONS + + /* }}} */ +/* {{{ Async API */ + +/** + * gtk_file_launcher_launch: + * @self: a `GtkFileLauncher` + * @parent: (nullable): the parent `GtkWindow` + * @cancellable: (nullable): a `GCancellable` to cancel the operation + * @callback: (scope async): a callback to call when the operation is complete + * @user_data: (closure callback): data to pass to @callback + * + * Launch an application to open the file. + * + * This may present an app chooser dialog to the user. + * + * The @callback will be called when the operation is completed. + * It should call [method@Gtk.FileLauncher.launch_finish] to obtain + * the result. + * + * Since: 4.10 + */ +void +gtk_file_launcher_launch (GtkFileLauncher *self, + GtkWindow *parent, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + GTask *task; + + g_return_if_fail (GTK_IS_FILE_LAUNCHER (self)); + + task = g_task_new (self, cancellable, callback, user_data); + g_task_set_check_cancellable (task, FALSE); + g_task_set_source_tag (task, gtk_file_launcher_launch); + + if (self->file == NULL) + { + g_task_return_new_error (task, + GTK_DIALOG_ERROR, GTK_DIALOG_ERROR_FAILED, + "No file to launch"); + return; + } + +#ifndef G_OS_WIN32 + if (g_openuri_portal_is_available ()) + { + g_openuri_portal_open_async (self->file, FALSE, parent, cancellable, open_done, task); + } + else +#endif + { + char *uri = g_file_get_uri (self->file); + +G_GNUC_BEGIN_IGNORE_DEPRECATIONS + gtk_show_uri_full (parent, uri, GDK_CURRENT_TIME, cancellable, show_uri_done, task); +G_GNUC_END_IGNORE_DEPRECATIONS + + g_free (uri); + } +} + +/** + * gtk_file_launcher_launch_finish: + * @self: a `GtkFileLauncher` + * @result: a `GAsyncResult` + * @error: return location for a [enum@Gtk.DialogError] or [enum@Gio.Error] error + * + * Finishes the [method@Gtk.FileLauncher.launch] call and + * returns the result. + * + * Returns: `TRUE` if an application was launched, + * or `FALSE` and @error is set + * + * Since: 4.10 + */ +gboolean +gtk_file_launcher_launch_finish (GtkFileLauncher *self, + GAsyncResult *result, + GError **error) +{ + g_return_val_if_fail (GTK_IS_FILE_LAUNCHER (self), FALSE); + g_return_val_if_fail (g_task_is_valid (result, self), FALSE); + g_return_val_if_fail (g_task_get_source_tag (G_TASK (result)) == gtk_file_launcher_launch, FALSE); + + return g_task_propagate_boolean (G_TASK (result), error); +} + +/** + * gtk_file_launcher_open_containing_folder: + * @self: a `GtkFileLauncher` + * @parent: (nullable): the parent `GtkWindow` + * @cancellable: (nullable): a `GCancellable` to cancel the operation + * @callback: (scope async): a callback to call when the operation is complete + * @user_data: (closure callback): data to pass to @callback + * + * Launch a file manager to show the file in its parent directory. + * + * This is only supported native files. It will fail if @file + * is e.g. a http:// uri. + * + * The @callback will be called when the operation is completed. + * It should call [method@Gtk.FileLauncher.open_containing_folder_finish] + * to obtain the result. + * + * Since: 4.10 + */ +void +gtk_file_launcher_open_containing_folder (GtkFileLauncher *self, + GtkWindow *parent, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + GTask *task; + + g_return_if_fail (GTK_IS_FILE_LAUNCHER (self)); + + task = g_task_new (self, cancellable, callback, user_data); + g_task_set_check_cancellable (task, FALSE); + g_task_set_source_tag (task, gtk_file_launcher_open_containing_folder); + + if (self->file == NULL) + { + g_task_return_new_error (task, + GTK_DIALOG_ERROR, GTK_DIALOG_ERROR_FAILED, + "No file to open"); + return; + } + + if (!g_file_is_native (self->file)) + { + g_task_return_new_error (task, + GTK_DIALOG_ERROR, GTK_DIALOG_ERROR_FAILED, + "Operation not supported on non-native files"); + return; + } + +#ifndef G_OS_WIN32 + if (g_openuri_portal_is_available ()) + { + g_openuri_portal_open_async (self->file, TRUE, parent, cancellable, open_done, task); + } + else +#endif + { + char *uri = g_file_get_uri (self->file); + + show_folder (parent, uri, cancellable, show_folder_done, task); + + g_free (uri); + } +} + +/** + * gtk_file_launcher_open_containing_folder_finish: + * @self: a `GtkFileLauncher` + * @result: a `GAsyncResult` + * @error: return location for a [enum@Gtk.DialogError] or [enum@Gio.Error] error + * + * Finishes the [method@Gtk.FileLauncher.open_containing_folder] + * call and returns the result. + * + * Returns: `TRUE` if an application was launched, + * or `FALSE` and @error is set + * + * Since: 4.10 + */ +gboolean +gtk_file_launcher_open_containing_folder_finish (GtkFileLauncher *self, + GAsyncResult *result, + GError **error) +{ + g_return_val_if_fail (GTK_IS_FILE_LAUNCHER (self), FALSE); + g_return_val_if_fail (g_task_is_valid (result, self), FALSE); + g_return_val_if_fail (g_task_get_source_tag (G_TASK (result)) == gtk_file_launcher_open_containing_folder, FALSE); + + return g_task_propagate_boolean (G_TASK (result), error); +} + +/* }}} */ +/* vim:set foldmethod=marker expandtab: */ diff --git a/gtk/gtkfilelauncher.h b/gtk/gtkfilelauncher.h new file mode 100644 index 0000000000..2c5a3e665c --- /dev/null +++ b/gtk/gtkfilelauncher.h @@ -0,0 +1,68 @@ +/* GTK - The GIMP Toolkit + * + * Copyright (C) 2022 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see <http://www.gnu.org/licenses/>. + */ + +#pragma once + +#if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION) +#error "Only <gtk/gtk.h> can be included directly." +#endif + +#include <gdk/gdk.h> +#include <gtk/gtkwindow.h> + +G_BEGIN_DECLS + +#define GTK_TYPE_FILE_LAUNCHER (gtk_file_launcher_get_type ()) + +GDK_AVAILABLE_IN_4_10 +G_DECLARE_FINAL_TYPE (GtkFileLauncher, gtk_file_launcher, GTK, FILE_LAUNCHER, GObject) + +GDK_AVAILABLE_IN_4_10 +GtkFileLauncher * gtk_file_launcher_new (GFile *file); + +GDK_AVAILABLE_IN_4_10 +GFile * gtk_file_launcher_get_file (GtkFileLauncher *self); +GDK_AVAILABLE_IN_4_10 +void gtk_file_launcher_set_file (GtkFileLauncher *self, + GFile *file); + +GDK_AVAILABLE_IN_4_10 +void gtk_file_launcher_launch (GtkFileLauncher *self, + GtkWindow *parent, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + +GDK_AVAILABLE_IN_4_10 +gboolean gtk_file_launcher_launch_finish (GtkFileLauncher *self, + GAsyncResult *result, + GError **error); + +GDK_AVAILABLE_IN_4_10 +void gtk_file_launcher_open_containing_folder (GtkFileLauncher *self, + GtkWindow *parent, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + +GDK_AVAILABLE_IN_4_10 +gboolean gtk_file_launcher_open_containing_folder_finish (GtkFileLauncher *self, + GAsyncResult *result, + GError **error); + +G_END_DECLS diff --git a/gtk/gtkfilethumbnail.c b/gtk/gtkfilethumbnail.c index d8a5171119..f48de386a9 100644 --- a/gtk/gtkfilethumbnail.c +++ b/gtk/gtkfilethumbnail.c @@ -35,6 +35,7 @@ struct _GtkFileThumbnail GtkWidget parent; GtkWidget *image; + int icon_size; GCancellable *cancellable; GFileInfo *info; @@ -49,6 +50,7 @@ G_DEFINE_FINAL_TYPE (GtkFileThumbnail, _gtk_file_thumbnail, GTK_TYPE_WIDGET) enum { PROP_0, + PROP_ICON_SIZE, PROP_INFO, N_PROPS, }; @@ -72,6 +74,7 @@ update_image (GtkFileThumbnail *self) { GtkIconTheme *icon_theme; GIcon *icon; + int icon_size; int scale; if (!g_file_info_has_attribute (self->info, G_FILE_ATTRIBUTE_STANDARD_ICON)) @@ -80,7 +83,8 @@ update_image (GtkFileThumbnail *self) scale = gtk_widget_get_scale_factor (GTK_WIDGET (self)); icon_theme = gtk_icon_theme_get_for_display (gtk_widget_get_display (GTK_WIDGET (self))); - icon = _gtk_file_info_get_icon (self->info, ICON_SIZE, scale, icon_theme); + icon_size = self->icon_size != -1 ? self->icon_size : ICON_SIZE; + icon = _gtk_file_info_get_icon (self->info, icon_size, scale, icon_theme); gtk_image_set_from_gicon (GTK_IMAGE (self->image), icon); @@ -173,6 +177,10 @@ _gtk_file_thumbnail_get_property (GObject *object, switch (prop_id) { + case PROP_ICON_SIZE: + g_value_set_int (value, self->icon_size); + break; + case PROP_INFO: g_value_set_object (value, self->info); break; @@ -192,6 +200,10 @@ _gtk_file_thumbnail_set_property (GObject *object, switch (prop_id) { + case PROP_ICON_SIZE: + _gtk_file_thumbnail_set_icon_size (self, g_value_get_int (value)); + break; + case PROP_INFO: _gtk_file_thumbnail_set_info (self, g_value_get_object (value)); break; @@ -211,6 +223,11 @@ _gtk_file_thumbnail_class_init (GtkFileThumbnailClass *klass) object_class->get_property = _gtk_file_thumbnail_get_property; object_class->set_property = _gtk_file_thumbnail_set_property; + properties[PROP_ICON_SIZE] = + g_param_spec_int ("icon-size", NULL, NULL, + -1, G_MAXINT, -1, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); + properties[PROP_INFO] = g_param_spec_object ("file-info", NULL, NULL, G_TYPE_FILE_INFO, @@ -226,6 +243,7 @@ _gtk_file_thumbnail_class_init (GtkFileThumbnailClass *klass) static void _gtk_file_thumbnail_init (GtkFileThumbnail *self) { + self->icon_size = -1; self->image = gtk_image_new (); gtk_widget_set_parent (self->image, GTK_WIDGET (self)); } @@ -253,3 +271,32 @@ _gtk_file_thumbnail_set_info (GtkFileThumbnail *self, } } +int +_gtk_file_thumbnail_get_icon_size (GtkFileThumbnail *self) +{ + g_assert (GTK_IS_FILE_THUMBNAIL (self)); + + return self->icon_size; +} + +void +_gtk_file_thumbnail_set_icon_size (GtkFileThumbnail *self, + int icon_size) +{ + g_assert (GTK_IS_FILE_THUMBNAIL (self)); + g_assert (icon_size == -1 || icon_size > 0); + + if (self->icon_size == icon_size) + return; + + self->icon_size = icon_size; + if (self->icon_size == -1) + gtk_image_set_pixel_size (GTK_IMAGE (self->image), ICON_SIZE); + else + gtk_image_set_pixel_size (GTK_IMAGE (self->image), icon_size); + + cancel_thumbnail (self); + get_thumbnail (self); + g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_ICON_SIZE]); +} + diff --git a/gtk/gtkfilethumbnail.h b/gtk/gtkfilethumbnail.h index c9c5741d3f..bdb3f6c46f 100644 --- a/gtk/gtkfilethumbnail.h +++ b/gtk/gtkfilethumbnail.h @@ -40,6 +40,10 @@ GFileInfo *_gtk_file_thumbnail_get_info (GtkFileThumbnail *self); void _gtk_file_thumbnail_set_info (GtkFileThumbnail *self, GFileInfo *info); +int _gtk_file_thumbnail_get_icon_size (GtkFileThumbnail *self); +void _gtk_file_thumbnail_set_icon_size (GtkFileThumbnail *self, + int icon_size); + G_END_DECLS #endif /* __GTK_FILE_THUMBNAIL_H__ */ diff --git a/gtk/gtkfontdialog.c b/gtk/gtkfontdialog.c index 169b4a6029..334dcaf93a 100644 --- a/gtk/gtkfontdialog.c +++ b/gtk/gtkfontdialog.c @@ -596,6 +596,7 @@ create_font_chooser (GtkFontDialog *self, window = gtk_font_chooser_dialog_new (title, parent); gtk_font_chooser_set_level (GTK_FONT_CHOOSER (window), level); + gtk_window_set_modal (GTK_WINDOW (window), TRUE); if (self->language) gtk_font_chooser_set_language (GTK_FONT_CHOOSER (window), pango_language_to_string (self->language)); @@ -657,6 +658,7 @@ gtk_font_dialog_choose_family (GtkFontDialog *self, g_clear_pointer (&desc, pango_font_description_free); task = g_task_new (self, cancellable, callback, user_data); + g_task_set_check_cancellable (task, FALSE); g_task_set_source_tag (task, gtk_font_dialog_choose_family); g_task_set_task_data (task, window, (GDestroyNotify) gtk_window_destroy); @@ -672,7 +674,7 @@ gtk_font_dialog_choose_family (GtkFontDialog *self, * gtk_font_dialog_choose_family_finish: * @self: a `GtkFontDialog` * @result: a `GAsyncResult` - * @error: return location for an error + * @error: return location for a [enum@Gtk.DialogError] error * * Finishes the [method@Gtk.FontDialog.choose_family] call * and returns the resulting family. @@ -740,6 +742,7 @@ gtk_font_dialog_choose_face (GtkFontDialog *self, g_clear_pointer (&desc, pango_font_description_free); task = g_task_new (self, cancellable, callback, user_data); + g_task_set_check_cancellable (task, FALSE); g_task_set_source_tag (task, gtk_font_dialog_choose_face); g_task_set_task_data (task, window, (GDestroyNotify) gtk_window_destroy); @@ -755,7 +758,7 @@ gtk_font_dialog_choose_face (GtkFontDialog *self, * gtk_font_dialog_choose_face_finish: * @self: a `GtkFontDialog` * @result: a `GAsyncResult` - * @error: return location for an error + * @error: return location for a [enum@Gtk.DialogError] error * * Finishes the [method@Gtk.FontDialog.choose_face] call * and returns the resulting font face. @@ -773,7 +776,7 @@ gtk_font_dialog_choose_face_finish (GtkFontDialog *self, g_return_val_if_fail (g_task_is_valid (result, self), NULL); g_return_val_if_fail (g_task_get_source_tag (G_TASK (result)) == gtk_font_dialog_choose_face, NULL); - return g_task_propagate_pointer (G_TASK (result), NULL); + return g_task_propagate_pointer (G_TASK (result), error); } /** @@ -817,6 +820,7 @@ gtk_font_dialog_choose_font (GtkFontDialog *self, GTK_FONT_CHOOSER_LEVEL_VARIATIONS); task = g_task_new (self, cancellable, callback, user_data); + g_task_set_check_cancellable (task, FALSE); g_task_set_source_tag (task, gtk_font_dialog_choose_font); g_task_set_task_data (task, window, (GDestroyNotify) gtk_window_destroy); @@ -832,7 +836,7 @@ gtk_font_dialog_choose_font (GtkFontDialog *self, * gtk_font_dialog_choose_font_finish: * @self: a `GtkFontDialog` * @result: a `GAsyncResult` - * @error: return location for an error + * @error: return location for a [enum@Gtk.DialogError] error * * Finishes the [method@Gtk.FontDialog.choose_font] call * and returns the resulting font description. @@ -850,7 +854,7 @@ gtk_font_dialog_choose_font_finish (GtkFontDialog *self, g_return_val_if_fail (g_task_is_valid (result, self), NULL); g_return_val_if_fail (g_task_get_source_tag (G_TASK (result)) == gtk_font_dialog_choose_font, NULL); - return g_task_propagate_pointer (G_TASK (result), NULL); + return g_task_propagate_pointer (G_TASK (result), error); } /** @@ -896,6 +900,7 @@ gtk_font_dialog_choose_font_and_features (GtkFontDialog *self, GTK_FONT_CHOOSER_LEVEL_FEATURES); task = g_task_new (self, cancellable, callback, user_data); + g_task_set_check_cancellable (task, FALSE); g_task_set_source_tag (task, gtk_font_dialog_choose_font_and_features); g_task_set_task_data (task, window, (GDestroyNotify) gtk_window_destroy); @@ -914,7 +919,7 @@ gtk_font_dialog_choose_font_and_features (GtkFontDialog *self, * @font_desc: (out caller-allocates): return location for font description * @font_features: (out caller-allocates): return location for font features * @language: (out caller-allocates): return location for the language - * @error: return location for an error + * @error: return location for a [enum@Gtk.DialogError] error * * Finishes the [method@Gtk.FontDialog.choose_font_and_features] * call and returns the resulting font description and font features. diff --git a/gtk/gtkfontdialogbutton.c b/gtk/gtkfontdialogbutton.c index 162e0f0890..9dc25cce7c 100644 --- a/gtk/gtkfontdialogbutton.c +++ b/gtk/gtkfontdialogbutton.c @@ -393,8 +393,9 @@ gtk_font_dialog_button_class_init (GtkFontDialogButtonClass *class) static void update_button_sensitivity (GtkFontDialogButton *self) { - gtk_widget_set_sensitive (self->button, - self->dialog != NULL && self->cancellable == NULL); + if (self->button) + gtk_widget_set_sensitive (self->button, + self->dialog != NULL && self->cancellable == NULL); } static void @@ -402,10 +403,11 @@ family_chosen (GObject *source, GAsyncResult *result, gpointer data) { + GtkFontDialog *dialog = GTK_FONT_DIALOG (source); GtkFontDialogButton *self = data; PangoFontFamily *family; - family = gtk_font_dialog_choose_family_finish (self->dialog, result, NULL); + family = gtk_font_dialog_choose_family_finish (dialog, result, NULL); if (family) { PangoFontDescription *desc; @@ -428,10 +430,11 @@ face_chosen (GObject *source, GAsyncResult *result, gpointer data) { + GtkFontDialog *dialog = GTK_FONT_DIALOG (source); GtkFontDialogButton *self = data; PangoFontFace *face; - face = gtk_font_dialog_choose_face_finish (self->dialog, result, NULL); + face = gtk_font_dialog_choose_face_finish (dialog, result, NULL); if (face) { PangoFontDescription *desc; @@ -453,10 +456,11 @@ font_chosen (GObject *source, GAsyncResult *result, gpointer data) { + GtkFontDialog *dialog = GTK_FONT_DIALOG (source); GtkFontDialogButton *self = data; PangoFontDescription *desc; - desc = gtk_font_dialog_choose_font_finish (self->dialog, result, NULL); + desc = gtk_font_dialog_choose_font_finish (dialog, result, NULL); if (desc) { gtk_font_dialog_button_set_font_desc (self, desc); @@ -472,12 +476,13 @@ font_and_features_chosen (GObject *source, GAsyncResult *result, gpointer data) { + GtkFontDialog *dialog = GTK_FONT_DIALOG (source); GtkFontDialogButton *self = data; PangoFontDescription *desc; char *features; PangoLanguage *language; - if (gtk_font_dialog_choose_font_and_features_finish (self->dialog, result, + if (gtk_font_dialog_choose_font_and_features_finish (dialog, result, &desc, &features, &language, NULL)) { diff --git a/gtk/gtkgesturestylus.c b/gtk/gtkgesturestylus.c index d10dfe1a05..bc3da9351d 100644 --- a/gtk/gtkgesturestylus.c +++ b/gtk/gtkgesturestylus.c @@ -34,7 +34,16 @@ #include "gtkmain.h" #include "gtknative.h" -G_DEFINE_TYPE (GtkGestureStylus, gtk_gesture_stylus, GTK_TYPE_GESTURE_SINGLE) +typedef struct { + gboolean stylus_only; +} GtkGestureStylusPrivate; + +G_DEFINE_TYPE_WITH_PRIVATE (GtkGestureStylus, gtk_gesture_stylus, GTK_TYPE_GESTURE_SINGLE) + +enum { + PROP_STYLUS_ONLY = 1, + N_PROPERTIES +}; enum { PROXIMITY, @@ -44,20 +53,57 @@ enum { N_SIGNALS }; +static GParamSpec *obj_properties[N_PROPERTIES] = { NULL, }; static guint signals[N_SIGNALS] = { 0, }; +static void gtk_gesture_stylus_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec) +{ + GtkGestureStylus *gesture = GTK_GESTURE_STYLUS (object); + + switch (prop_id) + { + case PROP_STYLUS_ONLY: + g_value_set_boolean (value, gtk_gesture_stylus_get_stylus_only (gesture)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + } +} + +static void gtk_gesture_stylus_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec) +{ + GtkGestureStylus *gesture = GTK_GESTURE_STYLUS (object); + + switch (prop_id) + { + case PROP_STYLUS_ONLY: + gtk_gesture_stylus_set_stylus_only (gesture, g_value_get_boolean (value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + } +} + static gboolean gtk_gesture_stylus_handle_event (GtkEventController *controller, GdkEvent *event, double x, double y) { + GtkGestureStylusPrivate* priv; GdkModifierType modifiers; guint n_signal; + priv = gtk_gesture_stylus_get_instance_private (GTK_GESTURE_STYLUS (controller)); GTK_EVENT_CONTROLLER_CLASS (gtk_gesture_stylus_parent_class)->handle_event (controller, event, x, y); - if (!gdk_event_get_device_tool (event)) + if (!(priv->stylus_only || gdk_event_get_device_tool (event))) return FALSE; switch ((guint) gdk_event_get_event_type (event)) @@ -88,8 +134,27 @@ gtk_gesture_stylus_handle_event (GtkEventController *controller, static void gtk_gesture_stylus_class_init (GtkGestureStylusClass *klass) { + GObjectClass* object_class; GtkEventControllerClass *event_controller_class; + object_class = G_OBJECT_CLASS (klass); + object_class->get_property = gtk_gesture_stylus_get_property; + object_class->set_property = gtk_gesture_stylus_set_property; + + /** + * GtkGestureStylus:stylus-only: (attributes org.gtk.Property.get=gtk_gesture_stylus_get_stylus_only org.gtk.Property.set=gtk_gesture_stylus_set_stylus_only) + * + * If this gesture should exclusively react to stylus input devices. + * + * Since: 4.10 + */ + obj_properties[PROP_STYLUS_ONLY] = g_param_spec_boolean ("stylus-only", NULL, NULL, + TRUE, + G_PARAM_READWRITE | + G_PARAM_EXPLICIT_NOTIFY | + G_PARAM_CONSTRUCT); + g_object_class_install_properties (object_class, N_PROPERTIES, obj_properties); + event_controller_class = GTK_EVENT_CONTROLLER_CLASS (klass); event_controller_class->handle_event = gtk_gesture_stylus_handle_event; @@ -177,6 +242,9 @@ gtk_gesture_stylus_class_init (GtkGestureStylusClass *klass) static void gtk_gesture_stylus_init (GtkGestureStylus *gesture) { + GtkGestureStylusPrivate* priv = gtk_gesture_stylus_get_instance_private(gesture); + + priv->stylus_only = TRUE; } /** @@ -194,6 +262,56 @@ gtk_gesture_stylus_new (void) } /** + * gtk_gesture_stylus_get_stylus_only: (attributes org.gtk.Method.get_property=stylus-only) + * @gesture: the gesture + * + * Checks whether the gesture is for styluses only. + * + * Stylus-only gestures will signal events exclusively from stylus + * input devices. + * + * Returns: %TRUE if the gesture is only for stylus events + * + * Since: 4.10 + */ +gboolean +gtk_gesture_stylus_get_stylus_only (GtkGestureStylus *gesture) +{ + GtkGestureStylusPrivate *priv = gtk_gesture_stylus_get_instance_private (gesture); + + g_return_val_if_fail (GTK_IS_GESTURE_STYLUS (gesture), FALSE); + + return priv->stylus_only; +} + +/** + * gtk_gesture_stylus_set_stylus_only: (attributes org.gtk.Method.set_property=stylus-only) + * @gesture: the gesture + * @stylus_only: whether the gesture is used exclusivly for stylus events + * + * Sets the state of stylus-only + * + * If true, the gesture will exclusivly handle events from stylus input deivces, + * otherwise it'll handle events from any pointing device. + * + * Since: 4.10 + */ +void +gtk_gesture_stylus_set_stylus_only (GtkGestureStylus *gesture, gboolean stylus_only) +{ + GtkGestureStylusPrivate *priv = gtk_gesture_stylus_get_instance_private (gesture); + + g_return_if_fail (GTK_IS_GESTURE_STYLUS (gesture)); + + if (priv->stylus_only == stylus_only) + return; + + priv->stylus_only = stylus_only; + + g_object_notify_by_pspec (G_OBJECT (gesture), obj_properties[PROP_STYLUS_ONLY]); +} + +/** * gtk_gesture_stylus_get_axis: * @gesture: a `GtkGestureStylus` * @axis: requested device axis diff --git a/gtk/gtkgesturestylus.h b/gtk/gtkgesturestylus.h index df31f5277a..ea7784d249 100644 --- a/gtk/gtkgesturestylus.h +++ b/gtk/gtkgesturestylus.h @@ -43,6 +43,12 @@ GType gtk_gesture_stylus_get_type (void) G_GNUC_CONST; GDK_AVAILABLE_IN_ALL GtkGesture * gtk_gesture_stylus_new (void); +GDK_AVAILABLE_IN_4_10 +gboolean gtk_gesture_stylus_get_stylus_only (GtkGestureStylus *gesture); +GDK_AVAILABLE_IN_4_10 +void gtk_gesture_stylus_set_stylus_only (GtkGestureStylus *gesture, + gboolean stylus_only); + GDK_AVAILABLE_IN_ALL gboolean gtk_gesture_stylus_get_axis (GtkGestureStylus *gesture, GdkAxisUse axis, diff --git a/gtk/gtkicontheme.c b/gtk/gtkicontheme.c index e5310eed0e..fc3eb09165 100644 --- a/gtk/gtkicontheme.c +++ b/gtk/gtkicontheme.c @@ -1703,49 +1703,6 @@ gtk_icon_theme_get_theme_name (GtkIconTheme *self) return theme_name; } -static const char builtin_hicolor_index[] = -"[Icon Theme]\n" -"Name=Hicolor\n" -"Hidden=True\n" -"Directories=16x16/actions,16x16/status,22x22/actions,24x24/actions,24x24/status,32x32/actions,32x32/status,48x48/status,64x64/actions,scalable/status,scalable/actions\n" -"[16x16/actions]\n" -"Size=16\n" -"Type=Threshold\n" -"[16x16/status]\n" -"Size=16\n" -"Type=Threshold\n" -"[22x22/actions]\n" -"Size=22\n" -"Type=Threshold\n" -"[24x24/actions]\n" -"Size=24\n" -"Type=Threshold\n" -"[24x24/status]\n" -"Size=24\n" -"Type=Threshold\n" -"[32x32/actions]\n" -"Size=32\n" -"Type=Threshold\n" -"[32x32/status]\n" -"Size=32\n" -"Type=Threshold\n" -"[48x48/status]\n" -"Size=48\n" -"Type=Threshold\n" -"[64x64/actions]\n" -"Size=64\n" -"Type=Threshold\n" -"[scalable/status]\n" -"MinSize=1\n" -"Size=128\n" -"MaxSize=256\n" -"Type=Scalable\n" -"[scalable/actions]\n" -"MinSize=1\n" -"Size=128\n" -"MaxSize=256\n" -"Type=Scalable\n"; - static void insert_theme (GtkIconTheme *self, const char *theme_name) @@ -1812,9 +1769,20 @@ insert_theme (GtkIconTheme *self, { if (strcmp (theme_name, FALLBACK_ICON_THEME) == 0) { + const char *resource_path = "/org/gtk/libgtk/icons/hicolor.index.theme"; + GBytes *index; + + index = g_resources_lookup_data (resource_path, + G_RESOURCE_LOOKUP_FLAGS_NONE, + NULL); + if (!index) + g_error ("Cannot find resource %s", resource_path); + theme_file = g_key_file_new (); g_key_file_set_list_separator (theme_file, ','); - g_key_file_load_from_data (theme_file, builtin_hicolor_index, -1, 0, NULL); + g_key_file_load_from_bytes (theme_file, index, G_KEY_FILE_NONE, NULL); + + g_bytes_unref (index); } else return; diff --git a/gtk/gtkimage.c b/gtk/gtkimage.c index db99d57713..d8864fdc17 100644 --- a/gtk/gtkimage.c +++ b/gtk/gtkimage.c @@ -19,7 +19,7 @@ * Modified by the GTK+ Team and others 1997-2000. See the AUTHORS * file for a list of people on the GTK+ Team. See the ChangeLog * files for a list of changes. These files are distributed with - * GTK+ at ftp://ftp.gtk.org/pub/gtk/. + * GTK+ at ftp://ftp.gtk.org/pub/gtk/. */ #include "config.h" @@ -128,6 +128,8 @@ static void gtk_image_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec); +static void gtk_image_clear_internal (GtkImage *self, + gboolean notify); enum { @@ -295,7 +297,7 @@ gtk_image_finalize (GObject *object) { GtkImage *image = GTK_IMAGE (object); - gtk_image_clear (image); + gtk_image_clear_internal (image, FALSE); g_clear_object (&image->icon_helper); @@ -348,7 +350,7 @@ gtk_image_set_property (GObject *object, } } -static void +static void gtk_image_get_property (GObject *object, guint prop_id, GValue *value, @@ -484,7 +486,7 @@ gtk_image_new_from_pixbuf (GdkPixbuf *pixbuf) gtk_image_set_from_pixbuf (image, pixbuf); - return GTK_WIDGET (image); + return GTK_WIDGET (image); } /** @@ -511,7 +513,7 @@ gtk_image_new_from_paintable (GdkPaintable *paintable) gtk_image_set_from_paintable (image, paintable); - return GTK_WIDGET (image); + return GTK_WIDGET (image); } /** @@ -787,7 +789,7 @@ gtk_image_set_from_gicon (GtkImage *image, } g_object_notify_by_pspec (G_OBJECT (image), image_props[PROP_GICON]); - + g_object_thaw_notify (G_OBJECT (image)); } @@ -849,7 +851,7 @@ gtk_image_set_from_paintable (GtkImage *image, } g_object_notify_by_pspec (G_OBJECT (image), image_props[PROP_PAINTABLE]); - + g_object_thaw_notify (G_OBJECT (image)); } @@ -1061,7 +1063,7 @@ gtk_image_set_from_definition (GtkImage *image, g_return_if_fail (GTK_IS_IMAGE (image)); g_object_freeze_notify (G_OBJECT (image)); - + gtk_image_clear (image); if (def != NULL) @@ -1080,59 +1082,73 @@ gtk_image_get_definition (GtkImage *image) return gtk_icon_helper_get_definition (image->icon_helper); } -/** - * gtk_image_clear: - * @image: a `GtkImage` - * - * Resets the image to be empty. - */ -void -gtk_image_clear (GtkImage *image) +static void +gtk_image_clear_internal (GtkImage *self, + gboolean notify) { - GtkImageType storage_type; + GtkImageType storage_type = gtk_image_get_storage_type (self); + GObject *gobject = G_OBJECT (self); - g_object_freeze_notify (G_OBJECT (image)); - storage_type = gtk_image_get_storage_type (image); + if (notify) + { + if (storage_type != GTK_IMAGE_EMPTY) + g_object_notify_by_pspec (gobject, image_props[PROP_STORAGE_TYPE]); - if (storage_type != GTK_IMAGE_EMPTY) - g_object_notify_by_pspec (G_OBJECT (image), image_props[PROP_STORAGE_TYPE]); + g_object_notify_by_pspec (gobject, image_props[PROP_ICON_SIZE]); - g_object_notify_by_pspec (G_OBJECT (image), image_props[PROP_ICON_SIZE]); - - gtk_image_notify_for_storage_type (image, storage_type); + gtk_image_notify_for_storage_type (self, storage_type); + } - if (image->filename) + if (self->filename) { - g_free (image->filename); - image->filename = NULL; - g_object_notify_by_pspec (G_OBJECT (image), image_props[PROP_FILE]); + g_free (self->filename); + self->filename = NULL; + + if (notify) + g_object_notify_by_pspec (gobject, image_props[PROP_FILE]); } - if (image->resource_path) + if (self->resource_path) { - g_free (image->resource_path); - image->resource_path = NULL; - g_object_notify_by_pspec (G_OBJECT (image), image_props[PROP_RESOURCE]); + g_free (self->resource_path); + self->resource_path = NULL; + + if (notify) + g_object_notify_by_pspec (gobject, image_props[PROP_RESOURCE]); } if (storage_type == GTK_IMAGE_PAINTABLE) { - GdkPaintable *paintable = _gtk_icon_helper_peek_paintable (image->icon_helper); + GdkPaintable *paintable = _gtk_icon_helper_peek_paintable (self->icon_helper); const guint flags = gdk_paintable_get_flags (paintable); if ((flags & GDK_PAINTABLE_STATIC_CONTENTS) == 0) g_signal_handlers_disconnect_by_func (paintable, gtk_image_paintable_invalidate_contents, - image); + self); if ((flags & GDK_PAINTABLE_STATIC_SIZE) == 0) g_signal_handlers_disconnect_by_func (paintable, gtk_image_paintable_invalidate_size, - image); + self); } - _gtk_icon_helper_clear (image->icon_helper); + _gtk_icon_helper_clear (self->icon_helper); +} + +/** + * gtk_image_clear: + * @image: a `GtkImage` + * + * Resets the image to be empty. + */ +void +gtk_image_clear (GtkImage *image) +{ + g_return_if_fail (GTK_IS_IMAGE (image)); + g_object_freeze_notify (G_OBJECT (image)); + gtk_image_clear_internal (image, TRUE); g_object_thaw_notify (G_OBJECT (image)); } diff --git a/gtk/gtkimcontextwayland.c b/gtk/gtkimcontextwayland.c index 439c64bd3b..29e8a53cbf 100644 --- a/gtk/gtkimcontextwayland.c +++ b/gtk/gtkimcontextwayland.c @@ -238,14 +238,24 @@ text_input_delete_surrounding_text (void *data, { GtkIMContextWaylandGlobal *global = data; GtkIMContextWayland *context; + char *cursor_pointer; + uint32_t char_before_length; + uint32_t char_after_length; if (!global->current) return; context = GTK_IM_CONTEXT_WAYLAND (global->current); - context->pending_surrounding_delete.before_length = before_length; - context->pending_surrounding_delete.after_length = after_length; + /* We already got byte lengths from text_input_v3, but GTK uses char lengths + * for delete_surrounding, So convert it here. + */ + cursor_pointer = context->surrounding.text + context->surrounding.cursor_idx; + char_before_length = g_utf8_pointer_to_offset (cursor_pointer - before_length, cursor_pointer); + char_after_length = g_utf8_pointer_to_offset (cursor_pointer, cursor_pointer + after_length); + + context->pending_surrounding_delete.before_length = char_before_length; + context->pending_surrounding_delete.after_length = char_after_length; } static void diff --git a/gtk/gtklabel.c b/gtk/gtklabel.c index 6119728040..4228fb38ae 100644 --- a/gtk/gtklabel.c +++ b/gtk/gtklabel.c @@ -40,7 +40,7 @@ #include "gtkshortcut.h" #include "gtkshortcutcontroller.h" #include "gtkshortcuttrigger.h" -#include "gtkshow.h" +#include "gtkfilelauncher.h" #include "gtksnapshot.h" #include "gtkrenderbackgroundprivate.h" #include "gtkrenderborderprivate.h" @@ -2102,11 +2102,17 @@ gtk_label_activate_link (GtkLabel *self, { GtkWidget *widget = GTK_WIDGET (self); GtkWidget *toplevel = GTK_WIDGET (gtk_widget_get_root (widget)); + GFile *file; + GtkFileLauncher *launcher; if (!GTK_IS_WINDOW (toplevel)) return FALSE; - gtk_show_uri (GTK_WINDOW (toplevel), uri, GDK_CURRENT_TIME); + file = g_file_new_for_uri (uri); + launcher = gtk_file_launcher_new (file); + gtk_file_launcher_launch (launcher, GTK_WINDOW (toplevel), NULL, NULL, NULL); + g_object_unref (launcher); + g_object_unref (file); return TRUE; } @@ -2281,7 +2287,7 @@ gtk_label_class_init (GtkLabelClass *class) * Gets emitted to activate a URI. * * Applications may connect to it to override the default behaviour, - * which is to call gtk_show_uri(). + * which is to call [method@Gtk.FileLauncher.launch]. * * Returns: %TRUE if the link has been activated */ diff --git a/gtk/gtklinkbutton.c b/gtk/gtklinkbutton.c index f2794e1258..f8e27ca2d6 100644 --- a/gtk/gtklinkbutton.c +++ b/gtk/gtklinkbutton.c @@ -37,7 +37,7 @@ * The URI bound to a `GtkLinkButton` can be set specifically using * [method@Gtk.LinkButton.set_uri]. * - * By default, `GtkLinkButton` calls [func@Gtk.show_uri] when the button + * By default, `GtkLinkButton` calls [method@Gtk.FileLauncher.launch] when the button * is clicked. This behaviour can be overridden by connecting to the * [signal@Gtk.LinkButton::activate-link] signal and returning %TRUE from * the signal handler. @@ -65,7 +65,7 @@ #include "gtkmarshalers.h" #include "gtkpopovermenu.h" #include "gtkprivate.h" -#include "gtkshow.h" +#include "gtkfilelauncher.h" #include "gtksizerequest.h" #include "gtktooltip.h" #include "gtkwidgetprivate.h" @@ -198,7 +198,7 @@ gtk_link_button_class_init (GtkLinkButtonClass *klass) * * Emitted each time the `GtkLinkButton` is clicked. * - * The default handler will call [func@Gtk.show_uri] with the URI + * The default handler will call [method@Gtk.FileLauncher.launch] with the URI * stored inside the [property@Gtk.LinkButton:uri] property. * * To override the default behavior, you can connect to the @@ -479,10 +479,17 @@ static gboolean gtk_link_button_activate_link (GtkLinkButton *link_button) { GtkWidget *toplevel; + GFile *file; + GtkFileLauncher *launcher; toplevel = GTK_WIDGET (gtk_widget_get_root (GTK_WIDGET (link_button))); - gtk_show_uri (GTK_WINDOW (toplevel), link_button->uri, GDK_CURRENT_TIME); + file = g_file_new_for_uri (link_button->uri); + launcher = gtk_file_launcher_new (file); + gtk_file_launcher_launch (launcher, GTK_WINDOW (toplevel), NULL, NULL, NULL); + g_object_unref (launcher); + g_object_unref (file); + gtk_link_button_set_visited (link_button, TRUE); return TRUE; diff --git a/gtk/gtklistbase.c b/gtk/gtklistbase.c index 03bcb48288..d77088481a 100644 --- a/gtk/gtklistbase.c +++ b/gtk/gtklistbase.c @@ -803,43 +803,13 @@ gtk_list_base_compute_scroll_align (GtkListBase *self, } static void -gtk_list_base_update_focus_tracker (GtkListBase *self) +gtk_list_base_scroll_to_item (GtkListBase *self, + guint pos) { GtkListBasePrivate *priv = gtk_list_base_get_instance_private (self); - GtkWidget *focus_child; - guint pos; - - focus_child = gtk_widget_get_focus_child (GTK_WIDGET (self)); - if (!GTK_IS_LIST_ITEM_WIDGET (focus_child)) - return; - - pos = gtk_list_item_widget_get_position (GTK_LIST_ITEM_WIDGET (focus_child)); - if (pos != gtk_list_item_tracker_get_position (priv->item_manager, priv->focus)) - { - gtk_list_item_tracker_set_position (priv->item_manager, - priv->focus, - pos, - 0, - 0); - } -} - -static void -gtk_list_base_scroll_to_item (GtkWidget *widget, - const char *action_name, - GVariant *parameter) -{ - GtkListBase *self = GTK_LIST_BASE (widget); - GtkListBasePrivate *priv = gtk_list_base_get_instance_private (self); int start, end; double align_along, align_across; GtkPackType side_along, side_across; - guint pos; - - if (!g_variant_check_format_string (parameter, "u", FALSE)) - return; - - g_variant_get (parameter, "u", &pos); /* figure out primary orientation and if position is valid */ if (!gtk_list_base_get_allocation_along (GTK_LIST_BASE (self), pos, &start, &end)) @@ -867,14 +837,48 @@ gtk_list_base_scroll_to_item (GtkWidget *widget, pos, align_across, side_across, align_along, side_along); +} - /* HACK HACK HACK - * - * GTK has no way to track the focused child. But we now that when a listitem - * gets focus, it calls this action. So we update our focus tracker from here - * because it's the closest we can get to accurate tracking. - */ - gtk_list_base_update_focus_tracker (self); +static void +gtk_list_base_scroll_to_item_action (GtkWidget *widget, + const char *action_name, + GVariant *parameter) +{ + GtkListBase *self = GTK_LIST_BASE (widget); + guint pos; + + if (!g_variant_check_format_string (parameter, "u", FALSE)) + return; + + g_variant_get (parameter, "u", &pos); + + gtk_list_base_scroll_to_item (self, pos); +} + +static void +gtk_list_base_set_focus_child (GtkWidget *widget, + GtkWidget *child) +{ + GtkListBase *self = GTK_LIST_BASE (widget); + GtkListBasePrivate *priv = gtk_list_base_get_instance_private (self); + guint pos; + + GTK_WIDGET_CLASS (gtk_list_base_parent_class)->set_focus_child (widget, child); + + if (!GTK_IS_LIST_ITEM_WIDGET (child)) + return; + + pos = gtk_list_item_widget_get_position (GTK_LIST_ITEM_WIDGET (child)); + + if (pos != gtk_list_item_tracker_get_position (priv->item_manager, priv->focus)) + { + gtk_list_base_scroll_to_item (self, pos); + gtk_list_item_tracker_set_position (priv->item_manager, + priv->focus, + pos, + 0, + 0); + } } static void @@ -1135,6 +1139,7 @@ gtk_list_base_class_init (GtkListBaseClass *klass) widget_class->focus = gtk_list_base_focus; widget_class->grab_focus = gtk_list_base_grab_focus; + widget_class->set_focus_child = gtk_list_base_set_focus_child; gobject_class->dispose = gtk_list_base_dispose; gobject_class->get_property = gtk_list_base_get_property; @@ -1179,7 +1184,7 @@ gtk_list_base_class_init (GtkListBaseClass *klass) gtk_widget_class_install_action (widget_class, "list.scroll-to-item", "u", - gtk_list_base_scroll_to_item); + gtk_list_base_scroll_to_item_action); /** * GtkListBase|list.select-item: @@ -1567,25 +1572,16 @@ gtk_list_base_start_rubberband (GtkListBase *self, } static void -gtk_list_base_stop_rubberband (GtkListBase *self, - gboolean modify, - gboolean extend) +gtk_list_base_apply_rubberband_selection (GtkListBase *self, + gboolean modify, + gboolean extend) { GtkListBasePrivate *priv = gtk_list_base_get_instance_private (self); - GtkListItemManagerItem *item; GtkSelectionModel *model; if (!priv->rubberband) return; - for (item = gtk_list_item_manager_get_first (priv->item_manager); - item != NULL; - item = gtk_rb_tree_node_get_next (item)) - { - if (item->widget) - gtk_widget_unset_state_flags (item->widget, GTK_STATE_FLAG_ACTIVE); - } - model = gtk_list_item_manager_get_model (priv->item_manager); if (model != NULL) { @@ -1646,6 +1642,24 @@ gtk_list_base_stop_rubberband (GtkListBase *self, gtk_bitset_unref (mask); gtk_bitset_unref (rubberband_selection); } +} + +static void +gtk_list_base_stop_rubberband (GtkListBase *self) +{ + GtkListBasePrivate *priv = gtk_list_base_get_instance_private (self); + GtkListItemManagerItem *item; + + if (!priv->rubberband) + return; + + for (item = gtk_list_item_manager_get_first (priv->item_manager); + item != NULL; + item = gtk_rb_tree_node_get_next (item)) + { + if (item->widget) + gtk_widget_unset_state_flags (item->widget, GTK_STATE_FLAG_ACTIVE); + } gtk_list_item_tracker_free (priv->item_manager, priv->rubberband->start_tracker); g_clear_pointer (&priv->rubberband->widget, gtk_widget_unparent); @@ -1758,14 +1772,23 @@ gtk_list_base_drag_end (GtkGestureDrag *gesture, GtkListBase *self) { GtkListBasePrivate *priv = gtk_list_base_get_instance_private (self); + GdkEventSequence *sequence; gboolean modify, extend; if (!priv->rubberband) return; + sequence = gtk_gesture_get_last_updated_sequence (GTK_GESTURE (gesture)); + if (!gtk_gesture_handles_sequence (GTK_GESTURE (gesture), sequence)) + { + gtk_list_base_stop_rubberband (self); + return; + } + gtk_list_base_drag_update (gesture, offset_x, offset_y, self); get_selection_modifiers (GTK_GESTURE (gesture), &modify, &extend); - gtk_list_base_stop_rubberband (self, modify, extend); + gtk_list_base_apply_rubberband_selection (self, modify, extend); + gtk_list_base_stop_rubberband (self); } void diff --git a/gtk/gtklistbox.c b/gtk/gtklistbox.c index f5757cd1ba..08730eb4da 100644 --- a/gtk/gtklistbox.c +++ b/gtk/gtklistbox.c @@ -864,7 +864,7 @@ gtk_list_box_select_row (GtkListBox *box, /** * gtk_list_box_unselect_row: * @box: a `GtkListBox` - * @row: the row to unselected + * @row: the row to unselect * * Unselects a single row of @box, if the selection mode allows it. */ diff --git a/gtk/gtklistitemwidget.c b/gtk/gtklistitemwidget.c index a90bceda1b..9dc96a1982 100644 --- a/gtk/gtklistitemwidget.c +++ b/gtk/gtklistitemwidget.c @@ -22,7 +22,6 @@ #include "gtklistitemwidgetprivate.h" #include "gtkbinlayout.h" -#include "gtkeventcontrollerfocus.h" #include "gtkeventcontrollermotion.h" #include "gtkgestureclick.h" #include "gtklistitemfactoryprivate.h" @@ -489,19 +488,6 @@ gtk_list_item_widget_click_gesture_released (GtkGestureClick *gesture, } static void -gtk_list_item_widget_enter_cb (GtkEventControllerFocus *controller, - GtkListItemWidget *self) -{ - GtkWidget *widget = GTK_WIDGET (self); - GtkListItemWidgetPrivate *priv = gtk_list_item_widget_get_instance_private (self); - - gtk_widget_activate_action (widget, - "list.scroll-to-item", - "u", - priv->position); -} - -static void gtk_list_item_widget_hover_cb (GtkEventControllerMotion *controller, double x, double y, @@ -542,10 +528,6 @@ gtk_list_item_widget_init (GtkListItemWidget *self) G_CALLBACK (gtk_list_item_widget_click_gesture_released), self); gtk_widget_add_controller (GTK_WIDGET (self), GTK_EVENT_CONTROLLER (gesture)); - controller = gtk_event_controller_focus_new (); - g_signal_connect (controller, "enter", G_CALLBACK (gtk_list_item_widget_enter_cb), self); - gtk_widget_add_controller (GTK_WIDGET (self), controller); - controller = gtk_event_controller_motion_new (); g_signal_connect (controller, "enter", G_CALLBACK (gtk_list_item_widget_hover_cb), self); gtk_widget_add_controller (GTK_WIDGET (self), controller); diff --git a/gtk/gtkmenubutton.c b/gtk/gtkmenubutton.c index af726745b6..73a5fe0a65 100644 --- a/gtk/gtkmenubutton.c +++ b/gtk/gtkmenubutton.c @@ -1051,7 +1051,7 @@ gtk_menu_button_get_icon_name (GtkMenuButton *menu_button) /** * gtk_menu_button_set_always_show_arrow: (attributes org.gtk.Method.set_property=always-show-arrow) * @menu_button: a `GtkMenuButton` - * @always_show_arrow: hether to show a dropdown arrow even when using an icon + * @always_show_arrow: whether to show a dropdown arrow even when using an icon * * Sets whether to show a dropdown arrow even when using an icon or a custom * child. diff --git a/gtk/gtknotebook.c b/gtk/gtknotebook.c index 315bfe196f..341dfd7f38 100644 --- a/gtk/gtknotebook.c +++ b/gtk/gtknotebook.c @@ -6595,7 +6595,7 @@ gtk_notebook_set_tab_label_text (GtkNotebook *notebook, * @child. * * Returns: (nullable): the text of the tab label, or %NULL if - * the tab label idget is not a `GtkLabel`. The string is owned + * the tab label widget is not a `GtkLabel`. The string is owned * by the widget and must not be freed. */ const char * @@ -6983,7 +6983,7 @@ gtk_notebook_get_tab_detachable (GtkNotebook *notebook, * Sets whether the tab can be detached from @notebook to another * notebook or widget. * - * Note that two notebooks must share a common group identificator + * Note that two notebooks must share a common group identifier * (see [method@Gtk.Notebook.set_group_name]) to allow automatic tabs * interchange between them. * diff --git a/gtk/gtkpathbar.c b/gtk/gtkpathbar.c index 0cf28d5326..c2d2cdc764 100644 --- a/gtk/gtkpathbar.c +++ b/gtk/gtkpathbar.c @@ -22,6 +22,7 @@ #include <string.h> +#include "gtkbinlayout.h" #include "gtkbox.h" #include "gtkdragsource.h" #include "gtkicontheme.h" @@ -30,6 +31,7 @@ #include "gtklabel.h" #include "gtkmain.h" #include "gtkmarshalers.h" +#include "gtkscrolledwindow.h" #include "gtksettings.h" #include "gtktogglebutton.h" #include "gtkwidgetprivate.h" @@ -41,6 +43,9 @@ struct _GtkPathBar { GtkWidget parent_instance; + GtkWidget *buttons_box; + GtkWidget *scrolled_window; + GFile *root_file; GFile *home_file; GFile *desktop_file; @@ -76,11 +81,7 @@ struct _GtkPathBar GIcon *desktop_icon; GList *button_list; - GList *first_scrolled_button; GList *fake_root; - GtkWidget *up_slider_button; - GtkWidget *down_slider_button; - gint16 slider_width; }; typedef struct _GtkPathBarClass GtkPathBarClass; @@ -104,7 +105,8 @@ typedef enum { NORMAL_BUTTON, ROOT_BUTTON, HOME_BUTTON, - DESKTOP_BUTTON + DESKTOP_BUTTON, + RECENT_BUTTON, } ButtonType; #define BUTTON_DATA(x) ((ButtonData *)(x)) @@ -129,34 +131,16 @@ struct _ButtonData * All buttons in front of a fake root are automatically hidden when in a * directory below a fake root and replaced with the "<" arrow button. */ -#define BUTTON_IS_FAKE_ROOT(button) ((button)->type == HOME_BUTTON) +#define BUTTON_IS_FAKE_ROOT(button) ((button)->type == HOME_BUTTON || (button)->type == RECENT_BUTTON) G_DEFINE_TYPE (GtkPathBar, gtk_path_bar, GTK_TYPE_WIDGET) static void gtk_path_bar_finalize (GObject *object); static void gtk_path_bar_dispose (GObject *object); -static void gtk_path_bar_measure (GtkWidget *widget, - GtkOrientation orientation, - int for_size, - int *minimum, - int *natural, - int *minimum_baseline, - int *natural_baseline); -static void gtk_path_bar_size_allocate (GtkWidget *widget, - int width, - int height, - int baseline); -static void gtk_path_bar_scroll_up (GtkPathBar *path_bar); -static void gtk_path_bar_scroll_down (GtkPathBar *path_bar); static void gtk_path_bar_update_button_appearance (GtkPathBar *path_bar, ButtonData *button_data, gboolean current_dir); -static gboolean gtk_path_bar_scroll_controller_scroll (GtkEventControllerScroll *scroll, - double dx, - double dy, - GtkPathBar *path_bar); - static void add_cancellable (GtkPathBar *path_bar, GCancellable *cancellable) @@ -206,37 +190,23 @@ cancel_all_cancellables (GtkPathBar *path_bar) static void gtk_path_bar_init (GtkPathBar *path_bar) { - GtkEventController *controller; const char *home; - path_bar->up_slider_button = gtk_button_new_from_icon_name ("pan-start-symbolic"); - gtk_widget_add_css_class (path_bar->up_slider_button, "slider-button"); - gtk_widget_set_parent (path_bar->up_slider_button, GTK_WIDGET (path_bar)); + path_bar->scrolled_window = gtk_scrolled_window_new (); + gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (path_bar->scrolled_window), + GTK_POLICY_EXTERNAL, GTK_POLICY_NEVER); + gtk_widget_set_hexpand (path_bar->scrolled_window, TRUE); + gtk_widget_set_parent (path_bar->scrolled_window, GTK_WIDGET (path_bar)); - path_bar->down_slider_button = gtk_button_new_from_icon_name ("pan-end-symbolic"); - gtk_widget_add_css_class (path_bar->down_slider_button, "slider-button"); - gtk_widget_set_parent (path_bar->down_slider_button, GTK_WIDGET (path_bar)); - - /* GtkBuilder won't let us connect 'swapped' without specifying the signal's - * user data in the .ui file - */ - g_signal_connect_swapped (path_bar->up_slider_button, "clicked", - G_CALLBACK (gtk_path_bar_scroll_up), path_bar); - g_signal_connect_swapped (path_bar->down_slider_button, "clicked", - G_CALLBACK (gtk_path_bar_scroll_down), path_bar); + path_bar->buttons_box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); + gtk_widget_add_css_class (path_bar->buttons_box, "linked"); + gtk_scrolled_window_set_child (GTK_SCROLLED_WINDOW (path_bar->scrolled_window), + path_bar->buttons_box); - gtk_widget_add_css_class (GTK_WIDGET (path_bar), "linked"); path_bar->get_info_cancellable = NULL; path_bar->cancellables = NULL; - controller = gtk_event_controller_scroll_new (GTK_EVENT_CONTROLLER_SCROLL_VERTICAL | - GTK_EVENT_CONTROLLER_SCROLL_DISCRETE); - g_signal_connect (controller, "scroll", - G_CALLBACK (gtk_path_bar_scroll_controller_scroll), - path_bar); - gtk_widget_add_controller (GTK_WIDGET (path_bar), controller); - home = g_get_home_dir (); if (home != NULL) { @@ -272,9 +242,6 @@ gtk_path_bar_class_init (GtkPathBarClass *path_bar_class) gobject_class->finalize = gtk_path_bar_finalize; gobject_class->dispose = gtk_path_bar_dispose; - widget_class->measure = gtk_path_bar_measure; - widget_class->size_allocate = gtk_path_bar_size_allocate; - path_bar_signals [PATH_CLICKED] = g_signal_new (I_("path-clicked"), G_OBJECT_CLASS_TYPE (gobject_class), @@ -287,6 +254,7 @@ gtk_path_bar_class_init (GtkPathBarClass *path_bar_class) G_TYPE_FILE, G_TYPE_BOOLEAN); + gtk_widget_class_set_layout_manager_type (widget_class, GTK_TYPE_BIN_LAYOUT); gtk_widget_class_set_css_name (widget_class, "pathbar"); } @@ -313,10 +281,8 @@ static void gtk_path_bar_dispose (GObject *object) { GtkPathBar *path_bar = GTK_PATH_BAR (object); - GtkWidget *w; - while ((w = gtk_widget_get_first_child (GTK_WIDGET (path_bar))) != NULL) - gtk_widget_unparent (w); + g_clear_pointer (&path_bar->scrolled_window, gtk_widget_unparent); path_bar->get_info_cancellable = NULL; cancel_all_cancellables (path_bar); @@ -325,462 +291,31 @@ gtk_path_bar_dispose (GObject *object) } static void -gtk_path_bar_measure (GtkWidget *widget, - GtkOrientation orientation, - int for_size, - int *minimum, - int *natural, - int *minimum_baseline, - int *natural_baseline) -{ - GtkPathBar *path_bar = GTK_PATH_BAR (widget); - ButtonData *button_data; - GList *list; - int child_size; - int size = 0; - int child_min, child_nat; - - *minimum = 0; - *natural = 0; - - if (orientation == GTK_ORIENTATION_HORIZONTAL) - { - for (list = path_bar->button_list; list; list = list->next) - { - button_data = BUTTON_DATA (list->data); - gtk_widget_measure (button_data->button, GTK_ORIENTATION_HORIZONTAL, -1, - &child_min, &child_nat, NULL, NULL); - gtk_widget_measure (button_data->button, GTK_ORIENTATION_VERTICAL, -1, - &child_size, NULL, NULL, NULL); - size = MAX (size, child_size); - - if (button_data->type == NORMAL_BUTTON) - { - /* Use 2*Height as button width because of ellipsized label. */ - child_min = MAX (child_min, child_size * 2); - child_nat = MAX (child_min, child_size * 2); - } - - *minimum = MAX (*minimum, child_min); - *natural = *natural + child_nat; - } - - /* Add space for slider, if we have more than one path */ - /* Theoretically, the slider could be bigger than the other button. But we're - * not going to worry about that now. - */ - path_bar->slider_width = 0; - - gtk_widget_measure (path_bar->up_slider_button, GTK_ORIENTATION_HORIZONTAL, -1, - &child_min, &child_nat, NULL, NULL); - if (path_bar->button_list && path_bar->button_list->next != NULL) - { - *minimum += child_min; - *natural += child_nat; - } - path_bar->slider_width = MAX (path_bar->slider_width, child_min); - - gtk_widget_measure (path_bar->down_slider_button, GTK_ORIENTATION_HORIZONTAL, -1, - &child_min, &child_nat, NULL, NULL); - if (path_bar->button_list && path_bar->button_list->next != NULL) - { - *minimum += child_min; - *natural += child_nat; - } - path_bar->slider_width = MAX (path_bar->slider_width, child_min); - - } - else /* VERTICAL */ - { - for (list = path_bar->button_list; list; list = list->next) - { - button_data = BUTTON_DATA (list->data); - gtk_widget_measure (button_data->button, GTK_ORIENTATION_VERTICAL, -1, - &child_min, &child_nat, NULL, NULL); - - *minimum = MAX (*minimum, child_min); - *natural = MAX (*natural, child_nat); - } - - gtk_widget_measure (path_bar->up_slider_button, GTK_ORIENTATION_VERTICAL, -1, - &child_min, &child_nat, NULL, NULL); - *minimum = MAX (*minimum, child_min); - *natural = MAX (*natural, child_nat); - - gtk_widget_measure (path_bar->up_slider_button, GTK_ORIENTATION_VERTICAL, -1, - &child_min, &child_nat, NULL, NULL); - *minimum = MAX (*minimum, child_min); - *natural = MAX (*natural, child_nat); - } -} - -static void -gtk_path_bar_update_slider_buttons (GtkPathBar *path_bar) -{ - if (path_bar->button_list) - { - GtkWidget *button; - - button = BUTTON_DATA (path_bar->button_list->data)->button; - if (gtk_widget_get_child_visible (button)) - gtk_widget_set_sensitive (path_bar->down_slider_button, FALSE); - else - gtk_widget_set_sensitive (path_bar->down_slider_button, TRUE); - - button = BUTTON_DATA (g_list_last (path_bar->button_list)->data)->button; - if (gtk_widget_get_child_visible (button)) - gtk_widget_set_sensitive (path_bar->up_slider_button, FALSE); - else - gtk_widget_set_sensitive (path_bar->up_slider_button, TRUE); - } -} - -/* This is a tad complicated - */ -static void -gtk_path_bar_size_allocate (GtkWidget *widget, - int widget_width, - int widget_height, - int baseline) +gtk_path_bar_clear_buttons (GtkPathBar *path_bar) { - GtkPathBar *path_bar = GTK_PATH_BAR (widget); - GtkWidget *child; - GtkTextDirection direction; - GtkAllocation child_allocation; - GList *list, *first_button; - int width; - int allocation_width; - gboolean need_sliders = TRUE; - int up_slider_offset = 0; - int down_slider_offset = 0; - GtkRequisition child_requisition; - - /* No path is set; we don't have to allocate anything. */ - if (path_bar->button_list == NULL) - return; - - direction = gtk_widget_get_direction (widget); - allocation_width = widget_width; - - /* First, we check to see if we need the scrollbars. */ - if (path_bar->fake_root) - width = path_bar->slider_width; - else - width = 0; - - for (list = path_bar->button_list; list; list = list->next) - { - child = BUTTON_DATA (list->data)->button; - - gtk_widget_get_preferred_size (child, &child_requisition, NULL); - - width += child_requisition.width; - if (list == path_bar->fake_root) - break; - } - - if (width <= allocation_width) - { - if (path_bar->fake_root) - first_button = path_bar->fake_root; - else - first_button = g_list_last (path_bar->button_list); - } - else - { - gboolean reached_end = FALSE; - int slider_space = 2 * path_bar->slider_width; - - if (path_bar->first_scrolled_button) - first_button = path_bar->first_scrolled_button; - else - first_button = path_bar->button_list; - need_sliders = TRUE; - - /* To see how much space we have, and how many buttons we can display. - * We start at the first button, count forward until hit the new - * button, then count backwards. - */ - /* Count down the path chain towards the end. */ - gtk_widget_get_preferred_size (BUTTON_DATA (first_button->data)->button, - &child_requisition, NULL); - - width = child_requisition.width; - list = first_button->prev; - while (list && !reached_end) - { - child = BUTTON_DATA (list->data)->button; - - gtk_widget_get_preferred_size (child, &child_requisition, NULL); - - if (width + child_requisition.width + slider_space > allocation_width) - reached_end = TRUE; - else if (list == path_bar->fake_root) - break; - else - width += child_requisition.width; - - list = list->prev; - } - - /* Finally, we walk up, seeing how many of the previous buttons we can - * add */ - while (first_button->next && !reached_end) - { - child = BUTTON_DATA (first_button->next->data)->button; - - gtk_widget_get_preferred_size (child, &child_requisition, NULL); - - if (width + child_requisition.width + slider_space > allocation_width) - { - reached_end = TRUE; - } - else - { - width += child_requisition.width; - if (first_button == path_bar->fake_root) - break; - first_button = first_button->next; - } - } - } - - /* Now, we allocate space to the buttons */ - child_allocation.y = 0; - child_allocation.height = widget_height; - - if (direction == GTK_TEXT_DIR_RTL) - { - child_allocation.x = widget_width; - if (need_sliders || path_bar->fake_root) - { - child_allocation.x -= path_bar->slider_width; - up_slider_offset = widget_width - path_bar->slider_width; - } - } - else - { - child_allocation.x = 0; - if (need_sliders || path_bar->fake_root) - { - up_slider_offset = 0; - child_allocation.x += path_bar->slider_width; - } - } - - for (list = first_button; list; list = list->prev) - { - GtkAllocation widget_allocation; - ButtonData *button_data; - - button_data = BUTTON_DATA (list->data); - child = button_data->button; - - gtk_widget_get_preferred_size (child, &child_requisition, NULL); - - child_allocation.width = MIN (child_requisition.width, - allocation_width - 2 * path_bar->slider_width); - - if (direction == GTK_TEXT_DIR_RTL) - child_allocation.x -= child_allocation.width; - - /* Check to see if we've don't have any more space to allocate buttons */ - if (need_sliders && direction == GTK_TEXT_DIR_RTL) - { - gtk_widget_get_allocation (widget, &widget_allocation); - if (child_allocation.x - path_bar->slider_width < widget_allocation.x) - break; - } - else if (need_sliders && direction == GTK_TEXT_DIR_LTR) - { - gtk_widget_get_allocation (widget, &widget_allocation); - if (child_allocation.x + child_allocation.width + path_bar->slider_width > - widget_allocation.x + allocation_width) - break; - } - - if (child_allocation.width < child_requisition.width) - { - if (!gtk_widget_get_has_tooltip (child)) - gtk_widget_set_tooltip_text (child, button_data->dir_name); - } - else if (gtk_widget_get_has_tooltip (child)) - gtk_widget_set_tooltip_text (child, NULL); - - gtk_widget_set_child_visible (child, TRUE); - gtk_widget_size_allocate (child, &child_allocation, baseline); - - if (direction == GTK_TEXT_DIR_RTL) - { - down_slider_offset = child_allocation.x - path_bar->slider_width; - } - else - { - down_slider_offset += child_allocation.width; - child_allocation.x += child_allocation.width; - } - } - /* Now we go hide all the widgets that don't fit */ - while (list) - { - child = BUTTON_DATA (list->data)->button; - gtk_widget_set_child_visible (child, FALSE); - list = list->prev; - } - for (list = first_button->next; list; list = list->next) - { - child = BUTTON_DATA (list->data)->button; - gtk_widget_set_child_visible (child, FALSE); - } - - if (need_sliders || path_bar->fake_root) - { - child_allocation.width = path_bar->slider_width; - child_allocation.x = up_slider_offset; - gtk_widget_size_allocate (path_bar->up_slider_button, - &child_allocation, - -1); - - gtk_widget_set_child_visible (path_bar->up_slider_button, TRUE); - gtk_widget_set_visible (path_bar->up_slider_button, TRUE); - - if (direction == GTK_TEXT_DIR_LTR) - down_slider_offset += path_bar->slider_width; - } - else - { - gtk_widget_set_child_visible (path_bar->up_slider_button, FALSE); - } - - if (need_sliders) - { - child_allocation.width = path_bar->slider_width; - child_allocation.x = down_slider_offset; - - gtk_widget_size_allocate (path_bar->down_slider_button, - &child_allocation, - -1); - - gtk_widget_set_child_visible (path_bar->down_slider_button, TRUE); - gtk_widget_set_visible (path_bar->down_slider_button, TRUE); - gtk_path_bar_update_slider_buttons (path_bar); - } - else - { - gtk_widget_set_child_visible (path_bar->down_slider_button, FALSE); - } -} + GtkWidget *w; -static gboolean -gtk_path_bar_scroll_controller_scroll (GtkEventControllerScroll *scroll, - double dx, - double dy, - GtkPathBar *path_bar) -{ - if (dy > 0) - gtk_path_bar_scroll_down (path_bar); - else if (dy < 0) - gtk_path_bar_scroll_up (path_bar); + while ((w = gtk_widget_get_first_child (path_bar->buttons_box)) != NULL) + gtk_box_remove (GTK_BOX (path_bar->buttons_box), w); - return GDK_EVENT_STOP; + path_bar->fake_root = NULL; } static void -gtk_path_bar_scroll_down (GtkPathBar *path_bar) +update_visibility_up_to_next_root (GtkPathBar *path_bar, + GList *start_from_button) { - GtkAllocation allocation, button_allocation; - GList *list; - GList *down_button = NULL; - int space_available; - - if (gtk_widget_get_child_visible (BUTTON_DATA (path_bar->button_list->data)->button)) - { - /* Return if the last button is already visible */ - return; - } - - gtk_widget_queue_resize (GTK_WIDGET (path_bar)); - - /* We find the button at the 'down' end that we have to make - * visible */ - for (list = path_bar->button_list; list; list = list->next) - { - if (list->next && gtk_widget_get_child_visible (BUTTON_DATA (list->next->data)->button)) - { - down_button = list; - break; - } - } - g_assert (down_button); - - gtk_widget_get_allocation (GTK_WIDGET (path_bar), &allocation); - gtk_widget_get_allocation (BUTTON_DATA (down_button->data)->button, &button_allocation); - - space_available = (allocation.width - - 2 * path_bar->slider_width - - button_allocation.width); - path_bar->first_scrolled_button = down_button; + gboolean fake_root_found = FALSE; + GList *l; - /* We have space_available free space that's not being used. - * So we walk down from the end, adding buttons until we use all free space. - */ - while (space_available > 0) - { - path_bar->first_scrolled_button = down_button; - down_button = down_button->next; - if (!down_button) - break; - space_available -= button_allocation.width; - } -} - -static void -gtk_path_bar_scroll_up (GtkPathBar *path_bar) -{ - GList *list; - - list = g_list_last (path_bar->button_list); - - if (gtk_widget_get_child_visible (BUTTON_DATA (list->data)->button)) - { - /* Return if the first button is already visible */ - return; - } - - gtk_widget_queue_resize (GTK_WIDGET (path_bar)); - - for ( ; list; list = list->prev) - { - if (list->prev && gtk_widget_get_child_visible (BUTTON_DATA (list->prev->data)->button)) - { - if (list->prev == path_bar->fake_root) - path_bar->fake_root = NULL; - path_bar->first_scrolled_button = list; - return; - } - } -} - -static void -gtk_path_bar_clear_buttons (GtkPathBar *path_bar) -{ - GtkWidget *w; - - w = gtk_widget_get_first_child (GTK_WIDGET (path_bar)); - while (w) + for (l = start_from_button; l; l = l->next) { - GtkWidget *next = gtk_widget_get_next_sibling (w); + GtkWidget *button = BUTTON_DATA (l->data)->button; - if (w != path_bar->up_slider_button && w != path_bar->down_slider_button) - { - gtk_widget_unparent (w); - } + gtk_widget_set_visible (button, !fake_root_found); - w = next; + fake_root_found |= BUTTON_IS_FAKE_ROOT (BUTTON_DATA (l->data)); } - - path_bar->first_scrolled_button = NULL; - path_bar->fake_root = NULL; } static void @@ -797,7 +332,7 @@ button_clicked_cb (GtkWidget *button, if (button_data->ignore_changes) return; - path_bar = GTK_PATH_BAR (gtk_widget_get_parent (button)); + path_bar = GTK_PATH_BAR (gtk_widget_get_ancestor (button, GTK_TYPE_PATH_BAR)); button_list = g_list_find (path_bar->button_list, button_data); g_assert (button_list != NULL); @@ -808,6 +343,8 @@ button_clicked_cb (GtkWidget *button, g_signal_handlers_unblock_by_func (button, G_CALLBACK (button_clicked_cb), data); + update_visibility_up_to_next_root (path_bar, button_list); + if (button_list->prev) { ButtonData *child_data; @@ -865,6 +402,7 @@ set_button_image_get_info_cb (GObject *source, g_set_object (&data->path_bar->desktop_icon, icon); break; + case RECENT_BUTTON: case NORMAL_BUTTON: case ROOT_BUTTON: default: @@ -963,6 +501,11 @@ set_button_image (GtkPathBar *path_bar, add_cancellable (path_bar, button_data->cancellable); break; + case RECENT_BUTTON: + gtk_image_set_from_icon_name (GTK_IMAGE (button_data->image), + "document-open-recent-symbolic"); + break; + case NORMAL_BUTTON: default: break; @@ -1015,6 +558,19 @@ gtk_path_bar_update_button_appearance (GtkPathBar *path_bar, } } +static gboolean +file_is_recent_uri (GFile *file) +{ + GFile *recent; + gboolean same; + + recent = g_file_new_for_uri ("recent:///"); + same = g_file_equal (file, recent); + g_object_unref (recent); + + return same; +} + static ButtonType find_button_type (GtkPathBar *path_bar, GFile *file) @@ -1028,6 +584,8 @@ find_button_type (GtkPathBar *path_bar, if (path_bar->desktop_file != NULL && g_file_equal (file, path_bar->desktop_file)) return DESKTOP_BUTTON; + if (file_is_recent_uri (file)) + return RECENT_BUTTON; return NORMAL_BUTTON; } @@ -1060,6 +618,7 @@ make_directory_button (GtkPathBar *path_bar, break; case HOME_BUTTON: case DESKTOP_BUTTON: + case RECENT_BUTTON: button_data->image = gtk_image_new (); button_data->label = gtk_label_new (NULL); child = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); @@ -1145,7 +704,6 @@ gtk_path_bar_check_parent_path (GtkPathBar *path_bar, if (!gtk_widget_get_child_visible (BUTTON_DATA (current_path->data)->button)) { - path_bar->first_scrolled_button = current_path; gtk_widget_queue_resize (GTK_WIDGET (path_bar)); } @@ -1181,9 +739,11 @@ gtk_path_bar_set_file_finish (struct SetFileInfo *info, for (l = info->path_bar->button_list; l; l = l->next) { GtkWidget *button = BUTTON_DATA (l->data)->button; - - gtk_widget_insert_after (button, GTK_WIDGET (info->path_bar), info->path_bar->up_slider_button); + gtk_box_prepend (GTK_BOX (info->path_bar->buttons_box), button); } + + update_visibility_up_to_next_root (info->path_bar, + info->path_bar->button_list); } else { @@ -1193,7 +753,7 @@ gtk_path_bar_set_file_finish (struct SetFileInfo *info, { ButtonData *button_data = BUTTON_DATA (l->data); - gtk_widget_unparent (button_data->button); + gtk_box_remove (GTK_BOX (info->path_bar->buttons_box), button_data->button); } g_list_free (info->new_buttons); diff --git a/gtk/gtkpopover.c b/gtk/gtkpopover.c index aab85b22af..7ff8cc95a2 100644 --- a/gtk/gtkpopover.c +++ b/gtk/gtkpopover.c @@ -598,7 +598,13 @@ present_popup (GtkPopover *popover) * gtk_popover_present: * @popover: a `GtkPopover` * - * Presents the popover to the user. + * Allocate a size for the `GtkPopover`. + * + * This function needs to be called in size-allocate by widgets + * who have a `GtkPopover` as child. When using a layout manager, + * this is happening automatically. + * + * To make a popover appear on screen, use [method@Gtk.Popover.popup]. */ void gtk_popover_present (GtkPopover *popover) diff --git a/gtk/gtkprintoperation-portal.c b/gtk/gtkprintoperation-portal.c index d2defb56b6..61e4071df4 100644 --- a/gtk/gtkprintoperation-portal.c +++ b/gtk/gtkprintoperation-portal.c @@ -34,7 +34,7 @@ #include "gtkprintsettings.h" #include "gtkpagesetup.h" #include "gtkprintbackendprivate.h" -#include "gtkshow.h" +#include "gtkfilelauncher.h" #include <glib/gi18n-lib.h> #include "gtkwindowprivate.h" #include "gtkprivate.h" @@ -677,9 +677,12 @@ gtk_print_operation_portal_launch_preview (GtkPrintOperation *op, GtkWindow *parent, const char *filename) { - char *uri; - - uri = g_filename_to_uri (filename, NULL, NULL); - gtk_show_uri (parent, uri, GDK_CURRENT_TIME); - g_free (uri); + GFile *file; + GtkFileLauncher *launcher; + + file = g_file_new_for_path (filename); + launcher = gtk_file_launcher_new (file); + gtk_file_launcher_launch (launcher, parent, NULL, NULL, NULL); + g_object_unref (launcher); + g_object_unref (file); } diff --git a/gtk/gtkprintoperation-unix.c b/gtk/gtkprintoperation-unix.c index 4fbcd77c1c..1108927bb2 100644 --- a/gtk/gtkprintoperation-unix.c +++ b/gtk/gtkprintoperation-unix.c @@ -41,6 +41,7 @@ #include "gtkprinter.h" #include "gtkprintjob.h" #include "gtklabel.h" +#include "gtkfilelauncher.h" #include <glib/gi18n-lib.h> @@ -304,15 +305,17 @@ gtk_print_operation_unix_launch_preview (GtkPrintOperation *op, if (error != NULL) { - char * uri; + GFile *file; + GtkFileLauncher *launcher; g_warning ("Error launching preview: %s", error->message); + g_clear_error (&error); - g_error_free (error); - error = NULL; - uri = g_filename_to_uri (filename, NULL, NULL); - gtk_show_uri (parent, uri, GDK_CURRENT_TIME); - g_free (uri); + file = g_file_new_for_path (filename); + launcher = gtk_file_launcher_new (file); + gtk_file_launcher_launch (launcher, parent, NULL, NULL, NULL); + g_object_unref (launcher); + g_object_unref (file); } out: diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c index 2c5974954d..667b0d107f 100644 --- a/gtk/gtkwidget.c +++ b/gtk/gtkwidget.c @@ -2660,6 +2660,8 @@ gtk_widget_pop_paintables (GtkWidget *widget) * When a toplevel container is shown, it is immediately realized and * mapped; other shown widgets are realized and mapped when their * toplevel container is realized and mapped. + * + * Deprecated: 4.10: Use [method@Gtk.Widget.set_visible] instead */ void gtk_widget_show (GtkWidget *widget) @@ -2726,6 +2728,8 @@ gtk_widget_real_show (GtkWidget *widget) * Reverses the effects of gtk_widget_show(). * * This is causing the widget to be hidden (invisible to the user). + * + * Deprecated: 4.10: Use [method@Gtk.Widget.set_visible] instead */ void gtk_widget_hide (GtkWidget *widget) diff --git a/gtk/gtkwidget.h b/gtk/gtkwidget.h index ffcab268c6..a7bade8db0 100644 --- a/gtk/gtkwidget.h +++ b/gtk/gtkwidget.h @@ -269,9 +269,9 @@ GDK_AVAILABLE_IN_ALL GType gtk_widget_get_type (void) G_GNUC_CONST; GDK_AVAILABLE_IN_ALL void gtk_widget_unparent (GtkWidget *widget); -GDK_AVAILABLE_IN_ALL +GDK_DEPRECATED_IN_4_10_FOR(gtk_widget_set_visible or gtk_window_present) void gtk_widget_show (GtkWidget *widget); -GDK_AVAILABLE_IN_ALL +GDK_DEPRECATED_IN_4_10_FOR(gtk_widget_set_visible) void gtk_widget_hide (GtkWidget *widget); GDK_AVAILABLE_IN_ALL void gtk_widget_map (GtkWidget *widget); diff --git a/gtk/gtkwindow.c b/gtk/gtkwindow.c index 2515532bc3..dfe84c9b6e 100644 --- a/gtk/gtkwindow.c +++ b/gtk/gtkwindow.c @@ -1094,11 +1094,14 @@ gtk_window_class_init (GtkWindowClass *klass) * * emitted when the set of accelerators or mnemonics that * are associated with @window changes. + * + * Deprecated: 4.10: Use [class@Gtk.Shortcut] and [class@Gtk.EventController] + * to implement keyboard shortcuts */ window_signals[KEYS_CHANGED] = g_signal_new (I_("keys-changed"), G_TYPE_FROM_CLASS (gobject_class), - G_SIGNAL_RUN_FIRST, + G_SIGNAL_RUN_FIRST | G_SIGNAL_DEPRECATED, G_STRUCT_OFFSET (GtkWindowClass, keys_changed), NULL, NULL, NULL, diff --git a/gtk/icons/hicolor.index.theme b/gtk/icons/hicolor.index.theme new file mode 100644 index 0000000000..ec5a2f260d --- /dev/null +++ b/gtk/icons/hicolor.index.theme @@ -0,0 +1,3805 @@ +[Icon Theme] +Name=Hicolor +Comment=Fallback icon theme +Hidden=true +Directories=16x16/actions,16x16@2/actions,16x16/animations,16x16@2/animations,16x16/apps,16x16@2/apps,16x16/categories,16x16@2/categories,16x16/devices,16x16@2/devices,16x16/emblems,16x16@2/emblems,16x16/emotes,16x16@2/emotes,16x16/filesystems,16x16@2/filesystems,16x16/intl,16x16@2/intl,16x16/mimetypes,16x16@2/mimetypes,16x16/places,16x16@2/places,16x16/status,16x16@2/status,16x16/stock/chart,16x16@2/stock/chart,16x16/stock/code,16x16@2/stock/code,16x16/stock/data,16x16@2/stock/data,16x16/stock/form,16x16@2/stock/form,16x16/stock/image,16x16@2/stock/image,16x16/stock/io,16x16@2/stock/io,16x16/stock/media,16x16@2/stock/media,16x16/stock/navigation,16x16@2/stock/navigation,16x16/stock/net,16x16@2/stock/net,16x16/stock/object,16x16@2/stock/object,16x16/stock/table,16x16@2/stock/table,16x16/stock/text,16x16@2/stock/text,22x22/actions,22x22@2/actions,22x22/animations,22x22@2/animations,22x22/apps,22x22@2/apps,22x22/categories,22x22@2/categories,22x22/devices,22x22@2/devices,22x22/emblems,22x22@2/emblems,22x22/emotes,22x22@2/emotes,22x22/filesystems,22x22@2/filesystems,22x22/intl,22x22@2/intl,22x22/mimetypes,22x22@2/mimetypes,22x22/places,22x22@2/places,22x22/status,22x22@2/status,22x22/stock/chart,22x22@2/stock/chart,22x22/stock/code,22x22@2/stock/code,22x22/stock/data,22x22@2/stock/data,22x22/stock/form,22x22@2/stock/form,22x22/stock/image,22x22@2/stock/image,22x22/stock/io,22x22@2/stock/io,22x22/stock/media,22x22@2/stock/media,22x22/stock/navigation,22x22@2/stock/navigation,22x22/stock/net,22x22@2/stock/net,22x22/stock/object,22x22@2/stock/object,22x22/stock/table,22x22@2/stock/table,22x22/stock/text,22x22@2/stock/text,24x24/actions,24x24@2/actions,24x24/animations,24x24@2/animations,24x24/apps,24x24@2/apps,24x24/categories,24x24@2/categories,24x24/devices,24x24@2/devices,24x24/emblems,24x24@2/emblems,24x24/emotes,24x24@2/emotes,24x24/filesystems,24x24@2/filesystems,24x24/intl,24x24@2/intl,24x24/mimetypes,24x24@2/mimetypes,24x24/places,24x24@2/places,24x24/status,24x24@2/status,24x24/stock/chart,24x24@2/stock/chart,24x24/stock/code,24x24@2/stock/code,24x24/stock/data,24x24@2/stock/data,24x24/stock/form,24x24@2/stock/form,24x24/stock/image,24x24@2/stock/image,24x24/stock/io,24x24@2/stock/io,24x24/stock/media,24x24@2/stock/media,24x24/stock/navigation,24x24@2/stock/navigation,24x24/stock/net,24x24@2/stock/net,24x24/stock/object,24x24@2/stock/object,24x24/stock/table,24x24@2/stock/table,24x24/stock/text,24x24@2/stock/text,32x32/actions,32x32@2/actions,32x32/animations,32x32@2/animations,32x32/apps,32x32@2/apps,32x32/categories,32x32@2/categories,32x32/devices,32x32@2/devices,32x32/emblems,32x32@2/emblems,32x32/emotes,32x32@2/emotes,32x32/filesystems,32x32@2/filesystems,32x32/intl,32x32@2/intl,32x32/mimetypes,32x32@2/mimetypes,32x32/places,32x32@2/places,32x32/status,32x32@2/status,32x32/stock/chart,32x32@2/stock/chart,32x32/stock/code,32x32@2/stock/code,32x32/stock/data,32x32@2/stock/data,32x32/stock/form,32x32@2/stock/form,32x32/stock/image,32x32@2/stock/image,32x32/stock/io,32x32@2/stock/io,32x32/stock/media,32x32@2/stock/media,32x32/stock/navigation,32x32@2/stock/navigation,32x32/stock/net,32x32@2/stock/net,32x32/stock/object,32x32@2/stock/object,32x32/stock/table,32x32@2/stock/table,32x32/stock/text,32x32@2/stock/text,36x36/actions,36x36@2/actions,36x36/animations,36x36@2/animations,36x36/apps,36x36@2/apps,36x36/categories,36x36@2/categories,36x36/devices,36x36@2/devices,36x36/emblems,36x36@2/emblems,36x36/emotes,36x36@2/emotes,36x36/filesystems,36x36@2/filesystems,36x36/intl,36x36@2/intl,36x36/mimetypes,36x36@2/mimetypes,36x36/places,36x36@2/places,36x36/status,36x36@2/status,36x36/stock/chart,36x36@2/stock/chart,36x36/stock/code,36x36@2/stock/code,36x36/stock/data,36x36@2/stock/data,36x36/stock/form,36x36@2/stock/form,36x36/stock/image,36x36@2/stock/image,36x36/stock/io,36x36@2/stock/io,36x36/stock/media,36x36@2/stock/media,36x36/stock/navigation,36x36@2/stock/navigation,36x36/stock/net,36x36@2/stock/net,36x36/stock/object,36x36@2/stock/object,36x36/stock/table,36x36@2/stock/table,36x36/stock/text,36x36@2/stock/text,48x48/actions,48x48@2/actions,48x48/animations,48x48@2/animations,48x48/apps,48x48@2/apps,48x48/categories,48x48@2/categories,48x48/devices,48x48@2/devices,48x48/emblems,48x48@2/emblems,48x48/emotes,48x48@2/emotes,48x48/filesystems,48x48@2/filesystems,48x48/intl,48x48@2/intl,48x48/mimetypes,48x48@2/mimetypes,48x48/places,48x48@2/places,48x48/status,48x48@2/status,48x48/stock/chart,48x48@2/stock/chart,48x48/stock/code,48x48@2/stock/code,48x48/stock/data,48x48@2/stock/data,48x48/stock/form,48x48@2/stock/form,48x48/stock/image,48x48@2/stock/image,48x48/stock/io,48x48@2/stock/io,48x48/stock/media,48x48@2/stock/media,48x48/stock/navigation,48x48@2/stock/navigation,48x48/stock/net,48x48@2/stock/net,48x48/stock/object,48x48@2/stock/object,48x48/stock/table,48x48@2/stock/table,48x48/stock/text,48x48@2/stock/text,64x64/actions,64x64@2/actions,64x64/animations,64x64@2/animations,64x64/apps,64x64@2/apps,64x64/categories,64x64@2/categories,64x64/devices,64x64@2/devices,64x64/emblems,64x64@2/emblems,64x64/emotes,64x64@2/emotes,64x64/filesystems,64x64@2/filesystems,64x64/intl,64x64@2/intl,64x64/mimetypes,64x64@2/mimetypes,64x64/places,64x64@2/places,64x64/status,64x64@2/status,64x64/stock/chart,64x64@2/stock/chart,64x64/stock/code,64x64@2/stock/code,64x64/stock/data,64x64@2/stock/data,64x64/stock/form,64x64@2/stock/form,64x64/stock/image,64x64@2/stock/image,64x64/stock/io,64x64@2/stock/io,64x64/stock/media,64x64@2/stock/media,64x64/stock/navigation,64x64@2/stock/navigation,64x64/stock/net,64x64@2/stock/net,64x64/stock/object,64x64@2/stock/object,64x64/stock/table,64x64@2/stock/table,64x64/stock/text,64x64@2/stock/text,72x72/actions,72x72@2/actions,72x72/animations,72x72@2/animations,72x72/apps,72x72@2/apps,72x72/categories,72x72@2/categories,72x72/devices,72x72@2/devices,72x72/emblems,72x72@2/emblems,72x72/emotes,72x72@2/emotes,72x72/filesystems,72x72@2/filesystems,72x72/intl,72x72@2/intl,72x72/mimetypes,72x72@2/mimetypes,72x72/places,72x72@2/places,72x72/status,72x72@2/status,72x72/stock/chart,72x72@2/stock/chart,72x72/stock/code,72x72@2/stock/code,72x72/stock/data,72x72@2/stock/data,72x72/stock/form,72x72@2/stock/form,72x72/stock/image,72x72@2/stock/image,72x72/stock/io,72x72@2/stock/io,72x72/stock/media,72x72@2/stock/media,72x72/stock/navigation,72x72@2/stock/navigation,72x72/stock/net,72x72@2/stock/net,72x72/stock/object,72x72@2/stock/object,72x72/stock/table,72x72@2/stock/table,72x72/stock/text,72x72@2/stock/text,96x96/actions,96x96@2/actions,96x96/animations,96x96@2/animations,96x96/apps,96x96@2/apps,96x96/categories,96x96@2/categories,96x96/devices,96x96@2/devices,96x96/emblems,96x96@2/emblems,96x96/emotes,96x96@2/emotes,96x96/filesystems,96x96@2/filesystems,96x96/intl,96x96@2/intl,96x96/mimetypes,96x96@2/mimetypes,96x96/places,96x96@2/places,96x96/status,96x96@2/status,96x96/stock/chart,96x96@2/stock/chart,96x96/stock/code,96x96@2/stock/code,96x96/stock/data,96x96@2/stock/data,96x96/stock/form,96x96@2/stock/form,96x96/stock/image,96x96@2/stock/image,96x96/stock/io,96x96@2/stock/io,96x96/stock/media,96x96@2/stock/media,96x96/stock/navigation,96x96@2/stock/navigation,96x96/stock/net,96x96@2/stock/net,96x96/stock/object,96x96@2/stock/object,96x96/stock/table,96x96@2/stock/table,96x96/stock/text,96x96@2/stock/text,128x128/actions,128x128@2/actions,128x128/animations,128x128@2/animations,128x128/apps,128x128@2/apps,128x128/categories,128x128@2/categories,128x128/devices,128x128@2/devices,128x128/emblems,128x128@2/emblems,128x128/emotes,128x128@2/emotes,128x128/filesystems,128x128@2/filesystems,128x128/intl,128x128@2/intl,128x128/mimetypes,128x128@2/mimetypes,128x128/places,128x128@2/places,128x128/status,128x128@2/status,128x128/stock/chart,128x128@2/stock/chart,128x128/stock/code,128x128@2/stock/code,128x128/stock/data,128x128@2/stock/data,128x128/stock/form,128x128@2/stock/form,128x128/stock/image,128x128@2/stock/image,128x128/stock/io,128x128@2/stock/io,128x128/stock/media,128x128@2/stock/media,128x128/stock/navigation,128x128@2/stock/navigation,128x128/stock/net,128x128@2/stock/net,128x128/stock/object,128x128@2/stock/object,128x128/stock/table,128x128@2/stock/table,128x128/stock/text,128x128@2/stock/text,192x192/actions,192x192@2/actions,192x192/animations,192x192@2/animations,192x192/apps,192x192@2/apps,192x192/categories,192x192@2/categories,192x192/devices,192x192@2/devices,192x192/emblems,192x192@2/emblems,192x192/emotes,192x192@2/emotes,192x192/filesystems,192x192@2/filesystems,192x192/intl,192x192@2/intl,192x192/mimetypes,192x192@2/mimetypes,192x192/places,192x192@2/places,192x192/status,192x192@2/status,192x192/stock/chart,192x192@2/stock/chart,192x192/stock/code,192x192@2/stock/code,192x192/stock/data,192x192@2/stock/data,192x192/stock/form,192x192@2/stock/form,192x192/stock/image,192x192@2/stock/image,192x192/stock/io,192x192@2/stock/io,192x192/stock/media,192x192@2/stock/media,192x192/stock/navigation,192x192@2/stock/navigation,192x192/stock/net,192x192@2/stock/net,192x192/stock/object,192x192@2/stock/object,192x192/stock/table,192x192@2/stock/table,192x192/stock/text,192x192@2/stock/text,256x256/actions,256x256@2/actions,256x256/animations,256x256@2/animations,256x256/apps,256x256@2/apps,256x256/categories,256x256@2/categories,256x256/devices,256x256@2/devices,256x256/emblems,256x256@2/emblems,256x256/emotes,256x256@2/emotes,256x256/filesystems,256x256@2/filesystems,256x256/intl,256x256@2/intl,256x256/mimetypes,256x256@2/mimetypes,256x256/places,256x256@2/places,256x256/status,256x256@2/status,256x256/stock/chart,256x256@2/stock/chart,256x256/stock/code,256x256@2/stock/code,256x256/stock/data,256x256@2/stock/data,256x256/stock/form,256x256@2/stock/form,256x256/stock/image,256x256@2/stock/image,256x256/stock/io,256x256@2/stock/io,256x256/stock/media,256x256@2/stock/media,256x256/stock/navigation,256x256@2/stock/navigation,256x256/stock/net,256x256@2/stock/net,256x256/stock/object,256x256@2/stock/object,256x256/stock/table,256x256@2/stock/table,256x256/stock/text,256x256@2/stock/text,512x512/actions,512x512@2/actions,512x512/animations,512x512@2/animations,512x512/apps,512x512@2/apps,512x512/categories,512x512@2/categories,512x512/devices,512x512@2/devices,512x512/emblems,512x512@2/emblems,512x512/emotes,512x512@2/emotes,512x512/filesystems,512x512@2/filesystems,512x512/intl,512x512@2/intl,512x512/mimetypes,512x512@2/mimetypes,512x512/places,512x512@2/places,512x512/status,512x512@2/status,512x512/stock/chart,512x512@2/stock/chart,512x512/stock/code,512x512@2/stock/code,512x512/stock/data,512x512@2/stock/data,512x512/stock/form,512x512@2/stock/form,512x512/stock/image,512x512@2/stock/image,512x512/stock/io,512x512@2/stock/io,512x512/stock/media,512x512@2/stock/media,512x512/stock/navigation,512x512@2/stock/navigation,512x512/stock/net,512x512@2/stock/net,512x512/stock/object,512x512@2/stock/object,512x512/stock/table,512x512@2/stock/table,512x512/stock/text,512x512@2/stock/text,scalable/actions,scalable/animations,scalable/apps,scalable/categories,scalable/devices,scalable/emblems,scalable/emotes,scalable/filesystems,scalable/intl,scalable/mimetypes,scalable/places,scalable/status,scalable/stock/chart,scalable/stock/code,scalable/stock/data,scalable/stock/form,scalable/stock/image,scalable/stock/io,scalable/stock/media,scalable/stock/navigation,scalable/stock/net,scalable/stock/object,scalable/stock/table,scalable/stock/text,symbolic/apps + + +[16x16/actions] +Size=16 +Context=Actions +Type=Threshold + +[16x16@2/actions] +Size=16 +Scale=2 +Context=Actions +Type=Threshold + +[16x16/animations] +Size=16 +Context=Animations +Type=Threshold + +[16x16@2/animations] +Size=16 +Scale=2 +Context=Animations +Type=Threshold + +[16x16/apps] +Size=16 +Context=Applications +Type=Threshold + +[16x16@2/apps] +Size=16 +Scale=2 +Context=Applications +Type=Threshold + +[16x16/categories] +Size=16 +Context=Categories +Type=Threshold + +[16x16@2/categories] +Size=16 +Scale=2 +Context=Categories +Type=Threshold + +[16x16/devices] +Size=16 +Context=Devices +Type=Threshold + +[16x16@2/devices] +Size=16 +Scale=2 +Context=Devices +Type=Threshold + +[16x16/emblems] +Size=16 +Context=Emblems +Type=Threshold + +[16x16@2/emblems] +Size=16 +Scale=2 +Context=Emblems +Type=Threshold + +[16x16/emotes] +Size=16 +Context=Emotes +Type=Threshold + +[16x16@2/emotes] +Size=16 +Scale=2 +Context=Emotes +Type=Threshold + +[16x16/filesystems] +Size=16 +Context=FileSystems +Type=Threshold + +[16x16@2/filesystems] +Size=16 +Scale=2 +Context=FileSystems +Type=Threshold + +[16x16/intl] +Size=16 +Context=International +Type=Threshold + +[16x16@2/intl] +Size=16 +Scale=2 +Context=International +Type=Threshold + +[16x16/mimetypes] +Size=16 +Context=MimeTypes +Type=Threshold + +[16x16@2/mimetypes] +Size=16 +Scale=2 +Context=MimeTypes +Type=Threshold + +[16x16/places] +Size=16 +Context=Places +Type=Threshold + +[16x16@2/places] +Size=16 +Scale=2 +Context=Places +Type=Threshold + +[16x16/status] +Size=16 +Context=Status +Type=Threshold + +[16x16@2/status] +Size=16 +Scale=2 +Context=Status +Type=Threshold + +[16x16/stock/chart] +Size=16 +Context=Stock +Type=Threshold + +[16x16@2/stock/chart] +Size=16 +Scale=2 +Context=Stock +Type=Threshold + +[16x16/stock/code] +Size=16 +Context=Stock +Type=Threshold + +[16x16@2/stock/code] +Size=16 +Scale=2 +Context=Stock +Type=Threshold + +[16x16/stock/data] +Size=16 +Context=Stock +Type=Threshold + +[16x16@2/stock/data] +Size=16 +Scale=2 +Context=Stock +Type=Threshold + +[16x16/stock/form] +Size=16 +Context=Stock +Type=Threshold + +[16x16@2/stock/form] +Size=16 +Scale=2 +Context=Stock +Type=Threshold + +[16x16/stock/image] +Size=16 +Context=Stock +Type=Threshold + +[16x16@2/stock/image] +Size=16 +Scale=2 +Context=Stock +Type=Threshold + +[16x16/stock/io] +Size=16 +Context=Stock +Type=Threshold + +[16x16@2/stock/io] +Size=16 +Scale=2 +Context=Stock +Type=Threshold + +[16x16/stock/media] +Size=16 +Context=Stock +Type=Threshold + +[16x16@2/stock/media] +Size=16 +Scale=2 +Context=Stock +Type=Threshold + +[16x16/stock/navigation] +Size=16 +Context=Stock +Type=Threshold + +[16x16@2/stock/navigation] +Size=16 +Scale=2 +Context=Stock +Type=Threshold + +[16x16/stock/net] +Size=16 +Context=Stock +Type=Threshold + +[16x16@2/stock/net] +Size=16 +Scale=2 +Context=Stock +Type=Threshold + +[16x16/stock/object] +Size=16 +Context=Stock +Type=Threshold + +[16x16@2/stock/object] +Size=16 +Scale=2 +Context=Stock +Type=Threshold + +[16x16/stock/table] +Size=16 +Context=Stock +Type=Threshold + +[16x16@2/stock/table] +Size=16 +Scale=2 +Context=Stock +Type=Threshold + +[16x16/stock/text] +Size=16 +Context=Stock +Type=Threshold + +[16x16@2/stock/text] +Size=16 +Scale=2 +Context=Stock +Type=Threshold + +[22x22/actions] +Size=22 +Context=Actions +Type=Threshold + +[22x22@2/actions] +Size=22 +Scale=2 +Context=Actions +Type=Threshold + +[22x22/animations] +Size=22 +Context=Animations +Type=Threshold + +[22x22@2/animations] +Size=22 +Scale=2 +Context=Animations +Type=Threshold + +[22x22/apps] +Size=22 +Context=Applications +Type=Threshold + +[22x22@2/apps] +Size=22 +Scale=2 +Context=Applications +Type=Threshold + +[22x22/categories] +Size=22 +Context=Categories +Type=Threshold + +[22x22@2/categories] +Size=22 +Scale=2 +Context=Categories +Type=Threshold + +[22x22/devices] +Size=22 +Context=Devices +Type=Threshold + +[22x22@2/devices] +Size=22 +Scale=2 +Context=Devices +Type=Threshold + +[22x22/emblems] +Size=22 +Context=Emblems +Type=Threshold + +[22x22@2/emblems] +Size=22 +Scale=2 +Context=Emblems +Type=Threshold + +[22x22/emotes] +Size=22 +Context=Emotes +Type=Threshold + +[22x22@2/emotes] +Size=22 +Scale=2 +Context=Emotes +Type=Threshold + +[22x22/filesystems] +Size=22 +Context=FileSystems +Type=Threshold + +[22x22@2/filesystems] +Size=22 +Scale=2 +Context=FileSystems +Type=Threshold + +[22x22/intl] +Size=22 +Context=International +Type=Threshold + +[22x22@2/intl] +Size=22 +Scale=2 +Context=International +Type=Threshold + +[22x22/mimetypes] +Size=22 +Context=MimeTypes +Type=Threshold + +[22x22@2/mimetypes] +Size=22 +Scale=2 +Context=MimeTypes +Type=Threshold + +[22x22/places] +Size=22 +Context=Places +Type=Threshold + +[22x22@2/places] +Size=22 +Scale=2 +Context=Places +Type=Threshold + +[22x22/status] +Size=22 +Context=Status +Type=Threshold + +[22x22@2/status] +Size=22 +Scale=2 +Context=Status +Type=Threshold + +[22x22/stock/chart] +Size=22 +Context=Stock +Type=Threshold + +[22x22@2/stock/chart] +Size=22 +Scale=2 +Context=Stock +Type=Threshold + +[22x22/stock/code] +Size=22 +Context=Stock +Type=Threshold + +[22x22@2/stock/code] +Size=22 +Scale=2 +Context=Stock +Type=Threshold + +[22x22/stock/data] +Size=22 +Context=Stock +Type=Threshold + +[22x22@2/stock/data] +Size=22 +Scale=2 +Context=Stock +Type=Threshold + +[22x22/stock/form] +Size=22 +Context=Stock +Type=Threshold + +[22x22@2/stock/form] +Size=22 +Scale=2 +Context=Stock +Type=Threshold + +[22x22/stock/image] +Size=22 +Context=Stock +Type=Threshold + +[22x22@2/stock/image] +Size=22 +Scale=2 +Context=Stock +Type=Threshold + +[22x22/stock/io] +Size=22 +Context=Stock +Type=Threshold + +[22x22@2/stock/io] +Size=22 +Scale=2 +Context=Stock +Type=Threshold + +[22x22/stock/media] +Size=22 +Context=Stock +Type=Threshold + +[22x22@2/stock/media] +Size=22 +Scale=2 +Context=Stock +Type=Threshold + +[22x22/stock/navigation] +Size=22 +Context=Stock +Type=Threshold + +[22x22@2/stock/navigation] +Size=22 +Scale=2 +Context=Stock +Type=Threshold + +[22x22/stock/net] +Size=22 +Context=Stock +Type=Threshold + +[22x22@2/stock/net] +Size=22 +Scale=2 +Context=Stock +Type=Threshold + +[22x22/stock/object] +Size=22 +Context=Stock +Type=Threshold + +[22x22@2/stock/object] +Size=22 +Scale=2 +Context=Stock +Type=Threshold + +[22x22/stock/table] +Size=22 +Context=Stock +Type=Threshold + +[22x22@2/stock/table] +Size=22 +Scale=2 +Context=Stock +Type=Threshold + +[22x22/stock/text] +Size=22 +Context=Stock +Type=Threshold + +[22x22@2/stock/text] +Size=22 +Scale=2 +Context=Stock +Type=Threshold + +[24x24/actions] +Size=24 +Context=Actions +Type=Threshold + +[24x24@2/actions] +Size=24 +Scale=2 +Context=Actions +Type=Threshold + +[24x24/animations] +Size=24 +Context=Animations +Type=Threshold + +[24x24@2/animations] +Size=24 +Scale=2 +Context=Animations +Type=Threshold + +[24x24/apps] +Size=24 +Context=Applications +Type=Threshold + +[24x24@2/apps] +Size=24 +Scale=2 +Context=Applications +Type=Threshold + +[24x24/categories] +Size=24 +Context=Categories +Type=Threshold + +[24x24@2/categories] +Size=24 +Scale=2 +Context=Categories +Type=Threshold + +[24x24/devices] +Size=24 +Context=Devices +Type=Threshold + +[24x24@2/devices] +Size=24 +Scale=2 +Context=Devices +Type=Threshold + +[24x24/emblems] +Size=24 +Context=Emblems +Type=Threshold + +[24x24@2/emblems] +Size=24 +Scale=2 +Context=Emblems +Type=Threshold + +[24x24/emotes] +Size=24 +Context=Emotes +Type=Threshold + +[24x24@2/emotes] +Size=24 +Scale=2 +Context=Emotes +Type=Threshold + +[24x24/filesystems] +Size=24 +Context=FileSystems +Type=Threshold + +[24x24@2/filesystems] +Size=24 +Scale=2 +Context=FileSystems +Type=Threshold + +[24x24/intl] +Size=24 +Context=International +Type=Threshold + +[24x24@2/intl] +Size=24 +Scale=2 +Context=International +Type=Threshold + +[24x24/mimetypes] +Size=24 +Context=MimeTypes +Type=Threshold + +[24x24@2/mimetypes] +Size=24 +Scale=2 +Context=MimeTypes +Type=Threshold + +[24x24/places] +Size=24 +Context=Places +Type=Threshold + +[24x24@2/places] +Size=24 +Scale=2 +Context=Places +Type=Threshold + +[24x24/status] +Size=24 +Context=Status +Type=Threshold + +[24x24@2/status] +Size=24 +Scale=2 +Context=Status +Type=Threshold + +[24x24/stock/chart] +Size=24 +Context=Stock +Type=Threshold + +[24x24@2/stock/chart] +Size=24 +Scale=2 +Context=Stock +Type=Threshold + +[24x24/stock/code] +Size=24 +Context=Stock +Type=Threshold + +[24x24@2/stock/code] +Size=24 +Scale=2 +Context=Stock +Type=Threshold + +[24x24/stock/data] +Size=24 +Context=Stock +Type=Threshold + +[24x24@2/stock/data] +Size=24 +Scale=2 +Context=Stock +Type=Threshold + +[24x24/stock/form] +Size=24 +Context=Stock +Type=Threshold + +[24x24@2/stock/form] +Size=24 +Scale=2 +Context=Stock +Type=Threshold + +[24x24/stock/image] +Size=24 +Context=Stock +Type=Threshold + +[24x24@2/stock/image] +Size=24 +Scale=2 +Context=Stock +Type=Threshold + +[24x24/stock/io] +Size=24 +Context=Stock +Type=Threshold + +[24x24@2/stock/io] +Size=24 +Scale=2 +Context=Stock +Type=Threshold + +[24x24/stock/media] +Size=24 +Context=Stock +Type=Threshold + +[24x24@2/stock/media] +Size=24 +Scale=2 +Context=Stock +Type=Threshold + +[24x24/stock/navigation] +Size=24 +Context=Stock +Type=Threshold + +[24x24@2/stock/navigation] +Size=24 +Scale=2 +Context=Stock +Type=Threshold + +[24x24/stock/net] +Size=24 +Context=Stock +Type=Threshold + +[24x24@2/stock/net] +Size=24 +Scale=2 +Context=Stock +Type=Threshold + +[24x24/stock/object] +Size=24 +Context=Stock +Type=Threshold + +[24x24@2/stock/object] +Size=24 +Scale=2 +Context=Stock +Type=Threshold + +[24x24/stock/table] +Size=24 +Context=Stock +Type=Threshold + +[24x24@2/stock/table] +Size=24 +Scale=2 +Context=Stock +Type=Threshold + +[24x24/stock/text] +Size=24 +Context=Stock +Type=Threshold + +[24x24@2/stock/text] +Size=24 +Scale=2 +Context=Stock +Type=Threshold + +[32x32/actions] +Size=32 +Context=Actions +Type=Threshold + +[32x32@2/actions] +Size=32 +Scale=2 +Context=Actions +Type=Threshold + +[32x32/animations] +Size=32 +Context=Animations +Type=Threshold + +[32x32@2/animations] +Size=32 +Scale=2 +Context=Animations +Type=Threshold + +[32x32/apps] +Size=32 +Context=Applications +Type=Threshold + +[32x32@2/apps] +Size=32 +Scale=2 +Context=Applications +Type=Threshold + +[32x32/categories] +Size=32 +Context=Categories +Type=Threshold + +[32x32@2/categories] +Size=32 +Scale=2 +Context=Categories +Type=Threshold + +[32x32/devices] +Size=32 +Context=Devices +Type=Threshold + +[32x32@2/devices] +Size=32 +Scale=2 +Context=Devices +Type=Threshold + +[32x32/emblems] +Size=32 +Context=Emblems +Type=Threshold + +[32x32@2/emblems] +Size=32 +Scale=2 +Context=Emblems +Type=Threshold + +[32x32/emotes] +Size=32 +Context=Emotes +Type=Threshold + +[32x32@2/emotes] +Size=32 +Scale=2 +Context=Emotes +Type=Threshold + +[32x32/filesystems] +Size=32 +Context=FileSystems +Type=Threshold + +[32x32@2/filesystems] +Size=32 +Scale=2 +Context=FileSystems +Type=Threshold + +[32x32/intl] +Size=32 +Context=International +Type=Threshold + +[32x32@2/intl] +Size=32 +Scale=2 +Context=International +Type=Threshold + +[32x32/mimetypes] +Size=32 +Context=MimeTypes +Type=Threshold + +[32x32@2/mimetypes] +Size=32 +Scale=2 +Context=MimeTypes +Type=Threshold + +[32x32/places] +Size=32 +Context=Places +Type=Threshold + +[32x32@2/places] +Size=32 +Scale=2 +Context=Places +Type=Threshold + +[32x32/status] +Size=32 +Context=Status +Type=Threshold + +[32x32@2/status] +Size=32 +Scale=2 +Context=Status +Type=Threshold + +[32x32/stock/chart] +Size=32 +Context=Stock +Type=Threshold + +[32x32@2/stock/chart] +Size=32 +Scale=2 +Context=Stock +Type=Threshold + +[32x32/stock/code] +Size=32 +Context=Stock +Type=Threshold + +[32x32@2/stock/code] +Size=32 +Scale=2 +Context=Stock +Type=Threshold + +[32x32/stock/data] +Size=32 +Context=Stock +Type=Threshold + +[32x32@2/stock/data] +Size=32 +Scale=2 +Context=Stock +Type=Threshold + +[32x32/stock/form] +Size=32 +Context=Stock +Type=Threshold + +[32x32@2/stock/form] +Size=32 +Scale=2 +Context=Stock +Type=Threshold + +[32x32/stock/image] +Size=32 +Context=Stock +Type=Threshold + +[32x32@2/stock/image] +Size=32 +Scale=2 +Context=Stock +Type=Threshold + +[32x32/stock/io] +Size=32 +Context=Stock +Type=Threshold + +[32x32@2/stock/io] +Size=32 +Scale=2 +Context=Stock +Type=Threshold + +[32x32/stock/media] +Size=32 +Context=Stock +Type=Threshold + +[32x32@2/stock/media] +Size=32 +Scale=2 +Context=Stock +Type=Threshold + +[32x32/stock/navigation] +Size=32 +Context=Stock +Type=Threshold + +[32x32@2/stock/navigation] +Size=32 +Scale=2 +Context=Stock +Type=Threshold + +[32x32/stock/net] +Size=32 +Context=Stock +Type=Threshold + +[32x32@2/stock/net] +Size=32 +Scale=2 +Context=Stock +Type=Threshold + +[32x32/stock/object] +Size=32 +Context=Stock +Type=Threshold + +[32x32@2/stock/object] +Size=32 +Scale=2 +Context=Stock +Type=Threshold + +[32x32/stock/table] +Size=32 +Context=Stock +Type=Threshold + +[32x32@2/stock/table] +Size=32 +Scale=2 +Context=Stock +Type=Threshold + +[32x32/stock/text] +Size=32 +Context=Stock +Type=Threshold + +[32x32@2/stock/text] +Size=32 +Scale=2 +Context=Stock +Type=Threshold + +[36x36/actions] +Size=36 +Context=Actions +Type=Threshold + +[36x36@2/actions] +Size=36 +Scale=2 +Context=Actions +Type=Threshold + +[36x36/animations] +Size=36 +Context=Animations +Type=Threshold + +[36x36@2/animations] +Size=36 +Scale=2 +Context=Animations +Type=Threshold + +[36x36/apps] +Size=36 +Context=Applications +Type=Threshold + +[36x36@2/apps] +Size=36 +Scale=2 +Context=Applications +Type=Threshold + +[36x36/categories] +Size=36 +Context=Categories +Type=Threshold + +[36x36@2/categories] +Size=36 +Scale=2 +Context=Categories +Type=Threshold + +[36x36/devices] +Size=36 +Context=Devices +Type=Threshold + +[36x36@2/devices] +Size=36 +Scale=2 +Context=Devices +Type=Threshold + +[36x36/emblems] +Size=36 +Context=Emblems +Type=Threshold + +[36x36@2/emblems] +Size=36 +Scale=2 +Context=Emblems +Type=Threshold + +[36x36/emotes] +Size=36 +Context=Emotes +Type=Threshold + +[36x36@2/emotes] +Size=36 +Scale=2 +Context=Emotes +Type=Threshold + +[36x36/filesystems] +Size=36 +Context=FileSystems +Type=Threshold + +[36x36@2/filesystems] +Size=36 +Scale=2 +Context=FileSystems +Type=Threshold + +[36x36/intl] +Size=36 +Context=International +Type=Threshold + +[36x36@2/intl] +Size=36 +Scale=2 +Context=International +Type=Threshold + +[36x36/mimetypes] +Size=36 +Context=MimeTypes +Type=Threshold + +[36x36@2/mimetypes] +Size=36 +Scale=2 +Context=MimeTypes +Type=Threshold + +[36x36/places] +Size=36 +Context=Places +Type=Threshold + +[36x36@2/places] +Size=36 +Scale=2 +Context=Places +Type=Threshold + +[36x36/status] +Size=36 +Context=Status +Type=Threshold + +[36x36@2/status] +Size=36 +Scale=2 +Context=Status +Type=Threshold + +[36x36/stock/chart] +Size=36 +Context=Stock +Type=Threshold + +[36x36@2/stock/chart] +Size=36 +Scale=2 +Context=Stock +Type=Threshold + +[36x36/stock/code] +Size=36 +Context=Stock +Type=Threshold + +[36x36@2/stock/code] +Size=36 +Scale=2 +Context=Stock +Type=Threshold + +[36x36/stock/data] +Size=36 +Context=Stock +Type=Threshold + +[36x36@2/stock/data] +Size=36 +Scale=2 +Context=Stock +Type=Threshold + +[36x36/stock/form] +Size=36 +Context=Stock +Type=Threshold + +[36x36@2/stock/form] +Size=36 +Scale=2 +Context=Stock +Type=Threshold + +[36x36/stock/image] +Size=36 +Context=Stock +Type=Threshold + +[36x36@2/stock/image] +Size=36 +Scale=2 +Context=Stock +Type=Threshold + +[36x36/stock/io] +Size=36 +Context=Stock +Type=Threshold + +[36x36@2/stock/io] +Size=36 +Scale=2 +Context=Stock +Type=Threshold + +[36x36/stock/media] +Size=36 +Context=Stock +Type=Threshold + +[36x36@2/stock/media] +Size=36 +Scale=2 +Context=Stock +Type=Threshold + +[36x36/stock/navigation] +Size=36 +Context=Stock +Type=Threshold + +[36x36@2/stock/navigation] +Size=36 +Scale=2 +Context=Stock +Type=Threshold + +[36x36/stock/net] +Size=36 +Context=Stock +Type=Threshold + +[36x36@2/stock/net] +Size=36 +Scale=2 +Context=Stock +Type=Threshold + +[36x36/stock/object] +Size=36 +Context=Stock +Type=Threshold + +[36x36@2/stock/object] +Size=36 +Scale=2 +Context=Stock +Type=Threshold + +[36x36/stock/table] +Size=36 +Context=Stock +Type=Threshold + +[36x36@2/stock/table] +Size=36 +Scale=2 +Context=Stock +Type=Threshold + +[36x36/stock/text] +Size=36 +Context=Stock +Type=Threshold + +[36x36@2/stock/text] +Size=36 +Scale=2 +Context=Stock +Type=Threshold + +[48x48/actions] +Size=48 +Context=Actions +Type=Threshold + +[48x48@2/actions] +Size=48 +Scale=2 +Context=Actions +Type=Threshold + +[48x48/animations] +Size=48 +Context=Animations +Type=Threshold + +[48x48@2/animations] +Size=48 +Scale=2 +Context=Animations +Type=Threshold + +[48x48/apps] +Size=48 +Context=Applications +Type=Threshold + +[48x48@2/apps] +Size=48 +Scale=2 +Context=Applications +Type=Threshold + +[48x48/categories] +Size=48 +Context=Categories +Type=Threshold + +[48x48@2/categories] +Size=48 +Scale=2 +Context=Categories +Type=Threshold + +[48x48/devices] +Size=48 +Context=Devices +Type=Threshold + +[48x48@2/devices] +Size=48 +Scale=2 +Context=Devices +Type=Threshold + +[48x48/emblems] +Size=48 +Context=Emblems +Type=Threshold + +[48x48@2/emblems] +Size=48 +Scale=2 +Context=Emblems +Type=Threshold + +[48x48/emotes] +Size=48 +Context=Emotes +Type=Threshold + +[48x48@2/emotes] +Size=48 +Scale=2 +Context=Emotes +Type=Threshold + +[48x48/filesystems] +Size=48 +Context=FileSystems +Type=Threshold + +[48x48@2/filesystems] +Size=48 +Scale=2 +Context=FileSystems +Type=Threshold + +[48x48/intl] +Size=48 +Context=International +Type=Threshold + +[48x48@2/intl] +Size=48 +Scale=2 +Context=International +Type=Threshold + +[48x48/mimetypes] +Size=48 +Context=MimeTypes +Type=Threshold + +[48x48@2/mimetypes] +Size=48 +Scale=2 +Context=MimeTypes +Type=Threshold + +[48x48/places] +Size=48 +Context=Places +Type=Threshold + +[48x48@2/places] +Size=48 +Scale=2 +Context=Places +Type=Threshold + +[48x48/status] +Size=48 +Context=Status +Type=Threshold + +[48x48@2/status] +Size=48 +Scale=2 +Context=Status +Type=Threshold + +[48x48/stock/chart] +Size=48 +Context=Stock +Type=Threshold + +[48x48@2/stock/chart] +Size=48 +Scale=2 +Context=Stock +Type=Threshold + +[48x48/stock/code] +Size=48 +Context=Stock +Type=Threshold + +[48x48@2/stock/code] +Size=48 +Scale=2 +Context=Stock +Type=Threshold + +[48x48/stock/data] +Size=48 +Context=Stock +Type=Threshold + +[48x48@2/stock/data] +Size=48 +Scale=2 +Context=Stock +Type=Threshold + +[48x48/stock/form] +Size=48 +Context=Stock +Type=Threshold + +[48x48@2/stock/form] +Size=48 +Scale=2 +Context=Stock +Type=Threshold + +[48x48/stock/image] +Size=48 +Context=Stock +Type=Threshold + +[48x48@2/stock/image] +Size=48 +Scale=2 +Context=Stock +Type=Threshold + +[48x48/stock/io] +Size=48 +Context=Stock +Type=Threshold + +[48x48@2/stock/io] +Size=48 +Scale=2 +Context=Stock +Type=Threshold + +[48x48/stock/media] +Size=48 +Context=Stock +Type=Threshold + +[48x48@2/stock/media] +Size=48 +Scale=2 +Context=Stock +Type=Threshold + +[48x48/stock/navigation] +Size=48 +Context=Stock +Type=Threshold + +[48x48@2/stock/navigation] +Size=48 +Scale=2 +Context=Stock +Type=Threshold + +[48x48/stock/net] +Size=48 +Context=Stock +Type=Threshold + +[48x48@2/stock/net] +Size=48 +Scale=2 +Context=Stock +Type=Threshold + +[48x48/stock/object] +Size=48 +Context=Stock +Type=Threshold + +[48x48@2/stock/object] +Size=48 +Scale=2 +Context=Stock +Type=Threshold + +[48x48/stock/table] +Size=48 +Context=Stock +Type=Threshold + +[48x48@2/stock/table] +Size=48 +Scale=2 +Context=Stock +Type=Threshold + +[48x48/stock/text] +Size=48 +Context=Stock +Type=Threshold + +[48x48@2/stock/text] +Size=48 +Scale=2 +Context=Stock +Type=Threshold + +[64x64/actions] +Size=64 +Context=Actions +Type=Threshold + +[64x64@2/actions] +Size=64 +Scale=2 +Context=Actions +Type=Threshold + +[64x64/animations] +Size=64 +Context=Animations +Type=Threshold + +[64x64@2/animations] +Size=64 +Scale=2 +Context=Animations +Type=Threshold + +[64x64/apps] +Size=64 +Context=Applications +Type=Threshold + +[64x64@2/apps] +Size=64 +Scale=2 +Context=Applications +Type=Threshold + +[64x64/categories] +Size=64 +Context=Categories +Type=Threshold + +[64x64@2/categories] +Size=64 +Scale=2 +Context=Categories +Type=Threshold + +[64x64/devices] +Size=64 +Context=Devices +Type=Threshold + +[64x64@2/devices] +Size=64 +Scale=2 +Context=Devices +Type=Threshold + +[64x64/emblems] +Size=64 +Context=Emblems +Type=Threshold + +[64x64@2/emblems] +Size=64 +Scale=2 +Context=Emblems +Type=Threshold + +[64x64/emotes] +Size=64 +Context=Emotes +Type=Threshold + +[64x64@2/emotes] +Size=64 +Scale=2 +Context=Emotes +Type=Threshold + +[64x64/filesystems] +Size=64 +Context=FileSystems +Type=Threshold + +[64x64@2/filesystems] +Size=64 +Scale=2 +Context=FileSystems +Type=Threshold + +[64x64/intl] +Size=64 +Context=International +Type=Threshold + +[64x64@2/intl] +Size=64 +Scale=2 +Context=International +Type=Threshold + +[64x64/mimetypes] +Size=64 +Context=MimeTypes +Type=Threshold + +[64x64@2/mimetypes] +Size=64 +Scale=2 +Context=MimeTypes +Type=Threshold + +[64x64/places] +Size=64 +Context=Places +Type=Threshold + +[64x64@2/places] +Size=64 +Scale=2 +Context=Places +Type=Threshold + +[64x64/status] +Size=64 +Context=Status +Type=Threshold + +[64x64@2/status] +Size=64 +Scale=2 +Context=Status +Type=Threshold + +[64x64/stock/chart] +Size=64 +Context=Stock +Type=Threshold + +[64x64@2/stock/chart] +Size=64 +Scale=2 +Context=Stock +Type=Threshold + +[64x64/stock/code] +Size=64 +Context=Stock +Type=Threshold + +[64x64@2/stock/code] +Size=64 +Scale=2 +Context=Stock +Type=Threshold + +[64x64/stock/data] +Size=64 +Context=Stock +Type=Threshold + +[64x64@2/stock/data] +Size=64 +Scale=2 +Context=Stock +Type=Threshold + +[64x64/stock/form] +Size=64 +Context=Stock +Type=Threshold + +[64x64@2/stock/form] +Size=64 +Scale=2 +Context=Stock +Type=Threshold + +[64x64/stock/image] +Size=64 +Context=Stock +Type=Threshold + +[64x64@2/stock/image] +Size=64 +Scale=2 +Context=Stock +Type=Threshold + +[64x64/stock/io] +Size=64 +Context=Stock +Type=Threshold + +[64x64@2/stock/io] +Size=64 +Scale=2 +Context=Stock +Type=Threshold + +[64x64/stock/media] +Size=64 +Context=Stock +Type=Threshold + +[64x64@2/stock/media] +Size=64 +Scale=2 +Context=Stock +Type=Threshold + +[64x64/stock/navigation] +Size=64 +Context=Stock +Type=Threshold + +[64x64@2/stock/navigation] +Size=64 +Scale=2 +Context=Stock +Type=Threshold + +[64x64/stock/net] +Size=64 +Context=Stock +Type=Threshold + +[64x64@2/stock/net] +Size=64 +Scale=2 +Context=Stock +Type=Threshold + +[64x64/stock/object] +Size=64 +Context=Stock +Type=Threshold + +[64x64@2/stock/object] +Size=64 +Scale=2 +Context=Stock +Type=Threshold + +[64x64/stock/table] +Size=64 +Context=Stock +Type=Threshold + +[64x64@2/stock/table] +Size=64 +Scale=2 +Context=Stock +Type=Threshold + +[64x64/stock/text] +Size=64 +Context=Stock +Type=Threshold + +[64x64@2/stock/text] +Size=64 +Scale=2 +Context=Stock +Type=Threshold + +[72x72/actions] +Size=72 +Context=Actions +Type=Threshold + +[72x72@2/actions] +Size=72 +Scale=2 +Context=Actions +Type=Threshold + +[72x72/animations] +Size=72 +Context=Animations +Type=Threshold + +[72x72@2/animations] +Size=72 +Scale=2 +Context=Animations +Type=Threshold + +[72x72/apps] +Size=72 +Context=Applications +Type=Threshold + +[72x72@2/apps] +Size=72 +Scale=2 +Context=Applications +Type=Threshold + +[72x72/categories] +Size=72 +Context=Categories +Type=Threshold + +[72x72@2/categories] +Size=72 +Scale=2 +Context=Categories +Type=Threshold + +[72x72/devices] +Size=72 +Context=Devices +Type=Threshold + +[72x72@2/devices] +Size=72 +Scale=2 +Context=Devices +Type=Threshold + +[72x72/emblems] +Size=72 +Context=Emblems +Type=Threshold + +[72x72@2/emblems] +Size=72 +Scale=2 +Context=Emblems +Type=Threshold + +[72x72/emotes] +Size=72 +Context=Emotes +Type=Threshold + +[72x72@2/emotes] +Size=72 +Scale=2 +Context=Emotes +Type=Threshold + +[72x72/filesystems] +Size=72 +Context=FileSystems +Type=Threshold + +[72x72@2/filesystems] +Size=72 +Scale=2 +Context=FileSystems +Type=Threshold + +[72x72/intl] +Size=72 +Context=International +Type=Threshold + +[72x72@2/intl] +Size=72 +Scale=2 +Context=International +Type=Threshold + +[72x72/mimetypes] +Size=72 +Context=MimeTypes +Type=Threshold + +[72x72@2/mimetypes] +Size=72 +Scale=2 +Context=MimeTypes +Type=Threshold + +[72x72/places] +Size=72 +Context=Places +Type=Threshold + +[72x72@2/places] +Size=72 +Scale=2 +Context=Places +Type=Threshold + +[72x72/status] +Size=72 +Context=Status +Type=Threshold + +[72x72@2/status] +Size=72 +Scale=2 +Context=Status +Type=Threshold + +[72x72/stock/chart] +Size=72 +Context=Stock +Type=Threshold + +[72x72@2/stock/chart] +Size=72 +Scale=2 +Context=Stock +Type=Threshold + +[72x72/stock/code] +Size=72 +Context=Stock +Type=Threshold + +[72x72@2/stock/code] +Size=72 +Scale=2 +Context=Stock +Type=Threshold + +[72x72/stock/data] +Size=72 +Context=Stock +Type=Threshold + +[72x72@2/stock/data] +Size=72 +Scale=2 +Context=Stock +Type=Threshold + +[72x72/stock/form] +Size=72 +Context=Stock +Type=Threshold + +[72x72@2/stock/form] +Size=72 +Scale=2 +Context=Stock +Type=Threshold + +[72x72/stock/image] +Size=72 +Context=Stock +Type=Threshold + +[72x72@2/stock/image] +Size=72 +Scale=2 +Context=Stock +Type=Threshold + +[72x72/stock/io] +Size=72 +Context=Stock +Type=Threshold + +[72x72@2/stock/io] +Size=72 +Scale=2 +Context=Stock +Type=Threshold + +[72x72/stock/media] +Size=72 +Context=Stock +Type=Threshold + +[72x72@2/stock/media] +Size=72 +Scale=2 +Context=Stock +Type=Threshold + +[72x72/stock/navigation] +Size=72 +Context=Stock +Type=Threshold + +[72x72@2/stock/navigation] +Size=72 +Scale=2 +Context=Stock +Type=Threshold + +[72x72/stock/net] +Size=72 +Context=Stock +Type=Threshold + +[72x72@2/stock/net] +Size=72 +Scale=2 +Context=Stock +Type=Threshold + +[72x72/stock/object] +Size=72 +Context=Stock +Type=Threshold + +[72x72@2/stock/object] +Size=72 +Scale=2 +Context=Stock +Type=Threshold + +[72x72/stock/table] +Size=72 +Context=Stock +Type=Threshold + +[72x72@2/stock/table] +Size=72 +Scale=2 +Context=Stock +Type=Threshold + +[72x72/stock/text] +Size=72 +Context=Stock +Type=Threshold + +[72x72@2/stock/text] +Size=72 +Scale=2 +Context=Stock +Type=Threshold + +[96x96/actions] +Size=96 +Context=Actions +Type=Threshold + +[96x96@2/actions] +Size=96 +Scale=2 +Context=Actions +Type=Threshold + +[96x96/animations] +Size=96 +Context=Animations +Type=Threshold + +[96x96@2/animations] +Size=96 +Scale=2 +Context=Animations +Type=Threshold + +[96x96/apps] +Size=96 +Context=Applications +Type=Threshold + +[96x96@2/apps] +Size=96 +Scale=2 +Context=Applications +Type=Threshold + +[96x96/categories] +Size=96 +Context=Categories +Type=Threshold + +[96x96@2/categories] +Size=96 +Scale=2 +Context=Categories +Type=Threshold + +[96x96/devices] +Size=96 +Context=Devices +Type=Threshold + +[96x96@2/devices] +Size=96 +Scale=2 +Context=Devices +Type=Threshold + +[96x96/emblems] +Size=96 +Context=Emblems +Type=Threshold + +[96x96@2/emblems] +Size=96 +Scale=2 +Context=Emblems +Type=Threshold + +[96x96/emotes] +Size=96 +Context=Emotes +Type=Threshold + +[96x96@2/emotes] +Size=96 +Scale=2 +Context=Emotes +Type=Threshold + +[96x96/filesystems] +Size=96 +Context=FileSystems +Type=Threshold + +[96x96@2/filesystems] +Size=96 +Scale=2 +Context=FileSystems +Type=Threshold + +[96x96/intl] +Size=96 +Context=International +Type=Threshold + +[96x96@2/intl] +Size=96 +Scale=2 +Context=International +Type=Threshold + +[96x96/mimetypes] +Size=96 +Context=MimeTypes +Type=Threshold + +[96x96@2/mimetypes] +Size=96 +Scale=2 +Context=MimeTypes +Type=Threshold + +[96x96/places] +Size=96 +Context=Places +Type=Threshold + +[96x96@2/places] +Size=96 +Scale=2 +Context=Places +Type=Threshold + +[96x96/status] +Size=96 +Context=Status +Type=Threshold + +[96x96@2/status] +Size=96 +Scale=2 +Context=Status +Type=Threshold + +[96x96/stock/chart] +Size=96 +Context=Stock +Type=Threshold + +[96x96@2/stock/chart] +Size=96 +Scale=2 +Context=Stock +Type=Threshold + +[96x96/stock/code] +Size=96 +Context=Stock +Type=Threshold + +[96x96@2/stock/code] +Size=96 +Scale=2 +Context=Stock +Type=Threshold + +[96x96/stock/data] +Size=96 +Context=Stock +Type=Threshold + +[96x96@2/stock/data] +Size=96 +Scale=2 +Context=Stock +Type=Threshold + +[96x96/stock/form] +Size=96 +Context=Stock +Type=Threshold + +[96x96@2/stock/form] +Size=96 +Scale=2 +Context=Stock +Type=Threshold + +[96x96/stock/image] +Size=96 +Context=Stock +Type=Threshold + +[96x96@2/stock/image] +Size=96 +Scale=2 +Context=Stock +Type=Threshold + +[96x96/stock/io] +Size=96 +Context=Stock +Type=Threshold + +[96x96@2/stock/io] +Size=96 +Scale=2 +Context=Stock +Type=Threshold + +[96x96/stock/media] +Size=96 +Context=Stock +Type=Threshold + +[96x96@2/stock/media] +Size=96 +Scale=2 +Context=Stock +Type=Threshold + +[96x96/stock/navigation] +Size=96 +Context=Stock +Type=Threshold + +[96x96@2/stock/navigation] +Size=96 +Scale=2 +Context=Stock +Type=Threshold + +[96x96/stock/net] +Size=96 +Context=Stock +Type=Threshold + +[96x96@2/stock/net] +Size=96 +Scale=2 +Context=Stock +Type=Threshold + +[96x96/stock/object] +Size=96 +Context=Stock +Type=Threshold + +[96x96@2/stock/object] +Size=96 +Scale=2 +Context=Stock +Type=Threshold + +[96x96/stock/table] +Size=96 +Context=Stock +Type=Threshold + +[96x96@2/stock/table] +Size=96 +Scale=2 +Context=Stock +Type=Threshold + +[96x96/stock/text] +Size=96 +Context=Stock +Type=Threshold + +[96x96@2/stock/text] +Size=96 +Scale=2 +Context=Stock +Type=Threshold + +[128x128/actions] +Size=128 +Context=Actions +Type=Threshold + +[128x128@2/actions] +Size=128 +Scale=2 +Context=Actions +Type=Threshold + +[128x128/animations] +Size=128 +Context=Animations +Type=Threshold + +[128x128@2/animations] +Size=128 +Scale=2 +Context=Animations +Type=Threshold + +[128x128/apps] +Size=128 +Context=Applications +Type=Threshold + +[128x128@2/apps] +Size=128 +Scale=2 +Context=Applications +Type=Threshold + +[128x128/categories] +Size=128 +Context=Categories +Type=Threshold + +[128x128@2/categories] +Size=128 +Scale=2 +Context=Categories +Type=Threshold + +[128x128/devices] +Size=128 +Context=Devices +Type=Threshold + +[128x128@2/devices] +Size=128 +Scale=2 +Context=Devices +Type=Threshold + +[128x128/emblems] +Size=128 +Context=Emblems +Type=Threshold + +[128x128@2/emblems] +Size=128 +Scale=2 +Context=Emblems +Type=Threshold + +[128x128/emotes] +Size=128 +Context=Emotes +Type=Threshold + +[128x128@2/emotes] +Size=128 +Scale=2 +Context=Emotes +Type=Threshold + +[128x128/filesystems] +Size=128 +Context=FileSystems +Type=Threshold + +[128x128@2/filesystems] +Size=128 +Scale=2 +Context=FileSystems +Type=Threshold + +[128x128/intl] +Size=128 +Context=International +Type=Threshold + +[128x128@2/intl] +Size=128 +Scale=2 +Context=International +Type=Threshold + +[128x128/mimetypes] +Size=128 +Context=MimeTypes +Type=Threshold + +[128x128@2/mimetypes] +Size=128 +Scale=2 +Context=MimeTypes +Type=Threshold + +[128x128/places] +Size=128 +Context=Places +Type=Threshold + +[128x128@2/places] +Size=128 +Scale=2 +Context=Places +Type=Threshold + +[128x128/status] +Size=128 +Context=Status +Type=Threshold + +[128x128@2/status] +Size=128 +Scale=2 +Context=Status +Type=Threshold + +[128x128/stock/chart] +Size=128 +Context=Stock +Type=Threshold + +[128x128@2/stock/chart] +Size=128 +Scale=2 +Context=Stock +Type=Threshold + +[128x128/stock/code] +Size=128 +Context=Stock +Type=Threshold + +[128x128@2/stock/code] +Size=128 +Scale=2 +Context=Stock +Type=Threshold + +[128x128/stock/data] +Size=128 +Context=Stock +Type=Threshold + +[128x128@2/stock/data] +Size=128 +Scale=2 +Context=Stock +Type=Threshold + +[128x128/stock/form] +Size=128 +Context=Stock +Type=Threshold + +[128x128@2/stock/form] +Size=128 +Scale=2 +Context=Stock +Type=Threshold + +[128x128/stock/image] +Size=128 +Context=Stock +Type=Threshold + +[128x128@2/stock/image] +Size=128 +Scale=2 +Context=Stock +Type=Threshold + +[128x128/stock/io] +Size=128 +Context=Stock +Type=Threshold + +[128x128@2/stock/io] +Size=128 +Scale=2 +Context=Stock +Type=Threshold + +[128x128/stock/media] +Size=128 +Context=Stock +Type=Threshold + +[128x128@2/stock/media] +Size=128 +Scale=2 +Context=Stock +Type=Threshold + +[128x128/stock/navigation] +Size=128 +Context=Stock +Type=Threshold + +[128x128@2/stock/navigation] +Size=128 +Scale=2 +Context=Stock +Type=Threshold + +[128x128/stock/net] +Size=128 +Context=Stock +Type=Threshold + +[128x128@2/stock/net] +Size=128 +Scale=2 +Context=Stock +Type=Threshold + +[128x128/stock/object] +Size=128 +Context=Stock +Type=Threshold + +[128x128@2/stock/object] +Size=128 +Scale=2 +Context=Stock +Type=Threshold + +[128x128/stock/table] +Size=128 +Context=Stock +Type=Threshold + +[128x128@2/stock/table] +Size=128 +Scale=2 +Context=Stock +Type=Threshold + +[128x128/stock/text] +Size=128 +Context=Stock +Type=Threshold + +[128x128@2/stock/text] +Size=128 +Scale=2 +Context=Stock +Type=Threshold + +[192x192/actions] +Size=192 +Context=Actions +Type=Threshold + +[192x192@2/actions] +Size=192 +Scale=2 +Context=Actions +Type=Threshold + +[192x192/animations] +Size=192 +Context=Animations +Type=Threshold + +[192x192@2/animations] +Size=192 +Scale=2 +Context=Animations +Type=Threshold + +[192x192/apps] +Size=192 +Context=Applications +Type=Threshold + +[192x192@2/apps] +Size=192 +Scale=2 +Context=Applications +Type=Threshold + +[192x192/categories] +Size=192 +Context=Categories +Type=Threshold + +[192x192@2/categories] +Size=192 +Scale=2 +Context=Categories +Type=Threshold + +[192x192/devices] +Size=192 +Context=Devices +Type=Threshold + +[192x192@2/devices] +Size=192 +Scale=2 +Context=Devices +Type=Threshold + +[192x192/emblems] +Size=192 +Context=Emblems +Type=Threshold + +[192x192@2/emblems] +Size=192 +Scale=2 +Context=Emblems +Type=Threshold + +[192x192/emotes] +Size=192 +Context=Emotes +Type=Threshold + +[192x192@2/emotes] +Size=192 +Scale=2 +Context=Emotes +Type=Threshold + +[192x192/filesystems] +Size=192 +Context=FileSystems +Type=Threshold + +[192x192@2/filesystems] +Size=192 +Scale=2 +Context=FileSystems +Type=Threshold + +[192x192/intl] +Size=192 +Context=International +Type=Threshold + +[192x192@2/intl] +Size=192 +Scale=2 +Context=International +Type=Threshold + +[192x192/mimetypes] +Size=192 +Context=MimeTypes +Type=Threshold + +[192x192@2/mimetypes] +Size=192 +Scale=2 +Context=MimeTypes +Type=Threshold + +[192x192/places] +Size=192 +Context=Places +Type=Threshold + +[192x192@2/places] +Size=192 +Scale=2 +Context=Places +Type=Threshold + +[192x192/status] +Size=192 +Context=Status +Type=Threshold + +[192x192@2/status] +Size=192 +Scale=2 +Context=Status +Type=Threshold + +[192x192/stock/chart] +Size=192 +Context=Stock +Type=Threshold + +[192x192@2/stock/chart] +Size=192 +Scale=2 +Context=Stock +Type=Threshold + +[192x192/stock/code] +Size=192 +Context=Stock +Type=Threshold + +[192x192@2/stock/code] +Size=192 +Scale=2 +Context=Stock +Type=Threshold + +[192x192/stock/data] +Size=192 +Context=Stock +Type=Threshold + +[192x192@2/stock/data] +Size=192 +Scale=2 +Context=Stock +Type=Threshold + +[192x192/stock/form] +Size=192 +Context=Stock +Type=Threshold + +[192x192@2/stock/form] +Size=192 +Scale=2 +Context=Stock +Type=Threshold + +[192x192/stock/image] +Size=192 +Context=Stock +Type=Threshold + +[192x192@2/stock/image] +Size=192 +Scale=2 +Context=Stock +Type=Threshold + +[192x192/stock/io] +Size=192 +Context=Stock +Type=Threshold + +[192x192@2/stock/io] +Size=192 +Scale=2 +Context=Stock +Type=Threshold + +[192x192/stock/media] +Size=192 +Context=Stock +Type=Threshold + +[192x192@2/stock/media] +Size=192 +Scale=2 +Context=Stock +Type=Threshold + +[192x192/stock/navigation] +Size=192 +Context=Stock +Type=Threshold + +[192x192@2/stock/navigation] +Size=192 +Scale=2 +Context=Stock +Type=Threshold + +[192x192/stock/net] +Size=192 +Context=Stock +Type=Threshold + +[192x192@2/stock/net] +Size=192 +Scale=2 +Context=Stock +Type=Threshold + +[192x192/stock/object] +Size=192 +Context=Stock +Type=Threshold + +[192x192@2/stock/object] +Size=192 +Scale=2 +Context=Stock +Type=Threshold + +[192x192/stock/table] +Size=192 +Context=Stock +Type=Threshold + +[192x192@2/stock/table] +Size=192 +Scale=2 +Context=Stock +Type=Threshold + +[192x192/stock/text] +Size=192 +Context=Stock +Type=Threshold + +[192x192@2/stock/text] +Size=192 +Scale=2 +Context=Stock +Type=Threshold + +[256x256/actions] +MinSize=64 +Size=256 +MaxSize=256 +Context=Actions +Type=Scalable + +[256x256@2/actions] +MinSize=64 +Size=256 +Scale=2 +MaxSize=256 +Context=Actions +Type=Scalable + +[256x256/animations] +MinSize=64 +Size=256 +MaxSize=256 +Context=Animations +Type=Scalable + +[256x256@2/animations] +MinSize=64 +Size=256 +Scale=2 +MaxSize=256 +Context=Animations +Type=Scalable + +[256x256/apps] +MinSize=64 +Size=256 +MaxSize=256 +Context=Applications +Type=Scalable + +[256x256@2/apps] +MinSize=64 +Size=256 +Scale=2 +MaxSize=256 +Context=Applications +Type=Scalable + +[256x256/categories] +MinSize=64 +Size=256 +MaxSize=256 +Context=Categories +Type=Scalable + +[256x256@2/categories] +MinSize=64 +Size=256 +Scale=2 +MaxSize=256 +Context=Categories +Type=Scalable + +[256x256/devices] +MinSize=64 +Size=256 +MaxSize=256 +Context=Devices +Type=Scalable + +[256x256@2/devices] +MinSize=64 +Size=256 +Scale=2 +MaxSize=256 +Context=Devices +Type=Scalable + +[256x256/emblems] +MinSize=64 +Size=256 +MaxSize=256 +Context=Emblems +Type=Scalable + +[256x256@2/emblems] +MinSize=64 +Size=256 +Scale=2 +MaxSize=256 +Context=Emblems +Type=Scalable + +[256x256/emotes] +MinSize=64 +Size=256 +MaxSize=256 +Context=Emotes +Type=Scalable + +[256x256@2/emotes] +MinSize=64 +Size=256 +Scale=2 +MaxSize=256 +Context=Emotes +Type=Scalable + +[256x256/filesystems] +MinSize=64 +Size=256 +MaxSize=256 +Context=FileSystems +Type=Scalable + +[256x256@2/filesystems] +MinSize=64 +Size=256 +Scale=2 +MaxSize=256 +Context=FileSystems +Type=Scalable + +[256x256/intl] +MinSize=64 +Size=256 +MaxSize=256 +Context=International +Type=Scalable + +[256x256@2/intl] +MinSize=64 +Size=256 +Scale=2 +MaxSize=256 +Context=International +Type=Scalable + +[256x256/mimetypes] +MinSize=64 +Size=256 +MaxSize=256 +Context=MimeTypes +Type=Scalable + +[256x256@2/mimetypes] +MinSize=64 +Size=256 +Scale=2 +MaxSize=256 +Context=MimeTypes +Type=Scalable + +[256x256/places] +MinSize=64 +Size=256 +MaxSize=256 +Context=Places +Type=Scalable + +[256x256@2/places] +MinSize=64 +Size=256 +Scale=2 +MaxSize=256 +Context=Places +Type=Scalable + +[256x256/status] +MinSize=64 +Size=256 +MaxSize=256 +Context=Status +Type=Scalable + +[256x256@2/status] +MinSize=64 +Size=256 +Scale=2 +MaxSize=256 +Context=Status +Type=Scalable + +[256x256/stock/chart] +MinSize=64 +Size=256 +MaxSize=256 +Context=Stock +Type=Scalable + +[256x256@2/stock/chart] +MinSize=64 +Size=256 +Scale=2 +MaxSize=256 +Context=Stock +Type=Scalable + +[256x256/stock/code] +MinSize=64 +Size=256 +MaxSize=256 +Context=Stock +Type=Scalable + +[256x256@2/stock/code] +MinSize=64 +Size=256 +Scale=2 +MaxSize=256 +Context=Stock +Type=Scalable + +[256x256/stock/data] +MinSize=64 +Size=256 +MaxSize=256 +Context=Stock +Type=Scalable + +[256x256@2/stock/data] +MinSize=64 +Size=256 +Scale=2 +MaxSize=256 +Context=Stock +Type=Scalable + +[256x256/stock/form] +MinSize=64 +Size=256 +MaxSize=256 +Context=Stock +Type=Scalable + +[256x256@2/stock/form] +MinSize=64 +Size=256 +Scale=2 +MaxSize=256 +Context=Stock +Type=Scalable + +[256x256/stock/image] +MinSize=64 +Size=256 +MaxSize=256 +Context=Stock +Type=Scalable + +[256x256@2/stock/image] +MinSize=64 +Size=256 +Scale=2 +MaxSize=256 +Context=Stock +Type=Scalable + +[256x256/stock/io] +MinSize=64 +Size=256 +MaxSize=256 +Context=Stock +Type=Scalable + +[256x256@2/stock/io] +MinSize=64 +Size=256 +Scale=2 +MaxSize=256 +Context=Stock +Type=Scalable + +[256x256/stock/media] +MinSize=64 +Size=256 +MaxSize=256 +Context=Stock +Type=Scalable + +[256x256@2/stock/media] +MinSize=64 +Size=256 +Scale=2 +MaxSize=256 +Context=Stock +Type=Scalable + +[256x256/stock/navigation] +MinSize=64 +Size=256 +MaxSize=256 +Context=Stock +Type=Scalable + +[256x256@2/stock/navigation] +MinSize=64 +Size=256 +Scale=2 +MaxSize=256 +Context=Stock +Type=Scalable + +[256x256/stock/net] +MinSize=64 +Size=256 +MaxSize=256 +Context=Stock +Type=Scalable + +[256x256@2/stock/net] +MinSize=64 +Size=256 +Scale=2 +MaxSize=256 +Context=Stock +Type=Scalable + +[256x256/stock/object] +MinSize=64 +Size=256 +MaxSize=256 +Context=Stock +Type=Scalable + +[256x256@2/stock/object] +MinSize=64 +Size=256 +Scale=2 +MaxSize=256 +Context=Stock +Type=Scalable + +[256x256/stock/table] +MinSize=64 +Size=256 +MaxSize=256 +Context=Stock +Type=Scalable + +[256x256@2/stock/table] +MinSize=64 +Size=256 +Scale=2 +MaxSize=256 +Context=Stock +Type=Scalable + +[256x256/stock/text] +MinSize=64 +Size=256 +MaxSize=256 +Context=Stock +Type=Scalable + +[256x256@2/stock/text] +MinSize=64 +Size=256 +Scale=2 +MaxSize=256 +Context=Stock +Type=Scalable + +[512x512/actions] +MinSize=64 +Size=512 +MaxSize=512 +Context=Actions +Type=Scalable + +[512x512@2/actions] +MinSize=64 +Size=512 +Scale=2 +MaxSize=512 +Context=Actions +Type=Scalable + +[512x512/animations] +MinSize=64 +Size=512 +MaxSize=512 +Context=Animations +Type=Scalable + +[512x512@2/animations] +MinSize=64 +Size=512 +Scale=2 +MaxSize=512 +Context=Animations +Type=Scalable + +[512x512/apps] +MinSize=64 +Size=512 +MaxSize=512 +Context=Applications +Type=Scalable + +[512x512@2/apps] +MinSize=64 +Size=512 +Scale=2 +MaxSize=512 +Context=Applications +Type=Scalable + +[512x512/categories] +MinSize=64 +Size=512 +MaxSize=512 +Context=Categories +Type=Scalable + +[512x512@2/categories] +MinSize=64 +Size=512 +Scale=2 +MaxSize=512 +Context=Categories +Type=Scalable + +[512x512/devices] +MinSize=64 +Size=512 +MaxSize=512 +Context=Devices +Type=Scalable + +[512x512@2/devices] +MinSize=64 +Size=512 +Scale=2 +MaxSize=512 +Context=Devices +Type=Scalable + +[512x512/emblems] +MinSize=64 +Size=512 +MaxSize=512 +Context=Emblems +Type=Scalable + +[512x512@2/emblems] +MinSize=64 +Size=512 +Scale=2 +MaxSize=512 +Context=Emblems +Type=Scalable + +[512x512/emotes] +MinSize=64 +Size=512 +MaxSize=512 +Context=Emotes +Type=Scalable + +[512x512@2/emotes] +MinSize=64 +Size=512 +Scale=2 +MaxSize=512 +Context=Emotes +Type=Scalable + +[512x512/filesystems] +MinSize=64 +Size=512 +MaxSize=512 +Context=FileSystems +Type=Scalable + +[512x512@2/filesystems] +MinSize=64 +Size=512 +Scale=2 +MaxSize=512 +Context=FileSystems +Type=Scalable + +[512x512/intl] +MinSize=64 +Size=512 +MaxSize=512 +Context=International +Type=Scalable + +[512x512@2/intl] +MinSize=64 +Size=512 +Scale=2 +MaxSize=512 +Context=International +Type=Scalable + +[512x512/mimetypes] +MinSize=64 +Size=512 +MaxSize=512 +Context=MimeTypes +Type=Scalable + +[512x512@2/mimetypes] +MinSize=64 +Size=512 +Scale=2 +MaxSize=512 +Context=MimeTypes +Type=Scalable + +[512x512/places] +MinSize=64 +Size=512 +MaxSize=512 +Context=Places +Type=Scalable + +[512x512@2/places] +MinSize=64 +Size=512 +Scale=2 +MaxSize=512 +Context=Places +Type=Scalable + +[512x512/status] +MinSize=64 +Size=512 +MaxSize=512 +Context=Status +Type=Scalable + +[512x512@2/status] +MinSize=64 +Size=512 +Scale=2 +MaxSize=512 +Context=Status +Type=Scalable + +[512x512/stock/chart] +MinSize=64 +Size=512 +MaxSize=512 +Context=Stock +Type=Scalable + +[512x512@2/stock/chart] +MinSize=64 +Size=512 +Scale=2 +MaxSize=512 +Context=Stock +Type=Scalable + +[512x512/stock/code] +MinSize=64 +Size=512 +MaxSize=512 +Context=Stock +Type=Scalable + +[512x512@2/stock/code] +MinSize=64 +Size=512 +Scale=2 +MaxSize=512 +Context=Stock +Type=Scalable + +[512x512/stock/data] +MinSize=64 +Size=512 +MaxSize=512 +Context=Stock +Type=Scalable + +[512x512@2/stock/data] +MinSize=64 +Size=512 +Scale=2 +MaxSize=512 +Context=Stock +Type=Scalable + +[512x512/stock/form] +MinSize=64 +Size=512 +MaxSize=512 +Context=Stock +Type=Scalable + +[512x512@2/stock/form] +MinSize=64 +Size=512 +Scale=2 +MaxSize=512 +Context=Stock +Type=Scalable + +[512x512/stock/image] +MinSize=64 +Size=512 +MaxSize=512 +Context=Stock +Type=Scalable + +[512x512@2/stock/image] +MinSize=64 +Size=512 +Scale=2 +MaxSize=512 +Context=Stock +Type=Scalable + +[512x512/stock/io] +MinSize=64 +Size=512 +MaxSize=512 +Context=Stock +Type=Scalable + +[512x512@2/stock/io] +MinSize=64 +Size=512 +Scale=2 +MaxSize=512 +Context=Stock +Type=Scalable + +[512x512/stock/media] +MinSize=64 +Size=512 +MaxSize=512 +Context=Stock +Type=Scalable + +[512x512@2/stock/media] +MinSize=64 +Size=512 +Scale=2 +MaxSize=512 +Context=Stock +Type=Scalable + +[512x512/stock/navigation] +MinSize=64 +Size=512 +MaxSize=512 +Context=Stock +Type=Scalable + +[512x512@2/stock/navigation] +MinSize=64 +Size=512 +Scale=2 +MaxSize=512 +Context=Stock +Type=Scalable + +[512x512/stock/net] +MinSize=64 +Size=512 +MaxSize=512 +Context=Stock +Type=Scalable + +[512x512@2/stock/net] +MinSize=64 +Size=512 +Scale=2 +MaxSize=512 +Context=Stock +Type=Scalable + +[512x512/stock/object] +MinSize=64 +Size=512 +MaxSize=512 +Context=Stock +Type=Scalable + +[512x512@2/stock/object] +MinSize=64 +Size=512 +Scale=2 +MaxSize=512 +Context=Stock +Type=Scalable + +[512x512/stock/table] +MinSize=64 +Size=512 +MaxSize=512 +Context=Stock +Type=Scalable + +[512x512@2/stock/table] +MinSize=64 +Size=512 +Scale=2 +MaxSize=512 +Context=Stock +Type=Scalable + +[512x512/stock/text] +MinSize=64 +Size=512 +MaxSize=512 +Context=Stock +Type=Scalable + +[512x512@2/stock/text] +MinSize=64 +Size=512 +Scale=2 +MaxSize=512 +Context=Stock +Type=Scalable + +[scalable/actions] +MinSize=1 +Size=128 +MaxSize=256 +Context=Actions +Type=Scalable + +[scalable/animations] +MinSize=1 +Size=128 +MaxSize=256 +Context=Animations +Type=Scalable + +[scalable/apps] +MinSize=1 +Size=128 +MaxSize=256 +Context=Applications +Type=Scalable + +[scalable/categories] +MinSize=1 +Size=128 +MaxSize=256 +Context=Categories +Type=Scalable + +[scalable/devices] +MinSize=1 +Size=128 +MaxSize=512 +Context=Devices +Type=Scalable + +[scalable/emblems] +MinSize=1 +Size=128 +MaxSize=256 +Context=Emblems +Type=Scalable + +[scalable/emotes] +MinSize=1 +Size=128 +MaxSize=512 +Context=Emotes +Type=Scalable + +[scalable/filesystems] +MinSize=1 +Size=128 +MaxSize=256 +Context=FileSystems +Type=Scalable + +[scalable/intl] +MinSize=1 +Size=128 +MaxSize=512 +Context=International +Type=Scalable + +[scalable/mimetypes] +MinSize=1 +Size=128 +MaxSize=256 +Context=MimeTypes +Type=Scalable + +[scalable/places] +MinSize=1 +Size=128 +MaxSize=512 +Context=Places +Type=Scalable + +[scalable/status] +MinSize=1 +Size=128 +MaxSize=256 +Context=Status +Type=Scalable + +[scalable/stock/chart] +MinSize=1 +Size=128 +MaxSize=512 +Context=Stock +Type=Scalable + +[scalable/stock/code] +MinSize=1 +Size=128 +MaxSize=256 +Context=Stock +Type=Scalable + +[scalable/stock/data] +MinSize=1 +Size=128 +MaxSize=512 +Context=Stock +Type=Scalable + +[scalable/stock/form] +MinSize=1 +Size=128 +MaxSize=256 +Context=Stock +Type=Scalable + +[scalable/stock/image] +MinSize=1 +Size=128 +MaxSize=512 +Context=Stock +Type=Scalable + +[scalable/stock/io] +MinSize=1 +Size=128 +MaxSize=256 +Context=Stock +Type=Scalable + +[scalable/stock/media] +MinSize=1 +Size=128 +MaxSize=512 +Context=Stock +Type=Scalable + +[scalable/stock/navigation] +MinSize=1 +Size=128 +MaxSize=256 +Context=Stock +Type=Scalable + +[scalable/stock/net] +MinSize=1 +Size=128 +MaxSize=512 +Context=Stock +Type=Scalable + +[scalable/stock/object] +MinSize=1 +Size=128 +MaxSize=256 +Context=Stock +Type=Scalable + +[scalable/stock/table] +MinSize=1 +Size=128 +MaxSize=512 +Context=Stock +Type=Scalable + +[scalable/stock/text] +MinSize=1 +Size=128 +MaxSize=256 +Context=Stock +Type=Scalable + +[symbolic/apps] +MinSize=8 +Size=16 +MaxSize=512 +Context=Applications +Type=Scalable diff --git a/gtk/meson.build b/gtk/meson.build index 971d59fd8c..7ac245419a 100644 --- a/gtk/meson.build +++ b/gtk/meson.build @@ -227,6 +227,7 @@ gtk_public_sources = files([ 'gtkfilechooserwidget.c', 'gtkfiledialog.c', 'gtkfilefilter.c', + 'gtkfilelauncher.c', 'gtkfilter.c', 'gtkfilterlistmodel.c', 'gtkfixed.c', @@ -345,7 +346,6 @@ gtk_public_sources = files([ 'gtkshortcutsshortcut.c', 'gtkshortcutswindow.c', 'gtkshortcuttrigger.c', - 'gtkshow.c', 'gtksidebarrow.c', 'gtksignallistitemfactory.c', 'gtksingleselection.c', @@ -478,6 +478,7 @@ gtk_public_headers = files([ 'gtkexpression.h', 'gtkfiledialog.h', 'gtkfilefilter.h', + 'gtkfilelauncher.h', 'gtkfilter.h', 'gtkfilterlistmodel.h', 'gtkfixed.h', @@ -578,7 +579,6 @@ gtk_public_headers = files([ 'gtkshortcutsshortcut.h', 'gtkshortcutswindow.h', 'gtkshortcuttrigger.h', - 'gtkshow.h', 'gtksignallistitemfactory.h', 'gtksingleselection.h', 'gtksizegroup.h', @@ -779,28 +779,21 @@ theme_deps = [] # For git checkouts, but not for tarballs... if not fs.exists('theme/Default/Default-light.css') # ... build the theme files - sassc = find_program('sassc', required: false) - if not sassc.found() - subproject('sassc') - sassc = find_program('sassc', required: true) - endif - - if sassc.found() - sassc_opts = [ '-a', '-M', '-t', 'compact' ] + sassc = find_program('sassc', native: true) + sassc_opts = [ '-a', '-M', '-t', 'compact' ] - subdir('theme/Default') + subdir('theme/Default') - theme_deps += [ - default_theme_deps, - ] - endif + theme_deps += [ + default_theme_deps, + ] endif objcopy_supports_add_symbol = false objcopy = find_program('objcopy', required : false) if objcopy.found() - objcopy_supports_add_symbol = run_command(objcopy, '--help').stdout().contains('--add-symbol') + objcopy_supports_add_symbol = run_command(objcopy, '--help', check: false).stdout().contains('--add-symbol') endif ld = find_program('ld', required : false) @@ -1187,9 +1180,6 @@ libgtk = shared_library('gtk-4', gtk_dep_sources = [gtkversion, gtktypebuiltins_h] # Introspection -gir = find_program('g-ir-scanner', required : get_option('introspection')) -build_gir = gir.found() and (not meson.is_cross_build() or get_option('introspection').enabled()) - if build_gir gir_args = [ '-DGTK_COMPILATION', diff --git a/gtk/org.gtk.gtk4.Settings.FileChooser.gschema.xml b/gtk/org.gtk.gtk4.Settings.FileChooser.gschema.xml index d70fab035d..054a256d1a 100644 --- a/gtk/org.gtk.gtk4.Settings.FileChooser.gschema.xml +++ b/gtk/org.gtk.gtk4.Settings.FileChooser.gschema.xml @@ -55,6 +55,11 @@ <value nick='category' value='2'/> </enum> + <enum id='org.gtk.gtk4.Settings.FileChooser.ViewType'> + <value nick='list' value='0'/> + <value nick='grid' value='1'/> + </enum> + <schema id='org.gtk.gtk4.Settings.FileChooser' path='/org/gtk/gtk4/settings/file-chooser/'> <key name='location-mode' enum='org.gtk.gtk4.Settings.FileChooser.LocationMode'> <default>'path-bar'</default> @@ -169,6 +174,13 @@ 'category' -> 'Video' </description> </key> + <key name="view-type" enum="org.gtk.gtk4.Settings.FileChooser.ViewType"> + <default>'list'</default> + <summary>View type</summary> + <description> + Whether the files are shown in a list or in a grid. + </description> + </key> </schema> </schemalist> diff --git a/gtk/theme/Default/_common.scss b/gtk/theme/Default/_common.scss index b6f2f39e14..056d36c8d3 100644 --- a/gtk/theme/Default/_common.scss +++ b/gtk/theme/Default/_common.scss @@ -1652,7 +1652,15 @@ window.devel { * Pathbars * ************/ -pathbar > button { +pathbar scrolledwindow undershoot.left { + border-left: solid 1px $borders_color; +} + +pathbar scrolledwindow undershoot.right { + border-right: solid 1px $borders_color; +} + +pathbar button { &.text-button, &.image-button, & { padding-left: 4px; padding-right: 4px; @@ -3566,6 +3574,36 @@ filechooser { } #pathbarbox { border-bottom: 1px solid $bg_color; } + + gridview child { + border-radius: 12px; + margin: 12px; + + &:hover { + background-color: gtkalpha(currentColor, .04); + } + + &:active { + background-color: gtkalpha(currentColor, .08); + } + + &:selected { + background-color: gtkalpha($selected_bg_color, .15); + color: inherit; + } + + &:selected:hover { + background-color: gtkalpha($selected_bg_color, .20); + } + + &:selected:active { + background-color: gtkalpha($selected_bg_color, .25); + } + + & filethumbnail image { + filter: drop-shadow(0px 1px 1px rgba(0,0,0,0.3)); + } + } } diff --git a/gtk/ui/gtkappchooserdialog.ui b/gtk/ui/gtkappchooserdialog.ui index 212bd0c18e..1e8faf5cea 100644 --- a/gtk/ui/gtkappchooserdialog.ui +++ b/gtk/ui/gtkappchooserdialog.ui @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="UTF-8"?> <interface domain="gtk40"> <template class="GtkAppChooserDialog" parent="GtkDialog"> - <property name="title" translatable="yes">Select Application</property> + <property name="title" translatable="yes">Select App</property> <child internal-child="content_area"> <object class="GtkBox" id="dialog-vbox1"> <property name="orientation">1</property> @@ -57,13 +57,13 @@ </action-widgets> </template> <object class="GtkButton" id="show_more_button"> - <property name="label" translatable="yes">_View All Applications</property> + <property name="label" translatable="yes">_View All Apps</property> <property name="use-underline">1</property> <property name="receives-default">1</property> <signal name="clicked" handler="show_more_button_clicked_cb" swapped="no"/> </object> <object class="GtkButton" id="software_button"> - <property name="label" translatable="yes">_Find New Applications</property> + <property name="label" translatable="yes">_Find New Apps</property> <property name="use-underline">1</property> <property name="receives-default">1</property> <signal name="clicked" handler="software_button_clicked_cb" swapped="no"/> diff --git a/gtk/ui/gtkfilechooserwidget.ui b/gtk/ui/gtkfilechooserwidget.ui index 4a55e83d9c..6faecfe9eb 100644 --- a/gtk/ui/gtkfilechooserwidget.ui +++ b/gtk/ui/gtkfilechooserwidget.ui @@ -60,6 +60,13 @@ </object> </child> <child> + <object class="GtkButton" id="browse_toggle_view_button"> + <property name="icon-name">view-grid-symbolic</property> + <property name="action-name">item.toggle-view</property> + <property name="tooltip-text" translatable="yes">Grid View</property> + </object> + </child> + <child> <object class="GtkMenuButton" id="browse_new_folder_button"> <property name="tooltip-text" translatable="yes">Create Folder</property> <property name="popover">new_folder_popover</property> @@ -103,8 +110,26 @@ </object> </child> <child type="end"> - <object class="GtkSpinner" id="search_spinner"> - <property name="visible">0</property> + <object class="GtkBox"> + <property name="spacing">6</property> + + <child> + <object class="GtkSpinner" id="search_spinner"> + <property name="visible">0</property> + </object> + </child> + + <child> + <object class="GtkButton"> + <property name="action-name">item.toggle-view</property> + <binding name="icon-name"> + <lookup name="icon-name">browse_toggle_view_button</lookup> + </binding> + <binding name="tooltip-text"> + <lookup name="tooltip-text">browse_toggle_view_button</lookup> + </binding> + </object> + </child> </object> </child> </object> @@ -144,8 +169,8 @@ <style> <class name="complex"/> </style> - <signal name="activate" handler="column_view_row_activated_cb" swapped="no"/> - <signal name="keynav-failed" handler="browse_files_column_view_keynav_failed_cb"/> + <signal name="activate" handler="browse_files_view_row_activated_cb" swapped="no"/> + <signal name="keynav-failed" handler="browse_files_view_keynav_failed_cb"/> <child> <object class="GtkColumnViewColumn" id="column_view_name_column"> <property name="title" translatable="yes">Name</property> @@ -661,4 +686,75 @@ </object> </child> </object> + <object class="GtkGridView" id="browse_files_grid_view"> + <signal name="activate" handler="browse_files_view_row_activated_cb" swapped="no"/> + <signal name="keynav-failed" handler="browse_files_view_keynav_failed_cb"/> + <binding name="enable-rubberband"> + <lookup name="enable-rubberband">browse_files_column_view</lookup> + </binding> + <binding name="model"> + <lookup name="model">browse_files_column_view</lookup> + </binding> + <property name="factory"> + <object class="GtkBuilderListItemFactory"> + <property name="bytes"><![CDATA[ +<?xml version="1.0" encoding="UTF-8"?> +<interface> + <template class="GtkListItem"> + <property name="child"> + <object class="GtkFileChooserCell"> + <binding name="position"> + <lookup name="position">GtkListItem</lookup> + </binding> + <binding name="item"> + <lookup name="item">GtkListItem</lookup> + </binding> + <binding name="selected"> + <lookup name="selected">GtkListItem</lookup> + </binding> + <child> + <object class="GtkBox"> + <property name="orientation">vertical</property> + <binding name="tooltip-text"> + <closure type="gchararray" function="column_view_get_tooltip_text"> + <lookup name="item">GtkListItem</lookup> + </closure> + </binding> + <child> + <object class="GtkFileThumbnail"> + <property name="icon-size">96</property> + <property name="margin-start">6</property> + <property name="margin-end">6</property> + <binding name="file-info"> + <lookup name="item">GtkListItem</lookup> + </binding> + </object> + </child> + <child> + <object class="GtkLabel"> + <property name="lines">3</property> + <property name="wrap">True</property> + <property name="wrap-mode">word-char</property> + <property name="ellipsize">middle</property> + <property name="justify">center</property> + <attributes> + <attribute name="insert-hyphens" value="false"></attribute> + </attributes> + <binding name="label"> + <closure type="gchararray" function="column_view_get_file_display_name"> + <lookup name="item">GtkListItem</lookup> + </closure> + </binding> + </object> + </child> + </object> + </child> + </object> + </property> + </template> +</interface> + ]]></property> + </object> + </property> + </object> </interface> diff --git a/meson.build b/meson.build index cabe74c30d..b7419c62a8 100644 --- a/meson.build +++ b/meson.build @@ -12,7 +12,7 @@ project('gtk', 'c', glib_req = '>= 2.72.0' pango_req = '>= 1.50.0' # keep this in sync with .gitlab-ci/test-msys.sh -harfbuzz_req = '>= 2.6.0' +harfbuzz_req = '>= 2.6.0' fribidi_req = '>= 0.19.7' cairo_req = '>= 1.14.0' gdk_pixbuf_req = '>= 2.30.0' @@ -368,80 +368,44 @@ gtkinc = include_directories('gtk') testinc = include_directories('tests') # Dependencies -glib_dep = dependency('glib-2.0', version: glib_req, - fallback : ['glib', 'libglib_dep']) -gobject_dep = dependency('gobject-2.0', version: glib_req, - fallback : ['glib', 'libgobject_dep']) +glib_dep = dependency('glib-2.0', version: glib_req) +gobject_dep = dependency('gobject-2.0', version: glib_req) if os_win32 - giowin32_dep = dependency('gio-windows-2.0', version: glib_req, required: win32_enabled, - fallback : ['glib', 'libgio_dep']) + giowin32_dep = dependency('gio-windows-2.0', version: glib_req, required: win32_enabled) endif if os_unix - giounix_dep = dependency('gio-unix-2.0', version: glib_req, required: false, - fallback : ['glib', 'libgio_dep']) + giounix_dep = dependency('gio-unix-2.0', version: glib_req, required: false) endif -gmodule_dep = dependency('gmodule-2.0', version: glib_req, - fallback : ['glib', 'libgmodule_dep']) +gmodule_dep = dependency('gmodule-2.0', version: glib_req) cairo_dep = dependency('cairo', version: cairo_req, - fallback : ['cairo', 'libcairo_dep'], default_options: ['zlib=enabled', 'tests=disabled']) -cairogobj_dep = dependency('cairo-gobject', version: cairo_req, - fallback : ['cairo', 'libcairogobject_dep']) -pango_dep = dependency('pango', version: pango_req, - fallback : ['pango', 'libpango_dep']) -fribidi_dep = dependency('fribidi', version: fribidi_req, - fallback : ['fribidi', 'libfribidi_dep']) +cairogobj_dep = dependency('cairo-gobject', version: cairo_req) +pango_dep = dependency('pango', version: pango_req) +fribidi_dep = dependency('fribidi', version: fribidi_req) harfbuzz_dep = dependency('harfbuzz', version: harfbuzz_req, - fallback: ['harfbuzz', 'libharfbuzz_dep'], default_options: ['coretext=enabled']) # Require PangoFT2 if on X11 or wayland -require_pangoft2 = wayland_enabled or x11_enabled - -if require_pangoft2 - pangoft_dep = dependency('pangoft2', version: pango_req, - fallback : ['pango', 'libpangoft2_dep']) -else - pangoft_dep = dependency('pangoft2', required: false) -endif +pangoft_dep = dependency('pangoft2', version: pango_req, + required: wayland_enabled or x11_enabled) if win32_enabled # for GTK_IM_CONTEXT_IME pangowin32_dep = dependency('pangowin32') endif -is_msvc_like = cc.get_argument_syntax() == 'msvc' - -pangocairo_dep = dependency('pangocairo', version: pango_req, - fallback : ['pango', 'libpangocairo_dep']) +pangocairo_dep = dependency('pangocairo', version: pango_req) pixbuf_dep = dependency('gdk-pixbuf-2.0', version: gdk_pixbuf_req, - fallback : ['gdk-pixbuf', 'gdkpixbuf_dep'], default_options: ['png=enabled', 'jpeg=enabled', 'builtin_loaders=png,jpeg', 'man=false']) -png_dep = dependency(is_msvc_like ? 'png' : 'libpng', - fallback: ['libpng', 'libpng_dep'], - required: true) -tiff_dep = dependency(is_msvc_like ? 'tiff' : 'libtiff-4', - fallback: ['libtiff', 'libtiff4_dep'], - required: true) -jpeg_dep = dependency(is_msvc_like ? 'jpeg' : 'libjpeg', - fallback: ['libjpeg-turbo', 'jpeg_dep'], - required: true) - -epoxy_dep = dependency('epoxy', version: epoxy_req, - fallback: ['libepoxy', 'libepoxy_dep']) -harfbuzz_dep = dependency('harfbuzz', version: '>= 2.1.0', required: false, - fallback: ['harfbuzz', 'libharfbuzz_dep'], - default_options: ['coretext=enabled']) +png_dep = dependency('libpng', 'png') +tiff_dep = dependency('libtiff-4', 'tiff') +jpeg_dep = dependency('libjpeg', 'jpeg') + +epoxy_dep = dependency('epoxy', version: epoxy_req) xkbdep = dependency('xkbcommon', version: xkbcommon_req, required: wayland_enabled) graphene_dep = dependency('graphene-gobject-1.0', version: graphene_req, - fallback: ['graphene', 'graphene_dep'], default_options: ['tests=false']) iso_codes_dep = dependency('iso-codes', required: false) - -gidocgen_dep = dependency('gi-docgen', version: '>= 2021.1', - fallback: ['gi-docgen', 'dummy_dep'], - required: get_option('gtk_doc') and get_option('introspection').enabled(), - native: true) gi_dep = dependency('gobject-introspection-1.0', version: introspection_req, required: get_option('introspection').enabled() and get_option('build-tests')) @@ -514,11 +478,9 @@ cdata.set('HAVE_PANGOFT', pangoft_dep.found()) wayland_pkgs = [] if wayland_enabled wlclientdep = dependency('wayland-client', version: wayland_req, - fallback: 'wayland', default_options: ['documentation=false']) wlprotocolsdep = dependency('wayland-protocols', version: wayland_proto_req) - wlegldep = dependency('wayland-egl', - fallback: 'wayland') + wlegldep = dependency('wayland-egl') wlproto_dir = wlprotocolsdep.get_variable('pkgdatadir') @@ -654,10 +616,6 @@ endif cloudproviders_dep = dependency('cloudproviders', required: get_option('cloudproviders'), version: cloudproviders_req, - fallback: [ - 'libcloudproviders', - 'libcloudproviders_dep', - ], default_options: [ 'vapigen=false', ]) @@ -677,7 +635,6 @@ if not get_option('sysprof').disabled() 'sysprofd=none', 'help=false', ], - fallback: ['sysprof', 'libsysprof_capture_dep'], ) cdata.set('HAVE_SYSPROF', libsysprof_capture_dep.found()) libsysprof_dep = dependency('sysprof-4', @@ -692,7 +649,6 @@ if not get_option('sysprof').disabled() 'sysprofd=none', 'help=false', ], - fallback: ['sysprof', 'libsysprof_dep'], ) profiler_enabled = true else @@ -772,6 +728,11 @@ int main () { endif endif +# Introspection +gir = find_program('g-ir-scanner', required : get_option('introspection')) +build_gir = gir.found() and (not meson.is_cross_build() or get_option('introspection').enabled()) + + project_build_root = meson.current_build_dir() subdir('gtk/css') @@ -924,7 +885,6 @@ summary('Introspection', build_gir, section: 'Build') summary('Documentation', get_option('gtk_doc'), section: 'Build') summary('Man pages', get_option('man-pages'), section: 'Build') summary('Tests', get_option('build-tests'), section: 'Build') -summary('Install tests', get_option('install-tests'), section: 'Build') summary('Demos', get_option('demos'), section: 'Build') summary('Examples', get_option('build-examples'), section: 'Build') diff --git a/meson_options.txt b/meson_options.txt index c1df7478eb..18f6c134c1 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -123,8 +123,3 @@ option('build-tests', type: 'boolean', value: true, description : 'Build tests') - -option('install-tests', - type: 'boolean', - value: false, - description : 'Install tests') diff --git a/po/LINGUAS b/po/LINGUAS index 0488fc9c6e..b81afdd008 100644 --- a/po/LINGUAS +++ b/po/LINGUAS @@ -54,6 +54,7 @@ hu hy ia id +ie io is it diff --git a/po/POTFILES.in b/po/POTFILES.in index dce5c8db58..338e1a9c52 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -88,6 +88,7 @@ gtk/deprecated/gtkfontbutton.c gtk/deprecated/gtkfontchooser.c gtk/deprecated/gtkiconview.c gtk/deprecated/gtkliststore.c +gtk/deprecated/gtkshow.c gtk/deprecated/gtkstylecontext.c gtk/deprecated/gtktreednd.c gtk/deprecated/gtktreemodel.c @@ -177,6 +178,7 @@ gtk/gtkfilechooserutils.c gtk/gtkfilechooserwidget.c gtk/gtkfiledialog.c gtk/gtkfilefilter.c +gtk/gtkfilelauncher.c gtk/gtkfilesystemmodel.c gtk/gtkfilethumbnail.c gtk/gtkfilter.c @@ -298,7 +300,6 @@ gtk/gtkshortcutssection.c gtk/gtkshortcutsshortcut.c gtk/gtkshortcutswindow.c gtk/gtkshortcuttrigger.c -gtk/gtkshow.c gtk/gtksidebarrow.c gtk/gtksignallistitemfactory.c gtk/gtksingleselection.c @@ -12,8 +12,8 @@ msgid "" msgstr "" "Project-Id-Version: gtk+ 2.6\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gtk/-/issues/\n" -"POT-Creation-Date: 2022-08-29 18:55+0000\n" -"PO-Revision-Date: 2022-08-31 17:14+0430\n" +"POT-Creation-Date: 2022-12-09 20:36+0000\n" +"PO-Revision-Date: 2022-12-14 16:01+0330\n" "Last-Translator: Danial Behzadi <dani.behzi@ubuntu.com>\n" "Language-Team: Persian <>\n" "Language: fa\n" @@ -23,7 +23,7 @@ msgstr "" "Plural-Forms: nplurals=1; plural=0;\n" "X-Poedit-Bookmarks: 133,-1,-1,-1,-1,-1,-1,-1,-1,-1\n" "X-Poedit-SourceCharset: utf-8\n" -"X-Generator: Poedit 3.1.1\n" +"X-Generator: Poedit 3.2.2\n" #: gdk/broadway/gdkbroadway-server.c:135 #, c-format @@ -81,7 +81,7 @@ msgstr "هیچ پیکربندی بی‌نظیری برایEGL موجود Ù†ÛŒØ³Ø #, c-format msgid "EGL implementation is missing extension %s" msgid_plural "EGL implementation is missing %2$d extensions: %1$s" -msgstr[0] "پیاده‌سازی EGL %2$Id اÙزونه Ú©Ù… دارد: %1$s" +msgstr[0] "پیاده سازی EGL %2$Id اÙزونه Ú©Ù… دارد: %1$s" #: gdk/gdkdisplay.c:1658 msgid "libEGL not available in this sandbox" @@ -112,12 +112,12 @@ msgstr "کشیدن Ùˆ رها کردن از دیگر برنامه‌ها پشتی msgid "No compatible formats to transfer contents." msgstr "هیچ قالب سازگاری برای انتقال Ù…Øتویات وجود ندارد." -#: gdk/gdkglcontext.c:394 gdk/x11/gdkglcontext-glx.c:605 +#: gdk/gdkglcontext.c:394 gdk/x11/gdkglcontext-glx.c:610 msgid "No GL API allowed." msgstr "هیچ رابط برنامه‌نویسی GLای مجاز نیست." #: gdk/gdkglcontext.c:418 gdk/win32/gdkglcontext-win32-wgl.c:611 -#: gdk/x11/gdkglcontext-glx.c:639 +#: gdk/x11/gdkglcontext-glx.c:644 msgid "Unable to create a GL context" msgstr "امکان ساخت زمینه مناسب برای GL نبود" @@ -132,7 +132,7 @@ msgstr "برنامه از API مربوط به %s پشتبانی نمی‌کند" #. translators: This is about OpenGL backend names, like #. * "Trying to use X11 GLX, but EGL is already in use" -#: gdk/gdkglcontext.c:1822 +#: gdk/gdkglcontext.c:1814 #, c-format msgid "Trying to use %s, but %s is already in use" msgstr "تلاش شد از %s استÙاده شود، ولی %s از پیش در Øال استÙاده است" @@ -156,368 +156,368 @@ msgstr "قالب تصویر ناشناخته." #. * Scroll_lock - Scroll lock #. * KP_Space - Space (keypad) #. -#: gdk/keyname-table.h:6843 +#: gdk/keynamesprivate.h:6843 msgctxt "keyboard label" msgid "BackSpace" msgstr "پس‌بر" -#: gdk/keyname-table.h:6844 +#: gdk/keynamesprivate.h:6844 msgctxt "keyboard label" msgid "Tab" msgstr "جهش" -#: gdk/keyname-table.h:6845 +#: gdk/keynamesprivate.h:6845 msgctxt "keyboard label" msgid "Return" msgstr "بازگشت" -#: gdk/keyname-table.h:6846 +#: gdk/keynamesprivate.h:6846 msgctxt "keyboard label" msgid "Pause" msgstr "Ù…Ú©Ø«" -#: gdk/keyname-table.h:6847 +#: gdk/keynamesprivate.h:6847 msgctxt "keyboard label" msgid "Scroll_Lock" msgstr "Ù‚ÙÙ„ _لغزش" -#: gdk/keyname-table.h:6848 +#: gdk/keynamesprivate.h:6848 msgctxt "keyboard label" msgid "Sys_Req" msgstr "_درخواست سامانه" -#: gdk/keyname-table.h:6849 +#: gdk/keynamesprivate.h:6849 msgctxt "keyboard label" msgid "Escape" msgstr "گریز" -#: gdk/keyname-table.h:6850 +#: gdk/keynamesprivate.h:6850 msgctxt "keyboard label" msgid "Multi_key" msgstr "کلید _رسانه" -#: gdk/keyname-table.h:6851 +#: gdk/keynamesprivate.h:6851 msgctxt "keyboard label" msgid "Home" msgstr "خانه" -#: gdk/keyname-table.h:6852 +#: gdk/keynamesprivate.h:6852 msgctxt "keyboard label" msgid "Left" msgstr "Ú†Ù¾" -#: gdk/keyname-table.h:6853 +#: gdk/keynamesprivate.h:6853 msgctxt "keyboard label" msgid "Up" msgstr "بالا" -#: gdk/keyname-table.h:6854 +#: gdk/keynamesprivate.h:6854 msgctxt "keyboard label" msgid "Right" msgstr "راست" -#: gdk/keyname-table.h:6855 +#: gdk/keynamesprivate.h:6855 msgctxt "keyboard label" msgid "Down" msgstr "پایین" -#: gdk/keyname-table.h:6856 gtk/gtkshortcutlabel.c:212 +#: gdk/keynamesprivate.h:6856 gtk/gtkshortcutlabel.c:213 msgctxt "keyboard label" msgid "Page_Up" msgstr "صÙØه‌_بالا" -#: gdk/keyname-table.h:6857 gtk/gtkshortcutlabel.c:215 +#: gdk/keynamesprivate.h:6857 gtk/gtkshortcutlabel.c:216 msgctxt "keyboard label" msgid "Page_Down" msgstr "صÙØه‌_پایین" -#: gdk/keyname-table.h:6858 +#: gdk/keynamesprivate.h:6858 msgctxt "keyboard label" msgid "End" msgstr "پایان" -#: gdk/keyname-table.h:6859 +#: gdk/keynamesprivate.h:6859 msgctxt "keyboard label" msgid "Begin" msgstr "آغاز" -#: gdk/keyname-table.h:6860 +#: gdk/keynamesprivate.h:6860 msgctxt "keyboard label" msgid "Print" msgstr "چاپ" -#: gdk/keyname-table.h:6861 +#: gdk/keynamesprivate.h:6861 msgctxt "keyboard label" msgid "Insert" msgstr "درج" -#: gdk/keyname-table.h:6862 +#: gdk/keynamesprivate.h:6862 msgctxt "keyboard label" msgid "Num_Lock" msgstr "Ù‚ÙÙ„ _اعداد" #. Translators: KP_ means “key pad†here -#: gdk/keyname-table.h:6864 +#: gdk/keynamesprivate.h:6864 msgctxt "keyboard label" msgid "KP_Space" msgstr "_Ùاصلهٔ صÙØÙ‡ اعداد" -#: gdk/keyname-table.h:6865 +#: gdk/keynamesprivate.h:6865 msgctxt "keyboard label" msgid "KP_Tab" msgstr "_جهش صÙØÙ‡ اعداد" -#: gdk/keyname-table.h:6866 +#: gdk/keynamesprivate.h:6866 msgctxt "keyboard label" msgid "KP_Enter" msgstr "_ورود صÙØÙ‡ اعداد" -#: gdk/keyname-table.h:6867 +#: gdk/keynamesprivate.h:6867 msgctxt "keyboard label" msgid "KP_Home" msgstr "_خانه صÙØÙ‡ اعداد" -#: gdk/keyname-table.h:6868 +#: gdk/keynamesprivate.h:6868 msgctxt "keyboard label" msgid "KP_Left" msgstr "جهت _Ú†Ù¾ صÙØÙ‡ اعداد" -#: gdk/keyname-table.h:6869 +#: gdk/keynamesprivate.h:6869 msgctxt "keyboard label" msgid "KP_Up" msgstr "جهت _بالای صÙØÙ‡ اعداد" -#: gdk/keyname-table.h:6870 +#: gdk/keynamesprivate.h:6870 msgctxt "keyboard label" msgid "KP_Right" msgstr "جهت _راست صÙØÙ‡ اعداد" -#: gdk/keyname-table.h:6871 +#: gdk/keynamesprivate.h:6871 msgctxt "keyboard label" msgid "KP_Down" msgstr "جهت _پایین صÙØÙ‡ اعداد" -#: gdk/keyname-table.h:6872 +#: gdk/keynamesprivate.h:6872 msgctxt "keyboard label" msgid "KP_Page_Up" msgstr "_صÙØه‌بالای صÙØÙ‡ اعداد" -#: gdk/keyname-table.h:6873 +#: gdk/keynamesprivate.h:6873 msgctxt "keyboard label" msgid "KP_Prior" msgstr "_پیشین صÙØÙ‡ اعداد" -#: gdk/keyname-table.h:6874 +#: gdk/keynamesprivate.h:6874 msgctxt "keyboard label" msgid "KP_Page_Down" msgstr "_صÙØه‌پایین صÙØÙ‡ اعداد" -#: gdk/keyname-table.h:6875 +#: gdk/keynamesprivate.h:6875 msgctxt "keyboard label" msgid "KP_Next" msgstr "_بعدی صÙØÙ‡ اعداد" -#: gdk/keyname-table.h:6876 +#: gdk/keynamesprivate.h:6876 msgctxt "keyboard label" msgid "KP_End" msgstr "_پایان صÙØÙ‡ اعداد" -#: gdk/keyname-table.h:6877 +#: gdk/keynamesprivate.h:6877 msgctxt "keyboard label" msgid "KP_Begin" msgstr "Ø¢_غاز صÙØÙ‡ اعداد" -#: gdk/keyname-table.h:6878 +#: gdk/keynamesprivate.h:6878 msgctxt "keyboard label" msgid "KP_Insert" msgstr "_درج صÙØÙ‡ اعداد" -#: gdk/keyname-table.h:6879 +#: gdk/keynamesprivate.h:6879 msgctxt "keyboard label" msgid "KP_Delete" msgstr "_Øذ٠صÙØÙ‡ اعداد" -#: gdk/keyname-table.h:6880 +#: gdk/keynamesprivate.h:6880 msgctxt "keyboard label" msgid "Delete" msgstr "ØØ°Ù" -#: gdk/keyname-table.h:6881 +#: gdk/keynamesprivate.h:6881 msgctxt "keyboard label" msgid "MonBrightnessUp" msgstr "اÙزایش درخشندگی صÙØه‌نمایش" -#: gdk/keyname-table.h:6882 +#: gdk/keynamesprivate.h:6882 msgctxt "keyboard label" msgid "MonBrightnessDown" msgstr "کاهش درخشندگی صÙØه‌نمایش" -#: gdk/keyname-table.h:6883 +#: gdk/keynamesprivate.h:6883 msgctxt "keyboard label" msgid "KbdBrightnessUp" msgstr "اÙزایش درخشندگی" -#: gdk/keyname-table.h:6884 +#: gdk/keynamesprivate.h:6884 msgctxt "keyboard label" msgid "KbdBrightnessDown" msgstr "کاهش درخشندگی" -#: gdk/keyname-table.h:6885 +#: gdk/keynamesprivate.h:6885 msgctxt "keyboard label" msgid "AudioMute" msgstr "بی‌صدا" -#: gdk/keyname-table.h:6886 +#: gdk/keynamesprivate.h:6886 msgctxt "keyboard label" msgid "AudioMicMute" msgstr "میکروÙÙ† بی‌صدا" -#: gdk/keyname-table.h:6887 +#: gdk/keynamesprivate.h:6887 msgctxt "keyboard label" msgid "AudioLowerVolume" msgstr "کاهش بلندی صدا" -#: gdk/keyname-table.h:6888 +#: gdk/keynamesprivate.h:6888 msgctxt "keyboard label" msgid "AudioRaiseVolume" msgstr "اÙزایش بلندی صدا" -#: gdk/keyname-table.h:6889 +#: gdk/keynamesprivate.h:6889 msgctxt "keyboard label" msgid "AudioPlay" msgstr "پخش صوت" -#: gdk/keyname-table.h:6890 +#: gdk/keynamesprivate.h:6890 msgctxt "keyboard label" msgid "AudioStop" msgstr "توق٠صوت" -#: gdk/keyname-table.h:6891 +#: gdk/keynamesprivate.h:6891 msgctxt "keyboard label" msgid "AudioNext" msgstr "صوت بعدی" -#: gdk/keyname-table.h:6892 +#: gdk/keynamesprivate.h:6892 msgctxt "keyboard label" msgid "AudioPrev" msgstr "صوت قبلی" -#: gdk/keyname-table.h:6893 +#: gdk/keynamesprivate.h:6893 msgctxt "keyboard label" msgid "AudioRecord" msgstr "ضبط صوت" -#: gdk/keyname-table.h:6894 +#: gdk/keynamesprivate.h:6894 msgctxt "keyboard label" msgid "AudioPause" msgstr "Ù…Ú©Ø« صوت" -#: gdk/keyname-table.h:6895 +#: gdk/keynamesprivate.h:6895 msgctxt "keyboard label" msgid "AudioRewind" msgstr "عقب‌بردن صوت" -#: gdk/keyname-table.h:6896 +#: gdk/keynamesprivate.h:6896 msgctxt "keyboard label" msgid "AudioMedia" msgstr "رسانه صوتی" -#: gdk/keyname-table.h:6897 +#: gdk/keynamesprivate.h:6897 msgctxt "keyboard label" msgid "Eject" msgstr "بیرون دادن" -#: gdk/keyname-table.h:6898 +#: gdk/keynamesprivate.h:6898 msgctxt "keyboard label" msgid "Explorer" msgstr "کاوشگر" -#: gdk/keyname-table.h:6899 +#: gdk/keynamesprivate.h:6899 msgctxt "keyboard label" msgid "Calculator" msgstr "ماشین‌Øساب" -#: gdk/keyname-table.h:6900 +#: gdk/keynamesprivate.h:6900 msgctxt "keyboard label" msgid "Mail" msgstr "نامه" -#: gdk/keyname-table.h:6901 +#: gdk/keynamesprivate.h:6901 msgctxt "keyboard label" msgid "WWW" msgstr "وب" -#: gdk/keyname-table.h:6902 +#: gdk/keynamesprivate.h:6902 msgctxt "keyboard label" msgid "Search" msgstr "جست‌وجو" -#: gdk/keyname-table.h:6903 +#: gdk/keynamesprivate.h:6903 msgctxt "keyboard label" msgid "Tools" msgstr "ابزارها" -#: gdk/keyname-table.h:6904 +#: gdk/keynamesprivate.h:6904 msgctxt "keyboard label" msgid "ScreenSaver" msgstr "Ù…ØاÙظ صÙØه‌نمایش" -#: gdk/keyname-table.h:6905 +#: gdk/keynamesprivate.h:6905 msgctxt "keyboard label" msgid "Battery" msgstr "باتری" -#: gdk/keyname-table.h:6906 +#: gdk/keynamesprivate.h:6906 msgctxt "keyboard label" msgid "Launch1" msgstr "اجرای Û±" -#: gdk/keyname-table.h:6907 +#: gdk/keynamesprivate.h:6907 msgctxt "keyboard label" msgid "Forward" msgstr "جلو" -#: gdk/keyname-table.h:6908 +#: gdk/keynamesprivate.h:6908 msgctxt "keyboard label" msgid "Back" msgstr "عقب" -#: gdk/keyname-table.h:6909 +#: gdk/keynamesprivate.h:6909 msgctxt "keyboard label" msgid "Sleep" msgstr "خواب" -#: gdk/keyname-table.h:6910 +#: gdk/keynamesprivate.h:6910 msgctxt "keyboard label" msgid "Hibernate" msgstr "خواب زمستانی" -#: gdk/keyname-table.h:6911 +#: gdk/keynamesprivate.h:6911 msgctxt "keyboard label" msgid "WLAN" msgstr "شبکهٔ Ù…Øلّی بی‌سیم" -#: gdk/keyname-table.h:6912 +#: gdk/keynamesprivate.h:6912 msgctxt "keyboard label" msgid "WebCam" msgstr "وب‌کم" -#: gdk/keyname-table.h:6913 +#: gdk/keynamesprivate.h:6913 msgctxt "keyboard label" msgid "Display" msgstr "نمایشگر" -#: gdk/keyname-table.h:6914 +#: gdk/keynamesprivate.h:6914 msgctxt "keyboard label" msgid "TouchpadToggle" msgstr "تغییرØالت صÙØه‌لمسی" -#: gdk/keyname-table.h:6915 +#: gdk/keynamesprivate.h:6915 msgctxt "keyboard label" msgid "WakeUp" msgstr "بیدار" -#: gdk/keyname-table.h:6916 +#: gdk/keynamesprivate.h:6916 msgctxt "keyboard label" msgid "Suspend" msgstr "تعلیق" @@ -565,10 +565,10 @@ msgstr "نتوانست دادهٔ TIFF را بار کند" msgid "Reading data failed at row %d" msgstr "خواندن داده‌ها در ردی٠%Id شکست خورد" -#: gdk/macos/gdkmacosclipboard.c:557 gdk/wayland/gdkclipboard-wayland.c:231 -#: gdk/wayland/gdkdrop-wayland.c:203 gdk/wayland/gdkprimary-wayland.c:317 +#: gdk/macos/gdkmacosclipboard.c:557 gdk/wayland/gdkclipboard-wayland.c:240 +#: gdk/wayland/gdkdrop-wayland.c:208 gdk/wayland/gdkprimary-wayland.c:336 #: gdk/win32/gdkdrop-win32.c:1018 gdk/win32/gdkdrop-win32.c:1063 -#: gdk/x11/gdkclipboard-x11.c:791 gdk/x11/gdkdrop-x11.c:233 +#: gdk/x11/gdkclipboard-x11.c:805 gdk/x11/gdkdrop-x11.c:235 msgid "No compatible transfer format found" msgstr "هیچ قالب انتقال سازگاری پیدا نشد" @@ -696,7 +696,7 @@ msgstr "شکست در تغییر Ø´Ú©Ù„ قالب W32 دادهٔ ک‌ور 0x%x Ø #: gdk/win32/gdkglcontext-win32-wgl.c:276 gdk/win32/gdkglcontext-win32-wgl.c:293 msgid "No GL implementation is available" -msgstr "هیچ پیاده‌سازی GLای پیدا نشد" +msgstr "هیچ پیاده سازی GLای پیدا نشد" #: gdk/win32/gdkglcontext-win32-wgl.c:577 msgid "No available configurations for the given pixel format" @@ -752,27 +752,27 @@ msgid "Opening %d Item" msgid_plural "Opening %d Items" msgstr[0] "درØال گشودن %Id مورد" -#: gdk/x11/gdkclipboard-x11.c:461 +#: gdk/x11/gdkclipboard-x11.c:475 msgid "Clipboard manager could not store selection." msgstr "مدیر تخته‌گیره نتوانست گزینش را ذخیره کند." -#: gdk/x11/gdkclipboard-x11.c:641 +#: gdk/x11/gdkclipboard-x11.c:655 msgid "Cannot store clipboard. No clipboard manager is active." msgstr "نتوانست تخته‌گیره را ذخیره کند. هیچ مدیر تخته‌گیره‌ای Ùعّال نیست." -#: gdk/x11/gdkglcontext-glx.c:755 +#: gdk/x11/gdkglcontext-glx.c:760 msgid "No GLX configurations available" msgstr "هیچ پیکربندی‌ای برای GLX موجود نیست" -#: gdk/x11/gdkglcontext-glx.c:828 +#: gdk/x11/gdkglcontext-glx.c:833 msgid "No GLX configuration with required features found" msgstr "هیچ پیکربندی‌ای با ویژگی‌های موردنیاز برای GLX موجود نیست" -#: gdk/x11/gdkglcontext-glx.c:902 +#: gdk/x11/gdkglcontext-glx.c:907 msgid "GLX is not supported" msgstr "GLX پشتیبانی نمی‌شود" -#: gdk/x11/gdkselectioninputstream-x11.c:462 +#: gdk/x11/gdkselectioninputstream-x11.c:469 #, c-format msgid "Format %s not supported" msgstr "قالب «%s» پشتیبانی نمی‌شود" @@ -838,53 +838,53 @@ msgstr "گزینش رنگ" #: gtk/a11y/gtkatspiaction.c:690 msgctxt "accessibility" msgid "Activate" -msgstr "Ùعّال‌سازی" +msgstr "Ùعّال سازی" #: gtk/a11y/gtkatspiaction.c:380 msgctxt "accessibility" msgid "Activates the color" -msgstr "Ùعّال‌سازی رنگ" +msgstr "Ùعّال سازی رنگ" #: gtk/a11y/gtkatspiaction.c:387 msgctxt "accessibility" msgid "Customize" -msgstr "سÙارشی‌سازی" +msgstr "سÙارشی سازی" #: gtk/a11y/gtkatspiaction.c:388 msgctxt "accessibility" msgid "Customizes the color" -msgstr "سÙارشی‌سازی رنگ" +msgstr "سÙارشی سازی رنگ" #: gtk/a11y/gtkatspiaction.c:440 msgctxt "accessibility" msgid "Activates the expander" -msgstr "Ùعّال‌سازی گسترنده" +msgstr "Ùعّال سازی گسترنده" #: gtk/a11y/gtkatspiaction.c:496 gtk/a11y/gtkatspiaction.c:604 #: gtk/a11y/gtkatspiaction.c:691 msgctxt "accessibility" msgid "Activates the entry" -msgstr "Ùعّال‌سازی ورودی" +msgstr "Ùعّال سازی ورودی" #: gtk/a11y/gtkatspiaction.c:503 msgctxt "accessibility" msgid "Activate primary icon" -msgstr "Ùعّال‌سازی نقشک نخستین" +msgstr "Ùعّال سازی نقشک نخستین" #: gtk/a11y/gtkatspiaction.c:504 msgctxt "accessibility" msgid "Activates the primary icon of the entry" -msgstr "Ùعّال‌سازی نقشک نخستین ورودی" +msgstr "Ùعّال سازی نقشک نخستین ورودی" #: gtk/a11y/gtkatspiaction.c:511 msgctxt "accessibility" msgid "Activate secondary icon" -msgstr "Ùعّال‌سازی نقشک ثانویه" +msgstr "Ùعّال سازی نقشک ثانویه" #: gtk/a11y/gtkatspiaction.c:512 msgctxt "accessibility" msgid "Activates the secondary icon of the entry" -msgstr "Ùعّال‌سازی نقشک ثانویهٔ ورودی" +msgstr "Ùعّال سازی نقشک ثانویهٔ ورودی" #: gtk/a11y/gtkatspiaction.c:611 msgctxt "accessibility" @@ -899,12 +899,12 @@ msgstr "نمایش Ù…Øتوای ورودی گذرواژه" #: gtk/a11y/gtkatspiaction.c:698 msgctxt "accessibility" msgid "Clear" -msgstr "پاک‌سازی" +msgstr "پاک سازی" #: gtk/a11y/gtkatspiaction.c:699 msgctxt "accessibility" msgid "Clears the contents of the entry" -msgstr "پاک‌سازی Ù…Øتوای ورودی" +msgstr "پاک سازی Ù…Øتوای ورودی" #: gtk/a11y/gtkatspiroot.c:256 msgctxt "accessibility" @@ -1040,7 +1040,7 @@ msgstr "" #. * translated on keyboards used for your language, don't translate #. * this. #. -#: gtk/gtkaccelgroup.c:837 gtk/gtkshortcutlabel.c:100 gtk/gtkshortcutlabel.c:136 +#: gtk/gtkaccelgroup.c:837 gtk/gtkshortcutlabel.c:101 gtk/gtkshortcutlabel.c:137 msgctxt "keyboard label" msgid "Shift" msgstr "تبدیل" @@ -1050,7 +1050,7 @@ msgstr "تبدیل" #. * translated on keyboards used for your language, don't translate #. * this. #. -#: gtk/gtkaccelgroup.c:856 gtk/gtkshortcutlabel.c:103 gtk/gtkshortcutlabel.c:138 +#: gtk/gtkaccelgroup.c:856 gtk/gtkshortcutlabel.c:104 gtk/gtkshortcutlabel.c:139 msgctxt "keyboard label" msgid "Ctrl" msgstr "مهار" @@ -1060,7 +1060,7 @@ msgstr "مهار" #. * translated on keyboards used for your language, don't translate #. * this. #. -#: gtk/gtkaccelgroup.c:875 gtk/gtkshortcutlabel.c:106 gtk/gtkshortcutlabel.c:140 +#: gtk/gtkaccelgroup.c:875 gtk/gtkshortcutlabel.c:107 gtk/gtkshortcutlabel.c:141 msgctxt "keyboard label" msgid "Alt" msgstr "دگرساز" @@ -1070,7 +1070,7 @@ msgstr "دگرساز" #. * translated on keyboards used for your language, don't translate #. * this. #. -#: gtk/gtkaccelgroup.c:893 gtk/gtkshortcutlabel.c:112 gtk/gtkshortcutlabel.c:142 +#: gtk/gtkaccelgroup.c:893 gtk/gtkshortcutlabel.c:113 gtk/gtkshortcutlabel.c:143 msgctxt "keyboard label" msgid "Super" msgstr "سوپر" @@ -1080,7 +1080,7 @@ msgstr "سوپر" #. * translated on keyboards used for your language, don't translate #. * this. #. -#: gtk/gtkaccelgroup.c:907 gtk/gtkshortcutlabel.c:115 gtk/gtkshortcutlabel.c:144 +#: gtk/gtkaccelgroup.c:907 gtk/gtkshortcutlabel.c:116 gtk/gtkshortcutlabel.c:145 msgctxt "keyboard label" msgid "Hyper" msgstr "Ùوق" @@ -1090,7 +1090,7 @@ msgstr "Ùوق" #. * translated on keyboards used for your language, don't translate #. * this. #. -#: gtk/gtkaccelgroup.c:922 gtk/gtkshortcutlabel.c:109 gtk/gtkshortcutlabel.c:146 +#: gtk/gtkaccelgroup.c:922 gtk/gtkshortcutlabel.c:110 gtk/gtkshortcutlabel.c:147 msgctxt "keyboard label" msgid "Meta" msgstr "Ùرا" @@ -1109,7 +1109,7 @@ msgctxt "keyboard label" msgid "Space" msgstr "Ùاصله" -#: gtk/gtkaccelgroup.c:952 gtk/gtkshortcutlabel.c:171 +#: gtk/gtkaccelgroup.c:952 gtk/gtkshortcutlabel.c:172 msgctxt "keyboard label" msgid "Backslash" msgstr "ممیز وارونه" @@ -1407,7 +1407,7 @@ msgstr "گزینش" #: gtk/gtkaccessible.c:616 msgctxt "accessibility" msgid "separator" -msgstr "جداگر" +msgstr "جداساز" #: gtk/gtkaccessible.c:617 msgctxt "accessibility" @@ -1497,45 +1497,45 @@ msgstr "مورد درخت" #: gtk/gtkaccessible.c:634 msgctxt "accessibility" msgid "widget" -msgstr "ابزارگ" +msgstr "ابزارک" #: gtk/gtkaccessible.c:635 msgctxt "accessibility" msgid "window" msgstr "پنجره" -#: gtk/gtkappchooserbutton.c:316 +#: gtk/gtkappchooserbutton.c:317 msgid "Other application…" msgstr "برنامهٔ دیگر…" -#: gtk/gtkappchooserdialog.c:205 gtk/gtkappchooserdialog.c:256 +#: gtk/gtkappchooserdialog.c:204 gtk/gtkappchooserdialog.c:255 #: gtk/ui/gtkappchooserdialog.ui:4 msgid "Select Application" msgstr "گزینش برنامه" #. Translators: %s is a filename -#: gtk/gtkappchooserdialog.c:212 +#: gtk/gtkappchooserdialog.c:211 #, c-format msgid "Opening “%sâ€." msgstr "درØال گشودن «%s»." -#: gtk/gtkappchooserdialog.c:213 +#: gtk/gtkappchooserdialog.c:212 #, c-format msgid "No applications found for “%sâ€" msgstr "هیچ برنامه‌ای برای «%s» پیدا نشد" #. Translators: %s is a file type description -#: gtk/gtkappchooserdialog.c:218 +#: gtk/gtkappchooserdialog.c:217 #, c-format msgid "Opening “%s†files." msgstr "در Øال گشودن پرونده‌های «%s»." -#: gtk/gtkappchooserdialog.c:220 +#: gtk/gtkappchooserdialog.c:219 #, c-format msgid "No applications found for “%s†files" msgstr "هیچ برنامه‌ای برای پرونده‌های «%s» پیدا نشد" -#: gtk/gtkappchooserdialog.c:422 +#: gtk/gtkappchooserdialog.c:421 msgid "Failed to start GNOME Software" msgstr "شکست در اجرای نرم‌اÙزارهای گنوم" @@ -1662,7 +1662,7 @@ msgstr "%Id" #: gtk/gtkcellrendereraccel.c:287 msgctxt "Accelerator" msgid "Disabled" -msgstr "از کار انداخته شده" +msgstr "از کار اÙتاده" #. This label is displayed in a treeview cell displaying #. * an accelerator key combination that is not valid according @@ -2081,9 +2081,9 @@ msgstr "یک پرونده با همان نام در Øال Øاضر وجود Ø¯Ø #: gtk/gtkfilechoosernative.c:509 gtk/gtkfilechoosernative.c:580 #: gtk/gtkfilechooserwidget.c:1210 gtk/gtkfilechooserwidget.c:5800 #: gtk/gtkmessagedialog.c:166 gtk/gtkmessagedialog.c:175 gtk/gtkmountoperation.c:608 -#: gtk/gtkpagesetupunixdialog.c:283 gtk/gtkprintbackend.c:640 +#: gtk/gtkpagesetupunixdialog.c:283 gtk/gtkprintbackend.c:637 #: gtk/gtkprinteroptionwidget.c:721 gtk/gtkprintunixdialog.c:651 -#: gtk/gtkprintunixdialog.c:807 gtk/gtkwindow.c:6113 gtk/inspector/css-editor.c:248 +#: gtk/gtkprintunixdialog.c:807 gtk/gtkwindow.c:6152 gtk/inspector/css-editor.c:248 #: gtk/inspector/recorder.c:1723 gtk/ui/gtkappchooserdialog.ui:45 #: gtk/ui/gtkassistant.ui:52 gtk/ui/gtkcolorchooserdialog.ui:33 #: gtk/ui/gtkfontchooserdialog.ui:24 @@ -2091,7 +2091,7 @@ msgid "_Cancel" msgstr "_انصراÙ" #: gtk/gtkfilechoosernative.c:510 gtk/gtkfilechoosernative.c:574 -#: gtk/gtkplacessidebar.c:3128 gtk/gtkplacessidebar.c:3213 gtk/gtkplacesview.c:1658 +#: gtk/gtkplacessidebar.c:3146 gtk/gtkplacessidebar.c:3231 gtk/gtkplacesview.c:1659 msgid "_Open" msgstr "_گشودن" @@ -2108,7 +2108,7 @@ msgstr "انتخاب این Ú©Ù‡ کدام نوع پرونده‌ها نمایش #. * is a hostname. Nautilus and the panel contain the same string #. * to translate. #. -#: gtk/gtkfilechooserutils.c:361 +#: gtk/gtkfilechooserutils.c:362 #, c-format msgid "%1$s on %2$s" msgstr "%1$s روی %2$s" @@ -2173,7 +2173,7 @@ msgid "If you delete an item, it will be permanently lost." msgstr "اگر موردی را پاک کنید، برای همیشه از دست خواهد رÙت." #: gtk/gtkfilechooserwidget.c:1211 gtk/gtkfilechooserwidget.c:1827 -#: gtk/gtklabel.c:5652 gtk/gtktext.c:6051 gtk/gtktextview.c:8975 +#: gtk/gtklabel.c:5652 gtk/gtktext.c:6061 gtk/gtktextview.c:8966 msgid "_Delete" msgstr "_ØØ°Ù" @@ -2202,7 +2202,7 @@ msgid "_Add to Bookmarks" msgstr "_اÙزودن به نشانک‌ها" #: gtk/gtkfilechooserwidget.c:1823 gtk/gtkplacessidebar.c:2310 -#: gtk/gtkplacessidebar.c:3249 gtk/ui/gtkfilechooserwidget.ui:465 +#: gtk/gtkplacessidebar.c:3267 gtk/ui/gtkfilechooserwidget.ui:465 msgid "_Rename" msgstr "_تغییر نام" @@ -2373,7 +2373,7 @@ msgstr "شما دسترسی به پوشه مشخص شده را ندارید." msgid "Could not send the search request" msgstr "نمی‌توان درخواست جست‌وجو را ارسال کرد" -#: gtk/gtkfilechooserwidget.c:6876 +#: gtk/gtkfilechooserwidget.c:6877 msgid "Accessed" msgstr "در دسترس" @@ -2466,19 +2466,19 @@ msgstr "دگرگونه‌های نویسه" msgid "OpenGL context creation failed" msgstr "ساخت زمینه OpenGL شکست خورد" -#: gtk/gtklabel.c:5649 gtk/gtktext.c:6039 gtk/gtktextview.c:8963 +#: gtk/gtklabel.c:5649 gtk/gtktext.c:6049 gtk/gtktextview.c:8954 msgid "Cu_t" msgstr "_برش" -#: gtk/gtklabel.c:5650 gtk/gtktext.c:6043 gtk/gtktextview.c:8967 +#: gtk/gtklabel.c:5650 gtk/gtktext.c:6053 gtk/gtktextview.c:8958 msgid "_Copy" msgstr "_رونوشت" -#: gtk/gtklabel.c:5651 gtk/gtktext.c:6047 gtk/gtktextview.c:8971 +#: gtk/gtklabel.c:5651 gtk/gtktext.c:6057 gtk/gtktextview.c:8962 msgid "_Paste" msgstr "_چسباندن" -#: gtk/gtklabel.c:5657 gtk/gtktext.c:6060 gtk/gtktextview.c:8996 +#: gtk/gtklabel.c:5657 gtk/gtktext.c:6070 gtk/gtktextview.c:8987 msgid "Select _All" msgstr "انتخاب _همه" @@ -2498,15 +2498,15 @@ msgstr "_رونوشت از نشانی" msgid "Invalid URI" msgstr "نشانی نامعتبر" -#: gtk/gtklockbutton.c:285 gtk/ui/gtklockbutton.ui:20 +#: gtk/gtklockbutton.c:286 gtk/ui/gtklockbutton.ui:20 msgid "Lock" msgstr "Ù‚ÙÙ„" -#: gtk/gtklockbutton.c:297 gtk/ui/gtklockbutton.ui:26 +#: gtk/gtklockbutton.c:298 gtk/ui/gtklockbutton.ui:26 msgid "Unlock" msgstr "Ù‚Ùل‌گشایی" -#: gtk/gtklockbutton.c:309 +#: gtk/gtklockbutton.c:310 msgid "" "Dialog is unlocked.\n" "Click to prevent further changes" @@ -2514,7 +2514,7 @@ msgstr "" "Ù…Øاوره باز شده است.\n" "جهت جلوگیری از تغییرات آتی کلیک کنید" -#: gtk/gtklockbutton.c:321 +#: gtk/gtklockbutton.c:322 msgid "" "Dialog is locked.\n" "Click to make changes" @@ -2522,7 +2522,7 @@ msgstr "" "Ù…Øاوره Ù‚ÙÙ„ شده است.\n" "جهت ایجاد تغییرات کلیک کنید" -#: gtk/gtklockbutton.c:333 +#: gtk/gtklockbutton.c:334 msgid "" "System policy prevents changes.\n" "Contact your system administrator" @@ -2535,7 +2535,7 @@ msgstr "" #. * Do *not* translate it to "predefinito:LTR", if it #. * it isn't default:LTR or default:RTL it will not work #. -#: gtk/gtkmain.c:786 +#: gtk/gtkmain.c:788 msgid "default:LTR" msgstr "default:RTL" @@ -2545,7 +2545,7 @@ msgstr "default:RTL" #. * the separator that your locale uses or use "%Id" instead #. * of "%d" if your locale uses localized digits. #. -#: gtk/gtkmediacontrols.c:99 +#: gtk/gtkmediacontrols.c:100 #, c-format msgctxt "long time format" msgid "%d:%02d:%02d" @@ -2557,7 +2557,7 @@ msgstr "%Id:%I02d:%I02d" #. * change ":" to the separator that your locale uses or use #. * "%Id" instead of "%d" if your locale uses localized digits. #. -#: gtk/gtkmediacontrols.c:107 +#: gtk/gtkmediacontrols.c:108 #, c-format msgctxt "long time format" msgid "-%d:%02d:%02d" @@ -2569,7 +2569,7 @@ msgstr "-%Id:%I02d:%I02d" #. * ":" to the separator that your locale uses or use "%Id" #. * instead of "%d" if your locale uses localized digits. #. -#: gtk/gtkmediacontrols.c:118 +#: gtk/gtkmediacontrols.c:119 #, c-format msgctxt "short time format" msgid "-%d:%02d" @@ -2581,14 +2581,14 @@ msgstr "-%Id:%I02d" #. * separator that your locale uses or use "%Id" instead of #. * "%d" if your locale uses localized digits. #. -#: gtk/gtkmediacontrols.c:127 +#: gtk/gtkmediacontrols.c:128 #, c-format msgctxt "short time format" msgid "%d:%02d" msgstr "%Id:%I02d" -#: gtk/gtkmessagedialog.c:158 gtk/gtkmessagedialog.c:176 gtk/gtkprintbackend.c:641 -#: gtk/gtkwindow.c:6114 +#: gtk/gtkmessagedialog.c:158 gtk/gtkmessagedialog.c:176 gtk/gtkprintbackend.c:638 +#: gtk/gtkwindow.c:6153 msgid "_OK" msgstr "_تأیید" @@ -2670,10 +2670,10 @@ msgstr "ناتوان در پایان دادن به Ùرایند" msgid "_End Process" msgstr "_پایان دادن به Ùرایند" -#: gtk/gtkmountoperation-stub.c:62 +#: gtk/gtkmountoperation-stub.c:61 #, c-format msgid "Cannot kill process with PID %d. Operation is not implemented." -msgstr "نمی‌توان Ùرایند با شناسهٔ %Id را کشت. این کنش پیاده‌سازی نشده است." +msgstr "نمی‌توان Ùرایند با شناسهٔ %Id را کشت. عملیان پیاده سازی نشده." #. translators: this string is a name for the 'less' command #: gtk/gtkmountoperation-x11.c:984 @@ -2858,7 +2858,7 @@ msgstr "دیگر مکان‌ها" msgid "Show other locations" msgstr "نمایش دیگر مکان‌ها" -#: gtk/gtkplacessidebar.c:1962 gtk/gtkplacessidebar.c:2963 +#: gtk/gtkplacessidebar.c:1962 gtk/gtkplacessidebar.c:2981 #, c-format msgid "Unable to start “%sâ€" msgstr "نتوانست %s را شروع کند" @@ -2887,104 +2887,104 @@ msgstr "این نام از پیش گرÙته شده" msgid "Name" msgstr "نام" -#: gtk/gtkplacessidebar.c:2504 +#: gtk/gtkplacessidebar.c:2522 #, c-format msgid "Unable to unmount “%sâ€" msgstr "نتوانست %s را پیاده کند" -#: gtk/gtkplacessidebar.c:2680 +#: gtk/gtkplacessidebar.c:2698 #, c-format msgid "Unable to stop “%sâ€" msgstr "نتوانست %s را متوقّ٠کند" -#: gtk/gtkplacessidebar.c:2709 +#: gtk/gtkplacessidebar.c:2727 #, c-format msgid "Unable to eject “%sâ€" msgstr "نتوانست %s را بیرون دهد" -#: gtk/gtkplacessidebar.c:2738 gtk/gtkplacessidebar.c:2767 +#: gtk/gtkplacessidebar.c:2756 gtk/gtkplacessidebar.c:2785 #, c-format msgid "Unable to eject %s" msgstr "نتوانست %s را بیرون دهد" -#: gtk/gtkplacessidebar.c:2915 +#: gtk/gtkplacessidebar.c:2933 #, c-format msgid "Unable to poll “%s†for media changes" msgstr "نتوانست %s را برای تغییرات رسانه‌ای بررسی کند" -#: gtk/gtkplacessidebar.c:3134 gtk/gtkplacessidebar.c:3221 gtk/gtkplacesview.c:1662 +#: gtk/gtkplacessidebar.c:3152 gtk/gtkplacessidebar.c:3239 gtk/gtkplacesview.c:1663 msgid "Open in New _Tab" msgstr "گشودن در _زبانهٔ جدید" -#: gtk/gtkplacessidebar.c:3140 gtk/gtkplacessidebar.c:3230 gtk/gtkplacesview.c:1667 +#: gtk/gtkplacessidebar.c:3158 gtk/gtkplacessidebar.c:3248 gtk/gtkplacesview.c:1668 msgid "Open in New _Window" msgstr "گشودن در _پنجرهٔ جدید" -#: gtk/gtkplacessidebar.c:3241 +#: gtk/gtkplacessidebar.c:3259 msgid "_Add Bookmark" msgstr "_اÙزودن نشانک" -#: gtk/gtkplacessidebar.c:3245 +#: gtk/gtkplacessidebar.c:3263 msgid "_Remove" msgstr "_برداشتن" -#: gtk/gtkplacessidebar.c:3261 gtk/gtkplacesview.c:1692 +#: gtk/gtkplacessidebar.c:3279 gtk/gtkplacesview.c:1693 msgid "_Mount" msgstr "_سوار کردن" -#: gtk/gtkplacessidebar.c:3270 gtk/gtkplacesview.c:1681 +#: gtk/gtkplacessidebar.c:3288 gtk/gtkplacesview.c:1682 msgid "_Unmount" msgstr "_پیاده کردن" -#: gtk/gtkplacessidebar.c:3277 +#: gtk/gtkplacessidebar.c:3295 msgid "_Eject" msgstr "_بیرون دادن" -#: gtk/gtkplacessidebar.c:3287 +#: gtk/gtkplacessidebar.c:3305 msgid "_Detect Media" msgstr "_تشخیص رسانه" -#: gtk/gtkplacessidebar.c:3296 +#: gtk/gtkplacessidebar.c:3314 msgid "_Start" msgstr "_شروع" -#: gtk/gtkplacessidebar.c:3298 +#: gtk/gtkplacessidebar.c:3316 msgid "_Power On" msgstr "_روشن کردن" -#: gtk/gtkplacessidebar.c:3299 +#: gtk/gtkplacessidebar.c:3317 msgid "_Connect Drive" msgstr "_وصل کردن گرداننده" -#: gtk/gtkplacessidebar.c:3300 +#: gtk/gtkplacessidebar.c:3318 msgid "_Start Multi-disk Device" msgstr "_شروع اÙزارهٔ چنددیسکه" -#: gtk/gtkplacessidebar.c:3301 +#: gtk/gtkplacessidebar.c:3319 msgid "_Unlock Device" msgstr "Ù‚Ùل‌_گشایی اÙزاره" -#: gtk/gtkplacessidebar.c:3311 +#: gtk/gtkplacessidebar.c:3329 msgid "_Stop" msgstr "_توقّÙ" -#: gtk/gtkplacessidebar.c:3313 +#: gtk/gtkplacessidebar.c:3331 msgid "_Safely Remove Drive" msgstr "_برداشتن امن گرداننده" -#: gtk/gtkplacessidebar.c:3314 +#: gtk/gtkplacessidebar.c:3332 msgid "_Disconnect Drive" msgstr "_قطع کردن گرداننده" -#: gtk/gtkplacessidebar.c:3315 +#: gtk/gtkplacessidebar.c:3333 msgid "_Stop Multi-disk Device" msgstr "_توق٠اÙزارهٔ چنددیسکه" -#: gtk/gtkplacessidebar.c:3316 +#: gtk/gtkplacessidebar.c:3334 msgid "_Lock Device" msgstr "_Ù‚ÙÙ„ اÙزاره" -#: gtk/gtkplacessidebar.c:3804 gtk/gtkplacesview.c:1103 +#: gtk/gtkplacessidebar.c:3823 gtk/gtkplacesview.c:1103 msgid "Computer" msgstr "رایانه" @@ -3007,71 +3007,71 @@ msgid "Con_nect" msgstr "اتّ_صال" #. if it wasn't cancelled show a dialog -#: gtk/gtkplacesview.c:1366 +#: gtk/gtkplacesview.c:1367 msgid "Unable to unmount volume" msgstr "نتوانست Øجم را پیاده کند" #. Allow to cancel the operation -#: gtk/gtkplacesview.c:1458 +#: gtk/gtkplacesview.c:1459 msgid "Cance_l" msgstr "_لغو" -#: gtk/gtkplacesview.c:1605 +#: gtk/gtkplacesview.c:1606 msgid "AppleTalk" msgstr "اپل‌تاک" -#: gtk/gtkplacesview.c:1611 +#: gtk/gtkplacesview.c:1612 msgid "File Transfer Protocol" msgstr "قرارداد انتقال پرونده" #. Translators: do not translate ftp:// and ftps:// -#: gtk/gtkplacesview.c:1613 +#: gtk/gtkplacesview.c:1614 msgid "ftp:// or ftps://" msgstr "ftp:// یا ftps://" -#: gtk/gtkplacesview.c:1619 +#: gtk/gtkplacesview.c:1620 msgid "Network File System" msgstr "سامانهٔ پروندهٔ شبکه" -#: gtk/gtkplacesview.c:1625 +#: gtk/gtkplacesview.c:1626 msgid "Samba" msgstr "سامبا" -#: gtk/gtkplacesview.c:1631 +#: gtk/gtkplacesview.c:1632 msgid "SSH File Transfer Protocol" msgstr "قرارداد انتقال پروندهٔ SSH" #. Translators: do not translate sftp:// and ssh:// -#: gtk/gtkplacesview.c:1633 +#: gtk/gtkplacesview.c:1634 msgid "sftp:// or ssh://" msgstr "sftp:// یا ssh://" -#: gtk/gtkplacesview.c:1639 +#: gtk/gtkplacesview.c:1640 msgid "WebDAV" msgstr "وب‌دو" #. Translators: do not translate dav:// and davs:// -#: gtk/gtkplacesview.c:1641 +#: gtk/gtkplacesview.c:1642 msgid "dav:// or davs://" msgstr "dav:// یا davs://" -#: gtk/gtkplacesview.c:1676 +#: gtk/gtkplacesview.c:1677 msgid "_Disconnect" msgstr "_قطع ارتباط" -#: gtk/gtkplacesview.c:1687 +#: gtk/gtkplacesview.c:1688 msgid "_Connect" msgstr "اتّ_صال" -#: gtk/gtkplacesview.c:1871 +#: gtk/gtkplacesview.c:1905 msgid "Unable to get remote server location" msgstr "نتوانست موقعیت کارساز دوردست را بگیرد" -#: gtk/gtkplacesview.c:2014 gtk/gtkplacesview.c:2023 +#: gtk/gtkplacesview.c:2048 gtk/gtkplacesview.c:2057 msgid "Networks" msgstr "شبکه" -#: gtk/gtkplacesview.c:2014 gtk/gtkplacesview.c:2023 +#: gtk/gtkplacesview.c:2048 gtk/gtkplacesview.c:2057 msgid "On This Computer" msgstr "روی این رایانه" @@ -3094,11 +3094,11 @@ msgstr "قطع ارتباط" msgid "Unmount" msgstr "پیاده کردن" -#: gtk/gtkprintbackend.c:639 +#: gtk/gtkprintbackend.c:636 msgid "Authentication" msgstr "تأیید هویت" -#: gtk/gtkprintbackend.c:715 +#: gtk/gtkprintbackend.c:712 msgid "_Remember password" msgstr "_به‌خاطرسپاری گذرواژه" @@ -3132,7 +3132,7 @@ msgstr "وضعیت نخستین" #: gtk/gtkprintoperation.c:1684 msgctxt "print operation status" msgid "Preparing to print" -msgstr "در Øال آماده‌سازی برای چاپ" +msgstr "در Øال آماده سازی برای چاپ" #: gtk/gtkprintoperation.c:1685 msgctxt "print operation status" @@ -3172,17 +3172,17 @@ msgstr "با خطا پایان یاÙت" #: gtk/gtkprintoperation.c:2234 #, c-format msgid "Preparing %d" -msgstr "در Øال آماده‌سازی %Id" +msgstr "آماده سازی %Id" #: gtk/gtkprintoperation.c:2236 gtk/gtkprintoperation.c:2854 #, c-format msgid "Preparing" -msgstr "در Øال آماده‌سازی" +msgstr "در Øال آماده سازی" #: gtk/gtkprintoperation.c:2239 #, c-format msgid "Printing %d" -msgstr "در Øال چاپ %Id" +msgstr "چاپ کردن %Id" #: gtk/gtkprintoperation.c:2885 #, c-format @@ -3214,7 +3214,7 @@ msgstr "بدون کاغذ" #. Translators: this is a printer status. #: gtk/gtkprintoperation-win32.c:639 -#: modules/printbackends/gtkprintbackendcups.c:2660 +#: modules/printbackends/gtkprintbackendcups.c:2639 msgid "Paused" msgstr "Ù…Ú©Ø« شده" @@ -3281,35 +3281,35 @@ msgstr "در Øال گرÙتن اطلاعات٠چاپگر…" #. Translators: These strings name the possible arrangements of #. * multiple pages on a sheet when printing #. -#: gtk/gtkprintunixdialog.c:2801 modules/printbackends/gtkprintbackendcups.c:5682 +#: gtk/gtkprintunixdialog.c:2801 modules/printbackends/gtkprintbackendcups.c:5647 msgid "Left to right, top to bottom" msgstr "از Ú†Ù¾ به راست، از بالا به پایین" -#: gtk/gtkprintunixdialog.c:2801 modules/printbackends/gtkprintbackendcups.c:5682 +#: gtk/gtkprintunixdialog.c:2801 modules/printbackends/gtkprintbackendcups.c:5647 msgid "Left to right, bottom to top" msgstr "از Ú†Ù¾ به راست، از پایین به ابتدا" -#: gtk/gtkprintunixdialog.c:2802 modules/printbackends/gtkprintbackendcups.c:5683 +#: gtk/gtkprintunixdialog.c:2802 modules/printbackends/gtkprintbackendcups.c:5648 msgid "Right to left, top to bottom" msgstr "از راست به چپ، از بالا به پایین" -#: gtk/gtkprintunixdialog.c:2802 modules/printbackends/gtkprintbackendcups.c:5683 +#: gtk/gtkprintunixdialog.c:2802 modules/printbackends/gtkprintbackendcups.c:5648 msgid "Right to left, bottom to top" msgstr "از راست به چپ، از پایین به بالا" -#: gtk/gtkprintunixdialog.c:2803 modules/printbackends/gtkprintbackendcups.c:5684 +#: gtk/gtkprintunixdialog.c:2803 modules/printbackends/gtkprintbackendcups.c:5649 msgid "Top to bottom, left to right" msgstr "از بالا به پایین، از Ú†Ù¾ به راست" -#: gtk/gtkprintunixdialog.c:2803 modules/printbackends/gtkprintbackendcups.c:5684 +#: gtk/gtkprintunixdialog.c:2803 modules/printbackends/gtkprintbackendcups.c:5649 msgid "Top to bottom, right to left" msgstr "از بالا به پایین، از راست به Ú†Ù¾" -#: gtk/gtkprintunixdialog.c:2804 modules/printbackends/gtkprintbackendcups.c:5685 +#: gtk/gtkprintunixdialog.c:2804 modules/printbackends/gtkprintbackendcups.c:5650 msgid "Bottom to top, left to right" msgstr "از انتها به ابتدا، از Ú†Ù¾ به راست" -#: gtk/gtkprintunixdialog.c:2804 modules/printbackends/gtkprintbackendcups.c:5685 +#: gtk/gtkprintunixdialog.c:2804 modules/printbackends/gtkprintbackendcups.c:5650 msgid "Bottom to top, right to left" msgstr "از پایین به بالا، از راست به Ú†Ù¾" @@ -3358,14 +3358,14 @@ msgstr "هیچ برنامهٔ ثبت شده‌ای با نام «%s» برای Ù #: gtk/gtksearchentry.c:639 msgid "Clear entry" -msgstr "پاک‌سازی ورودی" +msgstr "پاک سازی ورودی" #. Translators: This string is used to mark left/right variants of modifier #. * keys in the shortcut window (e.g. Control_L vs Control_R). Please keep #. * this string very short, ideally just a single character, since it will #. * be rendered as part of the key. #. -#: gtk/gtkshortcutlabel.c:78 +#: gtk/gtkshortcutlabel.c:79 msgctxt "keyboard side marker" msgid "L" msgstr "Ú†" @@ -3375,7 +3375,7 @@ msgstr "Ú†" #. * this string very short, ideally just a single character, since it will #. * be rendered as part of the key. #. -#: gtk/gtkshortcutlabel.c:91 +#: gtk/gtkshortcutlabel.c:92 msgctxt "keyboard side marker" msgid "R" msgstr "ر" @@ -3441,19 +3441,24 @@ msgstr "هیچ نتیجه‌ای پیدا نشد" msgid "Try a different search" msgstr "جست‌وجو دیگری را امتØان کنید" -#: gtk/gtkshow.c:177 +#: gtk/gtkshow.c:175 msgid "Could not show link" msgstr "نتوانست پیوند را نشان دهد" -#: gtk/gtktext.c:6065 gtk/gtktextview.c:9001 +#: gtk/gtkstacksidebar.c:154 +msgctxt "accessibility" +msgid "Sidebar" +msgstr "نوار کناری" + +#: gtk/gtktext.c:6075 gtk/gtktextview.c:8992 msgid "Insert _Emoji" msgstr "درج _ایموجی" -#: gtk/gtktextview.c:8983 +#: gtk/gtktextview.c:8974 msgid "_Undo" msgstr "بر_گردان" -#: gtk/gtktextview.c:8987 +#: gtk/gtktextview.c:8978 msgid "_Redo" msgstr "_انجام دوباره" @@ -3480,12 +3485,12 @@ msgctxt "volume percentage" msgid "%d %%" msgstr "%Id ٪" -#: gtk/gtkwindow.c:6101 +#: gtk/gtkwindow.c:6140 #, c-format msgid "Do you want to use GTK Inspector?" msgstr "می‌خواهید از بازرس +GTK استÙاده کنید؟" -#: gtk/gtkwindow.c:6103 +#: gtk/gtkwindow.c:6142 #, c-format msgid "" "GTK Inspector is an interactive debugger that lets you explore and modify the " @@ -3495,7 +3500,7 @@ msgstr "" "بازرس +GTK یک بازرس تعاملی است Ú©Ù‡ به شما اجازه پیمایش Ùˆ تغییر هسته برنامه‌های +GTK " "را می‌دهد. استÙاده از آن ممکن است باعث شود Ú©Ù‡ برنامه‌ها Ù‚ÙÙ„ کنند یا از هم بپاشند." -#: gtk/gtkwindow.c:6108 +#: gtk/gtkwindow.c:6147 msgid "Don’t show this message again" msgstr "این پیام را دوباره نشان نده" @@ -3547,7 +3552,7 @@ msgstr "مقدار" #: gtk/inspector/action-editor.c:123 msgid "Activate" -msgstr "Ùعال‌سازی" +msgstr "Ùعال سازی" #: gtk/inspector/action-editor.c:135 msgid "Set State" @@ -4007,7 +4012,7 @@ msgstr "ضبط قاب‌ها" #: gtk/inspector/recorder.ui:27 msgid "Clear recorded frames" -msgstr "پاک‌سازی قاب‌های ضبط‌شده" +msgstr "پاک سازی قاب‌های ضبط‌شده" #: gtk/inspector/recorder.ui:34 msgid "Add debug nodes" @@ -4129,20 +4134,16 @@ msgstr "سلسله مراتب" #: gtk/inspector/type-info.ui:35 msgid "Implements" -msgstr "پیاده‌سازی‌ها" +msgstr "پیاده سازی‌ها" -#: gtk/inspector/visual.c:604 gtk/inspector/visual.c:623 +#: gtk/inspector/visual.c:603 gtk/inspector/visual.c:622 msgid "Theme is hardcoded by GTK_THEME" msgstr "تم با استÙاده از GTK_THEME رونویسی شده است" -#: gtk/inspector/visual.c:854 +#: gtk/inspector/visual.c:853 msgid "Backend does not support window scaling" msgstr "پسانه از تغییر اندازه پنجره پشتیبانی نمی‌کند" -#: gtk/inspector/visual.c:1044 -msgid "GL rendering is disabled" -msgstr "پرداخت GL از کار اÙتاده" - #: gtk/inspector/visual.ui:35 msgid "GTK Theme" msgstr "زمینهٔ GTK" @@ -4233,13 +4234,9 @@ msgstr "نمایش تمرکز" #: gtk/inspector/visual.ui:654 msgid "Simulate Touchscreen" -msgstr "شبیه‌سازی صÙØÙ‡Ù” لمسی" +msgstr "شبیه سازی صÙØÙ‡Ù” لمسی" -#: gtk/inspector/visual.ui:678 -msgid "Software GL" -msgstr "GL نرم‌اÙزاری" - -#: gtk/inspector/visual.ui:714 +#: gtk/inspector/visual.ui:689 msgid "Inspect Inspector" msgstr "بازرسی بازرس" @@ -4273,7 +4270,7 @@ msgstr "تغییر وضعیت نوار کناری" #: gtk/inspector/window.ui:253 msgid "Refresh action state" -msgstr "تازه‌سازی وضعیت کنش" +msgstr "تازه سازی وضعیت کنش" #: gtk/inspector/window.ui:327 msgid "Previous object" @@ -4780,7 +4777,7 @@ msgstr "ربع پهناها" #: gtk/open-type-layout.h:96 msgctxt "OpenType layout" msgid "Randomize" -msgstr "تصادÙی‌سازی" +msgstr "تصادÙی سازی" #: gtk/open-type-layout.h:97 msgctxt "OpenType layout" @@ -6381,404 +6378,404 @@ msgstr "نتوانست باÙتار نمونه‌گیری دوباره را تخ msgid "No audio output found" msgstr "هیچ خروجی صدایی پیدا نشد" -#: modules/printbackends/gtkprintbackendcups.c:1152 -#: modules/printbackends/gtkprintbackendcups.c:1461 +#: modules/printbackends/gtkprintbackendcups.c:1142 +#: modules/printbackends/gtkprintbackendcups.c:1449 msgid "Username:" msgstr "نام کاربری:" -#: modules/printbackends/gtkprintbackendcups.c:1153 -#: modules/printbackends/gtkprintbackendcups.c:1470 +#: modules/printbackends/gtkprintbackendcups.c:1143 +#: modules/printbackends/gtkprintbackendcups.c:1458 msgid "Password:" msgstr "گذرواژه:" -#: modules/printbackends/gtkprintbackendcups.c:1192 -#: modules/printbackends/gtkprintbackendcups.c:1483 +#: modules/printbackends/gtkprintbackendcups.c:1181 +#: modules/printbackends/gtkprintbackendcups.c:1471 #, c-format msgid "Authentication is required to print document “%s†on printer %s" msgstr "تصدیق هویت برای چاپ سند «%s» برروی چاپگر %s لازم است" -#: modules/printbackends/gtkprintbackendcups.c:1194 +#: modules/printbackends/gtkprintbackendcups.c:1183 #, c-format msgid "Authentication is required to print a document on %s" msgstr "نیاز به تأیید هویت برای چاپ یک سند روی %s" -#: modules/printbackends/gtkprintbackendcups.c:1198 +#: modules/printbackends/gtkprintbackendcups.c:1187 #, c-format msgid "Authentication is required to get attributes of job “%sâ€" msgstr "تصدیق هویت برای گرÙتن ویژگی‌های مربوط به کار «%s» لازم است" -#: modules/printbackends/gtkprintbackendcups.c:1200 +#: modules/printbackends/gtkprintbackendcups.c:1189 msgid "Authentication is required to get attributes of a job" msgstr "نیاز به تأیید هویت برای گرÙتن خصیصه‌های کاری" -#: modules/printbackends/gtkprintbackendcups.c:1204 +#: modules/printbackends/gtkprintbackendcups.c:1193 #, c-format msgid "Authentication is required to get attributes of printer %s" msgstr "نیاز به تأیید هویت برای گرÙتن خصیصه‌های چاپگر %s" -#: modules/printbackends/gtkprintbackendcups.c:1206 +#: modules/printbackends/gtkprintbackendcups.c:1195 msgid "Authentication is required to get attributes of a printer" msgstr "نیاز به تأیید هویت برای گرÙتن خصیصه‌های چاپگر" -#: modules/printbackends/gtkprintbackendcups.c:1209 +#: modules/printbackends/gtkprintbackendcups.c:1198 #, c-format msgid "Authentication is required to get default printer of %s" msgstr "نیاز به تأیید هویت برای گرÙتن چاپگر پیش‌گزیدهٔ %s" -#: modules/printbackends/gtkprintbackendcups.c:1212 +#: modules/printbackends/gtkprintbackendcups.c:1201 #, c-format msgid "Authentication is required to get printers from %s" msgstr "نیاز به تأیید هویت برای گرÙتن چاپگر‌ها از %s" -#: modules/printbackends/gtkprintbackendcups.c:1217 +#: modules/printbackends/gtkprintbackendcups.c:1206 #, c-format msgid "Authentication is required to get a file from %s" msgstr "نیاز به تأیید هویت برای گرÙتن یک پرونده از %s" -#: modules/printbackends/gtkprintbackendcups.c:1219 +#: modules/printbackends/gtkprintbackendcups.c:1208 #, c-format msgid "Authentication is required on %s" msgstr "نیاز به تأیید هویت روی %s" -#: modules/printbackends/gtkprintbackendcups.c:1455 +#: modules/printbackends/gtkprintbackendcups.c:1443 msgid "Domain:" msgstr "دامنه:" -#: modules/printbackends/gtkprintbackendcups.c:1485 +#: modules/printbackends/gtkprintbackendcups.c:1473 #, c-format msgid "Authentication is required to print document “%sâ€" msgstr "تصدیق هویت برای چاپ سند‌ «%s» لازم است" -#: modules/printbackends/gtkprintbackendcups.c:1490 +#: modules/printbackends/gtkprintbackendcups.c:1478 #, c-format msgid "Authentication is required to print this document on printer %s" msgstr "نیاز به تأیید هویت برای چاپ این سند روی چاپگر %s" -#: modules/printbackends/gtkprintbackendcups.c:1492 +#: modules/printbackends/gtkprintbackendcups.c:1480 msgid "Authentication is required to print this document" msgstr "تصدیق هویت برای چاپ این سند لازم است" -#: modules/printbackends/gtkprintbackendcups.c:2589 +#: modules/printbackends/gtkprintbackendcups.c:2568 #, c-format msgid "Printer “%s†is low on toner." msgstr "چاپگر «%s» جوهر Ú©Ù… دارد." -#: modules/printbackends/gtkprintbackendcups.c:2593 +#: modules/printbackends/gtkprintbackendcups.c:2572 #, c-format msgid "Printer “%s†has no toner left." msgstr "چاپگر «%s» هیچ جوهری ندارد." #. Translators: "Developer" like on photo development context -#: modules/printbackends/gtkprintbackendcups.c:2598 +#: modules/printbackends/gtkprintbackendcups.c:2577 #, c-format msgid "Printer “%s†is low on developer." msgstr "چاپگر «%s» توسعه‌دهنده Ú©Ù… دارد." #. Translators: "Developer" like on photo development context -#: modules/printbackends/gtkprintbackendcups.c:2603 +#: modules/printbackends/gtkprintbackendcups.c:2582 #, c-format msgid "Printer “%s†is out of developer." msgstr "چاپگر «%s» هیچ توسعه‌دهنده‌ای ندارد." #. Translators: "marker" is one color bin of the printer -#: modules/printbackends/gtkprintbackendcups.c:2608 +#: modules/printbackends/gtkprintbackendcups.c:2587 #, c-format msgid "Printer “%s†is low on at least one marker supply." msgstr "چاپگر «%s» دست‌کم یک منبع نشانگر Ú©Ù… دارد." #. Translators: "marker" is one color bin of the printer -#: modules/printbackends/gtkprintbackendcups.c:2613 +#: modules/printbackends/gtkprintbackendcups.c:2592 #, c-format msgid "Printer “%s†is out of at least one marker supply." msgstr "چاپگر «%s» دست‌کم از یک منبع نشانگر خالی است." -#: modules/printbackends/gtkprintbackendcups.c:2617 +#: modules/printbackends/gtkprintbackendcups.c:2596 #, c-format msgid "The cover is open on printer “%sâ€." msgstr "روکش روی چاپگر «%s» باز است." -#: modules/printbackends/gtkprintbackendcups.c:2621 +#: modules/printbackends/gtkprintbackendcups.c:2600 #, c-format msgid "The door is open on printer “%sâ€." msgstr "در چاپگر «%s» باز است." -#: modules/printbackends/gtkprintbackendcups.c:2625 +#: modules/printbackends/gtkprintbackendcups.c:2604 #, c-format msgid "Printer “%s†is low on paper." msgstr "چاپگر «%s» کاغذ Ú©Ù… دارد." -#: modules/printbackends/gtkprintbackendcups.c:2629 +#: modules/printbackends/gtkprintbackendcups.c:2608 #, c-format msgid "Printer “%s†is out of paper." msgstr "چاپگر «%s» هیچ کاغذی ندارد." -#: modules/printbackends/gtkprintbackendcups.c:2633 +#: modules/printbackends/gtkprintbackendcups.c:2612 #, c-format msgid "Printer “%s†is currently offline." msgstr "چاپگر «%s» هم‌اکنون برون‌خط است." -#: modules/printbackends/gtkprintbackendcups.c:2637 +#: modules/printbackends/gtkprintbackendcups.c:2616 #, c-format msgid "There is a problem on printer “%sâ€." msgstr "چاپگر «%s» مشکلی دارد." #. Translators: this is a printer status. -#: modules/printbackends/gtkprintbackendcups.c:2657 +#: modules/printbackends/gtkprintbackendcups.c:2636 msgid "Paused; Rejecting Jobs" msgstr "Ù…Ú©Ø«Ø› در Øال رد کردن کار‌ها" #. Translators: this is a printer status. -#: modules/printbackends/gtkprintbackendcups.c:2663 +#: modules/printbackends/gtkprintbackendcups.c:2642 msgid "Rejecting Jobs" msgstr "در Øال رد کردن کار‌ها" #. Translators: this string connects multiple printer states together. -#: modules/printbackends/gtkprintbackendcups.c:2704 +#: modules/printbackends/gtkprintbackendcups.c:2683 msgid "; " msgstr "Ø› " -#: modules/printbackends/gtkprintbackendcups.c:4619 -#: modules/printbackends/gtkprintbackendcups.c:4686 +#: modules/printbackends/gtkprintbackendcups.c:4584 +#: modules/printbackends/gtkprintbackendcups.c:4651 msgctxt "printing option" msgid "Two Sided" msgstr "دو رو" -#: modules/printbackends/gtkprintbackendcups.c:4620 +#: modules/printbackends/gtkprintbackendcups.c:4585 msgctxt "printing option" msgid "Paper Type" msgstr "نوع کاغذ" -#: modules/printbackends/gtkprintbackendcups.c:4621 +#: modules/printbackends/gtkprintbackendcups.c:4586 msgctxt "printing option" msgid "Paper Source" msgstr "منبع کاغذ" -#: modules/printbackends/gtkprintbackendcups.c:4622 -#: modules/printbackends/gtkprintbackendcups.c:4687 +#: modules/printbackends/gtkprintbackendcups.c:4587 +#: modules/printbackends/gtkprintbackendcups.c:4652 msgctxt "printing option" msgid "Output Tray" msgstr "خروجی کاغذ" -#: modules/printbackends/gtkprintbackendcups.c:4623 +#: modules/printbackends/gtkprintbackendcups.c:4588 msgctxt "printing option" msgid "Resolution" msgstr "تÙکیک‌پذیری" -#: modules/printbackends/gtkprintbackendcups.c:4624 +#: modules/printbackends/gtkprintbackendcups.c:4589 msgctxt "printing option" msgid "GhostScript pre-filtering" msgstr "پیش‌پالایش GhostScript" -#: modules/printbackends/gtkprintbackendcups.c:4633 +#: modules/printbackends/gtkprintbackendcups.c:4598 msgctxt "printing option value" msgid "One Sided" msgstr "یک رو" #. Translators: this is an option of "Two Sided" -#: modules/printbackends/gtkprintbackendcups.c:4635 +#: modules/printbackends/gtkprintbackendcups.c:4600 msgctxt "printing option value" msgid "Long Edge (Standard)" msgstr "لبه بلند (استاندارد)" #. Translators: this is an option of "Two Sided" -#: modules/printbackends/gtkprintbackendcups.c:4637 +#: modules/printbackends/gtkprintbackendcups.c:4602 msgctxt "printing option value" msgid "Short Edge (Flip)" msgstr "لبه کوتاه (برگشته)" #. Translators: this is an option of "Paper Source" -#: modules/printbackends/gtkprintbackendcups.c:4639 -#: modules/printbackends/gtkprintbackendcups.c:4641 -#: modules/printbackends/gtkprintbackendcups.c:4649 +#: modules/printbackends/gtkprintbackendcups.c:4604 +#: modules/printbackends/gtkprintbackendcups.c:4606 +#: modules/printbackends/gtkprintbackendcups.c:4614 msgctxt "printing option value" msgid "Auto Select" msgstr "گزینش خودکار" #. Translators: this is an option of "Paper Source" #. Translators: this is an option of "Resolution" -#: modules/printbackends/gtkprintbackendcups.c:4643 -#: modules/printbackends/gtkprintbackendcups.c:4645 -#: modules/printbackends/gtkprintbackendcups.c:4647 -#: modules/printbackends/gtkprintbackendcups.c:4651 +#: modules/printbackends/gtkprintbackendcups.c:4608 +#: modules/printbackends/gtkprintbackendcups.c:4610 +#: modules/printbackends/gtkprintbackendcups.c:4612 +#: modules/printbackends/gtkprintbackendcups.c:4616 msgctxt "printing option value" msgid "Printer Default" msgstr "پیش‌Ùرض چاپگر" #. Translators: this is an option of "GhostScript" -#: modules/printbackends/gtkprintbackendcups.c:4653 +#: modules/printbackends/gtkprintbackendcups.c:4618 msgctxt "printing option value" msgid "Embed GhostScript fonts only" msgstr "تنها قلم‌های GhostScript نهÙته شوند" #. Translators: this is an option of "GhostScript" -#: modules/printbackends/gtkprintbackendcups.c:4655 +#: modules/printbackends/gtkprintbackendcups.c:4620 msgctxt "printing option value" msgid "Convert to PS level 1" msgstr "تبدیل به Ø³Ø·Ø Û± از PS" #. Translators: this is an option of "GhostScript" -#: modules/printbackends/gtkprintbackendcups.c:4657 +#: modules/printbackends/gtkprintbackendcups.c:4622 msgctxt "printing option value" msgid "Convert to PS level 2" msgstr "تبدیل به Ø³Ø·Ø Û² از PS" #. Translators: this is an option of "GhostScript" -#: modules/printbackends/gtkprintbackendcups.c:4659 +#: modules/printbackends/gtkprintbackendcups.c:4624 msgctxt "printing option value" msgid "No pre-filtering" msgstr "بدون پیش‌پالایش" #. Translators: "Miscellaneous" is the label for a button, that opens #. up an extra panel of settings in a print dialog. -#: modules/printbackends/gtkprintbackendcups.c:4668 +#: modules/printbackends/gtkprintbackendcups.c:4633 msgctxt "printing option group" msgid "Miscellaneous" msgstr "متÙرّقه" -#: modules/printbackends/gtkprintbackendcups.c:4695 +#: modules/printbackends/gtkprintbackendcups.c:4660 msgctxt "sides" msgid "One Sided" msgstr "یک رو" #. Translators: this is an option of "Two Sided" -#: modules/printbackends/gtkprintbackendcups.c:4697 +#: modules/printbackends/gtkprintbackendcups.c:4662 msgctxt "sides" msgid "Long Edge (Standard)" msgstr "لبه بلند (استاندارد)" #. Translators: this is an option of "Two Sided" -#: modules/printbackends/gtkprintbackendcups.c:4699 +#: modules/printbackends/gtkprintbackendcups.c:4664 msgctxt "sides" msgid "Short Edge (Flip)" msgstr "لبه کوتاه (برگشته)" #. Translators: Top output bin -#: modules/printbackends/gtkprintbackendcups.c:4702 +#: modules/printbackends/gtkprintbackendcups.c:4667 msgctxt "output-bin" msgid "Top Bin" msgstr "Ù…ØÙظه بالایی" #. Translators: Middle output bin -#: modules/printbackends/gtkprintbackendcups.c:4704 +#: modules/printbackends/gtkprintbackendcups.c:4669 msgctxt "output-bin" msgid "Middle Bin" msgstr "Ù…ØÙظه وسط" #. Translators: Bottom output bin -#: modules/printbackends/gtkprintbackendcups.c:4706 +#: modules/printbackends/gtkprintbackendcups.c:4671 msgctxt "output-bin" msgid "Bottom Bin" msgstr "Ù…ØÙظه پایین" #. Translators: Side output bin -#: modules/printbackends/gtkprintbackendcups.c:4708 +#: modules/printbackends/gtkprintbackendcups.c:4673 msgctxt "output-bin" msgid "Side Bin" msgstr "Ù…ØÙظه کنار" #. Translators: Left output bin -#: modules/printbackends/gtkprintbackendcups.c:4710 +#: modules/printbackends/gtkprintbackendcups.c:4675 msgctxt "output-bin" msgid "Left Bin" msgstr "Ù…ØÙظه Ú†Ù¾" #. Translators: Right output bin -#: modules/printbackends/gtkprintbackendcups.c:4712 +#: modules/printbackends/gtkprintbackendcups.c:4677 msgctxt "output-bin" msgid "Right Bin" msgstr "Ù…ØÙظه راست" #. Translators: Center output bin -#: modules/printbackends/gtkprintbackendcups.c:4714 +#: modules/printbackends/gtkprintbackendcups.c:4679 msgctxt "output-bin" msgid "Center Bin" msgstr "Ù…ØÙظه مرکزی" #. Translators: Rear output bin -#: modules/printbackends/gtkprintbackendcups.c:4716 +#: modules/printbackends/gtkprintbackendcups.c:4681 msgctxt "output-bin" msgid "Rear Bin" msgstr "Ù…ØÙظه عقب" #. Translators: Output bin where one sided output is oriented in the face-up position -#: modules/printbackends/gtkprintbackendcups.c:4718 +#: modules/printbackends/gtkprintbackendcups.c:4683 msgctxt "output-bin" msgid "Face Up Bin" msgstr "Ù…ØÙظه رو به بالا" #. Translators: Output bin where one sided output is oriented in the face-down position -#: modules/printbackends/gtkprintbackendcups.c:4720 +#: modules/printbackends/gtkprintbackendcups.c:4685 msgctxt "output-bin" msgid "Face Down Bin" msgstr "Ù…ØÙطه رو به پایین" #. Translators: Large capacity output bin -#: modules/printbackends/gtkprintbackendcups.c:4722 +#: modules/printbackends/gtkprintbackendcups.c:4687 msgctxt "output-bin" msgid "Large Capacity Bin" msgstr "Ù…ØÙظه با گنجایش بالا" #. Translators: Output stacker number %d -#: modules/printbackends/gtkprintbackendcups.c:4744 +#: modules/printbackends/gtkprintbackendcups.c:4709 #, c-format msgctxt "output-bin" msgid "Stacker %d" msgstr "پشته‌ساز %Id" #. Translators: Output mailbox number %d -#: modules/printbackends/gtkprintbackendcups.c:4748 +#: modules/printbackends/gtkprintbackendcups.c:4713 #, c-format msgctxt "output-bin" msgid "Mailbox %d" msgstr "صندوق پستی %Id" #. Translators: Private mailbox -#: modules/printbackends/gtkprintbackendcups.c:4752 +#: modules/printbackends/gtkprintbackendcups.c:4717 msgctxt "output-bin" msgid "My Mailbox" msgstr "صندوق پستی من" #. Translators: Output tray number %d -#: modules/printbackends/gtkprintbackendcups.c:4756 +#: modules/printbackends/gtkprintbackendcups.c:4721 #, c-format msgctxt "output-bin" msgid "Tray %d" msgstr "سینی %Id" -#: modules/printbackends/gtkprintbackendcups.c:5233 +#: modules/printbackends/gtkprintbackendcups.c:5198 msgid "Printer Default" msgstr "پیش‌Ùرض چاپگر" #. Translators: These strings name the possible values of the #. * job priority option in the print dialog #. -#: modules/printbackends/gtkprintbackendcups.c:5677 +#: modules/printbackends/gtkprintbackendcups.c:5642 msgid "Urgent" msgstr "Ùوری" -#: modules/printbackends/gtkprintbackendcups.c:5677 +#: modules/printbackends/gtkprintbackendcups.c:5642 msgid "High" msgstr "بالا" -#: modules/printbackends/gtkprintbackendcups.c:5677 +#: modules/printbackends/gtkprintbackendcups.c:5642 msgid "Medium" msgstr "متوسط" -#: modules/printbackends/gtkprintbackendcups.c:5677 +#: modules/printbackends/gtkprintbackendcups.c:5642 msgid "Low" msgstr "پایین" #. Translators, this string is used to label the job priority option #. * in the print dialog #. -#: modules/printbackends/gtkprintbackendcups.c:5707 +#: modules/printbackends/gtkprintbackendcups.c:5672 msgid "Job Priority" msgstr "اولویت کار" #. Translators, this string is used to label the billing info entry #. * in the print dialog #. -#: modules/printbackends/gtkprintbackendcups.c:5718 +#: modules/printbackends/gtkprintbackendcups.c:5683 msgid "Billing Info" msgstr "اطلاعات صورتØساب" @@ -6786,37 +6783,37 @@ msgstr "اطلاعات صورتØساب" #. Translators, these strings are names for various 'standard' cover #. * pages that the printing system may support. #. -#: modules/printbackends/gtkprintbackendcups.c:5742 +#: modules/printbackends/gtkprintbackendcups.c:5707 msgctxt "cover page" msgid "None" msgstr "هیچ‌کدام" -#: modules/printbackends/gtkprintbackendcups.c:5743 +#: modules/printbackends/gtkprintbackendcups.c:5708 msgctxt "cover page" msgid "Classified" msgstr "طبقه‌بندی شده" -#: modules/printbackends/gtkprintbackendcups.c:5744 +#: modules/printbackends/gtkprintbackendcups.c:5709 msgctxt "cover page" msgid "Confidential" msgstr "Ù…Øرمانه" -#: modules/printbackends/gtkprintbackendcups.c:5745 +#: modules/printbackends/gtkprintbackendcups.c:5710 msgctxt "cover page" msgid "Secret" msgstr "سری" -#: modules/printbackends/gtkprintbackendcups.c:5746 +#: modules/printbackends/gtkprintbackendcups.c:5711 msgctxt "cover page" msgid "Standard" msgstr "استاندارد" -#: modules/printbackends/gtkprintbackendcups.c:5747 +#: modules/printbackends/gtkprintbackendcups.c:5712 msgctxt "cover page" msgid "Top Secret" msgstr "Ùوق سری" -#: modules/printbackends/gtkprintbackendcups.c:5748 +#: modules/printbackends/gtkprintbackendcups.c:5713 msgctxt "cover page" msgid "Unclassified" msgstr "طبقه‌بندی نشده" @@ -6824,7 +6821,7 @@ msgstr "طبقه‌بندی نشده" #. Translators, this string is used to label the pages-per-sheet option #. * in the print dialog #. -#: modules/printbackends/gtkprintbackendcups.c:5760 +#: modules/printbackends/gtkprintbackendcups.c:5725 msgctxt "printer option" msgid "Pages per Sheet" msgstr "تعداد صÙØه‌ها در برگه" @@ -6832,7 +6829,7 @@ msgstr "تعداد صÙØه‌ها در برگه" #. Translators, this string is used to label the option in the print #. * dialog that controls in what order multiple pages are arranged #. -#: modules/printbackends/gtkprintbackendcups.c:5777 +#: modules/printbackends/gtkprintbackendcups.c:5742 msgctxt "printer option" msgid "Page Ordering" msgstr "ترتیب صÙØه‌ها" @@ -6840,7 +6837,7 @@ msgstr "ترتیب صÙØه‌ها" #. Translators, this is the label used for the option in the print #. * dialog that controls the front cover page. #. -#: modules/printbackends/gtkprintbackendcups.c:5819 +#: modules/printbackends/gtkprintbackendcups.c:5784 msgctxt "printer option" msgid "Before" msgstr "پیش از" @@ -6848,7 +6845,7 @@ msgstr "پیش از" #. Translators, this is the label used for the option in the print #. * dialog that controls the back cover page. #. -#: modules/printbackends/gtkprintbackendcups.c:5834 +#: modules/printbackends/gtkprintbackendcups.c:5799 msgctxt "printer option" msgid "After" msgstr "پس از" @@ -6857,7 +6854,7 @@ msgstr "پس از" #. * a print job is printed. Possible values are 'now', a specified time, #. * or 'on hold' #. -#: modules/printbackends/gtkprintbackendcups.c:5854 +#: modules/printbackends/gtkprintbackendcups.c:5819 msgctxt "printer option" msgid "Print at" msgstr "زمان چاپ" @@ -6865,7 +6862,7 @@ msgstr "زمان چاپ" #. Translators: this is the name of the option that allows the user #. * to specify a time when a print job will be printed. #. -#: modules/printbackends/gtkprintbackendcups.c:5865 +#: modules/printbackends/gtkprintbackendcups.c:5830 msgctxt "printer option" msgid "Print at time" msgstr "چاپ در زمان مشخص" @@ -6875,80 +6872,80 @@ msgstr "چاپ در زمان مشخص" #. * the width and height in points. E.g: "Custom #. * 230.4x142.9" #. -#: modules/printbackends/gtkprintbackendcups.c:5912 +#: modules/printbackends/gtkprintbackendcups.c:5877 #, c-format msgid "Custom %s×%s" msgstr "سÙارشی %s×%s" #. TRANSLATORS: this is the ICC color profile to use for this job -#: modules/printbackends/gtkprintbackendcups.c:6023 +#: modules/printbackends/gtkprintbackendcups.c:5988 msgctxt "printer option" msgid "Printer Profile" msgstr "نمایهٔ چاپگر" #. TRANSLATORS: this is when color profile information is unavailable -#: modules/printbackends/gtkprintbackendcups.c:6030 +#: modules/printbackends/gtkprintbackendcups.c:5995 msgctxt "printer option value" msgid "Unavailable" msgstr "خارج از دسترس" -#: modules/printbackends/gtkprintbackendfile.c:234 +#: modules/printbackends/gtkprintbackendfile.c:235 msgid "output" msgstr "خروجی" -#: modules/printbackends/gtkprintbackendfile.c:511 +#: modules/printbackends/gtkprintbackendfile.c:507 msgid "Print to File" msgstr "چاپ در پرونده" -#: modules/printbackends/gtkprintbackendfile.c:637 +#: modules/printbackends/gtkprintbackendfile.c:633 msgid "PDF" msgstr "PDF" -#: modules/printbackends/gtkprintbackendfile.c:637 +#: modules/printbackends/gtkprintbackendfile.c:633 msgid "PostScript" msgstr "پست‌اسکریپت" -#: modules/printbackends/gtkprintbackendfile.c:637 +#: modules/printbackends/gtkprintbackendfile.c:633 msgid "SVG" msgstr "SVG" -#: modules/printbackends/gtkprintbackendfile.c:650 +#: modules/printbackends/gtkprintbackendfile.c:646 msgid "Pages per _sheet:" msgstr "تعداد صÙØات در _برگه:" -#: modules/printbackends/gtkprintbackendfile.c:710 +#: modules/printbackends/gtkprintbackendfile.c:706 msgid "File" msgstr "پرونده" -#: modules/printbackends/gtkprintbackendfile.c:720 +#: modules/printbackends/gtkprintbackendfile.c:716 msgid "_Output format" msgstr "_قالب خروجی" -#: modules/printbackends/gtkprintbackendlpr.c:377 +#: modules/printbackends/gtkprintbackendlpr.c:372 msgid "Print to LPR" msgstr "چاپ به صورت LPR" -#: modules/printbackends/gtkprintbackendlpr.c:406 +#: modules/printbackends/gtkprintbackendlpr.c:401 msgid "Pages Per Sheet" msgstr "تعداد صÙØات در برگه" -#: modules/printbackends/gtkprintbackendlpr.c:412 +#: modules/printbackends/gtkprintbackendlpr.c:407 msgid "Command Line" msgstr "خط Ùرمان" #. TRANSLATORS: when we're running an old CUPS, and #. * it hasn't registered the device with colord -#: modules/printbackends/gtkprintercups.c:273 +#: modules/printbackends/gtkprintercups.c:272 msgid "Color management unavailable" msgstr "مدیریت رنگ موجود نیست" #. TRANSLATORS: when there is no color profile available -#: modules/printbackends/gtkprintercups.c:285 +#: modules/printbackends/gtkprintercups.c:284 msgid "No profile available" msgstr "مجموعه تنظیماتی موجود نیست" #. TRANSLATORS: when the color profile has no title -#: modules/printbackends/gtkprintercups.c:296 +#: modules/printbackends/gtkprintercups.c:295 msgid "Unspecified profile" msgstr "مجموعه تنطیمات نامشخص" @@ -7003,7 +7000,7 @@ msgstr "" "\n" "دستورها:\n" " validate تصدیق پرونده\n" -" simplify ساده‌سازی پرونده\n" +" simplify ساده سازی پرونده\n" " enumerate Ùهرست کردن تمام اشیای نام‌دار\n" " preview پیش‌نمایش پرونده\n" "\n" @@ -7096,7 +7093,7 @@ msgstr "تبدیل از GTK 3 به GTK 4" #: tools/gtk-builder-tool-simplify.c:2370 msgid "Simplify the file." -msgstr "ساده‌سازی پرونده." +msgstr "ساده سازی پرونده." #: tools/gtk-builder-tool-simplify.c:2383 #, c-format @@ -7106,7 +7103,7 @@ msgstr "هیچ پروندهٔ ‪.ui‬ ای مشخّص نشده\n" #: tools/gtk-builder-tool-simplify.c:2389 #, c-format msgid "Can only simplify a single .ui file without --replace\n" -msgstr "تنها می‌تواند یک تک‌پروندهٔ ‪.ui‬ را بدون ‪--replace‬ ساده‌سازی کند\n" +msgstr "تنها می‌تواند یک تک‌پروندهٔ ‪.ui‬ را بدون ‪--replace‬ ساده سازی کند\n" #: tools/gtk-builder-tool-validate.c:168 msgid "Validate the file." @@ -7276,6 +7273,12 @@ msgstr "" "اگر به‌راستی می‌خواهید این‌جا انبارهٔ نقشکی ایجاد کنید، از ‪--ignore-theme-index‬ " "استÙاده کنید.\n" +#~ msgid "GL rendering is disabled" +#~ msgstr "پرداخت GL از کار اÙتاده" + +#~ msgid "Software GL" +#~ msgstr "GL نرم‌اÙزاری" + # farmaan #~ msgctxt "Font feature value" #~ msgid "None" diff --git a/po/ie.po b/po/ie.po new file mode 100644 index 0000000000..342780af27 --- /dev/null +++ b/po/ie.po @@ -0,0 +1,7810 @@ +# kk@latin translation for gtk+. +# Copyright (C) 2016 gtk+'s COPYRIGHT HOLDER +# This file is distributed under the same license as the gtk+ package. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: gtk+ master\n" +"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gtk/-/issues/\n" +"POT-Creation-Date: 2022-12-09 06:01+0700\n" +"PO-Revision-Date: 2022-12-10 00:16+0700\n" +"Last-Translator: OIS <mistresssilvara@hotmail.com>\n" +"Language-Team: kk@latin <kk@latin@li.org>\n" +"Language: ie\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\n" +"X-Generator: Poedit 1.8.12\n" + +#: gdk/broadway/gdkbroadway-server.c:135 +#, fuzzy, c-format +msgid "Broadway display type not supported: %s" +msgstr "Tip de file %s (%s) es Ãnsuportat" + +#: gdk/gdkclipboard.c:232 +#, fuzzy +msgid "This clipboard cannot store data." +msgstr "Null data in li Paperiere" + +#: gdk/gdkclipboard.c:287 gdk/gdkclipboard.c:785 gdk/gdkclipboard.c:1085 +#, fuzzy +msgid "Cannot read from empty clipboard." +msgstr "Ne successat leer un ressurse" + +#: gdk/gdkclipboard.c:318 gdk/gdkclipboard.c:1135 gdk/gdkdrag.c:618 +msgid "No compatible formats to transfer clipboard contents." +msgstr "" + +#: gdk/gdkcontentprovider.c:106 gdk/gdkcontentproviderimpl.c:313 +#: gdk/gdkcontentproviderimpl.c:532 +#, fuzzy, c-format +msgid "Cannot provide contents as “%sâ€" +msgstr "" +"Aperter li contenete del fil-sistema\n" +"%s" + +#: gdk/gdkcontentprovider.c:127 +#, fuzzy, c-format +msgid "Cannot provide contents as %s" +msgstr "" +"Aperter li contenete del fil-sistema\n" +"%s" + +#: gdk/gdkdisplay.c:154 gdk/gdkglcontext.c:435 +msgid "The current backend does not support OpenGL" +msgstr "" + +#: gdk/gdkdisplay.c:1240 +#, fuzzy +msgid "GL support disabled via GDK_DEBUG" +msgstr "Supporte de Vulcan es depermisset per GTK_DEBUG" + +#: gdk/gdkdisplay.c:1538 +msgid "No EGL configuration available" +msgstr "Null configuration de EGL es disponibil" + +#: gdk/gdkdisplay.c:1546 +msgid "Failed to get EGL configurations" +msgstr "Ne successat obtener configurationes de EGL" + +#: gdk/gdkdisplay.c:1576 +msgid "No EGL configuration with required features found" +msgstr "" + +#: gdk/gdkdisplay.c:1583 +#, fuzzy +msgid "No perfect EGL configuration found" +msgstr "Null configuration de EGL es disponibil" + +#: gdk/gdkdisplay.c:1625 +#, fuzzy, c-format +msgid "EGL implementation is missing extension %s" +msgid_plural "EGL implementation is missing %2$d extensions: %1$s" +msgstr[0] "Ãndisponibil" +msgstr[1] "Ãndisponibil" + +#: gdk/gdkdisplay.c:1658 +#, fuzzy +msgid "libEGL not available in this sandbox" +msgstr "libEGL es Ãndisponibil" + +#: gdk/gdkdisplay.c:1659 +msgid "libEGL not available" +msgstr "libEGL es Ãndisponibil" + +#: gdk/gdkdisplay.c:1669 +#, fuzzy +msgid "Failed to create EGL display" +msgstr "Ne successat obtener configurationes de EGL" + +#: gdk/gdkdisplay.c:1679 +#, fuzzy +msgid "Could not initialize EGL display" +msgstr "Ne successat inicialisar monitoration" + +#: gdk/gdkdisplay.c:1690 +#, c-format +msgid "EGL version %d.%d is too old. GTK requires %d.%d" +msgstr "" + +#: gdk/gdkdrop.c:130 +msgid "Drag’n’drop from other applications is not supported." +msgstr "" + +#: gdk/gdkdrop.c:163 +msgid "No compatible formats to transfer contents." +msgstr "" + +#: gdk/gdkglcontext.c:394 gdk/x11/gdkglcontext-glx.c:604 +#, fuzzy +msgid "No GL API allowed." +msgstr "Contextu GL" + +#: gdk/gdkglcontext.c:418 gdk/win32/gdkglcontext-win32-wgl.c:611 +#: gdk/x11/gdkglcontext-glx.c:638 +#, fuzzy +msgid "Unable to create a GL context" +msgstr "Contextu GL" + +#: gdk/gdkglcontext.c:1273 +#, fuzzy +msgid "Anything but OpenGL ES disabled via GDK_DEBUG" +msgstr "Supporte de Vulcan es depermisset per GTK_DEBUG" + +#: gdk/gdkglcontext.c:1282 +#, c-format +msgid "Application does not support %s API" +msgstr "" + +#. translators: This is about OpenGL backend names, like +#. * "Trying to use X11 GLX, but EGL is already in use" +#: gdk/gdkglcontext.c:1814 +#, fuzzy, c-format +msgid "Trying to use %s, but %s is already in use" +msgstr "Li nómine «%s» es ja usat." + +#: gdk/gdksurface.c:1226 +msgid "Vulkan support disabled via GDK_DEBUG" +msgstr "Supporte de Vulcan es depermisset per GTK_DEBUG" + +#: gdk/gdktexture.c:525 +msgid "Unknown image format." +msgstr "Ãnconosset formate de image." + +#. +#. * Translators, the strings in the “keyboard label†context are +#. * display names for keyboard keys. Some of them have prefixes like +#. * XF86 or ISO_ — these should be removed in the translation. Similarly, +#. * underscores should be replaced by spaces. The prefix “KP_†stands +#. * for “key pad†and you may want to include that in your translation. +#. * Here are some examples of English translations: +#. * XF86AudioMute - Audio mute +#. * Scroll_lock - Scroll lock +#. * KP_Space - Space (keypad) +#. +#: gdk/keynamesprivate.h:6843 +msgctxt "keyboard label" +msgid "BackSpace" +msgstr "Backspace" + +#: gdk/keynamesprivate.h:6844 +msgctxt "keyboard label" +msgid "Tab" +msgstr "Tab" + +#: gdk/keynamesprivate.h:6845 +msgctxt "keyboard label" +msgid "Return" +msgstr "Return" + +#: gdk/keynamesprivate.h:6846 +msgctxt "keyboard label" +msgid "Pause" +msgstr "Pause" + +#: gdk/keynamesprivate.h:6847 +msgctxt "keyboard label" +msgid "Scroll_Lock" +msgstr "Scroll Lock" + +#: gdk/keynamesprivate.h:6848 +msgctxt "keyboard label" +msgid "Sys_Req" +msgstr "SysRq" + +#: gdk/keynamesprivate.h:6849 +msgctxt "keyboard label" +msgid "Escape" +msgstr "Esc" + +#: gdk/keynamesprivate.h:6850 +#, fuzzy +msgctxt "keyboard label" +msgid "Multi_key" +msgstr "multiarch" + +#: gdk/keynamesprivate.h:6851 +msgctxt "keyboard label" +msgid "Home" +msgstr "Home" + +#: gdk/keynamesprivate.h:6852 +msgctxt "keyboard label" +msgid "Left" +msgstr "A levul" + +#: gdk/keynamesprivate.h:6853 +msgctxt "keyboard label" +msgid "Up" +msgstr "Ad-supra" + +#: gdk/keynamesprivate.h:6854 +msgctxt "keyboard label" +msgid "Right" +msgstr "A dextri" + +#: gdk/keynamesprivate.h:6855 +msgctxt "keyboard label" +msgid "Down" +msgstr "Infra" + +#: gdk/keynamesprivate.h:6856 gtk/gtkshortcutlabel.c:213 +msgctxt "keyboard label" +msgid "Page_Up" +msgstr "Page Up" + +#: gdk/keynamesprivate.h:6857 gtk/gtkshortcutlabel.c:216 +msgctxt "keyboard label" +msgid "Page_Down" +msgstr "Page Down" + +#: gdk/keynamesprivate.h:6858 +msgctxt "keyboard label" +msgid "End" +msgstr "End" + +#: gdk/keynamesprivate.h:6859 +#, fuzzy +msgctxt "keyboard label" +msgid "Begin" +msgstr "Comense:" + +#: gdk/keynamesprivate.h:6860 +#, fuzzy +msgctxt "keyboard label" +msgid "Print" +msgstr "_Printar" + +#: gdk/keynamesprivate.h:6861 +msgctxt "keyboard label" +msgid "Insert" +msgstr "Insert" + +#: gdk/keynamesprivate.h:6862 +msgctxt "keyboard label" +msgid "Num_Lock" +msgstr "Num Lock" + +#. Translators: KP_ means “key pad†here +#: gdk/keynamesprivate.h:6864 +msgctxt "keyboard label" +msgid "KP_Space" +msgstr "Spacie (keypad)" + +#: gdk/keynamesprivate.h:6865 +msgctxt "keyboard label" +msgid "KP_Tab" +msgstr "Tab (keypad)" + +#: gdk/keynamesprivate.h:6866 +msgctxt "keyboard label" +msgid "KP_Enter" +msgstr "PdC Enter" + +#: gdk/keynamesprivate.h:6867 +msgctxt "keyboard label" +msgid "KP_Home" +msgstr "PdC Home" + +#: gdk/keynamesprivate.h:6868 +msgctxt "keyboard label" +msgid "KP_Left" +msgstr "A levul (keypad)" + +#: gdk/keynamesprivate.h:6869 +#, fuzzy +msgctxt "keyboard label" +msgid "KP_Up" +msgstr "PdC" + +#: gdk/keynamesprivate.h:6870 +msgctxt "keyboard label" +msgid "KP_Right" +msgstr "A dextri (keypad)" + +#: gdk/keynamesprivate.h:6871 +#, fuzzy +msgctxt "keyboard label" +msgid "KP_Down" +msgstr "Infra" + +#: gdk/keynamesprivate.h:6872 +#, fuzzy +msgctxt "keyboard label" +msgid "KP_Page_Up" +msgstr "PdC" + +#: gdk/keynamesprivate.h:6873 +#, fuzzy +msgctxt "keyboard label" +msgid "KP_Prior" +msgstr "PdC" + +#: gdk/keynamesprivate.h:6874 +#, fuzzy +msgctxt "keyboard label" +msgid "KP_Page_Down" +msgstr "Seque_nt págine" + +#: gdk/keynamesprivate.h:6875 +#, fuzzy +msgctxt "keyboard label" +msgid "KP_Next" +msgstr "PdC" + +#: gdk/keynamesprivate.h:6876 +msgctxt "keyboard label" +msgid "KP_End" +msgstr "End (keypad)" + +#: gdk/keynamesprivate.h:6877 +#, fuzzy +msgctxt "keyboard label" +msgid "KP_Begin" +msgstr "PdC" + +#: gdk/keynamesprivate.h:6878 +msgctxt "keyboard label" +msgid "KP_Insert" +msgstr "Ins (keypad)" + +#: gdk/keynamesprivate.h:6879 +msgctxt "keyboard label" +msgid "KP_Delete" +msgstr "Del (keypad)" + +#: gdk/keynamesprivate.h:6880 +msgctxt "keyboard label" +msgid "Delete" +msgstr "Delete" + +#: gdk/keynamesprivate.h:6881 +msgctxt "keyboard label" +msgid "MonBrightnessUp" +msgstr "" + +#: gdk/keynamesprivate.h:6882 +msgctxt "keyboard label" +msgid "MonBrightnessDown" +msgstr "" + +#: gdk/keynamesprivate.h:6883 +msgctxt "keyboard label" +msgid "KbdBrightnessUp" +msgstr "" + +#: gdk/keynamesprivate.h:6884 +msgctxt "keyboard label" +msgid "KbdBrightnessDown" +msgstr "" + +#: gdk/keynamesprivate.h:6885 +msgctxt "keyboard label" +msgid "AudioMute" +msgstr "" + +#: gdk/keynamesprivate.h:6886 +msgctxt "keyboard label" +msgid "AudioMicMute" +msgstr "" + +#: gdk/keynamesprivate.h:6887 +msgctxt "keyboard label" +msgid "AudioLowerVolume" +msgstr "" + +#: gdk/keynamesprivate.h:6888 +msgctxt "keyboard label" +msgid "AudioRaiseVolume" +msgstr "" + +#: gdk/keynamesprivate.h:6889 +msgctxt "keyboard label" +msgid "AudioPlay" +msgstr "" + +#: gdk/keynamesprivate.h:6890 +msgctxt "keyboard label" +msgid "AudioStop" +msgstr "" + +#: gdk/keynamesprivate.h:6891 +msgctxt "keyboard label" +msgid "AudioNext" +msgstr "" + +#: gdk/keynamesprivate.h:6892 +msgctxt "keyboard label" +msgid "AudioPrev" +msgstr "" + +#: gdk/keynamesprivate.h:6893 +msgctxt "keyboard label" +msgid "AudioRecord" +msgstr "Registrar audio" + +#: gdk/keynamesprivate.h:6894 +msgctxt "keyboard label" +msgid "AudioPause" +msgstr "Pausar audio" + +#: gdk/keynamesprivate.h:6895 +msgctxt "keyboard label" +msgid "AudioRewind" +msgstr "Rebobinar audio" + +#: gdk/keynamesprivate.h:6896 +msgctxt "keyboard label" +msgid "AudioMedia" +msgstr "" + +#: gdk/keynamesprivate.h:6897 +msgctxt "keyboard label" +msgid "Eject" +msgstr "Ejecter" + +#: gdk/keynamesprivate.h:6898 +msgctxt "keyboard label" +msgid "Explorer" +msgstr "Navigator" + +#: gdk/keynamesprivate.h:6899 +msgctxt "keyboard label" +msgid "Calculator" +msgstr "Calculator" + +#: gdk/keynamesprivate.h:6900 +msgctxt "keyboard label" +msgid "Mail" +msgstr "E-post" + +#: gdk/keynamesprivate.h:6901 +msgctxt "keyboard label" +msgid "WWW" +msgstr "WWW" + +#: gdk/keynamesprivate.h:6902 +msgctxt "keyboard label" +msgid "Search" +msgstr "Serchar" + +#: gdk/keynamesprivate.h:6903 +msgctxt "keyboard label" +msgid "Tools" +msgstr "Instrumentarium" + +#: gdk/keynamesprivate.h:6904 +msgctxt "keyboard label" +msgid "ScreenSaver" +msgstr "Garda-ecran" + +#: gdk/keynamesprivate.h:6905 +msgctxt "keyboard label" +msgid "Battery" +msgstr "Batterie" + +#: gdk/keynamesprivate.h:6906 +msgctxt "keyboard label" +msgid "Launch1" +msgstr "" + +#: gdk/keynamesprivate.h:6907 +msgctxt "keyboard label" +msgid "Forward" +msgstr "Avan" + +#: gdk/keynamesprivate.h:6908 +msgctxt "keyboard label" +msgid "Back" +msgstr "Retro" + +#: gdk/keynamesprivate.h:6909 +msgctxt "keyboard label" +msgid "Sleep" +msgstr "Dormir" + +#: gdk/keynamesprivate.h:6910 +msgctxt "keyboard label" +msgid "Hibernate" +msgstr "Hivernar" + +#: gdk/keynamesprivate.h:6911 +msgctxt "keyboard label" +msgid "WLAN" +msgstr "WLAN" + +#: gdk/keynamesprivate.h:6912 +msgctxt "keyboard label" +msgid "WebCam" +msgstr "WebCam" + +#: gdk/keynamesprivate.h:6913 +#, fuzzy +msgctxt "keyboard label" +msgid "Display" +msgstr "Monstrar" + +#: gdk/keynamesprivate.h:6914 +msgctxt "keyboard label" +msgid "TouchpadToggle" +msgstr "" + +#: gdk/keynamesprivate.h:6915 +msgctxt "keyboard label" +msgid "WakeUp" +msgstr "" + +#: gdk/keynamesprivate.h:6916 +msgctxt "keyboard label" +msgid "Suspend" +msgstr "Suspender" + +#: gdk/loaders/gdkjpeg.c:63 +#, c-format +msgid "Error interpreting JPEG image file (%s)" +msgstr "" + +#: gdk/loaders/gdkjpeg.c:192 +#, c-format +msgid "Unsupported JPEG colorspace (%d)" +msgstr "" + +#: gdk/loaders/gdkjpeg.c:201 gdk/loaders/gdkpng.c:266 gdk/loaders/gdktiff.c:453 +#, fuzzy, c-format +#| msgid "Not enough memory" +msgid "Not enough memory for image size %ux%u" +msgstr "Memorie exhaustet" + +#: gdk/loaders/gdkpng.c:119 +#, fuzzy, c-format +msgid "Error reading png (%s)" +msgstr "Un errore evenit leente «%s»: %s" + +#: gdk/loaders/gdkpng.c:217 +#, c-format +msgid "Unsupported depth %u in png image" +msgstr "" + +#: gdk/loaders/gdkpng.c:247 +#, c-format +msgid "Unsupported color type %u in png image" +msgstr "" + +#: gdk/loaders/gdktiff.c:340 +msgid "Failed to load RGB data from TIFF file" +msgstr "" + +#: gdk/loaders/gdktiff.c:383 +msgid "Could not load TIFF data" +msgstr "Ne successat cargar data TIFF" + +#: gdk/loaders/gdktiff.c:465 +#, c-format +msgid "Reading data failed at row %d" +msgstr "" + +#: gdk/macos/gdkmacosclipboard.c:557 gdk/wayland/gdkclipboard-wayland.c:240 +#: gdk/wayland/gdkdrop-wayland.c:208 gdk/wayland/gdkprimary-wayland.c:336 +#: gdk/win32/gdkdrop-win32.c:1018 gdk/win32/gdkdrop-win32.c:1063 +#: gdk/x11/gdkclipboard-x11.c:805 gdk/x11/gdkdrop-x11.c:235 +#, fuzzy +msgid "No compatible transfer format found" +msgstr "Null aparates MTP es trovat" + +#: gdk/macos/gdkmacosclipboard.c:643 +#, fuzzy, c-format +msgid "Failed to decode contents with mime-type of '%s'" +msgstr "Ne successat assignar li application «%s» por li MIME-tip «%s»." + +#: gdk/win32/gdkclipdrop-win32.c:721 +#, c-format +msgid "Cannot claim clipboard ownership. OpenClipboard() timed out." +msgstr "" + +#: gdk/win32/gdkclipdrop-win32.c:731 +#, c-format +msgid "Cannot claim clipboard ownership. Another process claimed it before us." +msgstr "" + +#: gdk/win32/gdkclipdrop-win32.c:745 +#, c-format +msgid "Cannot claim clipboard ownership. OpenClipboard() failed: 0x%lx." +msgstr "" + +#: gdk/win32/gdkclipdrop-win32.c:757 +#, c-format +msgid "Cannot claim clipboard ownership. EmptyClipboard() failed: 0x%lx." +msgstr "" + +#: gdk/win32/gdkclipdrop-win32.c:800 +#, c-format +msgid "Cannot set clipboard data. OpenClipboard() timed out." +msgstr "" + +#: gdk/win32/gdkclipdrop-win32.c:810 gdk/win32/gdkclipdrop-win32.c:841 +#, c-format +msgid "Cannot set clipboard data. Another process claimed clipboard ownership." +msgstr "" + +#: gdk/win32/gdkclipdrop-win32.c:824 +#, c-format +msgid "Cannot set clipboard data. OpenClipboard() failed: 0x%lx." +msgstr "" + +#: gdk/win32/gdkclipdrop-win32.c:876 +#, c-format +msgid "Cannot get clipboard data. GlobalLock(0x%p) failed: 0x%lx." +msgstr "" + +#: gdk/win32/gdkclipdrop-win32.c:887 +#, c-format +msgid "Cannot get clipboard data. GlobalSize(0x%p) failed: 0x%lx." +msgstr "" + +#: gdk/win32/gdkclipdrop-win32.c:900 +#, c-format +msgid "" +"Cannot get clipboard data. Failed to allocate %s bytes to store the data." +msgstr "" + +#: gdk/win32/gdkclipdrop-win32.c:932 +#, c-format +msgid "Cannot get clipboard data. OpenClipboard() timed out." +msgstr "" + +#: gdk/win32/gdkclipdrop-win32.c:942 +#, c-format +msgid "Cannot get clipboard data. Clipboard ownership changed." +msgstr "" + +#: gdk/win32/gdkclipdrop-win32.c:952 +#, c-format +msgid "" +"Cannot get clipboard data. Clipboard data changed before we could get it." +msgstr "" + +#: gdk/win32/gdkclipdrop-win32.c:969 +#, c-format +msgid "Cannot get clipboard data. OpenClipboard() failed: 0x%lx." +msgstr "" + +#: gdk/win32/gdkclipdrop-win32.c:994 +#, c-format +msgid "Cannot get clipboard data. No compatible transfer format found." +msgstr "" + +#: gdk/win32/gdkclipdrop-win32.c:1004 +#, c-format +msgid "Cannot get clipboard data. GetClipboardData() failed: 0x%lx." +msgstr "" + +#: gdk/win32/gdkdrop-win32.c:949 +#, c-format +msgid "Cannot get DnD data. GlobalLock(0x%p) failed: 0x%lx." +msgstr "" + +#: gdk/win32/gdkdrop-win32.c:958 +#, c-format +msgid "Cannot get DnD data. GlobalSize(0x%p) failed: 0x%lx." +msgstr "" + +#: gdk/win32/gdkdrop-win32.c:969 +#, c-format +msgid "Cannot get DnD data. Failed to allocate %s bytes to store the data." +msgstr "" + +#: gdk/win32/gdkdrop-win32.c:1037 +#, c-format +msgid "GDK surface 0x%p is not registered as a drop target" +msgstr "" + +#: gdk/win32/gdkdrop-win32.c:1044 +#, c-format +msgid "Target context record 0x%p has no data object" +msgstr "" + +#: gdk/win32/gdkdrop-win32.c:1082 +#, c-format +msgid "IDataObject_GetData (0x%x) failed, returning 0x%lx" +msgstr "IDataObject_GetData (0x%x) ne successat, retrodante 0x%lx" + +#: gdk/win32/gdkdrop-win32.c:1114 +#, c-format +msgid "Failed to transmute DnD data W32 format 0x%x to %p (%s)" +msgstr "" + +#: gdk/win32/gdkglcontext-win32-wgl.c:276 +#: gdk/win32/gdkglcontext-win32-wgl.c:293 +#, fuzzy +msgid "No GL implementation is available" +msgstr "Version de GL" + +#: gdk/win32/gdkglcontext-win32-wgl.c:577 +msgid "No available configurations for the given pixel format" +msgstr "" + +#: gdk/win32/gdkhdataoutputstream-win32.c:63 +#, fuzzy +msgid "writing a closed stream" +msgstr "%@ fluvie a %@:%@" + +#: gdk/win32/gdkhdataoutputstream-win32.c:85 +#| msgid "GlobalAlloc() failed: " +msgid "g_try_realloc () failed" +msgstr "g_try_realloc () ne successat" + +#: gdk/win32/gdkhdataoutputstream-win32.c:93 +#: gdk/win32/gdkhdataoutputstream-win32.c:231 +msgid "GlobalReAlloc() failed: " +msgstr "GlobalReAlloc() ne successat: " + +#: gdk/win32/gdkhdataoutputstream-win32.c:105 +msgid "Ran out of buffer space (buffer size is fixed)" +msgstr "" + +#: gdk/win32/gdkhdataoutputstream-win32.c:203 +msgid "Can’t transmute a single handle" +msgstr "" + +#: gdk/win32/gdkhdataoutputstream-win32.c:215 +#, c-format +msgid "Failed to transmute %zu bytes of data from %s to %u" +msgstr "" + +#: gdk/win32/gdkhdataoutputstream-win32.c:250 +msgid "GlobalLock() failed: " +msgstr "GlobalLock() ne successat: " + +#: gdk/win32/gdkhdataoutputstream-win32.c:364 +msgid "GlobalAlloc() failed: " +msgstr "GlobalAlloc() ne successat: " + +#: gdk/x11/gdkapplaunchcontext-x11.c:296 +#, c-format +msgid "Starting “%sâ€" +msgstr "Startante «%s»" + +#: gdk/x11/gdkapplaunchcontext-x11.c:309 +#, c-format +msgid "Opening “%sâ€" +msgstr "Apertente «%s»" + +#: gdk/x11/gdkapplaunchcontext-x11.c:314 +#, c-format +msgid "Opening %d Item" +msgid_plural "Opening %d Items" +msgstr[0] "Apertente %d element" +msgstr[1] "Apertente %d elementes" + +#: gdk/x11/gdkclipboard-x11.c:475 +msgid "Clipboard manager could not store selection." +msgstr "" + +#: gdk/x11/gdkclipboard-x11.c:655 +msgid "Cannot store clipboard. No clipboard manager is active." +msgstr "" + +#: gdk/x11/gdkglcontext-glx.c:754 +#, fuzzy +msgid "No GLX configurations available" +msgstr "GLX es Ãnsupportat" + +#: gdk/x11/gdkglcontext-glx.c:827 +msgid "No GLX configuration with required features found" +msgstr "" + +#: gdk/x11/gdkglcontext-glx.c:901 +msgid "GLX is not supported" +msgstr "GLX es Ãnsupportat" + +#: gdk/x11/gdkselectioninputstream-x11.c:469 +#, c-format +msgid "Format %s not supported" +msgstr "Formate %s es Ãnsupportat" + +#: gdk/x11/gdktextlistconverter-x11.c:65 gdk/x11/gdktextlistconverter-x11.c:105 +#, fuzzy +msgid "Not enough space in destination" +msgstr "" +"Ne hay suficent spacie in li destination. Ples provar deleter quelc files " +"por liberar spacie." + +#: gdk/x11/gdktextlistconverter-x11.c:91 gdk/x11/gdktextlistconverter-x11.c:195 +msgid "Need complete input to do conversion" +msgstr "" + +#: gdk/x11/gdktextlistconverter-x11.c:216 +#: gdk/x11/gdktextlistconverter-x11.c:250 +#, fuzzy +msgid "Invalid byte sequence in conversion input" +msgstr "Ãnvalid sequentie de octetes in li intrada de conversion" + +#: gdk/x11/gdktextlistconverter-x11.c:242 +msgid "Invalid formats in compound text conversion." +msgstr "" + +#: gdk/x11/gdktextlistconverter-x11.c:259 +#, c-format +msgid "Unsupported encoding “%sâ€" +msgstr "Ãnsupportat codification «%s»" + +#: gsk/gl/gskglrenderer.c:132 +#, c-format +msgid "This GLES %d.%d implementation does not support half-float vertex data" +msgstr "" + +#: gtk/a11y/gtkatspiaction.c:239 +msgctxt "accessibility" +msgid "Click" +msgstr "Far un clic" + +#: gtk/a11y/gtkatspiaction.c:240 +msgctxt "accessibility" +msgid "Clicks the button" +msgstr "Clicca li buton" + +#: gtk/a11y/gtkatspiaction.c:290 +msgctxt "accessibility" +msgid "Toggle" +msgstr "Alterar" + +#: gtk/a11y/gtkatspiaction.c:291 +#, fuzzy +msgctxt "accessibility" +msgid "Toggles the switch" +msgstr "Monstrar o celar li panel de ligamentes" + +#: gtk/a11y/gtkatspiaction.c:371 +msgctxt "accessibility" +msgid "Select" +msgstr "Selecter" + +#: gtk/a11y/gtkatspiaction.c:372 +msgctxt "accessibility" +msgid "Selects the color" +msgstr "Selecte li color" + +#: gtk/a11y/gtkatspiaction.c:379 gtk/a11y/gtkatspiaction.c:439 +#: gtk/a11y/gtkatspiaction.c:495 gtk/a11y/gtkatspiaction.c:603 +#: gtk/a11y/gtkatspiaction.c:690 +msgctxt "accessibility" +msgid "Activate" +msgstr "Activar" + +#: gtk/a11y/gtkatspiaction.c:380 +msgctxt "accessibility" +msgid "Activates the color" +msgstr "Activa li color" + +#: gtk/a11y/gtkatspiaction.c:387 +msgctxt "accessibility" +msgid "Customize" +msgstr "Personalisar" + +#: gtk/a11y/gtkatspiaction.c:388 +msgctxt "accessibility" +msgid "Customizes the color" +msgstr "Personalisa li color" + +#: gtk/a11y/gtkatspiaction.c:440 +msgctxt "accessibility" +msgid "Activates the expander" +msgstr "Activa li expander" + +#: gtk/a11y/gtkatspiaction.c:496 gtk/a11y/gtkatspiaction.c:604 +#: gtk/a11y/gtkatspiaction.c:691 +msgctxt "accessibility" +msgid "Activates the entry" +msgstr "Activar li element" + +#: gtk/a11y/gtkatspiaction.c:503 +#, fuzzy +msgctxt "accessibility" +msgid "Activate primary icon" +msgstr "Primari" + +#: gtk/a11y/gtkatspiaction.c:504 +#, fuzzy +msgctxt "accessibility" +msgid "Activates the primary icon of the entry" +msgstr "Activar li element" + +#: gtk/a11y/gtkatspiaction.c:511 +#, fuzzy +#| msgctxt "Action description" +#| msgid "Activates the color" +msgctxt "accessibility" +msgid "Activate secondary icon" +msgstr "Activar" + +#: gtk/a11y/gtkatspiaction.c:512 +#, fuzzy +msgctxt "accessibility" +msgid "Activates the secondary icon of the entry" +msgstr "Activar li element" + +#: gtk/a11y/gtkatspiaction.c:611 +#, fuzzy +msgctxt "accessibility" +msgid "Peek" +msgstr "Regardar li Pupitre" + +#: gtk/a11y/gtkatspiaction.c:612 +#, fuzzy +msgctxt "accessibility" +msgid "Shows the contents of the password entry" +msgstr "Un contrasigne por intrar li chambre" + +#: gtk/a11y/gtkatspiaction.c:698 +msgctxt "accessibility" +msgid "Clear" +msgstr "Vacuar" + +#: gtk/a11y/gtkatspiaction.c:699 +#, fuzzy +msgctxt "accessibility" +msgid "Clears the contents of the entry" +msgstr "Element" + +#: gtk/a11y/gtkatspiroot.c:256 +msgctxt "accessibility" +msgid "application" +msgstr "application" + +#: gtk/css/gtkcssdataurl.c:69 +#, fuzzy, c-format +msgid "Not a data: URL" +msgstr "Null data" + +#: gtk/css/gtkcssdataurl.c:82 +#, fuzzy, c-format +msgid "Malformed data: URL" +msgstr "Li data serialisat es corruptet" + +#: gtk/css/gtkcssdataurl.c:140 +#, fuzzy, c-format +msgid "Could not unescape string" +msgstr "<catene>" + +#: gtk/gtkaboutdialog.c:124 gtk/ui/gtkaboutdialog.ui:163 +msgid "License" +msgstr "Licentie" + +#: gtk/gtkaboutdialog.c:125 +msgid "Custom License" +msgstr "Personalisat licentie" + +#: gtk/gtkaboutdialog.c:126 +msgid "GNU General Public License, version 2 or later" +msgstr "GNU General Public License, version 2 or later" + +#: gtk/gtkaboutdialog.c:127 +msgid "GNU General Public License, version 3 or later" +msgstr "GNU General Public License, version 3 or later" + +#: gtk/gtkaboutdialog.c:128 +msgid "GNU Lesser General Public License, version 2.1 or later" +msgstr "GNU Lesser General Public License, version 2.1 or later" + +#: gtk/gtkaboutdialog.c:129 +msgid "GNU Lesser General Public License, version 3 or later" +msgstr "GNU Lesser General Public License, version 3 or later" + +#: gtk/gtkaboutdialog.c:130 +msgid "BSD 2-Clause License" +msgstr "BSD 2-Clause License" + +#: gtk/gtkaboutdialog.c:131 +msgid "The MIT License (MIT)" +msgstr "Li licentie MIT (MIT)" + +#: gtk/gtkaboutdialog.c:132 +msgid "Artistic License 2.0" +msgstr "Licentie artistic 2.0" + +#: gtk/gtkaboutdialog.c:133 +msgid "GNU General Public License, version 2 only" +msgstr "GNU General Public License, solmen version 2" + +#: gtk/gtkaboutdialog.c:134 +msgid "GNU General Public License, version 3 only" +msgstr "GNU General Public License, solmen version 3" + +#: gtk/gtkaboutdialog.c:135 +msgid "GNU Lesser General Public License, version 2.1 only" +msgstr "GNU Lesser General Public License, version 2.1 only" + +#: gtk/gtkaboutdialog.c:136 +msgid "GNU Lesser General Public License, version 3 only" +msgstr "GNU Lesser General Public License, version 3 only" + +#: gtk/gtkaboutdialog.c:137 +msgid "GNU Affero General Public License, version 3 or later" +msgstr "GNU Affero General Public License, version 3 or later" + +#: gtk/gtkaboutdialog.c:138 +msgid "GNU Affero General Public License, version 3 only" +msgstr "GNU Affero General Public License, version 3 only" + +#: gtk/gtkaboutdialog.c:139 +msgid "BSD 3-Clause License" +msgstr "BSD 3-Clause License" + +#: gtk/gtkaboutdialog.c:140 +msgid "Apache License, Version 2.0" +msgstr "Apache License, Version 2.0" + +#: gtk/gtkaboutdialog.c:141 +#| msgid "Artistic License 2.0" +msgid "Mozilla Public License 2.0" +msgstr "Mozilla Public License 2.0" + +#: gtk/gtkaboutdialog.c:937 +msgid "Website" +msgstr "Website" + +#: gtk/gtkaboutdialog.c:973 gtk/ui/gtkapplication-quartz.ui:6 +#, c-format +msgid "About %s" +msgstr "Pri %s" + +#: gtk/gtkaboutdialog.c:2074 +msgid "Created by" +msgstr "Creat de" + +#: gtk/gtkaboutdialog.c:2077 +msgid "Documented by" +msgstr "Documentat de" + +#: gtk/gtkaboutdialog.c:2087 +msgid "Translated by" +msgstr "Traductet de" + +#: gtk/gtkaboutdialog.c:2092 +msgid "Design by" +msgstr "Dessin de" + +#. Translators: this is the license preamble; the string at the end +#. * contains the name of the license as link text. +#. +#: gtk/gtkaboutdialog.c:2257 +#, c-format +msgid "" +"This program comes with absolutely no warranty.\n" +"See the <a href=\"%s\">%s</a> for details." +msgstr "" + +#. This is the text that should appear next to menu accelerators +#. * that use the shift key. If the text on this key isn't typically +#. * translated on keyboards used for your language, don't translate +#. * this. +#. +#: gtk/gtkaccelgroup.c:837 gtk/gtkshortcutlabel.c:101 +#: gtk/gtkshortcutlabel.c:137 +msgctxt "keyboard label" +msgid "Shift" +msgstr "Shift" + +#. This is the text that should appear next to menu accelerators +#. * that use the control key. If the text on this key isn't typically +#. * translated on keyboards used for your language, don't translate +#. * this. +#. +#: gtk/gtkaccelgroup.c:856 gtk/gtkshortcutlabel.c:104 +#: gtk/gtkshortcutlabel.c:139 +msgctxt "keyboard label" +msgid "Ctrl" +msgstr "Ctrl" + +#. This is the text that should appear next to menu accelerators +#. * that use the alt key. If the text on this key isn't typically +#. * translated on keyboards used for your language, don't translate +#. * this. +#. +#: gtk/gtkaccelgroup.c:875 gtk/gtkshortcutlabel.c:107 +#: gtk/gtkshortcutlabel.c:141 +msgctxt "keyboard label" +msgid "Alt" +msgstr "Alt" + +#. This is the text that should appear next to menu accelerators +#. * that use the super key. If the text on this key isn't typically +#. * translated on keyboards used for your language, don't translate +#. * this. +#. +#: gtk/gtkaccelgroup.c:893 gtk/gtkshortcutlabel.c:113 +#: gtk/gtkshortcutlabel.c:143 +msgctxt "keyboard label" +msgid "Super" +msgstr "Super" + +#. This is the text that should appear next to menu accelerators +#. * that use the hyper key. If the text on this key isn't typically +#. * translated on keyboards used for your language, don't translate +#. * this. +#. +#: gtk/gtkaccelgroup.c:907 gtk/gtkshortcutlabel.c:116 +#: gtk/gtkshortcutlabel.c:145 +msgctxt "keyboard label" +msgid "Hyper" +msgstr "Hyper" + +#. This is the text that should appear next to menu accelerators +#. * that use the meta key. If the text on this key isn't typically +#. * translated on keyboards used for your language, don't translate +#. * this. +#. +#: gtk/gtkaccelgroup.c:922 gtk/gtkshortcutlabel.c:110 +#: gtk/gtkshortcutlabel.c:147 +msgctxt "keyboard label" +msgid "Meta" +msgstr "Meta" + +#. Translators: "KP" means "numeric key pad". This string will +#. * be used in accelerators such as "Ctrl+Shift+KP 1" in menus, +#. * and therefore the translation needs to be very short. +#. +#: gtk/gtkaccelgroup.c:942 +msgctxt "keyboard label" +msgid "KP" +msgstr "PdC" + +#: gtk/gtkaccelgroup.c:949 +msgctxt "keyboard label" +msgid "Space" +msgstr "Spacie" + +#: gtk/gtkaccelgroup.c:952 gtk/gtkshortcutlabel.c:172 +msgctxt "keyboard label" +msgid "Backslash" +msgstr "Caracter \\" + +#: gtk/gtkaccessible.c:558 +#, fuzzy +msgctxt "accessibility" +msgid "alert" +msgstr "Alarm" + +#: gtk/gtkaccessible.c:559 +#, fuzzy +msgctxt "accessibility" +msgid "alert dialog" +msgstr "Alarm" + +#: gtk/gtkaccessible.c:560 +msgctxt "accessibility" +msgid "banner" +msgstr "" + +#: gtk/gtkaccessible.c:561 +msgctxt "accessibility" +msgid "button" +msgstr "buton" + +#: gtk/gtkaccessible.c:562 +#, fuzzy +#| msgid "Location" +msgctxt "accessibility" +msgid "caption" +msgstr "Titul:" + +#: gtk/gtkaccessible.c:563 +msgctxt "accessibility" +msgid "cell" +msgstr "cellul" + +#: gtk/gtkaccessible.c:564 +msgctxt "accessibility" +msgid "checkbox" +msgstr "" + +#: gtk/gtkaccessible.c:565 +msgctxt "accessibility" +msgid "column header" +msgstr "cap de columne" + +#: gtk/gtkaccessible.c:566 +#, fuzzy +msgctxt "accessibility" +msgid "combo box" +msgstr "Dialog" + +#: gtk/gtkaccessible.c:567 +msgctxt "accessibility" +msgid "command" +msgstr "comande" + +#: gtk/gtkaccessible.c:568 +msgctxt "accessibility" +msgid "composite" +msgstr "composit" + +#: gtk/gtkaccessible.c:569 +msgctxt "accessibility" +msgid "dialog" +msgstr "dialog" + +#: gtk/gtkaccessible.c:570 +msgctxt "accessibility" +msgid "document" +msgstr "document" + +#: gtk/gtkaccessible.c:571 +#, fuzzy +msgctxt "accessibility" +msgid "feed" +msgstr "Feed" + +#: gtk/gtkaccessible.c:572 +msgctxt "accessibility" +msgid "form" +msgstr "formul" + +#: gtk/gtkaccessible.c:573 +msgctxt "accessibility" +msgid "generic" +msgstr "géneric" + +#: gtk/gtkaccessible.c:574 +msgctxt "accessibility" +msgid "grid" +msgstr "grille" + +#: gtk/gtkaccessible.c:575 +#, fuzzy +msgctxt "accessibility" +msgid "grid cell" +msgstr "grille" + +#: gtk/gtkaccessible.c:576 +msgctxt "accessibility" +msgid "group" +msgstr "gruppe" + +#: gtk/gtkaccessible.c:577 +msgctxt "accessibility" +msgid "heading" +msgstr "rubrica" + +#: gtk/gtkaccessible.c:578 +msgctxt "accessibility" +msgid "image" +msgstr "image" + +#: gtk/gtkaccessible.c:579 +#, fuzzy +msgctxt "accessibility" +msgid "input" +msgstr "Intrada" + +#: gtk/gtkaccessible.c:580 +msgctxt "accessibility" +msgid "label" +msgstr "etiquette" + +#: gtk/gtkaccessible.c:581 +msgctxt "accessibility" +msgid "landmark" +msgstr "" + +#: gtk/gtkaccessible.c:582 +#, fuzzy +msgctxt "accessibility" +msgid "legend" +msgstr "C_urt legende" + +#: gtk/gtkaccessible.c:583 +#, fuzzy +msgctxt "accessibility" +msgid "link" +msgstr "ligament" + +#: gtk/gtkaccessible.c:584 +msgctxt "accessibility" +msgid "list" +msgstr "liste" + +#: gtk/gtkaccessible.c:585 +#, fuzzy +msgctxt "accessibility" +msgid "list box" +msgstr "Lettre-_bux" + +#: gtk/gtkaccessible.c:586 +#, fuzzy +msgctxt "accessibility" +msgid "list item" +msgstr "Element de liste" + +#: gtk/gtkaccessible.c:587 +#, fuzzy +msgctxt "accessibility" +msgid "log" +msgstr "Diarium" + +#: gtk/gtkaccessible.c:588 +#, fuzzy +#| msgid "_Domain" +msgctxt "accessibility" +msgid "main" +msgstr "Primari" + +#: gtk/gtkaccessible.c:589 +msgctxt "accessibility" +msgid "marquee" +msgstr "" + +#: gtk/gtkaccessible.c:590 +#, fuzzy +msgctxt "accessibility" +msgid "math" +msgstr "Matematic" + +#: gtk/gtkaccessible.c:591 +msgctxt "accessibility" +msgid "meter" +msgstr "mesurette" + +#: gtk/gtkaccessible.c:592 +msgctxt "accessibility" +msgid "menu" +msgstr "menú" + +#: gtk/gtkaccessible.c:593 +msgctxt "accessibility" +msgid "menu bar" +msgstr "panel del menú" + +#: gtk/gtkaccessible.c:594 +msgctxt "accessibility" +msgid "menu item" +msgstr "element de menú" + +#: gtk/gtkaccessible.c:595 +#, fuzzy +msgctxt "accessibility" +msgid "menu item checkbox" +msgstr "Aperter" + +#: gtk/gtkaccessible.c:596 +#, fuzzy +msgctxt "accessibility" +msgid "menu item radio" +msgstr "Element de _menú" + +#: gtk/gtkaccessible.c:597 +#, fuzzy +#| msgid "Animations" +msgctxt "accessibility" +msgid "navigation" +msgstr "Navigation" + +#: gtk/gtkaccessible.c:598 +#, fuzzy +msgctxt "accessibility" +msgid "none" +msgstr "null" + +#: gtk/gtkaccessible.c:599 +#, fuzzy +msgctxt "accessibility" +msgid "note" +msgstr "Nota" + +#: gtk/gtkaccessible.c:600 +#, fuzzy +#| msgid "Location" +msgctxt "accessibility" +msgid "option" +msgstr "OPTION" + +#: gtk/gtkaccessible.c:601 +#, fuzzy +#| msgid "Presentation" +msgctxt "accessibility" +msgid "presentation" +msgstr "Presentation" + +#: gtk/gtkaccessible.c:602 +#, fuzzy +msgctxt "accessibility" +msgid "progress bar" +msgstr "Barra de position" + +#: gtk/gtkaccessible.c:603 +#, fuzzy +msgctxt "accessibility" +msgid "radio" +msgstr "Radio" + +#: gtk/gtkaccessible.c:604 +#, fuzzy +msgctxt "accessibility" +msgid "radio group" +msgstr "Radio" + +#: gtk/gtkaccessible.c:605 +#, fuzzy +#| msgctxt "Color name" +#| msgid "Orange" +msgctxt "accessibility" +msgid "range" +msgstr "Range" + +#: gtk/gtkaccessible.c:606 +#, fuzzy +msgctxt "accessibility" +msgid "region" +msgstr "Region" + +#: gtk/gtkaccessible.c:607 +#, fuzzy +#| msgid "Low" +msgctxt "accessibility" +msgid "row" +msgstr "_Range" + +#: gtk/gtkaccessible.c:608 +#, fuzzy +msgctxt "accessibility" +msgid "row group" +msgstr "_Range" + +#: gtk/gtkaccessible.c:609 +#, fuzzy +msgctxt "accessibility" +msgid "row header" +msgstr "cap-linea" + +#: gtk/gtkaccessible.c:610 +#, fuzzy +msgctxt "accessibility" +msgid "scroll bar" +msgstr "Rular pos _tippa" + +#: gtk/gtkaccessible.c:611 +#, fuzzy +#| msgid "Search" +msgctxt "accessibility" +msgid "search" +msgstr "_Serchar:" + +#: gtk/gtkaccessible.c:612 +#, fuzzy +#| msgid "Search" +msgctxt "accessibility" +msgid "search box" +msgstr "Lettre-_bux" + +#: gtk/gtkaccessible.c:613 +msgctxt "accessibility" +msgid "section" +msgstr "section" + +#: gtk/gtkaccessible.c:614 +#, fuzzy +msgctxt "accessibility" +msgid "section head" +msgstr "Section: " + +#: gtk/gtkaccessible.c:615 +#, fuzzy +#| msgctxt "Action name" +#| msgid "Select" +msgctxt "accessibility" +msgid "select" +msgstr "Selecter" + +#: gtk/gtkaccessible.c:616 +msgctxt "accessibility" +msgid "separator" +msgstr "separator" + +#: gtk/gtkaccessible.c:617 +msgctxt "accessibility" +msgid "slider" +msgstr "glissator" + +#: gtk/gtkaccessible.c:618 +#, fuzzy +msgctxt "accessibility" +msgid "spin button" +msgstr "Acurtar li nómines de aparates a alcun númere de caracteres." + +#: gtk/gtkaccessible.c:619 +msgctxt "accessibility" +msgid "status" +msgstr "statu" + +#: gtk/gtkaccessible.c:620 +#, fuzzy +msgctxt "accessibility" +msgid "structure" +msgstr "Structura" + +#: gtk/gtkaccessible.c:621 +#, fuzzy +msgctxt "accessibility" +msgid "switch" +msgstr "Cambiar" + +#: gtk/gtkaccessible.c:622 +msgctxt "accessibility" +msgid "tab" +msgstr "carte" + +#: gtk/gtkaccessible.c:623 +msgctxt "accessibility" +msgid "table" +msgstr "tabelle" + +#: gtk/gtkaccessible.c:624 +#, fuzzy +msgctxt "accessibility" +msgid "tab list" +msgstr "Liste de cartes" + +#: gtk/gtkaccessible.c:625 +#, fuzzy +msgctxt "accessibility" +msgid "tab panel" +msgstr "Panel de cartes" + +#: gtk/gtkaccessible.c:626 +#, fuzzy +msgctxt "accessibility" +msgid "text box" +msgstr "Lettre-_bux" + +#: gtk/gtkaccessible.c:627 +#, fuzzy +msgctxt "accessibility" +msgid "time" +msgstr "Hora" + +#: gtk/gtkaccessible.c:628 +#, fuzzy +msgctxt "accessibility" +msgid "timer" +msgstr "Reverter li temporisator" + +#: gtk/gtkaccessible.c:629 +#, fuzzy +msgctxt "accessibility" +msgid "tool bar" +msgstr "P_anel de instrumentarium" + +#: gtk/gtkaccessible.c:630 +#, fuzzy +msgctxt "accessibility" +msgid "tool tip" +msgstr "U_tensile" + +#: gtk/gtkaccessible.c:631 +#, fuzzy +msgctxt "accessibility" +msgid "tree" +msgstr "árbor" + +#: gtk/gtkaccessible.c:632 +#, fuzzy +msgctxt "accessibility" +msgid "tree grid" +msgstr "Ãrbor" + +#: gtk/gtkaccessible.c:633 +#, fuzzy +msgctxt "accessibility" +msgid "tree item" +msgstr "Ãrb&or" + +#: gtk/gtkaccessible.c:634 +#, fuzzy +msgctxt "accessibility" +msgid "widget" +msgstr "Widget" + +#: gtk/gtkaccessible.c:635 +#, fuzzy +#| msgctxt "Stock label, media" +#| msgid "R_ewind" +msgctxt "accessibility" +msgid "window" +msgstr "fenestre" + +#: gtk/gtkappchooserbutton.c:317 +msgid "Other application…" +msgstr "Altri _application…" + +#: gtk/gtkappchooserdialog.c:204 gtk/gtkappchooserdialog.c:255 +#: gtk/ui/gtkappchooserdialog.ui:4 +msgid "Select Application" +msgstr "Selection del application" + +#. Translators: %s is a filename +#: gtk/gtkappchooserdialog.c:211 +#, c-format +msgid "Opening “%sâ€." +msgstr "Apertente «%s»." + +#: gtk/gtkappchooserdialog.c:212 +#, fuzzy, c-format +msgid "No applications found for “%sâ€" +msgstr "Null applicationes trovat por “%sâ€." + +#. Translators: %s is a file type description +#: gtk/gtkappchooserdialog.c:217 +#, fuzzy, c-format +msgid "Opening “%s†files." +msgstr "Un errore evenit apertente files" + +#: gtk/gtkappchooserdialog.c:219 +#, c-format +msgid "No applications found for “%s†files" +msgstr "Null applicationes trovat por files “%sâ€" + +#: gtk/gtkappchooserdialog.c:421 +msgid "Failed to start GNOME Software" +msgstr "Ne successat lansar li Programmarium de GNOME" + +#: gtk/gtkappchooserwidget.c:519 +msgid "Default Application" +msgstr "Application predefinit" + +#: gtk/gtkappchooserwidget.c:569 +#, c-format +msgid "No applications found for “%sâ€." +msgstr "Null applicationes trovat por “%sâ€." + +#: gtk/gtkappchooserwidget.c:652 +msgid "Recommended Applications" +msgstr "Recomandat applicationes" + +#: gtk/gtkappchooserwidget.c:667 +msgid "Related Applications" +msgstr "Relatet applicationes" + +#: gtk/gtkappchooserwidget.c:681 +msgid "Other Applications" +msgstr "Altri applicationes" + +#. Translators: This is the 'reason' given when inhibiting +#. * suspend or screen locking, and the caller hasn't specified +#. * a reason. +#. +#: gtk/gtkapplication-dbus.c:706 +#, fuzzy +msgid "Reason not specified" +msgstr "Ãnspecificat" + +#: gtk/gtkbookmarksmanager.c:51 +#, fuzzy, c-format +msgid "%s does not exist in the bookmarks list" +msgstr "%s: %s existiert nicht, muss es jedoch." + +#: gtk/gtkbookmarksmanager.c:412 +#, fuzzy, c-format +msgid "%s already exists in the bookmarks list" +msgstr "%s: %s ja existe in li sistema de files" + +#: gtk/gtkbuilder-menus.c:224 +#, c-format +msgid "Element <%s> not allowed inside <%s>" +msgstr "Element <%s> ne es permisset al interiore de <%s>" + +#: gtk/gtkbuilder-menus.c:230 +#, c-format +msgid "Element <%s> not allowed at toplevel" +msgstr "Element <%s> ne es permisset sur li nivell superiori" + +#: gtk/gtkbuilder-menus.c:319 +#, fuzzy, c-format +#| msgid "Element <%s> not allowed inside <%s>" +msgid "Text may not appear inside <%s>" +msgstr "Null textu es permisset in interiore de element <%s>" + +#. Translate to calendar:week_start:0 if you want Sunday to be the +#. * first day of the week to calendar:week_start:1 if you want Monday +#. * to be the first day of the week, and so on. +#. +#: gtk/gtkcalendar.c:656 +msgid "calendar:week_start:0" +msgstr "calendar:week_start:1" + +#. Translate to calendar:YM if you want years to be displayed +#. * before months; otherwise translate to calendar:MY. +#. * Do *not* translate it to anything else, if it +#. * it isn't calendar:YM or calendar:MY it will not work. +#. * +#. * Note that the ordering described here is logical order, which is +#. * further influenced by BIDI ordering. Thus, if you have a default +#. * text direction of RTL and specify "calendar:YM", then the year +#. * will appear to the right of the month. +#. +#: gtk/gtkcalendar.c:807 +msgid "calendar:MY" +msgstr "calendar:MY" + +#. Translators: This dictates how the year is displayed in +#. * gtkcalendar widget. See strftime() manual for the format. +#. * Use only ASCII in the translation. +#. * +#. * "%Y" is appropriate for most locales. +#. +#: gtk/gtkcalendar.c:1394 +msgctxt "calendar year format" +msgid "%Y" +msgstr "%Y" + +#. Translators: this defines whether the day numbers should use +#. * localized digits or the ones used in English (0123...). +#. * +#. * Translate to "%Id" if you want to use localized digits, or +#. * translate to "%d" otherwise. +#. * +#. * Note that translating this doesn't guarantee that you get localized +#. * digits. That needs support from your system and locale definition +#. * too. +#. +#: gtk/gtkcalendar.c:1431 +#, c-format +msgctxt "calendar:day:digits" +msgid "%d" +msgstr "%d" + +#. Translators: this defines whether the week numbers should use +#. * localized digits or the ones used in English (0123...). +#. * +#. * Translate to "%Id" if you want to use localized digits, or +#. * translate to "%d" otherwise. +#. * Note that translating this doesn't guarantee that you get localized +#. * digits. That needs support from your system and locale definition +#. * too. +#: gtk/gtkcalendar.c:1495 +#, c-format +msgctxt "calendar:week:digits" +msgid "%d" +msgstr "%d" + +#. This label is displayed in a treeview cell displaying +#. * a disabled accelerator key combination. +#. +#: gtk/gtkcellrendereraccel.c:287 +msgctxt "Accelerator" +msgid "Disabled" +msgstr "Despermisset" + +#. This label is displayed in a treeview cell displaying +#. * an accelerator key combination that is not valid according +#. * to gtk_accelerator_valid(). +#. +#: gtk/gtkcellrendereraccel.c:297 +msgctxt "Accelerator" +msgid "Invalid" +msgstr "Ãnvalid" + +#. This label is displayed in a treeview cell displaying an accelerator +#. * when the cell is clicked to change the acelerator. +#. +#: gtk/gtkcellrendereraccel.c:429 gtk/gtkcellrendereraccel.c:722 +msgid "New accelerator…" +msgstr "Nov rapid-taste…" + +#: gtk/gtkcellrendererprogress.c:128 gtk/gtkcellrendererprogress.c:318 +#: gtk/gtkcellrendererprogress.c:348 +#, c-format +msgctxt "progress bar label" +msgid "%d %%" +msgstr "%d %%" + +#: gtk/gtkcolorbutton.c:179 gtk/gtkcolorbutton.c:307 +msgid "Pick a Color" +msgstr "Selecte un color" + +#: gtk/gtkcolorbutton.c:496 gtk/gtkcolorchooserwidget.c:308 +#, c-format +msgid "Red %d%%, Green %d%%, Blue %d%%, Alpha %d%%" +msgstr "Rubi %d%%, verdi %d%%, blu %d%%, alfa %d%%" + +#: gtk/gtkcolorbutton.c:502 gtk/gtkcolorchooserwidget.c:314 +#, c-format +msgid "Red %d%%, Green %d%%, Blue %d%%" +msgstr "Rubi %d%%, verdi %d%%, blu %d%%" + +#: gtk/gtkcolorchooserwidget.c:371 +#, c-format +msgid "Color: %s" +msgstr "Color: %s" + +#: gtk/gtkcolorchooserwidget.c:436 +#, fuzzy +msgctxt "Color name" +msgid "Very Light Blue" +msgstr "Lucid blu" + +#: gtk/gtkcolorchooserwidget.c:437 +#, fuzzy +msgctxt "Color name" +msgid "Light Blue" +msgstr "Lucid blu" + +#: gtk/gtkcolorchooserwidget.c:438 +msgctxt "Color name" +msgid "Blue" +msgstr "Blu" + +#: gtk/gtkcolorchooserwidget.c:439 +#, fuzzy +msgctxt "Color name" +msgid "Dark Blue" +msgstr "Obscur:" + +#: gtk/gtkcolorchooserwidget.c:440 +#, fuzzy +msgctxt "Color name" +msgid "Very Dark Blue" +msgstr "Obscur:" + +#: gtk/gtkcolorchooserwidget.c:441 +#, fuzzy +msgctxt "Color name" +msgid "Very Light Green" +msgstr "Lucid verdi" + +#: gtk/gtkcolorchooserwidget.c:442 +#, fuzzy +#| msgctxt "Color name" +#| msgid "Light Gray" +msgctxt "Color name" +msgid "Light Green" +msgstr "Lucid verdi" + +#: gtk/gtkcolorchooserwidget.c:443 +msgctxt "Color name" +msgid "Green" +msgstr "Verdi" + +#: gtk/gtkcolorchooserwidget.c:444 +#, fuzzy +#| msgctxt "Color name" +#| msgid "Dark Gray" +msgctxt "Color name" +msgid "Dark Green" +msgstr "&Verdi:" + +#: gtk/gtkcolorchooserwidget.c:445 +#, fuzzy +msgctxt "Color name" +msgid "Very Dark Green" +msgstr "Obscur:" + +#: gtk/gtkcolorchooserwidget.c:446 +#, fuzzy +msgctxt "Color name" +msgid "Very Light Yellow" +msgstr "Nigri sur clar yelb" + +#: gtk/gtkcolorchooserwidget.c:447 +#, fuzzy +#| msgctxt "Color name" +#| msgid "Light Chameleon" +msgctxt "Color name" +msgid "Light Yellow" +msgstr "Nigri sur clar yelb" + +#: gtk/gtkcolorchooserwidget.c:448 +msgctxt "Color name" +msgid "Yellow" +msgstr "Yelb" + +#: gtk/gtkcolorchooserwidget.c:449 +#, fuzzy +#| msgctxt "Color name" +#| msgid "Dark Chameleon" +msgctxt "Color name" +msgid "Dark Yellow" +msgstr "Yelb" + +#: gtk/gtkcolorchooserwidget.c:450 +#, fuzzy +msgctxt "Color name" +msgid "Very Dark Yellow" +msgstr "Yelb" + +#: gtk/gtkcolorchooserwidget.c:451 +#, fuzzy +#| msgctxt "Color name" +#| msgid "Light Orange" +msgctxt "Color name" +msgid "Very Light Orange" +msgstr "Orange lucid" + +#: gtk/gtkcolorchooserwidget.c:452 +msgctxt "Color name" +msgid "Light Orange" +msgstr "Orange lucid" + +#: gtk/gtkcolorchooserwidget.c:453 +msgctxt "Color name" +msgid "Orange" +msgstr "Orange" + +#: gtk/gtkcolorchooserwidget.c:454 +msgctxt "Color name" +msgid "Dark Orange" +msgstr "Orange obscur" + +#: gtk/gtkcolorchooserwidget.c:455 +#, fuzzy +#| msgctxt "Color name" +#| msgid "Dark Orange" +msgctxt "Color name" +msgid "Very Dark Orange" +msgstr "Orange obscur" + +#: gtk/gtkcolorchooserwidget.c:456 +#, fuzzy +msgctxt "Color name" +msgid "Very Light Red" +msgstr "Lucid rubi" + +#: gtk/gtkcolorchooserwidget.c:457 +#, fuzzy +msgctxt "Color name" +msgid "Light Red" +msgstr "Lucid rubi" + +#: gtk/gtkcolorchooserwidget.c:458 +msgctxt "Color name" +msgid "Red" +msgstr "Rubi" + +#: gtk/gtkcolorchooserwidget.c:459 +#, fuzzy +msgctxt "Color name" +msgid "Dark Red" +msgstr "Obscur:" + +#: gtk/gtkcolorchooserwidget.c:460 +#, fuzzy +msgctxt "Color name" +msgid "Very Dark Red" +msgstr "Obscur:" + +#: gtk/gtkcolorchooserwidget.c:461 +#, fuzzy +msgctxt "Color name" +msgid "Very Light Purple" +msgstr "Purpur" + +#: gtk/gtkcolorchooserwidget.c:462 +#, fuzzy +#| msgctxt "Color name" +#| msgid "Light Plum" +msgctxt "Color name" +msgid "Light Purple" +msgstr "Purpur" + +#: gtk/gtkcolorchooserwidget.c:463 +msgctxt "Color name" +msgid "Purple" +msgstr "Purpur" + +#: gtk/gtkcolorchooserwidget.c:464 +#, fuzzy +#| msgctxt "Color name" +#| msgid "Dark Plum" +msgctxt "Color name" +msgid "Dark Purple" +msgstr "Purpur" + +#: gtk/gtkcolorchooserwidget.c:465 +#, fuzzy +msgctxt "Color name" +msgid "Very Dark Purple" +msgstr "Purpur" + +#: gtk/gtkcolorchooserwidget.c:466 +#, fuzzy +msgctxt "Color name" +msgid "Very Light Brown" +msgstr "Brun" + +#: gtk/gtkcolorchooserwidget.c:467 +#, fuzzy +#| msgctxt "output-bin" +#| msgid "Right Bin" +msgctxt "Color name" +msgid "Light Brown" +msgstr "Brun" + +#: gtk/gtkcolorchooserwidget.c:468 +msgctxt "Color name" +msgid "Brown" +msgstr "Brun" + +#: gtk/gtkcolorchooserwidget.c:469 +#, fuzzy +msgctxt "Color name" +msgid "Dark Brown" +msgstr "Brun" + +#: gtk/gtkcolorchooserwidget.c:470 +#, fuzzy +msgctxt "Color name" +msgid "Very Dark Brown" +msgstr "Brun" + +#: gtk/gtkcolorchooserwidget.c:471 +msgctxt "Color name" +msgid "White" +msgstr "Blanc" + +#: gtk/gtkcolorchooserwidget.c:472 +#, fuzzy +#| msgctxt "Color name" +#| msgid "Light Gray" +msgctxt "Color name" +msgid "Light Gray 1" +msgstr "Lucid gris" + +#: gtk/gtkcolorchooserwidget.c:473 +#, fuzzy +#| msgctxt "Color name" +#| msgid "Light Gray" +msgctxt "Color name" +msgid "Light Gray 2" +msgstr "Lucid gris" + +#: gtk/gtkcolorchooserwidget.c:474 +#, fuzzy +#| msgctxt "Color name" +#| msgid "Light Gray" +msgctxt "Color name" +msgid "Light Gray 3" +msgstr "Lucid gris" + +#: gtk/gtkcolorchooserwidget.c:475 +#, fuzzy +#| msgctxt "Color name" +#| msgid "Light Gray" +msgctxt "Color name" +msgid "Light Gray 4" +msgstr "Lucid gris" + +#: gtk/gtkcolorchooserwidget.c:476 +#, fuzzy +#| msgctxt "Color name" +#| msgid "Dark Gray" +msgctxt "Color name" +msgid "Dark Gray 1" +msgstr "Gris obscur" + +#: gtk/gtkcolorchooserwidget.c:477 +#, fuzzy +#| msgctxt "Color name" +#| msgid "Dark Gray" +msgctxt "Color name" +msgid "Dark Gray 2" +msgstr "Gris obscur" + +#: gtk/gtkcolorchooserwidget.c:478 +#, fuzzy +#| msgctxt "Color name" +#| msgid "Dark Gray" +msgctxt "Color name" +msgid "Dark Gray 3" +msgstr "Gris obscur" + +#: gtk/gtkcolorchooserwidget.c:479 +#, fuzzy +#| msgctxt "Color name" +#| msgid "Dark Gray" +msgctxt "Color name" +msgid "Dark Gray 4" +msgstr "Gris obscur" + +#: gtk/gtkcolorchooserwidget.c:480 +msgctxt "Color name" +msgid "Black" +msgstr "Nigri" + +#. translators: label for the custom section in the color chooser +#: gtk/gtkcolorchooserwidget.c:552 +msgid "Custom" +msgstr "Personal" + +#: gtk/gtkcolorchooserwidget.c:585 +#, c-format +msgid "Custom color %d: %s" +msgstr "Personal color %d: %s" + +#: gtk/gtkcolorswatch.c:231 +#, fuzzy +#| msgctxt "Action name" +#| msgid "Customize" +msgid "Customize" +msgstr "Personalisar" + +#. Translate to the default units to use for presenting +#. * lengths to the user. Translate to default:inch if you +#. * want inches, otherwise translate to default:mm. +#. * Do *not* translate it to "predefinito:mm", if it +#. * it isn't default:mm or default:inch it will not work +#. +#: gtk/gtkcustompaperunixdialog.c:112 +msgid "default:mm" +msgstr "default:mm" + +#: gtk/gtkcustompaperunixdialog.c:318 +#, fuzzy +msgid "Margins from Printer…" +msgstr "Márgines:" + +#: gtk/gtkcustompaperunixdialog.c:348 gtk/gtkmessagedialog.c:162 +#: gtk/ui/gtkassistant.ui:40 +msgid "_Close" +msgstr "_Cluder" + +#. And show the custom paper dialog +#: gtk/gtkcustompaperunixdialog.c:402 gtk/gtkprintunixdialog.c:3016 +msgid "Manage Custom Sizes" +msgstr "Personalisat grandores" + +#: gtk/gtkcustompaperunixdialog.c:466 gtk/gtkpagesetupunixdialog.c:720 +msgid "inch" +msgstr "inch" + +#: gtk/gtkcustompaperunixdialog.c:468 gtk/gtkpagesetupunixdialog.c:718 +msgid "mm" +msgstr "mm" + +#: gtk/gtkcustompaperunixdialog.c:625 +#, c-format +msgid "Custom Size %d" +msgstr "Personalisat %d" + +#: gtk/gtkcustompaperunixdialog.c:939 +msgid "_Width:" +msgstr "_Largore:" + +#: gtk/gtkcustompaperunixdialog.c:950 +msgid "_Height:" +msgstr "_Altore:" + +#: gtk/gtkcustompaperunixdialog.c:961 +msgid "Paper Size" +msgstr "Dimension de papere" + +#: gtk/gtkcustompaperunixdialog.c:970 +msgid "_Top:" +msgstr "_Alt:" + +#: gtk/gtkcustompaperunixdialog.c:981 +msgid "_Bottom:" +msgstr "_Bass:" + +#: gtk/gtkcustompaperunixdialog.c:992 +msgid "_Left:" +msgstr "_Levul:" + +#: gtk/gtkcustompaperunixdialog.c:1003 +msgid "_Right:" +msgstr "_Dextri:" + +#: gtk/gtkcustompaperunixdialog.c:1039 +msgid "Paper Margins" +msgstr "Márgines" + +#: gtk/gtkentry.c:3665 +msgid "Insert Emoji" +msgstr "Inserter un emoji" + +#: gtk/gtkfilechooserdialog.c:549 +msgid "_Name" +msgstr "_Nómine" + +#: gtk/gtkfilechoosererrorstack.c:65 +msgid "A folder cannot be called “.â€" +msgstr "Un fólder ne posse esser nominat “.â€." + +#: gtk/gtkfilechoosererrorstack.c:69 +msgid "A file cannot be called “.â€" +msgstr "Un file ne posse esser nominat “.â€." + +#: gtk/gtkfilechoosererrorstack.c:73 +msgid "A folder cannot be called “..â€" +msgstr "Un fólder ne posse esser nominat “..â€." + +#: gtk/gtkfilechoosererrorstack.c:77 +msgid "A file cannot be called “..â€" +msgstr "Un file ne posse esser nominat “..â€." + +#: gtk/gtkfilechoosererrorstack.c:81 +msgid "Folder names cannot contain “/â€" +msgstr "Nómines de fólderes ne posse contener “/â€." + +#: gtk/gtkfilechoosererrorstack.c:85 +msgid "File names cannot contain “/â€" +msgstr "Nómines de files ne posse contener “/â€." + +#: gtk/gtkfilechoosererrorstack.c:89 +#, fuzzy +msgid "Folder names should not begin with a space" +msgstr "Nómines de fólder deve ne finir in un spacie" + +#: gtk/gtkfilechoosererrorstack.c:93 +#, fuzzy +msgid "File names should not begin with a space" +msgstr "Nómines de file deve ne finir in un spacie" + +#: gtk/gtkfilechoosererrorstack.c:97 +msgid "Folder names should not end with a space" +msgstr "Nómines de fólder deve ne finir in un spacie" + +#: gtk/gtkfilechoosererrorstack.c:101 +msgid "File names should not end with a space" +msgstr "Nómines de file deve ne finir in un spacie" + +#: gtk/gtkfilechoosererrorstack.c:105 +#, fuzzy +msgid "Folder names starting with a “.†are hidden" +msgstr "Nómines de fólder deve ne finir in un spacie" + +#: gtk/gtkfilechoosererrorstack.c:109 +#, fuzzy +msgid "File names starting with a “.†are hidden" +msgstr "in fil-nómines" + +#: gtk/gtkfilechoosererrorstack.c:113 +msgid "A folder with that name already exists" +msgstr "Li fólder con ti-ci nómine ja existe" + +#: gtk/gtkfilechoosererrorstack.c:117 +msgid "A file with that name already exists" +msgstr "Li file con ti-ci nómine ja existe" + +#: gtk/gtkfilechoosernative.c:509 gtk/gtkfilechoosernative.c:580 +#: gtk/gtkfilechooserwidget.c:1210 gtk/gtkfilechooserwidget.c:5800 +#: gtk/gtkmessagedialog.c:166 gtk/gtkmessagedialog.c:175 +#: gtk/gtkmountoperation.c:608 gtk/gtkpagesetupunixdialog.c:283 +#: gtk/gtkprintbackend.c:637 gtk/gtkprinteroptionwidget.c:721 +#: gtk/gtkprintunixdialog.c:651 gtk/gtkprintunixdialog.c:807 +#: gtk/gtkwindow.c:6152 gtk/inspector/css-editor.c:248 +#: gtk/inspector/recorder.c:1723 gtk/ui/gtkappchooserdialog.ui:45 +#: gtk/ui/gtkassistant.ui:52 gtk/ui/gtkcolorchooserdialog.ui:33 +#: gtk/ui/gtkfontchooserdialog.ui:24 +msgid "_Cancel" +msgstr "_Annular" + +#: gtk/gtkfilechoosernative.c:510 gtk/gtkfilechoosernative.c:574 +#: gtk/gtkplacessidebar.c:3146 gtk/gtkplacessidebar.c:3231 +#: gtk/gtkplacesview.c:1659 +msgid "_Open" +msgstr "_Aperter" + +#: gtk/gtkfilechoosernative.c:574 gtk/inspector/css-editor.c:249 +#: gtk/inspector/recorder.c:1724 +msgid "_Save" +msgstr "_Gardar" + +#: gtk/gtkfilechoosernativequartz.c:339 gtk/ui/gtkfilechooserwidget.ui:346 +#, fuzzy +msgid "Select which types of files are shown" +msgstr "Selecte li fólder que contene files .po:" + +#. Translators: the first string is a path and the second string +#. * is a hostname. Nautilus and the panel contain the same string +#. * to translate. +#. +#: gtk/gtkfilechooserutils.c:362 +#, c-format +msgid "%1$s on %2$s" +msgstr "%1$s sur %2$s" + +#: gtk/gtkfilechooserwidget.c:319 +msgid "Type name of new folder" +msgstr "Provide un nómine del nov fólder" + +#: gtk/gtkfilechooserwidget.c:724 +#, fuzzy +msgid "The folder could not be created" +msgstr "" +"Ne successat crear li besonat fólder pro que un fólder con li sam nómine ja " +"existe." + +#: gtk/gtkfilechooserwidget.c:737 +msgid "You need to choose a valid filename." +msgstr "On deve selecter un valid nómine de file." + +#: gtk/gtkfilechooserwidget.c:740 +#, c-format +msgid "Cannot create a file under %s as it is not a folder" +msgstr "" + +#: gtk/gtkfilechooserwidget.c:750 +msgid "Cannot create file as the filename is too long" +msgstr "" + +#: gtk/gtkfilechooserwidget.c:751 +msgid "Try using a shorter name." +msgstr "Ples usar un plu curt nómine." + +#: gtk/gtkfilechooserwidget.c:761 +msgid "You may only select folders" +msgstr "On pote selecter solmen fólderes" + +#: gtk/gtkfilechooserwidget.c:762 +msgid "The item that you selected is not a folder try using a different item." +msgstr "" + +#: gtk/gtkfilechooserwidget.c:770 +msgid "Invalid file name" +msgstr "Li nómine de file es Ãnvalid" + +#: gtk/gtkfilechooserwidget.c:779 +msgid "The folder contents could not be displayed" +msgstr "Li contenete del fólder ne posse esser monstrat" + +#: gtk/gtkfilechooserwidget.c:787 +msgid "The file could not be deleted" +msgstr "Li file ne posset esser deletet" + +#: gtk/gtkfilechooserwidget.c:795 +msgid "The file could not be moved to the Trash" +msgstr "Li file ne posset esser movet in li Paper-corb" + +#: gtk/gtkfilechooserwidget.c:1206 +#, c-format +msgid "Are you sure you want to permanently delete “%sâ€?" +msgstr "Esque vu vole remover «%s» permanentmen?" + +#: gtk/gtkfilechooserwidget.c:1209 +#, fuzzy, c-format +msgid "If you delete an item, it will be permanently lost." +msgstr "Si vu delete un element, it va esser perdit irrevocabilmen." + +#: gtk/gtkfilechooserwidget.c:1211 gtk/gtkfilechooserwidget.c:1827 +#: gtk/gtklabel.c:5652 gtk/gtktext.c:6061 gtk/gtktextview.c:8966 +msgid "_Delete" +msgstr "_Deleter" + +#: gtk/gtkfilechooserwidget.c:1334 +msgid "The file could not be renamed" +msgstr "Li file ne posse esser renominat" + +#: gtk/gtkfilechooserwidget.c:1594 +#, fuzzy +msgid "Could not select file" +msgstr "Ne successat trovar li file «%s»" + +#: gtk/gtkfilechooserwidget.c:1807 +msgid "_Visit File" +msgstr "_Ear al file" + +#: gtk/gtkfilechooserwidget.c:1811 +msgid "_Open With File Manager" +msgstr "_Aperter per gerentiator de files" + +#: gtk/gtkfilechooserwidget.c:1815 +msgid "_Copy Location" +msgstr "Copiar li _localisation" + +#: gtk/gtkfilechooserwidget.c:1819 +msgid "_Add to Bookmarks" +msgstr "Adjunter un _marca-págines" + +#: gtk/gtkfilechooserwidget.c:1823 gtk/gtkplacessidebar.c:2310 +#: gtk/gtkplacessidebar.c:3267 gtk/ui/gtkfilechooserwidget.ui:465 +msgid "_Rename" +msgstr "_Renominar" + +#: gtk/gtkfilechooserwidget.c:1831 +msgid "_Move to Trash" +msgstr "_Mover in li Paper-corb" + +#: gtk/gtkfilechooserwidget.c:1840 +msgid "Show _Hidden Files" +msgstr "Revelar c_elat files" + +#: gtk/gtkfilechooserwidget.c:1844 +msgid "Show _Size Column" +msgstr "Monstrar _grandores" + +#: gtk/gtkfilechooserwidget.c:1848 +#, fuzzy +#| msgid "Show _Size Column" +msgid "Show T_ype Column" +msgstr "T_ip de servicie:" + +#: gtk/gtkfilechooserwidget.c:1852 +msgid "Show _Time" +msgstr "Monstrar _horas" + +#: gtk/gtkfilechooserwidget.c:1856 +#, fuzzy +msgid "Sort _Folders Before Files" +msgstr "Ordinar _fólderes ante files" + +#. this is the header for the location column in the print dialog +#: gtk/gtkfilechooserwidget.c:2256 gtk/inspector/css-node-tree.ui:135 +#: gtk/ui/gtkfilechooserwidget.ui:186 gtk/ui/gtkprintunixdialog.ui:114 +msgid "Location" +msgstr "Localisation" + +#. Label +#: gtk/gtkfilechooserwidget.c:2363 +msgid "_Name:" +msgstr "_Nómine:" + +#: gtk/gtkfilechooserwidget.c:2897 gtk/gtkfilechooserwidget.c:2911 +#, fuzzy, c-format +msgid "Searching in %s" +msgstr "Serchante por «%s»…" + +#: gtk/gtkfilechooserwidget.c:2917 +#, fuzzy +msgid "Searching" +msgstr "Sercha" + +#: gtk/gtkfilechooserwidget.c:2923 +msgid "Enter location or URL" +msgstr "Intra un localisation o un URL" + +#: gtk/gtkfilechooserwidget.c:3813 gtk/gtkfilechooserwidget.c:6637 +#: gtk/ui/gtkfilechooserwidget.ui:226 +msgid "Modified" +msgstr "Modificat" + +#: gtk/gtkfilechooserwidget.c:4072 +#, fuzzy, c-format +msgid "Could not read the contents of %s" +msgstr "%s: Anzeigenummer konnte nicht gelesen werden" + +#: gtk/gtkfilechooserwidget.c:4076 +#, fuzzy +msgid "Could not read the contents of the folder" +msgstr "Li contenete del fólder ne posse esser monstrat" + +#. Translators: see g_date_time_format() for details on the format +#: gtk/gtkfilechooserwidget.c:4216 gtk/gtkfilechooserwidget.c:4259 +msgid "%H:%M" +msgstr "%H:%M" + +#: gtk/gtkfilechooserwidget.c:4218 gtk/gtkfilechooserwidget.c:4261 +msgid "%l:%M %p" +msgstr "%l:%M %p" + +#: gtk/gtkfilechooserwidget.c:4222 +msgid "Yesterday" +msgstr "Yer" + +#: gtk/gtkfilechooserwidget.c:4230 +msgid "%-e %b" +msgstr "%-e %b" + +#: gtk/gtkfilechooserwidget.c:4234 +msgid "%-e %b %Y" +msgstr "%-e %b %Y" + +#: gtk/gtkfilechooserwidget.c:4323 gtk/gtkfilechooserwidget.c:4331 +msgid "Program" +msgstr "Programma" + +#: gtk/gtkfilechooserwidget.c:4324 +msgid "Audio" +msgstr "Audio" + +#: gtk/gtkfilechooserwidget.c:4325 gtk/gtkfontbutton.c:596 +#: gtk/inspector/visual.ui:170 +msgid "Font" +msgstr "Fonde" + +#: gtk/gtkfilechooserwidget.c:4326 +msgid "Image" +msgstr "Image" + +#: gtk/gtkfilechooserwidget.c:4327 +msgid "Archive" +msgstr "Archive" + +#: gtk/gtkfilechooserwidget.c:4328 +#, fuzzy +msgid "Markup" +msgstr "Tip del marca:" + +#: gtk/gtkfilechooserwidget.c:4329 gtk/gtkfilechooserwidget.c:4330 +msgid "Text" +msgstr "Textu" + +#: gtk/gtkfilechooserwidget.c:4332 +msgid "Video" +msgstr "Video" + +#: gtk/gtkfilechooserwidget.c:4333 +msgid "Contacts" +msgstr "Contactes" + +#: gtk/gtkfilechooserwidget.c:4334 +msgid "Calendar" +msgstr "Calendare" + +#: gtk/gtkfilechooserwidget.c:4335 +msgid "Document" +msgstr "Document" + +#: gtk/gtkfilechooserwidget.c:4336 +msgid "Presentation" +msgstr "Presentation" + +#: gtk/gtkfilechooserwidget.c:4337 +msgid "Spreadsheet" +msgstr "Folie de calcules" + +#: gtk/gtkfilechooserwidget.c:4368 gtk/gtkfilechooserwidget.c:4561 +msgid "Unknown" +msgstr "Ãnconosset" + +#: gtk/gtkfilechooserwidget.c:4600 gtk/gtkplacessidebar.c:1027 +msgid "Home" +msgstr "Hem" + +#: gtk/gtkfilechooserwidget.c:5793 gtk/gtkprintunixdialog.c:642 +#, c-format +msgid "A file named “%s†already exists. Do you want to replace it?" +msgstr "Un file nominat «%s» ja existe. Esque substituer it?" + +#: gtk/gtkfilechooserwidget.c:5796 gtk/gtkprintunixdialog.c:646 +#, c-format +msgid "" +"The file already exists in “%sâ€. Replacing it will overwrite its contents." +msgstr "" +"Li file ja existet in «%s». Si on substitue it, su contenete va esser " +"superscrit." + +#: gtk/gtkfilechooserwidget.c:5801 gtk/gtkprintunixdialog.c:654 +msgid "_Replace" +msgstr "_Substituer" + +#: gtk/gtkfilechooserwidget.c:5962 +msgid "You do not have access to the specified folder." +msgstr "Vu ne have permissiones por acceder li providet fólder." + +#: gtk/gtkfilechooserwidget.c:6566 +#, fuzzy +msgid "Could not send the search request" +msgstr "Ne successat inviar li actual document" + +#: gtk/gtkfilechooserwidget.c:6877 +msgid "Accessed" +msgstr "Accesset" + +#: gtk/gtkfontbutton.c:395 +msgid "Sans 12" +msgstr "Sans 12" + +#: gtk/gtkfontbutton.c:506 gtk/gtkfontbutton.c:620 +msgid "Pick a Font" +msgstr "Selecte un _fonde" + +#: gtk/gtkfontbutton.c:1323 +msgctxt "font" +msgid "None" +msgstr "Null" + +#: gtk/gtkfontchooserdialog.c:184 +#, fuzzy +msgid "Change Font Features" +msgstr "_Fonde…" + +#: gtk/gtkfontchooserwidget.c:1534 +msgctxt "Font variation axis" +msgid "Width" +msgstr "Largore" + +#: gtk/gtkfontchooserwidget.c:1535 +msgctxt "Font variation axis" +msgid "Weight" +msgstr "Pesa" + +#: gtk/gtkfontchooserwidget.c:1536 +msgctxt "Font variation axis" +msgid "Italic" +msgstr "Italic" + +#: gtk/gtkfontchooserwidget.c:1537 +msgctxt "Font variation axis" +msgid "Slant" +msgstr "Obliqui" + +#: gtk/gtkfontchooserwidget.c:1538 +#, fuzzy +msgctxt "Font variation axis" +msgid "Optical Size" +msgstr "Optical dimension" + +#: gtk/gtkfontchooserwidget.c:2094 +msgctxt "Font feature value" +msgid "Default" +msgstr "Predefinit" + +#: gtk/gtkfontchooserwidget.c:2111 +msgctxt "Font feature value" +msgid "Enable" +msgstr "Activar" + +#: gtk/gtkfontchooserwidget.c:2439 +msgid "Default" +msgstr "Predefinit" + +#: gtk/gtkfontchooserwidget.c:2501 +msgid "Ligatures" +msgstr "Ligaturas" + +#: gtk/gtkfontchooserwidget.c:2502 +#, fuzzy +#| msgctxt "paper size" +#| msgid "US Letter Plus" +msgid "Letter Case" +msgstr "US _Letter" + +#: gtk/gtkfontchooserwidget.c:2503 +#, fuzzy +msgid "Number Case" +msgstr "BUXE" + +#: gtk/gtkfontchooserwidget.c:2504 +#, fuzzy +msgid "Number Spacing" +msgstr "Interspacie:" + +#: gtk/gtkfontchooserwidget.c:2505 +msgid "Fractions" +msgstr "Fractiones" + +#: gtk/gtkfontchooserwidget.c:2506 +msgid "Style Variations" +msgstr "Variationes de stil" + +#: gtk/gtkfontchooserwidget.c:2508 +msgid "Character Variations" +msgstr "Variationes de caracter" + +#: gtk/gtkglarea.c:284 +msgid "OpenGL context creation failed" +msgstr "Ne successat crear un contextu OpenGL" + +#: gtk/gtklabel.c:5649 gtk/gtktext.c:6049 gtk/gtktextview.c:8954 +msgid "Cu_t" +msgstr "Exci_ser" + +#: gtk/gtklabel.c:5650 gtk/gtktext.c:6053 gtk/gtktextview.c:8958 +msgid "_Copy" +msgstr "_Copiar" + +#: gtk/gtklabel.c:5651 gtk/gtktext.c:6057 gtk/gtktextview.c:8962 +msgid "_Paste" +msgstr "Co_llar" + +#: gtk/gtklabel.c:5657 gtk/gtktext.c:6070 gtk/gtktextview.c:8987 +msgid "Select _All" +msgstr "Select _omnicos" + +#: gtk/gtklabel.c:5662 +msgid "_Open Link" +msgstr "_Aperter ligament" + +#: gtk/gtklabel.c:5666 +msgid "Copy _Link Address" +msgstr "Copiar li adresse del _ligament" + +#: gtk/gtklinkbutton.c:255 +msgid "_Copy URL" +msgstr "_Copiar li URL" + +#: gtk/gtklinkbutton.c:540 +msgid "Invalid URI" +msgstr "Ãnvalid URI" + +#: gtk/gtklockbutton.c:286 gtk/ui/gtklockbutton.ui:20 +msgid "Lock" +msgstr "Serrar" + +#: gtk/gtklockbutton.c:298 gtk/ui/gtklockbutton.ui:26 +msgid "Unlock" +msgstr "Desserrar" + +#: gtk/gtklockbutton.c:310 +msgid "" +"Dialog is unlocked.\n" +"Click to prevent further changes" +msgstr "" +"Dialog es desserrat.\n" +"Clic por impedir plu alterationes." + +#: gtk/gtklockbutton.c:322 +msgid "" +"Dialog is locked.\n" +"Click to make changes" +msgstr "" +"Dialog es serrat.\n" +"Clic por far alterationes" + +#: gtk/gtklockbutton.c:334 +msgid "" +"System policy prevents changes.\n" +"Contact your system administrator" +msgstr "" +"Li politica del sistema impedi modificationes.\n" +"Contacte vor administrator de sistema" + +#. Translate to default:RTL if you want your widgets +#. * to be RTL, otherwise translate to default:LTR. +#. * Do *not* translate it to "predefinito:LTR", if it +#. * it isn't default:LTR or default:RTL it will not work +#. +#: gtk/gtkmain.c:788 +msgid "default:LTR" +msgstr "default:LTR" + +#. hour:minutes:seconds +#. Translators: This is a time format, like "9:05:02" for 9 +#. * hours, 5 minutes, and 2 seconds. You may change ":" to +#. * the separator that your locale uses or use "%Id" instead +#. * of "%d" if your locale uses localized digits. +#. +#: gtk/gtkmediacontrols.c:100 +#, c-format +msgctxt "long time format" +msgid "%d:%02d:%02d" +msgstr "%d:%02d:%02d" + +#. -hour:minutes:seconds +#. Translators: This is a time format, like "-9:05:02" for 9 +#. * hours, 5 minutes, and 2 seconds playback remaining. You may +#. * change ":" to the separator that your locale uses or use +#. * "%Id" instead of "%d" if your locale uses localized digits. +#. +#: gtk/gtkmediacontrols.c:108 +#, c-format +msgctxt "long time format" +msgid "-%d:%02d:%02d" +msgstr "-%d:%02d:%02d" + +#. -minutes:seconds +#. Translators: This is a time format, like "-5:02" for 5 +#. * minutes and 2 seconds playback remaining. You may change +#. * ":" to the separator that your locale uses or use "%Id" +#. * instead of "%d" if your locale uses localized digits. +#. +#: gtk/gtkmediacontrols.c:119 +#, c-format +msgctxt "short time format" +msgid "-%d:%02d" +msgstr "-%d:%02d" + +#. minutes:seconds +#. Translators: This is a time format, like "5:02" for 5 +#. * minutes and 2 seconds. You may change ":" to the +#. * separator that your locale uses or use "%Id" instead of +#. * "%d" if your locale uses localized digits. +#. +#: gtk/gtkmediacontrols.c:128 +#, c-format +msgctxt "short time format" +msgid "%d:%02d" +msgstr "%d:%02d" + +#: gtk/gtkmessagedialog.c:158 gtk/gtkmessagedialog.c:176 +#: gtk/gtkprintbackend.c:638 gtk/gtkwindow.c:6153 +msgid "_OK" +msgstr "_OK" + +#: gtk/gtkmessagedialog.c:170 +msgid "_No" +msgstr "_No" + +#: gtk/gtkmessagedialog.c:171 +msgid "_Yes" +msgstr "_Yes" + +#: gtk/gtkmountoperation.c:609 +msgid "Co_nnect" +msgstr "Co_nexer" + +#: gtk/gtkmountoperation.c:675 +msgid "Connect As" +msgstr "Connexer quam" + +#: gtk/gtkmountoperation.c:684 +msgid "_Anonymous" +msgstr "_Anonim" + +#: gtk/gtkmountoperation.c:691 +msgid "Registered U_ser" +msgstr "U_sator registrat" + +#: gtk/gtkmountoperation.c:701 +msgid "_Username" +msgstr "Nómine de _usator" + +#: gtk/gtkmountoperation.c:706 +msgid "_Domain" +msgstr "_Dominia" + +#: gtk/gtkmountoperation.c:715 +msgid "Volume type" +msgstr "Tip de tom" + +#: gtk/gtkmountoperation.c:725 +msgid "_Hidden" +msgstr "C_elat" + +#: gtk/gtkmountoperation.c:728 +msgid "_Windows system" +msgstr "Sistema _Windows" + +#: gtk/gtkmountoperation.c:731 +msgid "_PIM" +msgstr "" + +#: gtk/gtkmountoperation.c:737 +msgid "_Password" +msgstr "_Contrasigne" + +#: gtk/gtkmountoperation.c:759 +msgid "Forget password _immediately" +msgstr "Obl_iviar contrasigne Ãnmediatmen" + +#: gtk/gtkmountoperation.c:769 +#, fuzzy +msgid "Remember password until you _logout" +msgstr "Memorar _li contrasigne til cluder li session" + +#: gtk/gtkmountoperation.c:780 +msgid "Remember _forever" +msgstr "Memorar pe_rmanentmen" + +#: gtk/gtkmountoperation.c:1206 +#, c-format +msgid "Unknown Application (PID %d)" +msgstr "Ãnconosset application (PID %d)" + +#: gtk/gtkmountoperation.c:1405 +#, fuzzy, c-format +msgid "Unable to end process" +msgstr "_Finir li processu" + +#: gtk/gtkmountoperation.c:1435 +msgid "_End Process" +msgstr "T_erminar li processu" + +#: gtk/gtkmountoperation-stub.c:61 +#, fuzzy, c-format +msgid "Cannot kill process with PID %d. Operation is not implemented." +msgstr "" +"Ne successat terminar li processu con PID %d per signal %d.\n" +"%s" + +#. translators: this string is a name for the 'less' command +#: gtk/gtkmountoperation-x11.c:984 +msgid "Terminal Pager" +msgstr "Paginator por Terminal" + +#: gtk/gtkmountoperation-x11.c:985 +msgid "Top Command" +msgstr "Comande top" + +#: gtk/gtkmountoperation-x11.c:986 +msgid "Bourne Again Shell" +msgstr "BASH" + +#: gtk/gtkmountoperation-x11.c:987 +msgid "Bourne Shell" +msgstr "Shell de Bourne" + +#: gtk/gtkmountoperation-x11.c:988 +msgid "Z Shell" +msgstr "Z-shell" + +#: gtk/gtkmountoperation-x11.c:1085 +#, fuzzy, c-format +msgid "Cannot end process with PID %d: %s" +msgstr "" +"Ne successat terminar li processu con PID %d per signal %d.\n" +"%s" + +#: gtk/gtknomediafile.c:48 +msgid "GTK could not find a media module. Check your installation." +msgstr "" + +#: gtk/gtknotebook.c:1491 +msgid "Tab list" +msgstr "Liste de cartes" + +#: gtk/gtknotebook.c:3214 +msgid "Previous tab" +msgstr "Precedent carte" + +#: gtk/gtknotebook.c:3218 +msgid "Next tab" +msgstr "Sequent carte" + +#: gtk/gtknotebook.c:4038 +msgid "Tab" +msgstr "Carte" + +#: gtk/gtknotebook.c:4336 gtk/gtknotebook.c:6544 +#, c-format +msgid "Page %u" +msgstr "Págine %u" + +#: gtk/gtkpagesetup.c:609 gtk/gtkpapersize.c:942 gtk/gtkpapersize.c:982 +#, fuzzy +msgid "Not a valid page setup file" +msgstr "Formate de págine…" + +#: gtk/gtkpagesetupunixdialog.c:201 gtk/gtkprintunixdialog.c:736 +#, fuzzy +msgid "Manage Custom Sizes…" +msgstr "Personalisat grandores" + +#: gtk/gtkpagesetupunixdialog.c:284 gtk/ui/gtkassistant.ui:98 +msgid "_Apply" +msgstr "_Applicar" + +#: gtk/gtkpagesetupunixdialog.c:318 gtk/gtkpagesetupunixdialog.c:570 +msgid "Any Printer" +msgstr "Alquel printator" + +#: gtk/gtkpagesetupunixdialog.c:319 +msgid "For portable documents" +msgstr "Por documentes portabil" + +#: gtk/gtkpagesetupunixdialog.c:738 +#, c-format +msgid "" +"Margins:\n" +" Left: %s %s\n" +" Right: %s %s\n" +" Top: %s %s\n" +" Bottom: %s %s" +msgstr "" + +#: gtk/gtkpagesetupunixdialog.c:784 gtk/ui/gtkpagesetupunixdialog.ui:5 +#: gtk/ui/gtkprintunixdialog.ui:709 +msgid "Page Setup" +msgstr "Formate de págine" + +#: gtk/gtkpasswordentry.c:173 +msgid "Hide Text" +msgstr "Celar li textu" + +#: gtk/gtkpasswordentry.c:178 gtk/gtkpasswordentry.c:622 +msgid "Show Text" +msgstr "Monstrar li textu" + +#: gtk/gtkpasswordentry.c:217 +msgid "Caps Lock is on" +msgstr "Caps Lock es activ" + +#: gtk/gtkpasswordentry.c:698 +msgid "_Show Text" +msgstr "Mon_strar li textu" + +#. translators: %s is the name of a cloud provider for files +#: gtk/gtkplacessidebar.c:914 +#, c-format +msgid "Open %s" +msgstr "Aperter %s" + +#: gtk/gtkplacessidebar.c:1005 +msgid "Recent" +msgstr "Recentis" + +#: gtk/gtkplacessidebar.c:1007 +msgid "Recent files" +msgstr "Recent files" + +#: gtk/gtkplacessidebar.c:1016 +msgid "Starred" +msgstr "Con astres" + +#: gtk/gtkplacessidebar.c:1018 +msgid "Starred files" +msgstr "Files con astres" + +#: gtk/gtkplacessidebar.c:1029 +msgid "Open your personal folder" +msgstr "Aperter vor fólder personal" + +#: gtk/gtkplacessidebar.c:1042 +msgid "Desktop" +msgstr "Pupitre" + +#: gtk/gtkplacessidebar.c:1044 +msgid "Open the contents of your desktop in a folder" +msgstr "Aperter vor Pupitre quam un fólder" + +#: gtk/gtkplacessidebar.c:1058 +msgid "Enter Location" +msgstr "Intrar un localisation" + +#: gtk/gtkplacessidebar.c:1060 +msgid "Manually enter a location" +msgstr "Intra un localisation manualmen" + +#: gtk/gtkplacessidebar.c:1070 +msgid "Trash" +msgstr "Paper-corb" + +#: gtk/gtkplacessidebar.c:1072 +msgid "Open the trash" +msgstr "Aperter li Paper-corb" + +#: gtk/gtkplacessidebar.c:1183 gtk/gtkplacessidebar.c:1211 +#: gtk/gtkplacessidebar.c:1411 +#, c-format +msgid "Mount and open “%sâ€" +msgstr "Monter e aperter «%s»" + +#: gtk/gtkplacessidebar.c:1306 +msgid "Open the contents of the file system" +msgstr "Aperter li contenete del fil-sistema" + +#: gtk/gtkplacessidebar.c:1389 +msgid "New bookmark" +msgstr "Nov marca-págine" + +#: gtk/gtkplacessidebar.c:1391 +msgid "Add a new bookmark" +msgstr "Adjuncter un nov marca-págine" + +#: gtk/gtkplacessidebar.c:1456 +msgid "Other Locations" +msgstr "Altri localisationes" + +#: gtk/gtkplacessidebar.c:1457 +msgid "Show other locations" +msgstr "Monstrar altri localisationes" + +#: gtk/gtkplacessidebar.c:1962 gtk/gtkplacessidebar.c:2981 +#, c-format +msgid "Unable to start “%sâ€" +msgstr "Ne posset startar «%s»" + +#. Translators: This means that unlocking an encrypted storage +#. * device failed. %s is the name of the device. +#. +#: gtk/gtkplacessidebar.c:1998 +#, fuzzy, c-format +#| msgid "Opening “%sâ€." +msgid "Error unlocking “%sâ€" +msgstr "errore - iconv: %s -> %s\n" + +#: gtk/gtkplacessidebar.c:2000 +#, c-format +msgid "Unable to access “%sâ€" +msgstr "Ne successat acceder «%s»" + +#: gtk/gtkplacessidebar.c:2231 +#, fuzzy +msgid "This name is already taken" +msgstr "Li fólder con ti-ci nómine ja existe" + +#: gtk/gtkplacessidebar.c:2304 gtk/inspector/actions.ui:19 +#: gtk/inspector/css-node-tree.ui:35 gtk/inspector/prop-list.ui:24 +#: gtk/ui/gtkfilechooserwidget.ui:168 gtk/ui/gtkfilechooserwidget.ui:440 +#: gtk/ui/gtkprintunixdialog.ui:83 +msgid "Name" +msgstr "Nómine" + +#: gtk/gtkplacessidebar.c:2522 +#, c-format +msgid "Unable to unmount “%sâ€" +msgstr "Ne successat demonter «%s»" + +#: gtk/gtkplacessidebar.c:2698 +#, c-format +msgid "Unable to stop “%sâ€" +msgstr "Ne successat stoppar «%s»" + +#: gtk/gtkplacessidebar.c:2727 +#, c-format +msgid "Unable to eject “%sâ€" +msgstr "Ne successat ejecter «%s»" + +#: gtk/gtkplacessidebar.c:2756 gtk/gtkplacessidebar.c:2785 +#, c-format +msgid "Unable to eject %s" +msgstr "Ne successat ejecter %s" + +#: gtk/gtkplacessidebar.c:2933 +#, fuzzy, c-format +msgid "Unable to poll “%s†for media changes" +msgstr "Ne posset acessar «%s»" + +#: gtk/gtkplacessidebar.c:3152 gtk/gtkplacessidebar.c:3239 +#: gtk/gtkplacesview.c:1663 +msgid "Open in New _Tab" +msgstr "Aperter in nov _carte" + +#: gtk/gtkplacessidebar.c:3158 gtk/gtkplacessidebar.c:3248 +#: gtk/gtkplacesview.c:1668 +msgid "Open in New _Window" +msgstr "Aperter in nov fenestre" + +#: gtk/gtkplacessidebar.c:3259 +msgid "_Add Bookmark" +msgstr "_Adjuncter marca-págines" + +#: gtk/gtkplacessidebar.c:3263 +msgid "_Remove" +msgstr "_Remover" + +#: gtk/gtkplacessidebar.c:3279 gtk/gtkplacesview.c:1693 +msgid "_Mount" +msgstr "_Montar" + +#: gtk/gtkplacessidebar.c:3288 gtk/gtkplacesview.c:1682 +msgid "_Unmount" +msgstr "_Desmontar" + +#: gtk/gtkplacessidebar.c:3295 +msgid "_Eject" +msgstr "_Ejecter" + +#: gtk/gtkplacessidebar.c:3305 +msgid "_Detect Media" +msgstr "_Detecter medies" + +#: gtk/gtkplacessidebar.c:3314 +msgid "_Start" +msgstr "_Startar" + +#: gtk/gtkplacessidebar.c:3316 +msgid "_Power On" +msgstr "_Accender" + +#: gtk/gtkplacessidebar.c:3317 +msgid "_Connect Drive" +msgstr "_Conexer li unité" + +#: gtk/gtkplacessidebar.c:3318 +msgid "_Start Multi-disk Device" +msgstr "_Startar li aparate multidisco" + +#: gtk/gtkplacessidebar.c:3319 +msgid "_Unlock Device" +msgstr "D_esserrar li aparate" + +#: gtk/gtkplacessidebar.c:3329 +msgid "_Stop" +msgstr "_Stoppar" + +#: gtk/gtkplacessidebar.c:3331 +#, fuzzy +msgid "_Safely Remove Drive" +msgstr "_Securmen remover li unité" + +#: gtk/gtkplacessidebar.c:3332 +msgid "_Disconnect Drive" +msgstr "_Deconexer li unité" + +#: gtk/gtkplacessidebar.c:3333 +msgid "_Stop Multi-disk Device" +msgstr "_Stoppar li aparate multidisco" + +#: gtk/gtkplacessidebar.c:3334 +msgid "_Lock Device" +msgstr "S_errar li aparate" + +#: gtk/gtkplacessidebar.c:3823 gtk/gtkplacesview.c:1103 +msgid "Computer" +msgstr "Computator" + +#: gtk/gtkplacesview.c:889 +#, fuzzy +msgid "Searching for network locations" +msgstr "Navigar localisationes del local rete" + +#: gtk/gtkplacesview.c:896 +#, fuzzy +msgid "No network locations found" +msgstr "Navigar localisationes del local rete" + +#. if it wasn't cancelled show a dialog +#: gtk/gtkplacesview.c:1210 gtk/gtkplacesview.c:1307 +msgid "Unable to access location" +msgstr "Ne successat acceder li localisation" + +#. Restore from Cancel to Connect +#: gtk/gtkplacesview.c:1228 gtk/ui/gtkplacesview.ui:262 +msgid "Con_nect" +msgstr "Co_nexer" + +#. if it wasn't cancelled show a dialog +#: gtk/gtkplacesview.c:1367 +msgid "Unable to unmount volume" +msgstr "Ne posset desmonter li volume" + +#. Allow to cancel the operation +#: gtk/gtkplacesview.c:1459 +msgid "Cance_l" +msgstr "Annu_llar" + +#: gtk/gtkplacesview.c:1606 +msgid "AppleTalk" +msgstr "AppleTalk" + +#: gtk/gtkplacesview.c:1612 +msgid "File Transfer Protocol" +msgstr "FTP" + +#. Translators: do not translate ftp:// and ftps:// +#: gtk/gtkplacesview.c:1614 +msgid "ftp:// or ftps://" +msgstr "ftp:// o ftps://" + +#: gtk/gtkplacesview.c:1620 +#| msgid "File System" +msgid "Network File System" +msgstr "NFS" + +#: gtk/gtkplacesview.c:1626 +msgid "Samba" +msgstr "Samba" + +#: gtk/gtkplacesview.c:1632 +msgid "SSH File Transfer Protocol" +msgstr "SSH FTP" + +#. Translators: do not translate sftp:// and ssh:// +#: gtk/gtkplacesview.c:1634 +msgid "sftp:// or ssh://" +msgstr "sftp:// o ssh://" + +#: gtk/gtkplacesview.c:1640 +msgid "WebDAV" +msgstr "WebDAV" + +#. Translators: do not translate dav:// and davs:// +#: gtk/gtkplacesview.c:1642 +msgid "dav:// or davs://" +msgstr "dav:// o davs://" + +#: gtk/gtkplacesview.c:1677 +msgid "_Disconnect" +msgstr "_Desconexer" + +#: gtk/gtkplacesview.c:1688 +msgid "_Connect" +msgstr "_Connexer" + +#: gtk/gtkplacesview.c:1905 +#, fuzzy +msgid "Unable to get remote server location" +msgstr "Ne posset acesser li localisation" + +#: gtk/gtkplacesview.c:2048 gtk/gtkplacesview.c:2057 +msgid "Networks" +msgstr "Retes" + +#: gtk/gtkplacesview.c:2048 gtk/gtkplacesview.c:2057 +msgid "On This Computer" +msgstr "Sur ti-ci computator" + +#. Translators: respectively, free and total space of the drive. The plural form +#. * should be based on the free space available. +#. * i.e. 1 GB / 24 GB available. +#. +#: gtk/gtkplacesviewrow.c:135 +#, c-format +msgid "%s / %s available" +msgid_plural "%s / %s available" +msgstr[0] "%s de %s disponibil" +msgstr[1] "%s de %s disponibil" + +#: gtk/gtkplacesviewrow.c:471 +msgid "Disconnect" +msgstr "Desconexer" + +#: gtk/gtkplacesviewrow.c:471 gtk/ui/gtkplacesviewrow.ui:53 +#: gtk/ui/gtksidebarrow.ui:50 +msgid "Unmount" +msgstr "Desmontar" + +#: gtk/gtkprintbackend.c:636 +msgid "Authentication" +msgstr "Autentication" + +#: gtk/gtkprintbackend.c:712 +msgid "_Remember password" +msgstr "_Memorar li contrasigne" + +#: gtk/gtkprinteroptionwidget.c:718 +msgid "Select a filename" +msgstr "Selecte un nómine de file" + +#: gtk/gtkprinteroptionwidget.c:722 gtk/ui/gtkappchooserdialog.ui:50 +#: gtk/ui/gtkcolorchooserdialog.ui:38 gtk/ui/gtkfontchooserdialog.ui:29 +msgid "_Select" +msgstr "_Selecter" + +#: gtk/gtkprinteroptionwidget.c:936 +msgid "Not available" +msgstr "Ãndisponibil" + +#. translators: this string is the default job title for print +#. * jobs. %s gets replaced by the application name, %d gets replaced +#. * by the job number. +#. +#: gtk/gtkprintoperation.c:253 +#, c-format +msgid "%s job #%d" +msgstr "Tasca de %s nró %d" + +#: gtk/gtkprintoperation.c:1683 +msgctxt "print operation status" +msgid "Initial state" +msgstr "Inicial statu" + +#: gtk/gtkprintoperation.c:1684 +msgctxt "print operation status" +msgid "Preparing to print" +msgstr "Preparante printation" + +#: gtk/gtkprintoperation.c:1685 +msgctxt "print operation status" +msgid "Generating data" +msgstr "Generante data" + +#: gtk/gtkprintoperation.c:1686 +msgctxt "print operation status" +msgid "Sending data" +msgstr "Emissente data" + +#: gtk/gtkprintoperation.c:1687 +msgctxt "print operation status" +msgid "Waiting" +msgstr "Atendente" + +#: gtk/gtkprintoperation.c:1688 +#, fuzzy +msgctxt "print operation status" +msgid "Blocking on issue" +msgstr "Numeró" + +#: gtk/gtkprintoperation.c:1689 +msgctxt "print operation status" +msgid "Printing" +msgstr "Printation" + +#: gtk/gtkprintoperation.c:1690 +msgctxt "print operation status" +msgid "Finished" +msgstr "Compleet" + +#: gtk/gtkprintoperation.c:1691 +msgctxt "print operation status" +msgid "Finished with error" +msgstr "Compleet con un error" + +#: gtk/gtkprintoperation.c:2234 +#, c-format +msgid "Preparing %d" +msgstr "Preparante %d" + +#: gtk/gtkprintoperation.c:2236 gtk/gtkprintoperation.c:2854 +#, c-format +msgid "Preparing" +msgstr "Preparante" + +#: gtk/gtkprintoperation.c:2239 +#, c-format +msgid "Printing %d" +msgstr "Printante %d" + +#: gtk/gtkprintoperation.c:2885 +#, fuzzy, c-format +msgid "Error creating print preview" +msgstr "Error evenit creante un image de disco" + +#: gtk/gtkprintoperation.c:2888 +#, c-format +msgid "The most probable reason is that a temporary file could not be created." +msgstr "" + +#. window +#: gtk/gtkprintoperation-portal.c:236 gtk/gtkprintoperation-portal.c:554 +#: gtk/gtkprintoperation-portal.c:623 gtk/gtkprintunixdialog.c:3056 +msgid "Print" +msgstr "Printar" + +#: gtk/gtkprintoperation-unix.c:479 gtk/gtkprintoperation-win32.c:1504 +msgid "Application" +msgstr "Application" + +#: gtk/gtkprintoperation-win32.c:635 +#, fuzzy +msgid "Printer offline" +msgstr "Printator:" + +#: gtk/gtkprintoperation-win32.c:637 +msgid "Out of paper" +msgstr "Manca papere" + +#. Translators: this is a printer status. +#: gtk/gtkprintoperation-win32.c:639 +#: modules/printbackends/gtkprintbackendcups.c:2639 +msgid "Paused" +msgstr "Pausat" + +#: gtk/gtkprintoperation-win32.c:641 +msgid "Need user intervention" +msgstr "Besona un intevenition" + +#: gtk/gtkprintoperation-win32.c:748 +msgid "Custom size" +msgstr "Personal dimension" + +#: gtk/gtkprintoperation-win32.c:1596 +msgid "No printer found" +msgstr "Printator ne esset trovat" + +#: gtk/gtkprintoperation-win32.c:1623 +msgid "Invalid argument to CreateDC" +msgstr "Ãnvalid argument por CreateDC" + +#: gtk/gtkprintoperation-win32.c:1659 gtk/gtkprintoperation-win32.c:1905 +msgid "Error from StartDoc" +msgstr "Errore de StartDoc" + +#: gtk/gtkprintoperation-win32.c:1760 gtk/gtkprintoperation-win32.c:1783 +#: gtk/gtkprintoperation-win32.c:1831 +#, fuzzy +msgid "Not enough free memory" +msgstr "Memorie exhaustet" + +#: gtk/gtkprintoperation-win32.c:1836 +msgid "Invalid argument to PrintDlgEx" +msgstr "Ãnvalid argument por PrintDlgEx" + +#: gtk/gtkprintoperation-win32.c:1841 +#, fuzzy +msgid "Invalid pointer to PrintDlgEx" +msgstr "Ãnvalid argument por PrintDlgEx" + +#: gtk/gtkprintoperation-win32.c:1846 +#, fuzzy +msgid "Invalid handle to PrintDlgEx" +msgstr "Ãnvalid argument por PrintDlgEx" + +#: gtk/gtkprintoperation-win32.c:1851 +msgid "Unspecified error" +msgstr "Ãnspecificat errore" + +#: gtk/gtkprintunixdialog.c:806 +msgid "Pre_view" +msgstr "Pre_vider" + +#: gtk/gtkprintunixdialog.c:808 +msgid "_Print" +msgstr "_Printar" + +#: gtk/gtkprintunixdialog.c:936 +#, fuzzy +msgid "Getting printer information failed" +msgstr "Printation ne successat. Li printator ne successat inicialisar se." + +#: gtk/gtkprintunixdialog.c:1875 +#, fuzzy +msgid "Getting printer information…" +msgstr "Un errore evenit obtenente li information pri «%B»." + +#. Translators: These strings name the possible arrangements of +#. * multiple pages on a sheet when printing (same as in gtkprintbackendcups.c) +#. +#. Translators: These strings name the possible arrangements of +#. * multiple pages on a sheet when printing +#. +#: gtk/gtkprintunixdialog.c:2801 +#: modules/printbackends/gtkprintbackendcups.c:5647 +msgid "Left to right, top to bottom" +msgstr "Levul a dextri, alt a bass" + +#: gtk/gtkprintunixdialog.c:2801 +#: modules/printbackends/gtkprintbackendcups.c:5647 +msgid "Left to right, bottom to top" +msgstr "Levul a dextri, bass a alt" + +#: gtk/gtkprintunixdialog.c:2802 +#: modules/printbackends/gtkprintbackendcups.c:5648 +msgid "Right to left, top to bottom" +msgstr "Dextri a levul, alt a bass" + +#: gtk/gtkprintunixdialog.c:2802 +#: modules/printbackends/gtkprintbackendcups.c:5648 +msgid "Right to left, bottom to top" +msgstr "Dextri a levul, bass a alt" + +#: gtk/gtkprintunixdialog.c:2803 +#: modules/printbackends/gtkprintbackendcups.c:5649 +msgid "Top to bottom, left to right" +msgstr "Alt a bass, levul a dextri" + +#: gtk/gtkprintunixdialog.c:2803 +#: modules/printbackends/gtkprintbackendcups.c:5649 +msgid "Top to bottom, right to left" +msgstr "Alt a bass, dextri a levul" + +#: gtk/gtkprintunixdialog.c:2804 +#: modules/printbackends/gtkprintbackendcups.c:5650 +msgid "Bottom to top, left to right" +msgstr "Bass a alt, levul a dextri" + +#: gtk/gtkprintunixdialog.c:2804 +#: modules/printbackends/gtkprintbackendcups.c:5650 +msgid "Bottom to top, right to left" +msgstr "Bass a alt, dextri a levul" + +#: gtk/gtkprintunixdialog.c:2808 gtk/gtkprintunixdialog.c:2821 +msgid "Page Ordering" +msgstr "Órdine de págines" + +#: gtk/gtkprintunixdialog.c:2837 +msgid "Left to right" +msgstr "Levul-ad-dextri" + +#: gtk/gtkprintunixdialog.c:2838 +msgid "Right to left" +msgstr "Dextri-ad-levul" + +#: gtk/gtkprintunixdialog.c:2850 +#, fuzzy +msgid "Top to bottom" +msgstr "Levul a dextri, alt a bass" + +#: gtk/gtkprintunixdialog.c:2851 +#, fuzzy +msgid "Bottom to top" +msgstr "Levul a dextri, bass a alt" + +#: gtk/gtkprogressbar.c:606 +#, c-format +msgctxt "progress bar label" +msgid "%.0f %%" +msgstr "%.0f %%" + +#: gtk/gtkrecentmanager.c:1023 gtk/gtkrecentmanager.c:1036 +#: gtk/gtkrecentmanager.c:1174 gtk/gtkrecentmanager.c:1184 +#: gtk/gtkrecentmanager.c:1234 gtk/gtkrecentmanager.c:1243 +#, fuzzy, c-format +msgid "Unable to find an item with URI “%sâ€" +msgstr "Trova un _element por adjunter al «%s»:" + +#: gtk/gtkrecentmanager.c:1258 +#, fuzzy, c-format +msgid "Unable to move the item with URI “%s†to “%sâ€" +msgstr "Ne successar detecter li schema de URI de «%s»." + +#: gtk/gtkrecentmanager.c:2319 +#, c-format +msgid "No registered application with name “%s†for item with URI “%s†found" +msgstr "" + +#: gtk/gtksearchentry.c:639 +msgid "Clear entry" +msgstr "Vacuar li intrada" + +#. Translators: This string is used to mark left/right variants of modifier +#. * keys in the shortcut window (e.g. Control_L vs Control_R). Please keep +#. * this string very short, ideally just a single character, since it will +#. * be rendered as part of the key. +#. +#: gtk/gtkshortcutlabel.c:79 +msgctxt "keyboard side marker" +msgid "L" +msgstr "L" + +#. Translators: This string is used to mark left/right variants of modifier +#. * keys in the shortcut window (e.g. Control_L vs Control_R). Please keep +#. * this string very short, ideally just a single character, since it will +#. * be rendered as part of the key. +#. +#: gtk/gtkshortcutlabel.c:92 +msgctxt "keyboard side marker" +msgid "R" +msgstr "D" + +#: gtk/gtkshortcutssection.c:404 +msgid "_Show All" +msgstr "_Revelar omnis" + +#: gtk/gtkshortcutsshortcut.c:143 +msgid "Two finger pinch" +msgstr "Pinceada con du fingres" + +#: gtk/gtkshortcutsshortcut.c:147 +msgid "Two finger stretch" +msgstr "Extension con du fingres" + +#: gtk/gtkshortcutsshortcut.c:151 +msgid "Rotate clockwise" +msgstr "Rotar a dextri" + +#: gtk/gtkshortcutsshortcut.c:155 +msgid "Rotate counterclockwise" +msgstr "Rotar a levul" + +#: gtk/gtkshortcutsshortcut.c:159 +#, fuzzy +msgid "Two finger swipe left" +msgstr "Trenar a levul" + +#: gtk/gtkshortcutsshortcut.c:163 +#, fuzzy +msgid "Two finger swipe right" +msgstr "Trenar a dextri" + +#: gtk/gtkshortcutsshortcut.c:167 +msgid "Swipe left" +msgstr "Trenar a levul" + +#: gtk/gtkshortcutsshortcut.c:171 +msgid "Swipe right" +msgstr "Trenar a dextri" + +#. Translators: This is the window title for the shortcuts window in normal mode +#: gtk/gtkshortcutswindow.c:874 gtk/inspector/window.ui:498 +msgid "Shortcuts" +msgstr "Rapid-tastes" + +#. Translators: This is the window title for the shortcuts window in search mode +#: gtk/gtkshortcutswindow.c:879 +msgid "Search Results" +msgstr "Resultates del sercha" + +#. Translators: This is placeholder text for the search entry in the shortcuts window +#: gtk/gtkshortcutswindow.c:909 +msgid "Search Shortcuts" +msgstr "Rapid-tastes de sercha" + +#: gtk/gtkshortcutswindow.c:968 gtk/ui/gtkemojichooser.ui:349 +#: gtk/ui/gtkfilechooserwidget.ui:297 +msgid "No Results Found" +msgstr "Null resultates trovat" + +#: gtk/gtkshortcutswindow.c:974 gtk/ui/gtkemojichooser.ui:362 +#: gtk/ui/gtkfilechooserwidget.ui:310 gtk/ui/gtkplacesview.ui:230 +#, fuzzy +msgid "Try a different search" +msgstr "Prova un altri sercha" + +#: gtk/gtkshow.c:175 +#, fuzzy +msgid "Could not show link" +msgstr "Ne successat crear un ligament" + +#: gtk/gtkstacksidebar.c:154 +msgctxt "accessibility" +msgid "Sidebar" +msgstr "Panel lateral" + +#: gtk/gtktext.c:6075 gtk/gtktextview.c:8992 +msgid "Insert _Emoji" +msgstr "Inserter _emoji" + +#: gtk/gtktextview.c:8974 +msgid "_Undo" +msgstr "_Defar" + +#: gtk/gtktextview.c:8978 +msgid "_Redo" +msgstr "_Refar" + +#: gtk/gtktreeexpander.c:205 gtk/inspector/misc-info.ui:287 +msgid "Expand" +msgstr "Expander" + +#: gtk/gtkvolumebutton.c:228 +msgid "Muted" +msgstr "Assurdat" + +#: gtk/gtkvolumebutton.c:232 +msgid "Full Volume" +msgstr "Tot volúmine" + +#. Translators: this is the percentage of the current volume, +#. * as used in the tooltip, eg. "49 %". +#. * Translate the "%d" to "%Id" if you want to use localised digits, +#. * or otherwise translate the "%d" to "%d". +#. +#: gtk/gtkvolumebutton.c:245 +#, c-format +msgctxt "volume percentage" +msgid "%d %%" +msgstr "%d %%" + +#: gtk/gtkwindow.c:6140 +#, c-format +msgid "Do you want to use GTK Inspector?" +msgstr "" + +#: gtk/gtkwindow.c:6142 +#, c-format +msgid "" +"GTK Inspector is an interactive debugger that lets you explore and modify " +"the internals of any GTK application. Using it may cause the application to " +"break or crash." +msgstr "" + +#: gtk/gtkwindow.c:6147 +#, fuzzy +msgid "Don’t show this message again" +msgstr "Ne monstrar plu ti-ci avise" + +#: gtk/gtkwindowcontrols.c:309 gtk/gtkwindowhandle.c:230 +msgid "Minimize" +msgstr "Minimisar" + +#: gtk/gtkwindowcontrols.c:311 +msgid "Minimize the window" +msgstr "Minimisar li fenestre" + +#: gtk/gtkwindowcontrols.c:335 gtk/gtkwindowhandle.c:236 +msgid "Maximize" +msgstr "Maximisar" + +#: gtk/gtkwindowcontrols.c:337 +msgid "Maximize the window" +msgstr "Maximisar li fenestre" + +#: gtk/gtkwindowcontrols.c:357 gtk/gtkwindowhandle.c:246 +msgid "Close" +msgstr "Cluder" + +#: gtk/gtkwindowcontrols.c:359 +msgid "Close the window" +msgstr "Cluder li fenestre" + +#: gtk/gtkwindowhandle.c:223 +msgid "Restore" +msgstr "Restituer" + +#: gtk/inspector/a11y.ui:16 +msgid "Role" +msgstr "Rol" + +#: gtk/inspector/a11y.ui:40 +msgid "Object path" +msgstr "Rute de object" + +#: gtk/inspector/a11y.ui:66 +msgid "Attribute" +msgstr "Atribute" + +#: gtk/inspector/a11y.ui:78 gtk/inspector/css-node-tree.ui:119 +#: gtk/inspector/prop-list.ui:57 gtk/inspector/recorder.ui:155 +#: gtk/inspector/recorder.ui:221 +msgid "Value" +msgstr "Valore" + +#: gtk/inspector/action-editor.c:123 +msgid "Activate" +msgstr "Activar" + +#: gtk/inspector/action-editor.c:135 +#, fuzzy +#| msgid "State" +msgid "Set State" +msgstr "Assignar statu Rfkill" + +#: gtk/inspector/actions.ui:30 +msgid "Enabled" +msgstr "Permisset" + +#: gtk/inspector/actions.ui:41 +msgid "Parameter Type" +msgstr "Tip de parametre" + +#: gtk/inspector/actions.ui:52 gtk/inspector/css-node-tree.ui:74 +#: gtk/inspector/misc-info.ui:121 +msgid "State" +msgstr "Statu" + +#: gtk/inspector/clipboard.c:211 gtk/inspector/misc-info.ui:278 +msgid "Show" +msgstr "Monstrar" + +#: gtk/inspector/clipboard.c:228 +#, fuzzy +msgid "Hover to load" +msgstr "Monstrar li URL sub li apuntator:" + +#: gtk/inspector/clipboard.c:278 +msgctxt "clipboard" +msgid "empty" +msgstr "vacui" + +#: gtk/inspector/clipboard.c:283 gtk/inspector/clipboard.c:325 +msgctxt "clipboard" +msgid "local" +msgstr "local" + +#: gtk/inspector/clipboard.c:285 gtk/inspector/clipboard.c:327 +msgctxt "clipboard" +msgid "remote" +msgstr "lontan" + +#: gtk/inspector/clipboard.ui:31 +#, fuzzy +msgid "Drag and hold here" +msgstr "_Detenet" + +#: gtk/inspector/clipboard.ui:75 gtk/inspector/window.ui:574 +msgid "Clipboard" +msgstr "Paperiere" + +#: gtk/inspector/clipboard.ui:114 +msgid "Primary" +msgstr "Primari" + +#: gtk/inspector/controllers.c:126 +msgctxt "event phase" +msgid "None" +msgstr "Null" + +#: gtk/inspector/controllers.c:129 +#, fuzzy +msgctxt "event phase" +msgid "Capture" +msgstr "Registration" + +#: gtk/inspector/controllers.c:132 +#, fuzzy +msgctxt "event phase" +msgid "Bubble" +msgstr "Gumme de machar" + +#: gtk/inspector/controllers.c:135 +#, fuzzy +msgctxt "event phase" +msgid "Target" +msgstr "Destination" + +#: gtk/inspector/controllers.c:156 +#, fuzzy +#| msgid "Cumulative" +msgctxt "propagation limit" +msgid "Native" +msgstr "Usar li nativ dialogs de Windows" + +#: gtk/inspector/css-editor.c:129 +msgid "You can type here any CSS rule recognized by GTK." +msgstr "" + +#: gtk/inspector/css-editor.c:130 +msgid "" +"You can temporarily disable this custom CSS by clicking on the “Pause†" +"button above." +msgstr "" + +#: gtk/inspector/css-editor.c:131 +msgid "Changes are applied instantly and globally, for the whole application." +msgstr "" + +#: gtk/inspector/css-editor.c:211 +#, fuzzy, c-format +msgid "Saving CSS failed" +msgstr "Gardante…" + +#: gtk/inspector/css-editor.ui:30 +#, fuzzy +msgid "Disable this custom CSS" +msgstr "Depermisser" + +#: gtk/inspector/css-editor.ui:37 +msgid "Save the current CSS" +msgstr "Gardar li actual CSS" + +#: gtk/inspector/css-node-tree.ui:48 tools/gtk-builder-tool-preview.c:178 +#: tools/gtk-builder-tool-screenshot.c:358 +msgid "ID" +msgstr "ID" + +#: gtk/inspector/css-node-tree.ui:61 +#, fuzzy +msgid "Style Classes" +msgstr "Classes" + +#: gtk/inspector/css-node-tree.ui:104 +msgid "CSS Property" +msgstr "Proprietá de CSS" + +#: gtk/inspector/general.c:330 gtk/inspector/general.c:411 +msgctxt "GL version" +msgid "None" +msgstr "Null" + +#: gtk/inspector/general.c:339 +msgctxt "GL version" +msgid "Disabled" +msgstr "Ãnactiv" + +#: gtk/inspector/general.c:340 +msgctxt "GL vendor" +msgid "Disabled" +msgstr "Ãnactiv" + +#: gtk/inspector/general.c:412 +msgctxt "GL vendor" +msgid "None" +msgstr "Null" + +#: gtk/inspector/general.c:463 +msgctxt "Vulkan device" +msgid "Disabled" +msgstr "Ãnactiv" + +#: gtk/inspector/general.c:464 gtk/inspector/general.c:465 +msgctxt "Vulkan version" +msgid "Disabled" +msgstr "Ãnactiv" + +#: gtk/inspector/general.c:521 +msgctxt "Vulkan device" +msgid "None" +msgstr "Null" + +#: gtk/inspector/general.c:522 gtk/inspector/general.c:523 +msgctxt "Vulkan version" +msgid "None" +msgstr "Null" + +#: gtk/inspector/general.c:793 +#, fuzzy +#| msgid "Theme is hardcoded by GTK_THEME" +msgid "IM Context is hardcoded by GTK_IM_MODULE" +msgstr "Tema es predefinit per GTK_THEME" + +#: gtk/inspector/general.ui:32 +msgid "GTK Version" +msgstr "Version de GTK" + +#: gtk/inspector/general.ui:58 +msgid "GDK Backend" +msgstr "Infrastructura de GDK" + +#: gtk/inspector/general.ui:84 +#, fuzzy +msgid "GSK Renderer" +msgstr "Decovrition del rete Avahi" + +#: gtk/inspector/general.ui:110 +msgid "Pango Fontmap" +msgstr "" + +#: gtk/inspector/general.ui:136 +#, fuzzy +#| msgid "GDK Backend" +msgid "Media Backend" +msgstr "Infrastructura:" + +#: gtk/inspector/general.ui:162 +#, fuzzy +msgid "Input Method" +msgstr "Metode de intrada" + +#: gtk/inspector/general.ui:202 +#, fuzzy +#| msgid "Application" +msgid "Application ID" +msgstr "ID de application" + +#: gtk/inspector/general.ui:228 +#, fuzzy +#| msgid "Resources" +msgid "Resource Path" +msgstr "ressurse" + +#: gtk/inspector/general.ui:268 gtk/ui/gtkplacesview.ui:79 +msgid "Prefix" +msgstr "Prefix" + +#: gtk/inspector/general.ui:470 +#, fuzzy +msgid "Display" +msgstr "Monstrar" + +#: gtk/inspector/general.ui:497 +#, fuzzy +msgid "RGBA Visual" +msgstr "Visual" + +#: gtk/inspector/general.ui:523 +msgid "Composited" +msgstr "Compostet" + +#: gtk/inspector/general.ui:575 +msgid "GL Version" +msgstr "Version de GL" + +#: gtk/inspector/general.ui:625 +msgid "GL Vendor" +msgstr "Venditor de GL" + +#: gtk/inspector/general.ui:665 +msgid "Vulkan Device" +msgstr "Aparate Vulcan" + +#: gtk/inspector/general.ui:692 +msgid "Vulkan API version" +msgstr "Version de API Vulcan" + +#: gtk/inspector/general.ui:719 +msgid "Vulkan driver version" +msgstr "Version del driver Vulcan" + +#: gtk/inspector/menu.c:95 +msgid "Unnamed section" +msgstr "Section sin nómine" + +#: gtk/inspector/menu.ui:23 +msgid "Label" +msgstr "Etiquette" + +#: gtk/inspector/menu.ui:36 gtk/inspector/shortcuts.ui:23 +msgid "Action" +msgstr "Action" + +#: gtk/inspector/menu.ui:49 +msgid "Target" +msgstr "Destination" + +#: gtk/inspector/menu.ui:62 +msgid "Icon" +msgstr "Icone" + +#: gtk/inspector/misc-info.ui:32 +msgid "Address" +msgstr "Adresse" + +#: gtk/inspector/misc-info.ui:62 gtk/inspector/prop-list.ui:35 +#: gtk/inspector/statistics.ui:46 gtk/ui/gtkfilechooserwidget.ui:214 +msgid "Type" +msgstr "Tip" + +#: gtk/inspector/misc-info.ui:91 +#, fuzzy +msgid "Reference Count" +msgstr "Quam &referentie" + +#: gtk/inspector/misc-info.ui:151 +msgid "Direction" +msgstr "Direction" + +#: gtk/inspector/misc-info.ui:181 +#, fuzzy +msgid "Buildable ID" +msgstr "ID:" + +#: gtk/inspector/misc-info.ui:211 +#, fuzzy +msgid "Mnemonic Label" +msgstr "Null etiquette" + +#: gtk/inspector/misc-info.ui:240 +#, fuzzy +msgid "Request Mode" +msgstr "mode:" + +#: gtk/inspector/misc-info.ui:269 +#, fuzzy +msgid "Measure map" +msgstr "Corespondentie" + +#: gtk/inspector/misc-info.ui:338 +#, fuzzy +#| msgid "Location" +msgid "Allocation" +msgstr "Localisation" + +#: gtk/inspector/misc-info.ui:367 +#, fuzzy +msgid "Baseline" +msgstr "_Monstrar…" + +#: gtk/inspector/misc-info.ui:396 +msgid "Surface" +msgstr "Superficie" + +#: gtk/inspector/misc-info.ui:415 gtk/inspector/misc-info.ui:454 +#: gtk/inspector/misc-info.ui:493 gtk/inspector/prop-editor.c:1162 +#: gtk/inspector/prop-editor.c:1531 gtk/inspector/window.ui:396 +msgid "Properties" +msgstr "Properties" + +#: gtk/inspector/misc-info.ui:435 +#, fuzzy +msgid "Renderer" +msgstr "Decovrition del rete Avahi" + +#: gtk/inspector/misc-info.ui:474 +#, fuzzy +msgid "Frame Clock" +msgstr "Cadre" + +#: gtk/inspector/misc-info.ui:513 +#, fuzzy +msgid "Tick Callback" +msgstr "Monstrar li etiquette" + +#: gtk/inspector/misc-info.ui:543 +#, fuzzy +msgid "Frame Count" +msgstr "Númere" + +#: gtk/inspector/misc-info.ui:572 +#, fuzzy +msgid "Frame Rate" +msgstr "Rapiditá de cadres" + +#: gtk/inspector/misc-info.ui:601 +msgid "Mapped" +msgstr "" + +#: gtk/inspector/misc-info.ui:631 +msgid "Realized" +msgstr "Realisat" + +#: gtk/inspector/misc-info.ui:661 +#, fuzzy +msgid "Is Toplevel" +msgstr "Element <%s> ne es permisset sur li nivell superiori" + +#: gtk/inspector/misc-info.ui:691 +#, fuzzy +msgid "Child Visible" +msgstr "Visibil:" + +#: gtk/inspector/prop-editor.c:702 +#, fuzzy, c-format +msgid "Pointer: %p" +msgstr "Apuntator" + +#. Translators: %s is a type name, for example +#. * GtkPropertyExpression with value \"2.5\" +#. +#: gtk/inspector/prop-editor.c:834 +#, fuzzy, c-format +msgid "%s with value \"%s\"" +msgstr "Ãnvalid valore(s)." + +#. Translators: Both %s are type names, for example +#. * GtkPropertyExpression with type GObject +#. +#: gtk/inspector/prop-editor.c:845 +#, fuzzy, c-format +msgid "%s with type %s" +msgstr "" +"<b>%s</b>\n" +"Tip: %s\n" +"Grandor: %s" + +#. Translators: Both %s are type names, for example +#. * GtkObjectExpression for GtkStringObject 0x23456789 +#. +#: gtk/inspector/prop-editor.c:858 +#, fuzzy, c-format +msgid "%s for %s %p" +msgstr "%l:%M:%S %p" + +#. Translators: Both %s are type names, for example +#. * GtkPropertyExpression with value type: gchararray +#. +#: gtk/inspector/prop-editor.c:888 +#, fuzzy, c-format +msgid "%s with value type %s" +msgstr "Tip: %s (%s)" + +#: gtk/inspector/prop-editor.c:1242 +#, fuzzy, c-format +msgid "Uneditable property type: %s" +msgstr "Ãnconosset proprietá %s" + +#: gtk/inspector/prop-editor.c:1383 +#, fuzzy +#| msgctxt "font" +#| msgid "None" +msgctxt "column number" +msgid "None" +msgstr "Necú" + +#: gtk/inspector/prop-editor.c:1420 +msgid "Attribute:" +msgstr "Atribute:" + +#: gtk/inspector/prop-editor.c:1423 +msgid "Model" +msgstr "Modelle" + +#: gtk/inspector/prop-editor.c:1428 +msgid "Column:" +msgstr "Columne:" + +#. Translators: %s is a type name, for example +#. * Action from 0x2345678 (GtkApplicationWindow) +#. +#: gtk/inspector/prop-editor.c:1527 +#, fuzzy, c-format +#| msgid "Object: %p (%s)" +msgid "Action from: %p (%s)" +msgstr "%l:%M:%S %p" + +#: gtk/inspector/prop-editor.c:1582 +msgid "Reset" +msgstr "Reverter" + +#: gtk/inspector/prop-editor.c:1590 +msgctxt "GtkSettings source" +msgid "Default" +msgstr "Predefinit" + +#: gtk/inspector/prop-editor.c:1593 +msgctxt "GtkSettings source" +msgid "Theme" +msgstr "Tema" + +#: gtk/inspector/prop-editor.c:1596 +msgctxt "GtkSettings source" +msgid "XSettings" +msgstr "XSettings" + +#: gtk/inspector/prop-editor.c:1600 +msgctxt "GtkSettings source" +msgid "Application" +msgstr "Application" + +#: gtk/inspector/prop-editor.c:1603 +msgctxt "GtkSettings source" +msgid "Unknown" +msgstr "Ãnconosset" + +#: gtk/inspector/prop-editor.c:1606 +msgid "Source:" +msgstr "OrÃgine:" + +#: gtk/inspector/prop-list.ui:46 +#, fuzzy +msgid "Defined At" +msgstr "Personal" + +#: gtk/inspector/recorder.c:1694 +#, fuzzy, c-format +msgid "Saving RenderNode failed" +msgstr "Gardante…" + +#: gtk/inspector/recorder.ui:20 +#, fuzzy +msgid "Record frames" +msgstr "Sin cadres" + +#: gtk/inspector/recorder.ui:27 +#, fuzzy +msgid "Clear recorded frames" +msgstr "Sin cadres" + +#: gtk/inspector/recorder.ui:34 +#, fuzzy +msgid "Add debug nodes" +msgstr "&Debug" + +#: gtk/inspector/recorder.ui:42 +#, fuzzy +msgid "Highlight event sequences" +msgstr "Eveniment:" + +#: gtk/inspector/recorder.ui:51 +msgid "Use a dark background" +msgstr "Usar un obscur funde" + +#: gtk/inspector/recorder.ui:59 +#, fuzzy +msgid "Save selected node" +msgstr "Null node es selectet" + +#: gtk/inspector/recorder.ui:67 +msgid "Copy to clipboard" +msgstr "Copiar al Paperiere" + +#: gtk/inspector/recorder.ui:142 gtk/inspector/recorder.ui:208 +msgid "Property" +msgstr "Proprietá" + +#: gtk/inspector/resource-list.ui:59 +msgid "Path" +msgstr "Rute" + +#: gtk/inspector/resource-list.ui:71 +msgid "Count" +msgstr "Númere" + +#: gtk/inspector/resource-list.ui:82 gtk/ui/gtkfilechooserwidget.ui:202 +#: gtk/ui/gtkfontchooserwidget.ui:204 gtk/ui/gtkfontchooserwidget.ui:351 +msgid "Size" +msgstr "Grandore" + +#: gtk/inspector/resource-list.ui:121 +msgid "Name:" +msgstr "Nómine:" + +#: gtk/inspector/resource-list.ui:143 +msgid "Type:" +msgstr "Tip:" + +#: gtk/inspector/resource-list.ui:164 +msgid "Size:" +msgstr "Dimension:" + +#: gtk/inspector/shortcuts.ui:17 +#, fuzzy +msgid "Trigger" +msgstr "Invocar" + +#: gtk/inspector/size-groups.c:225 +msgctxt "sizegroup mode" +msgid "None" +msgstr "Null" + +#: gtk/inspector/size-groups.c:226 +msgctxt "sizegroup mode" +msgid "Horizontal" +msgstr "Horizontal" + +#: gtk/inspector/size-groups.c:227 +msgctxt "sizegroup mode" +msgid "Vertical" +msgstr "Vertical" + +#: gtk/inspector/size-groups.c:228 +msgctxt "sizegroup mode" +msgid "Both" +msgstr "Ambi" + +#: gtk/inspector/size-groups.c:240 +msgid "Mode" +msgstr "Mode" + +#: gtk/inspector/statistics.c:400 +msgid "GLib must be configured with -Dbuildtype=debug" +msgstr "" + +#: gtk/inspector/statistics.ui:60 +msgid "Self 1" +msgstr "Self 1" + +#: gtk/inspector/statistics.ui:71 +msgid "Cumulative 1" +msgstr "Cumulativ 1" + +#: gtk/inspector/statistics.ui:82 +msgid "Self 2" +msgstr "Self 2" + +#: gtk/inspector/statistics.ui:93 +msgid "Cumulative 2" +msgstr "Cumulativ 2" + +#: gtk/inspector/statistics.ui:104 +msgid "Self" +msgstr "Self" + +#: gtk/inspector/statistics.ui:120 +msgid "Cumulative" +msgstr "Cumulativ" + +#: gtk/inspector/statistics.ui:151 +msgid "Enable statistics with GOBJECT_DEBUG=instance-count" +msgstr "" + +#: gtk/inspector/tree-data.ui:10 +#, fuzzy +msgid "Show data" +msgstr "Null data" + +#: gtk/inspector/type-info.ui:14 +msgid "Hierarchy" +msgstr "Hierarchie" + +#: gtk/inspector/type-info.ui:35 +msgid "Implements" +msgstr "Implementa" + +#: gtk/inspector/visual.c:603 gtk/inspector/visual.c:622 +msgid "Theme is hardcoded by GTK_THEME" +msgstr "Tema es predefinit per GTK_THEME" + +#: gtk/inspector/visual.c:853 +msgid "Backend does not support window scaling" +msgstr "" + +#: gtk/inspector/visual.ui:35 +msgid "GTK Theme" +msgstr "Tema GTK" + +#: gtk/inspector/visual.ui:59 +msgid "Dark Variant" +msgstr "Variante obscur" + +#: gtk/inspector/visual.ui:84 +msgid "Cursor Theme" +msgstr "Tema de apuntatores" + +#: gtk/inspector/visual.ui:109 +msgid "Cursor Size" +msgstr "Dimension de apuntator" + +#: gtk/inspector/visual.ui:145 +msgid "Icon Theme" +msgstr "Tema de icones" + +#: gtk/inspector/visual.ui:195 +#, fuzzy +#| msgid "Font Selection" +msgid "Font Scale" +msgstr "_Scale:" + +#: gtk/inspector/visual.ui:240 +msgid "Text Direction" +msgstr "Direction del textu" + +#: gtk/inspector/visual.ui:255 +msgid "Left-to-Right" +msgstr "Levul-ad-dextri" + +#: gtk/inspector/visual.ui:256 +msgid "Right-to-Left" +msgstr "Dextri-ad-levul" + +#: gtk/inspector/visual.ui:274 +msgid "Window Scaling" +msgstr "Scale de fenestres" + +#: gtk/inspector/visual.ui:307 +msgid "Animations" +msgstr "Animationes" + +#: gtk/inspector/visual.ui:332 +msgid "Slowdown" +msgstr "" + +#: gtk/inspector/visual.ui:390 +#, fuzzy +msgid "Show fps overlay" +msgstr " fps" + +#: gtk/inspector/visual.ui:415 +#, fuzzy +msgid "Show Graphic Updates" +msgstr "grafico" + +#: gtk/inspector/visual.ui:440 +#, fuzzy +msgid "Show Fallback Rendering" +msgstr "Presentation" + +#: gtk/inspector/visual.ui:465 +#, fuzzy +msgid "Show Baselines" +msgstr "_Monstrar…" + +#: gtk/inspector/visual.ui:493 +#, fuzzy +msgid "Show Layout Borders" +msgstr "Monstrar _bordes de fenestre" + +#: gtk/inspector/visual.ui:550 +#, fuzzy +msgid "CSS Padding" +msgstr "CSS" + +#: gtk/inspector/visual.ui:560 +#, fuzzy +#| msgid "CSS nodes" +msgid "CSS Border" +msgstr "Borde" + +#: gtk/inspector/visual.ui:570 +#, fuzzy +#| msgid "Paper Margins" +msgid "CSS Margin" +msgstr "CSS" + +#: gtk/inspector/visual.ui:580 +#, fuzzy +#| msgid "Paper Margins" +msgid "Widget Margin" +msgstr "Widget" + +#: gtk/inspector/visual.ui:615 +#, fuzzy +msgid "Show Focus" +msgstr "_Foco" + +#: gtk/inspector/visual.ui:654 +#, fuzzy +#| msgid "Simulate touchscreen" +msgid "Simulate Touchscreen" +msgstr "Simular un panel tactil" + +#: gtk/inspector/visual.ui:689 +#, fuzzy +msgid "Inspect Inspector" +msgstr "_Inspector" + +#: gtk/inspector/window.ui:27 +#, fuzzy +msgid "Select an Object" +msgstr "Object" + +#: gtk/inspector/window.ui:42 gtk/inspector/window.ui:107 +msgid "Show Details" +msgstr "Monstrar detallies" + +#: gtk/inspector/window.ui:57 +#, fuzzy +msgid "Show all Objects" +msgstr "_Revelar omnis" + +#: gtk/inspector/window.ui:121 +#, fuzzy +msgid "Show all Resources" +msgstr "Monstrar li carte Ressurses" + +#: gtk/inspector/window.ui:147 +#, fuzzy +msgid "Collect Statistics" +msgstr "Collecter local statistica" + +#: gtk/inspector/window.ui:199 +msgid "Objects" +msgstr "Objectes" + +#: gtk/inspector/window.ui:231 +#, fuzzy +msgid "Toggle Sidebar" +msgstr "Panel láteral" + +#: gtk/inspector/window.ui:253 +#, fuzzy +msgid "Refresh action state" +msgstr "Statu" + +#: gtk/inspector/window.ui:327 +#, fuzzy +#| msgctxt "Stock label, media" +#| msgid "Pre_vious" +msgid "Previous object" +msgstr "_Precedent" + +#: gtk/inspector/window.ui:334 +#, fuzzy +msgid "Child object" +msgstr "Object" + +#: gtk/inspector/window.ui:341 +#, fuzzy +#| msgctxt "Stock label, media" +#| msgid "Pre_vious" +msgid "Previous sibling" +msgstr "following-sibling" + +#: gtk/inspector/window.ui:347 +#, fuzzy +msgid "List Position" +msgstr "&Position" + +#: gtk/inspector/window.ui:356 +#, fuzzy +msgid "Next sibling" +msgstr "following-sibling" + +#: gtk/inspector/window.ui:386 +msgid "Miscellaneous" +msgstr "Diversi" + +#: gtk/inspector/window.ui:407 gtk/ui/gtkprintunixdialog.ui:393 +msgid "Layout" +msgstr "Arangeament" + +#: gtk/inspector/window.ui:418 +msgid "CSS Nodes" +msgstr "Nodes CSS" + +#: gtk/inspector/window.ui:429 +#, fuzzy +msgid "Size Groups" +msgstr "&Gruppes" + +#: gtk/inspector/window.ui:438 gtk/inspector/window.ui:447 +msgid "Data" +msgstr "Data" + +#: gtk/inspector/window.ui:457 +msgid "Actions" +msgstr "Actiones" + +#: gtk/inspector/window.ui:468 +msgid "Menu" +msgstr "Menú" + +#: gtk/inspector/window.ui:477 +msgid "Controllers" +msgstr "" + +#: gtk/inspector/window.ui:487 +msgid "Magnifier" +msgstr "Lupe" + +#: gtk/inspector/window.ui:508 +msgid "Accessibility" +msgstr "Accessibilitá" + +#: gtk/inspector/window.ui:532 +msgid "Global" +msgstr "Global" + +#: gtk/inspector/window.ui:545 +msgid "Information" +msgstr "Information" + +#: gtk/inspector/window.ui:554 +msgid "Settings" +msgstr "Parametres" + +#: gtk/inspector/window.ui:563 +msgid "Resources" +msgstr "Ressurses" + +#: gtk/inspector/window.ui:584 +msgid "Statistics" +msgstr "Statistica" + +#: gtk/inspector/window.ui:595 +#, fuzzy +msgid "Logging" +msgstr "Apertente un session…" + +#: gtk/inspector/window.ui:610 +msgid "CSS" +msgstr "CSS" + +#: gtk/inspector/window.ui:619 +msgid "Recorder" +msgstr "Registrator" + +#: gtk/open-type-layout.h:14 +#, fuzzy +msgctxt "OpenType layout" +msgid "Access All Alternates" +msgstr "Accesse:" + +#: gtk/open-type-layout.h:15 +#, fuzzy +msgctxt "OpenType layout" +msgid "Above-base Forms" +msgstr "&Superiori" + +#: gtk/open-type-layout.h:16 +msgctxt "OpenType layout" +msgid "Above-base Mark Positioning" +msgstr "" + +#: gtk/open-type-layout.h:17 +#, fuzzy +msgctxt "OpenType layout" +msgid "Above-base Substitutions" +msgstr "Substitutiones" + +#: gtk/open-type-layout.h:18 +#, fuzzy +#| msgid "Authentication" +msgctxt "OpenType layout" +msgid "Alternative Fractions" +msgstr "Fractiones" + +#: gtk/open-type-layout.h:19 +msgctxt "OpenType layout" +msgid "Akhands" +msgstr "" + +#: gtk/open-type-layout.h:20 +#, fuzzy +msgctxt "OpenType layout" +msgid "Below-base Forms" +msgstr "_Basat sur:" + +#: gtk/open-type-layout.h:21 +msgctxt "OpenType layout" +msgid "Below-base Mark Positioning" +msgstr "" + +#: gtk/open-type-layout.h:22 +#, fuzzy +msgctxt "OpenType layout" +msgid "Below-base Substitutions" +msgstr "Substitutiones" + +#: gtk/open-type-layout.h:23 +msgctxt "OpenType layout" +msgid "Contextual Alternates" +msgstr "" + +#: gtk/open-type-layout.h:24 +#, fuzzy +msgctxt "OpenType layout" +msgid "Case-Sensitive Forms" +msgstr "_Atenter a MAJ/min" + +#: gtk/open-type-layout.h:25 +#, fuzzy +msgctxt "OpenType layout" +msgid "Glyph Composition / Decomposition" +msgstr "Cache de glifes" + +#: gtk/open-type-layout.h:26 +msgctxt "OpenType layout" +msgid "Conjunct Form After Ro" +msgstr "" + +#: gtk/open-type-layout.h:27 +#, fuzzy +msgctxt "OpenType layout" +msgid "Conjunct Forms" +msgstr "Localisat formas" + +#: gtk/open-type-layout.h:28 +#, fuzzy +msgctxt "OpenType layout" +msgid "Contextual Ligatures" +msgstr "Ligaturas" + +#: gtk/open-type-layout.h:29 +msgctxt "OpenType layout" +msgid "Centered CJK Punctuation" +msgstr "Centrat punctuation de CJK" + +#: gtk/open-type-layout.h:30 +#, fuzzy +msgctxt "OpenType layout" +msgid "Capital Spacing" +msgstr "Inicial majuscule" + +#: gtk/open-type-layout.h:31 +msgctxt "OpenType layout" +msgid "Contextual Swash" +msgstr "" + +#: gtk/open-type-layout.h:32 +msgctxt "OpenType layout" +msgid "Cursive Positioning" +msgstr "" + +#: gtk/open-type-layout.h:33 +#, fuzzy +msgctxt "OpenType layout" +msgid "Petite Capitals From Capitals" +msgstr "Micri majuscules" + +#: gtk/open-type-layout.h:34 +#, fuzzy +msgctxt "OpenType layout" +msgid "Small Capitals From Capitals" +msgstr "Micri majuscules" + +#: gtk/open-type-layout.h:35 +msgctxt "OpenType layout" +msgid "Distances" +msgstr "Distanties" + +#: gtk/open-type-layout.h:36 +#, fuzzy +msgctxt "OpenType layout" +msgid "Discretionary Ligatures" +msgstr "Ligaturas" + +#: gtk/open-type-layout.h:37 +msgctxt "OpenType layout" +msgid "Denominators" +msgstr "Denominatores" + +#: gtk/open-type-layout.h:38 +msgctxt "OpenType layout" +msgid "Dotless Forms" +msgstr "Formes sin punctu" + +#: gtk/open-type-layout.h:39 +msgctxt "OpenType layout" +msgid "Expert Forms" +msgstr "Expert formes" + +#: gtk/open-type-layout.h:40 +msgctxt "OpenType layout" +msgid "Final Glyph on Line Alternates" +msgstr "" + +#: gtk/open-type-layout.h:41 +#, fuzzy +#| msgid "Terminal Pager" +msgctxt "OpenType layout" +msgid "Terminal Forms #2" +msgstr "Terminal" + +#: gtk/open-type-layout.h:42 +#, fuzzy +#| msgid "Terminal Pager" +msgctxt "OpenType layout" +msgid "Terminal Forms #3" +msgstr "Historic formes" + +#: gtk/open-type-layout.h:43 +msgctxt "OpenType layout" +msgid "Terminal Forms" +msgstr "Formes de terminal" + +#: gtk/open-type-layout.h:44 +#, fuzzy +msgctxt "OpenType layout" +msgid "Flattened accent forms" +msgstr "Color de accentu:" + +#: gtk/open-type-layout.h:45 +msgctxt "OpenType layout" +msgid "Fractions" +msgstr "Fractiones" + +#: gtk/open-type-layout.h:46 +msgctxt "OpenType layout" +msgid "Full Widths" +msgstr "Plen-largore" + +#: gtk/open-type-layout.h:47 +msgctxt "OpenType layout" +msgid "Half Forms" +msgstr "MidÃ-formes" + +#: gtk/open-type-layout.h:48 +#, fuzzy +msgctxt "OpenType layout" +msgid "Halant Forms" +msgstr "Medial formas" + +#: gtk/open-type-layout.h:49 +#, fuzzy +msgctxt "OpenType layout" +msgid "Alternate Half Widths" +msgstr "Alternativ:" + +#: gtk/open-type-layout.h:50 +msgctxt "OpenType layout" +msgid "Historical Forms" +msgstr "Historic formes" + +#: gtk/open-type-layout.h:51 +#, fuzzy +msgctxt "OpenType layout" +msgid "Horizontal Kana Alternates" +msgstr "Horizontal" + +#: gtk/open-type-layout.h:52 +msgctxt "OpenType layout" +msgid "Historical Ligatures" +msgstr "Historic ligaturas" + +#: gtk/open-type-layout.h:53 +msgctxt "OpenType layout" +msgid "Hangul" +msgstr "Hangul" + +#: gtk/open-type-layout.h:54 +msgctxt "OpenType layout" +msgid "Hojo Kanji Forms" +msgstr "Formes hojo kanji" + +#: gtk/open-type-layout.h:55 +#, fuzzy +msgctxt "OpenType layout" +msgid "Half Widths" +msgstr "Mi-dimension" + +#: gtk/open-type-layout.h:56 +#, fuzzy +msgctxt "OpenType layout" +msgid "Initial Forms" +msgstr "Formas del _plurale" + +#: gtk/open-type-layout.h:57 +#, fuzzy +msgctxt "OpenType layout" +msgid "Isolated Forms" +msgstr "Localisat formas" + +#: gtk/open-type-layout.h:58 +msgctxt "OpenType layout" +msgid "Italics" +msgstr "Italic" + +#: gtk/open-type-layout.h:59 +#, fuzzy +msgctxt "OpenType layout" +msgid "Justification Alternates" +msgstr "Alineament de subtitules" + +#: gtk/open-type-layout.h:60 +msgctxt "OpenType layout" +msgid "JIS78 Forms" +msgstr "Formas JIS78" + +#: gtk/open-type-layout.h:61 +msgctxt "OpenType layout" +msgid "JIS83 Forms" +msgstr "Formas JIS83" + +#: gtk/open-type-layout.h:62 +#, fuzzy +msgctxt "OpenType layout" +msgid "JIS90 Forms" +msgstr "Formas JIS78" + +#: gtk/open-type-layout.h:63 +#, fuzzy +msgctxt "OpenType layout" +msgid "JIS2004 Forms" +msgstr "Formas del plurale:" + +#: gtk/open-type-layout.h:64 +#, fuzzy +#| msgid "Warning" +msgctxt "OpenType layout" +msgid "Kerning" +msgstr "Avise" + +#: gtk/open-type-layout.h:65 +#, fuzzy +#| msgctxt "output-bin" +#| msgid "Left Bin" +msgctxt "OpenType layout" +msgid "Left Bounds" +msgstr "LÃmites" + +#: gtk/open-type-layout.h:66 +msgctxt "OpenType layout" +msgid "Standard Ligatures" +msgstr "Standard ligaturas" + +#: gtk/open-type-layout.h:67 +#, fuzzy +msgctxt "OpenType layout" +msgid "Leading Jamo Forms" +msgstr "Remover inicial spacies" + +#: gtk/open-type-layout.h:68 +#, fuzzy +msgctxt "OpenType layout" +msgid "Lining Figures" +msgstr "Ciffres por tabelles" + +#: gtk/open-type-layout.h:69 +msgctxt "OpenType layout" +msgid "Localized Forms" +msgstr "Localisat formas" + +#: gtk/open-type-layout.h:70 +#, fuzzy +#| msgid "LRM _Left-to-right mark" +msgctxt "OpenType layout" +msgid "Left-to-right alternates" +msgstr "Levul-a-dextri, conto prim" + +#: gtk/open-type-layout.h:71 +#, fuzzy +#| msgid "LRM _Left-to-right mark" +msgctxt "OpenType layout" +msgid "Left-to-right mirrored forms" +msgstr "Levul-a-dextri, conto prim" + +#: gtk/open-type-layout.h:72 +#, fuzzy +msgctxt "OpenType layout" +msgid "Mark Positioning" +msgstr "_Marcar" + +#: gtk/open-type-layout.h:73 +#, fuzzy +msgctxt "OpenType layout" +msgid "Medial Forms #2" +msgstr "Medial formas" + +#: gtk/open-type-layout.h:74 +msgctxt "OpenType layout" +msgid "Medial Forms" +msgstr "Medial formas" + +#: gtk/open-type-layout.h:75 +msgctxt "OpenType layout" +msgid "Mathematical Greek" +msgstr "Matematic grec" + +#: gtk/open-type-layout.h:76 +#, fuzzy +msgctxt "OpenType layout" +msgid "Mark to Mark Positioning" +msgstr "_Marcar" + +#: gtk/open-type-layout.h:77 +msgctxt "OpenType layout" +msgid "Mark Positioning via Substitution" +msgstr "" + +#: gtk/open-type-layout.h:78 +#, fuzzy +msgctxt "OpenType layout" +msgid "Alternate Annotation Forms" +msgstr "Alternativ" + +#: gtk/open-type-layout.h:79 +msgctxt "OpenType layout" +msgid "NLC Kanji Forms" +msgstr "Formes NLC kanji" + +#: gtk/open-type-layout.h:80 +msgctxt "OpenType layout" +msgid "Nukta Forms" +msgstr "Formes nukta" + +#: gtk/open-type-layout.h:81 +msgctxt "OpenType layout" +msgid "Numerators" +msgstr "" + +#: gtk/open-type-layout.h:82 +#, fuzzy +msgctxt "OpenType layout" +msgid "Oldstyle Figures" +msgstr "Ciffres por tabelles" + +#: gtk/open-type-layout.h:83 +#, fuzzy +msgctxt "OpenType layout" +msgid "Optical Bounds" +msgstr "Optical" + +#: gtk/open-type-layout.h:84 +#, fuzzy +#| msgid "Signals" +msgctxt "OpenType layout" +msgid "Ordinals" +msgstr "Signales" + +#: gtk/open-type-layout.h:85 +msgctxt "OpenType layout" +msgid "Ornaments" +msgstr "" + +#: gtk/open-type-layout.h:86 +#, fuzzy +msgctxt "OpenType layout" +msgid "Proportional Alternate Widths" +msgstr "Automatic largore de columnes" + +#: gtk/open-type-layout.h:87 +#, fuzzy +msgctxt "OpenType layout" +msgid "Petite Capitals" +msgstr "Majuscules" + +#: gtk/open-type-layout.h:88 +#, fuzzy +msgctxt "OpenType layout" +msgid "Proportional Kana" +msgstr "Japanesi (kana)" + +#: gtk/open-type-layout.h:89 +#, fuzzy +#| msgid "Properties" +msgctxt "OpenType layout" +msgid "Proportional Figures" +msgstr "Ciffres por tabelles" + +#: gtk/open-type-layout.h:90 +#, fuzzy +msgctxt "OpenType layout" +msgid "Pre-Base Forms" +msgstr "Base" + +#: gtk/open-type-layout.h:91 +#, fuzzy +msgctxt "OpenType layout" +msgid "Pre-base Substitutions" +msgstr "Substitutiones" + +#: gtk/open-type-layout.h:92 +#, fuzzy +msgctxt "OpenType layout" +msgid "Post-base Forms" +msgstr "Base" + +#: gtk/open-type-layout.h:93 +#, fuzzy +msgctxt "OpenType layout" +msgid "Post-base Substitutions" +msgstr "Substitutiones" + +#: gtk/open-type-layout.h:94 +#, fuzzy +msgctxt "OpenType layout" +msgid "Proportional Widths" +msgstr "Automatic largore de columnes" + +#: gtk/open-type-layout.h:95 +#, fuzzy +msgctxt "OpenType layout" +msgid "Quarter Widths" +msgstr "Automatic largore de columnes" + +#: gtk/open-type-layout.h:96 +#, fuzzy +msgctxt "OpenType layout" +msgid "Randomize" +msgstr "Mixter li actual playlist" + +#: gtk/open-type-layout.h:97 +#, fuzzy +msgctxt "OpenType layout" +msgid "Required Contextual Alternates" +msgstr "Besonat per" + +#: gtk/open-type-layout.h:98 +#, fuzzy +msgctxt "OpenType layout" +msgid "Rakar Forms" +msgstr "Formas JIS78" + +#: gtk/open-type-layout.h:99 +#, fuzzy +msgctxt "OpenType layout" +msgid "Required Ligatures" +msgstr "Ligaturas" + +#: gtk/open-type-layout.h:100 +#, fuzzy +msgctxt "OpenType layout" +msgid "Reph Forms" +msgstr "Formas JIS78" + +#: gtk/open-type-layout.h:101 +#, fuzzy +#| msgctxt "output-bin" +#| msgid "Right Bin" +msgctxt "OpenType layout" +msgid "Right Bounds" +msgstr "LÃmites" + +#: gtk/open-type-layout.h:102 +#, fuzzy +#| msgid "RLM _Right-to-left mark" +msgctxt "OpenType layout" +msgid "Right-to-left alternates" +msgstr "Levul-a-dextri, conto prim" + +#: gtk/open-type-layout.h:103 +#, fuzzy +#| msgid "RLM _Right-to-left mark" +msgctxt "OpenType layout" +msgid "Right-to-left mirrored forms" +msgstr "Levul-a-dextri, conto prim" + +#: gtk/open-type-layout.h:104 +#, fuzzy +msgctxt "OpenType layout" +msgid "Ruby Notation Forms" +msgstr "Scriptes Ruby" + +#: gtk/open-type-layout.h:105 +#, fuzzy +msgctxt "OpenType layout" +msgid "Required Variation Alternates" +msgstr "Besonat per" + +#: gtk/open-type-layout.h:106 +msgctxt "OpenType layout" +msgid "Stylistic Alternates" +msgstr "" + +#: gtk/open-type-layout.h:107 +#, fuzzy +msgctxt "OpenType layout" +msgid "Scientific Inferiors" +msgstr "Scientific" + +#: gtk/open-type-layout.h:108 +msgctxt "OpenType layout" +msgid "Optical size" +msgstr "Optical dimension" + +#: gtk/open-type-layout.h:109 +msgctxt "OpenType layout" +msgid "Small Capitals" +msgstr "Micri majuscules" + +#: gtk/open-type-layout.h:110 +msgctxt "OpenType layout" +msgid "Simplified Forms" +msgstr "Simplificat formes" + +#: gtk/open-type-layout.h:111 +msgctxt "OpenType layout" +msgid "Math script style alternates" +msgstr "" + +#: gtk/open-type-layout.h:112 +#, fuzzy +msgctxt "OpenType layout" +msgid "Stretching Glyph Decomposition" +msgstr "Extension del fin" + +#: gtk/open-type-layout.h:113 +msgctxt "OpenType layout" +msgid "Subscript" +msgstr "Subscrition" + +#: gtk/open-type-layout.h:114 +msgctxt "OpenType layout" +msgid "Superscript" +msgstr "Superscrition" + +#: gtk/open-type-layout.h:115 +msgctxt "OpenType layout" +msgid "Swash" +msgstr "" + +#: gtk/open-type-layout.h:116 +msgctxt "OpenType layout" +msgid "Titling" +msgstr "Titul-stil" + +#: gtk/open-type-layout.h:117 +#, fuzzy +msgctxt "OpenType layout" +msgid "Trailing Jamo Forms" +msgstr "Historic formes" + +#: gtk/open-type-layout.h:118 +#, fuzzy +msgctxt "OpenType layout" +msgid "Traditional Name Forms" +msgstr "Traditional formes" + +#: gtk/open-type-layout.h:119 +msgctxt "OpenType layout" +msgid "Tabular Figures" +msgstr "Ciffres por tabelles" + +#: gtk/open-type-layout.h:120 +msgctxt "OpenType layout" +msgid "Traditional Forms" +msgstr "Traditional formes" + +#: gtk/open-type-layout.h:121 +#, fuzzy +msgctxt "OpenType layout" +msgid "Third Widths" +msgstr "Automatic largore de columnes" + +#: gtk/open-type-layout.h:122 +msgctxt "OpenType layout" +msgid "Unicase" +msgstr "Unicase" + +#: gtk/open-type-layout.h:123 +#, fuzzy +msgctxt "OpenType layout" +msgid "Alternate Vertical Metrics" +msgstr "Alternativ:" + +#: gtk/open-type-layout.h:124 +msgctxt "OpenType layout" +msgid "Vattu Variants" +msgstr "Variantes vattu" + +#: gtk/open-type-layout.h:125 +#, fuzzy +#| msgctxt "sizegroup mode" +#| msgid "Vertical" +msgctxt "OpenType layout" +msgid "Vertical Writing" +msgstr "_Vertical:" + +#: gtk/open-type-layout.h:126 +msgctxt "OpenType layout" +msgid "Alternate Vertical Half Metrics" +msgstr "" + +#: gtk/open-type-layout.h:127 +#, fuzzy +msgctxt "OpenType layout" +msgid "Vowel Jamo Forms" +msgstr "Vocalic punctus de hebreic" + +#: gtk/open-type-layout.h:128 +#, fuzzy +msgctxt "OpenType layout" +msgid "Vertical Kana Alternates" +msgstr "Vertical" + +#: gtk/open-type-layout.h:129 +#, fuzzy +#| msgctxt "sizegroup mode" +#| msgid "Vertical" +msgctxt "OpenType layout" +msgid "Vertical Kerning" +msgstr "_Vertical:" + +#: gtk/open-type-layout.h:130 +msgctxt "OpenType layout" +msgid "Proportional Alternate Vertical Metrics" +msgstr "" + +#: gtk/open-type-layout.h:131 +#, fuzzy +msgctxt "OpenType layout" +msgid "Vertical Alternates and Rotation" +msgstr "Vertical" + +#: gtk/open-type-layout.h:132 +#, fuzzy +msgctxt "OpenType layout" +msgid "Vertical Alternates for Rotation" +msgstr "Vertical" + +#: gtk/open-type-layout.h:133 +msgctxt "OpenType layout" +msgid "Slashed Zero" +msgstr "Trastrecat zero" + +#: gtk/paper_names_offsets.c:4 +msgctxt "paper size" +msgid "asme_f" +msgstr "asme_f" + +#: gtk/paper_names_offsets.c:5 +msgctxt "paper size" +msgid "A0×2" +msgstr "A0×2" + +#: gtk/paper_names_offsets.c:6 +msgctxt "paper size" +msgid "A0" +msgstr "A0" + +#: gtk/paper_names_offsets.c:7 +msgctxt "paper size" +msgid "A0×3" +msgstr "A0×3" + +#: gtk/paper_names_offsets.c:8 +msgctxt "paper size" +msgid "A1" +msgstr "A1" + +#: gtk/paper_names_offsets.c:9 +msgctxt "paper size" +msgid "A10" +msgstr "A10" + +#: gtk/paper_names_offsets.c:10 +msgctxt "paper size" +msgid "A1×3" +msgstr "A1×3" + +#: gtk/paper_names_offsets.c:11 +msgctxt "paper size" +msgid "A1×4" +msgstr "A1×4" + +#: gtk/paper_names_offsets.c:12 +msgctxt "paper size" +msgid "A2" +msgstr "A2" + +#: gtk/paper_names_offsets.c:13 +msgctxt "paper size" +msgid "A2×3" +msgstr "A2×3" + +#: gtk/paper_names_offsets.c:14 +msgctxt "paper size" +msgid "A2×4" +msgstr "A2×4" + +#: gtk/paper_names_offsets.c:15 +msgctxt "paper size" +msgid "A2×5" +msgstr "A2×5" + +#: gtk/paper_names_offsets.c:16 +msgctxt "paper size" +msgid "A3" +msgstr "A3" + +#: gtk/paper_names_offsets.c:17 +msgctxt "paper size" +msgid "A3 Extra" +msgstr "A3 Extra" + +#: gtk/paper_names_offsets.c:18 +msgctxt "paper size" +msgid "A3×3" +msgstr "A3×3" + +#: gtk/paper_names_offsets.c:19 +msgctxt "paper size" +msgid "A3×4" +msgstr "A3×4" + +#: gtk/paper_names_offsets.c:20 +msgctxt "paper size" +msgid "A3×5" +msgstr "A3×5" + +#: gtk/paper_names_offsets.c:21 +msgctxt "paper size" +msgid "A3×6" +msgstr "A3×6" + +#: gtk/paper_names_offsets.c:22 +msgctxt "paper size" +msgid "A3×7" +msgstr "A3×7" + +#: gtk/paper_names_offsets.c:23 +msgctxt "paper size" +msgid "A4" +msgstr "A4" + +#: gtk/paper_names_offsets.c:24 +msgctxt "paper size" +msgid "A4 Extra" +msgstr "A4 Extra" + +#: gtk/paper_names_offsets.c:25 +msgctxt "paper size" +msgid "A4 Tab" +msgstr "A4 tab" + +#: gtk/paper_names_offsets.c:26 +msgctxt "paper size" +msgid "A4×3" +msgstr "A4×3" + +#: gtk/paper_names_offsets.c:27 +msgctxt "paper size" +msgid "A4×4" +msgstr "A4×4" + +#: gtk/paper_names_offsets.c:28 +msgctxt "paper size" +msgid "A4×5" +msgstr "A4×5" + +#: gtk/paper_names_offsets.c:29 +msgctxt "paper size" +msgid "A4×6" +msgstr "A4×6" + +#: gtk/paper_names_offsets.c:30 +msgctxt "paper size" +msgid "A4×7" +msgstr "A4×7" + +#: gtk/paper_names_offsets.c:31 +msgctxt "paper size" +msgid "A4×8" +msgstr "A4×8" + +#: gtk/paper_names_offsets.c:32 +msgctxt "paper size" +msgid "A4×9" +msgstr "A4×9" + +#: gtk/paper_names_offsets.c:33 +msgctxt "paper size" +msgid "A5" +msgstr "A5" + +#: gtk/paper_names_offsets.c:34 +msgctxt "paper size" +msgid "A5 Extra" +msgstr "A5 Extra" + +#: gtk/paper_names_offsets.c:35 +msgctxt "paper size" +msgid "A6" +msgstr "A6" + +#: gtk/paper_names_offsets.c:36 +msgctxt "paper size" +msgid "A7" +msgstr "A7" + +#: gtk/paper_names_offsets.c:37 +msgctxt "paper size" +msgid "A8" +msgstr "A8" + +#: gtk/paper_names_offsets.c:38 +msgctxt "paper size" +msgid "A9" +msgstr "A9" + +#: gtk/paper_names_offsets.c:39 +msgctxt "paper size" +msgid "B0" +msgstr "B0" + +#: gtk/paper_names_offsets.c:40 +msgctxt "paper size" +msgid "B1" +msgstr "B1" + +#: gtk/paper_names_offsets.c:41 +msgctxt "paper size" +msgid "B10" +msgstr "B10" + +#: gtk/paper_names_offsets.c:42 +msgctxt "paper size" +msgid "B2" +msgstr "B2" + +#: gtk/paper_names_offsets.c:43 +msgctxt "paper size" +msgid "B3" +msgstr "B3" + +#: gtk/paper_names_offsets.c:44 +msgctxt "paper size" +msgid "B4" +msgstr "B4" + +#: gtk/paper_names_offsets.c:45 +msgctxt "paper size" +msgid "B5" +msgstr "B5" + +#: gtk/paper_names_offsets.c:46 +msgctxt "paper size" +msgid "B5 Extra" +msgstr "B5 Extra" + +#: gtk/paper_names_offsets.c:47 +msgctxt "paper size" +msgid "B6" +msgstr "B6" + +#: gtk/paper_names_offsets.c:48 +msgctxt "paper size" +msgid "B6/C4" +msgstr "B6/C4" + +#: gtk/paper_names_offsets.c:49 +msgctxt "paper size" +msgid "B7" +msgstr "B7" + +#: gtk/paper_names_offsets.c:50 +msgctxt "paper size" +msgid "B8" +msgstr "B8" + +#: gtk/paper_names_offsets.c:51 +msgctxt "paper size" +msgid "B9" +msgstr "B9" + +#: gtk/paper_names_offsets.c:52 +msgctxt "paper size" +msgid "C0" +msgstr "C0" + +#: gtk/paper_names_offsets.c:53 +msgctxt "paper size" +msgid "C1" +msgstr "C1" + +#: gtk/paper_names_offsets.c:54 +msgctxt "paper size" +msgid "C10" +msgstr "C10" + +#: gtk/paper_names_offsets.c:55 +msgctxt "paper size" +msgid "C2" +msgstr "C2" + +#: gtk/paper_names_offsets.c:56 +msgctxt "paper size" +msgid "C3" +msgstr "C3" + +#: gtk/paper_names_offsets.c:57 +msgctxt "paper size" +msgid "C4" +msgstr "C4" + +#: gtk/paper_names_offsets.c:58 +msgctxt "paper size" +msgid "C5" +msgstr "C5" + +#: gtk/paper_names_offsets.c:59 +msgctxt "paper size" +msgid "C6" +msgstr "C6" + +#: gtk/paper_names_offsets.c:60 +msgctxt "paper size" +msgid "C6/C5" +msgstr "C6/C5" + +#: gtk/paper_names_offsets.c:61 +msgctxt "paper size" +msgid "C7" +msgstr "C7" + +#: gtk/paper_names_offsets.c:62 +msgctxt "paper size" +msgid "C7/C6" +msgstr "C7/C6" + +#: gtk/paper_names_offsets.c:63 +msgctxt "paper size" +msgid "C8" +msgstr "C8" + +#: gtk/paper_names_offsets.c:64 +msgctxt "paper size" +msgid "C9" +msgstr "C9" + +#: gtk/paper_names_offsets.c:65 +msgctxt "paper size" +msgid "DL Envelope" +msgstr "Covert DL" + +#: gtk/paper_names_offsets.c:66 +msgctxt "paper size" +msgid "RA0" +msgstr "RA0" + +#: gtk/paper_names_offsets.c:67 +msgctxt "paper size" +msgid "RA1" +msgstr "RA1" + +#: gtk/paper_names_offsets.c:68 +msgctxt "paper size" +msgid "RA2" +msgstr "RA2" + +#: gtk/paper_names_offsets.c:69 +msgctxt "paper size" +msgid "RA3" +msgstr "RA3" + +#: gtk/paper_names_offsets.c:70 +msgctxt "paper size" +msgid "RA4" +msgstr "RA4" + +#: gtk/paper_names_offsets.c:71 +msgctxt "paper size" +msgid "SRA0" +msgstr "SRA0" + +#: gtk/paper_names_offsets.c:72 +msgctxt "paper size" +msgid "SRA1" +msgstr "SRA1" + +#: gtk/paper_names_offsets.c:73 +msgctxt "paper size" +msgid "SRA2" +msgstr "SRA2" + +#: gtk/paper_names_offsets.c:74 +msgctxt "paper size" +msgid "SRA3" +msgstr "SRA3" + +#: gtk/paper_names_offsets.c:75 +msgctxt "paper size" +msgid "SRA4" +msgstr "SRA4" + +#: gtk/paper_names_offsets.c:76 +msgctxt "paper size" +msgid "JB0" +msgstr "JB0" + +#: gtk/paper_names_offsets.c:77 +msgctxt "paper size" +msgid "JB1" +msgstr "JB1" + +#: gtk/paper_names_offsets.c:78 +msgctxt "paper size" +msgid "JB10" +msgstr "JB10" + +#: gtk/paper_names_offsets.c:79 +msgctxt "paper size" +msgid "JB2" +msgstr "JB2" + +#: gtk/paper_names_offsets.c:80 +msgctxt "paper size" +msgid "JB3" +msgstr "JB3" + +#: gtk/paper_names_offsets.c:81 +msgctxt "paper size" +msgid "JB4" +msgstr "JB4" + +#: gtk/paper_names_offsets.c:82 +msgctxt "paper size" +msgid "JB5" +msgstr "JB5" + +#: gtk/paper_names_offsets.c:83 +msgctxt "paper size" +msgid "JB6" +msgstr "JB6" + +#: gtk/paper_names_offsets.c:84 +msgctxt "paper size" +msgid "JB7" +msgstr "JB7" + +#: gtk/paper_names_offsets.c:85 +msgctxt "paper size" +msgid "JB8" +msgstr "JB8" + +#: gtk/paper_names_offsets.c:86 +msgctxt "paper size" +msgid "JB9" +msgstr "JB9" + +#: gtk/paper_names_offsets.c:87 +msgctxt "paper size" +msgid "jis exec" +msgstr "jis exec" + +#: gtk/paper_names_offsets.c:88 +msgctxt "paper size" +msgid "Choukei 2 Envelope" +msgstr "Covert Choukei 2" + +#: gtk/paper_names_offsets.c:89 +msgctxt "paper size" +msgid "Choukei 3 Envelope" +msgstr "Covert Choukei 3" + +#: gtk/paper_names_offsets.c:90 +msgctxt "paper size" +msgid "Choukei 4 Envelope" +msgstr "Covert Choukei 4" + +#: gtk/paper_names_offsets.c:91 +msgctxt "paper size" +msgid "Choukei 40 Envelope" +msgstr "Covert Choukei 40" + +#: gtk/paper_names_offsets.c:92 +msgctxt "paper size" +msgid "hagaki (postcard)" +msgstr "hagaki (carte postal)" + +#: gtk/paper_names_offsets.c:93 +msgctxt "paper size" +msgid "kahu Envelope" +msgstr "Covert kahu" + +#: gtk/paper_names_offsets.c:94 +msgctxt "paper size" +msgid "kaku2 Envelope" +msgstr "Covert kaku2" + +#: gtk/paper_names_offsets.c:95 +msgctxt "paper size" +msgid "kaku3 Envelope" +msgstr "Covert kaku3" + +#: gtk/paper_names_offsets.c:96 +msgctxt "paper size" +msgid "kaku4 Envelope" +msgstr "Covert kaku4" + +#: gtk/paper_names_offsets.c:97 +msgctxt "paper size" +msgid "kaku5 Envelope" +msgstr "Covert kaku5" + +#: gtk/paper_names_offsets.c:98 +msgctxt "paper size" +msgid "kaku7 Envelope" +msgstr "Covert kaku7" + +#: gtk/paper_names_offsets.c:99 +msgctxt "paper size" +msgid "kaku8 Envelope" +msgstr "Covert kaku8" + +#: gtk/paper_names_offsets.c:100 +#, fuzzy +msgctxt "paper size" +msgid "oufuku (reply postcard)" +msgstr "Carte postal" + +#: gtk/paper_names_offsets.c:101 +msgctxt "paper size" +msgid "you4 Envelope" +msgstr "Covert you4" + +#: gtk/paper_names_offsets.c:102 +msgctxt "paper size" +msgid "you6 Envelope" +msgstr "Covert you6" + +#: gtk/paper_names_offsets.c:103 +msgctxt "paper size" +msgid "10×11" +msgstr "10×11" + +#: gtk/paper_names_offsets.c:104 +msgctxt "paper size" +msgid "10×13" +msgstr "10×13" + +#: gtk/paper_names_offsets.c:105 +msgctxt "paper size" +msgid "10×14" +msgstr "10×14" + +#: gtk/paper_names_offsets.c:106 +msgctxt "paper size" +msgid "10×15" +msgstr "10×15" + +#: gtk/paper_names_offsets.c:107 +msgctxt "paper size" +msgid "11×12" +msgstr "11×12" + +#: gtk/paper_names_offsets.c:108 +msgctxt "paper size" +msgid "11×15" +msgstr "11×15" + +#: gtk/paper_names_offsets.c:109 +msgctxt "paper size" +msgid "12×19" +msgstr "12×19" + +#: gtk/paper_names_offsets.c:110 +msgctxt "paper size" +msgid "5×7" +msgstr "5×7" + +#: gtk/paper_names_offsets.c:111 +msgctxt "paper size" +msgid "6×9 Envelope" +msgstr "Covert 6×9" + +#: gtk/paper_names_offsets.c:112 +msgctxt "paper size" +msgid "7×9 Envelope" +msgstr "Covert 7×9" + +#: gtk/paper_names_offsets.c:113 +msgctxt "paper size" +msgid "8×10 Envelope" +msgstr "Covert 8×10" + +#: gtk/paper_names_offsets.c:114 +msgctxt "paper size" +msgid "9×11 Envelope" +msgstr "Covert 9×11" + +#: gtk/paper_names_offsets.c:115 +msgctxt "paper size" +msgid "9×12 Envelope" +msgstr "Covert 9×12" + +#: gtk/paper_names_offsets.c:116 +msgctxt "paper size" +msgid "a2 Envelope" +msgstr "Covert a2" + +#: gtk/paper_names_offsets.c:117 +msgctxt "paper size" +msgid "Arch A" +msgstr "Arch A" + +#: gtk/paper_names_offsets.c:118 +msgctxt "paper size" +msgid "Arch B" +msgstr "Arch B" + +#: gtk/paper_names_offsets.c:119 +msgctxt "paper size" +msgid "Arch C" +msgstr "Arch C" + +#: gtk/paper_names_offsets.c:120 +msgctxt "paper size" +msgid "Arch D" +msgstr "Arch D" + +#: gtk/paper_names_offsets.c:121 +msgctxt "paper size" +msgid "Arch E" +msgstr "Arch E" + +#: gtk/paper_names_offsets.c:122 +msgctxt "paper size" +msgid "b-plus" +msgstr "b-plus" + +#: gtk/paper_names_offsets.c:123 +msgctxt "paper size" +msgid "c" +msgstr "c" + +#: gtk/paper_names_offsets.c:124 +msgctxt "paper size" +msgid "c5 Envelope" +msgstr "Covert c5" + +#: gtk/paper_names_offsets.c:125 +msgctxt "paper size" +msgid "d" +msgstr "d" + +#: gtk/paper_names_offsets.c:126 +msgctxt "paper size" +msgid "e" +msgstr "e" + +#: gtk/paper_names_offsets.c:127 +msgctxt "paper size" +msgid "edp" +msgstr "edp" + +#: gtk/paper_names_offsets.c:128 +msgctxt "paper size" +msgid "European edp" +msgstr "edp europan" + +#: gtk/paper_names_offsets.c:129 +msgctxt "paper size" +msgid "Executive" +msgstr "Executive" + +#: gtk/paper_names_offsets.c:130 +msgctxt "paper size" +msgid "f" +msgstr "f" + +#: gtk/paper_names_offsets.c:131 +#, fuzzy +msgctxt "paper size" +msgid "Fan-Fold European" +msgstr "_Plicar omni" + +#: gtk/paper_names_offsets.c:132 +#, fuzzy +msgctxt "paper size" +msgid "Fan-Fold US" +msgstr "Ventilator" + +#: gtk/paper_names_offsets.c:133 +#, fuzzy +msgctxt "paper size" +msgid "Fan-Fold German Legal" +msgstr "_German" + +#: gtk/paper_names_offsets.c:134 +#, fuzzy +msgctxt "paper size" +msgid "Government Legal" +msgstr "US Legal Extra" + +#: gtk/paper_names_offsets.c:135 +#, fuzzy +msgctxt "paper size" +msgid "Government Letter" +msgstr "US _Letter" + +#: gtk/paper_names_offsets.c:136 +#, fuzzy +msgctxt "paper size" +msgid "Index 3×5" +msgstr "Ãndex" + +#: gtk/paper_names_offsets.c:137 +#, fuzzy +msgctxt "paper size" +msgid "Index 4×6 (postcard)" +msgstr "3×2 / 6×4" + +#: gtk/paper_names_offsets.c:138 +#, fuzzy +msgctxt "paper size" +msgid "Index 4×6 ext" +msgstr "4 × 6 in." + +#: gtk/paper_names_offsets.c:139 +#, fuzzy +msgctxt "paper size" +msgid "Index 5×8" +msgstr "10×8 / 5×4" + +#: gtk/paper_names_offsets.c:140 +msgctxt "paper size" +msgid "Invoice" +msgstr "Factura" + +#: gtk/paper_names_offsets.c:141 +msgctxt "paper size" +msgid "Tabloid" +msgstr "Tabloid" + +#: gtk/paper_names_offsets.c:142 +msgctxt "paper size" +msgid "US Legal" +msgstr "US Legal" + +#: gtk/paper_names_offsets.c:143 +msgctxt "paper size" +msgid "US Legal Extra" +msgstr "US Legal Extra" + +#: gtk/paper_names_offsets.c:144 +msgctxt "paper size" +msgid "US Letter" +msgstr "US Letter" + +#: gtk/paper_names_offsets.c:145 +msgctxt "paper size" +msgid "US Letter Extra" +msgstr "US Letter Extra" + +#: gtk/paper_names_offsets.c:146 +msgctxt "paper size" +msgid "US Letter Plus" +msgstr "US Letter Plus" + +#: gtk/paper_names_offsets.c:147 +#, fuzzy +msgctxt "paper size" +msgid "Monarch Envelope" +msgstr "Covert kaku2" + +#: gtk/paper_names_offsets.c:148 +msgctxt "paper size" +msgid "#10 Envelope" +msgstr "Covert #10" + +#: gtk/paper_names_offsets.c:149 +msgctxt "paper size" +msgid "#11 Envelope" +msgstr "Covert #11" + +#: gtk/paper_names_offsets.c:150 +msgctxt "paper size" +msgid "#12 Envelope" +msgstr "Covert #12" + +#: gtk/paper_names_offsets.c:151 +msgctxt "paper size" +msgid "#14 Envelope" +msgstr "Covert #14" + +#: gtk/paper_names_offsets.c:152 +msgctxt "paper size" +msgid "#9 Envelope" +msgstr "Covert #9" + +#: gtk/paper_names_offsets.c:153 +msgctxt "paper size" +msgid "Oficio" +msgstr "Oficio" + +#: gtk/paper_names_offsets.c:154 +#, fuzzy +msgctxt "paper size" +msgid "Personal Envelope" +msgstr "_Personal" + +#: gtk/paper_names_offsets.c:155 +msgctxt "paper size" +msgid "Quarto" +msgstr "Quarto" + +#: gtk/paper_names_offsets.c:156 +msgctxt "paper size" +msgid "Super A" +msgstr "Super A" + +#: gtk/paper_names_offsets.c:157 +msgctxt "paper size" +msgid "Super B" +msgstr "Super B" + +#: gtk/paper_names_offsets.c:158 +msgctxt "paper size" +msgid "Wide Format" +msgstr "Larg formate" + +#: gtk/paper_names_offsets.c:159 +msgctxt "paper size" +msgid "Photo L" +msgstr "Foto L" + +#: gtk/paper_names_offsets.c:160 +msgctxt "paper size" +msgid "Dai-pa-kai" +msgstr "Dai-pa-kai" + +#: gtk/paper_names_offsets.c:161 +msgctxt "paper size" +msgid "Folio" +msgstr "Folio" + +#: gtk/paper_names_offsets.c:162 +msgctxt "paper size" +msgid "Folio sp" +msgstr "Folio sp" + +#: gtk/paper_names_offsets.c:163 +msgctxt "paper size" +msgid "Invite Envelope" +msgstr "Covert por invitation" + +#: gtk/paper_names_offsets.c:164 +msgctxt "paper size" +msgid "Italian Envelope" +msgstr "Covert italian" + +#: gtk/paper_names_offsets.c:165 +msgctxt "paper size" +msgid "juuro-ku-kai" +msgstr "juuro-ku-kai" + +#: gtk/paper_names_offsets.c:166 +msgctxt "paper size" +msgid "Large Photo" +msgstr "Grand foto" + +#: gtk/paper_names_offsets.c:167 +msgctxt "paper size" +msgid "Medium Photo" +msgstr "Medie foto" + +#: gtk/paper_names_offsets.c:168 +msgctxt "paper size" +msgid "pa-kai" +msgstr "pa-kai" + +#: gtk/paper_names_offsets.c:169 +msgctxt "paper size" +msgid "Postfix Envelope" +msgstr "Covert Postfix" + +#: gtk/paper_names_offsets.c:170 +msgctxt "paper size" +msgid "Small Photo" +msgstr "Micri foto" + +#: gtk/paper_names_offsets.c:171 +msgctxt "paper size" +msgid "Wide Photo" +msgstr "Larg foto" + +#: gtk/paper_names_offsets.c:172 +msgctxt "paper size" +msgid "prc1 Envelope" +msgstr "Covert prc1" + +#: gtk/paper_names_offsets.c:173 +msgctxt "paper size" +msgid "prc10 Envelope" +msgstr "Covert prc10" + +#: gtk/paper_names_offsets.c:174 +msgctxt "paper size" +msgid "prc 16k" +msgstr "prc 16k" + +#: gtk/paper_names_offsets.c:175 +msgctxt "paper size" +msgid "prc2 Envelope" +msgstr "Covert prc2" + +#: gtk/paper_names_offsets.c:176 +msgctxt "paper size" +msgid "prc3 Envelope" +msgstr "Covert prc3" + +#: gtk/paper_names_offsets.c:177 +msgctxt "paper size" +msgid "prc 32k" +msgstr "prc 32k" + +#: gtk/paper_names_offsets.c:178 +msgctxt "paper size" +msgid "prc4 Envelope" +msgstr "Covert prc4" + +#: gtk/paper_names_offsets.c:179 +msgctxt "paper size" +msgid "prc5 Envelope" +msgstr "Covert prc5" + +#: gtk/paper_names_offsets.c:180 +msgctxt "paper size" +msgid "prc6 Envelope" +msgstr "Covert prc6" + +#: gtk/paper_names_offsets.c:181 +msgctxt "paper size" +msgid "prc7 Envelope" +msgstr "Covert prc7" + +#: gtk/paper_names_offsets.c:182 +msgctxt "paper size" +msgid "prc8 Envelope" +msgstr "Covert prc8" + +#: gtk/paper_names_offsets.c:183 +msgctxt "paper size" +msgid "prc9 Envelope" +msgstr "Covert prc9" + +#: gtk/paper_names_offsets.c:184 +msgctxt "paper size" +msgid "ROC 16k" +msgstr "ROC 16k" + +#: gtk/paper_names_offsets.c:185 +msgctxt "paper size" +msgid "ROC 8k" +msgstr "ROC 8k" + +#: gtk/ui/gtkaboutdialog.ui:62 +msgid "About" +msgstr "Pri" + +#: gtk/ui/gtkaboutdialog.ui:123 +msgid "Credits" +msgstr "Credites" + +#: gtk/ui/gtkaboutdialog.ui:206 +msgid "System" +msgstr "Sistema" + +#: gtk/ui/gtkappchooserdialog.ui:60 +msgid "_View All Applications" +msgstr "_Monstra omni applicationes" + +#: gtk/ui/gtkappchooserdialog.ui:66 +msgid "_Find New Applications" +msgstr "_Trovar nov applicationes" + +#: gtk/ui/gtkappchooserwidget.ui:100 +msgid "No applications found." +msgstr "Null applicationes trovat." + +#: gtk/ui/gtkapplication-quartz.ui:13 +msgid "Preferences" +msgstr "Preferenties" + +#: gtk/ui/gtkapplication-quartz.ui:19 +msgid "Services" +msgstr "Servicios" + +#: gtk/ui/gtkapplication-quartz.ui:25 +#, c-format +msgid "Hide %s" +msgstr "Celar %s" + +#: gtk/ui/gtkapplication-quartz.ui:30 +msgid "Hide Others" +msgstr "Celar li altris" + +#: gtk/ui/gtkapplication-quartz.ui:35 +msgid "Show All" +msgstr "Revelar omnis" + +#: gtk/ui/gtkapplication-quartz.ui:42 +#, c-format +msgid "Quit %s" +msgstr "Salir %s" + +#: gtk/ui/gtkassistant.ui:64 +msgid "_Finish" +msgstr "_Finir" + +#: gtk/ui/gtkassistant.ui:75 +msgid "_Back" +msgstr "_Precedent" + +#: gtk/ui/gtkassistant.ui:86 +msgid "_Next" +msgstr "_Sequent" + +#: gtk/ui/gtkcolorchooserdialog.ui:4 +msgid "Select a Color" +msgstr "Selecter un color" + +#: gtk/ui/gtkcoloreditor.ui:43 gtk/ui/gtkcoloreditor.ui:53 +msgid "Pick a color from the screen" +msgstr "Selecte un color del ecran" + +#: gtk/ui/gtkcoloreditor.ui:80 +#, fuzzy +msgid "Hexadecimal color or color name" +msgstr "_Nómine del color:" + +#: gtk/ui/gtkcoloreditor.ui:95 +msgid "Hue" +msgstr "Color" + +#: gtk/ui/gtkcoloreditor.ui:111 +msgid "Alpha value" +msgstr "Valore alfa" + +#: gtk/ui/gtkcoloreditor.ui:129 +msgid "Saturation and value" +msgstr "Saturation e valore" + +#: gtk/ui/gtkcoloreditor.ui:153 +msgctxt "Color channel" +msgid "A" +msgstr "A" + +#: gtk/ui/gtkcoloreditor.ui:189 +msgctxt "Color channel" +msgid "H" +msgstr "H" + +#: gtk/ui/gtkcoloreditor.ui:226 +msgctxt "Color Channel" +msgid "S" +msgstr "S" + +#: gtk/ui/gtkcoloreditor.ui:235 +msgctxt "Color Channel" +msgid "V" +msgstr "V" + +#: gtk/ui/gtkdropdown.ui:19 +msgid "(None)" +msgstr "(Null)" + +#: gtk/ui/gtkdropdown.ui:68 +msgid "Search…" +msgstr "Serchar…" + +#: gtk/ui/gtkemojichooser.ui:69 gtk/ui/gtkemojichooser.ui:239 +msgctxt "emoji category" +msgid "Smileys & People" +msgstr "Smileys a homes" + +#: gtk/ui/gtkemojichooser.ui:94 gtk/ui/gtkemojichooser.ui:248 +msgctxt "emoji category" +msgid "Body & Clothing" +msgstr "Córpor e vestimentes" + +#: gtk/ui/gtkemojichooser.ui:119 gtk/ui/gtkemojichooser.ui:257 +msgctxt "emoji category" +msgid "Animals & Nature" +msgstr "Animales e natura" + +#: gtk/ui/gtkemojichooser.ui:133 gtk/ui/gtkemojichooser.ui:266 +msgctxt "emoji category" +msgid "Food & Drink" +msgstr "Manjage e trinkage" + +#: gtk/ui/gtkemojichooser.ui:147 gtk/ui/gtkemojichooser.ui:275 +msgctxt "emoji category" +msgid "Travel & Places" +msgstr "Locs e turisme" + +#: gtk/ui/gtkemojichooser.ui:161 gtk/ui/gtkemojichooser.ui:284 +msgctxt "emoji category" +msgid "Activities" +msgstr "Activitás" + +#: gtk/ui/gtkemojichooser.ui:175 gtk/ui/gtkemojichooser.ui:293 +msgctxt "emoji category" +msgid "Objects" +msgstr "Objectes" + +#: gtk/ui/gtkemojichooser.ui:189 gtk/ui/gtkemojichooser.ui:302 +msgctxt "emoji category" +msgid "Symbols" +msgstr "Simboles" + +#: gtk/ui/gtkemojichooser.ui:203 gtk/ui/gtkemojichooser.ui:311 +msgctxt "emoji category" +msgid "Flags" +msgstr "Flaggas" + +#: gtk/ui/gtkemojichooser.ui:230 +msgctxt "emoji category" +msgid "Recent" +msgstr "Recentis" + +#: gtk/ui/gtkfilechooserwidget.ui:64 +msgid "Create Folder" +msgstr "Crear un fólder" + +#: gtk/ui/gtkfilechooserwidget.ui:249 +#, fuzzy +msgid "Remote location — only searching the current folder" +msgstr "Serchar solmen li actual fólder" + +#: gtk/ui/gtkfilechooserwidget.ui:378 +msgid "Folder Name" +msgstr "Nómine del fólder" + +#: gtk/ui/gtkfilechooserwidget.ui:404 +msgid "_Create" +msgstr "_Crear" + +#: gtk/ui/gtkfontchooserdialog.ui:4 +msgid "Select Font" +msgstr "Selecter un fonde" + +#: gtk/ui/gtkfontchooserwidget.ui:64 +msgid "Search font name" +msgstr "Serchar un nómine del fonde" + +#: gtk/ui/gtkfontchooserwidget.ui:79 +#, fuzzy +msgid "Filter by" +msgstr "&Filtre…" + +#: gtk/ui/gtkfontchooserwidget.ui:89 +#, fuzzy +msgid "Monospace" +msgstr "Monospacie" + +#: gtk/ui/gtkfontchooserwidget.ui:95 +msgid "Language" +msgstr "Lingue" + +#: gtk/ui/gtkfontchooserwidget.ui:188 gtk/ui/gtkfontchooserwidget.ui:324 +#, fuzzy +msgid "Preview Font" +msgstr "Fonde de previder:" + +#: gtk/ui/gtkfontchooserwidget.ui:191 gtk/ui/gtkfontchooserwidget.ui:220 +msgid "horizontal" +msgstr "horizontal" + +#: gtk/ui/gtkfontchooserwidget.ui:270 +msgid "No Fonts Found" +msgstr "Fondes ne esset trovat" + +#: gtk/ui/gtkpagesetupunixdialog.ui:27 +msgid "_Format for:" +msgstr "_Formatar por:" + +#: gtk/ui/gtkpagesetupunixdialog.ui:51 gtk/ui/gtkprintunixdialog.ui:635 +msgid "_Paper size:" +msgstr "Dimension del _papere:" + +#: gtk/ui/gtkpagesetupunixdialog.ui:86 +msgid "_Orientation:" +msgstr "_Orientation:" + +#: gtk/ui/gtkpagesetupunixdialog.ui:98 gtk/ui/gtkprintunixdialog.ui:675 +msgid "Portrait" +msgstr "Portrete" + +#: gtk/ui/gtkpagesetupunixdialog.ui:109 gtk/ui/gtkprintunixdialog.ui:677 +msgid "Reverse portrait" +msgstr "Reversat portrait" + +#: gtk/ui/gtkpagesetupunixdialog.ui:121 gtk/ui/gtkprintunixdialog.ui:676 +msgid "Landscape" +msgstr "Paisage" + +#: gtk/ui/gtkpagesetupunixdialog.ui:132 gtk/ui/gtkprintunixdialog.ui:678 +msgid "Reverse landscape" +msgstr "Reversat paisage" + +#: gtk/ui/gtkplacesview.ui:28 +#, fuzzy +msgid "Server Addresses" +msgstr "[Adresses]" + +#: gtk/ui/gtkplacesview.ui:40 +msgid "" +"Server addresses are made up of a protocol prefix and an address. Examples:" +msgstr "" + +#: gtk/ui/gtkplacesview.ui:66 +msgid "Available Protocols" +msgstr "Disponibil protocoles" + +#. Translators: Server as any successfully connected network address +#: gtk/ui/gtkplacesview.ui:118 +#, fuzzy +#| msgid "No printer found" +msgid "No recent servers found" +msgstr "Null recent servitores trovat" + +#: gtk/ui/gtkplacesview.ui:141 +msgid "Recent Servers" +msgstr "Recent servitores" + +#: gtk/ui/gtkplacesview.ui:221 +msgid "No results found" +msgstr "Null resultates" + +#: gtk/ui/gtkplacesview.ui:252 +msgid "Connect to _Server" +msgstr "Connexer a _servitore" + +#: gtk/ui/gtkplacesview.ui:277 +#, fuzzy +msgid "Enter server address…" +msgstr "Un nómine o adresse de servitore es mancant." + +#. this is the header for the printer status column in the print dialog +#: gtk/ui/gtkprintunixdialog.ui:145 +msgid "Status" +msgstr "Statu" + +#: gtk/ui/gtkprintunixdialog.ui:199 +msgid "Range" +msgstr "Range" + +#: gtk/ui/gtkprintunixdialog.ui:212 +msgid "_All Pages" +msgstr "_Omni págines" + +#: gtk/ui/gtkprintunixdialog.ui:224 +msgid "C_urrent Page" +msgstr "Act_ual págine" + +#: gtk/ui/gtkprintunixdialog.ui:237 +msgid "Se_lection" +msgstr "Se_lection" + +#: gtk/ui/gtkprintunixdialog.ui:250 +msgid "Pag_es:" +msgstr "Págin_es:" + +#: gtk/ui/gtkprintunixdialog.ui:251 gtk/ui/gtkprintunixdialog.ui:264 +#, fuzzy +#| msgid "" +#| "Specify one or more page ranges,\n" +#| " e.g. 1–3, 7, 11" +msgid "" +"Specify one or more page ranges,\n" +" e.g. 1–3, 7, 11" +msgstr "" +"Provide un o plu ranges de págines,\n" +"p.ex. 1-3, 7, 11" + +#: gtk/ui/gtkprintunixdialog.ui:287 +msgid "Copies" +msgstr "Copies" + +#: gtk/ui/gtkprintunixdialog.ui:302 +msgid "Copie_s:" +msgstr "Copie_s:" + +#: gtk/ui/gtkprintunixdialog.ui:325 +#, fuzzy +msgid "C_ollate" +msgstr ", C" + +#: gtk/ui/gtkprintunixdialog.ui:336 +msgid "_Reverse" +msgstr "_Reversat" + +#: gtk/ui/gtkprintunixdialog.ui:366 +msgid "General" +msgstr "General" + +#: gtk/ui/gtkprintunixdialog.ui:408 +msgid "T_wo-sided:" +msgstr "D_uplic:" + +#: gtk/ui/gtkprintunixdialog.ui:430 +msgid "Pages per _side:" +msgstr "Págines por _látere:" + +#: gtk/ui/gtkprintunixdialog.ui:454 +msgid "Page or_dering:" +msgstr "Ór_dine de pagines:" + +#: gtk/ui/gtkprintunixdialog.ui:477 +msgid "_Only print:" +msgstr "Printar s_olmen:" + +#: gtk/ui/gtkprintunixdialog.ui:493 +msgid "All sheets" +msgstr "Omni folies" + +#: gtk/ui/gtkprintunixdialog.ui:494 +msgid "Even sheets" +msgstr "Pari folies" + +#: gtk/ui/gtkprintunixdialog.ui:495 +msgid "Odd sheets" +msgstr "Ãnpar folies" + +#: gtk/ui/gtkprintunixdialog.ui:509 +msgid "Sc_ale:" +msgstr "Sc_ale:" + +#: gtk/ui/gtkprintunixdialog.ui:554 +msgid "Paper" +msgstr "Papere" + +#: gtk/ui/gtkprintunixdialog.ui:569 +msgid "Paper _type:" +msgstr "_Tip de papere:" + +#: gtk/ui/gtkprintunixdialog.ui:591 +#, fuzzy +msgid "Paper _source:" +msgstr "Papere" + +#: gtk/ui/gtkprintunixdialog.ui:613 +#, fuzzy +msgid "Output t_ray:" +msgstr "Production" + +#: gtk/ui/gtkprintunixdialog.ui:658 +msgid "Or_ientation:" +msgstr "Or_ientation:" + +#: gtk/ui/gtkprintunixdialog.ui:732 +msgid "Job Details" +msgstr "Detallies del tache" + +#: gtk/ui/gtkprintunixdialog.ui:747 +msgid "Pri_ority:" +msgstr "Pri_oritá:" + +#: gtk/ui/gtkprintunixdialog.ui:768 +msgid "_Billing info:" +msgstr "Info de pa_yament…" + +#: gtk/ui/gtkprintunixdialog.ui:801 +msgid "Print Document" +msgstr "Printar document" + +#. this is one of the choices for the print at option in the print dialog +#: gtk/ui/gtkprintunixdialog.ui:814 +msgid "_Now" +msgstr "_Nu" + +#. this is one of the choices for the print at option in the print dialog. It also serves as the label for an entry that allows the user to enter a time. +#: gtk/ui/gtkprintunixdialog.ui:828 +msgid "A_t:" +msgstr "_Ye:" + +#. Ability to parse the am/pm format depends on actual locale. You can remove the am/pm values below for your locale if they are not supported. +#: gtk/ui/gtkprintunixdialog.ui:830 gtk/ui/gtkprintunixdialog.ui:832 +#: gtk/ui/gtkprintunixdialog.ui:848 gtk/ui/gtkprintunixdialog.ui:850 +#, fuzzy +#| msgid "" +#| "Specify the time of print,\n" +#| " e.g. 15∶30, 2∶35 pm, 14∶15∶20, 11∶46∶30 am, 4 pm" +msgid "" +"Specify the time of print,\n" +" e.g. 15∶30, 2∶35 pm, 14∶15∶20, 11∶46∶30 am, 4 pm" +msgstr "" +"Provide li hora de printation,\n" +"p.ex. 15:30, 14:15:20, 4" + +#. this is one of the choices for the print at option in the print dialog. It means that the print job will not be printed until it explicitly gets 'released'. +#: gtk/ui/gtkprintunixdialog.ui:862 +msgid "On _hold" +msgstr "_Detenet" + +#: gtk/ui/gtkprintunixdialog.ui:864 gtk/ui/gtkprintunixdialog.ui:865 +msgid "Hold the job until it is explicitly released" +msgstr "" + +#: gtk/ui/gtkprintunixdialog.ui:892 +#, fuzzy +msgid "Add Cover Page" +msgstr "Adjuncter un marca-págine al actual págine" + +#. this is the label used for the option in the print dialog that controls the front cover page. +#: gtk/ui/gtkprintunixdialog.ui:907 +msgid "Be_fore:" +msgstr "_Ante:" + +#. this is the label used for the option in the print dialog that controls the back cover page. +#: gtk/ui/gtkprintunixdialog.ui:928 +msgid "_After:" +msgstr "_Pos:" + +#: gtk/ui/gtkprintunixdialog.ui:957 +msgid "Job" +msgstr "Tache" + +#. This will appear as a tab label in the print dialog. +#: gtk/ui/gtkprintunixdialog.ui:987 +msgid "Image Quality" +msgstr "Qualitá de image" + +#. This will appear as a tab label in the print dialog. +#: gtk/ui/gtkprintunixdialog.ui:1016 +msgid "Color" +msgstr "Color" + +#. This will appear as a tab label in the print dialog. It's a typographical term, as in "Binding and finishing" +#: gtk/ui/gtkprintunixdialog.ui:1045 +#, fuzzy +msgid "Finishing" +msgstr "Finalisation…" + +#: gtk/ui/gtkprintunixdialog.ui:1074 +msgid "Advanced" +msgstr "Avansates" + +#: gtk/ui/gtkprintunixdialog.ui:1090 +#, fuzzy +msgid "Some of the settings in the dialog conflict" +msgstr "Ne posset crear li dialog de parametres." + +#: modules/media/gtkffmediafile.c:253 +#, fuzzy, c-format +#| msgid "Unspecified error" +msgid "Unspecified error decoding media" +msgstr "Ãnspecificat errore" + +#: modules/media/gtkffmediafile.c:286 +#, fuzzy, c-format +msgid "Cannot find decoder: %s" +msgstr "Ne successat gardar li file «%s»" + +#: modules/media/gtkffmediafile.c:296 modules/media/gtkffmediafile.c:363 +#, fuzzy +msgid "Failed to allocate a codec context" +msgstr "Ne successat codificar li file «{basename}» per li codec «{codec}»" + +#: modules/media/gtkffmediafile.c:341 +#, fuzzy, c-format +msgid "Cannot find encoder: %s" +msgstr "Ne successat gardar li file «%s»" + +#: modules/media/gtkffmediafile.c:352 +#, fuzzy +msgid "Cannot add new stream" +msgstr "Nov fluvie" + +#: modules/media/gtkffmediafile.c:485 modules/media/gtkffmediafile.c:942 +#, fuzzy +#| msgid "Failed to load icon" +msgid "Failed to allocate an audio frame" +msgstr "Filtration de audio ne successat" + +#: modules/media/gtkffmediafile.c:650 modules/media/gtkffmediafile.c:898 +msgid "Not enough memory" +msgstr "Memorie exhaustet" + +#: modules/media/gtkffmediafile.c:821 +#, fuzzy +msgid "Could not allocate resampler context" +msgstr "%s: Anzeigenummer konnte nicht gelesen werden" + +#: modules/media/gtkffmediafile.c:868 +#, fuzzy +#| msgid "No items found" +msgid "No audio output found" +msgstr "Audioexeada WaveOut" + +#: modules/printbackends/gtkprintbackendcups.c:1142 +#: modules/printbackends/gtkprintbackendcups.c:1449 +msgid "Username:" +msgstr "Nómine de usator:" + +#: modules/printbackends/gtkprintbackendcups.c:1143 +#: modules/printbackends/gtkprintbackendcups.c:1458 +msgid "Password:" +msgstr "Contrasigne:" + +#: modules/printbackends/gtkprintbackendcups.c:1181 +#: modules/printbackends/gtkprintbackendcups.c:1471 +#, fuzzy, c-format +msgid "Authentication is required to print document “%s†on printer %s" +msgstr "Printar document" + +#: modules/printbackends/gtkprintbackendcups.c:1183 +#, fuzzy, c-format +msgid "Authentication is required to print a document on %s" +msgstr "Autentication es besonat de %s" + +#: modules/printbackends/gtkprintbackendcups.c:1187 +#, fuzzy, c-format +msgid "Authentication is required to get attributes of job “%sâ€" +msgstr "Printar document" + +#: modules/printbackends/gtkprintbackendcups.c:1189 +msgid "Authentication is required to get attributes of a job" +msgstr "" + +#: modules/printbackends/gtkprintbackendcups.c:1193 +#, c-format +msgid "Authentication is required to get attributes of printer %s" +msgstr "" + +#: modules/printbackends/gtkprintbackendcups.c:1195 +msgid "Authentication is required to get attributes of a printer" +msgstr "" + +#: modules/printbackends/gtkprintbackendcups.c:1198 +#, c-format +msgid "Authentication is required to get default printer of %s" +msgstr "" + +#: modules/printbackends/gtkprintbackendcups.c:1201 +#, c-format +msgid "Authentication is required to get printers from %s" +msgstr "" + +#: modules/printbackends/gtkprintbackendcups.c:1206 +#, c-format +msgid "Authentication is required to get a file from %s" +msgstr "" + +#: modules/printbackends/gtkprintbackendcups.c:1208 +#, fuzzy, c-format +msgid "Authentication is required on %s" +msgstr "Autentication es besonat de %s" + +#: modules/printbackends/gtkprintbackendcups.c:1443 +msgid "Domain:" +msgstr "Dominia:" + +#: modules/printbackends/gtkprintbackendcups.c:1473 +#, c-format +msgid "Authentication is required to print document “%sâ€" +msgstr "Autentication es besonat por printar li document «%s»" + +#: modules/printbackends/gtkprintbackendcups.c:1478 +#, c-format +msgid "Authentication is required to print this document on printer %s" +msgstr "" + +#: modules/printbackends/gtkprintbackendcups.c:1480 +#, fuzzy +msgid "Authentication is required to print this document" +msgstr "Printar document" + +#: modules/printbackends/gtkprintbackendcups.c:2568 +#, fuzzy, c-format +#| msgid "Printer “%s†is out of paper." +msgid "Printer “%s†is low on toner." +msgstr " in li printator «%s»" + +#: modules/printbackends/gtkprintbackendcups.c:2572 +#, c-format +msgid "Printer “%s†has no toner left." +msgstr "Li tóner exhaustet in li printator «%s»." + +#. Translators: "Developer" like on photo development context +#: modules/printbackends/gtkprintbackendcups.c:2577 +#, fuzzy, c-format +#| msgid "Printer “%s†is out of developer." +msgid "Printer “%s†is low on developer." +msgstr " in li printator «%s»" + +#. Translators: "Developer" like on photo development context +#: modules/printbackends/gtkprintbackendcups.c:2582 +#, c-format +msgid "Printer “%s†is out of developer." +msgstr "Printator «%s» manca li developpator." + +#. Translators: "marker" is one color bin of the printer +#: modules/printbackends/gtkprintbackendcups.c:2587 +#, fuzzy, c-format +#| msgid "Printer “%s†is out of paper." +msgid "Printer “%s†is low on at least one marker supply." +msgstr "Printator «%s» manca li papere." + +#. Translators: "marker" is one color bin of the printer +#: modules/printbackends/gtkprintbackendcups.c:2592 +#, fuzzy, c-format +#| msgid "Printer “%s†is out of paper." +msgid "Printer “%s†is out of at least one marker supply." +msgstr "Printator «%s» manca li papere." + +#: modules/printbackends/gtkprintbackendcups.c:2596 +#, c-format +msgid "The cover is open on printer “%sâ€." +msgstr "Li covrette del printator «%s» es apert." + +#: modules/printbackends/gtkprintbackendcups.c:2600 +#, c-format +msgid "The door is open on printer “%sâ€." +msgstr "Li luca del printator «%s» es apert." + +#: modules/printbackends/gtkprintbackendcups.c:2604 +#, fuzzy, c-format +#| msgid "Printer “%s†is out of paper." +msgid "Printer “%s†is low on paper." +msgstr "Papere del printator «%s» exhauste." + +#: modules/printbackends/gtkprintbackendcups.c:2608 +#, c-format +msgid "Printer “%s†is out of paper." +msgstr "Printator «%s» manca li papere." + +#: modules/printbackends/gtkprintbackendcups.c:2612 +#, fuzzy, c-format +#| msgid "Printer “%s†is out of paper." +msgid "Printer “%s†is currently offline." +msgstr "Null driver disponibil por %s." + +#: modules/printbackends/gtkprintbackendcups.c:2616 +#, fuzzy, c-format +#| msgid "There is a problem on printer “%sâ€." +msgid "There is a problem on printer “%sâ€." +msgstr "Printator «%s» have un problema." + +#. Translators: this is a printer status. +#: modules/printbackends/gtkprintbackendcups.c:2636 +#, fuzzy +msgid "Paused; Rejecting Jobs" +msgstr "Taches in funde" + +#. Translators: this is a printer status. +#: modules/printbackends/gtkprintbackendcups.c:2642 +#, fuzzy +msgid "Rejecting Jobs" +msgstr "Taches in funde" + +#. Translators: this string connects multiple printer states together. +#: modules/printbackends/gtkprintbackendcups.c:2683 +msgid "; " +msgstr ", " + +#: modules/printbackends/gtkprintbackendcups.c:4584 +#: modules/printbackends/gtkprintbackendcups.c:4651 +msgctxt "printing option" +msgid "Two Sided" +msgstr "Duplic" + +#: modules/printbackends/gtkprintbackendcups.c:4585 +msgctxt "printing option" +msgid "Paper Type" +msgstr "Tip de papere" + +#: modules/printbackends/gtkprintbackendcups.c:4586 +#, fuzzy +msgctxt "printing option" +msgid "Paper Source" +msgstr "Papere" + +#: modules/printbackends/gtkprintbackendcups.c:4587 +#: modules/printbackends/gtkprintbackendcups.c:4652 +#, fuzzy +msgctxt "printing option" +msgid "Output Tray" +msgstr "Minimisar a panel" + +#: modules/printbackends/gtkprintbackendcups.c:4588 +msgctxt "printing option" +msgid "Resolution" +msgstr "Resolution" + +#: modules/printbackends/gtkprintbackendcups.c:4589 +#, fuzzy +#| msgctxt "printing option" +#| msgid "GhostScript pre-filtering" +msgctxt "printing option" +msgid "GhostScript pre-filtering" +msgstr "Prefiltration de GhostScript" + +#: modules/printbackends/gtkprintbackendcups.c:4598 +#, fuzzy +msgctxt "printing option value" +msgid "One Sided" +msgstr "D_uplic:" + +#. Translators: this is an option of "Two Sided" +#: modules/printbackends/gtkprintbackendcups.c:4600 +msgctxt "printing option value" +msgid "Long Edge (Standard)" +msgstr "Long bord (standard)" + +#. Translators: this is an option of "Two Sided" +#: modules/printbackends/gtkprintbackendcups.c:4602 +#, fuzzy +msgctxt "printing option value" +msgid "Short Edge (Flip)" +msgstr "Bord:" + +#. Translators: this is an option of "Paper Source" +#: modules/printbackends/gtkprintbackendcups.c:4604 +#: modules/printbackends/gtkprintbackendcups.c:4606 +#: modules/printbackends/gtkprintbackendcups.c:4614 +msgctxt "printing option value" +msgid "Auto Select" +msgstr "Autoselecter" + +#. Translators: this is an option of "Paper Source" +#. Translators: this is an option of "Resolution" +#: modules/printbackends/gtkprintbackendcups.c:4608 +#: modules/printbackends/gtkprintbackendcups.c:4610 +#: modules/printbackends/gtkprintbackendcups.c:4612 +#: modules/printbackends/gtkprintbackendcups.c:4616 +#, fuzzy +msgctxt "printing option value" +msgid "Printer Default" +msgstr "Printator predefinit" + +#. Translators: this is an option of "GhostScript" +#: modules/printbackends/gtkprintbackendcups.c:4618 +msgctxt "printing option value" +msgid "Embed GhostScript fonts only" +msgstr "" + +#. Translators: this is an option of "GhostScript" +#: modules/printbackends/gtkprintbackendcups.c:4620 +msgctxt "printing option value" +msgid "Convert to PS level 1" +msgstr "Converter a PS nivelle 1" + +#. Translators: this is an option of "GhostScript" +#: modules/printbackends/gtkprintbackendcups.c:4622 +msgctxt "printing option value" +msgid "Convert to PS level 2" +msgstr "Converter a PS nivelle 2" + +#. Translators: this is an option of "GhostScript" +#: modules/printbackends/gtkprintbackendcups.c:4624 +#, fuzzy +msgctxt "printing option value" +msgid "No pre-filtering" +msgstr "Prefiltration de GhostScript" + +#. Translators: "Miscellaneous" is the label for a button, that opens +#. up an extra panel of settings in a print dialog. +#: modules/printbackends/gtkprintbackendcups.c:4633 +msgctxt "printing option group" +msgid "Miscellaneous" +msgstr "Diversi" + +#: modules/printbackends/gtkprintbackendcups.c:4660 +#, fuzzy +msgctxt "sides" +msgid "One Sided" +msgstr "D_uplic:" + +#. Translators: this is an option of "Two Sided" +#: modules/printbackends/gtkprintbackendcups.c:4662 +#, fuzzy +msgctxt "sides" +msgid "Long Edge (Standard)" +msgstr "Standard" + +#. Translators: this is an option of "Two Sided" +#: modules/printbackends/gtkprintbackendcups.c:4664 +#, fuzzy +msgctxt "sides" +msgid "Short Edge (Flip)" +msgstr "Bord:" + +#. Translators: Top output bin +#: modules/printbackends/gtkprintbackendcups.c:4667 +#, fuzzy +msgctxt "output-bin" +msgid "Top Bin" +msgstr "Bin" + +#. Translators: Middle output bin +#: modules/printbackends/gtkprintbackendcups.c:4669 +#, fuzzy +msgctxt "output-bin" +msgid "Middle Bin" +msgstr "Medial:" + +#. Translators: Bottom output bin +#: modules/printbackends/gtkprintbackendcups.c:4671 +msgctxt "output-bin" +msgid "Bottom Bin" +msgstr "Inferiori trog" + +#. Translators: Side output bin +#: modules/printbackends/gtkprintbackendcups.c:4673 +msgctxt "output-bin" +msgid "Side Bin" +msgstr "Lateral trog" + +#. Translators: Left output bin +#: modules/printbackends/gtkprintbackendcups.c:4675 +msgctxt "output-bin" +msgid "Left Bin" +msgstr "Levul trog" + +#. Translators: Right output bin +#: modules/printbackends/gtkprintbackendcups.c:4677 +msgctxt "output-bin" +msgid "Right Bin" +msgstr "Dextri trog" + +#. Translators: Center output bin +#: modules/printbackends/gtkprintbackendcups.c:4679 +msgctxt "output-bin" +msgid "Center Bin" +msgstr "Central trog" + +#. Translators: Rear output bin +#: modules/printbackends/gtkprintbackendcups.c:4681 +msgctxt "output-bin" +msgid "Rear Bin" +msgstr "Trog posteriori" + +#. Translators: Output bin where one sided output is oriented in the face-up position +#: modules/printbackends/gtkprintbackendcups.c:4683 +#, fuzzy +msgctxt "output-bin" +msgid "Face Up Bin" +msgstr "Bin" + +#. Translators: Output bin where one sided output is oriented in the face-down position +#: modules/printbackends/gtkprintbackendcups.c:4685 +#, fuzzy +msgctxt "output-bin" +msgid "Face Down Bin" +msgstr "Bin" + +#. Translators: Large capacity output bin +#: modules/printbackends/gtkprintbackendcups.c:4687 +msgctxt "output-bin" +msgid "Large Capacity Bin" +msgstr "Trog de alt capacitá" + +#. Translators: Output stacker number %d +#: modules/printbackends/gtkprintbackendcups.c:4709 +#, fuzzy, c-format +msgctxt "output-bin" +msgid "Stacker %d" +msgstr " [%d]" + +#. Translators: Output mailbox number %d +#: modules/printbackends/gtkprintbackendcups.c:4713 +#, c-format +msgctxt "output-bin" +msgid "Mailbox %d" +msgstr "Lettre-bux %d" + +#. Translators: Private mailbox +#: modules/printbackends/gtkprintbackendcups.c:4717 +msgctxt "output-bin" +msgid "My Mailbox" +msgstr "Mi lettre-bux" + +#. Translators: Output tray number %d +#: modules/printbackends/gtkprintbackendcups.c:4721 +#, c-format +msgctxt "output-bin" +msgid "Tray %d" +msgstr "Trog %d" + +#: modules/printbackends/gtkprintbackendcups.c:5198 +msgid "Printer Default" +msgstr "Printator predefinit" + +#. Translators: These strings name the possible values of the +#. * job priority option in the print dialog +#. +#: modules/printbackends/gtkprintbackendcups.c:5642 +msgid "Urgent" +msgstr "Urgent" + +#: modules/printbackends/gtkprintbackendcups.c:5642 +msgid "High" +msgstr "Alt" + +#: modules/printbackends/gtkprintbackendcups.c:5642 +msgid "Medium" +msgstr "Medial" + +#: modules/printbackends/gtkprintbackendcups.c:5642 +msgid "Low" +msgstr "Bass" + +#. Translators, this string is used to label the job priority option +#. * in the print dialog +#. +#: modules/printbackends/gtkprintbackendcups.c:5672 +msgid "Job Priority" +msgstr "Prioritá del tache" + +#. Translators, this string is used to label the billing info entry +#. * in the print dialog +#. +#: modules/printbackends/gtkprintbackendcups.c:5683 +msgid "Billing Info" +msgstr "Info de payament" + +#. Translators, these strings are names for various 'standard' cover +#. * pages that the printing system may support. +#. +#: modules/printbackends/gtkprintbackendcups.c:5707 +msgctxt "cover page" +msgid "None" +msgstr "Null" + +#: modules/printbackends/gtkprintbackendcups.c:5708 +#, fuzzy +#| msgid "Classes" +msgctxt "cover page" +msgid "Classified" +msgstr "Classes" + +#: modules/printbackends/gtkprintbackendcups.c:5709 +msgctxt "cover page" +msgid "Confidential" +msgstr "Confidential" + +#: modules/printbackends/gtkprintbackendcups.c:5710 +msgctxt "cover page" +msgid "Secret" +msgstr "Secret" + +#: modules/printbackends/gtkprintbackendcups.c:5711 +msgctxt "cover page" +msgid "Standard" +msgstr "Standard" + +#: modules/printbackends/gtkprintbackendcups.c:5712 +msgctxt "cover page" +msgid "Top Secret" +msgstr "Ultrasecret" + +#: modules/printbackends/gtkprintbackendcups.c:5713 +#, fuzzy +#| msgid "Classes" +msgctxt "cover page" +msgid "Unclassified" +msgstr "Classes" + +#. Translators, this string is used to label the pages-per-sheet option +#. * in the print dialog +#. +#: modules/printbackends/gtkprintbackendcups.c:5725 +msgctxt "printer option" +msgid "Pages per Sheet" +msgstr "Págines per folie" + +#. Translators, this string is used to label the option in the print +#. * dialog that controls in what order multiple pages are arranged +#. +#: modules/printbackends/gtkprintbackendcups.c:5742 +msgctxt "printer option" +msgid "Page Ordering" +msgstr "Órdine de págines" + +#. Translators, this is the label used for the option in the print +#. * dialog that controls the front cover page. +#. +#: modules/printbackends/gtkprintbackendcups.c:5784 +msgctxt "printer option" +msgid "Before" +msgstr "Ante" + +#. Translators, this is the label used for the option in the print +#. * dialog that controls the back cover page. +#. +#: modules/printbackends/gtkprintbackendcups.c:5799 +msgctxt "printer option" +msgid "After" +msgstr "Pos" + +#. Translators: this is the name of the option that controls when +#. * a print job is printed. Possible values are 'now', a specified time, +#. * or 'on hold' +#. +#: modules/printbackends/gtkprintbackendcups.c:5819 +msgctxt "printer option" +msgid "Print at" +msgstr "Printar ye" + +#. Translators: this is the name of the option that allows the user +#. * to specify a time when a print job will be printed. +#. +#: modules/printbackends/gtkprintbackendcups.c:5830 +msgctxt "printer option" +msgid "Print at time" +msgstr "Printar ye témpor" + +#. Translators: this format is used to display a custom +#. * paper size. The two placeholders are replaced with +#. * the width and height in points. E.g: "Custom +#. * 230.4x142.9" +#. +#: modules/printbackends/gtkprintbackendcups.c:5877 +#, c-format +msgid "Custom %s×%s" +msgstr "Personal %s×%s" + +#. TRANSLATORS: this is the ICC color profile to use for this job +#: modules/printbackends/gtkprintbackendcups.c:5988 +msgctxt "printer option" +msgid "Printer Profile" +msgstr "Profil de printator" + +#. TRANSLATORS: this is when color profile information is unavailable +#: modules/printbackends/gtkprintbackendcups.c:5995 +msgctxt "printer option value" +msgid "Unavailable" +msgstr "Ãndisponibil" + +#: modules/printbackends/gtkprintbackendfile.c:235 +#, fuzzy +msgid "output" +msgstr "production" + +#: modules/printbackends/gtkprintbackendfile.c:507 +msgid "Print to File" +msgstr "Printar a file" + +#: modules/printbackends/gtkprintbackendfile.c:633 +msgid "PDF" +msgstr "PDF" + +#: modules/printbackends/gtkprintbackendfile.c:633 +#| msgid "Postscript" +msgid "PostScript" +msgstr "PostScript" + +#: modules/printbackends/gtkprintbackendfile.c:633 +msgid "SVG" +msgstr "SVG" + +#: modules/printbackends/gtkprintbackendfile.c:646 +msgid "Pages per _sheet:" +msgstr "Págines por f_olie:" + +#: modules/printbackends/gtkprintbackendfile.c:706 +msgid "File" +msgstr "File" + +#: modules/printbackends/gtkprintbackendfile.c:716 +#, fuzzy +msgid "_Output format" +msgstr "Formate de production" + +#: modules/printbackends/gtkprintbackendlpr.c:372 +msgid "Print to LPR" +msgstr "Printar a LPR" + +#: modules/printbackends/gtkprintbackendlpr.c:401 +msgid "Pages Per Sheet" +msgstr "Págines por folie" + +#: modules/printbackends/gtkprintbackendlpr.c:407 +msgid "Command Line" +msgstr "Linea de comandes" + +#. TRANSLATORS: when we're running an old CUPS, and +#. * it hasn't registered the device with colord +#: modules/printbackends/gtkprintercups.c:272 +#, fuzzy +msgid "Color management unavailable" +msgstr "Activar gerentie de color por %s" + +#. TRANSLATORS: when there is no color profile available +#: modules/printbackends/gtkprintercups.c:284 +msgid "No profile available" +msgstr "Null profil disponibil" + +#. TRANSLATORS: when the color profile has no title +#: modules/printbackends/gtkprintercups.c:295 +msgid "Unspecified profile" +msgstr "Ãnspecificat profil" + +#: tools/encodesymbolic.c:41 +msgid "Output to this directory instead of cwd" +msgstr "" + +#: tools/encodesymbolic.c:42 +#, fuzzy +msgid "Generate debug output" +msgstr "&Debug" + +#: tools/encodesymbolic.c:92 +#, c-format +msgid "Invalid size %s\n" +msgstr "Ãnvalid dimension %s\n" + +#: tools/encodesymbolic.c:104 tools/encodesymbolic.c:113 +#, fuzzy, c-format +msgid "Can’t load file: %s\n" +msgstr "File(s) por cargar." + +#: tools/encodesymbolic.c:141 tools/encodesymbolic.c:147 +#, fuzzy, c-format +#| msgid "Can't save file %s: %s\n" +msgid "Can’t save file %s: %s\n" +msgstr "Ne successat gardar li file «%s»." + +#: tools/encodesymbolic.c:153 +#, fuzzy, c-format +msgid "Can’t close stream" +msgstr "Cluder li c_arte" + +#: tools/gtk-builder-tool.c:36 +#, c-format +msgid "" +"Usage:\n" +" gtk-builder-tool [COMMAND] [OPTION…] FILE\n" +"\n" +"Perform various tasks on GtkBuilder .ui files.\n" +"\n" +"Commands:\n" +" validate Validate the file\n" +" simplify Simplify the file\n" +" enumerate List all named objects\n" +" preview Preview the file\n" +" screenshot Take a screenshot of the file\n" +"\n" +msgstr "" + +#: tools/gtk-builder-tool-enumerate.c:54 tools/gtk-builder-tool-preview.c:179 +#: tools/gtk-builder-tool-preview.c:180 tools/gtk-builder-tool-screenshot.c:359 +#: tools/gtk-builder-tool-screenshot.c:362 +#: tools/gtk-builder-tool-simplify.c:2360 tools/gtk-builder-tool-validate.c:159 +msgid "FILE" +msgstr "FILE" + +#: tools/gtk-builder-tool-enumerate.c:62 +#, fuzzy +msgid "List all named objects." +msgstr "" +"Usage:\n" +" gtk-builder-tool [COMANDE] FILE\n" +"\n" +"Commands:\n" +" validate Validar li file\n" +" simplify Simplificar li file\n" +" enumerate Listar omni nominat objectes\n" +" preview [OPTIONES] Previder li file\n" +"\n" +"Optiones de prevision:\n" +" --id=ID Previder solmen li nominat objectes\n" +" --css=FILE Usar li stil ex file CSS\n" +"\n" +"Far divers taches sur files .ui de GtkBuilder.\n" + +#: tools/gtk-builder-tool-preview.c:178 +#, fuzzy +msgid "Preview only the named object" +msgstr "" +"Usage:\n" +" gtk-builder-tool [COMANDE] FILE\n" +"\n" +"Commands:\n" +" validate Validar li file\n" +" simplify Simplificar li file\n" +" enumerate Listar omni nominat objectes\n" +" preview [OPTIONES] Previder li file\n" +"\n" +"Optiones de prevision:\n" +" --id=ID Previder solmen li nominat objectes\n" +" --css=FILE Usar li stil ex file CSS\n" +"\n" +"Far divers taches sur files .ui de GtkBuilder.\n" + +#: tools/gtk-builder-tool-preview.c:179 tools/gtk-builder-tool-screenshot.c:359 +#, fuzzy +msgid "Use style from CSS file" +msgstr "" +"Usage:\n" +" gtk-builder-tool [COMANDE] FILE\n" +"\n" +"Commands:\n" +" validate Validar li file\n" +" simplify Simplificar li file\n" +" enumerate Listar omni nominat objectes\n" +" preview [OPTIONES] Previder li file\n" +"\n" +"Optiones de prevision:\n" +" --id=ID Previder solmen li nominat objectes\n" +" --css=FILE Usar li stil ex file CSS\n" +"\n" +"Far divers taches sur files .ui de GtkBuilder.\n" + +#: tools/gtk-builder-tool-preview.c:195 +#, fuzzy +msgid "Preview the file." +msgstr "Li intern visor ne posse previder ti file." + +#: tools/gtk-builder-tool-screenshot.c:358 +#, fuzzy +msgid "Screenshot only the named object" +msgstr "Un object posse haver solmen un <%s>" + +#: tools/gtk-builder-tool-screenshot.c:360 +#, fuzzy +msgid "Save as node file instead of png" +msgstr "Gardar li captura in un file PNG" + +#: tools/gtk-builder-tool-screenshot.c:361 +#, fuzzy +msgid "Overwrite existing file" +msgstr "" +"Li nómine de file vu ha selectet ja existe.\n" +"Esque vu vole substituer li existent file?\n" +"(Avise: li qualitá del originale posse esser perdit)" + +#: tools/gtk-builder-tool-screenshot.c:377 +#, fuzzy +msgid "Take a screenshot of the file." +msgstr "Capter li tot ecran" + +#: tools/gtk-builder-tool-simplify.c:442 +#, fuzzy, c-format +msgid "%s:%d: Couldn’t parse value for property '%s': %s\n" +msgstr "Ne successat analisar valore alfa \"%s\" in li mixtet color" + +#: tools/gtk-builder-tool-simplify.c:651 +#, fuzzy, c-format +#| msgid "Property %s::%s not found\n" +msgid "%s:%d: %sproperty %s::%s not found\n" +msgstr "Proprietá %s::%s ne es trovat\n" + +#: tools/gtk-builder-tool-simplify.c:2288 +#, fuzzy, c-format +msgid "Can’t load “%sâ€: %s\n" +msgstr "Ne successat cargar %s: %s\n" + +#: tools/gtk-builder-tool-simplify.c:2299 +#: tools/gtk-builder-tool-simplify.c:2305 +#, fuzzy, c-format +msgid "Can’t parse “%sâ€: %s\n" +msgstr "Ne successat analisar li argumentes: %s\n" + +#: tools/gtk-builder-tool-simplify.c:2311 +#, fuzzy, c-format +msgid "Can’t parse “%sâ€\n" +msgstr "Ne successat analisar li contenete de «%s»: %s" + +#: tools/gtk-builder-tool-simplify.c:2335 +#, fuzzy, c-format +msgid "Failed to read “%sâ€: %s\n" +msgstr "" +"Ne successat leer «%s»:\n" +"%s" + +#: tools/gtk-builder-tool-simplify.c:2341 +#, fuzzy, c-format +msgid "Failed to write %s: “%sâ€\n" +msgstr "Ne successat scrir li file %s" + +#: tools/gtk-builder-tool-simplify.c:2358 +#, fuzzy +#| msgid "Recent files" +msgid "Replace the file" +msgstr "" +"Substituer li file de configuration\n" +"«%s»?" + +#: tools/gtk-builder-tool-simplify.c:2359 +msgid "Convert from GTK 3 to GTK 4" +msgstr "Converter ex GTK 3 a GTK 4" + +#: tools/gtk-builder-tool-simplify.c:2370 +msgid "Simplify the file." +msgstr "Simplificar li file." + +#: tools/gtk-builder-tool-simplify.c:2383 +#, c-format +msgid "No .ui file specified\n" +msgstr "Null file .ui es providet\n" + +#: tools/gtk-builder-tool-simplify.c:2389 +#, c-format +msgid "Can only simplify a single .ui file without --replace\n" +msgstr "" + +#: tools/gtk-builder-tool-validate.c:168 +msgid "Validate the file." +msgstr "Validar li file." + +#: tools/gtk-launch.c:40 +msgid "Show program version" +msgstr "Monstra li version del programma" + +#. Translators: this message will appear immediately after the +#. usage string - Usage: COMMAND [OPTION…] <THIS_MESSAGE> +#: tools/gtk-launch.c:72 +#, fuzzy +#| msgid "APPLICATION [URI...] — launch an APPLICATION" +msgid "APPLICATION [URI…] — launch an APPLICATION" +msgstr "APPLICATION [URI…] — startar un APPLICATION" + +#. Translators: this message will appear after the usage string +#. and before the list of options. +#: tools/gtk-launch.c:76 +msgid "" +"Launch an application (specified by its desktop file name),\n" +"optionally passing one or more URIs as arguments." +msgstr "" + +#: tools/gtk-launch.c:86 +#, fuzzy, c-format +msgid "Error parsing commandline options: %s\n" +msgstr "Un error evenit cargante li archive." + +#: tools/gtk-launch.c:88 tools/gtk-launch.c:109 +#, fuzzy, c-format +msgid "Try “%s --help†for more information." +msgstr "Tippa '%s --help' por plu information.\n" + +#. Translators: the %s is the program name. This error message +#. means the user is calling gtk-launch without any argument. +#: tools/gtk-launch.c:107 +#, c-format +msgid "%s: missing application name" +msgstr "%s: nómine de application manca" + +#: tools/gtk-launch.c:136 +#, c-format +msgid "Creating AppInfo from id not supported on non unix operating systems" +msgstr "" + +#. Translators: the first %s is the program name, the second one +#. is the application name. +#: tools/gtk-launch.c:144 +#, fuzzy, c-format +msgid "%s: no such application %s" +msgstr "Null application predefinit trovat por «%s»" + +#. Translators: the first %s is the program name, the second one +#. is the error message. +#: tools/gtk-launch.c:162 +#, fuzzy, c-format +msgid "%s: error launching application: %s\n" +msgstr "Un errore evenit lansante li dialog de preferenties de tastatura: %s" + +#: tools/updateiconcache.c:1391 +#, fuzzy, c-format +msgid "Failed to write header\n" +msgstr "Ne successat scrir li file %s" + +#: tools/updateiconcache.c:1397 +#, fuzzy, c-format +msgid "Failed to write hash table\n" +msgstr "Ne successat scrir li archive." + +#: tools/updateiconcache.c:1403 +#, fuzzy, c-format +msgid "Failed to write folder index\n" +msgstr "Ne successat scrir data de un element: %1" + +#: tools/updateiconcache.c:1411 +#, fuzzy, c-format +msgid "Failed to rewrite header\n" +msgstr "Cap-linea:" + +#: tools/updateiconcache.c:1505 +#, fuzzy, c-format +msgid "Failed to open file %s : %s\n" +msgstr "Ne successat aperter li file «%s»: %s" + +#: tools/updateiconcache.c:1513 tools/updateiconcache.c:1543 +#, fuzzy, c-format +msgid "Failed to write cache file: %s\n" +msgstr "Ne successat scrir li file %s" + +#: tools/updateiconcache.c:1553 +#, c-format +msgid "The generated cache was invalid.\n" +msgstr "Li generat cache esset Ãnvalid.\n" + +#: tools/updateiconcache.c:1567 +#, fuzzy, c-format +msgid "Could not rename %s to %s: %s, removing %s then.\n" +msgstr "Ne successat renominar «%s» a «%s»: %s" + +#: tools/updateiconcache.c:1581 +#, c-format +msgid "Could not rename %s to %s: %s\n" +msgstr "Ne successat renominar %s a %s: %s\n" + +#: tools/updateiconcache.c:1591 +#, fuzzy, c-format +msgid "Could not rename %s back to %s: %s.\n" +msgstr "Ne successat renominar %s a %s: %s\n" + +#: tools/updateiconcache.c:1618 +#, c-format +msgid "Cache file created successfully.\n" +msgstr "Li file de cache har esset creat con success.\n" + +#: tools/updateiconcache.c:1657 +msgid "Overwrite an existing cache, even if up to date" +msgstr "" + +#: tools/updateiconcache.c:1658 +msgid "Don’t check for the existence of index.theme" +msgstr "" + +#: tools/updateiconcache.c:1659 +#, fuzzy +msgid "Don’t include image data in the cache" +msgstr "Data del image" + +#: tools/updateiconcache.c:1660 +#, fuzzy +msgid "Include image data in the cache" +msgstr "includer li cache de icones" + +#: tools/updateiconcache.c:1661 +msgid "Output a C header file" +msgstr "Producter un file de header C" + +#: tools/updateiconcache.c:1662 +#, fuzzy +msgid "Turn off verbose output" +msgstr "Decomutar ti-ci monitor" + +#: tools/updateiconcache.c:1663 +#, fuzzy +msgid "Validate existing icon cache" +msgstr "Vacuar li cache de icones" + +#: tools/updateiconcache.c:1728 +#, c-format +msgid "File not found: %s\n" +msgstr "File ne esset trovat: %s\n" + +#: tools/updateiconcache.c:1734 +#, fuzzy, c-format +msgid "Not a valid icon cache: %s\n" +msgstr "Vacuar li cache de icones" + +#: tools/updateiconcache.c:1747 +#, c-format +msgid "No theme index file.\n" +msgstr "Ãndex-fil de tema manca.\n" + +#: tools/updateiconcache.c:1751 +#, c-format +msgid "" +"No theme index file in “%sâ€.\n" +"If you really want to create an icon cache here, use --ignore-theme-index.\n" +msgstr "" @@ -22,8 +22,8 @@ msgid "" msgstr "" "Project-Id-Version: gtk+.master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gtk/-/issues/\n" -"POT-Creation-Date: 2022-10-30 11:34+0000\n" -"PO-Revision-Date: 2022-10-30 16:26+0300\n" +"POT-Creation-Date: 2022-12-17 12:46+0000\n" +"PO-Revision-Date: 2022-12-17 18:37+0300\n" "Last-Translator: Aleksandr Melman <Alexmelman88@gmail.com>\n" "Language-Team: РуÑÑкий <gnome-cyr@gnome.org>\n" "Language: ru\n" @@ -32,7 +32,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -"X-Generator: Poedit 3.1.1\n" +"X-Generator: Poedit 3.2.2\n" #: gdk/broadway/gdkbroadway-server.c:135 #, c-format @@ -124,12 +124,12 @@ msgstr "ПеретаÑкивание из других приложений не msgid "No compatible formats to transfer contents." msgstr "ОтÑутÑтвие ÑовмеÑтимых форматов Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ´Ð°Ñ‡Ð¸ Ñодержимого." -#: gdk/gdkglcontext.c:394 gdk/x11/gdkglcontext-glx.c:604 +#: gdk/gdkglcontext.c:394 gdk/x11/gdkglcontext-glx.c:610 msgid "No GL API allowed." msgstr "API GL не разрешен." #: gdk/gdkglcontext.c:418 gdk/win32/gdkglcontext-win32-wgl.c:611 -#: gdk/x11/gdkglcontext-glx.c:638 +#: gdk/x11/gdkglcontext-glx.c:644 msgid "Unable to create a GL context" msgstr "Ðевозможно Ñоздать контекÑÑ‚ GL" @@ -539,12 +539,12 @@ msgstr "Режим ожиданиÑ" msgid "Error interpreting JPEG image file (%s)" msgstr "Ошибка интерпретации файла Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ JPEG (%s)" -#: gdk/loaders/gdkjpeg.c:192 +#: gdk/loaders/gdkjpeg.c:194 #, c-format msgid "Unsupported JPEG colorspace (%d)" msgstr "Ðеподдерживаемое цветовое проÑтранÑтво JPEG (%d)" -#: gdk/loaders/gdkjpeg.c:201 gdk/loaders/gdkpng.c:266 gdk/loaders/gdktiff.c:453 +#: gdk/loaders/gdkjpeg.c:203 gdk/loaders/gdkpng.c:266 gdk/loaders/gdktiff.c:453 #, c-format msgid "Not enough memory for image size %ux%u" msgstr "ÐедоÑтаточно памÑти Ð´Ð»Ñ Ñ€Ð°Ð·Ð¼ÐµÑ€Ð° Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ %ux%u" @@ -803,15 +803,15 @@ msgstr "Менеджер буфера обмена не Ñмог ÑÐ¾Ñ…Ñ€Ð°Ð½Ð¸Ñ msgid "Cannot store clipboard. No clipboard manager is active." msgstr "Ðтот буфер обмена не может хранить данные." -#: gdk/x11/gdkglcontext-glx.c:754 +#: gdk/x11/gdkglcontext-glx.c:760 msgid "No GLX configurations available" msgstr "Конфигурации GLX не предлагаютÑÑ" -#: gdk/x11/gdkglcontext-glx.c:827 +#: gdk/x11/gdkglcontext-glx.c:833 msgid "No GLX configuration with required features found" msgstr "ÐšÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ GLX Ñ Ñ‚Ñ€ÐµÐ±ÑƒÐµÐ¼Ñ‹Ð¼Ð¸ функциÑми не найдена" -#: gdk/x11/gdkglcontext-glx.c:901 +#: gdk/x11/gdkglcontext-glx.c:907 msgid "GLX is not supported" msgstr "GLX не поддерживаетÑÑ" @@ -972,11 +972,11 @@ msgid "Could not unescape string" msgstr "Ðе удалоÑÑŒ раÑкрыть Ñтроку" #: gtk/deprecated/gtkappchooserbutton.c:323 -msgid "Other application…" +msgid "Other app…" msgstr "Другое приложение…" #: gtk/deprecated/gtkappchooserdialog.c:210 -#: gtk/deprecated/gtkappchooserdialog.c:261 gtk/ui/gtkappchooserdialog.ui:4 +#: gtk/deprecated/gtkappchooserdialog.c:261 msgid "Select Application" msgstr "Выбрать приложение" @@ -1007,24 +1007,24 @@ msgid "Failed to start GNOME Software" msgstr "Ðе удалоÑÑŒ запуÑтить менеджер приложений GNOME" #: gtk/deprecated/gtkappchooserwidget.c:525 -msgid "Default Application" +msgid "Default App" msgstr "Приложение по умолчанию" #: gtk/deprecated/gtkappchooserwidget.c:575 #, c-format -msgid "No applications found for “%sâ€." +msgid "No apps found for “%sâ€." msgstr "Ðет доÑтупных приложений Ð´Ð»Ñ Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚Ð¸Ñ Â«%s»." #: gtk/deprecated/gtkappchooserwidget.c:658 -msgid "Recommended Applications" +msgid "Recommended Apps" msgstr "Рекомендуемые приложениÑ" #: gtk/deprecated/gtkappchooserwidget.c:673 -msgid "Related Applications" +msgid "Related Apps" msgstr "СвÑзанные приложениÑ" #: gtk/deprecated/gtkappchooserwidget.c:687 -msgid "Other Applications" +msgid "Other Apps" msgstr "Другие приложениÑ" #. This label is displayed in a treeview cell displaying @@ -1061,18 +1061,18 @@ msgid "%d %%" msgstr "%d %%" #: gtk/deprecated/gtkcolorbutton.c:183 gtk/deprecated/gtkcolorbutton.c:311 -#: gtk/gtkcolordialog.c:410 +#: gtk/gtkcolordialog.c:411 msgid "Pick a Color" msgstr "Выбрать цвет" #: gtk/deprecated/gtkcolorbutton.c:502 gtk/gtkcolorchooserwidget.c:312 -#: gtk/gtkcolordialogbutton.c:297 +#: gtk/gtkcolordialogbutton.c:299 #, c-format msgid "Red %d%%, Green %d%%, Blue %d%%, Alpha %d%%" msgstr "КраÑный %d%%, зелёный %d%%, Ñиний %d%%, прозрачноÑÑ‚ÑŒ %d%%" #: gtk/deprecated/gtkcolorbutton.c:508 gtk/gtkcolorchooserwidget.c:318 -#: gtk/gtkcolordialogbutton.c:303 +#: gtk/gtkcolordialogbutton.c:305 #, c-format msgid "Red %d%%, Green %d%%, Blue %d%%" msgstr "КраÑный %d%%, зелёный %d%%, Ñиний %d%%" @@ -1086,16 +1086,20 @@ msgstr "Sans 12" msgid "Pick a Font" msgstr "Выбрать шрифт" -#: gtk/deprecated/gtkfontbutton.c:597 gtk/gtkfilechooserwidget.c:3814 -#: gtk/gtkfontdialogbutton.c:113 gtk/inspector/visual.ui:170 +#: gtk/deprecated/gtkfontbutton.c:597 gtk/gtkfilechooserwidget.c:3853 +#: gtk/gtkfontdialogbutton.c:115 gtk/inspector/visual.ui:170 msgid "Font" msgstr "Шрифт" -#: gtk/deprecated/gtkfontbutton.c:1152 gtk/gtkfontdialogbutton.c:606 +#: gtk/deprecated/gtkfontbutton.c:1152 gtk/gtkfontdialogbutton.c:613 msgctxt "font" msgid "None" msgstr "Ðет" +#: gtk/deprecated/gtkshow.c:176 +msgid "Could not show link" +msgstr "Ðе удалоÑÑŒ показать ÑÑылку" + #: gtk/gtkaboutdialog.c:126 gtk/ui/gtkaboutdialog.ui:163 msgid "License" msgstr "ЛицензиÑ" @@ -1168,35 +1172,35 @@ msgstr "Ð›Ð¸Ñ†ÐµÐ½Ð·Ð¸Ñ Apache, верÑÐ¸Ñ 2.0" msgid "Mozilla Public License 2.0" msgstr "ОбщеÑÑ‚Ð²ÐµÐ½Ð½Ð°Ñ Ð»Ð¸Ñ†ÐµÐ½Ð·Ð¸Ñ Mozilla 2.0" -#: gtk/gtkaboutdialog.c:960 +#: gtk/gtkaboutdialog.c:970 msgid "Website" msgstr "Веб-Ñтраница" -#: gtk/gtkaboutdialog.c:996 gtk/ui/gtkapplication-quartz.ui:6 +#: gtk/gtkaboutdialog.c:1006 gtk/ui/gtkapplication-quartz.ui:6 #, c-format msgid "About %s" msgstr "О программе %s" -#: gtk/gtkaboutdialog.c:2093 +#: gtk/gtkaboutdialog.c:2096 msgid "Created by" msgstr "Ðвтор" -#: gtk/gtkaboutdialog.c:2096 +#: gtk/gtkaboutdialog.c:2099 msgid "Documented by" msgstr "ДокументациÑ" -#: gtk/gtkaboutdialog.c:2106 +#: gtk/gtkaboutdialog.c:2109 msgid "Translated by" msgstr "Перевод" -#: gtk/gtkaboutdialog.c:2111 +#: gtk/gtkaboutdialog.c:2114 msgid "Design by" msgstr "СовмеÑтно Ñ" #. Translators: this is the license preamble; the string at the end #. * contains the name of the license as link text. #. -#: gtk/gtkaboutdialog.c:2276 +#: gtk/gtkaboutdialog.c:2279 #, c-format msgid "" "This program comes with absolutely no warranty.\n" @@ -1680,7 +1684,7 @@ msgctxt "accessibility" msgid "window" msgstr "окно" -#: gtk/gtkalertdialog.c:689 gtk/gtkcustompaperunixdialog.c:328 +#: gtk/gtkalertdialog.c:660 gtk/gtkcustompaperunixdialog.c:328 #: gtk/gtkmessagedialog.c:166 gtk/ui/gtkassistant.ui:40 msgid "_Close" msgstr "_Закрыть" @@ -2040,52 +2044,52 @@ msgid "Margins from Printer…" msgstr "ÐŸÐ¾Ð»Ñ Ð¸Ð· принтера…" #. And show the custom paper dialog -#: gtk/gtkcustompaperunixdialog.c:383 gtk/gtkprintunixdialog.c:3042 +#: gtk/gtkcustompaperunixdialog.c:383 gtk/gtkprintunixdialog.c:3026 msgid "Manage Custom Sizes" msgstr "Управление пользовательÑкими размерами" -#: gtk/gtkcustompaperunixdialog.c:447 gtk/gtkpagesetupunixdialog.c:721 +#: gtk/gtkcustompaperunixdialog.c:446 gtk/gtkpagesetupunixdialog.c:721 msgid "inch" msgstr "дюймы" -#: gtk/gtkcustompaperunixdialog.c:449 gtk/gtkpagesetupunixdialog.c:719 +#: gtk/gtkcustompaperunixdialog.c:448 gtk/gtkpagesetupunixdialog.c:719 msgid "mm" msgstr "мм" -#: gtk/gtkcustompaperunixdialog.c:606 +#: gtk/gtkcustompaperunixdialog.c:604 #, c-format msgid "Custom Size %d" msgstr "ПользовательÑкий размер %d" -#: gtk/gtkcustompaperunixdialog.c:923 +#: gtk/gtkcustompaperunixdialog.c:914 msgid "_Width:" msgstr "_Ширина:" -#: gtk/gtkcustompaperunixdialog.c:934 +#: gtk/gtkcustompaperunixdialog.c:923 msgid "_Height:" msgstr "_Ð’Ñ‹Ñота:" -#: gtk/gtkcustompaperunixdialog.c:945 +#: gtk/gtkcustompaperunixdialog.c:932 msgid "Paper Size" msgstr "Размер бумаги" -#: gtk/gtkcustompaperunixdialog.c:954 +#: gtk/gtkcustompaperunixdialog.c:939 msgid "_Top:" msgstr "_Верхнее:" -#: gtk/gtkcustompaperunixdialog.c:965 +#: gtk/gtkcustompaperunixdialog.c:948 msgid "_Bottom:" msgstr "_Ðижнее:" -#: gtk/gtkcustompaperunixdialog.c:976 +#: gtk/gtkcustompaperunixdialog.c:957 msgid "_Left:" msgstr "_Левое:" -#: gtk/gtkcustompaperunixdialog.c:987 +#: gtk/gtkcustompaperunixdialog.c:966 msgid "_Right:" msgstr "_Правое:" -#: gtk/gtkcustompaperunixdialog.c:1023 +#: gtk/gtkcustompaperunixdialog.c:999 msgid "Paper Margins" msgstr "ÐŸÐ¾Ð»Ñ Ñтраницы" @@ -2093,7 +2097,7 @@ msgstr "ÐŸÐ¾Ð»Ñ Ñтраницы" msgid "Insert Emoji" msgstr "Ð’Ñтавить Emoji" -#: gtk/gtkfilechooserdialog.c:553 +#: gtk/gtkfilechooserdialog.c:552 msgid "_Name" msgstr "_ИмÑ" @@ -2153,29 +2157,29 @@ msgstr "Папка Ñ Ñ‚Ð°ÐºÐ¸Ð¼ именем уже ÑущеÑтвует" msgid "A file with that name already exists" msgstr "Файл Ñ Ñ‚Ð°ÐºÐ¸Ð¼ именем уже ÑущеÑтвует" -#: gtk/gtkfilechoosernative.c:520 gtk/gtkfilechoosernative.c:593 -#: gtk/gtkfilechooserwidget.c:1158 gtk/gtkfilechooserwidget.c:4958 -#: gtk/gtkfiledialog.c:681 gtk/gtkmessagedialog.c:170 +#: gtk/gtkfilechoosernative.c:520 gtk/gtkfilechoosernative.c:600 +#: gtk/gtkfilechooserwidget.c:1168 gtk/gtkfilechooserwidget.c:4997 +#: gtk/gtkfiledialog.c:718 gtk/gtkmessagedialog.c:170 #: gtk/gtkmessagedialog.c:179 gtk/gtkmountoperation.c:608 #: gtk/gtkpagesetupunixdialog.c:283 gtk/gtkprintbackend.c:638 #: gtk/gtkprintunixdialog.c:657 gtk/gtkprintunixdialog.c:814 -#: gtk/gtkwindow.c:6150 gtk/ui/gtkappchooserdialog.ui:45 +#: gtk/gtkwindow.c:6156 gtk/ui/gtkappchooserdialog.ui:45 #: gtk/ui/gtkassistant.ui:52 gtk/ui/gtkcolorchooserdialog.ui:33 #: gtk/ui/gtkfontchooserdialog.ui:24 msgid "_Cancel" msgstr "_Отмена" -#: gtk/gtkfilechoosernative.c:521 gtk/gtkfilechoosernative.c:587 -#: gtk/gtkfiledialog.c:663 gtk/gtkplacessidebar.c:3145 +#: gtk/gtkfilechoosernative.c:521 gtk/gtkfilechoosernative.c:594 +#: gtk/gtkfiledialog.c:690 gtk/gtkplacessidebar.c:3145 #: gtk/gtkplacessidebar.c:3230 gtk/gtkplacesview.c:1645 msgid "_Open" msgstr "_Открыть" -#: gtk/gtkfilechoosernative.c:587 gtk/gtkfiledialog.c:668 +#: gtk/gtkfilechoosernative.c:594 gtk/gtkfiledialog.c:695 msgid "_Save" msgstr "_Сохранить" -#: gtk/gtkfilechoosernativequartz.c:340 gtk/ui/gtkfilechooserwidget.ui:521 +#: gtk/gtkfilechoosernativequartz.c:340 gtk/ui/gtkfilechooserwidget.ui:546 msgid "Select which types of files are shown" msgstr "Выбрать отображаемые типы файлов" @@ -2188,294 +2192,302 @@ msgstr "Выбрать отображаемые типы файлов" msgid "%1$s on %2$s" msgstr "%1$s на %2$s" -#: gtk/gtkfilechooserwidget.c:337 +#: gtk/gtkfilechooserwidget.c:347 msgid "Type name of new folder" msgstr "Введите Ð¸Ð¼Ñ Ð½Ð¾Ð²Ð¾Ð¹ папки" -#: gtk/gtkfilechooserwidget.c:700 +#: gtk/gtkfilechooserwidget.c:710 msgid "The folder could not be created" msgstr "Ðе удалоÑÑŒ Ñоздать папку" -#: gtk/gtkfilechooserwidget.c:713 +#: gtk/gtkfilechooserwidget.c:723 msgid "You need to choose a valid filename." msgstr "Ðеобходимо выбрать корректное Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð°." -#: gtk/gtkfilechooserwidget.c:716 +#: gtk/gtkfilechooserwidget.c:726 #, c-format msgid "Cannot create a file under %s as it is not a folder" msgstr "Ðевозможно Ñоздать файл в %s, так как Ñто не папка" -#: gtk/gtkfilechooserwidget.c:726 +#: gtk/gtkfilechooserwidget.c:736 msgid "Cannot create file as the filename is too long" msgstr "Ðевозможно Ñоздать файл: Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð° Ñлишком длинное" -#: gtk/gtkfilechooserwidget.c:727 +#: gtk/gtkfilechooserwidget.c:737 msgid "Try using a shorter name." msgstr "ИÑпользуйте более короткое имÑ." -#: gtk/gtkfilechooserwidget.c:737 +#: gtk/gtkfilechooserwidget.c:747 msgid "You may only select folders" msgstr "Можно выбирать только папки" -#: gtk/gtkfilechooserwidget.c:738 +#: gtk/gtkfilechooserwidget.c:748 msgid "The item that you selected is not a folder try using a different item." msgstr "Выбранный Ñлемент не ÑвлÑетÑÑ Ð¿Ð°Ð¿ÐºÐ¾Ð¹. Выберите другой Ñлемент." -#: gtk/gtkfilechooserwidget.c:746 +#: gtk/gtkfilechooserwidget.c:756 msgid "Invalid file name" msgstr "ÐедопуÑтимое Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð°" -#: gtk/gtkfilechooserwidget.c:755 +#: gtk/gtkfilechooserwidget.c:765 msgid "The folder contents could not be displayed" msgstr "Ðе удалоÑÑŒ отобразить Ñодержимое папки" -#: gtk/gtkfilechooserwidget.c:763 +#: gtk/gtkfilechooserwidget.c:773 msgid "The file could not be deleted" msgstr "Файл не может быть удалён" -#: gtk/gtkfilechooserwidget.c:771 +#: gtk/gtkfilechooserwidget.c:781 msgid "The file could not be moved to the Trash" msgstr "Файл не может быть перемещён в корзину" -#: gtk/gtkfilechooserwidget.c:1156 +#: gtk/gtkfilechooserwidget.c:1166 #, c-format msgid "Are you sure you want to permanently delete “%sâ€?" msgstr "Уверены что хотите безвозвратно удалить «%s»?" -#: gtk/gtkfilechooserwidget.c:1157 +#: gtk/gtkfilechooserwidget.c:1167 msgid "If you delete an item, it will be permanently lost." msgstr "ЕÑли вы удалите Ñлемент, он будет навÑегда утерÑн." -#: gtk/gtkfilechooserwidget.c:1158 gtk/gtkfilechooserwidget.c:1754 -#: gtk/gtklabel.c:5655 gtk/gtktext.c:6060 gtk/gtktextview.c:8965 +#: gtk/gtkfilechooserwidget.c:1168 gtk/gtkfilechooserwidget.c:1793 +#: gtk/gtklabel.c:5661 gtk/gtktext.c:6087 gtk/gtktextview.c:8997 msgid "_Delete" msgstr "_Удалить" -#: gtk/gtkfilechooserwidget.c:1271 +#: gtk/gtkfilechooserwidget.c:1281 msgid "The file could not be renamed" msgstr "Файл не может быть переименован" -#: gtk/gtkfilechooserwidget.c:1531 +#: gtk/gtkfilechooserwidget.c:1487 msgid "Could not select file" msgstr "Ðе удалоÑÑŒ выделить файл" -#: gtk/gtkfilechooserwidget.c:1734 +#: gtk/gtkfilechooserwidget.c:1702 gtk/ui/gtkfilechooserwidget.ui:66 +msgid "Switch to grid view" +msgstr "ПереключитьÑÑ Ð½Ð° вид Ñеткой" + +#: gtk/gtkfilechooserwidget.c:1708 +msgid "Switch to list view" +msgstr "ПереключитьÑÑ Ð½Ð° вид ÑпиÑком" + +#: gtk/gtkfilechooserwidget.c:1773 msgid "_Visit File" msgstr "_Перейти к файлу" -#: gtk/gtkfilechooserwidget.c:1738 +#: gtk/gtkfilechooserwidget.c:1777 msgid "_Open With File Manager" msgstr "_Открыть в файловом менеджере" -#: gtk/gtkfilechooserwidget.c:1742 +#: gtk/gtkfilechooserwidget.c:1781 msgid "_Copy Location" msgstr "Копировать _адреÑ" -#: gtk/gtkfilechooserwidget.c:1746 +#: gtk/gtkfilechooserwidget.c:1785 msgid "_Add to Bookmarks" msgstr "_Добавить в закладки" -#: gtk/gtkfilechooserwidget.c:1750 gtk/gtkplacessidebar.c:2309 -#: gtk/gtkplacessidebar.c:3266 gtk/ui/gtkfilechooserwidget.ui:640 +#: gtk/gtkfilechooserwidget.c:1789 gtk/gtkplacessidebar.c:2309 +#: gtk/gtkplacessidebar.c:3266 gtk/ui/gtkfilechooserwidget.ui:665 msgid "_Rename" msgstr "_Переименовать" -#: gtk/gtkfilechooserwidget.c:1758 +#: gtk/gtkfilechooserwidget.c:1797 msgid "_Move to Trash" msgstr "П_еремеÑтить в корзину" -#: gtk/gtkfilechooserwidget.c:1767 +#: gtk/gtkfilechooserwidget.c:1806 msgid "Show _Hidden Files" msgstr "Показывать _Ñкрытые файлы" -#: gtk/gtkfilechooserwidget.c:1771 +#: gtk/gtkfilechooserwidget.c:1810 msgid "Show _Size Column" msgstr "Показывать _размер" -#: gtk/gtkfilechooserwidget.c:1775 +#: gtk/gtkfilechooserwidget.c:1815 msgid "Show T_ype Column" msgstr "Показать колонку _типа" -#: gtk/gtkfilechooserwidget.c:1779 +#: gtk/gtkfilechooserwidget.c:1820 msgid "Show _Time" msgstr "Показывать _времÑ" -#: gtk/gtkfilechooserwidget.c:1783 +#: gtk/gtkfilechooserwidget.c:1825 msgid "Sort _Folders Before Files" msgstr "Сортировать _папки перед файлами" -#: gtk/gtkfilechooserwidget.c:1913 gtk/gtkfilechooserwidget.c:1949 -#: gtk/gtkfilechooserwidget.c:3857 +#: gtk/gtkfilechooserwidget.c:1959 gtk/gtkfilechooserwidget.c:1995 +#: gtk/gtkfilechooserwidget.c:3896 msgid "Unknown" msgstr "ÐеизвеÑтен" -#: gtk/gtkfilechooserwidget.c:2007 gtk/gtkplacessidebar.c:1026 +#: gtk/gtkfilechooserwidget.c:2053 gtk/gtkplacessidebar.c:1026 msgid "Home" msgstr "ДомашнÑÑ Ð¿Ð°Ð¿ÐºÐ°" #. this is the header for the location column in the print dialog -#: gtk/gtkfilechooserwidget.c:2183 gtk/inspector/css-node-tree.ui:76 -#: gtk/ui/gtkfilechooserwidget.ui:213 gtk/ui/gtkprintunixdialog.ui:114 +#: gtk/gtkfilechooserwidget.c:2220 gtk/inspector/css-node-tree.ui:76 +#: gtk/ui/gtkfilechooserwidget.ui:238 gtk/ui/gtkprintunixdialog.ui:114 msgid "Location" msgstr "РаÑположение" #. Label -#: gtk/gtkfilechooserwidget.c:2290 +#: gtk/gtkfilechooserwidget.c:2327 msgid "_Name:" msgstr "_ИмÑ:" -#: gtk/gtkfilechooserwidget.c:2833 gtk/gtkfilechooserwidget.c:2847 +#: gtk/gtkfilechooserwidget.c:2867 gtk/gtkfilechooserwidget.c:2881 #, c-format msgid "Searching in %s" msgstr "ПоиÑк в %s" -#: gtk/gtkfilechooserwidget.c:2853 +#: gtk/gtkfilechooserwidget.c:2887 msgid "Searching" msgstr "ПоиÑк" -#: gtk/gtkfilechooserwidget.c:2859 +#: gtk/gtkfilechooserwidget.c:2893 msgid "Enter location or URL" msgstr "Введите раÑположение или URL" -#: gtk/gtkfilechooserwidget.c:3420 gtk/gtkfilechooserwidget.c:5743 -#: gtk/ui/gtkfilechooserwidget.ui:358 +#: gtk/gtkfilechooserwidget.c:3459 gtk/gtkfilechooserwidget.c:5782 +#: gtk/ui/gtkfilechooserwidget.ui:383 msgid "Modified" msgstr "Изменён" -#: gtk/gtkfilechooserwidget.c:3601 +#: gtk/gtkfilechooserwidget.c:3640 #, c-format msgid "Could not read the contents of %s" msgstr "Ðе удалоÑÑŒ прочитать Ñодержимое %s" -#: gtk/gtkfilechooserwidget.c:3605 +#: gtk/gtkfilechooserwidget.c:3644 msgid "Could not read the contents of the folder" msgstr "Ðе удалоÑÑŒ прочитать Ñодержимое папки" #. Translators: see g_date_time_format() for details on the format -#: gtk/gtkfilechooserwidget.c:3752 gtk/gtkfilechooserwidget.c:3795 +#: gtk/gtkfilechooserwidget.c:3791 gtk/gtkfilechooserwidget.c:3834 msgid "%H:%M" msgstr "%H:%M" -#: gtk/gtkfilechooserwidget.c:3754 gtk/gtkfilechooserwidget.c:3797 +#: gtk/gtkfilechooserwidget.c:3793 gtk/gtkfilechooserwidget.c:3836 msgid "%l:%M %p" msgstr "%l:%M %p" -#: gtk/gtkfilechooserwidget.c:3758 +#: gtk/gtkfilechooserwidget.c:3797 msgid "Yesterday" msgstr "Вчера" # полное название меÑÑца -#: gtk/gtkfilechooserwidget.c:3766 +#: gtk/gtkfilechooserwidget.c:3805 msgid "%-e %b" msgstr "%-e %B" # полное название меÑÑца -#: gtk/gtkfilechooserwidget.c:3770 +#: gtk/gtkfilechooserwidget.c:3809 msgid "%-e %b %Y" msgstr "%-e %B %Y" -#: gtk/gtkfilechooserwidget.c:3812 gtk/gtkfilechooserwidget.c:3820 +#: gtk/gtkfilechooserwidget.c:3851 gtk/gtkfilechooserwidget.c:3859 msgid "Program" msgstr "Программа" -#: gtk/gtkfilechooserwidget.c:3813 +#: gtk/gtkfilechooserwidget.c:3852 msgid "Audio" msgstr "Ðудио" -#: gtk/gtkfilechooserwidget.c:3815 +#: gtk/gtkfilechooserwidget.c:3854 msgid "Image" msgstr "Изображение" -#: gtk/gtkfilechooserwidget.c:3816 +#: gtk/gtkfilechooserwidget.c:3855 msgid "Archive" msgstr "Ðрхивировать" -#: gtk/gtkfilechooserwidget.c:3817 +#: gtk/gtkfilechooserwidget.c:3856 msgid "Markup" msgstr "Разметка" -#: gtk/gtkfilechooserwidget.c:3818 gtk/gtkfilechooserwidget.c:3819 +#: gtk/gtkfilechooserwidget.c:3857 gtk/gtkfilechooserwidget.c:3858 msgid "Text" msgstr "ТекÑÑ‚" -#: gtk/gtkfilechooserwidget.c:3821 +#: gtk/gtkfilechooserwidget.c:3860 msgid "Video" msgstr "Видео" -#: gtk/gtkfilechooserwidget.c:3822 +#: gtk/gtkfilechooserwidget.c:3861 msgid "Contacts" msgstr "Контакты" -#: gtk/gtkfilechooserwidget.c:3823 +#: gtk/gtkfilechooserwidget.c:3862 msgid "Calendar" msgstr "Календарь" -#: gtk/gtkfilechooserwidget.c:3824 +#: gtk/gtkfilechooserwidget.c:3863 msgid "Document" msgstr "Документ" -#: gtk/gtkfilechooserwidget.c:3825 +#: gtk/gtkfilechooserwidget.c:3864 msgid "Presentation" msgstr "ПрезентациÑ" -#: gtk/gtkfilechooserwidget.c:3826 +#: gtk/gtkfilechooserwidget.c:3865 msgid "Spreadsheet" msgstr "Таблица" -#: gtk/gtkfilechooserwidget.c:4950 gtk/gtkprintunixdialog.c:648 +#: gtk/gtkfilechooserwidget.c:4989 gtk/gtkprintunixdialog.c:648 #, c-format msgid "A file named “%s†already exists. Do you want to replace it?" msgstr "Файл Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ «%s» уже ÑущеÑтвует. Заменить его?" -#: gtk/gtkfilechooserwidget.c:4952 gtk/gtkprintunixdialog.c:652 +#: gtk/gtkfilechooserwidget.c:4991 gtk/gtkprintunixdialog.c:652 #, c-format msgid "" "The file already exists in “%sâ€. Replacing it will overwrite its contents." msgstr "" "Файл уже ÑущеÑтвует в «%s». Его замена приведёт к перезапиÑи Ñодержимого." -#: gtk/gtkfilechooserwidget.c:4958 gtk/gtkprintunixdialog.c:660 +#: gtk/gtkfilechooserwidget.c:4997 gtk/gtkprintunixdialog.c:660 msgid "_Replace" msgstr "_Заменить" -#: gtk/gtkfilechooserwidget.c:5113 +#: gtk/gtkfilechooserwidget.c:5152 msgid "You do not have access to the specified folder." msgstr "У Ð²Ð°Ñ Ð½ÐµÑ‚ доÑтупа к указанной папке." -#: gtk/gtkfilechooserwidget.c:5690 +#: gtk/gtkfilechooserwidget.c:5729 msgid "Could not send the search request" msgstr "Ðе удалоÑÑŒ поÑлать Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð½Ð° поиÑк" -#: gtk/gtkfilechooserwidget.c:5966 +#: gtk/gtkfilechooserwidget.c:6005 msgid "Accessed" msgstr "ДоÑтуп" -#: gtk/gtkfiledialog.c:664 +#: gtk/gtkfiledialog.c:691 msgid "Pick Files" msgstr "Выбрать файлы" -#: gtk/gtkfiledialog.c:664 +#: gtk/gtkfiledialog.c:691 msgid "Pick a File" msgstr "Выбрать файл" -#: gtk/gtkfiledialog.c:669 +#: gtk/gtkfiledialog.c:696 msgid "Save a File" msgstr "Сохранить файл" -#: gtk/gtkfiledialog.c:673 gtk/ui/gtkappchooserdialog.ui:50 +#: gtk/gtkfiledialog.c:700 gtk/ui/gtkappchooserdialog.ui:50 #: gtk/ui/gtkcolorchooserdialog.ui:38 gtk/ui/gtkfontchooserdialog.ui:29 msgid "_Select" msgstr "_Выбрать" -#: gtk/gtkfiledialog.c:674 +#: gtk/gtkfiledialog.c:701 msgid "Select Folders" msgstr "Выбрать папки" -#: gtk/gtkfiledialog.c:674 +#: gtk/gtkfiledialog.c:701 msgid "Select a Folder" msgstr "Выбрать папку" -#: gtk/gtkfontchooserdialog.c:188 +#: gtk/gtkfontchooserdialog.c:187 msgid "Change Font Features" msgstr "Изменение характериÑтик шрифта" @@ -2551,27 +2563,27 @@ msgstr "Вариации Ñимволов" msgid "OpenGL context creation failed" msgstr "Ðе удалоÑÑŒ Ñоздать контекÑÑ‚ OpenGL" -#: gtk/gtklabel.c:5652 gtk/gtktext.c:6048 gtk/gtktextview.c:8953 +#: gtk/gtklabel.c:5658 gtk/gtktext.c:6075 gtk/gtktextview.c:8985 msgid "Cu_t" msgstr "Ð’_ырезать" -#: gtk/gtklabel.c:5653 gtk/gtktext.c:6052 gtk/gtktextview.c:8957 +#: gtk/gtklabel.c:5659 gtk/gtktext.c:6079 gtk/gtktextview.c:8989 msgid "_Copy" msgstr "_Копировать" -#: gtk/gtklabel.c:5654 gtk/gtktext.c:6056 gtk/gtktextview.c:8961 +#: gtk/gtklabel.c:5660 gtk/gtktext.c:6083 gtk/gtktextview.c:8993 msgid "_Paste" msgstr "Ð’ÑÑ‚_авить" -#: gtk/gtklabel.c:5660 gtk/gtktext.c:6069 gtk/gtktextview.c:8986 +#: gtk/gtklabel.c:5666 gtk/gtktext.c:6096 gtk/gtktextview.c:9018 msgid "Select _All" msgstr "Выделить вÑ_Ñ‘" -#: gtk/gtklabel.c:5665 +#: gtk/gtklabel.c:5671 msgid "_Open Link" msgstr "_Открыть ÑÑылку" -#: gtk/gtklabel.c:5669 +#: gtk/gtklabel.c:5675 msgid "Copy _Link Address" msgstr "_Скопировать Ð°Ð´Ñ€ÐµÑ ÑÑылки" @@ -2579,7 +2591,7 @@ msgstr "_Скопировать Ð°Ð´Ñ€ÐµÑ ÑÑылки" msgid "_Copy URL" msgstr "_Копировать URL" -#: gtk/gtklinkbutton.c:540 +#: gtk/gtklinkbutton.c:547 msgid "Invalid URI" msgstr "Ðеверный URI" @@ -2620,7 +2632,7 @@ msgstr "" #. * Do *not* translate it to "predefinito:LTR", if it #. * it isn't default:LTR or default:RTL it will not work #. -#: gtk/gtkmain.c:788 +#: gtk/gtkmain.c:789 msgid "default:LTR" msgstr "default:LTR" @@ -2673,7 +2685,7 @@ msgid "%d:%02d" msgstr "%d:%02d" #: gtk/gtkmessagedialog.c:162 gtk/gtkmessagedialog.c:180 -#: gtk/gtkprintbackend.c:639 gtk/gtkwindow.c:6151 +#: gtk/gtkprintbackend.c:639 gtk/gtkwindow.c:6157 msgid "_OK" msgstr "_OK" @@ -2752,6 +2764,7 @@ msgstr "ÐеизвеÑтное приложение (PID %d)" #. * the dialog... #. #: gtk/gtkmountoperation.c:1396 +#, c-format msgid "Unable to end process" msgstr "Ðе удаётÑÑ Ð·Ð°Ð²ÐµÑ€ÑˆÐ¸Ñ‚ÑŒ процеÑÑ" @@ -2810,7 +2823,7 @@ msgstr "Ð¡Ð»ÐµÐ´ÑƒÑŽÑ‰Ð°Ñ Ð²ÐºÐ»Ð°Ð´ÐºÐ°" msgid "Tab" msgstr "Tab" -#: gtk/gtknotebook.c:4335 gtk/gtknotebook.c:6543 +#: gtk/gtknotebook.c:4333 gtk/gtknotebook.c:6539 #, c-format msgid "Page %u" msgstr "Страница %u" @@ -2855,19 +2868,19 @@ msgstr "" msgid "Page Setup" msgstr "ÐаÑтройка Ñтраницы" -#: gtk/gtkpasswordentry.c:173 +#: gtk/gtkpasswordentry.c:170 msgid "Hide Text" msgstr "Скрыть текÑÑ‚" -#: gtk/gtkpasswordentry.c:178 gtk/gtkpasswordentry.c:622 +#: gtk/gtkpasswordentry.c:175 gtk/gtkpasswordentry.c:619 msgid "Show Text" msgstr "Показать текÑÑ‚" -#: gtk/gtkpasswordentry.c:217 +#: gtk/gtkpasswordentry.c:214 msgid "Caps Lock is on" msgstr "Включён режим Caps Lock" -#: gtk/gtkpasswordentry.c:698 +#: gtk/gtkpasswordentry.c:695 msgid "_Show Text" msgstr "_Показать текÑÑ‚" @@ -2971,7 +2984,7 @@ msgstr "Ðто Ð¸Ð¼Ñ ÑƒÐ¶Ðµ занÑто" #: gtk/gtkplacessidebar.c:2303 gtk/inspector/actions.ui:19 #: gtk/inspector/css-node-tree.ui:22 gtk/inspector/prop-list.ui:24 -#: gtk/ui/gtkfilechooserwidget.ui:151 gtk/ui/gtkfilechooserwidget.ui:615 +#: gtk/ui/gtkfilechooserwidget.ui:176 gtk/ui/gtkfilechooserwidget.ui:640 #: gtk/ui/gtkprintunixdialog.ui:83 msgid "Name" msgstr "ИмÑ" @@ -3288,11 +3301,11 @@ msgstr "Ðаиболее вероÑÑ‚Ð½Ð°Ñ Ð¿Ñ€Ð¸Ñ‡Ð¸Ð½Ð°: не удалоÑÑŒ #. window #: gtk/gtkprintoperation-portal.c:236 gtk/gtkprintoperation-portal.c:554 -#: gtk/gtkprintoperation-portal.c:623 gtk/gtkprintunixdialog.c:3082 +#: gtk/gtkprintoperation-portal.c:623 gtk/gtkprintunixdialog.c:3066 msgid "Print" msgstr "Печать" -#: gtk/gtkprintoperation-unix.c:478 gtk/gtkprintoperation-win32.c:1504 +#: gtk/gtkprintoperation-unix.c:481 gtk/gtkprintoperation-win32.c:1504 msgid "Application" msgstr "Приложение" @@ -3306,7 +3319,7 @@ msgstr "Ðет бумаги" #. Translators: this is a printer status. #: gtk/gtkprintoperation-win32.c:639 -#: modules/printbackends/gtkprintbackendcups.c:2639 +#: modules/printbackends/gtkprintbackendcups.c:2638 msgid "Paused" msgstr "ПриоÑтановлено" @@ -3363,7 +3376,7 @@ msgstr "Пе_чать" msgid "Getting printer information failed" msgstr "Ðе удалоÑÑŒ получить информацию о принтере" -#: gtk/gtkprintunixdialog.c:1882 +#: gtk/gtkprintunixdialog.c:1866 msgid "Getting printer information…" msgstr "Получение информации о принтере…" @@ -3373,63 +3386,63 @@ msgstr "Получение информации о принтере…" #. Translators: These strings name the possible arrangements of #. * multiple pages on a sheet when printing #. -#: gtk/gtkprintunixdialog.c:2827 -#: modules/printbackends/gtkprintbackendcups.c:5647 +#: gtk/gtkprintunixdialog.c:2811 +#: modules/printbackends/gtkprintbackendcups.c:5646 msgid "Left to right, top to bottom" msgstr "Слева направо, Ñверху вниз" -#: gtk/gtkprintunixdialog.c:2827 -#: modules/printbackends/gtkprintbackendcups.c:5647 +#: gtk/gtkprintunixdialog.c:2811 +#: modules/printbackends/gtkprintbackendcups.c:5646 msgid "Left to right, bottom to top" msgstr "Слева направо, Ñнизу вверх" -#: gtk/gtkprintunixdialog.c:2828 -#: modules/printbackends/gtkprintbackendcups.c:5648 +#: gtk/gtkprintunixdialog.c:2812 +#: modules/printbackends/gtkprintbackendcups.c:5647 msgid "Right to left, top to bottom" msgstr "Справа налево, Ñверху вниз" -#: gtk/gtkprintunixdialog.c:2828 -#: modules/printbackends/gtkprintbackendcups.c:5648 +#: gtk/gtkprintunixdialog.c:2812 +#: modules/printbackends/gtkprintbackendcups.c:5647 msgid "Right to left, bottom to top" msgstr "Справа налево, Ñнизу вверх" -#: gtk/gtkprintunixdialog.c:2829 -#: modules/printbackends/gtkprintbackendcups.c:5649 +#: gtk/gtkprintunixdialog.c:2813 +#: modules/printbackends/gtkprintbackendcups.c:5648 msgid "Top to bottom, left to right" msgstr "Сверху вниз, Ñлева направо" -#: gtk/gtkprintunixdialog.c:2829 -#: modules/printbackends/gtkprintbackendcups.c:5649 +#: gtk/gtkprintunixdialog.c:2813 +#: modules/printbackends/gtkprintbackendcups.c:5648 msgid "Top to bottom, right to left" msgstr "Сверху вниз, Ñправа налево" -#: gtk/gtkprintunixdialog.c:2830 -#: modules/printbackends/gtkprintbackendcups.c:5650 +#: gtk/gtkprintunixdialog.c:2814 +#: modules/printbackends/gtkprintbackendcups.c:5649 msgid "Bottom to top, left to right" msgstr "Снизу вверх, Ñлева направо" -#: gtk/gtkprintunixdialog.c:2830 -#: modules/printbackends/gtkprintbackendcups.c:5650 +#: gtk/gtkprintunixdialog.c:2814 +#: modules/printbackends/gtkprintbackendcups.c:5649 msgid "Bottom to top, right to left" msgstr "Снизу вверх, Ñправа налево" -#: gtk/gtkprintunixdialog.c:2834 gtk/gtkprintunixdialog.c:2847 +#: gtk/gtkprintunixdialog.c:2818 gtk/gtkprintunixdialog.c:2831 msgid "Page Ordering" msgstr "ПорÑдок Ñтраниц" -#: gtk/gtkprintunixdialog.c:2863 +#: gtk/gtkprintunixdialog.c:2847 msgid "Left to right" msgstr "Слева направо" -#: gtk/gtkprintunixdialog.c:2864 +#: gtk/gtkprintunixdialog.c:2848 msgid "Right to left" msgstr "Справа налево" -#: gtk/gtkprintunixdialog.c:2876 +#: gtk/gtkprintunixdialog.c:2860 msgid "Top to bottom" msgstr "Сверху вниз" -#: gtk/gtkprintunixdialog.c:2877 +#: gtk/gtkprintunixdialog.c:2861 msgid "Bottom to top" msgstr "Снизу вверх" @@ -3534,37 +3547,33 @@ msgid "Search Shortcuts" msgstr "ПоиÑк Ñрлыков" #: gtk/gtkshortcutswindow.c:968 gtk/ui/gtkemojichooser.ui:349 -#: gtk/ui/gtkfilechooserwidget.ui:472 +#: gtk/ui/gtkfilechooserwidget.ui:497 msgid "No Results Found" msgstr "Результатов не найдено" #: gtk/gtkshortcutswindow.c:974 gtk/ui/gtkemojichooser.ui:362 -#: gtk/ui/gtkfilechooserwidget.ui:485 gtk/ui/gtkplacesview.ui:218 +#: gtk/ui/gtkfilechooserwidget.ui:510 gtk/ui/gtkplacesview.ui:218 msgid "Try a different search" msgstr "Попробуйте другой поиÑковый запроÑ" -#: gtk/gtkshow.c:170 -msgid "Could not show link" -msgstr "Ðе удалоÑÑŒ показать ÑÑылку" - #: gtk/gtkstacksidebar.c:154 msgctxt "accessibility" msgid "Sidebar" msgstr "Ð‘Ð¾ÐºÐ¾Ð²Ð°Ñ Ð¿Ð°Ð½ÐµÐ»ÑŒ" -#: gtk/gtktext.c:6074 gtk/gtktextview.c:8991 +#: gtk/gtktext.c:6101 gtk/gtktextview.c:9023 msgid "Insert _Emoji" msgstr "Ð’Ñтавить _Emoji" -#: gtk/gtktextview.c:8973 +#: gtk/gtktextview.c:9005 msgid "_Undo" msgstr "_Отменить" -#: gtk/gtktextview.c:8977 +#: gtk/gtktextview.c:9009 msgid "_Redo" msgstr "Ве_рнуть" -#: gtk/gtktreeexpander.c:205 gtk/inspector/misc-info.ui:287 +#: gtk/gtktreeexpander.c:189 gtk/inspector/misc-info.ui:287 msgid "Expand" msgstr "Развернуть" @@ -3587,12 +3596,12 @@ msgctxt "volume percentage" msgid "%d %%" msgstr "%d %%" -#: gtk/gtkwindow.c:6138 +#: gtk/gtkwindow.c:6145 #, c-format msgid "Do you want to use GTK Inspector?" msgstr "Ð’Ñ‹ хотите иÑпользовать GTK Inspector?" -#: gtk/gtkwindow.c:6140 +#: gtk/gtkwindow.c:6147 #, c-format msgid "" "GTK Inspector is an interactive debugger that lets you explore and modify " @@ -3603,7 +3612,7 @@ msgstr "" "изменÑÑ‚ÑŒ внутренние компоненты любого GTK-приложениÑ. Его иÑпользование " "может привеÑти к поломке или аварийному завершению работы приложениÑ." -#: gtk/gtkwindow.c:6145 +#: gtk/gtkwindow.c:6152 msgid "Don’t show this message again" msgstr "Ðе показывать Ñто Ñообщение Ñнова" @@ -3649,7 +3658,7 @@ msgstr "Ðтрибут" #: gtk/inspector/a11y.ui:84 gtk/inspector/css-node-tree.ui:70 #: gtk/inspector/prop-list.ui:57 gtk/inspector/recorder.ui:149 -#: gtk/inspector/recorder.ui:192 gtk/inspector/strv-editor.c:74 +#: gtk/inspector/recorder.ui:192 gtk/inspector/strv-editor.c:73 msgid "Value" msgstr "Значение" @@ -3752,6 +3761,7 @@ msgid "Changes are applied instantly and globally, for the whole application." msgstr "Ð˜Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð²ÑтупÑÑ‚ в Ñилу немедленно Ð´Ð»Ñ Ð²Ñего приложениÑ." #: gtk/inspector/css-editor.c:206 +#, c-format msgid "Saving CSS failed" msgstr "Сбой при Ñохранении CSS" @@ -3914,7 +3924,7 @@ msgid "Address" msgstr "ÐдреÑ" #: gtk/inspector/misc-info.ui:62 gtk/inspector/prop-list.ui:35 -#: gtk/inspector/statistics.ui:36 gtk/ui/gtkfilechooserwidget.ui:311 +#: gtk/inspector/statistics.ui:36 gtk/ui/gtkfilechooserwidget.ui:336 msgid "Type" msgstr "Тип" @@ -3955,8 +3965,8 @@ msgid "Surface" msgstr "ПоверхноÑÑ‚ÑŒ" #: gtk/inspector/misc-info.ui:415 gtk/inspector/misc-info.ui:454 -#: gtk/inspector/misc-info.ui:493 gtk/inspector/prop-editor.c:1152 -#: gtk/inspector/prop-editor.c:1537 gtk/inspector/window.ui:396 +#: gtk/inspector/misc-info.ui:493 gtk/inspector/prop-editor.c:1150 +#: gtk/inspector/prop-editor.c:1533 gtk/inspector/window.ui:396 msgid "Properties" msgstr "СвойÑтва" @@ -4034,66 +4044,66 @@ msgstr "%s Ð´Ð»Ñ %s %p" msgid "%s with value type %s" msgstr "%s Ñ Ñ‚Ð¸Ð¿Ð¾Ð¼ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ %s" -#: gtk/inspector/prop-editor.c:1231 +#: gtk/inspector/prop-editor.c:1227 #, c-format msgid "Uneditable property type: %s" msgstr "Ðередактируемое ÑвойÑтво: %s" -#: gtk/inspector/prop-editor.c:1389 +#: gtk/inspector/prop-editor.c:1385 msgctxt "column number" msgid "None" msgstr "Отключено" -#: gtk/inspector/prop-editor.c:1426 +#: gtk/inspector/prop-editor.c:1422 msgid "Attribute:" msgstr "Ðтрибут:" -#: gtk/inspector/prop-editor.c:1429 +#: gtk/inspector/prop-editor.c:1425 msgid "Model" msgstr "Модель" -#: gtk/inspector/prop-editor.c:1434 +#: gtk/inspector/prop-editor.c:1430 msgid "Column:" msgstr "Столбец:" #. Translators: %s is a type name, for example #. * Action from 0x2345678 (GtkApplicationWindow) #. -#: gtk/inspector/prop-editor.c:1533 +#: gtk/inspector/prop-editor.c:1529 #, c-format msgid "Action from: %p (%s)" msgstr "ДейÑтвие из: %p (%s)" -#: gtk/inspector/prop-editor.c:1588 +#: gtk/inspector/prop-editor.c:1584 msgid "Reset" msgstr "СброÑить" -#: gtk/inspector/prop-editor.c:1596 +#: gtk/inspector/prop-editor.c:1592 msgctxt "GtkSettings source" msgid "Default" msgstr "По умолчанию" -#: gtk/inspector/prop-editor.c:1599 +#: gtk/inspector/prop-editor.c:1595 msgctxt "GtkSettings source" msgid "Theme" msgstr "Тема" -#: gtk/inspector/prop-editor.c:1602 +#: gtk/inspector/prop-editor.c:1598 msgctxt "GtkSettings source" msgid "XSettings" msgstr "XSettings" -#: gtk/inspector/prop-editor.c:1606 +#: gtk/inspector/prop-editor.c:1602 msgctxt "GtkSettings source" msgid "Application" msgstr "Приложение" -#: gtk/inspector/prop-editor.c:1609 +#: gtk/inspector/prop-editor.c:1605 msgctxt "GtkSettings source" msgid "Unknown" msgstr "ÐеизвеÑтный" -#: gtk/inspector/prop-editor.c:1612 +#: gtk/inspector/prop-editor.c:1608 msgid "Source:" msgstr "ИÑточник:" @@ -4101,7 +4111,8 @@ msgstr "ИÑточник:" msgid "Defined At" msgstr "Определён в" -#: gtk/inspector/recorder.c:1832 +#: gtk/inspector/recorder.c:1829 +#, c-format msgid "Saving RenderNode failed" msgstr "Сбой при Ñохранении RenderNode" @@ -4145,7 +4156,7 @@ msgstr "Путь" msgid "Count" msgstr "Счётчик" -#: gtk/inspector/resource-list.ui:82 gtk/ui/gtkfilechooserwidget.ui:265 +#: gtk/inspector/resource-list.ui:82 gtk/ui/gtkfilechooserwidget.ui:290 #: gtk/ui/gtkfontchooserwidget.ui:204 gtk/ui/gtkfontchooserwidget.ui:351 msgid "Size" msgstr "Размер" @@ -4222,12 +4233,12 @@ msgstr "ВозраÑтающий" msgid "Enable statistics with GOBJECT_DEBUG=instance-count" msgstr "Включение ÑтатиÑтики Ñ Ð¸Ñпользованием GOBJECT_DEBUG=instance-count" -#: gtk/inspector/strv-editor.c:85 +#: gtk/inspector/strv-editor.c:83 #, c-format msgid "Remove %s" msgstr "Удалить %s" -#: gtk/inspector/strv-editor.c:118 +#: gtk/inspector/strv-editor.c:115 msgid "Add" msgstr "Добавить" @@ -4437,7 +4448,7 @@ msgstr "Увеличитель" #: gtk/inspector/window.ui:508 msgid "Accessibility" -msgstr "ДоÑтупноÑÑ‚ÑŒ" +msgstr "Специальные возможноÑти" #: gtk/inspector/window.ui:532 msgid "Global" @@ -5993,12 +6004,16 @@ msgstr "БлагодарноÑти" msgid "System" msgstr "СиÑтема" +#: gtk/ui/gtkappchooserdialog.ui:4 +msgid "Select App" +msgstr "Выбрать приложение" + #: gtk/ui/gtkappchooserdialog.ui:60 -msgid "_View All Applications" +msgid "_View All Apps" msgstr "_ПроÑмотреть вÑе приложениÑ" #: gtk/ui/gtkappchooserdialog.ui:66 -msgid "_Find New Applications" +msgid "_Find New Apps" msgstr "_Ðайти новые приложениÑ" #: gtk/ui/gtkappchooserwidget.ui:100 @@ -6145,19 +6160,19 @@ msgctxt "emoji category" msgid "Recent" msgstr "Ðедавние" -#: gtk/ui/gtkfilechooserwidget.ui:64 +#: gtk/ui/gtkfilechooserwidget.ui:71 msgid "Create Folder" msgstr "Создать папку" -#: gtk/ui/gtkfilechooserwidget.ui:424 +#: gtk/ui/gtkfilechooserwidget.ui:449 msgid "Remote location — only searching the current folder" msgstr "Удалённое меÑтоположение — поиÑк только в текущей папке" -#: gtk/ui/gtkfilechooserwidget.ui:553 +#: gtk/ui/gtkfilechooserwidget.ui:578 msgid "Folder Name" msgstr "Ð˜Ð¼Ñ Ð¿Ð°Ð¿ÐºÐ¸" -#: gtk/ui/gtkfilechooserwidget.ui:579 +#: gtk/ui/gtkfilechooserwidget.ui:604 msgid "_Create" msgstr "_Создать" @@ -6481,446 +6496,446 @@ msgstr "Ðе удалоÑÑŒ выделить контекÑÑ‚ повторной msgid "No audio output found" msgstr "Ðудиовыход не найден" -#: modules/printbackends/gtkprintbackendcups.c:1142 -#: modules/printbackends/gtkprintbackendcups.c:1449 +#: modules/printbackends/gtkprintbackendcups.c:1141 +#: modules/printbackends/gtkprintbackendcups.c:1448 msgid "Username:" msgstr "Ð˜Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ:" -#: modules/printbackends/gtkprintbackendcups.c:1143 -#: modules/printbackends/gtkprintbackendcups.c:1458 +#: modules/printbackends/gtkprintbackendcups.c:1142 +#: modules/printbackends/gtkprintbackendcups.c:1457 msgid "Password:" msgstr "Пароль:" -#: modules/printbackends/gtkprintbackendcups.c:1181 -#: modules/printbackends/gtkprintbackendcups.c:1471 +#: modules/printbackends/gtkprintbackendcups.c:1180 +#: modules/printbackends/gtkprintbackendcups.c:1470 #, c-format msgid "Authentication is required to print document “%s†on printer %s" msgstr "" "Ð”Ð»Ñ Ð¿ÐµÑ‡Ð°Ñ‚Ð¸ документа «%s» на принтере %s требуетÑÑ Ð¿Ñ€Ð¾Ð²ÐµÑ€Ð¸Ñ‚ÑŒ права доÑтупа" -#: modules/printbackends/gtkprintbackendcups.c:1183 +#: modules/printbackends/gtkprintbackendcups.c:1182 #, c-format msgid "Authentication is required to print a document on %s" msgstr "Ð”Ð»Ñ Ð¿ÐµÑ‡Ð°Ñ‚Ð¸ документа на принтере %s требуетÑÑ Ð¿Ñ€Ð¾Ð²ÐµÑ€Ð¸Ñ‚ÑŒ права доÑтупа" -#: modules/printbackends/gtkprintbackendcups.c:1187 +#: modules/printbackends/gtkprintbackendcups.c:1186 #, c-format msgid "Authentication is required to get attributes of job “%sâ€" msgstr "" "Ð”Ð»Ñ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð¾Ð² Ð·Ð°Ð´Ð°Ð½Ð¸Ñ Â«%s» требуетÑÑ Ð¿Ñ€Ð¾Ð²ÐµÑ€Ð¸Ñ‚ÑŒ права доÑтупа" -#: modules/printbackends/gtkprintbackendcups.c:1189 +#: modules/printbackends/gtkprintbackendcups.c:1188 msgid "Authentication is required to get attributes of a job" msgstr "Ð”Ð»Ñ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð¾Ð² Ð·Ð°Ð´Ð°Ð½Ð¸Ñ Ñ‚Ñ€ÐµÐ±ÑƒÐµÑ‚ÑÑ Ð¿Ñ€Ð¾Ð²ÐµÑ€Ð¸Ñ‚ÑŒ права доÑтупа" -#: modules/printbackends/gtkprintbackendcups.c:1193 +#: modules/printbackends/gtkprintbackendcups.c:1192 #, c-format msgid "Authentication is required to get attributes of printer %s" msgstr "Ð”Ð»Ñ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð¾Ð² принтера %s требуетÑÑ Ð¿Ñ€Ð¾Ð²ÐµÑ€Ð¸Ñ‚ÑŒ права доÑтупа" -#: modules/printbackends/gtkprintbackendcups.c:1195 +#: modules/printbackends/gtkprintbackendcups.c:1194 msgid "Authentication is required to get attributes of a printer" msgstr "Ð”Ð»Ñ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð¾Ð² принтера требуетÑÑ Ð¿Ñ€Ð¾Ð²ÐµÑ€Ð¸Ñ‚ÑŒ права доÑтупа" -#: modules/printbackends/gtkprintbackendcups.c:1198 +#: modules/printbackends/gtkprintbackendcups.c:1197 #, c-format msgid "Authentication is required to get default printer of %s" msgstr "" "Ð”Ð»Ñ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¸Ð½Ñ‚ÐµÑ€Ð° по умолчанию на %s требуетÑÑ Ð¿Ñ€Ð¾Ð²ÐµÑ€Ð¸Ñ‚ÑŒ права доÑтупа" -#: modules/printbackends/gtkprintbackendcups.c:1201 +#: modules/printbackends/gtkprintbackendcups.c:1200 #, c-format msgid "Authentication is required to get printers from %s" msgstr "Ð”Ð»Ñ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ ÑпиÑка принтеров от %s требуетÑÑ Ð¿Ñ€Ð¾Ð²ÐµÑ€Ð¸Ñ‚ÑŒ права доÑтупа" -#: modules/printbackends/gtkprintbackendcups.c:1206 +#: modules/printbackends/gtkprintbackendcups.c:1205 #, c-format msgid "Authentication is required to get a file from %s" msgstr "Ð”Ð»Ñ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð° из %s требуетÑÑ Ð¿Ñ€Ð¾Ð²ÐµÑ€Ð¸Ñ‚ÑŒ права доÑтупа" -#: modules/printbackends/gtkprintbackendcups.c:1208 +#: modules/printbackends/gtkprintbackendcups.c:1207 #, c-format msgid "Authentication is required on %s" msgstr "Ð”Ð»Ñ Ð´Ð¾Ñтупа к %s требуетÑÑ Ð¿Ñ€Ð¾Ð²ÐµÑ€Ð¸Ñ‚ÑŒ права доÑтупа" -#: modules/printbackends/gtkprintbackendcups.c:1443 +#: modules/printbackends/gtkprintbackendcups.c:1442 msgid "Domain:" msgstr "Домен:" -#: modules/printbackends/gtkprintbackendcups.c:1473 +#: modules/printbackends/gtkprintbackendcups.c:1472 #, c-format msgid "Authentication is required to print document “%sâ€" msgstr "" "Ð”Ð»Ñ Ð¿ÐµÑ‡Ð°Ñ‚Ð¸ документа на принтере «%s» требуетÑÑ Ð¿Ñ€Ð¾Ð²ÐµÑ€Ð¸Ñ‚ÑŒ права доÑтупа" -#: modules/printbackends/gtkprintbackendcups.c:1478 +#: modules/printbackends/gtkprintbackendcups.c:1477 #, c-format msgid "Authentication is required to print this document on printer %s" msgstr "Ð”Ð»Ñ Ð¿ÐµÑ‡Ð°Ñ‚Ð¸ документа на принтере %s требуетÑÑ Ð¿Ñ€Ð¾Ð²ÐµÑ€Ð¸Ñ‚ÑŒ права доÑтупа" -#: modules/printbackends/gtkprintbackendcups.c:1480 +#: modules/printbackends/gtkprintbackendcups.c:1479 msgid "Authentication is required to print this document" msgstr "" "Ð”Ð»Ñ Ð¿ÐµÑ‡Ð°Ñ‚Ð¸ Ñтого документа на принтере требуетÑÑ Ð¿Ñ€Ð¾Ð²ÐµÑ€Ð¸Ñ‚ÑŒ права доÑтупа" -#: modules/printbackends/gtkprintbackendcups.c:2568 +#: modules/printbackends/gtkprintbackendcups.c:2567 #, c-format msgid "Printer “%s†is low on toner." msgstr "Ð’ принтере «%s» заканчиваетÑÑ Ñ‚Ð¾Ð½ÐµÑ€." -#: modules/printbackends/gtkprintbackendcups.c:2572 +#: modules/printbackends/gtkprintbackendcups.c:2571 #, c-format msgid "Printer “%s†has no toner left." msgstr "Ð’ принтере «%s» закончилÑÑ Ñ‚Ð¾Ð½ÐµÑ€." #. Translators: "Developer" like on photo development context -#: modules/printbackends/gtkprintbackendcups.c:2577 +#: modules/printbackends/gtkprintbackendcups.c:2576 #, c-format msgid "Printer “%s†is low on developer." msgstr "Ð’ принтере «%s» заканчиваетÑÑ Ð¿Ñ€Ð¾Ñвитель." #. Translators: "Developer" like on photo development context -#: modules/printbackends/gtkprintbackendcups.c:2582 +#: modules/printbackends/gtkprintbackendcups.c:2581 #, c-format msgid "Printer “%s†is out of developer." msgstr "Ð’ принтере «%s» закончилÑÑ Ð¿Ñ€Ð¾Ñвитель." #. Translators: "marker" is one color bin of the printer -#: modules/printbackends/gtkprintbackendcups.c:2587 +#: modules/printbackends/gtkprintbackendcups.c:2586 #, c-format msgid "Printer “%s†is low on at least one marker supply." msgstr "Ð’ принтере «%s» заканчиваетÑÑ Ð¾Ð´Ð¸Ð½ из тонеров." #. Translators: "marker" is one color bin of the printer -#: modules/printbackends/gtkprintbackendcups.c:2592 +#: modules/printbackends/gtkprintbackendcups.c:2591 #, c-format msgid "Printer “%s†is out of at least one marker supply." msgstr "Ð’ принтере «%s» закончилÑÑ Ð¾Ð´Ð¸Ð½ из тонеров." -#: modules/printbackends/gtkprintbackendcups.c:2596 +#: modules/printbackends/gtkprintbackendcups.c:2595 #, c-format msgid "The cover is open on printer “%sâ€." msgstr "Ð’ принтере «%s» открыта крышка." -#: modules/printbackends/gtkprintbackendcups.c:2600 +#: modules/printbackends/gtkprintbackendcups.c:2599 #, c-format msgid "The door is open on printer “%sâ€." msgstr "Ð’ принтере «%s» открыта дверца." -#: modules/printbackends/gtkprintbackendcups.c:2604 +#: modules/printbackends/gtkprintbackendcups.c:2603 #, c-format msgid "Printer “%s†is low on paper." msgstr "Ð’ принтере «%s» заканчиваетÑÑ Ð±ÑƒÐ¼Ð°Ð³Ð°." -#: modules/printbackends/gtkprintbackendcups.c:2608 +#: modules/printbackends/gtkprintbackendcups.c:2607 #, c-format msgid "Printer “%s†is out of paper." msgstr "Ð’ принтере «%s» закончилаÑÑŒ бумага." -#: modules/printbackends/gtkprintbackendcups.c:2612 +#: modules/printbackends/gtkprintbackendcups.c:2611 #, c-format msgid "Printer “%s†is currently offline." msgstr "Принтер «%s» в данный момент отключён." -#: modules/printbackends/gtkprintbackendcups.c:2616 +#: modules/printbackends/gtkprintbackendcups.c:2615 #, c-format msgid "There is a problem on printer “%sâ€." msgstr "Ðеполадка Ñ Ð¿Ñ€Ð¸Ð½Ñ‚ÐµÑ€Ð¾Ð¼ «%s»." #. Translators: this is a printer status. -#: modules/printbackends/gtkprintbackendcups.c:2636 +#: modules/printbackends/gtkprintbackendcups.c:2635 msgid "Paused; Rejecting Jobs" msgstr "ПриоÑтановлено; отмена заданий" #. Translators: this is a printer status. -#: modules/printbackends/gtkprintbackendcups.c:2642 +#: modules/printbackends/gtkprintbackendcups.c:2641 msgid "Rejecting Jobs" msgstr "Отмена заданий" #. Translators: this string connects multiple printer states together. -#: modules/printbackends/gtkprintbackendcups.c:2683 +#: modules/printbackends/gtkprintbackendcups.c:2682 msgid "; " msgstr "; " -#: modules/printbackends/gtkprintbackendcups.c:4584 -#: modules/printbackends/gtkprintbackendcups.c:4651 +#: modules/printbackends/gtkprintbackendcups.c:4583 +#: modules/printbackends/gtkprintbackendcups.c:4650 msgctxt "printing option" msgid "Two Sided" msgstr "С двух Ñторон" -#: modules/printbackends/gtkprintbackendcups.c:4585 +#: modules/printbackends/gtkprintbackendcups.c:4584 msgctxt "printing option" msgid "Paper Type" msgstr "Тип бумаги" -#: modules/printbackends/gtkprintbackendcups.c:4586 +#: modules/printbackends/gtkprintbackendcups.c:4585 msgctxt "printing option" msgid "Paper Source" msgstr "ИÑточник бумаги" -#: modules/printbackends/gtkprintbackendcups.c:4587 -#: modules/printbackends/gtkprintbackendcups.c:4652 +#: modules/printbackends/gtkprintbackendcups.c:4586 +#: modules/printbackends/gtkprintbackendcups.c:4651 msgctxt "printing option" msgid "Output Tray" msgstr "Лоток вывода" -#: modules/printbackends/gtkprintbackendcups.c:4588 +#: modules/printbackends/gtkprintbackendcups.c:4587 msgctxt "printing option" msgid "Resolution" msgstr "Разрешение" -#: modules/printbackends/gtkprintbackendcups.c:4589 +#: modules/printbackends/gtkprintbackendcups.c:4588 msgctxt "printing option" msgid "GhostScript pre-filtering" msgstr "Ð¤Ð¸Ð»ÑŒÑ‚Ñ€Ð°Ñ†Ð¸Ñ GhostScript" -#: modules/printbackends/gtkprintbackendcups.c:4598 +#: modules/printbackends/gtkprintbackendcups.c:4597 msgctxt "printing option value" msgid "One Sided" msgstr "С одной Ñтороны" #. Translators: this is an option of "Two Sided" -#: modules/printbackends/gtkprintbackendcups.c:4600 +#: modules/printbackends/gtkprintbackendcups.c:4599 msgctxt "printing option value" msgid "Long Edge (Standard)" msgstr "По длинной Ñтороне" #. Translators: this is an option of "Two Sided" -#: modules/printbackends/gtkprintbackendcups.c:4602 +#: modules/printbackends/gtkprintbackendcups.c:4601 msgctxt "printing option value" msgid "Short Edge (Flip)" msgstr "По короткой Ñтороне" #. Translators: this is an option of "Paper Source" -#: modules/printbackends/gtkprintbackendcups.c:4604 -#: modules/printbackends/gtkprintbackendcups.c:4606 -#: modules/printbackends/gtkprintbackendcups.c:4614 +#: modules/printbackends/gtkprintbackendcups.c:4603 +#: modules/printbackends/gtkprintbackendcups.c:4605 +#: modules/printbackends/gtkprintbackendcups.c:4613 msgctxt "printing option value" msgid "Auto Select" msgstr "Ðвтовыбор" #. Translators: this is an option of "Paper Source" #. Translators: this is an option of "Resolution" -#: modules/printbackends/gtkprintbackendcups.c:4608 -#: modules/printbackends/gtkprintbackendcups.c:4610 -#: modules/printbackends/gtkprintbackendcups.c:4612 -#: modules/printbackends/gtkprintbackendcups.c:4616 +#: modules/printbackends/gtkprintbackendcups.c:4607 +#: modules/printbackends/gtkprintbackendcups.c:4609 +#: modules/printbackends/gtkprintbackendcups.c:4611 +#: modules/printbackends/gtkprintbackendcups.c:4615 msgctxt "printing option value" msgid "Printer Default" msgstr "Ð£Ð¼Ð¾Ð»Ñ‡Ð°Ð½Ð¸Ñ Ð¿Ñ€Ð¸Ð½Ñ‚ÐµÑ€Ð°" #. Translators: this is an option of "GhostScript" -#: modules/printbackends/gtkprintbackendcups.c:4618 +#: modules/printbackends/gtkprintbackendcups.c:4617 msgctxt "printing option value" msgid "Embed GhostScript fonts only" msgstr "Ð’Ñтраивать только шрифты GhostScript" #. Translators: this is an option of "GhostScript" -#: modules/printbackends/gtkprintbackendcups.c:4620 +#: modules/printbackends/gtkprintbackendcups.c:4619 msgctxt "printing option value" msgid "Convert to PS level 1" msgstr "Преобразовать в формат PS уровень 1" #. Translators: this is an option of "GhostScript" -#: modules/printbackends/gtkprintbackendcups.c:4622 +#: modules/printbackends/gtkprintbackendcups.c:4621 msgctxt "printing option value" msgid "Convert to PS level 2" msgstr "Преобразовать в формат PS уровень 2" #. Translators: this is an option of "GhostScript" -#: modules/printbackends/gtkprintbackendcups.c:4624 +#: modules/printbackends/gtkprintbackendcups.c:4623 msgctxt "printing option value" msgid "No pre-filtering" msgstr "Ðе фильтровать перед печатью" #. Translators: "Miscellaneous" is the label for a button, that opens #. up an extra panel of settings in a print dialog. -#: modules/printbackends/gtkprintbackendcups.c:4633 +#: modules/printbackends/gtkprintbackendcups.c:4632 msgctxt "printing option group" msgid "Miscellaneous" msgstr "Дополнительно" -#: modules/printbackends/gtkprintbackendcups.c:4660 +#: modules/printbackends/gtkprintbackendcups.c:4659 msgctxt "sides" msgid "One Sided" msgstr "С одной Ñтороны" #. Translators: this is an option of "Two Sided" -#: modules/printbackends/gtkprintbackendcups.c:4662 +#: modules/printbackends/gtkprintbackendcups.c:4661 msgctxt "sides" msgid "Long Edge (Standard)" msgstr "По длинной Ñтороне" #. Translators: this is an option of "Two Sided" -#: modules/printbackends/gtkprintbackendcups.c:4664 +#: modules/printbackends/gtkprintbackendcups.c:4663 msgctxt "sides" msgid "Short Edge (Flip)" msgstr "По короткой Ñтороне" #. Translators: Top output bin -#: modules/printbackends/gtkprintbackendcups.c:4667 +#: modules/printbackends/gtkprintbackendcups.c:4666 msgctxt "output-bin" msgid "Top Bin" msgstr "Верхний контейнер" #. Translators: Middle output bin -#: modules/printbackends/gtkprintbackendcups.c:4669 +#: modules/printbackends/gtkprintbackendcups.c:4668 msgctxt "output-bin" msgid "Middle Bin" msgstr "Средний контейнер" #. Translators: Bottom output bin -#: modules/printbackends/gtkprintbackendcups.c:4671 +#: modules/printbackends/gtkprintbackendcups.c:4670 msgctxt "output-bin" msgid "Bottom Bin" msgstr "Ðижний контейнер" #. Translators: Side output bin -#: modules/printbackends/gtkprintbackendcups.c:4673 +#: modules/printbackends/gtkprintbackendcups.c:4672 msgctxt "output-bin" msgid "Side Bin" msgstr "Боковой контейнер" #. Translators: Left output bin -#: modules/printbackends/gtkprintbackendcups.c:4675 +#: modules/printbackends/gtkprintbackendcups.c:4674 msgctxt "output-bin" msgid "Left Bin" msgstr "Левый контейнер" #. Translators: Right output bin -#: modules/printbackends/gtkprintbackendcups.c:4677 +#: modules/printbackends/gtkprintbackendcups.c:4676 msgctxt "output-bin" msgid "Right Bin" msgstr "Правый контейнер" #. Translators: Center output bin -#: modules/printbackends/gtkprintbackendcups.c:4679 +#: modules/printbackends/gtkprintbackendcups.c:4678 msgctxt "output-bin" msgid "Center Bin" msgstr "Центральный контейнер" #. Translators: Rear output bin -#: modules/printbackends/gtkprintbackendcups.c:4681 +#: modules/printbackends/gtkprintbackendcups.c:4680 msgctxt "output-bin" msgid "Rear Bin" msgstr "Тыловой контейнер" #. Translators: Output bin where one sided output is oriented in the face-up position -#: modules/printbackends/gtkprintbackendcups.c:4683 +#: modules/printbackends/gtkprintbackendcups.c:4682 msgctxt "output-bin" msgid "Face Up Bin" msgstr "Контейнер лицом вверх" #. Translators: Output bin where one sided output is oriented in the face-down position -#: modules/printbackends/gtkprintbackendcups.c:4685 +#: modules/printbackends/gtkprintbackendcups.c:4684 msgctxt "output-bin" msgid "Face Down Bin" msgstr "Контейнер лицом вниз" #. Translators: Large capacity output bin -#: modules/printbackends/gtkprintbackendcups.c:4687 +#: modules/printbackends/gtkprintbackendcups.c:4686 msgctxt "output-bin" msgid "Large Capacity Bin" msgstr "Контейнер большой ёмкоÑти" #. Translators: Output stacker number %d -#: modules/printbackends/gtkprintbackendcups.c:4709 +#: modules/printbackends/gtkprintbackendcups.c:4708 #, c-format msgctxt "output-bin" msgid "Stacker %d" msgstr "Ðакопитель %d" #. Translators: Output mailbox number %d -#: modules/printbackends/gtkprintbackendcups.c:4713 +#: modules/printbackends/gtkprintbackendcups.c:4712 #, c-format msgctxt "output-bin" msgid "Mailbox %d" msgstr "Почтовый Ñщик %d" #. Translators: Private mailbox -#: modules/printbackends/gtkprintbackendcups.c:4717 +#: modules/printbackends/gtkprintbackendcups.c:4716 msgctxt "output-bin" msgid "My Mailbox" msgstr "Мой почтовый Ñщик" #. Translators: Output tray number %d -#: modules/printbackends/gtkprintbackendcups.c:4721 +#: modules/printbackends/gtkprintbackendcups.c:4720 #, c-format msgctxt "output-bin" msgid "Tray %d" msgstr "Трей %d" -#: modules/printbackends/gtkprintbackendcups.c:5198 +#: modules/printbackends/gtkprintbackendcups.c:5197 msgid "Printer Default" msgstr "Ð£Ð¼Ð¾Ð»Ñ‡Ð°Ð½Ð¸Ñ Ð¿Ñ€Ð¸Ð½Ñ‚ÐµÑ€Ð°" #. Translators: These strings name the possible values of the #. * job priority option in the print dialog #. -#: modules/printbackends/gtkprintbackendcups.c:5642 +#: modules/printbackends/gtkprintbackendcups.c:5641 msgid "Urgent" msgstr "Срочно" -#: modules/printbackends/gtkprintbackendcups.c:5642 +#: modules/printbackends/gtkprintbackendcups.c:5641 msgid "High" msgstr "Ð’Ñ‹Ñокий" -#: modules/printbackends/gtkprintbackendcups.c:5642 +#: modules/printbackends/gtkprintbackendcups.c:5641 msgid "Medium" msgstr "Средний" -#: modules/printbackends/gtkprintbackendcups.c:5642 +#: modules/printbackends/gtkprintbackendcups.c:5641 msgid "Low" msgstr "Ðизкий" #. Translators, this string is used to label the job priority option #. * in the print dialog #. -#: modules/printbackends/gtkprintbackendcups.c:5672 +#: modules/printbackends/gtkprintbackendcups.c:5671 msgid "Job Priority" msgstr "Приоритет" #. Translators, this string is used to label the billing info entry #. * in the print dialog #. -#: modules/printbackends/gtkprintbackendcups.c:5683 +#: modules/printbackends/gtkprintbackendcups.c:5682 msgid "Billing Info" msgstr "РаÑположение" #. Translators, these strings are names for various 'standard' cover #. * pages that the printing system may support. #. -#: modules/printbackends/gtkprintbackendcups.c:5707 +#: modules/printbackends/gtkprintbackendcups.c:5706 msgctxt "cover page" msgid "None" msgstr "Ðет" -#: modules/printbackends/gtkprintbackendcups.c:5708 +#: modules/printbackends/gtkprintbackendcups.c:5707 msgctxt "cover page" msgid "Classified" msgstr "КлаÑÑифицировано" -#: modules/printbackends/gtkprintbackendcups.c:5709 +#: modules/printbackends/gtkprintbackendcups.c:5708 msgctxt "cover page" msgid "Confidential" msgstr "Конфиденциально" -#: modules/printbackends/gtkprintbackendcups.c:5710 +#: modules/printbackends/gtkprintbackendcups.c:5709 msgctxt "cover page" msgid "Secret" msgstr "Секретно" -#: modules/printbackends/gtkprintbackendcups.c:5711 +#: modules/printbackends/gtkprintbackendcups.c:5710 msgctxt "cover page" msgid "Standard" msgstr "Стандарт" -#: modules/printbackends/gtkprintbackendcups.c:5712 +#: modules/printbackends/gtkprintbackendcups.c:5711 msgctxt "cover page" msgid "Top Secret" msgstr "Совершенно Ñекретно" -#: modules/printbackends/gtkprintbackendcups.c:5713 +#: modules/printbackends/gtkprintbackendcups.c:5712 msgctxt "cover page" msgid "Unclassified" msgstr "Ðе клаÑÑифицировано" @@ -6928,7 +6943,7 @@ msgstr "Ðе клаÑÑифицировано" #. Translators, this string is used to label the pages-per-sheet option #. * in the print dialog #. -#: modules/printbackends/gtkprintbackendcups.c:5725 +#: modules/printbackends/gtkprintbackendcups.c:5724 msgctxt "printer option" msgid "Pages per Sheet" msgstr "Страниц на лиÑÑ‚" @@ -6936,7 +6951,7 @@ msgstr "Страниц на лиÑÑ‚" #. Translators, this string is used to label the option in the print #. * dialog that controls in what order multiple pages are arranged #. -#: modules/printbackends/gtkprintbackendcups.c:5742 +#: modules/printbackends/gtkprintbackendcups.c:5741 msgctxt "printer option" msgid "Page Ordering" msgstr "ПорÑдок Ñтраниц" @@ -6944,7 +6959,7 @@ msgstr "ПорÑдок Ñтраниц" #. Translators, this is the label used for the option in the print #. * dialog that controls the front cover page. #. -#: modules/printbackends/gtkprintbackendcups.c:5784 +#: modules/printbackends/gtkprintbackendcups.c:5783 msgctxt "printer option" msgid "Before" msgstr "До" @@ -6952,7 +6967,7 @@ msgstr "До" #. Translators, this is the label used for the option in the print #. * dialog that controls the back cover page. #. -#: modules/printbackends/gtkprintbackendcups.c:5799 +#: modules/printbackends/gtkprintbackendcups.c:5798 msgctxt "printer option" msgid "After" msgstr "ПоÑле" @@ -6961,7 +6976,7 @@ msgstr "ПоÑле" #. * a print job is printed. Possible values are 'now', a specified time, #. * or 'on hold' #. -#: modules/printbackends/gtkprintbackendcups.c:5819 +#: modules/printbackends/gtkprintbackendcups.c:5818 msgctxt "printer option" msgid "Print at" msgstr "ВремÑ" @@ -6969,7 +6984,7 @@ msgstr "ВремÑ" #. Translators: this is the name of the option that allows the user #. * to specify a time when a print job will be printed. #. -#: modules/printbackends/gtkprintbackendcups.c:5830 +#: modules/printbackends/gtkprintbackendcups.c:5829 msgctxt "printer option" msgid "Print at time" msgstr "Ð’Ñ€ÐµÐ¼Ñ Ð½Ð°Ñ‡Ð°Ð»Ð° печати" @@ -6979,64 +6994,64 @@ msgstr "Ð’Ñ€ÐµÐ¼Ñ Ð½Ð°Ñ‡Ð°Ð»Ð° печати" #. * the width and height in points. E.g: "Custom #. * 230.4x142.9" #. -#: modules/printbackends/gtkprintbackendcups.c:5877 +#: modules/printbackends/gtkprintbackendcups.c:5876 #, c-format msgid "Custom %s×%s" msgstr "ОÑобый %s×%s" #. TRANSLATORS: this is the ICC color profile to use for this job -#: modules/printbackends/gtkprintbackendcups.c:5988 +#: modules/printbackends/gtkprintbackendcups.c:5987 msgctxt "printer option" msgid "Printer Profile" msgstr "Профиль принтера" #. TRANSLATORS: this is when color profile information is unavailable -#: modules/printbackends/gtkprintbackendcups.c:5995 +#: modules/printbackends/gtkprintbackendcups.c:5994 msgctxt "printer option value" msgid "Unavailable" msgstr "ÐедоÑтупно" -#: modules/printbackends/gtkprintbackendfile.c:235 +#: modules/printbackends/gtkprintbackendfile.c:238 msgid "output" msgstr "вывод" -#: modules/printbackends/gtkprintbackendfile.c:507 +#: modules/printbackends/gtkprintbackendfile.c:510 msgid "Print to File" msgstr "Печатать в файл" -#: modules/printbackends/gtkprintbackendfile.c:633 +#: modules/printbackends/gtkprintbackendfile.c:636 msgid "PDF" msgstr "PDF" -#: modules/printbackends/gtkprintbackendfile.c:633 +#: modules/printbackends/gtkprintbackendfile.c:636 msgid "PostScript" msgstr "PostScript" -#: modules/printbackends/gtkprintbackendfile.c:633 +#: modules/printbackends/gtkprintbackendfile.c:636 msgid "SVG" msgstr "SVG" -#: modules/printbackends/gtkprintbackendfile.c:646 +#: modules/printbackends/gtkprintbackendfile.c:649 msgid "Pages per _sheet:" msgstr "Страниц на _лиÑÑ‚:" -#: modules/printbackends/gtkprintbackendfile.c:706 +#: modules/printbackends/gtkprintbackendfile.c:709 msgid "File" msgstr "Файл" -#: modules/printbackends/gtkprintbackendfile.c:716 +#: modules/printbackends/gtkprintbackendfile.c:719 msgid "_Output format" msgstr "Формат _вывода" -#: modules/printbackends/gtkprintbackendlpr.c:372 +#: modules/printbackends/gtkprintbackendlpr.c:375 msgid "Print to LPR" msgstr "Печатать на LPR" -#: modules/printbackends/gtkprintbackendlpr.c:401 +#: modules/printbackends/gtkprintbackendlpr.c:404 msgid "Pages Per Sheet" msgstr "Страниц на лиÑÑ‚" -#: modules/printbackends/gtkprintbackendlpr.c:407 +#: modules/printbackends/gtkprintbackendlpr.c:410 msgid "Command Line" msgstr "ÐšÐ¾Ð¼Ð°Ð½Ð´Ð½Ð°Ñ Ñтрока" @@ -7320,55 +7335,55 @@ msgstr "Ðе удалоÑÑŒ переименовать %s в %s: %s\n" msgid "Could not rename %s back to %s: %s.\n" msgstr "Ðе удалоÑÑŒ переименовать %s обратно в %s: %s\n" -#: tools/updateiconcache.c:1618 +#: tools/updateiconcache.c:1614 #, c-format msgid "Cache file created successfully.\n" msgstr "КÑш-файл уÑпешно Ñоздан.\n" -#: tools/updateiconcache.c:1657 +#: tools/updateiconcache.c:1653 msgid "Overwrite an existing cache, even if up to date" msgstr "ПерезапиÑать ÑущеÑтвующий кÑш-файл, даже еÑли он обновлён" -#: tools/updateiconcache.c:1658 +#: tools/updateiconcache.c:1654 msgid "Don’t check for the existence of index.theme" msgstr "Ðе проверÑÑ‚ÑŒ ÑущеÑтвование файла index.theme" -#: tools/updateiconcache.c:1659 +#: tools/updateiconcache.c:1655 msgid "Don’t include image data in the cache" msgstr "Ðе включать Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ð² кÑш" -#: tools/updateiconcache.c:1660 +#: tools/updateiconcache.c:1656 msgid "Include image data in the cache" msgstr "Включить Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ð² кÑш" -#: tools/updateiconcache.c:1661 +#: tools/updateiconcache.c:1657 msgid "Output a C header file" msgstr "Выдавать заголовочный файл C" -#: tools/updateiconcache.c:1662 +#: tools/updateiconcache.c:1658 msgid "Turn off verbose output" msgstr "Выключить раÑширенный вывод" -#: tools/updateiconcache.c:1663 +#: tools/updateiconcache.c:1659 msgid "Validate existing icon cache" msgstr "Проверить текущий кÑш значков" -#: tools/updateiconcache.c:1728 +#: tools/updateiconcache.c:1724 #, c-format msgid "File not found: %s\n" msgstr "Файл не найден: %s\n" -#: tools/updateiconcache.c:1734 +#: tools/updateiconcache.c:1730 #, c-format msgid "Not a valid icon cache: %s\n" msgstr "Ðекорректный кÑш значков: %s\n" -#: tools/updateiconcache.c:1747 +#: tools/updateiconcache.c:1743 #, c-format msgid "No theme index file.\n" msgstr "Ðет файла Ñ Ð¸Ð½Ð´ÐµÐºÑом темы.\n" -#: tools/updateiconcache.c:1751 +#: tools/updateiconcache.c:1747 #, c-format msgid "" "No theme index file in “%sâ€.\n" @@ -7378,6 +7393,9 @@ msgstr "" "ЕÑли дейÑтвительно хотите Ñоздать здеÑÑŒ кÑш значков, иÑпользуйте --ignore-" "theme-index.\n" +#~ msgid "Default Application" +#~ msgstr "Приложение по умолчанию" + #~ msgid "horizontal" #~ msgstr "горизонтальный" @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: gtk+\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gtk/-/issues/\n" -"POT-Creation-Date: 2022-09-26 14:41+0000\n" -"PO-Revision-Date: 2022-09-26 17:54+0300\n" +"POT-Creation-Date: 2022-12-17 12:46+0000\n" +"PO-Revision-Date: 2022-12-23 15:48+0200\n" "Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n" "Language-Team: Ukrainian <trans-uk@lists.fedoraproject.org>\n" "Language: uk\n" @@ -102,7 +102,8 @@ msgstr "Ðе вдалоÑÑ Ñ–Ð½Ñ–Ñ†Ñ–Ð°Ð»Ñ–Ð·ÑƒÐ²Ð°Ñ‚Ð¸ диÑплей EGL" #: gdk/gdkdisplay.c:1690 #, c-format msgid "EGL version %d.%d is too old. GTK requires %d.%d" -msgstr "ВерÑÑ–Ñ EGL %d.%d Ñ” надто давньою. Ð”Ð»Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ GTK потрібна верÑÑ–Ñ %d.%d" +msgstr "" +"ВерÑÑ–Ñ EGL %d.%d Ñ” надто давньою. Ð”Ð»Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ GTK потрібна верÑÑ–Ñ %d.%d" #: gdk/gdkdrop.c:130 msgid "Drag’n’drop from other applications is not supported." @@ -113,12 +114,12 @@ msgstr "" msgid "No compatible formats to transfer contents." msgstr "Ðемає ÑуміÑних форматів Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ´Ð°Ð²Ð°Ð½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ…." -#: gdk/gdkglcontext.c:394 gdk/x11/gdkglcontext-glx.c:604 +#: gdk/gdkglcontext.c:394 gdk/x11/gdkglcontext-glx.c:610 msgid "No GL API allowed." msgstr "Програмний Ñ–Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ GL заборонено." #: gdk/gdkglcontext.c:418 gdk/win32/gdkglcontext-win32-wgl.c:611 -#: gdk/x11/gdkglcontext-glx.c:638 +#: gdk/x11/gdkglcontext-glx.c:644 msgid "Unable to create a GL context" msgstr "Ðеможливо Ñтворити вміÑÑ‚ GL" @@ -528,12 +529,12 @@ msgstr "Suspend" msgid "Error interpreting JPEG image file (%s)" msgstr "Помилка інтерпретації файлу Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ JPEG (%s)" -#: gdk/loaders/gdkjpeg.c:192 +#: gdk/loaders/gdkjpeg.c:194 #, c-format msgid "Unsupported JPEG colorspace (%d)" msgstr "Ðепідтримуваний проÑÑ‚Ñ–Ñ€ кольорів JPEG (%d)" -#: gdk/loaders/gdkjpeg.c:201 gdk/loaders/gdkpng.c:266 gdk/loaders/gdktiff.c:453 +#: gdk/loaders/gdkjpeg.c:203 gdk/loaders/gdkpng.c:266 gdk/loaders/gdktiff.c:453 #, c-format msgid "Not enough memory for image size %ux%u" msgstr "ÐедоÑтатньо пам'ÑÑ‚Ñ– Ð´Ð»Ñ Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ð¾Ð¼ %ux%u" @@ -567,7 +568,7 @@ msgid "Reading data failed at row %d" msgstr "Помилка Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ… у Ñ€Ñдку %d" #: gdk/macos/gdkmacosclipboard.c:557 gdk/wayland/gdkclipboard-wayland.c:240 -#: gdk/wayland/gdkdrop-wayland.c:208 gdk/wayland/gdkprimary-wayland.c:335 +#: gdk/wayland/gdkdrop-wayland.c:208 gdk/wayland/gdkprimary-wayland.c:336 #: gdk/win32/gdkdrop-win32.c:1018 gdk/win32/gdkdrop-win32.c:1063 #: gdk/x11/gdkclipboard-x11.c:805 gdk/x11/gdkdrop-x11.c:235 msgid "No compatible transfer format found" @@ -587,7 +588,8 @@ msgstr "" #: gdk/win32/gdkclipdrop-win32.c:731 #, c-format -msgid "Cannot claim clipboard ownership. Another process claimed it before us." +msgid "" +"Cannot claim clipboard ownership. Another process claimed it before us." msgstr "" "Ðе вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ буфер обміну у влаÑніÑÑ‚ÑŒ. Інший Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð¿Ð¾Ð²'Ñзав його із " "Ñобою до наÑ." @@ -614,7 +616,8 @@ msgstr "" #: gdk/win32/gdkclipdrop-win32.c:810 gdk/win32/gdkclipdrop-win32.c:841 #, c-format -msgid "Cannot set clipboard data. Another process claimed clipboard ownership." +msgid "" +"Cannot set clipboard data. Another process claimed clipboard ownership." msgstr "" "Ðе вдалоÑÑ Ð²Ñтановити дані буфера обміну. Інший Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð¿Ð¾Ð²'Ñзав його із " "Ñобою до наÑ." @@ -800,15 +803,15 @@ msgstr "" "Ðе вдалоÑÑ Ð·Ð±ÐµÑ€ÐµÐ³Ñ‚Ð¸ буфер обміну. Ðемає активної програми Ð´Ð»Ñ ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ " "буфером обміну." -#: gdk/x11/gdkglcontext-glx.c:754 +#: gdk/x11/gdkglcontext-glx.c:760 msgid "No GLX configurations available" msgstr "Ðемає доÑтупних налаштувань GLX" -#: gdk/x11/gdkglcontext-glx.c:827 +#: gdk/x11/gdkglcontext-glx.c:833 msgid "No GLX configuration with required features found" msgstr "Ðе знайдено налаштувань GLX із потрібними можливоÑÑ‚Ñми" -#: gdk/x11/gdkglcontext-glx.c:901 +#: gdk/x11/gdkglcontext-glx.c:907 msgid "GLX is not supported" msgstr "Підтримки GLX не передбачено" @@ -969,109 +972,244 @@ msgstr "Помилкове Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ…: адреÑа" msgid "Could not unescape string" msgstr "Ðе вдалоÑÑ Ð²Ð¸Ð»ÑƒÑ‡Ð¸Ñ‚Ð¸ ÐµÐºÑ€Ð°Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ñимволів у Ñ€Ñдку" -#: gtk/gtkaboutdialog.c:124 gtk/ui/gtkaboutdialog.ui:163 +#: gtk/deprecated/gtkappchooserbutton.c:323 +#| msgid "Other…" +msgid "Other app…" +msgstr "Інша програма…" + +#: gtk/deprecated/gtkappchooserdialog.c:210 +#: gtk/deprecated/gtkappchooserdialog.c:261 +msgid "Select Application" +msgstr "Виберіть програму" + +#. Translators: %s is a filename +#: gtk/deprecated/gtkappchooserdialog.c:217 +#, c-format +msgid "Opening “%sâ€." +msgstr "Ð’Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Â«%s»." + +#: gtk/deprecated/gtkappchooserdialog.c:218 +#, c-format +msgid "No applications found for “%sâ€" +msgstr "Ðе знайдено програм Ð´Ð»Ñ Â«%s»" + +#. Translators: %s is a file type description +#: gtk/deprecated/gtkappchooserdialog.c:223 +#, c-format +msgid "Opening “%s†files." +msgstr "Ð’Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Ñ„Ð°Ð¹Ð»Ñ–Ð² «%s»." + +#: gtk/deprecated/gtkappchooserdialog.c:225 +#, c-format +msgid "No applications found for “%s†files" +msgstr "Ðе знайдено програм Ð´Ð»Ñ Ñ„Ð°Ð¹Ð»Ñ–Ð² «%s»" + +#: gtk/deprecated/gtkappchooserdialog.c:427 +msgid "Failed to start GNOME Software" +msgstr "Ðе вдалоÑÑ Ð·Ð°Ð¿ÑƒÑтити «Програмні заÑоби GNOME»" + +#: gtk/deprecated/gtkappchooserwidget.c:525 +#| msgid "Default" +msgid "Default App" +msgstr "Типова програма" + +#: gtk/deprecated/gtkappchooserwidget.c:575 +#, c-format +#| msgid "No applications found for “%sâ€." +msgid "No apps found for “%sâ€." +msgstr "Ðе знайдено програм Ð´Ð»Ñ Â«%s»." + +#: gtk/deprecated/gtkappchooserwidget.c:658 +#| msgid "Recommended Applications" +msgid "Recommended Apps" +msgstr "Рекомендовані програми" + +#: gtk/deprecated/gtkappchooserwidget.c:673 +#| msgid "Related Applications" +msgid "Related Apps" +msgstr "Пов'Ñзані програми" + +#: gtk/deprecated/gtkappchooserwidget.c:687 +#| msgid "Other Applications" +msgid "Other Apps" +msgstr "Інші програми" + +#. This label is displayed in a treeview cell displaying +#. * a disabled accelerator key combination. +#. +#: gtk/deprecated/gtkcellrendereraccel.c:294 +msgctxt "Accelerator" +msgid "Disabled" +msgstr "Вимкнено" + +#. This label is displayed in a treeview cell displaying +#. * an accelerator key combination that is not valid according +#. * to gtk_accelerator_valid(). +#. +#: gtk/deprecated/gtkcellrendereraccel.c:304 +msgctxt "Accelerator" +msgid "Invalid" +msgstr "Ðеправильний" + +#. This label is displayed in a treeview cell displaying an accelerator +#. * when the cell is clicked to change the acelerator. +#. +#: gtk/deprecated/gtkcellrendereraccel.c:436 +#: gtk/deprecated/gtkcellrendereraccel.c:729 +msgid "New accelerator…" +msgstr "Ðове ÑкороченнÑ…" + +#: gtk/deprecated/gtkcellrendererprogress.c:132 +#: gtk/deprecated/gtkcellrendererprogress.c:322 +#: gtk/deprecated/gtkcellrendererprogress.c:352 +#, c-format +msgctxt "progress bar label" +msgid "%d %%" +msgstr "%d %%" + +#: gtk/deprecated/gtkcolorbutton.c:183 gtk/deprecated/gtkcolorbutton.c:311 +#: gtk/gtkcolordialog.c:411 +msgid "Pick a Color" +msgstr "Вибір кольору" + +#: gtk/deprecated/gtkcolorbutton.c:502 gtk/gtkcolorchooserwidget.c:312 +#: gtk/gtkcolordialogbutton.c:299 +#, c-format +msgid "Red %d%%, Green %d%%, Blue %d%%, Alpha %d%%" +msgstr "Червоний %d%%, Зелений %d%%, Синій %d%%, Ðльфа %d%%" + +#: gtk/deprecated/gtkcolorbutton.c:508 gtk/gtkcolorchooserwidget.c:318 +#: gtk/gtkcolordialogbutton.c:305 +#, c-format +msgid "Red %d%%, Green %d%%, Blue %d%%" +msgstr "Червоний %d%%, Зелений %d%%, Синій %d%%" + +#: gtk/deprecated/gtkfontbutton.c:396 +msgid "Sans 12" +msgstr "Sans 12" + +#: gtk/deprecated/gtkfontbutton.c:507 gtk/deprecated/gtkfontbutton.c:621 +#: gtk/gtkfontdialog.c:595 +msgid "Pick a Font" +msgstr "Виберіть шрифт" + +#: gtk/deprecated/gtkfontbutton.c:597 gtk/gtkfilechooserwidget.c:3853 +#: gtk/gtkfontdialogbutton.c:115 gtk/inspector/visual.ui:170 +msgid "Font" +msgstr "Шрифт" + +#: gtk/deprecated/gtkfontbutton.c:1152 gtk/gtkfontdialogbutton.c:613 +msgctxt "font" +msgid "None" +msgstr "Ðемає" + +#: gtk/deprecated/gtkshow.c:176 +msgid "Could not show link" +msgstr "Ðе вдалоÑÑŒ показати поÑиланнÑ" + +#: gtk/gtkaboutdialog.c:126 gtk/ui/gtkaboutdialog.ui:163 msgid "License" msgstr "ЛіцензіÑ" -#: gtk/gtkaboutdialog.c:125 +#: gtk/gtkaboutdialog.c:127 msgid "Custom License" msgstr "Ðетипові умови ліцензуваннÑ" -#: gtk/gtkaboutdialog.c:126 +#: gtk/gtkaboutdialog.c:128 msgid "GNU General Public License, version 2 or later" msgstr "Загальна громадÑька Ð»Ñ–Ñ†ÐµÐ½Ð·Ñ–Ñ GNU (GNU GPL), верÑÑ–Ñ 2 або новіша" -#: gtk/gtkaboutdialog.c:127 +#: gtk/gtkaboutdialog.c:129 msgid "GNU General Public License, version 3 or later" msgstr "Загальна громадÑька Ð»Ñ–Ñ†ÐµÐ½Ð·Ñ–Ñ GNU (GNU GPL), верÑÑ–Ñ 3 або новіша" -#: gtk/gtkaboutdialog.c:128 +#: gtk/gtkaboutdialog.c:130 msgid "GNU Lesser General Public License, version 2.1 or later" msgstr "" "Звужена загальна громадÑька Ð»Ñ–Ñ†ÐµÐ½Ð·Ñ–Ñ GNU (GNU LGPL), верÑÑ–Ñ 2.1 або новіша" -#: gtk/gtkaboutdialog.c:129 +#: gtk/gtkaboutdialog.c:131 msgid "GNU Lesser General Public License, version 3 or later" msgstr "" "Звужена загальна громадÑька Ð»Ñ–Ñ†ÐµÐ½Ð·Ñ–Ñ GNU (GNU LGPL), верÑÑ–Ñ 3 або новіша" -#: gtk/gtkaboutdialog.c:130 +#: gtk/gtkaboutdialog.c:132 msgid "BSD 2-Clause License" msgstr "Спрощена (2-Clause) Ð»Ñ–Ñ†ÐµÐ½Ð·Ñ–Ñ BSD" -#: gtk/gtkaboutdialog.c:131 +#: gtk/gtkaboutdialog.c:133 msgid "The MIT License (MIT)" msgstr "Ð›Ñ–Ñ†ÐµÐ½Ð·Ñ–Ñ MIT (MIT)" -#: gtk/gtkaboutdialog.c:132 +#: gtk/gtkaboutdialog.c:134 msgid "Artistic License 2.0" msgstr "ÐртиÑтична Ð»Ñ–Ñ†ÐµÐ½Ð·Ñ–Ñ 2.0" -#: gtk/gtkaboutdialog.c:133 +#: gtk/gtkaboutdialog.c:135 msgid "GNU General Public License, version 2 only" msgstr "Загальна громадÑька Ð»Ñ–Ñ†ÐµÐ½Ð·Ñ–Ñ GNU (GNU GPL), лише верÑÑ–Ñ— 2" -#: gtk/gtkaboutdialog.c:134 +#: gtk/gtkaboutdialog.c:136 msgid "GNU General Public License, version 3 only" msgstr "Загальна громадÑька Ð»Ñ–Ñ†ÐµÐ½Ð·Ñ–Ñ GNU (GNU GPL), лише верÑÑ–Ñ— 3" -#: gtk/gtkaboutdialog.c:135 +#: gtk/gtkaboutdialog.c:137 msgid "GNU Lesser General Public License, version 2.1 only" msgstr "Скорочена загальна громадÑька Ð»Ñ–Ñ†ÐµÐ½Ð·Ñ–Ñ GNU, лише верÑÑ–Ñ— 2.1" -#: gtk/gtkaboutdialog.c:136 +#: gtk/gtkaboutdialog.c:138 msgid "GNU Lesser General Public License, version 3 only" msgstr "Скорочена загальна громадÑька Ð»Ñ–Ñ†ÐµÐ½Ð·Ñ–Ñ GNU, лише верÑÑ–Ñ— 3" -#: gtk/gtkaboutdialog.c:137 +#: gtk/gtkaboutdialog.c:139 msgid "GNU Affero General Public License, version 3 or later" msgstr "Звужена загальна громадÑька Ð»Ñ–Ñ†ÐµÐ½Ð·Ñ–Ñ GNU Affero, верÑÑ–Ñ 3 або новіша" -#: gtk/gtkaboutdialog.c:138 +#: gtk/gtkaboutdialog.c:140 msgid "GNU Affero General Public License, version 3 only" msgstr "Загальна громадÑька Ð»Ñ–Ñ†ÐµÐ½Ð·Ñ–Ñ Affero GNU (GNU GPL), лише верÑÑ–Ñ— 3" -#: gtk/gtkaboutdialog.c:139 +#: gtk/gtkaboutdialog.c:141 msgid "BSD 3-Clause License" msgstr "Спрощена (3-Clause) Ð»Ñ–Ñ†ÐµÐ½Ð·Ñ–Ñ BSD" -#: gtk/gtkaboutdialog.c:140 +#: gtk/gtkaboutdialog.c:142 msgid "Apache License, Version 2.0" msgstr "Ð›Ñ–Ñ†ÐµÐ½Ð·Ñ–Ñ Apache, верÑÑ–Ñ 2.0" -#: gtk/gtkaboutdialog.c:141 +#: gtk/gtkaboutdialog.c:143 msgid "Mozilla Public License 2.0" msgstr "ГромадÑька Ð»Ñ–Ñ†ÐµÐ½Ð·Ñ–Ñ Mozilla 2.0" -#: gtk/gtkaboutdialog.c:937 +#: gtk/gtkaboutdialog.c:970 msgid "Website" msgstr "Сайт" -#: gtk/gtkaboutdialog.c:973 gtk/ui/gtkapplication-quartz.ui:6 +#: gtk/gtkaboutdialog.c:1006 gtk/ui/gtkapplication-quartz.ui:6 #, c-format msgid "About %s" msgstr "Про %s" -#: gtk/gtkaboutdialog.c:2074 +#: gtk/gtkaboutdialog.c:2096 msgid "Created by" msgstr "СтвореннÑ" -#: gtk/gtkaboutdialog.c:2077 +#: gtk/gtkaboutdialog.c:2099 msgid "Documented by" msgstr "ДокументаціÑ" -#: gtk/gtkaboutdialog.c:2087 +#: gtk/gtkaboutdialog.c:2109 msgid "Translated by" msgstr "Переклад" -#: gtk/gtkaboutdialog.c:2092 +#: gtk/gtkaboutdialog.c:2114 msgid "Design by" msgstr "Дизайн" #. Translators: this is the license preamble; the string at the end #. * contains the name of the license as link text. #. -#: gtk/gtkaboutdialog.c:2257 +#: gtk/gtkaboutdialog.c:2279 #, c-format msgid "" "This program comes with absolutely no warranty.\n" @@ -1555,61 +1693,10 @@ msgctxt "accessibility" msgid "window" msgstr "вікно" -#: gtk/gtkappchooserbutton.c:317 -msgid "Other application…" -msgstr "Інша програма…" - -#: gtk/gtkappchooserdialog.c:204 gtk/gtkappchooserdialog.c:255 -#: gtk/ui/gtkappchooserdialog.ui:4 -msgid "Select Application" -msgstr "Виберіть програму" - -#. Translators: %s is a filename -#: gtk/gtkappchooserdialog.c:211 -#, c-format -msgid "Opening “%sâ€." -msgstr "Ð’Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Â«%s»." - -#: gtk/gtkappchooserdialog.c:212 -#, c-format -msgid "No applications found for “%sâ€" -msgstr "Ðе знайдено програм Ð´Ð»Ñ Â«%s»" - -#. Translators: %s is a file type description -#: gtk/gtkappchooserdialog.c:217 -#, c-format -msgid "Opening “%s†files." -msgstr "Ð’Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Ñ„Ð°Ð¹Ð»Ñ–Ð² «%s»." - -#: gtk/gtkappchooserdialog.c:219 -#, c-format -msgid "No applications found for “%s†files" -msgstr "Ðе знайдено програм Ð´Ð»Ñ Ñ„Ð°Ð¹Ð»Ñ–Ð² «%s»" - -#: gtk/gtkappchooserdialog.c:421 -msgid "Failed to start GNOME Software" -msgstr "Ðе вдалоÑÑ Ð·Ð°Ð¿ÑƒÑтити «Програмні заÑоби GNOME»" - -#: gtk/gtkappchooserwidget.c:519 -msgid "Default Application" -msgstr "Типова програма" - -#: gtk/gtkappchooserwidget.c:569 -#, c-format -msgid "No applications found for “%sâ€." -msgstr "Ðе знайдено програм Ð´Ð»Ñ Â«%s»." - -#: gtk/gtkappchooserwidget.c:652 -msgid "Recommended Applications" -msgstr "Рекомендовані програми" - -#: gtk/gtkappchooserwidget.c:667 -msgid "Related Applications" -msgstr "Подібні програми" - -#: gtk/gtkappchooserwidget.c:681 -msgid "Other Applications" -msgstr "Інші програми" +#: gtk/gtkalertdialog.c:660 gtk/gtkcustompaperunixdialog.c:328 +#: gtk/gtkmessagedialog.c:166 gtk/ui/gtkassistant.ui:40 +msgid "_Close" +msgstr "_Закрити" #. Translators: This is the 'reason' given when inhibiting #. * suspend or screen locking, and the caller hasn't specified @@ -1619,12 +1706,12 @@ msgstr "Інші програми" msgid "Reason not specified" msgstr "Причину не вказано" -#: gtk/gtkbookmarksmanager.c:51 +#: gtk/gtkbookmarksmanager.c:53 #, c-format msgid "%s does not exist in the bookmarks list" msgstr "%s немає у ÑпиÑку закладок" -#: gtk/gtkbookmarksmanager.c:412 +#: gtk/gtkbookmarksmanager.c:414 #, c-format msgid "%s already exists in the bookmarks list" msgstr "%s вже Ñ” у ÑпиÑку закладок" @@ -1707,287 +1794,242 @@ msgctxt "calendar:week:digits" msgid "%d" msgstr "%d" -#. This label is displayed in a treeview cell displaying -#. * a disabled accelerator key combination. -#. -#: gtk/gtkcellrendereraccel.c:287 -msgctxt "Accelerator" -msgid "Disabled" -msgstr "Вимкнено" - -#. This label is displayed in a treeview cell displaying -#. * an accelerator key combination that is not valid according -#. * to gtk_accelerator_valid(). -#. -#: gtk/gtkcellrendereraccel.c:297 -msgctxt "Accelerator" -msgid "Invalid" -msgstr "Ðеправильний" - -#. This label is displayed in a treeview cell displaying an accelerator -#. * when the cell is clicked to change the acelerator. -#. -#: gtk/gtkcellrendereraccel.c:429 gtk/gtkcellrendereraccel.c:722 -msgid "New accelerator…" -msgstr "Ðове ÑкороченнÑ…" - -#: gtk/gtkcellrendererprogress.c:128 gtk/gtkcellrendererprogress.c:318 -#: gtk/gtkcellrendererprogress.c:348 -#, c-format -msgctxt "progress bar label" -msgid "%d %%" -msgstr "%d %%" - -#: gtk/gtkcolorbutton.c:179 gtk/gtkcolorbutton.c:307 -msgid "Pick a Color" -msgstr "Вибір кольору" - -#: gtk/gtkcolorbutton.c:496 gtk/gtkcolorchooserwidget.c:308 -#, c-format -msgid "Red %d%%, Green %d%%, Blue %d%%, Alpha %d%%" -msgstr "Червоний %d%%, Зелений %d%%, Синій %d%%, Ðльфа %d%%" - -#: gtk/gtkcolorbutton.c:502 gtk/gtkcolorchooserwidget.c:314 -#, c-format -msgid "Red %d%%, Green %d%%, Blue %d%%" -msgstr "Червоний %d%%, Зелений %d%%, Синій %d%%" - -#: gtk/gtkcolorchooserwidget.c:371 +#: gtk/gtkcolorchooserwidget.c:375 #, c-format msgid "Color: %s" msgstr "Колір: %s" -#: gtk/gtkcolorchooserwidget.c:436 +#: gtk/gtkcolorchooserwidget.c:440 msgctxt "Color name" msgid "Very Light Blue" msgstr "Дуже Ñвітло-Ñиній" -#: gtk/gtkcolorchooserwidget.c:437 +#: gtk/gtkcolorchooserwidget.c:441 msgctxt "Color name" msgid "Light Blue" msgstr "Світло-Ñиній" -#: gtk/gtkcolorchooserwidget.c:438 +#: gtk/gtkcolorchooserwidget.c:442 msgctxt "Color name" msgid "Blue" msgstr "Синій" -#: gtk/gtkcolorchooserwidget.c:439 +#: gtk/gtkcolorchooserwidget.c:443 msgctxt "Color name" msgid "Dark Blue" msgstr "Темно-Ñиній" -#: gtk/gtkcolorchooserwidget.c:440 +#: gtk/gtkcolorchooserwidget.c:444 msgctxt "Color name" msgid "Very Dark Blue" msgstr "Дуже темно-Ñиній" -#: gtk/gtkcolorchooserwidget.c:441 +#: gtk/gtkcolorchooserwidget.c:445 msgctxt "Color name" msgid "Very Light Green" msgstr "Дуже Ñвітло-зелений" -#: gtk/gtkcolorchooserwidget.c:442 +#: gtk/gtkcolorchooserwidget.c:446 msgctxt "Color name" msgid "Light Green" msgstr "Світло-зелений" -#: gtk/gtkcolorchooserwidget.c:443 +#: gtk/gtkcolorchooserwidget.c:447 msgctxt "Color name" msgid "Green" msgstr "Зелений" -#: gtk/gtkcolorchooserwidget.c:444 +#: gtk/gtkcolorchooserwidget.c:448 msgctxt "Color name" msgid "Dark Green" msgstr "Темно-зелений" -#: gtk/gtkcolorchooserwidget.c:445 +#: gtk/gtkcolorchooserwidget.c:449 msgctxt "Color name" msgid "Very Dark Green" msgstr "Дуже темно-зелений" -#: gtk/gtkcolorchooserwidget.c:446 +#: gtk/gtkcolorchooserwidget.c:450 msgctxt "Color name" msgid "Very Light Yellow" msgstr "Дуже Ñвітло-жовтий" -#: gtk/gtkcolorchooserwidget.c:447 +#: gtk/gtkcolorchooserwidget.c:451 msgctxt "Color name" msgid "Light Yellow" msgstr "Світло-жовтий" -#: gtk/gtkcolorchooserwidget.c:448 +#: gtk/gtkcolorchooserwidget.c:452 msgctxt "Color name" msgid "Yellow" msgstr "Жовтий" -#: gtk/gtkcolorchooserwidget.c:449 +#: gtk/gtkcolorchooserwidget.c:453 msgctxt "Color name" msgid "Dark Yellow" msgstr "Темно-жовтий" -#: gtk/gtkcolorchooserwidget.c:450 +#: gtk/gtkcolorchooserwidget.c:454 msgctxt "Color name" msgid "Very Dark Yellow" msgstr "Дуже темно-жовтий" -#: gtk/gtkcolorchooserwidget.c:451 +#: gtk/gtkcolorchooserwidget.c:455 msgctxt "Color name" msgid "Very Light Orange" msgstr "Дуже Ñвітло-жовтогарÑчий" -#: gtk/gtkcolorchooserwidget.c:452 +#: gtk/gtkcolorchooserwidget.c:456 msgctxt "Color name" msgid "Light Orange" msgstr "Світло-жовтогарÑчий" -#: gtk/gtkcolorchooserwidget.c:453 +#: gtk/gtkcolorchooserwidget.c:457 msgctxt "Color name" msgid "Orange" msgstr "ЖовтогарÑчий" -#: gtk/gtkcolorchooserwidget.c:454 +#: gtk/gtkcolorchooserwidget.c:458 msgctxt "Color name" msgid "Dark Orange" msgstr "Темно-жовтогарÑчий" -#: gtk/gtkcolorchooserwidget.c:455 +#: gtk/gtkcolorchooserwidget.c:459 msgctxt "Color name" msgid "Very Dark Orange" msgstr "Дуже темно-жовтогарÑчий" -#: gtk/gtkcolorchooserwidget.c:456 +#: gtk/gtkcolorchooserwidget.c:460 msgctxt "Color name" msgid "Very Light Red" msgstr "Дуже Ñвітло-червоний" -#: gtk/gtkcolorchooserwidget.c:457 +#: gtk/gtkcolorchooserwidget.c:461 msgctxt "Color name" msgid "Light Red" msgstr "Світло-червоний" -#: gtk/gtkcolorchooserwidget.c:458 +#: gtk/gtkcolorchooserwidget.c:462 msgctxt "Color name" msgid "Red" msgstr "Червоний" -#: gtk/gtkcolorchooserwidget.c:459 +#: gtk/gtkcolorchooserwidget.c:463 msgctxt "Color name" msgid "Dark Red" msgstr "Темно-червоний" -#: gtk/gtkcolorchooserwidget.c:460 +#: gtk/gtkcolorchooserwidget.c:464 msgctxt "Color name" msgid "Very Dark Red" msgstr "Дуже темно-червоний" -#: gtk/gtkcolorchooserwidget.c:461 +#: gtk/gtkcolorchooserwidget.c:465 msgctxt "Color name" msgid "Very Light Purple" msgstr "Дуже Ñвітло-пурпуровий" -#: gtk/gtkcolorchooserwidget.c:462 +#: gtk/gtkcolorchooserwidget.c:466 msgctxt "Color name" msgid "Light Purple" msgstr "Світло-пурпуровий" -#: gtk/gtkcolorchooserwidget.c:463 +#: gtk/gtkcolorchooserwidget.c:467 msgctxt "Color name" msgid "Purple" msgstr "Пурпуровий" -#: gtk/gtkcolorchooserwidget.c:464 +#: gtk/gtkcolorchooserwidget.c:468 msgctxt "Color name" msgid "Dark Purple" msgstr "Темно-пурпуровий" -#: gtk/gtkcolorchooserwidget.c:465 +#: gtk/gtkcolorchooserwidget.c:469 msgctxt "Color name" msgid "Very Dark Purple" msgstr "Дуже темно-пурпуровий" -#: gtk/gtkcolorchooserwidget.c:466 +#: gtk/gtkcolorchooserwidget.c:470 msgctxt "Color name" msgid "Very Light Brown" msgstr "Дуже Ñвітло-коричневий" -#: gtk/gtkcolorchooserwidget.c:467 +#: gtk/gtkcolorchooserwidget.c:471 msgctxt "Color name" msgid "Light Brown" msgstr "Світло-коричневий" -#: gtk/gtkcolorchooserwidget.c:468 +#: gtk/gtkcolorchooserwidget.c:472 msgctxt "Color name" msgid "Brown" msgstr "Коричневий" -#: gtk/gtkcolorchooserwidget.c:469 +#: gtk/gtkcolorchooserwidget.c:473 msgctxt "Color name" msgid "Dark Brown" msgstr "Темно-коричневий" -#: gtk/gtkcolorchooserwidget.c:470 +#: gtk/gtkcolorchooserwidget.c:474 msgctxt "Color name" msgid "Very Dark Brown" msgstr "Дуже темно-коричневий" -#: gtk/gtkcolorchooserwidget.c:471 +#: gtk/gtkcolorchooserwidget.c:475 msgctxt "Color name" msgid "White" msgstr "Білий" -#: gtk/gtkcolorchooserwidget.c:472 +#: gtk/gtkcolorchooserwidget.c:476 msgctxt "Color name" msgid "Light Gray 1" msgstr "Світло-Ñірий 1" -#: gtk/gtkcolorchooserwidget.c:473 +#: gtk/gtkcolorchooserwidget.c:477 msgctxt "Color name" msgid "Light Gray 2" msgstr "Світло-Ñірий 2" -#: gtk/gtkcolorchooserwidget.c:474 +#: gtk/gtkcolorchooserwidget.c:478 msgctxt "Color name" msgid "Light Gray 3" msgstr "Світло-Ñірий 3" -#: gtk/gtkcolorchooserwidget.c:475 +#: gtk/gtkcolorchooserwidget.c:479 msgctxt "Color name" msgid "Light Gray 4" msgstr "Світло-Ñірий 4" -#: gtk/gtkcolorchooserwidget.c:476 +#: gtk/gtkcolorchooserwidget.c:480 msgctxt "Color name" msgid "Dark Gray 1" msgstr "Темно-Ñірий 1" -#: gtk/gtkcolorchooserwidget.c:477 +#: gtk/gtkcolorchooserwidget.c:481 msgctxt "Color name" msgid "Dark Gray 2" msgstr "Темно-Ñірий 2" -#: gtk/gtkcolorchooserwidget.c:478 +#: gtk/gtkcolorchooserwidget.c:482 msgctxt "Color name" msgid "Dark Gray 3" msgstr "Темно-Ñірий 3" -#: gtk/gtkcolorchooserwidget.c:479 +#: gtk/gtkcolorchooserwidget.c:483 msgctxt "Color name" msgid "Dark Gray 4" msgstr "Темно-Ñірий 4" -#: gtk/gtkcolorchooserwidget.c:480 +#: gtk/gtkcolorchooserwidget.c:484 msgctxt "Color name" msgid "Black" msgstr "Чорний" #. translators: label for the custom section in the color chooser -#: gtk/gtkcolorchooserwidget.c:552 +#: gtk/gtkcolorchooserwidget.c:556 msgid "Custom" msgstr "ВлаÑний" -#: gtk/gtkcolorchooserwidget.c:585 +#: gtk/gtkcolorchooserwidget.c:589 #, c-format msgid "Custom color %d: %s" msgstr "ВлаÑний колір %d: %s" @@ -2006,70 +2048,65 @@ msgstr "Ðалаштувати" msgid "default:mm" msgstr "default:mm" -#: gtk/gtkcustompaperunixdialog.c:318 +#: gtk/gtkcustompaperunixdialog.c:297 msgid "Margins from Printer…" msgstr "ÐŸÐ¾Ð»Ñ Ð· принтера…" -#: gtk/gtkcustompaperunixdialog.c:348 gtk/gtkmessagedialog.c:162 -#: gtk/ui/gtkassistant.ui:40 -msgid "_Close" -msgstr "_Закрити" - #. And show the custom paper dialog -#: gtk/gtkcustompaperunixdialog.c:402 gtk/gtkprintunixdialog.c:3016 +#: gtk/gtkcustompaperunixdialog.c:383 gtk/gtkprintunixdialog.c:3026 msgid "Manage Custom Sizes" msgstr "ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ð»Ð°Ñними розмірами" -#: gtk/gtkcustompaperunixdialog.c:466 gtk/gtkpagesetupunixdialog.c:720 +#: gtk/gtkcustompaperunixdialog.c:446 gtk/gtkpagesetupunixdialog.c:721 msgid "inch" msgstr "дюйми" -#: gtk/gtkcustompaperunixdialog.c:468 gtk/gtkpagesetupunixdialog.c:718 +#: gtk/gtkcustompaperunixdialog.c:448 gtk/gtkpagesetupunixdialog.c:719 msgid "mm" msgstr "мм" -#: gtk/gtkcustompaperunixdialog.c:625 +#: gtk/gtkcustompaperunixdialog.c:604 #, c-format msgid "Custom Size %d" msgstr "ВлаÑний розмір %d" -#: gtk/gtkcustompaperunixdialog.c:939 +#: gtk/gtkcustompaperunixdialog.c:914 msgid "_Width:" msgstr "_Ширина:" -#: gtk/gtkcustompaperunixdialog.c:950 +#: gtk/gtkcustompaperunixdialog.c:923 msgid "_Height:" msgstr "_ВиÑота:" -#: gtk/gtkcustompaperunixdialog.c:961 +#: gtk/gtkcustompaperunixdialog.c:932 msgid "Paper Size" msgstr "Розмір паперу" -#: gtk/gtkcustompaperunixdialog.c:970 +#: gtk/gtkcustompaperunixdialog.c:939 msgid "_Top:" msgstr "_Верхнє:" -#: gtk/gtkcustompaperunixdialog.c:981 +#: gtk/gtkcustompaperunixdialog.c:948 msgid "_Bottom:" msgstr "_Ðижнє:" -#: gtk/gtkcustompaperunixdialog.c:992 +#: gtk/gtkcustompaperunixdialog.c:957 msgid "_Left:" msgstr "_Ліве:" -#: gtk/gtkcustompaperunixdialog.c:1003 +#: gtk/gtkcustompaperunixdialog.c:966 msgid "_Right:" msgstr "_Праве:" -#: gtk/gtkcustompaperunixdialog.c:1039 +#: gtk/gtkcustompaperunixdialog.c:999 msgid "Paper Margins" msgstr "ÐŸÐ¾Ð»Ñ Ñторінки" -#: gtk/gtkentry.c:3665 +#: gtk/gtkentry.c:3685 msgid "Insert Emoji" msgstr "Ð’Ñтавити емодзі" -#: gtk/gtkfilechooserdialog.c:549 +#: gtk/gtkfilechooserdialog.c:552 msgid "_Name" msgstr "_Ðазва" @@ -2129,31 +2166,29 @@ msgstr "Тека з такою назвою вже Ñ–Ñнує" msgid "A file with that name already exists" msgstr "Файл з такою назвою вже Ñ–Ñнує" -#: gtk/gtkfilechoosernative.c:509 gtk/gtkfilechoosernative.c:580 -#: gtk/gtkfilechooserwidget.c:1210 gtk/gtkfilechooserwidget.c:5800 -#: gtk/gtkmessagedialog.c:166 gtk/gtkmessagedialog.c:175 -#: gtk/gtkmountoperation.c:608 gtk/gtkpagesetupunixdialog.c:283 -#: gtk/gtkprintbackend.c:637 gtk/gtkprinteroptionwidget.c:721 -#: gtk/gtkprintunixdialog.c:651 gtk/gtkprintunixdialog.c:807 -#: gtk/gtkwindow.c:6113 gtk/inspector/css-editor.c:248 -#: gtk/inspector/recorder.c:1723 gtk/ui/gtkappchooserdialog.ui:45 +#: gtk/gtkfilechoosernative.c:520 gtk/gtkfilechoosernative.c:600 +#: gtk/gtkfilechooserwidget.c:1168 gtk/gtkfilechooserwidget.c:4997 +#: gtk/gtkfiledialog.c:718 gtk/gtkmessagedialog.c:170 +#: gtk/gtkmessagedialog.c:179 gtk/gtkmountoperation.c:608 +#: gtk/gtkpagesetupunixdialog.c:283 gtk/gtkprintbackend.c:638 +#: gtk/gtkprintunixdialog.c:657 gtk/gtkprintunixdialog.c:814 +#: gtk/gtkwindow.c:6156 gtk/ui/gtkappchooserdialog.ui:45 #: gtk/ui/gtkassistant.ui:52 gtk/ui/gtkcolorchooserdialog.ui:33 #: gtk/ui/gtkfontchooserdialog.ui:24 msgid "_Cancel" msgstr "_СкаÑувати" -#: gtk/gtkfilechoosernative.c:510 gtk/gtkfilechoosernative.c:574 -#: gtk/gtkplacessidebar.c:3146 gtk/gtkplacessidebar.c:3231 -#: gtk/gtkplacesview.c:1659 +#: gtk/gtkfilechoosernative.c:521 gtk/gtkfilechoosernative.c:594 +#: gtk/gtkfiledialog.c:690 gtk/gtkplacessidebar.c:3145 +#: gtk/gtkplacessidebar.c:3230 gtk/gtkplacesview.c:1645 msgid "_Open" msgstr "_Відкрити" -#: gtk/gtkfilechoosernative.c:574 gtk/inspector/css-editor.c:249 -#: gtk/inspector/recorder.c:1724 +#: gtk/gtkfilechoosernative.c:594 gtk/gtkfiledialog.c:695 msgid "_Save" msgstr "З_берегти" -#: gtk/gtkfilechoosernativequartz.c:339 gtk/ui/gtkfilechooserwidget.ui:346 +#: gtk/gtkfilechoosernativequartz.c:340 gtk/ui/gtkfilechooserwidget.ui:546 msgid "Select which types of files are shown" msgstr "Виберіть типи файлів, Ñкі Ñлід показувати" @@ -2161,384 +2196,404 @@ msgstr "Виберіть типи файлів, Ñкі Ñлід показува #. * is a hostname. Nautilus and the panel contain the same string #. * to translate. #. -#: gtk/gtkfilechooserutils.c:362 +#: gtk/gtkfilechooserutils.c:364 #, c-format msgid "%1$s on %2$s" msgstr "%1$s на %2$s" -#: gtk/gtkfilechooserwidget.c:319 +#: gtk/gtkfilechooserwidget.c:347 msgid "Type name of new folder" msgstr "Введіть назву нової теки" -#: gtk/gtkfilechooserwidget.c:724 +#: gtk/gtkfilechooserwidget.c:710 msgid "The folder could not be created" msgstr "Ðе вдалоÑÑŒ Ñтворити теку" -#: gtk/gtkfilechooserwidget.c:737 +#: gtk/gtkfilechooserwidget.c:723 msgid "You need to choose a valid filename." msgstr "Потрібно вибрати допуÑтиму назву файла." -#: gtk/gtkfilechooserwidget.c:740 +#: gtk/gtkfilechooserwidget.c:726 #, c-format msgid "Cannot create a file under %s as it is not a folder" msgstr "Ðе вдалоÑÑŒ Ñтворити файл під %s, оÑкільки це не Ñ” текою" -#: gtk/gtkfilechooserwidget.c:750 +#: gtk/gtkfilechooserwidget.c:736 msgid "Cannot create file as the filename is too long" msgstr "Ðе вдалоÑÑ Ñтворити файл із вказаною назвою. Ðазва Ñ” надто довгою." -#: gtk/gtkfilechooserwidget.c:751 +#: gtk/gtkfilechooserwidget.c:737 msgid "Try using a shorter name." msgstr "Спробуйте Ñкорити назву." -#: gtk/gtkfilechooserwidget.c:761 +#: gtk/gtkfilechooserwidget.c:747 msgid "You may only select folders" msgstr "Позначати можна лише теки" -#: gtk/gtkfilechooserwidget.c:762 +#: gtk/gtkfilechooserwidget.c:748 msgid "The item that you selected is not a folder try using a different item." msgstr "Вибраний пункт не Ñ” текою; Ñпробуйте інший пункт." -#: gtk/gtkfilechooserwidget.c:770 +#: gtk/gtkfilechooserwidget.c:756 msgid "Invalid file name" msgstr "Ðеправильна назва файла" -#: gtk/gtkfilechooserwidget.c:779 +#: gtk/gtkfilechooserwidget.c:765 msgid "The folder contents could not be displayed" msgstr "Ðе вдалоÑÑŒ показати вміÑÑ‚ теки" -#: gtk/gtkfilechooserwidget.c:787 +#: gtk/gtkfilechooserwidget.c:773 msgid "The file could not be deleted" msgstr "Ðеможливо вилучити файл" -#: gtk/gtkfilechooserwidget.c:795 +#: gtk/gtkfilechooserwidget.c:781 msgid "The file could not be moved to the Trash" msgstr "Ðеможливо переміÑтити файл у Ñмітник" -#: gtk/gtkfilechooserwidget.c:1206 +#: gtk/gtkfilechooserwidget.c:1166 #, c-format msgid "Are you sure you want to permanently delete “%sâ€?" msgstr "ОÑтаточно вилучити «%s»?" -#: gtk/gtkfilechooserwidget.c:1209 -#, c-format +#: gtk/gtkfilechooserwidget.c:1167 msgid "If you delete an item, it will be permanently lost." msgstr "Якщо вилучити об'єкт, його буде втрачено назавжди." -#: gtk/gtkfilechooserwidget.c:1211 gtk/gtkfilechooserwidget.c:1827 -#: gtk/gtklabel.c:5652 gtk/gtktext.c:6051 gtk/gtktextview.c:8968 +#: gtk/gtkfilechooserwidget.c:1168 gtk/gtkfilechooserwidget.c:1793 +#: gtk/gtklabel.c:5661 gtk/gtktext.c:6087 gtk/gtktextview.c:8997 msgid "_Delete" msgstr "Ð’_илучити" -#: gtk/gtkfilechooserwidget.c:1334 +#: gtk/gtkfilechooserwidget.c:1281 msgid "The file could not be renamed" msgstr "Ðеможливо перейменувати файл" -#: gtk/gtkfilechooserwidget.c:1594 +#: gtk/gtkfilechooserwidget.c:1487 msgid "Could not select file" msgstr "Ðе вдалоÑÑŒ вибрати файл" -#: gtk/gtkfilechooserwidget.c:1807 +#: gtk/gtkfilechooserwidget.c:1702 gtk/ui/gtkfilechooserwidget.ui:66 +msgid "Switch to grid view" +msgstr "ПеремкнутиÑÑ Ð½Ð° переглÑд таблиці" + +#: gtk/gtkfilechooserwidget.c:1708 +msgid "Switch to list view" +msgstr "ПеремкнутиÑÑ Ð½Ð° переглÑд ÑпиÑку" + +#: gtk/gtkfilechooserwidget.c:1773 msgid "_Visit File" msgstr "_Відвідати файл" -#: gtk/gtkfilechooserwidget.c:1811 +#: gtk/gtkfilechooserwidget.c:1777 msgid "_Open With File Manager" msgstr "_Відкрити через файловий менеджер" -#: gtk/gtkfilechooserwidget.c:1815 +#: gtk/gtkfilechooserwidget.c:1781 msgid "_Copy Location" msgstr "Копіювати _адреÑу" -#: gtk/gtkfilechooserwidget.c:1819 +#: gtk/gtkfilechooserwidget.c:1785 msgid "_Add to Bookmarks" msgstr "_Додати до закладок" -#: gtk/gtkfilechooserwidget.c:1823 gtk/gtkplacessidebar.c:2310 -#: gtk/gtkplacessidebar.c:3267 gtk/ui/gtkfilechooserwidget.ui:465 +#: gtk/gtkfilechooserwidget.c:1789 gtk/gtkplacessidebar.c:2309 +#: gtk/gtkplacessidebar.c:3266 gtk/ui/gtkfilechooserwidget.ui:665 msgid "_Rename" msgstr "Пере_йменувати" -#: gtk/gtkfilechooserwidget.c:1831 +#: gtk/gtkfilechooserwidget.c:1797 msgid "_Move to Trash" msgstr "Пере_міÑтити у Ñмітник" -#: gtk/gtkfilechooserwidget.c:1840 +#: gtk/gtkfilechooserwidget.c:1806 msgid "Show _Hidden Files" msgstr "Показати при_ховані файли" -#: gtk/gtkfilechooserwidget.c:1844 +#: gtk/gtkfilechooserwidget.c:1810 msgid "Show _Size Column" msgstr "Показувати _розмір ÑтовпцÑ" -#: gtk/gtkfilechooserwidget.c:1848 +#: gtk/gtkfilechooserwidget.c:1815 msgid "Show T_ype Column" msgstr "Показувати Ñтовпчик _типу" -#: gtk/gtkfilechooserwidget.c:1852 +#: gtk/gtkfilechooserwidget.c:1820 msgid "Show _Time" msgstr "Показувати _чаÑ" -#: gtk/gtkfilechooserwidget.c:1856 +#: gtk/gtkfilechooserwidget.c:1825 msgid "Sort _Folders Before Files" msgstr "ВпорÑдковувати _теки перед файлами" +#: gtk/gtkfilechooserwidget.c:1959 gtk/gtkfilechooserwidget.c:1995 +#: gtk/gtkfilechooserwidget.c:3896 +msgid "Unknown" +msgstr "Ðевідомо" + +#: gtk/gtkfilechooserwidget.c:2053 gtk/gtkplacessidebar.c:1026 +msgid "Home" +msgstr "Домівка" + #. this is the header for the location column in the print dialog -#: gtk/gtkfilechooserwidget.c:2256 gtk/inspector/css-node-tree.ui:135 -#: gtk/ui/gtkfilechooserwidget.ui:186 gtk/ui/gtkprintunixdialog.ui:114 +#: gtk/gtkfilechooserwidget.c:2220 gtk/inspector/css-node-tree.ui:76 +#: gtk/ui/gtkfilechooserwidget.ui:238 gtk/ui/gtkprintunixdialog.ui:114 msgid "Location" msgstr "ÐдреÑа" #. Label -#: gtk/gtkfilechooserwidget.c:2363 +#: gtk/gtkfilechooserwidget.c:2327 msgid "_Name:" msgstr "_Ðазва:" -#: gtk/gtkfilechooserwidget.c:2897 gtk/gtkfilechooserwidget.c:2911 +#: gtk/gtkfilechooserwidget.c:2867 gtk/gtkfilechooserwidget.c:2881 #, c-format msgid "Searching in %s" msgstr "Пошук в %s" -#: gtk/gtkfilechooserwidget.c:2917 +#: gtk/gtkfilechooserwidget.c:2887 msgid "Searching" msgstr "Пошук" -#: gtk/gtkfilechooserwidget.c:2923 +#: gtk/gtkfilechooserwidget.c:2893 msgid "Enter location or URL" msgstr "УвеÑти адреÑу або URL" -#: gtk/gtkfilechooserwidget.c:3813 gtk/gtkfilechooserwidget.c:6637 -#: gtk/ui/gtkfilechooserwidget.ui:226 +#: gtk/gtkfilechooserwidget.c:3459 gtk/gtkfilechooserwidget.c:5782 +#: gtk/ui/gtkfilechooserwidget.ui:383 msgid "Modified" msgstr "Змінено" -#: gtk/gtkfilechooserwidget.c:4072 +#: gtk/gtkfilechooserwidget.c:3640 #, c-format msgid "Could not read the contents of %s" msgstr "Ðе вдалоÑÑŒ прочитати вміÑÑ‚ %s" -#: gtk/gtkfilechooserwidget.c:4076 +#: gtk/gtkfilechooserwidget.c:3644 msgid "Could not read the contents of the folder" msgstr "Ðе вдалоÑÑŒ прочитати вміÑÑ‚ теки" #. Translators: see g_date_time_format() for details on the format -#: gtk/gtkfilechooserwidget.c:4216 gtk/gtkfilechooserwidget.c:4259 +#: gtk/gtkfilechooserwidget.c:3791 gtk/gtkfilechooserwidget.c:3834 msgid "%H:%M" msgstr "%H:%M" -#: gtk/gtkfilechooserwidget.c:4218 gtk/gtkfilechooserwidget.c:4261 +#: gtk/gtkfilechooserwidget.c:3793 gtk/gtkfilechooserwidget.c:3836 msgid "%l:%M %p" msgstr "%l:%M %p" -#: gtk/gtkfilechooserwidget.c:4222 +#: gtk/gtkfilechooserwidget.c:3797 msgid "Yesterday" msgstr "Учора" -#: gtk/gtkfilechooserwidget.c:4230 +#: gtk/gtkfilechooserwidget.c:3805 msgid "%-e %b" msgstr "%-e %b" -#: gtk/gtkfilechooserwidget.c:4234 +#: gtk/gtkfilechooserwidget.c:3809 msgid "%-e %b %Y" msgstr "%-e %b %Y" -#: gtk/gtkfilechooserwidget.c:4323 gtk/gtkfilechooserwidget.c:4331 +#: gtk/gtkfilechooserwidget.c:3851 gtk/gtkfilechooserwidget.c:3859 msgid "Program" msgstr "Програма" -#: gtk/gtkfilechooserwidget.c:4324 +#: gtk/gtkfilechooserwidget.c:3852 msgid "Audio" msgstr "Звук" -#: gtk/gtkfilechooserwidget.c:4325 gtk/gtkfontbutton.c:596 -#: gtk/inspector/visual.ui:170 -msgid "Font" -msgstr "Шрифт" - -#: gtk/gtkfilechooserwidget.c:4326 +#: gtk/gtkfilechooserwidget.c:3854 msgid "Image" msgstr "Картинка" -#: gtk/gtkfilechooserwidget.c:4327 +#: gtk/gtkfilechooserwidget.c:3855 msgid "Archive" msgstr "Ðрхів" -#: gtk/gtkfilechooserwidget.c:4328 +#: gtk/gtkfilechooserwidget.c:3856 msgid "Markup" msgstr "Розмітка" -#: gtk/gtkfilechooserwidget.c:4329 gtk/gtkfilechooserwidget.c:4330 +#: gtk/gtkfilechooserwidget.c:3857 gtk/gtkfilechooserwidget.c:3858 msgid "Text" msgstr "ТекÑÑ‚" -#: gtk/gtkfilechooserwidget.c:4332 +#: gtk/gtkfilechooserwidget.c:3860 msgid "Video" msgstr "Відео" -#: gtk/gtkfilechooserwidget.c:4333 +#: gtk/gtkfilechooserwidget.c:3861 msgid "Contacts" msgstr "Контакти" -#: gtk/gtkfilechooserwidget.c:4334 +#: gtk/gtkfilechooserwidget.c:3862 msgid "Calendar" msgstr "Календар" -#: gtk/gtkfilechooserwidget.c:4335 +#: gtk/gtkfilechooserwidget.c:3863 msgid "Document" msgstr "Документ" -#: gtk/gtkfilechooserwidget.c:4336 +#: gtk/gtkfilechooserwidget.c:3864 msgid "Presentation" msgstr "ПрезентаціÑ" -#: gtk/gtkfilechooserwidget.c:4337 +#: gtk/gtkfilechooserwidget.c:3865 msgid "Spreadsheet" msgstr "Електронна таблицÑ" -#: gtk/gtkfilechooserwidget.c:4368 gtk/gtkfilechooserwidget.c:4561 -msgid "Unknown" -msgstr "Ðевідомо" - -#: gtk/gtkfilechooserwidget.c:4600 gtk/gtkplacessidebar.c:1027 -msgid "Home" -msgstr "Домівка" - -#: gtk/gtkfilechooserwidget.c:5793 gtk/gtkprintunixdialog.c:642 +#: gtk/gtkfilechooserwidget.c:4989 gtk/gtkprintunixdialog.c:648 #, c-format msgid "A file named “%s†already exists. Do you want to replace it?" msgstr "Файл з назвою «%s» вже Ñ–Ñнує. Замінити його?" -#: gtk/gtkfilechooserwidget.c:5796 gtk/gtkprintunixdialog.c:646 +#: gtk/gtkfilechooserwidget.c:4991 gtk/gtkprintunixdialog.c:652 #, c-format msgid "" "The file already exists in “%sâ€. Replacing it will overwrite its contents." msgstr "Файл у «%s» вже Ñ–Ñнує. ÐŸÐµÑ€ÐµÐ·Ð°Ð¿Ð¸Ñ Ð¿Ñ€Ð¸Ð·Ð²ÐµÐ´Ðµ до втрати вміÑту." -#: gtk/gtkfilechooserwidget.c:5801 gtk/gtkprintunixdialog.c:654 +#: gtk/gtkfilechooserwidget.c:4997 gtk/gtkprintunixdialog.c:660 msgid "_Replace" msgstr "_Замінити" -#: gtk/gtkfilechooserwidget.c:5962 +#: gtk/gtkfilechooserwidget.c:5152 msgid "You do not have access to the specified folder." msgstr "Ви не маєте доÑтупу до вказаної теки." -#: gtk/gtkfilechooserwidget.c:6566 +#: gtk/gtkfilechooserwidget.c:5729 msgid "Could not send the search request" msgstr "Ðе вдалоÑÑŒ надіÑлати запит на пошук" -#: gtk/gtkfilechooserwidget.c:6876 +#: gtk/gtkfilechooserwidget.c:6005 msgid "Accessed" msgstr "Дозволено" -#: gtk/gtkfontbutton.c:395 -msgid "Sans 12" -msgstr "Sans 12" +#: gtk/gtkfiledialog.c:691 +#| msgid "Print to File" +msgid "Pick Files" +msgstr "Вибір файлів" -#: gtk/gtkfontbutton.c:506 gtk/gtkfontbutton.c:620 -msgid "Pick a Font" -msgstr "Виберіть шрифт" +#: gtk/gtkfiledialog.c:691 +#| msgid "Pick a Font" +msgid "Pick a File" +msgstr "Вибір файла" -#: gtk/gtkfontbutton.c:1323 -msgctxt "font" -msgid "None" -msgstr "Ðемає" +#: gtk/gtkfiledialog.c:696 +#| msgid "Select a File" +msgid "Save a File" +msgstr "Зберегти файл" + +#: gtk/gtkfiledialog.c:700 gtk/ui/gtkappchooserdialog.ui:50 +#: gtk/ui/gtkcolorchooserdialog.ui:38 gtk/ui/gtkfontchooserdialog.ui:29 +msgid "_Select" +msgstr "_Вибрати" + +#: gtk/gtkfiledialog.c:701 +#| msgid "Select a File" +msgid "Select Folders" +msgstr "Вибір тек" -#: gtk/gtkfontchooserdialog.c:184 +#: gtk/gtkfiledialog.c:701 +#| msgid "Select a File" +msgid "Select a Folder" +msgstr "Вибір теки" + +#: gtk/gtkfontchooserdialog.c:187 msgid "Change Font Features" msgstr "Змінити влаÑтивоÑÑ‚Ñ– шрифту" -#: gtk/gtkfontchooserwidget.c:1534 +#: gtk/gtkfontchooserwidget.c:1546 msgctxt "Font variation axis" msgid "Width" msgstr "Ширина" -#: gtk/gtkfontchooserwidget.c:1535 +#: gtk/gtkfontchooserwidget.c:1547 msgctxt "Font variation axis" msgid "Weight" msgstr "Вага" -#: gtk/gtkfontchooserwidget.c:1536 +#: gtk/gtkfontchooserwidget.c:1548 msgctxt "Font variation axis" msgid "Italic" msgstr "КурÑив" -#: gtk/gtkfontchooserwidget.c:1537 +#: gtk/gtkfontchooserwidget.c:1549 msgctxt "Font variation axis" msgid "Slant" msgstr "Ðахил" -#: gtk/gtkfontchooserwidget.c:1538 +#: gtk/gtkfontchooserwidget.c:1550 msgctxt "Font variation axis" msgid "Optical Size" msgstr "Оптичний розмір" -#: gtk/gtkfontchooserwidget.c:2094 +#: gtk/gtkfontchooserwidget.c:2102 msgctxt "Font feature value" msgid "Default" msgstr "Типове" -#: gtk/gtkfontchooserwidget.c:2111 +#: gtk/gtkfontchooserwidget.c:2119 msgctxt "Font feature value" msgid "Enable" msgstr "Увімкнути" -#: gtk/gtkfontchooserwidget.c:2439 +#: gtk/gtkfontchooserwidget.c:2447 msgid "Default" msgstr "Типово" -#: gtk/gtkfontchooserwidget.c:2501 +#: gtk/gtkfontchooserwidget.c:2509 msgid "Ligatures" msgstr "Лігатури" -#: gtk/gtkfontchooserwidget.c:2502 +#: gtk/gtkfontchooserwidget.c:2510 msgid "Letter Case" msgstr "Розмір літер" -#: gtk/gtkfontchooserwidget.c:2503 +#: gtk/gtkfontchooserwidget.c:2511 msgid "Number Case" msgstr "Розмір цифр" -#: gtk/gtkfontchooserwidget.c:2504 +#: gtk/gtkfontchooserwidget.c:2512 msgid "Number Spacing" msgstr "Інтервали між цифрами" -#: gtk/gtkfontchooserwidget.c:2505 +#: gtk/gtkfontchooserwidget.c:2513 msgid "Fractions" msgstr "Дроби" -#: gtk/gtkfontchooserwidget.c:2506 +#: gtk/gtkfontchooserwidget.c:2514 msgid "Style Variations" msgstr "Варіанти Ñтилів" -#: gtk/gtkfontchooserwidget.c:2508 +#: gtk/gtkfontchooserwidget.c:2516 msgid "Character Variations" msgstr "Варіанти Ñимволів" -#: gtk/gtkglarea.c:284 +#: gtk/gtkglarea.c:286 msgid "OpenGL context creation failed" msgstr "Ðе вдалоÑÑ Ñтворити контекÑÑ‚ OpenGL" -#: gtk/gtklabel.c:5649 gtk/gtktext.c:6039 gtk/gtktextview.c:8956 +#: gtk/gtklabel.c:5658 gtk/gtktext.c:6075 gtk/gtktextview.c:8985 msgid "Cu_t" msgstr "Ви_різати" -#: gtk/gtklabel.c:5650 gtk/gtktext.c:6043 gtk/gtktextview.c:8960 +#: gtk/gtklabel.c:5659 gtk/gtktext.c:6079 gtk/gtktextview.c:8989 msgid "_Copy" msgstr "_Копіювати" -#: gtk/gtklabel.c:5651 gtk/gtktext.c:6047 gtk/gtktextview.c:8964 +#: gtk/gtklabel.c:5660 gtk/gtktext.c:6083 gtk/gtktextview.c:8993 msgid "_Paste" msgstr "Ð’ÑÑ‚_авити" -#: gtk/gtklabel.c:5657 gtk/gtktext.c:6060 gtk/gtktextview.c:8989 +#: gtk/gtklabel.c:5666 gtk/gtktext.c:6096 gtk/gtktextview.c:9018 msgid "Select _All" msgstr "Виді_лити вÑе" -#: gtk/gtklabel.c:5662 +#: gtk/gtklabel.c:5671 msgid "_Open Link" msgstr "_Відкрити поÑиланнÑ" -#: gtk/gtklabel.c:5666 +#: gtk/gtklabel.c:5675 msgid "Copy _Link Address" msgstr "Копіювати _адреÑу поÑиланнÑ" @@ -2546,7 +2601,7 @@ msgstr "Копіювати _адреÑу поÑиланнÑ" msgid "_Copy URL" msgstr "_Копіювати адреÑу" -#: gtk/gtklinkbutton.c:540 +#: gtk/gtklinkbutton.c:547 msgid "Invalid URI" msgstr "Ðеправильний URI" @@ -2587,7 +2642,7 @@ msgstr "" #. * Do *not* translate it to "predefinito:LTR", if it #. * it isn't default:LTR or default:RTL it will not work #. -#: gtk/gtkmain.c:788 +#: gtk/gtkmain.c:789 msgid "default:LTR" msgstr "default:LTR" @@ -2639,16 +2694,16 @@ msgctxt "short time format" msgid "%d:%02d" msgstr "%d:%02d" -#: gtk/gtkmessagedialog.c:158 gtk/gtkmessagedialog.c:176 -#: gtk/gtkprintbackend.c:638 gtk/gtkwindow.c:6114 +#: gtk/gtkmessagedialog.c:162 gtk/gtkmessagedialog.c:180 +#: gtk/gtkprintbackend.c:639 gtk/gtkwindow.c:6157 msgid "_OK" msgstr "_Гаразд" -#: gtk/gtkmessagedialog.c:170 +#: gtk/gtkmessagedialog.c:174 msgid "_No" msgstr "Ð_Ñ–" -#: gtk/gtkmessagedialog.c:171 +#: gtk/gtkmessagedialog.c:175 msgid "_Yes" msgstr "_Так" @@ -2656,69 +2711,74 @@ msgstr "_Так" msgid "Co_nnect" msgstr "З'_єднатиÑÑŒ" -#: gtk/gtkmountoperation.c:675 +#: gtk/gtkmountoperation.c:676 msgid "Connect As" msgstr "З'єднатиÑÑŒ Ñк" -#: gtk/gtkmountoperation.c:684 +#: gtk/gtkmountoperation.c:685 msgid "_Anonymous" msgstr "_Ðнонімний кориÑтувач" -#: gtk/gtkmountoperation.c:691 +#: gtk/gtkmountoperation.c:692 msgid "Registered U_ser" msgstr "ЗареєÑтрований _кориÑтувач" -#: gtk/gtkmountoperation.c:701 +#: gtk/gtkmountoperation.c:702 msgid "_Username" msgstr "_КориÑтувач" -#: gtk/gtkmountoperation.c:706 +#: gtk/gtkmountoperation.c:707 msgid "_Domain" msgstr "_Домен" -#: gtk/gtkmountoperation.c:715 +#: gtk/gtkmountoperation.c:716 msgid "Volume type" msgstr "Тип тому" -#: gtk/gtkmountoperation.c:725 +#: gtk/gtkmountoperation.c:726 msgid "_Hidden" msgstr "При_хований" -#: gtk/gtkmountoperation.c:728 +#: gtk/gtkmountoperation.c:729 msgid "_Windows system" msgstr "С_иÑтема Windows" -#: gtk/gtkmountoperation.c:731 +#: gtk/gtkmountoperation.c:732 msgid "_PIM" msgstr "_PIM" -#: gtk/gtkmountoperation.c:737 +#: gtk/gtkmountoperation.c:738 msgid "_Password" msgstr "_Пароль" -#: gtk/gtkmountoperation.c:759 +#: gtk/gtkmountoperation.c:760 msgid "Forget password _immediately" msgstr "_Забути пароль негайно" -#: gtk/gtkmountoperation.c:769 +#: gtk/gtkmountoperation.c:770 msgid "Remember password until you _logout" msgstr "Запам'Ñтати пароль _до виходу з ÑеанÑу" -#: gtk/gtkmountoperation.c:780 +#: gtk/gtkmountoperation.c:781 msgid "Remember _forever" msgstr "Запам'Ñтати _назавжди" -#: gtk/gtkmountoperation.c:1206 +#: gtk/gtkmountoperation.c:1251 #, c-format msgid "Unknown Application (PID %d)" msgstr "Ðевідома програма (PID %d)" -#: gtk/gtkmountoperation.c:1405 +#. Use GTK_DIALOG_DESTROY_WITH_PARENT here since the parent dialog can be +#. * indeed be destroyed via the GMountOperation::abort signal... for example, +#. * this is triggered if the user yanks the device while we are showing +#. * the dialog... +#. +#: gtk/gtkmountoperation.c:1396 #, c-format msgid "Unable to end process" msgstr "Ðе вдалоÑÑŒ завершити процеÑ" -#: gtk/gtkmountoperation.c:1435 +#: gtk/gtkmountoperation.c:1546 msgid "_End Process" msgstr "_Завершити процеÑ" @@ -2728,27 +2788,27 @@ msgid "Cannot kill process with PID %d. Operation is not implemented." msgstr "Ðе вдалоÑÑŒ знищити Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð· PID %d. Дію не здійÑнено." #. translators: this string is a name for the 'less' command -#: gtk/gtkmountoperation-x11.c:984 +#: gtk/gtkmountoperation-x11.c:987 msgid "Terminal Pager" msgstr "Гортач термінала" -#: gtk/gtkmountoperation-x11.c:985 +#: gtk/gtkmountoperation-x11.c:988 msgid "Top Command" msgstr "Ð’ÐµÑ€Ñ…Ð½Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½Ð°" -#: gtk/gtkmountoperation-x11.c:986 +#: gtk/gtkmountoperation-x11.c:989 msgid "Bourne Again Shell" msgstr "Bourne Again Shell" -#: gtk/gtkmountoperation-x11.c:987 +#: gtk/gtkmountoperation-x11.c:990 msgid "Bourne Shell" msgstr "Bourne Shell" -#: gtk/gtkmountoperation-x11.c:988 +#: gtk/gtkmountoperation-x11.c:991 msgid "Z Shell" msgstr "Z Shell" -#: gtk/gtkmountoperation-x11.c:1085 +#: gtk/gtkmountoperation-x11.c:1091 #, c-format msgid "Cannot end process with PID %d: %s" msgstr "Ðе вдалоÑÑŒ завершити Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð· PID %d: %s" @@ -2759,23 +2819,23 @@ msgstr "" "GTK не вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ мультимедійний модуль. Перевірте, чи належним чином " "вÑтановлено програми." -#: gtk/gtknotebook.c:1491 +#: gtk/gtknotebook.c:1490 msgid "Tab list" msgstr "СпиÑок вкладок" -#: gtk/gtknotebook.c:3214 +#: gtk/gtknotebook.c:3213 msgid "Previous tab" msgstr "ÐŸÐ¾Ð¿ÐµÑ€ÐµÐ´Ð½Ñ Ð²ÐºÐ»Ð°Ð´ÐºÐ°" -#: gtk/gtknotebook.c:3218 +#: gtk/gtknotebook.c:3217 msgid "Next tab" msgstr "ÐаÑтупна вкладка" -#: gtk/gtknotebook.c:4038 +#: gtk/gtknotebook.c:4037 msgid "Tab" msgstr "Вкладка" -#: gtk/gtknotebook.c:4336 gtk/gtknotebook.c:6544 +#: gtk/gtknotebook.c:4333 gtk/gtknotebook.c:6539 #, c-format msgid "Page %u" msgstr "Сторінка %u" @@ -2784,7 +2844,7 @@ msgstr "Сторінка %u" msgid "Not a valid page setup file" msgstr "Ðекоректний файл Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ñ€ÑƒÐºÑƒ" -#: gtk/gtkpagesetupunixdialog.c:201 gtk/gtkprintunixdialog.c:736 +#: gtk/gtkpagesetupunixdialog.c:199 gtk/gtkprintunixdialog.c:743 msgid "Manage Custom Sizes…" msgstr "Організувати влаÑні розміри…" @@ -2792,15 +2852,15 @@ msgstr "Організувати влаÑні розміри…" msgid "_Apply" msgstr "ЗаÑÑ‚_оÑувати" -#: gtk/gtkpagesetupunixdialog.c:318 gtk/gtkpagesetupunixdialog.c:570 +#: gtk/gtkpagesetupunixdialog.c:319 gtk/gtkpagesetupunixdialog.c:571 msgid "Any Printer" msgstr "Будь-Ñкий принтер" -#: gtk/gtkpagesetupunixdialog.c:319 +#: gtk/gtkpagesetupunixdialog.c:320 msgid "For portable documents" msgstr "Ð”Ð»Ñ Ð¿Ð¾Ñ€Ñ‚Ð°Ñ‚Ð¸Ð²Ð½Ð¸Ñ… документів" -#: gtk/gtkpagesetupunixdialog.c:738 +#: gtk/gtkpagesetupunixdialog.c:739 #, c-format msgid "" "Margins:\n" @@ -2815,104 +2875,104 @@ msgstr "" " Верхнє: %s %s\n" " Ðижнє: %s %s" -#: gtk/gtkpagesetupunixdialog.c:784 gtk/ui/gtkpagesetupunixdialog.ui:5 +#: gtk/gtkpagesetupunixdialog.c:785 gtk/ui/gtkpagesetupunixdialog.ui:5 #: gtk/ui/gtkprintunixdialog.ui:709 msgid "Page Setup" msgstr "Параметри Ñторінки" -#: gtk/gtkpasswordentry.c:173 +#: gtk/gtkpasswordentry.c:170 msgid "Hide Text" msgstr "Сховати текÑÑ‚" -#: gtk/gtkpasswordentry.c:178 gtk/gtkpasswordentry.c:622 +#: gtk/gtkpasswordentry.c:175 gtk/gtkpasswordentry.c:619 msgid "Show Text" msgstr "Показати текÑÑ‚" -#: gtk/gtkpasswordentry.c:217 +#: gtk/gtkpasswordentry.c:214 msgid "Caps Lock is on" msgstr "Caps Lock увімкнено" -#: gtk/gtkpasswordentry.c:698 +#: gtk/gtkpasswordentry.c:695 msgid "_Show Text" msgstr "По_казати текÑÑ‚" #. translators: %s is the name of a cloud provider for files -#: gtk/gtkplacessidebar.c:914 +#: gtk/gtkplacessidebar.c:913 #, c-format msgid "Open %s" msgstr "Відкрити %s" -#: gtk/gtkplacessidebar.c:1005 +#: gtk/gtkplacessidebar.c:1004 msgid "Recent" msgstr "Ðещодавні" -#: gtk/gtkplacessidebar.c:1007 +#: gtk/gtkplacessidebar.c:1006 msgid "Recent files" msgstr "Ðещодавні файли" -#: gtk/gtkplacessidebar.c:1016 +#: gtk/gtkplacessidebar.c:1015 msgid "Starred" msgstr "З зірочками" -#: gtk/gtkplacessidebar.c:1018 +#: gtk/gtkplacessidebar.c:1017 msgid "Starred files" msgstr "Файли з зірочками" -#: gtk/gtkplacessidebar.c:1029 +#: gtk/gtkplacessidebar.c:1028 msgid "Open your personal folder" msgstr "Відкрити оÑобиÑту теку" -#: gtk/gtkplacessidebar.c:1042 +#: gtk/gtkplacessidebar.c:1041 msgid "Desktop" msgstr "СтільницÑ" -#: gtk/gtkplacessidebar.c:1044 +#: gtk/gtkplacessidebar.c:1043 msgid "Open the contents of your desktop in a folder" msgstr "Відкрити вміÑÑ‚ Ñтільниці Ñк теку" -#: gtk/gtkplacessidebar.c:1058 +#: gtk/gtkplacessidebar.c:1057 msgid "Enter Location" msgstr "УвеÑти адреÑу" -#: gtk/gtkplacessidebar.c:1060 +#: gtk/gtkplacessidebar.c:1059 msgid "Manually enter a location" msgstr "Вручну ввеÑти адреÑу" -#: gtk/gtkplacessidebar.c:1070 +#: gtk/gtkplacessidebar.c:1069 msgid "Trash" msgstr "Смітник" -#: gtk/gtkplacessidebar.c:1072 +#: gtk/gtkplacessidebar.c:1071 msgid "Open the trash" msgstr "Відкрити теку Ñмітника" -#: gtk/gtkplacessidebar.c:1183 gtk/gtkplacessidebar.c:1211 -#: gtk/gtkplacessidebar.c:1411 +#: gtk/gtkplacessidebar.c:1182 gtk/gtkplacessidebar.c:1210 +#: gtk/gtkplacessidebar.c:1410 #, c-format msgid "Mount and open “%sâ€" msgstr "Змонтувати Ñ– відкрити «%s»" -#: gtk/gtkplacessidebar.c:1306 +#: gtk/gtkplacessidebar.c:1305 msgid "Open the contents of the file system" msgstr "Відкрити ÑпиÑок реÑурÑів файлової ÑиÑтеми" -#: gtk/gtkplacessidebar.c:1389 +#: gtk/gtkplacessidebar.c:1388 msgid "New bookmark" msgstr "Створити закладку" -#: gtk/gtkplacessidebar.c:1391 +#: gtk/gtkplacessidebar.c:1390 msgid "Add a new bookmark" msgstr "ЗаклаÑти" -#: gtk/gtkplacessidebar.c:1456 +#: gtk/gtkplacessidebar.c:1455 msgid "Other Locations" msgstr "Інші міÑцÑ" -#: gtk/gtkplacessidebar.c:1457 +#: gtk/gtkplacessidebar.c:1456 msgid "Show other locations" msgstr "Показувати інші міÑцÑ" -#: gtk/gtkplacessidebar.c:1962 gtk/gtkplacessidebar.c:2981 +#: gtk/gtkplacessidebar.c:1961 gtk/gtkplacessidebar.c:2980 #, c-format msgid "Unable to start “%sâ€" msgstr "Ðеможливо запуÑтити «%s»" @@ -2920,214 +2980,214 @@ msgstr "Ðеможливо запуÑтити «%s»" #. Translators: This means that unlocking an encrypted storage #. * device failed. %s is the name of the device. #. -#: gtk/gtkplacessidebar.c:1998 +#: gtk/gtkplacessidebar.c:1997 #, c-format msgid "Error unlocking “%sâ€" msgstr "Помилка під Ñ‡Ð°Ñ Ñпроби відкрити «%s»" -#: gtk/gtkplacessidebar.c:2000 +#: gtk/gtkplacessidebar.c:1999 #, c-format msgid "Unable to access “%sâ€" msgstr "Ðе вдалоÑÑŒ доÑтупитиÑÑŒ до «%s»" -#: gtk/gtkplacessidebar.c:2231 +#: gtk/gtkplacessidebar.c:2230 msgid "This name is already taken" msgstr "Цю назву вже вжито" -#: gtk/gtkplacessidebar.c:2304 gtk/inspector/actions.ui:19 -#: gtk/inspector/css-node-tree.ui:35 gtk/inspector/prop-list.ui:24 -#: gtk/ui/gtkfilechooserwidget.ui:168 gtk/ui/gtkfilechooserwidget.ui:440 +#: gtk/gtkplacessidebar.c:2303 gtk/inspector/actions.ui:19 +#: gtk/inspector/css-node-tree.ui:22 gtk/inspector/prop-list.ui:24 +#: gtk/ui/gtkfilechooserwidget.ui:176 gtk/ui/gtkfilechooserwidget.ui:640 #: gtk/ui/gtkprintunixdialog.ui:83 msgid "Name" msgstr "Ðазва" -#: gtk/gtkplacessidebar.c:2522 +#: gtk/gtkplacessidebar.c:2521 #, c-format msgid "Unable to unmount “%sâ€" msgstr "Ðеможливо демонтувати «%s»" -#: gtk/gtkplacessidebar.c:2698 +#: gtk/gtkplacessidebar.c:2697 #, c-format msgid "Unable to stop “%sâ€" msgstr "Ðеможливо запуÑтити «%s»" -#: gtk/gtkplacessidebar.c:2727 +#: gtk/gtkplacessidebar.c:2726 #, c-format msgid "Unable to eject “%sâ€" msgstr "Ðеможливо витÑгнути «%s»" -#: gtk/gtkplacessidebar.c:2756 gtk/gtkplacessidebar.c:2785 +#: gtk/gtkplacessidebar.c:2755 gtk/gtkplacessidebar.c:2784 #, c-format msgid "Unable to eject %s" msgstr "Ðе вдалоÑÑ Ð²Ð¸Ñ‚Ñгнути %s" -#: gtk/gtkplacessidebar.c:2933 +#: gtk/gtkplacessidebar.c:2932 #, c-format msgid "Unable to poll “%s†for media changes" msgstr "Ðеможливо опитати «%s» на зміну ноÑÑ–Ñ" -#: gtk/gtkplacessidebar.c:3152 gtk/gtkplacessidebar.c:3239 -#: gtk/gtkplacesview.c:1663 +#: gtk/gtkplacessidebar.c:3151 gtk/gtkplacessidebar.c:3238 +#: gtk/gtkplacesview.c:1649 msgid "Open in New _Tab" msgstr "Відкрити у новій в_кладці" -#: gtk/gtkplacessidebar.c:3158 gtk/gtkplacessidebar.c:3248 -#: gtk/gtkplacesview.c:1668 +#: gtk/gtkplacessidebar.c:3157 gtk/gtkplacessidebar.c:3247 +#: gtk/gtkplacesview.c:1654 msgid "Open in New _Window" msgstr "Відкрити у новому _вікні" -#: gtk/gtkplacessidebar.c:3259 +#: gtk/gtkplacessidebar.c:3258 msgid "_Add Bookmark" msgstr "_Додати до закладок" -#: gtk/gtkplacessidebar.c:3263 +#: gtk/gtkplacessidebar.c:3262 msgid "_Remove" msgstr "Ви_лучити" -#: gtk/gtkplacessidebar.c:3279 gtk/gtkplacesview.c:1693 +#: gtk/gtkplacessidebar.c:3278 gtk/gtkplacesview.c:1679 msgid "_Mount" msgstr "_Змонтувати" -#: gtk/gtkplacessidebar.c:3288 gtk/gtkplacesview.c:1682 +#: gtk/gtkplacessidebar.c:3287 gtk/gtkplacesview.c:1668 msgid "_Unmount" msgstr "_Демонтувати" -#: gtk/gtkplacessidebar.c:3295 +#: gtk/gtkplacessidebar.c:3294 msgid "_Eject" msgstr "Ви_Ñ‚Ñгнути" -#: gtk/gtkplacessidebar.c:3305 +#: gtk/gtkplacessidebar.c:3304 msgid "_Detect Media" msgstr "Ви_Ñвити ноÑій" -#: gtk/gtkplacessidebar.c:3314 +#: gtk/gtkplacessidebar.c:3313 msgid "_Start" msgstr "П_уÑк" -#: gtk/gtkplacessidebar.c:3316 +#: gtk/gtkplacessidebar.c:3315 msgid "_Power On" msgstr "_Увімкнути" -#: gtk/gtkplacessidebar.c:3317 +#: gtk/gtkplacessidebar.c:3316 msgid "_Connect Drive" msgstr "Під’_єднати диÑк" -#: gtk/gtkplacessidebar.c:3318 +#: gtk/gtkplacessidebar.c:3317 msgid "_Start Multi-disk Device" msgstr "З_апуÑтити багатодиÑковий приÑтрій" -#: gtk/gtkplacessidebar.c:3319 +#: gtk/gtkplacessidebar.c:3318 msgid "_Unlock Device" msgstr "_Розблокувати приÑтрій" -#: gtk/gtkplacessidebar.c:3329 +#: gtk/gtkplacessidebar.c:3328 msgid "_Stop" msgstr "С_топ" -#: gtk/gtkplacessidebar.c:3331 +#: gtk/gtkplacessidebar.c:3330 msgid "_Safely Remove Drive" msgstr "_Безпечне Ð²Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¸Ñтрою" -#: gtk/gtkplacessidebar.c:3332 +#: gtk/gtkplacessidebar.c:3331 msgid "_Disconnect Drive" msgstr "_Від'єднати диÑк" -#: gtk/gtkplacessidebar.c:3333 +#: gtk/gtkplacessidebar.c:3332 msgid "_Stop Multi-disk Device" msgstr "З_упинити багатодиÑковий приÑтрій" -#: gtk/gtkplacessidebar.c:3334 +#: gtk/gtkplacessidebar.c:3333 msgid "_Lock Device" msgstr "За_блокувати приÑтрій" -#: gtk/gtkplacessidebar.c:3823 gtk/gtkplacesview.c:1103 +#: gtk/gtkplacessidebar.c:3822 gtk/gtkplacesview.c:1089 msgid "Computer" msgstr "Комп'ютер" -#: gtk/gtkplacesview.c:889 +#: gtk/gtkplacesview.c:875 msgid "Searching for network locations" msgstr "Пошук мережевих адреÑ" -#: gtk/gtkplacesview.c:896 +#: gtk/gtkplacesview.c:882 msgid "No network locations found" msgstr "Ðе знайдено жодної мережевої адреÑи" #. if it wasn't cancelled show a dialog -#: gtk/gtkplacesview.c:1210 gtk/gtkplacesview.c:1307 +#: gtk/gtkplacesview.c:1196 gtk/gtkplacesview.c:1293 msgid "Unable to access location" msgstr "Ðеможливо доÑтупитиÑÑŒ до адреÑи" #. Restore from Cancel to Connect -#: gtk/gtkplacesview.c:1228 gtk/ui/gtkplacesview.ui:262 +#: gtk/gtkplacesview.c:1214 gtk/ui/gtkplacesview.ui:250 msgid "Con_nect" msgstr "З'_єднатиÑÑŒ" #. if it wasn't cancelled show a dialog -#: gtk/gtkplacesview.c:1367 +#: gtk/gtkplacesview.c:1353 msgid "Unable to unmount volume" msgstr "Ðеможливо демонтувати том" #. Allow to cancel the operation -#: gtk/gtkplacesview.c:1459 +#: gtk/gtkplacesview.c:1445 msgid "Cance_l" msgstr "_СкаÑувати" -#: gtk/gtkplacesview.c:1606 +#: gtk/gtkplacesview.c:1592 msgid "AppleTalk" msgstr "AppleTalk" -#: gtk/gtkplacesview.c:1612 +#: gtk/gtkplacesview.c:1598 msgid "File Transfer Protocol" msgstr "Протокол Ð¿ÐµÑ€ÐµÐ´Ð°Ð²Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñ–Ð²" #. Translators: do not translate ftp:// and ftps:// -#: gtk/gtkplacesview.c:1614 +#: gtk/gtkplacesview.c:1600 msgid "ftp:// or ftps://" msgstr "ftp:// або ftps://" -#: gtk/gtkplacesview.c:1620 +#: gtk/gtkplacesview.c:1606 msgid "Network File System" msgstr "СиÑтема мережевих файлів" -#: gtk/gtkplacesview.c:1626 +#: gtk/gtkplacesview.c:1612 msgid "Samba" msgstr "Samba" -#: gtk/gtkplacesview.c:1632 +#: gtk/gtkplacesview.c:1618 msgid "SSH File Transfer Protocol" msgstr "Протокол Ð¿ÐµÑ€ÐµÐ´Ð°Ð²Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñ–Ð² SSH" #. Translators: do not translate sftp:// and ssh:// -#: gtk/gtkplacesview.c:1634 +#: gtk/gtkplacesview.c:1620 msgid "sftp:// or ssh://" msgstr "sftp:// або ssh://" -#: gtk/gtkplacesview.c:1640 +#: gtk/gtkplacesview.c:1626 msgid "WebDAV" msgstr "WebDAV" #. Translators: do not translate dav:// and davs:// -#: gtk/gtkplacesview.c:1642 +#: gtk/gtkplacesview.c:1628 msgid "dav:// or davs://" msgstr "dav:// або davs://" -#: gtk/gtkplacesview.c:1677 +#: gtk/gtkplacesview.c:1663 msgid "_Disconnect" msgstr "_Від'єднати" -#: gtk/gtkplacesview.c:1688 +#: gtk/gtkplacesview.c:1674 msgid "_Connect" msgstr "З'_єднатиÑÑŒ" -#: gtk/gtkplacesview.c:1905 +#: gtk/gtkplacesview.c:1891 msgid "Unable to get remote server location" msgstr "Ðеможливо одержати адреÑу віддаленого Ñервера" -#: gtk/gtkplacesview.c:2048 gtk/gtkplacesview.c:2057 +#: gtk/gtkplacesview.c:2034 gtk/gtkplacesview.c:2043 msgid "Networks" msgstr "Мережі" -#: gtk/gtkplacesview.c:2048 gtk/gtkplacesview.c:2057 +#: gtk/gtkplacesview.c:2034 gtk/gtkplacesview.c:2043 msgid "On This Computer" msgstr "Ðа цьому комп'ютері" @@ -3153,24 +3213,19 @@ msgstr "Від'єднати" msgid "Unmount" msgstr "Демонтувати" -#: gtk/gtkprintbackend.c:636 +#: gtk/gtkprintbackend.c:637 msgid "Authentication" msgstr "ÐвтентифікаціÑ" -#: gtk/gtkprintbackend.c:712 +#: gtk/gtkprintbackend.c:716 msgid "_Remember password" msgstr "_Запам'Ñтати пароль" -#: gtk/gtkprinteroptionwidget.c:718 +#: gtk/gtkprinteroptionwidget.c:739 msgid "Select a filename" msgstr "Вибрати назву файла" -#: gtk/gtkprinteroptionwidget.c:722 gtk/ui/gtkappchooserdialog.ui:50 -#: gtk/ui/gtkcolorchooserdialog.ui:38 gtk/ui/gtkfontchooserdialog.ui:29 -msgid "_Select" -msgstr "_Вибрати" - -#: gtk/gtkprinteroptionwidget.c:936 +#: gtk/gtkprinteroptionwidget.c:947 msgid "Not available" msgstr "ÐедоÑтупно" @@ -3233,7 +3288,7 @@ msgstr "Завершено з помилкою" msgid "Preparing %d" msgstr "ÐŸÑ–Ð´Ð³Ð¾Ñ‚Ð¾Ð²Ð»ÐµÐ½Ð½Ñ %d" -#: gtk/gtkprintoperation.c:2236 gtk/gtkprintoperation.c:2854 +#: gtk/gtkprintoperation.c:2236 gtk/gtkprintoperation.c:2855 #, c-format msgid "Preparing" msgstr "ПідготовленнÑ" @@ -3243,23 +3298,24 @@ msgstr "ПідготовленнÑ" msgid "Printing %d" msgstr "Ð”Ñ€ÑƒÐºÑƒÐ²Ð°Ð½Ð½Ñ %d" -#: gtk/gtkprintoperation.c:2885 +#: gtk/gtkprintoperation.c:2888 #, c-format msgid "Error creating print preview" msgstr "Помилка при Ñтворенні переглÑду" -#: gtk/gtkprintoperation.c:2888 +#: gtk/gtkprintoperation.c:2891 #, c-format -msgid "The most probable reason is that a temporary file could not be created." +msgid "" +"The most probable reason is that a temporary file could not be created." msgstr "Ðайімовірніша причина: не вдалоÑÑŒ Ñтворити тимчаÑовий файл." #. window #: gtk/gtkprintoperation-portal.c:236 gtk/gtkprintoperation-portal.c:554 -#: gtk/gtkprintoperation-portal.c:623 gtk/gtkprintunixdialog.c:3056 +#: gtk/gtkprintoperation-portal.c:623 gtk/gtkprintunixdialog.c:3066 msgid "Print" msgstr "Друкувати" -#: gtk/gtkprintoperation-unix.c:479 gtk/gtkprintoperation-win32.c:1504 +#: gtk/gtkprintoperation-unix.c:481 gtk/gtkprintoperation-win32.c:1504 msgid "Application" msgstr "Програма" @@ -3273,7 +3329,7 @@ msgstr "Ðемає паперу" #. Translators: this is a printer status. #: gtk/gtkprintoperation-win32.c:639 -#: modules/printbackends/gtkprintbackendcups.c:2639 +#: modules/printbackends/gtkprintbackendcups.c:2638 msgid "Paused" msgstr "Призупинено" @@ -3318,19 +3374,19 @@ msgstr "Ðеправильний обробник Ð´Ð»Ñ PrintDlgEx" msgid "Unspecified error" msgstr "Ðевизначена помилка" -#: gtk/gtkprintunixdialog.c:806 +#: gtk/gtkprintunixdialog.c:813 msgid "Pre_view" msgstr "_ПереглÑд" -#: gtk/gtkprintunixdialog.c:808 +#: gtk/gtkprintunixdialog.c:815 msgid "_Print" msgstr "_Ðадрукувати" -#: gtk/gtkprintunixdialog.c:936 +#: gtk/gtkprintunixdialog.c:943 msgid "Getting printer information failed" msgstr "Ðе вдалоÑÑŒ отримати інформації про принтер" -#: gtk/gtkprintunixdialog.c:1875 +#: gtk/gtkprintunixdialog.c:1866 msgid "Getting printer information…" msgstr "ÐžÐ´ÐµÑ€Ð¶Ð°Ð½Ð½Ñ Ñ–Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ— про принтер…" @@ -3340,67 +3396,67 @@ msgstr "ÐžÐ´ÐµÑ€Ð¶Ð°Ð½Ð½Ñ Ñ–Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ— про принтер…" #. Translators: These strings name the possible arrangements of #. * multiple pages on a sheet when printing #. -#: gtk/gtkprintunixdialog.c:2801 -#: modules/printbackends/gtkprintbackendcups.c:5647 +#: gtk/gtkprintunixdialog.c:2811 +#: modules/printbackends/gtkprintbackendcups.c:5646 msgid "Left to right, top to bottom" msgstr "Зліва направо, згори вниз" -#: gtk/gtkprintunixdialog.c:2801 -#: modules/printbackends/gtkprintbackendcups.c:5647 +#: gtk/gtkprintunixdialog.c:2811 +#: modules/printbackends/gtkprintbackendcups.c:5646 msgid "Left to right, bottom to top" msgstr "Зліва направо, знизу вгору" -#: gtk/gtkprintunixdialog.c:2802 -#: modules/printbackends/gtkprintbackendcups.c:5648 +#: gtk/gtkprintunixdialog.c:2812 +#: modules/printbackends/gtkprintbackendcups.c:5647 msgid "Right to left, top to bottom" msgstr "Справа наліво, згори вниз" -#: gtk/gtkprintunixdialog.c:2802 -#: modules/printbackends/gtkprintbackendcups.c:5648 +#: gtk/gtkprintunixdialog.c:2812 +#: modules/printbackends/gtkprintbackendcups.c:5647 msgid "Right to left, bottom to top" msgstr "Справа наліво, знизу вгору" -#: gtk/gtkprintunixdialog.c:2803 -#: modules/printbackends/gtkprintbackendcups.c:5649 +#: gtk/gtkprintunixdialog.c:2813 +#: modules/printbackends/gtkprintbackendcups.c:5648 msgid "Top to bottom, left to right" msgstr "Згори вниз, зліва направо" -#: gtk/gtkprintunixdialog.c:2803 -#: modules/printbackends/gtkprintbackendcups.c:5649 +#: gtk/gtkprintunixdialog.c:2813 +#: modules/printbackends/gtkprintbackendcups.c:5648 msgid "Top to bottom, right to left" msgstr "Згори вниз, Ñправа наліво" -#: gtk/gtkprintunixdialog.c:2804 -#: modules/printbackends/gtkprintbackendcups.c:5650 +#: gtk/gtkprintunixdialog.c:2814 +#: modules/printbackends/gtkprintbackendcups.c:5649 msgid "Bottom to top, left to right" msgstr "Знизу вгору, зліва направо" -#: gtk/gtkprintunixdialog.c:2804 -#: modules/printbackends/gtkprintbackendcups.c:5650 +#: gtk/gtkprintunixdialog.c:2814 +#: modules/printbackends/gtkprintbackendcups.c:5649 msgid "Bottom to top, right to left" msgstr "Знизу вгору, Ñправа наліво" -#: gtk/gtkprintunixdialog.c:2808 gtk/gtkprintunixdialog.c:2821 +#: gtk/gtkprintunixdialog.c:2818 gtk/gtkprintunixdialog.c:2831 msgid "Page Ordering" msgstr "ПорÑдок Ñторінок" -#: gtk/gtkprintunixdialog.c:2837 +#: gtk/gtkprintunixdialog.c:2847 msgid "Left to right" msgstr "Зліва направо" -#: gtk/gtkprintunixdialog.c:2838 +#: gtk/gtkprintunixdialog.c:2848 msgid "Right to left" msgstr "Справа наліво" -#: gtk/gtkprintunixdialog.c:2850 +#: gtk/gtkprintunixdialog.c:2860 msgid "Top to bottom" msgstr "Згори донизу" -#: gtk/gtkprintunixdialog.c:2851 +#: gtk/gtkprintunixdialog.c:2861 msgid "Bottom to top" msgstr "Знизу догори" -#: gtk/gtkprogressbar.c:606 +#: gtk/gtkprogressbar.c:608 #, c-format msgctxt "progress bar label" msgid "%.0f %%" @@ -3424,7 +3480,7 @@ msgid "No registered application with name “%s†for item with URI “%s†f msgstr "" "Ðе знайдено зареєÑтрованої програми з назвою «%s» Ð´Ð»Ñ Ð¿ÑƒÐ½ÐºÑ‚Ñƒ з URI «%s»" -#: gtk/gtksearchentry.c:639 +#: gtk/gtksearchentry.c:638 msgid "Clear entry" msgstr "Спорожнити запиÑ" @@ -3500,38 +3556,33 @@ msgid "Search Shortcuts" msgstr "Ð¡ÐºÐ¾Ñ€Ð¾Ñ‡ÐµÐ½Ð½Ñ Ð¿Ð¾ÑˆÑƒÐºÑƒ" #: gtk/gtkshortcutswindow.c:968 gtk/ui/gtkemojichooser.ui:349 -#: gtk/ui/gtkfilechooserwidget.ui:297 +#: gtk/ui/gtkfilechooserwidget.ui:497 msgid "No Results Found" msgstr "Безрезультатно" #: gtk/gtkshortcutswindow.c:974 gtk/ui/gtkemojichooser.ui:362 -#: gtk/ui/gtkfilechooserwidget.ui:310 gtk/ui/gtkplacesview.ui:230 +#: gtk/ui/gtkfilechooserwidget.ui:510 gtk/ui/gtkplacesview.ui:218 msgid "Try a different search" msgstr "Спробуйте пошукати по-інакшому" -#: gtk/gtkshow.c:175 -msgid "Could not show link" -msgstr "Ðе вдалоÑÑŒ показати поÑиланнÑ" - #: gtk/gtkstacksidebar.c:154 -#| msgid "Toggle Sidebar" msgctxt "accessibility" msgid "Sidebar" msgstr "Бічна панель" -#: gtk/gtktext.c:6065 gtk/gtktextview.c:8994 +#: gtk/gtktext.c:6101 gtk/gtktextview.c:9023 msgid "Insert _Emoji" msgstr "Ð’Ñтавити _емодзі" -#: gtk/gtktextview.c:8976 +#: gtk/gtktextview.c:9005 msgid "_Undo" msgstr "_СкаÑувати" -#: gtk/gtktextview.c:8980 +#: gtk/gtktextview.c:9009 msgid "_Redo" msgstr "Пов_торити" -#: gtk/gtktreeexpander.c:205 gtk/inspector/misc-info.ui:287 +#: gtk/gtktreeexpander.c:189 gtk/inspector/misc-info.ui:287 msgid "Expand" msgstr "Розгорнути" @@ -3554,12 +3605,12 @@ msgctxt "volume percentage" msgid "%d %%" msgstr "%d %%" -#: gtk/gtkwindow.c:6101 +#: gtk/gtkwindow.c:6145 #, c-format msgid "Do you want to use GTK Inspector?" msgstr "Бажаєте викориÑтовувати інÑпектор GTK?" -#: gtk/gtkwindow.c:6103 +#: gtk/gtkwindow.c:6147 #, c-format msgid "" "GTK Inspector is an interactive debugger that lets you explore and modify " @@ -3570,7 +3621,7 @@ msgstr "" "редагувати внутрішні чаÑтини будь-Ñкі програми GTK. Його викориÑÑ‚Ð°Ð½Ð½Ñ Ð¼Ð¾Ð¶Ðµ " "Ñпричинити збої в програмі." -#: gtk/gtkwindow.c:6108 +#: gtk/gtkwindow.c:6152 msgid "Don’t show this message again" msgstr "Ðе показувати це Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð½Ð°Ð´Ð°Ð»Ñ–" @@ -3606,17 +3657,17 @@ msgstr "Відновити" msgid "Role" msgstr "Роль" -#: gtk/inspector/a11y.ui:40 +#: gtk/inspector/a11y.ui:43 msgid "Object path" msgstr "ШлÑÑ… до об'єкта" -#: gtk/inspector/a11y.ui:66 +#: gtk/inspector/a11y.ui:72 msgid "Attribute" msgstr "Ðтрибут" -#: gtk/inspector/a11y.ui:78 gtk/inspector/css-node-tree.ui:119 -#: gtk/inspector/prop-list.ui:57 gtk/inspector/recorder.ui:155 -#: gtk/inspector/recorder.ui:221 +#: gtk/inspector/a11y.ui:84 gtk/inspector/css-node-tree.ui:70 +#: gtk/inspector/prop-list.ui:57 gtk/inspector/recorder.ui:149 +#: gtk/inspector/recorder.ui:192 gtk/inspector/strv-editor.c:73 msgid "Value" msgstr "ЗначеннÑ" @@ -3636,7 +3687,7 @@ msgstr "Увімкнено" msgid "Parameter Type" msgstr "Тип параметра" -#: gtk/inspector/actions.ui:52 gtk/inspector/css-node-tree.ui:74 +#: gtk/inspector/actions.ui:52 gtk/inspector/css-node-tree.ui:41 #: gtk/inspector/misc-info.ui:121 msgid "State" msgstr "Стан" @@ -3701,22 +3752,22 @@ msgctxt "propagation limit" msgid "Native" msgstr "Природне" -#: gtk/inspector/css-editor.c:129 +#: gtk/inspector/css-editor.c:128 msgid "You can type here any CSS rule recognized by GTK." msgstr "Можете ввеÑти будь-Ñке правило CSS, Ñке розпізнає GTK." -#: gtk/inspector/css-editor.c:130 +#: gtk/inspector/css-editor.c:129 msgid "" "You can temporarily disable this custom CSS by clicking on the “Pause†" "button above." msgstr "" "Можете тимчаÑово вимкнути цю CSS, натиÑнувши на кнопку «Призупинити» вище." -#: gtk/inspector/css-editor.c:131 +#: gtk/inspector/css-editor.c:130 msgid "Changes are applied instantly and globally, for the whole application." msgstr "Зміни заÑтоÑовуютьÑÑ Ð¼Ð¸Ñ‚Ñ‚Ñ”Ð²Ð¾ Ñ– повÑюдно, Ð´Ð»Ñ Ð²ÑÑ–Ñ” програми." -#: gtk/inspector/css-editor.c:211 +#: gtk/inspector/css-editor.c:206 #, c-format msgid "Saving CSS failed" msgstr "Ðе вдалоÑÑ Ð·Ð±ÐµÑ€ÐµÐ³Ñ‚Ð¸ CSS" @@ -3729,16 +3780,16 @@ msgstr "Вимкнутий цей CSS" msgid "Save the current CSS" msgstr "Зберегти поточний CSS" -#: gtk/inspector/css-node-tree.ui:48 tools/gtk-builder-tool-preview.c:178 +#: gtk/inspector/css-node-tree.ui:28 tools/gtk-builder-tool-preview.c:178 #: tools/gtk-builder-tool-screenshot.c:358 msgid "ID" msgstr "Ідентифікатор" -#: gtk/inspector/css-node-tree.ui:61 +#: gtk/inspector/css-node-tree.ui:34 msgid "Style Classes" msgstr "КлаÑи Ñтилів" -#: gtk/inspector/css-node-tree.ui:104 +#: gtk/inspector/css-node-tree.ui:64 msgid "CSS Property" msgstr "ВлаÑтивіÑÑ‚ÑŒ CSS" @@ -3818,7 +3869,7 @@ msgstr "Ід. програми" msgid "Resource Path" msgstr "ШлÑÑ… до реÑурÑів" -#: gtk/inspector/general.ui:268 gtk/ui/gtkplacesview.ui:79 +#: gtk/inspector/general.ui:268 gtk/ui/gtkplacesview.ui:67 msgid "Prefix" msgstr "ПрефікÑ" @@ -3854,23 +3905,23 @@ msgstr "ВерÑÑ–Ñ Ñ–Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñу Vulkan" msgid "Vulkan driver version" msgstr "ВерÑÑ–Ñ Ð´Ñ€Ð°Ð¹Ð²ÐµÑ€Ð° Vulkan" -#: gtk/inspector/menu.c:95 +#: gtk/inspector/menu.c:264 msgid "Unnamed section" msgstr "Ðеназваний розділ" -#: gtk/inspector/menu.ui:23 +#: gtk/inspector/menu.ui:26 msgid "Label" msgstr "Мітка" -#: gtk/inspector/menu.ui:36 gtk/inspector/shortcuts.ui:23 +#: gtk/inspector/menu.ui:31 gtk/inspector/shortcuts.ui:23 msgid "Action" msgstr "ДіÑ" -#: gtk/inspector/menu.ui:49 +#: gtk/inspector/menu.ui:36 msgid "Target" msgstr "Ціль" -#: gtk/inspector/menu.ui:62 +#: gtk/inspector/menu.ui:41 msgid "Icon" msgstr "Піктограма" @@ -3879,7 +3930,7 @@ msgid "Address" msgstr "ÐдреÑа" #: gtk/inspector/misc-info.ui:62 gtk/inspector/prop-list.ui:35 -#: gtk/inspector/statistics.ui:46 gtk/ui/gtkfilechooserwidget.ui:214 +#: gtk/inspector/statistics.ui:36 gtk/ui/gtkfilechooserwidget.ui:336 msgid "Type" msgstr "Тип" @@ -3920,8 +3971,8 @@ msgid "Surface" msgstr "ПоверхнÑ" #: gtk/inspector/misc-info.ui:415 gtk/inspector/misc-info.ui:454 -#: gtk/inspector/misc-info.ui:493 gtk/inspector/prop-editor.c:1162 -#: gtk/inspector/prop-editor.c:1531 gtk/inspector/window.ui:396 +#: gtk/inspector/misc-info.ui:493 gtk/inspector/prop-editor.c:1150 +#: gtk/inspector/prop-editor.c:1533 gtk/inspector/window.ui:396 msgid "Properties" msgstr "ВлаÑтивоÑÑ‚Ñ–" @@ -3969,7 +4020,7 @@ msgstr "Принтер: %p" #. Translators: %s is a type name, for example #. * GtkPropertyExpression with value \"2.5\" #. -#: gtk/inspector/prop-editor.c:834 +#: gtk/inspector/prop-editor.c:824 #, c-format msgid "%s with value \"%s\"" msgstr "%s зі значеннÑм «%s»" @@ -3977,7 +4028,7 @@ msgstr "%s зі значеннÑм «%s»" #. Translators: Both %s are type names, for example #. * GtkPropertyExpression with type GObject #. -#: gtk/inspector/prop-editor.c:845 +#: gtk/inspector/prop-editor.c:835 #, c-format msgid "%s with type %s" msgstr "%s з типом %s" @@ -3985,7 +4036,7 @@ msgstr "%s з типом %s" #. Translators: Both %s are type names, for example #. * GtkObjectExpression for GtkStringObject 0x23456789 #. -#: gtk/inspector/prop-editor.c:858 +#: gtk/inspector/prop-editor.c:848 #, c-format msgid "%s for %s %p" msgstr "%s Ð´Ð»Ñ %s %p" @@ -3993,71 +4044,71 @@ msgstr "%s Ð´Ð»Ñ %s %p" #. Translators: Both %s are type names, for example #. * GtkPropertyExpression with value type: gchararray #. -#: gtk/inspector/prop-editor.c:888 +#: gtk/inspector/prop-editor.c:878 #, c-format msgid "%s with value type %s" msgstr "%s із типом Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ %s" -#: gtk/inspector/prop-editor.c:1242 +#: gtk/inspector/prop-editor.c:1227 #, c-format msgid "Uneditable property type: %s" msgstr "Ðеможливо редагувати цей тип влаÑтивоÑÑ‚Ñ–: %s" -#: gtk/inspector/prop-editor.c:1383 +#: gtk/inspector/prop-editor.c:1385 msgctxt "column number" msgid "None" msgstr "Ðемає" -#: gtk/inspector/prop-editor.c:1420 +#: gtk/inspector/prop-editor.c:1422 msgid "Attribute:" msgstr "Ðтрибут:" -#: gtk/inspector/prop-editor.c:1423 +#: gtk/inspector/prop-editor.c:1425 msgid "Model" msgstr "Модель" -#: gtk/inspector/prop-editor.c:1428 +#: gtk/inspector/prop-editor.c:1430 msgid "Column:" msgstr "Стовпець:" #. Translators: %s is a type name, for example #. * Action from 0x2345678 (GtkApplicationWindow) #. -#: gtk/inspector/prop-editor.c:1527 +#: gtk/inspector/prop-editor.c:1529 #, c-format msgid "Action from: %p (%s)" msgstr "Джерело дії: %p (%s)" -#: gtk/inspector/prop-editor.c:1582 +#: gtk/inspector/prop-editor.c:1584 msgid "Reset" msgstr "Скинути" -#: gtk/inspector/prop-editor.c:1590 +#: gtk/inspector/prop-editor.c:1592 msgctxt "GtkSettings source" msgid "Default" msgstr "Типове" -#: gtk/inspector/prop-editor.c:1593 +#: gtk/inspector/prop-editor.c:1595 msgctxt "GtkSettings source" msgid "Theme" msgstr "Тема" -#: gtk/inspector/prop-editor.c:1596 +#: gtk/inspector/prop-editor.c:1598 msgctxt "GtkSettings source" msgid "XSettings" msgstr "XSettings" -#: gtk/inspector/prop-editor.c:1600 +#: gtk/inspector/prop-editor.c:1602 msgctxt "GtkSettings source" msgid "Application" msgstr "Програма" -#: gtk/inspector/prop-editor.c:1603 +#: gtk/inspector/prop-editor.c:1605 msgctxt "GtkSettings source" msgid "Unknown" msgstr "Ðевідоме" -#: gtk/inspector/prop-editor.c:1606 +#: gtk/inspector/prop-editor.c:1608 msgid "Source:" msgstr "Джерело:" @@ -4065,7 +4116,7 @@ msgstr "Джерело:" msgid "Defined At" msgstr "Визначено в" -#: gtk/inspector/recorder.c:1694 +#: gtk/inspector/recorder.c:1829 #, c-format msgid "Saving RenderNode failed" msgstr "Ðе вдалоÑÑ Ð·Ð±ÐµÑ€ÐµÐ³Ñ‚Ð¸ RenderNode" @@ -4098,7 +4149,7 @@ msgstr "Зберегти позначений вузол" msgid "Copy to clipboard" msgstr "Скопіювати до буфера" -#: gtk/inspector/recorder.ui:142 gtk/inspector/recorder.ui:208 +#: gtk/inspector/recorder.ui:144 gtk/inspector/recorder.ui:187 msgid "Property" msgstr "ВлаÑтивіÑÑ‚ÑŒ" @@ -4110,7 +4161,7 @@ msgstr "ШлÑÑ…" msgid "Count" msgstr "Підрахунок" -#: gtk/inspector/resource-list.ui:82 gtk/ui/gtkfilechooserwidget.ui:202 +#: gtk/inspector/resource-list.ui:82 gtk/ui/gtkfilechooserwidget.ui:290 #: gtk/ui/gtkfontchooserwidget.ui:204 gtk/ui/gtkfontchooserwidget.ui:351 msgid "Size" msgstr "Розмір" @@ -4155,38 +4206,49 @@ msgstr "Обидва" msgid "Mode" msgstr "Режим" -#: gtk/inspector/statistics.c:400 +#: gtk/inspector/statistics.c:814 msgid "GLib must be configured with -Dbuildtype=debug" msgstr "GLib має бути налаштований з -Dbuildtype=debug" -#: gtk/inspector/statistics.ui:60 +#: gtk/inspector/statistics.ui:41 msgid "Self 1" msgstr "Ðабутий 1" -#: gtk/inspector/statistics.ui:71 +#: gtk/inspector/statistics.ui:46 msgid "Cumulative 1" msgstr "Ðагромаджений 1" -#: gtk/inspector/statistics.ui:82 +#: gtk/inspector/statistics.ui:51 msgid "Self 2" msgstr "Ðабутий 2" -#: gtk/inspector/statistics.ui:93 +#: gtk/inspector/statistics.ui:56 msgid "Cumulative 2" msgstr "Ðагромаджений 2" -#: gtk/inspector/statistics.ui:104 +#: gtk/inspector/statistics.ui:61 msgid "Self" msgstr "Ðабутий" -#: gtk/inspector/statistics.ui:120 +#: gtk/inspector/statistics.ui:66 msgid "Cumulative" msgstr "Ðагромаджений" -#: gtk/inspector/statistics.ui:151 +#: gtk/inspector/statistics.ui:88 msgid "Enable statistics with GOBJECT_DEBUG=instance-count" msgstr "Увімкнути ÑтатиÑтику з GOBJECT_DEBUG=instance-count" +#: gtk/inspector/strv-editor.c:83 +#, c-format +#| msgid "_Remove" +msgid "Remove %s" +msgstr "Вилучити %s" + +#: gtk/inspector/strv-editor.c:115 +#| msgid "Address" +msgid "Add" +msgstr "Додати" + #: gtk/inspector/tree-data.ui:10 msgid "Show data" msgstr "Показати дані" @@ -5949,12 +6011,19 @@ msgstr "ПодÑки" msgid "System" msgstr "СиÑтема" +#: gtk/ui/gtkappchooserdialog.ui:4 +#| msgid "Select _All" +msgid "Select App" +msgstr "Вибір програми" + #: gtk/ui/gtkappchooserdialog.ui:60 -msgid "_View All Applications" -msgstr "_ПереглÑнути вÑÑ– програми" +#| msgid "_View All Applications" +msgid "_View All Apps" +msgstr "П_ереглÑнути уÑÑ– програми" #: gtk/ui/gtkappchooserdialog.ui:66 -msgid "_Find New Applications" +#| msgid "_Find New Applications" +msgid "_Find New Apps" msgstr "_Знайти нові програми" #: gtk/ui/gtkappchooserwidget.ui:100 @@ -6101,19 +6170,19 @@ msgctxt "emoji category" msgid "Recent" msgstr "Ðещодавні" -#: gtk/ui/gtkfilechooserwidget.ui:64 +#: gtk/ui/gtkfilechooserwidget.ui:71 msgid "Create Folder" msgstr "Створити теку" -#: gtk/ui/gtkfilechooserwidget.ui:249 +#: gtk/ui/gtkfilechooserwidget.ui:449 msgid "Remote location — only searching the current folder" msgstr "Віддалена адреÑа — пошук можливий лише в поточній теці" -#: gtk/ui/gtkfilechooserwidget.ui:378 +#: gtk/ui/gtkfilechooserwidget.ui:578 msgid "Folder Name" msgstr "Ðазва теки" -#: gtk/ui/gtkfilechooserwidget.ui:404 +#: gtk/ui/gtkfilechooserwidget.ui:604 msgid "_Create" msgstr "_Створити" @@ -6141,10 +6210,6 @@ msgstr "Мова" msgid "Preview Font" msgstr "ПереглÑд шрифту" -#: gtk/ui/gtkfontchooserwidget.ui:191 gtk/ui/gtkfontchooserwidget.ui:220 -msgid "horizontal" -msgstr "горизонтальна" - #: gtk/ui/gtkfontchooserwidget.ui:270 msgid "No Fonts Found" msgstr "Ðе знайдено жодного шрифту" @@ -6177,37 +6242,38 @@ msgstr "Ðльбомна" msgid "Reverse landscape" msgstr "Обернена альбомна" -#: gtk/ui/gtkplacesview.ui:28 +#: gtk/ui/gtkplacesview.ui:16 msgid "Server Addresses" msgstr "Серверні адреÑи" -#: gtk/ui/gtkplacesview.ui:40 +#: gtk/ui/gtkplacesview.ui:28 msgid "" "Server addresses are made up of a protocol prefix and an address. Examples:" -msgstr "Серверні адреÑи ÑкладаютьÑÑ Ð· префікÑу протоколу та адреÑи. Ðаприклад:" +msgstr "" +"Серверні адреÑи ÑкладаютьÑÑ Ð· префікÑу протоколу та адреÑи. Ðаприклад:" -#: gtk/ui/gtkplacesview.ui:66 +#: gtk/ui/gtkplacesview.ui:54 msgid "Available Protocols" msgstr "ДоÑтупні протоколи" #. Translators: Server as any successfully connected network address -#: gtk/ui/gtkplacesview.ui:118 +#: gtk/ui/gtkplacesview.ui:106 msgid "No recent servers found" msgstr "Ðе знайдено жодного недавнього Ñервера" -#: gtk/ui/gtkplacesview.ui:141 +#: gtk/ui/gtkplacesview.ui:129 msgid "Recent Servers" msgstr "Ðедавні Ñервери" -#: gtk/ui/gtkplacesview.ui:221 +#: gtk/ui/gtkplacesview.ui:209 msgid "No results found" msgstr "Безрезультатно" -#: gtk/ui/gtkplacesview.ui:252 +#: gtk/ui/gtkplacesview.ui:240 msgid "Connect to _Server" msgstr "З'єднатиÑÑŒ із _Ñервером" -#: gtk/ui/gtkplacesview.ui:277 +#: gtk/ui/gtkplacesview.ui:265 msgid "Enter server address…" msgstr "УвеÑти адреÑу Ñервера…" @@ -6441,443 +6507,444 @@ msgstr "Ðе вдалоÑÑ Ñ€Ð¾Ð·Ð¼Ñ–Ñтити контекÑÑ‚ заÑобу Ð msgid "No audio output found" msgstr "Ðе знайдено виходу звукових даних" -#: modules/printbackends/gtkprintbackendcups.c:1142 -#: modules/printbackends/gtkprintbackendcups.c:1449 +#: modules/printbackends/gtkprintbackendcups.c:1141 +#: modules/printbackends/gtkprintbackendcups.c:1448 msgid "Username:" msgstr "КориÑтувач:" -#: modules/printbackends/gtkprintbackendcups.c:1143 -#: modules/printbackends/gtkprintbackendcups.c:1458 +#: modules/printbackends/gtkprintbackendcups.c:1142 +#: modules/printbackends/gtkprintbackendcups.c:1457 msgid "Password:" msgstr "Пароль:" -#: modules/printbackends/gtkprintbackendcups.c:1181 -#: modules/printbackends/gtkprintbackendcups.c:1471 +#: modules/printbackends/gtkprintbackendcups.c:1180 +#: modules/printbackends/gtkprintbackendcups.c:1470 #, c-format msgid "Authentication is required to print document “%s†on printer %s" msgstr "" "Щоб надрукувати документ «%s» на принтері %s, потрібно пройти автентифікацію" -#: modules/printbackends/gtkprintbackendcups.c:1183 +#: modules/printbackends/gtkprintbackendcups.c:1182 #, c-format msgid "Authentication is required to print a document on %s" msgstr "Ð”Ð»Ñ Ð´Ñ€ÑƒÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚ %s на принтері потрібно пройти автентифікацію" -#: modules/printbackends/gtkprintbackendcups.c:1187 +#: modules/printbackends/gtkprintbackendcups.c:1186 #, c-format msgid "Authentication is required to get attributes of job “%sâ€" msgstr "Щоб одержати атрибути Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ Â«%s», потрібно пройти автентифікацію" -#: modules/printbackends/gtkprintbackendcups.c:1189 +#: modules/printbackends/gtkprintbackendcups.c:1188 msgid "Authentication is required to get attributes of a job" msgstr "Ð”Ð»Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚Ñ–Ð² Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ð¿Ð¾Ñ‚Ñ€Ñ–Ð±Ð½Ð¾ пройти автентифікацію" -#: modules/printbackends/gtkprintbackendcups.c:1193 +#: modules/printbackends/gtkprintbackendcups.c:1192 #, c-format msgid "Authentication is required to get attributes of printer %s" msgstr "Ð”Ð»Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚Ñ–Ð² принтера %s потрібно пройти автентифікацію" -#: modules/printbackends/gtkprintbackendcups.c:1195 +#: modules/printbackends/gtkprintbackendcups.c:1194 msgid "Authentication is required to get attributes of a printer" msgstr "Ð”Ð»Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð°Ñ‚Ñ€Ð¸Ð±ÑƒÑ‚Ñ–Ð² принтера потрібно пройти автентифікацію" -#: modules/printbackends/gtkprintbackendcups.c:1198 +#: modules/printbackends/gtkprintbackendcups.c:1197 #, c-format msgid "Authentication is required to get default printer of %s" msgstr "" "Ð”Ð»Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ñ‚Ð¸Ð¿Ð¾Ð²Ð¾Ð³Ð¾ принтера вузла %s потрібно пройти автентифікацію" -#: modules/printbackends/gtkprintbackendcups.c:1201 +#: modules/printbackends/gtkprintbackendcups.c:1200 #, c-format msgid "Authentication is required to get printers from %s" msgstr "Ð”Ð»Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¸Ð½Ñ‚ÐµÑ€Ñ–Ð² вузла %s потрібно пройти автентифікацію" -#: modules/printbackends/gtkprintbackendcups.c:1206 +#: modules/printbackends/gtkprintbackendcups.c:1205 #, c-format msgid "Authentication is required to get a file from %s" msgstr "Ð”Ð»Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ð° з %s потрібно пройти автентифікацію" -#: modules/printbackends/gtkprintbackendcups.c:1208 +#: modules/printbackends/gtkprintbackendcups.c:1207 #, c-format msgid "Authentication is required on %s" msgstr "Потрібно пройти автентифікацію на %s" -#: modules/printbackends/gtkprintbackendcups.c:1443 +#: modules/printbackends/gtkprintbackendcups.c:1442 msgid "Domain:" msgstr "Домен:" -#: modules/printbackends/gtkprintbackendcups.c:1473 +#: modules/printbackends/gtkprintbackendcups.c:1472 #, c-format msgid "Authentication is required to print document “%sâ€" msgstr "Щоб надрукувати документ «%s», потрібно пройти автентифікацію" -#: modules/printbackends/gtkprintbackendcups.c:1478 +#: modules/printbackends/gtkprintbackendcups.c:1477 #, c-format msgid "Authentication is required to print this document on printer %s" -msgstr "Ð”Ð»Ñ Ð´Ñ€ÑƒÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð° на принтері %s потрібно пройти автентифікацію" +msgstr "" +"Ð”Ð»Ñ Ð´Ñ€ÑƒÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð° на принтері %s потрібно пройти автентифікацію" -#: modules/printbackends/gtkprintbackendcups.c:1480 +#: modules/printbackends/gtkprintbackendcups.c:1479 msgid "Authentication is required to print this document" msgstr "Ð”Ð»Ñ Ð´Ñ€ÑƒÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð° потрібно пройти автентифікацію" -#: modules/printbackends/gtkprintbackendcups.c:2568 +#: modules/printbackends/gtkprintbackendcups.c:2567 #, c-format msgid "Printer “%s†is low on toner." msgstr "У принтері «%s» закінчуєтьÑÑ Ñ‚Ð¾Ð½ÐµÑ€." -#: modules/printbackends/gtkprintbackendcups.c:2572 +#: modules/printbackends/gtkprintbackendcups.c:2571 #, c-format msgid "Printer “%s†has no toner left." msgstr "У принтері «%s» закінчивÑÑ Ñ‚Ð¾Ð½ÐµÑ€." #. Translators: "Developer" like on photo development context -#: modules/printbackends/gtkprintbackendcups.c:2577 +#: modules/printbackends/gtkprintbackendcups.c:2576 #, c-format msgid "Printer “%s†is low on developer." msgstr "У принтері «%s» закінчуєтьÑÑ Ð¿Ñ€Ð¾Ñвник." #. Translators: "Developer" like on photo development context -#: modules/printbackends/gtkprintbackendcups.c:2582 +#: modules/printbackends/gtkprintbackendcups.c:2581 #, c-format msgid "Printer “%s†is out of developer." msgstr "У принтері «%s» закінчивÑÑ Ð¿Ñ€Ð¾Ñвник." #. Translators: "marker" is one color bin of the printer -#: modules/printbackends/gtkprintbackendcups.c:2587 +#: modules/printbackends/gtkprintbackendcups.c:2586 #, c-format msgid "Printer “%s†is low on at least one marker supply." msgstr "У принтері «%s» закінчуєтьÑÑ Ð¾Ð´Ð½Ð° із фарб." #. Translators: "marker" is one color bin of the printer -#: modules/printbackends/gtkprintbackendcups.c:2592 +#: modules/printbackends/gtkprintbackendcups.c:2591 #, c-format msgid "Printer “%s†is out of at least one marker supply." msgstr "У принтері «%s» закінчилаÑÑŒ одна із фарб." -#: modules/printbackends/gtkprintbackendcups.c:2596 +#: modules/printbackends/gtkprintbackendcups.c:2595 #, c-format msgid "The cover is open on printer “%sâ€." msgstr "У принтері «%s» відкрито кришку." -#: modules/printbackends/gtkprintbackendcups.c:2600 +#: modules/printbackends/gtkprintbackendcups.c:2599 #, c-format msgid "The door is open on printer “%sâ€." msgstr "У принтері «%s» відкрито дверці." -#: modules/printbackends/gtkprintbackendcups.c:2604 +#: modules/printbackends/gtkprintbackendcups.c:2603 #, c-format msgid "Printer “%s†is low on paper." msgstr "У принтері «%s» закінчуєтьÑÑ Ð¿Ð°Ð¿Ñ–Ñ€." -#: modules/printbackends/gtkprintbackendcups.c:2608 +#: modules/printbackends/gtkprintbackendcups.c:2607 #, c-format msgid "Printer “%s†is out of paper." msgstr "У принтері «%s» закінчивÑÑ Ð¿Ð°Ð¿Ñ–Ñ€." -#: modules/printbackends/gtkprintbackendcups.c:2612 +#: modules/printbackends/gtkprintbackendcups.c:2611 #, c-format msgid "Printer “%s†is currently offline." msgstr "Принтер «%s» наразі недоÑтупний." -#: modules/printbackends/gtkprintbackendcups.c:2616 +#: modules/printbackends/gtkprintbackendcups.c:2615 #, c-format msgid "There is a problem on printer “%sâ€." msgstr "Проблема з принтером «%s»." #. Translators: this is a printer status. -#: modules/printbackends/gtkprintbackendcups.c:2636 +#: modules/printbackends/gtkprintbackendcups.c:2635 msgid "Paused; Rejecting Jobs" msgstr "Призупинено ; ÑкаÑÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð°Ð²Ð´Ð°Ð½ÑŒ" #. Translators: this is a printer status. -#: modules/printbackends/gtkprintbackendcups.c:2642 +#: modules/printbackends/gtkprintbackendcups.c:2641 msgid "Rejecting Jobs" msgstr "СкаÑÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð°Ð²Ð´Ð°Ð½ÑŒ" #. Translators: this string connects multiple printer states together. -#: modules/printbackends/gtkprintbackendcups.c:2683 +#: modules/printbackends/gtkprintbackendcups.c:2682 msgid "; " msgstr "; " -#: modules/printbackends/gtkprintbackendcups.c:4584 -#: modules/printbackends/gtkprintbackendcups.c:4651 +#: modules/printbackends/gtkprintbackendcups.c:4583 +#: modules/printbackends/gtkprintbackendcups.c:4650 msgctxt "printing option" msgid "Two Sided" msgstr "З двох Ñторін" -#: modules/printbackends/gtkprintbackendcups.c:4585 +#: modules/printbackends/gtkprintbackendcups.c:4584 msgctxt "printing option" msgid "Paper Type" msgstr "Тип паперу" -#: modules/printbackends/gtkprintbackendcups.c:4586 +#: modules/printbackends/gtkprintbackendcups.c:4585 msgctxt "printing option" msgid "Paper Source" msgstr "Джерело паперу" -#: modules/printbackends/gtkprintbackendcups.c:4587 -#: modules/printbackends/gtkprintbackendcups.c:4652 +#: modules/printbackends/gtkprintbackendcups.c:4586 +#: modules/printbackends/gtkprintbackendcups.c:4651 msgctxt "printing option" msgid "Output Tray" msgstr "Лоток виводу" -#: modules/printbackends/gtkprintbackendcups.c:4588 +#: modules/printbackends/gtkprintbackendcups.c:4587 msgctxt "printing option" msgid "Resolution" msgstr "РоздільніÑÑ‚ÑŒ" -#: modules/printbackends/gtkprintbackendcups.c:4589 +#: modules/printbackends/gtkprintbackendcups.c:4588 msgctxt "printing option" msgid "GhostScript pre-filtering" msgstr "ВідÑÑ–ÑŽÐ²Ð°Ð½Ð½Ñ GhostScript" -#: modules/printbackends/gtkprintbackendcups.c:4598 +#: modules/printbackends/gtkprintbackendcups.c:4597 msgctxt "printing option value" msgid "One Sided" msgstr "З однієї Ñторони" #. Translators: this is an option of "Two Sided" -#: modules/printbackends/gtkprintbackendcups.c:4600 +#: modules/printbackends/gtkprintbackendcups.c:4599 msgctxt "printing option value" msgid "Long Edge (Standard)" msgstr "За довгою Ñтороною" #. Translators: this is an option of "Two Sided" -#: modules/printbackends/gtkprintbackendcups.c:4602 +#: modules/printbackends/gtkprintbackendcups.c:4601 msgctxt "printing option value" msgid "Short Edge (Flip)" msgstr "За короткою Ñтороною" #. Translators: this is an option of "Paper Source" -#: modules/printbackends/gtkprintbackendcups.c:4604 -#: modules/printbackends/gtkprintbackendcups.c:4606 -#: modules/printbackends/gtkprintbackendcups.c:4614 +#: modules/printbackends/gtkprintbackendcups.c:4603 +#: modules/printbackends/gtkprintbackendcups.c:4605 +#: modules/printbackends/gtkprintbackendcups.c:4613 msgctxt "printing option value" msgid "Auto Select" msgstr "Ðвтоматичний вибір" #. Translators: this is an option of "Paper Source" #. Translators: this is an option of "Resolution" -#: modules/printbackends/gtkprintbackendcups.c:4608 -#: modules/printbackends/gtkprintbackendcups.c:4610 -#: modules/printbackends/gtkprintbackendcups.c:4612 -#: modules/printbackends/gtkprintbackendcups.c:4616 +#: modules/printbackends/gtkprintbackendcups.c:4607 +#: modules/printbackends/gtkprintbackendcups.c:4609 +#: modules/printbackends/gtkprintbackendcups.c:4611 +#: modules/printbackends/gtkprintbackendcups.c:4615 msgctxt "printing option value" msgid "Printer Default" msgstr "Типовий принтер" #. Translators: this is an option of "GhostScript" -#: modules/printbackends/gtkprintbackendcups.c:4618 +#: modules/printbackends/gtkprintbackendcups.c:4617 msgctxt "printing option value" msgid "Embed GhostScript fonts only" msgstr "Вбудовувати лише шрифти GhostScript" #. Translators: this is an option of "GhostScript" -#: modules/printbackends/gtkprintbackendcups.c:4620 +#: modules/printbackends/gtkprintbackendcups.c:4619 msgctxt "printing option value" msgid "Convert to PS level 1" msgstr "Перетворювати на формат PS рівень 1" #. Translators: this is an option of "GhostScript" -#: modules/printbackends/gtkprintbackendcups.c:4622 +#: modules/printbackends/gtkprintbackendcups.c:4621 msgctxt "printing option value" msgid "Convert to PS level 2" msgstr "Перетворити на формат PS рівень 2" #. Translators: this is an option of "GhostScript" -#: modules/printbackends/gtkprintbackendcups.c:4624 +#: modules/printbackends/gtkprintbackendcups.c:4623 msgctxt "printing option value" msgid "No pre-filtering" msgstr "Ðе відÑіювати нічого" #. Translators: "Miscellaneous" is the label for a button, that opens #. up an extra panel of settings in a print dialog. -#: modules/printbackends/gtkprintbackendcups.c:4633 +#: modules/printbackends/gtkprintbackendcups.c:4632 msgctxt "printing option group" msgid "Miscellaneous" msgstr "Інше" -#: modules/printbackends/gtkprintbackendcups.c:4660 +#: modules/printbackends/gtkprintbackendcups.c:4659 msgctxt "sides" msgid "One Sided" msgstr "З однієї Ñторони" #. Translators: this is an option of "Two Sided" -#: modules/printbackends/gtkprintbackendcups.c:4662 +#: modules/printbackends/gtkprintbackendcups.c:4661 msgctxt "sides" msgid "Long Edge (Standard)" msgstr "За довгою Ñтороною" #. Translators: this is an option of "Two Sided" -#: modules/printbackends/gtkprintbackendcups.c:4664 +#: modules/printbackends/gtkprintbackendcups.c:4663 msgctxt "sides" msgid "Short Edge (Flip)" msgstr "За короткою Ñтороною" #. Translators: Top output bin -#: modules/printbackends/gtkprintbackendcups.c:4667 +#: modules/printbackends/gtkprintbackendcups.c:4666 msgctxt "output-bin" msgid "Top Bin" msgstr "Ð’ÐµÑ€Ñ…Ð½Ñ Ñкринька" #. Translators: Middle output bin -#: modules/printbackends/gtkprintbackendcups.c:4669 +#: modules/printbackends/gtkprintbackendcups.c:4668 msgctxt "output-bin" msgid "Middle Bin" msgstr "Ð¡ÐµÑ€ÐµÐ´Ð½Ñ Ñкринька" #. Translators: Bottom output bin -#: modules/printbackends/gtkprintbackendcups.c:4671 +#: modules/printbackends/gtkprintbackendcups.c:4670 msgctxt "output-bin" msgid "Bottom Bin" msgstr "ÐÐ¸Ð¶Ð½Ñ Ñкринька" #. Translators: Side output bin -#: modules/printbackends/gtkprintbackendcups.c:4673 +#: modules/printbackends/gtkprintbackendcups.c:4672 msgctxt "output-bin" msgid "Side Bin" msgstr "Бічна Ñкринька" #. Translators: Left output bin -#: modules/printbackends/gtkprintbackendcups.c:4675 +#: modules/printbackends/gtkprintbackendcups.c:4674 msgctxt "output-bin" msgid "Left Bin" msgstr "Ліва Ñкринька" #. Translators: Right output bin -#: modules/printbackends/gtkprintbackendcups.c:4677 +#: modules/printbackends/gtkprintbackendcups.c:4676 msgctxt "output-bin" msgid "Right Bin" msgstr "Права Ñкринька" #. Translators: Center output bin -#: modules/printbackends/gtkprintbackendcups.c:4679 +#: modules/printbackends/gtkprintbackendcups.c:4678 msgctxt "output-bin" msgid "Center Bin" msgstr "Центральна Ñкринька" #. Translators: Rear output bin -#: modules/printbackends/gtkprintbackendcups.c:4681 +#: modules/printbackends/gtkprintbackendcups.c:4680 msgctxt "output-bin" msgid "Rear Bin" msgstr "Ð—Ð°Ð´Ð½Ñ Ñкринька" #. Translators: Output bin where one sided output is oriented in the face-up position -#: modules/printbackends/gtkprintbackendcups.c:4683 +#: modules/printbackends/gtkprintbackendcups.c:4682 msgctxt "output-bin" msgid "Face Up Bin" msgstr "Розвернута Ñкринька" #. Translators: Output bin where one sided output is oriented in the face-down position -#: modules/printbackends/gtkprintbackendcups.c:4685 +#: modules/printbackends/gtkprintbackendcups.c:4684 msgctxt "output-bin" msgid "Face Down Bin" msgstr "Перевернута Ñкринька" #. Translators: Large capacity output bin -#: modules/printbackends/gtkprintbackendcups.c:4687 +#: modules/printbackends/gtkprintbackendcups.c:4686 msgctxt "output-bin" msgid "Large Capacity Bin" msgstr "Скринька великої ємноÑÑ‚Ñ–" #. Translators: Output stacker number %d -#: modules/printbackends/gtkprintbackendcups.c:4709 +#: modules/printbackends/gtkprintbackendcups.c:4708 #, c-format msgctxt "output-bin" msgid "Stacker %d" msgstr "Укладальник %d" #. Translators: Output mailbox number %d -#: modules/printbackends/gtkprintbackendcups.c:4713 +#: modules/printbackends/gtkprintbackendcups.c:4712 #, c-format msgctxt "output-bin" msgid "Mailbox %d" msgstr "Поштова Ñкринька %d" #. Translators: Private mailbox -#: modules/printbackends/gtkprintbackendcups.c:4717 +#: modules/printbackends/gtkprintbackendcups.c:4716 msgctxt "output-bin" msgid "My Mailbox" msgstr "ÐœÐ¾Ñ Ð¿Ð¾ÑˆÑ‚Ð¾Ð²Ð° Ñкринька" #. Translators: Output tray number %d -#: modules/printbackends/gtkprintbackendcups.c:4721 +#: modules/printbackends/gtkprintbackendcups.c:4720 #, c-format msgctxt "output-bin" msgid "Tray %d" msgstr "Лоток %d" -#: modules/printbackends/gtkprintbackendcups.c:5198 +#: modules/printbackends/gtkprintbackendcups.c:5197 msgid "Printer Default" msgstr "Типовий принтер" #. Translators: These strings name the possible values of the #. * job priority option in the print dialog #. -#: modules/printbackends/gtkprintbackendcups.c:5642 +#: modules/printbackends/gtkprintbackendcups.c:5641 msgid "Urgent" msgstr "Терміново" -#: modules/printbackends/gtkprintbackendcups.c:5642 +#: modules/printbackends/gtkprintbackendcups.c:5641 msgid "High" msgstr "ВиÑокий" -#: modules/printbackends/gtkprintbackendcups.c:5642 +#: modules/printbackends/gtkprintbackendcups.c:5641 msgid "Medium" msgstr "Середній" -#: modules/printbackends/gtkprintbackendcups.c:5642 +#: modules/printbackends/gtkprintbackendcups.c:5641 msgid "Low" msgstr "Ðизький" #. Translators, this string is used to label the job priority option #. * in the print dialog #. -#: modules/printbackends/gtkprintbackendcups.c:5672 +#: modules/printbackends/gtkprintbackendcups.c:5671 msgid "Job Priority" msgstr "Пріоритет завданнÑ" #. Translators, this string is used to label the billing info entry #. * in the print dialog #. -#: modules/printbackends/gtkprintbackendcups.c:5683 +#: modules/printbackends/gtkprintbackendcups.c:5682 msgid "Billing Info" msgstr "Ð†Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ Ð¿Ñ€Ð¾ облік" #. Translators, these strings are names for various 'standard' cover #. * pages that the printing system may support. #. -#: modules/printbackends/gtkprintbackendcups.c:5707 +#: modules/printbackends/gtkprintbackendcups.c:5706 msgctxt "cover page" msgid "None" msgstr "Ðемає" -#: modules/printbackends/gtkprintbackendcups.c:5708 +#: modules/printbackends/gtkprintbackendcups.c:5707 msgctxt "cover page" msgid "Classified" msgstr "КлаÑифіковано" -#: modules/printbackends/gtkprintbackendcups.c:5709 +#: modules/printbackends/gtkprintbackendcups.c:5708 msgctxt "cover page" msgid "Confidential" msgstr "Конфіденційно" -#: modules/printbackends/gtkprintbackendcups.c:5710 +#: modules/printbackends/gtkprintbackendcups.c:5709 msgctxt "cover page" msgid "Secret" msgstr "Таємно" -#: modules/printbackends/gtkprintbackendcups.c:5711 +#: modules/printbackends/gtkprintbackendcups.c:5710 msgctxt "cover page" msgid "Standard" msgstr "Стандартно" -#: modules/printbackends/gtkprintbackendcups.c:5712 +#: modules/printbackends/gtkprintbackendcups.c:5711 msgctxt "cover page" msgid "Top Secret" msgstr "Цілковито таємно" -#: modules/printbackends/gtkprintbackendcups.c:5713 +#: modules/printbackends/gtkprintbackendcups.c:5712 msgctxt "cover page" msgid "Unclassified" msgstr "Ðе клаÑифіковано" @@ -6885,7 +6952,7 @@ msgstr "Ðе клаÑифіковано" #. Translators, this string is used to label the pages-per-sheet option #. * in the print dialog #. -#: modules/printbackends/gtkprintbackendcups.c:5725 +#: modules/printbackends/gtkprintbackendcups.c:5724 msgctxt "printer option" msgid "Pages per Sheet" msgstr "Сторінок на аркуш" @@ -6893,7 +6960,7 @@ msgstr "Сторінок на аркуш" #. Translators, this string is used to label the option in the print #. * dialog that controls in what order multiple pages are arranged #. -#: modules/printbackends/gtkprintbackendcups.c:5742 +#: modules/printbackends/gtkprintbackendcups.c:5741 msgctxt "printer option" msgid "Page Ordering" msgstr "ПорÑдок Ñторінок" @@ -6901,7 +6968,7 @@ msgstr "ПорÑдок Ñторінок" #. Translators, this is the label used for the option in the print #. * dialog that controls the front cover page. #. -#: modules/printbackends/gtkprintbackendcups.c:5784 +#: modules/printbackends/gtkprintbackendcups.c:5783 msgctxt "printer option" msgid "Before" msgstr "Перед" @@ -6909,7 +6976,7 @@ msgstr "Перед" #. Translators, this is the label used for the option in the print #. * dialog that controls the back cover page. #. -#: modules/printbackends/gtkprintbackendcups.c:5799 +#: modules/printbackends/gtkprintbackendcups.c:5798 msgctxt "printer option" msgid "After" msgstr "ПіÑлÑ" @@ -6918,7 +6985,7 @@ msgstr "ПіÑлÑ" #. * a print job is printed. Possible values are 'now', a specified time, #. * or 'on hold' #. -#: modules/printbackends/gtkprintbackendcups.c:5819 +#: modules/printbackends/gtkprintbackendcups.c:5818 msgctxt "printer option" msgid "Print at" msgstr "Ðадрукувати" @@ -6926,7 +6993,7 @@ msgstr "Ðадрукувати" #. Translators: this is the name of the option that allows the user #. * to specify a time when a print job will be printed. #. -#: modules/printbackends/gtkprintbackendcups.c:5830 +#: modules/printbackends/gtkprintbackendcups.c:5829 msgctxt "printer option" msgid "Print at time" msgstr "Ðадрукувати о" @@ -6936,64 +7003,64 @@ msgstr "Ðадрукувати о" #. * the width and height in points. E.g: "Custom #. * 230.4x142.9" #. -#: modules/printbackends/gtkprintbackendcups.c:5877 +#: modules/printbackends/gtkprintbackendcups.c:5876 #, c-format msgid "Custom %s×%s" msgstr "Інший %s×%s" #. TRANSLATORS: this is the ICC color profile to use for this job -#: modules/printbackends/gtkprintbackendcups.c:5988 +#: modules/printbackends/gtkprintbackendcups.c:5987 msgctxt "printer option" msgid "Printer Profile" msgstr "Профіль принтера" #. TRANSLATORS: this is when color profile information is unavailable -#: modules/printbackends/gtkprintbackendcups.c:5995 +#: modules/printbackends/gtkprintbackendcups.c:5994 msgctxt "printer option value" msgid "Unavailable" msgstr "ÐедоÑтупно" -#: modules/printbackends/gtkprintbackendfile.c:235 +#: modules/printbackends/gtkprintbackendfile.c:238 msgid "output" msgstr "вивід" -#: modules/printbackends/gtkprintbackendfile.c:507 +#: modules/printbackends/gtkprintbackendfile.c:510 msgid "Print to File" msgstr "Друкувати у файл" -#: modules/printbackends/gtkprintbackendfile.c:633 +#: modules/printbackends/gtkprintbackendfile.c:636 msgid "PDF" msgstr "PDF" -#: modules/printbackends/gtkprintbackendfile.c:633 +#: modules/printbackends/gtkprintbackendfile.c:636 msgid "PostScript" msgstr "PostScript" -#: modules/printbackends/gtkprintbackendfile.c:633 +#: modules/printbackends/gtkprintbackendfile.c:636 msgid "SVG" msgstr "SVG" -#: modules/printbackends/gtkprintbackendfile.c:646 +#: modules/printbackends/gtkprintbackendfile.c:649 msgid "Pages per _sheet:" msgstr "Сторінок на _аркуш:" -#: modules/printbackends/gtkprintbackendfile.c:706 +#: modules/printbackends/gtkprintbackendfile.c:709 msgid "File" msgstr "Файл" -#: modules/printbackends/gtkprintbackendfile.c:716 +#: modules/printbackends/gtkprintbackendfile.c:719 msgid "_Output format" msgstr "Формат _виводу" -#: modules/printbackends/gtkprintbackendlpr.c:371 +#: modules/printbackends/gtkprintbackendlpr.c:375 msgid "Print to LPR" msgstr "Друкувати в LPR" -#: modules/printbackends/gtkprintbackendlpr.c:400 +#: modules/printbackends/gtkprintbackendlpr.c:404 msgid "Pages Per Sheet" msgstr "Сторінок на аркуш" -#: modules/printbackends/gtkprintbackendlpr.c:406 +#: modules/printbackends/gtkprintbackendlpr.c:410 msgid "Command Line" msgstr "Командний Ñ€Ñдок" @@ -7070,15 +7137,16 @@ msgstr "" " screenshot Зробити знімок вікна з файла.\n" "\n" -#: tools/gtk-builder-tool-enumerate.c:54 tools/gtk-builder-tool-preview.c:179 +#: tools/gtk-builder-tool-enumerate.c:56 tools/gtk-builder-tool-preview.c:179 #: tools/gtk-builder-tool-preview.c:180 tools/gtk-builder-tool-screenshot.c:359 #: tools/gtk-builder-tool-screenshot.c:362 -#: tools/gtk-builder-tool-simplify.c:2360 tools/gtk-builder-tool-validate.c:159 +#: tools/gtk-builder-tool-simplify.c:2362 tools/gtk-builder-tool-validate.c:260 msgid "FILE" msgstr "ФÐЙЛ" -#: tools/gtk-builder-tool-enumerate.c:62 -msgid "List all named objects." +#: tools/gtk-builder-tool-enumerate.c:64 +#| msgid "List all named objects." +msgid "Print all named objects." msgstr "ВивеÑти ÑпиÑок уÑÑ–Ñ… іменованих об'єктів." #: tools/gtk-builder-tool-preview.c:178 @@ -7109,65 +7177,65 @@ msgstr "ПерезапиÑати наÑвний файл" msgid "Take a screenshot of the file." msgstr "Зробити знімок вікна вміÑту файла." -#: tools/gtk-builder-tool-simplify.c:442 +#: tools/gtk-builder-tool-simplify.c:444 #, c-format msgid "%s:%d: Couldn’t parse value for property '%s': %s\n" msgstr "%s:%d: не вдалоÑÑ Ð¾Ð±Ñ€Ð¾Ð±Ð¸Ñ‚Ð¸ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ð²Ð»Ð°ÑтивоÑÑ‚Ñ– «%s»: %s\n" -#: tools/gtk-builder-tool-simplify.c:651 +#: tools/gtk-builder-tool-simplify.c:653 #, c-format msgid "%s:%d: %sproperty %s::%s not found\n" msgstr "%s:%d: %sвлаÑтивіÑÑ‚ÑŒ %s::%s не знайдено\n" -#: tools/gtk-builder-tool-simplify.c:2288 +#: tools/gtk-builder-tool-simplify.c:2290 #, c-format msgid "Can’t load “%sâ€: %s\n" msgstr "Ðе вдалоÑÑ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶Ð¸Ñ‚Ð¸ «%s»: %s\n" -#: tools/gtk-builder-tool-simplify.c:2299 -#: tools/gtk-builder-tool-simplify.c:2305 +#: tools/gtk-builder-tool-simplify.c:2301 +#: tools/gtk-builder-tool-simplify.c:2307 #, c-format msgid "Can’t parse “%sâ€: %s\n" msgstr "Ðе вдалоÑÑ Ð¾Ð±Ñ€Ð¾Ð±Ð¸Ñ‚Ð¸ «%s»: %s\n" -#: tools/gtk-builder-tool-simplify.c:2311 +#: tools/gtk-builder-tool-simplify.c:2313 #, c-format msgid "Can’t parse “%sâ€\n" msgstr "Ðе вдалоÑÑ Ð¾Ð±Ñ€Ð¾Ð±Ð¸Ñ‚Ð¸ «%s»\n" -#: tools/gtk-builder-tool-simplify.c:2335 +#: tools/gtk-builder-tool-simplify.c:2337 #, c-format msgid "Failed to read “%sâ€: %s\n" msgstr "Ðе вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ «%s»: %s\n" -#: tools/gtk-builder-tool-simplify.c:2341 +#: tools/gtk-builder-tool-simplify.c:2343 #, c-format msgid "Failed to write %s: “%sâ€\n" msgstr "Ðе вдалоÑÑ Ð·Ð°Ð¿Ð¸Ñати %s: «%s»\n" -#: tools/gtk-builder-tool-simplify.c:2358 +#: tools/gtk-builder-tool-simplify.c:2360 msgid "Replace the file" msgstr "Замінити файл" -#: tools/gtk-builder-tool-simplify.c:2359 +#: tools/gtk-builder-tool-simplify.c:2361 msgid "Convert from GTK 3 to GTK 4" msgstr "Перетворити з GTK 3 на GTK 4" -#: tools/gtk-builder-tool-simplify.c:2370 +#: tools/gtk-builder-tool-simplify.c:2372 msgid "Simplify the file." msgstr "СпроÑтити файл." -#: tools/gtk-builder-tool-simplify.c:2383 +#: tools/gtk-builder-tool-simplify.c:2385 #, c-format msgid "No .ui file specified\n" msgstr "Ðе вказано файла .ui\n" -#: tools/gtk-builder-tool-simplify.c:2389 +#: tools/gtk-builder-tool-simplify.c:2391 #, c-format msgid "Can only simplify a single .ui file without --replace\n" msgstr "Без --replace можна Ñпрощувати лише один файл .ui\n" -#: tools/gtk-builder-tool-validate.c:168 +#: tools/gtk-builder-tool-validate.c:269 msgid "Validate the file." msgstr "Перевірити чинніÑÑ‚ÑŒ файла." @@ -7279,55 +7347,55 @@ msgstr "Ðе вдалоÑÑŒ перейменувати %s у %s: %s\n" msgid "Could not rename %s back to %s: %s.\n" msgstr "Ðе вдалоÑÑŒ перейменувати %s назад на %s: %s.\n" -#: tools/updateiconcache.c:1618 +#: tools/updateiconcache.c:1614 #, c-format msgid "Cache file created successfully.\n" msgstr "Файл кешу уÑпішно Ñтворено.\n" -#: tools/updateiconcache.c:1657 +#: tools/updateiconcache.c:1653 msgid "Overwrite an existing cache, even if up to date" msgstr "ПерезапиÑати наÑвний кеш, навіть Ñкщо його оновлено" -#: tools/updateiconcache.c:1658 +#: tools/updateiconcache.c:1654 msgid "Don’t check for the existence of index.theme" msgstr "Ðе перевірÑти Ñ–ÑÐ½ÑƒÐ²Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ð° index.theme" -#: tools/updateiconcache.c:1659 +#: tools/updateiconcache.c:1655 msgid "Don’t include image data in the cache" msgstr "Ðе враховувати Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð² кеші" -#: tools/updateiconcache.c:1660 +#: tools/updateiconcache.c:1656 msgid "Include image data in the cache" msgstr "Враховувати Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð² кеші" -#: tools/updateiconcache.c:1661 +#: tools/updateiconcache.c:1657 msgid "Output a C header file" msgstr "Видавати файл заголовків на мові C" -#: tools/updateiconcache.c:1662 +#: tools/updateiconcache.c:1658 msgid "Turn off verbose output" msgstr "Вимкнути розширений вивід" -#: tools/updateiconcache.c:1663 +#: tools/updateiconcache.c:1659 msgid "Validate existing icon cache" msgstr "Перевірити наÑвний кеш піктограм" -#: tools/updateiconcache.c:1728 +#: tools/updateiconcache.c:1724 #, c-format msgid "File not found: %s\n" msgstr "Ðе вдалоÑÑŒ знайти файл: %s\n" -#: tools/updateiconcache.c:1734 +#: tools/updateiconcache.c:1730 #, c-format msgid "Not a valid icon cache: %s\n" msgstr "Ðекоректний піктограма у кеші: %s\n" -#: tools/updateiconcache.c:1747 +#: tools/updateiconcache.c:1743 #, c-format msgid "No theme index file.\n" msgstr "Ðемає файла з індекÑом теми.\n" -#: tools/updateiconcache.c:1751 +#: tools/updateiconcache.c:1747 #, c-format msgid "" "No theme index file in “%sâ€.\n" @@ -7337,6 +7405,15 @@ msgstr "" "Якщо ви дійÑно бажаєте Ñтворити тут кеш значків, викориÑтовуйте --ignore-" "theme-index.\n" +#~ msgid "Other application…" +#~ msgstr "Інша програма…" + +#~ msgid "Default Application" +#~ msgstr "Типова програма" + +#~ msgid "horizontal" +#~ msgstr "горизонтальна" + #~ msgid "GL rendering is disabled" #~ msgstr "Ð’Ñ–Ð´Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ GL вимкнено" @@ -8104,12 +8181,6 @@ msgstr "" #~ msgid "Dormant" #~ msgstr "БездіÑльний" -#~ msgid "Select a File" -#~ msgstr "Виберіть файл" - -#~ msgid "Other…" -#~ msgstr "Інше…" - #~ msgid "C_redits" #~ msgstr "_ПодÑки" diff --git a/subprojects/cairo.wrap b/subprojects/cairo.wrap index d09964e401..fb8aa712b3 100644 --- a/subprojects/cairo.wrap +++ b/subprojects/cairo.wrap @@ -1,6 +1,10 @@ [wrap-git] -directory=cairo -url=https://gitlab.freedesktop.org/cairo/cairo.git -push-url=ssh://git@gitlab.freedesktop.org:cairo/cairo.git -revision=master -depth=1 +directory = cairo +url = https://gitlab.freedesktop.org/cairo/cairo.git +push-url = ssh://git@gitlab.freedesktop.org:cairo/cairo.git +revision = master +depth = 1 + +[provide] +cairo = libcairo_dep +cairo-gobject = libcairogobject_dep diff --git a/subprojects/fribidi.wrap b/subprojects/fribidi.wrap new file mode 100644 index 0000000000..20ba8edf1d --- /dev/null +++ b/subprojects/fribidi.wrap @@ -0,0 +1,9 @@ +[wrap-git] +directory = fribidi +url = https://github.com/fribidi/fribidi.git +push-url = git@github.com:fribidi/fribidi.git +revision = master +depth = 1 + +[provide] +dependency_names = fribidi diff --git a/subprojects/gdk-pixbuf.wrap b/subprojects/gdk-pixbuf.wrap index 123ea163f9..d3a2db833f 100644 --- a/subprojects/gdk-pixbuf.wrap +++ b/subprojects/gdk-pixbuf.wrap @@ -1,6 +1,10 @@ [wrap-git] -directory=gdk-pixbuf -url=https://gitlab.gnome.org/GNOME/gdk-pixbuf.git -push-url=ssh://git@gitlab.gnome.org:GNOME/gdk-pixbuf.git -revision=master -depth=1 +directory = gdk-pixbuf +url = https://gitlab.gnome.org/GNOME/gdk-pixbuf.git +push-url = ssh://git@ssh.gitlab.gnome.org:GNOME/gdk-pixbuf.git +revision = master +depth = 1 + +[provide] +dependency_names = gdk-pixbuf-2.0 +program_names = gdk-pixbuf-query-loaders, gdk-pixbuf-pixdata, gdk-pixbuf-csource, gdk-pixbuf-thumbnailer diff --git a/subprojects/gi-docgen.wrap b/subprojects/gi-docgen.wrap index 98cd921182..85c85da16f 100644 --- a/subprojects/gi-docgen.wrap +++ b/subprojects/gi-docgen.wrap @@ -1,6 +1,9 @@ [wrap-git] -directory=gi-docgen -url=https://gitlab.gnome.org/GNOME/gi-docgen.git -push-url=ssh://git@gitlab.gnome.org:GNOME/gi-docgen.git -revision=main -depth=1 +directory = gi-docgen +url = https://gitlab.gnome.org/GNOME/gi-docgen.git +push-url = ssh://git@ssh.gitlab.gnome.org:GNOME/gi-docgen.git +revision = main +depth = 1 + +[provide] +program_names = gi-docgen diff --git a/subprojects/glib.wrap b/subprojects/glib.wrap index c785910d9f..525a37bbf3 100644 --- a/subprojects/glib.wrap +++ b/subprojects/glib.wrap @@ -1,6 +1,10 @@ [wrap-git] -directory=glib -url=https://gitlab.gnome.org/GNOME/glib.git -push-url=ssh://git@gitlab.gnome.org:GNOME/glib.git -revision=main -depth=1 +directory = glib +url = https://gitlab.gnome.org/GNOME/glib.git +push-url = ssh://git@ssh.gitlab.gnome.org:GNOME/glib.git +revision = main +depth = 1 + +[provide] +dependency_names = gthread-2.0, gobject-2.0, gmodule-no-export-2.0, gmodule-export-2.0, gmodule-2.0, glib-2.0, gio-2.0, gio-windows-2.0, gio-unix-2.0 +program_names = glib-genmarshal, glib-mkenums, glib-compile-schemas, glib-compile-resources, gio-querymodules, gdbus-codegen diff --git a/subprojects/graphene.wrap b/subprojects/graphene.wrap index 902095dbd7..e15c661551 100644 --- a/subprojects/graphene.wrap +++ b/subprojects/graphene.wrap @@ -1,5 +1,8 @@ [wrap-git] -directory=graphene -url=https://github.com/ebassi/graphene.git -revision=master -depth=1 +directory = graphene +url = https://github.com/ebassi/graphene.git +revision = master +depth = 1 + +[provide] +dependency_names = graphene-1.0, graphene-gobject-1.0 diff --git a/subprojects/harfbuzz.wrap b/subprojects/harfbuzz.wrap index 10b770d424..9245bfb525 100644 --- a/subprojects/harfbuzz.wrap +++ b/subprojects/harfbuzz.wrap @@ -1,6 +1,9 @@ [wrap-git] -directory=harfbuzz -url=https://github.com/harfbuzz/harfbuzz.git -push-url=git@github.com:harfbuzz/harfbuzz.git -revision=main -depth=1 +directory = harfbuzz +url = https://github.com/harfbuzz/harfbuzz.git +push-url = git@github.com:harfbuzz/harfbuzz.git +revision = 4.0.0 +depth = 1 + +[provide] +harfbuzz = libharfbuzz_dep diff --git a/subprojects/libcloudproviders.wrap b/subprojects/libcloudproviders.wrap index baa31bb003..919c70345f 100644 --- a/subprojects/libcloudproviders.wrap +++ b/subprojects/libcloudproviders.wrap @@ -1,5 +1,9 @@ [wrap-git] -directory=libcloudproviders -url=https://gitlab.gnome.org/World/libcloudproviders.git -revision=master -depth=1 +directory = libcloudproviders +url = https://gitlab.gnome.org/World/libcloudproviders.git +push-url = ssh://git@ssh.gitlab.gnome.org:World/libcloudproviders.git +revision = master +depth = 1 + +[provide] +libcloudproviders = libcloudproviders_dep diff --git a/subprojects/libepoxy.wrap b/subprojects/libepoxy.wrap index fc5147a22b..245769050a 100644 --- a/subprojects/libepoxy.wrap +++ b/subprojects/libepoxy.wrap @@ -1,5 +1,8 @@ [wrap-git] -directory=libepoxy -url=https://github.com/anholt/libepoxy.git -revision=master -depth=1 +directory = libepoxy +url = https://github.com/anholt/libepoxy.git +revision = master +depth = 1 + +[provide] +dependency_names = epoxy diff --git a/subprojects/pango.wrap b/subprojects/pango.wrap index 64317f97fe..b75c158b86 100644 --- a/subprojects/pango.wrap +++ b/subprojects/pango.wrap @@ -1,6 +1,13 @@ [wrap-git] -directory=pango -url=https://gitlab.gnome.org/GNOME/pango.git -push-url=ssh://git@gitlab.gnome.org:GNOME/pango.git -revision=main -depth=1 +directory = pango +url = https://gitlab.gnome.org/GNOME/pango.git +push-url = ssh://git@ssh.gitlab.gnome.org:GNOME/pango.git +revision = main +depth = 1 + +[provide] +pango = libpango_dep +pangoft2 = libpangoft2_dep +pangoxft = libpangoxft_dep +pangowin32 = libpangowin32_dep +pangocairo = libpangocairo_dep diff --git a/subprojects/sassc.wrap b/subprojects/sassc.wrap index edd76c61be..2930f5c1a3 100644 --- a/subprojects/sassc.wrap +++ b/subprojects/sassc.wrap @@ -1,5 +1,8 @@ [wrap-git] -directory=sassc -url=https://github.com/lazka/sassc.git -revision=meson -depth=1 +directory = sassc +url = https://github.com/lazka/sassc.git +revision = meson +depth = 1 + +[provide] +program_names = sassc diff --git a/subprojects/sysprof.wrap b/subprojects/sysprof.wrap index 99aa36ce87..29dcbdc130 100644 --- a/subprojects/sysprof.wrap +++ b/subprojects/sysprof.wrap @@ -1,5 +1,8 @@ [wrap-git] -directory=sysprof -url=https://gitlab.gnome.org/GNOME/sysprof.git -revision=master -depth=1 +directory = sysprof +url = https://gitlab.gnome.org/GNOME/sysprof.git +revision = master +depth = 1 + +[provide] +dependency_names = sysprof-4, sysprof-capture-4, sysprof-ui-4 diff --git a/subprojects/wayland.wrap b/subprojects/wayland.wrap index 5be67bf491..7dc36737f7 100644 --- a/subprojects/wayland.wrap +++ b/subprojects/wayland.wrap @@ -1,8 +1,9 @@ [wrap-git] -directory=wayland -url=https://gitlab.freedesktop.org/wayland/wayland.git -revision=main -depth=1 +directory = wayland +url = https://gitlab.freedesktop.org/wayland/wayland.git +push-url = git@gitlab.freedesktop.org:wayland/wayland +revision = main +depth = 1 [provide] dependency_names = wayland-client, wayland-egl diff --git a/tests/animated-resizing.c b/tests/animated-resizing.c index bf7a0b68c4..77f21ea9a8 100644 --- a/tests/animated-resizing.c +++ b/tests/animated-resizing.c @@ -218,7 +218,7 @@ main(int argc, char **argv) G_CALLBACK (on_map), NULL); on_frame (0.); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); while (!done) g_main_context_iteration (NULL, TRUE); diff --git a/tests/animated-revealing.c b/tests/animated-revealing.c index 5e5f666a53..424c04ad8b 100644 --- a/tests/animated-revealing.c +++ b/tests/animated-revealing.c @@ -80,7 +80,7 @@ main(int argc, char **argv) } } - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); while (!done) g_main_context_iteration (NULL, TRUE); diff --git a/tests/listmodel.c b/tests/listmodel.c index b4a2864dbf..32a4b28335 100644 --- a/tests/listmodel.c +++ b/tests/listmodel.c @@ -225,7 +225,7 @@ main (int argc, char *argv[]) g_signal_connect (button, "clicked", G_CALLBACK (remove_some), store); gtk_grid_attach (GTK_GRID (grid), button, 0, 2, 1, 1); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); while (TRUE) g_main_context_iteration (NULL, TRUE); diff --git a/tests/motion-compression.c b/tests/motion-compression.c index b0b1a8edbb..dc918988d0 100644 --- a/tests/motion-compression.c +++ b/tests/motion-compression.c @@ -85,7 +85,7 @@ main (int argc, char **argv) g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); while (!done) g_main_context_iteration (NULL, TRUE); diff --git a/tests/overlayscroll.c b/tests/overlayscroll.c index bf6783989b..1dd36b0e24 100644 --- a/tests/overlayscroll.c +++ b/tests/overlayscroll.c @@ -105,7 +105,7 @@ main (int argc, char *argv[]) sb2 = gtk_scrollbar_new (GTK_ORIENTATION_VERTICAL, adj); gtk_box_append (GTK_BOX (box), sb2); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); while (!done) g_main_context_iteration (NULL, TRUE); diff --git a/tests/scrolling-performance.c b/tests/scrolling-performance.c index f386c911b7..b813356415 100644 --- a/tests/scrolling-performance.c +++ b/tests/scrolling-performance.c @@ -150,7 +150,7 @@ main (int argc, char **argv) NULL, NULL); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done); diff --git a/tests/showrendernode.c b/tests/showrendernode.c index 9d145e6a82..c23d49b75b 100644 --- a/tests/showrendernode.c +++ b/tests/showrendernode.c @@ -283,7 +283,7 @@ main (int argc, char **argv) MAX (500, node_bounds.size.height)); g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); while (!done) g_main_context_iteration (NULL, TRUE); diff --git a/tests/simple.c b/tests/simple.c index 062afdc9fa..a3068ee5a9 100644 --- a/tests/simple.c +++ b/tests/simple.c @@ -59,7 +59,7 @@ main (int argc, char *argv[]) gtk_window_set_child (GTK_WINDOW (window), button); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); while (!done) g_main_context_iteration (NULL, TRUE); diff --git a/tests/syncscroll.c b/tests/syncscroll.c index 5d724dca64..9e4a0020de 100644 --- a/tests/syncscroll.c +++ b/tests/syncscroll.c @@ -66,7 +66,7 @@ main (int argc, char *argv[]) gtk_box_append (GTK_BOX (box), sb); - gtk_widget_show (win); + gtk_window_present (GTK_WINDOW (win)); while (TRUE) g_main_context_iteration (NULL, TRUE); diff --git a/tests/testaccel.c b/tests/testaccel.c index 9dd7abbfb4..b8008a7f53 100644 --- a/tests/testaccel.c +++ b/tests/testaccel.c @@ -127,7 +127,7 @@ main (int argc, char **argv) dialog = key_test (); - gtk_widget_show (dialog); + gtk_window_present (GTK_WINDOW (dialog)); while (TRUE) g_main_context_iteration (NULL, TRUE); diff --git a/tests/testadjustsize.c b/tests/testadjustsize.c index 6b0997d4fc..27101ed490 100644 --- a/tests/testadjustsize.c +++ b/tests/testadjustsize.c @@ -96,7 +96,7 @@ open_test_window (void) gtk_grid_attach (GTK_GRID (grid), test_widgets[i], i % 3, i / 3, 1, 1); } - gtk_widget_show (test_window); + gtk_window_present (GTK_WINDOW (test_window)); } static void @@ -163,7 +163,7 @@ open_control_window (void) gtk_box_append (GTK_BOX (box), toggle); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); } #define TEST_WIDGET(outer) (gtk_overlay_get_child (GTK_OVERLAY (gtk_overlay_get_child (GTK_OVERLAY (outer))))) @@ -268,7 +268,7 @@ open_alignment_window (void) } } - gtk_widget_show (test_window); + gtk_window_present (GTK_WINDOW (test_window)); } static GtkWidget* @@ -318,7 +318,7 @@ open_margin_window (void) gtk_box_append (GTK_BOX (box), child); } - gtk_widget_show (test_window); + gtk_window_present (GTK_WINDOW (test_window)); } static void diff --git a/tests/testappchooser.c b/tests/testappchooser.c index 09a856d561..c2d6f587d1 100644 --- a/tests/testappchooser.c +++ b/tests/testappchooser.c @@ -124,7 +124,7 @@ display_dialog (void) if (dialog == NULL) prepare_dialog (); - gtk_widget_show (dialog); + gtk_window_present (GTK_WINDOW (dialog)); } static void @@ -253,7 +253,7 @@ main (int argc, char **argv) gtk_window_set_child (GTK_WINDOW (toplevel), grid); - gtk_widget_show (toplevel); + gtk_window_present (GTK_WINDOW (toplevel)); g_signal_connect (toplevel, "destroy", G_CALLBACK (quit_cb), &done); while (!done) diff --git a/tests/testappchooserbutton.c b/tests/testappchooserbutton.c index 1ffc062d4a..3172588206 100644 --- a/tests/testappchooserbutton.c +++ b/tests/testappchooserbutton.c @@ -147,7 +147,7 @@ main (int argc, gtk_app_chooser_button_set_active_custom_item (GTK_APP_CHOOSER_BUTTON (button), CUSTOM_ITEM); #endif - gtk_widget_show (toplevel); + gtk_window_present (GTK_WINDOW (toplevel)); g_signal_connect (toplevel, "destroy", G_CALLBACK (quit_cb), &done); diff --git a/tests/testassistant.c b/tests/testassistant.c index b478128842..b7404a7423 100644 --- a/tests/testassistant.c +++ b/tests/testassistant.c @@ -178,7 +178,7 @@ create_simple_assistant (GtkWidget *widget) } if (!gtk_widget_get_visible (assistant)) - gtk_widget_show (assistant); + gtk_window_present (GTK_WINDOW (assistant)); else { gtk_window_destroy (GTK_WINDOW (assistant)); @@ -710,7 +710,7 @@ main (int argc, char *argv[]) gtk_box_append (GTK_BOX (box), button); } - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); while (!done) g_main_context_iteration (NULL, TRUE); diff --git a/tests/testbaseline.c b/tests/testbaseline.c index 06f362c56f..9e5751e603 100644 --- a/tests/testbaseline.c +++ b/tests/testbaseline.c @@ -401,7 +401,7 @@ main (int argc, } } - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); while (!done) g_main_context_iteration (NULL, TRUE); diff --git a/tests/testblur.c b/tests/testblur.c index 618862cf1c..a1eb5f1858 100644 --- a/tests/testblur.c +++ b/tests/testblur.c @@ -126,7 +126,7 @@ main (int argc, char **argv) gtk_box_append (GTK_BOX (blur_box), scale); gtk_window_set_child (GTK_WINDOW (window), blur_box); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); while (!done) g_main_context_iteration (NULL, TRUE); diff --git a/tests/testborderdrawing.c b/tests/testborderdrawing.c index e78f324940..661d2481c9 100644 --- a/tests/testborderdrawing.c +++ b/tests/testborderdrawing.c @@ -166,7 +166,7 @@ main (int argc, char **argv) gtk_box_append (GTK_BOX (box), bottom); gtk_window_set_child (GTK_WINDOW (window), box); g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); while (!done) g_main_context_iteration (NULL, TRUE); diff --git a/tests/testcalendar.c b/tests/testcalendar.c index 387731d5a9..b4edcac895 100644 --- a/tests/testcalendar.c +++ b/tests/testcalendar.c @@ -314,7 +314,7 @@ create_calendar(void) gtk_window_set_default_size (GTK_WINDOW (window), 600, 0); g_signal_connect (window, "close-request", G_CALLBACK (quit_cb), &done); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); while (!done) g_main_context_iteration (NULL, TRUE); diff --git a/tests/testcellarea.c b/tests/testcellarea.c index 212988b610..66341d7ccc 100644 --- a/tests/testcellarea.c +++ b/tests/testcellarea.c @@ -249,7 +249,7 @@ simple_cell_area (void) gtk_window_set_child (GTK_WINDOW (window), hbox); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); } /******************************************************* @@ -455,7 +455,7 @@ focus_cell_area (void) gtk_window_set_child (GTK_WINDOW (window), hbox); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); } @@ -579,7 +579,7 @@ background_area (void) g_signal_connect (G_OBJECT (widget), "value-changed", G_CALLBACK (item_padding_changed), iconview); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); } diff --git a/tests/testcellrenderertext.c b/tests/testcellrenderertext.c index fd40a75188..5c5fd814a6 100644 --- a/tests/testcellrenderertext.c +++ b/tests/testcellrenderertext.c @@ -295,7 +295,7 @@ main (int argc, char **argv) gtk_widget_set_vexpand (tree, TRUE); gtk_box_append (GTK_BOX (vbox), tree); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); while (!done) g_main_context_iteration (NULL, TRUE); diff --git a/tests/testcenterbox.c b/tests/testcenterbox.c index 0b420baea4..f32f443dc3 100644 --- a/tests/testcenterbox.c +++ b/tests/testcenterbox.c @@ -42,7 +42,7 @@ main (int argc, char *argv[]) g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); while (!done) g_main_context_iteration (NULL, TRUE); diff --git a/tests/testclipboard2.c b/tests/testclipboard2.c index ed80ffde30..32df2cba95 100644 --- a/tests/testclipboard2.c +++ b/tests/testclipboard2.c @@ -452,7 +452,7 @@ main (int argc, char **argv) get_window_contents (gtk_widget_get_display (window), alt_display)); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); while (!done) g_main_context_iteration (NULL, TRUE); diff --git a/tests/testcolumnview.c b/tests/testcolumnview.c index 4f5a365f85..6b85251b50 100644 --- a/tests/testcolumnview.c +++ b/tests/testcolumnview.c @@ -775,7 +775,7 @@ main (int argc, char *argv[]) g_object_unref (scope); - gtk_widget_show (win); + gtk_window_present (GTK_WINDOW (win)); toplevels = gtk_window_get_toplevels (); while (g_list_model_get_n_items (toplevels)) diff --git a/tests/testcombo.c b/tests/testcombo.c index 6cfb010bec..063a66ba56 100644 --- a/tests/testcombo.c +++ b/tests/testcombo.c @@ -1103,7 +1103,6 @@ main (int argc, char **argv) gtk_combo_box_set_active (GTK_COMBO_BOX (combobox), 0); tmp = gtk_cell_view_new (); - gtk_widget_show (tmp); gtk_cell_view_set_model (GTK_CELL_VIEW (tmp), model); renderer = gtk_cell_renderer_text_new (); @@ -1298,7 +1297,7 @@ main (int argc, char **argv) gtk_combo_box_set_active (GTK_COMBO_BOX (combobox), 53); gtk_frame_set_child (GTK_FRAME (tmp), combobox); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); while (!done) g_main_context_iteration (NULL, TRUE); diff --git a/tests/testcombochange.c b/tests/testcombochange.c index 0833e98b47..95f316be2d 100644 --- a/tests/testcombochange.c +++ b/tests/testcombochange.c @@ -257,7 +257,7 @@ main (int argc, char **argv) gtk_widget_set_hexpand (close_button, TRUE); gtk_box_append (GTK_BOX (content_area), close_button); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); GMainLoop *loop = g_main_loop_new (NULL, FALSE); diff --git a/tests/testdatatable.c b/tests/testdatatable.c index bb9f86dc4f..72de5829e4 100644 --- a/tests/testdatatable.c +++ b/tests/testdatatable.c @@ -286,7 +286,7 @@ main (int argc, char **argv) NULL); } - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done); diff --git a/tests/testdnd.c b/tests/testdnd.c index 471ab2cab9..66e3c3c94a 100644 --- a/tests/testdnd.c +++ b/tests/testdnd.c @@ -386,7 +386,7 @@ popdown_cb (gpointer data) { popdown_timer = 0; - gtk_widget_hide (popup_window); + gtk_widget_set_visible (popup_window, FALSE); popped_up = FALSE; return FALSE; @@ -465,7 +465,7 @@ popup_cb (gpointer data) } gtk_window_set_child (GTK_WINDOW (popup_window), grid); } - gtk_widget_show (popup_window); + gtk_widget_set_visible (popup_window, TRUE); popped_up = TRUE; } @@ -588,7 +588,7 @@ main (int argc, char **argv) gtk_widget_set_vexpand (button, TRUE); gtk_grid_attach (GTK_GRID (grid), button, 0, 1, 1, 1); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); while (!done) g_main_context_iteration (NULL, TRUE); diff --git a/tests/testdnd2.c b/tests/testdnd2.c index 591d12fe53..c4b5ffa0ea 100644 --- a/tests/testdnd2.c +++ b/tests/testdnd2.c @@ -429,7 +429,7 @@ main (int argc, char *Argv[]) gtk_grid_attach (GTK_GRID (grid), make_image ("dialog-information", CENTER), 1, 3, 1, 1); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); while (TRUE) g_main_context_iteration (NULL, TRUE); diff --git a/tests/testellipsise.c b/tests/testellipsise.c index e497dd3805..76b4cef6fc 100644 --- a/tests/testellipsise.c +++ b/tests/testellipsise.c @@ -153,7 +153,7 @@ main (int argc, char *argv[]) g_signal_connect (combo, "changed", G_CALLBACK (combo_changed_cb), label); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); while (!done) g_main_context_iteration (NULL, TRUE); diff --git a/tests/testentrycompletion.c b/tests/testentrycompletion.c index 8f0253b73b..a29930b59f 100644 --- a/tests/testentrycompletion.c +++ b/tests/testentrycompletion.c @@ -411,7 +411,7 @@ main (int argc, char *argv[]) gtk_box_append (GTK_BOX (vbox), entry); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); while (!done) g_main_context_iteration (NULL, TRUE); diff --git a/tests/testentryicons.c b/tests/testentryicons.c index a39b1c573f..25d640f758 100644 --- a/tests/testentryicons.c +++ b/tests/testentryicons.c @@ -300,7 +300,7 @@ main (int argc, char **argv) provider = gtk_css_provider_new (); gtk_css_provider_load_from_data (provider, cssdata, -1); gtk_style_context_add_provider_for_display (gdk_display_get_default (), GTK_STYLE_PROVIDER (provider), 800); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); while (!done) g_main_context_iteration (NULL, TRUE); diff --git a/tests/testexpand.c b/tests/testexpand.c index 03b18bebc3..9929c8a3d2 100644 --- a/tests/testexpand.c +++ b/tests/testexpand.c @@ -102,7 +102,7 @@ create_box_window (void) gtk_label_new ("VBox 3 Bottom")); gtk_window_set_child (GTK_WINDOW (window), box1); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); } static void @@ -154,7 +154,7 @@ create_grid_window (void) gtk_grid_attach (GTK_GRID (grid), colorbox, 1, 2, 1, 1); gtk_window_set_child (GTK_WINDOW (window), grid); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); } int diff --git a/tests/testfilechooser.c b/tests/testfilechooser.c index 65f15e49d6..b112c22e5b 100644 --- a/tests/testfilechooser.c +++ b/tests/testfilechooser.c @@ -105,7 +105,7 @@ set_current_folder (GtkFileChooser *chooser, GTK_BUTTONS_CLOSE, "Could not set the folder to %s", name); - gtk_widget_show (dialog); + gtk_window_present (GTK_WINDOW (dialog)); g_signal_connect (dialog, "response", G_CALLBACK (gtk_window_destroy), NULL); @@ -142,7 +142,7 @@ set_filename (GtkFileChooser *chooser, GTK_BUTTONS_CLOSE, "Could not select %s", name); - gtk_widget_show (dialog); + gtk_window_present (GTK_WINDOW (dialog)); g_signal_connect (dialog, "response", G_CALLBACK (gtk_window_destroy), NULL); @@ -203,8 +203,8 @@ static void unmap_and_remap_cb (GtkButton *button, GtkFileChooser *chooser) { - gtk_widget_hide (GTK_WIDGET (chooser)); - gtk_widget_show (GTK_WIDGET (chooser)); + gtk_widget_set_visible (GTK_WIDGET (chooser), FALSE); + gtk_widget_set_visible (GTK_WIDGET (chooser), TRUE); } static void @@ -367,8 +367,7 @@ main (int argc, char **argv) if (initial_folder) set_current_folder (GTK_FILE_CHOOSER (dialog), initial_folder); - /* show_all() to reveal bugs in composite widget handling */ - gtk_widget_show (dialog); + gtk_window_present (GTK_WINDOW (dialog)); /* Extra controls for manipulating the test environment */ diff --git a/tests/testflowbox.c b/tests/testflowbox.c index b672179321..20efb47b86 100644 --- a/tests/testflowbox.c +++ b/tests/testflowbox.c @@ -617,7 +617,7 @@ main (int argc, char *argv[]) g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); while (!done) g_main_context_iteration (NULL, TRUE); diff --git a/tests/testfontchooserdialog.c b/tests/testfontchooserdialog.c index 78b70969c7..72388c1845 100644 --- a/tests/testfontchooserdialog.c +++ b/tests/testfontchooserdialog.c @@ -163,7 +163,7 @@ main (int argc, char *argv[]) g_signal_connect (toggle, "notify::active", G_CALLBACK (level_changed), font_button); gtk_box_append (GTK_BOX (box), toggle); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); g_signal_connect (font_button, "notify::font", G_CALLBACK (notify_font_cb), NULL); diff --git a/tests/testfontoptions.c b/tests/testfontoptions.c index 85d95e1ce1..dd348a91d2 100644 --- a/tests/testfontoptions.c +++ b/tests/testfontoptions.c @@ -85,7 +85,7 @@ main (int argc, char *argv[]) gtk_combo_box_set_active (GTK_COMBO_BOX (subpixel), 0); gtk_combo_box_set_active (GTK_COMBO_BOX (hintstyle), 0); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); while (TRUE) g_main_context_iteration (NULL, TRUE); diff --git a/tests/testframe.c b/tests/testframe.c index d2345b7dd5..c2215db182 100644 --- a/tests/testframe.c +++ b/tests/testframe.c @@ -100,7 +100,7 @@ int main (int argc, char **argv) g_signal_connect (widget, "value-changed", G_CALLBACK (spin_xalign_cb), frame); gtk_grid_attach (grid, widget, 1, 0, 1, 1); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); while (!done) g_main_context_iteration (NULL, TRUE); diff --git a/tests/testfullscreen.c b/tests/testfullscreen.c index 3adc82310f..ac266aee39 100644 --- a/tests/testfullscreen.c +++ b/tests/testfullscreen.c @@ -82,7 +82,7 @@ main (int argc, char *argv[]) g_signal_connect (button, "clicked", G_CALLBACK (remove_fullscreen_cb), NULL); gtk_box_append (GTK_BOX (vbox), button); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); while (TRUE) g_main_context_iteration (NULL, TRUE); diff --git a/tests/testgaction.c b/tests/testgaction.c index ef02e39f18..b85c107684 100644 --- a/tests/testgaction.c +++ b/tests/testgaction.c @@ -195,7 +195,7 @@ int main (int argc, char **argv) gtk_window_set_child (GTK_WINDOW (window), box); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); while (TRUE) g_main_context_iteration (NULL, TRUE); return 0; diff --git a/tests/testglarea.c b/tests/testglarea.c index 5c8ab927f9..5805836d2c 100644 --- a/tests/testglarea.c +++ b/tests/testglarea.c @@ -444,7 +444,7 @@ main (int argc, char *argv[]) gtk_box_append (GTK_BOX (box), button); g_signal_connect_swapped (button, "clicked", G_CALLBACK (gtk_window_destroy), window); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); while (!done) g_main_context_iteration (NULL, TRUE); diff --git a/tests/testglblending.c b/tests/testglblending.c index 01fb874bed..89c9faee73 100644 --- a/tests/testglblending.c +++ b/tests/testglblending.c @@ -85,7 +85,7 @@ main (int argc, char *argv[]) gtk_widget_set_size_request (spinner, 50, 50); gtk_fixed_put (GTK_FIXED (fixed), spinner, 110, 150); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); while (!done) g_main_context_iteration (NULL, TRUE); diff --git a/tests/testgmenu.c b/tests/testgmenu.c index 009b2b29dd..421682623c 100644 --- a/tests/testgmenu.c +++ b/tests/testgmenu.c @@ -693,7 +693,7 @@ main (int argc, char *argv[]) gtk_box_append (GTK_BOX (box), button); } - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); while (!done) g_main_context_iteration (NULL, TRUE); diff --git a/tests/testgrid.c b/tests/testgrid.c index a311bb69dc..3a5bb92819 100644 --- a/tests/testgrid.c +++ b/tests/testgrid.c @@ -85,7 +85,7 @@ simple_grid (void) g_assert (gtk_grid_get_child_at (GTK_GRID (grid), -1, 0) == test6); g_assert (gtk_grid_get_child_at (GTK_GRID (grid), -1, 1) == test6); g_assert (gtk_grid_get_child_at (GTK_GRID (grid), -1, 2) == NULL); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); } static void @@ -131,7 +131,7 @@ text_grid (void) gtk_label_set_width_chars (GTK_LABEL (label), 10); gtk_grid_attach (GTK_GRID (grid), label, 1, 1, 1, 1); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); } static void @@ -196,7 +196,7 @@ box_comparison (void) gtk_box_append (GTK_BOX (vbox), gtk_separator_new (GTK_ORIENTATION_HORIZONTAL)); gtk_box_append (GTK_BOX (vbox), gtk_label_new ("Below")); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); } static void @@ -224,7 +224,7 @@ empty_line (void) gtk_grid_attach (GTK_GRID (grid), test_widget ("(10, 0)", "green"), 10, 0, 1, 1); gtk_grid_attach (GTK_GRID (grid), test_widget ("(10, 1)", "magenta"), 10, 1, 1, 1); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); } static void @@ -248,7 +248,7 @@ empty_grid (void) gtk_widget_set_hexpand (child, TRUE); gtk_widget_set_vexpand (child, TRUE); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); gtk_widget_hide (child); } @@ -297,7 +297,7 @@ scrolling (void) g_free (color); } - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); } static void @@ -406,7 +406,7 @@ insert (void) g_signal_connect (button, "clicked", G_CALLBACK (insert_cb), window); gtk_grid_attach (GTK_GRID (g), button, 0, 2, 2, 1); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); } static void @@ -455,7 +455,7 @@ spanning_grid (void) c = test_widget ("7", "cyan"); gtk_grid_attach (GTK_GRID (g), c, 1, 0, 1, 1); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); } int diff --git a/tests/testgridbaseline.c b/tests/testgridbaseline.c index e96b5fd612..052d67a168 100644 --- a/tests/testgridbaseline.c +++ b/tests/testgridbaseline.c @@ -52,7 +52,7 @@ main (int argc, char *argv[]) gtk_grid_attach (GTK_GRID (grid), label3, 0, 1, 1, 1); gtk_grid_attach (GTK_GRID (grid), label4, 1, 1, 1, 1); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); while (TRUE) g_main_context_iteration (NULL, TRUE); return 0; diff --git a/tests/testgrouping.c b/tests/testgrouping.c index 323ebe4796..16b87557da 100644 --- a/tests/testgrouping.c +++ b/tests/testgrouping.c @@ -159,7 +159,7 @@ main (int argc, char **argv) NULL); gtk_tree_view_insert_column (GTK_TREE_VIEW (tv), column, 0); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); while (!done) g_main_context_iteration (NULL, TRUE); diff --git a/tests/testgtk.c b/tests/testgtk.c index 7974620f2a..5ab0fee4e9 100644 --- a/tests/testgtk.c +++ b/tests/testgtk.c @@ -244,7 +244,7 @@ create_alpha_window (GtkWidget *widget) } if (!gtk_widget_get_visible (window)) - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); else gtk_window_destroy (GTK_WINDOW (window)); } @@ -257,10 +257,7 @@ static void button_window (GtkWidget *widget, GtkWidget *button) { - if (!gtk_widget_get_visible (button)) - gtk_widget_show (button); - else - gtk_widget_hide (button); + gtk_widget_set_visible (button, !gtk_widget_get_visible (button)); } static void @@ -339,7 +336,7 @@ create_buttons (GtkWidget *widget) } if (!gtk_widget_get_visible (window)) - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); else gtk_window_destroy (GTK_WINDOW (window)); } @@ -396,7 +393,7 @@ create_toggle_buttons (GtkWidget *widget) } if (!gtk_widget_get_visible (window)) - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); else gtk_window_destroy (GTK_WINDOW (window)); } @@ -514,7 +511,7 @@ create_check_buttons (GtkWidget *widget) } if (!gtk_widget_get_visible (window)) - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); else gtk_window_destroy (GTK_WINDOW (window)); } @@ -595,7 +592,7 @@ create_radio_buttons (GtkWidget *widget) } if (!gtk_widget_get_visible (window)) - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); else gtk_window_destroy (GTK_WINDOW (window)); } @@ -791,7 +788,7 @@ create_statusbar (GtkWidget *widget) } if (!gtk_widget_get_visible (window)) - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); else gtk_window_destroy (GTK_WINDOW (window)); } @@ -1063,7 +1060,7 @@ static void create_labels (GtkWidget *widget) } if (!gtk_widget_get_visible (window)) - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); else gtk_window_destroy (GTK_WINDOW (window)); } @@ -1184,7 +1181,7 @@ create_rotated_text (GtkWidget *widget) } if (!gtk_widget_get_visible (window)) - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); else gtk_window_destroy (GTK_WINDOW (window)); } @@ -1265,7 +1262,7 @@ create_pixbuf (GtkWidget *widget) } if (!gtk_widget_get_visible (window)) - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); else gtk_window_destroy (GTK_WINDOW (window)); } @@ -1355,7 +1352,7 @@ create_tooltips (GtkWidget *widget) } if (!gtk_widget_get_visible (window)) - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); else gtk_window_destroy (GTK_WINDOW (window)); } @@ -1413,7 +1410,7 @@ create_image (GtkWidget *widget) } if (!gtk_widget_get_visible (window)) - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); else gtk_window_destroy (GTK_WINDOW (window)); } @@ -1575,7 +1572,7 @@ create_listbox (GtkWidget *widget) } if (!gtk_widget_get_visible (window)) - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); else gtk_window_destroy (GTK_WINDOW (window)); } @@ -1609,7 +1606,7 @@ cmw_color (GtkWidget *widget, GtkWidget *parent) G_CALLBACK (gtk_window_destroy), NULL); /* wait until destroy calls gtk_main_quit */ - gtk_widget_show (csd); + gtk_window_present (GTK_WINDOW (csd)); while (!done) g_main_context_iteration (NULL, TRUE); } @@ -1689,7 +1686,7 @@ create_modal_window (GtkWidget *widget) G_CALLBACK (cmw_file), window); /* Show widgets */ - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); /* wait until dialog get destroyed */ while (!done) @@ -1891,7 +1888,7 @@ create_scrolled_windows (GtkWidget *widget) } if (!gtk_widget_get_visible (window)) - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); else gtk_window_destroy (GTK_WINDOW (window)); } @@ -2079,7 +2076,7 @@ create_entry (GtkWidget *widget) } if (!gtk_widget_get_visible (window)) - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); else gtk_window_destroy (GTK_WINDOW (window)); } @@ -2114,7 +2111,7 @@ create_expander (GtkWidget *widget) } if (!gtk_widget_get_visible (window)) - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); else gtk_window_destroy (GTK_WINDOW (window)); } @@ -2685,7 +2682,7 @@ create_spins (GtkWidget *widget) } if (!gtk_widget_get_visible (window)) - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); else gtk_window_destroy (GTK_WINDOW (window)); } @@ -2993,7 +2990,7 @@ G_GNUC_END_IGNORE_DEPRECATIONS window); gtk_box_append (GTK_BOX (hbox), button); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); gtk_editable_set_text (GTK_EDITABLE (entry), "arrow"); } @@ -3039,7 +3036,7 @@ create_color_selection (GtkWidget *widget) } if (!gtk_widget_get_visible (window)) - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); else gtk_window_destroy (GTK_WINDOW (window)); } @@ -3166,7 +3163,7 @@ create_flipping (GtkWidget *widget) } if (!gtk_widget_get_visible (window)) - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); else gtk_window_destroy (GTK_WINDOW (window)); } @@ -3209,7 +3206,7 @@ create_font_selection (GtkWidget *widget) } if (!gtk_widget_get_visible (window)) - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); else gtk_window_destroy (GTK_WINDOW (window)); } @@ -3418,7 +3415,7 @@ create_display_screen (GtkWidget *widget) G_CALLBACK (screen_display_destroy_diag), window); g_signal_connect (applyb, "clicked", G_CALLBACK (screen_display_check), scr_dpy_data); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); } /* @@ -3525,7 +3522,7 @@ create_range_controls (GtkWidget *widget) } if (!gtk_widget_get_visible (window)) - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); else gtk_window_destroy (GTK_WINDOW (window)); } @@ -3899,7 +3896,7 @@ create_notebook (GtkWidget *widget) } if (!gtk_widget_get_visible (window)) - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); else gtk_window_destroy (GTK_WINDOW (window)); } @@ -4049,7 +4046,7 @@ create_panes (GtkWidget *widget) } if (!gtk_widget_get_visible (window)) - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); else gtk_window_destroy (GTK_WINDOW (window)); } @@ -4524,7 +4521,7 @@ create_wmhints (GtkWidget *widget) } if (!gtk_widget_get_visible (window)) - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); else gtk_window_destroy (GTK_WINDOW (window)); } @@ -4761,7 +4758,7 @@ create_surface_states (GtkWidget *widget) } if (!gtk_widget_get_visible (window)) - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); else gtk_window_destroy (GTK_WINDOW (window)); } @@ -4976,7 +4973,7 @@ create_window_sizing (GtkWidget *widget) */ if (!gtk_widget_get_visible (window)) - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); else gtk_window_destroy (GTK_WINDOW (window)); } @@ -5372,7 +5369,7 @@ create_timeout_test (GtkWidget *widget) } if (!gtk_widget_get_visible (window)) - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); else gtk_window_destroy (GTK_WINDOW (window)); } @@ -5728,7 +5725,7 @@ create_native_dialogs (GtkWidget *widget) } if (!gtk_widget_get_visible (window)) - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); else gtk_window_destroy (GTK_WINDOW (window)); } @@ -5887,7 +5884,7 @@ create_main_window (void) gtk_box_append (GTK_BOX (box2), button); gtk_window_set_default_widget (GTK_WINDOW (window), button); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); } static char * diff --git a/tests/testheaderbar.c b/tests/testheaderbar.c index fc7ffa5cda..497dc0c870 100644 --- a/tests/testheaderbar.c +++ b/tests/testheaderbar.c @@ -41,7 +41,7 @@ create_regular (GtkApplication *app) gtk_label_set_wrap (GTK_LABEL (label), TRUE); gtk_window_set_child (GTK_WINDOW (window), label); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); } static void @@ -59,7 +59,7 @@ create_headerbar_as_titlebar (GtkApplication *app) gtk_label_set_wrap (GTK_LABEL (label), TRUE); gtk_window_set_child (GTK_WINDOW (window), label); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); } static void @@ -82,7 +82,7 @@ create_headerbar_inside_window (GtkApplication *app) gtk_widget_set_vexpand (label, TRUE); gtk_box_append (GTK_BOX (box), label); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); } static void @@ -130,7 +130,7 @@ create_headerbar_overlay (GtkApplication *app) gtk_widget_set_vexpand (label, TRUE); gtk_box_append (GTK_BOX (box), label); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); } static void @@ -174,7 +174,7 @@ create_hiding_headerbar (GtkApplication *app) label = gtk_label_new ("Show headerbar"); gtk_box_append (GTK_BOX (hbox), label); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); } static void @@ -209,7 +209,7 @@ create_fake_headerbar (GtkApplication *app) gtk_widget_set_vexpand (label, TRUE); gtk_box_append (GTK_BOX (box), label); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); } /* split headerbar */ @@ -414,7 +414,7 @@ on_bookmark_clicked (GtkButton *button, gpointer data) g_signal_connect (chooser, "response", G_CALLBACK (gtk_window_destroy), NULL); - gtk_widget_show (chooser); + gtk_window_present (GTK_WINDOW (chooser)); } static void @@ -522,7 +522,7 @@ create_technorama (GtkApplication *app) gtk_action_bar_pack_end (GTK_ACTION_BAR (footer), button); g_signal_connect (button, "clicked", G_CALLBACK (toggle_fullscreen), window); gtk_box_append (GTK_BOX (box), footer); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); } struct { @@ -571,7 +571,7 @@ app_activate_cb (GtkApplication *app) gtk_box_append (GTK_BOX (box), btn); } - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); } int diff --git a/tests/testheightforwidth.c b/tests/testheightforwidth.c index a6b79357fc..c66f593495 100644 --- a/tests/testheightforwidth.c +++ b/tests/testheightforwidth.c @@ -647,7 +647,7 @@ test_clicked (GtkWidget *button, g_object_unref (builder); } - gtk_widget_show (interface->window); + gtk_window_present (GTK_WINDOW (interface->window)); } @@ -705,7 +705,7 @@ main (int argc, char *argv[]) g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); while (!done) g_main_context_iteration (NULL, TRUE); diff --git a/tests/testhover.c b/tests/testhover.c index e493155eef..a139919221 100644 --- a/tests/testhover.c +++ b/tests/testhover.c @@ -117,7 +117,7 @@ test1 (void) gtk_box_append (GTK_BOX (box), gtk_image_new_from_icon_name ("start-here")); - gtk_widget_show (win); + gtk_window_present (GTK_WINDOW (win)); g_signal_connect (win, "destroy", G_CALLBACK (quit_cb), NULL); } @@ -129,8 +129,8 @@ enter2_cb (GtkEventController *controller) { GtkWidget *box = gtk_event_controller_get_widget (controller); - gtk_widget_hide (gtk_widget_get_first_child (box)); - gtk_widget_show (gtk_widget_get_last_child (box)); + gtk_widget_set_visible (gtk_widget_get_first_child (box), FALSE); + gtk_widget_set_visible (gtk_widget_get_last_child (box), TRUE); } static void @@ -138,8 +138,8 @@ leave2_cb (GtkEventController *controller) { GtkWidget *box = gtk_event_controller_get_widget (controller); - gtk_widget_show (gtk_widget_get_first_child (box)); - gtk_widget_hide (gtk_widget_get_last_child (box)); + gtk_widget_set_visible (gtk_widget_get_first_child (box), TRUE); + gtk_widget_set_visible (gtk_widget_get_last_child (box), FALSE); } static void @@ -161,9 +161,9 @@ test2 (void) gtk_box_append (GTK_BOX (box), gtk_image_new_from_icon_name ("start-here")); gtk_box_append (GTK_BOX (box), gtk_label_new ("HOVER!")); - gtk_widget_hide (gtk_widget_get_last_child (box)); + gtk_widget_set_visible (gtk_widget_get_last_child (box), FALSE); - gtk_widget_show (win); + gtk_window_present (GTK_WINDOW (win)); g_signal_connect (win, "destroy", G_CALLBACK (quit_cb), NULL); } @@ -207,7 +207,7 @@ test3 (void) gtk_stack_add_named (GTK_STACK (stack), gtk_label_new ("HOVER!"), "enter"); gtk_stack_set_visible_child_name (GTK_STACK (stack), "leave"); - gtk_widget_show (win); + gtk_window_present (GTK_WINDOW (win)); g_signal_connect (win, "destroy", G_CALLBACK (quit_cb), NULL); } @@ -252,7 +252,7 @@ test4 (void) gtk_fixed_put (GTK_FIXED (fixed), gtk_image_new_from_icon_name ("start-here"), 0, 0); gtk_fixed_put (GTK_FIXED (fixed), gtk_label_new ("HOVER!"), -1000, -1000); - gtk_widget_show (win); + gtk_window_present (GTK_WINDOW (win)); g_signal_connect (win, "destroy", G_CALLBACK (quit_cb), NULL); } diff --git a/tests/testiconview-keynav.c b/tests/testiconview-keynav.c index 254ed6542e..bf0b7828b9 100644 --- a/tests/testiconview-keynav.c +++ b/tests/testiconview-keynav.c @@ -261,7 +261,7 @@ main (int argc, char *argv[]) gtk_box_append (GTK_BOX (vbox), views.header2); gtk_box_append (GTK_BOX (vbox), views.view2); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); while (TRUE) g_main_context_iteration (NULL, TRUE); diff --git a/tests/testiconview.c b/tests/testiconview.c index b638127cab..26f54455c8 100644 --- a/tests/testiconview.c +++ b/tests/testiconview.c @@ -585,7 +585,7 @@ main (int argc, char **argv) GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_paned_set_end_child (GTK_PANED (paned), scrolled_window); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); while (TRUE) g_main_context_iteration (NULL, TRUE); diff --git a/tests/testinfobar.c b/tests/testinfobar.c index cd751a1748..6c5ac54d6d 100644 --- a/tests/testinfobar.c +++ b/tests/testinfobar.c @@ -14,7 +14,7 @@ on_info_bar_response (GtkInfoBar *info_bar, switch (response_id) { case GTK_RESPONSE_CLOSE: - gtk_widget_hide (GTK_WIDGET (info_bar)); + gtk_widget_set_visible (GTK_WIDGET (info_bar), FALSE); break; case RESPONSE_UNREVEAL: diff --git a/tests/testinhibitshortcuts.c b/tests/testinhibitshortcuts.c index 62d59047c5..3c818ef9a5 100644 --- a/tests/testinhibitshortcuts.c +++ b/tests/testinhibitshortcuts.c @@ -96,7 +96,7 @@ main (int argc, char *argv[]) g_signal_connect (G_OBJECT (surface), "notify::shortcuts-inhibited", G_CALLBACK (on_shortcuts_inhibit_change), button); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); while (!done) g_main_context_iteration (NULL, TRUE); diff --git a/tests/testkineticscrolling.c b/tests/testkineticscrolling.c index 9ce50288c8..5096db646c 100644 --- a/tests/testkineticscrolling.c +++ b/tests/testkineticscrolling.c @@ -122,7 +122,7 @@ kinetic_scrolling (void) gtk_window_set_child (GTK_WINDOW (window), grid); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); } int diff --git a/tests/testlevelbar.c b/tests/testlevelbar.c index 2886d66f7c..e3ace27e3d 100644 --- a/tests/testlevelbar.c +++ b/tests/testlevelbar.c @@ -106,7 +106,7 @@ main (int argc, char *argv[]) gtk_box_append (GTK_BOX (box2), sw); g_signal_connect (sw, "notify::active", G_CALLBACK (toggle), bar); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done); diff --git a/tests/testlist.c b/tests/testlist.c index 435e2250f2..d0372dc243 100644 --- a/tests/testlist.c +++ b/tests/testlist.c @@ -362,7 +362,7 @@ main (int argc, char *argv[]) gtk_box_append (GTK_BOX (vbox), button); g_signal_connect (button, "clicked", G_CALLBACK (visibility_clicked_cb), row3); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); while (TRUE) g_main_context_iteration (NULL, TRUE); diff --git a/tests/testlist2.c b/tests/testlist2.c index 0a43faf29e..57c3062eee 100644 --- a/tests/testlist2.c +++ b/tests/testlist2.c @@ -133,7 +133,7 @@ int main (int argc, char *argv[]) } g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); while (!done) g_main_context_iteration (NULL, TRUE); diff --git a/tests/testlist3.c b/tests/testlist3.c index 87b8b44b62..d272c4bd5e 100644 --- a/tests/testlist3.c +++ b/tests/testlist3.c @@ -177,7 +177,7 @@ main (int argc, char *argv[]) gtk_list_box_insert (GTK_LIST_BOX (list), row, -1); } - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); while (TRUE) g_main_context_iteration (NULL, TRUE); diff --git a/tests/testlist4.c b/tests/testlist4.c index 5bf7910ff0..5e0263ab0b 100644 --- a/tests/testlist4.c +++ b/tests/testlist4.c @@ -174,7 +174,7 @@ new_window (GApplication *app) G_CALLBACK (row_without_gaction_activated_cb), label); /* let the show begin */ - gtk_widget_show (GTK_WIDGET (window)); + gtk_window_present (GTK_WINDOW (window)); } static void diff --git a/tests/testlistview-animating.c b/tests/testlistview-animating.c index 9554f6fc97..7c25180a0f 100644 --- a/tests/testlistview-animating.c +++ b/tests/testlistview-animating.c @@ -178,7 +178,7 @@ main (int argc, g_timeout_add (100, do_stuff, store); g_timeout_add_seconds (3, revert_sort, sorter); - gtk_widget_show (win); + gtk_window_present (GTK_WINDOW (win)); toplevels = gtk_window_get_toplevels (); while (g_list_model_get_n_items (toplevels)) diff --git a/tests/testlistview.c b/tests/testlistview.c index 47e54e1023..2ceb672169 100644 --- a/tests/testlistview.c +++ b/tests/testlistview.c @@ -647,7 +647,7 @@ main (int argc, char *argv[]) g_object_unref (selectionmodel); - gtk_widget_show (win); + gtk_window_present (GTK_WINDOW (win)); toplevels = gtk_window_get_toplevels (); while (g_list_model_get_n_items (toplevels)) diff --git a/tests/testlockbutton.c b/tests/testlockbutton.c index 88665bc3b8..67bcb45853 100644 --- a/tests/testlockbutton.c +++ b/tests/testlockbutton.c @@ -263,8 +263,8 @@ main (int argc, char *argv[]) gtk_box_append (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (dialog))), content); gtk_box_append (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (dialog))), button); - gtk_widget_show (window); - gtk_widget_show (dialog); + gtk_window_present (GTK_WINDOW (window)); + gtk_window_present (GTK_WINDOW (dialog)); while (TRUE) g_main_context_iteration (NULL, TRUE); diff --git a/tests/testlogout.c b/tests/testlogout.c index bf05fae7d1..529bd265a7 100644 --- a/tests/testlogout.c +++ b/tests/testlogout.c @@ -127,7 +127,7 @@ activate (GtkApplication *app, gtk_grid_set_row_spacing (GTK_GRID (grid), 6); gtk_grid_set_column_spacing (GTK_GRID (grid), 6); - gtk_widget_show (win); + gtk_window_present (GTK_WINDOW (win)); gtk_application_add_window (app, GTK_WINDOW (win)); } diff --git a/tests/testmenubutton.c b/tests/testmenubutton.c index 8fb8431a1d..52ef96bd2e 100644 --- a/tests/testmenubutton.c +++ b/tests/testmenubutton.c @@ -115,7 +115,7 @@ int main (int argc, char **argv) gtk_menu_button_set_menu_model (GTK_MENU_BUTTON (button), G_MENU_MODEL (menu)); gtk_grid_attach (GTK_GRID (grid), button, 1, row++, 1, 1); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); while (TRUE) g_main_context_iteration (NULL, TRUE); diff --git a/tests/testmodelbutton.c b/tests/testmodelbutton.c index 3bf057648b..027e36a278 100644 --- a/tests/testmodelbutton.c +++ b/tests/testmodelbutton.c @@ -77,7 +77,7 @@ on_application_activate (GApplication *gapplication, widget = gtk_window_new (); gtk_box_append (GTK_BOX (widget), box); - gtk_widget_show (widget); + gtk_window_present (GTK_WINDOW (widget)) gtk_application_add_window (GTK_APPLICATION (application), GTK_WINDOW (widget)); } diff --git a/tests/testnotebookdnd.c b/tests/testnotebookdnd.c index 5bb1ce4458..85ec062af8 100644 --- a/tests/testnotebookdnd.c +++ b/tests/testnotebookdnd.c @@ -75,7 +75,7 @@ window_creation_function (GtkNotebook *source_notebook, gtk_window_set_child (GTK_WINDOW (window), notebook); gtk_window_set_default_size (GTK_WINDOW (window), 300, 300); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); return GTK_NOTEBOOK (notebook); } @@ -230,7 +230,6 @@ create_notebook_with_notebooks (const char **labels, GtkPositionType pos) { GtkWidget *notebook, *title, *page; - int count = 0; notebook = gtk_notebook_new (); g_signal_connect (notebook, "create-window", @@ -251,7 +250,6 @@ create_notebook_with_notebooks (const char **labels, gtk_notebook_set_tab_reorderable (GTK_NOTEBOOK (notebook), page, TRUE); gtk_notebook_set_tab_detachable (GTK_NOTEBOOK (notebook), page, TRUE); - count++; labels++; } @@ -322,7 +320,7 @@ main (int argc, char *argv[]) g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); while (!done) g_main_context_iteration (NULL, TRUE); diff --git a/tests/testoutsetshadowdrawing.c b/tests/testoutsetshadowdrawing.c index f619d97e3d..ad79a9a25f 100644 --- a/tests/testoutsetshadowdrawing.c +++ b/tests/testoutsetshadowdrawing.c @@ -165,7 +165,7 @@ main (int argc, char **argv) gtk_box_append (GTK_BOX (box), bottom); gtk_window_set_child (GTK_WINDOW (window), box); g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); while (!done) g_main_context_iteration (NULL, TRUE); diff --git a/tests/testoverlay.c b/tests/testoverlay.c index 5f36060f6b..83c551998f 100644 --- a/tests/testoverlay.c +++ b/tests/testoverlay.c @@ -538,28 +538,28 @@ main (int argc, char *argv[]) GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); win1 = test_nonzerox (); - gtk_widget_show (win1); + gtk_window_present (GTK_WINDOW (win1)); win2 = test_relative (); - gtk_widget_show (win2); + gtk_window_present (GTK_WINDOW (win2)); win3 = test_fullwidth (); - gtk_widget_show (win3); + gtk_window_present (GTK_WINDOW (win3)); win4 = test_scrolling (); - gtk_widget_show (win4); + gtk_window_present (GTK_WINDOW (win4)); win5 = test_builder (); - gtk_widget_show (win5); + gtk_window_present (GTK_WINDOW (win5)); win6 = test_chase (); - gtk_widget_show (win6); + gtk_window_present (GTK_WINDOW (win6)); win7 = test_stacking (); - gtk_widget_show (win7); + gtk_window_present (GTK_WINDOW (win7)); win8 = test_input_stacking (); - gtk_widget_show (win8); + gtk_window_present (GTK_WINDOW (win8)); while (TRUE) g_main_context_iteration (NULL, TRUE); diff --git a/tests/testoverlaystyleclass.c b/tests/testoverlaystyleclass.c index 51c24ca7b1..747783972a 100644 --- a/tests/testoverlaystyleclass.c +++ b/tests/testoverlaystyleclass.c @@ -123,7 +123,7 @@ main (int argc, char *argv[]) g_print ("\n"); - gtk_widget_show (win); + gtk_window_present (GTK_WINDOW (win)); while (TRUE) g_main_context_iteration (NULL, TRUE); diff --git a/tests/testplacesview.c b/tests/testplacesview.c index 50e00e99cc..86bcc6437d 100644 --- a/tests/testplacesview.c +++ b/tests/testplacesview.c @@ -28,7 +28,7 @@ main (int argc, char *argv[]) view = gtk_places_view_new (); gtk_window_set_child (GTK_WINDOW (win), view); - gtk_widget_show (win); + gtk_window_present (GTK_WINDOW (win)); g_signal_connect (win, "destroy", G_CALLBACK (quit_cb), &done); diff --git a/tests/testpopover.c b/tests/testpopover.c index c7bfc48fc3..863be85830 100644 --- a/tests/testpopover.c +++ b/tests/testpopover.c @@ -194,7 +194,7 @@ main (int argc, char *argv[]) g_signal_connect (win, "destroy", G_CALLBACK (quit_cb), &done); - gtk_widget_show (win); + gtk_window_present (GTK_WINDOW (win)); while (!done) g_main_context_iteration (NULL, TRUE); diff --git a/tests/testrevealer.c b/tests/testrevealer.c index 0a97193587..f72e04e6e7 100644 --- a/tests/testrevealer.c +++ b/tests/testrevealer.c @@ -162,7 +162,7 @@ main (int argc, gtk_revealer_set_transition_duration (GTK_REVEALER (revealer), 2000); gtk_grid_attach (GTK_GRID (box), revealer, 3, 4, 1, 1); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); while (TRUE) g_main_context_iteration (NULL, TRUE); diff --git a/tests/testscale.c b/tests/testscale.c index 2c73d30f1b..27a4bb6e8a 100644 --- a/tests/testscale.c +++ b/tests/testscale.c @@ -232,13 +232,13 @@ int main (int argc, char *argv[]) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), TRUE); g_signal_connect (button, "toggled", G_CALLBACK (trough), NULL); gtk_box_append (GTK_BOX (box2), button); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); button = gtk_toggle_button_new_with_label ("Extra"); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), FALSE); g_signal_connect (button, "toggled", G_CALLBACK (extra), NULL); gtk_box_append (GTK_BOX (box2), button); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); while (!done) g_main_context_iteration (NULL, TRUE); diff --git a/tests/testscrolledge.c b/tests/testscrolledge.c index 5661202d1a..3780845413 100644 --- a/tests/testscrolledge.c +++ b/tests/testscrolledge.c @@ -58,7 +58,7 @@ add_rows (gpointer data) { GtkListBox *list = data; - gtk_widget_hide (popup); + gtk_widget_set_visible (popup, FALSE); gtk_spinner_stop (GTK_SPINNER (spinner)); populate_list (list); @@ -75,7 +75,7 @@ edge_overshot (GtkScrolledWindow *sw, if (pos == GTK_POS_BOTTOM) { gtk_spinner_start (GTK_SPINNER (spinner)); - gtk_widget_show (popup); + gtk_widget_set_visible (popup, TRUE); if (add_rows_id == 0) add_rows_id = g_timeout_add (2000, add_rows, list); @@ -118,7 +118,7 @@ main (int argc, char *argv[]) gtk_box_append (GTK_BOX (popup), spinner); gtk_overlay_add_overlay (GTK_OVERLAY (overlay), popup); - gtk_widget_hide (popup); + gtk_widget_set_visible (popup, FALSE); sw = gtk_scrolled_window_new (); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); @@ -133,7 +133,7 @@ main (int argc, char *argv[]) g_signal_connect (sw, "edge-overshot", G_CALLBACK (edge_overshot), list); g_signal_connect (sw, "edge-reached", G_CALLBACK (edge_reached), list); - gtk_widget_show (win); + gtk_window_present (GTK_WINDOW (win)); while (TRUE) g_main_context_iteration (NULL, TRUE); diff --git a/tests/testscrolledwindow.c b/tests/testscrolledwindow.c index 59ce67ac21..834e04cdb8 100644 --- a/tests/testscrolledwindow.c +++ b/tests/testscrolledwindow.c @@ -194,7 +194,7 @@ scrollable_policy (void) g_signal_connect (G_OBJECT (widget), "toggled", G_CALLBACK (kinetic_scrolling_changed), swindow); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); /* Popover */ popover = gtk_popover_new (); diff --git a/tests/testselectionmode.c b/tests/testselectionmode.c index 823663396a..2353befbde 100644 --- a/tests/testselectionmode.c +++ b/tests/testselectionmode.c @@ -114,9 +114,9 @@ selection_mode_enter (GtkButton *button, GtkBuilder *builder) gtk_widget_add_css_class (header, "selection-mode"); gtk_header_bar_set_show_title_buttons (GTK_HEADER_BAR (header), FALSE); - gtk_widget_hide (headerbutton); - gtk_widget_hide (selectbutton); - gtk_widget_show (cancelbutton); + gtk_widget_set_visible (headerbutton, FALSE); + gtk_widget_set_visible (selectbutton, FALSE); + gtk_widget_set_visible (cancelbutton, TRUE); gtk_stack_set_visible_child_name (GTK_STACK (titlestack), "selection"); gtk_list_box_set_activate_on_single_click (GTK_LIST_BOX (list), FALSE); @@ -147,9 +147,9 @@ selection_mode_leave (GtkButton *button, GtkBuilder *builder) gtk_widget_remove_css_class (header, "selection-mode"); gtk_header_bar_set_show_title_buttons (GTK_HEADER_BAR (header), TRUE); - gtk_widget_show (headerbutton); - gtk_widget_show (selectbutton); - gtk_widget_hide (cancelbutton); + gtk_widget_set_visible (headerbutton, TRUE); + gtk_widget_set_visible (selectbutton, TRUE); + gtk_widget_set_visible (cancelbutton, FALSE); gtk_stack_set_visible_child_name (GTK_STACK (titlestack), "title"); gtk_list_box_set_activate_on_single_click (GTK_LIST_BOX (list), TRUE); @@ -225,7 +225,7 @@ main (int argc, char *argv[]) g_signal_connect (list, "selected-rows-changed", G_CALLBACK (selected_rows_changed), NULL); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); while (TRUE) g_main_context_iteration (NULL, TRUE); diff --git a/tests/testsensitive.c b/tests/testsensitive.c index e53d80049d..04ed007c88 100644 --- a/tests/testsensitive.c +++ b/tests/testsensitive.c @@ -79,7 +79,7 @@ int main (int argc, char *argv[]) g_object_bind_property (c, "active", w, "sensitive", G_BINDING_BIDIRECTIONAL); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); while (TRUE) g_main_context_iteration (NULL, TRUE); diff --git a/tests/testspinbutton.c b/tests/testspinbutton.c index 0d21cf3a0b..fd2f4ca2e9 100644 --- a/tests/testspinbutton.c +++ b/tests/testspinbutton.c @@ -69,7 +69,7 @@ prepare_window_for_orientation (GtkOrientation orientation) gtk_box_append (GTK_BOX (mainbox), hbox); } - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); num_windows++; } diff --git a/tests/teststack.c b/tests/teststack.c index fa15b56004..198e9b5f7e 100644 --- a/tests/teststack.c +++ b/tests/teststack.c @@ -258,7 +258,7 @@ main (int argc, (GCallback)update_forward_button_sensitivity, button); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); while (TRUE) g_main_context_iteration (NULL, TRUE); diff --git a/tests/testswitch.c b/tests/testswitch.c index 015700d1f4..02b496f92b 100644 --- a/tests/testswitch.c +++ b/tests/testswitch.c @@ -170,7 +170,7 @@ int main (int argc, char *argv[]) gtk_window_set_title (GTK_WINDOW (window), "GtkSwitch"); gtk_window_set_default_size (GTK_WINDOW (window), 400, -1); g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 12); gtk_window_set_child (GTK_WINDOW (window), vbox); diff --git a/tests/testtextscroll.c b/tests/testtextscroll.c index d0787d5557..bd1cb835a4 100644 --- a/tests/testtextscroll.c +++ b/tests/testtextscroll.c @@ -184,7 +184,7 @@ main (int argc, char *argv[]) gtk_window_set_child (GTK_WINDOW (window), box); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); while (1) g_main_context_iteration (NULL, TRUE); diff --git a/tests/testtexture.c b/tests/testtexture.c index 78c5464949..335f847fb8 100644 --- a/tests/testtexture.c +++ b/tests/testtexture.c @@ -145,7 +145,7 @@ main (int argc, char **argv) gtk_window_set_child (GTK_WINDOW (window), view); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); while (!done) g_main_context_iteration (NULL, TRUE); diff --git a/tests/testtextview.c b/tests/testtextview.c index ae7d65ec06..cb893d5ea0 100644 --- a/tests/testtextview.c +++ b/tests/testtextview.c @@ -201,7 +201,7 @@ main (int argc, char **argv) gtk_text_view_add_child_at_anchor (GTK_TEXT_VIEW (textview), button2, anchor); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); while (TRUE) g_main_context_iteration (NULL, TRUE); diff --git a/tests/testtextview2.c b/tests/testtextview2.c index 16353ac366..df06849e33 100644 --- a/tests/testtextview2.c +++ b/tests/testtextview2.c @@ -242,7 +242,7 @@ main (int argc, char *argv[]) g_signal_connect (button, "notify::active", G_CALLBACK (toggle_cursor), NULL); gtk_box_append (GTK_BOX (box2), button); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); while (!done) g_main_context_iteration (NULL, TRUE); diff --git a/tests/testtooltips.c b/tests/testtooltips.c index c312ce69b1..f8c512d3ce 100644 --- a/tests/testtooltips.c +++ b/tests/testtooltips.c @@ -447,7 +447,7 @@ main (int argc, char *argv[]) gtk_box_append (GTK_BOX (box), button); /* Done! */ - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); while (!done) g_main_context_iteration (NULL, TRUE); diff --git a/tests/testtransform.c b/tests/testtransform.c index e14de24ce3..19990038c6 100644 --- a/tests/testtransform.c +++ b/tests/testtransform.c @@ -84,7 +84,7 @@ main (int argc, char *argv[]) gtk_window_set_child (GTK_WINDOW (window), fixed2); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); while (!done) g_main_context_iteration (NULL, TRUE); diff --git a/tests/testtreechanging.c b/tests/testtreechanging.c index 7845fd8fa1..fe930b3676 100644 --- a/tests/testtreechanging.c +++ b/tests/testtreechanging.c @@ -519,7 +519,7 @@ main (int argc, add (GTK_TREE_VIEW (treeview)); gtk_scrolled_window_set_child (GTK_SCROLLED_WINDOW (sw), treeview); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); g_idle_add (dance, treeview); diff --git a/tests/testtreecolumns.c b/tests/testtreecolumns.c index 4fc4fb7410..decb99f185 100644 --- a/tests/testtreecolumns.c +++ b/tests/testtreecolumns.c @@ -766,7 +766,7 @@ main (int argc, char *argv[]) swindow = gtk_scrolled_window_new (); gtk_window_set_child (GTK_WINDOW (window), swindow); gtk_scrolled_window_set_child (GTK_SCROLLED_WINDOW (swindow), sample_tree_view_top); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); window = gtk_window_new (); g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done); @@ -775,7 +775,7 @@ main (int argc, char *argv[]) swindow = gtk_scrolled_window_new (); gtk_window_set_child (GTK_WINDOW (window), swindow); gtk_scrolled_window_set_child (GTK_SCROLLED_WINDOW (swindow), sample_tree_view_bottom); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); /* Set up the main window */ window = gtk_window_new (); @@ -912,7 +912,7 @@ main (int argc, char *argv[]) g_signal_connect (button, "clicked", G_CALLBACK (add_clicked), left_tree_model); gtk_box_append (GTK_BOX (hbox), button); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); while (!done) g_main_context_iteration (NULL, TRUE); diff --git a/tests/testtreecolumnsizing.c b/tests/testtreecolumnsizing.c index 48a08e26d7..520a4c51e0 100644 --- a/tests/testtreecolumnsizing.c +++ b/tests/testtreecolumnsizing.c @@ -243,7 +243,7 @@ main (int argc, char **argv) gtk_combo_box_set_active (GTK_COMBO_BOX (combo_box), 0); /* Done */ - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); while (!done) g_main_context_iteration (NULL, TRUE); diff --git a/tests/testtreednd.c b/tests/testtreednd.c index 5debefaf87..4cd34f6d77 100644 --- a/tests/testtreednd.c +++ b/tests/testtreednd.c @@ -128,7 +128,7 @@ main (int argc, char *argv[]) gtk_box_append (GTK_BOX (box), get_dragsource ()); gtk_box_append (GTK_BOX (box), get_droptarget ()); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); while (TRUE) g_main_context_iteration (NULL, TRUE); diff --git a/tests/testtreeedit.c b/tests/testtreeedit.c index 3e70813c32..96f8b114c7 100644 --- a/tests/testtreeedit.c +++ b/tests/testtreeedit.c @@ -395,7 +395,7 @@ main (int argc, char **argv) create_control (cntl_vbox, 3, CNTL_FIXED, &callback[2]); create_control (cntl_vbox, 4, CNTL_FIXED, &callback[3]); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); while (!done) g_main_context_iteration (NULL, TRUE); diff --git a/tests/testtreeflow.c b/tests/testtreeflow.c index 6e2474bc6a..79d37349dc 100644 --- a/tests/testtreeflow.c +++ b/tests/testtreeflow.c @@ -180,7 +180,7 @@ main (int argc, char *argv[]) g_signal_connect (button, "clicked", G_CALLBACK (futz), NULL); g_signal_connect (button, "realize", G_CALLBACK (gtk_widget_grab_focus), NULL); gtk_window_set_default_size (GTK_WINDOW (window), 300, 400); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); g_timeout_add (1000, (GSourceFunc) futz, NULL); while (!done) g_main_context_iteration (NULL, TRUE); diff --git a/tests/testtreefocus.c b/tests/testtreefocus.c index ac29abf903..d97bc89537 100644 --- a/tests/testtreefocus.c +++ b/tests/testtreefocus.c @@ -475,7 +475,7 @@ main (int argc, char *argv[]) NULL); gtk_window_set_default_size (GTK_WINDOW (window), 650, 400); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); window = gtk_window_new (); gtk_window_set_title (GTK_WINDOW (window), "Model"); @@ -543,7 +543,7 @@ main (int argc, char *argv[]) gtk_window_set_default_size (GTK_WINDOW (window), 650, 400); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); while (!done) g_main_context_iteration (NULL, TRUE); diff --git a/tests/testtreepos.c b/tests/testtreepos.c index d3cabaab3f..559f5bd709 100644 --- a/tests/testtreepos.c +++ b/tests/testtreepos.c @@ -138,7 +138,7 @@ int main (int argc, char *argv[]) G_CALLBACK (release_event), tv); gtk_widget_add_controller (tv, GTK_EVENT_CONTROLLER (gesture)); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); while (TRUE) g_main_context_iteration (NULL, TRUE); diff --git a/tests/testtreesort.c b/tests/testtreesort.c index dac2aafcb0..f5d5c3526c 100644 --- a/tests/testtreesort.c +++ b/tests/testtreesort.c @@ -238,7 +238,7 @@ main (int argc, char *argv[]) gtk_scrolled_window_set_child (GTK_SCROLLED_WINDOW (scrolled_window), tree_view); gtk_window_set_default_size (GTK_WINDOW (window), 400, 400); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); /** * Second window - GtkTreeModelSort wrapping the GtkTreeStore @@ -303,7 +303,7 @@ main (int argc, char *argv[]) gtk_scrolled_window_set_child (GTK_SCROLLED_WINDOW (scrolled_window2), tree_view2); gtk_window_set_default_size (GTK_WINDOW (window2), 400, 400); - gtk_widget_show (window2); + gtk_window_present (GTK_WINDOW (window2)); } /** @@ -370,7 +370,7 @@ main (int argc, char *argv[]) gtk_scrolled_window_set_child (GTK_SCROLLED_WINDOW (scrolled_window3), tree_view3); gtk_window_set_default_size (GTK_WINDOW (window3), 400, 400); - gtk_widget_show (window3); + gtk_window_present (GTK_WINDOW (window3)); } for (i = 0; data[i].word_1 != NULL; i++) diff --git a/tests/testtreeview.c b/tests/testtreeview.c index 6a828c8f90..46300a188f 100644 --- a/tests/testtreeview.c +++ b/tests/testtreeview.c @@ -757,7 +757,7 @@ main (int argc, gtk_scrolled_window_set_child (GTK_SCROLLED_WINDOW (sw), tv); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); while (!done) g_main_context_iteration (NULL, TRUE); diff --git a/tests/testverticalcells.c b/tests/testverticalcells.c index 739e7e6068..8528f5bece 100644 --- a/tests/testverticalcells.c +++ b/tests/testverticalcells.c @@ -384,7 +384,7 @@ main (int argc, char **argv) gtk_window_set_default_size (GTK_WINDOW (window), 800, 400); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); while (!done) g_main_context_iteration (NULL, TRUE); diff --git a/tests/testvolumebutton.c b/tests/testvolumebutton.c index 982d5c285d..593dd6755d 100644 --- a/tests/testvolumebutton.c +++ b/tests/testvolumebutton.c @@ -51,7 +51,7 @@ show_error (gpointer data) g_signal_connect_object (G_OBJECT (dialog), "response", G_CALLBACK (response_cb), NULL, 0); - gtk_widget_show (dialog); + gtk_window_present (GTK_WINDOW (dialog)); return G_SOURCE_REMOVE; } @@ -84,7 +84,7 @@ main (int argc, gtk_box_append (GTK_BOX (box), button); gtk_box_append (GTK_BOX (box), button2); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); g_timeout_add (4000, (GSourceFunc) show_error, window); while (TRUE) diff --git a/tests/testwidgetfocus.c b/tests/testwidgetfocus.c index fa58fad2c1..25d71c7485 100644 --- a/tests/testwidgetfocus.c +++ b/tests/testwidgetfocus.c @@ -300,7 +300,7 @@ main(int argc, char **argv) gtk_window_set_child (GTK_WINDOW (window), widget); g_signal_connect (window, "destroy", G_CALLBACK (quit_cb), &done); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); while (!done) g_main_context_iteration (NULL, TRUE); diff --git a/tests/testwidgettransforms.c b/tests/testwidgettransforms.c index 0deca31e4f..c729768589 100644 --- a/tests/testwidgettransforms.c +++ b/tests/testwidgettransforms.c @@ -344,7 +344,7 @@ main (int argc, char **argv) gtk_window_set_default_size ((GtkWindow *)window, 200, 200); g_signal_connect (window, "close-request", G_CALLBACK (quit_cb), &done); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); while (!done) g_main_context_iteration (NULL, TRUE); diff --git a/tests/testwindowdrag.c b/tests/testwindowdrag.c index 1c25a906fa..8b60835165 100644 --- a/tests/testwindowdrag.c +++ b/tests/testwindowdrag.c @@ -134,7 +134,7 @@ main (int argc, char *argv[]) resize_button (GDK_SURFACE_EDGE_SOUTH_EAST), 2, 2, 1, 1); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); while (TRUE) g_main_context_iteration (NULL, TRUE); diff --git a/tests/testwindowsize.c b/tests/testwindowsize.c index f280ba2158..e21f06e32b 100644 --- a/tests/testwindowsize.c +++ b/tests/testwindowsize.c @@ -83,7 +83,7 @@ show_dialog (void) g_signal_connect (dialog, "response", G_CALLBACK (gtk_window_destroy), NULL); - gtk_widget_show (dialog); + gtk_window_present (GTK_WINDOW (dialog)); } static void @@ -141,7 +141,7 @@ create_window (void) g_signal_connect (button, "clicked", G_CALLBACK (show_dialog), NULL); gtk_grid_attach (GTK_GRID (grid), button, 2, 4, 1, 1); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); GMainLoop *loop = g_main_loop_new (NULL, FALSE); diff --git a/tests/treestoretest.c b/tests/treestoretest.c index b7f4a622bb..19da9c595a 100644 --- a/tests/treestoretest.c +++ b/tests/treestoretest.c @@ -451,7 +451,7 @@ make_window (int view_type) iter_append (NULL, GTK_TREE_VIEW (tree_view)); } /* Show it all */ - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); } int diff --git a/tests/video-timer.c b/tests/video-timer.c index ed070e111f..1a8a04da05 100644 --- a/tests/video-timer.c +++ b/tests/video-timer.c @@ -404,7 +404,7 @@ main(int argc, char **argv) gtk_drawing_area_set_draw_func (GTK_DRAWING_AREA (da), on_draw, NULL, NULL); gtk_window_set_child (GTK_WINDOW (window), da); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); frame_queue = g_queue_new (); g_mutex_init (&frame_mutex); diff --git a/testsuite/a11y/general.c b/testsuite/a11y/general.c index c459b5029c..006023919d 100644 --- a/testsuite/a11y/general.c +++ b/testsuite/a11y/general.c @@ -15,7 +15,7 @@ test_hidden (void) gtk_test_accessible_assert_state (widget, GTK_ACCESSIBLE_STATE_HIDDEN, FALSE); - gtk_widget_hide (widget); + gtk_widget_set_visible (widget, FALSE); gtk_test_accessible_assert_state (widget, GTK_ACCESSIBLE_STATE_HIDDEN, TRUE); diff --git a/testsuite/a11y/meson.build b/testsuite/a11y/meson.build index 4547b21ba2..c43465efb2 100644 --- a/testsuite/a11y/meson.build +++ b/testsuite/a11y/meson.build @@ -1,6 +1,3 @@ -testexecdir = join_paths(installed_test_bindir, 'gtk') -testdatadir = join_paths(installed_test_datadir, 'gtk') - # Available keys for each test: # # - 'name': the test name; used for the test and to determine the base @@ -64,12 +61,11 @@ foreach t : tests test_extra_suites = t.get('suites', []) test_timeout = 60 - test_exe = executable(test_name, test_srcs, + test_exe = executable(test_name, + sources: test_srcs, c_args: test_cargs + test_extra_cargs, link_args: test_extra_ldflags, dependencies: libgtk_dep, - install: get_option('install-tests'), - install_dir: testexecdir, ) if test_extra_suites.contains('slow') diff --git a/testsuite/a11y/window.c b/testsuite/a11y/window.c index 40dcc5a555..50e9b78b25 100644 --- a/testsuite/a11y/window.c +++ b/testsuite/a11y/window.c @@ -19,7 +19,7 @@ window_state (void) gtk_test_accessible_assert_state (window, GTK_ACCESSIBLE_STATE_HIDDEN, FALSE); - gtk_widget_hide (window); + gtk_widget_set_visible (window, FALSE); gtk_test_accessible_assert_state (window, GTK_ACCESSIBLE_STATE_HIDDEN, TRUE); diff --git a/testsuite/css/change/meson.build b/testsuite/css/change/meson.build index 9409f483c1..a75b530731 100644 --- a/testsuite/css/change/meson.build +++ b/testsuite/css/change/meson.build @@ -7,17 +7,10 @@ changetest_env.set('GIO_USE_VFS', 'local') changetest_env.set('GSETTINGS_BACKEND', 'memory') changetest_env.set('G_ENABLE_DIAGNOSTIC', '0') -testexecdir = join_paths(installed_test_bindir, 'css', 'change') -testdatadir = join_paths(installed_test_datadir, 'css') - -test_change = executable( - 'test-css-change', - 'test-css-change.c', - '../../testutils.c', +test_change = executable('test-css-change', + sources: ['test-css-change.c', '../../testutils.c'], c_args: common_cflags, dependencies: libgtk_dep, - install: get_option('install-tests'), - install_dir: testexecdir, ) test('change', test_change, @@ -26,22 +19,3 @@ test('change', test_change, env: changetest_env, suite: 'css', ) - -test_data = [ - 'test1.css', 'test1.ui', 'test1.nodes', - 'test2.css', 'test2.ui', 'test2.nodes', - 'test3.css', 'test3.ui', 'test3.nodes', - 'test4.css', 'test4.ui', 'test4.nodes', -] - -if get_option('install-tests') - conf = configuration_data() - conf.set('libexecdir', gtk_libexecdir) - configure_file(input: 'change.test.in', - output: 'change.test', - configuration: conf, - install_dir: testdatadir) - - install_data(test_data, install_dir: testexecdir) - -endif diff --git a/testsuite/css/change/test-css-change.c b/testsuite/css/change/test-css-change.c index 9d918ebfb6..93f4df2236 100644 --- a/testsuite/css/change/test-css-change.c +++ b/testsuite/css/change/test-css-change.c @@ -98,7 +98,7 @@ load_ui_file (GFile *file, gboolean generate) output = NULL; g_signal_connect (window, "map", G_CALLBACK (style_context_changed), &output); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); while (!output) g_main_context_iteration (NULL, FALSE); diff --git a/testsuite/css/meson.build b/testsuite/css/meson.build index 20c031410d..24084d6b05 100644 --- a/testsuite/css/meson.build +++ b/testsuite/css/meson.build @@ -13,14 +13,10 @@ subdir('nodes') subdir('style') subdir('change') -testexecdir = join_paths(installed_test_bindir, 'css') -testdatadir = join_paths(installed_test_datadir, 'css') - -test_api = executable('api', 'api.c', +test_api = executable('api', + sources: ['api.c'], c_args: common_cflags, dependencies: libgtk_dep, - install: get_option('install-tests'), - install_dir: testexecdir, ) test('api', test_api, @@ -30,12 +26,11 @@ test('api', test_api, suite: 'css', ) -test_data = executable('data', 'data.c', +test_data = executable('data', + sources: ['data.c'], c_args: common_cflags, include_directories: [confinc, ], dependencies: libgtk_static_dep, - install: get_option('install-tests'), - install_dir: testexecdir, ) test('data', test_data, @@ -45,11 +40,10 @@ test('data', test_data, suite: 'css', ) -transition = executable('transition', 'transition.c', +transition = executable('transition', + sources: ['transition.c'], c_args: common_cflags, dependencies: libgtk_static_dep, - install: get_option('install-tests'), - install_dir: testexecdir, ) test('transition', transition, @@ -59,24 +53,6 @@ test('transition', transition, suite: 'css' ) -if get_option('install-tests') - conf = configuration_data() - conf.set('libexecdir', gtk_libexecdir) - configure_file(input: 'api.test.in', - output: 'api.test', - configuration: conf, - install_dir: testdatadir, - ) - - conf = configuration_data() - conf.set('libexecdir', gtk_libexecdir) - configure_file(input: 'data.test.in', - output: 'data.test', - configuration: conf, - install_dir: testdatadir, - ) -endif - if false and get_option ('profiler') adwaita_env = csstest_env diff --git a/testsuite/css/nodes/meson.build b/testsuite/css/nodes/meson.build index eb619cf29c..576b4d8456 100644 --- a/testsuite/css/nodes/meson.build +++ b/testsuite/css/nodes/meson.build @@ -7,81 +7,15 @@ nodetest_env.set('GIO_USE_VFS', 'local') nodetest_env.set('GSETTINGS_BACKEND', 'memory') nodetest_env.set('G_ENABLE_DIAGNOSTIC', '0') -testexecdir = join_paths(installed_test_bindir, 'css', 'nodes') -testdatadir = join_paths(installed_test_datadir, 'css') +test_nodes = executable('test-css-nodes', + sources: ['test-css-nodes.c', '../../testutils.c'], + c_args: common_cflags, + dependencies: libgtk_dep, +) -test_nodes = executable('test-css-nodes', 'test-css-nodes.c', '../../testutils.c', - c_args: common_cflags, - install: get_option('install-tests'), - install_dir: testexecdir, - dependencies: libgtk_dep) test('nodes', test_nodes, args: [ '--tap', '-k' ], protocol: 'tap', env: nodetest_env, suite: 'css', ) - -test_data = [ - 'box.ltr.nodes', - 'box.ltr.ui', - 'box.rtl.nodes', - 'box.rtl.ui', - 'buttons.nodes', - 'buttons.ui', - 'checkbutton.ltr.nodes', - 'checkbutton.ltr.ui', - 'checkbutton.rtl.nodes', - 'checkbutton.rtl.ui', - 'combobox.nodes', - 'combobox.ui', - 'entries.nodes', - 'entries.ui', - 'expander.ltr.nodes', - 'expander.ltr.ui', - 'expander.rtl.nodes', - 'expander.rtl.ui', - 'levelbar.ltr.nodes', - 'levelbar.ltr.ui', - 'levelbar.rtl.nodes', - 'levelbar.rtl.ui', - 'notebook-arrows2.nodes', - 'notebook-arrows2.ui', - 'notebook-arrows.nodes', - 'notebook-arrows.ui', - 'notebook.bottom.ltr.nodes', - 'notebook.bottom.ltr.ui', - 'notebook.bottom.rtl.nodes', - 'notebook.bottom.rtl.ui', - 'notebook.left.ltr.nodes', - 'notebook.left.ltr.ui', - 'notebook.left.rtl.nodes', - 'notebook.left.rtl.ui', - 'notebook.right.ltr.nodes', - 'notebook.right.ltr.ui', - 'notebook.right.rtl.nodes', - 'notebook.right.rtl.ui', - 'notebook.top.ltr.nodes', - 'notebook.top.ltr.ui', - 'notebook.top.rtl.nodes', - 'notebook.top.rtl.ui', - 'paned.ltr.nodes', - 'paned.ltr.ui', - 'paned.rtl.nodes', - 'paned.rtl.ui', - 'progressbar.nodes', - 'progressbar.ui', - 'scale.nodes', - 'scale.ui', -] - -if get_option('install-tests') - conf = configuration_data() - conf.set('libexecdir', gtk_libexecdir) - configure_file(input: 'nodes.test.in', - output: 'nodes.test', - configuration: conf, - install_dir: testdatadir) - - install_data(test_data, install_dir: testexecdir) -endif diff --git a/testsuite/css/nodes/test-css-nodes.c b/testsuite/css/nodes/test-css-nodes.c index 038f9daf58..67bd2429aa 100644 --- a/testsuite/css/nodes/test-css-nodes.c +++ b/testsuite/css/nodes/test-css-nodes.c @@ -86,7 +86,7 @@ load_ui_file (GFile *file, gboolean generate) output = NULL; g_signal_connect (window, "map", G_CALLBACK (style_context_changed), &output); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); while (!output) g_main_context_iteration (NULL, FALSE); diff --git a/testsuite/css/parser/meson.build b/testsuite/css/parser/meson.build index d0fdd0d9a9..b419c29865 100644 --- a/testsuite/css/parser/meson.build +++ b/testsuite/css/parser/meson.build @@ -1,11 +1,8 @@ -testexecdir = join_paths(installed_test_bindir, 'css', 'parser') -testdatadir = join_paths(installed_test_datadir, 'css') - -test_parser = executable('test-css-parser', 'test-css-parser.c', '../../testutils.c', - c_args: common_cflags, - install: get_option('install-tests'), - install_dir: testexecdir, - dependencies: libgtk_dep) +test_parser = executable('test-css-parser', + sources: ['test-css-parser.c', '../../testutils.c'], + c_args: common_cflags, + dependencies: libgtk_dep, +) test_data = [ 'animation-crash-3.12.css', @@ -537,15 +534,3 @@ foreach testname : test_data suite: 'css') endif endforeach - -if get_option('install-tests') - conf = configuration_data() - conf.set('libexecdir', gtk_libexecdir) - configure_file(input: 'parser.test.in', - output: 'parser.test', - configuration: conf, - install_dir: testdatadir) - - install_data(test_data, install_dir: testexecdir) - -endif diff --git a/testsuite/css/style/meson.build b/testsuite/css/style/meson.build index 3228049499..ef703d7994 100644 --- a/testsuite/css/style/meson.build +++ b/testsuite/css/style/meson.build @@ -7,73 +7,21 @@ styletest_env.set('GIO_USE_VFS', 'local') styletest_env.set('GSETTINGS_BACKEND', 'memory') styletest_env.set('G_ENABLE_DIAGNOSTIC', '0') -testexecdir = join_paths(installed_test_bindir, 'css', 'style') -testdatadir = join_paths(installed_test_datadir, 'css') - cssresources = gnome.compile_resources( 'cssresources', 'test-css-style.gresource.xml', source_dir: '.', ) -test_style = executable( - 'test-css-style', - 'test-css-style.c', - '../../testutils.c', - cssresources, +test_style = executable('test-css-style', + sources: ['test-css-style.c', '../../testutils.c', cssresources], c_args: common_cflags, dependencies: libgtk_dep, - install: get_option('install-tests'), - install_dir: testexecdir, ) + test('style', test_style, args: [ '--tap', '-k' ], protocol: 'tap', env: styletest_env, suite: 'css', ) - -test_data = [ - 'adjacent-states.css', - 'adjacent-states.nodes', - 'adjacent-states.ui', - 'bloomfilter-not.css', - 'bloomfilter-not.nodes', - 'bloomfilter-not.ui', - 'colornames.css', - 'colornames.nodes', - 'colornames.ui', - 'currentcolor.css', - 'currentcolor.nodes', - 'currentcolor.ui', - 'font.css', - 'font.nodes', - 'font.ui', - 'gradient.css', - 'gradient.nodes', - 'gradient.ui', - 'gtk.css', - 'inherit.css', - 'inherit.nodes', - 'inherit.ui', - 'label.css', - 'label.nodes', - 'label.ui', - 'misc.css', - 'misc.nodes', - 'misc.ui', - 'nth-child.css', - 'nth-child.nodes', - 'nth-child.ui', -] - -if get_option('install-tests') - conf = configuration_data() - conf.set('libexecdir', gtk_libexecdir) - configure_file(input: 'style.test.in', - output: 'style.test', - configuration: conf, - install_dir: testdatadir) - - install_data(test_data, install_dir: testexecdir) -endif diff --git a/testsuite/css/style/test-css-style.c b/testsuite/css/style/test-css-style.c index 7875b94838..20e234ce8f 100644 --- a/testsuite/css/style/test-css-style.c +++ b/testsuite/css/style/test-css-style.c @@ -115,7 +115,7 @@ load_ui_file (GFile *file, gboolean generate) output = NULL; g_signal_connect (window, "map", G_CALLBACK (style_context_changed), &output); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); while (!output) g_main_context_iteration (NULL, FALSE); diff --git a/testsuite/gdk/meson.build b/testsuite/gdk/meson.build index 3236ce7d5d..f3d3a1ba4a 100644 --- a/testsuite/gdk/meson.build +++ b/testsuite/gdk/meson.build @@ -1,13 +1,10 @@ -testexecdir = join_paths(installed_test_bindir, 'gdk') -testdatadir = join_paths(installed_test_datadir, 'gdk') - clipboard_client = executable('clipboard-client', - sources: ['clipboard-client.c'], - include_directories: [confinc], - c_args: common_cflags, - dependencies: [ libgtk_dep ], - install: get_option('install-tests'), - install_dir: testexecdir) + sources: ['clipboard-client.c'], + include_directories: [confinc], + c_args: common_cflags, + dependencies: [ libgtk_dep ], + install: false, +) tests = [ { 'name': 'array' }, @@ -35,8 +32,7 @@ foreach t : tests sources: '@0@.c'.format(test_name), c_args: common_cflags, dependencies: libgtk_dep, - install: get_option('install-tests'), - install_dir: testexecdir, + install: false, ) suites = ['gdk'] + t.get('suites', []) @@ -63,8 +59,7 @@ foreach t : internal_tests test_exe = executable(t, '@0@.c'.format(t), c_args: common_cflags, dependencies: libgtk_static_dep, - install: get_option('install-tests'), - install_dir: testexecdir, + install: false, ) test(t, test_exe, @@ -78,28 +73,3 @@ foreach t : internal_tests suite: 'gdk', ) endforeach - - -if get_option('install-tests') - foreach t : tests - test_name = t.get('name') - suites = t.get('suites', []) - - if suites.contains('flaky') or suites.contains('failing') - continue - endif - - test_cdata = configuration_data() - test_cdata.set('testexecdir', testexecdir) - test_cdata.set('test', test_name) - configure_file(input: 'gdk.test.in', - output: '@0@.test'.format(test_name), - configuration: test_cdata, - install: true, - install_dir: testdatadir, - ) - endforeach - - install_subdir('clipboard-data', install_dir: testexecdir) - install_subdir('image-data', install_dir: testexecdir) -endif diff --git a/testsuite/gsk/meson.build b/testsuite/gsk/meson.build index 3c90dd632e..1897562465 100644 --- a/testsuite/gsk/meson.build +++ b/testsuite/gsk/meson.build @@ -1,22 +1,12 @@ -testexecdir = join_paths(installed_test_bindir, 'gsk') -testdatadir = join_paths(installed_test_datadir, 'gsk') - -compare_render = executable( - 'compare-render', +compare_render = executable('compare-render', ['compare-render.c', '../reftests/reftest-compare.c'], dependencies: libgtk_dep, c_args: common_cflags, - install: get_option('install-tests'), - install_dir: testexecdir ) -node_parser = executable( - 'node-parser', - ['node-parser.c'], +node_parser = executable('node-parser', 'node-parser.c', dependencies: libgtk_dep, c_args: common_cflags, - install: get_option('install-tests'), - install_dir: testexecdir ) compare_render_tests = [ @@ -84,8 +74,6 @@ compare_render_tests = [ 'repeat-texture', 'transform-in-transform', 'transform-in-transform-in-transform', - 'unaligned-offscreen', - 'upside-down-label-3d', # not really 3d, but cairo fails it 'rounded-clip-in-clip-3d', # not really 3d, but cairo fails it ] @@ -98,29 +86,49 @@ informative_render_tests = [ ] renderers = [ - # name exclude term - [ 'gl', '' ], - [ 'broadway', '-3d' ], - [ 'cairo', '-3d' ], + { 'name': 'gl' }, + { 'name': 'broadway', 'exclude_term': '-3d' }, + { 'name': 'cairo', 'exclude_term': '-3d' }, +] + +compare_xfails = [ + # Both tests fail because of some font rendering issue + 'unaligned-offscreen', + 'upside-down-label-3d', # not really 3d, but cairo fails it ] foreach renderer : renderers - foreach test : compare_render_tests - if ((renderer[1] == '' or not test.contains(renderer[1])) and - (renderer[0] != 'broadway' or broadway_enabled)) - test(renderer[0] + ' ' + test, compare_render, + foreach testname : compare_render_tests + + renderer_name = renderer.get('name') + exclude_term = renderer.get('exclude_term', '') + + suites = [ + 'gsk', + 'gsk-compare', + 'gsk-' + renderer_name, + 'gsk-compare-' + renderer_name, + ] + + if compare_xfails.contains(testname) + suites += 'failing' + endif + + if ((exclude_term == '' or not testname.contains(exclude_term)) and + (renderer_name != 'broadway' or broadway_enabled)) + test(renderer_name + ' ' + testname, compare_render, args: [ - '--output', join_paths(meson.current_build_dir(), 'compare', renderer[0]), - join_paths(meson.current_source_dir(), 'compare', test + '.node'), - join_paths(meson.current_source_dir(), 'compare', test + '.png'), + '--output', join_paths(meson.current_build_dir(), 'compare', renderer_name), + join_paths(meson.current_source_dir(), 'compare', testname + '.node'), + join_paths(meson.current_source_dir(), 'compare', testname + '.png'), ], env: [ - 'GSK_RENDERER=' + renderer[0], + 'GSK_RENDERER=' + renderer_name, 'GTK_A11Y=test', 'G_TEST_SRCDIR=@0@'.format(meson.current_source_dir()), 'G_TEST_BUILDDIR=@0@'.format(meson.current_build_dir()) ], - suite: [ 'gsk', 'gsk-compare', 'gsk-' + renderer[0], 'gsk-compare-' + renderer[0] ], + suite: suites, ) endif endforeach @@ -248,11 +256,9 @@ foreach t : tests test_extra_ldflags = t.get(3, []) test_exe = executable(test_name, test_srcs, + dependencies : libgtk_dep, c_args : test_cargs + test_extra_cargs + common_cflags, link_args : test_extra_ldflags, - dependencies : libgtk_dep, - install: get_option('install-tests'), - install_dir: testexecdir, ) test(test_name, test_exe, @@ -281,12 +287,11 @@ foreach t : internal_tests test_extra_cargs = t.get(2, []) test_extra_ldflags = t.get(3, []) - test_exe = executable(test_name, test_srcs, + test_exe = executable(test_name, + sources: test_srcs, + dependencies : libgtk_static_dep, c_args : test_cargs + test_extra_cargs + common_cflags, link_args : test_extra_ldflags, - dependencies : libgtk_static_dep, - install: get_option('install-tests'), - install_dir: testexecdir, ) test(test_name, test_exe, diff --git a/testsuite/gtk/displayclose.c b/testsuite/gtk/displayclose.c index 3cef035d33..6e2fcd0edd 100644 --- a/testsuite/gtk/displayclose.c +++ b/testsuite/gtk/displayclose.c @@ -30,7 +30,7 @@ main (int argc, char **argv) G_CALLBACK (gtk_window_destroy), win); gtk_window_set_child (GTK_WINDOW (win), but); - gtk_widget_show (win); + gtk_window_present (GTK_WINDOW (win)); gtk_test_widget_wait_for_draw (win); diff --git a/testsuite/gtk/flowbox.c b/testsuite/gtk/flowbox.c index a3e63cf4d5..0a7752d5d3 100644 --- a/testsuite/gtk/flowbox.c +++ b/testsuite/gtk/flowbox.c @@ -18,7 +18,7 @@ show_and_wait (GtkWidget *widget) gboolean done = FALSE; g_timeout_add (500, main_loop_quit_cb, &done); - gtk_widget_show (widget); + gtk_widget_set_visible (widget, TRUE); while (!done) g_main_context_iteration (NULL, FALSE); } diff --git a/testsuite/gtk/gestures.c b/testsuite/gtk/gestures.c index 595c79ea8a..b2c5f034d9 100644 --- a/testsuite/gtk/gestures.c +++ b/testsuite/gtk/gestures.c @@ -427,7 +427,7 @@ test_phases (void) gtk_box_append (GTK_BOX (A), B); gtk_box_append (GTK_BOX (B), C); - gtk_widget_show (A); + gtk_window_present (GTK_WINDOW (A)); str = g_string_new (""); @@ -479,7 +479,7 @@ test_mixed (void) gtk_box_append (GTK_BOX (A), B); gtk_box_append (GTK_BOX (B), C); - gtk_widget_show (A); + gtk_window_present (GTK_WINDOW (A)); str = g_string_new (""); @@ -538,7 +538,7 @@ test_early_exit (void) gtk_box_append (GTK_BOX (A), B); gtk_box_append (GTK_BOX (B), C); - gtk_widget_show (A); + gtk_window_present (GTK_WINDOW (A)); str = g_string_new (""); @@ -593,7 +593,7 @@ test_claim_capture (void) gtk_box_append (GTK_BOX (A), B); gtk_box_append (GTK_BOX (B), C); - gtk_widget_show (A); + gtk_window_present (GTK_WINDOW (A)); str = g_string_new (""); @@ -640,7 +640,7 @@ test_claim_target (void) gtk_box_append (GTK_BOX (A), B); gtk_box_append (GTK_BOX (B), C); - gtk_widget_show (A); + gtk_window_present (GTK_WINDOW (A)); str = g_string_new (""); @@ -687,7 +687,7 @@ test_claim_bubble (void) gtk_box_append (GTK_BOX (A), B); gtk_box_append (GTK_BOX (B), C); - gtk_widget_show (A); + gtk_window_present (GTK_WINDOW (A)); str = g_string_new (""); @@ -741,7 +741,7 @@ test_early_claim_capture (void) gtk_box_append (GTK_BOX (A), B); gtk_box_append (GTK_BOX (B), C); - gtk_widget_show (A); + gtk_window_present (GTK_WINDOW (A)); str = g_string_new (""); @@ -798,7 +798,7 @@ test_late_claim_capture (void) gtk_box_append (GTK_BOX (A), B); gtk_box_append (GTK_BOX (B), C); - gtk_widget_show (A); + gtk_window_present (GTK_WINDOW (A)); str = g_string_new (""); @@ -857,7 +857,7 @@ test_group (void) gtk_box_append (GTK_BOX (A), B); gtk_box_append (GTK_BOX (B), C); - gtk_widget_show (A); + gtk_window_present (GTK_WINDOW (A)); str = g_string_new (""); @@ -908,10 +908,10 @@ test_gestures_outside_grab (void) gtk_box_append (GTK_BOX (A), B); gtk_box_append (GTK_BOX (B), C); - gtk_widget_show (A); + gtk_window_present (GTK_WINDOW (A)); D = gtk_window_new (); - gtk_widget_show (D); + gtk_window_present (GTK_WINDOW (D)); str = g_string_new (""); @@ -968,7 +968,7 @@ test_gestures_inside_grab (void) gtk_box_append (GTK_BOX (A), B); gtk_box_append (GTK_BOX (B), C); - gtk_widget_show (A); + gtk_window_present (GTK_WINDOW (A)); str = g_string_new (""); @@ -1028,7 +1028,7 @@ test_multitouch_on_single (void) gtk_box_append (GTK_BOX (A), B); gtk_box_append (GTK_BOX (B), C); - gtk_widget_show (A); + gtk_window_present (GTK_WINDOW (A)); str = g_string_new (""); @@ -1079,7 +1079,7 @@ test_multitouch_activation (void) gtk_box_append (GTK_BOX (A), B); gtk_box_append (GTK_BOX (B), C); - gtk_widget_show (A); + gtk_window_present (GTK_WINDOW (A)); str = g_string_new (""); @@ -1155,7 +1155,7 @@ test_multitouch_interaction (void) gtk_box_append (GTK_BOX (A), B); gtk_box_append (GTK_BOX (B), C); - gtk_widget_show (A); + gtk_window_present (GTK_WINDOW (A)); str = g_string_new (""); diff --git a/testsuite/gtk/listbox.c b/testsuite/gtk/listbox.c index fea62ba599..b72c7a48c7 100644 --- a/testsuite/gtk/listbox.c +++ b/testsuite/gtk/listbox.c @@ -59,7 +59,6 @@ test_sort (void) list = GTK_LIST_BOX (gtk_list_box_new ()); g_object_ref_sink (list); - gtk_widget_show (GTK_WIDGET (list)); for (i = 0; i < 100; i++) { @@ -116,7 +115,6 @@ test_selection (void) list = GTK_LIST_BOX (gtk_list_box_new ()); g_object_ref_sink (list); - gtk_widget_show (GTK_WIDGET (list)); g_assert_cmpint (gtk_list_box_get_selection_mode (list), ==, GTK_SELECTION_SINGLE); g_assert_null (gtk_list_box_get_selected_row (list)); @@ -204,7 +202,6 @@ test_multi_selection (void) list = GTK_LIST_BOX (gtk_list_box_new ()); g_object_ref_sink (list); - gtk_widget_show (GTK_WIDGET (list)); g_assert_cmpint (gtk_list_box_get_selection_mode (list), ==, GTK_SELECTION_SINGLE); g_assert_null (gtk_list_box_get_selected_rows (list)); @@ -318,7 +315,6 @@ test_filter (void) list = GTK_LIST_BOX (gtk_list_box_new ()); g_object_ref_sink (list); - gtk_widget_show (GTK_WIDGET (list)); g_assert_cmpint (gtk_list_box_get_selection_mode (list), ==, GTK_SELECTION_SINGLE); g_assert_null (gtk_list_box_get_selected_row (list)); @@ -410,7 +406,6 @@ test_header (void) list = GTK_LIST_BOX (gtk_list_box_new ()); g_object_ref_sink (list); - gtk_widget_show (GTK_WIDGET (list)); g_assert_cmpint (gtk_list_box_get_selection_mode (list), ==, GTK_SELECTION_SINGLE); g_assert_null (gtk_list_box_get_selected_row (list)); diff --git a/testsuite/gtk/meson.build b/testsuite/gtk/meson.build index 3c107efd2a..73dd1369c3 100644 --- a/testsuite/gtk/meson.build +++ b/testsuite/gtk/meson.build @@ -1,6 +1,3 @@ -testexecdir = join_paths(installed_test_bindir, 'gtk') -testdatadir = join_paths(installed_test_datadir, 'gtk') - gtk_tests_export_dynamic_ldflag = [] if cc.get_id() != 'msvc' @@ -172,8 +169,6 @@ foreach t : tests c_args: test_cargs + test_extra_cargs, link_args: test_extra_ldflags, dependencies: libgtk_dep, - install: get_option('install-tests'), - install_dir: testexecdir, ) if test_extra_suites.contains('slow') @@ -202,8 +197,6 @@ foreach t : internal_tests c_args: test_cargs + test_extra_cargs, link_args: test_extra_ldflags, dependencies: libgtk_static_dep, - install: get_option('install-tests'), - install_dir: testexecdir, ) if test_extra_suites.contains('slow') @@ -222,10 +215,8 @@ endforeach # FIXME: if objc autotestkeywords_CPPFLAGS += -DHAVE_OBJC=1 -x objective-c++ if add_languages('cpp', required: false, native: false) test_exe = executable('autotestkeywords', - sources: 'autotestkeywords.cc', + sources: ['autotestkeywords.cc'], dependencies: libgtk_dep, - install: get_option('install-tests'), - install_dir: testexecdir, ) test('c++ keywords', test_exe, args: [ '--tap', '-k' ], @@ -233,16 +224,6 @@ if add_languages('cpp', required: false, native: false) env: test_env, suite: 'gtk', ) - if get_option('install-tests') - conf = configuration_data() - conf.set('testexecdir', testexecdir) - conf.set('test', 'autotestkeywords') - configure_file(input: 'gtk.test.in', - output: 'autotestkeywords.test', - configuration: conf, - install_dir: testdatadir, - ) - endif endif @@ -268,13 +249,10 @@ focus_chain_tests = [ #[ 'widget-factory3', 'tab-backward' ], ] -focus_chain = executable( - 'test-focus-chain', +focus_chain = executable('test-focus-chain', sources: ['test-focus-chain.c', '../testutils.c'], dependencies: libgtk_dep, c_args: common_cflags, - install: get_option('install-tests'), - install_dir: testexecdir ) foreach test : focus_chain_tests @@ -296,30 +274,6 @@ test('potfiles', make_pot, workdir: meson.project_source_root(), suite: ['gtk', 'translations' ]) -if get_option('install-tests') - foreach t : tests - test_name = t.get('name') - suites = t.get('suites', []) - - if suites.contains('flaky') or suites.contains('failing') - continue - endif - - conf = configuration_data() - conf.set('testexecdir', testexecdir) - conf.set('test', test_name) - configure_file(input: 'gtk.test.in', - output: '@0@.test'.format(test_name), - configuration: conf, - install_dir: testdatadir, - ) - endforeach - - install_subdir('icons', install_dir: testexecdir) - install_subdir('icons2', install_dir: testexecdir) - install_subdir('ui', install_dir: testexecdir) -endif - if false and get_option ('profiler') performance_env = test_env diff --git a/testsuite/gtk/templates.c b/testsuite/gtk/templates.c index aa3c95f9b3..6de199ac52 100644 --- a/testsuite/gtk/templates.c +++ b/testsuite/gtk/templates.c @@ -42,7 +42,7 @@ show_and_wait (GtkWidget *widget) gboolean done = FALSE; g_timeout_add (500, main_loop_quit_cb, &done); - gtk_widget_show (widget); + gtk_widget_set_visible (widget, TRUE); while (!done) g_main_context_iteration (NULL, FALSE); } diff --git a/testsuite/gtk/test-focus-chain.c b/testsuite/gtk/test-focus-chain.c index 14418519d4..3846ac525d 100644 --- a/testsuite/gtk/test-focus-chain.c +++ b/testsuite/gtk/test-focus-chain.c @@ -79,7 +79,7 @@ generate_focus_chain (GtkWidget *window, GtkWidget *focus; int count = 0; - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); /* start without focus */ gtk_window_set_focus (GTK_WINDOW (window), NULL); @@ -203,7 +203,7 @@ load_ui_file (GFile *ui_file, g_assert_nonnull (window); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); timeout_handle_id = g_timeout_add (2000, quit_iteration_loop, diff --git a/testsuite/gtk/treeview.c b/testsuite/gtk/treeview.c index 4ddaf65f7c..26ea8edfc8 100644 --- a/testsuite/gtk/treeview.c +++ b/testsuite/gtk/treeview.c @@ -215,7 +215,7 @@ test_row_separator_height (void) NULL); gtk_window_set_child (GTK_WINDOW (window), tree_view); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); gtk_test_widget_wait_for_draw (window); diff --git a/testsuite/gtk/window.c b/testsuite/gtk/window.c index c92c92e03f..a003b3bbaf 100644 --- a/testsuite/gtk/window.c +++ b/testsuite/gtk/window.c @@ -96,7 +96,7 @@ test_default_size (void) g_assert_cmpint (w, ==, 300); g_assert_cmpint (h, ==, 300); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); done = FALSE; if (!interactive) @@ -131,8 +131,8 @@ test_default_size (void) g_assert_cmpint (h, ==, 300); /* check that even hide/show does not pull in the new default */ - gtk_widget_hide (window); - gtk_widget_show (window); + gtk_widget_set_visible (window, FALSE); + gtk_widget_set_visible (window, TRUE); done = FALSE; if (!interactive) @@ -162,7 +162,7 @@ test_resize_popup (void) g_assert_cmpint (w, ==, 1); g_assert_cmpint (h, ==, 1); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); done = FALSE; if (!interactive) @@ -190,7 +190,7 @@ test_show_hide (void) window = gtk_window_new (); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); done = FALSE; if (!interactive) @@ -212,7 +212,7 @@ test_show_hide (void) g_assert_cmpint (w, ==, w1); g_assert_cmpint (h, ==, h1); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); done = FALSE; if (!interactive) diff --git a/testsuite/introspection/api.py b/testsuite/introspection/api.py index a2feac37ea..9bbbedfe13 100755 --- a/testsuite/introspection/api.py +++ b/testsuite/introspection/api.py @@ -14,7 +14,10 @@ if hasattr(os, 'add_dll_directory'): if path != '' and os.path.isdir(path): os.add_dll_directory(path) -import gi +try: + import gi +except ImportError: + sys.exit(77) # skip this test, gi module is not available gi.require_version('Gtk', '4.0') diff --git a/testsuite/introspection/meson.build b/testsuite/introspection/meson.build index c64a0f54d3..a30c687353 100644 --- a/testsuite/introspection/meson.build +++ b/testsuite/introspection/meson.build @@ -1,5 +1,3 @@ -py = import('python').find_installation('python3', modules: ['gi']) - env = environment() env.prepend('GI_TYPELIB_PATH', project_build_root / 'gtk', diff --git a/testsuite/reftests/meson.build b/testsuite/reftests/meson.build index 329348d64f..b8e0ef0e64 100644 --- a/testsuite/reftests/meson.build +++ b/testsuite/reftests/meson.build @@ -598,6 +598,7 @@ xfails = [ 'label-background.ui', 'label-wrap-justify.ui', ] + flaky = [ # these tests need a better way to perform delayed actions # they are not in xfails since they succeed on some platforms @@ -608,6 +609,10 @@ flaky = [ # to be left enabled. Remove it until somebody figures out # what is going on there. 'treeview-headers-hidden.ui', + # this consistently times out in the ci + 'shorthand-entry-border.ui', + # blinking cursors and timing issues make this unreliable + 'fixed-widget-stacking.ui', ] reftest_env = environment() diff --git a/testsuite/reftests/reftest-snapshot.c b/testsuite/reftests/reftest-snapshot.c index 167311630e..d2ecc0ee65 100644 --- a/testsuite/reftests/reftest-snapshot.c +++ b/testsuite/reftests/reftest-snapshot.c @@ -312,7 +312,7 @@ reftest_snapshot_ui_file (const char *ui_file) g_object_unref (builder); g_assert_true (window); - gtk_widget_show (window); + gtk_window_present (GTK_WINDOW (window)); return snapshot_widget (window); } diff --git a/testsuite/tools/meson.build b/testsuite/tools/meson.build index 582bce6fb8..986c2d6dcc 100644 --- a/testsuite/tools/meson.build +++ b/testsuite/tools/meson.build @@ -1,23 +1,12 @@ -testexecdir = join_paths(installed_test_bindir, 'tools') -testdatadir = join_paths(installed_test_datadir, 'tools') - bash = find_program('bash', required : false) if bash.found() test_env = environment() foreach t : ['simplify', 'simplify-3to4', 'validate', 'settings'] - if get_option('install-tests') - configure_file(output: t, - input: '@0@.in'.format(t), - copy: true, - install_dir: testexecdir, - ) - else - configure_file(output: t, - input: '@0@.in'.format(t), - copy: true, - ) - endif + configure_file(output: t, + input: '@0@.in'.format(t), + copy: true, + ) test(t, bash, args: t, workdir: meson.current_build_dir(), @@ -34,20 +23,3 @@ if bash.found() ) endforeach endif - -if get_option('install-tests') - foreach t : ['simplify', 'settings'] - test_conf = configuration_data() - test_conf.set('testexecdir', testexecdir) - test_conf.set('test', t) - configure_file(output: '@0@.test'.format(t), - input: 'tools.test.in', - configuration: test_conf, - install_dir: testdatadir, - ) - endforeach - - install_subdir('simplify-data', install_dir: testexecdir) - install_subdir('simplify-data-3to4', install_dir: testexecdir) - install_subdir('validate-data', install_dir: testexecdir) -endif |