Compare commits

...

31 Commits

Author SHA1 Message Date
Matthias Clasen
65ba22f8ae 4.16.3 2024-10-04 11:31:45 -04:00
Matthias Clasen
7d5157e99b gstreamer: Fix gl context creation
We may not have a surface (since realizing media streams is optional),
so use the display when creating a gl context.
2024-10-04 11:30:19 -04:00
Matthias Clasen
4f0ac05b16 Merge branch 'gstreamer-no-gl-4-16' into 'gtk-4-16'
Fix testsuite setup

See merge request GNOME/gtk!7794
2024-10-04 15:14:11 +00:00
Matthias Clasen
6ad0cc7399 Merge branch 'backports-for-4-16' into 'gtk-4-16'
Fix testsuite setup

See merge request GNOME/gtk!7792
2024-10-04 14:40:37 +00:00
Matthias Clasen
503534df00 Merge branch 'cherry-pick-06f08ea8' into 'gtk-4-16'
[gtk-4-16] atcontext: Only recurse parents for non-widget accessibles

See merge request GNOME/gtk!7795
2024-10-04 14:26:00 +00:00
Matthias Clasen
a7f342d202 gstreamer: Tweak gl context handling
Just create the context when it is needed.
2024-10-04 09:56:44 -04:00
Matthias Clasen
ac9bf2f773 gstreamer: Simplify
Add a uses-gl property to our sink implementation, and use
it in the paintable code. This avoids juggling a second gl
context, with the risk of leaking it.
2024-10-04 09:56:44 -04:00
Matthias Clasen
3367a6209b gstreamer: Improve caps handling
Separate out the caps for dmabuf, gl and memory and add them
when appropriate.
2024-10-04 09:56:44 -04:00
Matthias Clasen
3cbb4aeb19 Restructure gtk_gst_paintable_video_renderer_create_video_sink
This code had too many early exits and was leaking GL contexts
and Gstreamer elements. Simplify.
2024-10-04 09:56:44 -04:00
Matthias Clasen
0128aa9ead gstreamer: Use the default display if needed
Calling gtk_media_stream_realize is not mandatory, but we can
still try to make dmabufs happen. Tested by removing the realize
call from GtkVideo and using GDK_DISABLE=gl.
2024-10-04 09:56:44 -04:00
Matthias Clasen
24f2540ba5 gstreamer: Restructure gtk_gst_sink_propose_allocation
Split this clearly into two cases: dmabuf or gl memory.
2024-10-04 09:56:44 -04:00
Matthias Clasen
d13303496f gstreamer: Make dmabufs work without GL
We only need a display to negotiate dmabuf formats. Pass that
directly, instead of getting the display of the GL context as
we did so far.

With this,

GSK_RENDERER=vulkan GL_DISABLE=gl gtk4-demo --run video_player

still uses dmabufs.

Related: #7048
2024-10-04 09:56:44 -04:00
Georges Basile Stavracas Neto
2847fdd36f atcontext: Only recurse parents for non-widget accessibles
The original intent was to only realize parents recursively for
non-widget accessible objects. The implementation, however, always
try to realize parents. In the case of GtkStackPage, which is a
non-widget accessible with a widget accessible child, this breaks.

Only realize non-widget accessible parents recursively if the
current accessible is not a widget as well.

Closes https://gitlab.gnome.org/GNOME/gtk/-/issues/7058
Fixes 6074a18e3e


(cherry picked from commit 06f08ea804)
2024-10-04 13:22:19 +00:00
Matthias Clasen
c042b3bf83 ci: Stop using catch
It is useful to track down mysterious crashes in ci, but it causes
sporadic test failures, so disable it for now, until we have another
mysterious crash.
2024-10-03 21:35:26 -04:00
Benjamin Otte
289aa4553f picture: Only queue_resize() if necessary
When setting a new paintable, we don't need to queue_resize() when it's
the same size as the old paintable.

This is especially useful when pictures are used in a listview or
gridview and different rows display images of the same size.
2024-10-03 21:35:26 -04:00
Sergey Bugaev
c785deacd2 window: Fix crash when unexporting unrealized window
It is possible that the window gets unrealized while a handle to its
surface is exported. This, naturally, invalidates the handle, so there
is nothing left to unexport. We should just note that and do nothing,
rather than crashing.

Fixes a crash when a portal-backed file dialog parented to a window is
closed after the window it was parented to.

Reported-by: Ivan Molodetskikh <yalterz@gmail.com>
Signed-off-by: Sergey Bugaev <bugaevc@gmail.com>
2024-10-03 21:35:26 -04:00
Sergey Bugaev
78ffc7cefb window: Fix a typo
Fortunately, it didn't impact string length.

Signed-off-by: Sergey Bugaev <bugaevc@gmail.com>
2024-10-03 21:35:26 -04:00
Sergey Bugaev
6f44be847f scrolledwindow: Fix measuring non-overlay, always visible scrollbars
The last part of logic in gtk_scrolled_window_measure () that accounted
for scrollbars was handling the hscrollbar first, and vscrollbar second.
For each of them, it looked at the orientation we're being measured in,
and either added or MAX'ed scrollbar's size request into ours (or not,
depending on scrollbar policy and whether overlay scrolling is used).

In case of GTK_ORIENTATION_HORIZONTAL, this resulted in

    // MAX in hscrollbar width.
    minimum_req = MAX (minimum_req, min_scrollbar_width + sborder.left + sborder.right);
    // Add in vscrollbar width.
    minimum_req += min_scrollbar_width;

whereas for GTK_ORIENTATION_VERTICAL, it was

    // Add in hscrollbar height.
    minimum_req += min_scrollbar_height;
    // MAX in vscrollbar height.
    minimum_req = MAX (minimum_req, min_scrollbar_height + sborder.top + sborder.bottom);

The former is correct and the latter is wrong: we should be adding the
size requests of the scrollbars together, and MAX'ing them with the
content size request.

Fix this by refactoring the logic to first handle the MAX'ing, and then
the addition.

This fixes the following criticals:

Gtk-CRITICAL **: 17:26:51.406: Allocation height too small. Tried to allocate 15x31, but GtkScrollbar 0x2a00fac0 needs at least 15x46.

that were happening when all of:
- scrollbar policy was set to ALWAYS,
- overlay scrolling was disabled,
- the scrollable child was really small.

Signed-off-by: Sergey Bugaev <bugaevc@gmail.com>
2024-10-03 21:35:26 -04:00
Matthias Clasen
3424b80ef1 Fix testsuite setup
We no longer say GDK_DEBUG=gl-prefer-gl, we say GDK_DISABLE=gles-api.
2024-10-03 21:35:26 -04:00
Matthias Clasen
5cf0d4f7fd Merge branch 'gbsneto/backport-a11y' into 'gtk-4-16'
[gtk-4-16] atcontext: Always realize non-widget accessibles

See merge request GNOME/gtk!7789
2024-10-04 01:27:20 +00:00
Georges Basile Stavracas Neto
f916d82280 atcontext: Always realize non-widget accessibles
Upon joining the a11y tree. And do so recursively, as long as the parent
is also not a widget.

As for the explanation, please grab a mug of your favorite drink. It's
a little complicated.

GTK realizes AT contexts in 3 situations:

 1. When it's a toplevel, it's realized unconditionally
 2. When the widget is focused
 3. When the accessible is appended to a realized parent

Most importantly, GTK lazily realizes accessibles, and does not realize
child accessibles recursively.

Clearly, conditions 1 and 2 only ever happen for GtkWidgets, which are
accessible objects themselves. These two conditions will handle the vast
majority of cases of apps and platform libraries.

However, there are non-widget accessibles out there. GTK itself offers a
non-widget accessible implementation - GtkAtspiSocket - which is used by
WebKitGTK.

Now, let's look at WebKitGTK use case. It'll demonstrate the problem
nicely.

WebKitGTK creates the GtkAtspiSocket object *after* loading most of the
page. At this point, there are 2 possibilities:

 1. The web view widget is focused. In this case, the AT context of the
    web view is realized, and GTK will realize the GtkAtspiSocket when
    it is added to the a11y tree (condition 3 above).

 2. The web view widget is *not* focused. At some point the user focuses
    the web view, and GTK will realize the AT context of the web view.
    But remember, GTK does not realize child accessibles! That means
    GtkAtspiSocket won't be realized.

This example demonstrates a general problem with non-widget accessibles:
non-widget accessibles cannot trigger conditions 1 and 2, so they're
never realized. The only way they're realized in if they happen to be
added to an already realized accessible (condition 3).

To fix that, the following is proposed: always realize non-widget
accessibles, and also of their non-widget accessible parents. This is
not ideal, of course, as it might generate some D-Bus chattery, but GTK
does not have enough information to realize these objects at more
appropriate times.
2024-10-03 08:44:37 -03:00
Georges Basile Stavracas Neto
7d0cb2f006 atcontext: Factor out some code
Move the code that realizes an AT context if the parent is realized,
into to a separate function. This will make the next patch easier to
read.

No functional changes.
2024-10-03 08:44:37 -03:00
Matthias Clasen
c2417dc107 Merge branch 'default-cursor-xdg-gtk-4-16' into 'gtk-4-16'
wayland: Look for default cursor theme in XDG directories

See merge request GNOME/gtk!7767
2024-09-30 14:51:18 +00:00
Ilya Fedin
d4202b836a wayland: Look for default cursor theme in XDG directories
Currently it's looked up only in /usr/share what is a problem for non-FHS distros like NixOS
2024-09-30 15:50:29 +04:00
Anders Jonsson
82f08089f1 Update Swedish translation 2024-09-29 22:16:03 +00:00
Juliano de Souza Camargo
1610ecbbac Update Brazilian Portuguese translation 2024-09-29 16:29:55 +00:00
Matthias Clasen
b0048df3c6 Merge branch 'clear-settings-portal-gtk-4-16' into 'gtk-4-16'
wayland: Clear settings_portal when going to fallback with no portal settings

See merge request GNOME/gtk!7759
2024-09-29 13:25:02 +00:00
Matthias Clasen
b6370e1b0c Merge branch 'default-cursor-size-gtk-4-16' into 'gtk-4-16'
wayland: Use the same default cursor size as gsettings schema

See merge request GNOME/gtk!7758
2024-09-29 01:13:00 +00:00
Fran Dieguez
8360bfc772 Update Galician translation 2024-09-28 21:50:17 +00:00
Ilya Fedin
5670fea30d wayland: Clear settings_portal when going to fallback with no portal settings
All other code paths with goto fallback clear it, this makes the behavior consistent with them
2024-09-28 16:58:17 +04:00
Ilya Fedin
fabe179dab wayland: Use the same default cursor size as gsettings schema
Fixes: #7043
2024-09-28 16:57:40 +04:00
14 changed files with 574 additions and 439 deletions

View File

@@ -119,8 +119,9 @@ release-build:
script:
- .gitlab-ci/show-info-linux.sh
- mkdir _install
- export PATH="$HOME/.local/bin:${CI_PROJECT_DIR}/_install/bin:$PATH"
- .gitlab-ci/install-meson-project.sh --prefix ${CI_PROJECT_DIR}/_install https://gitlab.gnome.org/jadahl/catch.git main
# don't use catch by default, since it causes sporadic test failures
# - export PATH="$HOME/.local/bin:${CI_PROJECT_DIR}/_install/bin:$PATH"
# - .gitlab-ci/install-meson-project.sh --prefix ${CI_PROJECT_DIR}/_install https://gitlab.gnome.org/jadahl/catch.git main
- meson subprojects download
- meson subprojects update --reset
- meson setup

35
NEWS
View File

@@ -1,8 +1,33 @@
Overview of Changes in 4.16.3, xx-xx-xxxx
Overview of Changes in 4.16.3, 04-10-2024
=========================================
* GtkScrolledWindow
- Fix criticals in size allocation code
Overview of Changes in 4.16.2, 09-25-2024
* GtkFileChooser
- Fix a crash in the portal code
* GtkPicture
- Avoid unnecessary resizes
* GtkVideo
- Make dmabufs work without GL
* Accessibility:
- Always realized non-widget accessibles
* Wayland:
- Improve settings portal handling
- Improve fallback for cursor themes
- Sync default values for settings with schema defaults
* Translation updates:
Brazilian Portuguese
Galician
Swedish
Overview of Changes in 4.16.2, 25-09-2024
=========================================
* GtkLabel:
@@ -43,7 +68,7 @@ Overview of Changes in 4.16.2, 09-25-2024
Ukrainian
Overview of Changes in 4.16.1, 09-16-2024
Overview of Changes in 4.16.1, 16-09-2024
=========================================
* GtkFileChooser:
@@ -84,7 +109,7 @@ Overview of Changes in 4.16.1, 09-16-2024
Swedish
Overview of Changes in 4.16.0, 09-06-2024
Overview of Changes in 4.16.0, 06-09-2024
=========================================
Note: This release changes the default GSK renderer to be Vulkan,
@@ -182,7 +207,7 @@ with the new renderers.
Ukrainian
Overview of Changes in 4.15.6, 08-26-2024
Overview of Changes in 4.15.6, 26-08-2024
=========================================
* GtkCheckButton:

View File

@@ -1130,6 +1130,9 @@ get_cursor_theme (GdkWaylandDisplay *display_wayland,
return theme;
}
if (strcmp (name, "default") != 0)
return get_cursor_theme (display_wayland, "default", size);
/* This may fall back to builtin cursors */
return wl_cursor_theme_create ("/usr/share/icons/default/cursors", size, display_wayland->shm);
}
@@ -1216,7 +1219,7 @@ _gdk_wayland_display_load_cursor_theme (GdkWaylandDisplay *display_wayland)
if (gdk_display_get_setting (GDK_DISPLAY (display_wayland), "gtk-cursor-theme-size", &v))
size = g_value_get_int (&v);
else
size = 32;
size = 24;
g_value_unset (&v);
g_value_init (&v, G_TYPE_STRING);
@@ -1750,7 +1753,7 @@ static TranslationEntry translations[] = {
{ FALSE, "org.gnome.desktop.interface", "gtk-theme", "gtk-theme-name" , G_TYPE_STRING, { .s = "Adwaita" } },
{ FALSE, "org.gnome.desktop.interface", "icon-theme", "gtk-icon-theme-name", G_TYPE_STRING, { .s = "gnome" } },
{ FALSE, "org.gnome.desktop.interface", "cursor-theme", "gtk-cursor-theme-name", G_TYPE_STRING, { .s = "Adwaita" } },
{ FALSE, "org.gnome.desktop.interface", "cursor-size", "gtk-cursor-theme-size", G_TYPE_INT, { .i = 32 } },
{ FALSE, "org.gnome.desktop.interface", "cursor-size", "gtk-cursor-theme-size", G_TYPE_INT, { .i = 24 } },
{ FALSE, "org.gnome.desktop.interface", "font-name", "gtk-font-name", G_TYPE_STRING, { .s = "Cantarell 11" } },
{ FALSE, "org.gnome.desktop.interface", "cursor-blink", "gtk-cursor-blink", G_TYPE_BOOLEAN, { .b = TRUE } },
{ FALSE, "org.gnome.desktop.interface", "cursor-blink-time", "gtk-cursor-blink-time", G_TYPE_INT, { .i = 1200 } },
@@ -1994,6 +1997,7 @@ init_settings (GdkDisplay *display)
g_debug ("Received no portal settings");
g_clear_pointer (&iter, g_variant_iter_free);
g_clear_pointer (&ret, g_variant_unref);
g_clear_object (&display_wayland->settings_portal);
goto fallback;
}

View File

@@ -512,6 +512,40 @@ gtk_at_context_get_accessible_parent (GtkATContext *self)
static GtkATContext * get_parent_context (GtkATContext *self);
static inline void
maybe_realize_context (GtkATContext *self)
{
if (GTK_IS_WIDGET (self->accessible))
{
GtkATContext *parent_context = get_parent_context (self);
if (parent_context && parent_context->realized)
gtk_at_context_realize (self);
g_clear_object (&parent_context);
}
else
{
GtkAccessible *accessible_parent;
gtk_at_context_realize (self);
accessible_parent = self->accessible_parent;
while (accessible_parent && !GTK_IS_WIDGET (accessible_parent))
{
GtkATContext *parent_context = gtk_accessible_get_at_context (accessible_parent);
if (!parent_context)
break;
gtk_at_context_realize (parent_context);
accessible_parent = parent_context->accessible_parent;
g_clear_object (&parent_context);
}
}
}
/*< private >
* gtk_at_context_set_accessible_parent:
* @self: a `GtkAtContext`
@@ -534,15 +568,10 @@ gtk_at_context_set_accessible_parent (GtkATContext *self,
self->accessible_parent = parent;
if (self->accessible_parent != NULL)
{
GtkATContext *parent_context = NULL;
g_object_add_weak_pointer (G_OBJECT (self->accessible_parent),
(gpointer *) &self->accessible_parent);
parent_context = get_parent_context (self);
if (parent_context && parent_context->realized)
gtk_at_context_realize (self);
g_clear_object (&parent_context);
maybe_realize_context (self);
}
}
}

View File

@@ -808,6 +808,20 @@ gtk_picture_set_pixbuf (GtkPicture *self,
g_object_unref (texture);
}
static gboolean
paintable_size_equal (GdkPaintable *one,
GdkPaintable *two)
{
if (one == NULL)
return two == NULL;
else if (two == NULL)
return FALSE;
return gdk_paintable_get_intrinsic_width (one) == gdk_paintable_get_intrinsic_width (two) &&
gdk_paintable_get_intrinsic_height (one) == gdk_paintable_get_intrinsic_height (two) &&
gdk_paintable_get_intrinsic_aspect_ratio (one) == gdk_paintable_get_intrinsic_aspect_ratio (two);
}
/**
* gtk_picture_set_paintable:
* @self: a `GtkPicture`
@@ -823,6 +837,8 @@ void
gtk_picture_set_paintable (GtkPicture *self,
GdkPaintable *paintable)
{
gboolean size_changed;
g_return_if_fail (GTK_IS_PICTURE (self));
g_return_if_fail (paintable == NULL || GDK_IS_PAINTABLE (paintable));
@@ -834,6 +850,8 @@ gtk_picture_set_paintable (GtkPicture *self,
if (paintable)
g_object_ref (paintable);
size_changed = !paintable_size_equal (self->paintable, paintable);
gtk_picture_clear_paintable (self);
self->paintable = paintable;
@@ -855,7 +873,8 @@ gtk_picture_set_paintable (GtkPicture *self,
self);
}
gtk_widget_queue_resize (GTK_WIDGET (self));
if (size_changed)
gtk_widget_queue_resize (GTK_WIDGET (self));
g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_PAINTABLE]);

View File

@@ -1844,19 +1844,30 @@ gtk_scrolled_window_measure (GtkWidget *widget,
* Now add to the requisition any additional space for surrounding scrollbars
* and the special scrollable border.
*/
if (policy_may_be_visible (priv->hscrollbar_policy))
if (orientation == GTK_ORIENTATION_HORIZONTAL && policy_may_be_visible (priv->hscrollbar_policy))
{
if (orientation == GTK_ORIENTATION_HORIZONTAL)
{
int min_scrollbar_width, nat_scrollbar_width;
int min_scrollbar_width, nat_scrollbar_width;
gtk_widget_measure (priv->hscrollbar, GTK_ORIENTATION_HORIZONTAL, -1,
&min_scrollbar_width, &nat_scrollbar_width,
NULL, NULL);
minimum_req = MAX (minimum_req, min_scrollbar_width + sborder.left + sborder.right);
natural_req = MAX (natural_req, nat_scrollbar_width + sborder.left + sborder.right);
}
else if (!priv->use_indicators && priv->hscrollbar_policy == GTK_POLICY_ALWAYS)
gtk_widget_measure (priv->hscrollbar, GTK_ORIENTATION_HORIZONTAL, -1,
&min_scrollbar_width, &nat_scrollbar_width,
NULL, NULL);
minimum_req = MAX (minimum_req, min_scrollbar_width + sborder.left + sborder.right);
natural_req = MAX (natural_req, nat_scrollbar_width + sborder.left + sborder.right);
}
else if (orientation == GTK_ORIENTATION_VERTICAL && policy_may_be_visible (priv->vscrollbar_policy))
{
int min_scrollbar_height, nat_scrollbar_height;
gtk_widget_measure (priv->vscrollbar, GTK_ORIENTATION_VERTICAL, -1,
&min_scrollbar_height, &nat_scrollbar_height,
NULL, NULL);
minimum_req = MAX (minimum_req, min_scrollbar_height + sborder.top + sborder.bottom);
natural_req = MAX (natural_req, nat_scrollbar_height + sborder.top + sborder.bottom);
}
if (!priv->use_indicators)
{
if (orientation == GTK_ORIENTATION_VERTICAL && priv->hscrollbar_policy == GTK_POLICY_ALWAYS)
{
int min_scrollbar_height, nat_scrollbar_height;
@@ -1867,21 +1878,7 @@ gtk_scrolled_window_measure (GtkWidget *widget,
minimum_req += min_scrollbar_height;
natural_req += nat_scrollbar_height;
}
}
if (policy_may_be_visible (priv->vscrollbar_policy))
{
if (orientation == GTK_ORIENTATION_VERTICAL)
{
int min_scrollbar_height, nat_scrollbar_height;
gtk_widget_measure (priv->vscrollbar, GTK_ORIENTATION_VERTICAL, -1,
&min_scrollbar_height, &nat_scrollbar_height,
NULL, NULL);
minimum_req = MAX (minimum_req, min_scrollbar_height + sborder.top + sborder.bottom);
natural_req = MAX (natural_req, nat_scrollbar_height + sborder.top + sborder.bottom);
}
else if (!priv->use_indicators && priv->vscrollbar_policy == GTK_POLICY_ALWAYS)
else if (orientation == GTK_ORIENTATION_HORIZONTAL && priv->vscrollbar_policy == GTK_POLICY_ALWAYS)
{
int min_scrollbar_width, nat_scrollbar_width;

View File

@@ -6342,7 +6342,7 @@ unprefix_handle (const char *handle)
if (g_str_has_prefix (handle, "wayland:"))
return handle + strlen ("wayland:");
else if (g_str_has_prefix (handle, "x11:"))
return handle + strlen ("x1!:");
return handle + strlen ("x11:");
else
return handle;
}
@@ -6381,6 +6381,9 @@ gtk_window_export_handle (GtkWindow *window,
GtkWindowPrivate *priv = gtk_window_get_instance_private (window);
ExportHandleData *data;
if (G_UNLIKELY (!priv->surface))
return FALSE;
data = g_new (ExportHandleData, 1);
data->window = window;
data->callback = callback;
@@ -6397,7 +6400,8 @@ gtk_window_unexport_handle (GtkWindow *window,
{
GtkWindowPrivate *priv = gtk_window_get_instance_private (window);
gdk_toplevel_unexport_handle (GDK_TOPLEVEL (priv->surface), unprefix_handle (handle));
if (G_LIKELY (priv->surface))
gdk_toplevel_unexport_handle (GDK_TOPLEVEL (priv->surface), unprefix_handle (handle));
}
static GtkPointerFocus *

View File

@@ -36,7 +36,7 @@ struct _GtkGstPaintable
double pixel_aspect_ratio;
graphene_rect_t viewport;
GdkGLContext *context;
GdkSurface *surface;
};
struct _GtkGstPaintableClass
@@ -133,42 +133,66 @@ gtk_gst_paintable_video_renderer_create_video_sink (GstPlayerVideoRenderer *rend
{
GtkGstPaintable *self = GTK_GST_PAINTABLE (renderer);
GstElement *sink;
GdkGLContext *ctx;
gboolean uses_gl;
GdkDisplay *display;
GdkGLContext *context;
GError *error = NULL;
if (self->surface)
display = gdk_surface_get_display (self->surface);
else
display = gdk_display_get_default ();
context = gdk_display_create_gl_context (display, &error);
if (context == NULL)
{
GST_INFO ("failed to create GDK GL context: %s", error->message);
g_error_free (error);
}
else if (!gdk_gl_context_realize (context, &error))
{
GST_INFO ("failed to realize GDK GL context: %s", error->message);
g_clear_object (&context);
g_error_free (error);
}
sink = g_object_new (GTK_TYPE_GST_SINK,
"paintable", self,
"gl-context", self->context,
"gl-context", context,
"display", display,
NULL);
if (self->context != NULL)
g_object_get (GTK_GST_SINK (sink), "gl-context", &ctx, NULL);
g_object_get (GTK_GST_SINK (sink), "uses-gl", &uses_gl, NULL);
if (self->context != NULL && ctx != NULL)
if (uses_gl)
{
GstElement *glsinkbin = gst_element_factory_make ("glsinkbin", NULL);
GstElement *glsinkbin;
if (!glsinkbin)
return NULL;
glsinkbin = gst_element_factory_make ("glsinkbin", NULL);
g_object_set (glsinkbin, "sink", sink, NULL);
g_object_unref (ctx);
return glsinkbin;
if (glsinkbin)
{
g_object_set (glsinkbin, "sink", sink, NULL);
sink = glsinkbin;
}
}
else
{
if (self->context != NULL)
if (context != NULL)
{
g_warning ("GstGL context creation failed, falling back to non-GL playback");
g_object_unref (sink);
sink = g_object_new (GTK_TYPE_GST_SINK,
"paintable", self,
"display", display,
NULL);
}
return sink;
}
g_clear_object (&context);
return sink;
}
static void
@@ -216,26 +240,10 @@ void
gtk_gst_paintable_realize (GtkGstPaintable *self,
GdkSurface *surface)
{
GError *error = NULL;
if (self->context)
if (self->surface)
return;
self->context = gdk_surface_create_gl_context (surface, &error);
if (self->context == NULL)
{
GST_INFO ("failed to create GDK GL context: %s", error->message);
g_error_free (error);
return;
}
if (!gdk_gl_context_realize (self->context, &error))
{
GST_INFO ("failed to realize GDK GL context: %s", error->message);
g_clear_object (&self->context);
g_error_free (error);
return;
}
self->surface = surface;
}
void
@@ -246,11 +254,9 @@ gtk_gst_paintable_unrealize (GtkGstPaintable *self,
* - track how often we were realized with that surface
* - track alternate surfaces
*/
if (self->context == NULL)
return;
if (gdk_gl_context_get_surface (self->context) == surface)
g_clear_object (&self->context);
if (self->surface == surface)
self->surface = NULL;
}
static void

View File

@@ -59,6 +59,8 @@ enum {
PROP_0,
PROP_PAINTABLE,
PROP_GL_CONTEXT,
PROP_USES_GL,
PROP_DISPLAY,
N_PROPS,
};
@@ -68,20 +70,25 @@ GST_DEBUG_CATEGORY (gtk_debug_gst_sink);
#define FORMATS "{ BGRA, ARGB, RGBA, ABGR, RGB, BGR }"
#define NOGL_CAPS GST_VIDEO_CAPS_MAKE (FORMATS)
#define MEMORY_TEXTURE_CAPS GST_VIDEO_CAPS_MAKE (FORMATS)
#define GL_TEXTURE_CAPS \
"video/x-raw(" GST_CAPS_FEATURE_MEMORY_GL_MEMORY "), " \
"format = (string) RGBA, " \
"width = " GST_VIDEO_SIZE_RANGE ", " \
"height = " GST_VIDEO_SIZE_RANGE ", " \
"framerate = " GST_VIDEO_FPS_RANGE ", " \
"texture-target = (string) 2D"
#define DMABUF_TEXTURE_CAPS GST_VIDEO_DMA_DRM_CAPS_MAKE
static GstStaticPadTemplate gtk_gst_sink_template =
GST_STATIC_PAD_TEMPLATE ("sink",
GST_PAD_SINK,
GST_PAD_ALWAYS,
GST_STATIC_CAPS (GST_VIDEO_DMA_DRM_CAPS_MAKE "; "
"video/x-raw(" GST_CAPS_FEATURE_MEMORY_GL_MEMORY "), "
"format = (string) RGBA, "
"width = " GST_VIDEO_SIZE_RANGE ", "
"height = " GST_VIDEO_SIZE_RANGE ", "
"framerate = " GST_VIDEO_FPS_RANGE ", "
"texture-target = (string) 2D"
"; " NOGL_CAPS)
GST_STATIC_CAPS(DMABUF_TEXTURE_CAPS "; "
GL_TEXTURE_CAPS "; "
MEMORY_TEXTURE_CAPS)
);
#undef GST_VIDEO_DMA_DRM_CAPS_MAKE_STR
@@ -204,34 +211,43 @@ gtk_gst_sink_get_caps (GstBaseSink *bsink,
GstCaps *filter)
{
GtkGstSink *self = GTK_GST_SINK (bsink);
GstCaps *tmp;
GstCaps *result;
GstCaps *unfiltered, *tmp, *result;
if (self->gst_context)
{
GdkDisplay *display = gdk_gl_context_get_display (self->gdk_context);
GdkDmabufFormats *formats = gdk_display_get_dmabuf_formats (display);
unfiltered = gst_caps_new_empty ();
tmp = gst_pad_get_pad_template_caps (GST_BASE_SINK_PAD (bsink));
tmp = gst_caps_make_writable (tmp);
add_drm_formats_and_modifiers (tmp, formats);
}
else
if (self->gdk_display)
{
tmp = gst_caps_from_string (NOGL_CAPS);
GdkDmabufFormats *formats = gdk_display_get_dmabuf_formats (self->gdk_display);
if (formats)
{
tmp = gst_caps_from_string (DMABUF_TEXTURE_CAPS);
add_drm_formats_and_modifiers (tmp, formats);
gst_caps_append (unfiltered, tmp);
}
}
GST_DEBUG_OBJECT (self, "advertising own caps %" GST_PTR_FORMAT, tmp);
if (self->gdk_context)
{
tmp = gst_caps_from_string (GL_TEXTURE_CAPS);
gst_caps_append (unfiltered, tmp);
}
tmp = gst_caps_from_string (MEMORY_TEXTURE_CAPS);
gst_caps_append (unfiltered, tmp);
GST_DEBUG_OBJECT (self, "advertising own caps %" GST_PTR_FORMAT, unfiltered);
if (filter)
{
GST_DEBUG_OBJECT (self, "intersecting with filter caps %" GST_PTR_FORMAT, filter);
result = gst_caps_intersect_full (filter, tmp, GST_CAPS_INTERSECT_FIRST);
gst_caps_unref (tmp);
result = gst_caps_intersect_full (filter, unfiltered, GST_CAPS_INTERSECT_FIRST);
gst_caps_unref (unfiltered);
}
else
{
result = tmp;
result = unfiltered;
}
GST_DEBUG_OBJECT (self, "returning caps: %" GST_PTR_FORMAT, result);
@@ -299,9 +315,6 @@ gtk_gst_sink_propose_allocation (GstBaseSink *bsink,
gboolean need_pool;
GstVideoInfo info;
if (!self->gst_context)
return FALSE;
gst_query_parse_allocation (query, &caps, &need_pool);
if (caps == NULL)
@@ -316,47 +329,49 @@ gtk_gst_sink_propose_allocation (GstBaseSink *bsink,
return TRUE;
}
if (!gst_caps_features_contains (gst_caps_get_features (caps, 0), GST_CAPS_FEATURE_MEMORY_GL_MEMORY))
return FALSE;
if (!gst_video_info_from_caps (&info, caps))
if (gst_caps_features_contains (gst_caps_get_features (caps, 0), GST_CAPS_FEATURE_MEMORY_GL_MEMORY))
{
GST_DEBUG_OBJECT (self, "invalid caps specified");
return FALSE;
}
/* the normal size of a frame */
size = info.size;
if (need_pool)
{
GST_DEBUG_OBJECT (self, "create new pool");
pool = gst_gl_buffer_pool_new (self->gst_context);
config = gst_buffer_pool_get_config (pool);
gst_buffer_pool_config_set_params (config, caps, size, 0, 0);
gst_buffer_pool_config_add_option (config, GST_BUFFER_POOL_OPTION_GL_SYNC_META);
if (!gst_buffer_pool_set_config (pool, config))
if (!gst_video_info_from_caps (&info, caps))
{
GST_DEBUG_OBJECT (bsink, "failed setting config");
gst_object_unref (pool);
GST_DEBUG_OBJECT (self, "invalid caps specified");
return FALSE;
}
/* the normal size of a frame */
size = info.size;
if (need_pool)
{
GST_DEBUG_OBJECT (self, "create new pool");
pool = gst_gl_buffer_pool_new (self->gst_context);
config = gst_buffer_pool_get_config (pool);
gst_buffer_pool_config_set_params (config, caps, size, 0, 0);
gst_buffer_pool_config_add_option (config, GST_BUFFER_POOL_OPTION_GL_SYNC_META);
if (!gst_buffer_pool_set_config (pool, config))
{
GST_DEBUG_OBJECT (bsink, "failed setting config");
gst_object_unref (pool);
return FALSE;
}
}
/* we need at least 2 buffer because we hold on to the last one */
gst_query_add_allocation_pool (query, pool, size, 2, 0);
if (pool)
gst_object_unref (pool);
/* we also support various metadata */
gst_query_add_allocation_meta (query, GST_VIDEO_META_API_TYPE, 0);
if (self->gst_context->gl_vtable->FenceSync)
gst_query_add_allocation_meta (query, GST_GL_SYNC_META_API_TYPE, 0);
return TRUE;
}
/* we need at least 2 buffer because we hold on to the last one */
gst_query_add_allocation_pool (query, pool, size, 2, 0);
if (pool)
gst_object_unref (pool);
/* we also support various metadata */
gst_query_add_allocation_meta (query, GST_VIDEO_META_API_TYPE, 0);
if (self->gst_context->gl_vtable->FenceSync)
gst_query_add_allocation_meta (query, GST_GL_SYNC_META_API_TYPE, 0);
return TRUE;
return FALSE;
}
static GdkMemoryFormat
@@ -418,11 +433,10 @@ gtk_gst_sink_texture_from_buffer (GtkGstSink *self,
g_clear_pointer (&frame, g_free);
g_return_val_if_fail (vmeta, NULL);
g_return_val_if_fail (self->gdk_context, NULL);
g_return_val_if_fail (self->drm_info.drm_fourcc != DRM_FORMAT_INVALID, NULL);
builder = gdk_dmabuf_texture_builder_new ();
gdk_dmabuf_texture_builder_set_display (builder, gdk_gl_context_get_display (self->gdk_context));
gdk_dmabuf_texture_builder_set_display (builder, self->gdk_display);
gdk_dmabuf_texture_builder_set_fourcc (builder, self->drm_info.drm_fourcc);
gdk_dmabuf_texture_builder_set_modifier (builder, self->drm_info.drm_modifier);
gdk_dmabuf_texture_builder_set_width (builder, vmeta->width);
@@ -764,6 +778,11 @@ gtk_gst_sink_set_property (GObject *object,
self->gdk_context = g_value_dup_object (value);
if (self->gdk_context != NULL && !gtk_gst_sink_initialize_gl (self))
g_clear_object (&self->gdk_context);
self->uses_gl = self->gdk_context != NULL;
break;
case PROP_DISPLAY:
self->gdk_display = g_value_dup_object (value);
break;
default:
@@ -785,10 +804,19 @@ gtk_gst_sink_get_property (GObject *object,
case PROP_PAINTABLE:
g_value_set_object (value, self->paintable);
break;
case PROP_GL_CONTEXT:
g_value_set_object (value, self->gdk_context);
break;
case PROP_DISPLAY:
g_value_set_object (value, self->gdk_display);
break;
case PROP_USES_GL:
g_value_set_boolean (value, self->uses_gl);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
@@ -805,6 +833,7 @@ gtk_gst_sink_dispose (GObject *object)
g_clear_object (&self->gst_gdk_context);
g_clear_object (&self->gst_display);
g_clear_object (&self->gdk_context);
g_clear_object (&self->gdk_display);
G_OBJECT_CLASS (gtk_gst_sink_parent_class)->dispose (object);
}
@@ -849,6 +878,16 @@ gtk_gst_sink_class_init (GtkGstSinkClass * klass)
GDK_TYPE_GL_CONTEXT,
G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
properties[PROP_DISPLAY] =
g_param_spec_object ("display", NULL, NULL,
GDK_TYPE_DISPLAY,
G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
properties[PROP_USES_GL] =
g_param_spec_boolean ("uses-gl", NULL, NULL,
TRUE,
G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
g_object_class_install_properties (gobject_class, N_PROPS, properties);
gst_element_class_set_metadata (gstelement_class,

View File

@@ -49,12 +49,14 @@ struct _GtkGstSink
GstVideoInfo v_info;
GstVideoInfoDmaDrm drm_info;
GtkGstPaintable * paintable;
GdkGLContext * gdk_context;
GstGLDisplay * gst_display;
GstGLContext * gst_gdk_context;
GstGLContext * gst_context;
GdkColorState * color_state;
GtkGstPaintable *paintable;
GdkDisplay *gdk_display;
GdkGLContext *gdk_context;
GstGLDisplay *gst_display;
GstGLContext *gst_gdk_context;
GstGLContext *gst_context;
GdkColorState *color_state;
gboolean uses_gl;
};
struct _GtkGstSinkClass

287
po/gl.po
View File

@@ -20,8 +20,8 @@ msgid ""
msgstr ""
"Project-Id-Version: gtk+-master-po-gl-77922___.merged\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gtk/-/issues/\n"
"POT-Creation-Date: 2024-09-04 06:11+0000\n"
"PO-Revision-Date: 2024-09-04 08:33+0200\n"
"POT-Creation-Date: 2024-09-28 10:01+0000\n"
"PO-Revision-Date: 2024-09-28 23:49+0200\n"
"Last-Translator: Fran Dieguez <fran.dieguez@gnome.org>\n"
"Language-Team: Galician <proxecto@trasno.gal>\n"
"Language: gl\n"
@@ -34,7 +34,7 @@ msgstr ""
"X-DL-Module: gtk\n"
"X-DL-State: None\n"
"X-DL-Team: gl\n"
"X-Generator: Poedit 3.5\n"
"X-Generator: Poedit 3.4.4\n"
"X-Project-Style: gnome\n"
#: gdk/broadway/gdkbroadway-server.c:135
@@ -89,54 +89,54 @@ msgstr "Non foi posíbel fornecer contidos como %s"
msgid "The current backend does not support OpenGL"
msgstr "O backend actual non admite o OpenGL"
#: gdk/gdkdisplay.c:1315 gdk/gdkvulkancontext.c:1633
#: gdk/gdkdisplay.c:1317 gdk/gdkvulkancontext.c:1668
msgid "Vulkan support disabled via GDK_DISABLE"
msgstr "Compatibilidade de Vulkan desactivada mediante GDK_DISABLE"
#: gdk/gdkdisplay.c:1369
#: gdk/gdkdisplay.c:1371
msgid "OpenGL support disabled via GDK_DISABLE"
msgstr "Compatibilidade de GL desactivada mediante GDK_DISABLE"
#: gdk/gdkdisplay.c:1683
#: gdk/gdkdisplay.c:1685
msgid "No EGL configuration available"
msgstr "Non hai unha configuración de EGL dispoñíbel"
#: gdk/gdkdisplay.c:1691
#: gdk/gdkdisplay.c:1693
msgid "Failed to get EGL configurations"
msgstr "Produciuse un fallo ao obter as configuracións de EGL"
#: gdk/gdkdisplay.c:1721
#: gdk/gdkdisplay.c:1723
msgid "No EGL configuration with required features found"
msgstr "Non se atoparon configuracións de EGL coas características requiridas"
#: gdk/gdkdisplay.c:1728
#: gdk/gdkdisplay.c:1730
msgid "No perfect EGL configuration found"
msgstr "Non se atopou a configuración de EGL perfecta"
#: gdk/gdkdisplay.c:1770
#: gdk/gdkdisplay.c:1772
#, c-format
msgid "EGL implementation is missing extension %s"
msgid_plural "EGL implementation is missing %2$d extensions: %1$s"
msgstr[0] "Á implementación de EGL fáltalle a extensión %s"
msgstr[1] "Á implementación de EGL fáltanlle %2$d extensións: %1$s"
#: gdk/gdkdisplay.c:1819
#: gdk/gdkdisplay.c:1821
msgid "libEGL not available in this sandbox"
msgstr "libEGL non está dispoñíbel neste sandbox"
#: gdk/gdkdisplay.c:1820
#: gdk/gdkdisplay.c:1822
msgid "libEGL not available"
msgstr "libEGL non dispoñíbel"
#: gdk/gdkdisplay.c:1830
#: gdk/gdkdisplay.c:1832
msgid "Failed to create EGL display"
msgstr "Non é posíbel crear unha pantalla de EGL"
#: gdk/gdkdisplay.c:1839
#: gdk/gdkdisplay.c:1841
msgid "Could not initialize EGL display"
msgstr "Non foi posíbel inicializar a pantalla de EGL"
#: gdk/gdkdisplay.c:1849
#: gdk/gdkdisplay.c:1851
#, c-format
msgid "EGL version %d.%d is too old. GTK requires %d.%d"
msgstr "A versión de EGL %d.%d é demasiado antiga. GTK require %d.%d"
@@ -153,9 +153,9 @@ msgstr "Formatos non compatíbeis para transferir contidos."
msgid "No GL API allowed."
msgstr "Non se permite a API GL."
#: gdk/gdkglcontext.c:455 gdk/win32/gdkglcontext-win32-wgl.c:694
#: gdk/win32/gdkglcontext-win32-wgl.c:837
#: gdk/win32/gdkglcontext-win32-wgl.c:881 gdk/x11/gdkglcontext-glx.c:697
#: gdk/gdkglcontext.c:455 gdk/win32/gdkglcontext-win32-wgl.c:723
#: gdk/win32/gdkglcontext-win32-wgl.c:866
#: gdk/win32/gdkglcontext-win32-wgl.c:910 gdk/x11/gdkglcontext-glx.c:697
msgid "Unable to create a GL context"
msgstr "Non é posíbel crear un contexto GL"
@@ -185,7 +185,7 @@ msgstr "Tentando usar %s, pero %s xa está en uso"
msgid "Trying to use %s, but it is disabled via GDK_DISABLE"
msgstr "Tentando usar %s, pero está desactivado mediante GDK_DISABLE"
#: gdk/gdktexture.c:661
#: gdk/gdktexture.c:672
msgid "Unknown image format."
msgstr "O formato de imaxe é descoñecido."
@@ -614,8 +614,8 @@ msgstr "Non foi posíbel cargar os datos TIFF"
msgid "Reading data failed at row %d"
msgstr "Fallou a lectura o dato na fila %d"
#: gdk/macos/gdkmacospasteboard.c:211 gdk/wayland/gdkclipboard-wayland.c:238
#: gdk/wayland/gdkdrop-wayland.c:205 gdk/wayland/gdkprimary-wayland.c:337
#: gdk/macos/gdkmacospasteboard.c:211 gdk/wayland/gdkclipboard-wayland.c:244
#: gdk/wayland/gdkdrop-wayland.c:205 gdk/wayland/gdkprimary-wayland.c:343
#: gdk/win32/gdkdrop-win32.c:1018 gdk/win32/gdkdrop-win32.c:1067
#: gdk/x11/gdkclipboard-x11.c:799 gdk/x11/gdkdrop-x11.c:235
msgid "No compatible transfer format found"
@@ -772,22 +772,22 @@ msgid "Failed to transmute DnD data W32 format 0x%x to %p (%s)"
msgstr ""
"Produciuse un fallo ao transmutar os datos DnD W32 ao formato 0x%x to %p (%s)"
#: gdk/win32/gdkglcontext-win32-wgl.c:624
#: gdk/win32/gdkglcontext-win32-wgl.c:645
msgid "No GL implementation is available"
msgstr "Non hai unha implementación de GL dispoñíbel"
#: gdk/win32/gdkglcontext-win32-wgl.c:703
#: gdk/win32/gdkglcontext-win32-wgl.c:732
#, c-format
msgid "WGL version %d.%d is too low, need at least %d.%d"
msgstr ""
"A versión de WGL %d.%d é demasiado antiga, requírese cando menos a %d.%d"
#: gdk/win32/gdkglcontext-win32-wgl.c:721
#: gdk/win32/gdkglcontext-win32-wgl.c:750
#, c-format
msgid "GL implementation cannot share GL contexts"
msgstr "A implementación de GL non pode compartir os contextos de GL"
#: gdk/win32/gdkglcontext-win32-wgl.c:1001
#: gdk/win32/gdkglcontext-win32-wgl.c:1030
msgid "No available configurations for the given pixel format"
msgstr "Non hai configuracións dispoñíbeis para o formato de píxel fornecido"
@@ -903,7 +903,7 @@ msgstr ""
msgid "OpenGL ES 3.0 is not supported by this renderer."
msgstr "OpenGL ES 2.0 non está admitido por este renderizador."
#: gsk/gpu/gsknglrenderer.c:68
#: gsk/gpu/gsknglrenderer.c:69
msgid "OpenGL 3.3 required"
msgstr "Requírese OpenGL 3.3"
@@ -1874,7 +1874,7 @@ msgstr "O texto non debe aparecer dentro de <%s>"
#. * 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:666
#: gtk/gtkcalendar.c:670
msgid "calendar:week_start:0"
msgstr "calendar:week_start:1"
@@ -1888,21 +1888,10 @@ msgstr "calendar:week_start:1"
#. * text direction of RTL and specify "calendar:YM", then the year
#. * will appear to the right of the month.
#.
#: gtk/gtkcalendar.c:817
#: gtk/gtkcalendar.c:821
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:1002
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...).
#. *
@@ -1913,12 +1902,23 @@ msgstr "%Y"
#. * digits. That needs support from your system and locale definition
#. * too.
#.
#: gtk/gtkcalendar.c:1039
#: gtk/gtkcalendar.c:1002
#, c-format
msgctxt "calendar:day:digits"
msgid "%d"
msgstr "%d"
#. 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:1106
msgctxt "calendar year format"
msgid "%Y"
msgstr "%Y"
#. Translators: this defines whether the week numbers should use
#. * localized digits or the ones used in English (0123...).
#. *
@@ -1927,7 +1927,7 @@ msgstr "%d"
#. * 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:1104
#: gtk/gtkcalendar.c:1152
#, c-format
msgctxt "calendar:week:digits"
msgid "%d"
@@ -2196,7 +2196,7 @@ msgid "Margins from Printer…"
msgstr "Marxes da impresora…"
#. And show the custom paper dialog
#: gtk/print/gtkcustompaperunixdialog.c:377 gtk/print/gtkprintunixdialog.c:2970
#: gtk/print/gtkcustompaperunixdialog.c:377 gtk/print/gtkprintunixdialog.c:2975
msgid "Manage Custom Sizes"
msgstr "Xestionar tamaños personalizados"
@@ -2312,7 +2312,7 @@ msgid "A file with that name already exists"
msgstr "Xa existe un ficheiro con ese nome"
#: gtk/gtkfilechoosernative.c:520 gtk/gtkfilechoosernative.c:600
#: gtk/gtkfilechooserwidget.c:1213 gtk/gtkfilechooserwidget.c:5014
#: gtk/gtkfilechooserwidget.c:1213 gtk/gtkfilechooserwidget.c:5017
#: gtk/gtkfiledialog.c:840 gtk/gtkmessagedialog.c:170
#: gtk/gtkmessagedialog.c:179 gtk/gtkmountoperation.c:608
#: gtk/print/gtkpagesetupunixdialog.c:282 gtk/print/gtkprintbackend.c:638
@@ -2408,7 +2408,7 @@ msgid "If you delete an item, it will be permanently lost."
msgstr "Se elimina un elemento perderase para sempre."
#: gtk/gtkfilechooserwidget.c:1213 gtk/gtkfilechooserwidget.c:1815
#: gtk/gtklabel.c:5883 gtk/gtktext.c:6334 gtk/gtktextview.c:9237
#: gtk/gtklabel.c:5881 gtk/gtktext.c:6334 gtk/gtktextview.c:9237
msgid "_Delete"
msgstr "E_liminar"
@@ -2471,7 +2471,7 @@ msgid "Home"
msgstr "Cartafol persoal"
#. this is the header for the location column in the print dialog
#: gtk/gtkfilechooserwidget.c:2195 gtk/gtkfilechooserwidget.c:7436
#: gtk/gtkfilechooserwidget.c:2195 gtk/gtkfilechooserwidget.c:7439
#: gtk/inspector/css-node-tree.ui:76 gtk/print/ui/gtkprintunixdialog.ui:111
msgid "Location"
msgstr "Localización"
@@ -2494,8 +2494,8 @@ msgstr "Buscando"
msgid "Enter location or URL"
msgstr "Escriba a localización ou URL"
#: gtk/gtkfilechooserwidget.c:3444 gtk/gtkfilechooserwidget.c:5801
#: gtk/gtkfilechooserwidget.c:7458
#: gtk/gtkfilechooserwidget.c:3444 gtk/gtkfilechooserwidget.c:5804
#: gtk/gtkfilechooserwidget.c:7461
msgid "Modified"
msgstr "Modificado"
@@ -2578,59 +2578,59 @@ msgstr "Orientación"
msgid "Spreadsheet"
msgstr "Folla de cálculo"
#: gtk/gtkfilechooserwidget.c:5006 gtk/print/gtkprintunixdialog.c:673
#: gtk/gtkfilechooserwidget.c:5009 gtk/print/gtkprintunixdialog.c:673
#, c-format
msgid "A file named “%s” already exists. Do you want to replace it?"
msgstr "Xa existe un ficheiro co nome «%s». Desexa substituílo?"
#: gtk/gtkfilechooserwidget.c:5008 gtk/print/gtkprintunixdialog.c:677
#: gtk/gtkfilechooserwidget.c:5011 gtk/print/gtkprintunixdialog.c:677
#, c-format
msgid ""
"The file already exists in “%s”. Replacing it will overwrite its contents."
msgstr ""
"O ficheiro xa existe en «%s». Ao substituílo sobrescribirá os seus contidos."
#: gtk/gtkfilechooserwidget.c:5014 gtk/print/gtkprintunixdialog.c:685
#: gtk/gtkfilechooserwidget.c:5017 gtk/print/gtkprintunixdialog.c:685
msgid "_Replace"
msgstr "_Substituír"
#: gtk/gtkfilechooserwidget.c:5169
#: gtk/gtkfilechooserwidget.c:5172
msgid "You do not have access to the specified folder."
msgstr "Vostede non ten acceso para o cartafol especificado."
#: gtk/gtkfilechooserwidget.c:5748
#: gtk/gtkfilechooserwidget.c:5751
msgid "Could not send the search request"
msgstr "Non foi posíbel enviar a solicitude de busca"
#: gtk/gtkfilechooserwidget.c:6029
#: gtk/gtkfilechooserwidget.c:6032
msgid "Accessed"
msgstr "Accedido"
#: gtk/gtkfilechooserwidget.c:7414
#: gtk/gtkfilechooserwidget.c:7417
msgid "_Size"
msgstr "_Tamaño"
#: gtk/gtkfilechooserwidget.c:7418
#: gtk/gtkfilechooserwidget.c:7421
msgid "T_ype"
msgstr "_Tipo"
#: gtk/gtkfilechooserwidget.c:7422
#: gtk/gtkfilechooserwidget.c:7425
msgid "_Time"
msgstr "_Hora"
#: gtk/gtkfilechooserwidget.c:7428 gtk/gtkplacessidebar.c:2306
#: gtk/gtkfilechooserwidget.c:7431 gtk/gtkplacessidebar.c:2306
#: gtk/inspector/a11y.ui:43 gtk/inspector/actions.ui:18
#: gtk/inspector/css-node-tree.ui:22 gtk/inspector/prop-list.ui:24
#: gtk/ui/gtkfilechooserwidget.ui:396 gtk/print/ui/gtkprintunixdialog.ui:80
msgid "Name"
msgstr "Nome"
#: gtk/gtkfilechooserwidget.c:7445 gtk/inspector/resource-list.ui:82
#: gtk/gtkfilechooserwidget.c:7448 gtk/inspector/resource-list.ui:82
#: gtk/ui/gtkfontchooserwidget.ui:218 gtk/ui/gtkfontchooserwidget.ui:387
msgid "Size"
msgstr "Tamaño"
#: gtk/gtkfilechooserwidget.c:7451 gtk/inspector/misc-info.ui:57
#: gtk/gtkfilechooserwidget.c:7454 gtk/inspector/misc-info.ui:57
#: gtk/inspector/prop-list.ui:35 gtk/inspector/statistics.ui:36
msgid "Type"
msgstr "Tipo"
@@ -2748,31 +2748,31 @@ msgstr "Pechar"
msgid "Close the infobar"
msgstr "Pecha a barra de información"
#: gtk/gtklabel.c:5880 gtk/gtktext.c:6322 gtk/gtktextview.c:9225
#: gtk/gtklabel.c:5878 gtk/gtktext.c:6322 gtk/gtktextview.c:9225
msgid "Cu_t"
msgstr "Cor_tar"
#: gtk/gtklabel.c:5881 gtk/gtktext.c:6326 gtk/gtktextview.c:9229
#: gtk/gtklabel.c:5879 gtk/gtktext.c:6326 gtk/gtktextview.c:9229
msgid "_Copy"
msgstr "_Copiar"
#: gtk/gtklabel.c:5882 gtk/gtktext.c:6330 gtk/gtktextview.c:9233
#: gtk/gtklabel.c:5880 gtk/gtktext.c:6330 gtk/gtktextview.c:9233
msgid "_Paste"
msgstr "_Pegar"
#: gtk/gtklabel.c:5888 gtk/gtktext.c:6343 gtk/gtktextview.c:9258
#: gtk/gtklabel.c:5886 gtk/gtktext.c:6343 gtk/gtktextview.c:9258
msgid "Select _All"
msgstr "Seleccionar _todo"
#: gtk/gtklabel.c:5893
#: gtk/gtklabel.c:5891
msgid "_Open Link"
msgstr "_Abrir ligazón"
#: gtk/gtklabel.c:5897
#: gtk/gtklabel.c:5895
msgid "Copy _Link Address"
msgstr "Copiar enderezo da _ligazón"
#: gtk/gtklabel.c:5941 gtk/gtktext.c:2851 gtk/gtktextview.c:9307
#: gtk/gtklabel.c:5939 gtk/gtktext.c:2851 gtk/gtktextview.c:9307
msgid "Context menu"
msgstr "Menú contextual"
@@ -3366,90 +3366,90 @@ msgstr "Non dispoñíbel"
#. * jobs. %s gets replaced by the application name, %d gets replaced
#. * by the job number.
#.
#: gtk/print/gtkprintoperation.c:252
#: gtk/print/gtkprintoperation.c:255
#, c-format
msgid "%s job #%d"
msgstr "%s traballo #%d"
#: gtk/print/gtkprintoperation.c:1699
#: gtk/print/gtkprintoperation.c:1702
msgctxt "print operation status"
msgid "Initial state"
msgstr "Estado inicial"
#: gtk/print/gtkprintoperation.c:1700
#: gtk/print/gtkprintoperation.c:1703
msgctxt "print operation status"
msgid "Preparing to print"
msgstr "Preparándose para imprimir"
#: gtk/print/gtkprintoperation.c:1701
#: gtk/print/gtkprintoperation.c:1704
msgctxt "print operation status"
msgid "Generating data"
msgstr "Xerando datos"
#: gtk/print/gtkprintoperation.c:1702
#: gtk/print/gtkprintoperation.c:1705
msgctxt "print operation status"
msgid "Sending data"
msgstr "Enviando datos"
#: gtk/print/gtkprintoperation.c:1703
#: gtk/print/gtkprintoperation.c:1706
msgctxt "print operation status"
msgid "Waiting"
msgstr "Agardando"
#: gtk/print/gtkprintoperation.c:1704
#: gtk/print/gtkprintoperation.c:1707
msgctxt "print operation status"
msgid "Blocking on issue"
msgstr "Bloqueada por un problema"
#: gtk/print/gtkprintoperation.c:1705
#: gtk/print/gtkprintoperation.c:1708
msgctxt "print operation status"
msgid "Printing"
msgstr "Imprimindo"
#: gtk/print/gtkprintoperation.c:1706
#: gtk/print/gtkprintoperation.c:1709
msgctxt "print operation status"
msgid "Finished"
msgstr "Finalizado"
#: gtk/print/gtkprintoperation.c:1707
#: gtk/print/gtkprintoperation.c:1710
msgctxt "print operation status"
msgid "Finished with error"
msgstr "Finalizado con erros"
#: gtk/print/gtkprintoperation.c:2250
#: gtk/print/gtkprintoperation.c:2254
#, c-format
msgid "Preparing %d"
msgstr "Preparando %d"
#: gtk/print/gtkprintoperation.c:2252 gtk/print/gtkprintoperation.c:2871
#: gtk/print/gtkprintoperation.c:2256 gtk/print/gtkprintoperation.c:2875
#, c-format
msgid "Preparing"
msgstr "Preparando"
#: gtk/print/gtkprintoperation.c:2255
#: gtk/print/gtkprintoperation.c:2259
#, c-format
msgid "Printing %d"
msgstr "Imprimindo %d"
#: gtk/print/gtkprintoperation.c:2904
#: gtk/print/gtkprintoperation.c:2908
#, c-format
msgid "Error creating print preview"
msgstr "Produciuse un erro ao crear a vista previa da páxina"
#: gtk/print/gtkprintoperation.c:2907
#: gtk/print/gtkprintoperation.c:2911
#, c-format
msgid "The most probable reason is that a temporary file could not be created."
msgstr ""
"O motivo máis probábel é que non foi posíbel crear un ficheiro temporal."
#. window
#: gtk/print/gtkprintoperation-portal.c:264
#: gtk/print/gtkprintoperation-portal.c:594
#: gtk/print/gtkprintoperation-portal.c:663 gtk/print/gtkprintunixdialog.c:3010
#: gtk/print/gtkprintoperation-portal.c:273
#: gtk/print/gtkprintoperation-portal.c:603
#: gtk/print/gtkprintoperation-portal.c:672 gtk/print/gtkprintunixdialog.c:3015
msgid "Print"
msgstr "Imprimir"
#: gtk/print/gtkprintoperation-unix.c:481
#: gtk/print/gtkprintoperation-unix.c:490
#: gtk/print/gtkprintoperation-win32.c:1505
msgid "Application"
msgstr "Aplicación"
@@ -3520,11 +3520,11 @@ msgstr "_Vista previa"
msgid "_Print"
msgstr "_Imprimir"
#: gtk/print/gtkprintunixdialog.c:961
#: gtk/print/gtkprintunixdialog.c:966
msgid "Getting printer information failed"
msgstr "Produciuse un erro ao obter a información da impresora"
#: gtk/print/gtkprintunixdialog.c:1885
#: gtk/print/gtkprintunixdialog.c:1890
msgid "Getting printer information…"
msgstr "Obtendo información da impresora…"
@@ -3534,63 +3534,63 @@ msgstr "Obtendo información da impresora…"
#. Translators: These strings name the possible arrangements of
#. * multiple pages on a sheet when printing
#.
#: gtk/print/gtkprintunixdialog.c:2755
#: gtk/print/gtkprintunixdialog.c:2760
#: modules/printbackends/gtkprintbackendcups.c:5677
msgid "Left to right, top to bottom"
msgstr "De esquerda a dereita, de arriba a abaixo"
#: gtk/print/gtkprintunixdialog.c:2755
#: gtk/print/gtkprintunixdialog.c:2760
#: modules/printbackends/gtkprintbackendcups.c:5677
msgid "Left to right, bottom to top"
msgstr "De esquerda a dereita, de abaixo a arriba"
#: gtk/print/gtkprintunixdialog.c:2756
#: gtk/print/gtkprintunixdialog.c:2761
#: modules/printbackends/gtkprintbackendcups.c:5678
msgid "Right to left, top to bottom"
msgstr "De dereita a esquerda, de arriba a abaixo"
#: gtk/print/gtkprintunixdialog.c:2756
#: gtk/print/gtkprintunixdialog.c:2761
#: modules/printbackends/gtkprintbackendcups.c:5678
msgid "Right to left, bottom to top"
msgstr "De dereita a esquerda, de abaixo a arriba"
#: gtk/print/gtkprintunixdialog.c:2757
#: gtk/print/gtkprintunixdialog.c:2762
#: modules/printbackends/gtkprintbackendcups.c:5679
msgid "Top to bottom, left to right"
msgstr "De arriba a abaixo, de esquerda a dereita"
#: gtk/print/gtkprintunixdialog.c:2757
#: gtk/print/gtkprintunixdialog.c:2762
#: modules/printbackends/gtkprintbackendcups.c:5679
msgid "Top to bottom, right to left"
msgstr "De arriba a abaixo, de dereita a esquerda"
#: gtk/print/gtkprintunixdialog.c:2758
#: gtk/print/gtkprintunixdialog.c:2763
#: modules/printbackends/gtkprintbackendcups.c:5680
msgid "Bottom to top, left to right"
msgstr "De abaixo a arriba, de esquerda a dereita"
#: gtk/print/gtkprintunixdialog.c:2758
#: gtk/print/gtkprintunixdialog.c:2763
#: modules/printbackends/gtkprintbackendcups.c:5680
msgid "Bottom to top, right to left"
msgstr "De abaixo a arriba, de dereita a esquerda"
#: gtk/print/gtkprintunixdialog.c:2762 gtk/print/gtkprintunixdialog.c:2775
#: gtk/print/gtkprintunixdialog.c:2767 gtk/print/gtkprintunixdialog.c:2780
msgid "Page Ordering"
msgstr "Orde das follas"
#: gtk/print/gtkprintunixdialog.c:2791
#: gtk/print/gtkprintunixdialog.c:2796
msgid "Left to right"
msgstr "De esquerda a dereita"
#: gtk/print/gtkprintunixdialog.c:2792
#: gtk/print/gtkprintunixdialog.c:2797
msgid "Right to left"
msgstr "De dereita a esquerda"
#: gtk/print/gtkprintunixdialog.c:2804
#: gtk/print/gtkprintunixdialog.c:2809
msgid "Top to bottom"
msgstr "De arriba a abaixo"
#: gtk/print/gtkprintunixdialog.c:2805
#: gtk/print/gtkprintunixdialog.c:2810
msgid "Bottom to top"
msgstr "De abaixo a arriba"
@@ -3705,7 +3705,7 @@ msgstr "Non se atopou ningún resultado"
msgid "Try a different search"
msgstr "Tente unha busca diferente"
#: gtk/gtkstacksidebar.c:154
#: gtk/gtkstacksidebar.c:155
msgctxt "accessibility"
msgid "Sidebar"
msgstr "Barra lateral"
@@ -3822,17 +3822,17 @@ msgstr "Mostrar"
msgid "Hover to load"
msgstr "Pasar por enriba para cargar"
#: gtk/inspector/clipboard.c:278
#: gtk/inspector/clipboard.c:286
msgctxt "clipboard"
msgid "empty"
msgstr "baleiro"
#: gtk/inspector/clipboard.c:283 gtk/inspector/clipboard.c:325
#: gtk/inspector/clipboard.c:291 gtk/inspector/clipboard.c:344
msgctxt "clipboard"
msgid "local"
msgstr "local"
#: gtk/inspector/clipboard.c:285 gtk/inspector/clipboard.c:327
#: gtk/inspector/clipboard.c:293 gtk/inspector/clipboard.c:346
msgctxt "clipboard"
msgid "remote"
msgstr "remoto"
@@ -3926,32 +3926,32 @@ msgctxt "GL version"
msgid "None"
msgstr "Ningún"
#: gtk/inspector/general.c:465
#: gtk/inspector/general.c:464
msgctxt "GL version"
msgid "Unknown"
msgstr "Descoñecido"
#: gtk/inspector/general.c:527
#: gtk/inspector/general.c:526
msgctxt "Vulkan device"
msgid "Disabled"
msgstr "Desactivado"
#: gtk/inspector/general.c:528 gtk/inspector/general.c:529
#: gtk/inspector/general.c:527 gtk/inspector/general.c:528
msgctxt "Vulkan version"
msgid "Disabled"
msgstr "Desactivada"
#: gtk/inspector/general.c:580
#: gtk/inspector/general.c:579
msgctxt "Vulkan device"
msgid "None"
msgstr "Ningún"
#: gtk/inspector/general.c:581 gtk/inspector/general.c:582
#: gtk/inspector/general.c:580 gtk/inspector/general.c:581
msgctxt "Vulkan version"
msgid "None"
msgstr "Ningunha"
#: gtk/inspector/general.c:935
#: gtk/inspector/general.c:934
msgid "IM Context is hardcoded by GTK_IM_MODULE"
msgstr "O contexto de IM está incrustado á man por GTK_IM_MODULE"
@@ -7180,35 +7180,35 @@ msgctxt "printer option value"
msgid "Unavailable"
msgstr "Non dispoñíbel"
#: modules/printbackends/gtkprintbackendfile.c:238
#: modules/printbackends/gtkprintbackendfile.c:263
msgid "output"
msgstr "saída"
#: modules/printbackends/gtkprintbackendfile.c:510
#: modules/printbackends/gtkprintbackendfile.c:543
msgid "Print to File"
msgstr "Imprimir a un ficheiro"
#: modules/printbackends/gtkprintbackendfile.c:636
#: modules/printbackends/gtkprintbackendfile.c:675
msgid "PDF"
msgstr "PDF"
#: modules/printbackends/gtkprintbackendfile.c:636
#: modules/printbackends/gtkprintbackendfile.c:675
msgid "PostScript"
msgstr "PostScript"
#: modules/printbackends/gtkprintbackendfile.c:636
#: modules/printbackends/gtkprintbackendfile.c:675
msgid "SVG"
msgstr "SVG"
#: modules/printbackends/gtkprintbackendfile.c:649
#: modules/printbackends/gtkprintbackendfile.c:688
msgid "Pages per _sheet:"
msgstr "Pá_xinas por folla:"
#: modules/printbackends/gtkprintbackendfile.c:709
#: modules/printbackends/gtkprintbackendfile.c:758
msgid "File"
msgstr "Ficheiro"
#: modules/printbackends/gtkprintbackendfile.c:719
#: modules/printbackends/gtkprintbackendfile.c:768
msgid "_Output format"
msgstr "Formato de _saída"
@@ -7289,7 +7289,7 @@ msgstr ""
#: 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:360
#: tools/gtk-builder-tool-simplify.c:2529 tools/gtk-builder-tool-validate.c:261
#: tools/gtk-builder-tool-simplify.c:2623 tools/gtk-builder-tool-validate.c:261
#: tools/gtk-image-tool-compare.c:43 tools/gtk-image-tool-info.c:68
#: tools/gtk-path-tool-render.c:121 tools/gtk-rendernode-tool-compare.c:67
#: tools/gtk-rendernode-tool-extract.c:294 tools/gtk-rendernode-tool-info.c:226
@@ -7326,7 +7326,7 @@ msgstr "Usar o estilo dun ficheiro CSS"
#: tools/gtk-builder-tool-preview.c:187 tools/gtk-builder-tool-screenshot.c:370
#: tools/gtk-builder-tool-validate.c:268
#: tools/gtk-rendernode-tool-benchmark.c:106
#: tools/gtk-rendernode-tool-benchmark.c:108
#: tools/gtk-rendernode-tool-render.c:262 tools/gtk-rendernode-tool-show.c:123
#, c-format
msgid "Could not initialize windowing system\n"
@@ -7337,7 +7337,7 @@ msgid "Preview the file."
msgstr "Previsualizar o ficheiro."
#: tools/gtk-builder-tool-preview.c:208 tools/gtk-builder-tool-screenshot.c:391
#: tools/gtk-builder-tool-simplify.c:2552 tools/gtk-builder-tool-validate.c:287
#: tools/gtk-builder-tool-simplify.c:2646 tools/gtk-builder-tool-validate.c:287
#, c-format
msgid "No .ui file specified\n"
msgstr "Non se especificou ningún ficheiro .ui\n"
@@ -7397,7 +7397,7 @@ msgstr "Substituír o ficheiro existente"
#: tools/gtk-builder-tool-screenshot.c:363 tools/gtk-image-tool-compare.c:46
#: tools/gtk-image-tool-convert.c:89 tools/gtk-image-tool-relabel.c:86
#: tools/gtk-image-tool-show.c:119 tools/gtk-rendernode-tool-benchmark.c:97
#: tools/gtk-image-tool-show.c:119 tools/gtk-rendernode-tool-benchmark.c:99
#: tools/gtk-rendernode-tool-render.c:255
msgid "FILE…"
msgstr "FICHEIRO…"
@@ -7436,46 +7436,51 @@ msgstr "Non se atopou a propiedade da cela %s"
msgid "Layout property %s not found"
msgstr "Non se atopou a propiedade de disposición %s"
#: tools/gtk-builder-tool-simplify.c:1397
#: tools/gtk-builder-tool-simplify.c:1400
#, c-format
msgid "%s only accepts three children"
msgstr "%s só acepta tres fillos"
#: tools/gtk-builder-tool-simplify.c:2455
#: tools/gtk-builder-tool-simplify.c:1773
#, c-format
msgid "%s only accepts one center child"
msgstr "%s só acepta un fillo centrado"
#: tools/gtk-builder-tool-simplify.c:2549
#, c-format
msgid "Cant load “%s”: %s\n"
msgstr "Non foi posíbel cargar o ficheiro «%s»: %s\n"
#: tools/gtk-builder-tool-simplify.c:2466
#: tools/gtk-builder-tool-simplify.c:2472
#: tools/gtk-builder-tool-simplify.c:2478
#: tools/gtk-builder-tool-simplify.c:2560
#: tools/gtk-builder-tool-simplify.c:2566
#: tools/gtk-builder-tool-simplify.c:2572
#, c-format
msgid "Cant parse “%s”: %s\n"
msgstr "Non é posíbel analizar o ficheiro «%s»: %s\n"
#: tools/gtk-builder-tool-simplify.c:2504
#: tools/gtk-builder-tool-simplify.c:2598
#, c-format
msgid "Failed to read “%s”: %s\n"
msgstr "Produciuse un erro ao ler «%s» : %s\n"
#: tools/gtk-builder-tool-simplify.c:2510
#: tools/gtk-builder-tool-simplify.c:2604
#, c-format
msgid "Failed to write “%s”: “%s”\n"
msgstr "Produciuse un erro ao escribir «%s» : «%s»\n"
#: tools/gtk-builder-tool-simplify.c:2527
#: tools/gtk-builder-tool-simplify.c:2621
msgid "Replace the file"
msgstr "Substituír o ficheiro"
#: tools/gtk-builder-tool-simplify.c:2528
#: tools/gtk-builder-tool-simplify.c:2622
msgid "Convert from GTK 3 to GTK 4"
msgstr "Converter desde GTK 3 a GTK 4"
#: tools/gtk-builder-tool-simplify.c:2539
#: tools/gtk-builder-tool-simplify.c:2633
msgid "Simplify the file."
msgstr "Simplificar o ficheiro."
#: tools/gtk-builder-tool-simplify.c:2558
#: tools/gtk-builder-tool-simplify.c:2652
#, c-format
msgid "Can only simplify a single .ui file without --replace\n"
msgstr "Só pode simplificar un ficheiro .ui sen --replace\n"
@@ -8076,40 +8081,40 @@ msgstr ""
" render Sacar unha captura dun nodo\n"
"\n"
#: tools/gtk-rendernode-tool-benchmark.c:94
#: tools/gtk-rendernode-tool-benchmark.c:96
msgid "Add renderer to benchmark"
msgstr "Engadir renderizador á proba de rendemento"
#: tools/gtk-rendernode-tool-benchmark.c:94
#: tools/gtk-rendernode-tool-benchmark.c:96
#: tools/gtk-rendernode-tool-compare.c:65
#: tools/gtk-rendernode-tool-render.c:254
msgid "RENDERER"
msgstr "RENDERIZADOR"
#: tools/gtk-rendernode-tool-benchmark.c:95
#: tools/gtk-rendernode-tool-benchmark.c:97
msgid "Number of runs with each renderer"
msgstr "Número de execucións con cada renderizador"
#: tools/gtk-rendernode-tool-benchmark.c:95
#: tools/gtk-rendernode-tool-benchmark.c:97
msgid "RUNS"
msgstr "EXECUCIÓNS"
#: tools/gtk-rendernode-tool-benchmark.c:96
#: tools/gtk-rendernode-tool-benchmark.c:98
msgid "Dont download result/wait for GPU to finish"
msgstr "Non descargar os resultados/agardar que a GPU remate"
#: tools/gtk-rendernode-tool-benchmark.c:114
#: tools/gtk-rendernode-tool-benchmark.c:116
msgid "Benchmark rendering of a .node file."
msgstr "Probar o rendemento dun ficheiro .node."
#: tools/gtk-rendernode-tool-benchmark.c:127
#: tools/gtk-rendernode-tool-benchmark.c:129
#: tools/gtk-rendernode-tool-extract.c:316 tools/gtk-rendernode-tool-info.c:248
#: tools/gtk-rendernode-tool-render.c:283 tools/gtk-rendernode-tool-show.c:144
#, c-format
msgid "No .node file specified\n"
msgstr "Non se especificou ningún ficheiro .node\n"
#: tools/gtk-rendernode-tool-benchmark.c:133
#: tools/gtk-rendernode-tool-benchmark.c:135
#, c-format
msgid "Can only benchmark a single .node file\n"
msgstr "Só pode probar o rendemento dun único ficheiro .node\n"

View File

@@ -31,10 +31,10 @@ msgid ""
msgstr ""
"Project-Id-Version: GTK\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gtk/-/issues/\n"
"POT-Creation-Date: 2024-09-19 01:06+0000\n"
"POT-Creation-Date: 2024-09-28 21:50+0000\n"
"PO-Revision-Date: 2024-09-19 21:02-0300\n"
"Last-Translator: Juliano de Souza Camargo <julianosc@pm.me>\n"
"Language-Team: Brazilian Portuguese <https://br.gnome.org/traducao>>\n"
"Language-Team: Brazilian Portuguese <https://br.gnome.org/traducao>\n"
"Language: pt_BR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -628,8 +628,8 @@ msgstr "Não foi possível carregar dados TIFF"
msgid "Reading data failed at row %d"
msgstr "A leitura dos dados falhou na linha %d"
#: gdk/macos/gdkmacospasteboard.c:211 gdk/wayland/gdkclipboard-wayland.c:238
#: gdk/wayland/gdkdrop-wayland.c:205 gdk/wayland/gdkprimary-wayland.c:337
#: gdk/macos/gdkmacospasteboard.c:211 gdk/wayland/gdkclipboard-wayland.c:244
#: gdk/wayland/gdkdrop-wayland.c:205 gdk/wayland/gdkprimary-wayland.c:343
#: gdk/win32/gdkdrop-win32.c:1018 gdk/win32/gdkdrop-win32.c:1067
#: gdk/x11/gdkclipboard-x11.c:799 gdk/x11/gdkdrop-x11.c:235
msgid "No compatible transfer format found"
@@ -2429,7 +2429,7 @@ msgid "If you delete an item, it will be permanently lost."
msgstr "Se você excluir um item, ele será permanentemente perdido."
#: gtk/gtkfilechooserwidget.c:1213 gtk/gtkfilechooserwidget.c:1815
#: gtk/gtklabel.c:5883 gtk/gtktext.c:6334 gtk/gtktextview.c:9237
#: gtk/gtklabel.c:5881 gtk/gtktext.c:6334 gtk/gtktextview.c:9237
msgid "_Delete"
msgstr "E_xcluir"
@@ -2773,31 +2773,31 @@ msgstr "Fechar"
msgid "Close the infobar"
msgstr "Fecha a barra de informações"
#: gtk/gtklabel.c:5880 gtk/gtktext.c:6322 gtk/gtktextview.c:9225
#: gtk/gtklabel.c:5878 gtk/gtktext.c:6322 gtk/gtktextview.c:9225
msgid "Cu_t"
msgstr "Recor_tar"
#: gtk/gtklabel.c:5881 gtk/gtktext.c:6326 gtk/gtktextview.c:9229
#: gtk/gtklabel.c:5879 gtk/gtktext.c:6326 gtk/gtktextview.c:9229
msgid "_Copy"
msgstr "_Copiar"
#: gtk/gtklabel.c:5882 gtk/gtktext.c:6330 gtk/gtktextview.c:9233
#: gtk/gtklabel.c:5880 gtk/gtktext.c:6330 gtk/gtktextview.c:9233
msgid "_Paste"
msgstr "C_olar"
#: gtk/gtklabel.c:5888 gtk/gtktext.c:6343 gtk/gtktextview.c:9258
#: gtk/gtklabel.c:5886 gtk/gtktext.c:6343 gtk/gtktextview.c:9258
msgid "Select _All"
msgstr "_Selecionar tudo"
#: gtk/gtklabel.c:5893
#: gtk/gtklabel.c:5891
msgid "_Open Link"
msgstr "_Abrir o link"
#: gtk/gtklabel.c:5897
#: gtk/gtklabel.c:5895
msgid "Copy _Link Address"
msgstr "Copiar endereço do _link"
#: gtk/gtklabel.c:5941 gtk/gtktext.c:2851 gtk/gtktextview.c:9307
#: gtk/gtklabel.c:5939 gtk/gtktext.c:2851 gtk/gtktextview.c:9307
msgid "Context menu"
msgstr "Menu de contexto"
@@ -3757,7 +3757,7 @@ msgstr "Nenhum resultado encontrado"
msgid "Try a different search"
msgstr "Tente uma pesquisa diferente"
#: gtk/gtkstacksidebar.c:154
#: gtk/gtkstacksidebar.c:155
msgctxt "accessibility"
msgid "Sidebar"
msgstr "Barra lateral"
@@ -3875,17 +3875,17 @@ msgstr "Mostrar"
msgid "Hover to load"
msgstr "Passe o mouse para carregar"
#: gtk/inspector/clipboard.c:278
#: gtk/inspector/clipboard.c:286
msgctxt "clipboard"
msgid "empty"
msgstr "vazio"
#: gtk/inspector/clipboard.c:283 gtk/inspector/clipboard.c:325
#: gtk/inspector/clipboard.c:291 gtk/inspector/clipboard.c:344
msgctxt "clipboard"
msgid "local"
msgstr "local"
#: gtk/inspector/clipboard.c:285 gtk/inspector/clipboard.c:327
#: gtk/inspector/clipboard.c:293 gtk/inspector/clipboard.c:346
msgctxt "clipboard"
msgid "remote"
msgstr "remoto"

259
po/sv.po
View File

@@ -11,8 +11,8 @@ msgid ""
msgstr ""
"Project-Id-Version: gtk\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gtk/-/issues/\n"
"POT-Creation-Date: 2024-09-08 23:25+0000\n"
"PO-Revision-Date: 2024-09-09 13:21+0200\n"
"POT-Creation-Date: 2024-09-28 21:50+0000\n"
"PO-Revision-Date: 2024-09-29 18:30+0200\n"
"Last-Translator: Anders Jonsson <anders.jonsson@norsjovallen.se>\n"
"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
"Language: sv\n"
@@ -20,7 +20,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 3.4.4\n"
"X-Generator: Poedit 3.5\n"
#: gdk/broadway/gdkbroadway-server.c:135
#, c-format
@@ -74,54 +74,54 @@ msgstr "Kan inte tillhandahålla innehåll som %s"
msgid "The current backend does not support OpenGL"
msgstr "Den aktuella bakänden stöder inte OpenGL"
#: gdk/gdkdisplay.c:1315 gdk/gdkvulkancontext.c:1663
#: gdk/gdkdisplay.c:1317 gdk/gdkvulkancontext.c:1668
msgid "Vulkan support disabled via GDK_DISABLE"
msgstr "Vulkan-stöd inaktiverat via GDK_DISABLE"
#: gdk/gdkdisplay.c:1369
#: gdk/gdkdisplay.c:1371
msgid "OpenGL support disabled via GDK_DISABLE"
msgstr "OpenGL-stöd inaktiverat via GDK_DISABLE"
#: gdk/gdkdisplay.c:1683
#: gdk/gdkdisplay.c:1685
msgid "No EGL configuration available"
msgstr "Ingen EGL-konfiguration tillgänglig"
#: gdk/gdkdisplay.c:1691
#: gdk/gdkdisplay.c:1693
msgid "Failed to get EGL configurations"
msgstr "Misslyckades med att hämta EGL-konfigurationer"
#: gdk/gdkdisplay.c:1721
#: gdk/gdkdisplay.c:1723
msgid "No EGL configuration with required features found"
msgstr "Ingen EGL-konfiguration med funktionerna som krävdes hittades"
#: gdk/gdkdisplay.c:1728
#: gdk/gdkdisplay.c:1730
msgid "No perfect EGL configuration found"
msgstr "Ingen perfekt EGL-konfiguration hittades"
#: gdk/gdkdisplay.c:1770
#: gdk/gdkdisplay.c:1772
#, c-format
msgid "EGL implementation is missing extension %s"
msgid_plural "EGL implementation is missing %2$d extensions: %1$s"
msgstr[0] "EGL-implementationen saknar tillägget %s"
msgstr[1] "EGL-implementationen saknar %2$d tillägg: %1$s"
#: gdk/gdkdisplay.c:1819
#: gdk/gdkdisplay.c:1821
msgid "libEGL not available in this sandbox"
msgstr "libEGL är inte tillgängligt i denna sandlåda"
#: gdk/gdkdisplay.c:1820
#: gdk/gdkdisplay.c:1822
msgid "libEGL not available"
msgstr "libEGL inte tillgängligt"
#: gdk/gdkdisplay.c:1830
#: gdk/gdkdisplay.c:1832
msgid "Failed to create EGL display"
msgstr "Misslyckades med att skapa EGL-display"
#: gdk/gdkdisplay.c:1839
#: gdk/gdkdisplay.c:1841
msgid "Could not initialize EGL display"
msgstr "Kunde inte initiera EGL-display"
#: gdk/gdkdisplay.c:1849
#: gdk/gdkdisplay.c:1851
#, c-format
msgid "EGL version %d.%d is too old. GTK requires %d.%d"
msgstr "EGL-version %d.%d är för gammal. GTK kräver %d.%d"
@@ -600,8 +600,8 @@ msgstr "Kunde inte läsa in TIFF-data"
msgid "Reading data failed at row %d"
msgstr "Läsning av data misslyckades på rad %d"
#: gdk/macos/gdkmacospasteboard.c:211 gdk/wayland/gdkclipboard-wayland.c:238
#: gdk/wayland/gdkdrop-wayland.c:205 gdk/wayland/gdkprimary-wayland.c:337
#: gdk/macos/gdkmacospasteboard.c:211 gdk/wayland/gdkclipboard-wayland.c:244
#: gdk/wayland/gdkdrop-wayland.c:205 gdk/wayland/gdkprimary-wayland.c:343
#: gdk/win32/gdkdrop-win32.c:1018 gdk/win32/gdkdrop-win32.c:1067
#: gdk/x11/gdkclipboard-x11.c:799 gdk/x11/gdkdrop-x11.c:235
msgid "No compatible transfer format found"
@@ -878,7 +878,7 @@ msgstr ""
msgid "OpenGL ES 3.0 is not supported by this renderer."
msgstr "OpenGL ES 3.0 stöds inte av denna renderare."
#: gsk/gpu/gsknglrenderer.c:68
#: gsk/gpu/gsknglrenderer.c:69
msgid "OpenGL 3.3 required"
msgstr "OpenGL 3.3 krävs"
@@ -1851,7 +1851,7 @@ msgstr "Text får inte finnas inuti <%s>"
#. * 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:666
#: gtk/gtkcalendar.c:670
msgid "calendar:week_start:0"
msgstr "calendar:week_start:1"
@@ -1865,21 +1865,10 @@ msgstr "calendar:week_start:1"
#. * text direction of RTL and specify "calendar:YM", then the year
#. * will appear to the right of the month.
#.
#: gtk/gtkcalendar.c:817
#: gtk/gtkcalendar.c:821
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:1002
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...).
#. *
@@ -1890,12 +1879,23 @@ msgstr "%Y"
#. * digits. That needs support from your system and locale definition
#. * too.
#.
#: gtk/gtkcalendar.c:1039
#: gtk/gtkcalendar.c:1002
#, c-format
msgctxt "calendar:day:digits"
msgid "%d"
msgstr "%d"
#. 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:1106
msgctxt "calendar year format"
msgid "%Y"
msgstr "%Y"
#. Translators: this defines whether the week numbers should use
#. * localized digits or the ones used in English (0123...).
#. *
@@ -1904,7 +1904,7 @@ msgstr "%d"
#. * 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:1104
#: gtk/gtkcalendar.c:1152
#, c-format
msgctxt "calendar:week:digits"
msgid "%d"
@@ -2173,7 +2173,7 @@ msgid "Margins from Printer…"
msgstr "Marginaler från skrivare…"
#. And show the custom paper dialog
#: gtk/print/gtkcustompaperunixdialog.c:377 gtk/print/gtkprintunixdialog.c:2970
#: gtk/print/gtkcustompaperunixdialog.c:377 gtk/print/gtkprintunixdialog.c:2975
msgid "Manage Custom Sizes"
msgstr "Hantera anpassade storlekar"
@@ -2289,7 +2289,7 @@ msgid "A file with that name already exists"
msgstr "Det finns redan en fil med det namnet"
#: gtk/gtkfilechoosernative.c:520 gtk/gtkfilechoosernative.c:600
#: gtk/gtkfilechooserwidget.c:1213 gtk/gtkfilechooserwidget.c:5014
#: gtk/gtkfilechooserwidget.c:1213 gtk/gtkfilechooserwidget.c:5017
#: gtk/gtkfiledialog.c:840 gtk/gtkmessagedialog.c:170
#: gtk/gtkmessagedialog.c:179 gtk/gtkmountoperation.c:608
#: gtk/print/gtkpagesetupunixdialog.c:282 gtk/print/gtkprintbackend.c:638
@@ -2383,7 +2383,7 @@ msgid "If you delete an item, it will be permanently lost."
msgstr "Om du tar bort ett objekt är det borta för alltid."
#: gtk/gtkfilechooserwidget.c:1213 gtk/gtkfilechooserwidget.c:1815
#: gtk/gtklabel.c:5883 gtk/gtktext.c:6334 gtk/gtktextview.c:9237
#: gtk/gtklabel.c:5881 gtk/gtktext.c:6334 gtk/gtktextview.c:9237
msgid "_Delete"
msgstr "_Ta bort"
@@ -2446,7 +2446,7 @@ msgid "Home"
msgstr "Hem"
#. this is the header for the location column in the print dialog
#: gtk/gtkfilechooserwidget.c:2195 gtk/gtkfilechooserwidget.c:7436
#: gtk/gtkfilechooserwidget.c:2195 gtk/gtkfilechooserwidget.c:7439
#: gtk/inspector/css-node-tree.ui:76 gtk/print/ui/gtkprintunixdialog.ui:111
msgid "Location"
msgstr "Plats"
@@ -2469,8 +2469,8 @@ msgstr "Söker"
msgid "Enter location or URL"
msgstr "Ange plats eller URL"
#: gtk/gtkfilechooserwidget.c:3444 gtk/gtkfilechooserwidget.c:5801
#: gtk/gtkfilechooserwidget.c:7458
#: gtk/gtkfilechooserwidget.c:3444 gtk/gtkfilechooserwidget.c:5804
#: gtk/gtkfilechooserwidget.c:7461
msgid "Modified"
msgstr "Ändrad"
@@ -2553,12 +2553,12 @@ msgstr "Presentation"
msgid "Spreadsheet"
msgstr "Kalkylblad"
#: gtk/gtkfilechooserwidget.c:5006 gtk/print/gtkprintunixdialog.c:673
#: gtk/gtkfilechooserwidget.c:5009 gtk/print/gtkprintunixdialog.c:673
#, c-format
msgid "A file named “%s” already exists. Do you want to replace it?"
msgstr "En fil med namnet ”%s” finns redan. Vill du ersätta den?"
#: gtk/gtkfilechooserwidget.c:5008 gtk/print/gtkprintunixdialog.c:677
#: gtk/gtkfilechooserwidget.c:5011 gtk/print/gtkprintunixdialog.c:677
#, c-format
msgid ""
"The file already exists in “%s”. Replacing it will overwrite its contents."
@@ -2566,47 +2566,47 @@ msgstr ""
"Filen finns redan i ”%s”. Att ersätta den kommer att skriva över dess "
"innehåll."
#: gtk/gtkfilechooserwidget.c:5014 gtk/print/gtkprintunixdialog.c:685
#: gtk/gtkfilechooserwidget.c:5017 gtk/print/gtkprintunixdialog.c:685
msgid "_Replace"
msgstr "_Ersätt"
#: gtk/gtkfilechooserwidget.c:5169
#: gtk/gtkfilechooserwidget.c:5172
msgid "You do not have access to the specified folder."
msgstr "Du har inte åtkomst till den angivna mappen."
#: gtk/gtkfilechooserwidget.c:5748
#: gtk/gtkfilechooserwidget.c:5751
msgid "Could not send the search request"
msgstr "Kunde inte skicka sökbegäran"
#: gtk/gtkfilechooserwidget.c:6029
#: gtk/gtkfilechooserwidget.c:6032
msgid "Accessed"
msgstr "Åtkommen"
#: gtk/gtkfilechooserwidget.c:7414
#: gtk/gtkfilechooserwidget.c:7417
msgid "_Size"
msgstr "_Storlek"
#: gtk/gtkfilechooserwidget.c:7418
#: gtk/gtkfilechooserwidget.c:7421
msgid "T_ype"
msgstr "T_yp"
#: gtk/gtkfilechooserwidget.c:7422
#: gtk/gtkfilechooserwidget.c:7425
msgid "_Time"
msgstr "_Tid"
#: gtk/gtkfilechooserwidget.c:7428 gtk/gtkplacessidebar.c:2306
#: gtk/gtkfilechooserwidget.c:7431 gtk/gtkplacessidebar.c:2306
#: gtk/inspector/a11y.ui:43 gtk/inspector/actions.ui:18
#: gtk/inspector/css-node-tree.ui:22 gtk/inspector/prop-list.ui:24
#: gtk/ui/gtkfilechooserwidget.ui:396 gtk/print/ui/gtkprintunixdialog.ui:80
msgid "Name"
msgstr "Namn"
#: gtk/gtkfilechooserwidget.c:7445 gtk/inspector/resource-list.ui:82
#: gtk/gtkfilechooserwidget.c:7448 gtk/inspector/resource-list.ui:82
#: gtk/ui/gtkfontchooserwidget.ui:218 gtk/ui/gtkfontchooserwidget.ui:387
msgid "Size"
msgstr "Storlek"
#: gtk/gtkfilechooserwidget.c:7451 gtk/inspector/misc-info.ui:57
#: gtk/gtkfilechooserwidget.c:7454 gtk/inspector/misc-info.ui:57
#: gtk/inspector/prop-list.ui:35 gtk/inspector/statistics.ui:36
msgid "Type"
msgstr "Typ"
@@ -2725,31 +2725,31 @@ msgstr "Stäng"
msgid "Close the infobar"
msgstr "Stäng inforaden"
#: gtk/gtklabel.c:5880 gtk/gtktext.c:6322 gtk/gtktextview.c:9225
#: gtk/gtklabel.c:5878 gtk/gtktext.c:6322 gtk/gtktextview.c:9225
msgid "Cu_t"
msgstr "Klipp _ut"
#: gtk/gtklabel.c:5881 gtk/gtktext.c:6326 gtk/gtktextview.c:9229
#: gtk/gtklabel.c:5879 gtk/gtktext.c:6326 gtk/gtktextview.c:9229
msgid "_Copy"
msgstr "_Kopiera"
#: gtk/gtklabel.c:5882 gtk/gtktext.c:6330 gtk/gtktextview.c:9233
#: gtk/gtklabel.c:5880 gtk/gtktext.c:6330 gtk/gtktextview.c:9233
msgid "_Paste"
msgstr "Klistra _in"
#: gtk/gtklabel.c:5888 gtk/gtktext.c:6343 gtk/gtktextview.c:9258
#: gtk/gtklabel.c:5886 gtk/gtktext.c:6343 gtk/gtktextview.c:9258
msgid "Select _All"
msgstr "Markera _allt"
#: gtk/gtklabel.c:5893
#: gtk/gtklabel.c:5891
msgid "_Open Link"
msgstr "_Öppna länk"
#: gtk/gtklabel.c:5897
#: gtk/gtklabel.c:5895
msgid "Copy _Link Address"
msgstr "Kopiera _länkadress"
#: gtk/gtklabel.c:5941 gtk/gtktext.c:2851 gtk/gtktextview.c:9307
#: gtk/gtklabel.c:5939 gtk/gtktext.c:2851 gtk/gtktextview.c:9307
msgid "Context menu"
msgstr "Snabbvalsmeny"
@@ -3342,89 +3342,89 @@ msgstr "Inte tillgänglig"
#. * jobs. %s gets replaced by the application name, %d gets replaced
#. * by the job number.
#.
#: gtk/print/gtkprintoperation.c:252
#: gtk/print/gtkprintoperation.c:255
#, c-format
msgid "%s job #%d"
msgstr "%s jobbnr %d"
#: gtk/print/gtkprintoperation.c:1699
#: gtk/print/gtkprintoperation.c:1702
msgctxt "print operation status"
msgid "Initial state"
msgstr "Initialt tillstånd"
#: gtk/print/gtkprintoperation.c:1700
#: gtk/print/gtkprintoperation.c:1703
msgctxt "print operation status"
msgid "Preparing to print"
msgstr "Förbereder utskrift"
#: gtk/print/gtkprintoperation.c:1701
#: gtk/print/gtkprintoperation.c:1704
msgctxt "print operation status"
msgid "Generating data"
msgstr "Genererar data"
#: gtk/print/gtkprintoperation.c:1702
#: gtk/print/gtkprintoperation.c:1705
msgctxt "print operation status"
msgid "Sending data"
msgstr "Skickar data"
#: gtk/print/gtkprintoperation.c:1703
#: gtk/print/gtkprintoperation.c:1706
msgctxt "print operation status"
msgid "Waiting"
msgstr "Väntar"
#: gtk/print/gtkprintoperation.c:1704
#: gtk/print/gtkprintoperation.c:1707
msgctxt "print operation status"
msgid "Blocking on issue"
msgstr "Blockerar vid problem"
#: gtk/print/gtkprintoperation.c:1705
#: gtk/print/gtkprintoperation.c:1708
msgctxt "print operation status"
msgid "Printing"
msgstr "Skriver ut"
#: gtk/print/gtkprintoperation.c:1706
#: gtk/print/gtkprintoperation.c:1709
msgctxt "print operation status"
msgid "Finished"
msgstr "Färdig"
#: gtk/print/gtkprintoperation.c:1707
#: gtk/print/gtkprintoperation.c:1710
msgctxt "print operation status"
msgid "Finished with error"
msgstr "Färdig men med fel"
#: gtk/print/gtkprintoperation.c:2250
#: gtk/print/gtkprintoperation.c:2254
#, c-format
msgid "Preparing %d"
msgstr "Förbereder %d"
#: gtk/print/gtkprintoperation.c:2252 gtk/print/gtkprintoperation.c:2871
#: gtk/print/gtkprintoperation.c:2256 gtk/print/gtkprintoperation.c:2875
#, c-format
msgid "Preparing"
msgstr "Förbereder"
#: gtk/print/gtkprintoperation.c:2255
#: gtk/print/gtkprintoperation.c:2259
#, c-format
msgid "Printing %d"
msgstr "Skriver ut %d"
#: gtk/print/gtkprintoperation.c:2904
#: gtk/print/gtkprintoperation.c:2908
#, c-format
msgid "Error creating print preview"
msgstr "Fel vid skapande av förhandsgranskning"
#: gtk/print/gtkprintoperation.c:2907
#: gtk/print/gtkprintoperation.c:2911
#, c-format
msgid "The most probable reason is that a temporary file could not be created."
msgstr "Den mest troliga orsaken är att en temporärfil inte kunde skapas."
#. window
#: gtk/print/gtkprintoperation-portal.c:264
#: gtk/print/gtkprintoperation-portal.c:594
#: gtk/print/gtkprintoperation-portal.c:663 gtk/print/gtkprintunixdialog.c:3010
#: gtk/print/gtkprintoperation-portal.c:273
#: gtk/print/gtkprintoperation-portal.c:603
#: gtk/print/gtkprintoperation-portal.c:672 gtk/print/gtkprintunixdialog.c:3015
msgid "Print"
msgstr "Skriv ut"
#: gtk/print/gtkprintoperation-unix.c:481
#: gtk/print/gtkprintoperation-unix.c:490
#: gtk/print/gtkprintoperation-win32.c:1505
msgid "Application"
msgstr "Program"
@@ -3495,11 +3495,11 @@ msgstr "_Förhandsgranska"
msgid "_Print"
msgstr "Skriv _ut"
#: gtk/print/gtkprintunixdialog.c:961
#: gtk/print/gtkprintunixdialog.c:966
msgid "Getting printer information failed"
msgstr "Hämtning av skrivarinformation misslyckades"
#: gtk/print/gtkprintunixdialog.c:1885
#: gtk/print/gtkprintunixdialog.c:1890
msgid "Getting printer information…"
msgstr "Hämtar skrivarinformation…"
@@ -3509,63 +3509,63 @@ msgstr "Hämtar skrivarinformation…"
#. Translators: These strings name the possible arrangements of
#. * multiple pages on a sheet when printing
#.
#: gtk/print/gtkprintunixdialog.c:2755
#: gtk/print/gtkprintunixdialog.c:2760
#: modules/printbackends/gtkprintbackendcups.c:5677
msgid "Left to right, top to bottom"
msgstr "Vänster till höger, topp till botten"
#: gtk/print/gtkprintunixdialog.c:2755
#: gtk/print/gtkprintunixdialog.c:2760
#: modules/printbackends/gtkprintbackendcups.c:5677
msgid "Left to right, bottom to top"
msgstr "Vänster till höger, botten till topp"
#: gtk/print/gtkprintunixdialog.c:2756
#: gtk/print/gtkprintunixdialog.c:2761
#: modules/printbackends/gtkprintbackendcups.c:5678
msgid "Right to left, top to bottom"
msgstr "Höger till vänster, topp till botten"
#: gtk/print/gtkprintunixdialog.c:2756
#: gtk/print/gtkprintunixdialog.c:2761
#: modules/printbackends/gtkprintbackendcups.c:5678
msgid "Right to left, bottom to top"
msgstr "Höger till vänster, botten till topp"
#: gtk/print/gtkprintunixdialog.c:2757
#: gtk/print/gtkprintunixdialog.c:2762
#: modules/printbackends/gtkprintbackendcups.c:5679
msgid "Top to bottom, left to right"
msgstr "Topp till botten, vänster till höger"
#: gtk/print/gtkprintunixdialog.c:2757
#: gtk/print/gtkprintunixdialog.c:2762
#: modules/printbackends/gtkprintbackendcups.c:5679
msgid "Top to bottom, right to left"
msgstr "Topp till botten, höger till vänster"
#: gtk/print/gtkprintunixdialog.c:2758
#: gtk/print/gtkprintunixdialog.c:2763
#: modules/printbackends/gtkprintbackendcups.c:5680
msgid "Bottom to top, left to right"
msgstr "Botten till topp, vänster till höger"
#: gtk/print/gtkprintunixdialog.c:2758
#: gtk/print/gtkprintunixdialog.c:2763
#: modules/printbackends/gtkprintbackendcups.c:5680
msgid "Bottom to top, right to left"
msgstr "Botten till topp, höger till vänster"
#: gtk/print/gtkprintunixdialog.c:2762 gtk/print/gtkprintunixdialog.c:2775
#: gtk/print/gtkprintunixdialog.c:2767 gtk/print/gtkprintunixdialog.c:2780
msgid "Page Ordering"
msgstr "Sidordning"
#: gtk/print/gtkprintunixdialog.c:2791
#: gtk/print/gtkprintunixdialog.c:2796
msgid "Left to right"
msgstr "Vänster till höger"
#: gtk/print/gtkprintunixdialog.c:2792
#: gtk/print/gtkprintunixdialog.c:2797
msgid "Right to left"
msgstr "Höger till vänster"
#: gtk/print/gtkprintunixdialog.c:2804
#: gtk/print/gtkprintunixdialog.c:2809
msgid "Top to bottom"
msgstr "Topp till botten"
#: gtk/print/gtkprintunixdialog.c:2805
#: gtk/print/gtkprintunixdialog.c:2810
msgid "Bottom to top"
msgstr "Botten till topp"
@@ -3679,7 +3679,7 @@ msgstr "Inga resultat hittades"
msgid "Try a different search"
msgstr "Försök med en annan sökning"
#: gtk/gtkstacksidebar.c:154
#: gtk/gtkstacksidebar.c:155
msgctxt "accessibility"
msgid "Sidebar"
msgstr "Sidopanel"
@@ -3796,17 +3796,17 @@ msgstr "Visa"
msgid "Hover to load"
msgstr "Hovra för att läsa in"
#: gtk/inspector/clipboard.c:278
#: gtk/inspector/clipboard.c:286
msgctxt "clipboard"
msgid "empty"
msgstr "tomt"
#: gtk/inspector/clipboard.c:283 gtk/inspector/clipboard.c:325
#: gtk/inspector/clipboard.c:291 gtk/inspector/clipboard.c:344
msgctxt "clipboard"
msgid "local"
msgstr "lokalt"
#: gtk/inspector/clipboard.c:285 gtk/inspector/clipboard.c:327
#: gtk/inspector/clipboard.c:293 gtk/inspector/clipboard.c:346
msgctxt "clipboard"
msgid "remote"
msgstr "fjärran"
@@ -7152,35 +7152,35 @@ msgctxt "printer option value"
msgid "Unavailable"
msgstr "Inte tillgänglig"
#: modules/printbackends/gtkprintbackendfile.c:238
#: modules/printbackends/gtkprintbackendfile.c:263
msgid "output"
msgstr "utdata"
#: modules/printbackends/gtkprintbackendfile.c:510
#: modules/printbackends/gtkprintbackendfile.c:543
msgid "Print to File"
msgstr "Skriv ut till fil"
#: modules/printbackends/gtkprintbackendfile.c:636
#: modules/printbackends/gtkprintbackendfile.c:675
msgid "PDF"
msgstr "PDF"
#: modules/printbackends/gtkprintbackendfile.c:636
#: modules/printbackends/gtkprintbackendfile.c:675
msgid "PostScript"
msgstr "Postscript"
#: modules/printbackends/gtkprintbackendfile.c:636
#: modules/printbackends/gtkprintbackendfile.c:675
msgid "SVG"
msgstr "SVG"
#: modules/printbackends/gtkprintbackendfile.c:649
#: modules/printbackends/gtkprintbackendfile.c:688
msgid "Pages per _sheet:"
msgstr "Sidor per _blad:"
#: modules/printbackends/gtkprintbackendfile.c:709
#: modules/printbackends/gtkprintbackendfile.c:758
msgid "File"
msgstr "Fil"
#: modules/printbackends/gtkprintbackendfile.c:719
#: modules/printbackends/gtkprintbackendfile.c:768
msgid "_Output format"
msgstr "_Utskriftsformat"
@@ -7261,7 +7261,7 @@ msgstr ""
#: 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:360
#: tools/gtk-builder-tool-simplify.c:2529 tools/gtk-builder-tool-validate.c:261
#: tools/gtk-builder-tool-simplify.c:2623 tools/gtk-builder-tool-validate.c:261
#: tools/gtk-image-tool-compare.c:43 tools/gtk-image-tool-info.c:68
#: tools/gtk-path-tool-render.c:121 tools/gtk-rendernode-tool-compare.c:67
#: tools/gtk-rendernode-tool-extract.c:294 tools/gtk-rendernode-tool-info.c:226
@@ -7298,7 +7298,7 @@ msgstr "Använd stil från CSS-fil"
#: tools/gtk-builder-tool-preview.c:187 tools/gtk-builder-tool-screenshot.c:370
#: tools/gtk-builder-tool-validate.c:268
#: tools/gtk-rendernode-tool-benchmark.c:106
#: tools/gtk-rendernode-tool-benchmark.c:108
#: tools/gtk-rendernode-tool-render.c:262 tools/gtk-rendernode-tool-show.c:123
#, c-format
msgid "Could not initialize windowing system\n"
@@ -7309,7 +7309,7 @@ msgid "Preview the file."
msgstr "Förhandsgranska filen."
#: tools/gtk-builder-tool-preview.c:208 tools/gtk-builder-tool-screenshot.c:391
#: tools/gtk-builder-tool-simplify.c:2552 tools/gtk-builder-tool-validate.c:287
#: tools/gtk-builder-tool-simplify.c:2646 tools/gtk-builder-tool-validate.c:287
#, c-format
msgid "No .ui file specified\n"
msgstr "Ingen .ui-fil angiven\n"
@@ -7370,7 +7370,7 @@ msgstr "Skriv över befintlig fil"
#: tools/gtk-builder-tool-screenshot.c:363 tools/gtk-image-tool-compare.c:46
#: tools/gtk-image-tool-convert.c:89 tools/gtk-image-tool-relabel.c:86
#: tools/gtk-image-tool-show.c:119 tools/gtk-rendernode-tool-benchmark.c:97
#: tools/gtk-image-tool-show.c:119 tools/gtk-rendernode-tool-benchmark.c:99
#: tools/gtk-rendernode-tool-render.c:255
msgid "FILE…"
msgstr "FIL…"
@@ -7411,46 +7411,51 @@ msgstr "Cellegenskapen %s hittades inte"
msgid "Layout property %s not found"
msgstr "Layoutegenskapen %s hittades inte"
#: tools/gtk-builder-tool-simplify.c:1397
#: tools/gtk-builder-tool-simplify.c:1400
#, c-format
msgid "%s only accepts three children"
msgstr "%s accepterar endast tre barn"
#: tools/gtk-builder-tool-simplify.c:2455
#: tools/gtk-builder-tool-simplify.c:1773
#, c-format
msgid "%s only accepts one center child"
msgstr "%s accepterar endast ett centrerat barn"
#: tools/gtk-builder-tool-simplify.c:2549
#, c-format
msgid "Cant load “%s”: %s\n"
msgstr "Kan inte läsa in ”%s”: %s\n"
#: tools/gtk-builder-tool-simplify.c:2466
#: tools/gtk-builder-tool-simplify.c:2472
#: tools/gtk-builder-tool-simplify.c:2478
#: tools/gtk-builder-tool-simplify.c:2560
#: tools/gtk-builder-tool-simplify.c:2566
#: tools/gtk-builder-tool-simplify.c:2572
#, c-format
msgid "Cant parse “%s”: %s\n"
msgstr "Kan inte tolka ”%s”: %s\n"
#: tools/gtk-builder-tool-simplify.c:2504
#: tools/gtk-builder-tool-simplify.c:2598
#, c-format
msgid "Failed to read “%s”: %s\n"
msgstr "Misslyckades med att läsa ”%s”: %s\n"
#: tools/gtk-builder-tool-simplify.c:2510
#: tools/gtk-builder-tool-simplify.c:2604
#, c-format
msgid "Failed to write “%s”: “%s”\n"
msgstr "Misslyckades med att skriva ”%s”: ”%s”\n"
#: tools/gtk-builder-tool-simplify.c:2527
#: tools/gtk-builder-tool-simplify.c:2621
msgid "Replace the file"
msgstr "Ersätt filen"
#: tools/gtk-builder-tool-simplify.c:2528
#: tools/gtk-builder-tool-simplify.c:2622
msgid "Convert from GTK 3 to GTK 4"
msgstr "Konvertera från GTK 3 till GTK 4"
#: tools/gtk-builder-tool-simplify.c:2539
#: tools/gtk-builder-tool-simplify.c:2633
msgid "Simplify the file."
msgstr "Förenkla filen."
#: tools/gtk-builder-tool-simplify.c:2558
#: tools/gtk-builder-tool-simplify.c:2652
#, c-format
msgid "Can only simplify a single .ui file without --replace\n"
msgstr "Kan endast förenkla en ensam .ui-fil utan --replace\n"
@@ -8048,40 +8053,40 @@ msgstr ""
" render Ta en skärmbild av noden\n"
"\n"
#: tools/gtk-rendernode-tool-benchmark.c:94
#: tools/gtk-rendernode-tool-benchmark.c:96
msgid "Add renderer to benchmark"
msgstr "Lägg till renderare till prestandatest"
#: tools/gtk-rendernode-tool-benchmark.c:94
#: tools/gtk-rendernode-tool-benchmark.c:96
#: tools/gtk-rendernode-tool-compare.c:65
#: tools/gtk-rendernode-tool-render.c:254
msgid "RENDERER"
msgstr "RENDERARE"
#: tools/gtk-rendernode-tool-benchmark.c:95
#: tools/gtk-rendernode-tool-benchmark.c:97
msgid "Number of runs with each renderer"
msgstr "Antal körningar med varje renderare"
#: tools/gtk-rendernode-tool-benchmark.c:95
#: tools/gtk-rendernode-tool-benchmark.c:97
msgid "RUNS"
msgstr "KÖRNINGAR"
#: tools/gtk-rendernode-tool-benchmark.c:96
#: tools/gtk-rendernode-tool-benchmark.c:98
msgid "Dont download result/wait for GPU to finish"
msgstr "Hämta inte resultat/vänta på att GPU ska bli klar"
#: tools/gtk-rendernode-tool-benchmark.c:114
#: tools/gtk-rendernode-tool-benchmark.c:116
msgid "Benchmark rendering of a .node file."
msgstr "Prestandatesta rendering av en .node-fil."
#: tools/gtk-rendernode-tool-benchmark.c:127
#: tools/gtk-rendernode-tool-benchmark.c:129
#: tools/gtk-rendernode-tool-extract.c:316 tools/gtk-rendernode-tool-info.c:248
#: tools/gtk-rendernode-tool-render.c:283 tools/gtk-rendernode-tool-show.c:144
#, c-format
msgid "No .node file specified\n"
msgstr "Ingen .node-fil angiven\n"
#: tools/gtk-rendernode-tool-benchmark.c:133
#: tools/gtk-rendernode-tool-benchmark.c:135
#, c-format
msgid "Can only benchmark a single .node file\n"
msgstr "Kan endast prestandatesta en ensam .node-fil\n"

View File

@@ -31,8 +31,7 @@ setups = [
], },
{ 'name': 'wayland_gl',
'backend': 'wayland', 'if': wayland_enabled,
'env': ['GDK_DEBUG=gl-prefer-gl,default-settings',
], },
'env': ['GDK_DISABLE=gles-api' ], },
{ 'backend': 'win32', 'if': os_win32 },
{ 'backend': 'broadway', 'if': broadway_enabled, },
{ 'backend': 'win32', 'if': os_win32 },