pax_global_header00006660000000000000000000000064152120643130014507gustar00rootroot0000000000000052 comment=fbb60d228af056b5c015847cc86b55445da2febf Keruspe-GPaste-724def1/000077500000000000000000000000001521206431300147245ustar00rootroot00000000000000Keruspe-GPaste-724def1/.clang-format000066400000000000000000000012311521206431300172740ustar00rootroot00000000000000--- AlignAfterOpenBracket: Align AlignArrayOfStructures: Left AlignConsecutiveDeclarations: Enabled: true AcrossEmptyLines: true AcrossComments: false AlignConsecutiveMacros: Enabled: true AcrossEmptyLines: false AcrossComments: false AlignEscapedNewlines: Right AlignOperands: true AlignTrailingComments: Kind: Leave AlwaysBreakAfterDefinitionReturnType: All BinPackArguments: false BreakBeforeBraces: Allman ColumnLimit: 0 Cpp11BracedListStyle: false IndentWidth: 4 MaxEmptyLinesToKeep: 1 PointerAlignment: Right SortIncludes: Never SpaceAfterCStyleCast: true SpaceBeforeParens: Always UseTab: Never ... Language: JavaScript DisableFormat: true ... Keruspe-GPaste-724def1/.github/000077500000000000000000000000001521206431300162645ustar00rootroot00000000000000Keruspe-GPaste-724def1/.github/FUNDING.yml000066400000000000000000000000201521206431300200710ustar00rootroot00000000000000github: Keruspe Keruspe-GPaste-724def1/.github/workflows/000077500000000000000000000000001521206431300203215ustar00rootroot00000000000000Keruspe-GPaste-724def1/.github/workflows/eslint.yml000066400000000000000000000013731521206431300223460ustar00rootroot00000000000000# SPDX-FileCopyrightText: 2026 Marc-Antoine Perennou # SPDX-License-Identifier: BSD-2-Clause name: ESLint on: push: branches: [master] paths: - 'src/gnome-shell/**' - 'tools/**' - 'eslint.config.js' - '.github/workflows/eslint.yml' pull_request: paths: - 'src/gnome-shell/**' - 'tools/**' - 'eslint.config.js' - '.github/workflows/eslint.yml' jobs: eslint: name: ESLint runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: 'lts/*' cache: npm cache-dependency-path: tools/package-lock.json - name: Run ESLint run: ./tools/run-eslint.sh Keruspe-GPaste-724def1/.gitignore000066400000000000000000000010661521206431300167170ustar00rootroot00000000000000/.buildconfig /.cache /Makefile /bin/* /build /tests/bin/* /data/appstream/*.appdata.xml /data/appstream/*.appdata.valid /data/control-center/*.xml /data/desktop/*.desktop /data/desktop/*.desktop.in /data/dbus/*.service /data/systemd/*.service /bindings /data/pkg-config/*.pc /man/*.1 /ABOUT-NLS /po/Makefile /po/Makevars.template /po/Rules-quot /po/boldquot.sed /po/en@boldquot.header /po/en@quot.header /po/insert-header.sin /po/quot.sed /po/remove-potcdate.sed /po/remove-potcdate.sin /src/gnome-shell/metadata.json node_modules .eslintcache /test-suite.log *.mo Keruspe-GPaste-724def1/AGENTS.md000066400000000000000000000433221521206431300162330ustar00rootroot00000000000000# CLAUDE.md This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. ## Build GPaste uses Meson + Ninja: ```sh mkdir build && cd build meson .. ninja ``` Common build options (`meson .. -Doption=value`): | Option | Default | Description | |---|---|---| | `gnome-shell` | true | Build the GNOME Shell extension | | `introspection` | true | Generate GIR data | | `vapi` | true | Generate Vala bindings (requires introspection) | | `x-keybinder` | true | X11 keybinder support | | `systemd` | true | systemd user unit | For a lighter build that skips the GNOME Shell extension, GIR introspection data and Vala bindings (the daemon, UI and preferences apps are always built): ```sh meson .. -Dgnome-shell=false -Dintrospection=false -Dvapi=false ``` Run tests from the build directory: ```sh ninja test ``` Check header include ordering: ```sh tools/check-includes.sh ``` ## Code style - C standard: GNU17 - Formatting: ClangFormat (see `.clang-format`). Key rules: Allman braces, 4-space indent, no column limit, space before parens, no tabs. - clang-format is not yet enforced; do not run it automatically. - **Braces**: Remove braces from `if`/`else if`/`else` branches whose body is a single statement on a single line. Keep braces when the body has multiple statements OR spans multiple lines (e.g. a nested if-else chain). Multi-statement macros that need to appear as a single statement must use the `do { ... } while (0)` idiom — `SWITCH_STATE` in `gpaste-file-backend.c` does this and can safely appear without surrounding braces. ### JavaScript (GNOME Shell extension) The `src/gnome-shell/` extension follows upstream GNOME Shell's JS conventions, enforced by the **same tooling, layout, and configuration** as upstream: - The npm project lives in `tools/` (`tools/package.json`, `tools/package-lock.json`, `tools/eslint.config.js`), mirroring gnome-shell. The repo-root `eslint.config.js` is a **symlink** to `tools/eslint.config.js`. - **ESLint** with [`eslint-config-gnome`](https://gitlab.gnome.org/World/javascript/eslint-config-gnome) (`recommended` + `jsdoc` configs) and the [`ci-run-eslint`](https://gitlab.gnome.org/World/javascript/ci-run-eslint) runner, both pinned to the same commits upstream uses. The config mirrors upstream's custom rule overrides (`camelcase`, `consistent-return`, `eqeqeq: smart`, `key-spacing`, `prefer-arrow-callback`, `prefer-const`, jsdoc tweaks). Shell-extension globals (`global`, `_`, `C_`, `N_`, `ngettext`) are declared for `src/gnome-shell/**`. - Style basics live in `src/gnome-shell/.editorconfig` (LF, UTF-8, trim trailing whitespace, 4-space indent for `*.js`). - Run it with `tools/run-eslint.sh` — exactly the upstream wrapper. It `npm clean-install`s into `tools/` on first run, symlinks `node_modules` into the repo root for import resolution, then lints `src/gnome-shell`. Pass `--fix` to auto-fix formatting. - The same script is the single entry point everywhere: the meson `eslint` test (`meson test -C build eslint`, skipped when `npm` is absent) and the GitHub Actions workflow (`.github/workflows/eslint.yml`, runs on pushes/PRs touching the JS or tooling) both invoke it. Upstream runs lint from GitLab CI; GPaste runs it from GitHub Actions, but the toolchain, config, layout, and `run-eslint.sh` are otherwise identical. - This tooling applies **only** to the JavaScript code; it does not affect the C/meson sources. Code conventions (also following upstream): - **Don't version-pin core `gi://` imports** — write `gi://GObject`, `gi://GLib`, `gi://Gio`, `gi://Pango`, `gi://Clutter`, `gi://St`. Only pin typelibs that genuinely ship multiple versions: `gi://GPaste?version=2`, `gi://GPasteGtk?version=4`. - **Manage signal lifecycles with `connectObject`/`disconnectObject`** (owner = `this`) for connections to long-lived non-actor GObjects (settings, the `GPaste.Client`), rather than tracking handler ids and disconnecting them by hand. They auto-disconnect when the owner actor is destroyed. - **Use a standard `constructor()` (calling `super(...)`) in `GObject.registerClass` classes**, not `_init()`/`super._init()`. GJS bridges to the `_init()`-based shell/St/Clutter base classes transparently (positional args like `super(0.0, 'GPaste')` and property dicts like `super({...})` both work). Async / `Gio._promisify` conventions (these bit us — keep them): - **`Gio._promisify` works on instance methods (`SomeClass.prototype`) but NOT on a static constructor (`SomeClass.new`) inside gnome-shell.** The wrapper assignment silently fails to stick on the class object (it works in standalone `gjs`, so it is easy to miss), and the *raw* introspected `new` then throws *"At least 1 argument required, but only 0 passed"* when awaited with no args. Promise-wrap the raw `new` + `new_finish` pair by hand instead — see `_connect` in `indicator.js`. `dependencies.js` promisifies only the instance methods. - **Don't pass a trailing `null` to a promisified async method that has no `cancellable`.** GPaste.Client's async methods are `(…args, callback, user_data)` with no cancellable; a trailing `null` lands in the callback slot and defeats `Gio._promisify` (the call hangs or returns `undefined`). Call them with their real args only: `await client.get_history_size(name)`, not `(name, null)`. - **`GLib.idle_add_once` / `GLib.timeout_add_once` take `(priority, func)`**, not `(func)`. Passing only the callback makes GJS treat the callback as the priority and dispatch with no function → *"callback is not a function"*. Always pass an explicit priority (e.g. `GLib.PRIORITY_DEFAULT_IDLE`) and keep the `GLib.Source.set_name_by_id(...)` wrapper. ## Memory management Always use GLib automatic memory management. Apply to every C file touched, not only the file under edit. | Macro | Use when | |---|---| | `g_autofree` | Plain heap allocation: `g_strdup`, `g_malloc`, `g_new` for non-GObject structs | | `g_autoptr(Type)` | GObject-derived or boxed types with a registered cleanup (`GError`, `GFile`, `GString`, `GMenu`, `GSimpleAction`, `GSimpleActionGroup`, `GSList`, `GList`, …) | | `g_auto(Type)` | Stack-allocated types with a cleanup function: `GStrv`, `GVariantBuilder`, … | | `g_autolist(Type)` | `GList *` of **owned** GObject elements — cleanup calls `g_list_free_full(list, g_object_unref)` | | `g_autoslist(Type)` | `GSList *` of **owned** GObject elements — cleanup calls `g_slist_free_full(list, g_object_unref)` | | `g_autoptr(GList)` | `GList *` that does **not** own its elements — cleanup calls `g_list_free` only | | `g_autoptr(GSList)` | `GSList *` that does **not** own its elements — cleanup calls `g_slist_free` only | Key rules: - Replace `g_free(old); ptr = g_strdup(new)` with `g_set_str(&ptr, new)` (GLib ≥ 2.76, project requires ≥ 2.84) — but **only when `new` is borrowed**. `g_set_str` does an internal `g_strdup`, so if `new` is a freshly-allocated string you already own (e.g. from `g_strdup_printf`, `g_strconcat`, `g_settings_get_string`), `g_set_str` adds a wasted allocation. In that case use `g_free(ptr); ptr = g_steal_pointer(&new)` instead. - A setter whose callers always pass a freshly-built string should take ownership of it (`gchar *` arg, annotated `(transfer full)`) and store it directly (`g_free(field); field = arg`) rather than dup it — this is how `g_paste_item_set_display_string` works, and callers hand off with `g_steal_pointer(&local)`. - Use `g_steal_pointer(&ptr)` when transferring ownership out of an auto-managed variable — including when passing a `g_autofree`/`g_autoptr` local into a container that takes ownership (e.g. `g_ptr_array_add (arr, g_steal_pointer (&local))`). - In `dispose`: use `g_clear_object`, `g_clear_pointer`, `g_clear_list`, `g_clear_slist` — they null the pointer, making double-dispose safe. Release all reference-counted objects here (GObject, GBytes, GPtrArray, GHashTable, …), not in `finalize`. - In `finalize`: use `g_free` for plain heap allocations (`gchar *`, plain structs). Do **not** call `g_object_unref` or other ref-counting unrefs here — those belong in `dispose`. - When a type needs to release GObject refs but currently only has `finalize`, add a `dispose` function and register it with `object_class->dispose`. - Do **not** use `g_autolist`/`g_autoslist` on borrowed lists (e.g. `gdk_file_list_get_files` is `(transfer none)`). `g_hash_table_get_values` also returns a borrowed list — use `g_autoptr(GList)`. - Do **not** use auto-cleanup on a variable whose ownership is intentionally transferred — use `g_steal_pointer` to make the handoff explicit. - Do **not** use `if (ptr) g_slist_free_full (g_steal_pointer (&ptr), fn)` in dispose — use `g_clear_slist (&ptr, fn)` instead (handles NULL safely). - When storing a `g_settings_get_string` value (owned, `(transfer full)`) into a `gchar *` field, free the old value and take ownership directly: `g_free(field); field = g_settings_get_string(...)`. Do **not** assign without freeing first (leak on re-assignment), and do **not** route it through `g_set_str` (that would re-`g_strdup` an already-owned string — a wasted allocation). - For a stored `GSource`/timeout/idle/signal handler id, prefer `g_clear_handle_id (&id, remove_func)` over the hand-rolled `if (id) { remove_func (id); id = 0; }` — it is NULL-safe and nulls the field in one call (e.g. `g_clear_handle_id (&priv->retry_source, g_source_remove)`). Use this in new code and when touching such cleanup. - Build NULL-terminated string vectors with `GStrvBuilder` (`g_strv_builder_add` for borrowed strings, `g_strv_builder_take` for owned ones, `g_strv_builder_end` to get the `GStrv`) rather than hand-managing a `GPtrArray` + manual `NULL` terminator + `(GStrv) ->pdata` cast. It also avoids the deep `g_strdupv` copy that returning a `GPtrArray`'s contents requires. - Prefer `g_signal_connect_object (source, sig, cb, gobject, 0)` over plain `g_signal_connect` when the handler's data is a **GObject** shorter-lived than the signal source and you would otherwise not disconnect — it auto-disconnects when that object is finalized. Do **not** convert sites that pass non-GObject data (a `priv`/struct pointer), pass `NULL` data, or that deliberately disconnect early in `dispose` for ordering reasons (e.g. `GPasteInternalKeybindingProvider` disconnects its `GdkDisplay::xevent` handler before freeing the state that handler uses — `g_signal_connect_object` would only disconnect at finalize and regress that). ## Maintenance rules - When adding or removing a public function from any library under `src/libgpaste/`, update the corresponding `.sym` file (`libgpaste.sym` or `libgpaste-gtk4.sym`). - When updating source files in this repository, keep `CLAUDE.md` up to date to reflect any new patterns, rules, or architectural decisions introduced. ## Architecture GPaste is a GNOME clipboard manager split across several binaries and a shared library. ### `src/libgpaste/` — shared library The core library used by all other components. Two sub-modules: - `gpaste/` — daemon-agnostic types: `GpasteClient` (D-Bus client), `GpasteSettings` (GSettings wrapper), `GPasteGnomeShellClient` (GNOME Shell keybinding D-Bus proxy), `GPasteGlobalShortcutClient` (XDG GlobalShortcuts portal proxy), enums, utilities. - `gpaste-gtk4/` — GTK4 + Adwaita UI helpers (used by the preferences app). The library exposes a versioned ABI (symbol version scripts in `src/libgpaste/`). GIR and Vala bindings are generated from it. **`GPasteKeybindingProvider`** is a GObject interface (`G_DECLARE_INTERFACE`) that abstracts keybinding grabbing. It declares `grab_all(accels[])` / `ungrab_all()` vtable methods and a `keybinding-activated(const gchar *id)` signal. Implemented by `GPasteGnomeShellClient`, `GPasteGlobalShortcutClient`, and the daemon-internal `GPasteInternalKeybindingProvider`. The `GPasteKeybindingAccelerator` struct `{ const gchar *id; const gchar *accelerator; }` is the transfer type between keybinder and provider; arrays are null-terminated by `.id = NULL`. **`GPasteGlobalShortcutClient`** wraps the XDG GlobalShortcuts portal (`org.freedesktop.portal.Desktop`). It implements `GPasteKeybindingProvider`; the portal session is created lazily on the first `grab_all` call. The public API is limited to constructors and the GObject type — all shortcut registration goes through the provider interface. Internally it stores registered shortcuts as a `GPtrArray` of private `_Shortcut` structs and handles the portal's Request/Response async pattern transparently. **`GPasteGnomeShellClient`** implements `GPasteKeybindingProvider` using GNOME Shell's `GrabAccelerators` D-Bus API. It stores a `GHashTable` mapping shortcut id → GNOME Shell action id, retries on `G_DBUS_ERROR_UNKNOWN_METHOD` (up to 10 times), and watches the shell bus name to re-grab on shell restart. **GObject type macros** — use these in `.c` files: | Macro | Use when | |---|---| | `G_PASTE_DEFINE_TYPE` | Simple concrete type, no private data, no interface | | `G_PASTE_DEFINE_TYPE_WITH_PRIVATE` | Concrete type with a `Private` struct | | `G_PASTE_DEFINE_TYPE_WITH_PRIVATE_AND_INTERFACE` | Concrete type with private data **and** one interface implementation | | `G_PASTE_DEFINE_ABSTRACT_TYPE_WITH_PRIVATE` | Abstract base class with private data | `G_PASTE_DEFINE_TYPE_WITH_PRIVATE_AND_INTERFACE(TypeName, type_name, ParentType, IFACE_TYPE, iface_init)` expands to `G_DEFINE_TYPE_WITH_CODE` + `G_ADD_PRIVATE` + `G_IMPLEMENT_INTERFACE` and also generates the const-safe `_g_paste__get_instance_private` accessor (annotated `G_GNUC_UNUSED` so it does not warn when not called). ### `src/daemon/` — `gpaste-daemon` The background service. Owns the clipboard history and exposes it over D-Bus (`org.gnome.GPaste`). Handles: - Clipboard watching (primary + clipboard selections) - Item types: text, password, image, URI - Keybinding registration via a three-level fallback: XDG GlobalShortcuts portal → GNOME Shell → internal X11/Wayland (`GPasteInternalKeybindingProvider`); all three implement `GPasteKeybindingProvider` - History persistence to disk ### `src/client/` — `gpaste-client` CLI tool for scripting and shell integration. Talks to the daemon via `GpasteClient`. Entry point for subcommands like `ui` (launches the GTK UI) and `daemon-reexec`. ### `src/ui/` — `gpaste-ui` (GTK4 + libadwaita) The main graphical history browser. Launched via `gpaste-client ui`. Contains widgets for the history list, item actions, search, and settings panel. Uses libadwaita widgets extensively: - `AdwApplicationWindow` (via `G_PASTE_GTK_INIT_APPLICATION` which uses `AdwApplication`) - `AdwHeaderBar` with `AdwWindowTitle` (current history name shown as subtitle) - `AdwShortcutsDialog` / `AdwShortcutsSection` / `AdwShortcutsItem` (keyboard shortcut help) - `AdwToastOverlay` (wraps main content for future toast notifications) - `AdwBanner` (shown on daemon connection failure) - `AdwNavigationSplitView` (responsive split: history selector panel + history list) - `AdwStatusPage` (shown when history is empty or search has no results) - `AdwEntryRow` (in panel's "Switch to history" entry, inside a `boxed-list` GtkListBox) - `AdwSidebar` / `AdwSidebarSection` / `AdwSidebarItem` (history selector list in the panel sidebar, libadwaita 1.9) - `AdwAboutDialog` (about dialog) **Subclassing notes:** GTK4 made many widget classes final (`G_DECLARE_FINAL_TYPE`), preventing subclassing. Libadwaita re-enables subclassing for its own derivable types. Within the ui, internal widgets subclass derivable types: `GtkBox` (for `GPasteUiPanel`, `GPasteUiHistory`), `AdwApplicationWindow` (for `GPasteUiWindow`), `AdwSidebarItem` (for `GPasteUiPanelHistory` — a GObject, not a widget), etc. `GtkStack` is final in GTK4 and cannot be subclassed — use `GtkBox` with manual visibility toggling instead. **Label widgets in list rows** use `GtkInscription` (not `GtkLabel`) for the main text display. `GtkInscription` is optimised for list-item cells and avoids overhead from markup/accessibility features not needed there. Set overflow explicitly with `gtk_inscription_set_text_overflow(GTK_INSCRIPTION_OVERFLOW_ELLIPSIZE_END)` — the default is `CLIP`. To display bold text, use `pango_parse_markup` to convert a markup string into `PangoAttrList` and pass it to `gtk_inscription_set_attributes`; call `gtk_inscription_set_attributes(NULL)` before `set_text` when switching back to plain text. **AdwSidebar** (libadwaita 1.9) is used in `GPasteUiPanel` to list available histories. `GPasteUiPanelHistory` subclasses `AdwSidebarItem` (a `GObject`, not a widget) to represent each history entry. The right-click context menu (backup/empty/delete) is driven by a `GMenuModel` set on the sidebar, with `GSimpleAction`s installed on the panel widget under the `panel.` prefix. ### `src/preferences/` — GTK4 + Adwaita preferences application Standalone preferences window. Uses GTK4 and libadwaita for a modern look. ### `src/gnome-shell/` — GNOME Shell extension (JavaScript) Native shell integration. Provides the panel indicator and quick-access popover. Communicates with the daemon via D-Bus. Lives under the standard GNOME Shell extension layout with `extension.js` as entry point. ### `data/` Non-code resources: D-Bus service files (`dbus/`), `.desktop` entries, GSettings schemas (`gsettings/`), systemd user units, AppStream metadata. ### `po/` Translations managed via Weblate. Add new strings to the relevant `.c` source with `_()` / `N_()` and update `po/POTFILES.in` if adding a new file. ## Key dependencies - GLib/GObject/Gio ≥ 2.84 - GTK4 ≥ 4.12 + libadwaita ≥ 1.9 (UI and preferences; 1.9 required for `AdwSidebar`) - GCR (`gcr-4`) ≥ 3.90 (password item storage) - gjs ≥ 1.78 (GNOME Shell extension runtime) - Optional: libX11 + libXI (x-keybinder) Image items use `GdkTexture` from GTK4 directly — there is no longer a GdkPixbuf dependency. On Fedora: `dnf install meson ninja-build glib2-devel gtk4-devel gcr-devel libadwaita-devel gjs-devel` Keruspe-GPaste-724def1/AUTHORS000066400000000000000000000001051521206431300157700ustar00rootroot00000000000000Lead developer Marc-Antoine Perennou Keruspe-GPaste-724def1/COPYING000066400000000000000000000024651521206431300157660ustar00rootroot00000000000000Copyright (c) 2010-2026, Marc-Antoine Perennou All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Keruspe-GPaste-724def1/ChangeLog000066400000000000000000000002201521206431300164700ustar00rootroot000000000000002011-06-29 Marc-Antoine Perennou * *: The ChangeLog is autogenerated when releasing, see git log for changes Keruspe-GPaste-724def1/NEWS000066400000000000000000001110351521206431300154240ustar00rootroot00000000000000NEW in 50.1 (09/06/2026) ============= - Fix building with -Dgnome-shell=false: the UI's Pango dependency was only pulled in when the GNOME Shell extension was enabled, so a build without the extension failed to configure - Restore GTK deprecation version-gating (GDK_VERSION_MIN_REQUIRED/MAX_ALLOWED) and drop the unused build-time gjs dependency - The GNOME Shell extension now targets GNOME Shell 50 - Bump the libgpaste and libgpaste-gtk4 soversions to reflect the API/ABI changes since 45.8 (the GTK 4 port), which the 50.0 release omitted to do NEW in 50.0 (08/06/2026) ============= - Port GPaste to GTK 4 and libadwaita: the daemon, history UI and preferences are now GTK 4 applications; the GTK 3 and GdkPixbuf dependencies (and libgpaste-gtk3) have been dropped - Show image thumbnails in the history, with settings to toggle previews and choose their size - Support global keyboard shortcuts on Wayland through the XDG GlobalShortcuts portal (portal → GNOME Shell → internal X11 fallback) - Recognise colours copied to the clipboard as dedicated colour items - Track more rich clipboard content (additional special MIME types) - Give keybindings human-readable descriptions - Install a desktop file for the daemon (D-Bus activation) - Fix images sometimes being repeatedly re-added to the history: images are now deduplicated against the whole history and their checksum is persisted - Fix keyboard shortcuts not triggering when NumLock and CapsLock are both active - Fix a use-after-free crash in the GNOME Shell search provider - Fix crashes when interacting with the UI while it is still loading or closing - Fix crashes in the GNOME Shell extension when it is disabled mid-operation - Fix a potential crash when enforcing a very small history size - Fix memory leaks when re-copying items, rebinding shortcuts and around image/UI lifetimes - Fix the history list staying hidden after a search that first returned no results - Fix the preferences accepting out-of-range values - Write the history file atomically to reduce corruption risk - GNOME Shell extension: retry the daemon connection before giving up, and modernise the JavaScript to current GNOME Shell conventions - Numerous internal modernisations (async I/O via GTask, GSignalGroup, static GSettings schema) NEW in 45.8 (07/06/2026) ============= - Fix use-after-free crash in the GNOME Shell search provider - Fix keyboard shortcuts not triggering when NumLock and CapsLock are both active - Fix memory leaks when re-copying history items and when rebinding shortcuts - Fix potential crash when enforcing a very small history size - Build: ship the GSettings schema as a static file NEW in 45.7 (06/06/2026) ============= - GNOME Shell extension now retries the daemon connection before giving up (#481) - Fix test crash when GrabAccelerators is not allowed - Build: simplify gsettings compilation for tests NEW in 45.6 (25/05/2026) ============= - Fix GC crash and signal leak when disabling the GNOME Shell extension (#435, #278) - GNOME Shell extension now handles daemon connection failure gracefully (Refs #478) - Fix crash when a history item has no value yet (#410) - Fix image files not being deleted when history items are removed (#423) - Fix image files stored in wrong directory (#423) - Fix keyboard focus being stolen by history items on hover (#435) - Fix key events incorrectly forwarded to search when another entry has focus (#308) - Fix signal loop when updating shortcut entries from settings - Fix default history item count not reset after history deletion (#389) - Enforce minimum window size to prevent unresizable state (#463) - Add descriptive tooltips for 'Sync daemon' and 'Detect growing lines' settings (#342) - Build: explicitly link libgpaste libraries against libc (#401) - Translations updates NEW in 45.5 (24/05/2026) ============= - Fix infinite Pango assertion loop that could fill disk when clipboard content contained tab characters (#469) - Various bug fixes and memory management improvements - Daemon improvements - GNOME Shell extension improvements - GLib >= 2.76 is now required - Translations updates NEW in 45.4 (02/04/2026) ============= - Support gnome 50 - Support gnome 49 - Translations updates NEW in 45.3 (14/04/2025) ============= - Support gnome 48 - Translations updates NEW in 45.2 (21/09/2024) ============= - Support gnome 47 - Translations updates NEW in 45.1 (21/03/2024) ============= - Support gnome 46 - Translations updates NEW in 45 (16/09/2023) ============= - Port to gnome 45 - Add setting to open ui window centered - Translations updates NEW in 44.1 (14/07/2023) ============= - Fix a bug leading to history with only one item NEW in 44.0 (24/03/2023) ============= - gcr 4 is now required - Port to gnome 44 NEW in 43.3 (14/07/2023) ============= - Fix a bug leading to history with only one item NEW in 43.2 (20/03/2023) ============= - Avoid crash under heavy memory load NEW in 43.1 (03/01/2023) ============= - Respect --use-index when displaying history - Translations updates NEW in 43.0 (27/09/2022) ============= - Port to GNOME 43 - Internal preparation for gtk4 port - Translations updates NEW in 42.5 (14/07/2023) ============= - Fix a bug leading to history with only one item NEW in 42.4 (20/03/2023) ============= - Avoid crash under heavy memory load NEW in 42.3 (03/01/2023) ============= - Respect --use-index when displaying history NEW in 42.2 (27/09/2022) ============= - Open GPaste UI where the mouse pointer is NEW in 42.1 (21/03/2022) ============= - Fixes to the new preferences tool - Style fixes - Translations updates NEW in 42.0 (19/03/2022) ============= - Old libgpaste replaced by a new minimal libgpaste-2 with no gtk dependency - New libgpaste-gtk3 for utils and settings ui - New libgpaste-gtk4 for utils and preferences ui - New gtk4 based gpaste-preferences utility - Autotools are no longer supported - Extension updated for gnome-shell 42 - Translations updates NEW in 3.42.10 (14/07/2023) ============= - Fix a bug leading to history with only one item NEW in 3.42.9 (20/03/2023) ============= - Avoid crash under heavy memory load NEW in 3.42.8 (03/01/2023) ============= - Respect --use-index when displaying history NEW in 3.42.7 (27/09/2022) ============= - Open GPaste UI where the mouse pointer is NEW in 3.42.6 (15/02/2022) ============= - fix the storage path in meson builds NEW in 3.42.5 (15/02/2022) ============= - fix some race conditions in history handling NEW in 3.42.4 (15/02/2022) ============= - better fix crash when there is no history yet NEW in 3.42.3 (15/02/2022) ============= - fix crash when there is no history yet - translations update NEW in 3.42.2 (24/11/2021) ============= - fix gnome-shell exntesion when the daemon restarts - translations update NEW in 3.42.1 (30/10/2021) ============= - fix keybindings on wayland - translations update NEW in 3.42.0 (28/09/2021) ============= - port to gnome-shell 41 - translations update NEW in 3.40.5 (03/01/2023) ============= - Respect --use-index when displaying history NEW in 3.40.4 (27/09/2022) ============= - Open GPaste UI where the mouse pointer is NEW in 3.40.3 (26/09/2021) ============= - translations update NEW in 3.40.2 (30/04/2021) ============= - fix a crash in memory usage checking NEW in 3.40.1 (10/04/2021) ============= - fix build with meson NEW in 3.40.0 (09/04/2021) ============= - port to gnome-shell 40 - placeholder for gnome-shell prefs NEW in 3.38.6 (08/03/2021) ============= - fix X11 keybinder outside of GNOME NEW in 3.38.5 (03/02/2021) ============= - better handling and reporting of invalid uuids passed to gpaste-client - gpaste-client now has a --use-index argument for several subcommands to use index instead of uuid NEW in 3.38.4 (22/12/2020) ============= - fix the make-password keybinding - updated translations NEW in 3.38.3 (02/11/2020) ============= - gnome-shell extension warning fixes - updated translations NEW in 3.38.2 (03/10/2020) ============= - gnome-shell extension cosmetic updates NEW in 3.38.1 (01/10/2020) ============= - Disable images support by default (can be reenabled in preferences) - Search now includes passwords (using their names) - systemd integration enhancements NEW in 3.38.0 (15/09/2020) ============= - Drop the Tracking DBus signal - Switch to uuids to identify items - Bump DBus interface to org.gnome.GPaste2 - Update to gnome-shell 3.38.0 NEW in 3.36.5 (08/03/2021) ============= - fix X11 keybinder outside of GNOME NEW in 3.36.4 (03/10/2020) ============= - gnome-shell extension cosmetic updates NEW in 3.36.3 (27/03/2020) ============= - Fix activating items using Ctrl-Number in gnome-shell NEW in 3.36.2 (19/03/2020) ============= - Fix keybinding regrab with gnome-shell NEW in 3.36.1 (19/03/2020) ============= - Fix keybinding grab with gnome-shell NEW in 3.36.0 (08/03/2020) ============= - Update to gnome-shell 3.36.0 NEW in 3.34.4 (27/03/2020) ============= - Fix activating items using Ctrl-Number in gnome-shell NEW in 3.34.3 (19/03/2020) ============= - Fix keybinding regrab with gnome-shell NEW in 3.34.2 (19/03/2020) ============= - Fix keybinding grab with gnome-shell NEW in 3.34.1 (09/10/2019) ============= - Compatibility with recent appstream-glib NEW in 3.34.0 (09/09/2019) ============= - Update to gnome-shell 3.34.0 NEW in 3.32.1 (27/03/2020) ============= - Compatibility with recent appstream-glib - Fix keybinding regrab with gnome-shell - Fix activating items using Ctrl-Number in gnome-shell NEW in 3.32.0 (12/03/2019) ============= - Update to gnome-shell 3.32.0 - Allow loading settings from ~/.config/gpaste/settings NEW in 3.30.2 (14/11/2018) ============= - Fix warnings with gcc 8 - Fix ItemSelected dbus signal - Fix crash with recent gnome-shell when emptying history NEW in 3.30.1 (08/09/2018) ============= - workaround a bug in gnome-shell 3.30.0 NEW in 3.30.0 (08/09/2018) ============= - silence warnings with gcc 8 - update dependencies for gnome 3.30 NEW in 3.28.3 (14/11/2018) ============= - Fix warnings with gcc 8 - Fix ItemSelected dbus signal - Fix crash with recent gnome-shell when emptying history NEW in 3.28.2 (13/04/2018) ============= - fix a crash in images support NEW in 3.28.1 (26/03/2018) ============= - gnome-shell extension cleanups - allow disabling the confirmation dialog for emptying history NEW in 3.28.0 (13/03/2018) ============= - gpaste-daemonn now emits a dbus signal when an item is selected - gpaste-client can now print the history in reverse order - drop gtk4 support, it will come back later - API adjustments to prepare for the future gtk4 port - ask confirmation before emptying a history NEW in 3.26.3 (13/04/2018) ============= - fix a crash in images support NEW in 3.26.2 (08/03/2018) ============= - fix regression in gnome-shell extension - fix another potential images memory leak NEW in 3.26.1 (07/03/2018) ============= - fix memory leaks in images support - silence a warnings in the gnome-shell extension NEW in 3.26.0 (16/09/2017) ============= - Javascript modernizations - Adapt to gjs 1.50 - Adapt to gnome-shell/mutter 3.26 - use the new clipboardText feature in the search provider - gtk4 3.91.2 compatibility NEW in 3.24.6 (13/04/2018) ============= - fix a crash in images support NEW in 3.24.5 (08/03/2018) ============= - fix regression in gnome-shell extension - fix another potential images memory leak NEW in 3.24.4 (07/03/2018) ============= - fix memory leaks in images support - silence a warnings in the gnome-shell extension NEW in 3.24.3 (16/09/2017) ============= - Pagination fixes in the gnome-shell extension - Fix some cransh in gpaste-ui NEW in 3.24.2 (19/05/2017) ============= - `gpaste-client add` now accepts reading from stdin - you can't have two passwords with the same name in the history anymore - prevent a bug adding a password both as password and text in come case NEW in 3.24.1 (08/04/2017) ============= - fix a regression in Passwords handling NEW in 3.24.0 (07/04/2017) ============= - change the history format to 2.0 to be more flexible (backward compatible) - unify and consolidate some clipboard interactions - handle text/html and text/xml mime types NEW in 3.23.90 (20/03/2017) ============= - applet and unity app-indicator have been removed - a minimal applet is available there: https://github.com/Keruspe/gpaste-applet - Dutch translation has been added - gtk4 is now supported (--with-gtk=4.0) - gnome-shell/mutter 3.24 are now supported and required - ui will now close when you select an item (configurable) - more intuitive search interactions in the ui - preparations for future other storage backends - preparations for mime types support - more reliable "paste" behaviour part in some corener cases NEW in 3.22.7 (13/04/2018) ============= - fix a crash in images support NEW in 3.22.6 (08/03/2018) ============= - fix regression in gnome-shell extension - fix another potential images memory leak NEW in 3.22.5 (07/03/2018) ============= - fix memory leaks in images support - silence a warnings in the gnome-shell extension NEW in 3.22.4 (19/05/2017) ============= - `gpaste-client add` now accepts reading from stdin - you can't have two passwords with the same name in the history anymore - prevent a bug adding a password both as password and text in come case NEW in 3.22.3 (28/02/2017) ============= - fix switch in gnome-shell extension - fix some wrongly detected growing line NEW in 3.22.2 (17/02/2017) ============= - fix memory leaks in the debugging logs - fix some corner case in images handling - fix crash in UI when refreshing during search - stability improvements NEW in 3.22.1 (30/11/2016) ============= - Fix some build system issues for vala and gobject-introspection NEW in 3.22.0 (08/10/2016) ============= - Depend on gtk+ 3.22, glib 2.50, gobject-introspeciton 1.50 - Bug fixes and simplifications in pagination handling for gnome-shell - Fix bug with clipboard/primary selection synchronisation - Fix racy calls to gtk_clipboard_store NEW in 3.21.91 (17/09/2016) ============= - Lots of fixes in the gnome-shell extension pagination - Fix a crash when trying to add binary data with gpaste-client - Use GLib new structured logging - Update appstream files NEW in 3.21.90 (09/09/2016) ============= - Port from intltool to gettext - pkg-config 0.29 is now required - Port to the internal mutter-clutter - gnome-shell extension cleanup - Add pagination to gnmoe-shell extension NEW in 3.20.8 (13/04/2018) ============= - fix a crash in images support NEW in 3.20.7 (08/03/2018) ============= - fix memory leaks in images support - silence a warnings in the gnome-shell extension NEW in 3.20.6 (28/02/2017) ============= - fix switch in gnome-shell extension - fix refresh with search in the ui - fix some wrongly detected growing line NEW in 3.20.5 (17/02/2017) ============= - fix memory leaks in the debugging logs - fix some corner case in images handling - stability improvements NEW in 3.20.4 (28/06/2016) ============= - Fix some extensive CPU usage in some cases NEW in 3.20.3 (14/06/2016) ============= - Fix soname versioning NEW in 3.20.2 (24/05/2016) ============= - Add missing icon NEW in 3.20.1 (23/05/2016) ============= - Fix crash when a search goes wrong - Fix hanging issue due to gtk+ race (?) in gtk_clipboard_store - Fix the gnome-shell menu sometimes displaying twice - Add debug logs to the core library - Fix some build issues with some toolchains NEW in 3.20 (23/03/2016) ============= - Relicensing from GPL-3 to BSD-2 - Detect the presence of more features at runtime instead of compile time - The gpaste-client cli has been mostly rewritten - "gpaste-client file" now supports adding images to the history - The legacy "gpaste" cli is gone - gnome-shell extension cleanups and compatibility with 3.20 - automake 1.15 is required - pkg-config 0.27 is required - gtk+ 3.20, vala 0.32 (if --enable-vapi) and gobject-introspection 1.48 are required - gpaste-ui now has a "new" button to add new contents to the clipboard - The daemon now reexecs itself on SIGUSR1 - Avoid having two passwords under the same name in history - libgpaste now logs into its own G_LOG_DOMAIN - GPaste components now write their pid to a file - A new tool is provided for debugging, but not installed: clipboard-watcher - systemd user units are provided - Build system cleanups - Outdated translations have been dropped - gobject-introspection fixes - Fix style with gtk+ 3.20 - Implement the new shotcut window from gtk+ - Various code cleanups NEW in 3.18.8 (13/04/2018) ============= - fix a crash in images support NEW in 3.18.7 (08/03/2018) ============= - fix memory leaks in images support - silence a warnings in the gnome-shell extension NEW in 3.18.6 (17/02/2017) ============= - fix memory leaks in the debugging logs - fix some corner case in images handling - stability improvements NEW in 3.18.5 (28/06/2016) ============= - fix some extensive CPU usage in some cases NEW in 3.18.4 (22/05/2016) ============= - fix crash when a search goes wrong - fix hanging issue due to gtk+ race (?) in gtk_clipboard_store - fix the gnome-shell menu sometimes displaying twice - add debug logs to the core library NEW in 3.18.3 (15/01/2016) ============= - fix synchronisation issues between clipboard and primary selection - fix a memory leak - never handle images when images support is disabled NEW in 3.18.2 (16/10/2015) ============= - fix disabling legacy cli - fix gnome-shell empty button - fix emptying the active history - fix showing about dialog - update brazilian portuguese translation NEW in 3.18.1.1 (27/09/2015) ============= - few build system cleanups - gobject-introspection fixes NEW in 3.18.1 (23/09/2015) ============= - fix a regression in growing lines detection NEW in 3.18 (21/09/2015) ============= - Warning, this is a big release, with changes in API, you might have to kill your old daemon after upgrading - The "gpaste" cli is now "gpaste-client". old name can still be enabled with --enable-cli for now - The "gpaste settings" tool is gone, use the "burger" menu from "gpaste-client ui" - The graphical tool now allows you to fully manage your histories - The graphical tool now allows you to restart the daemon - The graphical tool now allows you to edit an element from the history - The graphical tool new allows you to upload an element to a pastebin service (requires wgetpaste) - The graphical tool now displays the size of each history - The graphical tool now displays the index of each element in the history - The graphical tool has been slightly redisigned - A new gnome-shell search-provider is provided by the daemon - When searching e.g. "42", the 42nd element from hsitory will be included in search results - gpaste-client gained a new subcommand: "get-history" to get the name of the current history - gpaste-client gained a new subcommand: "replace" to replace the content of an item in the history - Compatibility with gnome-shell 3.18 - The daemon now "works" on wayland using XWayland and gnome-shell 3.18 - The dbus interface name is now org.gnome.GPaste1 - The "Empty" dbus method has been renamed "EmptyHistory" - The "NameLost" and "ReexecuteSelf" dbus signals are gone - Three new dbus signals: "DeleteHistory", "EmptyHistory" and "SwitchHistory" - The daemon gained new dbus methods: GetItemKind, GetElements, GetHistoryName, Replace - BackupHistory EmptyHistory and DeleteHistory now take the history as a parameter instead of the current one - GPasteClient hasn't the "name-lost" and "reexecute-self" signals anymore - GPasteClient gained three new signals: "delete-history", "empty-history" and "switch-history" - GPasteHistory gained a new "switch" signal - GPasteHistory now tracks dconf to switch between histories - A few formerly private constructors and methods are now publicly available - The way GPaste handles dbus conection and objects have significantly been reworked - Everything is now handled using 64bits types (the numeric settings have thus been reset and some max values changed) - A lot of code cleanup and rearchitecturation - Signals are now properly documented for gobject-introspection and thus bindings - Various build system cleanups (gobject-introspection and vapigen are now required to build from git - Shell completion updates - Translations updates NEW in 3.16.3.1 (23/09/2015) ============= - fix a regression in growing lines detection NEW in 3.16.3 (05/09/2015) ============= - various gnome-shell extension fixes - prevent potential crash from external library users NEW in 3.16.2.1 (11/05/2015) ============= - gpaste; fix error in pipe detection NEW in 3.16.2 (11/05/2015) ============= - gpaste; allow taking password from stdin NEW in 3.16.1 (29/04/2012) ============= - bump max history size - fix weird behaviour wrt screensaver NEW in 3.16 (23/03/2015) ============= - new subcommand: gpaste merge to merge various entries (with --decoration and --separator) - new tool: gpaste-ui (minimal graphical interface) - legacy applet reworked to use gpaste ui - ubuntu app indicator reworked to use gpaste ui - new keybinding to launch gpaste ui - new keybinding to upload clipboard content to a pastebin service (requires wgetpaste >= 2.26) - the daemon now returns standard DBus errors on invalid input - name dbus parameters - gnome-shell 3.16 support (require gnome-shell 3.16 because of breaking changes) - require glib 2.44 and gtk 3.16 - compatibility with new glib autoptr mechanism - fully switch to appstream - updated shell completions - updated translations - various libgpaste api cleanups (bump soname to 3, rework libtool versioning) - detect applet and app-indicator at runtime instead of build time - fix bug with recent glib - make a lot more stuff async - gpasted is dead (long live gpaste-daemon) - Changed DBus signal is dead - drop old ubuntu compat patches - drop gpaste-config.h - drop old manual pages for applet and app-indicator - drop legacy gpaste subcommands (raw, oneline, zero, favor --raw, --oneline and --raw) - various bugfixes - some progress regarding wayland support NEW in 3.14.4.1 (11/05/2015) ============= - gpaste; fix error in pipe detection NEW in 3.14.4 (11/05/2015) ============= - gpaste; allow taking password from stdin NEW in 3.14.3 (21/03/2015) ============= - fix crashes related to images support NEW in 3.14.2 (07/03/2015) ============= - improve zsh completion - fix a bug causing the gnome-shell extension to randomly crash NEW in 3.14.1 (17/01/2015) ============= - search is now always done by the daemon, not the gnome-shell extension - new gpaste subcomand: search - gpaste now accepts --online --raw and --zero options - search is now async - various gnome-shell extension fixes - updated completions - we now restore the clipboard contents when unlocking the screensaver NEW in 3.14 (10/10/2014) ============= - update for latest gobject-introspection - support gnome-shell 3.14 - start redesign of the gnome-shell extension - new gpaste show-history command NEW in 3.12.3.1 and 3.10.4.1 (09/10/2014) ============= - a bug preventing the history to be saved to disk has been fixed - prevent a segfault when loading large histories - add a new gpaste oneline-history command NEW in 3.12.3 and 3.10.4 (25/09/2014) ============= - gpaste-daemon now has an Update dbus signal more precise than Changed - desktop files fixes - all calls to clipboard are now async - performance improvements - gpaste-client has been updated to match gpaste-daemon changes with an update signal - gnome-shell extension has been ported to the update signal - applets have been ported to the update signal - gnome-shell search bar now matches the user theme NEW in 3.12.2 and 3.10.3 (28/07/2014) ============= - gpasted has been renamed gpaste-daemon - Desktop files have been fixed - Fixes for the ubuntu app-indicator - Keybinding to mark an item as being a password - All libgpaste-* have been merged into a single libgpaste - Misc bugfixes reported for debian packaging NEW in 3.12.1 and 3.10.2 (16/07/2014) ============= - systemd support has been removed - GPaste is now compliant with https://wiki.gnome.org/HowDoI/DBusApplicationLaunching - GPaste now has built-in support for managing passwords, blog post coming. - Completions and man pages have been updated - Translations have been updated - Miscellaneous bugfixes with static analysis - The search feature of the gnome-shell extension has been improved NEW in 3.12 (02/05/2014) ============= - Improved compatibility with GNOME 3.12 NEW in 3.10.1 (01/05/2014) ============= - gpasted no longer fails at runtime if gnome-shell's settings schema is not installed - growing lines are detected for lines getting expanded at their left too - gnome-shell extension has been rewritten - gnome-shell extension now has a search bar - translations update - misc bugfixes NEW in 3.10 (25/03/2014) ============= - Follow GNOME versionning - Don't display error on daemon-reexec - Fix coredumps due to g_error - New library: libgpaste-applet - Unity support (for Ubuntu 14.04 and above) using libgpaste-applet - Port legacy applet to libgpaste-applet and rename to StatusIcon - Redesign GPaste StatusIcon to make it simpler and similar to gnome-shell extension - Vala is no longer required to build the applet (rewritten in C) - Lower automake dependency to 1.11 - Be compatible with gnome-shell up to 3.12 - libgpaste-settings: add reset - gpaste settings: add reset buttons - gpaste settings: add a switch to enable the gnome-shell extension - The gnome-shell gsettings schema is now required when --enable-extension is provided (default) - gpasted: GetElement now returns the display string - gpasted now forwards the full history via dbus, letting the client manage the display limit - gpasted gained GetHistoryLength, GetRawHistory, GetRawElement and About - gpasted gained a new Version property - Add about dialog to all components - Prefer dark theme - Display more info at the end of configure - Provide appdata files - Parallel build fixes - Fix build issues for Fedora, Ubuntu and Debian - clang related fixes - Fix warnings - Translations update NEW in 3.8 (10/02/2014) ============= - Fix german translation - No longer depend on libxml - Update Portugueuse and French translations - New growing-lines feature - Misc bufixes NEW in 3.7 (09/11/2013) ============= - "Paste and Pop" is now only "Pop" - Fix SEGV when deleting last item of history - New gnome-shell DBus client library - DBus client libraries are now async - Keybinder now uses gnome-shell if available to grab keys - Preparations for wayland port - Enhance internal memory management - Code cleanup - Misc bug fixes - German translation NEW in 3.6 (17/10/2013) ============= - GPaste settings look has been updated to better fit with recent GNOME - Performance improvements - Daemon now fully evenmential (no more polling, less power consuption) - GPasteClipboard now has a "owner-change" signal similar to GtkClipboard's one - Misc. bugfixes - New setting to set the maximum amount of memory used by data in history - FIFO mode has been dropped (lacking design) - Code cleanup and modernisation - g_paste_history_add is now transfer full NEW in 3.5 (25/09/2013) ============= - Compatibility with gnome-shell 3.9.90 and above - The gnome-shell applet has totally been rewritten and is now more intuitive. - Port to newer glib - Don't use deprecated stuff from gtk+ - The X11 keybinder is now optional - New keybinding to sync the clipboard to the primary selection - New keybinding to sync the primary selection to the clipboard NEW in 3.3.1 (22/03/2014) ============= - Build fixes for debian wheezy NEW in 3.3 (22/02/2014) ============= - New growing-lines feature (backported from 3.8) NEW in 3.2.2 (22/10/2013) ============= - "Paste and Pop" is now only "Pop" - Fix SEGV at startup - Fix SEGV when deleting last item of history NEW in 3.2.1 (19/10/2013) ============= - Update translations - Fix build with old glib NEW in 3.2 (16/10/2013) ============= - Performance improvements - Daemon now fully evenmential (no more polling, less power consuption) - GPasteClipboard now has a "owner-change" signal similar to GtkClipboard's one - Misc. bugfixes - New setting to set the maximum amount of memory used by data in history - FIFO mode has been dropped (lacking design) - g_paste_history_add is now transfer full NEW in 3.1 (23/09/2013) ============= - Compatibility with gnome-shell up to 3.9.5 - New keybinding to sync the clipboard to the primary selection - New keybinding to sync the primary selection to the clipboard NEW in 3.0.2 (01/06/2013) ============= - Fix build without gnome-control-center installed - Fix focus when using in gnome-shel extension NEW in 3.0.1 (13/04/2013) ============= - Fix build NEW in 3.0 (13/04/2013) ============= - Various build fixes - Support of gnome-control-center for setting keybindings - Compatibility with newer gnome-shell NEW in 2.99.2 (22/01/2013) ============= - Fix a bug making gpaste settings ui a no-op - Don't close legacy applet menu when deleting an item - Fix vala bindings - Updated portuguese translation NEW in 2.99.1 (15/01/2013) ============= - Fix a few typos in the conditional code for applet and extension - Fix make install when GPaste is not yet installed - Clean desktop files NEW in 2.99 (14/01/2013) ============= - Compatibility with recent development releases of gnome-shell - "gpaste f" now defers the file reading to the GPaste daemon - libgpaste-client does now fully cover the GPaste DBus API - libgpaste-keybinder has been ported to use XInput2 - keybindings have been fixed - The gnome-shell extension has been ported to use libgpaste-client - A systemd user unit is now provided - New library: libgpaste-settings-ui - gpaste-settings has been ported to libgpaste-settings-ui - The gnome-shell extension now has a pref.js module based on libgpaste-settings-ui - An autostart desktop file is now provided with the legacy applet - gobject-introspection and vala support are now optional - Various code cleanup NEW in 2.9.1 (01/12/2012) ============= - Fix memory leak when handling images - Fix duplicated images in history - Fix "changed" signal in GPasteSettings NEW in 2.9 (29/09/2012) ============= - Now depends on intltool 0.50 - Automake stack is even more modular - libgpaste has been split into sublibs: libgpaste-core, libgpaste-keybinder and libgpaste-settings - New libraries: libgpaste-client and libgpaste-daemon - gpaste CLI is rewritten in C - Keybindings have totally been reworked - Performance improvements - Various code cleanup - Images support can now be disabled - Paste and Pop keybinding may behave weirdly because of gtk+ NEW in 2.8.1 (05/05/2012) ============= - Fix crash in g_paste_daemon_tracking NEW in 2.8 (02/05/2012) ============= - Various cleanup and bugfixes - The history file now has a version number - CDATA can now be copied - ToggleHistory is now ShowHistory - The "keyboard-shortcut" preferences is now called "show-history" - New feature : Paste & Pop with a new keybinding (experimental) - Vapi is no longer shipped and is generated when building - Now requires automake 1.12 and autoconf 2.69 - Brazilian Portuguese translation by Elder Marco - FIFO mode - Multi-history with "gpaste backup-history" and "gpaste switch-history" - New commands: "gpaste delete-history" and "gpaste list-histories" - gpaste-settings has been rewritten - libgpaste improvements NEW in 2.5 (08/03/2012) ============= - Reexecute has now a signal: ReexecuteSelf - New library to externalize the core: libgpaste written in C with introspection and vapi - Various build system cleanup - Small bug fixes - Port gpasted to libgpaste and rewrite it in C - Port gpaste-settings to libgpaste - Port gpaste-applet to libgpaste NEW in 2.2.1 (07/01/2012) ============= - Regen tarball with intltool 0.41.1 NEW in 2.2 (07/01/2012) ============= - Content is now stripped before being added to clipboard - New settings for maximum and minimum size of an item (thanks to Lukáš Zapletal) - Various code cleanup - Fix keybinding handling (conflict with mutter in keyboard grabbing) - Ability to stop tracking changes when disabling extension - Rewrite of gpaste-settings NEW in 2.1 (01/12/2011) ============= - Fix a bug which was "randomly" deleting image files - Generate tarball with sane vala to unbreak keybindings NEW in 2.0 (27/11/2011) ============= - Updated finnish translation - Cleanups - Fix separators disapearing in gnome-shell extension - Don't close menu when deleting items - Uris support (files copying) - Rewrite of bash and zsh completions - Various fixes NEW in 1.99 (2.0 RC) (02/11/2011) ============= - Finnish translation by Jesse Jaara - Be consistent with the shell applet menu structure - New gpaste subcommand: raw-history to display history without numbers - Switch to GDbus - New images support (feedback appreciated) NEW in 1.6 (20/09/2011) ============= - Make hotkey work with legacy applet - New GPaste subcommand for upgrading facilities: gpaste daemon-reexec - Major autotools cleanup - Fix linkage of gpasted against X11 - Bugfixes - Espagnol translation by Antonio Trujillo NEW in 1.5 (11/09/2011) ============= - No trace of the applet at all with --disable-applet - No more "shutdown-on-exit" key, just use the prefs or the command line - Preparation for future images support - History file is now ~/.gpaste_history - Use AM_PROG_VALAC - New "gpaste get " command for subshell usage (And GetElement DBus method) - Get rid of AM_MAINTAINER_MODE - Add possibility to have a keyboard shortcut to display the history - Do not add to history the last selected item when re tracking for changes NEW in 1.4 (07/09/2011) ============= - pod2man is no more needed - Add ability not to save the history from one session to another - Fix segfault at daemon startup with invalid utf8 string NEW in 1.3.1 (03/09/2011) ============= - Nothing NEW in 1.3 (31/08/2011) ============= - New gpaste option: file/-f/--file , same as cat | gpaste - Adapt to new gnome-shell extension API NEW in 1.2 (10/07/2011) ============= - Avoid AM_GLIB_GNU_GETTEXT macro - Don't run configure in autogen.bash - Really restore tracking state at startup NEW in 1.1 (09/07/2011) ============= - Save whether we're tracking clipboard changes or not from a session to another - Only build gnome-shell applet by default - Launch and Quit DBus method are now Track(bool) - Start and Exit DBus signals are now Tracking(bool) NEW in 1.0 (05/07/2011) ============= - Switch to .tar.xz - Various bug fixes - Silence some warnings - Get rid of the History.changed signal - Rework internal Settings handling NEW in 0.99 (28/02/2011) ============= - Depend on gtk+ 3.0.0 - Really fix the segfault taht should have been fixed in 0.9 - Namespace refactoring - Libexec stuff is now installed into a gpaste subdir - Code cleanup - Explicit DBus API (with breakage) - Rename gpaste-{preferences -> settings} - New "exit" signal - "start" is now a signal - Build the gnome-shell native extension with --enable-extension - The daemon no longer exits, it just stop tracking clipboard changes - New DBus property: Active to see if the daemon is tracking - Fix an encoding issue - Quit is now Stop NEW in 0.9 (05/02/2011) ============= - Fix a segfault when trying to restore from an empty history into an empty clipboard at startup - Better output for empty history - gpaste version - gpaste applet to spawn the applet - gpaste-applet and gpaste-preferences are now installed into libexecdir - gpaste add foo is now an alias for gpaste foo (add foo to history) - Add gpaste preferences alias for gpaste-preferences - There can now only be one instance of the applet and daemon at a time - You can now avoid building the applet with --disable-applet - bash and zsh completions, manual NEW in 0.8 (03/02/2011) ============= - Fix behaviour of '\n' substitution with small string, and disable it with element-size = 0 - Change default values to adapt to new behaviours - Add ability to empty the history from the right clic on the applet or via "gpaste empty" - Do not display history when it is empty NEW in 0.7 (02/02/2011) ============= - The first element in history is now restored into clipboards if they are empty at startup - You can now shutdown the daemon with "gpaste quit" - A preference has been added for the applet to shutdown the daemon when exiting - A preference has been added to set a maximum size for each item when the applet displays them NEW in 0.6 (01/02/2011) ============= - Now, we store the settings and we connect to the change signal to each one of them instead of retrieving them every time - Fix a bug with the '_' character which was interpreted as an underlinement when displaying the history from the applet - Add ability to synchronize the primary selection and the clipboard NEW in 0.5 (01/02/2011) ============= First release ! Content: - gpasted: daemon with DBus interface - gpaste: CLI client for gpasted - gpaste-preferences: tool to edit preferences - gpaste-applet: tray icon for managing gpasted Keruspe-GPaste-724def1/README.md000066400000000000000000000041471521206431300162110ustar00rootroot00000000000000 Coverity Scan Build Status GPaste is a clipboard management system. See for more information about what clipboard managers are. Translators can use [weblate](https://hosted.weblate.org/projects/gpaste/gpaste/) to contribute. A library is available for development purposes: * `libgpaste` contains all the basic objects used by GPaste and allows you to manage preferences and the GPaste daemon. A default daemon named `gpaste-daemon` is provided, with seven keybindings: * show history * pop the item from the history * sync primary selection with clipboard * sync clipboard with primary selection * mark the active item as being a password * upload the active item to a pastebin service (using wgetpaste) * launch the graphical tool A simple CLI interface is provided: `gpaste-client`, with a subcommands: `gpaste-client ui` which makes the graphical tool pop. A native gnome-shell extension is provided. /!\ Don't forget to run `gpaste-client dr` aka `gpaste-client daemon-reexec` after upgrading GPaste to activate new functionalities ;) You can then run `gpaste-client daemon-version` to check the correct daemon is now running. You can see everything I'll post about GPaste [there](https://www.imagination-land.org/tags/GPaste.html). Latest release for GNOME 50 is: [GPaste 50.1](https://www.imagination-land.org/posts/2026-06-09-gpaste-50.1-released.html). Direct link to download: ## Installation ### `dnf` on Fedora ```bash sudo dnf install gpaste-ui gpaste ``` ### Building from Source ```bash # Install build dependencies # Fedora 42 $ sudo dnf install meson ninja-build glib2-devel cmake libgdk* gcr libadwaita-devel gjs-devel # General build instructions $ git clone git@github.com:Keruspe/GPaste.git $ cd GPaste $ mkdir builddir $ cd builddir $ meson .. $ ninja $ sudo ninja install $ sudo glib-compile-schemas /usr/share/glib-2.0/schemas/ ``` Keruspe-GPaste-724def1/THANKS000066400000000000000000000011061521206431300156350ustar00rootroot00000000000000Christian Kluge Christian Schendel Elder Marco Gary van der Merwe Heimen Stoffels Jan Alexander Steffens (heftig) Jesse Jaara Julien Durillon Jérémy Lal Louis Lukas Zapletal Mog Toni TC camporez renataogarcia whyoh Keruspe-GPaste-724def1/TODO000066400000000000000000000003041521206431300154110ustar00rootroot00000000000000general: wayland support properties all the way (when GProperty stuff lands) libgpaste-client: specify errors types when possible in g-i tests: split test, add interactive wrapper Keruspe-GPaste-724def1/data/000077500000000000000000000000001521206431300156355ustar00rootroot00000000000000Keruspe-GPaste-724def1/data/completions/000077500000000000000000000000001521206431300201715ustar00rootroot00000000000000Keruspe-GPaste-724def1/data/completions/_gpaste-client000066400000000000000000000076021521206431300230170ustar00rootroot00000000000000#compdef gpaste-client (( $+functions[_gpaste-client_complete_arguments] )) || _gpaste-client_complete_arguments() { local -a base_arguments file_arguments get_arguments history_arguments base_arguments=( '(-h --help)'{-h,--help}'[Display the help.]' '(-v --version)'{-v,--version}'[Display the version.]' ) file_arguments=( '*:file:_files' ) get_arguments=( '(-r --raw)'{-r,--raw}'[Display the raw item, not the display string.]' ) history_arguments=( '(-o --oneline)'{-o,--oneline}'[Display each item on one line.]' '(-e --reverse)'{-e,--reverse}'[Display the items in reverse order.]' '(-r --raw)'{-r,--raw}'[Display each item raw (without index).]' '(-z --zero)'{-z,--zero}'[Use a NUL character instead of a newline between each item.]' ) merge_arguments=( '(-d --decoration)'{-d,--decoration}'[Add the decoration at the beginning and end of each item before merging.]' '(-s --separator)'{-s,--separator}'[Add a separator between each item when merging.]' ) case "${1}" in base) _arguments -s : \ ${base_arguments} ${history_arguments} ;; file|f) _arguments -s : \ ${file_arguments} ;; get|g) _arguments -s : \ ${get_arguments} ;; history|h) _arguments -s : \ ${history_arguments} ;; merge|m) _arguments -s : \ ${merge_arguments} ;; esac } (( $+functions[_gpaste-client_complete_subcommands] )) || _gpaste-client_complete_subcommands() { local -a subcommands subcommands=( {add,a}:"Set text to clipboard" {add-password,ap}:"Add a name - password couple to the clipboard" "about:Display the about dialog" {backup-history,bh}:"Backup current history" {daemon-reexec,dr}:"Reexecute the daemon" {daemon-version,dv}:"Display the daemon version" {delete,del,d,remove,rm}:"Delete an element of the history" {delete-history,dh}:"Delete a history" {delete-password,dp}:"Delete a password" {empty,e}:"Empty the history" {file,f}:"Put content of file into clipboard" {get,g}:"Display an element of the history" {get-history,gh}:"Get the name of the current history" "help:Display the help" {history,h}:"Display the history with indexes" {history-size,hs}:"Display the size of the history" {list-histories,lh}:"List available histories" {merge,m}:"Merge various elements from history" {rename-password,rp}:"Rename a password" "replace:Replace the contents of an item" {select,set,s}:"Select an element of the history" {set-password,sp}:"Mark an item as being a password" {settings,preferences,p}:"Launch the configuration tool" {start,daemon,d}:"Start the daemon" {stop,quit,q}:"Shutdown the daemon" "show-history:Make the applet or extension display the history" {switch-history,sh}:"Switch to another history" "ui:Launch the graphical tool" {upload,u}:"Upload item to a pastebin service" {version,v}:"Display the version" {zero-history,zh}:"Display the history with NUL as separator" ) _describe -t commands 'gpaste-client subcommand' subcommands _gpaste-client_complete_arguments "base" } _gpaste-client() { if (( CURRENT > 2 )); then local cmd="${words[2]}" local ctx="gpaste-client" while (( CURRENT > 2 )); do ctx="${ctx}-${words[2]}" (( CURRENT-- )) shift words done curcontext="${curcontext%:*:*}:${ctx}" _gpaste-client_complete_arguments "${cmd}" else _gpaste-client_complete_subcommands fi } _gpaste-client "${@}" Keruspe-GPaste-724def1/data/completions/gpaste-client000066400000000000000000000022101521206431300226460ustar00rootroot00000000000000_gpaste-client() { local cur cur="${COMP_WORDS[${COMP_CWORD}]}" COMPREPLY=() if [[ ${COMP_CWORD} == 1 ]]; then local opts opts="about add add-password backup-history daemon daemon-reexec daemon-version delete delete-history --decoration -d delete-password empty file get get-history help --help -h history history-size list-histories merge --oneline -o preferences quit remove --raw -r rename-password replace --reverse -e select --separator -s set set-password settings show-history start stop switch-history upload ui version --version -v --zero -z" COMPREPLY=( $(compgen -W "${opts}" -- ${cur} ) ) elif [[ ${COMP_CWORD} == 2 ]]; then local action action="${COMP_WORDS[1]}" case "${action}" in file|f) COMPREPLY=( $(compgen -f ) ) ;; get|g) COMPREPLY=( compgen -W "--raw -r" -- ${cur} ) ;; history|h) COMPREPLY=( compgen -W "--oneline -o --raw -r --reverse -e --zero -z" -- ${cur} ) ;; esac fi } complete -F _gpaste-client gpaste-client Keruspe-GPaste-724def1/data/completions/meson.build000066400000000000000000000004601521206431300223330ustar00rootroot00000000000000if get_option('bash-completion') install_data( 'gpaste-client', install_dir: get_option('datadir') / 'bash-completion' / 'completions', ) endif if get_option('zsh-completion') install_data( '_gpaste-client', install_dir: get_option('datadir') / 'zsh' / 'site-functions', ) endif Keruspe-GPaste-724def1/data/control-center/000077500000000000000000000000001521206431300205735ustar00rootroot00000000000000Keruspe-GPaste-724def1/data/control-center/42-gpaste.control-center.xml.in000066400000000000000000000017121521206431300263660ustar00rootroot00000000000000 Keruspe-GPaste-724def1/data/control-center/meson.build000066400000000000000000000002411521206431300227320ustar00rootroot00000000000000configure_file( input: '42-gpaste.control-center.xml.in', configuration: conf, output: '42-gpaste.xml', install: true, install_dir: keybindings_dir, ) Keruspe-GPaste-724def1/data/dbus/000077500000000000000000000000001521206431300165725ustar00rootroot00000000000000Keruspe-GPaste-724def1/data/dbus/meson.build000066400000000000000000000004101521206431300207270ustar00rootroot00000000000000foreach name : ['org.gnome.GPaste', 'org.gnome.GPaste.Ui', 'org.gnome.GPaste.Preferences'] configure_file( input: name + '.dbus.in', configuration: conf, output: name + '.service', install: true, install_dir: dbus_service_dir, ) endforeach Keruspe-GPaste-724def1/data/dbus/org.gnome.GPaste.Preferences.dbus.in000066400000000000000000000002451521206431300253740ustar00rootroot00000000000000[D-BUS Service] Name=org.gnome.GPaste.Preferences Exec=@pkglibexecdir@/gpaste-preferences --gapplication-service SystemdService=org.gnome.GPaste.Preferences.service Keruspe-GPaste-724def1/data/dbus/org.gnome.GPaste.Ui.dbus.in000066400000000000000000000002121521206431300235020ustar00rootroot00000000000000[D-BUS Service] Name=org.gnome.GPaste.Ui Exec=@pkglibexecdir@/gpaste-ui --gapplication-service SystemdService=org.gnome.GPaste.Ui.service Keruspe-GPaste-724def1/data/dbus/org.gnome.GPaste.dbus.in000066400000000000000000000001611521206431300231310ustar00rootroot00000000000000[D-BUS Service] Name=org.gnome.GPaste Exec=@pkglibexecdir@/gpaste-daemon SystemdService=org.gnome.GPaste.service Keruspe-GPaste-724def1/data/desktop/000077500000000000000000000000001521206431300173065ustar00rootroot00000000000000Keruspe-GPaste-724def1/data/desktop/meson.build000066400000000000000000000007721521206431300214560ustar00rootroot00000000000000foreach component : ['Daemon', 'Preferences', 'Ui'] untranslated_desktop_file = configure_file( input: 'org.gnome.GPaste.' + component + '.desktop.in.in', configuration: conf, output: 'org.gnome.GPaste.' + component + '.desktop.in', ) i18n.merge_file( input: untranslated_desktop_file, po_dir: gpaste_po_dir, type: 'desktop', output: 'org.gnome.GPaste.' + component + '.desktop', install: true, install_dir: get_option('datadir') / 'applications', ) endforeach Keruspe-GPaste-724def1/data/desktop/org.gnome.GPaste.Daemon.desktop.in.in000066400000000000000000000001211521206431300261640ustar00rootroot00000000000000[Desktop Entry] Type=Application Name=GPaste NoDisplay=true DBusActivatable=true Keruspe-GPaste-724def1/data/desktop/org.gnome.GPaste.Preferences.desktop.in.in000066400000000000000000000005061521206431300272310ustar00rootroot00000000000000[Desktop Entry] Type=Application Name=GPaste Preferences Comment=Manage your GPaste preferences Keywords=Clipboard;Manager;Settings;Preferences;Configuration; Icon=edit-paste Exec=@pkglibexecdir@/gpaste-preferences DBusActivatable=true Terminal=false Categories=GTK;GNOME;Settings;X-GNOME-PersonalSettings; StartupNotify=true Keruspe-GPaste-724def1/data/desktop/org.gnome.GPaste.Ui.desktop.in.in000066400000000000000000000010251521206431300253420ustar00rootroot00000000000000[Desktop Entry] Type=Application Name=GPaste GenericName=Clipboard Manager Comment=Manage your clipboard history Keywords=Clipboard;Manager;Settings;Preferences;Configuration; Icon=edit-paste Exec=@pkglibexecdir@/gpaste-ui DBusActivatable=true Terminal=false Categories=GTK;GNOME;Settings;X-GNOME-PersonalSettings; StartupNotify=true Actions=prefs;about; [Desktop Action prefs] Name=Preferences Exec=gapplication action org.gnome.GPaste.Ui prefs [Desktop Action about] Name=About Exec=gapplication action org.gnome.GPaste.Ui about Keruspe-GPaste-724def1/data/gsettings/000077500000000000000000000000001521206431300176445ustar00rootroot00000000000000Keruspe-GPaste-724def1/data/gsettings/meson.build000066400000000000000000000004211521206431300220030ustar00rootroot00000000000000schema = 'org.gnome.GPaste.gschema.xml' install_data( schema, install_dir: get_option('datadir') / 'glib-2.0' / 'schemas', ) # Compile the schema into the build tree so the test suite can find it without an install. gnome.compile_schemas(depend_files: files(schema)) Keruspe-GPaste-724def1/data/gsettings/org.gnome.GPaste.gschema.xml000066400000000000000000000205601521206431300250540ustar00rootroot00000000000000 60 Max size of an element when displaying it The extra stuff of that element will be replaced by "…", and newlines by " " when displaying from the applet, 0 to disable. false Do we detect and replace growing lines in history? By default, selecting "Here is", then "Here is an example" will create two entries in the history. With this feature enabled, the first one will be replaced by the second one. 'history' The name of the current history The default name is "history" false Do we save the images copied to history, or only text? By default, we're saving only text true Show image previews in the history? By default, we show previews of images in the history 50 Size of image previews in pixels Default size is 100 pixels true Do we close the UI after selecting an item? By default, we close it false Do we open the UI window centered? By default, we open it where the mouse cursor is '<Ctrl><Alt>G' The keyboard shortcut to launch the graphical interface By default, hitting ctrl + alt + g does that ("<Ctrl><Alt>G"). An empty string here disables this functionnality. '<Ctrl><Alt>S' The keyboard shortcut to mark the active item as being a password By default, hitting ctrl + alt + s will mark the active item as being a password ("<Ctrl><Alt>S"). An empty string here disables this functionnality. 20 Max displayed history size Maximum number of items displayed in the history 100 Max history size Maximum number of items in history 30 Max memory usage (MB) Maximum amount of memory used to store contents 1048575 Max text item size Maximum size of a text item. Anything out of this boundary is ignored. 1 Min text item size Minimum size of a text item. Anything out of this boundary is ignored. '<Ctrl><Alt>V' The keyboard shortcut to delete the first element in history By default, hitting ctrl + alt + v does that ("<Ctrl><Alt>V"). An empty string here disables this functionnality. false Does the primary selection affects history? By default, only clipboard (ctrl+c) affects history. true Do we save all versions of selected rich text (e.g. html) or just the plain text version? By default, we're saving all true Do we save the history from one session to another? By default, we're saving it '<Ctrl><Alt>H' The keyboard shortcut to display the menu By default, hitting ctrl + alt + h displays the menu ("<Ctrl><Alt>H"). An empty string here disables this functionnality. '<Ctrl><Alt>O' The keyboard shortcut to sync the clipboard to the primary selection By default, hitting ctrl + alt + o syncs them ("<Ctrl><Alt>P"). An empty string here disables this functionnality. '<Ctrl><Alt>P' The keyboard shortcut to sync the primary selection to the clipboard By default, hitting ctrl + alt + p syncs them ("<Ctrl><Alt>P"). An empty string here disables this functionnality. false Are the primary selection and the clipboard synchronized? By default, the primary selection and the clipboard are independent. true Do we track the clipboard changes? By default, we're tracking those changes. false Do we sync the daemon state with the gnome-shell extension's one? (disable the daemon when disabling the extension) By default, the daemon state keeps unchanged false Do we trim the textual items before adding them to history? Trimming means removing all trailing and ending spaces. By default, we're letting them as-is. '<Ctrl><Alt>U' The keyboard shortcut to upload the first element in history to a pastebin service By default, hitting ctrl + alt + u does that ("<Ctrl><Alt>U"). An empty string here disables this functionnality. true Do we prompt for confirmation when emptying a history? By default, we do as it's a destructive action Keruspe-GPaste-724def1/data/meson.build000066400000000000000000000003531521206431300200000ustar00rootroot00000000000000subdir('metainfo') subdir('completions') subdir('control-center') subdir('dbus') subdir('desktop') subdir('gsettings') if get_option('gnome-shell') subdir('search-provider') endif if get_option('systemd') subdir('systemd') endif Keruspe-GPaste-724def1/data/metainfo/000077500000000000000000000000001521206431300174375ustar00rootroot00000000000000Keruspe-GPaste-724def1/data/metainfo/meson.build000066400000000000000000000003161521206431300216010ustar00rootroot00000000000000i18n.merge_file( input: 'org.gnome.GPaste.Ui.metainfo.xml.in', po_dir: gpaste_po_dir, output: 'org.gnome.GPaste.Ui.metainfo.xml', install: true, install_dir: get_option('datadir') / 'metainfo', ) Keruspe-GPaste-724def1/data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in000066400000000000000000000522671521206431300260340ustar00rootroot00000000000000 org.gnome.GPaste.Ui GPaste Manage your clipboard history Marc-Antoine Perennou BSD-2-Clause CC-BY-SA-3.0 GNOME org.gnome.GPaste.Ui.desktop

GPaste is a clipboard managing system allowing you to track and manage your clipboard history in a highly customizable way.

GPaste provides you with a graphical tool allowing you to manage everything easily.

https://www.imagination-land.org/tags/GPaste.html The main UI https://www.imagination-land.org/images/GPaste/3/Ui-1.png The settings UI https://www.imagination-land.org/images/GPaste/3/Ui-2.png The settings UI https://www.imagination-land.org/images/GPaste/3/Ui-3.png The settings UI https://www.imagination-land.org/images/GPaste/3/Ui-4.png https://github.com/Keruspe/GPaste/issues https://paypal.me/keruspe/ https://github.com/Keruspe/GPaste/issues https://github.com/Keruspe/GPaste GPaste

This is a maintenance release. Changes:

  • Fix building without the GNOME Shell extension (-Dgnome-shell=false)
  • Restore GTK deprecation version-gating and drop the unused build-time gjs dependency
  • Target GNOME Shell 50 in the extension
  • Bump the library soversions to reflect the API/ABI changes since 45.8

This is a major release porting GPaste to GTK 4 and libadwaita. Changes:

  • Port the daemon, history UI and preferences to GTK 4 and libadwaita
  • Show image thumbnails in the history, with configurable preview size
  • Support global keyboard shortcuts on Wayland through the XDG GlobalShortcuts portal
  • Recognise copied colours as dedicated colour items
  • Give keybindings human-readable descriptions and install a daemon desktop file
  • Fix images sometimes being repeatedly re-added to the history
  • Fix keyboard shortcuts not triggering when NumLock and CapsLock are both active
  • Fix several crashes (search provider, UI lifetime, GNOME Shell extension) and memory leaks
  • Modernise the GNOME Shell extension to current conventions

This is a maintenance release. Changes:

  • Fix use-after-free crash in the GNOME Shell search provider
  • Fix keyboard shortcuts not triggering when NumLock and CapsLock are both active
  • Fix memory leaks when re-copying history items and when rebinding shortcuts
  • Fix potential crash when enforcing a very small history size
  • Build: ship the GSettings schema as a static file

This is a maintenance release. Changes:

  • GNOME Shell extension now retries the daemon connection before giving up
  • Fix test crash when GrabAccelerators is not allowed
  • Build: simplify gsettings compilation for tests

This is a maintenance release. Changes:

  • Fix GC crash and signal leak when disabling the GNOME Shell extension
  • GNOME Shell extension now handles daemon connection failure gracefully
  • Fix crash when a history item has no value yet
  • Fix image files not being deleted when history items are removed
  • Fix image files stored in wrong directory
  • Fix keyboard focus being stolen by history items on hover
  • Fix key events incorrectly forwarded to search when another entry has focus
  • Fix signal loop when updating shortcut entries from settings
  • Fix default history item count not reset after history deletion
  • Enforce minimum window size to prevent unresizable state
  • Add descriptive tooltips for settings entries
  • Build: explicitly link libgpaste libraries against libc
  • Translations updates

This is a maintenance release. Changes:

  • Fix infinite Pango assertion loop that could fill disk when clipboard content contained tab characters
  • Various bug fixes and memory management improvements
  • Daemon improvements
  • GNOME Shell extension improvements
  • GLib >= 2.76 is now required
  • Translations updates

This is a maintenance release. Changes:

  • Support for gnome 50
  • Support for gnome 49
  • Translations updates

This is a maintenance release. Changes:

  • Support for gnome 48
  • Translations updates

This is a maintenance release. Changes:

  • Support for gnome 47
  • Translations updates

This is a maintenance release. Changes:

  • Support for gnome 46
  • Translations updates

Stable release for GNOME 45. Changes:

  • Port to gnome 45
  • Add setting to open ui window centered
  • Translations updates

This is a maintenance release. Changes:

  • Fix a bug leading to history with only one item

First release for GNOME 44. Changes:

  • gcr 4 is now required
  • Port to gnome 44

This is a maintenance release. Changes:

  • Fix a bug leading to history with only one item

This is a maintenance release. Changes:

  • Avoid crash under heavy memory load

This is a maintenance release. Changes:

  • Respect --use-index when displaying history

First release for GNOME 43. Changes:

  • Port to GNOME 43
  • Internal preparation for gtk4 port
  • Translations updates

This is a maintenance release. Changes:

  • Fix a bug leading to history with only one item

This is a maintenance release. Changes:

  • Avoid crash under heavy memory load

This is a maintenance release. Changes:

  • Respect --use-index when displaying history

This is a maintenance release. Changes:

  • Open GPaste UI where the mouse pointer is

This is a maintenance release. Changes:

  • Fixes to the new preferences tool
  • Style fixes
  • Translations updates

First release for GNOME 42. Changes:

  • Old libgpaste replaced by a new minimal libgpaste-2 with no gtk dependency
  • New libgpaste-gtk3 for utils and settings ui
  • New libgpaste-gtk4 for utils and preferences ui
  • New gtk4 based gpaste-preferences utility
  • Autotools are no longer supported
  • Extension updated for gnome-shell 42
  • Translations updates

This is a maintenance release. Changes:

  • Fix a bug leading to history with only one item

This is a maintenance release. Changes:

  • Avoid crash under heavy memory load

This is a maintenance release. Changes:

  • Respect --use-index when displaying history

This is a maintenance release. Changes:

  • Open GPaste UI where the mouse pointer is

This is a maintenance release. Changes:

  • fix the storage path for meson builds

This is a maintenance release. Changes:

  • fix some race conditions in history handling

This is a maintenance release. Changes:

  • better fix crash when there is no history yet

This is a maintenance release. Changes:

  • fix crash when there is no history yet
  • translations update

This is a maintenance release. Changes:

  • fix gnome-shell exntesion when the daemon restarts
  • translations update

This is a maintenance release. Changes:

  • Fix keybindings for wayland
  • translations update

First release for GNOME 41. Changes:

  • port to gnome-shell 41
  • translations update

This is a maintenance release. Changes:

  • Respect --use-index when displaying history

This is a maintenance release. Changes:

  • Open GPaste UI where the mouse pointer is

This is a maintenance release. Changes:

  • translations update

This is a maintenance release. Changes:

  • fix a crash in memory usage checking

First release for GNOME 40. Changes:

  • port to gnome-shell 40
  • placeholder for gnome-shell prefs

This is a maintenance release. Changes:

  • fix X11 keybinder outside of GNOME

This is a maintenance release. Changes:

  • better handling and reporting of invalid uuids passed to gpaste-client
  • gpaste-client now has a --use-index argument for several subcommands to use index instead of uuid

This is a maintenance release. Changes:

  • fix the make-password keybinding
  • updated translations

This is a maintenance release. Changes:

  • gnome-shell extension warning fixes
  • updated translations

This is a maintenance release. Changes:

  • gnome-shell extension cosmetic updates

This is a maintenance release. Changes:

  • Disable images support by default (can be reenabled in preferences)
  • Search now includes passwords (using their names)
  • systemd integration enhancements

First release for GNOME 3.38. Changes:

  • Drop the Tracking DBus signal
  • Switch to uuids to identify items
  • Bump DBus interface to org.gnome.GPaste2
  • Update to gnome-shell 3.38.0

This is a maintenance release. Changes:

  • fix X11 keybinder outside of GNOME

This is a maintenance release. Changes:

  • gnome-shell extension cosmetic updates

This is a maintenance release. Changes:

  • Fix activating items using Ctrl-Number in gnome-shell

This is a maintenance release. Changes:

  • Fix keybinding regrab with gnome-shell

This is a maintenance release. Changes:

  • Fix keybinding grab with gnome-shell

First release for GNOME 3.36. Changes:

  • Update to gnome-shell 3.36.0

This is a maintenance release. Changes:

  • Fix activating items using Ctrl-Number in gnome-shell

This is a maintenance release. Changes:

  • Fix keybinding regrab with gnome-shell

This is a maintenance release. Changes:

  • Fix keybinding grab with gnome-shell

This is a maintenance release. Changes:

  • Compatibility with recent appstream-glib

First release for GNOME 3.34. Changes:

  • Update to gnome-shell 3.34.0

This is a maintenance release. Changes:

  • Compatibility with recent appstream-glib
  • Fix keybinding regrab with gnome-shell
  • Fix activating items using Ctrl-Number in gnome-shell
Keruspe-GPaste-724def1/data/search-provider/000077500000000000000000000000001521206431300207325ustar00rootroot00000000000000Keruspe-GPaste-724def1/data/search-provider/meson.build000066400000000000000000000002041521206431300230700ustar00rootroot00000000000000install_data( 'org.gnome.GPaste.search-provider.ini', install_dir: get_option('datadir') / 'gnome-shell' / 'search-providers', )Keruspe-GPaste-724def1/data/search-provider/org.gnome.GPaste.search-provider.ini000066400000000000000000000002151521206431300276020ustar00rootroot00000000000000[Shell Search Provider] DesktopId=org.gnome.GPaste.Ui.desktop BusName=org.gnome.GPaste ObjectPath=/org/gnome/GPaste/SearchProvider Version=2 Keruspe-GPaste-724def1/data/systemd/000077500000000000000000000000001521206431300173255ustar00rootroot00000000000000Keruspe-GPaste-724def1/data/systemd/meson.build000066400000000000000000000004071521206431300214700ustar00rootroot00000000000000foreach name : ['org.gnome.GPaste', 'org.gnome.GPaste.Ui', 'org.gnome.GPaste.Preferences'] configure_file( input: name + '.systemd.in', configuration: conf, output: name + '.service', install: true, install_dir: userunit_dir, ) endforeach Keruspe-GPaste-724def1/data/systemd/org.gnome.GPaste.Preferences.systemd.in000066400000000000000000000002441521206431300266610ustar00rootroot00000000000000[Unit] Description=GPaste preferences [Service] Type=dbus BusName=org.gnome.GPaste.Preferences ExecStart=@pkglibexecdir@/gpaste-preferences --gapplication-service Keruspe-GPaste-724def1/data/systemd/org.gnome.GPaste.Ui.systemd.in000066400000000000000000000002251521206431300247740ustar00rootroot00000000000000[Unit] Description=GPaste user interface [Service] Type=dbus BusName=org.gnome.GPaste.Ui ExecStart=@pkglibexecdir@/gpaste-ui --gapplication-service Keruspe-GPaste-724def1/data/systemd/org.gnome.GPaste.systemd.in000066400000000000000000000003431521206431300244210ustar00rootroot00000000000000[Unit] Description=GPaste daemon PartOf=graphical-session.target After=graphical-session.target [Service] Type=dbus BusName=org.gnome.GPaste ExecStart=@pkglibexecdir@/gpaste-daemon [Install] WantedBy=graphical-session.target Keruspe-GPaste-724def1/eslint.config.js000077700000000000000000000000001521206431300242572tools/eslint.config.jsustar00rootroot00000000000000Keruspe-GPaste-724def1/man/000077500000000000000000000000001521206431300154775ustar00rootroot00000000000000Keruspe-GPaste-724def1/man/1/000077500000000000000000000000001521206431300156375ustar00rootroot00000000000000Keruspe-GPaste-724def1/man/1/gpaste-client.1000066400000000000000000000071031521206431300204610ustar00rootroot00000000000000.\" This file is part of GPaste. .\" .\" Copyright (c) 2010-2026, Marc-Antoine Perennou .TH GPASTE-CLIENT 1 .SH NAME GPaste \- A lightweight clipboard manager for the Gnome desktop .SH "SYNOPSIS" .B [command |] gpaste-client [options...] .SH "DESCRIPTION" GPaste is a modular clipboard management system with a fully DBus-based daemon, a \s-1CLI\s0 client and a gtk+ tray icon. .SH "COMMANDS" .TP .B gpaste-client [history] Display the history with indexes .br .TP .B gpaste-client history-size Display this size of the history .br .TP .B gpaste-client get-history Get the name of the current history .br .TP .B gpaste-client backup-history Backup the current history .br .TP .B gpaste-client switch-history Switch to another history .br .TP .B gpaste-client delete-history Delete a history .br .TP .B gpaste-client list-histories List available histories .br .TP .B gpaste-client add Add the text into the history .br .TP .B gpaste-client add-password Add the name \- password couple to the history .br .TP .B gpaste-client delete-password Delete the password .br .TP .B gpaste-client set-password Mark the item matching from the history as being a password named .br .TP .B gpaste-client rename-password Rename the password .br .TP .B gpaste-client get Get the item matching from the history .br .TP .B gpaste-client select Put the item matching from the history into the clipboard .br .TP .B gpaste-client replace Replace the contents of the item matching from the history with the provided one .br .TP .B gpaste-client merge [--decoration|-d ] [--separator|-s ] Merge the items matching the uuids from the history and put the result in the clipboard .br If foo bar and baz are respectively uuids 5cb227f9-857d-490b-8ea1-f5f33f59f04e b4a7aa02-ef9a-4c29-b951-ebbdb4ed279b and 99da883b-0544-4cb4-92dd-733420a9db6d in history and you run .br gpaste-client merge \-d '"' \-s ',' 5cb227f9-857d-490b-8ea1-f5f33f59f04e b4a7aa02-ef9a-4c29-b951-ebbdb4ed279b 99da883b-0544-4cb4-92dd-733420a9db6d .br You will end up with "foo","bar","baz" in your clipboard .br .TP .B gpaste-client delete Delete the item matching from the history .br .TP .B gpaste-client file Put the content of the file at into the clipboard .br .TP .B command | gpaste-client Put the output of the command into the history .br .TP .B gpaste-client empty Empty the history .br .TP .B gpaste-client start Start tracking clipboard changes .br .TP .B gpaste-client stop Stop tracking clipboard changes .br .TP .B gpaste-client upload Upload the item matching to a pastebin service .br .TP .B gpaste-client ui Launch the graphical tool .br .TP .B gpaste-client daemon-reexec Reexecute the daemon, for example after upgrading GPaste .br .TP .B gpaste-client settings Launch the configuration tool .br .TP .B gpaste-client version Display the version .br .TP .B gpaste-client daemon-version Display the daemon version .br .TP .B gpaste-client help Display the help .br .TP .B gpaste-client about Display the about dialog .br .TP .B gpaste-client show-history Make the applet or extension display the history .br .SH "OPTIONS" .TP .B --use-index Use the item index instead of its uuid .br .TP .B --oneline Display each item on one line, without new lines .br .TP .B --raw Display the item raw (without index) .br .TP .B --reverse Display the items in reverse order .br .TP .B --zero Use NUL character instead of new lines between each item .br Keruspe-GPaste-724def1/man/1/meson.build000066400000000000000000000000361521206431300200000ustar00rootroot00000000000000install_man('gpaste-client.1')Keruspe-GPaste-724def1/man/meson.build000066400000000000000000000000131521206431300176330ustar00rootroot00000000000000subdir('1')Keruspe-GPaste-724def1/meson.build000066400000000000000000000074341521206431300170760ustar00rootroot00000000000000project('GPaste', 'c', version: '50.1', meson_version: '>=1.1', default_options: [ 'warning_level=2', 'c_std=gnu17' ], ) cc = meson.get_compiler('c') gnome = import('gnome') i18n = import('i18n') apiversion = '2' adwaita_req_version = '1.9' gcr_req_version = '3.90.0' glib_req_version = '2.84.0' gtk4_req_version = '4.12.0' gcr_dep = dependency('gcr-4', version: '>= ' + gcr_req_version) gio_dep = dependency('gio-2.0', version: '>= ' + glib_req_version) glib_dep = dependency('glib-2.0', version: '>= ' + glib_req_version) gobject_dep = dependency('gobject-2.0', version: '>= ' + glib_req_version) gtk4_dep = dependency('gtk4', version: '>= ' + gtk4_req_version) gtk4x11_dep = dependency('gtk4-x11', version: '>= ' + gtk4_req_version) libadwaita_dep = dependency('libadwaita-1', version: '>= ' + adwaita_req_version) pango_dep = dependency('pango') glib_major = glib_req_version.split('.')[0].to_int() glib_minor = glib_req_version.split('.')[1].to_int() gtk4_major = gtk4_req_version.split('.')[0].to_int() gtk4_minor = gtk4_req_version.split('.')[1].to_int() if glib_minor % 2 == 1 glib_minor = glib_minor + 1 endif if gtk4_minor % 2 == 1 gtk4_minor = gtk4_minor + 1 endif # Don't make dbus/gnome-control-center a build dependency if so desired. # They're still required at runtime though. dbus_service_dir = get_option('dbus-services-dir') if dbus_service_dir == '' dbus_service_dir = dependency('dbus-1').get_variable(pkgconfig: 'session_bus_services_dir') endif keybindings_dir = get_option('control-center-keybindings-dir') if keybindings_dir == '' keybindings_dir = dependency('gnome-keybindings').get_variable(pkgconfig: 'keysdir') endif libgpaste_deps = [ gio_dep, glib_dep, gobject_dep ] userunit_dir = get_option('systemd-user-unit-dir') if userunit_dir == '' if get_option('systemd') userunit_dir = dependency('systemd').get_variable(pkgconfig: 'systemduserunitdir') endif endif if get_option('vapi') and not get_option('introspection') error('GIR generation has to be enabled via -Dintrospection=true to build vala bindings!') endif keybinder_deps = [] if get_option('x-keybinder') add_project_arguments( '-DENABLE_X_KEYBINDER=1', language: 'c', ) x11_dep = dependency('x11') xi_dep = dependency('xi') keybinder_deps += [ gtk4x11_dep, xi_dep, x11_dep ] endif add_project_arguments( '-DG_LOG_DOMAIN="GPaste"', '-DG_LOG_USE_STRUCTURED=1', '-DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_@0@_@1@'.format(glib_major, glib_minor), '-DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_@0@_@1@'.format(glib_major, glib_minor), '-DGDK_VERSION_MIN_REQUIRED=GDK_VERSION_@0@_@1@'.format(gtk4_major, gtk4_minor), '-DGDK_VERSION_MAX_ALLOWED=GDK_VERSION_@0@_@1@'.format(gtk4_major, gtk4_minor), '-DG_PASTE_COMPILATION', '-DG_PASTE_DEFAULT_HISTORY="history"', '-DG_PASTE_EXTENSION_NAME="GPaste@gnome-shell-extensions.gnome.org"', '-DG_PASTE_ICON_NAME="edit-paste"', '-DGETTEXT_PACKAGE="GPaste"', '-DLOCALEDIR="' + (get_option('prefix') / get_option('datadir') / 'locale') + '"', '-DPACKAGE="gpaste"', '-DPACKAGE_NAME="GPaste"', '-DPACKAGE_STRING="GPaste ' + meson.project_version() +'"', '-DPACKAGE_VERSION="' + meson.project_version() + '"', '-DPKGLIBEXECDIR="' + (get_option('prefix') / get_option('libexecdir')) + '"', '-DVERSION="' + meson.project_version() + '"', language: 'c', ) conf = configuration_data() # Used later on to configure services&gnome-shell extension conf.set('GETTEXT_PACKAGE', 'GPaste') conf.set('pkglibexecdir', get_option('prefix') / get_option('libexecdir') / 'gpaste') conf.set('version', meson.project_version()) conf.set('gettext_domain', 'GPaste') gpaste_po_dir = meson.current_source_dir() / 'po' subdir('man') subdir('po') subdir('src') subdir('data') subdir('tests') gnome.post_install( glib_compile_schemas: true, update_desktop_database: true, ) Keruspe-GPaste-724def1/meson.options000066400000000000000000000017631521206431300174710ustar00rootroot00000000000000option('bash-completion', type: 'boolean', value: true, description: 'install bash completion files') option('dbus-services-dir', type: 'string', value: '', description: 'path to the dbus services dir') option('introspection', type: 'boolean', value: true, description: 'build GIR data') option('control-center-keybindings-dir', type: 'string', value: '', description: 'path to where gnome-control-center stores its keybindings') option('gnome-shell', type: 'boolean', value: true, description: 'install the gnome-shell extension') option('systemd', type: 'boolean', value: true, description: 'install the systemd unit') option('systemd-user-unit-dir', type: 'string', value: '', description: 'path to where systemd stores its user units') option('vapi', type: 'boolean', value: true, description: 'build vala bindings') option('x-keybinder', type: 'boolean', value: true, description: 'build the x keybinder') option('zsh-completion', type: 'boolean', value: true, description: 'install zsh completion files') Keruspe-GPaste-724def1/po/000077500000000000000000000000001521206431300153425ustar00rootroot00000000000000Keruspe-GPaste-724def1/po/GPaste.pot000066400000000000000000001255561521206431300172670ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the GPaste package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: GPaste\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-06-09 21:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: data/control-center/42-gpaste.control-center.xml.in:2 msgid "@GETTEXT_PACKAGE@" msgstr "" #: data/control-center/42-gpaste.control-center.xml.in:3 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:136 #: src/ui/gpaste-ui-shortcuts-window.c:24 msgid "Launch the graphical tool" msgstr "" #: data/control-center/42-gpaste.control-center.xml.in:4 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:153 #: src/ui/gpaste-ui-shortcuts-window.c:25 msgid "Mark the active item as being a password" msgstr "" #: data/control-center/42-gpaste.control-center.xml.in:5 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:167 #: src/ui/gpaste-ui-shortcuts-window.c:23 msgid "Delete the active item from history" msgstr "" #: data/control-center/42-gpaste.control-center.xml.in:6 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:143 #: src/ui/gpaste-ui-shortcuts-window.c:26 msgid "Display the history" msgstr "" #: data/control-center/42-gpaste.control-center.xml.in:7 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:177 #: src/ui/gpaste-ui-shortcuts-window.c:27 msgid "Sync the clipboard to the primary selection" msgstr "" #: data/control-center/42-gpaste.control-center.xml.in:8 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:184 #: src/ui/gpaste-ui-shortcuts-window.c:28 msgid "Sync the primary selection to the clipboard" msgstr "" #: data/control-center/42-gpaste.control-center.xml.in:9 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:160 #: src/ui/gpaste-ui-shortcuts-window.c:29 msgid "Upload the active item to a pastebin service" msgstr "" #: data/desktop/org.gnome.GPaste.Daemon.desktop.in.in:3 #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:3 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:6 msgid "GPaste" msgstr "" #: data/desktop/org.gnome.GPaste.Preferences.desktop.in.in:3 msgid "GPaste Preferences" msgstr "" #: data/desktop/org.gnome.GPaste.Preferences.desktop.in.in:4 msgid "Manage your GPaste preferences" msgstr "" #: data/desktop/org.gnome.GPaste.Preferences.desktop.in.in:5 #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:6 msgid "Clipboard;Manager;Settings;Preferences;Configuration;" msgstr "" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:4 msgid "Clipboard Manager" msgstr "" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:5 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:7 msgid "Manage your clipboard history" msgstr "" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:16 msgid "Preferences" msgstr "" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:20 #: src/gnome-shell/aboutItem.js:13 src/ui/gpaste-ui-about.c:38 msgid "About" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:7 msgid "Max size of an element when displaying it" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:8 msgid "" "The extra stuff of that element will be replaced by \"…\", and newlines by " "\" \" when displaying from the applet, 0 to disable." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:15 msgid "Do we detect and replace growing lines in history?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:16 msgid "" "By default, selecting \"Here is\", then \"Here is an example\" will create " "two entries in the history. With this feature enabled, the first one will be " "replaced by the second one." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:24 msgid "The name of the current history" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:25 msgid "The default name is \"history\"" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:32 msgid "Do we save the images copied to history, or only text?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:33 msgid "By default, we're saving only text" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:40 msgid "Show image previews in the history?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:41 msgid "By default, we show previews of images in the history" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:49 msgid "Size of image previews in pixels" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:50 msgid "Default size is 100 pixels" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:57 msgid "Do we close the UI after selecting an item?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:58 msgid "By default, we close it" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:65 msgid "Do we open the UI window centered?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:66 msgid "By default, we open it where the mouse cursor is" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:73 msgid "The keyboard shortcut to launch the graphical interface" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:74 msgid "" "By default, hitting ctrl + alt + g does that (\"G\"). An empty " "string here disables this functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:82 msgid "The keyboard shortcut to mark the active item as being a password" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:83 msgid "" "By default, hitting ctrl + alt + s will mark the active item as being a " "password (\"S\"). An empty string here disables this " "functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:92 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:146 msgid "Max displayed history size" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:93 msgid "Maximum number of items displayed in the history" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:101 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:105 msgid "Max history size" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:102 msgid "Maximum number of items in history" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:110 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:112 msgid "Max memory usage (MB)" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:111 msgid "Maximum amount of memory used to store contents" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:119 msgid "Max text item size" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:120 msgid "Maximum size of a text item. Anything out of this boundary is ignored." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:128 msgid "Min text item size" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:129 msgid "Minimum size of a text item. Anything out of this boundary is ignored." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:136 msgid "The keyboard shortcut to delete the first element in history" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:137 msgid "" "By default, hitting ctrl + alt + v does that (\"V\"). An empty " "string here disables this functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:145 msgid "Does the primary selection affects history?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:146 msgid "By default, only clipboard (ctrl+c) affects history." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:153 msgid "" "Do we save all versions of selected rich text (e.g. html) or just the plain " "text version?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:154 msgid "By default, we're saving all" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:161 msgid "Do we save the history from one session to another?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:162 msgid "By default, we're saving it" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:169 msgid "The keyboard shortcut to display the menu" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:170 msgid "" "By default, hitting ctrl + alt + h displays the menu (\"H\"). An " "empty string here disables this functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:178 msgid "The keyboard shortcut to sync the clipboard to the primary selection" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:179 msgid "" "By default, hitting ctrl + alt + o syncs them (\"P\"). An empty " "string here disables this functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:187 msgid "The keyboard shortcut to sync the primary selection to the clipboard" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:188 msgid "" "By default, hitting ctrl + alt + p syncs them (\"P\"). An empty " "string here disables this functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:196 msgid "Are the primary selection and the clipboard synchronized?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:197 msgid "By default, the primary selection and the clipboard are independent." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:204 msgid "Do we track the clipboard changes?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:205 msgid "By default, we're tracking those changes." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:212 msgid "" "Do we sync the daemon state with the gnome-shell extension's one? (disable " "the daemon when disabling the extension)" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:213 msgid "By default, the daemon state keeps unchanged" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:220 msgid "Do we trim the textual items before adding them to history?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:221 msgid "" "Trimming means removing all trailing and ending spaces. By default, we're " "letting them as-is." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:229 msgid "" "The keyboard shortcut to upload the first element in history to a pastebin " "service" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:230 msgid "" "By default, hitting ctrl + alt + u does that (\"U\"). An empty " "string here disables this functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:238 msgid "Do we prompt for confirmation when emptying a history?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:239 msgid "By default, we do as it's a destructive action" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:9 msgid "Marc-Antoine Perennou" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:17 msgid "" "GPaste is a clipboard managing system allowing you to track and manage your " "clipboard history in a highly customizable way." msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:20 msgid "" "GPaste provides you with a graphical tool allowing you to manage everything " "easily." msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:27 msgid "The main UI" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:31 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:35 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:39 msgid "The settings UI" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:51 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:78 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:90 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:100 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:120 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:133 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:143 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:152 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:161 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:180 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:197 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:205 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:213 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:231 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:239 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:247 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:255 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:263 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:287 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:295 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:303 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:311 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:319 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:327 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:335 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:343 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:352 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:361 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:379 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:387 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:395 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:403 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:421 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:429 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:438 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:447 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:456 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:464 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:485 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:493 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:501 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:509 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:517 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:533 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:541 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:549 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:557 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:573 msgid "This is a maintenance release. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:53 msgid "Fix building without the GNOME Shell extension (-Dgnome-shell=false)" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:54 msgid "" "Restore GTK deprecation version-gating and drop the unused build-time gjs " "dependency" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:55 msgid "Target GNOME Shell 50 in the extension" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:56 msgid "Bump the library soversions to reflect the API/ABI changes since 45.8" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:62 msgid "" "This is a major release porting GPaste to GTK 4 and libadwaita. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:64 msgid "Port the daemon, history UI and preferences to GTK 4 and libadwaita" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:65 msgid "Show image thumbnails in the history, with configurable preview size" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:66 msgid "" "Support global keyboard shortcuts on Wayland through the XDG GlobalShortcuts " "portal" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:67 msgid "Recognise copied colours as dedicated colour items" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:68 msgid "" "Give keybindings human-readable descriptions and install a daemon desktop " "file" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:69 msgid "Fix images sometimes being repeatedly re-added to the history" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:70 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:81 msgid "" "Fix keyboard shortcuts not triggering when NumLock and CapsLock are both " "active" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:71 msgid "" "Fix several crashes (search provider, UI lifetime, GNOME Shell extension) " "and memory leaks" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:72 msgid "Modernise the GNOME Shell extension to current conventions" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:80 msgid "Fix use-after-free crash in the GNOME Shell search provider" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:82 msgid "" "Fix memory leaks when re-copying history items and when rebinding shortcuts" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:83 msgid "Fix potential crash when enforcing a very small history size" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:84 msgid "Build: ship the GSettings schema as a static file" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:92 msgid "" "GNOME Shell extension now retries the daemon connection before giving up" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:93 msgid "Fix test crash when GrabAccelerators is not allowed" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:94 msgid "Build: simplify gsettings compilation for tests" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:102 msgid "Fix GC crash and signal leak when disabling the GNOME Shell extension" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:103 msgid "GNOME Shell extension now handles daemon connection failure gracefully" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:104 msgid "Fix crash when a history item has no value yet" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:105 msgid "Fix image files not being deleted when history items are removed" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:106 msgid "Fix image files stored in wrong directory" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:107 msgid "Fix keyboard focus being stolen by history items on hover" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:108 msgid "" "Fix key events incorrectly forwarded to search when another entry has focus" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:109 msgid "Fix signal loop when updating shortcut entries from settings" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:110 msgid "Fix default history item count not reset after history deletion" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:111 msgid "Enforce minimum window size to prevent unresizable state" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:112 msgid "Add descriptive tooltips for settings entries" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:113 msgid "Build: explicitly link libgpaste libraries against libc" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:114 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:127 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:137 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:146 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:155 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:164 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:174 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:225 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:267 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:281 msgid "Translations updates" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:122 msgid "" "Fix infinite Pango assertion loop that could fill disk when clipboard " "content contained tab characters" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:123 msgid "Various bug fixes and memory management improvements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:124 msgid "Daemon improvements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:125 msgid "GNOME Shell extension improvements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:126 msgid "GLib >= 2.76 is now required" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:135 msgid "Support for gnome 50" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:136 msgid "Support for gnome 49" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:145 msgid "Support for gnome 48" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:154 msgid "Support for gnome 47" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:163 msgid "Support for gnome 46" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:170 msgid "Stable release for GNOME 45. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:172 msgid "Port to gnome 45" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:173 msgid "Add setting to open ui window centered" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:182 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:199 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:233 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:289 msgid "Fix a bug leading to history with only one item" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:188 msgid "First release for GNOME 44. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:190 msgid "gcr 4 is now required" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:191 msgid "Port to gnome 44" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:207 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:241 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:297 msgid "Avoid crash under heavy memory load" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:215 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:249 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:305 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:381 msgid "Respect --use-index when displaying history" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:221 msgid "First release for GNOME 43. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:223 msgid "Port to GNOME 43" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:224 msgid "Internal preparation for gtk4 port" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:257 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:313 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:389 msgid "Open GPaste UI where the mouse pointer is" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:265 msgid "Fixes to the new preferences tool" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:266 msgid "Style fixes" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:273 msgid "First release for GNOME 42. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:275 msgid "" "Old libgpaste replaced by a new minimal libgpaste-2 with no gtk dependency" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:276 msgid "New libgpaste-gtk3 for utils and settings ui" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:277 msgid "New libgpaste-gtk4 for utils and preferences ui" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:278 msgid "New gtk4 based gpaste-preferences utility" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:279 msgid "Autotools are no longer supported" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:280 msgid "Extension updated for gnome-shell 42" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:321 msgid "fix the storage path for meson builds" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:329 msgid "fix some race conditions in history handling" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:337 msgid "better fix crash when there is no history yet" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:345 msgid "fix crash when there is no history yet" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:346 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:355 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:364 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:373 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:397 msgid "translations update" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:354 msgid "fix gnome-shell exntesion when the daemon restarts" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:363 msgid "Fix keybindings for wayland" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:370 msgid "First release for GNOME 41. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:372 msgid "port to gnome-shell 41" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:405 msgid "fix a crash in memory usage checking" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:412 msgid "First release for GNOME 40. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:414 msgid "port to gnome-shell 40" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:415 msgid "placeholder for gnome-shell prefs" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:423 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:487 msgid "fix X11 keybinder outside of GNOME" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:431 msgid "better handling and reporting of invalid uuids passed to gpaste-client" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:432 msgid "" "gpaste-client now has a --use-index argument for several subcommands to use " "index instead of uuid" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:440 msgid "fix the make-password keybinding" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:441 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:450 msgid "updated translations" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:449 msgid "gnome-shell extension warning fixes" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:458 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:495 msgid "gnome-shell extension cosmetic updates" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:466 msgid "Disable images support by default (can be reenabled in preferences)" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:467 msgid "Search now includes passwords (using their names)" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:468 msgid "systemd integration enhancements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:474 msgid "First release for GNOME 3.38. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:476 msgid "Drop the Tracking DBus signal" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:477 msgid "Switch to uuids to identify items" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:478 msgid "Bump DBus interface to org.gnome.GPaste2" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:479 msgid "Update to gnome-shell 3.38.0" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:503 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:535 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:577 msgid "Fix activating items using Ctrl-Number in gnome-shell" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:511 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:543 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:576 msgid "Fix keybinding regrab with gnome-shell" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:519 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:551 msgid "Fix keybinding grab with gnome-shell" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:525 msgid "First release for GNOME 3.36. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:527 msgid "Update to gnome-shell 3.36.0" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:559 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:575 msgid "Compatibility with recent appstream-glib" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:565 msgid "First release for GNOME 3.34. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:567 msgid "Update to gnome-shell 3.34.0" msgstr "" #: src/client/gpaste-client.c:146 msgid "Couldn't spawn" msgstr "" #: src/client/gpaste-client.c:158 #, c-format msgid "Usage:\n" msgstr "" #. Translators: help for gpaste history #: src/client/gpaste-client.c:160 msgid "print the history with UUIDs" msgstr "" #. Translators: help for gpaste history-size #: src/client/gpaste-client.c:162 msgid "print the size of the history" msgstr "" #. Translators: help for gpaste get-history #: src/client/gpaste-client.c:164 msgid "get the name of the current history" msgstr "" #. Translators: help for gpaste backup-history #. Translators: help for gpaste switch-history #. Translators: help for gpaste delete-history #. Translators: help for gpaste add-password #. Translators: help for gpaste set-password #. Translators: help for gpaste delete-passworf #: src/client/gpaste-client.c:166 src/client/gpaste-client.c:168 #: src/client/gpaste-client.c:170 src/client/gpaste-client.c:176 #: src/client/gpaste-client.c:188 src/client/gpaste-client.c:192 msgid "name" msgstr "" #: src/client/gpaste-client.c:166 msgid "backup current history" msgstr "" #: src/client/gpaste-client.c:168 msgid "switch to another history" msgstr "" #: src/client/gpaste-client.c:170 msgid "delete a history" msgstr "" #. Translators: help for gpaste list-histories #: src/client/gpaste-client.c:172 msgid "list available histories" msgstr "" #. Translators: help for gpaste add #: src/client/gpaste-client.c:174 msgid "text" msgstr "" #: src/client/gpaste-client.c:174 msgid "set text to clipboard" msgstr "" #: src/client/gpaste-client.c:176 msgid "password" msgstr "" #: src/client/gpaste-client.c:176 msgid "add the name - password couple to the clipboard" msgstr "" #. Translators: help for gpaste rename-password #: src/client/gpaste-client.c:178 msgid "old name" msgstr "" #: src/client/gpaste-client.c:178 msgid "new name" msgstr "" #: src/client/gpaste-client.c:178 msgid "rename the password" msgstr "" #. Translators: help for gpaste get #: src/client/gpaste-client.c:180 msgid "get the item from the history" msgstr "" #. Translators: help for gpaste select #: src/client/gpaste-client.c:182 msgid "set the item from the history to the clipboard" msgstr "" #. Translators: help for gpaste replace #: src/client/gpaste-client.c:184 msgid "contents" msgstr "" #: src/client/gpaste-client.c:184 msgid "" "replace the contents of the item from the history with the provided " "one" msgstr "" #. Translators: help for gpaste merge #: src/client/gpaste-client.c:186 msgid "" "merge the items matching the UUIDs from the history and put the result in " "the clipboard" msgstr "" #: src/client/gpaste-client.c:188 msgid "set the item from the history as a password named " msgstr "" #. Translators: help for gpaste delete #: src/client/gpaste-client.c:190 msgid "delete item from the history" msgstr "" #: src/client/gpaste-client.c:192 msgid "delete the password from the history" msgstr "" #. Translators: help for gpaste file #: src/client/gpaste-client.c:194 msgid "path" msgstr "" #: src/client/gpaste-client.c:194 msgid "put the content of the file at into the clipboard" msgstr "" #. Translators: help for whatever | gpaste #: src/client/gpaste-client.c:196 msgid "whatever" msgstr "" #: src/client/gpaste-client.c:196 msgid "set the output of whatever to clipboard" msgstr "" #. Translators: help for gpaste empty #: src/client/gpaste-client.c:198 msgid "empty the history" msgstr "" #. Translators: help for gpaste start #: src/client/gpaste-client.c:200 msgid "start tracking clipboard changes" msgstr "" #. Translators: help for gpaste stop #: src/client/gpaste-client.c:202 msgid "stop tracking clipboard changes" msgstr "" #. Translators: help for gpaste quit #: src/client/gpaste-client.c:204 msgid "alias for stop" msgstr "" #. Translators: help for gpaste daemon-reexec #: src/client/gpaste-client.c:206 msgid "reexecute the daemon (after upgrading...)" msgstr "" #. Translators: help for gpaste preferences #: src/client/gpaste-client.c:208 msgid "launch the configuration tool" msgstr "" #. Translators: help for gpaste ui #: src/client/gpaste-client.c:210 msgid "launch the graphical tool" msgstr "" #. Translators: help for gpaste show-history #: src/client/gpaste-client.c:212 msgid "make the applet or extension display the history" msgstr "" #. Translators: help for gpaste upload #: src/client/gpaste-client.c:214 msgid "upload the item to a pastebin service" msgstr "" #. Translators: help for gpaste version #: src/client/gpaste-client.c:216 msgid "display the version" msgstr "" #. Translators: help for gpaste daemon-version #: src/client/gpaste-client.c:218 msgid "display the daemon version" msgstr "" #. Translators: help for gpaste help #: src/client/gpaste-client.c:220 msgid "display this help" msgstr "" #. Translators: help for gpaste about #: src/client/gpaste-client.c:222 msgid "display the about dialog" msgstr "" #: src/client/gpaste-client.c:225 #, c-format msgid "Convenience options:" msgstr "" #. Translators: help for --use-index #: src/client/gpaste-client.c:228 msgid "use the index of the item instead of its UUID" msgstr "" #: src/client/gpaste-client.c:231 #, c-format msgid "Display options:" msgstr "" #. Translators: help for --oneline #: src/client/gpaste-client.c:234 msgid "display each item on only one line" msgstr "" #. Translators: help for --raw #: src/client/gpaste-client.c:236 msgid "display each item raw (without line numbers)" msgstr "" #. Translators: help for --reverse #: src/client/gpaste-client.c:238 msgid "display the items in reverse order" msgstr "" #. Translators: help for --zero #: src/client/gpaste-client.c:240 msgid "use a NUL character instead of a new line betweean each item" msgstr "" #: src/client/gpaste-client.c:243 #, c-format msgid "Merge options:" msgstr "" #. Translators: help for --decoration #. Translators: help for --separator #: src/client/gpaste-client.c:246 src/client/gpaste-client.c:248 msgid "string" msgstr "" #: src/client/gpaste-client.c:246 msgid "" "add the given decoration to the beginning and the end of each item before " "merging" msgstr "" #: src/client/gpaste-client.c:248 msgid "add the given separator between each item when merging" msgstr "" #: src/client/gpaste-client.c:345 #, c-format msgid "Successfully reexecuted the daemon\n" msgstr "" #: src/client/gpaste-client.c:486 msgid "Cannot add non utf8 data as text." msgstr "" #: src/client/gpaste-client.c:796 src/ui/gpaste-ui-window.c:353 #: src/ui/gpaste-ui-window.c:354 msgid "Couldn't connect to GPaste daemon" msgstr "" #: src/daemon/gpaste-color-item.c:73 msgid "[Color]" msgstr "" #. Translators: strftime format for image timestamps. Rearrange to match your locale's date/time convention. #: src/daemon/gpaste-image-item.c:219 msgid "%m/%d/%y %T" msgstr "" #. Translators: Image item displayed in history. %d is width, %d is height, %s is the formatted date. #: src/daemon/gpaste-image-item.c:221 #, c-format msgid "[Image, %d x %d (%s)]" msgstr "" #: src/daemon/gpaste-make-password-keybinding.c:50 msgid "Convert to Password" msgstr "" #. This is the prefix displayed in history to identify a password #: src/daemon/gpaste-password-item.c:65 msgid "Password" msgstr "" #: src/daemon/gpaste-pop-keybinding.c:64 msgid "Pop from History" msgstr "" #: src/daemon/gpaste-show-history-keybinding.c:49 msgid "Show History" msgstr "" #: src/daemon/gpaste-sync-clipboard-to-primary-keybinding.c:46 msgid "Sync Clipboard to Primary" msgstr "" #: src/daemon/gpaste-sync-primary-to-clipboard-keybinding.c:46 msgid "Sync Primary to Clipboard" msgstr "" #: src/daemon/gpaste-ui-keybinding.c:43 msgid "Launch UI" msgstr "" #: src/daemon/gpaste-upload-keybinding.c:64 msgid "Upload to Pastebin" msgstr "" #: src/daemon/gpaste-uris-item.c:87 msgid "[Files] " msgstr "" #: src/daemon/main.c:32 msgid "Stop signal received, exiting" msgstr "" #: src/daemon/main.c:69 msgid "Could not acquire DBus name." msgstr "" #: src/gnome-shell/dummyHistoryItem.js:12 msgid "(Couldn't connect to GPaste daemon)" msgstr "" #: src/gnome-shell/dummyHistoryItem.js:17 msgid "(Empty)" msgstr "" #: src/gnome-shell/dummyHistoryItem.js:22 msgid "(No result)" msgstr "" #: src/gnome-shell/emptyHistoryItem.js:14 msgid "Empty history" msgstr "" #: src/gnome-shell/stateSwitch.js:12 msgid "Track changes" msgstr "" #: src/gnome-shell/uiItem.js:14 msgid "Graphical tool" msgstr "" #: src/libgpaste/gpaste/gpaste-util.c:636 msgid "Could not create history dir" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-macros.h:38 msgid "Failed to register the gtk application" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:108 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:119 msgid "General behaviour" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:121 #: src/ui/gpaste-ui-switch.c:93 msgid "Track clipboard changes" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:127 msgid "Close UI on select" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:133 msgid "Open the UI window centered" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:139 msgid "Save history" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:150 msgid "Enable the gnome-shell extension" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:156 msgid "Sync the daemon state with the extension's one" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:162 msgid "" "When enabled, the daemon automatically starts or stops tracking clipboard " "changes to match the GNOME Shell extension's enabled state" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:166 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:174 msgid "Clipboards synchronization" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:168 msgid "Primary selection affects history" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:174 msgid "Synchronize clipboard with primary selection" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:181 msgid "Optional features" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:183 msgid "Trim items" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:189 msgid "Detect growing lines" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:195 msgid "" "When enabled, if a new clipboard entry starts with the previous one, the " "previous entry is replaced instead of creating a new one" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:92 msgid "History settings" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:103 msgid "Resources limits" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:120 msgid "Text limits" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:122 msgid "Min text item length" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:129 msgid "Max text item length" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:137 msgid "Display settings" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:139 msgid "Max element size when displaying" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:81 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:92 msgid "Images settings" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:94 msgid "Images support" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:100 msgid "Image previews" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:106 msgid "Preview size" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:122 msgid "Keyboard shortcuts" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:133 msgid "History access" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:150 msgid "Active element manipulation" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-util.c:51 #: src/ui/gpaste-ui-edit-item.c:84 src/ui/gpaste-ui-new-item.c:66 #: src/ui/gpaste-ui-panel.c:311 msgid "Cancel" msgstr "" #. Translators: %s is the name of the history being emptied. #: src/libgpaste/gpaste-gtk4/gpaste-gtk-util.c:126 #, c-format msgid "Do you really want to empty \"%s\"?" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-util.c:127 #: src/ui/gpaste-ui-history.c:153 src/ui/gpaste-ui-history.c:428 #: src/ui/gpaste-ui-panel.c:517 msgid "Empty" msgstr "" #: src/ui/gpaste-ui.c:47 msgid "Clipboard management system" msgstr "" #: src/ui/gpaste-ui-delete-item.c:46 src/ui/gpaste-ui-panel.c:358 #: src/ui/gpaste-ui-panel.c:518 msgid "Delete" msgstr "" #: src/ui/gpaste-ui-edit-item.c:85 src/ui/gpaste-ui-edit-item.c:139 msgid "Edit" msgstr "" #: src/ui/gpaste-ui-history.c:266 msgid "No Results" msgstr "" #: src/ui/gpaste-ui-new-item.c:67 msgid "Add new item" msgstr "" #: src/ui/gpaste-ui-new-item.c:100 msgid "New item" msgstr "" #: src/ui/gpaste-ui-panel.c:307 msgid "Under which name do you want to backup this history?" msgstr "" #: src/ui/gpaste-ui-panel.c:311 src/ui/gpaste-ui-panel.c:516 msgid "Backup" msgstr "" #. Translators: %s is the name of the history being deleted. #: src/ui/gpaste-ui-panel.c:357 #, c-format msgid "Are you sure you want to delete \"%s\"?" msgstr "" #: src/ui/gpaste-ui-panel.c:441 msgid "Switch to history" msgstr "" #: src/ui/gpaste-ui-panel.c:448 msgid "Switch to" msgstr "" #: src/ui/gpaste-ui-reexec.c:45 msgid "Restart" msgstr "" #: src/ui/gpaste-ui-reexec.c:45 msgid "Do you really want to restart the daemon?" msgstr "" #: src/ui/gpaste-ui-reexec.c:70 msgid "Restart the daemon" msgstr "" #: src/ui/gpaste-ui-search.c:23 msgid "Search" msgstr "" #: src/ui/gpaste-ui-settings.c:35 msgid "GPaste Settings" msgstr "" #: src/ui/gpaste-ui-shortcuts-window.c:21 msgid "General" msgstr "" #: src/ui/gpaste-ui-switch.c:68 msgid "Stop" msgstr "" #: src/ui/gpaste-ui-switch.c:68 msgid "Do you really want to stop tracking clipboard changes?" msgstr "" #: src/ui/gpaste-ui-upload-item.c:46 msgid "Upload" msgstr "" #: src/ui/gpaste-ui-window.c:303 msgid "Quit" msgstr "" #: src/ui/gpaste-ui-window.c:380 msgid "Histories" msgstr "" #: src/ui/gpaste-ui-window.c:381 msgid "History" msgstr "" Keruspe-GPaste-724def1/po/LINGUAS000066400000000000000000000001541521206431300163670ustar00rootroot00000000000000ar cs da de es fa fi fr gl is it ja ka ko nb_NO nl_NL oc pl pt pt_BR ru sl sv ta tok tr uk vi zh_CN zh_Hant Keruspe-GPaste-724def1/po/POTFILES.in000066400000000000000000000140701521206431300171210ustar00rootroot00000000000000data/control-center/42-gpaste.control-center.xml.in data/desktop/org.gnome.GPaste.Daemon.desktop.in.in data/desktop/org.gnome.GPaste.Preferences.desktop.in.in data/desktop/org.gnome.GPaste.Ui.desktop.in.in data/gsettings/org.gnome.GPaste.gschema.xml data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in src/client/gpaste-client.c src/daemon/gpaste-bus.c src/daemon/gpaste-bus.h src/daemon/gpaste-bus-object.c src/daemon/gpaste-bus-object.h src/daemon/gpaste-clipboard.c src/daemon/gpaste-clipboard.h src/daemon/gpaste-clipboards-manager.c src/daemon/gpaste-clipboards-manager.h src/daemon/gpaste-color-item.c src/daemon/gpaste-color-item.h src/daemon/gpaste-daemon.c src/daemon/gpaste-daemon.h src/daemon/gpaste-file-backend.c src/daemon/gpaste-file-backend.h src/daemon/gpaste-history.c src/daemon/gpaste-history.h src/daemon/gpaste-image-item.c src/daemon/gpaste-image-item.h src/daemon/gpaste-internal-keybinding-provider.c src/daemon/gpaste-internal-keybinding-provider.h src/daemon/gpaste-item.c src/daemon/gpaste-item.h src/daemon/gpaste-keybinder.c src/daemon/gpaste-keybinder.h src/daemon/gpaste-keybinding.c src/daemon/gpaste-keybinding.h src/daemon/gpaste-make-password-keybinding.c src/daemon/gpaste-make-password-keybinding.h src/daemon/gpaste-password-item.c src/daemon/gpaste-password-item.h src/daemon/gpaste-pop-keybinding.c src/daemon/gpaste-pop-keybinding.h src/daemon/gpaste-search-provider.c src/daemon/gpaste-search-provider.h src/daemon/gpaste-show-history-keybinding.c src/daemon/gpaste-show-history-keybinding.h src/daemon/gpaste-special-atom.c src/daemon/gpaste-special-atom.h src/daemon/gpaste-storage-backend.c src/daemon/gpaste-storage-backend.h src/daemon/gpaste-sync-clipboard-to-primary-keybinding.c src/daemon/gpaste-sync-clipboard-to-primary-keybinding.h src/daemon/gpaste-sync-primary-to-clipboard-keybinding.c src/daemon/gpaste-sync-primary-to-clipboard-keybinding.h src/daemon/gpaste-text-item.c src/daemon/gpaste-text-item.h src/daemon/gpaste-ui-keybinding.c src/daemon/gpaste-ui-keybinding.h src/daemon/gpaste-upload-keybinding.c src/daemon/gpaste-upload-keybinding.h src/daemon/gpaste-uris-item.c src/daemon/gpaste-uris-item.h src/daemon/main.c src/gnome-shell/aboutItem.js src/gnome-shell/actionButtonActor.js src/gnome-shell/checkerBypass.js src/gnome-shell/deleteButton.js src/gnome-shell/deleteItemPart.js src/gnome-shell/dummyHistoryItem.js src/gnome-shell/emptyHistoryItem.js src/gnome-shell/extension.js src/gnome-shell/indicator.js src/gnome-shell/item.js src/gnome-shell/pageItem.js src/gnome-shell/pageSwitcher.js src/gnome-shell/prefs.js src/gnome-shell/searchItem.js src/gnome-shell/stateSwitch.js src/gnome-shell/statusIcon.js src/gnome-shell/uiItem.js src/libgpaste/gpaste/gpaste-client.c src/libgpaste/gpaste/gpaste-client.h src/libgpaste/gpaste/gpaste-client-item.c src/libgpaste/gpaste/gpaste-client-item.h src/libgpaste/gpaste/gpaste-gdbus-defines.h src/libgpaste/gpaste/gpaste-gdbus-macros.h src/libgpaste/gpaste/gpaste-gnome-shell-client.c src/libgpaste/gpaste/gpaste-gnome-shell-client.h src/libgpaste/gpaste/gpaste-gsettings-keys.h src/libgpaste/gpaste/gpaste-item-enums.c src/libgpaste/gpaste/gpaste-item-enums.h src/libgpaste/gpaste/gpaste-keybinding-provider.c src/libgpaste/gpaste/gpaste-keybinding-provider.h src/libgpaste/gpaste/gpaste-macros.h src/libgpaste/gpaste/gpaste-screensaver-client.c src/libgpaste/gpaste/gpaste-screensaver-client.h src/libgpaste/gpaste/gpaste-settings.c src/libgpaste/gpaste/gpaste-settings.h src/libgpaste/gpaste/gpaste-update-enums.c src/libgpaste/gpaste/gpaste-update-enums.h src/libgpaste/gpaste/gpaste-util.c src/libgpaste/gpaste/gpaste-util.h src/libgpaste/gpaste-gtk4/gpaste-gtk-global-shortcut-client.c src/libgpaste/gpaste-gtk4/gpaste-gtk-global-shortcut-client.h src/libgpaste/gpaste-gtk4/gpaste-gtk-macros.h src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.h src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-dialog.c src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-dialog.h src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-group.c src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-group.h src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.h src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.h src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-manager.c src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-manager.h src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-page.c src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-page.h src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.h src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-widget.c src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-widget.h src/libgpaste/gpaste-gtk4/gpaste-gtk-util.c src/libgpaste/gpaste-gtk4/gpaste-gtk-util.h src/libgpaste/gpaste-gtk4.h src/libgpaste/gpaste.h src/preferences/gpaste-preferences.c src/ui/gpaste-ui-about.c src/ui/gpaste-ui-about.h src/ui/gpaste-ui.c src/ui/gpaste-ui-delete-item.c src/ui/gpaste-ui-delete-item.h src/ui/gpaste-ui-edit-item.c src/ui/gpaste-ui-edit-item.h src/ui/gpaste-ui-header.c src/ui/gpaste-ui-header.h src/ui/gpaste-ui-history.c src/ui/gpaste-ui-history.h src/ui/gpaste-ui-item-action.c src/ui/gpaste-ui-item-action.h src/ui/gpaste-ui-item.c src/ui/gpaste-ui-item.h src/ui/gpaste-ui-item-skeleton.c src/ui/gpaste-ui-item-skeleton.h src/ui/gpaste-ui-new-item.c src/ui/gpaste-ui-new-item.h src/ui/gpaste-ui-panel.c src/ui/gpaste-ui-panel.h src/ui/gpaste-ui-panel-history.c src/ui/gpaste-ui-panel-history.h src/ui/gpaste-ui-reexec.c src/ui/gpaste-ui-reexec.h src/ui/gpaste-ui-search-bar.c src/ui/gpaste-ui-search-bar.h src/ui/gpaste-ui-search.c src/ui/gpaste-ui-search.h src/ui/gpaste-ui-settings.c src/ui/gpaste-ui-settings.h src/ui/gpaste-ui-shortcuts-window.c src/ui/gpaste-ui-shortcuts-window.h src/ui/gpaste-ui-switch.c src/ui/gpaste-ui-switch.h src/ui/gpaste-ui-upload-item.c src/ui/gpaste-ui-upload-item.h src/ui/gpaste-ui-window.c src/ui/gpaste-ui-window.h Keruspe-GPaste-724def1/po/ar.po000066400000000000000000001255571521206431300163230ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Marc-Antoine Perennou # This file is distributed under the same license as the gpaste package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: gpaste 3.38.3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-06-09 21:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" "Language: ar\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: data/control-center/42-gpaste.control-center.xml.in:2 msgid "@GETTEXT_PACKAGE@" msgstr "" #: data/control-center/42-gpaste.control-center.xml.in:3 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:136 #: src/ui/gpaste-ui-shortcuts-window.c:24 msgid "Launch the graphical tool" msgstr "" #: data/control-center/42-gpaste.control-center.xml.in:4 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:153 #: src/ui/gpaste-ui-shortcuts-window.c:25 msgid "Mark the active item as being a password" msgstr "" #: data/control-center/42-gpaste.control-center.xml.in:5 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:167 #: src/ui/gpaste-ui-shortcuts-window.c:23 msgid "Delete the active item from history" msgstr "" #: data/control-center/42-gpaste.control-center.xml.in:6 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:143 #: src/ui/gpaste-ui-shortcuts-window.c:26 msgid "Display the history" msgstr "" #: data/control-center/42-gpaste.control-center.xml.in:7 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:177 #: src/ui/gpaste-ui-shortcuts-window.c:27 msgid "Sync the clipboard to the primary selection" msgstr "" #: data/control-center/42-gpaste.control-center.xml.in:8 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:184 #: src/ui/gpaste-ui-shortcuts-window.c:28 msgid "Sync the primary selection to the clipboard" msgstr "" #: data/control-center/42-gpaste.control-center.xml.in:9 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:160 #: src/ui/gpaste-ui-shortcuts-window.c:29 msgid "Upload the active item to a pastebin service" msgstr "" #: data/desktop/org.gnome.GPaste.Daemon.desktop.in.in:3 #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:3 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:6 msgid "GPaste" msgstr "" #: data/desktop/org.gnome.GPaste.Preferences.desktop.in.in:3 msgid "GPaste Preferences" msgstr "" #: data/desktop/org.gnome.GPaste.Preferences.desktop.in.in:4 msgid "Manage your GPaste preferences" msgstr "" #: data/desktop/org.gnome.GPaste.Preferences.desktop.in.in:5 #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:6 msgid "Clipboard;Manager;Settings;Preferences;Configuration;" msgstr "" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:4 msgid "Clipboard Manager" msgstr "" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:5 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:7 msgid "Manage your clipboard history" msgstr "" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:16 msgid "Preferences" msgstr "" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:20 #: src/gnome-shell/aboutItem.js:13 src/ui/gpaste-ui-about.c:38 msgid "About" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:7 msgid "Max size of an element when displaying it" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:8 msgid "" "The extra stuff of that element will be replaced by \"…\", and newlines by " "\" \" when displaying from the applet, 0 to disable." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:15 msgid "Do we detect and replace growing lines in history?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:16 msgid "" "By default, selecting \"Here is\", then \"Here is an example\" will create " "two entries in the history. With this feature enabled, the first one will be " "replaced by the second one." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:24 msgid "The name of the current history" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:25 msgid "The default name is \"history\"" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:32 msgid "Do we save the images copied to history, or only text?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:33 msgid "By default, we're saving only text" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:40 msgid "Show image previews in the history?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:41 msgid "By default, we show previews of images in the history" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:49 msgid "Size of image previews in pixels" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:50 msgid "Default size is 100 pixels" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:57 msgid "Do we close the UI after selecting an item?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:58 msgid "By default, we close it" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:65 msgid "Do we open the UI window centered?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:66 msgid "By default, we open it where the mouse cursor is" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:73 msgid "The keyboard shortcut to launch the graphical interface" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:74 msgid "" "By default, hitting ctrl + alt + g does that (\"G\"). An empty " "string here disables this functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:82 msgid "The keyboard shortcut to mark the active item as being a password" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:83 msgid "" "By default, hitting ctrl + alt + s will mark the active item as being a " "password (\"S\"). An empty string here disables this " "functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:92 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:146 msgid "Max displayed history size" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:93 msgid "Maximum number of items displayed in the history" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:101 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:105 msgid "Max history size" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:102 msgid "Maximum number of items in history" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:110 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:112 msgid "Max memory usage (MB)" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:111 msgid "Maximum amount of memory used to store contents" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:119 msgid "Max text item size" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:120 msgid "Maximum size of a text item. Anything out of this boundary is ignored." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:128 msgid "Min text item size" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:129 msgid "Minimum size of a text item. Anything out of this boundary is ignored." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:136 msgid "The keyboard shortcut to delete the first element in history" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:137 msgid "" "By default, hitting ctrl + alt + v does that (\"V\"). An empty " "string here disables this functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:145 msgid "Does the primary selection affects history?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:146 msgid "By default, only clipboard (ctrl+c) affects history." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:153 msgid "" "Do we save all versions of selected rich text (e.g. html) or just the plain " "text version?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:154 msgid "By default, we're saving all" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:161 msgid "Do we save the history from one session to another?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:162 msgid "By default, we're saving it" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:169 msgid "The keyboard shortcut to display the menu" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:170 msgid "" "By default, hitting ctrl + alt + h displays the menu (\"H\"). An " "empty string here disables this functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:178 msgid "The keyboard shortcut to sync the clipboard to the primary selection" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:179 msgid "" "By default, hitting ctrl + alt + o syncs them (\"P\"). An empty " "string here disables this functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:187 msgid "The keyboard shortcut to sync the primary selection to the clipboard" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:188 msgid "" "By default, hitting ctrl + alt + p syncs them (\"P\"). An empty " "string here disables this functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:196 msgid "Are the primary selection and the clipboard synchronized?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:197 msgid "By default, the primary selection and the clipboard are independent." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:204 msgid "Do we track the clipboard changes?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:205 msgid "By default, we're tracking those changes." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:212 msgid "" "Do we sync the daemon state with the gnome-shell extension's one? (disable " "the daemon when disabling the extension)" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:213 msgid "By default, the daemon state keeps unchanged" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:220 msgid "Do we trim the textual items before adding them to history?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:221 msgid "" "Trimming means removing all trailing and ending spaces. By default, we're " "letting them as-is." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:229 msgid "" "The keyboard shortcut to upload the first element in history to a pastebin " "service" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:230 msgid "" "By default, hitting ctrl + alt + u does that (\"U\"). An empty " "string here disables this functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:238 msgid "Do we prompt for confirmation when emptying a history?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:239 msgid "By default, we do as it's a destructive action" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:9 msgid "Marc-Antoine Perennou" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:17 msgid "" "GPaste is a clipboard managing system allowing you to track and manage your " "clipboard history in a highly customizable way." msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:20 msgid "" "GPaste provides you with a graphical tool allowing you to manage everything " "easily." msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:27 msgid "The main UI" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:31 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:35 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:39 msgid "The settings UI" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:51 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:78 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:90 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:100 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:120 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:133 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:143 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:152 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:161 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:180 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:197 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:205 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:213 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:231 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:239 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:247 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:255 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:263 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:287 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:295 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:303 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:311 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:319 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:327 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:335 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:343 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:352 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:361 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:379 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:387 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:395 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:403 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:421 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:429 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:438 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:447 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:456 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:464 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:485 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:493 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:501 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:509 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:517 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:533 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:541 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:549 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:557 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:573 msgid "This is a maintenance release. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:53 msgid "Fix building without the GNOME Shell extension (-Dgnome-shell=false)" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:54 msgid "" "Restore GTK deprecation version-gating and drop the unused build-time gjs " "dependency" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:55 msgid "Target GNOME Shell 50 in the extension" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:56 msgid "Bump the library soversions to reflect the API/ABI changes since 45.8" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:62 msgid "" "This is a major release porting GPaste to GTK 4 and libadwaita. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:64 msgid "Port the daemon, history UI and preferences to GTK 4 and libadwaita" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:65 msgid "Show image thumbnails in the history, with configurable preview size" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:66 msgid "" "Support global keyboard shortcuts on Wayland through the XDG GlobalShortcuts " "portal" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:67 msgid "Recognise copied colours as dedicated colour items" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:68 msgid "" "Give keybindings human-readable descriptions and install a daemon desktop " "file" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:69 msgid "Fix images sometimes being repeatedly re-added to the history" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:70 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:81 msgid "" "Fix keyboard shortcuts not triggering when NumLock and CapsLock are both " "active" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:71 msgid "" "Fix several crashes (search provider, UI lifetime, GNOME Shell extension) " "and memory leaks" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:72 msgid "Modernise the GNOME Shell extension to current conventions" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:80 msgid "Fix use-after-free crash in the GNOME Shell search provider" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:82 msgid "" "Fix memory leaks when re-copying history items and when rebinding shortcuts" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:83 msgid "Fix potential crash when enforcing a very small history size" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:84 msgid "Build: ship the GSettings schema as a static file" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:92 msgid "" "GNOME Shell extension now retries the daemon connection before giving up" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:93 msgid "Fix test crash when GrabAccelerators is not allowed" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:94 msgid "Build: simplify gsettings compilation for tests" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:102 msgid "Fix GC crash and signal leak when disabling the GNOME Shell extension" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:103 msgid "GNOME Shell extension now handles daemon connection failure gracefully" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:104 msgid "Fix crash when a history item has no value yet" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:105 msgid "Fix image files not being deleted when history items are removed" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:106 msgid "Fix image files stored in wrong directory" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:107 msgid "Fix keyboard focus being stolen by history items on hover" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:108 msgid "" "Fix key events incorrectly forwarded to search when another entry has focus" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:109 msgid "Fix signal loop when updating shortcut entries from settings" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:110 msgid "Fix default history item count not reset after history deletion" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:111 msgid "Enforce minimum window size to prevent unresizable state" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:112 msgid "Add descriptive tooltips for settings entries" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:113 msgid "Build: explicitly link libgpaste libraries against libc" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:114 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:127 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:137 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:146 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:155 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:164 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:174 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:225 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:267 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:281 msgid "Translations updates" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:122 msgid "" "Fix infinite Pango assertion loop that could fill disk when clipboard " "content contained tab characters" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:123 msgid "Various bug fixes and memory management improvements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:124 msgid "Daemon improvements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:125 msgid "GNOME Shell extension improvements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:126 msgid "GLib >= 2.76 is now required" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:135 msgid "Support for gnome 50" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:136 msgid "Support for gnome 49" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:145 msgid "Support for gnome 48" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:154 msgid "Support for gnome 47" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:163 msgid "Support for gnome 46" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:170 msgid "Stable release for GNOME 45. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:172 msgid "Port to gnome 45" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:173 msgid "Add setting to open ui window centered" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:182 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:199 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:233 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:289 msgid "Fix a bug leading to history with only one item" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:188 msgid "First release for GNOME 44. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:190 msgid "gcr 4 is now required" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:191 msgid "Port to gnome 44" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:207 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:241 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:297 msgid "Avoid crash under heavy memory load" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:215 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:249 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:305 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:381 msgid "Respect --use-index when displaying history" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:221 msgid "First release for GNOME 43. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:223 msgid "Port to GNOME 43" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:224 msgid "Internal preparation for gtk4 port" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:257 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:313 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:389 msgid "Open GPaste UI where the mouse pointer is" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:265 msgid "Fixes to the new preferences tool" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:266 msgid "Style fixes" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:273 msgid "First release for GNOME 42. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:275 msgid "" "Old libgpaste replaced by a new minimal libgpaste-2 with no gtk dependency" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:276 msgid "New libgpaste-gtk3 for utils and settings ui" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:277 msgid "New libgpaste-gtk4 for utils and preferences ui" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:278 msgid "New gtk4 based gpaste-preferences utility" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:279 msgid "Autotools are no longer supported" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:280 msgid "Extension updated for gnome-shell 42" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:321 msgid "fix the storage path for meson builds" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:329 msgid "fix some race conditions in history handling" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:337 msgid "better fix crash when there is no history yet" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:345 msgid "fix crash when there is no history yet" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:346 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:355 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:364 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:373 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:397 msgid "translations update" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:354 msgid "fix gnome-shell exntesion when the daemon restarts" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:363 msgid "Fix keybindings for wayland" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:370 msgid "First release for GNOME 41. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:372 msgid "port to gnome-shell 41" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:405 msgid "fix a crash in memory usage checking" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:412 msgid "First release for GNOME 40. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:414 msgid "port to gnome-shell 40" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:415 msgid "placeholder for gnome-shell prefs" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:423 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:487 msgid "fix X11 keybinder outside of GNOME" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:431 msgid "better handling and reporting of invalid uuids passed to gpaste-client" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:432 msgid "" "gpaste-client now has a --use-index argument for several subcommands to use " "index instead of uuid" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:440 msgid "fix the make-password keybinding" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:441 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:450 msgid "updated translations" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:449 msgid "gnome-shell extension warning fixes" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:458 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:495 msgid "gnome-shell extension cosmetic updates" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:466 msgid "Disable images support by default (can be reenabled in preferences)" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:467 msgid "Search now includes passwords (using their names)" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:468 msgid "systemd integration enhancements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:474 msgid "First release for GNOME 3.38. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:476 msgid "Drop the Tracking DBus signal" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:477 msgid "Switch to uuids to identify items" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:478 msgid "Bump DBus interface to org.gnome.GPaste2" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:479 msgid "Update to gnome-shell 3.38.0" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:503 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:535 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:577 msgid "Fix activating items using Ctrl-Number in gnome-shell" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:511 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:543 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:576 msgid "Fix keybinding regrab with gnome-shell" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:519 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:551 msgid "Fix keybinding grab with gnome-shell" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:525 msgid "First release for GNOME 3.36. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:527 msgid "Update to gnome-shell 3.36.0" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:559 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:575 msgid "Compatibility with recent appstream-glib" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:565 msgid "First release for GNOME 3.34. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:567 msgid "Update to gnome-shell 3.34.0" msgstr "" #: src/client/gpaste-client.c:146 msgid "Couldn't spawn" msgstr "" #: src/client/gpaste-client.c:158 #, c-format msgid "Usage:\n" msgstr "" #. Translators: help for gpaste history #: src/client/gpaste-client.c:160 msgid "print the history with UUIDs" msgstr "" #. Translators: help for gpaste history-size #: src/client/gpaste-client.c:162 msgid "print the size of the history" msgstr "" #. Translators: help for gpaste get-history #: src/client/gpaste-client.c:164 msgid "get the name of the current history" msgstr "" #. Translators: help for gpaste backup-history #. Translators: help for gpaste switch-history #. Translators: help for gpaste delete-history #. Translators: help for gpaste add-password #. Translators: help for gpaste set-password #. Translators: help for gpaste delete-passworf #: src/client/gpaste-client.c:166 src/client/gpaste-client.c:168 #: src/client/gpaste-client.c:170 src/client/gpaste-client.c:176 #: src/client/gpaste-client.c:188 src/client/gpaste-client.c:192 msgid "name" msgstr "" #: src/client/gpaste-client.c:166 msgid "backup current history" msgstr "" #: src/client/gpaste-client.c:168 msgid "switch to another history" msgstr "" #: src/client/gpaste-client.c:170 msgid "delete a history" msgstr "" #. Translators: help for gpaste list-histories #: src/client/gpaste-client.c:172 msgid "list available histories" msgstr "" #. Translators: help for gpaste add #: src/client/gpaste-client.c:174 msgid "text" msgstr "" #: src/client/gpaste-client.c:174 msgid "set text to clipboard" msgstr "" #: src/client/gpaste-client.c:176 msgid "password" msgstr "" #: src/client/gpaste-client.c:176 msgid "add the name - password couple to the clipboard" msgstr "" #. Translators: help for gpaste rename-password #: src/client/gpaste-client.c:178 msgid "old name" msgstr "" #: src/client/gpaste-client.c:178 msgid "new name" msgstr "" #: src/client/gpaste-client.c:178 msgid "rename the password" msgstr "" #. Translators: help for gpaste get #: src/client/gpaste-client.c:180 msgid "get the item from the history" msgstr "" #. Translators: help for gpaste select #: src/client/gpaste-client.c:182 msgid "set the item from the history to the clipboard" msgstr "" #. Translators: help for gpaste replace #: src/client/gpaste-client.c:184 msgid "contents" msgstr "" #: src/client/gpaste-client.c:184 msgid "" "replace the contents of the item from the history with the provided " "one" msgstr "" #. Translators: help for gpaste merge #: src/client/gpaste-client.c:186 msgid "" "merge the items matching the UUIDs from the history and put the result in " "the clipboard" msgstr "" #: src/client/gpaste-client.c:188 msgid "set the item from the history as a password named " msgstr "" #. Translators: help for gpaste delete #: src/client/gpaste-client.c:190 msgid "delete item from the history" msgstr "" #: src/client/gpaste-client.c:192 msgid "delete the password from the history" msgstr "" #. Translators: help for gpaste file #: src/client/gpaste-client.c:194 msgid "path" msgstr "" #: src/client/gpaste-client.c:194 msgid "put the content of the file at into the clipboard" msgstr "" #. Translators: help for whatever | gpaste #: src/client/gpaste-client.c:196 msgid "whatever" msgstr "" #: src/client/gpaste-client.c:196 msgid "set the output of whatever to clipboard" msgstr "" #. Translators: help for gpaste empty #: src/client/gpaste-client.c:198 msgid "empty the history" msgstr "" #. Translators: help for gpaste start #: src/client/gpaste-client.c:200 msgid "start tracking clipboard changes" msgstr "" #. Translators: help for gpaste stop #: src/client/gpaste-client.c:202 msgid "stop tracking clipboard changes" msgstr "" #. Translators: help for gpaste quit #: src/client/gpaste-client.c:204 msgid "alias for stop" msgstr "" #. Translators: help for gpaste daemon-reexec #: src/client/gpaste-client.c:206 msgid "reexecute the daemon (after upgrading...)" msgstr "" #. Translators: help for gpaste preferences #: src/client/gpaste-client.c:208 msgid "launch the configuration tool" msgstr "" #. Translators: help for gpaste ui #: src/client/gpaste-client.c:210 msgid "launch the graphical tool" msgstr "" #. Translators: help for gpaste show-history #: src/client/gpaste-client.c:212 msgid "make the applet or extension display the history" msgstr "" #. Translators: help for gpaste upload #: src/client/gpaste-client.c:214 msgid "upload the item to a pastebin service" msgstr "" #. Translators: help for gpaste version #: src/client/gpaste-client.c:216 msgid "display the version" msgstr "" #. Translators: help for gpaste daemon-version #: src/client/gpaste-client.c:218 msgid "display the daemon version" msgstr "" #. Translators: help for gpaste help #: src/client/gpaste-client.c:220 msgid "display this help" msgstr "" #. Translators: help for gpaste about #: src/client/gpaste-client.c:222 msgid "display the about dialog" msgstr "" #: src/client/gpaste-client.c:225 #, c-format msgid "Convenience options:" msgstr "" #. Translators: help for --use-index #: src/client/gpaste-client.c:228 msgid "use the index of the item instead of its UUID" msgstr "" #: src/client/gpaste-client.c:231 #, c-format msgid "Display options:" msgstr "" #. Translators: help for --oneline #: src/client/gpaste-client.c:234 msgid "display each item on only one line" msgstr "" #. Translators: help for --raw #: src/client/gpaste-client.c:236 msgid "display each item raw (without line numbers)" msgstr "" #. Translators: help for --reverse #: src/client/gpaste-client.c:238 msgid "display the items in reverse order" msgstr "" #. Translators: help for --zero #: src/client/gpaste-client.c:240 msgid "use a NUL character instead of a new line betweean each item" msgstr "" #: src/client/gpaste-client.c:243 #, c-format msgid "Merge options:" msgstr "" #. Translators: help for --decoration #. Translators: help for --separator #: src/client/gpaste-client.c:246 src/client/gpaste-client.c:248 msgid "string" msgstr "" #: src/client/gpaste-client.c:246 msgid "" "add the given decoration to the beginning and the end of each item before " "merging" msgstr "" #: src/client/gpaste-client.c:248 msgid "add the given separator between each item when merging" msgstr "" #: src/client/gpaste-client.c:345 #, c-format msgid "Successfully reexecuted the daemon\n" msgstr "" #: src/client/gpaste-client.c:486 msgid "Cannot add non utf8 data as text." msgstr "" #: src/client/gpaste-client.c:796 src/ui/gpaste-ui-window.c:353 #: src/ui/gpaste-ui-window.c:354 msgid "Couldn't connect to GPaste daemon" msgstr "" #: src/daemon/gpaste-color-item.c:73 msgid "[Color]" msgstr "" #. Translators: strftime format for image timestamps. Rearrange to match your locale's date/time convention. #: src/daemon/gpaste-image-item.c:219 msgid "%m/%d/%y %T" msgstr "" #. Translators: Image item displayed in history. %d is width, %d is height, %s is the formatted date. #: src/daemon/gpaste-image-item.c:221 #, c-format msgid "[Image, %d x %d (%s)]" msgstr "" #: src/daemon/gpaste-make-password-keybinding.c:50 msgid "Convert to Password" msgstr "" #. This is the prefix displayed in history to identify a password #: src/daemon/gpaste-password-item.c:65 msgid "Password" msgstr "" #: src/daemon/gpaste-pop-keybinding.c:64 msgid "Pop from History" msgstr "" #: src/daemon/gpaste-show-history-keybinding.c:49 msgid "Show History" msgstr "" #: src/daemon/gpaste-sync-clipboard-to-primary-keybinding.c:46 msgid "Sync Clipboard to Primary" msgstr "" #: src/daemon/gpaste-sync-primary-to-clipboard-keybinding.c:46 msgid "Sync Primary to Clipboard" msgstr "" #: src/daemon/gpaste-ui-keybinding.c:43 msgid "Launch UI" msgstr "" #: src/daemon/gpaste-upload-keybinding.c:64 msgid "Upload to Pastebin" msgstr "" #: src/daemon/gpaste-uris-item.c:87 msgid "[Files] " msgstr "" #: src/daemon/main.c:32 msgid "Stop signal received, exiting" msgstr "" #: src/daemon/main.c:69 msgid "Could not acquire DBus name." msgstr "" #: src/gnome-shell/dummyHistoryItem.js:12 msgid "(Couldn't connect to GPaste daemon)" msgstr "" #: src/gnome-shell/dummyHistoryItem.js:17 msgid "(Empty)" msgstr "" #: src/gnome-shell/dummyHistoryItem.js:22 msgid "(No result)" msgstr "" #: src/gnome-shell/emptyHistoryItem.js:14 msgid "Empty history" msgstr "" #: src/gnome-shell/stateSwitch.js:12 msgid "Track changes" msgstr "" #: src/gnome-shell/uiItem.js:14 msgid "Graphical tool" msgstr "" #: src/libgpaste/gpaste/gpaste-util.c:636 msgid "Could not create history dir" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-macros.h:38 msgid "Failed to register the gtk application" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:108 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:119 msgid "General behaviour" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:121 #: src/ui/gpaste-ui-switch.c:93 msgid "Track clipboard changes" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:127 msgid "Close UI on select" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:133 msgid "Open the UI window centered" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:139 msgid "Save history" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:150 msgid "Enable the gnome-shell extension" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:156 msgid "Sync the daemon state with the extension's one" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:162 msgid "" "When enabled, the daemon automatically starts or stops tracking clipboard " "changes to match the GNOME Shell extension's enabled state" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:166 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:174 msgid "Clipboards synchronization" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:168 msgid "Primary selection affects history" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:174 msgid "Synchronize clipboard with primary selection" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:181 msgid "Optional features" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:183 msgid "Trim items" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:189 msgid "Detect growing lines" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:195 msgid "" "When enabled, if a new clipboard entry starts with the previous one, the " "previous entry is replaced instead of creating a new one" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:92 msgid "History settings" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:103 msgid "Resources limits" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:120 msgid "Text limits" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:122 msgid "Min text item length" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:129 msgid "Max text item length" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:137 msgid "Display settings" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:139 msgid "Max element size when displaying" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:81 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:92 msgid "Images settings" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:94 msgid "Images support" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:100 msgid "Image previews" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:106 msgid "Preview size" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:122 msgid "Keyboard shortcuts" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:133 msgid "History access" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:150 msgid "Active element manipulation" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-util.c:51 #: src/ui/gpaste-ui-edit-item.c:84 src/ui/gpaste-ui-new-item.c:66 #: src/ui/gpaste-ui-panel.c:311 msgid "Cancel" msgstr "" #. Translators: %s is the name of the history being emptied. #: src/libgpaste/gpaste-gtk4/gpaste-gtk-util.c:126 #, c-format msgid "Do you really want to empty \"%s\"?" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-util.c:127 #: src/ui/gpaste-ui-history.c:153 src/ui/gpaste-ui-history.c:428 #: src/ui/gpaste-ui-panel.c:517 msgid "Empty" msgstr "" #: src/ui/gpaste-ui.c:47 msgid "Clipboard management system" msgstr "" #: src/ui/gpaste-ui-delete-item.c:46 src/ui/gpaste-ui-panel.c:358 #: src/ui/gpaste-ui-panel.c:518 msgid "Delete" msgstr "" #: src/ui/gpaste-ui-edit-item.c:85 src/ui/gpaste-ui-edit-item.c:139 msgid "Edit" msgstr "" #: src/ui/gpaste-ui-history.c:266 msgid "No Results" msgstr "" #: src/ui/gpaste-ui-new-item.c:67 msgid "Add new item" msgstr "" #: src/ui/gpaste-ui-new-item.c:100 msgid "New item" msgstr "" #: src/ui/gpaste-ui-panel.c:307 msgid "Under which name do you want to backup this history?" msgstr "" #: src/ui/gpaste-ui-panel.c:311 src/ui/gpaste-ui-panel.c:516 msgid "Backup" msgstr "" #. Translators: %s is the name of the history being deleted. #: src/ui/gpaste-ui-panel.c:357 #, c-format msgid "Are you sure you want to delete \"%s\"?" msgstr "" #: src/ui/gpaste-ui-panel.c:441 msgid "Switch to history" msgstr "" #: src/ui/gpaste-ui-panel.c:448 msgid "Switch to" msgstr "" #: src/ui/gpaste-ui-reexec.c:45 msgid "Restart" msgstr "" #: src/ui/gpaste-ui-reexec.c:45 msgid "Do you really want to restart the daemon?" msgstr "" #: src/ui/gpaste-ui-reexec.c:70 msgid "Restart the daemon" msgstr "" #: src/ui/gpaste-ui-search.c:23 msgid "Search" msgstr "" #: src/ui/gpaste-ui-settings.c:35 msgid "GPaste Settings" msgstr "" #: src/ui/gpaste-ui-shortcuts-window.c:21 msgid "General" msgstr "" #: src/ui/gpaste-ui-switch.c:68 msgid "Stop" msgstr "" #: src/ui/gpaste-ui-switch.c:68 msgid "Do you really want to stop tracking clipboard changes?" msgstr "" #: src/ui/gpaste-ui-upload-item.c:46 msgid "Upload" msgstr "" #: src/ui/gpaste-ui-window.c:303 msgid "Quit" msgstr "" #: src/ui/gpaste-ui-window.c:380 msgid "Histories" msgstr "" #: src/ui/gpaste-ui-window.c:381 msgid "History" msgstr "" Keruspe-GPaste-724def1/po/cs.po000066400000000000000000001312001521206431300163040ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Marc-Antoine Perennou # This file is distributed under the same license as the gpaste package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: gpaste 3.40.2\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-06-09 21:21+0200\n" "PO-Revision-Date: 2022-08-22 14:19+0000\n" "Last-Translator: Martin Velký \n" "Language-Team: Czech \n" "Language: cs\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" "X-Generator: Weblate 4.14-dev\n" #: data/control-center/42-gpaste.control-center.xml.in:2 msgid "@GETTEXT_PACKAGE@" msgstr "" #: data/control-center/42-gpaste.control-center.xml.in:3 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:136 #: src/ui/gpaste-ui-shortcuts-window.c:24 msgid "Launch the graphical tool" msgstr "" #: data/control-center/42-gpaste.control-center.xml.in:4 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:153 #: src/ui/gpaste-ui-shortcuts-window.c:25 msgid "Mark the active item as being a password" msgstr "" #: data/control-center/42-gpaste.control-center.xml.in:5 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:167 #: src/ui/gpaste-ui-shortcuts-window.c:23 msgid "Delete the active item from history" msgstr "" #: data/control-center/42-gpaste.control-center.xml.in:6 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:143 #: src/ui/gpaste-ui-shortcuts-window.c:26 msgid "Display the history" msgstr "" #: data/control-center/42-gpaste.control-center.xml.in:7 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:177 #: src/ui/gpaste-ui-shortcuts-window.c:27 msgid "Sync the clipboard to the primary selection" msgstr "" #: data/control-center/42-gpaste.control-center.xml.in:8 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:184 #: src/ui/gpaste-ui-shortcuts-window.c:28 msgid "Sync the primary selection to the clipboard" msgstr "" #: data/control-center/42-gpaste.control-center.xml.in:9 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:160 #: src/ui/gpaste-ui-shortcuts-window.c:29 msgid "Upload the active item to a pastebin service" msgstr "" #: data/desktop/org.gnome.GPaste.Daemon.desktop.in.in:3 #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:3 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:6 msgid "GPaste" msgstr "GPaste" #: data/desktop/org.gnome.GPaste.Preferences.desktop.in.in:3 msgid "GPaste Preferences" msgstr "" #: data/desktop/org.gnome.GPaste.Preferences.desktop.in.in:4 msgid "Manage your GPaste preferences" msgstr "" #: data/desktop/org.gnome.GPaste.Preferences.desktop.in.in:5 #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:6 msgid "Clipboard;Manager;Settings;Preferences;Configuration;" msgstr "" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:4 msgid "Clipboard Manager" msgstr "" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:5 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:7 msgid "Manage your clipboard history" msgstr "Správa historie schránky" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:16 msgid "Preferences" msgstr "" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:20 #: src/gnome-shell/aboutItem.js:13 src/ui/gpaste-ui-about.c:38 msgid "About" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:7 msgid "Max size of an element when displaying it" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:8 msgid "" "The extra stuff of that element will be replaced by \"…\", and newlines by " "\" \" when displaying from the applet, 0 to disable." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:15 msgid "Do we detect and replace growing lines in history?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:16 msgid "" "By default, selecting \"Here is\", then \"Here is an example\" will create " "two entries in the history. With this feature enabled, the first one will be " "replaced by the second one." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:24 msgid "The name of the current history" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:25 msgid "The default name is \"history\"" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:32 msgid "Do we save the images copied to history, or only text?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:33 msgid "By default, we're saving only text" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:40 msgid "Show image previews in the history?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:41 msgid "By default, we show previews of images in the history" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:49 msgid "Size of image previews in pixels" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:50 msgid "Default size is 100 pixels" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:57 msgid "Do we close the UI after selecting an item?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:58 msgid "By default, we close it" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:65 msgid "Do we open the UI window centered?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:66 msgid "By default, we open it where the mouse cursor is" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:73 msgid "The keyboard shortcut to launch the graphical interface" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:74 msgid "" "By default, hitting ctrl + alt + g does that (\"G\"). An empty " "string here disables this functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:82 msgid "The keyboard shortcut to mark the active item as being a password" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:83 msgid "" "By default, hitting ctrl + alt + s will mark the active item as being a " "password (\"S\"). An empty string here disables this " "functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:92 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:146 msgid "Max displayed history size" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:93 msgid "Maximum number of items displayed in the history" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:101 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:105 msgid "Max history size" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:102 msgid "Maximum number of items in history" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:110 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:112 msgid "Max memory usage (MB)" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:111 msgid "Maximum amount of memory used to store contents" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:119 msgid "Max text item size" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:120 msgid "Maximum size of a text item. Anything out of this boundary is ignored." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:128 msgid "Min text item size" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:129 msgid "Minimum size of a text item. Anything out of this boundary is ignored." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:136 msgid "The keyboard shortcut to delete the first element in history" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:137 msgid "" "By default, hitting ctrl + alt + v does that (\"V\"). An empty " "string here disables this functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:145 msgid "Does the primary selection affects history?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:146 msgid "By default, only clipboard (ctrl+c) affects history." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:153 msgid "" "Do we save all versions of selected rich text (e.g. html) or just the plain " "text version?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:154 msgid "By default, we're saving all" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:161 msgid "Do we save the history from one session to another?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:162 msgid "By default, we're saving it" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:169 msgid "The keyboard shortcut to display the menu" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:170 msgid "" "By default, hitting ctrl + alt + h displays the menu (\"H\"). An " "empty string here disables this functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:178 msgid "The keyboard shortcut to sync the clipboard to the primary selection" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:179 msgid "" "By default, hitting ctrl + alt + o syncs them (\"P\"). An empty " "string here disables this functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:187 msgid "The keyboard shortcut to sync the primary selection to the clipboard" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:188 msgid "" "By default, hitting ctrl + alt + p syncs them (\"P\"). An empty " "string here disables this functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:196 msgid "Are the primary selection and the clipboard synchronized?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:197 msgid "By default, the primary selection and the clipboard are independent." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:204 msgid "Do we track the clipboard changes?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:205 msgid "By default, we're tracking those changes." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:212 msgid "" "Do we sync the daemon state with the gnome-shell extension's one? (disable " "the daemon when disabling the extension)" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:213 msgid "By default, the daemon state keeps unchanged" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:220 msgid "Do we trim the textual items before adding them to history?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:221 msgid "" "Trimming means removing all trailing and ending spaces. By default, we're " "letting them as-is." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:229 msgid "" "The keyboard shortcut to upload the first element in history to a pastebin " "service" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:230 msgid "" "By default, hitting ctrl + alt + u does that (\"U\"). An empty " "string here disables this functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:238 msgid "Do we prompt for confirmation when emptying a history?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:239 msgid "By default, we do as it's a destructive action" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:9 msgid "Marc-Antoine Perennou" msgstr "Marc-Antoine Perennou" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:17 msgid "" "GPaste is a clipboard managing system allowing you to track and manage your " "clipboard history in a highly customizable way." msgstr "" "Gpaste je systém správy schránky, který umožňuje sledovat a upravovat " "historii schránky s mnoha možnostmi přizpůsobení." #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:20 msgid "" "GPaste provides you with a graphical tool allowing you to manage everything " "easily." msgstr "" "GPaste vám poskytuje grafický nástroj, který vám umožní vše snadno spravovat." #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:27 msgid "The main UI" msgstr "Hlavní UI" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:31 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:35 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:39 msgid "The settings UI" msgstr "Nastavení UI" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:51 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:78 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:90 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:100 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:120 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:133 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:143 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:152 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:161 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:180 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:197 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:205 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:213 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:231 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:239 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:247 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:255 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:263 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:287 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:295 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:303 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:311 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:319 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:327 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:335 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:343 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:352 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:361 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:379 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:387 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:395 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:403 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:421 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:429 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:438 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:447 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:456 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:464 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:485 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:493 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:501 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:509 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:517 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:533 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:541 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:549 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:557 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:573 msgid "This is a maintenance release. Changes:" msgstr "Toto je udržované vydaní. Změny:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:53 msgid "Fix building without the GNOME Shell extension (-Dgnome-shell=false)" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:54 msgid "" "Restore GTK deprecation version-gating and drop the unused build-time gjs " "dependency" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:55 msgid "Target GNOME Shell 50 in the extension" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:56 msgid "Bump the library soversions to reflect the API/ABI changes since 45.8" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:62 msgid "" "This is a major release porting GPaste to GTK 4 and libadwaita. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:64 msgid "Port the daemon, history UI and preferences to GTK 4 and libadwaita" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:65 msgid "Show image thumbnails in the history, with configurable preview size" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:66 msgid "" "Support global keyboard shortcuts on Wayland through the XDG GlobalShortcuts " "portal" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:67 msgid "Recognise copied colours as dedicated colour items" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:68 msgid "" "Give keybindings human-readable descriptions and install a daemon desktop " "file" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:69 msgid "Fix images sometimes being repeatedly re-added to the history" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:70 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:81 msgid "" "Fix keyboard shortcuts not triggering when NumLock and CapsLock are both " "active" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:71 msgid "" "Fix several crashes (search provider, UI lifetime, GNOME Shell extension) " "and memory leaks" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:72 msgid "Modernise the GNOME Shell extension to current conventions" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:80 msgid "Fix use-after-free crash in the GNOME Shell search provider" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:82 msgid "" "Fix memory leaks when re-copying history items and when rebinding shortcuts" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:83 msgid "Fix potential crash when enforcing a very small history size" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:84 msgid "Build: ship the GSettings schema as a static file" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:92 msgid "" "GNOME Shell extension now retries the daemon connection before giving up" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:93 msgid "Fix test crash when GrabAccelerators is not allowed" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:94 msgid "Build: simplify gsettings compilation for tests" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:102 msgid "Fix GC crash and signal leak when disabling the GNOME Shell extension" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:103 msgid "GNOME Shell extension now handles daemon connection failure gracefully" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:104 msgid "Fix crash when a history item has no value yet" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:105 msgid "Fix image files not being deleted when history items are removed" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:106 msgid "Fix image files stored in wrong directory" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:107 msgid "Fix keyboard focus being stolen by history items on hover" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:108 msgid "" "Fix key events incorrectly forwarded to search when another entry has focus" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:109 msgid "Fix signal loop when updating shortcut entries from settings" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:110 msgid "Fix default history item count not reset after history deletion" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:111 msgid "Enforce minimum window size to prevent unresizable state" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:112 msgid "Add descriptive tooltips for settings entries" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:113 msgid "Build: explicitly link libgpaste libraries against libc" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:114 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:127 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:137 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:146 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:155 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:164 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:174 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:225 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:267 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:281 msgid "Translations updates" msgstr "Nové překlady" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:122 msgid "" "Fix infinite Pango assertion loop that could fill disk when clipboard " "content contained tab characters" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:123 msgid "Various bug fixes and memory management improvements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:124 msgid "Daemon improvements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:125 msgid "GNOME Shell extension improvements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:126 msgid "GLib >= 2.76 is now required" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:135 #, fuzzy msgid "Support for gnome 50" msgstr "port na gnome-shel 41" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:136 #, fuzzy msgid "Support for gnome 49" msgstr "port na gnome-shel 41" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:145 #, fuzzy msgid "Support for gnome 48" msgstr "port na gnome-shel 41" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:154 #, fuzzy msgid "Support for gnome 47" msgstr "port na gnome-shel 41" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:163 #, fuzzy msgid "Support for gnome 46" msgstr "port na gnome-shel 41" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:170 #, fuzzy msgid "Stable release for GNOME 45. Changes:" msgstr "Prvni vydaní pro GNOME 42. Změny:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:172 #, fuzzy msgid "Port to gnome 45" msgstr "port na gnome-shel 41" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:173 msgid "Add setting to open ui window centered" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:182 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:199 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:233 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:289 msgid "Fix a bug leading to history with only one item" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:188 #, fuzzy msgid "First release for GNOME 44. Changes:" msgstr "Prvni vydaní pro GNOME 42. Změny:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:190 msgid "gcr 4 is now required" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:191 #, fuzzy msgid "Port to gnome 44" msgstr "port na gnome-shel 41" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:207 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:241 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:297 msgid "Avoid crash under heavy memory load" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:215 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:249 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:305 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:381 msgid "Respect --use-index when displaying history" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:221 #, fuzzy msgid "First release for GNOME 43. Changes:" msgstr "Prvni vydaní pro GNOME 42. Změny:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:223 msgid "Port to GNOME 43" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:224 msgid "Internal preparation for gtk4 port" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:257 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:313 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:389 msgid "Open GPaste UI where the mouse pointer is" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:265 msgid "Fixes to the new preferences tool" msgstr "Opravy nového nástroje možností" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:266 msgid "Style fixes" msgstr "Opravy stylů" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:273 msgid "First release for GNOME 42. Changes:" msgstr "Prvni vydaní pro GNOME 42. Změny:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:275 msgid "" "Old libgpaste replaced by a new minimal libgpaste-2 with no gtk dependency" msgstr "" "Starý libgpaste rbyl nahrazen novým minimalistickým libgpaste-2 bez gtk " "závislostí" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:276 msgid "New libgpaste-gtk3 for utils and settings ui" msgstr "Nový libgpaste-gtk3 pro utils a settings ui" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:277 msgid "New libgpaste-gtk4 for utils and preferences ui" msgstr "Nové libgpaste-gtk4 pro utils a možnosti ui" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:278 msgid "New gtk4 based gpaste-preferences utility" msgstr "Nový gpaste-preferences nástroj založený na gtk4" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:279 msgid "Autotools are no longer supported" msgstr "Samo-nástroje už nejsou podporovány" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:280 msgid "Extension updated for gnome-shell 42" msgstr "rozšíření aktualizováno pro gnome-shell 42" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:321 msgid "fix the storage path for meson builds" msgstr "oprav cesty uložiště pro meson verzi" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:329 msgid "fix some race conditions in history handling" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:337 msgid "better fix crash when there is no history yet" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:345 msgid "fix crash when there is no history yet" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:346 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:355 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:364 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:373 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:397 msgid "translations update" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:354 msgid "fix gnome-shell exntesion when the daemon restarts" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:363 msgid "Fix keybindings for wayland" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:370 msgid "First release for GNOME 41. Changes:" msgstr "Prvni vydaní pro GNOME 41. Změny:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:372 msgid "port to gnome-shell 41" msgstr "port na gnome-shel 41" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:405 msgid "fix a crash in memory usage checking" msgstr "oppravena selhaní kontroly využití paměti" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:412 msgid "First release for GNOME 40. Changes:" msgstr "Prvni vydaní pro GNOME 40. Změny:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:414 msgid "port to gnome-shell 40" msgstr "port do gnome-shel 40" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:415 #, fuzzy msgid "placeholder for gnome-shell prefs" msgstr "zástupný symbol pro předvolby gnome-shell" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:423 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:487 #, fuzzy msgid "fix X11 keybinder outside of GNOME" msgstr "oprava klávesnice X11 mimo prostředí GNOME" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:431 msgid "better handling and reporting of invalid uuids passed to gpaste-client" msgstr "lepší zpracování a hlášení neplatných uuid předaných do gpaste-client." #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:432 msgid "" "gpaste-client now has a --use-index argument for several subcommands to use " "index instead of uuid" msgstr "" "gpaste-client má nyní argument --use-index pro několik dílčích příkazů, " "které používají index místo uuid." #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:440 msgid "fix the make-password keybinding" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:441 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:450 msgid "updated translations" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:449 msgid "gnome-shell extension warning fixes" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:458 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:495 msgid "gnome-shell extension cosmetic updates" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:466 msgid "Disable images support by default (can be reenabled in preferences)" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:467 msgid "Search now includes passwords (using their names)" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:468 msgid "systemd integration enhancements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:474 msgid "First release for GNOME 3.38. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:476 msgid "Drop the Tracking DBus signal" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:477 msgid "Switch to uuids to identify items" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:478 msgid "Bump DBus interface to org.gnome.GPaste2" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:479 msgid "Update to gnome-shell 3.38.0" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:503 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:535 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:577 msgid "Fix activating items using Ctrl-Number in gnome-shell" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:511 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:543 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:576 msgid "Fix keybinding regrab with gnome-shell" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:519 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:551 msgid "Fix keybinding grab with gnome-shell" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:525 msgid "First release for GNOME 3.36. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:527 msgid "Update to gnome-shell 3.36.0" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:559 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:575 msgid "Compatibility with recent appstream-glib" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:565 msgid "First release for GNOME 3.34. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:567 msgid "Update to gnome-shell 3.34.0" msgstr "" #: src/client/gpaste-client.c:146 msgid "Couldn't spawn" msgstr "" #: src/client/gpaste-client.c:158 #, c-format msgid "Usage:\n" msgstr "" #. Translators: help for gpaste history #: src/client/gpaste-client.c:160 msgid "print the history with UUIDs" msgstr "" #. Translators: help for gpaste history-size #: src/client/gpaste-client.c:162 msgid "print the size of the history" msgstr "" #. Translators: help for gpaste get-history #: src/client/gpaste-client.c:164 msgid "get the name of the current history" msgstr "" #. Translators: help for gpaste backup-history #. Translators: help for gpaste switch-history #. Translators: help for gpaste delete-history #. Translators: help for gpaste add-password #. Translators: help for gpaste set-password #. Translators: help for gpaste delete-passworf #: src/client/gpaste-client.c:166 src/client/gpaste-client.c:168 #: src/client/gpaste-client.c:170 src/client/gpaste-client.c:176 #: src/client/gpaste-client.c:188 src/client/gpaste-client.c:192 msgid "name" msgstr "" #: src/client/gpaste-client.c:166 msgid "backup current history" msgstr "" #: src/client/gpaste-client.c:168 msgid "switch to another history" msgstr "" #: src/client/gpaste-client.c:170 msgid "delete a history" msgstr "" #. Translators: help for gpaste list-histories #: src/client/gpaste-client.c:172 msgid "list available histories" msgstr "" #. Translators: help for gpaste add #: src/client/gpaste-client.c:174 msgid "text" msgstr "" #: src/client/gpaste-client.c:174 msgid "set text to clipboard" msgstr "" #: src/client/gpaste-client.c:176 msgid "password" msgstr "" #: src/client/gpaste-client.c:176 msgid "add the name - password couple to the clipboard" msgstr "" #. Translators: help for gpaste rename-password #: src/client/gpaste-client.c:178 msgid "old name" msgstr "" #: src/client/gpaste-client.c:178 msgid "new name" msgstr "" #: src/client/gpaste-client.c:178 msgid "rename the password" msgstr "" #. Translators: help for gpaste get #: src/client/gpaste-client.c:180 msgid "get the item from the history" msgstr "" #. Translators: help for gpaste select #: src/client/gpaste-client.c:182 msgid "set the item from the history to the clipboard" msgstr "" #. Translators: help for gpaste replace #: src/client/gpaste-client.c:184 msgid "contents" msgstr "" #: src/client/gpaste-client.c:184 msgid "" "replace the contents of the item from the history with the provided " "one" msgstr "" #. Translators: help for gpaste merge #: src/client/gpaste-client.c:186 msgid "" "merge the items matching the UUIDs from the history and put the result in " "the clipboard" msgstr "" #: src/client/gpaste-client.c:188 msgid "set the item from the history as a password named " msgstr "" #. Translators: help for gpaste delete #: src/client/gpaste-client.c:190 msgid "delete item from the history" msgstr "" #: src/client/gpaste-client.c:192 msgid "delete the password from the history" msgstr "" #. Translators: help for gpaste file #: src/client/gpaste-client.c:194 msgid "path" msgstr "" #: src/client/gpaste-client.c:194 msgid "put the content of the file at into the clipboard" msgstr "" #. Translators: help for whatever | gpaste #: src/client/gpaste-client.c:196 msgid "whatever" msgstr "" #: src/client/gpaste-client.c:196 msgid "set the output of whatever to clipboard" msgstr "" #. Translators: help for gpaste empty #: src/client/gpaste-client.c:198 msgid "empty the history" msgstr "" #. Translators: help for gpaste start #: src/client/gpaste-client.c:200 msgid "start tracking clipboard changes" msgstr "" #. Translators: help for gpaste stop #: src/client/gpaste-client.c:202 msgid "stop tracking clipboard changes" msgstr "" #. Translators: help for gpaste quit #: src/client/gpaste-client.c:204 msgid "alias for stop" msgstr "" #. Translators: help for gpaste daemon-reexec #: src/client/gpaste-client.c:206 msgid "reexecute the daemon (after upgrading...)" msgstr "" #. Translators: help for gpaste preferences #: src/client/gpaste-client.c:208 msgid "launch the configuration tool" msgstr "" #. Translators: help for gpaste ui #: src/client/gpaste-client.c:210 msgid "launch the graphical tool" msgstr "" #. Translators: help for gpaste show-history #: src/client/gpaste-client.c:212 msgid "make the applet or extension display the history" msgstr "" #. Translators: help for gpaste upload #: src/client/gpaste-client.c:214 msgid "upload the item to a pastebin service" msgstr "" #. Translators: help for gpaste version #: src/client/gpaste-client.c:216 msgid "display the version" msgstr "" #. Translators: help for gpaste daemon-version #: src/client/gpaste-client.c:218 msgid "display the daemon version" msgstr "" #. Translators: help for gpaste help #: src/client/gpaste-client.c:220 msgid "display this help" msgstr "" #. Translators: help for gpaste about #: src/client/gpaste-client.c:222 msgid "display the about dialog" msgstr "" #: src/client/gpaste-client.c:225 #, c-format msgid "Convenience options:" msgstr "" #. Translators: help for --use-index #: src/client/gpaste-client.c:228 msgid "use the index of the item instead of its UUID" msgstr "" #: src/client/gpaste-client.c:231 #, c-format msgid "Display options:" msgstr "" #. Translators: help for --oneline #: src/client/gpaste-client.c:234 msgid "display each item on only one line" msgstr "" #. Translators: help for --raw #: src/client/gpaste-client.c:236 msgid "display each item raw (without line numbers)" msgstr "" #. Translators: help for --reverse #: src/client/gpaste-client.c:238 msgid "display the items in reverse order" msgstr "" #. Translators: help for --zero #: src/client/gpaste-client.c:240 msgid "use a NUL character instead of a new line betweean each item" msgstr "" #: src/client/gpaste-client.c:243 #, c-format msgid "Merge options:" msgstr "" #. Translators: help for --decoration #. Translators: help for --separator #: src/client/gpaste-client.c:246 src/client/gpaste-client.c:248 msgid "string" msgstr "" #: src/client/gpaste-client.c:246 msgid "" "add the given decoration to the beginning and the end of each item before " "merging" msgstr "" #: src/client/gpaste-client.c:248 msgid "add the given separator between each item when merging" msgstr "" #: src/client/gpaste-client.c:345 #, c-format msgid "Successfully reexecuted the daemon\n" msgstr "" #: src/client/gpaste-client.c:486 msgid "Cannot add non utf8 data as text." msgstr "" #: src/client/gpaste-client.c:796 src/ui/gpaste-ui-window.c:353 #: src/ui/gpaste-ui-window.c:354 msgid "Couldn't connect to GPaste daemon" msgstr "" #: src/daemon/gpaste-color-item.c:73 msgid "[Color]" msgstr "" #. Translators: strftime format for image timestamps. Rearrange to match your locale's date/time convention. #: src/daemon/gpaste-image-item.c:219 msgid "%m/%d/%y %T" msgstr "" #. Translators: Image item displayed in history. %d is width, %d is height, %s is the formatted date. #: src/daemon/gpaste-image-item.c:221 #, c-format msgid "[Image, %d x %d (%s)]" msgstr "" #: src/daemon/gpaste-make-password-keybinding.c:50 msgid "Convert to Password" msgstr "" #. This is the prefix displayed in history to identify a password #: src/daemon/gpaste-password-item.c:65 msgid "Password" msgstr "" #: src/daemon/gpaste-pop-keybinding.c:64 msgid "Pop from History" msgstr "" #: src/daemon/gpaste-show-history-keybinding.c:49 msgid "Show History" msgstr "" #: src/daemon/gpaste-sync-clipboard-to-primary-keybinding.c:46 msgid "Sync Clipboard to Primary" msgstr "" #: src/daemon/gpaste-sync-primary-to-clipboard-keybinding.c:46 msgid "Sync Primary to Clipboard" msgstr "" #: src/daemon/gpaste-ui-keybinding.c:43 msgid "Launch UI" msgstr "" #: src/daemon/gpaste-upload-keybinding.c:64 msgid "Upload to Pastebin" msgstr "" #: src/daemon/gpaste-uris-item.c:87 msgid "[Files] " msgstr "" #: src/daemon/main.c:32 msgid "Stop signal received, exiting" msgstr "" #: src/daemon/main.c:69 msgid "Could not acquire DBus name." msgstr "" #: src/gnome-shell/dummyHistoryItem.js:12 msgid "(Couldn't connect to GPaste daemon)" msgstr "" #: src/gnome-shell/dummyHistoryItem.js:17 msgid "(Empty)" msgstr "" #: src/gnome-shell/dummyHistoryItem.js:22 msgid "(No result)" msgstr "" #: src/gnome-shell/emptyHistoryItem.js:14 msgid "Empty history" msgstr "" #: src/gnome-shell/stateSwitch.js:12 msgid "Track changes" msgstr "" #: src/gnome-shell/uiItem.js:14 msgid "Graphical tool" msgstr "" #: src/libgpaste/gpaste/gpaste-util.c:636 msgid "Could not create history dir" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-macros.h:38 msgid "Failed to register the gtk application" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:108 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:119 msgid "General behaviour" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:121 #: src/ui/gpaste-ui-switch.c:93 msgid "Track clipboard changes" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:127 msgid "Close UI on select" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:133 msgid "Open the UI window centered" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:139 msgid "Save history" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:150 msgid "Enable the gnome-shell extension" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:156 msgid "Sync the daemon state with the extension's one" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:162 msgid "" "When enabled, the daemon automatically starts or stops tracking clipboard " "changes to match the GNOME Shell extension's enabled state" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:166 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:174 msgid "Clipboards synchronization" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:168 msgid "Primary selection affects history" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:174 msgid "Synchronize clipboard with primary selection" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:181 msgid "Optional features" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:183 msgid "Trim items" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:189 msgid "Detect growing lines" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:195 msgid "" "When enabled, if a new clipboard entry starts with the previous one, the " "previous entry is replaced instead of creating a new one" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:92 msgid "History settings" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:103 msgid "Resources limits" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:120 msgid "Text limits" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:122 msgid "Min text item length" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:129 msgid "Max text item length" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:137 msgid "Display settings" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:139 msgid "Max element size when displaying" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:81 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:92 #, fuzzy msgid "Images settings" msgstr "Nastavení UI" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:94 msgid "Images support" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:100 msgid "Image previews" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:106 msgid "Preview size" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:122 msgid "Keyboard shortcuts" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:133 msgid "History access" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:150 msgid "Active element manipulation" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-util.c:51 #: src/ui/gpaste-ui-edit-item.c:84 src/ui/gpaste-ui-new-item.c:66 #: src/ui/gpaste-ui-panel.c:311 msgid "Cancel" msgstr "" #. Translators: %s is the name of the history being emptied. #: src/libgpaste/gpaste-gtk4/gpaste-gtk-util.c:126 #, c-format msgid "Do you really want to empty \"%s\"?" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-util.c:127 #: src/ui/gpaste-ui-history.c:153 src/ui/gpaste-ui-history.c:428 #: src/ui/gpaste-ui-panel.c:517 msgid "Empty" msgstr "" #: src/ui/gpaste-ui.c:47 msgid "Clipboard management system" msgstr "" #: src/ui/gpaste-ui-delete-item.c:46 src/ui/gpaste-ui-panel.c:358 #: src/ui/gpaste-ui-panel.c:518 msgid "Delete" msgstr "" #: src/ui/gpaste-ui-edit-item.c:85 src/ui/gpaste-ui-edit-item.c:139 msgid "Edit" msgstr "" #: src/ui/gpaste-ui-history.c:266 msgid "No Results" msgstr "" #: src/ui/gpaste-ui-new-item.c:67 msgid "Add new item" msgstr "" #: src/ui/gpaste-ui-new-item.c:100 msgid "New item" msgstr "" #: src/ui/gpaste-ui-panel.c:307 msgid "Under which name do you want to backup this history?" msgstr "" #: src/ui/gpaste-ui-panel.c:311 src/ui/gpaste-ui-panel.c:516 msgid "Backup" msgstr "" #. Translators: %s is the name of the history being deleted. #: src/ui/gpaste-ui-panel.c:357 #, c-format msgid "Are you sure you want to delete \"%s\"?" msgstr "" #: src/ui/gpaste-ui-panel.c:441 msgid "Switch to history" msgstr "" #: src/ui/gpaste-ui-panel.c:448 msgid "Switch to" msgstr "" #: src/ui/gpaste-ui-reexec.c:45 msgid "Restart" msgstr "" #: src/ui/gpaste-ui-reexec.c:45 msgid "Do you really want to restart the daemon?" msgstr "" #: src/ui/gpaste-ui-reexec.c:70 msgid "Restart the daemon" msgstr "" #: src/ui/gpaste-ui-search.c:23 msgid "Search" msgstr "" #: src/ui/gpaste-ui-settings.c:35 msgid "GPaste Settings" msgstr "" #: src/ui/gpaste-ui-shortcuts-window.c:21 msgid "General" msgstr "" #: src/ui/gpaste-ui-switch.c:68 msgid "Stop" msgstr "" #: src/ui/gpaste-ui-switch.c:68 msgid "Do you really want to stop tracking clipboard changes?" msgstr "" #: src/ui/gpaste-ui-upload-item.c:46 msgid "Upload" msgstr "" #: src/ui/gpaste-ui-window.c:303 msgid "Quit" msgstr "" #: src/ui/gpaste-ui-window.c:380 msgid "Histories" msgstr "" #: src/ui/gpaste-ui-window.c:381 msgid "History" msgstr "" Keruspe-GPaste-724def1/po/da.po000066400000000000000000001425071521206431300162770ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the GPaste package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: GPaste\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-06-09 21:21+0200\n" "PO-Revision-Date: 2023-08-30 11:56+0000\n" "Last-Translator: Henning Andersen \n" "Language-Team: Danish \n" "Language: da\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: Weblate 5.0.1-dev\n" #: data/control-center/42-gpaste.control-center.xml.in:2 msgid "@GETTEXT_PACKAGE@" msgstr "@GETTEXT_PACKAGE@" #: data/control-center/42-gpaste.control-center.xml.in:3 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:136 #: src/ui/gpaste-ui-shortcuts-window.c:24 msgid "Launch the graphical tool" msgstr "Start grafisk program" #: data/control-center/42-gpaste.control-center.xml.in:4 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:153 #: src/ui/gpaste-ui-shortcuts-window.c:25 msgid "Mark the active item as being a password" msgstr "Markér det aktive element som kodeord" #: data/control-center/42-gpaste.control-center.xml.in:5 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:167 #: src/ui/gpaste-ui-shortcuts-window.c:23 msgid "Delete the active item from history" msgstr "Slet det aktive element fra historikken" #: data/control-center/42-gpaste.control-center.xml.in:6 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:143 #: src/ui/gpaste-ui-shortcuts-window.c:26 msgid "Display the history" msgstr "Vis historik" #: data/control-center/42-gpaste.control-center.xml.in:7 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:177 #: src/ui/gpaste-ui-shortcuts-window.c:27 msgid "Sync the clipboard to the primary selection" msgstr "Synkroniser udklipsholderen med den primære markering" #: data/control-center/42-gpaste.control-center.xml.in:8 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:184 #: src/ui/gpaste-ui-shortcuts-window.c:28 msgid "Sync the primary selection to the clipboard" msgstr "Synkroniser den primære markering med udklipsholderen" #: data/control-center/42-gpaste.control-center.xml.in:9 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:160 #: src/ui/gpaste-ui-shortcuts-window.c:29 msgid "Upload the active item to a pastebin service" msgstr "Upload det aktive element til en pastebin service" #: data/desktop/org.gnome.GPaste.Daemon.desktop.in.in:3 #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:3 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:6 msgid "GPaste" msgstr "GPaste" #: data/desktop/org.gnome.GPaste.Preferences.desktop.in.in:3 msgid "GPaste Preferences" msgstr "GPaste Præferencer" #: data/desktop/org.gnome.GPaste.Preferences.desktop.in.in:4 msgid "Manage your GPaste preferences" msgstr "Håndter dine GPaste præferencer" #: data/desktop/org.gnome.GPaste.Preferences.desktop.in.in:5 #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:6 msgid "Clipboard;Manager;Settings;Preferences;Configuration;" msgstr "Udklipsholder;Manager;Indstillinger;Præferencer;Konfiguration;" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:4 msgid "Clipboard Manager" msgstr "" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:5 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:7 msgid "Manage your clipboard history" msgstr "Administrer udklipsholderhistorik" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:16 #, fuzzy msgid "Preferences" msgstr "GPaste Præferencer" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:20 #: src/gnome-shell/aboutItem.js:13 src/ui/gpaste-ui-about.c:38 msgid "About" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:7 msgid "Max size of an element when displaying it" msgstr "Max element størrelse når det vises" #: data/gsettings/org.gnome.GPaste.gschema.xml:8 msgid "" "The extra stuff of that element will be replaced by \"…\", and newlines by " "\" \" when displaying from the applet, 0 to disable." msgstr "" "Det ekstra indhold af elementet erstattes med \"...\", og linjeskift med \" " "\" når det vises fra applet, 0 for at slå fra." #: data/gsettings/org.gnome.GPaste.gschema.xml:15 msgid "Do we detect and replace growing lines in history?" msgstr "Opdager og erstatter vi voksende linjer i historikken?" #: data/gsettings/org.gnome.GPaste.gschema.xml:16 msgid "" "By default, selecting \"Here is\", then \"Here is an example\" will create " "two entries in the history. With this feature enabled, the first one will be " "replaced by the second one." msgstr "" "Som standard, vælges \"Her er\", vil \"Her er et eksempel\" oprette to " "elementer i historikken. Med denne funktion slået til, bliver den første " "erstattet med den anden." #: data/gsettings/org.gnome.GPaste.gschema.xml:24 msgid "The name of the current history" msgstr "Navnet på den nuværende historik" #: data/gsettings/org.gnome.GPaste.gschema.xml:25 msgid "The default name is \"history\"" msgstr "Standardnavnet er \"Historik\"" #: data/gsettings/org.gnome.GPaste.gschema.xml:32 msgid "Do we save the images copied to history, or only text?" msgstr "Gemmes billeder der kopieres til historikken, eller kun tekst?" #: data/gsettings/org.gnome.GPaste.gschema.xml:33 msgid "By default, we're saving only text" msgstr "Som standard gemmer vi kun tekst" #: data/gsettings/org.gnome.GPaste.gschema.xml:40 msgid "Show image previews in the history?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:41 msgid "By default, we show previews of images in the history" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:49 msgid "Size of image previews in pixels" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:50 msgid "Default size is 100 pixels" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:57 msgid "Do we close the UI after selecting an item?" msgstr "Skal vinduet lukke efter et element er valgt?" #: data/gsettings/org.gnome.GPaste.gschema.xml:58 msgid "By default, we close it" msgstr "Som standard lukker vi det" #: data/gsettings/org.gnome.GPaste.gschema.xml:65 msgid "Do we open the UI window centered?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:66 #, fuzzy msgid "By default, we open it where the mouse cursor is" msgstr "Åben GPaste vinduet hvor musemarkøren er" #: data/gsettings/org.gnome.GPaste.gschema.xml:73 msgid "The keyboard shortcut to launch the graphical interface" msgstr "Tastaturgenvej til at starte det grafiske interface" #: data/gsettings/org.gnome.GPaste.gschema.xml:74 msgid "" "By default, hitting ctrl + alt + g does that (\"G\"). An empty " "string here disables this functionnality." msgstr "" "Som standard gør ctrl + alt + g det (\"G\"). En tom streng her, " "slår denne funktion fra." #: data/gsettings/org.gnome.GPaste.gschema.xml:82 msgid "The keyboard shortcut to mark the active item as being a password" msgstr "Tastaturgenvej til at markere det aktive element som et kodeord" #: data/gsettings/org.gnome.GPaste.gschema.xml:83 msgid "" "By default, hitting ctrl + alt + s will mark the active item as being a " "password (\"S\"). An empty string here disables this " "functionnality." msgstr "" "Som standard markerer ctrl + alt + s det aktive element som værende et " "kodeord (\"S\"). En tom streng her, slår denne funktion fra." #: data/gsettings/org.gnome.GPaste.gschema.xml:92 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:146 msgid "Max displayed history size" msgstr "Maks. størrelse på historik" #: data/gsettings/org.gnome.GPaste.gschema.xml:93 msgid "Maximum number of items displayed in the history" msgstr "Maks. antal elementer vist i historikken" #: data/gsettings/org.gnome.GPaste.gschema.xml:101 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:105 msgid "Max history size" msgstr "Maks. historik størrelse" #: data/gsettings/org.gnome.GPaste.gschema.xml:102 msgid "Maximum number of items in history" msgstr "Maks. antal elemter i historikken" #: data/gsettings/org.gnome.GPaste.gschema.xml:110 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:112 msgid "Max memory usage (MB)" msgstr "Maks. hukommelsesforbrug (MB)" #: data/gsettings/org.gnome.GPaste.gschema.xml:111 msgid "Maximum amount of memory used to store contents" msgstr "Maks. hukommelsesforbrug til at gemme indhold" #: data/gsettings/org.gnome.GPaste.gschema.xml:119 msgid "Max text item size" msgstr "Maks. størrelse på tekst element" #: data/gsettings/org.gnome.GPaste.gschema.xml:120 msgid "Maximum size of a text item. Anything out of this boundary is ignored." msgstr "" "Maks. størrelse på et tekst element. Alt udover denne grænse bliver " "ignoreret." #: data/gsettings/org.gnome.GPaste.gschema.xml:128 msgid "Min text item size" msgstr "Min. størrelse på tekst element" #: data/gsettings/org.gnome.GPaste.gschema.xml:129 msgid "Minimum size of a text item. Anything out of this boundary is ignored." msgstr "" "Min. størrelse på tekst element. Alt udover denne grænse bliver ignoreret." #: data/gsettings/org.gnome.GPaste.gschema.xml:136 msgid "The keyboard shortcut to delete the first element in history" msgstr "Tastaturgenvej til at slette første element i historik" #: data/gsettings/org.gnome.GPaste.gschema.xml:137 msgid "" "By default, hitting ctrl + alt + v does that (\"V\"). An empty " "string here disables this functionnality." msgstr "" "Som standard gør ctrl + alt + v det (\"V\"). En tom streng her, " "slår denne funktion fra." #: data/gsettings/org.gnome.GPaste.gschema.xml:145 msgid "Does the primary selection affects history?" msgstr "Påvirker det primært markerede historikken?" #: data/gsettings/org.gnome.GPaste.gschema.xml:146 msgid "By default, only clipboard (ctrl+c) affects history." msgstr "Som standard er det kun Udklipsholder (Ctrl+C) der påvirker historik." #: data/gsettings/org.gnome.GPaste.gschema.xml:153 msgid "" "Do we save all versions of selected rich text (e.g. html) or just the plain " "text version?" msgstr "" "Gemmer vi alle versioner af markeret Rich Text (f.eks. HTML) eller kun den " "almindelige tekst version?" #: data/gsettings/org.gnome.GPaste.gschema.xml:154 msgid "By default, we're saving all" msgstr "Som standard gemmer vi alle" #: data/gsettings/org.gnome.GPaste.gschema.xml:161 msgid "Do we save the history from one session to another?" msgstr "Gemmer vi historikken fra en session til en anden?" #: data/gsettings/org.gnome.GPaste.gschema.xml:162 msgid "By default, we're saving it" msgstr "Som standard gemmer vi den" #: data/gsettings/org.gnome.GPaste.gschema.xml:169 msgid "The keyboard shortcut to display the menu" msgstr "Tastaturgenvej til at vise menu" #: data/gsettings/org.gnome.GPaste.gschema.xml:170 msgid "" "By default, hitting ctrl + alt + h displays the menu (\"H\"). An " "empty string here disables this functionnality." msgstr "" "Som standard viser ctrl + alt + h menuen (\"H\"). En tom streng " "her, slår denne funktion fra." #: data/gsettings/org.gnome.GPaste.gschema.xml:178 msgid "The keyboard shortcut to sync the clipboard to the primary selection" msgstr "" "Tastaturgenvej til at synkronisere udklipsholderen til det primært markerede" #: data/gsettings/org.gnome.GPaste.gschema.xml:179 msgid "" "By default, hitting ctrl + alt + o syncs them (\"P\"). An empty " "string here disables this functionnality." msgstr "" "Som standard synkroniseres de ved at trykke Ctrl + Alt + O " "(\"O\"). En tom stren her, slår denne funktion fra." #: data/gsettings/org.gnome.GPaste.gschema.xml:187 msgid "The keyboard shortcut to sync the primary selection to the clipboard" msgstr "Tastaturgenvej til at synkronisere det markerede til udklipsholderen" #: data/gsettings/org.gnome.GPaste.gschema.xml:188 msgid "" "By default, hitting ctrl + alt + p syncs them (\"P\"). An empty " "string here disables this functionnality." msgstr "" "Som standard synkroniseres de med Ctrl + Alt + P (\"P\"). En tom " "streng her, slår denne funktion fra." #: data/gsettings/org.gnome.GPaste.gschema.xml:196 msgid "Are the primary selection and the clipboard synchronized?" msgstr "Er det markerede og udklipsholderen synkroniseret?" #: data/gsettings/org.gnome.GPaste.gschema.xml:197 msgid "By default, the primary selection and the clipboard are independent." msgstr "" "Som standard er det markerede og udklipsholderen uafhængige af hinanden." #: data/gsettings/org.gnome.GPaste.gschema.xml:204 msgid "Do we track the clipboard changes?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:205 msgid "By default, we're tracking those changes." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:212 msgid "" "Do we sync the daemon state with the gnome-shell extension's one? (disable " "the daemon when disabling the extension)" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:213 msgid "By default, the daemon state keeps unchanged" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:220 msgid "Do we trim the textual items before adding them to history?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:221 msgid "" "Trimming means removing all trailing and ending spaces. By default, we're " "letting them as-is." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:229 msgid "" "The keyboard shortcut to upload the first element in history to a pastebin " "service" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:230 msgid "" "By default, hitting ctrl + alt + u does that (\"U\"). An empty " "string here disables this functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:238 msgid "Do we prompt for confirmation when emptying a history?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:239 msgid "By default, we do as it's a destructive action" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:9 msgid "Marc-Antoine Perennou" msgstr "Marc-Antoine Perennou" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:17 msgid "" "GPaste is a clipboard managing system allowing you to track and manage your " "clipboard history in a highly customizable way." msgstr "" "GPaste er et system til at administrere din udklipsholder, der tillader dig " "at holde styr på din udklipsholderhistorik og med mange " "tilpasningsmuligheder." #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:20 msgid "" "GPaste provides you with a graphical tool allowing you to manage everything " "easily." msgstr "" "GPaste tilbyder dig et grafisk værktøj, der tillader dig at håndtere alting " "på en simpel måde." #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:27 msgid "The main UI" msgstr "Hovedvindue" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:31 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:35 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:39 msgid "The settings UI" msgstr "Indstillinger" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:51 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:78 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:90 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:100 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:120 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:133 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:143 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:152 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:161 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:180 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:197 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:205 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:213 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:231 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:239 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:247 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:255 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:263 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:287 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:295 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:303 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:311 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:319 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:327 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:335 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:343 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:352 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:361 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:379 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:387 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:395 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:403 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:421 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:429 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:438 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:447 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:456 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:464 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:485 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:493 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:501 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:509 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:517 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:533 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:541 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:549 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:557 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:573 msgid "This is a maintenance release. Changes:" msgstr "Dette er en vedligeholdelsesversion. Ændringer:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:53 msgid "Fix building without the GNOME Shell extension (-Dgnome-shell=false)" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:54 msgid "" "Restore GTK deprecation version-gating and drop the unused build-time gjs " "dependency" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:55 msgid "Target GNOME Shell 50 in the extension" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:56 msgid "Bump the library soversions to reflect the API/ABI changes since 45.8" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:62 msgid "" "This is a major release porting GPaste to GTK 4 and libadwaita. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:64 msgid "Port the daemon, history UI and preferences to GTK 4 and libadwaita" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:65 msgid "Show image thumbnails in the history, with configurable preview size" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:66 msgid "" "Support global keyboard shortcuts on Wayland through the XDG GlobalShortcuts " "portal" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:67 msgid "Recognise copied colours as dedicated colour items" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:68 msgid "" "Give keybindings human-readable descriptions and install a daemon desktop " "file" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:69 msgid "Fix images sometimes being repeatedly re-added to the history" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:70 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:81 msgid "" "Fix keyboard shortcuts not triggering when NumLock and CapsLock are both " "active" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:71 msgid "" "Fix several crashes (search provider, UI lifetime, GNOME Shell extension) " "and memory leaks" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:72 msgid "Modernise the GNOME Shell extension to current conventions" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:80 msgid "Fix use-after-free crash in the GNOME Shell search provider" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:82 msgid "" "Fix memory leaks when re-copying history items and when rebinding shortcuts" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:83 msgid "Fix potential crash when enforcing a very small history size" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:84 msgid "Build: ship the GSettings schema as a static file" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:92 msgid "" "GNOME Shell extension now retries the daemon connection before giving up" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:93 msgid "Fix test crash when GrabAccelerators is not allowed" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:94 msgid "Build: simplify gsettings compilation for tests" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:102 msgid "Fix GC crash and signal leak when disabling the GNOME Shell extension" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:103 msgid "GNOME Shell extension now handles daemon connection failure gracefully" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:104 #, fuzzy msgid "Fix crash when a history item has no value yet" msgstr "Rettelse til nedbrud når der ikke en nogen historik endnu" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:105 msgid "Fix image files not being deleted when history items are removed" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:106 msgid "Fix image files stored in wrong directory" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:107 #, fuzzy msgid "Fix keyboard focus being stolen by history items on hover" msgstr "Ret en fejl der resulterede i historik med kun et element" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:108 msgid "" "Fix key events incorrectly forwarded to search when another entry has focus" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:109 msgid "Fix signal loop when updating shortcut entries from settings" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:110 msgid "Fix default history item count not reset after history deletion" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:111 msgid "Enforce minimum window size to prevent unresizable state" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:112 msgid "Add descriptive tooltips for settings entries" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:113 msgid "Build: explicitly link libgpaste libraries against libc" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:114 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:127 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:137 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:146 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:155 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:164 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:174 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:225 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:267 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:281 msgid "Translations updates" msgstr "Opdateringer til oversættelser" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:122 msgid "" "Fix infinite Pango assertion loop that could fill disk when clipboard " "content contained tab characters" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:123 msgid "Various bug fixes and memory management improvements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:124 msgid "Daemon improvements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:125 msgid "GNOME Shell extension improvements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:126 #, fuzzy msgid "GLib >= 2.76 is now required" msgstr "gcr 4 er nu påkrævet" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:135 #, fuzzy msgid "Support for gnome 50" msgstr "Port til GNOME 44" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:136 #, fuzzy msgid "Support for gnome 49" msgstr "Port til GNOME 44" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:145 #, fuzzy msgid "Support for gnome 48" msgstr "Port til GNOME 44" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:154 #, fuzzy msgid "Support for gnome 47" msgstr "Port til GNOME 44" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:163 #, fuzzy msgid "Support for gnome 46" msgstr "Port til GNOME 44" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:170 #, fuzzy msgid "Stable release for GNOME 45. Changes:" msgstr "Første version til GNOME 44. Ændringer:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:172 #, fuzzy msgid "Port to gnome 45" msgstr "Port til GNOME 44" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:173 msgid "Add setting to open ui window centered" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:182 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:199 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:233 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:289 msgid "Fix a bug leading to history with only one item" msgstr "Ret en fejl der resulterede i historik med kun et element" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:188 msgid "First release for GNOME 44. Changes:" msgstr "Første version til GNOME 44. Ændringer:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:190 msgid "gcr 4 is now required" msgstr "gcr 4 er nu påkrævet" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:191 msgid "Port to gnome 44" msgstr "Port til GNOME 44" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:207 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:241 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:297 msgid "Avoid crash under heavy memory load" msgstr "Undgå nedbrud ved højt hukommelsesforbrug" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:215 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:249 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:305 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:381 msgid "Respect --use-index when displaying history" msgstr "Respekter '--use-index' når historikken vises" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:221 msgid "First release for GNOME 43. Changes:" msgstr "Første version til GNOME 43: Ændringer:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:223 msgid "Port to GNOME 43" msgstr "Port til GNOME 43" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:224 msgid "Internal preparation for gtk4 port" msgstr "Intern forberedelse til gtk4 port" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:257 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:313 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:389 msgid "Open GPaste UI where the mouse pointer is" msgstr "Åben GPaste vinduet hvor musemarkøren er" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:265 msgid "Fixes to the new preferences tool" msgstr "Rettelser til det nye indstillingsprogram" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:266 msgid "Style fixes" msgstr "Design-rettelser" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:273 msgid "First release for GNOME 42. Changes:" msgstr "Første version til GNOME 42: Ændringer:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:275 msgid "" "Old libgpaste replaced by a new minimal libgpaste-2 with no gtk dependency" msgstr "" "Gammel libgpaste erstattet med ny minimal libgpaste-2 uden gtk afhængighed" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:276 msgid "New libgpaste-gtk3 for utils and settings ui" msgstr "Ny libgpaste-gtk3 til program- og indstillings-vindue" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:277 msgid "New libgpaste-gtk4 for utils and preferences ui" msgstr "Ny libgpaste-gtk4 til program- og indstillings-vindue" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:278 msgid "New gtk4 based gpaste-preferences utility" msgstr "Nyt gtk4-baseret GPaste-præferencer værktøj" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:279 msgid "Autotools are no longer supported" msgstr "Autotools er ikke længere supporteret" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:280 msgid "Extension updated for gnome-shell 42" msgstr "Udvidelse opdateret til gnome-shell 42" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:321 msgid "fix the storage path for meson builds" msgstr "Fix disk-stien for Meson builds" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:329 msgid "fix some race conditions in history handling" msgstr "Rettelser til nogle race conditions i håndteringen af historik" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:337 msgid "better fix crash when there is no history yet" msgstr "Bedre rettelse til nedbrud når der ikke en nogen historik endnu" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:345 msgid "fix crash when there is no history yet" msgstr "Rettelse til nedbrud når der ikke en nogen historik endnu" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:346 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:355 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:364 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:373 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:397 msgid "translations update" msgstr "opdateringer til oversættelser" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:354 msgid "fix gnome-shell exntesion when the daemon restarts" msgstr "Fix gnome-shell udvidelse når daemon genstarter" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:363 msgid "Fix keybindings for wayland" msgstr "Ret tastaturgenveje til Wayland" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:370 msgid "First release for GNOME 41. Changes:" msgstr "Første version til GNOME 41. Ændringer:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:372 msgid "port to gnome-shell 41" msgstr "Port til gnome-shell 41" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:405 msgid "fix a crash in memory usage checking" msgstr "Fix et nedbrud i tjek af hukommelsesforbrug" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:412 msgid "First release for GNOME 40. Changes:" msgstr "Første version til GNOME 40: Ændringer:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:414 msgid "port to gnome-shell 40" msgstr "Port til gnome-shell 40" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:415 msgid "placeholder for gnome-shell prefs" msgstr "pladsholder til gnome-shell præferencer" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:423 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:487 msgid "fix X11 keybinder outside of GNOME" msgstr "Fix X11-tastaturgenveje udenfor GNOME" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:431 msgid "better handling and reporting of invalid uuids passed to gpaste-client" msgstr "" "Bedre håndtering og rapportering af ugyldige UUID'er videresendt til gpaste-" "client" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:432 msgid "" "gpaste-client now has a --use-index argument for several subcommands to use " "index instead of uuid" msgstr "" "gpaste-client understøtter nu '--use-index' argument til flere " "underkommandoer for at bruge index i stedet for uuid" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:440 msgid "fix the make-password keybinding" msgstr "Rettelse til 'make-password' tastaturgenvej" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:441 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:450 msgid "updated translations" msgstr "opdaterede oversættelser" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:449 msgid "gnome-shell extension warning fixes" msgstr "Rettelser til gnome-shell udvidelse advarsel" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:458 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:495 msgid "gnome-shell extension cosmetic updates" msgstr "Kosmetiske opdateringer til gnome-shell udvidelse" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:466 msgid "Disable images support by default (can be reenabled in preferences)" msgstr "Deaktiver billedsupport som standard (kan aktiveres i præferencer)" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:467 msgid "Search now includes passwords (using their names)" msgstr "Søg inkluderer nu kodeord (bruger deres navne)" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:468 msgid "systemd integration enhancements" msgstr "forbedringer til systemd integration" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:474 msgid "First release for GNOME 3.38. Changes:" msgstr "Første version til GNOME 3.38. Ændringer:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:476 msgid "Drop the Tracking DBus signal" msgstr "Udelad Tracking DBus signal" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:477 msgid "Switch to uuids to identify items" msgstr "Skift til at bruge UUID'er for at identificere elementer" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:478 msgid "Bump DBus interface to org.gnome.GPaste2" msgstr "Opgrader DBus interface til org.gnome.GPaste2" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:479 msgid "Update to gnome-shell 3.38.0" msgstr "Opdatering til gnome-shell 3.38.0" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:503 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:535 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:577 msgid "Fix activating items using Ctrl-Number in gnome-shell" msgstr "Ret aktivering af element ved at bruge Ctrl+Nummer i gnome-shell" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:511 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:543 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:576 msgid "Fix keybinding regrab with gnome-shell" msgstr "Ret genindlæsning af tastaturgenveje med gnome-shell" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:519 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:551 msgid "Fix keybinding grab with gnome-shell" msgstr "Ret indlæsning af tastaturgenveje med gnome-shell" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:525 msgid "First release for GNOME 3.36. Changes:" msgstr "Første version til GNOME 3.36. Ændringer:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:527 msgid "Update to gnome-shell 3.36.0" msgstr "Opdatering til gnome-shell 3.36.0" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:559 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:575 msgid "Compatibility with recent appstream-glib" msgstr "Kompatibilitet med seneste appstream-glib" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:565 msgid "First release for GNOME 3.34. Changes:" msgstr "Første version til GNOME 3.34. Ændringer:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:567 msgid "Update to gnome-shell 3.34.0" msgstr "Opdatering til gnome-shell 3.34.0" #: src/client/gpaste-client.c:146 msgid "Couldn't spawn" msgstr "" #: src/client/gpaste-client.c:158 #, c-format msgid "Usage:\n" msgstr "" #. Translators: help for gpaste history #: src/client/gpaste-client.c:160 msgid "print the history with UUIDs" msgstr "" #. Translators: help for gpaste history-size #: src/client/gpaste-client.c:162 msgid "print the size of the history" msgstr "" #. Translators: help for gpaste get-history #: src/client/gpaste-client.c:164 msgid "get the name of the current history" msgstr "" #. Translators: help for gpaste backup-history #. Translators: help for gpaste switch-history #. Translators: help for gpaste delete-history #. Translators: help for gpaste add-password #. Translators: help for gpaste set-password #. Translators: help for gpaste delete-passworf #: src/client/gpaste-client.c:166 src/client/gpaste-client.c:168 #: src/client/gpaste-client.c:170 src/client/gpaste-client.c:176 #: src/client/gpaste-client.c:188 src/client/gpaste-client.c:192 msgid "name" msgstr "" #: src/client/gpaste-client.c:166 msgid "backup current history" msgstr "" #: src/client/gpaste-client.c:168 msgid "switch to another history" msgstr "" #: src/client/gpaste-client.c:170 msgid "delete a history" msgstr "" #. Translators: help for gpaste list-histories #: src/client/gpaste-client.c:172 msgid "list available histories" msgstr "" #. Translators: help for gpaste add #: src/client/gpaste-client.c:174 msgid "text" msgstr "" #: src/client/gpaste-client.c:174 msgid "set text to clipboard" msgstr "" #: src/client/gpaste-client.c:176 msgid "password" msgstr "" #: src/client/gpaste-client.c:176 msgid "add the name - password couple to the clipboard" msgstr "" #. Translators: help for gpaste rename-password #: src/client/gpaste-client.c:178 msgid "old name" msgstr "" #: src/client/gpaste-client.c:178 msgid "new name" msgstr "" #: src/client/gpaste-client.c:178 msgid "rename the password" msgstr "" #. Translators: help for gpaste get #: src/client/gpaste-client.c:180 msgid "get the item from the history" msgstr "" #. Translators: help for gpaste select #: src/client/gpaste-client.c:182 msgid "set the item from the history to the clipboard" msgstr "" #. Translators: help for gpaste replace #: src/client/gpaste-client.c:184 msgid "contents" msgstr "" #: src/client/gpaste-client.c:184 msgid "" "replace the contents of the item from the history with the provided " "one" msgstr "" #. Translators: help for gpaste merge #: src/client/gpaste-client.c:186 msgid "" "merge the items matching the UUIDs from the history and put the result in " "the clipboard" msgstr "" #: src/client/gpaste-client.c:188 msgid "set the item from the history as a password named " msgstr "" #. Translators: help for gpaste delete #: src/client/gpaste-client.c:190 msgid "delete item from the history" msgstr "" #: src/client/gpaste-client.c:192 msgid "delete the password from the history" msgstr "" #. Translators: help for gpaste file #: src/client/gpaste-client.c:194 msgid "path" msgstr "" #: src/client/gpaste-client.c:194 msgid "put the content of the file at into the clipboard" msgstr "" #. Translators: help for whatever | gpaste #: src/client/gpaste-client.c:196 msgid "whatever" msgstr "" #: src/client/gpaste-client.c:196 msgid "set the output of whatever to clipboard" msgstr "" #. Translators: help for gpaste empty #: src/client/gpaste-client.c:198 msgid "empty the history" msgstr "" #. Translators: help for gpaste start #: src/client/gpaste-client.c:200 msgid "start tracking clipboard changes" msgstr "" #. Translators: help for gpaste stop #: src/client/gpaste-client.c:202 msgid "stop tracking clipboard changes" msgstr "" #. Translators: help for gpaste quit #: src/client/gpaste-client.c:204 msgid "alias for stop" msgstr "" #. Translators: help for gpaste daemon-reexec #: src/client/gpaste-client.c:206 msgid "reexecute the daemon (after upgrading...)" msgstr "" #. Translators: help for gpaste preferences #: src/client/gpaste-client.c:208 msgid "launch the configuration tool" msgstr "" #. Translators: help for gpaste ui #: src/client/gpaste-client.c:210 msgid "launch the graphical tool" msgstr "" #. Translators: help for gpaste show-history #: src/client/gpaste-client.c:212 msgid "make the applet or extension display the history" msgstr "" #. Translators: help for gpaste upload #: src/client/gpaste-client.c:214 msgid "upload the item to a pastebin service" msgstr "" #. Translators: help for gpaste version #: src/client/gpaste-client.c:216 msgid "display the version" msgstr "" #. Translators: help for gpaste daemon-version #: src/client/gpaste-client.c:218 msgid "display the daemon version" msgstr "" #. Translators: help for gpaste help #: src/client/gpaste-client.c:220 msgid "display this help" msgstr "" #. Translators: help for gpaste about #: src/client/gpaste-client.c:222 msgid "display the about dialog" msgstr "" #: src/client/gpaste-client.c:225 #, c-format msgid "Convenience options:" msgstr "" #. Translators: help for --use-index #: src/client/gpaste-client.c:228 msgid "use the index of the item instead of its UUID" msgstr "" #: src/client/gpaste-client.c:231 #, c-format msgid "Display options:" msgstr "" #. Translators: help for --oneline #: src/client/gpaste-client.c:234 msgid "display each item on only one line" msgstr "" #. Translators: help for --raw #: src/client/gpaste-client.c:236 msgid "display each item raw (without line numbers)" msgstr "" #. Translators: help for --reverse #: src/client/gpaste-client.c:238 msgid "display the items in reverse order" msgstr "" #. Translators: help for --zero #: src/client/gpaste-client.c:240 msgid "use a NUL character instead of a new line betweean each item" msgstr "" #: src/client/gpaste-client.c:243 #, c-format msgid "Merge options:" msgstr "" #. Translators: help for --decoration #. Translators: help for --separator #: src/client/gpaste-client.c:246 src/client/gpaste-client.c:248 msgid "string" msgstr "" #: src/client/gpaste-client.c:246 msgid "" "add the given decoration to the beginning and the end of each item before " "merging" msgstr "" #: src/client/gpaste-client.c:248 msgid "add the given separator between each item when merging" msgstr "" #: src/client/gpaste-client.c:345 #, c-format msgid "Successfully reexecuted the daemon\n" msgstr "" #: src/client/gpaste-client.c:486 msgid "Cannot add non utf8 data as text." msgstr "" #: src/client/gpaste-client.c:796 src/ui/gpaste-ui-window.c:353 #: src/ui/gpaste-ui-window.c:354 msgid "Couldn't connect to GPaste daemon" msgstr "" #: src/daemon/gpaste-color-item.c:73 msgid "[Color]" msgstr "" #. Translators: strftime format for image timestamps. Rearrange to match your locale's date/time convention. #: src/daemon/gpaste-image-item.c:219 msgid "%m/%d/%y %T" msgstr "" #. Translators: Image item displayed in history. %d is width, %d is height, %s is the formatted date. #: src/daemon/gpaste-image-item.c:221 #, c-format msgid "[Image, %d x %d (%s)]" msgstr "" #: src/daemon/gpaste-make-password-keybinding.c:50 msgid "Convert to Password" msgstr "" #. This is the prefix displayed in history to identify a password #: src/daemon/gpaste-password-item.c:65 msgid "Password" msgstr "" #: src/daemon/gpaste-pop-keybinding.c:64 msgid "Pop from History" msgstr "" #: src/daemon/gpaste-show-history-keybinding.c:49 #, fuzzy msgid "Show History" msgstr "Vis historik" #: src/daemon/gpaste-sync-clipboard-to-primary-keybinding.c:46 #, fuzzy msgid "Sync Clipboard to Primary" msgstr "Synkroniser udklipsholderen med den primære markering" #: src/daemon/gpaste-sync-primary-to-clipboard-keybinding.c:46 #, fuzzy msgid "Sync Primary to Clipboard" msgstr "Synkroniser den primære markering med udklipsholderen" #: src/daemon/gpaste-ui-keybinding.c:43 msgid "Launch UI" msgstr "" #: src/daemon/gpaste-upload-keybinding.c:64 msgid "Upload to Pastebin" msgstr "" #: src/daemon/gpaste-uris-item.c:87 msgid "[Files] " msgstr "" #: src/daemon/main.c:32 msgid "Stop signal received, exiting" msgstr "" #: src/daemon/main.c:69 msgid "Could not acquire DBus name." msgstr "" #: src/gnome-shell/dummyHistoryItem.js:12 msgid "(Couldn't connect to GPaste daemon)" msgstr "" #: src/gnome-shell/dummyHistoryItem.js:17 msgid "(Empty)" msgstr "" #: src/gnome-shell/dummyHistoryItem.js:22 msgid "(No result)" msgstr "" #: src/gnome-shell/emptyHistoryItem.js:14 msgid "Empty history" msgstr "" #: src/gnome-shell/stateSwitch.js:12 msgid "Track changes" msgstr "" #: src/gnome-shell/uiItem.js:14 msgid "Graphical tool" msgstr "" #: src/libgpaste/gpaste/gpaste-util.c:636 msgid "Could not create history dir" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-macros.h:38 msgid "Failed to register the gtk application" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:108 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:119 msgid "General behaviour" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:121 #: src/ui/gpaste-ui-switch.c:93 msgid "Track clipboard changes" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:127 msgid "Close UI on select" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:133 msgid "Open the UI window centered" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:139 msgid "Save history" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:150 msgid "Enable the gnome-shell extension" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:156 msgid "Sync the daemon state with the extension's one" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:162 msgid "" "When enabled, the daemon automatically starts or stops tracking clipboard " "changes to match the GNOME Shell extension's enabled state" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:166 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:174 msgid "Clipboards synchronization" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:168 msgid "Primary selection affects history" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:174 msgid "Synchronize clipboard with primary selection" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:181 msgid "Optional features" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:183 msgid "Trim items" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:189 msgid "Detect growing lines" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:195 msgid "" "When enabled, if a new clipboard entry starts with the previous one, the " "previous entry is replaced instead of creating a new one" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:92 msgid "History settings" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:103 msgid "Resources limits" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:120 msgid "Text limits" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:122 msgid "Min text item length" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:129 msgid "Max text item length" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:137 msgid "Display settings" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:139 msgid "Max element size when displaying" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:81 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:92 #, fuzzy msgid "Images settings" msgstr "Indstillinger" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:94 msgid "Images support" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:100 msgid "Image previews" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:106 msgid "Preview size" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:122 msgid "Keyboard shortcuts" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:133 msgid "History access" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:150 msgid "Active element manipulation" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-util.c:51 #: src/ui/gpaste-ui-edit-item.c:84 src/ui/gpaste-ui-new-item.c:66 #: src/ui/gpaste-ui-panel.c:311 msgid "Cancel" msgstr "" #. Translators: %s is the name of the history being emptied. #: src/libgpaste/gpaste-gtk4/gpaste-gtk-util.c:126 #, c-format msgid "Do you really want to empty \"%s\"?" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-util.c:127 #: src/ui/gpaste-ui-history.c:153 src/ui/gpaste-ui-history.c:428 #: src/ui/gpaste-ui-panel.c:517 msgid "Empty" msgstr "" #: src/ui/gpaste-ui.c:47 msgid "Clipboard management system" msgstr "" #: src/ui/gpaste-ui-delete-item.c:46 src/ui/gpaste-ui-panel.c:358 #: src/ui/gpaste-ui-panel.c:518 msgid "Delete" msgstr "" #: src/ui/gpaste-ui-edit-item.c:85 src/ui/gpaste-ui-edit-item.c:139 msgid "Edit" msgstr "" #: src/ui/gpaste-ui-history.c:266 msgid "No Results" msgstr "" #: src/ui/gpaste-ui-new-item.c:67 msgid "Add new item" msgstr "" #: src/ui/gpaste-ui-new-item.c:100 msgid "New item" msgstr "" #: src/ui/gpaste-ui-panel.c:307 msgid "Under which name do you want to backup this history?" msgstr "" #: src/ui/gpaste-ui-panel.c:311 src/ui/gpaste-ui-panel.c:516 msgid "Backup" msgstr "" #. Translators: %s is the name of the history being deleted. #: src/ui/gpaste-ui-panel.c:357 #, c-format msgid "Are you sure you want to delete \"%s\"?" msgstr "" #: src/ui/gpaste-ui-panel.c:441 #, fuzzy msgid "Switch to history" msgstr "Vis historik" #: src/ui/gpaste-ui-panel.c:448 msgid "Switch to" msgstr "" #: src/ui/gpaste-ui-reexec.c:45 msgid "Restart" msgstr "" #: src/ui/gpaste-ui-reexec.c:45 msgid "Do you really want to restart the daemon?" msgstr "" #: src/ui/gpaste-ui-reexec.c:70 msgid "Restart the daemon" msgstr "" #: src/ui/gpaste-ui-search.c:23 msgid "Search" msgstr "" #: src/ui/gpaste-ui-settings.c:35 msgid "GPaste Settings" msgstr "" #: src/ui/gpaste-ui-shortcuts-window.c:21 msgid "General" msgstr "" #: src/ui/gpaste-ui-switch.c:68 msgid "Stop" msgstr "" #: src/ui/gpaste-ui-switch.c:68 msgid "Do you really want to stop tracking clipboard changes?" msgstr "" #: src/ui/gpaste-ui-upload-item.c:46 msgid "Upload" msgstr "" #: src/ui/gpaste-ui-window.c:303 msgid "Quit" msgstr "" #: src/ui/gpaste-ui-window.c:380 msgid "Histories" msgstr "" #: src/ui/gpaste-ui-window.c:381 msgid "History" msgstr "" Keruspe-GPaste-724def1/po/de.po000066400000000000000000001651241521206431300163030ustar00rootroot00000000000000# German translations for GPaste package. # Copyright (C) 2013-2015 Listed translators # This file is distributed under the same license as the GPaste package. # Christian Schendel , 2013. # msgid "" msgstr "" "Project-Id-Version: GPaste\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-06-09 21:21+0200\n" "PO-Revision-Date: 2023-09-23 17:02+0000\n" "Last-Translator: Ettore Atalan \n" "Language-Team: German \n" "Language: de\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: Weblate 5.1-dev\n" #: data/control-center/42-gpaste.control-center.xml.in:2 msgid "@GETTEXT_PACKAGE@" msgstr "@GETTEXT_PACKAGE@" #: data/control-center/42-gpaste.control-center.xml.in:3 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:136 #: src/ui/gpaste-ui-shortcuts-window.c:24 msgid "Launch the graphical tool" msgstr "Das grafische Programm starten" #: data/control-center/42-gpaste.control-center.xml.in:4 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:153 #: src/ui/gpaste-ui-shortcuts-window.c:25 msgid "Mark the active item as being a password" msgstr "Den aktiven Eintrag als Passwort markieren" #: data/control-center/42-gpaste.control-center.xml.in:5 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:167 #: src/ui/gpaste-ui-shortcuts-window.c:23 msgid "Delete the active item from history" msgstr "Den aktiven Eintrag aus der Chronik löschen" #: data/control-center/42-gpaste.control-center.xml.in:6 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:143 #: src/ui/gpaste-ui-shortcuts-window.c:26 msgid "Display the history" msgstr "Die Chronik anzeigen" #: data/control-center/42-gpaste.control-center.xml.in:7 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:177 #: src/ui/gpaste-ui-shortcuts-window.c:27 msgid "Sync the clipboard to the primary selection" msgstr "Die Zwischenablage mit der primären Auswahl synchronisieren" #: data/control-center/42-gpaste.control-center.xml.in:8 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:184 #: src/ui/gpaste-ui-shortcuts-window.c:28 msgid "Sync the primary selection to the clipboard" msgstr "Die primäre Auswahl mit der Zwischenablage synchronisieren" #: data/control-center/42-gpaste.control-center.xml.in:9 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:160 #: src/ui/gpaste-ui-shortcuts-window.c:29 msgid "Upload the active item to a pastebin service" msgstr "Den aktiven Eintrag in einen Pastebin-Service hochladen" #: data/desktop/org.gnome.GPaste.Daemon.desktop.in.in:3 #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:3 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:6 msgid "GPaste" msgstr "GPaste" #: data/desktop/org.gnome.GPaste.Preferences.desktop.in.in:3 msgid "GPaste Preferences" msgstr "GPaste-Einstellungen" #: data/desktop/org.gnome.GPaste.Preferences.desktop.in.in:4 msgid "Manage your GPaste preferences" msgstr "GPaste-Einstellungen verwalten" #: data/desktop/org.gnome.GPaste.Preferences.desktop.in.in:5 #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:6 msgid "Clipboard;Manager;Settings;Preferences;Configuration;" msgstr "Zwischenablage;Verwaltung;Einstellungen;Voreinstellungen;Konfiguration;" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:4 #, fuzzy msgid "Clipboard Manager" msgstr "Änderungen der Zwischenablage verfolgen" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:5 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:7 msgid "Manage your clipboard history" msgstr "Die Chronik der Zwischenablage verwalten" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:16 #, fuzzy msgid "Preferences" msgstr "GPaste-Einstellungen" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:20 #: src/gnome-shell/aboutItem.js:13 src/ui/gpaste-ui-about.c:38 msgid "About" msgstr "Info" #: data/gsettings/org.gnome.GPaste.gschema.xml:7 msgid "Max size of an element when displaying it" msgstr "Maximale Größe eines Eintrags bei dessen Anzeige" #: data/gsettings/org.gnome.GPaste.gschema.xml:8 msgid "" "The extra stuff of that element will be replaced by \"…\", and newlines by " "\" \" when displaying from the applet, 0 to disable." msgstr "" "Der zusätzliche Inhalt dieses Eintrags wird durch Auslassungspunkte „…“ und " "Zeilenumbrüche durch Leerraum „␣“ ersetzt, wenn er vom Applet aus angezeigt " "wird, 0 zum Deaktivieren." #: data/gsettings/org.gnome.GPaste.gschema.xml:15 msgid "Do we detect and replace growing lines in history?" msgstr "Werden wachsende Zeilen in der Chronik entdeckt und ersetzt?" #: data/gsettings/org.gnome.GPaste.gschema.xml:16 msgid "" "By default, selecting \"Here is\", then \"Here is an example\" will create " "two entries in the history. With this feature enabled, the first one will be " "replaced by the second one." msgstr "" "Standardmäßig werden bei der Auswahl von „Hier ist“ und „Hier ist ein " "Beispiel“ zwei Einträge in der Chronik erstellt. Wenn diese Funktion " "aktiviert ist, wird der erste Eintrag durch den zweiten ersetzt." #: data/gsettings/org.gnome.GPaste.gschema.xml:24 msgid "The name of the current history" msgstr "Der Name der aktuellen Chronik" #: data/gsettings/org.gnome.GPaste.gschema.xml:25 msgid "The default name is \"history\"" msgstr "Der Standardname lautet „history“" #: data/gsettings/org.gnome.GPaste.gschema.xml:32 msgid "Do we save the images copied to history, or only text?" msgstr "" "Werden die in die Chronik kopierten Bilder oder nur der Text gespeichert?" #: data/gsettings/org.gnome.GPaste.gschema.xml:33 msgid "By default, we're saving only text" msgstr "Standardmäßig wird nur der Text gespeichert" #: data/gsettings/org.gnome.GPaste.gschema.xml:40 msgid "Show image previews in the history?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:41 msgid "By default, we show previews of images in the history" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:49 msgid "Size of image previews in pixels" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:50 msgid "Default size is 100 pixels" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:57 msgid "Do we close the UI after selecting an item?" msgstr "" "Wird die Benutzeroberfläche nach der Auswahl eines Eintrags geschlossen?" #: data/gsettings/org.gnome.GPaste.gschema.xml:58 msgid "By default, we close it" msgstr "Standardmäßig wird geschlossen" #: data/gsettings/org.gnome.GPaste.gschema.xml:65 msgid "Do we open the UI window centered?" msgstr "Öffnen wir das UI-Fenster zentriert?" #: data/gsettings/org.gnome.GPaste.gschema.xml:66 msgid "By default, we open it where the mouse cursor is" msgstr "Standardmäßig wird es dort geöffnet, wo sich der Mauszeiger befindet" #: data/gsettings/org.gnome.GPaste.gschema.xml:73 msgid "The keyboard shortcut to launch the graphical interface" msgstr "Das Tastaturkürzel zum Starten der grafischen Oberfläche" #: data/gsettings/org.gnome.GPaste.gschema.xml:74 msgid "" "By default, hitting ctrl + alt + g does that (\"G\"). An empty " "string here disables this functionnality." msgstr "" "Standardmäßig geschieht dies durch Drücken von Strg + Alt + G " "(„G“). Eine leere Zeichenfolge deaktiviert diese Funktion." #: data/gsettings/org.gnome.GPaste.gschema.xml:82 msgid "The keyboard shortcut to mark the active item as being a password" msgstr "Das Tastaturkürzel zur Markierung des aktiven Eintrags als Passwort" #: data/gsettings/org.gnome.GPaste.gschema.xml:83 msgid "" "By default, hitting ctrl + alt + s will mark the active item as being a " "password (\"S\"). An empty string here disables this " "functionnality." msgstr "" "Standardmäßig wird durch Drücken von Strg + Alt + S der aktive Eintrag als " "Passwort markiert („S“). Eine leere Zeichenfolge deaktiviert " "diese Funktion." #: data/gsettings/org.gnome.GPaste.gschema.xml:92 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:146 msgid "Max displayed history size" msgstr "Maximale Größe der angezeigten Chronik" #: data/gsettings/org.gnome.GPaste.gschema.xml:93 msgid "Maximum number of items displayed in the history" msgstr "Maximale Anzahl von Einträgen, die in der Chronik angezeigt werden" #: data/gsettings/org.gnome.GPaste.gschema.xml:101 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:105 msgid "Max history size" msgstr "Maximale Größe der Chronik" #: data/gsettings/org.gnome.GPaste.gschema.xml:102 msgid "Maximum number of items in history" msgstr "Maximale Anzahl von Einträgen in der Chronik" #: data/gsettings/org.gnome.GPaste.gschema.xml:110 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:112 msgid "Max memory usage (MB)" msgstr "Maximale Speichernutzung (MB)" #: data/gsettings/org.gnome.GPaste.gschema.xml:111 msgid "Maximum amount of memory used to store contents" msgstr "Maximaler Speicherverbrauch für die Speicherung von Inhalten" #: data/gsettings/org.gnome.GPaste.gschema.xml:119 msgid "Max text item size" msgstr "Maximale Größe des Texteintrags" #: data/gsettings/org.gnome.GPaste.gschema.xml:120 msgid "Maximum size of a text item. Anything out of this boundary is ignored." msgstr "" "Maximale Größe eines Texteintrags. Alles, was außerhalb dieses Grenzwertes " "liegt, wird ignoriert." #: data/gsettings/org.gnome.GPaste.gschema.xml:128 msgid "Min text item size" msgstr "Minimale Größe des Texteintrags" #: data/gsettings/org.gnome.GPaste.gschema.xml:129 msgid "Minimum size of a text item. Anything out of this boundary is ignored." msgstr "" "Minimale Größe eines Texteintrags. Alles, was außerhalb dieses Grenzwertes " "liegt, wird ignoriert." #: data/gsettings/org.gnome.GPaste.gschema.xml:136 msgid "The keyboard shortcut to delete the first element in history" msgstr "Das Tastaturkürzel zum Löschen des ersten Eintrags in der Chronik" #: data/gsettings/org.gnome.GPaste.gschema.xml:137 msgid "" "By default, hitting ctrl + alt + v does that (\"V\"). An empty " "string here disables this functionnality." msgstr "" "Standardmäßig geschieht dies durch Drücken von Strg + Alt + V " "(„V“). Eine leere Zeichenfolge deaktiviert diese Funktion." #: data/gsettings/org.gnome.GPaste.gschema.xml:145 msgid "Does the primary selection affects history?" msgstr "Wirkt sich die primäre Auswahl auf die Chronik aus?" #: data/gsettings/org.gnome.GPaste.gschema.xml:146 msgid "By default, only clipboard (ctrl+c) affects history." msgstr "" "Standardmäßig wirkt sich nur die Zwischenablage (Strg+C) auf die Chronik aus." #: data/gsettings/org.gnome.GPaste.gschema.xml:153 msgid "" "Do we save all versions of selected rich text (e.g. html) or just the plain " "text version?" msgstr "" "Werden alle Versionen des ausgewählten Rich-Textes (z. B. HTML) gespeichert " "oder nur die reine Textversion?" #: data/gsettings/org.gnome.GPaste.gschema.xml:154 msgid "By default, we're saving all" msgstr "Standardmäßig werden alle gespeichert" #: data/gsettings/org.gnome.GPaste.gschema.xml:161 msgid "Do we save the history from one session to another?" msgstr "Wird die Chronik von einer Sitzung zur nächsten gespeichert?" #: data/gsettings/org.gnome.GPaste.gschema.xml:162 msgid "By default, we're saving it" msgstr "Standardmäßig wird gespeichert" #: data/gsettings/org.gnome.GPaste.gschema.xml:169 msgid "The keyboard shortcut to display the menu" msgstr "Das Tastaturkürzel zum Anzeigen des Menüs" #: data/gsettings/org.gnome.GPaste.gschema.xml:170 msgid "" "By default, hitting ctrl + alt + h displays the menu (\"H\"). An " "empty string here disables this functionnality." msgstr "" "Standardmäßig wird durch Drücken von Strg + Alt + H das Menü angezeigt " "(„H“). Eine leere Zeichenfolge hier deaktiviert diese " "Funktionalität." #: data/gsettings/org.gnome.GPaste.gschema.xml:178 msgid "The keyboard shortcut to sync the clipboard to the primary selection" msgstr "" "Das Tastaturkürzel zum Synchronisieren der Zwischenablage mit der primären " "Auswahl" #: data/gsettings/org.gnome.GPaste.gschema.xml:179 msgid "" "By default, hitting ctrl + alt + o syncs them (\"P\"). An empty " "string here disables this functionnality." msgstr "" "Standardmäßig werden sie durch Drücken von Strg + Alt + O synchronisiert " "(„O“). Eine leere Zeichenfolge hier deaktiviert diese " "Funktionalität." #: data/gsettings/org.gnome.GPaste.gschema.xml:187 msgid "The keyboard shortcut to sync the primary selection to the clipboard" msgstr "" "Das Tastaturkürzel zum Synchronisieren der primären Auswahl mit der " "Zwischenablage" #: data/gsettings/org.gnome.GPaste.gschema.xml:188 msgid "" "By default, hitting ctrl + alt + p syncs them (\"P\"). An empty " "string here disables this functionnality." msgstr "" "Standardmäßig werden sie durch Drücken von Strg + Alt + P synchronisiert " "(„P“). Eine leere Zeichenfolge hier deaktiviert diese " "Funktionalität." #: data/gsettings/org.gnome.GPaste.gschema.xml:196 msgid "Are the primary selection and the clipboard synchronized?" msgstr "Sind die primäre Auswahl und die Zwischenablage synchronisiert?" #: data/gsettings/org.gnome.GPaste.gschema.xml:197 msgid "By default, the primary selection and the clipboard are independent." msgstr "" "Standardmäßig sind die primäre Auswahl und die Zwischenablage unabhängig " "voneinander." #: data/gsettings/org.gnome.GPaste.gschema.xml:204 msgid "Do we track the clipboard changes?" msgstr "Werden die Änderungen in der Zwischenablage verfolgt?" #: data/gsettings/org.gnome.GPaste.gschema.xml:205 msgid "By default, we're tracking those changes." msgstr "Standardmäßig werden diese Änderungen verfolgt." #: data/gsettings/org.gnome.GPaste.gschema.xml:212 msgid "" "Do we sync the daemon state with the gnome-shell extension's one? (disable " "the daemon when disabling the extension)" msgstr "" "Wird der Status des Daemons mit dem der Gnome-Shell-Erweiterung " "synchronisiert? (den Daemon deaktivieren, wenn die Erweiterung deaktiviert " "wird)" #: data/gsettings/org.gnome.GPaste.gschema.xml:213 msgid "By default, the daemon state keeps unchanged" msgstr "Standardmäßig bleibt der Status des Daemons unverändert" #: data/gsettings/org.gnome.GPaste.gschema.xml:220 msgid "Do we trim the textual items before adding them to history?" msgstr "" "Werden die Texteinträge getrimmt, bevor sie in die Chronik aufgenommen " "werden?" #: data/gsettings/org.gnome.GPaste.gschema.xml:221 msgid "" "Trimming means removing all trailing and ending spaces. By default, we're " "letting them as-is." msgstr "" "Trimmen bedeutet, dass alle Leerzeichen am Anfang und am Ende entfernt " "werden. Standardmäßig werden sie so belassen, wie sie sind." #: data/gsettings/org.gnome.GPaste.gschema.xml:229 msgid "" "The keyboard shortcut to upload the first element in history to a pastebin " "service" msgstr "" "Das Tastaturkürzel zum Hochladen des ersten Eintrags in der Chronik zu einem " "Pastebin-Dienst" #: data/gsettings/org.gnome.GPaste.gschema.xml:230 msgid "" "By default, hitting ctrl + alt + u does that (\"U\"). An empty " "string here disables this functionnality." msgstr "" "Standardmäßig geschieht dies durch Drücken von Strg + Alt + U " "(„U“). Eine leere Zeichenfolge deaktiviert diese Funktion." #: data/gsettings/org.gnome.GPaste.gschema.xml:238 msgid "Do we prompt for confirmation when emptying a history?" msgstr "Wird beim Leeren einer Chronik eine Bestätigung verlangt?" #: data/gsettings/org.gnome.GPaste.gschema.xml:239 msgid "By default, we do as it's a destructive action" msgstr "Standardmäßig wird dies als destruktive Aktion durchgeführt" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:9 msgid "Marc-Antoine Perennou" msgstr "Marc-Antoine Perennou" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:17 msgid "" "GPaste is a clipboard managing system allowing you to track and manage your " "clipboard history in a highly customizable way." msgstr "" "GPaste ist ein Verwaltungssystem für die Zwischenablage, mit dem die Chronik " "der Zwischenablage auf eine sehr anpassbare Weise verfolgt und verwaltet " "werden kann." #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:20 msgid "" "GPaste provides you with a graphical tool allowing you to manage everything " "easily." msgstr "" "GPaste bietet ein grafisches Programm, mit dem sich alles leicht verwalten " "lässt." #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:27 msgid "The main UI" msgstr "Die Hauptbenutzeroberfläche" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:31 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:35 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:39 msgid "The settings UI" msgstr "Die Benutzeroberfläche für Einstellungen" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:51 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:78 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:90 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:100 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:120 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:133 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:143 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:152 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:161 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:180 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:197 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:205 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:213 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:231 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:239 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:247 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:255 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:263 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:287 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:295 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:303 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:311 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:319 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:327 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:335 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:343 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:352 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:361 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:379 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:387 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:395 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:403 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:421 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:429 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:438 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:447 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:456 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:464 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:485 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:493 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:501 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:509 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:517 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:533 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:541 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:549 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:557 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:573 msgid "This is a maintenance release. Changes:" msgstr "Dies ist eine Wartungsfreigabe. Änderungen:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:53 msgid "Fix building without the GNOME Shell extension (-Dgnome-shell=false)" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:54 msgid "" "Restore GTK deprecation version-gating and drop the unused build-time gjs " "dependency" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:55 msgid "Target GNOME Shell 50 in the extension" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:56 msgid "Bump the library soversions to reflect the API/ABI changes since 45.8" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:62 msgid "" "This is a major release porting GPaste to GTK 4 and libadwaita. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:64 msgid "Port the daemon, history UI and preferences to GTK 4 and libadwaita" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:65 msgid "Show image thumbnails in the history, with configurable preview size" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:66 msgid "" "Support global keyboard shortcuts on Wayland through the XDG GlobalShortcuts " "portal" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:67 msgid "Recognise copied colours as dedicated colour items" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:68 msgid "" "Give keybindings human-readable descriptions and install a daemon desktop " "file" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:69 msgid "Fix images sometimes being repeatedly re-added to the history" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:70 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:81 msgid "" "Fix keyboard shortcuts not triggering when NumLock and CapsLock are both " "active" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:71 msgid "" "Fix several crashes (search provider, UI lifetime, GNOME Shell extension) " "and memory leaks" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:72 msgid "Modernise the GNOME Shell extension to current conventions" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:80 msgid "Fix use-after-free crash in the GNOME Shell search provider" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:82 msgid "" "Fix memory leaks when re-copying history items and when rebinding shortcuts" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:83 msgid "Fix potential crash when enforcing a very small history size" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:84 msgid "Build: ship the GSettings schema as a static file" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:92 msgid "" "GNOME Shell extension now retries the daemon connection before giving up" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:93 msgid "Fix test crash when GrabAccelerators is not allowed" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:94 msgid "Build: simplify gsettings compilation for tests" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:102 msgid "Fix GC crash and signal leak when disabling the GNOME Shell extension" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:103 msgid "GNOME Shell extension now handles daemon connection failure gracefully" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:104 #, fuzzy msgid "Fix crash when a history item has no value yet" msgstr "Behebung eines Absturzes, wenn noch keine Chronik vorhanden ist" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:105 msgid "Fix image files not being deleted when history items are removed" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:106 msgid "Fix image files stored in wrong directory" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:107 msgid "Fix keyboard focus being stolen by history items on hover" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:108 msgid "" "Fix key events incorrectly forwarded to search when another entry has focus" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:109 msgid "Fix signal loop when updating shortcut entries from settings" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:110 msgid "Fix default history item count not reset after history deletion" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:111 msgid "Enforce minimum window size to prevent unresizable state" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:112 msgid "Add descriptive tooltips for settings entries" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:113 msgid "Build: explicitly link libgpaste libraries against libc" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:114 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:127 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:137 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:146 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:155 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:164 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:174 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:225 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:267 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:281 msgid "Translations updates" msgstr "Aktualisierungen der Übersetzungen" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:122 msgid "" "Fix infinite Pango assertion loop that could fill disk when clipboard " "content contained tab characters" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:123 msgid "Various bug fixes and memory management improvements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:124 msgid "Daemon improvements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:125 msgid "GNOME Shell extension improvements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:126 #, fuzzy msgid "GLib >= 2.76 is now required" msgstr "gcr 4 ist jetzt erforderlich" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:135 #, fuzzy msgid "Support for gnome 50" msgstr "Portierung auf Gnome 45" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:136 #, fuzzy msgid "Support for gnome 49" msgstr "Portierung auf Gnome 45" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:145 #, fuzzy msgid "Support for gnome 48" msgstr "Portierung auf Gnome 45" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:154 #, fuzzy msgid "Support for gnome 47" msgstr "Portierung auf Gnome 45" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:163 #, fuzzy msgid "Support for gnome 46" msgstr "Portierung auf Gnome 45" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:170 #, fuzzy msgid "Stable release for GNOME 45. Changes:" msgstr "RC-Version für GNOME 45. Änderungen:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:172 msgid "Port to gnome 45" msgstr "Portierung auf Gnome 45" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:173 msgid "Add setting to open ui window centered" msgstr "Einstellung zum zentrierten Öffnen des UI-Fensters hinzufügen" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:182 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:199 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:233 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:289 msgid "Fix a bug leading to history with only one item" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:188 msgid "First release for GNOME 44. Changes:" msgstr "Erste Veröffentlichung für GNOME 44. Änderungen:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:190 msgid "gcr 4 is now required" msgstr "gcr 4 ist jetzt erforderlich" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:191 msgid "Port to gnome 44" msgstr "Portierung auf Gnome 44" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:207 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:241 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:297 msgid "Avoid crash under heavy memory load" msgstr "Absturz durch hohen Speicherverbrauch verhindern" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:215 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:249 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:305 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:381 msgid "Respect --use-index when displaying history" msgstr "„--use-index“ bei der Anzeige der Chronik respektieren" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:221 msgid "First release for GNOME 43. Changes:" msgstr "Erste Veröffentlichung für GNOME 43. Änderungen:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:223 msgid "Port to GNOME 43" msgstr "Portierung auf GNOME 43" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:224 msgid "Internal preparation for gtk4 port" msgstr "Interne Vorbereitung für GTK4-Portierung" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:257 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:313 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:389 msgid "Open GPaste UI where the mouse pointer is" msgstr "" "GPaste-Benutzeroberfläche an der Stelle öffnen, an der sich der Mauszeiger " "befindet" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:265 msgid "Fixes to the new preferences tool" msgstr "Korrekturen für das neue Einstellungsprogramm" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:266 msgid "Style fixes" msgstr "Stil-Fixierungen" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:273 msgid "First release for GNOME 42. Changes:" msgstr "Erste Veröffentlichung für GNOME 42. Änderungen:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:275 msgid "" "Old libgpaste replaced by a new minimal libgpaste-2 with no gtk dependency" msgstr "" "Alte libgpaste ersetzt durch eine neue minimale libgpaste-2 ohne GTK-" "Abhängigkeit" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:276 msgid "New libgpaste-gtk3 for utils and settings ui" msgstr "Neue libgpaste-gtk3 für Programme und Einstellungen-Benutzeroberfläche" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:277 msgid "New libgpaste-gtk4 for utils and preferences ui" msgstr "" "Neue libgpaste-gtk4 für Programme und Voreinstellungen-Benutzeroberfläche" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:278 msgid "New gtk4 based gpaste-preferences utility" msgstr "Neues GTK4-basiertes Programm „gpaste-preferences“" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:279 msgid "Autotools are no longer supported" msgstr "Autotools werden nicht mehr unterstützt" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:280 msgid "Extension updated for gnome-shell 42" msgstr "Erweiterung aktualisiert für Gnome-Shell 42" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:321 msgid "fix the storage path for meson builds" msgstr "Korrektur des Speicherpfads für Meson-Builds" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:329 msgid "fix some race conditions in history handling" msgstr "Behebung einiger Race-Conditions in der Chronik-Verarbeitung" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:337 msgid "better fix crash when there is no history yet" msgstr "Bessere Behebung von Abstürzen, wenn noch keine Chronik vorhanden ist" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:345 msgid "fix crash when there is no history yet" msgstr "Behebung eines Absturzes, wenn noch keine Chronik vorhanden ist" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:346 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:355 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:364 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:373 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:397 msgid "translations update" msgstr "Aktualisierung der Übersetzungen" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:354 msgid "fix gnome-shell exntesion when the daemon restarts" msgstr "Behebung der Gnome-Shell-Erweiterung beim Neustart des Daemons" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:363 msgid "Fix keybindings for wayland" msgstr "Korrektur der Tastenbindungen für Wayland" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:370 msgid "First release for GNOME 41. Changes:" msgstr "Erste Veröffentlichung für GNOME 41. Änderungen:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:372 msgid "port to gnome-shell 41" msgstr "Portierung auf Gnome-Shell 41" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:405 msgid "fix a crash in memory usage checking" msgstr "Behebung eines Absturzes bei der Überprüfung der Speichernutzung" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:412 msgid "First release for GNOME 40. Changes:" msgstr "Erste Veröffentlichung für GNOME 40. Änderungen:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:414 msgid "port to gnome-shell 40" msgstr "Portierung auf Gnome-Shell 40" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:415 msgid "placeholder for gnome-shell prefs" msgstr "Platzhalter für Gnome-Shell-Voreinstellungen" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:423 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:487 msgid "fix X11 keybinder outside of GNOME" msgstr "Fixierung des X11-Tastenbinders außerhalb von GNOME" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:431 msgid "better handling and reporting of invalid uuids passed to gpaste-client" msgstr "" "Bessere Behandlung und Meldung von ungültigen UUIDs, die an gpaste-client " "übergeben werden" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:432 msgid "" "gpaste-client now has a --use-index argument for several subcommands to use " "index instead of uuid" msgstr "" "gpaste-client hat jetzt ein --use-index Argument für mehrere Unterbefehle, " "um Index statt UUID zu verwenden" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:440 msgid "fix the make-password keybinding" msgstr "Behebung der make-password-Tastenbindung" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:441 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:450 msgid "updated translations" msgstr "Aktualisierung der Übersetzungen" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:449 msgid "gnome-shell extension warning fixes" msgstr "Fehlerbehebung für Warnungen der Gnome-Shell-Erweiterung" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:458 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:495 msgid "gnome-shell extension cosmetic updates" msgstr "Kosmetische Aktualisierungen für die Gnome-Shell-Erweiterung" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:466 msgid "Disable images support by default (can be reenabled in preferences)" msgstr "" "Standardmäßige Deaktivierung der Bildunterstützung (kann in den " "Einstellungen wieder aktiviert werden)" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:467 msgid "Search now includes passwords (using their names)" msgstr "Die Suche umfasst jetzt auch Passwörter (unter Verwendung ihrer Namen)" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:468 msgid "systemd integration enhancements" msgstr "Verbesserungen bei der systemd-Integration" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:474 msgid "First release for GNOME 3.38. Changes:" msgstr "Erste Veröffentlichung für GNOME 3.38. Änderungen:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:476 msgid "Drop the Tracking DBus signal" msgstr "Weglassen des Tracking-DBus-Signals" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:477 msgid "Switch to uuids to identify items" msgstr "Umstellung auf UUIDs zur Identifizierung von Einträgen" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:478 msgid "Bump DBus interface to org.gnome.GPaste2" msgstr "Upgrade des DBus-Interface auf org.gnome.GPaste2" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:479 msgid "Update to gnome-shell 3.38.0" msgstr "Update auf Gnome-Shell 3.38.0" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:503 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:535 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:577 msgid "Fix activating items using Ctrl-Number in gnome-shell" msgstr "" "Reparieren der Aktivierung von Einträgen mit Strg+Nummer in der Gnome-Shell" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:511 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:543 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:576 msgid "Fix keybinding regrab with gnome-shell" msgstr "Behebung der Wiederaufnahme der Tastenbindung mit Gnome-Shell" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:519 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:551 msgid "Fix keybinding grab with gnome-shell" msgstr "Behebung der Tastenbindung mit Gnome-Shell" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:525 msgid "First release for GNOME 3.36. Changes:" msgstr "Erste Veröffentlichung für GNOME 3.36. Änderungen:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:527 msgid "Update to gnome-shell 3.36.0" msgstr "Update auf Gnome-Shell 3.36.0" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:559 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:575 msgid "Compatibility with recent appstream-glib" msgstr "Kompatibilität mit der aktuellen appstream-glib" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:565 msgid "First release for GNOME 3.34. Changes:" msgstr "Erste Veröffentlichung für GNOME 3.34. Änderungen:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:567 msgid "Update to gnome-shell 3.34.0" msgstr "Aktualisierung auf Gnome-Shell 3.34.0" #: src/client/gpaste-client.c:146 msgid "Couldn't spawn" msgstr "Konnte nicht gestartet werden" #: src/client/gpaste-client.c:158 #, c-format msgid "Usage:\n" msgstr "Verwendung:\n" #. Translators: help for gpaste history #: src/client/gpaste-client.c:160 msgid "print the history with UUIDs" msgstr "Chronik mit UUIDs anzeigen" #. Translators: help for gpaste history-size #: src/client/gpaste-client.c:162 msgid "print the size of the history" msgstr "Größe der Chronik anzeigen" #. Translators: help for gpaste get-history #: src/client/gpaste-client.c:164 msgid "get the name of the current history" msgstr "Den Namen der aktuellen Chronik abrufen" #. Translators: help for gpaste backup-history #. Translators: help for gpaste switch-history #. Translators: help for gpaste delete-history #. Translators: help for gpaste add-password #. Translators: help for gpaste set-password #. Translators: help for gpaste delete-passworf #: src/client/gpaste-client.c:166 src/client/gpaste-client.c:168 #: src/client/gpaste-client.c:170 src/client/gpaste-client.c:176 #: src/client/gpaste-client.c:188 src/client/gpaste-client.c:192 msgid "name" msgstr "Name" #: src/client/gpaste-client.c:166 msgid "backup current history" msgstr "Aktuelle Chronik sichern" #: src/client/gpaste-client.c:168 msgid "switch to another history" msgstr "Zu einer anderen Chronik wechseln" #: src/client/gpaste-client.c:170 msgid "delete a history" msgstr "Eine Chronik löschen" #. Translators: help for gpaste list-histories #: src/client/gpaste-client.c:172 msgid "list available histories" msgstr "Verfügbare Chroniken auflisten" #. Translators: help for gpaste add #: src/client/gpaste-client.c:174 msgid "text" msgstr "Text" #: src/client/gpaste-client.c:174 msgid "set text to clipboard" msgstr "Text in die Zwischenablage legen" #: src/client/gpaste-client.c:176 msgid "password" msgstr "Passwort" #: src/client/gpaste-client.c:176 msgid "add the name - password couple to the clipboard" msgstr "Das Paar Name – Passwort in die Zwischenablage legen" #. Translators: help for gpaste rename-password #: src/client/gpaste-client.c:178 msgid "old name" msgstr "Alter Name" #: src/client/gpaste-client.c:178 msgid "new name" msgstr "Neuer Name" #: src/client/gpaste-client.c:178 msgid "rename the password" msgstr "Passwort umbenennen" #. Translators: help for gpaste get #: src/client/gpaste-client.c:180 msgid "get the item from the history" msgstr "Den Eintrag aus der Chronik abrufen" #. Translators: help for gpaste select #: src/client/gpaste-client.c:182 msgid "set the item from the history to the clipboard" msgstr "Den Eintrag aus der Chronik in die Zwischenablage setzen" #. Translators: help for gpaste replace #: src/client/gpaste-client.c:184 msgid "contents" msgstr "Inhalt" #: src/client/gpaste-client.c:184 msgid "" "replace the contents of the item from the history with the provided " "one" msgstr "" "Den Inhalt des Eintrags aus der Chronik durch den angegebenen Eintrag " "ersetzen" #. Translators: help for gpaste merge #: src/client/gpaste-client.c:186 msgid "" "merge the items matching the UUIDs from the history and put the result in " "the clipboard" msgstr "" "Die mit den UUIDs übereinstimmenden Einträge aus der Chronik zusammenführen " "und das Ergebnis in die Zwischenablage legen" #: src/client/gpaste-client.c:188 msgid "set the item from the history as a password named " msgstr "" "Den Eintrag aus der Chronik als Passwort mit dem Namen " "festlegen" #. Translators: help for gpaste delete #: src/client/gpaste-client.c:190 msgid "delete item from the history" msgstr "Eintrag aus der Chronik löschen" #: src/client/gpaste-client.c:192 msgid "delete the password from the history" msgstr "Das Passwort aus der Chronik löschen" #. Translators: help for gpaste file #: src/client/gpaste-client.c:194 msgid "path" msgstr "Pfad" #: src/client/gpaste-client.c:194 msgid "put the content of the file at into the clipboard" msgstr "Den Inhalt der Datei unter in die Zwischenablage kopieren" #. Translators: help for whatever | gpaste #: src/client/gpaste-client.c:196 msgid "whatever" msgstr "„Befehl“" #: src/client/gpaste-client.c:196 msgid "set the output of whatever to clipboard" msgstr "Die Ausgabe des Befehls in die Zwischenablage setzen" #. Translators: help for gpaste empty #: src/client/gpaste-client.c:198 msgid "empty the history" msgstr "Die Chronik leeren" #. Translators: help for gpaste start #: src/client/gpaste-client.c:200 msgid "start tracking clipboard changes" msgstr "Änderungen in der Zwischenablage verfolgen" #. Translators: help for gpaste stop #: src/client/gpaste-client.c:202 msgid "stop tracking clipboard changes" msgstr "Änderungen in der Zwischenablage nicht mehr verfolgen" #. Translators: help for gpaste quit #: src/client/gpaste-client.c:204 msgid "alias for stop" msgstr "Alias für „stop“" #. Translators: help for gpaste daemon-reexec #: src/client/gpaste-client.c:206 msgid "reexecute the daemon (after upgrading...)" msgstr "Den Daemon erneut ausführen (nach dem Upgrade …)" #. Translators: help for gpaste preferences #: src/client/gpaste-client.c:208 msgid "launch the configuration tool" msgstr "Das Konfigurationsprogramm starten" #. Translators: help for gpaste ui #: src/client/gpaste-client.c:210 msgid "launch the graphical tool" msgstr "Das grafische Programm starten" #. Translators: help for gpaste show-history #: src/client/gpaste-client.c:212 msgid "make the applet or extension display the history" msgstr "Das Applet oder die Erweiterung soll die Chronik anzeigen" #. Translators: help for gpaste upload #: src/client/gpaste-client.c:214 msgid "upload the item to a pastebin service" msgstr "Den Eintrag auf einen Pastebin-Dienst hochladen" #. Translators: help for gpaste version #: src/client/gpaste-client.c:216 msgid "display the version" msgstr "Die Version anzeigen" #. Translators: help for gpaste daemon-version #: src/client/gpaste-client.c:218 msgid "display the daemon version" msgstr "Die Daemon-Version anzeigen" #. Translators: help for gpaste help #: src/client/gpaste-client.c:220 msgid "display this help" msgstr "Diesen Hilfetext anzeigen" #. Translators: help for gpaste about #: src/client/gpaste-client.c:222 msgid "display the about dialog" msgstr "Den Info-Dialog anzeigen" #: src/client/gpaste-client.c:225 #, c-format msgid "Convenience options:" msgstr "Praktische Optionen:" #. Translators: help for --use-index #: src/client/gpaste-client.c:228 msgid "use the index of the item instead of its UUID" msgstr "Den Index des Eintrags anstelle seiner UUID verwenden" #: src/client/gpaste-client.c:231 #, c-format msgid "Display options:" msgstr "Anzeigeoptionen:" #. Translators: help for --oneline #: src/client/gpaste-client.c:234 msgid "display each item on only one line" msgstr "Jeden Eintrag in nur einer Zeile anzeigen" #. Translators: help for --raw #: src/client/gpaste-client.c:236 msgid "display each item raw (without line numbers)" msgstr "Jeden Eintrag roh anzeigen (ohne Zeilennummern)" #. Translators: help for --reverse #: src/client/gpaste-client.c:238 msgid "display the items in reverse order" msgstr "Die Einträge in umgekehrter Reihenfolge anzeigen" #. Translators: help for --zero #: src/client/gpaste-client.c:240 msgid "use a NUL character instead of a new line betweean each item" msgstr "" "Ein Nullzeichen anstelle einer neuen Zeile zwischen jedem Eintrag verwenden" #: src/client/gpaste-client.c:243 #, c-format msgid "Merge options:" msgstr "Zusammenführungsoptionen:" #. Translators: help for --decoration #. Translators: help for --separator #: src/client/gpaste-client.c:246 src/client/gpaste-client.c:248 msgid "string" msgstr "Zeichenfolge" #: src/client/gpaste-client.c:246 msgid "" "add the given decoration to the beginning and the end of each item before " "merging" msgstr "" "Die angegebene Dekoration am Anfang und am Ende jedes Eintrags vor dem " "Zusammenführen hinzufügen" #: src/client/gpaste-client.c:248 msgid "add the given separator between each item when merging" msgstr "" "Beim Zusammenführen das angegebene Trennzeichen zwischen den einzelnen " "Einträgen einfügen" #: src/client/gpaste-client.c:345 #, c-format msgid "Successfully reexecuted the daemon\n" msgstr "Erfolgreich den Daemon erneut ausgeführt\n" #: src/client/gpaste-client.c:486 msgid "Cannot add non utf8 data as text." msgstr "Nicht-UTF8-Daten können nicht als Text hinzugefügt werden." #: src/client/gpaste-client.c:796 src/ui/gpaste-ui-window.c:353 #: src/ui/gpaste-ui-window.c:354 msgid "Couldn't connect to GPaste daemon" msgstr "Verbindung zum GPaste-Daemon konnte nicht hergestellt werden" #: src/daemon/gpaste-color-item.c:73 msgid "[Color]" msgstr "" #. Translators: strftime format for image timestamps. Rearrange to match your locale's date/time convention. #: src/daemon/gpaste-image-item.c:219 msgid "%m/%d/%y %T" msgstr "%d.%m.%y %T" #. Translators: Image item displayed in history. %d is width, %d is height, %s is the formatted date. #: src/daemon/gpaste-image-item.c:221 #, c-format msgid "[Image, %d x %d (%s)]" msgstr "[Bild, %d x %d (%s)]" #: src/daemon/gpaste-make-password-keybinding.c:50 #, fuzzy msgid "Convert to Password" msgstr "Passwort umbenennen" #. This is the prefix displayed in history to identify a password #: src/daemon/gpaste-password-item.c:65 msgid "Password" msgstr "Passwort" #: src/daemon/gpaste-pop-keybinding.c:64 #, fuzzy msgid "Pop from History" msgstr "Zugang zur Chronik" #: src/daemon/gpaste-show-history-keybinding.c:49 #, fuzzy msgid "Show History" msgstr "Zugang zur Chronik" #: src/daemon/gpaste-sync-clipboard-to-primary-keybinding.c:46 #, fuzzy msgid "Sync Clipboard to Primary" msgstr "Die Zwischenablage mit der primären Auswahl synchronisieren" #: src/daemon/gpaste-sync-primary-to-clipboard-keybinding.c:46 #, fuzzy msgid "Sync Primary to Clipboard" msgstr "Die primäre Auswahl mit der Zwischenablage synchronisieren" #: src/daemon/gpaste-ui-keybinding.c:43 msgid "Launch UI" msgstr "" #: src/daemon/gpaste-upload-keybinding.c:64 msgid "Upload to Pastebin" msgstr "" #: src/daemon/gpaste-uris-item.c:87 msgid "[Files] " msgstr "[Dateien] " #: src/daemon/main.c:32 msgid "Stop signal received, exiting" msgstr "Stoppsignal empfangen, Programm beenden" #: src/daemon/main.c:69 msgid "Could not acquire DBus name." msgstr "DBus-Name konnte nicht erfasst werden." #: src/gnome-shell/dummyHistoryItem.js:12 msgid "(Couldn't connect to GPaste daemon)" msgstr "(Verbindung zum GPaste-Daemon konnte nicht hergestellt werden)" #: src/gnome-shell/dummyHistoryItem.js:17 msgid "(Empty)" msgstr "(Leer)" #: src/gnome-shell/dummyHistoryItem.js:22 msgid "(No result)" msgstr "(Kein Ergebnis)" #: src/gnome-shell/emptyHistoryItem.js:14 msgid "Empty history" msgstr "Chronik leeren" #: src/gnome-shell/stateSwitch.js:12 msgid "Track changes" msgstr "Änderungen verfolgen" #: src/gnome-shell/uiItem.js:14 msgid "Graphical tool" msgstr "Grafisches Programm" #: src/libgpaste/gpaste/gpaste-util.c:636 msgid "Could not create history dir" msgstr "Chronik-Verzeichnis konnte nicht erstellt werden" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-macros.h:38 msgid "Failed to register the gtk application" msgstr "Die GTK-Anwendung konnte nicht registriert werden" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:108 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:119 msgid "General behaviour" msgstr "Allgemeines Verhalten" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:121 #: src/ui/gpaste-ui-switch.c:93 msgid "Track clipboard changes" msgstr "Änderungen der Zwischenablage verfolgen" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:127 msgid "Close UI on select" msgstr "Benutzeroberfläche bei Auswahl schließen" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:133 msgid "Open the UI window centered" msgstr "UI-Fenster zentriert öffnen" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:139 msgid "Save history" msgstr "Chronik speichern" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:150 msgid "Enable the gnome-shell extension" msgstr "Die Gnome-Shell-Erweiterung aktivieren" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:156 msgid "Sync the daemon state with the extension's one" msgstr "Den Status des Daemons mit dem der Erweiterung synchronisieren" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:162 msgid "" "When enabled, the daemon automatically starts or stops tracking clipboard " "changes to match the GNOME Shell extension's enabled state" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:166 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:174 msgid "Clipboards synchronization" msgstr "Synchronisierung von Zwischenablagen" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:168 msgid "Primary selection affects history" msgstr "Die primäre Auswahl beeinflusst die Chronik" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:174 msgid "Synchronize clipboard with primary selection" msgstr "Zwischenablage mit primärer Auswahl synchronisieren" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:181 msgid "Optional features" msgstr "Optionale Funktionen" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:183 msgid "Trim items" msgstr "Einträge trimmen" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:189 msgid "Detect growing lines" msgstr "Wachsende Zeilen entdecken" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:195 msgid "" "When enabled, if a new clipboard entry starts with the previous one, the " "previous entry is replaced instead of creating a new one" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:92 msgid "History settings" msgstr "Einstellungen für die Chronik" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:103 msgid "Resources limits" msgstr "Ressourcengrenzen" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:120 msgid "Text limits" msgstr "Textgrenzen" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:122 msgid "Min text item length" msgstr "Minimale Länge des Texteintrags" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:129 msgid "Max text item length" msgstr "Maximale Länge des Texteintrags" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:137 msgid "Display settings" msgstr "Einstellungen anzeigen" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:139 msgid "Max element size when displaying" msgstr "Maximale Eintragsgröße beim Anzeigen" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:81 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:92 #, fuzzy msgid "Images settings" msgstr "Die Benutzeroberfläche für Einstellungen" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:94 msgid "Images support" msgstr "Unterstützung für Bilder" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:100 msgid "Image previews" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:106 msgid "Preview size" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:122 msgid "Keyboard shortcuts" msgstr "Tastaturkürzel" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:133 msgid "History access" msgstr "Zugang zur Chronik" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:150 msgid "Active element manipulation" msgstr "Manipulation des aktiven Eintrags" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-util.c:51 #: src/ui/gpaste-ui-edit-item.c:84 src/ui/gpaste-ui-new-item.c:66 #: src/ui/gpaste-ui-panel.c:311 msgid "Cancel" msgstr "Abbrechen" #. Translators: %s is the name of the history being emptied. #: src/libgpaste/gpaste-gtk4/gpaste-gtk-util.c:126 #, fuzzy, c-format msgid "Do you really want to empty \"%s\"?" msgstr "Wollen Sie die Chronik wirklich leeren?" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-util.c:127 #: src/ui/gpaste-ui-history.c:153 src/ui/gpaste-ui-history.c:428 #: src/ui/gpaste-ui-panel.c:517 msgid "Empty" msgstr "Leeren" #: src/ui/gpaste-ui.c:47 msgid "Clipboard management system" msgstr "" #: src/ui/gpaste-ui-delete-item.c:46 src/ui/gpaste-ui-panel.c:358 #: src/ui/gpaste-ui-panel.c:518 msgid "Delete" msgstr "Löschen" #: src/ui/gpaste-ui-edit-item.c:85 src/ui/gpaste-ui-edit-item.c:139 msgid "Edit" msgstr "Bearbeiten" #: src/ui/gpaste-ui-history.c:266 #, fuzzy msgid "No Results" msgstr "(Kein Ergebnis)" #: src/ui/gpaste-ui-new-item.c:67 msgid "Add new item" msgstr "" #: src/ui/gpaste-ui-new-item.c:100 msgid "New item" msgstr "" #: src/ui/gpaste-ui-panel.c:307 msgid "Under which name do you want to backup this history?" msgstr "Unter welchem Namen wollen Sie diese Chronik absichern?" #: src/ui/gpaste-ui-panel.c:311 src/ui/gpaste-ui-panel.c:516 msgid "Backup" msgstr "Backup" #. Translators: %s is the name of the history being deleted. #: src/ui/gpaste-ui-panel.c:357 #, fuzzy, c-format msgid "Are you sure you want to delete \"%s\"?" msgstr "Wollen Sie diese Chronik wirklich löschen?" #: src/ui/gpaste-ui-panel.c:441 #, fuzzy msgid "Switch to history" msgstr "Zu einer anderen Chronik wechseln" #: src/ui/gpaste-ui-panel.c:448 msgid "Switch to" msgstr "Wechseln zu" #: src/ui/gpaste-ui-reexec.c:45 msgid "Restart" msgstr "Neustart" #: src/ui/gpaste-ui-reexec.c:45 msgid "Do you really want to restart the daemon?" msgstr "Wollen Sie den Daemon wirklich neu starten?" #: src/ui/gpaste-ui-reexec.c:70 msgid "Restart the daemon" msgstr "Den Daemon neu starten" #: src/ui/gpaste-ui-search.c:23 msgid "Search" msgstr "Suchen" #: src/ui/gpaste-ui-settings.c:35 msgid "GPaste Settings" msgstr "GPaste-Einstellungen" #: src/ui/gpaste-ui-shortcuts-window.c:21 msgid "General" msgstr "Allgemein" #: src/ui/gpaste-ui-switch.c:68 msgid "Stop" msgstr "Aufhören" #: src/ui/gpaste-ui-switch.c:68 msgid "Do you really want to stop tracking clipboard changes?" msgstr "" "Wollen Sie wirklich aufhören, Änderungen in der Zwischenablage zu verfolgen?" #: src/ui/gpaste-ui-upload-item.c:46 msgid "Upload" msgstr "Hochladen" #: src/ui/gpaste-ui-window.c:303 msgid "Quit" msgstr "Beenden" #: src/ui/gpaste-ui-window.c:380 #, fuzzy msgid "Histories" msgstr "Zugang zur Chronik" #: src/ui/gpaste-ui-window.c:381 #, fuzzy msgid "History" msgstr "Zugang zur Chronik" #~ msgid "is already running." #~ msgstr "läuft bereits." #~ msgid "Open UI window centered" #~ msgstr "UI-Fenster zentriert öffnen" #~ msgid "New" #~ msgstr "Neu" #, fuzzy #~ msgid "Keyboard Shortcuts" #~ msgstr "Tastaturkürzel" #~ msgid "number" #~ msgstr "Nummer" #~ msgid "delete th item of the history" #~ msgstr "Lösche den ten Eintrag aus der Chronik" #, fuzzy #~ msgid "upload the th item to a pastebin service" #~ msgstr "Lösche den ten Eintrag aus der Chronik" #~ msgid "launch the applet" #~ msgstr "Applet starten" #, fuzzy #~ msgid "launch the unity application indicator" #~ msgstr "Konfigurationswerkzeug starten" #~ msgid "GPaste Applet" #~ msgstr "GPaste-Applet" #~ msgid "Tray icon to manage GPaste" #~ msgstr "Icon im Benachrichtigungsfeld um GPaste zu konfigurieren" #~ msgid "" #~ "GPaste provides you with an applet, in the form of a status icon which " #~ "will give you access to your history in your tray area." #~ msgstr "" #~ "GPaste stellt ein Applet in Form eines Status-Icons bereit, das Zugriff " #~ "auf die Chronik im Benachrichtigungsfeld ermöglicht." #, fuzzy #~ msgid "GPaste AppIndicator" #~ msgstr "GPaste-Applet" #, fuzzy #~ msgid "Unity application indicator to manage GPaste" #~ msgstr "Icon im Benachrichtigungsfeld um GPaste zu konfigurieren" #~ msgid "" #~ "GPaste provides you with an application indicator for unity which will " #~ "give you access to your history in your indicator area." #~ msgstr "" #~ "GPaste stellt einen Applikations-Indikator für Unity bereit, der Zugriff " #~ "auf die Chronik im Indikator-Feld ermöglicht." #, fuzzy #~ msgid "The AppIndicator menu" #~ msgstr "GPaste-Applet" #~ msgid "Max displayed history size: " #~ msgstr "Anzahl der anzuzeigenden Einträge:" #~ msgid "Max history size: " #~ msgstr "Maximale Größe der Chronik:" #~ msgid "Max memory usage (MB): " #~ msgstr "Maximaler Speicherverbrauch (MB):" #~ msgid "Backup history as: " #~ msgstr "Aktuelle Chronik sichern als:" #~ msgid "Ok" #~ msgstr "OK" #~ msgid "Could not register DBus service." #~ msgstr "DBus-Service konnte nicht registriert werden." #, fuzzy #~ msgid "Manage GPaste" #~ msgstr "GPaste-Daemon-Einstellungen" #~ msgid "GPaste daemon settings" #~ msgstr "GPaste-Daemon-Einstellungen" #~ msgid "" #~ "GPaste provides you with a settings utility allowing you to customize its " #~ "behaviour as expected." #~ msgstr "" #~ "GPaste stellt ein Einstellungswerkzeug bereit, das es ermöglicht sein " #~ "Verhalten nach den eigenen Vorstellungen anzupassen." #~ msgid "Manage the GPaste daemon settings" #~ msgstr "GPaste-Daemon-Einstellungen" #, fuzzy #~ msgid "Stop tracking changes" #~ msgstr "Stoppt die Verfolgung von Änderungen an der Zwischenablage" #, fuzzy #~ msgid "print the history without newlines" #~ msgstr "Chronik mit Index anzeigen" #, fuzzy #~ msgid "print the history (raw) without indexes" #~ msgstr "Chronik ohne Index anzeigen" #~ msgid "print the history with NUL as separator" #~ msgstr "Zeige Chronik mit NUL als Trennzeichen" #, fuzzy #~ msgid "get the th item from the history (raw)" #~ msgstr "Hole den ten Eintrag aus der Chronik" #~ msgid "Couldn't spawn gpaste-app-indicator.\n" #~ msgstr "GPaste-Applet konnte nicht gestartet werden.\n" Keruspe-GPaste-724def1/po/es.po000066400000000000000000001621141521206431300163160ustar00rootroot00000000000000# Spanish translations for GPaste package. # Copyright (C) 2011-2015 Listed translators # This file is distributed under the same license as the GPaste package. # Antonio Trujillo , 2011. # msgid "" msgstr "" "Project-Id-Version: GPaste\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-06-09 21:21+0200\n" "PO-Revision-Date: 2026-03-12 11:09+0000\n" "Last-Translator: Lucas Vieites \n" "Language-Team: Spanish \n" "Language: es\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: Weblate 5.17-dev\n" #: data/control-center/42-gpaste.control-center.xml.in:2 msgid "@GETTEXT_PACKAGE@" msgstr "@GETTEXT_PACKAGE@" #: data/control-center/42-gpaste.control-center.xml.in:3 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:136 #: src/ui/gpaste-ui-shortcuts-window.c:24 msgid "Launch the graphical tool" msgstr "Iniciar la herramienta gráfica" #: data/control-center/42-gpaste.control-center.xml.in:4 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:153 #: src/ui/gpaste-ui-shortcuts-window.c:25 msgid "Mark the active item as being a password" msgstr "Marca elemento activo como contraseña" #: data/control-center/42-gpaste.control-center.xml.in:5 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:167 #: src/ui/gpaste-ui-shortcuts-window.c:23 msgid "Delete the active item from history" msgstr "Eliminar el elemento activo del histórico" #: data/control-center/42-gpaste.control-center.xml.in:6 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:143 #: src/ui/gpaste-ui-shortcuts-window.c:26 msgid "Display the history" msgstr "Mostrar el histórico" #: data/control-center/42-gpaste.control-center.xml.in:7 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:177 #: src/ui/gpaste-ui-shortcuts-window.c:27 msgid "Sync the clipboard to the primary selection" msgstr "Sincronizar portapapeles con la selección principal" #: data/control-center/42-gpaste.control-center.xml.in:8 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:184 #: src/ui/gpaste-ui-shortcuts-window.c:28 msgid "Sync the primary selection to the clipboard" msgstr "Sincronizar selección principal con el portapapeles" #: data/control-center/42-gpaste.control-center.xml.in:9 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:160 #: src/ui/gpaste-ui-shortcuts-window.c:29 msgid "Upload the active item to a pastebin service" msgstr "Cargar el elemento activo en un servicio «pastebin»" #: data/desktop/org.gnome.GPaste.Daemon.desktop.in.in:3 #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:3 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:6 msgid "GPaste" msgstr "GPaste" #: data/desktop/org.gnome.GPaste.Preferences.desktop.in.in:3 msgid "GPaste Preferences" msgstr "Ajustes de GPaste" #: data/desktop/org.gnome.GPaste.Preferences.desktop.in.in:4 msgid "Manage your GPaste preferences" msgstr "Gestionar los ajustes de GPaste" #: data/desktop/org.gnome.GPaste.Preferences.desktop.in.in:5 #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:6 msgid "Clipboard;Manager;Settings;Preferences;Configuration;" msgstr "Portapapeles;Gestor;Configuración;Preferencias;Parámetros;" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:4 #, fuzzy msgid "Clipboard Manager" msgstr "Seguimiento de cambios en el portapapeles" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:5 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:7 msgid "Manage your clipboard history" msgstr "Gestione el histórico de su portapapeles" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:16 #, fuzzy msgid "Preferences" msgstr "Ajustes de GPaste" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:20 #: src/gnome-shell/aboutItem.js:13 src/ui/gpaste-ui-about.c:38 msgid "About" msgstr "Acerca de" #: data/gsettings/org.gnome.GPaste.gschema.xml:7 msgid "Max size of an element when displaying it" msgstr "Tamaño máximo de un elemento al mostrarlo" #: data/gsettings/org.gnome.GPaste.gschema.xml:8 msgid "" "The extra stuff of that element will be replaced by \"…\", and newlines by " "\" \" when displaying from the applet, 0 to disable." msgstr "" "La parte sobrante del elemento se reemplazará por \"…\",y los saltos de " "línea por \" \" cuando se muestren en el applet,0 para desactivar." #: data/gsettings/org.gnome.GPaste.gschema.xml:15 msgid "Do we detect and replace growing lines in history?" msgstr "" "¿Cómo se detectan y sustituyen los renglones crecientes en el histórico?" #: data/gsettings/org.gnome.GPaste.gschema.xml:16 msgid "" "By default, selecting \"Here is\", then \"Here is an example\" will create " "two entries in the history. With this feature enabled, the first one will be " "replaced by the second one." msgstr "" "Por defecto, al seleccionar \"Aquí está\" y luego \"Aquí hay un ejemplo\" se " "crearán dos entradas en el historial. Con esta la función activada, la " "primera será sustituida por la segunda." #: data/gsettings/org.gnome.GPaste.gschema.xml:24 msgid "The name of the current history" msgstr "El nombre del histórico actual" #: data/gsettings/org.gnome.GPaste.gschema.xml:25 msgid "The default name is \"history\"" msgstr "El nombre por omision es \"history\"" #: data/gsettings/org.gnome.GPaste.gschema.xml:32 msgid "Do we save the images copied to history, or only text?" msgstr "¿Guardamos las imágenes copiadas en el historial, o sólo el texto?" #: data/gsettings/org.gnome.GPaste.gschema.xml:33 msgid "By default, we're saving only text" msgstr "De manera predeterminada se guarda solo el texto" #: data/gsettings/org.gnome.GPaste.gschema.xml:40 msgid "Show image previews in the history?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:41 msgid "By default, we show previews of images in the history" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:49 msgid "Size of image previews in pixels" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:50 msgid "Default size is 100 pixels" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:57 msgid "Do we close the UI after selecting an item?" msgstr "¿Se debe cerrar la interfaz luego de seleccionar un elemento?" #: data/gsettings/org.gnome.GPaste.gschema.xml:58 msgid "By default, we close it" msgstr "De manera predeterminada se cierra" #: data/gsettings/org.gnome.GPaste.gschema.xml:65 msgid "Do we open the UI window centered?" msgstr "¿Abrimos la ventana UI centrada?" #: data/gsettings/org.gnome.GPaste.gschema.xml:66 msgid "By default, we open it where the mouse cursor is" msgstr "Por defecto, lo abrimos donde está el cursor del ratón" #: data/gsettings/org.gnome.GPaste.gschema.xml:73 msgid "The keyboard shortcut to launch the graphical interface" msgstr "El atajo de teclado para iniciar la interfaz gráfica" #: data/gsettings/org.gnome.GPaste.gschema.xml:74 msgid "" "By default, hitting ctrl + alt + g does that (\"G\"). An empty " "string here disables this functionnality." msgstr "" "De manera predeterminada, oprimir Ctrl + Alt + G lo hace («G»). " "Una cadena vacía desactivaría esta funcionalidad." #: data/gsettings/org.gnome.GPaste.gschema.xml:82 msgid "The keyboard shortcut to mark the active item as being a password" msgstr "El atajo de teclado para marcar el elemento activo como contraseña" #: data/gsettings/org.gnome.GPaste.gschema.xml:83 msgid "" "By default, hitting ctrl + alt + s will mark the active item as being a " "password (\"S\"). An empty string here disables this " "functionnality." msgstr "" "Por defecto, pulsar ctrl + alt + s marcará el elemento activo como una " "contraseña (\"S\"). Una cadena vacía desactiva esta funcionalidad." #: data/gsettings/org.gnome.GPaste.gschema.xml:92 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:146 msgid "Max displayed history size" msgstr "Tamaño máximo al mostrar" #: data/gsettings/org.gnome.GPaste.gschema.xml:93 msgid "Maximum number of items displayed in the history" msgstr "Número máximo de elementos mostrados en el historial" #: data/gsettings/org.gnome.GPaste.gschema.xml:101 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:105 msgid "Max history size" msgstr "Tamaño máximo del historial" #: data/gsettings/org.gnome.GPaste.gschema.xml:102 msgid "Maximum number of items in history" msgstr "Número máximo de elementos en el historial" #: data/gsettings/org.gnome.GPaste.gschema.xml:110 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:112 msgid "Max memory usage (MB)" msgstr "Uso de memoria máximo (MB)" #: data/gsettings/org.gnome.GPaste.gschema.xml:111 msgid "Maximum amount of memory used to store contents" msgstr "Cantidad máxima de memoria utilizada para almacenar contenido" #: data/gsettings/org.gnome.GPaste.gschema.xml:119 msgid "Max text item size" msgstr "Tamaño máximo de los elementos de texto" #: data/gsettings/org.gnome.GPaste.gschema.xml:120 msgid "Maximum size of a text item. Anything out of this boundary is ignored." msgstr "" "Tamaño máxmimo de los elementos de texto. Se ignora lo que sobrepase este " "límite." #: data/gsettings/org.gnome.GPaste.gschema.xml:128 msgid "Min text item size" msgstr "Tamaño mínimo de los elementos de texto" #: data/gsettings/org.gnome.GPaste.gschema.xml:129 msgid "Minimum size of a text item. Anything out of this boundary is ignored." msgstr "" "Tamaño mínimo de los elementos de texto. Se ignora lo que no llegue a este " "límite." #: data/gsettings/org.gnome.GPaste.gschema.xml:136 msgid "The keyboard shortcut to delete the first element in history" msgstr "Atajo de teclado para eliminar la primera entrada del historial" #: data/gsettings/org.gnome.GPaste.gschema.xml:137 msgid "" "By default, hitting ctrl + alt + v does that (\"V\"). An empty " "string here disables this functionnality." msgstr "" "Por defecto, pulsar ctrl + alt + v hace eso (\"V\"). Una cadena " "vacía desactiva esta funcionalidad." #: data/gsettings/org.gnome.GPaste.gschema.xml:145 msgid "Does the primary selection affects history?" msgstr "¿Afecta la selección principal al historial?" #: data/gsettings/org.gnome.GPaste.gschema.xml:146 msgid "By default, only clipboard (ctrl+c) affects history." msgstr "Por omisión, solo el portapapeles (ctrl+c) afecta al historial." #: data/gsettings/org.gnome.GPaste.gschema.xml:153 msgid "" "Do we save all versions of selected rich text (e.g. html) or just the plain " "text version?" msgstr "" "¿Guardamos todas las versiones del texto enriquecido seleccionado (por " "ejemplo, html) o sólo la versión de texto sin formato?" #: data/gsettings/org.gnome.GPaste.gschema.xml:154 msgid "By default, we're saving all" msgstr "Por defecto, guardamos todos los" #: data/gsettings/org.gnome.GPaste.gschema.xml:161 msgid "Do we save the history from one session to another?" msgstr "¿Se guarda el historial de una sesión a otra?" #: data/gsettings/org.gnome.GPaste.gschema.xml:162 msgid "By default, we're saving it" msgstr "Por omisión se guarda" #: data/gsettings/org.gnome.GPaste.gschema.xml:169 msgid "The keyboard shortcut to display the menu" msgstr "Atajo de teclado para mostrar el menú" #: data/gsettings/org.gnome.GPaste.gschema.xml:170 msgid "" "By default, hitting ctrl + alt + h displays the menu (\"H\"). An " "empty string here disables this functionnality." msgstr "" "Por defecto, al pulsar ctrl + alt + h se muestra el menú (\"H\"). " "Una cadena vacía desactiva esta funcionalidad." #: data/gsettings/org.gnome.GPaste.gschema.xml:178 msgid "The keyboard shortcut to sync the clipboard to the primary selection" msgstr "" "El atajo de teclado para sincronizar el portapapeles con la selección " "primaria" #: data/gsettings/org.gnome.GPaste.gschema.xml:179 msgid "" "By default, hitting ctrl + alt + o syncs them (\"P\"). An empty " "string here disables this functionnality." msgstr "" "De manera predeterminada, presionar Ctrl + Alt + O los sincroniza " "(«P»). Una cadena vacía aquí desactiva esta funcionalidad." #: data/gsettings/org.gnome.GPaste.gschema.xml:187 msgid "The keyboard shortcut to sync the primary selection to the clipboard" msgstr "" "El atajo de teclado para sincronizar la selección primaria con el " "portapapeles" #: data/gsettings/org.gnome.GPaste.gschema.xml:188 msgid "" "By default, hitting ctrl + alt + p syncs them (\"P\"). An empty " "string here disables this functionnality." msgstr "" "Por defecto, pulsando ctrl + alt + p se sincronizan (\"P\"). Una " "cadena vacía desactiva esta funcionalidad." #: data/gsettings/org.gnome.GPaste.gschema.xml:196 msgid "Are the primary selection and the clipboard synchronized?" msgstr "¿Están sincronizadas la selección principal y el portapapeles?" #: data/gsettings/org.gnome.GPaste.gschema.xml:197 msgid "By default, the primary selection and the clipboard are independent." msgstr "" "Por omisión, la selección principal y el portapapeles son independientes." #: data/gsettings/org.gnome.GPaste.gschema.xml:204 msgid "Do we track the clipboard changes?" msgstr "¿Seguir los cambios en el portapapeles?" #: data/gsettings/org.gnome.GPaste.gschema.xml:205 msgid "By default, we're tracking those changes." msgstr "Por omisión, se siguen esos cambios." #: data/gsettings/org.gnome.GPaste.gschema.xml:212 msgid "" "Do we sync the daemon state with the gnome-shell extension's one? (disable " "the daemon when disabling the extension)" msgstr "" "¿Sincronizar el estado del servicio con el de la extension? (deshabilitarel " "servicio cuando se deshabilite la extension)" #: data/gsettings/org.gnome.GPaste.gschema.xml:213 msgid "By default, the daemon state keeps unchanged" msgstr "" "De manera predeterminada, el estado del demonio se mantiene sin cambios" #: data/gsettings/org.gnome.GPaste.gschema.xml:220 msgid "Do we trim the textual items before adding them to history?" msgstr "¿Se recortan las entradas de texto antes de agregarlas al historial?" #: data/gsettings/org.gnome.GPaste.gschema.xml:221 msgid "" "Trimming means removing all trailing and ending spaces. By default, we're " "letting them as-is." msgstr "" "Recortar significa eliminar todos los espacios al principio y al final. Por " "defecto se dejan como están." #: data/gsettings/org.gnome.GPaste.gschema.xml:229 msgid "" "The keyboard shortcut to upload the first element in history to a pastebin " "service" msgstr "" "El método abreviado de teclado para cargar el primer elemento del historial " "en un servicio de Pastebin" #: data/gsettings/org.gnome.GPaste.gschema.xml:230 msgid "" "By default, hitting ctrl + alt + u does that (\"U\"). An empty " "string here disables this functionnality." msgstr "" "Por defecto, pulsar ctrl + alt + u hace eso (\"U\"). Una cadena " "vacía desactiva esta funcionalidad." #: data/gsettings/org.gnome.GPaste.gschema.xml:238 msgid "Do we prompt for confirmation when emptying a history?" msgstr "¿Quiere que se solicite confirmación al vaciar un histórico?" #: data/gsettings/org.gnome.GPaste.gschema.xml:239 msgid "By default, we do as it's a destructive action" msgstr "De manera predeterminada se hace, dado que es una acción destructiva" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:9 msgid "Marc-Antoine Perennou" msgstr "Marc-Antoine Perennou" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:17 msgid "" "GPaste is a clipboard managing system allowing you to track and manage your " "clipboard history in a highly customizable way." msgstr "" "GPaste es un sistema de gestión del portapapeles que le permite dar " "seguimiento al histórico del portapapeles de una manera altamente " "personalizable." #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:20 msgid "" "GPaste provides you with a graphical tool allowing you to manage everything " "easily." msgstr "" "GPaste le brinda una herramienta gráfica para gestionarlo todo de manera " "sencilla." #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:27 msgid "The main UI" msgstr "La interfaz principal" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:31 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:35 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:39 msgid "The settings UI" msgstr "La interfaz de configuración" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:51 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:78 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:90 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:100 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:120 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:133 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:143 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:152 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:161 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:180 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:197 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:205 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:213 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:231 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:239 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:247 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:255 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:263 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:287 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:295 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:303 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:311 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:319 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:327 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:335 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:343 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:352 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:361 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:379 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:387 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:395 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:403 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:421 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:429 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:438 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:447 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:456 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:464 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:485 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:493 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:501 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:509 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:517 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:533 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:541 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:549 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:557 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:573 msgid "This is a maintenance release. Changes:" msgstr "Esta es una versión de mantenimiento. Cambios:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:53 msgid "Fix building without the GNOME Shell extension (-Dgnome-shell=false)" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:54 msgid "" "Restore GTK deprecation version-gating and drop the unused build-time gjs " "dependency" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:55 msgid "Target GNOME Shell 50 in the extension" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:56 msgid "Bump the library soversions to reflect the API/ABI changes since 45.8" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:62 msgid "" "This is a major release porting GPaste to GTK 4 and libadwaita. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:64 msgid "Port the daemon, history UI and preferences to GTK 4 and libadwaita" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:65 msgid "Show image thumbnails in the history, with configurable preview size" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:66 msgid "" "Support global keyboard shortcuts on Wayland through the XDG GlobalShortcuts " "portal" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:67 msgid "Recognise copied colours as dedicated colour items" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:68 msgid "" "Give keybindings human-readable descriptions and install a daemon desktop " "file" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:69 msgid "Fix images sometimes being repeatedly re-added to the history" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:70 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:81 msgid "" "Fix keyboard shortcuts not triggering when NumLock and CapsLock are both " "active" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:71 msgid "" "Fix several crashes (search provider, UI lifetime, GNOME Shell extension) " "and memory leaks" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:72 msgid "Modernise the GNOME Shell extension to current conventions" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:80 msgid "Fix use-after-free crash in the GNOME Shell search provider" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:82 msgid "" "Fix memory leaks when re-copying history items and when rebinding shortcuts" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:83 msgid "Fix potential crash when enforcing a very small history size" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:84 msgid "Build: ship the GSettings schema as a static file" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:92 msgid "" "GNOME Shell extension now retries the daemon connection before giving up" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:93 msgid "Fix test crash when GrabAccelerators is not allowed" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:94 msgid "Build: simplify gsettings compilation for tests" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:102 msgid "Fix GC crash and signal leak when disabling the GNOME Shell extension" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:103 msgid "GNOME Shell extension now handles daemon connection failure gracefully" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:104 #, fuzzy msgid "Fix crash when a history item has no value yet" msgstr "arreglar el fallo cuando aún no hay historial" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:105 msgid "Fix image files not being deleted when history items are removed" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:106 msgid "Fix image files stored in wrong directory" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:107 #, fuzzy msgid "Fix keyboard focus being stolen by history items on hover" msgstr "" "Se corrigió un error que provocaba que el historial tuviera un solo elemento" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:108 msgid "" "Fix key events incorrectly forwarded to search when another entry has focus" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:109 msgid "Fix signal loop when updating shortcut entries from settings" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:110 msgid "Fix default history item count not reset after history deletion" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:111 msgid "Enforce minimum window size to prevent unresizable state" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:112 msgid "Add descriptive tooltips for settings entries" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:113 msgid "Build: explicitly link libgpaste libraries against libc" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:114 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:127 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:137 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:146 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:155 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:164 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:174 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:225 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:267 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:281 msgid "Translations updates" msgstr "Traducciones actualizadas" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:122 msgid "" "Fix infinite Pango assertion loop that could fill disk when clipboard " "content contained tab characters" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:123 msgid "Various bug fixes and memory management improvements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:124 msgid "Daemon improvements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:125 msgid "GNOME Shell extension improvements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:126 #, fuzzy msgid "GLib >= 2.76 is now required" msgstr "Ahora se requiere gcr 4" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:135 #, fuzzy msgid "Support for gnome 50" msgstr "Admite gnome 48" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:136 #, fuzzy msgid "Support for gnome 49" msgstr "Admite gnome 48" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:145 msgid "Support for gnome 48" msgstr "Admite gnome 48" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:154 msgid "Support for gnome 47" msgstr "Admite gnome 47" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:163 msgid "Support for gnome 46" msgstr "Admite gnome 46" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:170 msgid "Stable release for GNOME 45. Changes:" msgstr "Versión estable para GNOME 45. Cambios:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:172 msgid "Port to gnome 45" msgstr "Migrado a gnome 45" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:173 msgid "Add setting to open ui window centered" msgstr "" "Agregar la configuración para abrir la ventana de la interfaz de usuario " "centrada" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:182 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:199 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:233 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:289 msgid "Fix a bug leading to history with only one item" msgstr "" "Se corrigió un error que provocaba que el historial tuviera un solo elemento" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:188 msgid "First release for GNOME 44. Changes:" msgstr "Primera versión para GNOME 44. Cambios:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:190 msgid "gcr 4 is now required" msgstr "Ahora se requiere gcr 4" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:191 msgid "Port to gnome 44" msgstr "Migrado a gnome 44" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:207 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:241 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:297 msgid "Avoid crash under heavy memory load" msgstr "Evite los fallos con la memoria sometida a una gran carga de trabajo" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:215 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:249 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:305 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:381 msgid "Respect --use-index when displaying history" msgstr "Respetar --use-index al mostrar el historial" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:221 msgid "First release for GNOME 43. Changes:" msgstr "Primera versión para GNOME 43. Cambios:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:223 msgid "Port to GNOME 43" msgstr "Portar a GNOME 43" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:224 msgid "Internal preparation for gtk4 port" msgstr "Preparación interna para el puerto gtk4" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:257 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:313 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:389 msgid "Open GPaste UI where the mouse pointer is" msgstr "Abrir GPaste UI donde está el puntero del ratón" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:265 msgid "Fixes to the new preferences tool" msgstr "Correcciones en la nueva herramienta de preferencias" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:266 msgid "Style fixes" msgstr "Correcciones del estilo" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:273 msgid "First release for GNOME 42. Changes:" msgstr "Primera versión para GNOME 42. Cambios:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:275 msgid "" "Old libgpaste replaced by a new minimal libgpaste-2 with no gtk dependency" msgstr "" "El antiguo libgpaste reemplazado por un nuevo libgpaste-2 mínimo sin " "dependencia de gtk" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:276 msgid "New libgpaste-gtk3 for utils and settings ui" msgstr "" "Nuevo libgpaste-gtk3 para utilidades y configuración de la interfaz de " "usuario" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:277 msgid "New libgpaste-gtk4 for utils and preferences ui" msgstr "" "Nuevo libgpaste-gtk4 para utilidades y preferencias de la interfaz de usuario" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:278 msgid "New gtk4 based gpaste-preferences utility" msgstr "Nueva utilidad de preferencias gpaste basada en gtk4" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:279 msgid "Autotools are no longer supported" msgstr "Las herramientas automáticas ya no son compatibles" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:280 msgid "Extension updated for gnome-shell 42" msgstr "Extensión actualizada para gnome-shell 42" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:321 msgid "fix the storage path for meson builds" msgstr "Arreglar la ruta de almacenamiento para las compilaciones de Meson" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:329 msgid "fix some race conditions in history handling" msgstr "" "Correcciones a algunas condiciones de carrera en el historial de manejo" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:337 msgid "better fix crash when there is no history yet" msgstr "Mejor solución para el error cuando aún no hay historial" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:345 msgid "fix crash when there is no history yet" msgstr "arreglar el fallo cuando aún no hay historial" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:346 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:355 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:364 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:373 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:397 msgid "translations update" msgstr "actualización de traducciones" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:354 msgid "fix gnome-shell exntesion when the daemon restarts" msgstr "arreglar la extensión de gnome-shell cuando se reinicia el demonio" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:363 msgid "Fix keybindings for wayland" msgstr "Se arregla la captación de los vínculos de teclado para wayland" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:370 msgid "First release for GNOME 41. Changes:" msgstr "Primera versión para GNOME 41. Cambios:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:372 msgid "port to gnome-shell 41" msgstr "Migrado a gnome-shell 41" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:405 msgid "fix a crash in memory usage checking" msgstr "corrige un cierre inesperado durante la comprobación de uso de memoria" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:412 msgid "First release for GNOME 40. Changes:" msgstr "Primera versión para GNOME 40. Cambios:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:414 msgid "port to gnome-shell 40" msgstr "Port a gnome-shell 40" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:415 msgid "placeholder for gnome-shell prefs" msgstr "marcador de posición para las preferencias de gnome-shell" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:423 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:487 msgid "fix X11 keybinder outside of GNOME" msgstr "Arreglar los atajos de X11 fuera de GNOME" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:431 msgid "better handling and reporting of invalid uuids passed to gpaste-client" msgstr "mejor gestión e informe de uuids inválidos pasados a gpaste-client" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:432 msgid "" "gpaste-client now has a --use-index argument for several subcommands to use " "index instead of uuid" msgstr "" "gpaste-client tiene ahora un argumento --use-index para que varios " "subcomandos utilicen index en lugar de uuid" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:440 msgid "fix the make-password keybinding" msgstr "arreglado el enlace de makepassword" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:441 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:450 msgid "updated translations" msgstr "traducciones actualizadas" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:449 msgid "gnome-shell extension warning fixes" msgstr "arreglos de avisos en la extensión para gnome-shell" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:458 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:495 msgid "gnome-shell extension cosmetic updates" msgstr "actualizaciones superficiales a la extensión para gnome-shell" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:466 msgid "Disable images support by default (can be reenabled in preferences)" msgstr "" "Se desactiva la compatibilidad con imágenes de manera predeterminada (puede " "reactivarse en la configuración)" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:467 msgid "Search now includes passwords (using their names)" msgstr "La búsqueda ahora incluye contraseñas (utilizando sus nombres)" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:468 msgid "systemd integration enhancements" msgstr "Mejoras en la integración con systemd" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:474 msgid "First release for GNOME 3.38. Changes:" msgstr "Primera versión para GNOME 3.38. Cambios:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:476 msgid "Drop the Tracking DBus signal" msgstr "Se desecha la señal Tracking de DBus" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:477 msgid "Switch to uuids to identify items" msgstr "Cambio a uuids para identificar elementos" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:478 msgid "Bump DBus interface to org.gnome.GPaste2" msgstr "Se actualiza la interfaz de DBus a org.gnome.GPaste2" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:479 msgid "Update to gnome-shell 3.38.0" msgstr "Actualización a gnome-shell 3.38.0" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:503 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:535 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:577 msgid "Fix activating items using Ctrl-Number in gnome-shell" msgstr "Se corrige la activación de elementos con Ctrl+número en gnome-shell" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:511 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:543 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:576 msgid "Fix keybinding regrab with gnome-shell" msgstr "Se arregla la recaptación de los vínculos de teclado en gnome-shell" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:519 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:551 msgid "Fix keybinding grab with gnome-shell" msgstr "Se arregla la captación de los vínculos de teclado en gnome-shell" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:525 msgid "First release for GNOME 3.36. Changes:" msgstr "Primera versión para GNOME 3.36. Cambios:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:527 msgid "Update to gnome-shell 3.36.0" msgstr "Actualización a gnome-shell 3.36.0" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:559 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:575 msgid "Compatibility with recent appstream-glib" msgstr "Compatibilidad con appstream-glib recientes" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:565 msgid "First release for GNOME 3.34. Changes:" msgstr "Primera versión para GNOME 3.34. Cambios:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:567 msgid "Update to gnome-shell 3.34.0" msgstr "Actualización a gnome-shell 3.34.0" #: src/client/gpaste-client.c:146 msgid "Couldn't spawn" msgstr "No se pudo generar" #: src/client/gpaste-client.c:158 #, c-format msgid "Usage:\n" msgstr "Utilización:\n" #. Translators: help for gpaste history #: src/client/gpaste-client.c:160 msgid "print the history with UUIDs" msgstr "mostrar el histórico con UUID" #. Translators: help for gpaste history-size #: src/client/gpaste-client.c:162 msgid "print the size of the history" msgstr "mostrar el tamaño del histórico" #. Translators: help for gpaste get-history #: src/client/gpaste-client.c:164 msgid "get the name of the current history" msgstr "obtener el nombre del histórico actual" #. Translators: help for gpaste backup-history #. Translators: help for gpaste switch-history #. Translators: help for gpaste delete-history #. Translators: help for gpaste add-password #. Translators: help for gpaste set-password #. Translators: help for gpaste delete-passworf #: src/client/gpaste-client.c:166 src/client/gpaste-client.c:168 #: src/client/gpaste-client.c:170 src/client/gpaste-client.c:176 #: src/client/gpaste-client.c:188 src/client/gpaste-client.c:192 msgid "name" msgstr "nombre" #: src/client/gpaste-client.c:166 msgid "backup current history" msgstr "hacer copia de respaldo del histórico actual" #: src/client/gpaste-client.c:168 msgid "switch to another history" msgstr "cambiar a otro histórico" #: src/client/gpaste-client.c:170 msgid "delete a history" msgstr "eliminar un histórico" #. Translators: help for gpaste list-histories #: src/client/gpaste-client.c:172 msgid "list available histories" msgstr "enumerar los históricos disponibles" #. Translators: help for gpaste add #: src/client/gpaste-client.c:174 msgid "text" msgstr "texto" #: src/client/gpaste-client.c:174 msgid "set text to clipboard" msgstr "enviar texto al portapapeles" #: src/client/gpaste-client.c:176 msgid "password" msgstr "contraseña" #: src/client/gpaste-client.c:176 msgid "add the name - password couple to the clipboard" msgstr "añadir el par nombre-contraseña al portapapeles" #. Translators: help for gpaste rename-password #: src/client/gpaste-client.c:178 msgid "old name" msgstr "nombre anterior" #: src/client/gpaste-client.c:178 msgid "new name" msgstr "nombre nuevo" #: src/client/gpaste-client.c:178 msgid "rename the password" msgstr "cambiar el nombre de la contraseña" #. Translators: help for gpaste get #: src/client/gpaste-client.c:180 msgid "get the item from the history" msgstr "obtener el elemento del histórico" #. Translators: help for gpaste select #: src/client/gpaste-client.c:182 msgid "set the item from the history to the clipboard" msgstr "establecer el elemento del historial en el portapapeles" #. Translators: help for gpaste replace #: src/client/gpaste-client.c:184 msgid "contents" msgstr "contenidos" #: src/client/gpaste-client.c:184 msgid "" "replace the contents of the item from the history with the provided " "one" msgstr "" "reemplazar el contenido del elemento del historial por el " "proporcionado" #. Translators: help for gpaste merge #: src/client/gpaste-client.c:186 msgid "" "merge the items matching the UUIDs from the history and put the result in " "the clipboard" msgstr "" "fusionar los elementos que coincidan con los UUID del historial y poner el " "resultado en el portapapeles" #: src/client/gpaste-client.c:188 msgid "set the item from the history as a password named " msgstr "" "establecer el elemento del historial como una contraseña llamada " "" #. Translators: help for gpaste delete #: src/client/gpaste-client.c:190 msgid "delete item from the history" msgstr "eliminar el elemento del historial" #: src/client/gpaste-client.c:192 msgid "delete the password from the history" msgstr "eliminar la contraseña del historial" #. Translators: help for gpaste file #: src/client/gpaste-client.c:194 msgid "path" msgstr "ruta" #: src/client/gpaste-client.c:194 msgid "put the content of the file at into the clipboard" msgstr "Copiar el contenido del portapapeles en " #. Translators: help for whatever | gpaste #: src/client/gpaste-client.c:196 msgid "whatever" msgstr "loquesea" #: src/client/gpaste-client.c:196 msgid "set the output of whatever to clipboard" msgstr "enviar la salida de al portapapeles" #. Translators: help for gpaste empty #: src/client/gpaste-client.c:198 msgid "empty the history" msgstr "vaciar el historial" #. Translators: help for gpaste start #: src/client/gpaste-client.c:200 msgid "start tracking clipboard changes" msgstr "iniciar seguimiento de cambios en el portapapeles" #. Translators: help for gpaste stop #: src/client/gpaste-client.c:202 msgid "stop tracking clipboard changes" msgstr "detener seguimiento de cambios en el portapapeles" #. Translators: help for gpaste quit #: src/client/gpaste-client.c:204 msgid "alias for stop" msgstr "quit: alias de stop" #. Translators: help for gpaste daemon-reexec #: src/client/gpaste-client.c:206 msgid "reexecute the daemon (after upgrading...)" msgstr "vuelva a ejecutar el servicio (después de actualizar...)" #. Translators: help for gpaste preferences #: src/client/gpaste-client.c:208 msgid "launch the configuration tool" msgstr "iniciar la herramienta de configuración" #. Translators: help for gpaste ui #: src/client/gpaste-client.c:210 msgid "launch the graphical tool" msgstr "iniciar la herramienta gráfica" #. Translators: help for gpaste show-history #: src/client/gpaste-client.c:212 msgid "make the applet or extension display the history" msgstr "hacer que el applet o extensión muestre el historial" #. Translators: help for gpaste upload #: src/client/gpaste-client.c:214 msgid "upload the item to a pastebin service" msgstr "subir el elemento a un servicio pastebin" #. Translators: help for gpaste version #: src/client/gpaste-client.c:216 msgid "display the version" msgstr "mostrar la versión" #. Translators: help for gpaste daemon-version #: src/client/gpaste-client.c:218 msgid "display the daemon version" msgstr "mostrar la versión de daemon" #. Translators: help for gpaste help #: src/client/gpaste-client.c:220 msgid "display this help" msgstr "mostrar esta ayuda" #. Translators: help for gpaste about #: src/client/gpaste-client.c:222 msgid "display the about dialog" msgstr "mostrar el diálogo acerca de" #: src/client/gpaste-client.c:225 #, c-format msgid "Convenience options:" msgstr "Opciones prácticas:" #. Translators: help for --use-index #: src/client/gpaste-client.c:228 msgid "use the index of the item instead of its UUID" msgstr "utilizar el índice del elemento en lugar de su UUID" #: src/client/gpaste-client.c:231 #, c-format msgid "Display options:" msgstr "Opciones de la pantalla:" #. Translators: help for --oneline #: src/client/gpaste-client.c:234 msgid "display each item on only one line" msgstr "mostrar cada elemento en una sola línea" #. Translators: help for --raw #: src/client/gpaste-client.c:236 msgid "display each item raw (without line numbers)" msgstr "Mostrar cada entrada sin formato (sin números de línea)" #. Translators: help for --reverse #: src/client/gpaste-client.c:238 msgid "display the items in reverse order" msgstr "mostrar los elementos en orden inverso" #. Translators: help for --zero #: src/client/gpaste-client.c:240 msgid "use a NUL character instead of a new line betweean each item" msgstr "" "utilizar un carácter NUL en lugar de una nueva línea entre cada elemento" #: src/client/gpaste-client.c:243 #, c-format msgid "Merge options:" msgstr "Opciones de la fusión:" #. Translators: help for --decoration #. Translators: help for --separator #: src/client/gpaste-client.c:246 src/client/gpaste-client.c:248 msgid "string" msgstr "cadena" #: src/client/gpaste-client.c:246 msgid "" "add the given decoration to the beginning and the end of each item before " "merging" msgstr "" "Agregue la decoración especificada al principio y al final de cada entrada " "antes de fusionar" #: src/client/gpaste-client.c:248 msgid "add the given separator between each item when merging" msgstr "Al fusionar, inserte el separador especificado entre cada entrada" #: src/client/gpaste-client.c:345 #, c-format msgid "Successfully reexecuted the daemon\n" msgstr "Servicio reiniciado con éxito\n" #: src/client/gpaste-client.c:486 msgid "Cannot add non utf8 data as text." msgstr "No se pueden agregar datos que no sean utf8 como texto." #: src/client/gpaste-client.c:796 src/ui/gpaste-ui-window.c:353 #: src/ui/gpaste-ui-window.c:354 msgid "Couldn't connect to GPaste daemon" msgstr "No se pudo conectar al servicio GPaste" #: src/daemon/gpaste-color-item.c:73 msgid "[Color]" msgstr "" #. Translators: strftime format for image timestamps. Rearrange to match your locale's date/time convention. #: src/daemon/gpaste-image-item.c:219 msgid "%m/%d/%y %T" msgstr "%d/%m/%y %T" #. Translators: Image item displayed in history. %d is width, %d is height, %s is the formatted date. #: src/daemon/gpaste-image-item.c:221 #, c-format msgid "[Image, %d x %d (%s)]" msgstr "[Imagen, %d × %d (%s)]" #: src/daemon/gpaste-make-password-keybinding.c:50 #, fuzzy msgid "Convert to Password" msgstr "cambiar el nombre de la contraseña" #. This is the prefix displayed in history to identify a password #: src/daemon/gpaste-password-item.c:65 msgid "Password" msgstr "Contraseña" #: src/daemon/gpaste-pop-keybinding.c:64 #, fuzzy msgid "Pop from History" msgstr "Acceso al historial" #: src/daemon/gpaste-show-history-keybinding.c:49 #, fuzzy msgid "Show History" msgstr "Acceso al historial" #: src/daemon/gpaste-sync-clipboard-to-primary-keybinding.c:46 #, fuzzy msgid "Sync Clipboard to Primary" msgstr "Sincronizar portapapeles con la selección principal" #: src/daemon/gpaste-sync-primary-to-clipboard-keybinding.c:46 #, fuzzy msgid "Sync Primary to Clipboard" msgstr "Sincronizar selección principal con el portapapeles" #: src/daemon/gpaste-ui-keybinding.c:43 msgid "Launch UI" msgstr "" #: src/daemon/gpaste-upload-keybinding.c:64 msgid "Upload to Pastebin" msgstr "" #: src/daemon/gpaste-uris-item.c:87 msgid "[Files] " msgstr "[Archivos] " #: src/daemon/main.c:32 msgid "Stop signal received, exiting" msgstr "Señal de detención recibida, saliendo" #: src/daemon/main.c:69 msgid "Could not acquire DBus name." msgstr "No se puede obtener el nombre de DBus." #: src/gnome-shell/dummyHistoryItem.js:12 msgid "(Couldn't connect to GPaste daemon)" msgstr "(No se pudo conectar a GPaste daemon)" #: src/gnome-shell/dummyHistoryItem.js:17 msgid "(Empty)" msgstr "(Vacío)" #: src/gnome-shell/dummyHistoryItem.js:22 msgid "(No result)" msgstr "(Sin resultados)" #: src/gnome-shell/emptyHistoryItem.js:14 msgid "Empty history" msgstr "Vaciar historial" #: src/gnome-shell/stateSwitch.js:12 msgid "Track changes" msgstr "Seguimiento de cambios" #: src/gnome-shell/uiItem.js:14 msgid "Graphical tool" msgstr "herramienta gráfica" #: src/libgpaste/gpaste/gpaste-util.c:636 msgid "Could not create history dir" msgstr "No se pudo crear directorio de historial" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-macros.h:38 msgid "Failed to register the gtk application" msgstr "No se pudo registrar la aplicación gtk" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:108 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:119 msgid "General behaviour" msgstr "Comportamiento general" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:121 #: src/ui/gpaste-ui-switch.c:93 msgid "Track clipboard changes" msgstr "Seguimiento de cambios en el portapapeles" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:127 msgid "Close UI on select" msgstr "Cerrar la interfaz de usuario al seleccionarla" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:133 msgid "Open the UI window centered" msgstr "Abra la ventana de la interfaz de usuario centrada" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:139 msgid "Save history" msgstr "Guardar historial" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:150 msgid "Enable the gnome-shell extension" msgstr "Habilitar la extensión gnome-shell" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:156 msgid "Sync the daemon state with the extension's one" msgstr "Sincronizar el estado del servicio con el de la _extensión" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:162 msgid "" "When enabled, the daemon automatically starts or stops tracking clipboard " "changes to match the GNOME Shell extension's enabled state" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:166 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:174 msgid "Clipboards synchronization" msgstr "Sincronización del portapapeles" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:168 msgid "Primary selection affects history" msgstr "Selección principal afecta al historial" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:174 msgid "Synchronize clipboard with primary selection" msgstr "Sincronizar el portapapeles con selección principal" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:181 msgid "Optional features" msgstr "Características opcionales" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:183 msgid "Trim items" msgstr "Recortar elementos" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:189 msgid "Detect growing lines" msgstr "Detectar líneas ascendentes" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:195 msgid "" "When enabled, if a new clipboard entry starts with the previous one, the " "previous entry is replaced instead of creating a new one" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:92 msgid "History settings" msgstr "Ajustes del historial" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:103 msgid "Resources limits" msgstr "Límites de los recursos" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:120 msgid "Text limits" msgstr "Límites del texto" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:122 msgid "Min text item length" msgstr "Longitud mínima del texto" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:129 msgid "Max text item length" msgstr "Longitud máxima del texto" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:137 msgid "Display settings" msgstr "Configuración de pantalla" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:139 msgid "Max element size when displaying" msgstr "Tamaño máximo del elemento cuando se muestra" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:81 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:92 #, fuzzy msgid "Images settings" msgstr "La interfaz de configuración" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:94 msgid "Images support" msgstr "Soporte de imágenes" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:100 msgid "Image previews" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:106 msgid "Preview size" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:122 msgid "Keyboard shortcuts" msgstr "Atajos del teclado" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:133 msgid "History access" msgstr "Acceso al historial" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:150 msgid "Active element manipulation" msgstr "Manipulación de los elementos activos" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-util.c:51 #: src/ui/gpaste-ui-edit-item.c:84 src/ui/gpaste-ui-new-item.c:66 #: src/ui/gpaste-ui-panel.c:311 msgid "Cancel" msgstr "Cancelar" #. Translators: %s is the name of the history being emptied. #: src/libgpaste/gpaste-gtk4/gpaste-gtk-util.c:126 #, fuzzy, c-format msgid "Do you really want to empty \"%s\"?" msgstr "¿De verdad quieres vaciar el historial?" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-util.c:127 #: src/ui/gpaste-ui-history.c:153 src/ui/gpaste-ui-history.c:428 #: src/ui/gpaste-ui-panel.c:517 msgid "Empty" msgstr "Vacío" #: src/ui/gpaste-ui.c:47 msgid "Clipboard management system" msgstr "" #: src/ui/gpaste-ui-delete-item.c:46 src/ui/gpaste-ui-panel.c:358 #: src/ui/gpaste-ui-panel.c:518 msgid "Delete" msgstr "Suprimir" #: src/ui/gpaste-ui-edit-item.c:85 src/ui/gpaste-ui-edit-item.c:139 msgid "Edit" msgstr "Editar" #: src/ui/gpaste-ui-history.c:266 #, fuzzy msgid "No Results" msgstr "(Sin resultados)" #: src/ui/gpaste-ui-new-item.c:67 msgid "Add new item" msgstr "" #: src/ui/gpaste-ui-new-item.c:100 msgid "New item" msgstr "" #: src/ui/gpaste-ui-panel.c:307 msgid "Under which name do you want to backup this history?" msgstr "¿Con qué nombre desea hacer una copia de seguridad de este historial?" #: src/ui/gpaste-ui-panel.c:311 src/ui/gpaste-ui-panel.c:516 msgid "Backup" msgstr "Copia de seguridad" #. Translators: %s is the name of the history being deleted. #: src/ui/gpaste-ui-panel.c:357 #, fuzzy, c-format msgid "Are you sure you want to delete \"%s\"?" msgstr "¿Estás seguro de que deseas eliminar este historial?" #: src/ui/gpaste-ui-panel.c:441 #, fuzzy msgid "Switch to history" msgstr "cambiar a otro histórico" #: src/ui/gpaste-ui-panel.c:448 msgid "Switch to" msgstr "Cambiar a" #: src/ui/gpaste-ui-reexec.c:45 msgid "Restart" msgstr "Restablecer" #: src/ui/gpaste-ui-reexec.c:45 msgid "Do you really want to restart the daemon?" msgstr "¿Realmente quieres reiniciar el daemon?" #: src/ui/gpaste-ui-reexec.c:70 msgid "Restart the daemon" msgstr "Restablecer daemon" #: src/ui/gpaste-ui-search.c:23 msgid "Search" msgstr "Buscar" #: src/ui/gpaste-ui-settings.c:35 msgid "GPaste Settings" msgstr "Configuración de GPaste" #: src/ui/gpaste-ui-shortcuts-window.c:21 msgid "General" msgstr "General" #: src/ui/gpaste-ui-switch.c:68 msgid "Stop" msgstr "Parar" #: src/ui/gpaste-ui-switch.c:68 msgid "Do you really want to stop tracking clipboard changes?" msgstr "¿Realmente quieres dejar de seguir los cambios en el portapapeles?" #: src/ui/gpaste-ui-upload-item.c:46 msgid "Upload" msgstr "Cargar" #: src/ui/gpaste-ui-window.c:303 msgid "Quit" msgstr "Salir" #: src/ui/gpaste-ui-window.c:380 #, fuzzy msgid "Histories" msgstr "Acceso al historial" #: src/ui/gpaste-ui-window.c:381 #, fuzzy msgid "History" msgstr "Acceso al historial" #~ msgid "is already running." #~ msgstr "ya está ejecutándose." #~ msgid "Open UI window centered" #~ msgstr "Abrir una ventana de UI centrada" #~ msgid "New" #~ msgstr "Nuevo" #, fuzzy #~ msgid "Keyboard Shortcuts" #~ msgstr "Atajos de teclado " #~ msgid "number" #~ msgstr "número" #~ msgid "delete th item of the history" #~ msgstr "suprimir el elemento número del historial" #, fuzzy #~ msgid "upload the th item to a pastebin service" #~ msgstr "Eliminar el primer elemento del historial" #~ msgid "launch the applet" #~ msgstr "iniciar el applet" #, fuzzy #~ msgid "launch the unity application indicator" #~ msgstr "iniciar la herramienta de configuración" #~ msgid "GPaste Applet" #~ msgstr "Applet GPaste" #~ msgid "Tray icon to manage GPaste" #~ msgstr "Icono de notificación para GPaste" #, fuzzy #~ msgid "GPaste AppIndicator" #~ msgstr "Applet GPaste" #, fuzzy #~ msgid "Unity application indicator to manage GPaste" #~ msgstr "Icono de notificación para GPaste" #, fuzzy #~ msgid "The AppIndicator menu" #~ msgstr "Applet GPaste" #~ msgid "Max displayed history size: " #~ msgstr "Tamaño máximo a mostrar: " #~ msgid "Max history size: " #~ msgstr "Tamaño máximo del historial: " #~ msgid "Backup history as: " #~ msgstr "Respaldar historial como: " #~ msgid "Ok" #~ msgstr "Ok" #~ msgid "Could not register DBus service." #~ msgstr "No se pudo registrar el servicio DBus" #, fuzzy #~ msgid "Manage GPaste" #~ msgstr "Gestionar los ajustes del servicio GPaste" #~ msgid "GPaste daemon settings" #~ msgstr "Ajustes del servicio GPaste" #~ msgid "Manage the GPaste daemon settings" #~ msgstr "Gestionar los ajustes del servicio GPaste" #, fuzzy #~ msgid "Stop tracking changes" #~ msgstr "detener seguimiento de cambios en el portapapeles" #, fuzzy #~ msgid "print the history without newlines" #~ msgstr "imprimir el historial con números de indice" #, fuzzy #~ msgid "print the history (raw) without indexes" #~ msgstr "imprimir el historial sin índices" #~ msgid "print the history with NUL as separator" #~ msgstr "imprimir el historial con NUL como separador" #, fuzzy #~ msgid "get the th item from the history (raw)" #~ msgstr "obtener el elemento número del historial del portapapeles" #, fuzzy #~ msgid "Couldn't spawn gpaste-app-indicator.\n" #~ msgstr "No se pudo iniciar el applet de gpaste.\n" Keruspe-GPaste-724def1/po/fa.po000066400000000000000000001263711521206431300163020ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Marc-Antoine Perennou # This file is distributed under the same license as the gpaste package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: gpaste 3.42.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-06-09 21:21+0200\n" "PO-Revision-Date: 2025-10-24 21:04+0000\n" "Last-Translator: Shiba \n" "Language-Team: Persian \n" "Language: fa\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: Weblate 5.14.1-dev\n" #: data/control-center/42-gpaste.control-center.xml.in:2 msgid "@GETTEXT_PACKAGE@" msgstr "" #: data/control-center/42-gpaste.control-center.xml.in:3 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:136 #: src/ui/gpaste-ui-shortcuts-window.c:24 msgid "Launch the graphical tool" msgstr "" #: data/control-center/42-gpaste.control-center.xml.in:4 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:153 #: src/ui/gpaste-ui-shortcuts-window.c:25 msgid "Mark the active item as being a password" msgstr "" #: data/control-center/42-gpaste.control-center.xml.in:5 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:167 #: src/ui/gpaste-ui-shortcuts-window.c:23 msgid "Delete the active item from history" msgstr "" #: data/control-center/42-gpaste.control-center.xml.in:6 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:143 #: src/ui/gpaste-ui-shortcuts-window.c:26 msgid "Display the history" msgstr "" #: data/control-center/42-gpaste.control-center.xml.in:7 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:177 #: src/ui/gpaste-ui-shortcuts-window.c:27 msgid "Sync the clipboard to the primary selection" msgstr "" #: data/control-center/42-gpaste.control-center.xml.in:8 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:184 #: src/ui/gpaste-ui-shortcuts-window.c:28 msgid "Sync the primary selection to the clipboard" msgstr "" #: data/control-center/42-gpaste.control-center.xml.in:9 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:160 #: src/ui/gpaste-ui-shortcuts-window.c:29 msgid "Upload the active item to a pastebin service" msgstr "" #: data/desktop/org.gnome.GPaste.Daemon.desktop.in.in:3 #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:3 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:6 msgid "GPaste" msgstr "جی پیست" #: data/desktop/org.gnome.GPaste.Preferences.desktop.in.in:3 msgid "GPaste Preferences" msgstr "" #: data/desktop/org.gnome.GPaste.Preferences.desktop.in.in:4 msgid "Manage your GPaste preferences" msgstr "" #: data/desktop/org.gnome.GPaste.Preferences.desktop.in.in:5 #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:6 msgid "Clipboard;Manager;Settings;Preferences;Configuration;" msgstr "" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:4 msgid "Clipboard Manager" msgstr "" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:5 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:7 msgid "Manage your clipboard history" msgstr "حافظه کلیپبوردتو مدیریت کن" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:16 msgid "Preferences" msgstr "" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:20 #: src/gnome-shell/aboutItem.js:13 src/ui/gpaste-ui-about.c:38 msgid "About" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:7 msgid "Max size of an element when displaying it" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:8 msgid "" "The extra stuff of that element will be replaced by \"…\", and newlines by " "\" \" when displaying from the applet, 0 to disable." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:15 msgid "Do we detect and replace growing lines in history?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:16 msgid "" "By default, selecting \"Here is\", then \"Here is an example\" will create " "two entries in the history. With this feature enabled, the first one will be " "replaced by the second one." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:24 msgid "The name of the current history" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:25 msgid "The default name is \"history\"" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:32 msgid "Do we save the images copied to history, or only text?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:33 msgid "By default, we're saving only text" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:40 msgid "Show image previews in the history?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:41 msgid "By default, we show previews of images in the history" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:49 msgid "Size of image previews in pixels" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:50 msgid "Default size is 100 pixels" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:57 msgid "Do we close the UI after selecting an item?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:58 msgid "By default, we close it" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:65 msgid "Do we open the UI window centered?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:66 msgid "By default, we open it where the mouse cursor is" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:73 msgid "The keyboard shortcut to launch the graphical interface" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:74 msgid "" "By default, hitting ctrl + alt + g does that (\"G\"). An empty " "string here disables this functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:82 msgid "The keyboard shortcut to mark the active item as being a password" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:83 msgid "" "By default, hitting ctrl + alt + s will mark the active item as being a " "password (\"S\"). An empty string here disables this " "functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:92 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:146 msgid "Max displayed history size" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:93 msgid "Maximum number of items displayed in the history" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:101 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:105 msgid "Max history size" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:102 msgid "Maximum number of items in history" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:110 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:112 msgid "Max memory usage (MB)" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:111 msgid "Maximum amount of memory used to store contents" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:119 msgid "Max text item size" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:120 msgid "Maximum size of a text item. Anything out of this boundary is ignored." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:128 msgid "Min text item size" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:129 msgid "Minimum size of a text item. Anything out of this boundary is ignored." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:136 msgid "The keyboard shortcut to delete the first element in history" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:137 msgid "" "By default, hitting ctrl + alt + v does that (\"V\"). An empty " "string here disables this functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:145 msgid "Does the primary selection affects history?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:146 msgid "By default, only clipboard (ctrl+c) affects history." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:153 msgid "" "Do we save all versions of selected rich text (e.g. html) or just the plain " "text version?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:154 msgid "By default, we're saving all" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:161 msgid "Do we save the history from one session to another?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:162 msgid "By default, we're saving it" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:169 msgid "The keyboard shortcut to display the menu" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:170 msgid "" "By default, hitting ctrl + alt + h displays the menu (\"H\"). An " "empty string here disables this functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:178 msgid "The keyboard shortcut to sync the clipboard to the primary selection" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:179 msgid "" "By default, hitting ctrl + alt + o syncs them (\"P\"). An empty " "string here disables this functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:187 msgid "The keyboard shortcut to sync the primary selection to the clipboard" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:188 msgid "" "By default, hitting ctrl + alt + p syncs them (\"P\"). An empty " "string here disables this functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:196 msgid "Are the primary selection and the clipboard synchronized?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:197 msgid "By default, the primary selection and the clipboard are independent." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:204 msgid "Do we track the clipboard changes?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:205 msgid "By default, we're tracking those changes." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:212 msgid "" "Do we sync the daemon state with the gnome-shell extension's one? (disable " "the daemon when disabling the extension)" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:213 msgid "By default, the daemon state keeps unchanged" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:220 msgid "Do we trim the textual items before adding them to history?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:221 msgid "" "Trimming means removing all trailing and ending spaces. By default, we're " "letting them as-is." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:229 msgid "" "The keyboard shortcut to upload the first element in history to a pastebin " "service" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:230 msgid "" "By default, hitting ctrl + alt + u does that (\"U\"). An empty " "string here disables this functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:238 msgid "Do we prompt for confirmation when emptying a history?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:239 msgid "By default, we do as it's a destructive action" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:9 msgid "Marc-Antoine Perennou" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:17 msgid "" "GPaste is a clipboard managing system allowing you to track and manage your " "clipboard history in a highly customizable way." msgstr "" "جی پیست یه ابزاره که باهاش میتونی تاریخچه کلیپبوردتو مدیریت کنی و به حد " "Crazy اون رو کاستومایز کنی." #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:20 msgid "" "GPaste provides you with a graphical tool allowing you to manage everything " "easily." msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:27 msgid "The main UI" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:31 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:35 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:39 msgid "The settings UI" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:51 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:78 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:90 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:100 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:120 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:133 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:143 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:152 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:161 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:180 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:197 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:205 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:213 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:231 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:239 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:247 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:255 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:263 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:287 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:295 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:303 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:311 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:319 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:327 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:335 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:343 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:352 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:361 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:379 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:387 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:395 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:403 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:421 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:429 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:438 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:447 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:456 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:464 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:485 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:493 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:501 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:509 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:517 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:533 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:541 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:549 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:557 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:573 msgid "This is a maintenance release. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:53 msgid "Fix building without the GNOME Shell extension (-Dgnome-shell=false)" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:54 msgid "" "Restore GTK deprecation version-gating and drop the unused build-time gjs " "dependency" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:55 msgid "Target GNOME Shell 50 in the extension" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:56 msgid "Bump the library soversions to reflect the API/ABI changes since 45.8" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:62 msgid "" "This is a major release porting GPaste to GTK 4 and libadwaita. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:64 msgid "Port the daemon, history UI and preferences to GTK 4 and libadwaita" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:65 msgid "Show image thumbnails in the history, with configurable preview size" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:66 msgid "" "Support global keyboard shortcuts on Wayland through the XDG GlobalShortcuts " "portal" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:67 msgid "Recognise copied colours as dedicated colour items" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:68 msgid "" "Give keybindings human-readable descriptions and install a daemon desktop " "file" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:69 msgid "Fix images sometimes being repeatedly re-added to the history" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:70 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:81 msgid "" "Fix keyboard shortcuts not triggering when NumLock and CapsLock are both " "active" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:71 msgid "" "Fix several crashes (search provider, UI lifetime, GNOME Shell extension) " "and memory leaks" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:72 msgid "Modernise the GNOME Shell extension to current conventions" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:80 msgid "Fix use-after-free crash in the GNOME Shell search provider" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:82 msgid "" "Fix memory leaks when re-copying history items and when rebinding shortcuts" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:83 msgid "Fix potential crash when enforcing a very small history size" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:84 msgid "Build: ship the GSettings schema as a static file" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:92 msgid "" "GNOME Shell extension now retries the daemon connection before giving up" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:93 msgid "Fix test crash when GrabAccelerators is not allowed" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:94 msgid "Build: simplify gsettings compilation for tests" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:102 msgid "Fix GC crash and signal leak when disabling the GNOME Shell extension" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:103 msgid "GNOME Shell extension now handles daemon connection failure gracefully" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:104 msgid "Fix crash when a history item has no value yet" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:105 msgid "Fix image files not being deleted when history items are removed" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:106 msgid "Fix image files stored in wrong directory" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:107 msgid "Fix keyboard focus being stolen by history items on hover" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:108 msgid "" "Fix key events incorrectly forwarded to search when another entry has focus" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:109 msgid "Fix signal loop when updating shortcut entries from settings" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:110 msgid "Fix default history item count not reset after history deletion" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:111 msgid "Enforce minimum window size to prevent unresizable state" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:112 msgid "Add descriptive tooltips for settings entries" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:113 msgid "Build: explicitly link libgpaste libraries against libc" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:114 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:127 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:137 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:146 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:155 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:164 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:174 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:225 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:267 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:281 msgid "Translations updates" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:122 msgid "" "Fix infinite Pango assertion loop that could fill disk when clipboard " "content contained tab characters" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:123 msgid "Various bug fixes and memory management improvements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:124 msgid "Daemon improvements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:125 msgid "GNOME Shell extension improvements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:126 msgid "GLib >= 2.76 is now required" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:135 msgid "Support for gnome 50" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:136 msgid "Support for gnome 49" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:145 msgid "Support for gnome 48" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:154 msgid "Support for gnome 47" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:163 msgid "Support for gnome 46" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:170 msgid "Stable release for GNOME 45. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:172 msgid "Port to gnome 45" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:173 msgid "Add setting to open ui window centered" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:182 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:199 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:233 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:289 msgid "Fix a bug leading to history with only one item" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:188 msgid "First release for GNOME 44. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:190 msgid "gcr 4 is now required" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:191 msgid "Port to gnome 44" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:207 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:241 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:297 msgid "Avoid crash under heavy memory load" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:215 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:249 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:305 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:381 msgid "Respect --use-index when displaying history" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:221 msgid "First release for GNOME 43. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:223 msgid "Port to GNOME 43" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:224 msgid "Internal preparation for gtk4 port" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:257 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:313 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:389 msgid "Open GPaste UI where the mouse pointer is" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:265 msgid "Fixes to the new preferences tool" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:266 msgid "Style fixes" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:273 msgid "First release for GNOME 42. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:275 msgid "" "Old libgpaste replaced by a new minimal libgpaste-2 with no gtk dependency" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:276 msgid "New libgpaste-gtk3 for utils and settings ui" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:277 msgid "New libgpaste-gtk4 for utils and preferences ui" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:278 msgid "New gtk4 based gpaste-preferences utility" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:279 msgid "Autotools are no longer supported" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:280 msgid "Extension updated for gnome-shell 42" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:321 msgid "fix the storage path for meson builds" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:329 msgid "fix some race conditions in history handling" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:337 msgid "better fix crash when there is no history yet" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:345 msgid "fix crash when there is no history yet" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:346 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:355 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:364 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:373 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:397 msgid "translations update" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:354 msgid "fix gnome-shell exntesion when the daemon restarts" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:363 msgid "Fix keybindings for wayland" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:370 msgid "First release for GNOME 41. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:372 msgid "port to gnome-shell 41" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:405 msgid "fix a crash in memory usage checking" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:412 msgid "First release for GNOME 40. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:414 msgid "port to gnome-shell 40" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:415 msgid "placeholder for gnome-shell prefs" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:423 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:487 msgid "fix X11 keybinder outside of GNOME" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:431 msgid "better handling and reporting of invalid uuids passed to gpaste-client" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:432 msgid "" "gpaste-client now has a --use-index argument for several subcommands to use " "index instead of uuid" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:440 msgid "fix the make-password keybinding" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:441 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:450 msgid "updated translations" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:449 msgid "gnome-shell extension warning fixes" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:458 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:495 msgid "gnome-shell extension cosmetic updates" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:466 msgid "Disable images support by default (can be reenabled in preferences)" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:467 msgid "Search now includes passwords (using their names)" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:468 msgid "systemd integration enhancements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:474 msgid "First release for GNOME 3.38. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:476 msgid "Drop the Tracking DBus signal" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:477 msgid "Switch to uuids to identify items" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:478 msgid "Bump DBus interface to org.gnome.GPaste2" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:479 msgid "Update to gnome-shell 3.38.0" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:503 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:535 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:577 msgid "Fix activating items using Ctrl-Number in gnome-shell" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:511 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:543 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:576 msgid "Fix keybinding regrab with gnome-shell" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:519 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:551 msgid "Fix keybinding grab with gnome-shell" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:525 msgid "First release for GNOME 3.36. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:527 msgid "Update to gnome-shell 3.36.0" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:559 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:575 msgid "Compatibility with recent appstream-glib" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:565 msgid "First release for GNOME 3.34. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:567 msgid "Update to gnome-shell 3.34.0" msgstr "" #: src/client/gpaste-client.c:146 msgid "Couldn't spawn" msgstr "" #: src/client/gpaste-client.c:158 #, c-format msgid "Usage:\n" msgstr "" #. Translators: help for gpaste history #: src/client/gpaste-client.c:160 msgid "print the history with UUIDs" msgstr "" #. Translators: help for gpaste history-size #: src/client/gpaste-client.c:162 msgid "print the size of the history" msgstr "" #. Translators: help for gpaste get-history #: src/client/gpaste-client.c:164 msgid "get the name of the current history" msgstr "" #. Translators: help for gpaste backup-history #. Translators: help for gpaste switch-history #. Translators: help for gpaste delete-history #. Translators: help for gpaste add-password #. Translators: help for gpaste set-password #. Translators: help for gpaste delete-passworf #: src/client/gpaste-client.c:166 src/client/gpaste-client.c:168 #: src/client/gpaste-client.c:170 src/client/gpaste-client.c:176 #: src/client/gpaste-client.c:188 src/client/gpaste-client.c:192 msgid "name" msgstr "" #: src/client/gpaste-client.c:166 msgid "backup current history" msgstr "" #: src/client/gpaste-client.c:168 msgid "switch to another history" msgstr "" #: src/client/gpaste-client.c:170 msgid "delete a history" msgstr "" #. Translators: help for gpaste list-histories #: src/client/gpaste-client.c:172 msgid "list available histories" msgstr "" #. Translators: help for gpaste add #: src/client/gpaste-client.c:174 msgid "text" msgstr "" #: src/client/gpaste-client.c:174 msgid "set text to clipboard" msgstr "" #: src/client/gpaste-client.c:176 msgid "password" msgstr "" #: src/client/gpaste-client.c:176 msgid "add the name - password couple to the clipboard" msgstr "" #. Translators: help for gpaste rename-password #: src/client/gpaste-client.c:178 msgid "old name" msgstr "" #: src/client/gpaste-client.c:178 msgid "new name" msgstr "" #: src/client/gpaste-client.c:178 msgid "rename the password" msgstr "" #. Translators: help for gpaste get #: src/client/gpaste-client.c:180 msgid "get the item from the history" msgstr "" #. Translators: help for gpaste select #: src/client/gpaste-client.c:182 msgid "set the item from the history to the clipboard" msgstr "" #. Translators: help for gpaste replace #: src/client/gpaste-client.c:184 msgid "contents" msgstr "" #: src/client/gpaste-client.c:184 msgid "" "replace the contents of the item from the history with the provided " "one" msgstr "" #. Translators: help for gpaste merge #: src/client/gpaste-client.c:186 msgid "" "merge the items matching the UUIDs from the history and put the result in " "the clipboard" msgstr "" #: src/client/gpaste-client.c:188 msgid "set the item from the history as a password named " msgstr "" #. Translators: help for gpaste delete #: src/client/gpaste-client.c:190 msgid "delete item from the history" msgstr "" #: src/client/gpaste-client.c:192 msgid "delete the password from the history" msgstr "" #. Translators: help for gpaste file #: src/client/gpaste-client.c:194 msgid "path" msgstr "" #: src/client/gpaste-client.c:194 msgid "put the content of the file at into the clipboard" msgstr "" #. Translators: help for whatever | gpaste #: src/client/gpaste-client.c:196 msgid "whatever" msgstr "" #: src/client/gpaste-client.c:196 msgid "set the output of whatever to clipboard" msgstr "" #. Translators: help for gpaste empty #: src/client/gpaste-client.c:198 msgid "empty the history" msgstr "" #. Translators: help for gpaste start #: src/client/gpaste-client.c:200 msgid "start tracking clipboard changes" msgstr "" #. Translators: help for gpaste stop #: src/client/gpaste-client.c:202 msgid "stop tracking clipboard changes" msgstr "" #. Translators: help for gpaste quit #: src/client/gpaste-client.c:204 msgid "alias for stop" msgstr "" #. Translators: help for gpaste daemon-reexec #: src/client/gpaste-client.c:206 msgid "reexecute the daemon (after upgrading...)" msgstr "" #. Translators: help for gpaste preferences #: src/client/gpaste-client.c:208 msgid "launch the configuration tool" msgstr "" #. Translators: help for gpaste ui #: src/client/gpaste-client.c:210 msgid "launch the graphical tool" msgstr "" #. Translators: help for gpaste show-history #: src/client/gpaste-client.c:212 msgid "make the applet or extension display the history" msgstr "" #. Translators: help for gpaste upload #: src/client/gpaste-client.c:214 msgid "upload the item to a pastebin service" msgstr "" #. Translators: help for gpaste version #: src/client/gpaste-client.c:216 msgid "display the version" msgstr "" #. Translators: help for gpaste daemon-version #: src/client/gpaste-client.c:218 msgid "display the daemon version" msgstr "" #. Translators: help for gpaste help #: src/client/gpaste-client.c:220 msgid "display this help" msgstr "" #. Translators: help for gpaste about #: src/client/gpaste-client.c:222 msgid "display the about dialog" msgstr "" #: src/client/gpaste-client.c:225 #, c-format msgid "Convenience options:" msgstr "" #. Translators: help for --use-index #: src/client/gpaste-client.c:228 msgid "use the index of the item instead of its UUID" msgstr "" #: src/client/gpaste-client.c:231 #, c-format msgid "Display options:" msgstr "" #. Translators: help for --oneline #: src/client/gpaste-client.c:234 msgid "display each item on only one line" msgstr "" #. Translators: help for --raw #: src/client/gpaste-client.c:236 msgid "display each item raw (without line numbers)" msgstr "" #. Translators: help for --reverse #: src/client/gpaste-client.c:238 msgid "display the items in reverse order" msgstr "" #. Translators: help for --zero #: src/client/gpaste-client.c:240 msgid "use a NUL character instead of a new line betweean each item" msgstr "" #: src/client/gpaste-client.c:243 #, c-format msgid "Merge options:" msgstr "" #. Translators: help for --decoration #. Translators: help for --separator #: src/client/gpaste-client.c:246 src/client/gpaste-client.c:248 msgid "string" msgstr "" #: src/client/gpaste-client.c:246 msgid "" "add the given decoration to the beginning and the end of each item before " "merging" msgstr "" #: src/client/gpaste-client.c:248 msgid "add the given separator between each item when merging" msgstr "" #: src/client/gpaste-client.c:345 #, c-format msgid "Successfully reexecuted the daemon\n" msgstr "" #: src/client/gpaste-client.c:486 msgid "Cannot add non utf8 data as text." msgstr "" #: src/client/gpaste-client.c:796 src/ui/gpaste-ui-window.c:353 #: src/ui/gpaste-ui-window.c:354 msgid "Couldn't connect to GPaste daemon" msgstr "" #: src/daemon/gpaste-color-item.c:73 msgid "[Color]" msgstr "" #. Translators: strftime format for image timestamps. Rearrange to match your locale's date/time convention. #: src/daemon/gpaste-image-item.c:219 msgid "%m/%d/%y %T" msgstr "" #. Translators: Image item displayed in history. %d is width, %d is height, %s is the formatted date. #: src/daemon/gpaste-image-item.c:221 #, c-format msgid "[Image, %d x %d (%s)]" msgstr "" #: src/daemon/gpaste-make-password-keybinding.c:50 msgid "Convert to Password" msgstr "" #. This is the prefix displayed in history to identify a password #: src/daemon/gpaste-password-item.c:65 msgid "Password" msgstr "" #: src/daemon/gpaste-pop-keybinding.c:64 msgid "Pop from History" msgstr "" #: src/daemon/gpaste-show-history-keybinding.c:49 msgid "Show History" msgstr "" #: src/daemon/gpaste-sync-clipboard-to-primary-keybinding.c:46 msgid "Sync Clipboard to Primary" msgstr "" #: src/daemon/gpaste-sync-primary-to-clipboard-keybinding.c:46 msgid "Sync Primary to Clipboard" msgstr "" #: src/daemon/gpaste-ui-keybinding.c:43 msgid "Launch UI" msgstr "" #: src/daemon/gpaste-upload-keybinding.c:64 msgid "Upload to Pastebin" msgstr "" #: src/daemon/gpaste-uris-item.c:87 msgid "[Files] " msgstr "" #: src/daemon/main.c:32 msgid "Stop signal received, exiting" msgstr "" #: src/daemon/main.c:69 msgid "Could not acquire DBus name." msgstr "" #: src/gnome-shell/dummyHistoryItem.js:12 msgid "(Couldn't connect to GPaste daemon)" msgstr "" #: src/gnome-shell/dummyHistoryItem.js:17 msgid "(Empty)" msgstr "" #: src/gnome-shell/dummyHistoryItem.js:22 msgid "(No result)" msgstr "" #: src/gnome-shell/emptyHistoryItem.js:14 msgid "Empty history" msgstr "" #: src/gnome-shell/stateSwitch.js:12 msgid "Track changes" msgstr "" #: src/gnome-shell/uiItem.js:14 msgid "Graphical tool" msgstr "" #: src/libgpaste/gpaste/gpaste-util.c:636 msgid "Could not create history dir" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-macros.h:38 msgid "Failed to register the gtk application" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:108 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:119 msgid "General behaviour" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:121 #: src/ui/gpaste-ui-switch.c:93 msgid "Track clipboard changes" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:127 msgid "Close UI on select" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:133 msgid "Open the UI window centered" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:139 msgid "Save history" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:150 msgid "Enable the gnome-shell extension" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:156 msgid "Sync the daemon state with the extension's one" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:162 msgid "" "When enabled, the daemon automatically starts or stops tracking clipboard " "changes to match the GNOME Shell extension's enabled state" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:166 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:174 msgid "Clipboards synchronization" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:168 msgid "Primary selection affects history" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:174 msgid "Synchronize clipboard with primary selection" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:181 msgid "Optional features" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:183 msgid "Trim items" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:189 msgid "Detect growing lines" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:195 msgid "" "When enabled, if a new clipboard entry starts with the previous one, the " "previous entry is replaced instead of creating a new one" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:92 msgid "History settings" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:103 msgid "Resources limits" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:120 msgid "Text limits" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:122 msgid "Min text item length" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:129 msgid "Max text item length" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:137 msgid "Display settings" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:139 msgid "Max element size when displaying" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:81 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:92 msgid "Images settings" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:94 msgid "Images support" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:100 msgid "Image previews" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:106 msgid "Preview size" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:122 msgid "Keyboard shortcuts" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:133 msgid "History access" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:150 msgid "Active element manipulation" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-util.c:51 #: src/ui/gpaste-ui-edit-item.c:84 src/ui/gpaste-ui-new-item.c:66 #: src/ui/gpaste-ui-panel.c:311 msgid "Cancel" msgstr "" #. Translators: %s is the name of the history being emptied. #: src/libgpaste/gpaste-gtk4/gpaste-gtk-util.c:126 #, c-format msgid "Do you really want to empty \"%s\"?" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-util.c:127 #: src/ui/gpaste-ui-history.c:153 src/ui/gpaste-ui-history.c:428 #: src/ui/gpaste-ui-panel.c:517 msgid "Empty" msgstr "" #: src/ui/gpaste-ui.c:47 msgid "Clipboard management system" msgstr "" #: src/ui/gpaste-ui-delete-item.c:46 src/ui/gpaste-ui-panel.c:358 #: src/ui/gpaste-ui-panel.c:518 msgid "Delete" msgstr "" #: src/ui/gpaste-ui-edit-item.c:85 src/ui/gpaste-ui-edit-item.c:139 msgid "Edit" msgstr "" #: src/ui/gpaste-ui-history.c:266 msgid "No Results" msgstr "" #: src/ui/gpaste-ui-new-item.c:67 msgid "Add new item" msgstr "" #: src/ui/gpaste-ui-new-item.c:100 msgid "New item" msgstr "" #: src/ui/gpaste-ui-panel.c:307 msgid "Under which name do you want to backup this history?" msgstr "" #: src/ui/gpaste-ui-panel.c:311 src/ui/gpaste-ui-panel.c:516 msgid "Backup" msgstr "" #. Translators: %s is the name of the history being deleted. #: src/ui/gpaste-ui-panel.c:357 #, c-format msgid "Are you sure you want to delete \"%s\"?" msgstr "" #: src/ui/gpaste-ui-panel.c:441 msgid "Switch to history" msgstr "" #: src/ui/gpaste-ui-panel.c:448 msgid "Switch to" msgstr "" #: src/ui/gpaste-ui-reexec.c:45 msgid "Restart" msgstr "" #: src/ui/gpaste-ui-reexec.c:45 msgid "Do you really want to restart the daemon?" msgstr "" #: src/ui/gpaste-ui-reexec.c:70 msgid "Restart the daemon" msgstr "" #: src/ui/gpaste-ui-search.c:23 msgid "Search" msgstr "" #: src/ui/gpaste-ui-settings.c:35 msgid "GPaste Settings" msgstr "" #: src/ui/gpaste-ui-shortcuts-window.c:21 msgid "General" msgstr "" #: src/ui/gpaste-ui-switch.c:68 msgid "Stop" msgstr "" #: src/ui/gpaste-ui-switch.c:68 msgid "Do you really want to stop tracking clipboard changes?" msgstr "" #: src/ui/gpaste-ui-upload-item.c:46 msgid "Upload" msgstr "" #: src/ui/gpaste-ui-window.c:303 msgid "Quit" msgstr "" #: src/ui/gpaste-ui-window.c:380 msgid "Histories" msgstr "" #: src/ui/gpaste-ui-window.c:381 msgid "History" msgstr "" Keruspe-GPaste-724def1/po/fi.po000066400000000000000000001545211521206431300163100ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the GPaste package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: GPaste\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-06-09 21:21+0200\n" "PO-Revision-Date: 2025-12-20 19:00+0000\n" "Last-Translator: \"Tinde (Joke)\" \n" "Language-Team: Finnish \n" "Language: fi\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: Weblate 5.15.1\n" #: data/control-center/42-gpaste.control-center.xml.in:2 msgid "@GETTEXT_PACKAGE@" msgstr "@GETTEXT_PACKAGE@" #: data/control-center/42-gpaste.control-center.xml.in:3 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:136 #: src/ui/gpaste-ui-shortcuts-window.c:24 msgid "Launch the graphical tool" msgstr "Käynnistä graafinen työkalu" #: data/control-center/42-gpaste.control-center.xml.in:4 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:153 #: src/ui/gpaste-ui-shortcuts-window.c:25 msgid "Mark the active item as being a password" msgstr "Merkitse aktiivinen kohde salasanalla suojatuksi" #: data/control-center/42-gpaste.control-center.xml.in:5 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:167 #: src/ui/gpaste-ui-shortcuts-window.c:23 msgid "Delete the active item from history" msgstr "Poista aktiivinen kohde historiasta" #: data/control-center/42-gpaste.control-center.xml.in:6 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:143 #: src/ui/gpaste-ui-shortcuts-window.c:26 msgid "Display the history" msgstr "Näytä historia" #: data/control-center/42-gpaste.control-center.xml.in:7 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:177 #: src/ui/gpaste-ui-shortcuts-window.c:27 msgid "Sync the clipboard to the primary selection" msgstr "Synkronoi leikepöytä ensisijaiseen valintaan" #: data/control-center/42-gpaste.control-center.xml.in:8 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:184 #: src/ui/gpaste-ui-shortcuts-window.c:28 msgid "Sync the primary selection to the clipboard" msgstr "Synkronoi ensisijainen valinta leikepöydälle" #: data/control-center/42-gpaste.control-center.xml.in:9 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:160 #: src/ui/gpaste-ui-shortcuts-window.c:29 msgid "Upload the active item to a pastebin service" msgstr "Lataa aktiivinen kohde pastebin-palveluun" #: data/desktop/org.gnome.GPaste.Daemon.desktop.in.in:3 #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:3 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:6 msgid "GPaste" msgstr "GPaste" #: data/desktop/org.gnome.GPaste.Preferences.desktop.in.in:3 msgid "GPaste Preferences" msgstr "GPaste-asetukset" #: data/desktop/org.gnome.GPaste.Preferences.desktop.in.in:4 msgid "Manage your GPaste preferences" msgstr "Hallinnoi GPaste-asetuksiasi" #: data/desktop/org.gnome.GPaste.Preferences.desktop.in.in:5 #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:6 msgid "Clipboard;Manager;Settings;Preferences;Configuration;" msgstr "Leikepöytä; Hallinta; Asetukset; Määritykset; Kokoonpano;" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:4 #, fuzzy msgid "Clipboard Manager" msgstr "Seuraa leikepöydän muutoksia" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:5 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:7 msgid "Manage your clipboard history" msgstr "Hallitse leikepöydän historiaasi" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:16 #, fuzzy msgid "Preferences" msgstr "GPaste-asetukset" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:20 #: src/gnome-shell/aboutItem.js:13 src/ui/gpaste-ui-about.c:38 msgid "About" msgstr "Tietoja" #: data/gsettings/org.gnome.GPaste.gschema.xml:7 msgid "Max size of an element when displaying it" msgstr "Elementin maksimikoko näytettäessä" #: data/gsettings/org.gnome.GPaste.gschema.xml:8 msgid "" "The extra stuff of that element will be replaced by \"…\", and newlines by " "\" \" when displaying from the applet, 0 to disable." msgstr "" "Elementin ylimääräinen osa korvataan merkeillä \"…\" ja rivinvaihdot " "merkeillä \" \", kun niitä näytetään sovelmassa. 0 poistaa käytöstä." #: data/gsettings/org.gnome.GPaste.gschema.xml:15 msgid "Do we detect and replace growing lines in history?" msgstr "Havaitsemmeko ja korvaammeko kasvavia viivoja historiassa?" #: data/gsettings/org.gnome.GPaste.gschema.xml:16 msgid "" "By default, selecting \"Here is\", then \"Here is an example\" will create " "two entries in the history. With this feature enabled, the first one will be " "replaced by the second one." msgstr "" "Oletusarvoisesti \"Tässä on\" ja sitten \"Tässä on esimerkki\" " "-vaihtoehtojen valitseminen luo historiaan kaksi merkintää. Kun tämä " "ominaisuus on käytössä, ensimmäinen korvataan toisella." #: data/gsettings/org.gnome.GPaste.gschema.xml:24 msgid "The name of the current history" msgstr "Nykyisen historian nimi" #: data/gsettings/org.gnome.GPaste.gschema.xml:25 msgid "The default name is \"history\"" msgstr "Oletusnimi on \"historia\"" #: data/gsettings/org.gnome.GPaste.gschema.xml:32 msgid "Do we save the images copied to history, or only text?" msgstr "Tallennetaanko kopioidut kuvat historiaan vai vain teksti?" #: data/gsettings/org.gnome.GPaste.gschema.xml:33 msgid "By default, we're saving only text" msgstr "Oletusarvoisesti tallennamme vain tekstiä" #: data/gsettings/org.gnome.GPaste.gschema.xml:40 msgid "Show image previews in the history?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:41 msgid "By default, we show previews of images in the history" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:49 msgid "Size of image previews in pixels" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:50 msgid "Default size is 100 pixels" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:57 msgid "Do we close the UI after selecting an item?" msgstr "Suljetaanko käyttöliittymä kohteen valitsemisen jälkeen?" #: data/gsettings/org.gnome.GPaste.gschema.xml:58 msgid "By default, we close it" msgstr "Oletusarvoisesti suljemme sen" #: data/gsettings/org.gnome.GPaste.gschema.xml:65 msgid "Do we open the UI window centered?" msgstr "Avataanko käyttöliittymäikkuna keskitetysti?" #: data/gsettings/org.gnome.GPaste.gschema.xml:66 msgid "By default, we open it where the mouse cursor is" msgstr "Oletusarvoisesti avaamme sen hiiren kursorin kohdalle" #: data/gsettings/org.gnome.GPaste.gschema.xml:73 msgid "The keyboard shortcut to launch the graphical interface" msgstr "Pikanäppäin graafisen käyttöliittymän käynnistämiseksi" #: data/gsettings/org.gnome.GPaste.gschema.xml:74 msgid "" "By default, hitting ctrl + alt + g does that (\"G\"). An empty " "string here disables this functionnality." msgstr "" "Oletusarvoisesti Ctrl + Alt + G -näppäinyhdistelmä tekee tämän " "(\"G\"). Tyhjä merkkijono tässä poistaa tämän toiminnon käytöstä." #: data/gsettings/org.gnome.GPaste.gschema.xml:82 msgid "The keyboard shortcut to mark the active item as being a password" msgstr "Pikanäppäin aktiivisen kohteen merkitsemiseksi salasanalla suojatuksi" #: data/gsettings/org.gnome.GPaste.gschema.xml:83 msgid "" "By default, hitting ctrl + alt + s will mark the active item as being a " "password (\"S\"). An empty string here disables this " "functionnality." msgstr "" "Oletusarvoisesti ctrl + alt + s -näppäinyhdistelmän painaminen merkitsee " "aktiivisen kohteen salasanalla suojatuksi (\"S\"). Tyhjä " "merkkijono tässä poistaa tämän toiminnon käytöstä." #: data/gsettings/org.gnome.GPaste.gschema.xml:92 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:146 msgid "Max displayed history size" msgstr "Näytettävän historian enimmäiskoko" #: data/gsettings/org.gnome.GPaste.gschema.xml:93 msgid "Maximum number of items displayed in the history" msgstr "Historiassa näytettävien kohteiden enimmäismäärä" #: data/gsettings/org.gnome.GPaste.gschema.xml:101 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:105 msgid "Max history size" msgstr "Historian enimmäiskoko" #: data/gsettings/org.gnome.GPaste.gschema.xml:102 msgid "Maximum number of items in history" msgstr "Historiassa olevien kohteiden enimmäismäärä" #: data/gsettings/org.gnome.GPaste.gschema.xml:110 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:112 msgid "Max memory usage (MB)" msgstr "Muistin enimmäiskäyttö (MB)" #: data/gsettings/org.gnome.GPaste.gschema.xml:111 msgid "Maximum amount of memory used to store contents" msgstr "Sisällön tallentamiseen käytetyn muistin enimmäismäärä" #: data/gsettings/org.gnome.GPaste.gschema.xml:119 msgid "Max text item size" msgstr "Tekstikohteen enimmäiskoko" #: data/gsettings/org.gnome.GPaste.gschema.xml:120 msgid "Maximum size of a text item. Anything out of this boundary is ignored." msgstr "" "Tekstikohteen enimmäiskoko. Kaikki tämän rajan ulkopuolella oleva jätetään " "huomiotta." #: data/gsettings/org.gnome.GPaste.gschema.xml:128 msgid "Min text item size" msgstr "Tekstikohteen vähimmäiskoko" #: data/gsettings/org.gnome.GPaste.gschema.xml:129 msgid "Minimum size of a text item. Anything out of this boundary is ignored." msgstr "" "Tekstikohteen vähimmäiskoko. Kaikki tämän rajan ulkopuolella oleva jätetään " "huomiotta." #: data/gsettings/org.gnome.GPaste.gschema.xml:136 msgid "The keyboard shortcut to delete the first element in history" msgstr "Pikanäppäin historian ensimmäisen elementin poistamiseen" #: data/gsettings/org.gnome.GPaste.gschema.xml:137 msgid "" "By default, hitting ctrl + alt + v does that (\"V\"). An empty " "string here disables this functionnality." msgstr "" "Oletusarvoisesti näppäinyhdistelmällä ctrl + alt + v tehdään tämä " "(\"V\"). Tyhjä merkkijono tässä poistaa tämän toiminnon käytöstä." #: data/gsettings/org.gnome.GPaste.gschema.xml:145 msgid "Does the primary selection affects history?" msgstr "Vaikuttaako esivaali historiaan?" #: data/gsettings/org.gnome.GPaste.gschema.xml:146 msgid "By default, only clipboard (ctrl+c) affects history." msgstr "Oletusarvoisesti vain leikepöytä (ctrl+c) vaikuttaa historiaan." #: data/gsettings/org.gnome.GPaste.gschema.xml:153 msgid "" "Do we save all versions of selected rich text (e.g. html) or just the plain " "text version?" msgstr "" "Tallennetaanko kaikki valitun rich text -tiedoston (esim. html) versiot vai " "vain pelkkä tekstiversio?" #: data/gsettings/org.gnome.GPaste.gschema.xml:154 msgid "By default, we're saving all" msgstr "Oletusarvoisesti tallennamme kaikki" #: data/gsettings/org.gnome.GPaste.gschema.xml:161 msgid "Do we save the history from one session to another?" msgstr "Tallennammeko historian istunnosta toiseen?" #: data/gsettings/org.gnome.GPaste.gschema.xml:162 msgid "By default, we're saving it" msgstr "Oletusarvoisesti tallennamme sen" #: data/gsettings/org.gnome.GPaste.gschema.xml:169 msgid "The keyboard shortcut to display the menu" msgstr "Pikanäppäin valikon näyttämiseen" #: data/gsettings/org.gnome.GPaste.gschema.xml:170 msgid "" "By default, hitting ctrl + alt + h displays the menu (\"H\"). An " "empty string here disables this functionnality." msgstr "" "Oletusarvoisesti Ctrl + Alt + H -näppäinyhdistelmän painaminen näyttää " "valikon (\"H\"). Tyhjä merkkijono tässä poistaa tämän toiminnon " "käytöstä." #: data/gsettings/org.gnome.GPaste.gschema.xml:178 msgid "The keyboard shortcut to sync the clipboard to the primary selection" msgstr "Pikanäppäin leikepöydän synkronoimiseksi ensisijaiseen valintaan" #: data/gsettings/org.gnome.GPaste.gschema.xml:179 msgid "" "By default, hitting ctrl + alt + o syncs them (\"P\"). An empty " "string here disables this functionnality." msgstr "" "Oletusarvoisesti ctrl + alt + o -näppäinyhdistelmä synkronoi ne " "(\"P\"). Tyhjä merkkijono tässä poisti tämän toiminnon käytöstä." #: data/gsettings/org.gnome.GPaste.gschema.xml:187 msgid "The keyboard shortcut to sync the primary selection to the clipboard" msgstr "Pikanäppäin ensisijaisen valinnan synkronoimiseksi leikepöydälle" #: data/gsettings/org.gnome.GPaste.gschema.xml:188 msgid "" "By default, hitting ctrl + alt + p syncs them (\"P\"). An empty " "string here disables this functionnality." msgstr "" "Oletusarvoisesti ctrl + alt + p -näppäinyhdistelmä synkronoi ne " "(\"P\"). Tyhjä merkkijono tässä poistaa toiminnon käytöstä." #: data/gsettings/org.gnome.GPaste.gschema.xml:196 msgid "Are the primary selection and the clipboard synchronized?" msgstr "Ovatko ensisijainen valinta ja leikepöytä synkronoituja?" #: data/gsettings/org.gnome.GPaste.gschema.xml:197 msgid "By default, the primary selection and the clipboard are independent." msgstr "" "Oletusarvoisesti ensisijainen valinta ja leikepöytä ovat toisistaan " "riippumattomia." #: data/gsettings/org.gnome.GPaste.gschema.xml:204 msgid "Do we track the clipboard changes?" msgstr "Seurataanko leikepöydän muutoksia?" #: data/gsettings/org.gnome.GPaste.gschema.xml:205 msgid "By default, we're tracking those changes." msgstr "Oletusarvoisesti seuraamme näitä muutoksia." #: data/gsettings/org.gnome.GPaste.gschema.xml:212 msgid "" "Do we sync the daemon state with the gnome-shell extension's one? (disable " "the daemon when disabling the extension)" msgstr "" "Synkronoimmeko daemonin tilan gnome-shell-laajennusten tilan kanssa? (poista " "daemon käytöstä laajennuksen poistamisen yhteydessä)" #: data/gsettings/org.gnome.GPaste.gschema.xml:213 msgid "By default, the daemon state keeps unchanged" msgstr "Oletusarvoisesti daemonin tila pysyy muuttumattomana" #: data/gsettings/org.gnome.GPaste.gschema.xml:220 msgid "Do we trim the textual items before adding them to history?" msgstr "Karsitaanko tekstielementtejä ennen niiden lisäämistä historiaan?" #: data/gsettings/org.gnome.GPaste.gschema.xml:221 msgid "" "Trimming means removing all trailing and ending spaces. By default, we're " "letting them as-is." msgstr "" "Leikkaaminen tarkoittaa kaikkien loppu- ja loppuvälilyöntien poistamista. " "Oletusarvoisesti annamme niiden olla sellaisenaan." #: data/gsettings/org.gnome.GPaste.gschema.xml:229 msgid "" "The keyboard shortcut to upload the first element in history to a pastebin " "service" msgstr "" "Pikanäppäin historian ensimmäisen elementin lataamiseen pastin-palveluun" #: data/gsettings/org.gnome.GPaste.gschema.xml:230 msgid "" "By default, hitting ctrl + alt + u does that (\"U\"). An empty " "string here disables this functionnality." msgstr "" "Oletusarvoisesti Ctrl + Alt + U -näppäinyhdistelmä tekee tämän " "(\"U\"). Tyhjä merkkijono tässä poistaa tämän toiminnon käytöstä." #: data/gsettings/org.gnome.GPaste.gschema.xml:238 msgid "Do we prompt for confirmation when emptying a history?" msgstr "Kysytäänkö vahvistusta historian tyhjennyksen yhteydessä?" #: data/gsettings/org.gnome.GPaste.gschema.xml:239 msgid "By default, we do as it's a destructive action" msgstr "Oletusarvoisesti teemme niin, koska se on tuhoisa teko" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:9 msgid "Marc-Antoine Perennou" msgstr "Marc-Antoine Perennou" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:17 msgid "" "GPaste is a clipboard managing system allowing you to track and manage your " "clipboard history in a highly customizable way." msgstr "" "GPaste on leikepöydän hallintajärjestelmä, jonka avulla voit seurata ja " "hallita leikepöydän historiaasi erittäin muokattavissa olevalla tavalla." #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:20 msgid "" "GPaste provides you with a graphical tool allowing you to manage everything " "easily." msgstr "" "GPaste tarjoaa sinulle graafisen työkalun, jonka avulla voit hallita kaikkea " "helposti." #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:27 msgid "The main UI" msgstr "Pääkäyttöliittymä" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:31 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:35 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:39 msgid "The settings UI" msgstr "Asetukset" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:51 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:78 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:90 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:100 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:120 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:133 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:143 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:152 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:161 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:180 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:197 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:205 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:213 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:231 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:239 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:247 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:255 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:263 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:287 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:295 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:303 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:311 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:319 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:327 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:335 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:343 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:352 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:361 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:379 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:387 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:395 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:403 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:421 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:429 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:438 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:447 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:456 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:464 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:485 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:493 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:501 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:509 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:517 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:533 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:541 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:549 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:557 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:573 msgid "This is a maintenance release. Changes:" msgstr "Tämä on ylläpitojulkaisu. Muutokset:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:53 msgid "Fix building without the GNOME Shell extension (-Dgnome-shell=false)" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:54 msgid "" "Restore GTK deprecation version-gating and drop the unused build-time gjs " "dependency" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:55 msgid "Target GNOME Shell 50 in the extension" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:56 msgid "Bump the library soversions to reflect the API/ABI changes since 45.8" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:62 msgid "" "This is a major release porting GPaste to GTK 4 and libadwaita. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:64 msgid "Port the daemon, history UI and preferences to GTK 4 and libadwaita" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:65 msgid "Show image thumbnails in the history, with configurable preview size" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:66 msgid "" "Support global keyboard shortcuts on Wayland through the XDG GlobalShortcuts " "portal" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:67 msgid "Recognise copied colours as dedicated colour items" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:68 msgid "" "Give keybindings human-readable descriptions and install a daemon desktop " "file" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:69 msgid "Fix images sometimes being repeatedly re-added to the history" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:70 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:81 msgid "" "Fix keyboard shortcuts not triggering when NumLock and CapsLock are both " "active" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:71 msgid "" "Fix several crashes (search provider, UI lifetime, GNOME Shell extension) " "and memory leaks" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:72 msgid "Modernise the GNOME Shell extension to current conventions" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:80 msgid "Fix use-after-free crash in the GNOME Shell search provider" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:82 msgid "" "Fix memory leaks when re-copying history items and when rebinding shortcuts" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:83 msgid "Fix potential crash when enforcing a very small history size" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:84 msgid "Build: ship the GSettings schema as a static file" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:92 msgid "" "GNOME Shell extension now retries the daemon connection before giving up" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:93 msgid "Fix test crash when GrabAccelerators is not allowed" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:94 msgid "Build: simplify gsettings compilation for tests" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:102 msgid "Fix GC crash and signal leak when disabling the GNOME Shell extension" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:103 msgid "GNOME Shell extension now handles daemon connection failure gracefully" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:104 #, fuzzy msgid "Fix crash when a history item has no value yet" msgstr "korjaa kaatumisen, kun historiaa ei vielä ole" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:105 msgid "Fix image files not being deleted when history items are removed" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:106 msgid "Fix image files stored in wrong directory" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:107 #, fuzzy msgid "Fix keyboard focus being stolen by history items on hover" msgstr "Korjaa historia, joka johtaa historiaan vain yhdellä kohteella" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:108 msgid "" "Fix key events incorrectly forwarded to search when another entry has focus" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:109 msgid "Fix signal loop when updating shortcut entries from settings" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:110 msgid "Fix default history item count not reset after history deletion" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:111 msgid "Enforce minimum window size to prevent unresizable state" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:112 msgid "Add descriptive tooltips for settings entries" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:113 msgid "Build: explicitly link libgpaste libraries against libc" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:114 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:127 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:137 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:146 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:155 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:164 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:174 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:225 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:267 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:281 msgid "Translations updates" msgstr "Käännöksien päivitykset" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:122 msgid "" "Fix infinite Pango assertion loop that could fill disk when clipboard " "content contained tab characters" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:123 msgid "Various bug fixes and memory management improvements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:124 msgid "Daemon improvements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:125 msgid "GNOME Shell extension improvements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:126 #, fuzzy msgid "GLib >= 2.76 is now required" msgstr "gcr 4 vaaditaan nyt" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:135 #, fuzzy msgid "Support for gnome 50" msgstr "Tukee Gnome 48" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:136 #, fuzzy msgid "Support for gnome 49" msgstr "Tukee Gnome 48" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:145 msgid "Support for gnome 48" msgstr "Tukee Gnome 48" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:154 msgid "Support for gnome 47" msgstr "Tukee Gnome 47" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:163 msgid "Support for gnome 46" msgstr "Tukee Gnome 46" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:170 msgid "Stable release for GNOME 45. Changes:" msgstr "Vakaa julkaisu GNOME 45: lle. Muutokset:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:172 msgid "Port to gnome 45" msgstr "Portti Gnome 45:een" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:173 msgid "Add setting to open ui window centered" msgstr "Lisää asetus avaamaan ikkuna keskitetysti" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:182 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:199 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:233 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:289 msgid "Fix a bug leading to history with only one item" msgstr "Korjaa historia, joka johtaa historiaan vain yhdellä kohteella" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:188 msgid "First release for GNOME 44. Changes:" msgstr "Ensimmäinen julkaisu GNOME 44: lle. Muutokset:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:190 msgid "gcr 4 is now required" msgstr "gcr 4 vaaditaan nyt" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:191 msgid "Port to gnome 44" msgstr "Porttaus gnomeen 44" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:207 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:241 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:297 msgid "Avoid crash under heavy memory load" msgstr "Vältä kaatumista raskaan muistikuormituksen aikana" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:215 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:249 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:305 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:381 msgid "Respect --use-index when displaying history" msgstr "Noudata --use-index-ominaisuutta historiaa näytettäessä" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:221 msgid "First release for GNOME 43. Changes:" msgstr "Ensimmäinen julkaisu GNOME 43:lle. Muutokset:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:223 msgid "Port to GNOME 43" msgstr "Porttaus GNOME 43:een" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:224 msgid "Internal preparation for gtk4 port" msgstr "Sisäinen valmistelu gtk4-porttia varten" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:257 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:313 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:389 msgid "Open GPaste UI where the mouse pointer is" msgstr "Avaa GPaste-käyttöliittymä hiiren osoittimen kohdalla" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:265 msgid "Fixes to the new preferences tool" msgstr "Korjauksia uuteen asetustyökaluun" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:266 msgid "Style fixes" msgstr "Tyylikorjaukset" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:273 msgid "First release for GNOME 42. Changes:" msgstr "Ensimmäinen julkaisu GNOME 42:lle. Muutokset:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:275 msgid "" "Old libgpaste replaced by a new minimal libgpaste-2 with no gtk dependency" msgstr "" "Vanha libgpaste korvattu uudella minimaalisella libgpaste-2:lla ilman gtk-" "riippuvuutta" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:276 msgid "New libgpaste-gtk3 for utils and settings ui" msgstr "Uusi libgpaste-gtk3 apuohjelmille ja asetusten käyttöliittymälle" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:277 msgid "New libgpaste-gtk4 for utils and preferences ui" msgstr "Uusi libgpaste-gtk4 apuohjelmille ja käyttöliittymän asetuksille" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:278 msgid "New gtk4 based gpaste-preferences utility" msgstr "Uusi gtk4-pohjainen gpaste-preferences-apuohjelma" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:279 msgid "Autotools are no longer supported" msgstr "Autotools-työkaluja ei enää tueta" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:280 msgid "Extension updated for gnome-shell 42" msgstr "Gnome-shell 42:n laajennus päivitetty" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:321 msgid "fix the storage path for meson builds" msgstr "korjaa meson-koonnosten tallennuspolku" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:329 msgid "fix some race conditions in history handling" msgstr "korjaa joitakin kilpailuehtoja historian käsittelyssä" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:337 msgid "better fix crash when there is no history yet" msgstr "parempi korjata kaatuminen, kun historiaa ei vielä ole" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:345 msgid "fix crash when there is no history yet" msgstr "korjaa kaatumisen, kun historiaa ei vielä ole" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:346 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:355 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:364 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:373 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:397 msgid "translations update" msgstr "käännösten päivitys" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:354 msgid "fix gnome-shell exntesion when the daemon restarts" msgstr "korjaa gnome-shell-laajennuksen, kun daemon käynnistyy uudelleen" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:363 msgid "Fix keybindings for wayland" msgstr "Korjaa Waylandin näppäinyhdistelmät" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:370 msgid "First release for GNOME 41. Changes:" msgstr "Ensimmäinen julkaisu GNOME 41:lle. Muutokset:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:372 msgid "port to gnome-shell 41" msgstr "porttaus gnome-shelliin 41" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:405 msgid "fix a crash in memory usage checking" msgstr "korjaa muistin käytön tarkistuksen kaatumisen" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:412 msgid "First release for GNOME 40. Changes:" msgstr "Ensimmäinen julkaisu GNOME 40:lle. Muutokset:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:414 msgid "port to gnome-shell 40" msgstr "porttaus gnome-shelliin 40" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:415 msgid "placeholder for gnome-shell prefs" msgstr "gnome-shell-prefsien paikkamerkki" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:423 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:487 msgid "fix X11 keybinder outside of GNOME" msgstr "Korjaa X11-näppäinyhdistelmä GNOME:n ulkopuolella" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:431 msgid "better handling and reporting of invalid uuids passed to gpaste-client" msgstr "" "gpaste-clientille välitettyjen virheellisten UUID-tunnisteiden parempi " "käsittely ja raportointi" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:432 msgid "" "gpaste-client now has a --use-index argument for several subcommands to use " "index instead of uuid" msgstr "" "gpaste-clientissä on nyt --use-index-argumentti useille alikomennoille, " "jotta indeksiä voidaan käyttää uuid:n sijaan" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:440 msgid "fix the make-password keybinding" msgstr "Korjaa make-password-näppäinsidonta" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:441 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:450 msgid "updated translations" msgstr "päivitetyt käännökset" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:449 msgid "gnome-shell extension warning fixes" msgstr "gnome-shell-laajennuksen varoituskorjaukset" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:458 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:495 msgid "gnome-shell extension cosmetic updates" msgstr "gnome-shell-laajennuksen kosmeettiset päivitykset" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:466 msgid "Disable images support by default (can be reenabled in preferences)" msgstr "" "Poista kuvien tuki oletuksena käytöstä (voidaan ottaa uudelleen käyttöön " "asetuksista)" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:467 msgid "Search now includes passwords (using their names)" msgstr "Haku sisältää nyt salasanat (niiden nimien avulla)" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:468 msgid "systemd integration enhancements" msgstr "systemd-integraation parannukset" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:474 msgid "First release for GNOME 3.38. Changes:" msgstr "Ensimmäinen julkaisu GNOME 3.38:lle. Muutokset:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:476 msgid "Drop the Tracking DBus signal" msgstr "Poista seurantaväylän signaali" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:477 msgid "Switch to uuids to identify items" msgstr "Vaihda UUID-tunnuksiin esineiden tunnistamiseksi" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:478 msgid "Bump DBus interface to org.gnome.GPaste2" msgstr "Yhdistä DBus-rajapinta tiedostoon org.gnome.GPaste2" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:479 msgid "Update to gnome-shell 3.38.0" msgstr "Päivitys versioon gnome-shell 3.38.0" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:503 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:535 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:577 msgid "Fix activating items using Ctrl-Number in gnome-shell" msgstr "" "Korjaa kohteiden aktivointi Ctrl-Number-näppäimellä gnome-shell-komennossa" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:511 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:543 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:576 msgid "Fix keybinding regrab with gnome-shell" msgstr "Korjaa näppäinsidonnan uudelleenkaappaus gnome-shell-komennolla" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:519 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:551 msgid "Fix keybinding grab with gnome-shell" msgstr "Korjaa näppäinsidonnan kaatuminen gnome-shell-komennolla" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:525 msgid "First release for GNOME 3.36. Changes:" msgstr "Ensimmäinen julkaisu GNOME 3.36:lle. Muutokset:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:527 msgid "Update to gnome-shell 3.36.0" msgstr "Päivitys versioon gnome-shell 3.36.0" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:559 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:575 msgid "Compatibility with recent appstream-glib" msgstr "Yhteensopivuus viimeisimmän appstream-glibin kanssa" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:565 msgid "First release for GNOME 3.34. Changes:" msgstr "Ensimmäinen julkaisu GNOME 3.34:lle. Muutokset:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:567 msgid "Update to gnome-shell 3.34.0" msgstr "Päivitys versioon gnome-shell 3.34.0" #: src/client/gpaste-client.c:146 msgid "Couldn't spawn" msgstr "Ei voitu luoda" #: src/client/gpaste-client.c:158 #, c-format msgid "Usage:\n" msgstr "Käyttö:\n" #. Translators: help for gpaste history #: src/client/gpaste-client.c:160 msgid "print the history with UUIDs" msgstr "tulosta historia UUID-tunnuksilla" #. Translators: help for gpaste history-size #: src/client/gpaste-client.c:162 msgid "print the size of the history" msgstr "tulosta historian koko" #. Translators: help for gpaste get-history #: src/client/gpaste-client.c:164 msgid "get the name of the current history" msgstr "hanki nykyisen historian nimi" #. Translators: help for gpaste backup-history #. Translators: help for gpaste switch-history #. Translators: help for gpaste delete-history #. Translators: help for gpaste add-password #. Translators: help for gpaste set-password #. Translators: help for gpaste delete-passworf #: src/client/gpaste-client.c:166 src/client/gpaste-client.c:168 #: src/client/gpaste-client.c:170 src/client/gpaste-client.c:176 #: src/client/gpaste-client.c:188 src/client/gpaste-client.c:192 msgid "name" msgstr "nimi" #: src/client/gpaste-client.c:166 msgid "backup current history" msgstr "varmuuskopioi nykyinen historia" #: src/client/gpaste-client.c:168 msgid "switch to another history" msgstr "vaihda toiseen historiaan" #: src/client/gpaste-client.c:170 msgid "delete a history" msgstr "poista historia" #. Translators: help for gpaste list-histories #: src/client/gpaste-client.c:172 msgid "list available histories" msgstr "listaa saatavilla olevat historiat" #. Translators: help for gpaste add #: src/client/gpaste-client.c:174 msgid "text" msgstr "teksti" #: src/client/gpaste-client.c:174 msgid "set text to clipboard" msgstr "aseta teksti leikepöydälle" #: src/client/gpaste-client.c:176 msgid "password" msgstr "salasana" #: src/client/gpaste-client.c:176 msgid "add the name - password couple to the clipboard" msgstr "lisää nimi-salasana-pari leikepöydälle" #. Translators: help for gpaste rename-password #: src/client/gpaste-client.c:178 msgid "old name" msgstr "vanha nimi" #: src/client/gpaste-client.c:178 msgid "new name" msgstr "uusi nimi" #: src/client/gpaste-client.c:178 msgid "rename the password" msgstr "uudelleen nimeä salasana" #. Translators: help for gpaste get #: src/client/gpaste-client.c:180 msgid "get the item from the history" msgstr "hae kohde historiasta" #. Translators: help for gpaste select #: src/client/gpaste-client.c:182 msgid "set the item from the history to the clipboard" msgstr "aseta kohde historiasta leikepöydälle" #. Translators: help for gpaste replace #: src/client/gpaste-client.c:184 msgid "contents" msgstr "sisällys" #: src/client/gpaste-client.c:184 msgid "" "replace the contents of the item from the history with the provided " "one" msgstr "korvaa historiassa olevan -kohteen sisältö annetulla sisällöllä" #. Translators: help for gpaste merge #: src/client/gpaste-client.c:186 msgid "" "merge the items matching the UUIDs from the history and put the result in " "the clipboard" msgstr "" "Yhdistä historiasta UUID-tunnuksia vastaavat kohteet ja lisää tulos " "leikepöydälle" #: src/client/gpaste-client.c:188 msgid "set the item from the history as a password named " msgstr "aseta historiasta -kohde salasanaksi nimeltä " #. Translators: help for gpaste delete #: src/client/gpaste-client.c:190 msgid "delete item from the history" msgstr "poista kohde historiasta" #: src/client/gpaste-client.c:192 msgid "delete the password from the history" msgstr "poista salasana historiasta" #. Translators: help for gpaste file #: src/client/gpaste-client.c:194 msgid "path" msgstr "polku" #: src/client/gpaste-client.c:194 msgid "put the content of the file at into the clipboard" msgstr "siirrä tiedoston sisältö leikepöydälle" #. Translators: help for whatever | gpaste #: src/client/gpaste-client.c:196 msgid "whatever" msgstr "mitä tahansa" #: src/client/gpaste-client.c:196 msgid "set the output of whatever to clipboard" msgstr "aseta minkä tahansa tulosteen leikepöydälle" #. Translators: help for gpaste empty #: src/client/gpaste-client.c:198 msgid "empty the history" msgstr "tyhjä historia" #. Translators: help for gpaste start #: src/client/gpaste-client.c:200 msgid "start tracking clipboard changes" msgstr "aloita leikepöydän muutosten seuranta" #. Translators: help for gpaste stop #: src/client/gpaste-client.c:202 msgid "stop tracking clipboard changes" msgstr "lopeta leikepöydän muutosten seuranta" #. Translators: help for gpaste quit #: src/client/gpaste-client.c:204 msgid "alias for stop" msgstr "alias sanalle stop" #. Translators: help for gpaste daemon-reexec #: src/client/gpaste-client.c:206 msgid "reexecute the daemon (after upgrading...)" msgstr "suorita daemon uudelleen (päivityksen jälkeen...)" #. Translators: help for gpaste preferences #: src/client/gpaste-client.c:208 msgid "launch the configuration tool" msgstr "käynnistä määritystyökalu" #. Translators: help for gpaste ui #: src/client/gpaste-client.c:210 msgid "launch the graphical tool" msgstr "käynnistä graafinen työkalu" #. Translators: help for gpaste show-history #: src/client/gpaste-client.c:212 msgid "make the applet or extension display the history" msgstr "anna sovelman tai laajennuksen näyttää historia" #. Translators: help for gpaste upload #: src/client/gpaste-client.c:214 msgid "upload the item to a pastebin service" msgstr "lataa kohde pastinbin-palveluun" #. Translators: help for gpaste version #: src/client/gpaste-client.c:216 msgid "display the version" msgstr "näytä versio" #. Translators: help for gpaste daemon-version #: src/client/gpaste-client.c:218 msgid "display the daemon version" msgstr "näytä daemonin versio" #. Translators: help for gpaste help #: src/client/gpaste-client.c:220 msgid "display this help" msgstr "näytä tämä ohje" #. Translators: help for gpaste about #: src/client/gpaste-client.c:222 msgid "display the about dialog" msgstr "näytä Tietoja-valintaikkuna" #: src/client/gpaste-client.c:225 #, c-format msgid "Convenience options:" msgstr "Mukavuusvaihtoehdot:" #. Translators: help for --use-index #: src/client/gpaste-client.c:228 msgid "use the index of the item instead of its UUID" msgstr "käytä kohteen indeksiä sen UUID:n sijaan" #: src/client/gpaste-client.c:231 #, c-format msgid "Display options:" msgstr "Näytä vaihtoehdot:" #. Translators: help for --oneline #: src/client/gpaste-client.c:234 msgid "display each item on only one line" msgstr "näytä jokainen kohde vain yhdellä rivillä" #. Translators: help for --raw #: src/client/gpaste-client.c:236 msgid "display each item raw (without line numbers)" msgstr "näytä jokainen kohta raakana (ilman rivinumeroita)" #. Translators: help for --reverse #: src/client/gpaste-client.c:238 msgid "display the items in reverse order" msgstr "näytä kohteet käänteisessä järjestyksessä" #. Translators: help for --zero #: src/client/gpaste-client.c:240 msgid "use a NUL character instead of a new line betweean each item" msgstr "käytä NUL-merkkiä uuden rivin sijaan jokaisen kohteen välissä" #: src/client/gpaste-client.c:243 #, c-format msgid "Merge options:" msgstr "Yhdistämisvaihtoehdot:" #. Translators: help for --decoration #. Translators: help for --separator #: src/client/gpaste-client.c:246 src/client/gpaste-client.c:248 msgid "string" msgstr "jono" #: src/client/gpaste-client.c:246 msgid "" "add the given decoration to the beginning and the end of each item before " "merging" msgstr "" "lisää annettu koriste jokaisen kohteen alkuun ja loppuun ennen yhdistämistä" #: src/client/gpaste-client.c:248 msgid "add the given separator between each item when merging" msgstr "lisää annettu erotin jokaisen kohteen väliin yhdistämisen yhteydessä" #: src/client/gpaste-client.c:345 #, c-format msgid "Successfully reexecuted the daemon\n" msgstr "Daemonin uudelleensuoritus onnistui\n" #: src/client/gpaste-client.c:486 msgid "Cannot add non utf8 data as text." msgstr "Ei voi lisätä muuta kuin utf8-muotoista dataa tekstinä." #: src/client/gpaste-client.c:796 src/ui/gpaste-ui-window.c:353 #: src/ui/gpaste-ui-window.c:354 msgid "Couldn't connect to GPaste daemon" msgstr "Yhteyden muodostaminen GPaste-daemoniin ei onnistunut" #: src/daemon/gpaste-color-item.c:73 msgid "[Color]" msgstr "" #. Translators: strftime format for image timestamps. Rearrange to match your locale's date/time convention. #: src/daemon/gpaste-image-item.c:219 msgid "%m/%d/%y %T" msgstr "%m/%d/%y %T" #. Translators: Image item displayed in history. %d is width, %d is height, %s is the formatted date. #: src/daemon/gpaste-image-item.c:221 #, c-format msgid "[Image, %d x %d (%s)]" msgstr "[Image, %d x %d (%s)]" #: src/daemon/gpaste-make-password-keybinding.c:50 #, fuzzy msgid "Convert to Password" msgstr "uudelleen nimeä salasana" #. This is the prefix displayed in history to identify a password #: src/daemon/gpaste-password-item.c:65 msgid "Password" msgstr "Salasana" #: src/daemon/gpaste-pop-keybinding.c:64 #, fuzzy msgid "Pop from History" msgstr "Historian käyttöoikeus" #: src/daemon/gpaste-show-history-keybinding.c:49 #, fuzzy msgid "Show History" msgstr "Historian käyttöoikeus" #: src/daemon/gpaste-sync-clipboard-to-primary-keybinding.c:46 #, fuzzy msgid "Sync Clipboard to Primary" msgstr "Synkronoi leikepöytä ensisijaiseen valintaan" #: src/daemon/gpaste-sync-primary-to-clipboard-keybinding.c:46 #, fuzzy msgid "Sync Primary to Clipboard" msgstr "Synkronoi ensisijainen valinta leikepöydälle" #: src/daemon/gpaste-ui-keybinding.c:43 msgid "Launch UI" msgstr "" #: src/daemon/gpaste-upload-keybinding.c:64 msgid "Upload to Pastebin" msgstr "" #: src/daemon/gpaste-uris-item.c:87 msgid "[Files] " msgstr "[Tiedostot] " #: src/daemon/main.c:32 msgid "Stop signal received, exiting" msgstr "Pysäytysmerkki vastaanotettu, poistutaan" #: src/daemon/main.c:69 msgid "Could not acquire DBus name." msgstr "DBus-nimeä ei voitu hakea." #: src/gnome-shell/dummyHistoryItem.js:12 msgid "(Couldn't connect to GPaste daemon)" msgstr "(GPaste-daemoniin ei saatu yhteyttä)" #: src/gnome-shell/dummyHistoryItem.js:17 msgid "(Empty)" msgstr "(Tyhjä)" #: src/gnome-shell/dummyHistoryItem.js:22 msgid "(No result)" msgstr "(Ei tulosta)" #: src/gnome-shell/emptyHistoryItem.js:14 msgid "Empty history" msgstr "Tyhjä historia" #: src/gnome-shell/stateSwitch.js:12 msgid "Track changes" msgstr "Seuraa muutoksia" #: src/gnome-shell/uiItem.js:14 msgid "Graphical tool" msgstr "Graafinen työkalu" #: src/libgpaste/gpaste/gpaste-util.c:636 msgid "Could not create history dir" msgstr "Historiahakemistoa ei voitu luoda" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-macros.h:38 msgid "Failed to register the gtk application" msgstr "gtk-sovelluksen rekisteröinti epäonnistui" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:108 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:119 msgid "General behaviour" msgstr "Yleinen käyttäytyminen" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:121 #: src/ui/gpaste-ui-switch.c:93 msgid "Track clipboard changes" msgstr "Seuraa leikepöydän muutoksia" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:127 msgid "Close UI on select" msgstr "Sulje käyttöliittymä valinnan yhteydessä" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:133 msgid "Open the UI window centered" msgstr "Avaa käyttöliittymäikkuna keskitettynä" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:139 msgid "Save history" msgstr "Tallenna historia" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:150 msgid "Enable the gnome-shell extension" msgstr "Ota gnome-shell-laajennus käyttöön" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:156 msgid "Sync the daemon state with the extension's one" msgstr "Synkronoi daemonin tila laajennuksen tilan kanssa" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:162 msgid "" "When enabled, the daemon automatically starts or stops tracking clipboard " "changes to match the GNOME Shell extension's enabled state" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:166 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:174 msgid "Clipboards synchronization" msgstr "Leikepöydän synkronointi" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:168 msgid "Primary selection affects history" msgstr "Ensisijainen valinta vaikuttaa historiaan" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:174 msgid "Synchronize clipboard with primary selection" msgstr "Synkronoi leikepöytä ensisijaisen valinnan kanssa" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:181 msgid "Optional features" msgstr "Valinnaiset ominaisuudet" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:183 msgid "Trim items" msgstr "Leikkaa kohteita" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:189 msgid "Detect growing lines" msgstr "Kasvuviivojen havaitseminen" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:195 msgid "" "When enabled, if a new clipboard entry starts with the previous one, the " "previous entry is replaced instead of creating a new one" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:92 msgid "History settings" msgstr "Historian asetukset" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:103 msgid "Resources limits" msgstr "Resurssirajat" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:120 msgid "Text limits" msgstr "Tekstirajoitukset" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:122 msgid "Min text item length" msgstr "Tekstikohdan vähimmäispituus" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:129 msgid "Max text item length" msgstr "Tekstikohdan enimmäispituus" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:137 msgid "Display settings" msgstr "Näyttöasetukset" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:139 msgid "Max element size when displaying" msgstr "Elementin enimmäiskoko näytettäessä" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:81 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:92 #, fuzzy msgid "Images settings" msgstr "Asetukset" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:94 msgid "Images support" msgstr "Kuvien tuki" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:100 msgid "Image previews" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:106 msgid "Preview size" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:122 msgid "Keyboard shortcuts" msgstr "Pikanäppäimet" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:133 msgid "History access" msgstr "Historian käyttöoikeus" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:150 msgid "Active element manipulation" msgstr "Aktiivisen elementin manipulointi" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-util.c:51 #: src/ui/gpaste-ui-edit-item.c:84 src/ui/gpaste-ui-new-item.c:66 #: src/ui/gpaste-ui-panel.c:311 msgid "Cancel" msgstr "Peruuta" #. Translators: %s is the name of the history being emptied. #: src/libgpaste/gpaste-gtk4/gpaste-gtk-util.c:126 #, fuzzy, c-format msgid "Do you really want to empty \"%s\"?" msgstr "Haluatko todella tyhjentää historian?" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-util.c:127 #: src/ui/gpaste-ui-history.c:153 src/ui/gpaste-ui-history.c:428 #: src/ui/gpaste-ui-panel.c:517 msgid "Empty" msgstr "Tyhjä" #: src/ui/gpaste-ui.c:47 msgid "Clipboard management system" msgstr "" #: src/ui/gpaste-ui-delete-item.c:46 src/ui/gpaste-ui-panel.c:358 #: src/ui/gpaste-ui-panel.c:518 msgid "Delete" msgstr "Poista" #: src/ui/gpaste-ui-edit-item.c:85 src/ui/gpaste-ui-edit-item.c:139 msgid "Edit" msgstr "Muokkaa" #: src/ui/gpaste-ui-history.c:266 #, fuzzy msgid "No Results" msgstr "(Ei tulosta)" #: src/ui/gpaste-ui-new-item.c:67 msgid "Add new item" msgstr "" #: src/ui/gpaste-ui-new-item.c:100 msgid "New item" msgstr "" #: src/ui/gpaste-ui-panel.c:307 msgid "Under which name do you want to backup this history?" msgstr "Millä nimellä haluat varmuuskopioida tämän historian?" #: src/ui/gpaste-ui-panel.c:311 src/ui/gpaste-ui-panel.c:516 msgid "Backup" msgstr "Varmuuskopio" #. Translators: %s is the name of the history being deleted. #: src/ui/gpaste-ui-panel.c:357 #, fuzzy, c-format msgid "Are you sure you want to delete \"%s\"?" msgstr "Haluatko varmasti poistaa tämän historian?" #: src/ui/gpaste-ui-panel.c:441 #, fuzzy msgid "Switch to history" msgstr "vaihda toiseen historiaan" #: src/ui/gpaste-ui-panel.c:448 msgid "Switch to" msgstr "Vaihda" #: src/ui/gpaste-ui-reexec.c:45 msgid "Restart" msgstr "Uudelleen käynnistä" #: src/ui/gpaste-ui-reexec.c:45 msgid "Do you really want to restart the daemon?" msgstr "Haluatko todella käynnistää daemonin uudelleen?" #: src/ui/gpaste-ui-reexec.c:70 msgid "Restart the daemon" msgstr "Käynnistä daemon uudelleen" #: src/ui/gpaste-ui-search.c:23 msgid "Search" msgstr "Etsi" #: src/ui/gpaste-ui-settings.c:35 msgid "GPaste Settings" msgstr "GPaste asetukset" #: src/ui/gpaste-ui-shortcuts-window.c:21 msgid "General" msgstr "Yleistä" #: src/ui/gpaste-ui-switch.c:68 msgid "Stop" msgstr "Pysäytä" #: src/ui/gpaste-ui-switch.c:68 msgid "Do you really want to stop tracking clipboard changes?" msgstr "Haluatko todella lopettaa leikepöydän muutosten seurannan?" #: src/ui/gpaste-ui-upload-item.c:46 msgid "Upload" msgstr "Lataa" #: src/ui/gpaste-ui-window.c:303 msgid "Quit" msgstr "" #: src/ui/gpaste-ui-window.c:380 #, fuzzy msgid "Histories" msgstr "Historian käyttöoikeus" #: src/ui/gpaste-ui-window.c:381 #, fuzzy msgid "History" msgstr "Historian käyttöoikeus" #~ msgid "is already running." #~ msgstr "on jo käynnissä." #~ msgid "Open UI window centered" #~ msgstr "Avaa käyttöliittymäikkuna keskitetysti" #~ msgid "New" #~ msgstr "Uusi" Keruspe-GPaste-724def1/po/fr.po000066400000000000000000001545431521206431300163250ustar00rootroot00000000000000# French translations for GPaste package. # Copyright (C) 2010-2018 Listed translators # This file is distributed under the same license as the GPaste package. # Marc-Antoine Perennou , 2011. # msgid "" msgstr "" "Project-Id-Version: GPaste\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-06-09 21:21+0200\n" "PO-Revision-Date: 2025-08-17 12:02+0000\n" "Last-Translator: J0bot \n" "Language-Team: French \n" "Language: fr\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: Weblate 5.13\n" #: data/control-center/42-gpaste.control-center.xml.in:2 msgid "@GETTEXT_PACKAGE@" msgstr "@GETTEXT_PACKAGE@" #: data/control-center/42-gpaste.control-center.xml.in:3 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:136 #: src/ui/gpaste-ui-shortcuts-window.c:24 msgid "Launch the graphical tool" msgstr "Lancer l'interface graphique" #: data/control-center/42-gpaste.control-center.xml.in:4 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:153 #: src/ui/gpaste-ui-shortcuts-window.c:25 msgid "Mark the active item as being a password" msgstr "Marquer l'élément actif comme étant un mot de passe" #: data/control-center/42-gpaste.control-center.xml.in:5 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:167 #: src/ui/gpaste-ui-shortcuts-window.c:23 msgid "Delete the active item from history" msgstr "Supprimer l'élément actif de l'historique" #: data/control-center/42-gpaste.control-center.xml.in:6 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:143 #: src/ui/gpaste-ui-shortcuts-window.c:26 msgid "Display the history" msgstr "Afficher l'historique" #: data/control-center/42-gpaste.control-center.xml.in:7 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:177 #: src/ui/gpaste-ui-shortcuts-window.c:27 msgid "Sync the clipboard to the primary selection" msgstr "Synchroniser le presse-papier avec la sélection primaire" #: data/control-center/42-gpaste.control-center.xml.in:8 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:184 #: src/ui/gpaste-ui-shortcuts-window.c:28 msgid "Sync the primary selection to the clipboard" msgstr "Synchroniser la sélection primaire avec le presse-papier" #: data/control-center/42-gpaste.control-center.xml.in:9 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:160 #: src/ui/gpaste-ui-shortcuts-window.c:29 msgid "Upload the active item to a pastebin service" msgstr "Téléverser l'élément actif vers un sevice type pastebin" #: data/desktop/org.gnome.GPaste.Daemon.desktop.in.in:3 #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:3 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:6 msgid "GPaste" msgstr "GPaste" #: data/desktop/org.gnome.GPaste.Preferences.desktop.in.in:3 #, fuzzy msgid "GPaste Preferences" msgstr "Préférences du démon GPaste" #: data/desktop/org.gnome.GPaste.Preferences.desktop.in.in:4 msgid "Manage your GPaste preferences" msgstr "" #: data/desktop/org.gnome.GPaste.Preferences.desktop.in.in:5 #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:6 msgid "Clipboard;Manager;Settings;Preferences;Configuration;" msgstr "Presse-Papier;Gestionnaire;Réglages;Préférences;Configuration;" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:4 #, fuzzy msgid "Clipboard Manager" msgstr "Suivre les changements du presse-papier" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:5 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:7 msgid "Manage your clipboard history" msgstr "Gérez l'historique de votre presse-papier" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:16 #, fuzzy msgid "Preferences" msgstr "Préférences du démon GPaste" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:20 #: src/gnome-shell/aboutItem.js:13 src/ui/gpaste-ui-about.c:38 msgid "About" msgstr "À propos" #: data/gsettings/org.gnome.GPaste.gschema.xml:7 msgid "Max size of an element when displaying it" msgstr "Taille maximale d'un élément quand on l'affiche" #: data/gsettings/org.gnome.GPaste.gschema.xml:8 msgid "" "The extra stuff of that element will be replaced by \"…\", and newlines by " "\" \" when displaying from the applet, 0 to disable." msgstr "" "La partie de l'élément excédant la taille authorisée sera remplacée par \"…" "\", et les sauts de lignes par \" \" quand on affiche depuis l'applet, 0 " "pour désativer." #: data/gsettings/org.gnome.GPaste.gschema.xml:15 msgid "Do we detect and replace growing lines in history?" msgstr "" "Doit-on détecter et remplacer les lignes grandissantes dans l'historique ?" #: data/gsettings/org.gnome.GPaste.gschema.xml:16 msgid "" "By default, selecting \"Here is\", then \"Here is an example\" will create " "two entries in the history. With this feature enabled, the first one will be " "replaced by the second one." msgstr "" "Par défaut, selectionner \"Ceci est\", puis \"Ceci est un exemple\" va créer " "deux entrées dans l'historique. Avec cette fonctionnalité activée, la " "première sera remplacé par la deuxième." #: data/gsettings/org.gnome.GPaste.gschema.xml:24 msgid "The name of the current history" msgstr "Le nom de l'historique actuel" #: data/gsettings/org.gnome.GPaste.gschema.xml:25 msgid "The default name is \"history\"" msgstr "Le nom par défaut est \"history\"" #: data/gsettings/org.gnome.GPaste.gschema.xml:32 msgid "Do we save the images copied to history, or only text?" msgstr "" "Les images copiées doivent-elles être ajoutées à l'historique, ou seulement " "le texte ?" #: data/gsettings/org.gnome.GPaste.gschema.xml:33 msgid "By default, we're saving only text" msgstr "Par défaut, on ne sauvegarde que le texte" #: data/gsettings/org.gnome.GPaste.gschema.xml:40 msgid "Show image previews in the history?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:41 msgid "By default, we show previews of images in the history" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:49 msgid "Size of image previews in pixels" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:50 msgid "Default size is 100 pixels" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:57 msgid "Do we close the UI after selecting an item?" msgstr "Ferme-t-on l'interface après avoir sélectionné un élément ?" #: data/gsettings/org.gnome.GPaste.gschema.xml:58 msgid "By default, we close it" msgstr "Par défaut, on la ferme" #: data/gsettings/org.gnome.GPaste.gschema.xml:65 msgid "Do we open the UI window centered?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:66 #, fuzzy msgid "By default, we open it where the mouse cursor is" msgstr "Par défaut, on suit ces changements." #: data/gsettings/org.gnome.GPaste.gschema.xml:73 msgid "The keyboard shortcut to launch the graphical interface" msgstr "Le raccourcis clavier pour lancer l'interface graphique" #: data/gsettings/org.gnome.GPaste.gschema.xml:74 msgid "" "By default, hitting ctrl + alt + g does that (\"G\"). An empty " "string here disables this functionnality." msgstr "" "Par défaut, appuyer sur ctrl + alt + g le fait (\"G\"). Une " "chaîne vide désactive cette fonctionnalité." #: data/gsettings/org.gnome.GPaste.gschema.xml:82 msgid "The keyboard shortcut to mark the active item as being a password" msgstr "" "Le raccourcis clavier pour marquer l'élement actif comme étant un mot de " "passe" #: data/gsettings/org.gnome.GPaste.gschema.xml:83 msgid "" "By default, hitting ctrl + alt + s will mark the active item as being a " "password (\"S\"). An empty string here disables this " "functionnality." msgstr "" "Par défaut, appuyer sur ctrl + alt + s affiche le menu (\"S\"). " "Une chaîne vide désactive cette fonctionnalité." #: data/gsettings/org.gnome.GPaste.gschema.xml:92 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:146 msgid "Max displayed history size" msgstr "Taille maximale de l'historique affiché" #: data/gsettings/org.gnome.GPaste.gschema.xml:93 msgid "Maximum number of items displayed in the history" msgstr "Nombre maximum d'éléments affichés dans l'historique" #: data/gsettings/org.gnome.GPaste.gschema.xml:101 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:105 msgid "Max history size" msgstr "Taille maximale de l'historique" #: data/gsettings/org.gnome.GPaste.gschema.xml:102 msgid "Maximum number of items in history" msgstr "Nombre maximum d'éléments dans l'historique" #: data/gsettings/org.gnome.GPaste.gschema.xml:110 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:112 msgid "Max memory usage (MB)" msgstr "Utilisation mémoire maximale (MO)" #: data/gsettings/org.gnome.GPaste.gschema.xml:111 msgid "Maximum amount of memory used to store contents" msgstr "Quantité maximale de mémoire utilisée pour stcoker du contenu" #: data/gsettings/org.gnome.GPaste.gschema.xml:119 msgid "Max text item size" msgstr "Taille maximale d'un élément textuel" #: data/gsettings/org.gnome.GPaste.gschema.xml:120 msgid "Maximum size of a text item. Anything out of this boundary is ignored." msgstr "" "Taille maximale d'un élément textuel. Tout élément hors de ces limites est " "ignoré." #: data/gsettings/org.gnome.GPaste.gschema.xml:128 msgid "Min text item size" msgstr "Taille minimale d'un élément textuel" #: data/gsettings/org.gnome.GPaste.gschema.xml:129 msgid "Minimum size of a text item. Anything out of this boundary is ignored." msgstr "" "Taille minimale d'un élément textuel. Tout élément hors de ces limites est " "ignoré." #: data/gsettings/org.gnome.GPaste.gschema.xml:136 msgid "The keyboard shortcut to delete the first element in history" msgstr "" "Le raccourcis clavier pour supprimer le premier élément de l'historique" #: data/gsettings/org.gnome.GPaste.gschema.xml:137 msgid "" "By default, hitting ctrl + alt + v does that (\"V\"). An empty " "string here disables this functionnality." msgstr "" "Par défaut, appuyer sur ctrl + alt + v le fait (\"V\"). Une " "chaîne vide désactive cette fonctionnalité." #: data/gsettings/org.gnome.GPaste.gschema.xml:145 msgid "Does the primary selection affects history?" msgstr "La selection primaire doit-elle affecter l'historique ?" #: data/gsettings/org.gnome.GPaste.gschema.xml:146 msgid "By default, only clipboard (ctrl+c) affects history." msgstr "Par défaut, seulement le presse-papier (ctrl+c) affecte l'historique." #: data/gsettings/org.gnome.GPaste.gschema.xml:153 msgid "" "Do we save all versions of selected rich text (e.g. html) or just the plain " "text version?" msgstr "" "Faut-il sauvegarder toutes les versions d'un texte riche (html) selectionné, " "ou juste le texte brut ?" #: data/gsettings/org.gnome.GPaste.gschema.xml:154 msgid "By default, we're saving all" msgstr "Par défaut, on sauvegarde tout" #: data/gsettings/org.gnome.GPaste.gschema.xml:161 msgid "Do we save the history from one session to another?" msgstr "Sauvegarde-t-on l'historique d'une session à l'autre ?" #: data/gsettings/org.gnome.GPaste.gschema.xml:162 msgid "By default, we're saving it" msgstr "Par défaut, on le sauvegarde" #: data/gsettings/org.gnome.GPaste.gschema.xml:169 msgid "The keyboard shortcut to display the menu" msgstr "Le raccourcis clavier pour afficher l'historique" #: data/gsettings/org.gnome.GPaste.gschema.xml:170 msgid "" "By default, hitting ctrl + alt + h displays the menu (\"H\"). An " "empty string here disables this functionnality." msgstr "" "Par défaut, appuyer sur ctrl + alt + h affiche le menu (\"H\"). " "Une chaîne vide désactive cette fonctionnalité." #: data/gsettings/org.gnome.GPaste.gschema.xml:178 msgid "The keyboard shortcut to sync the clipboard to the primary selection" msgstr "" "Le raccourcis clavier pour synchroniser le presse-papier avec la sélection " "primaire" #: data/gsettings/org.gnome.GPaste.gschema.xml:179 msgid "" "By default, hitting ctrl + alt + o syncs them (\"P\"). An empty " "string here disables this functionnality." msgstr "" "Par défaut, appuyer sur ctrl + alt + o les synchronise (\"O\"). " "Une chaîne vide désactive cette fonctionnalité." #: data/gsettings/org.gnome.GPaste.gschema.xml:187 msgid "The keyboard shortcut to sync the primary selection to the clipboard" msgstr "" "Le raccourcis clavier pour synchroniser la sélection primaire avec le presse-" "papier" #: data/gsettings/org.gnome.GPaste.gschema.xml:188 msgid "" "By default, hitting ctrl + alt + p syncs them (\"P\"). An empty " "string here disables this functionnality." msgstr "" "Par défaut, appuyer sur ctrl + alt + p les synchronise (\"P\"). " "Une chaîne vide désactive cette fonctionnalité." #: data/gsettings/org.gnome.GPaste.gschema.xml:196 msgid "Are the primary selection and the clipboard synchronized?" msgstr "" "La sélection primaire et le presse-papier doivent-ils être synchronisés ?" #: data/gsettings/org.gnome.GPaste.gschema.xml:197 msgid "By default, the primary selection and the clipboard are independent." msgstr "" "Par défaut, la sélection primaire et le presse-papier sont indépendents." #: data/gsettings/org.gnome.GPaste.gschema.xml:204 msgid "Do we track the clipboard changes?" msgstr "Suit-on les changements du presse-papier ?" #: data/gsettings/org.gnome.GPaste.gschema.xml:205 msgid "By default, we're tracking those changes." msgstr "Par défaut, on suit ces changements." #: data/gsettings/org.gnome.GPaste.gschema.xml:212 msgid "" "Do we sync the daemon state with the gnome-shell extension's one? (disable " "the daemon when disabling the extension)" msgstr "" "Doit-on synchroniser l'état du démon avec celui de l'extension gnome-shell ? " "(le désactiver quand on la désactive)" #: data/gsettings/org.gnome.GPaste.gschema.xml:213 msgid "By default, the daemon state keeps unchanged" msgstr "Par défaut, l'état du démon reste inchangé" #: data/gsettings/org.gnome.GPaste.gschema.xml:220 msgid "Do we trim the textual items before adding them to history?" msgstr "" "Doit-on tronquer les éléments textuels avant de les ajouter à l'historique ?" #: data/gsettings/org.gnome.GPaste.gschema.xml:221 msgid "" "Trimming means removing all trailing and ending spaces. By default, we're " "letting them as-is." msgstr "" "Tronquer signifie supprimer tous les espaces au début et à la fin. Par " "défaut, on laisse les éléments tels-quels." #: data/gsettings/org.gnome.GPaste.gschema.xml:229 msgid "" "The keyboard shortcut to upload the first element in history to a pastebin " "service" msgstr "" "Le raccourcis clavier pour téléverser le premier élément de l'historique " "vers un service de type pastebin" #: data/gsettings/org.gnome.GPaste.gschema.xml:230 msgid "" "By default, hitting ctrl + alt + u does that (\"U\"). An empty " "string here disables this functionnality." msgstr "" "Par défaut, appuyer sur ctrl + alt + u le fait (\"U\"). Une " "chaîne vide désactive cette fonctionnalité." #: data/gsettings/org.gnome.GPaste.gschema.xml:238 msgid "Do we prompt for confirmation when emptying a history?" msgstr "Faut-il demander confirmation avant de vider un historique ?" #: data/gsettings/org.gnome.GPaste.gschema.xml:239 msgid "By default, we do as it's a destructive action" msgstr "Par défaut, on le fait car c'est une action destructrice" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:9 msgid "Marc-Antoine Perennou" msgstr "Marc-Antoine Perennou" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:17 msgid "" "GPaste is a clipboard managing system allowing you to track and manage your " "clipboard history in a highly customizable way." msgstr "" "GPaste est un outil de gestion du presse-papier qui vous permet de suivre et " "de manipuler votre historique de presse-papier de façon très configurable." #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:20 msgid "" "GPaste provides you with a graphical tool allowing you to manage everything " "easily." msgstr "" "GPaste vous fournit un outil graphique vous permettant de tout gérer " "simplement." #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:27 msgid "The main UI" msgstr "L'interface principale" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:31 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:35 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:39 msgid "The settings UI" msgstr "L'interface de préférences" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:51 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:78 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:90 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:100 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:120 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:133 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:143 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:152 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:161 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:180 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:197 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:205 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:213 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:231 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:239 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:247 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:255 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:263 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:287 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:295 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:303 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:311 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:319 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:327 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:335 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:343 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:352 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:361 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:379 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:387 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:395 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:403 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:421 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:429 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:438 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:447 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:456 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:464 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:485 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:493 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:501 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:509 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:517 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:533 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:541 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:549 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:557 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:573 msgid "This is a maintenance release. Changes:" msgstr "Ceci est une mise à jour de maintenance. Changements :" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:53 msgid "Fix building without the GNOME Shell extension (-Dgnome-shell=false)" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:54 msgid "" "Restore GTK deprecation version-gating and drop the unused build-time gjs " "dependency" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:55 msgid "Target GNOME Shell 50 in the extension" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:56 msgid "Bump the library soversions to reflect the API/ABI changes since 45.8" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:62 msgid "" "This is a major release porting GPaste to GTK 4 and libadwaita. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:64 msgid "Port the daemon, history UI and preferences to GTK 4 and libadwaita" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:65 msgid "Show image thumbnails in the history, with configurable preview size" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:66 msgid "" "Support global keyboard shortcuts on Wayland through the XDG GlobalShortcuts " "portal" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:67 msgid "Recognise copied colours as dedicated colour items" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:68 msgid "" "Give keybindings human-readable descriptions and install a daemon desktop " "file" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:69 msgid "Fix images sometimes being repeatedly re-added to the history" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:70 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:81 msgid "" "Fix keyboard shortcuts not triggering when NumLock and CapsLock are both " "active" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:71 msgid "" "Fix several crashes (search provider, UI lifetime, GNOME Shell extension) " "and memory leaks" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:72 msgid "Modernise the GNOME Shell extension to current conventions" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:80 msgid "Fix use-after-free crash in the GNOME Shell search provider" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:82 msgid "" "Fix memory leaks when re-copying history items and when rebinding shortcuts" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:83 msgid "Fix potential crash when enforcing a very small history size" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:84 msgid "Build: ship the GSettings schema as a static file" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:92 msgid "" "GNOME Shell extension now retries the daemon connection before giving up" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:93 msgid "Fix test crash when GrabAccelerators is not allowed" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:94 msgid "Build: simplify gsettings compilation for tests" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:102 msgid "Fix GC crash and signal leak when disabling the GNOME Shell extension" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:103 msgid "GNOME Shell extension now handles daemon connection failure gracefully" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:104 msgid "Fix crash when a history item has no value yet" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:105 msgid "Fix image files not being deleted when history items are removed" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:106 msgid "Fix image files stored in wrong directory" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:107 msgid "Fix keyboard focus being stolen by history items on hover" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:108 msgid "" "Fix key events incorrectly forwarded to search when another entry has focus" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:109 msgid "Fix signal loop when updating shortcut entries from settings" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:110 msgid "Fix default history item count not reset after history deletion" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:111 msgid "Enforce minimum window size to prevent unresizable state" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:112 msgid "Add descriptive tooltips for settings entries" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:113 msgid "Build: explicitly link libgpaste libraries against libc" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:114 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:127 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:137 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:146 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:155 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:164 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:174 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:225 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:267 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:281 #, fuzzy msgid "Translations updates" msgstr "Mise à jour des traductions" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:122 msgid "" "Fix infinite Pango assertion loop that could fill disk when clipboard " "content contained tab characters" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:123 msgid "Various bug fixes and memory management improvements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:124 msgid "Daemon improvements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:125 msgid "GNOME Shell extension improvements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:126 msgid "GLib >= 2.76 is now required" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:135 #, fuzzy msgid "Support for gnome 50" msgstr "Support pour gnome 48" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:136 #, fuzzy msgid "Support for gnome 49" msgstr "Support pour gnome 48" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:145 msgid "Support for gnome 48" msgstr "Support pour gnome 48" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:154 msgid "Support for gnome 47" msgstr "Support pour gnome 47" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:163 msgid "Support for gnome 46" msgstr "Support pour gnome 46" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:170 #, fuzzy msgid "Stable release for GNOME 45. Changes:" msgstr "Première mise à jour pour GNOME 41. Changements :" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:172 msgid "Port to gnome 45" msgstr "port vers gnome version 41" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:173 msgid "Add setting to open ui window centered" msgstr "Ajouter le réglage pour ouvrir la fenêtre ui centrée" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:182 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:199 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:233 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:289 msgid "Fix a bug leading to history with only one item" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:188 #, fuzzy msgid "First release for GNOME 44. Changes:" msgstr "Première mise à jour pour GNOME 41. Changements :" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:190 msgid "gcr 4 is now required" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:191 #, fuzzy msgid "Port to gnome 44" msgstr "port vers gnome-shell version 41" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:207 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:241 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:297 msgid "Avoid crash under heavy memory load" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:215 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:249 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:305 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:381 #, fuzzy msgid "Respect --use-index when displaying history" msgstr "Taille maximale d'un élément quand on l'affiche" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:221 #, fuzzy msgid "First release for GNOME 43. Changes:" msgstr "Première mise à jour pour GNOME 41. Changements :" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:223 msgid "Port to GNOME 43" msgstr "Port vers GNOME 43" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:224 msgid "Internal preparation for gtk4 port" msgstr "Préparation interne pour le port gtk4" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:257 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:313 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:389 msgid "Open GPaste UI where the mouse pointer is" msgstr "Ouvrir GPaste UI à la position du pointeur de la souris" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:265 msgid "Fixes to the new preferences tool" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:266 msgid "Style fixes" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:273 #, fuzzy msgid "First release for GNOME 42. Changes:" msgstr "Première mise à jour pour GNOME 41. Changements :" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:275 msgid "" "Old libgpaste replaced by a new minimal libgpaste-2 with no gtk dependency" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:276 msgid "New libgpaste-gtk3 for utils and settings ui" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:277 msgid "New libgpaste-gtk4 for utils and preferences ui" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:278 msgid "New gtk4 based gpaste-preferences utility" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:279 msgid "Autotools are no longer supported" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:280 #, fuzzy msgid "Extension updated for gnome-shell 42" msgstr "Mise à jour de gnome-shell version 3.34.0" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:321 msgid "fix the storage path for meson builds" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:329 msgid "fix some race conditions in history handling" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:337 msgid "better fix crash when there is no history yet" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:345 msgid "fix crash when there is no history yet" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:346 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:355 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:364 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:373 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:397 msgid "translations update" msgstr "Mise à jour des traductions" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:354 #, fuzzy msgid "fix gnome-shell exntesion when the daemon restarts" msgstr "Mises à jour cosmétiques de l'extension gnome-shell" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:363 #, fuzzy msgid "Fix keybindings for wayland" msgstr "Correction des raccourcis clavier dans gnome-shell" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:370 msgid "First release for GNOME 41. Changes:" msgstr "Première mise à jour pour GNOME 41. Changements :" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:372 msgid "port to gnome-shell 41" msgstr "port vers gnome-shell version 41" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:405 msgid "fix a crash in memory usage checking" msgstr "" "Correction d'un crash dans la vérification de l'utilisation de la mémoire" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:412 msgid "First release for GNOME 40. Changes:" msgstr "Première mise à jour pour GNOME 40. Changements :" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:414 msgid "port to gnome-shell 40" msgstr "port vers gnome-shell version 40" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:415 msgid "placeholder for gnome-shell prefs" msgstr "espace réservé aux préférences gnome-shell" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:423 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:487 msgid "fix X11 keybinder outside of GNOME" msgstr "corriger le clavier X11 en dehors de GNOME" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:431 msgid "better handling and reporting of invalid uuids passed to gpaste-client" msgstr "" "meilleure gestion et remontée d'erreurs quand des uuids invalides sont " "passés à gpaste-client" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:432 msgid "" "gpaste-client now has a --use-index argument for several subcommands to use " "index instead of uuid" msgstr "" "gpaste-client a maintenant un paramètre --use-index pour plusieurs sous-" "commandes pour utiliser l'index à la place de l'uuid" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:440 msgid "fix the make-password keybinding" msgstr "correction du raccourcis clavier pour créer un mot de passe" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:441 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:450 msgid "updated translations" msgstr "Mise à jour des traductions" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:449 msgid "gnome-shell extension warning fixes" msgstr "Correction de warnings dans l'extension gnome-shell" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:458 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:495 msgid "gnome-shell extension cosmetic updates" msgstr "Mises à jour cosmétiques de l'extension gnome-shell" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:466 msgid "Disable images support by default (can be reenabled in preferences)" msgstr "" "Désactivation de la prise en charge des images par défaut (peut être " "réactivée dans les préférences)" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:467 msgid "Search now includes passwords (using their names)" msgstr "" "La recherche inclut maintenant les mots de passe (en utilisant leurs noms)" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:468 msgid "systemd integration enhancements" msgstr "Amélioration de l'intégration avec systemd" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:474 msgid "First release for GNOME 3.38. Changes:" msgstr "Première mise à jour pour GNOME 3.38. Changements :" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:476 msgid "Drop the Tracking DBus signal" msgstr "Suppression du signal DBus Tracking" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:477 msgid "Switch to uuids to identify items" msgstr "Utilisation d'uuids pour identifier les éléments" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:478 msgid "Bump DBus interface to org.gnome.GPaste2" msgstr "Mise à jour de l'intrface DBus en org.gnome.GPaste2" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:479 msgid "Update to gnome-shell 3.38.0" msgstr "Mise à jour de gnome-shell en verison 3.38.0" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:503 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:535 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:577 msgid "Fix activating items using Ctrl-Number in gnome-shell" msgstr "" "Correction de l'activation d'un élément avec Ctrl-Nombre dans gnome-shell" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:511 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:543 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:576 msgid "Fix keybinding regrab with gnome-shell" msgstr "Correction de la modification des raccourcis clavier dans gnome-shell" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:519 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:551 msgid "Fix keybinding grab with gnome-shell" msgstr "Correction des raccourcis clavier dans gnome-shell" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:525 msgid "First release for GNOME 3.36. Changes:" msgstr "Première mise à jour pour GNOME 3.36. Changements :" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:527 msgid "Update to gnome-shell 3.36.0" msgstr "Mise à jour de gnome-shell en verison 3.36.0" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:559 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:575 msgid "Compatibility with recent appstream-glib" msgstr "Compatibilité avec les versions récentes d'appstream-glib" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:565 msgid "First release for GNOME 3.34. Changes:" msgstr "Première mise à jour pour GNOME 3.34. Changements :" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:567 msgid "Update to gnome-shell 3.34.0" msgstr "Mise à jour de gnome-shell version 3.34.0" #: src/client/gpaste-client.c:146 msgid "Couldn't spawn" msgstr "Impossible de lancer" #: src/client/gpaste-client.c:158 #, c-format msgid "Usage:\n" msgstr "Mode d'emploi :\n" #. Translators: help for gpaste history #: src/client/gpaste-client.c:160 msgid "print the history with UUIDs" msgstr "afficher l'historique avec les UUID" #. Translators: help for gpaste history-size #: src/client/gpaste-client.c:162 msgid "print the size of the history" msgstr "affiche la taille de l'historique" #. Translators: help for gpaste get-history #: src/client/gpaste-client.c:164 msgid "get the name of the current history" msgstr "afficher le nom de l'historique courant" #. Translators: help for gpaste backup-history #. Translators: help for gpaste switch-history #. Translators: help for gpaste delete-history #. Translators: help for gpaste add-password #. Translators: help for gpaste set-password #. Translators: help for gpaste delete-passworf #: src/client/gpaste-client.c:166 src/client/gpaste-client.c:168 #: src/client/gpaste-client.c:170 src/client/gpaste-client.c:176 #: src/client/gpaste-client.c:188 src/client/gpaste-client.c:192 msgid "name" msgstr "nom" #: src/client/gpaste-client.c:166 msgid "backup current history" msgstr "sauvegarde l'historique actuel" #: src/client/gpaste-client.c:168 msgid "switch to another history" msgstr "passer à un autre historique" #: src/client/gpaste-client.c:170 msgid "delete a history" msgstr "supprime un historique" #. Translators: help for gpaste list-histories #: src/client/gpaste-client.c:172 msgid "list available histories" msgstr "liste les historiques disponibles" #. Translators: help for gpaste add #: src/client/gpaste-client.c:174 msgid "text" msgstr "texte" #: src/client/gpaste-client.c:174 msgid "set text to clipboard" msgstr "met le texte dans le presse-papier" #: src/client/gpaste-client.c:176 msgid "password" msgstr "mot de passe" #: src/client/gpaste-client.c:176 msgid "add the name - password couple to the clipboard" msgstr "ajouter le couple nom - mot de passe au presse-papier" #. Translators: help for gpaste rename-password #: src/client/gpaste-client.c:178 msgid "old name" msgstr "ancien nom" #: src/client/gpaste-client.c:178 msgid "new name" msgstr "nouveau nom" #: src/client/gpaste-client.c:178 msgid "rename the password" msgstr "renommer le mot de passe" #. Translators: help for gpaste get #: src/client/gpaste-client.c:180 msgid "get the item from the history" msgstr "renvoie l'élément de l'historique" #. Translators: help for gpaste select #: src/client/gpaste-client.c:182 msgid "set the item from the history to the clipboard" msgstr "met l'élément de l'historique dans le presse-papier" #. Translators: help for gpaste replace #: src/client/gpaste-client.c:184 msgid "contents" msgstr "contenu" #: src/client/gpaste-client.c:184 msgid "" "replace the contents of the item from the history with the provided " "one" msgstr "" "remplace le contenu de l'élément de l'historique par celui fourni" #. Translators: help for gpaste merge #: src/client/gpaste-client.c:186 msgid "" "merge the items matching the UUIDs from the history and put the result in " "the clipboard" msgstr "" "fusionne les éléments identifées par ces UUID de l'historique et met le " "résultat dans le presse-papier" #: src/client/gpaste-client.c:188 msgid "set the item from the history as a password named " msgstr "" "marque l'élément de l'historique comme étant un mot de passe nommé " "" #. Translators: help for gpaste delete #: src/client/gpaste-client.c:190 msgid "delete item from the history" msgstr "supprime l'élément de l'historique" #: src/client/gpaste-client.c:192 msgid "delete the password from the history" msgstr "supprime le mot de passe nommé de l'historique" #. Translators: help for gpaste file #: src/client/gpaste-client.c:194 msgid "path" msgstr "chemin" #: src/client/gpaste-client.c:194 msgid "put the content of the file at into the clipboard" msgstr "place le contenu du fichier situé à ce chemin dans le presse-papier" #. Translators: help for whatever | gpaste #: src/client/gpaste-client.c:196 msgid "whatever" msgstr "quelquechose" #: src/client/gpaste-client.c:196 msgid "set the output of whatever to clipboard" msgstr "met la sortie de quelquechose dans le presse-papier" #. Translators: help for gpaste empty #: src/client/gpaste-client.c:198 msgid "empty the history" msgstr "vide l'historique" #. Translators: help for gpaste start #: src/client/gpaste-client.c:200 msgid "start tracking clipboard changes" msgstr "suivre les changements du presse-papier" #. Translators: help for gpaste stop #: src/client/gpaste-client.c:202 msgid "stop tracking clipboard changes" msgstr "arrêter de suivre les changements du presse-papier" #. Translators: help for gpaste quit #: src/client/gpaste-client.c:204 msgid "alias for stop" msgstr "alias pour stop" #. Translators: help for gpaste daemon-reexec #: src/client/gpaste-client.c:206 msgid "reexecute the daemon (after upgrading...)" msgstr "reexecuter le démon (après une mise à jour...)" #. Translators: help for gpaste preferences #: src/client/gpaste-client.c:208 msgid "launch the configuration tool" msgstr "lance l'outil de configuration" #. Translators: help for gpaste ui #: src/client/gpaste-client.c:210 msgid "launch the graphical tool" msgstr "lance l'interface graphique" #. Translators: help for gpaste show-history #: src/client/gpaste-client.c:212 msgid "make the applet or extension display the history" msgstr "forcer l'applet ou l'extension à afficher l'historique" #. Translators: help for gpaste upload #: src/client/gpaste-client.c:214 msgid "upload the item to a pastebin service" msgstr "Téléverser l'élément vers un sevice type pastebin" #. Translators: help for gpaste version #: src/client/gpaste-client.c:216 msgid "display the version" msgstr "affiche la version" #. Translators: help for gpaste daemon-version #: src/client/gpaste-client.c:218 msgid "display the daemon version" msgstr "affiche la version du démon" #. Translators: help for gpaste help #: src/client/gpaste-client.c:220 msgid "display this help" msgstr "affiche cette aide" #. Translators: help for gpaste about #: src/client/gpaste-client.c:222 msgid "display the about dialog" msgstr "affiche le dialogue d'à propos" #: src/client/gpaste-client.c:225 #, c-format msgid "Convenience options:" msgstr "Options pratiques :" #. Translators: help for --use-index #: src/client/gpaste-client.c:228 msgid "use the index of the item instead of its UUID" msgstr "utiliser l'index au lieu de l'UUID" #: src/client/gpaste-client.c:231 #, c-format msgid "Display options:" msgstr "Options d'affichage :" #. Translators: help for --oneline #: src/client/gpaste-client.c:234 msgid "display each item on only one line" msgstr "affiche chaque élément sur seulement une ligne" #. Translators: help for --raw #: src/client/gpaste-client.c:236 msgid "display each item raw (without line numbers)" msgstr "affiche chaque élément brut (sans numéro de ligne)" #. Translators: help for --reverse #: src/client/gpaste-client.c:238 msgid "display the items in reverse order" msgstr "affiche les éléments dans l'ordre inverse" #. Translators: help for --zero #: src/client/gpaste-client.c:240 msgid "use a NUL character instead of a new line betweean each item" msgstr "" "utilise un caractère NUL au lieu des sauts de ligne entre chaque élément" #: src/client/gpaste-client.c:243 #, c-format msgid "Merge options:" msgstr "Options de fusion :" #. Translators: help for --decoration #. Translators: help for --separator #: src/client/gpaste-client.c:246 src/client/gpaste-client.c:248 msgid "string" msgstr "chaîne" #: src/client/gpaste-client.c:246 msgid "" "add the given decoration to the beginning and the end of each item before " "merging" msgstr "" "ajoute la décoration au début et à la fin de chaque élément avant de les " "fusionner" #: src/client/gpaste-client.c:248 msgid "add the given separator between each item when merging" msgstr "ajoute le séparateur entre chaque élément à la fusion" #: src/client/gpaste-client.c:345 #, c-format msgid "Successfully reexecuted the daemon\n" msgstr "Démon redémaré avec succès\n" #: src/client/gpaste-client.c:486 msgid "Cannot add non utf8 data as text." msgstr "Impossible d'ajouter de la donnée non unicode en tant que texte." #: src/client/gpaste-client.c:796 src/ui/gpaste-ui-window.c:353 #: src/ui/gpaste-ui-window.c:354 msgid "Couldn't connect to GPaste daemon" msgstr "Impossible de se connecter au démon GPaste" #: src/daemon/gpaste-color-item.c:73 msgid "[Color]" msgstr "" #. Translators: strftime format for image timestamps. Rearrange to match your locale's date/time convention. #: src/daemon/gpaste-image-item.c:219 msgid "%m/%d/%y %T" msgstr "%d/%m/%y %T" #. Translators: Image item displayed in history. %d is width, %d is height, %s is the formatted date. #: src/daemon/gpaste-image-item.c:221 #, c-format msgid "[Image, %d x %d (%s)]" msgstr "[Image, %d x %d (%s)]" #: src/daemon/gpaste-make-password-keybinding.c:50 #, fuzzy msgid "Convert to Password" msgstr "renommer le mot de passe" #. This is the prefix displayed in history to identify a password #: src/daemon/gpaste-password-item.c:65 msgid "Password" msgstr "Mot de passe" #: src/daemon/gpaste-pop-keybinding.c:64 #, fuzzy msgid "Pop from History" msgstr "Préférences de l'historique" #: src/daemon/gpaste-show-history-keybinding.c:49 #, fuzzy msgid "Show History" msgstr "Préférences de l'historique" #: src/daemon/gpaste-sync-clipboard-to-primary-keybinding.c:46 #, fuzzy msgid "Sync Clipboard to Primary" msgstr "Synchroniser le presse-papier avec la sélection primaire" #: src/daemon/gpaste-sync-primary-to-clipboard-keybinding.c:46 #, fuzzy msgid "Sync Primary to Clipboard" msgstr "Synchroniser la sélection primaire avec le presse-papier" #: src/daemon/gpaste-ui-keybinding.c:43 msgid "Launch UI" msgstr "" #: src/daemon/gpaste-upload-keybinding.c:64 msgid "Upload to Pastebin" msgstr "" #: src/daemon/gpaste-uris-item.c:87 msgid "[Files] " msgstr "[Fichiers] " #: src/daemon/main.c:32 msgid "Stop signal received, exiting" msgstr "Signal d'arrêt reçu" #: src/daemon/main.c:69 msgid "Could not acquire DBus name." msgstr "Impossible d'acquérir le nom DBus." #: src/gnome-shell/dummyHistoryItem.js:12 msgid "(Couldn't connect to GPaste daemon)" msgstr "(Impossible de se connecter au démon GPaste)" #: src/gnome-shell/dummyHistoryItem.js:17 msgid "(Empty)" msgstr "(Vide)" #: src/gnome-shell/dummyHistoryItem.js:22 msgid "(No result)" msgstr "(Aucun résultat)" #: src/gnome-shell/emptyHistoryItem.js:14 #, fuzzy msgid "Empty history" msgstr "vide l'historique" #: src/gnome-shell/stateSwitch.js:12 #, fuzzy msgid "Track changes" msgstr "Suivre les changements du presse-papier" #: src/gnome-shell/uiItem.js:14 #, fuzzy msgid "Graphical tool" msgstr "Lancer l'interface graphique" #: src/libgpaste/gpaste/gpaste-util.c:636 msgid "Could not create history dir" msgstr "Impossible de créer le dossier d'historique" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-macros.h:38 msgid "Failed to register the gtk application" msgstr "Impossible d'inscrire l'application gtk au registre" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:108 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:119 msgid "General behaviour" msgstr "Comportement général" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:121 #: src/ui/gpaste-ui-switch.c:93 msgid "Track clipboard changes" msgstr "Suivre les changements du presse-papier" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:127 msgid "Close UI on select" msgstr "Fermer l'interface à la selection" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:133 msgid "Open the UI window centered" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:139 msgid "Save history" msgstr "Sauvegarder l'historique" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:150 msgid "Enable the gnome-shell extension" msgstr "Activer l'extension gnome-shell" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:156 msgid "Sync the daemon state with the extension's one" msgstr "Synchroniser l'état du démon avec celui de l'extension" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:162 msgid "" "When enabled, the daemon automatically starts or stops tracking clipboard " "changes to match the GNOME Shell extension's enabled state" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:166 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:174 msgid "Clipboards synchronization" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:168 msgid "Primary selection affects history" msgstr "La sélection primaire affecte l'historique" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:174 msgid "Synchronize clipboard with primary selection" msgstr "Synchroniser le presse-papier avec la sélection primaire" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:181 msgid "Optional features" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:183 msgid "Trim items" msgstr "Tronquer les éléments (éliminer les espaces au début et à la fin)" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:189 msgid "Detect growing lines" msgstr "Détecter les lignes grandissantes" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:195 msgid "" "When enabled, if a new clipboard entry starts with the previous one, the " "previous entry is replaced instead of creating a new one" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:92 msgid "History settings" msgstr "Préférences de l'historique" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:103 msgid "Resources limits" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:120 msgid "Text limits" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:122 msgid "Min text item length" msgstr "Taille minimale d'un élément textuel" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:129 msgid "Max text item length" msgstr "Taille maximale d'un élément textuel" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:137 #, fuzzy msgid "Display settings" msgstr "Préférences de l'historique" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:139 msgid "Max element size when displaying" msgstr "Taille maximale d'un élément quand on l'affiche" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:81 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:92 #, fuzzy msgid "Images settings" msgstr "L'interface de préférences" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:94 msgid "Images support" msgstr "Support des images" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:100 msgid "Image previews" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:106 msgid "Preview size" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:122 msgid "Keyboard shortcuts" msgstr "Raccourcis clavier" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:133 #, fuzzy msgid "History access" msgstr "Préférences de l'historique" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:150 msgid "Active element manipulation" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-util.c:51 #: src/ui/gpaste-ui-edit-item.c:84 src/ui/gpaste-ui-new-item.c:66 #: src/ui/gpaste-ui-panel.c:311 msgid "Cancel" msgstr "Annuler" #. Translators: %s is the name of the history being emptied. #: src/libgpaste/gpaste-gtk4/gpaste-gtk-util.c:126 #, fuzzy, c-format msgid "Do you really want to empty \"%s\"?" msgstr "Voulez-vous vraiment vider l'historique ?" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-util.c:127 #: src/ui/gpaste-ui-history.c:153 src/ui/gpaste-ui-history.c:428 #: src/ui/gpaste-ui-panel.c:517 msgid "Empty" msgstr "Vider" #: src/ui/gpaste-ui.c:47 msgid "Clipboard management system" msgstr "" #: src/ui/gpaste-ui-delete-item.c:46 src/ui/gpaste-ui-panel.c:358 #: src/ui/gpaste-ui-panel.c:518 msgid "Delete" msgstr "Supprimer" #: src/ui/gpaste-ui-edit-item.c:85 src/ui/gpaste-ui-edit-item.c:139 msgid "Edit" msgstr "Modifier" #: src/ui/gpaste-ui-history.c:266 #, fuzzy msgid "No Results" msgstr "(Aucun résultat)" #: src/ui/gpaste-ui-new-item.c:67 msgid "Add new item" msgstr "" #: src/ui/gpaste-ui-new-item.c:100 msgid "New item" msgstr "" #: src/ui/gpaste-ui-panel.c:307 msgid "Under which name do you want to backup this history?" msgstr "Sous quel nom voulez-vous copier cet historique ?" #: src/ui/gpaste-ui-panel.c:311 src/ui/gpaste-ui-panel.c:516 msgid "Backup" msgstr "Copier" #. Translators: %s is the name of the history being deleted. #: src/ui/gpaste-ui-panel.c:357 #, fuzzy, c-format msgid "Are you sure you want to delete \"%s\"?" msgstr "Voulez-vous vraiment supprimer cet historique ?" #: src/ui/gpaste-ui-panel.c:441 #, fuzzy msgid "Switch to history" msgstr "passer à un autre historique" #: src/ui/gpaste-ui-panel.c:448 msgid "Switch to" msgstr "Passer à" #: src/ui/gpaste-ui-reexec.c:45 msgid "Restart" msgstr "Redémarer" #: src/ui/gpaste-ui-reexec.c:45 msgid "Do you really want to restart the daemon?" msgstr "Voulez-vous vraiment redémarer le démon ?" #: src/ui/gpaste-ui-reexec.c:70 msgid "Restart the daemon" msgstr "Redémarer le démon" #: src/ui/gpaste-ui-search.c:23 msgid "Search" msgstr "Recherche" #: src/ui/gpaste-ui-settings.c:35 msgid "GPaste Settings" msgstr "Préférences du démon GPaste" #: src/ui/gpaste-ui-shortcuts-window.c:21 msgid "General" msgstr "Général" #: src/ui/gpaste-ui-switch.c:68 msgid "Stop" msgstr "Arrêter" #: src/ui/gpaste-ui-switch.c:68 msgid "Do you really want to stop tracking clipboard changes?" msgstr "" "Voulez-vous vraiment arrêter de suivre les changements du presse-papier ?" #: src/ui/gpaste-ui-upload-item.c:46 msgid "Upload" msgstr "Publier" #: src/ui/gpaste-ui-window.c:303 msgid "Quit" msgstr "Quitter" #: src/ui/gpaste-ui-window.c:380 #, fuzzy msgid "Histories" msgstr "Préférences de l'historique" #: src/ui/gpaste-ui-window.c:381 #, fuzzy msgid "History" msgstr "Préférences de l'historique" #~ msgid "is already running." #~ msgstr "tourne déjà." #~ msgid "New" #~ msgstr "Nouveau" #~ msgid "Keyboard Shortcuts" #~ msgstr "Raccourcis clavier" #~ msgid "About GPaste" #~ msgstr "À propos de GPaste" Keruspe-GPaste-724def1/po/gl.po000066400000000000000000001311051521206431300163050ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the GPaste package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: GPaste\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-06-09 21:21+0200\n" "PO-Revision-Date: 2022-04-01 15:11+0000\n" "Last-Translator: Xosé Calvo \n" "Language-Team: Galician \n" "Language: gl\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: Weblate 4.12-dev\n" #: data/control-center/42-gpaste.control-center.xml.in:2 msgid "@GETTEXT_PACKAGE@" msgstr "" #: data/control-center/42-gpaste.control-center.xml.in:3 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:136 #: src/ui/gpaste-ui-shortcuts-window.c:24 msgid "Launch the graphical tool" msgstr "Iniciar a ferramenta gráfica" #: data/control-center/42-gpaste.control-center.xml.in:4 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:153 #: src/ui/gpaste-ui-shortcuts-window.c:25 msgid "Mark the active item as being a password" msgstr "Marcar o elemento activo como contrasinal" #: data/control-center/42-gpaste.control-center.xml.in:5 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:167 #: src/ui/gpaste-ui-shortcuts-window.c:23 msgid "Delete the active item from history" msgstr "Eliminar o elemento activo do historial" #: data/control-center/42-gpaste.control-center.xml.in:6 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:143 #: src/ui/gpaste-ui-shortcuts-window.c:26 msgid "Display the history" msgstr "Mostrar o historial" #: data/control-center/42-gpaste.control-center.xml.in:7 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:177 #: src/ui/gpaste-ui-shortcuts-window.c:27 msgid "Sync the clipboard to the primary selection" msgstr "Sincronizar o portapapeis coa selección primaria" #: data/control-center/42-gpaste.control-center.xml.in:8 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:184 #: src/ui/gpaste-ui-shortcuts-window.c:28 msgid "Sync the primary selection to the clipboard" msgstr "Sincronizar a selección primara co portapapeis" #: data/control-center/42-gpaste.control-center.xml.in:9 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:160 #: src/ui/gpaste-ui-shortcuts-window.c:29 msgid "Upload the active item to a pastebin service" msgstr "Actualizar o elemento activo cun servizo tipo pastebin" #: data/desktop/org.gnome.GPaste.Daemon.desktop.in.in:3 #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:3 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:6 msgid "GPaste" msgstr "GPaste" #: data/desktop/org.gnome.GPaste.Preferences.desktop.in.in:3 msgid "GPaste Preferences" msgstr "Preferencias do GPaste" #: data/desktop/org.gnome.GPaste.Preferences.desktop.in.in:4 msgid "Manage your GPaste preferences" msgstr "Xestione as preferencias do GPaste" #: data/desktop/org.gnome.GPaste.Preferences.desktop.in.in:5 #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:6 msgid "Clipboard;Manager;Settings;Preferences;Configuration;" msgstr "Portapapeis;Xestor;Opcións;Preferencias;Configuración;" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:4 msgid "Clipboard Manager" msgstr "" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:5 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:7 msgid "Manage your clipboard history" msgstr "Xestione o historial do portapapeis" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:16 #, fuzzy msgid "Preferences" msgstr "Preferencias do GPaste" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:20 #: src/gnome-shell/aboutItem.js:13 src/ui/gpaste-ui-about.c:38 msgid "About" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:7 msgid "Max size of an element when displaying it" msgstr "Tamaño máximo dun elemento ao mostralo" #: data/gsettings/org.gnome.GPaste.gschema.xml:8 msgid "" "The extra stuff of that element will be replaced by \"…\", and newlines by " "\" \" when displaying from the applet, 0 to disable." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:15 msgid "Do we detect and replace growing lines in history?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:16 msgid "" "By default, selecting \"Here is\", then \"Here is an example\" will create " "two entries in the history. With this feature enabled, the first one will be " "replaced by the second one." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:24 msgid "The name of the current history" msgstr "O nome do historial actual" #: data/gsettings/org.gnome.GPaste.gschema.xml:25 msgid "The default name is \"history\"" msgstr "O nome predefinido é «historial»" #: data/gsettings/org.gnome.GPaste.gschema.xml:32 msgid "Do we save the images copied to history, or only text?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:33 msgid "By default, we're saving only text" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:40 msgid "Show image previews in the history?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:41 msgid "By default, we show previews of images in the history" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:49 msgid "Size of image previews in pixels" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:50 msgid "Default size is 100 pixels" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:57 msgid "Do we close the UI after selecting an item?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:58 msgid "By default, we close it" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:65 msgid "Do we open the UI window centered?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:66 msgid "By default, we open it where the mouse cursor is" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:73 msgid "The keyboard shortcut to launch the graphical interface" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:74 msgid "" "By default, hitting ctrl + alt + g does that (\"G\"). An empty " "string here disables this functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:82 msgid "The keyboard shortcut to mark the active item as being a password" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:83 msgid "" "By default, hitting ctrl + alt + s will mark the active item as being a " "password (\"S\"). An empty string here disables this " "functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:92 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:146 msgid "Max displayed history size" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:93 msgid "Maximum number of items displayed in the history" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:101 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:105 msgid "Max history size" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:102 msgid "Maximum number of items in history" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:110 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:112 msgid "Max memory usage (MB)" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:111 msgid "Maximum amount of memory used to store contents" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:119 msgid "Max text item size" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:120 msgid "Maximum size of a text item. Anything out of this boundary is ignored." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:128 msgid "Min text item size" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:129 msgid "Minimum size of a text item. Anything out of this boundary is ignored." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:136 msgid "The keyboard shortcut to delete the first element in history" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:137 msgid "" "By default, hitting ctrl + alt + v does that (\"V\"). An empty " "string here disables this functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:145 msgid "Does the primary selection affects history?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:146 msgid "By default, only clipboard (ctrl+c) affects history." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:153 msgid "" "Do we save all versions of selected rich text (e.g. html) or just the plain " "text version?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:154 msgid "By default, we're saving all" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:161 msgid "Do we save the history from one session to another?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:162 msgid "By default, we're saving it" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:169 msgid "The keyboard shortcut to display the menu" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:170 msgid "" "By default, hitting ctrl + alt + h displays the menu (\"H\"). An " "empty string here disables this functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:178 msgid "The keyboard shortcut to sync the clipboard to the primary selection" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:179 msgid "" "By default, hitting ctrl + alt + o syncs them (\"P\"). An empty " "string here disables this functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:187 msgid "The keyboard shortcut to sync the primary selection to the clipboard" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:188 msgid "" "By default, hitting ctrl + alt + p syncs them (\"P\"). An empty " "string here disables this functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:196 msgid "Are the primary selection and the clipboard synchronized?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:197 msgid "By default, the primary selection and the clipboard are independent." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:204 msgid "Do we track the clipboard changes?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:205 msgid "By default, we're tracking those changes." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:212 msgid "" "Do we sync the daemon state with the gnome-shell extension's one? (disable " "the daemon when disabling the extension)" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:213 msgid "By default, the daemon state keeps unchanged" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:220 msgid "Do we trim the textual items before adding them to history?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:221 msgid "" "Trimming means removing all trailing and ending spaces. By default, we're " "letting them as-is." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:229 msgid "" "The keyboard shortcut to upload the first element in history to a pastebin " "service" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:230 msgid "" "By default, hitting ctrl + alt + u does that (\"U\"). An empty " "string here disables this functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:238 msgid "Do we prompt for confirmation when emptying a history?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:239 msgid "By default, we do as it's a destructive action" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:9 msgid "Marc-Antoine Perennou" msgstr "Marc-Antoine Perennou" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:17 msgid "" "GPaste is a clipboard managing system allowing you to track and manage your " "clipboard history in a highly customizable way." msgstr "" "GPaste é un sistema de xestión do portapapeis que permite seguir e xestionar " "o historial do portapapeis dunha maneira altamente personalizábel." #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:20 msgid "" "GPaste provides you with a graphical tool allowing you to manage everything " "easily." msgstr "" "GPaste fornece unha ferramenta gráfica que permite xestionar todo facilmente." #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:27 msgid "The main UI" msgstr "A interface gráfica principal" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:31 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:35 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:39 msgid "The settings UI" msgstr "A interface gráfica de configuración" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:51 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:78 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:90 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:100 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:120 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:133 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:143 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:152 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:161 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:180 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:197 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:205 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:213 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:231 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:239 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:247 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:255 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:263 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:287 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:295 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:303 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:311 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:319 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:327 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:335 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:343 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:352 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:361 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:379 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:387 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:395 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:403 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:421 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:429 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:438 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:447 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:456 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:464 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:485 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:493 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:501 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:509 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:517 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:533 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:541 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:549 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:557 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:573 msgid "This is a maintenance release. Changes:" msgstr "Esta é unha publicación de mantemento. Cambios:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:53 msgid "Fix building without the GNOME Shell extension (-Dgnome-shell=false)" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:54 msgid "" "Restore GTK deprecation version-gating and drop the unused build-time gjs " "dependency" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:55 msgid "Target GNOME Shell 50 in the extension" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:56 msgid "Bump the library soversions to reflect the API/ABI changes since 45.8" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:62 msgid "" "This is a major release porting GPaste to GTK 4 and libadwaita. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:64 msgid "Port the daemon, history UI and preferences to GTK 4 and libadwaita" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:65 msgid "Show image thumbnails in the history, with configurable preview size" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:66 msgid "" "Support global keyboard shortcuts on Wayland through the XDG GlobalShortcuts " "portal" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:67 msgid "Recognise copied colours as dedicated colour items" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:68 msgid "" "Give keybindings human-readable descriptions and install a daemon desktop " "file" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:69 msgid "Fix images sometimes being repeatedly re-added to the history" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:70 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:81 msgid "" "Fix keyboard shortcuts not triggering when NumLock and CapsLock are both " "active" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:71 msgid "" "Fix several crashes (search provider, UI lifetime, GNOME Shell extension) " "and memory leaks" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:72 msgid "Modernise the GNOME Shell extension to current conventions" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:80 msgid "Fix use-after-free crash in the GNOME Shell search provider" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:82 msgid "" "Fix memory leaks when re-copying history items and when rebinding shortcuts" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:83 msgid "Fix potential crash when enforcing a very small history size" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:84 msgid "Build: ship the GSettings schema as a static file" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:92 msgid "" "GNOME Shell extension now retries the daemon connection before giving up" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:93 msgid "Fix test crash when GrabAccelerators is not allowed" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:94 msgid "Build: simplify gsettings compilation for tests" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:102 msgid "Fix GC crash and signal leak when disabling the GNOME Shell extension" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:103 msgid "GNOME Shell extension now handles daemon connection failure gracefully" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:104 msgid "Fix crash when a history item has no value yet" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:105 msgid "Fix image files not being deleted when history items are removed" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:106 msgid "Fix image files stored in wrong directory" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:107 msgid "Fix keyboard focus being stolen by history items on hover" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:108 msgid "" "Fix key events incorrectly forwarded to search when another entry has focus" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:109 msgid "Fix signal loop when updating shortcut entries from settings" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:110 msgid "Fix default history item count not reset after history deletion" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:111 msgid "Enforce minimum window size to prevent unresizable state" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:112 msgid "Add descriptive tooltips for settings entries" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:113 msgid "Build: explicitly link libgpaste libraries against libc" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:114 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:127 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:137 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:146 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:155 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:164 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:174 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:225 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:267 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:281 msgid "Translations updates" msgstr "Actualizacións das traducións" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:122 msgid "" "Fix infinite Pango assertion loop that could fill disk when clipboard " "content contained tab characters" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:123 msgid "Various bug fixes and memory management improvements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:124 msgid "Daemon improvements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:125 msgid "GNOME Shell extension improvements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:126 msgid "GLib >= 2.76 is now required" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:135 msgid "Support for gnome 50" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:136 msgid "Support for gnome 49" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:145 msgid "Support for gnome 48" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:154 msgid "Support for gnome 47" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:163 msgid "Support for gnome 46" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:170 #, fuzzy msgid "Stable release for GNOME 45. Changes:" msgstr "Primeira publicación para GNOME 42. Cambios:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:172 msgid "Port to gnome 45" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:173 msgid "Add setting to open ui window centered" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:182 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:199 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:233 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:289 msgid "Fix a bug leading to history with only one item" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:188 #, fuzzy msgid "First release for GNOME 44. Changes:" msgstr "Primeira publicación para GNOME 42. Cambios:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:190 msgid "gcr 4 is now required" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:191 msgid "Port to gnome 44" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:207 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:241 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:297 msgid "Avoid crash under heavy memory load" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:215 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:249 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:305 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:381 msgid "Respect --use-index when displaying history" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:221 #, fuzzy msgid "First release for GNOME 43. Changes:" msgstr "Primeira publicación para GNOME 42. Cambios:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:223 msgid "Port to GNOME 43" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:224 msgid "Internal preparation for gtk4 port" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:257 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:313 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:389 msgid "Open GPaste UI where the mouse pointer is" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:265 msgid "Fixes to the new preferences tool" msgstr "Arranxos na nova ferramenta de preferencias" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:266 msgid "Style fixes" msgstr "Arranxos de estilo" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:273 msgid "First release for GNOME 42. Changes:" msgstr "Primeira publicación para GNOME 42. Cambios:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:275 msgid "" "Old libgpaste replaced by a new minimal libgpaste-2 with no gtk dependency" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:276 msgid "New libgpaste-gtk3 for utils and settings ui" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:277 msgid "New libgpaste-gtk4 for utils and preferences ui" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:278 msgid "New gtk4 based gpaste-preferences utility" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:279 msgid "Autotools are no longer supported" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:280 msgid "Extension updated for gnome-shell 42" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:321 msgid "fix the storage path for meson builds" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:329 msgid "fix some race conditions in history handling" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:337 msgid "better fix crash when there is no history yet" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:345 msgid "fix crash when there is no history yet" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:346 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:355 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:364 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:373 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:397 msgid "translations update" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:354 msgid "fix gnome-shell exntesion when the daemon restarts" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:363 msgid "Fix keybindings for wayland" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:370 msgid "First release for GNOME 41. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:372 msgid "port to gnome-shell 41" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:405 msgid "fix a crash in memory usage checking" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:412 msgid "First release for GNOME 40. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:414 msgid "port to gnome-shell 40" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:415 msgid "placeholder for gnome-shell prefs" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:423 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:487 msgid "fix X11 keybinder outside of GNOME" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:431 msgid "better handling and reporting of invalid uuids passed to gpaste-client" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:432 msgid "" "gpaste-client now has a --use-index argument for several subcommands to use " "index instead of uuid" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:440 msgid "fix the make-password keybinding" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:441 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:450 msgid "updated translations" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:449 msgid "gnome-shell extension warning fixes" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:458 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:495 msgid "gnome-shell extension cosmetic updates" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:466 msgid "Disable images support by default (can be reenabled in preferences)" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:467 msgid "Search now includes passwords (using their names)" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:468 msgid "systemd integration enhancements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:474 msgid "First release for GNOME 3.38. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:476 msgid "Drop the Tracking DBus signal" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:477 msgid "Switch to uuids to identify items" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:478 msgid "Bump DBus interface to org.gnome.GPaste2" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:479 msgid "Update to gnome-shell 3.38.0" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:503 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:535 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:577 msgid "Fix activating items using Ctrl-Number in gnome-shell" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:511 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:543 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:576 msgid "Fix keybinding regrab with gnome-shell" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:519 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:551 msgid "Fix keybinding grab with gnome-shell" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:525 msgid "First release for GNOME 3.36. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:527 msgid "Update to gnome-shell 3.36.0" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:559 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:575 msgid "Compatibility with recent appstream-glib" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:565 msgid "First release for GNOME 3.34. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:567 msgid "Update to gnome-shell 3.34.0" msgstr "" #: src/client/gpaste-client.c:146 msgid "Couldn't spawn" msgstr "" #: src/client/gpaste-client.c:158 #, c-format msgid "Usage:\n" msgstr "Uso:\n" #. Translators: help for gpaste history #: src/client/gpaste-client.c:160 msgid "print the history with UUIDs" msgstr "" #. Translators: help for gpaste history-size #: src/client/gpaste-client.c:162 msgid "print the size of the history" msgstr "" #. Translators: help for gpaste get-history #: src/client/gpaste-client.c:164 msgid "get the name of the current history" msgstr "" #. Translators: help for gpaste backup-history #. Translators: help for gpaste switch-history #. Translators: help for gpaste delete-history #. Translators: help for gpaste add-password #. Translators: help for gpaste set-password #. Translators: help for gpaste delete-passworf #: src/client/gpaste-client.c:166 src/client/gpaste-client.c:168 #: src/client/gpaste-client.c:170 src/client/gpaste-client.c:176 #: src/client/gpaste-client.c:188 src/client/gpaste-client.c:192 msgid "name" msgstr "nome" #: src/client/gpaste-client.c:166 msgid "backup current history" msgstr "" #: src/client/gpaste-client.c:168 msgid "switch to another history" msgstr "" #: src/client/gpaste-client.c:170 msgid "delete a history" msgstr "" #. Translators: help for gpaste list-histories #: src/client/gpaste-client.c:172 msgid "list available histories" msgstr "" #. Translators: help for gpaste add #: src/client/gpaste-client.c:174 msgid "text" msgstr "texto" #: src/client/gpaste-client.c:174 msgid "set text to clipboard" msgstr "" #: src/client/gpaste-client.c:176 msgid "password" msgstr "contrasinal" #: src/client/gpaste-client.c:176 msgid "add the name - password couple to the clipboard" msgstr "" #. Translators: help for gpaste rename-password #: src/client/gpaste-client.c:178 msgid "old name" msgstr "nome anterior" #: src/client/gpaste-client.c:178 msgid "new name" msgstr "novo nome" #: src/client/gpaste-client.c:178 msgid "rename the password" msgstr "" #. Translators: help for gpaste get #: src/client/gpaste-client.c:180 msgid "get the item from the history" msgstr "" #. Translators: help for gpaste select #: src/client/gpaste-client.c:182 msgid "set the item from the history to the clipboard" msgstr "" #. Translators: help for gpaste replace #: src/client/gpaste-client.c:184 msgid "contents" msgstr "" #: src/client/gpaste-client.c:184 msgid "" "replace the contents of the item from the history with the provided " "one" msgstr "" #. Translators: help for gpaste merge #: src/client/gpaste-client.c:186 msgid "" "merge the items matching the UUIDs from the history and put the result in " "the clipboard" msgstr "" #: src/client/gpaste-client.c:188 msgid "set the item from the history as a password named " msgstr "" #. Translators: help for gpaste delete #: src/client/gpaste-client.c:190 msgid "delete item from the history" msgstr "" #: src/client/gpaste-client.c:192 msgid "delete the password from the history" msgstr "" #. Translators: help for gpaste file #: src/client/gpaste-client.c:194 msgid "path" msgstr "ruta" #: src/client/gpaste-client.c:194 msgid "put the content of the file at into the clipboard" msgstr "" #. Translators: help for whatever | gpaste #: src/client/gpaste-client.c:196 msgid "whatever" msgstr "" #: src/client/gpaste-client.c:196 msgid "set the output of whatever to clipboard" msgstr "" #. Translators: help for gpaste empty #: src/client/gpaste-client.c:198 msgid "empty the history" msgstr "" #. Translators: help for gpaste start #: src/client/gpaste-client.c:200 msgid "start tracking clipboard changes" msgstr "" #. Translators: help for gpaste stop #: src/client/gpaste-client.c:202 msgid "stop tracking clipboard changes" msgstr "" #. Translators: help for gpaste quit #: src/client/gpaste-client.c:204 msgid "alias for stop" msgstr "" #. Translators: help for gpaste daemon-reexec #: src/client/gpaste-client.c:206 msgid "reexecute the daemon (after upgrading...)" msgstr "" #. Translators: help for gpaste preferences #: src/client/gpaste-client.c:208 msgid "launch the configuration tool" msgstr "" #. Translators: help for gpaste ui #: src/client/gpaste-client.c:210 msgid "launch the graphical tool" msgstr "" #. Translators: help for gpaste show-history #: src/client/gpaste-client.c:212 msgid "make the applet or extension display the history" msgstr "" #. Translators: help for gpaste upload #: src/client/gpaste-client.c:214 msgid "upload the item to a pastebin service" msgstr "" #. Translators: help for gpaste version #: src/client/gpaste-client.c:216 msgid "display the version" msgstr "" #. Translators: help for gpaste daemon-version #: src/client/gpaste-client.c:218 msgid "display the daemon version" msgstr "" #. Translators: help for gpaste help #: src/client/gpaste-client.c:220 msgid "display this help" msgstr "" #. Translators: help for gpaste about #: src/client/gpaste-client.c:222 msgid "display the about dialog" msgstr "" #: src/client/gpaste-client.c:225 #, c-format msgid "Convenience options:" msgstr "" #. Translators: help for --use-index #: src/client/gpaste-client.c:228 msgid "use the index of the item instead of its UUID" msgstr "" #: src/client/gpaste-client.c:231 #, c-format msgid "Display options:" msgstr "" #. Translators: help for --oneline #: src/client/gpaste-client.c:234 msgid "display each item on only one line" msgstr "" #. Translators: help for --raw #: src/client/gpaste-client.c:236 msgid "display each item raw (without line numbers)" msgstr "" #. Translators: help for --reverse #: src/client/gpaste-client.c:238 msgid "display the items in reverse order" msgstr "" #. Translators: help for --zero #: src/client/gpaste-client.c:240 msgid "use a NUL character instead of a new line betweean each item" msgstr "" #: src/client/gpaste-client.c:243 #, c-format msgid "Merge options:" msgstr "" #. Translators: help for --decoration #. Translators: help for --separator #: src/client/gpaste-client.c:246 src/client/gpaste-client.c:248 msgid "string" msgstr "" #: src/client/gpaste-client.c:246 msgid "" "add the given decoration to the beginning and the end of each item before " "merging" msgstr "" #: src/client/gpaste-client.c:248 msgid "add the given separator between each item when merging" msgstr "" #: src/client/gpaste-client.c:345 #, c-format msgid "Successfully reexecuted the daemon\n" msgstr "" #: src/client/gpaste-client.c:486 msgid "Cannot add non utf8 data as text." msgstr "" #: src/client/gpaste-client.c:796 src/ui/gpaste-ui-window.c:353 #: src/ui/gpaste-ui-window.c:354 msgid "Couldn't connect to GPaste daemon" msgstr "" #: src/daemon/gpaste-color-item.c:73 msgid "[Color]" msgstr "" #. Translators: strftime format for image timestamps. Rearrange to match your locale's date/time convention. #: src/daemon/gpaste-image-item.c:219 msgid "%m/%d/%y %T" msgstr "" #. Translators: Image item displayed in history. %d is width, %d is height, %s is the formatted date. #: src/daemon/gpaste-image-item.c:221 #, c-format msgid "[Image, %d x %d (%s)]" msgstr "" #: src/daemon/gpaste-make-password-keybinding.c:50 msgid "Convert to Password" msgstr "" #. This is the prefix displayed in history to identify a password #: src/daemon/gpaste-password-item.c:65 msgid "Password" msgstr "" #: src/daemon/gpaste-pop-keybinding.c:64 #, fuzzy msgid "Pop from History" msgstr "Mostrar o historial" #: src/daemon/gpaste-show-history-keybinding.c:49 #, fuzzy msgid "Show History" msgstr "Mostrar o historial" #: src/daemon/gpaste-sync-clipboard-to-primary-keybinding.c:46 #, fuzzy msgid "Sync Clipboard to Primary" msgstr "Sincronizar o portapapeis coa selección primaria" #: src/daemon/gpaste-sync-primary-to-clipboard-keybinding.c:46 #, fuzzy msgid "Sync Primary to Clipboard" msgstr "Sincronizar a selección primara co portapapeis" #: src/daemon/gpaste-ui-keybinding.c:43 msgid "Launch UI" msgstr "" #: src/daemon/gpaste-upload-keybinding.c:64 msgid "Upload to Pastebin" msgstr "" #: src/daemon/gpaste-uris-item.c:87 msgid "[Files] " msgstr "" #: src/daemon/main.c:32 msgid "Stop signal received, exiting" msgstr "" #: src/daemon/main.c:69 msgid "Could not acquire DBus name." msgstr "" #: src/gnome-shell/dummyHistoryItem.js:12 msgid "(Couldn't connect to GPaste daemon)" msgstr "" #: src/gnome-shell/dummyHistoryItem.js:17 msgid "(Empty)" msgstr "" #: src/gnome-shell/dummyHistoryItem.js:22 msgid "(No result)" msgstr "" #: src/gnome-shell/emptyHistoryItem.js:14 #, fuzzy msgid "Empty history" msgstr "Mostrar o historial" #: src/gnome-shell/stateSwitch.js:12 msgid "Track changes" msgstr "" #: src/gnome-shell/uiItem.js:14 #, fuzzy msgid "Graphical tool" msgstr "Iniciar a ferramenta gráfica" #: src/libgpaste/gpaste/gpaste-util.c:636 msgid "Could not create history dir" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-macros.h:38 msgid "Failed to register the gtk application" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:108 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:119 msgid "General behaviour" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:121 #: src/ui/gpaste-ui-switch.c:93 msgid "Track clipboard changes" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:127 msgid "Close UI on select" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:133 msgid "Open the UI window centered" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:139 msgid "Save history" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:150 msgid "Enable the gnome-shell extension" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:156 msgid "Sync the daemon state with the extension's one" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:162 msgid "" "When enabled, the daemon automatically starts or stops tracking clipboard " "changes to match the GNOME Shell extension's enabled state" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:166 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:174 msgid "Clipboards synchronization" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:168 msgid "Primary selection affects history" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:174 msgid "Synchronize clipboard with primary selection" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:181 msgid "Optional features" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:183 msgid "Trim items" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:189 msgid "Detect growing lines" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:195 msgid "" "When enabled, if a new clipboard entry starts with the previous one, the " "previous entry is replaced instead of creating a new one" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:92 msgid "History settings" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:103 msgid "Resources limits" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:120 msgid "Text limits" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:122 msgid "Min text item length" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:129 msgid "Max text item length" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:137 msgid "Display settings" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:139 msgid "Max element size when displaying" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:81 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:92 #, fuzzy msgid "Images settings" msgstr "A interface gráfica de configuración" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:94 msgid "Images support" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:100 msgid "Image previews" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:106 msgid "Preview size" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:122 msgid "Keyboard shortcuts" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:133 msgid "History access" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:150 msgid "Active element manipulation" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-util.c:51 #: src/ui/gpaste-ui-edit-item.c:84 src/ui/gpaste-ui-new-item.c:66 #: src/ui/gpaste-ui-panel.c:311 msgid "Cancel" msgstr "" #. Translators: %s is the name of the history being emptied. #: src/libgpaste/gpaste-gtk4/gpaste-gtk-util.c:126 #, c-format msgid "Do you really want to empty \"%s\"?" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-util.c:127 #: src/ui/gpaste-ui-history.c:153 src/ui/gpaste-ui-history.c:428 #: src/ui/gpaste-ui-panel.c:517 msgid "Empty" msgstr "" #: src/ui/gpaste-ui.c:47 msgid "Clipboard management system" msgstr "" #: src/ui/gpaste-ui-delete-item.c:46 src/ui/gpaste-ui-panel.c:358 #: src/ui/gpaste-ui-panel.c:518 msgid "Delete" msgstr "" #: src/ui/gpaste-ui-edit-item.c:85 src/ui/gpaste-ui-edit-item.c:139 msgid "Edit" msgstr "" #: src/ui/gpaste-ui-history.c:266 msgid "No Results" msgstr "" #: src/ui/gpaste-ui-new-item.c:67 msgid "Add new item" msgstr "" #: src/ui/gpaste-ui-new-item.c:100 msgid "New item" msgstr "" #: src/ui/gpaste-ui-panel.c:307 msgid "Under which name do you want to backup this history?" msgstr "" #: src/ui/gpaste-ui-panel.c:311 src/ui/gpaste-ui-panel.c:516 msgid "Backup" msgstr "" #. Translators: %s is the name of the history being deleted. #: src/ui/gpaste-ui-panel.c:357 #, c-format msgid "Are you sure you want to delete \"%s\"?" msgstr "" #: src/ui/gpaste-ui-panel.c:441 #, fuzzy msgid "Switch to history" msgstr "Mostrar o historial" #: src/ui/gpaste-ui-panel.c:448 msgid "Switch to" msgstr "" #: src/ui/gpaste-ui-reexec.c:45 msgid "Restart" msgstr "" #: src/ui/gpaste-ui-reexec.c:45 msgid "Do you really want to restart the daemon?" msgstr "" #: src/ui/gpaste-ui-reexec.c:70 msgid "Restart the daemon" msgstr "" #: src/ui/gpaste-ui-search.c:23 msgid "Search" msgstr "" #: src/ui/gpaste-ui-settings.c:35 msgid "GPaste Settings" msgstr "" #: src/ui/gpaste-ui-shortcuts-window.c:21 msgid "General" msgstr "" #: src/ui/gpaste-ui-switch.c:68 msgid "Stop" msgstr "" #: src/ui/gpaste-ui-switch.c:68 msgid "Do you really want to stop tracking clipboard changes?" msgstr "" #: src/ui/gpaste-ui-upload-item.c:46 msgid "Upload" msgstr "" #: src/ui/gpaste-ui-window.c:303 msgid "Quit" msgstr "" #: src/ui/gpaste-ui-window.c:380 msgid "Histories" msgstr "" #: src/ui/gpaste-ui-window.c:381 #, fuzzy msgid "History" msgstr "Mostrar o historial" Keruspe-GPaste-724def1/po/is.po000066400000000000000000001437421521206431300163300ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the GPaste package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: GPaste\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-06-09 21:21+0200\n" "PO-Revision-Date: 2025-07-19 18:02+0000\n" "Last-Translator: Sveinn í Felli \n" "Language-Team: Icelandic \n" "Language: is\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 % 10 != 1 || n % 100 == 11;\n" "X-Generator: Weblate 5.13-dev\n" #: data/control-center/42-gpaste.control-center.xml.in:2 msgid "@GETTEXT_PACKAGE@" msgstr "@GETTEXT_PACKAGE@" #: data/control-center/42-gpaste.control-center.xml.in:3 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:136 #: src/ui/gpaste-ui-shortcuts-window.c:24 msgid "Launch the graphical tool" msgstr "Ræsa myndræna verkfærið" #: data/control-center/42-gpaste.control-center.xml.in:4 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:153 #: src/ui/gpaste-ui-shortcuts-window.c:25 msgid "Mark the active item as being a password" msgstr "Merkja virka atriðið sem lykilorð" #: data/control-center/42-gpaste.control-center.xml.in:5 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:167 #: src/ui/gpaste-ui-shortcuts-window.c:23 msgid "Delete the active item from history" msgstr "Eyða virka atriðinu úr ferlinum" #: data/control-center/42-gpaste.control-center.xml.in:6 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:143 #: src/ui/gpaste-ui-shortcuts-window.c:26 msgid "Display the history" msgstr "Birta ferilinn" #: data/control-center/42-gpaste.control-center.xml.in:7 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:177 #: src/ui/gpaste-ui-shortcuts-window.c:27 msgid "Sync the clipboard to the primary selection" msgstr "Samstilla klippispjaldið við aðalval (primary - miðjuhnappur)" #: data/control-center/42-gpaste.control-center.xml.in:8 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:184 #: src/ui/gpaste-ui-shortcuts-window.c:28 msgid "Sync the primary selection to the clipboard" msgstr "Samstilla aðalval (primary - miðjuhnappur) við klippispjaldið" #: data/control-center/42-gpaste.control-center.xml.in:9 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:160 #: src/ui/gpaste-ui-shortcuts-window.c:29 msgid "Upload the active item to a pastebin service" msgstr "Senda virkt atriði inn á úrklippuþjónustu (pastebin)" #: data/desktop/org.gnome.GPaste.Daemon.desktop.in.in:3 #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:3 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:6 msgid "GPaste" msgstr "GPaste" #: data/desktop/org.gnome.GPaste.Preferences.desktop.in.in:3 msgid "GPaste Preferences" msgstr "Kjörstillingar GPaste" #: data/desktop/org.gnome.GPaste.Preferences.desktop.in.in:4 msgid "Manage your GPaste preferences" msgstr "Sýslaðu með kjörstillingar GPaste" #: data/desktop/org.gnome.GPaste.Preferences.desktop.in.in:5 #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:6 msgid "Clipboard;Manager;Settings;Preferences;Configuration;" msgstr "Klippispjald;Stýring;Stillingar;Kjörstillingar;Uppsetning;" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:4 #, fuzzy msgid "Clipboard Manager" msgstr "Rekja breytingar á klippispjaldi" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:5 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:7 msgid "Manage your clipboard history" msgstr "Sýslaðu með feril klippispjalds" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:16 #, fuzzy msgid "Preferences" msgstr "Kjörstillingar GPaste" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:20 #: src/gnome-shell/aboutItem.js:13 src/ui/gpaste-ui-about.c:38 msgid "About" msgstr "Um hugbúnaðinn" #: data/gsettings/org.gnome.GPaste.gschema.xml:7 msgid "Max size of an element when displaying it" msgstr "Hámarksstærð einingar við birtingu" #: data/gsettings/org.gnome.GPaste.gschema.xml:8 msgid "" "The extra stuff of that element will be replaced by \"…\", and newlines by " "\" \" when displaying from the applet, 0 to disable." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:15 msgid "Do we detect and replace growing lines in history?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:16 msgid "" "By default, selecting \"Here is\", then \"Here is an example\" will create " "two entries in the history. With this feature enabled, the first one will be " "replaced by the second one." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:24 msgid "The name of the current history" msgstr "Heiti fyrirliggjandi ferlis" #: data/gsettings/org.gnome.GPaste.gschema.xml:25 msgid "The default name is \"history\"" msgstr "Sjálfgefna heitið er \"ferill\"" #: data/gsettings/org.gnome.GPaste.gschema.xml:32 msgid "Do we save the images copied to history, or only text?" msgstr "Eru vistaðar myndir sem hafa verið afritaðar eða einungis texti?" #: data/gsettings/org.gnome.GPaste.gschema.xml:33 msgid "By default, we're saving only text" msgstr "Sjálfgefið er einungis texti vistaður" #: data/gsettings/org.gnome.GPaste.gschema.xml:40 msgid "Show image previews in the history?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:41 msgid "By default, we show previews of images in the history" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:49 msgid "Size of image previews in pixels" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:50 msgid "Default size is 100 pixels" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:57 msgid "Do we close the UI after selecting an item?" msgstr "Lokast viðmótið eftir að atriði er valið?" #: data/gsettings/org.gnome.GPaste.gschema.xml:58 msgid "By default, we close it" msgstr "Sjálfgefið er því lokað" #: data/gsettings/org.gnome.GPaste.gschema.xml:65 msgid "Do we open the UI window centered?" msgstr "Opnast viðmótsglugginn miðjaður?" #: data/gsettings/org.gnome.GPaste.gschema.xml:66 msgid "By default, we open it where the mouse cursor is" msgstr "Sjálfgefið opnast það þar músarbendillinn er" #: data/gsettings/org.gnome.GPaste.gschema.xml:73 msgid "The keyboard shortcut to launch the graphical interface" msgstr "Flýtilykill til að ræsa myndræna viðmótið" #: data/gsettings/org.gnome.GPaste.gschema.xml:74 msgid "" "By default, hitting ctrl + alt + g does that (\"G\"). An empty " "string here disables this functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:82 msgid "The keyboard shortcut to mark the active item as being a password" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:83 msgid "" "By default, hitting ctrl + alt + s will mark the active item as being a " "password (\"S\"). An empty string here disables this " "functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:92 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:146 msgid "Max displayed history size" msgstr "Hámarksstærð birts ferils" #: data/gsettings/org.gnome.GPaste.gschema.xml:93 msgid "Maximum number of items displayed in the history" msgstr "Hámarksfjöldi atriða til að birta í ferli" #: data/gsettings/org.gnome.GPaste.gschema.xml:101 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:105 msgid "Max history size" msgstr "Hámarksstærð ferils" #: data/gsettings/org.gnome.GPaste.gschema.xml:102 msgid "Maximum number of items in history" msgstr "Hámarksfjöldi atriða í ferli" #: data/gsettings/org.gnome.GPaste.gschema.xml:110 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:112 msgid "Max memory usage (MB)" msgstr "Hámarksnotkun minnis (MB)" #: data/gsettings/org.gnome.GPaste.gschema.xml:111 msgid "Maximum amount of memory used to store contents" msgstr "Mesta magn minnis sem notað er til að geyma efni" #: data/gsettings/org.gnome.GPaste.gschema.xml:119 msgid "Max text item size" msgstr "Hámarksstærð textaatriða" #: data/gsettings/org.gnome.GPaste.gschema.xml:120 msgid "Maximum size of a text item. Anything out of this boundary is ignored." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:128 msgid "Min text item size" msgstr "Lágmarksstærð textaatriða" #: data/gsettings/org.gnome.GPaste.gschema.xml:129 msgid "Minimum size of a text item. Anything out of this boundary is ignored." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:136 msgid "The keyboard shortcut to delete the first element in history" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:137 msgid "" "By default, hitting ctrl + alt + v does that (\"V\"). An empty " "string here disables this functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:145 msgid "Does the primary selection affects history?" msgstr "Hefur aðalval (primary - miðjuhnappur) áhrif á feril?" #: data/gsettings/org.gnome.GPaste.gschema.xml:146 msgid "By default, only clipboard (ctrl+c) affects history." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:153 msgid "" "Do we save all versions of selected rich text (e.g. html) or just the plain " "text version?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:154 msgid "By default, we're saving all" msgstr "Sjálfgefið vistum við allt" #: data/gsettings/org.gnome.GPaste.gschema.xml:161 msgid "Do we save the history from one session to another?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:162 msgid "By default, we're saving it" msgstr "Sjálfgefið vistum við það" #: data/gsettings/org.gnome.GPaste.gschema.xml:169 msgid "The keyboard shortcut to display the menu" msgstr "Lyklaborðsvísun til að birta valmyndina" #: data/gsettings/org.gnome.GPaste.gschema.xml:170 msgid "" "By default, hitting ctrl + alt + h displays the menu (\"H\"). An " "empty string here disables this functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:178 msgid "The keyboard shortcut to sync the clipboard to the primary selection" msgstr "" "Flýtivísun til að samstilla klippispjaldið við aðalval (primary - " "miðjuhnappur)" #: data/gsettings/org.gnome.GPaste.gschema.xml:179 msgid "" "By default, hitting ctrl + alt + o syncs them (\"P\"). An empty " "string here disables this functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:187 msgid "The keyboard shortcut to sync the primary selection to the clipboard" msgstr "" "Flýtivísun til að samstilla aðalval (primary - miðjuhnappur) við " "klippispjaldið" #: data/gsettings/org.gnome.GPaste.gschema.xml:188 msgid "" "By default, hitting ctrl + alt + p syncs them (\"P\"). An empty " "string here disables this functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:196 msgid "Are the primary selection and the clipboard synchronized?" msgstr "Eru aðalval (primary - miðjuhnappur) og klippispjaldið samstillt?" #: data/gsettings/org.gnome.GPaste.gschema.xml:197 msgid "By default, the primary selection and the clipboard are independent." msgstr "" "Sjálfgefið eru aðalval (primary - miðjuhnappur) og klippispjaldið óháð hvort " "öðru." #: data/gsettings/org.gnome.GPaste.gschema.xml:204 msgid "Do we track the clipboard changes?" msgstr "Er fylgst með breytingum á klippispjaldinu?" #: data/gsettings/org.gnome.GPaste.gschema.xml:205 msgid "By default, we're tracking those changes." msgstr "Sjálfgefið eru þessar breytingar raktar." #: data/gsettings/org.gnome.GPaste.gschema.xml:212 msgid "" "Do we sync the daemon state with the gnome-shell extension's one? (disable " "the daemon when disabling the extension)" msgstr "" "Er staða vaktarans samstillt við stöðu gnome-shell viðaukans? (gera " "vaktarann óvirkan við að gera viðaukann óvirkan)" #: data/gsettings/org.gnome.GPaste.gschema.xml:213 msgid "By default, the daemon state keeps unchanged" msgstr "Sjálfgefið helst staða vaktarans óbreytt" #: data/gsettings/org.gnome.GPaste.gschema.xml:220 msgid "Do we trim the textual items before adding them to history?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:221 msgid "" "Trimming means removing all trailing and ending spaces. By default, we're " "letting them as-is." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:229 msgid "" "The keyboard shortcut to upload the first element in history to a pastebin " "service" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:230 msgid "" "By default, hitting ctrl + alt + u does that (\"U\"). An empty " "string here disables this functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:238 msgid "Do we prompt for confirmation when emptying a history?" msgstr "Kalla eftir staðfestingu þegar ferill er tæmdur?" #: data/gsettings/org.gnome.GPaste.gschema.xml:239 msgid "By default, we do as it's a destructive action" msgstr "Það er sjálfgefið gert þar sem um óafturkræfa aðgerð er að ræða" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:9 msgid "Marc-Antoine Perennou" msgstr "Marc-Antoine Perennou" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:17 msgid "" "GPaste is a clipboard managing system allowing you to track and manage your " "clipboard history in a highly customizable way." msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:20 msgid "" "GPaste provides you with a graphical tool allowing you to manage everything " "easily." msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:27 msgid "The main UI" msgstr "Aðalviðmótið" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:31 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:35 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:39 msgid "The settings UI" msgstr "Stillingaviðmótið" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:51 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:78 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:90 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:100 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:120 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:133 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:143 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:152 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:161 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:180 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:197 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:205 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:213 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:231 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:239 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:247 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:255 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:263 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:287 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:295 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:303 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:311 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:319 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:327 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:335 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:343 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:352 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:361 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:379 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:387 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:395 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:403 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:421 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:429 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:438 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:447 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:456 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:464 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:485 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:493 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:501 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:509 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:517 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:533 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:541 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:549 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:557 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:573 msgid "This is a maintenance release. Changes:" msgstr "Þetta er viðhaldsuppfærsla. Helstu breytingar:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:53 msgid "Fix building without the GNOME Shell extension (-Dgnome-shell=false)" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:54 msgid "" "Restore GTK deprecation version-gating and drop the unused build-time gjs " "dependency" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:55 msgid "Target GNOME Shell 50 in the extension" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:56 msgid "Bump the library soversions to reflect the API/ABI changes since 45.8" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:62 msgid "" "This is a major release porting GPaste to GTK 4 and libadwaita. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:64 msgid "Port the daemon, history UI and preferences to GTK 4 and libadwaita" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:65 msgid "Show image thumbnails in the history, with configurable preview size" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:66 msgid "" "Support global keyboard shortcuts on Wayland through the XDG GlobalShortcuts " "portal" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:67 msgid "Recognise copied colours as dedicated colour items" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:68 msgid "" "Give keybindings human-readable descriptions and install a daemon desktop " "file" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:69 msgid "Fix images sometimes being repeatedly re-added to the history" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:70 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:81 msgid "" "Fix keyboard shortcuts not triggering when NumLock and CapsLock are both " "active" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:71 msgid "" "Fix several crashes (search provider, UI lifetime, GNOME Shell extension) " "and memory leaks" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:72 msgid "Modernise the GNOME Shell extension to current conventions" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:80 msgid "Fix use-after-free crash in the GNOME Shell search provider" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:82 msgid "" "Fix memory leaks when re-copying history items and when rebinding shortcuts" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:83 msgid "Fix potential crash when enforcing a very small history size" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:84 msgid "Build: ship the GSettings schema as a static file" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:92 msgid "" "GNOME Shell extension now retries the daemon connection before giving up" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:93 msgid "Fix test crash when GrabAccelerators is not allowed" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:94 msgid "Build: simplify gsettings compilation for tests" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:102 msgid "Fix GC crash and signal leak when disabling the GNOME Shell extension" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:103 msgid "GNOME Shell extension now handles daemon connection failure gracefully" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:104 msgid "Fix crash when a history item has no value yet" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:105 msgid "Fix image files not being deleted when history items are removed" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:106 msgid "Fix image files stored in wrong directory" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:107 msgid "Fix keyboard focus being stolen by history items on hover" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:108 msgid "" "Fix key events incorrectly forwarded to search when another entry has focus" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:109 msgid "Fix signal loop when updating shortcut entries from settings" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:110 msgid "Fix default history item count not reset after history deletion" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:111 msgid "Enforce minimum window size to prevent unresizable state" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:112 msgid "Add descriptive tooltips for settings entries" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:113 msgid "Build: explicitly link libgpaste libraries against libc" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:114 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:127 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:137 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:146 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:155 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:164 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:174 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:225 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:267 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:281 msgid "Translations updates" msgstr "Uppfærslur þýðinga" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:122 msgid "" "Fix infinite Pango assertion loop that could fill disk when clipboard " "content contained tab characters" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:123 msgid "Various bug fixes and memory management improvements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:124 msgid "Daemon improvements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:125 msgid "GNOME Shell extension improvements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:126 #, fuzzy msgid "GLib >= 2.76 is now required" msgstr "gcr 4 er núna nauðsynlegt" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:135 #, fuzzy msgid "Support for gnome 50" msgstr "Stuðningur við GNOME 48" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:136 #, fuzzy msgid "Support for gnome 49" msgstr "Stuðningur við GNOME 48" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:145 msgid "Support for gnome 48" msgstr "Stuðningur við GNOME 48" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:154 msgid "Support for gnome 47" msgstr "Stuðningur við GNOME 47" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:163 msgid "Support for gnome 46" msgstr "Stuðningur við GNOME 46" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:170 msgid "Stable release for GNOME 45. Changes:" msgstr "Þetta er stöðug útgáfa fyrir GNOME 45. Helstu breytingar:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:172 msgid "Port to gnome 45" msgstr "Yfirfærsla í GNOME 45" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:173 msgid "Add setting to open ui window centered" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:182 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:199 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:233 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:289 msgid "Fix a bug leading to history with only one item" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:188 msgid "First release for GNOME 44. Changes:" msgstr "Fyrsta útgáfa fyrir GNOME 44. Helstu breytingar:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:190 msgid "gcr 4 is now required" msgstr "gcr 4 er núna nauðsynlegt" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:191 msgid "Port to gnome 44" msgstr "Yfirfærsla í GNOME 44" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:207 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:241 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:297 msgid "Avoid crash under heavy memory load" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:215 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:249 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:305 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:381 msgid "Respect --use-index when displaying history" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:221 msgid "First release for GNOME 43. Changes:" msgstr "Fyrsta útgáfa fyrir GNOME 43. Helstu breytingar:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:223 msgid "Port to GNOME 43" msgstr "Yfirfærsla í GNOME 43" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:224 msgid "Internal preparation for gtk4 port" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:257 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:313 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:389 msgid "Open GPaste UI where the mouse pointer is" msgstr "Opna viðmót GPaste þar sem músarbendillinn er" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:265 msgid "Fixes to the new preferences tool" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:266 msgid "Style fixes" msgstr "Lagfæringar á stílum" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:273 msgid "First release for GNOME 42. Changes:" msgstr "Fyrsta útgáfa fyrir GNOME 42. Helstu breytingar:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:275 msgid "" "Old libgpaste replaced by a new minimal libgpaste-2 with no gtk dependency" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:276 msgid "New libgpaste-gtk3 for utils and settings ui" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:277 msgid "New libgpaste-gtk4 for utils and preferences ui" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:278 msgid "New gtk4 based gpaste-preferences utility" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:279 msgid "Autotools are no longer supported" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:280 msgid "Extension updated for gnome-shell 42" msgstr "Viðauki uppfærður fyrir gnome-shell 42" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:321 msgid "fix the storage path for meson builds" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:329 msgid "fix some race conditions in history handling" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:337 msgid "better fix crash when there is no history yet" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:345 msgid "fix crash when there is no history yet" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:346 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:355 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:364 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:373 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:397 msgid "translations update" msgstr "uppfærsla þýðinga" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:354 msgid "fix gnome-shell exntesion when the daemon restarts" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:363 msgid "Fix keybindings for wayland" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:370 msgid "First release for GNOME 41. Changes:" msgstr "Fyrsta útgáfa fyrir GNOME 41. Helstu breytingar:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:372 msgid "port to gnome-shell 41" msgstr "Yfirfærsla í gnome-shell 41" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:405 msgid "fix a crash in memory usage checking" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:412 msgid "First release for GNOME 40. Changes:" msgstr "Fyrsta útgáfa fyrir GNOME 40. Helstu breytingar:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:414 msgid "port to gnome-shell 40" msgstr "Yfirfærsla í gnome-shell 40" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:415 msgid "placeholder for gnome-shell prefs" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:423 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:487 msgid "fix X11 keybinder outside of GNOME" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:431 msgid "better handling and reporting of invalid uuids passed to gpaste-client" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:432 msgid "" "gpaste-client now has a --use-index argument for several subcommands to use " "index instead of uuid" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:440 msgid "fix the make-password keybinding" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:441 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:450 msgid "updated translations" msgstr "uppfærðar þýðingar" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:449 msgid "gnome-shell extension warning fixes" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:458 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:495 msgid "gnome-shell extension cosmetic updates" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:466 msgid "Disable images support by default (can be reenabled in preferences)" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:467 msgid "Search now includes passwords (using their names)" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:468 msgid "systemd integration enhancements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:474 msgid "First release for GNOME 3.38. Changes:" msgstr "Fyrsta útgáfa fyrir GNOME 3.38. Helstu breytingar:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:476 msgid "Drop the Tracking DBus signal" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:477 msgid "Switch to uuids to identify items" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:478 msgid "Bump DBus interface to org.gnome.GPaste2" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:479 msgid "Update to gnome-shell 3.38.0" msgstr "Uppfærsla í gnome-shell 3.38.0" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:503 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:535 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:577 msgid "Fix activating items using Ctrl-Number in gnome-shell" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:511 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:543 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:576 msgid "Fix keybinding regrab with gnome-shell" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:519 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:551 msgid "Fix keybinding grab with gnome-shell" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:525 msgid "First release for GNOME 3.36. Changes:" msgstr "Fyrsta útgáfa fyrir GNOME 3.36. Helstu breytingar:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:527 msgid "Update to gnome-shell 3.36.0" msgstr "Uppfærsla í gnome-shell 3.36.0" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:559 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:575 msgid "Compatibility with recent appstream-glib" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:565 msgid "First release for GNOME 3.34. Changes:" msgstr "Fyrsta útgáfa fyrir GNOME 3.34. Helstu breytingar:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:567 msgid "Update to gnome-shell 3.34.0" msgstr "Uppfærsla í gnome-shell 3.34.0" #: src/client/gpaste-client.c:146 msgid "Couldn't spawn" msgstr "Gat ekki búið til nýtt" #: src/client/gpaste-client.c:158 #, c-format msgid "Usage:\n" msgstr "Notkun:\n" #. Translators: help for gpaste history #: src/client/gpaste-client.c:160 msgid "print the history with UUIDs" msgstr "birta ferilinn með UUID-auðkennum" #. Translators: help for gpaste history-size #: src/client/gpaste-client.c:162 msgid "print the size of the history" msgstr "birta stærð ferilsins" #. Translators: help for gpaste get-history #: src/client/gpaste-client.c:164 msgid "get the name of the current history" msgstr "sækja heiti fyrirliggjandi ferlis" #. Translators: help for gpaste backup-history #. Translators: help for gpaste switch-history #. Translators: help for gpaste delete-history #. Translators: help for gpaste add-password #. Translators: help for gpaste set-password #. Translators: help for gpaste delete-passworf #: src/client/gpaste-client.c:166 src/client/gpaste-client.c:168 #: src/client/gpaste-client.c:170 src/client/gpaste-client.c:176 #: src/client/gpaste-client.c:188 src/client/gpaste-client.c:192 msgid "name" msgstr "heiti" #: src/client/gpaste-client.c:166 msgid "backup current history" msgstr "taka öryggisafrit af fyrirliggjandi ferli" #: src/client/gpaste-client.c:168 msgid "switch to another history" msgstr "skipta í annan feril" #: src/client/gpaste-client.c:170 msgid "delete a history" msgstr "eyða ferli" #. Translators: help for gpaste list-histories #: src/client/gpaste-client.c:172 msgid "list available histories" msgstr "birta tiltæka ferla" #. Translators: help for gpaste add #: src/client/gpaste-client.c:174 msgid "text" msgstr "texti" #: src/client/gpaste-client.c:174 msgid "set text to clipboard" msgstr "setja texta á klippispjald" #: src/client/gpaste-client.c:176 msgid "password" msgstr "lykilorð" #: src/client/gpaste-client.c:176 msgid "add the name - password couple to the clipboard" msgstr "bæta pari af nafni-lykilorði á klippispjaldið" #. Translators: help for gpaste rename-password #: src/client/gpaste-client.c:178 msgid "old name" msgstr "eldra heiti" #: src/client/gpaste-client.c:178 msgid "new name" msgstr "nýtt heiti" #: src/client/gpaste-client.c:178 msgid "rename the password" msgstr "endurnefna lykilorðið" #. Translators: help for gpaste get #: src/client/gpaste-client.c:180 msgid "get the item from the history" msgstr "ná í atriðisins úr ferlinum" #. Translators: help for gpaste select #: src/client/gpaste-client.c:182 msgid "set the item from the history to the clipboard" msgstr "setja atriðisins úr ferlinum á klippispjaldið" #. Translators: help for gpaste replace #: src/client/gpaste-client.c:184 msgid "contents" msgstr "efni" #: src/client/gpaste-client.c:184 msgid "" "replace the contents of the item from the history with the provided " "one" msgstr "skipta út efni atriðisins úr ferlinum með því uppgefna" #. Translators: help for gpaste merge #: src/client/gpaste-client.c:186 msgid "" "merge the items matching the UUIDs from the history and put the result in " "the clipboard" msgstr "" "sameina atriðin sem samsvara UUID-auðkenninu úr ferlinum og setja útkomuna á " "klippispjaldið" #: src/client/gpaste-client.c:188 msgid "set the item from the history as a password named " msgstr "setja atriðisins úr ferlinum sem lykilorð með heitinu " #. Translators: help for gpaste delete #: src/client/gpaste-client.c:190 msgid "delete item from the history" msgstr "eyða atriðinu úr ferlinum" #: src/client/gpaste-client.c:192 msgid "delete the password from the history" msgstr "eyða lykilorðinu úr ferlinum" #. Translators: help for gpaste file #: src/client/gpaste-client.c:194 msgid "path" msgstr "slóð" #: src/client/gpaste-client.c:194 msgid "put the content of the file at into the clipboard" msgstr "setja innihald skrárinnar á inn í klippispjaldið" #. Translators: help for whatever | gpaste #: src/client/gpaste-client.c:196 msgid "whatever" msgstr "hvað sem er" #: src/client/gpaste-client.c:196 msgid "set the output of whatever to clipboard" msgstr "setja úttak af hverju sem er á klippispjald" #. Translators: help for gpaste empty #: src/client/gpaste-client.c:198 msgid "empty the history" msgstr "tæma ferilinn" #. Translators: help for gpaste start #: src/client/gpaste-client.c:200 msgid "start tracking clipboard changes" msgstr "byrja að rekja breytingar á klippispjaldi" #. Translators: help for gpaste stop #: src/client/gpaste-client.c:202 msgid "stop tracking clipboard changes" msgstr "hætta að rekja breytingar á klippispjaldi" #. Translators: help for gpaste quit #: src/client/gpaste-client.c:204 msgid "alias for stop" msgstr "samheiti fyrir stopp" #. Translators: help for gpaste daemon-reexec #: src/client/gpaste-client.c:206 msgid "reexecute the daemon (after upgrading...)" msgstr "endurkeyra vaktarann (eftir uppfærslu...)" #. Translators: help for gpaste preferences #: src/client/gpaste-client.c:208 msgid "launch the configuration tool" msgstr "ræsa stillingaverkfærið" #. Translators: help for gpaste ui #: src/client/gpaste-client.c:210 msgid "launch the graphical tool" msgstr "ræsa myndræna verkfærið" #. Translators: help for gpaste show-history #: src/client/gpaste-client.c:212 msgid "make the applet or extension display the history" msgstr "láta smáforritið eða viðaukann birta ferilinn" #. Translators: help for gpaste upload #: src/client/gpaste-client.c:214 msgid "upload the item to a pastebin service" msgstr "Senda atriðið inn á úrklippuþjónustu (pastebin)" #. Translators: help for gpaste version #: src/client/gpaste-client.c:216 msgid "display the version" msgstr "birta útgáfunúmerið" #. Translators: help for gpaste daemon-version #: src/client/gpaste-client.c:218 msgid "display the daemon version" msgstr "birta útgáfu vaktarans" #. Translators: help for gpaste help #: src/client/gpaste-client.c:220 msgid "display this help" msgstr "birta þennan hjálpartexta" #. Translators: help for gpaste about #: src/client/gpaste-client.c:222 msgid "display the about dialog" msgstr "birta glugga með upplýsingum um forritið" #: src/client/gpaste-client.c:225 #, c-format msgid "Convenience options:" msgstr "Valkostir til þæginda:" #. Translators: help for --use-index #: src/client/gpaste-client.c:228 msgid "use the index of the item instead of its UUID" msgstr "nota atriðisvísi atriða í stað UUID-auðkennis þeirra" #: src/client/gpaste-client.c:231 #, c-format msgid "Display options:" msgstr "Valkostir birtingar:" #. Translators: help for --oneline #: src/client/gpaste-client.c:234 msgid "display each item on only one line" msgstr "birta hvert atriði á aðeins einni línu" #. Translators: help for --raw #: src/client/gpaste-client.c:236 msgid "display each item raw (without line numbers)" msgstr "birta hvert atriði hrátt (án línunúmera)" #. Translators: help for --reverse #: src/client/gpaste-client.c:238 msgid "display the items in reverse order" msgstr "birta atriðin í öfugri röð" #. Translators: help for --zero #: src/client/gpaste-client.c:240 msgid "use a NUL character instead of a new line betweean each item" msgstr "nota NUL-staf í staðinn fyrir nýlínu milli atriða" #: src/client/gpaste-client.c:243 #, c-format msgid "Merge options:" msgstr "Valkostir fyrir sameiningu:" #. Translators: help for --decoration #. Translators: help for --separator #: src/client/gpaste-client.c:246 src/client/gpaste-client.c:248 msgid "string" msgstr "strengur" #: src/client/gpaste-client.c:246 msgid "" "add the given decoration to the beginning and the end of each item before " "merging" msgstr "" "bæta uppgefinni skreytingu á byrjun og enda hvers atriðis fyrir sameiningu" #: src/client/gpaste-client.c:248 msgid "add the given separator between each item when merging" msgstr "bæta uppgefnum aðgreini milli allra atriða við sameiningu" #: src/client/gpaste-client.c:345 #, c-format msgid "Successfully reexecuted the daemon\n" msgstr "Tókst að endurkeyra vaktarann\n" #: src/client/gpaste-client.c:486 msgid "Cannot add non utf8 data as text." msgstr "Get ekki bætt við 'ekki-utf8' gögnum sem texta." #: src/client/gpaste-client.c:796 src/ui/gpaste-ui-window.c:353 #: src/ui/gpaste-ui-window.c:354 msgid "Couldn't connect to GPaste daemon" msgstr "Ekki tókst að tengjast GPaste-vaktaranum" #: src/daemon/gpaste-color-item.c:73 msgid "[Color]" msgstr "" #. Translators: strftime format for image timestamps. Rearrange to match your locale's date/time convention. #: src/daemon/gpaste-image-item.c:219 msgid "%m/%d/%y %T" msgstr "%m/%d/%y %T" #. Translators: Image item displayed in history. %d is width, %d is height, %s is the formatted date. #: src/daemon/gpaste-image-item.c:221 #, c-format msgid "[Image, %d x %d (%s)]" msgstr "[mynd, %d x %d (%s)]" #: src/daemon/gpaste-make-password-keybinding.c:50 #, fuzzy msgid "Convert to Password" msgstr "endurnefna lykilorðið" #. This is the prefix displayed in history to identify a password #: src/daemon/gpaste-password-item.c:65 msgid "Password" msgstr "Lykilorð" #: src/daemon/gpaste-pop-keybinding.c:64 #, fuzzy msgid "Pop from History" msgstr "Aðgangur að ferli" #: src/daemon/gpaste-show-history-keybinding.c:49 #, fuzzy msgid "Show History" msgstr "Aðgangur að ferli" #: src/daemon/gpaste-sync-clipboard-to-primary-keybinding.c:46 #, fuzzy msgid "Sync Clipboard to Primary" msgstr "Samstilla klippispjaldið við aðalval (primary - miðjuhnappur)" #: src/daemon/gpaste-sync-primary-to-clipboard-keybinding.c:46 #, fuzzy msgid "Sync Primary to Clipboard" msgstr "Samstilla aðalval (primary - miðjuhnappur) við klippispjaldið" #: src/daemon/gpaste-ui-keybinding.c:43 msgid "Launch UI" msgstr "" #: src/daemon/gpaste-upload-keybinding.c:64 msgid "Upload to Pastebin" msgstr "" #: src/daemon/gpaste-uris-item.c:87 msgid "[Files] " msgstr "[Skrár] " #: src/daemon/main.c:32 msgid "Stop signal received, exiting" msgstr "Tók við stopp-merki, hætti núna" #: src/daemon/main.c:69 msgid "Could not acquire DBus name." msgstr "Gat ekki fengið DBus-nafn." #: src/gnome-shell/dummyHistoryItem.js:12 msgid "(Couldn't connect to GPaste daemon)" msgstr "(Ekki tókst að tengjast GPaste-vaktaranum)" #: src/gnome-shell/dummyHistoryItem.js:17 msgid "(Empty)" msgstr "(tómt)" #: src/gnome-shell/dummyHistoryItem.js:22 msgid "(No result)" msgstr "(Engar niðurstöður)" #: src/gnome-shell/emptyHistoryItem.js:14 msgid "Empty history" msgstr "Tæma feril" #: src/gnome-shell/stateSwitch.js:12 msgid "Track changes" msgstr "Rekja breytingar" #: src/gnome-shell/uiItem.js:14 msgid "Graphical tool" msgstr "Myndrænt verkfæri" #: src/libgpaste/gpaste/gpaste-util.c:636 msgid "Could not create history dir" msgstr "Gat ekki búið til möppu undir feril" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-macros.h:38 msgid "Failed to register the gtk application" msgstr "Gat ekki kerfisskráð gtk-forritið" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:108 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:119 msgid "General behaviour" msgstr "Almenn hegðun" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:121 #: src/ui/gpaste-ui-switch.c:93 msgid "Track clipboard changes" msgstr "Rekja breytingar á klippispjaldi" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:127 msgid "Close UI on select" msgstr "Loka viðmóti við val" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:133 msgid "Open the UI window centered" msgstr "Opna viðmótsgluggann miðjaðan" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:139 msgid "Save history" msgstr "Vista feril" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:150 msgid "Enable the gnome-shell extension" msgstr "Virkja gnome-shell skeljarviðbótina" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:156 msgid "Sync the daemon state with the extension's one" msgstr "Samstilla stöðu vaktarans við stöðu viðaukans" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:162 msgid "" "When enabled, the daemon automatically starts or stops tracking clipboard " "changes to match the GNOME Shell extension's enabled state" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:166 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:174 msgid "Clipboards synchronization" msgstr "Samstilling klippispjalda" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:168 msgid "Primary selection affects history" msgstr "Aðalval (primary - miðjuhnappur) hefur áhrif á feril" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:174 msgid "Synchronize clipboard with primary selection" msgstr "Samræma klippispjald við aðalval (primary - miðjuhnappur)" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:181 msgid "Optional features" msgstr "Valkvæðir eiginleikar" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:183 msgid "Trim items" msgstr "Stytta atriði" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:189 msgid "Detect growing lines" msgstr "Skynja vaxandi línur" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:195 msgid "" "When enabled, if a new clipboard entry starts with the previous one, the " "previous entry is replaced instead of creating a new one" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:92 msgid "History settings" msgstr "Stillingar ferils" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:103 msgid "Resources limits" msgstr "Takmörk tilfanga" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:120 msgid "Text limits" msgstr "Takmörk texta" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:122 msgid "Min text item length" msgstr "Lágmarkslengd textaatriða" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:129 msgid "Max text item length" msgstr "Hámarkslengd textaatriða" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:137 msgid "Display settings" msgstr "Birtingarstillingar" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:139 msgid "Max element size when displaying" msgstr "Hámarksstærð einingar við birtingu" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:81 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:92 #, fuzzy msgid "Images settings" msgstr "Stillingaviðmótið" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:94 msgid "Images support" msgstr "Stuðningur við myndir" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:100 msgid "Image previews" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:106 msgid "Preview size" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:122 msgid "Keyboard shortcuts" msgstr "Flýtileiðir á lyklaborði" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:133 msgid "History access" msgstr "Aðgangur að ferli" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:150 msgid "Active element manipulation" msgstr "Virk meðhöndlun eininga" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-util.c:51 #: src/ui/gpaste-ui-edit-item.c:84 src/ui/gpaste-ui-new-item.c:66 #: src/ui/gpaste-ui-panel.c:311 msgid "Cancel" msgstr "Hætta við" #. Translators: %s is the name of the history being emptied. #: src/libgpaste/gpaste-gtk4/gpaste-gtk-util.c:126 #, fuzzy, c-format msgid "Do you really want to empty \"%s\"?" msgstr "Viltu örugglega tæma ferilinn?" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-util.c:127 #: src/ui/gpaste-ui-history.c:153 src/ui/gpaste-ui-history.c:428 #: src/ui/gpaste-ui-panel.c:517 msgid "Empty" msgstr "Tómt" #: src/ui/gpaste-ui.c:47 msgid "Clipboard management system" msgstr "" #: src/ui/gpaste-ui-delete-item.c:46 src/ui/gpaste-ui-panel.c:358 #: src/ui/gpaste-ui-panel.c:518 msgid "Delete" msgstr "Eyða" #: src/ui/gpaste-ui-edit-item.c:85 src/ui/gpaste-ui-edit-item.c:139 msgid "Edit" msgstr "Breyta" #: src/ui/gpaste-ui-history.c:266 #, fuzzy msgid "No Results" msgstr "(Engar niðurstöður)" #: src/ui/gpaste-ui-new-item.c:67 msgid "Add new item" msgstr "" #: src/ui/gpaste-ui-new-item.c:100 msgid "New item" msgstr "" #: src/ui/gpaste-ui-panel.c:307 msgid "Under which name do you want to backup this history?" msgstr "Undir hvaða heiti viltu taka öryggisafrit af þessum ferli?" #: src/ui/gpaste-ui-panel.c:311 src/ui/gpaste-ui-panel.c:516 msgid "Backup" msgstr "Öryggisafrit" #. Translators: %s is the name of the history being deleted. #: src/ui/gpaste-ui-panel.c:357 #, fuzzy, c-format msgid "Are you sure you want to delete \"%s\"?" msgstr "Ertu viss um að þú viljir eyða þessum ferli?" #: src/ui/gpaste-ui-panel.c:441 #, fuzzy msgid "Switch to history" msgstr "skipta í annan feril" #: src/ui/gpaste-ui-panel.c:448 msgid "Switch to" msgstr "Skipta í" #: src/ui/gpaste-ui-reexec.c:45 msgid "Restart" msgstr "Endurræsa" #: src/ui/gpaste-ui-reexec.c:45 msgid "Do you really want to restart the daemon?" msgstr "Viltu í alvörunni endurræsa vaktarann?" #: src/ui/gpaste-ui-reexec.c:70 msgid "Restart the daemon" msgstr "Endurræsa vaktarann" #: src/ui/gpaste-ui-search.c:23 msgid "Search" msgstr "Leita" #: src/ui/gpaste-ui-settings.c:35 msgid "GPaste Settings" msgstr "Stillingar GPaste" #: src/ui/gpaste-ui-shortcuts-window.c:21 msgid "General" msgstr "Almennt" #: src/ui/gpaste-ui-switch.c:68 msgid "Stop" msgstr "Stöðva" #: src/ui/gpaste-ui-switch.c:68 msgid "Do you really want to stop tracking clipboard changes?" msgstr "Viltu virkilega hætta að rekja breytingar á klippispjaldi?" #: src/ui/gpaste-ui-upload-item.c:46 msgid "Upload" msgstr "Senda inn" #: src/ui/gpaste-ui-window.c:303 msgid "Quit" msgstr "" #: src/ui/gpaste-ui-window.c:380 #, fuzzy msgid "Histories" msgstr "Aðgangur að ferli" #: src/ui/gpaste-ui-window.c:381 #, fuzzy msgid "History" msgstr "Aðgangur að ferli" #~ msgid "is already running." #~ msgstr "er þegar í gangi." #~ msgid "Open UI window centered" #~ msgstr "Opna viðmótsglugga miðjaðan" #~ msgid "New" #~ msgstr "Nýtt" Keruspe-GPaste-724def1/po/it.po000066400000000000000000001556571521206431300163410ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Marc-Antoine Perennou # This file is distributed under the same license as the gpaste package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: gpaste 3.38.4\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-06-09 21:21+0200\n" "PO-Revision-Date: 2025-07-15 11:01+0000\n" "Last-Translator: magnogna \n" "Language-Team: Italian \n" "Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 5.13-dev\n" #: data/control-center/42-gpaste.control-center.xml.in:2 msgid "@GETTEXT_PACKAGE@" msgstr "@GETTEXT_PACKAGE@" #: data/control-center/42-gpaste.control-center.xml.in:3 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:136 #: src/ui/gpaste-ui-shortcuts-window.c:24 msgid "Launch the graphical tool" msgstr "Lancia lo strumento grafico" #: data/control-center/42-gpaste.control-center.xml.in:4 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:153 #: src/ui/gpaste-ui-shortcuts-window.c:25 msgid "Mark the active item as being a password" msgstr "Segna l'elemento attivo come password" #: data/control-center/42-gpaste.control-center.xml.in:5 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:167 #: src/ui/gpaste-ui-shortcuts-window.c:23 msgid "Delete the active item from history" msgstr "Elimina l'elemento attivo dalla cronologia" #: data/control-center/42-gpaste.control-center.xml.in:6 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:143 #: src/ui/gpaste-ui-shortcuts-window.c:26 msgid "Display the history" msgstr "Mostra la cronologia" #: data/control-center/42-gpaste.control-center.xml.in:7 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:177 #: src/ui/gpaste-ui-shortcuts-window.c:27 msgid "Sync the clipboard to the primary selection" msgstr "Sincronizza gli appunti alla selezione primaria" #: data/control-center/42-gpaste.control-center.xml.in:8 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:184 #: src/ui/gpaste-ui-shortcuts-window.c:28 msgid "Sync the primary selection to the clipboard" msgstr "Sincronizza la selezione primaria agli appunti" #: data/control-center/42-gpaste.control-center.xml.in:9 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:160 #: src/ui/gpaste-ui-shortcuts-window.c:29 msgid "Upload the active item to a pastebin service" msgstr "Carica l'elemento attivo in un servizio pastebin" #: data/desktop/org.gnome.GPaste.Daemon.desktop.in.in:3 #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:3 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:6 msgid "GPaste" msgstr "GPaste" #: data/desktop/org.gnome.GPaste.Preferences.desktop.in.in:3 msgid "GPaste Preferences" msgstr "Preferenze di GPaste" #: data/desktop/org.gnome.GPaste.Preferences.desktop.in.in:4 msgid "Manage your GPaste preferences" msgstr "Gestione preferenze di GPaste" #: data/desktop/org.gnome.GPaste.Preferences.desktop.in.in:5 #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:6 msgid "Clipboard;Manager;Settings;Preferences;Configuration;" msgstr "Appunti;Manager;Impostazioni;Preferenze;Configurazione;" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:4 #, fuzzy msgid "Clipboard Manager" msgstr "Traccia i cambiamenti negli appunti" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:5 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:7 msgid "Manage your clipboard history" msgstr "Gestisci la cronologia degli appunti" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:16 #, fuzzy msgid "Preferences" msgstr "Preferenze di GPaste" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:20 #: src/gnome-shell/aboutItem.js:13 src/ui/gpaste-ui-about.c:38 msgid "About" msgstr "Informazioni" #: data/gsettings/org.gnome.GPaste.gschema.xml:7 msgid "Max size of an element when displaying it" msgstr "Dimensione massima di un elemento quando viene visualizzato" #: data/gsettings/org.gnome.GPaste.gschema.xml:8 msgid "" "The extra stuff of that element will be replaced by \"…\", and newlines by " "\" \" when displaying from the applet, 0 to disable." msgstr "" "La roba extra di quell'elemento sarà rimpiazzata da \"...\", ed i ritorni a " "capo da \" \" nella visualizzazione dall'applet, 0 per disabilitare." #: data/gsettings/org.gnome.GPaste.gschema.xml:15 msgid "Do we detect and replace growing lines in history?" msgstr "Rilevare e sostituire le linee in aumento nella cronologia?" #: data/gsettings/org.gnome.GPaste.gschema.xml:16 msgid "" "By default, selecting \"Here is\", then \"Here is an example\" will create " "two entries in the history. With this feature enabled, the first one will be " "replaced by the second one." msgstr "" "Per impostazione predefinita, selezionando \"Ecco un\", poi \"Ecco un " "esempio\" verranno create due voci nella cronologia. Quando questa funzione " "è attiva, la prima voce verrà rimpiazzata dalla seconda." #: data/gsettings/org.gnome.GPaste.gschema.xml:24 msgid "The name of the current history" msgstr "Il nome della cronologia corrente" #: data/gsettings/org.gnome.GPaste.gschema.xml:25 msgid "The default name is \"history\"" msgstr "Il nome predefinito è \"cronologia\"" #: data/gsettings/org.gnome.GPaste.gschema.xml:32 msgid "Do we save the images copied to history, or only text?" msgstr "Salvare le immagine copiate nella cronologia, o solo il testo?" #: data/gsettings/org.gnome.GPaste.gschema.xml:33 msgid "By default, we're saving only text" msgstr "Per impostazione predefinita, viene salvato solo il testo" #: data/gsettings/org.gnome.GPaste.gschema.xml:40 msgid "Show image previews in the history?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:41 msgid "By default, we show previews of images in the history" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:49 msgid "Size of image previews in pixels" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:50 msgid "Default size is 100 pixels" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:57 msgid "Do we close the UI after selecting an item?" msgstr "Chiudere l'interfaccia utente dopo aver selezionato un elemento?" #: data/gsettings/org.gnome.GPaste.gschema.xml:58 msgid "By default, we close it" msgstr "Per impostazione predefinita, viene chiusa" #: data/gsettings/org.gnome.GPaste.gschema.xml:65 msgid "Do we open the UI window centered?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:66 #, fuzzy msgid "By default, we open it where the mouse cursor is" msgstr "Apre l'interfaccia di GPaste dove si trova il puntatore del mouse" #: data/gsettings/org.gnome.GPaste.gschema.xml:73 msgid "The keyboard shortcut to launch the graphical interface" msgstr "La scorciatoia da tastiera per lanciare l'interfaccia grafica" #: data/gsettings/org.gnome.GPaste.gschema.xml:74 msgid "" "By default, hitting ctrl + alt + g does that (\"G\"). An empty " "string here disables this functionnality." msgstr "" "Per impostazione predefinita, ciò avviene premendo ctrl + alt + g " "(\"G\"). Una stringa vuota disabilita questa funzionalità." #: data/gsettings/org.gnome.GPaste.gschema.xml:82 msgid "The keyboard shortcut to mark the active item as being a password" msgstr "La scorciatoia da tastiera per segnare l'elemento attivo come password" #: data/gsettings/org.gnome.GPaste.gschema.xml:83 msgid "" "By default, hitting ctrl + alt + s will mark the active item as being a " "password (\"S\"). An empty string here disables this " "functionnality." msgstr "" "Per impostazione predefinita, premere ctrl + alt + s segna l'elemento attivo " "come password (\"S\"). Una stringa vuota disabilita questa " "funzionalità." #: data/gsettings/org.gnome.GPaste.gschema.xml:92 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:146 msgid "Max displayed history size" msgstr "Dimensione massima della cronologia visualizzata" #: data/gsettings/org.gnome.GPaste.gschema.xml:93 msgid "Maximum number of items displayed in the history" msgstr "Numero massimo di elementi mostrati nella cronologia" #: data/gsettings/org.gnome.GPaste.gschema.xml:101 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:105 msgid "Max history size" msgstr "Dimensione massima della cronologia" #: data/gsettings/org.gnome.GPaste.gschema.xml:102 msgid "Maximum number of items in history" msgstr "Numero massimo di elementi nella cronologia" #: data/gsettings/org.gnome.GPaste.gschema.xml:110 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:112 msgid "Max memory usage (MB)" msgstr "Memoria massima utilizzata (MB)" #: data/gsettings/org.gnome.GPaste.gschema.xml:111 msgid "Maximum amount of memory used to store contents" msgstr "Quantitativo massimo di memoria usato per memorizzare i contenuti" #: data/gsettings/org.gnome.GPaste.gschema.xml:119 msgid "Max text item size" msgstr "Dimensione massima degli elementi di testo" #: data/gsettings/org.gnome.GPaste.gschema.xml:120 msgid "Maximum size of a text item. Anything out of this boundary is ignored." msgstr "" "Dimensione massima di un elemento di testo. Qualsiasi cosa oltre questo " "limite viene ignorata." #: data/gsettings/org.gnome.GPaste.gschema.xml:128 msgid "Min text item size" msgstr "Dimensione minima degli elementi di testo" #: data/gsettings/org.gnome.GPaste.gschema.xml:129 msgid "Minimum size of a text item. Anything out of this boundary is ignored." msgstr "" "Dimensione minima di un elemento di testo. Qualsiasi cosa fuori da questo " "limite viene ignorata." #: data/gsettings/org.gnome.GPaste.gschema.xml:136 msgid "The keyboard shortcut to delete the first element in history" msgstr "" "Scorciatoia da tastiera per cancellare il primo elemento nella cronologia" #: data/gsettings/org.gnome.GPaste.gschema.xml:137 msgid "" "By default, hitting ctrl + alt + v does that (\"V\"). An empty " "string here disables this functionnality." msgstr "" "Per impostazione predefinita, ciò avviene premendo ctrl + alt + v " "(\"V\"). Una stringa vuota disabilita questa funzionalità." #: data/gsettings/org.gnome.GPaste.gschema.xml:145 msgid "Does the primary selection affects history?" msgstr "La selezione primaria ha effetto sulla cronologia?" #: data/gsettings/org.gnome.GPaste.gschema.xml:146 msgid "By default, only clipboard (ctrl+c) affects history." msgstr "" "Per impostazione predefinita, solo gli appunti (ctrl+c) hanno effetto sulla " "cronologia." #: data/gsettings/org.gnome.GPaste.gschema.xml:153 msgid "" "Do we save all versions of selected rich text (e.g. html) or just the plain " "text version?" msgstr "" "Salviamo tutte le versioni del rich text (ad es. html) selezionato o solo la " "versione plain text?" #: data/gsettings/org.gnome.GPaste.gschema.xml:154 msgid "By default, we're saving all" msgstr "Per impostazione predefinita, viene salvato tutto" #: data/gsettings/org.gnome.GPaste.gschema.xml:161 msgid "Do we save the history from one session to another?" msgstr "Salvare la cronologia da una sessione all'altra?" #: data/gsettings/org.gnome.GPaste.gschema.xml:162 msgid "By default, we're saving it" msgstr "Per impostazione predefinita, viene salvato" #: data/gsettings/org.gnome.GPaste.gschema.xml:169 msgid "The keyboard shortcut to display the menu" msgstr "La scorciatoia da tastiera per visualizzare il menu" #: data/gsettings/org.gnome.GPaste.gschema.xml:170 msgid "" "By default, hitting ctrl + alt + h displays the menu (\"H\"). An " "empty string here disables this functionnality." msgstr "" "Per impostazione predefinita, premere ctrl + alt + h mostra il menu " "(\"H\"). Una stringa vuota disabilita questa funzionalità." #: data/gsettings/org.gnome.GPaste.gschema.xml:178 msgid "The keyboard shortcut to sync the clipboard to the primary selection" msgstr "" "La scorciatoia da tastiera per sincronizzare dagli appunti alla selezione " "primaria" #: data/gsettings/org.gnome.GPaste.gschema.xml:179 msgid "" "By default, hitting ctrl + alt + o syncs them (\"P\"). An empty " "string here disables this functionnality." msgstr "" "Per impostazione predefinita, premere ctrl + alt + o li sincronizza " "(\"P\"). Una stringa vuota disabilita questa funzionalità." #: data/gsettings/org.gnome.GPaste.gschema.xml:187 msgid "The keyboard shortcut to sync the primary selection to the clipboard" msgstr "" "La scorciatoia da tastiera per sincronizzare dalla selezione primaria agli " "appunti" #: data/gsettings/org.gnome.GPaste.gschema.xml:188 msgid "" "By default, hitting ctrl + alt + p syncs them (\"P\"). An empty " "string here disables this functionnality." msgstr "" "Per impostazione predefinita, premere ctrl + alt + p li sincronizza " "(\"P\"). Una stringa vuota disabilita questa funzionalità." #: data/gsettings/org.gnome.GPaste.gschema.xml:196 msgid "Are the primary selection and the clipboard synchronized?" msgstr "La selezione primaria e gli appunti sono sincronizzati?" #: data/gsettings/org.gnome.GPaste.gschema.xml:197 msgid "By default, the primary selection and the clipboard are independent." msgstr "" "Per impostazione predefinita, la selezione primaria e gli appunti sono " "indipendenti." #: data/gsettings/org.gnome.GPaste.gschema.xml:204 msgid "Do we track the clipboard changes?" msgstr "Tracciamo i cambiamenti negli appunti?" #: data/gsettings/org.gnome.GPaste.gschema.xml:205 msgid "By default, we're tracking those changes." msgstr "Per impostazione predefinita, questi cambiamenti sono tracciati." #: data/gsettings/org.gnome.GPaste.gschema.xml:212 msgid "" "Do we sync the daemon state with the gnome-shell extension's one? (disable " "the daemon when disabling the extension)" msgstr "" "Sincronizziamo lo stato del demone con quello della estensione gnome-shell? " "(il demone viene disabilitato quando viene disabilitata l'estensione)" #: data/gsettings/org.gnome.GPaste.gschema.xml:213 msgid "By default, the daemon state keeps unchanged" msgstr "Per impostazione predefinita, lo stato del demone rimane inalterato" #: data/gsettings/org.gnome.GPaste.gschema.xml:220 msgid "Do we trim the textual items before adding them to history?" msgstr "Tagliare gli elementi testuali prima di aggiungerli alla cronologia?" #: data/gsettings/org.gnome.GPaste.gschema.xml:221 msgid "" "Trimming means removing all trailing and ending spaces. By default, we're " "letting them as-is." msgstr "" "Accorciare significa rimuovere tutta la spaziatura iniziale e finale. Per " "impostazione predefinita, viene lasciata com'è." #: data/gsettings/org.gnome.GPaste.gschema.xml:229 msgid "" "The keyboard shortcut to upload the first element in history to a pastebin " "service" msgstr "" "Scorciatoia da tastiera per caricare il primo elemento nella cronologia in " "un servizio pastebin" #: data/gsettings/org.gnome.GPaste.gschema.xml:230 msgid "" "By default, hitting ctrl + alt + u does that (\"U\"). An empty " "string here disables this functionnality." msgstr "" "Per impostazione predefinita, ciò avviene premendo ctrl + alt + u " "(\"U\"). Una stringa vuota disabilita questa funzionalità." #: data/gsettings/org.gnome.GPaste.gschema.xml:238 msgid "Do we prompt for confirmation when emptying a history?" msgstr "Chiedere conferma prima di svuotare la cronologia?" #: data/gsettings/org.gnome.GPaste.gschema.xml:239 msgid "By default, we do as it's a destructive action" msgstr "" "Per impostazione predefinita, viene chiesta poiché si tratta di un'azione " "distruttiva" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:9 msgid "Marc-Antoine Perennou" msgstr "Marc-Antoine Perennou" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:17 msgid "" "GPaste is a clipboard managing system allowing you to track and manage your " "clipboard history in a highly customizable way." msgstr "" "GPaste è un sistema per la gestione degli appunti che permette di tracciare " "e gestire la cronologia degli appunti in modo altamente personalizzabile." #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:20 msgid "" "GPaste provides you with a graphical tool allowing you to manage everything " "easily." msgstr "" "GPaste ti fornisce uno strumento grafico per gestire tutto agevolmente." #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:27 msgid "The main UI" msgstr "L'interfaccia utente principale" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:31 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:35 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:39 msgid "The settings UI" msgstr "L'interfaccia utente delle impostazioni" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:51 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:78 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:90 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:100 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:120 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:133 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:143 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:152 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:161 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:180 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:197 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:205 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:213 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:231 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:239 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:247 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:255 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:263 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:287 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:295 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:303 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:311 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:319 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:327 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:335 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:343 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:352 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:361 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:379 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:387 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:395 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:403 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:421 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:429 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:438 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:447 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:456 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:464 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:485 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:493 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:501 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:509 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:517 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:533 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:541 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:549 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:557 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:573 msgid "This is a maintenance release. Changes:" msgstr "Questa è una versione di manutenzione. Cambiamenti:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:53 msgid "Fix building without the GNOME Shell extension (-Dgnome-shell=false)" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:54 msgid "" "Restore GTK deprecation version-gating and drop the unused build-time gjs " "dependency" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:55 msgid "Target GNOME Shell 50 in the extension" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:56 msgid "Bump the library soversions to reflect the API/ABI changes since 45.8" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:62 msgid "" "This is a major release porting GPaste to GTK 4 and libadwaita. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:64 msgid "Port the daemon, history UI and preferences to GTK 4 and libadwaita" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:65 msgid "Show image thumbnails in the history, with configurable preview size" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:66 msgid "" "Support global keyboard shortcuts on Wayland through the XDG GlobalShortcuts " "portal" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:67 msgid "Recognise copied colours as dedicated colour items" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:68 msgid "" "Give keybindings human-readable descriptions and install a daemon desktop " "file" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:69 msgid "Fix images sometimes being repeatedly re-added to the history" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:70 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:81 msgid "" "Fix keyboard shortcuts not triggering when NumLock and CapsLock are both " "active" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:71 msgid "" "Fix several crashes (search provider, UI lifetime, GNOME Shell extension) " "and memory leaks" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:72 msgid "Modernise the GNOME Shell extension to current conventions" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:80 msgid "Fix use-after-free crash in the GNOME Shell search provider" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:82 msgid "" "Fix memory leaks when re-copying history items and when rebinding shortcuts" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:83 msgid "Fix potential crash when enforcing a very small history size" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:84 msgid "Build: ship the GSettings schema as a static file" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:92 msgid "" "GNOME Shell extension now retries the daemon connection before giving up" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:93 msgid "Fix test crash when GrabAccelerators is not allowed" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:94 msgid "Build: simplify gsettings compilation for tests" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:102 msgid "Fix GC crash and signal leak when disabling the GNOME Shell extension" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:103 msgid "GNOME Shell extension now handles daemon connection failure gracefully" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:104 #, fuzzy msgid "Fix crash when a history item has no value yet" msgstr "Correzione per l'arresto anomalo quando la cronologia è vuota" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:105 msgid "Fix image files not being deleted when history items are removed" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:106 msgid "Fix image files stored in wrong directory" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:107 #, fuzzy msgid "Fix keyboard focus being stolen by history items on hover" msgstr "" "Corretto un errore che portava alla visualizzazione dello storico con solo " "un elemento" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:108 msgid "" "Fix key events incorrectly forwarded to search when another entry has focus" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:109 msgid "Fix signal loop when updating shortcut entries from settings" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:110 msgid "Fix default history item count not reset after history deletion" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:111 msgid "Enforce minimum window size to prevent unresizable state" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:112 msgid "Add descriptive tooltips for settings entries" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:113 msgid "Build: explicitly link libgpaste libraries against libc" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:114 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:127 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:137 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:146 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:155 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:164 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:174 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:225 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:267 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:281 msgid "Translations updates" msgstr "Aggiornamento traduzioni" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:122 msgid "" "Fix infinite Pango assertion loop that could fill disk when clipboard " "content contained tab characters" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:123 msgid "Various bug fixes and memory management improvements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:124 msgid "Daemon improvements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:125 msgid "GNOME Shell extension improvements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:126 #, fuzzy msgid "GLib >= 2.76 is now required" msgstr "gcr 4 è ora necessario" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:135 #, fuzzy msgid "Support for gnome 50" msgstr "Supporto per gnome 48" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:136 #, fuzzy msgid "Support for gnome 49" msgstr "Supporto per gnome 48" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:145 msgid "Support for gnome 48" msgstr "Supporto per gnome 48" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:154 msgid "Support for gnome 47" msgstr "Supporto per gnome 47" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:163 msgid "Support for gnome 46" msgstr "Supporto per gnome 46" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:170 msgid "Stable release for GNOME 45. Changes:" msgstr "Versione stabile per GNOME 45. Cambiamenti:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:172 msgid "Port to gnome 45" msgstr "Aggiunto supporto per gnome 45" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:173 msgid "Add setting to open ui window centered" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:182 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:199 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:233 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:289 msgid "Fix a bug leading to history with only one item" msgstr "" "Corretto un errore che portava alla visualizzazione dello storico con solo " "un elemento" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:188 #, fuzzy msgid "First release for GNOME 44. Changes:" msgstr "Prima versione per GNOME 42. Cambiamenti:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:190 msgid "gcr 4 is now required" msgstr "gcr 4 è ora necessario" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:191 #, fuzzy msgid "Port to gnome 44" msgstr "Portabilità a gnome-shell 41" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:207 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:241 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:297 msgid "Avoid crash under heavy memory load" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:215 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:249 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:305 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:381 #, fuzzy msgid "Respect --use-index when displaying history" msgstr "Dimensione massima degli elementi visualizzati" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:221 msgid "First release for GNOME 43. Changes:" msgstr "Prima versione per GNOME 42. Cambiamenti:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:223 msgid "Port to GNOME 43" msgstr "Port a GNOME 43" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:224 msgid "Internal preparation for gtk4 port" msgstr "Preparazione interna per il passaggio a gtk4" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:257 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:313 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:389 msgid "Open GPaste UI where the mouse pointer is" msgstr "Apre l'interfaccia di GPaste dove si trova il puntatore del mouse" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:265 msgid "Fixes to the new preferences tool" msgstr "Correzioni al nuovo strumento delle preferenze" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:266 msgid "Style fixes" msgstr "Correzioni di stile" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:273 msgid "First release for GNOME 42. Changes:" msgstr "Prima versione per GNOME 42. Cambiamenti:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:275 msgid "" "Old libgpaste replaced by a new minimal libgpaste-2 with no gtk dependency" msgstr "" "Il vecchio libgpaste è stato sostituito da libgpaste-2 minimale senza " "dipendenze a gtk" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:276 msgid "New libgpaste-gtk3 for utils and settings ui" msgstr "" "Nuovo libgpaste-gtk3 per utilità e impostazioni dell'interfaccia utente" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:277 msgid "New libgpaste-gtk4 for utils and preferences ui" msgstr "" "Nuovo libgpaste-gtk4 per utilità e impostazioni dell'interfaccia utente" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:278 msgid "New gtk4 based gpaste-preferences utility" msgstr "Nuovo gpaste-preferences basato su gtk4" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:279 msgid "Autotools are no longer supported" msgstr "Gli strumenti automatici non sono più supportati" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:280 msgid "Extension updated for gnome-shell 42" msgstr "Aggiornamento a gnome-shell 42" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:321 msgid "fix the storage path for meson builds" msgstr "Correzione per il percorso di archiviazione delle build meson" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:329 msgid "fix some race conditions in history handling" msgstr "Corrette alcune condizioni nella gestione della cronologia" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:337 msgid "better fix crash when there is no history yet" msgstr "Miglior correzione per l'arresto anomalo quando la cronologia è vuota" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:345 msgid "fix crash when there is no history yet" msgstr "Correzione per l'arresto anomalo quando la cronologia è vuota" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:346 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:355 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:364 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:373 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:397 msgid "translations update" msgstr "aggiornamento traduzioni" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:354 msgid "fix gnome-shell exntesion when the daemon restarts" msgstr "Correzione per l'estensione gnome-shell all'avvio del demone" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:363 msgid "Fix keybindings for wayland" msgstr "Correzione tasti di scelta rapida per wayland" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:370 msgid "First release for GNOME 41. Changes:" msgstr "Prima versione per GNOME 41. Cambiamenti:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:372 msgid "port to gnome-shell 41" msgstr "Portabilità a gnome-shell 41" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:405 msgid "fix a crash in memory usage checking" msgstr "" "Correzione di un crash durante il controllo dell'utilizzo della memoria" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:412 msgid "First release for GNOME 40. Changes:" msgstr "Prima versione per GNOME 40. Cambiamenti:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:414 msgid "port to gnome-shell 40" msgstr "Portabilità a gnome-shell 40" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:415 msgid "placeholder for gnome-shell prefs" msgstr "segnaposto per le preferenze di gnome-shell" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:423 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:487 msgid "fix X11 keybinder outside of GNOME" msgstr "correzione tasti di X11 al di fuori di GNOME" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:431 msgid "better handling and reporting of invalid uuids passed to gpaste-client" msgstr "" "migliore gestione e segnalazione degli uuid invalidi passati a gpaste-client" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:432 msgid "" "gpaste-client now has a --use-index argument for several subcommands to use " "index instead of uuid" msgstr "" "gpaste-client ora ha un argomento --use-index per diversi sottocomandi per " "usare index invece di uuid" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:440 msgid "fix the make-password keybinding" msgstr "correzione per la scorciatoia da tastiera make-password" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:441 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:450 msgid "updated translations" msgstr "traduzioni aggiornate" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:449 msgid "gnome-shell extension warning fixes" msgstr "correzione per gli avvisi dell'estensione gnome-shell" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:458 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:495 msgid "gnome-shell extension cosmetic updates" msgstr "aggiornamenti cosmetici dell'estensione gnome-shell" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:466 msgid "Disable images support by default (can be reenabled in preferences)" msgstr "" "Disabilita il supporto alle immagini per impostazione predefinita (può " "essere riattivato nelle preferenze)" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:467 msgid "Search now includes passwords (using their names)" msgstr "La ricerca ora include le password (usando il loro nome)" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:468 msgid "systemd integration enhancements" msgstr "miglioramenti nell'integrazione con systemd" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:474 msgid "First release for GNOME 3.38. Changes:" msgstr "Prima versione per GNOME 3.38. Cambiamenti:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:476 msgid "Drop the Tracking DBus signal" msgstr "Abbandona il segnale Tracking DBus" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:477 msgid "Switch to uuids to identify items" msgstr "Passa ad identificare gli oggetti tramite uuid" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:478 msgid "Bump DBus interface to org.gnome.GPaste2" msgstr "Passa interfaccia DBus a org.gnome.GPaste2" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:479 msgid "Update to gnome-shell 3.38.0" msgstr "Aggiorna a gnome-shell 3.38.0" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:503 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:535 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:577 msgid "Fix activating items using Ctrl-Number in gnome-shell" msgstr "" "Correzione per l'attivazione degli elementi con Ctrl-Numero in gnome-shell" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:511 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:543 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:576 msgid "Fix keybinding regrab with gnome-shell" msgstr "Correzione ricattura scorciatoie da tastiera in gnome-shell" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:519 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:551 msgid "Fix keybinding grab with gnome-shell" msgstr "Correzione cattura scorciatoie da tastiera in gnome-shell" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:525 msgid "First release for GNOME 3.36. Changes:" msgstr "Prima versione per GNOME 3.36. Cambiamenti:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:527 msgid "Update to gnome-shell 3.36.0" msgstr "Aggiornamento a gnome-shell 3.36.0" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:559 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:575 msgid "Compatibility with recent appstream-glib" msgstr "Compatibilità con appstream-glib recente" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:565 msgid "First release for GNOME 3.34. Changes:" msgstr "Prima versione per GNOME 3.34. Cambiamenti:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:567 msgid "Update to gnome-shell 3.34.0" msgstr "Aggiornamento a gnome-shell 3.34.0" #: src/client/gpaste-client.c:146 msgid "Couldn't spawn" msgstr "Impossibile generare" #: src/client/gpaste-client.c:158 #, c-format msgid "Usage:\n" msgstr "Utilizzo:\n" #. Translators: help for gpaste history #: src/client/gpaste-client.c:160 msgid "print the history with UUIDs" msgstr "stampa cronologia con UUID" #. Translators: help for gpaste history-size #: src/client/gpaste-client.c:162 msgid "print the size of the history" msgstr "stampa la dimensione della cronologia" #. Translators: help for gpaste get-history #: src/client/gpaste-client.c:164 msgid "get the name of the current history" msgstr "ottieni il nome della cronologia corrente" #. Translators: help for gpaste backup-history #. Translators: help for gpaste switch-history #. Translators: help for gpaste delete-history #. Translators: help for gpaste add-password #. Translators: help for gpaste set-password #. Translators: help for gpaste delete-passworf #: src/client/gpaste-client.c:166 src/client/gpaste-client.c:168 #: src/client/gpaste-client.c:170 src/client/gpaste-client.c:176 #: src/client/gpaste-client.c:188 src/client/gpaste-client.c:192 msgid "name" msgstr "nome" #: src/client/gpaste-client.c:166 msgid "backup current history" msgstr "Backup della cronologia corrente" #: src/client/gpaste-client.c:168 msgid "switch to another history" msgstr "Passa a un'altra cronologia" #: src/client/gpaste-client.c:170 msgid "delete a history" msgstr "Cancella una cronologia" #. Translators: help for gpaste list-histories #: src/client/gpaste-client.c:172 msgid "list available histories" msgstr "elenca gli storici disponibili" #. Translators: help for gpaste add #: src/client/gpaste-client.c:174 msgid "text" msgstr "testo" #: src/client/gpaste-client.c:174 msgid "set text to clipboard" msgstr "imposta il testo negli appunti" #: src/client/gpaste-client.c:176 msgid "password" msgstr "password" #: src/client/gpaste-client.c:176 msgid "add the name - password couple to the clipboard" msgstr "aggiungi la coppia nome - password agli appunti" #. Translators: help for gpaste rename-password #: src/client/gpaste-client.c:178 msgid "old name" msgstr "vecchio nome" #: src/client/gpaste-client.c:178 msgid "new name" msgstr "nuovo nome" #: src/client/gpaste-client.c:178 msgid "rename the password" msgstr "rinomina la password" #. Translators: help for gpaste get #: src/client/gpaste-client.c:180 msgid "get the item from the history" msgstr "ottieni elemento dalla cronologia" #. Translators: help for gpaste select #: src/client/gpaste-client.c:182 msgid "set the item from the history to the clipboard" msgstr "imposta elemento dalla cronologia agli appunti" #. Translators: help for gpaste replace #: src/client/gpaste-client.c:184 msgid "contents" msgstr "contenuti" #: src/client/gpaste-client.c:184 msgid "" "replace the contents of the item from the history with the provided " "one" msgstr "" "sostituisci il contenuto dell'elemento nella cronologia con quello " "fornito" #. Translators: help for gpaste merge #: src/client/gpaste-client.c:186 msgid "" "merge the items matching the UUIDs from the history and put the result in " "the clipboard" msgstr "" "unisci gli elementi che corrispondono agli UUID nella cronologia e incolla " "il risultato negli appunti" #: src/client/gpaste-client.c:188 msgid "set the item from the history as a password named " msgstr "" "imposta elemento nella cronologia come password denominata " #. Translators: help for gpaste delete #: src/client/gpaste-client.c:190 msgid "delete item from the history" msgstr "cancella l'elemento dalla cronologia" #: src/client/gpaste-client.c:192 msgid "delete the password from the history" msgstr "cancella la password dalla cronologia" #. Translators: help for gpaste file #: src/client/gpaste-client.c:194 msgid "path" msgstr "percorso" #: src/client/gpaste-client.c:194 msgid "put the content of the file at into the clipboard" msgstr "inserisci il contenuto del file negli appunti" #. Translators: help for whatever | gpaste #: src/client/gpaste-client.c:196 msgid "whatever" msgstr "qualunque" #: src/client/gpaste-client.c:196 msgid "set the output of whatever to clipboard" msgstr "imposta l'output di qualunque cosa negli appunti" #. Translators: help for gpaste empty #: src/client/gpaste-client.c:198 msgid "empty the history" msgstr "svuota la cronologia" #. Translators: help for gpaste start #: src/client/gpaste-client.c:200 msgid "start tracking clipboard changes" msgstr "inizia a tracciare i cambiamenti negli appunti" #. Translators: help for gpaste stop #: src/client/gpaste-client.c:202 msgid "stop tracking clipboard changes" msgstr "smetti di tracciare i cambiamenti negli appunti" #. Translators: help for gpaste quit #: src/client/gpaste-client.c:204 msgid "alias for stop" msgstr "alias per stop" #. Translators: help for gpaste daemon-reexec #: src/client/gpaste-client.c:206 msgid "reexecute the daemon (after upgrading...)" msgstr "riesegui il demone (dopo un aggiornamento...)" #. Translators: help for gpaste preferences #: src/client/gpaste-client.c:208 msgid "launch the configuration tool" msgstr "lancia lo strumento di configurazione" #. Translators: help for gpaste ui #: src/client/gpaste-client.c:210 msgid "launch the graphical tool" msgstr "lancia lo strumento grafico" #. Translators: help for gpaste show-history #: src/client/gpaste-client.c:212 msgid "make the applet or extension display the history" msgstr "Fai in modo che l'applet o l'estensione mostrino la cronologia" #. Translators: help for gpaste upload #: src/client/gpaste-client.c:214 msgid "upload the item to a pastebin service" msgstr "esegui l'upload dell'elemento ad un servizio pastebin" #. Translators: help for gpaste version #: src/client/gpaste-client.c:216 msgid "display the version" msgstr "mostra la versione" #. Translators: help for gpaste daemon-version #: src/client/gpaste-client.c:218 msgid "display the daemon version" msgstr "mostra la versione del demone" #. Translators: help for gpaste help #: src/client/gpaste-client.c:220 msgid "display this help" msgstr "mostra questo help" #. Translators: help for gpaste about #: src/client/gpaste-client.c:222 msgid "display the about dialog" msgstr "visualizza la finestra di dialogo Informazioni" #: src/client/gpaste-client.c:225 #, c-format msgid "Convenience options:" msgstr "Opzioni di convenienza:" #. Translators: help for --use-index #: src/client/gpaste-client.c:228 msgid "use the index of the item instead of its UUID" msgstr "usa indice dell'elemento invece del suo UUID" #: src/client/gpaste-client.c:231 #, c-format msgid "Display options:" msgstr "Mostra le opzioni:" #. Translators: help for --oneline #: src/client/gpaste-client.c:234 msgid "display each item on only one line" msgstr "mostra ogni elemento su un'unica riga" #. Translators: help for --raw #: src/client/gpaste-client.c:236 msgid "display each item raw (without line numbers)" msgstr "mostra ogni elemento in formato grezzo (senza numeri di linea)" #. Translators: help for --reverse #: src/client/gpaste-client.c:238 msgid "display the items in reverse order" msgstr "mostra gli elementi in ordine inverso" #. Translators: help for --zero #: src/client/gpaste-client.c:240 msgid "use a NUL character instead of a new line betweean each item" msgstr "uns un carattere NUL invece di un a capo tra ogni elemento" #: src/client/gpaste-client.c:243 #, c-format msgid "Merge options:" msgstr "Opzioni unione:" #. Translators: help for --decoration #. Translators: help for --separator #: src/client/gpaste-client.c:246 src/client/gpaste-client.c:248 msgid "string" msgstr "stringa" #: src/client/gpaste-client.c:246 msgid "" "add the given decoration to the beginning and the end of each item before " "merging" msgstr "" "aggiungi la decorazione data all'inizio e alla fine di ogni elemento prima " "di unire" #: src/client/gpaste-client.c:248 msgid "add the given separator between each item when merging" msgstr "aggiungi tra ogni elemento il separatore indicato quando unisci" #: src/client/gpaste-client.c:345 #, c-format msgid "Successfully reexecuted the daemon\n" msgstr "Demone rieseguito con successo\n" #: src/client/gpaste-client.c:486 msgid "Cannot add non utf8 data as text." msgstr "Impossibile aggiungere dati non utf8 come testo." #: src/client/gpaste-client.c:796 src/ui/gpaste-ui-window.c:353 #: src/ui/gpaste-ui-window.c:354 msgid "Couldn't connect to GPaste daemon" msgstr "Impossibile connettersi al demone GPaste" #: src/daemon/gpaste-color-item.c:73 msgid "[Color]" msgstr "" #. Translators: strftime format for image timestamps. Rearrange to match your locale's date/time convention. #: src/daemon/gpaste-image-item.c:219 msgid "%m/%d/%y %T" msgstr "%d/%m/%y %T" #. Translators: Image item displayed in history. %d is width, %d is height, %s is the formatted date. #: src/daemon/gpaste-image-item.c:221 #, c-format msgid "[Image, %d x %d (%s)]" msgstr "[Immagine, %d x %d (%s)]" #: src/daemon/gpaste-make-password-keybinding.c:50 #, fuzzy msgid "Convert to Password" msgstr "rinomina la password" #. This is the prefix displayed in history to identify a password #: src/daemon/gpaste-password-item.c:65 msgid "Password" msgstr "Password" #: src/daemon/gpaste-pop-keybinding.c:64 #, fuzzy msgid "Pop from History" msgstr "Accesso alla cronologia" #: src/daemon/gpaste-show-history-keybinding.c:49 #, fuzzy msgid "Show History" msgstr "Accesso alla cronologia" #: src/daemon/gpaste-sync-clipboard-to-primary-keybinding.c:46 #, fuzzy msgid "Sync Clipboard to Primary" msgstr "Sincronizza gli appunti alla selezione primaria" #: src/daemon/gpaste-sync-primary-to-clipboard-keybinding.c:46 #, fuzzy msgid "Sync Primary to Clipboard" msgstr "Sincronizza la selezione primaria agli appunti" #: src/daemon/gpaste-ui-keybinding.c:43 msgid "Launch UI" msgstr "" #: src/daemon/gpaste-upload-keybinding.c:64 msgid "Upload to Pastebin" msgstr "" #: src/daemon/gpaste-uris-item.c:87 msgid "[Files] " msgstr "[File] " #: src/daemon/main.c:32 msgid "Stop signal received, exiting" msgstr "Segnale di arresto ricevuto, uscita" #: src/daemon/main.c:69 msgid "Could not acquire DBus name." msgstr "Impossibile acquisire un nome DBus." #: src/gnome-shell/dummyHistoryItem.js:12 msgid "(Couldn't connect to GPaste daemon)" msgstr "(Impossibile connettersi al demone GPaste)" #: src/gnome-shell/dummyHistoryItem.js:17 msgid "(Empty)" msgstr "(Vuoto)" #: src/gnome-shell/dummyHistoryItem.js:22 msgid "(No result)" msgstr "(Nessun risultato)" #: src/gnome-shell/emptyHistoryItem.js:14 msgid "Empty history" msgstr "Svuota cronologia" #: src/gnome-shell/stateSwitch.js:12 msgid "Track changes" msgstr "Tracciamento modifiche" #: src/gnome-shell/uiItem.js:14 msgid "Graphical tool" msgstr "Strumento grafico" #: src/libgpaste/gpaste/gpaste-util.c:636 msgid "Could not create history dir" msgstr "Impossibile creare la directory della cronologia" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-macros.h:38 msgid "Failed to register the gtk application" msgstr "Impossibile registrare l'applicazione gtk" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:108 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:119 msgid "General behaviour" msgstr "Comportamento generale" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:121 #: src/ui/gpaste-ui-switch.c:93 msgid "Track clipboard changes" msgstr "Traccia i cambiamenti negli appunti" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:127 msgid "Close UI on select" msgstr "Chiudi l'interfaccia utente dopo la selezione" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:133 msgid "Open the UI window centered" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:139 msgid "Save history" msgstr "Salva cronologia" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:150 msgid "Enable the gnome-shell extension" msgstr "Abilita l'estensione gnome-shell" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:156 msgid "Sync the daemon state with the extension's one" msgstr "Sincronizza lo stato del demone con l'estensione" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:162 msgid "" "When enabled, the daemon automatically starts or stops tracking clipboard " "changes to match the GNOME Shell extension's enabled state" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:166 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:174 msgid "Clipboards synchronization" msgstr "Sincronizzazione degli appunti" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:168 msgid "Primary selection affects history" msgstr "La selezione primaria influenza la cronologia" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:174 msgid "Synchronize clipboard with primary selection" msgstr "Sincronizza gli appunti con la selezione primaria" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:181 msgid "Optional features" msgstr "Caratteristiche opzionali" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:183 msgid "Trim items" msgstr "Accorcia gli elementi" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:189 msgid "Detect growing lines" msgstr "Rileva linee in aumento" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:195 msgid "" "When enabled, if a new clipboard entry starts with the previous one, the " "previous entry is replaced instead of creating a new one" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:92 msgid "History settings" msgstr "Impostazioni cronologia" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:103 msgid "Resources limits" msgstr "Limiti delle risorse" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:120 msgid "Text limits" msgstr "Limiti del testo" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:122 msgid "Min text item length" msgstr "Lunghezza minima degli elementi di testo" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:129 msgid "Max text item length" msgstr "Lunghezza massima degli elementi di testo" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:137 msgid "Display settings" msgstr "Impostazioni visualizzazione" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:139 msgid "Max element size when displaying" msgstr "Dimensione massima degli elementi visualizzati" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:81 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:92 #, fuzzy msgid "Images settings" msgstr "L'interfaccia utente delle impostazioni" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:94 msgid "Images support" msgstr "Supporto per le immagini" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:100 msgid "Image previews" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:106 msgid "Preview size" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:122 msgid "Keyboard shortcuts" msgstr "Scorciatoie da tastiera" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:133 msgid "History access" msgstr "Accesso alla cronologia" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:150 msgid "Active element manipulation" msgstr "Manipolazione degli elementi attivi" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-util.c:51 #: src/ui/gpaste-ui-edit-item.c:84 src/ui/gpaste-ui-new-item.c:66 #: src/ui/gpaste-ui-panel.c:311 msgid "Cancel" msgstr "Annulla" #. Translators: %s is the name of the history being emptied. #: src/libgpaste/gpaste-gtk4/gpaste-gtk-util.c:126 #, fuzzy, c-format msgid "Do you really want to empty \"%s\"?" msgstr "Vuoi davvero vuotare la cronologia?" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-util.c:127 #: src/ui/gpaste-ui-history.c:153 src/ui/gpaste-ui-history.c:428 #: src/ui/gpaste-ui-panel.c:517 msgid "Empty" msgstr "Svuota" #: src/ui/gpaste-ui.c:47 msgid "Clipboard management system" msgstr "" #: src/ui/gpaste-ui-delete-item.c:46 src/ui/gpaste-ui-panel.c:358 #: src/ui/gpaste-ui-panel.c:518 msgid "Delete" msgstr "Cancella" #: src/ui/gpaste-ui-edit-item.c:85 src/ui/gpaste-ui-edit-item.c:139 msgid "Edit" msgstr "Modifica" #: src/ui/gpaste-ui-history.c:266 #, fuzzy msgid "No Results" msgstr "(Nessun risultato)" #: src/ui/gpaste-ui-new-item.c:67 msgid "Add new item" msgstr "" #: src/ui/gpaste-ui-new-item.c:100 msgid "New item" msgstr "" #: src/ui/gpaste-ui-panel.c:307 msgid "Under which name do you want to backup this history?" msgstr "Con quale nome desideri eseguire il backup di questa cronologia?" #: src/ui/gpaste-ui-panel.c:311 src/ui/gpaste-ui-panel.c:516 msgid "Backup" msgstr "Backup" #. Translators: %s is the name of the history being deleted. #: src/ui/gpaste-ui-panel.c:357 #, fuzzy, c-format msgid "Are you sure you want to delete \"%s\"?" msgstr "Cancellare questa cronologia?" #: src/ui/gpaste-ui-panel.c:441 #, fuzzy msgid "Switch to history" msgstr "Passa a un'altra cronologia" #: src/ui/gpaste-ui-panel.c:448 msgid "Switch to" msgstr "Passa a" #: src/ui/gpaste-ui-reexec.c:45 msgid "Restart" msgstr "Riavvia" #: src/ui/gpaste-ui-reexec.c:45 msgid "Do you really want to restart the daemon?" msgstr "Vuoi davvero riavviare il demone?" #: src/ui/gpaste-ui-reexec.c:70 msgid "Restart the daemon" msgstr "Riavvia il demone" #: src/ui/gpaste-ui-search.c:23 msgid "Search" msgstr "Cerca" #: src/ui/gpaste-ui-settings.c:35 msgid "GPaste Settings" msgstr "Impostazioni di GPaste" #: src/ui/gpaste-ui-shortcuts-window.c:21 msgid "General" msgstr "Generale" #: src/ui/gpaste-ui-switch.c:68 msgid "Stop" msgstr "Arresta" #: src/ui/gpaste-ui-switch.c:68 msgid "Do you really want to stop tracking clipboard changes?" msgstr "Vuoi davvero smettere di tracciare i cambiamenti degli appunti?" #: src/ui/gpaste-ui-upload-item.c:46 msgid "Upload" msgstr "Upload" #: src/ui/gpaste-ui-window.c:303 msgid "Quit" msgstr "Esci" #: src/ui/gpaste-ui-window.c:380 #, fuzzy msgid "Histories" msgstr "Accesso alla cronologia" #: src/ui/gpaste-ui-window.c:381 #, fuzzy msgid "History" msgstr "Accesso alla cronologia" #~ msgid "is already running." #~ msgstr "è già in esecuzione." #~ msgid "New" #~ msgstr "Nuovo" #~ msgid "Keyboard Shortcuts" #~ msgstr "Scorciatoie da Tastiera" #~ msgid "About GPaste" #~ msgstr "Su GPaste" Keruspe-GPaste-724def1/po/ja.po000066400000000000000000001427131521206431300163040ustar00rootroot00000000000000# Japanese translations for GPaste package. # Copyright (C) 2020 Listed translators # This file is distributed under the same license as the GPaste package. # Peniel Vargas , 2020. # msgid "" msgstr "" "Project-Id-Version: GPaste\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-06-09 21:21+0200\n" "PO-Revision-Date: 2020-04-10 21:57-0400\n" "Last-Translator: Peniel Vargas \n" "Language-Team: Japanese\n" "Language: ja\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 2.2.4\n" "Plural-Forms: nplurals=1; plural=0;\n" #: data/control-center/42-gpaste.control-center.xml.in:2 msgid "@GETTEXT_PACKAGE@" msgstr "" #: data/control-center/42-gpaste.control-center.xml.in:3 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:136 #: src/ui/gpaste-ui-shortcuts-window.c:24 msgid "Launch the graphical tool" msgstr "GUI ツールを起動する" #: data/control-center/42-gpaste.control-center.xml.in:4 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:153 #: src/ui/gpaste-ui-shortcuts-window.c:25 msgid "Mark the active item as being a password" msgstr "アクティブな項目をパスワードとしてマークする" #: data/control-center/42-gpaste.control-center.xml.in:5 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:167 #: src/ui/gpaste-ui-shortcuts-window.c:23 msgid "Delete the active item from history" msgstr "履歴からアクティブな項目を削除する" #: data/control-center/42-gpaste.control-center.xml.in:6 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:143 #: src/ui/gpaste-ui-shortcuts-window.c:26 msgid "Display the history" msgstr "履歴を表示する" #: data/control-center/42-gpaste.control-center.xml.in:7 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:177 #: src/ui/gpaste-ui-shortcuts-window.c:27 msgid "Sync the clipboard to the primary selection" msgstr "クリップボードからプライマリー選択に同期する" #: data/control-center/42-gpaste.control-center.xml.in:8 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:184 #: src/ui/gpaste-ui-shortcuts-window.c:28 msgid "Sync the primary selection to the clipboard" msgstr "プライマリー選択からクリップボードに同期する" #: data/control-center/42-gpaste.control-center.xml.in:9 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:160 #: src/ui/gpaste-ui-shortcuts-window.c:29 msgid "Upload the active item to a pastebin service" msgstr "Pastebin にアクティブな項目をアップロードする" #: data/desktop/org.gnome.GPaste.Daemon.desktop.in.in:3 #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:3 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:6 #, fuzzy msgid "GPaste" msgstr "GPaste について" #: data/desktop/org.gnome.GPaste.Preferences.desktop.in.in:3 #, fuzzy msgid "GPaste Preferences" msgstr "GPaste の設定" #: data/desktop/org.gnome.GPaste.Preferences.desktop.in.in:4 msgid "Manage your GPaste preferences" msgstr "" #: data/desktop/org.gnome.GPaste.Preferences.desktop.in.in:5 #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:6 msgid "Clipboard;Manager;Settings;Preferences;Configuration;" msgstr "" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:4 #, fuzzy msgid "Clipboard Manager" msgstr "クリップボードの変更を追跡する" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:5 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:7 msgid "Manage your clipboard history" msgstr "" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:16 #, fuzzy msgid "Preferences" msgstr "GPaste の設定" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:20 #: src/gnome-shell/aboutItem.js:13 src/ui/gpaste-ui-about.c:38 msgid "About" msgstr "GPaste について" #: data/gsettings/org.gnome.GPaste.gschema.xml:7 #, fuzzy msgid "Max size of an element when displaying it" msgstr "表示時の要素の最大サイズ" #: data/gsettings/org.gnome.GPaste.gschema.xml:8 msgid "" "The extra stuff of that element will be replaced by \"…\", and newlines by " "\" \" when displaying from the applet, 0 to disable." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:15 msgid "Do we detect and replace growing lines in history?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:16 msgid "" "By default, selecting \"Here is\", then \"Here is an example\" will create " "two entries in the history. With this feature enabled, the first one will be " "replaced by the second one." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:24 #, fuzzy msgid "The name of the current history" msgstr "現在の履歴の名前を取得する" #: data/gsettings/org.gnome.GPaste.gschema.xml:25 #, fuzzy msgid "The default name is \"history\"" msgstr "履歴を削除する" #: data/gsettings/org.gnome.GPaste.gschema.xml:32 msgid "Do we save the images copied to history, or only text?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:33 msgid "By default, we're saving only text" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:40 msgid "Show image previews in the history?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:41 msgid "By default, we show previews of images in the history" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:49 msgid "Size of image previews in pixels" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:50 msgid "Default size is 100 pixels" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:57 msgid "Do we close the UI after selecting an item?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:58 msgid "By default, we close it" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:65 msgid "Do we open the UI window centered?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:66 msgid "By default, we open it where the mouse cursor is" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:73 msgid "The keyboard shortcut to launch the graphical interface" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:74 msgid "" "By default, hitting ctrl + alt + g does that (\"G\"). An empty " "string here disables this functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:82 #, fuzzy msgid "The keyboard shortcut to mark the active item as being a password" msgstr "アクティブな項目をパスワードとしてマークする" #: data/gsettings/org.gnome.GPaste.gschema.xml:83 msgid "" "By default, hitting ctrl + alt + s will mark the active item as being a " "password (\"S\"). An empty string here disables this " "functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:92 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:146 msgid "Max displayed history size" msgstr "表示される履歴の最大数" #: data/gsettings/org.gnome.GPaste.gschema.xml:93 #, fuzzy msgid "Maximum number of items displayed in the history" msgstr "アプレットまたは拡張機能に履歴を表示させる" #: data/gsettings/org.gnome.GPaste.gschema.xml:101 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:105 msgid "Max history size" msgstr "履歴の最大数" #: data/gsettings/org.gnome.GPaste.gschema.xml:102 msgid "Maximum number of items in history" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:110 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:112 msgid "Max memory usage (MB)" msgstr "メモリの最大使用量 (MB)" #: data/gsettings/org.gnome.GPaste.gschema.xml:111 msgid "Maximum amount of memory used to store contents" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:119 #, fuzzy msgid "Max text item size" msgstr "テキストの最大の長さ" #: data/gsettings/org.gnome.GPaste.gschema.xml:120 msgid "Maximum size of a text item. Anything out of this boundary is ignored." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:128 #, fuzzy msgid "Min text item size" msgstr "テキストの最小の長さ" #: data/gsettings/org.gnome.GPaste.gschema.xml:129 msgid "Minimum size of a text item. Anything out of this boundary is ignored." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:136 #, fuzzy msgid "The keyboard shortcut to delete the first element in history" msgstr "この履歴を削除してもよろしいですか?" #: data/gsettings/org.gnome.GPaste.gschema.xml:137 msgid "" "By default, hitting ctrl + alt + v does that (\"V\"). An empty " "string here disables this functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:145 #, fuzzy msgid "Does the primary selection affects history?" msgstr "プライマリー選択を履歴に反映させる" #: data/gsettings/org.gnome.GPaste.gschema.xml:146 msgid "By default, only clipboard (ctrl+c) affects history." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:153 msgid "" "Do we save all versions of selected rich text (e.g. html) or just the plain " "text version?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:154 msgid "By default, we're saving all" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:161 msgid "Do we save the history from one session to another?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:162 msgid "By default, we're saving it" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:169 msgid "The keyboard shortcut to display the menu" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:170 msgid "" "By default, hitting ctrl + alt + h displays the menu (\"H\"). An " "empty string here disables this functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:178 #, fuzzy msgid "The keyboard shortcut to sync the clipboard to the primary selection" msgstr "クリップボードからプライマリー選択に同期する" #: data/gsettings/org.gnome.GPaste.gschema.xml:179 msgid "" "By default, hitting ctrl + alt + o syncs them (\"P\"). An empty " "string here disables this functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:187 #, fuzzy msgid "The keyboard shortcut to sync the primary selection to the clipboard" msgstr "プライマリー選択からクリップボードに同期する" #: data/gsettings/org.gnome.GPaste.gschema.xml:188 msgid "" "By default, hitting ctrl + alt + p syncs them (\"P\"). An empty " "string here disables this functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:196 #, fuzzy msgid "Are the primary selection and the clipboard synchronized?" msgstr "プライマリー選択からクリップボードに同期する" #: data/gsettings/org.gnome.GPaste.gschema.xml:197 #, fuzzy msgid "By default, the primary selection and the clipboard are independent." msgstr "プライマリー選択からクリップボードに同期する" #: data/gsettings/org.gnome.GPaste.gschema.xml:204 #, fuzzy msgid "Do we track the clipboard changes?" msgstr "クリップボードの変更を追跡する" #: data/gsettings/org.gnome.GPaste.gschema.xml:205 msgid "By default, we're tracking those changes." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:212 msgid "" "Do we sync the daemon state with the gnome-shell extension's one? (disable " "the daemon when disabling the extension)" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:213 msgid "By default, the daemon state keeps unchanged" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:220 msgid "Do we trim the textual items before adding them to history?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:221 msgid "" "Trimming means removing all trailing and ending spaces. By default, we're " "letting them as-is." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:229 #, fuzzy msgid "" "The keyboard shortcut to upload the first element in history to a pastebin " "service" msgstr " に一致する項目を Pastebin にアップロードする" #: data/gsettings/org.gnome.GPaste.gschema.xml:230 msgid "" "By default, hitting ctrl + alt + u does that (\"U\"). An empty " "string here disables this functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:238 msgid "Do we prompt for confirmation when emptying a history?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:239 msgid "By default, we do as it's a destructive action" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:9 msgid "Marc-Antoine Perennou" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:17 msgid "" "GPaste is a clipboard managing system allowing you to track and manage your " "clipboard history in a highly customizable way." msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:20 msgid "" "GPaste provides you with a graphical tool allowing you to manage everything " "easily." msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:27 msgid "The main UI" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:31 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:35 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:39 #, fuzzy msgid "The settings UI" msgstr "GPaste の設定" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:51 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:78 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:90 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:100 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:120 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:133 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:143 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:152 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:161 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:180 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:197 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:205 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:213 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:231 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:239 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:247 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:255 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:263 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:287 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:295 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:303 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:311 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:319 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:327 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:335 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:343 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:352 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:361 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:379 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:387 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:395 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:403 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:421 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:429 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:438 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:447 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:456 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:464 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:485 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:493 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:501 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:509 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:517 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:533 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:541 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:549 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:557 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:573 msgid "This is a maintenance release. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:53 msgid "Fix building without the GNOME Shell extension (-Dgnome-shell=false)" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:54 msgid "" "Restore GTK deprecation version-gating and drop the unused build-time gjs " "dependency" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:55 msgid "Target GNOME Shell 50 in the extension" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:56 msgid "Bump the library soversions to reflect the API/ABI changes since 45.8" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:62 msgid "" "This is a major release porting GPaste to GTK 4 and libadwaita. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:64 msgid "Port the daemon, history UI and preferences to GTK 4 and libadwaita" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:65 msgid "Show image thumbnails in the history, with configurable preview size" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:66 msgid "" "Support global keyboard shortcuts on Wayland through the XDG GlobalShortcuts " "portal" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:67 msgid "Recognise copied colours as dedicated colour items" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:68 msgid "" "Give keybindings human-readable descriptions and install a daemon desktop " "file" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:69 msgid "Fix images sometimes being repeatedly re-added to the history" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:70 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:81 msgid "" "Fix keyboard shortcuts not triggering when NumLock and CapsLock are both " "active" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:71 msgid "" "Fix several crashes (search provider, UI lifetime, GNOME Shell extension) " "and memory leaks" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:72 msgid "Modernise the GNOME Shell extension to current conventions" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:80 msgid "Fix use-after-free crash in the GNOME Shell search provider" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:82 msgid "" "Fix memory leaks when re-copying history items and when rebinding shortcuts" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:83 msgid "Fix potential crash when enforcing a very small history size" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:84 msgid "Build: ship the GSettings schema as a static file" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:92 msgid "" "GNOME Shell extension now retries the daemon connection before giving up" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:93 msgid "Fix test crash when GrabAccelerators is not allowed" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:94 msgid "Build: simplify gsettings compilation for tests" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:102 msgid "Fix GC crash and signal leak when disabling the GNOME Shell extension" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:103 msgid "GNOME Shell extension now handles daemon connection failure gracefully" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:104 msgid "Fix crash when a history item has no value yet" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:105 msgid "Fix image files not being deleted when history items are removed" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:106 msgid "Fix image files stored in wrong directory" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:107 msgid "Fix keyboard focus being stolen by history items on hover" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:108 msgid "" "Fix key events incorrectly forwarded to search when another entry has focus" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:109 msgid "Fix signal loop when updating shortcut entries from settings" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:110 msgid "Fix default history item count not reset after history deletion" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:111 msgid "Enforce minimum window size to prevent unresizable state" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:112 msgid "Add descriptive tooltips for settings entries" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:113 msgid "Build: explicitly link libgpaste libraries against libc" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:114 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:127 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:137 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:146 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:155 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:164 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:174 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:225 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:267 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:281 msgid "Translations updates" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:122 msgid "" "Fix infinite Pango assertion loop that could fill disk when clipboard " "content contained tab characters" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:123 msgid "Various bug fixes and memory management improvements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:124 msgid "Daemon improvements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:125 msgid "GNOME Shell extension improvements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:126 msgid "GLib >= 2.76 is now required" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:135 msgid "Support for gnome 50" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:136 msgid "Support for gnome 49" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:145 msgid "Support for gnome 48" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:154 msgid "Support for gnome 47" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:163 msgid "Support for gnome 46" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:170 msgid "Stable release for GNOME 45. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:172 msgid "Port to gnome 45" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:173 msgid "Add setting to open ui window centered" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:182 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:199 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:233 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:289 msgid "Fix a bug leading to history with only one item" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:188 msgid "First release for GNOME 44. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:190 msgid "gcr 4 is now required" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:191 msgid "Port to gnome 44" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:207 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:241 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:297 msgid "Avoid crash under heavy memory load" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:215 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:249 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:305 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:381 #, fuzzy msgid "Respect --use-index when displaying history" msgstr "表示時の要素の最大サイズ" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:221 msgid "First release for GNOME 43. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:223 msgid "Port to GNOME 43" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:224 msgid "Internal preparation for gtk4 port" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:257 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:313 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:389 msgid "Open GPaste UI where the mouse pointer is" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:265 msgid "Fixes to the new preferences tool" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:266 msgid "Style fixes" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:273 msgid "First release for GNOME 42. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:275 msgid "" "Old libgpaste replaced by a new minimal libgpaste-2 with no gtk dependency" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:276 msgid "New libgpaste-gtk3 for utils and settings ui" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:277 msgid "New libgpaste-gtk4 for utils and preferences ui" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:278 msgid "New gtk4 based gpaste-preferences utility" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:279 msgid "Autotools are no longer supported" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:280 msgid "Extension updated for gnome-shell 42" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:321 msgid "fix the storage path for meson builds" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:329 msgid "fix some race conditions in history handling" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:337 msgid "better fix crash when there is no history yet" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:345 msgid "fix crash when there is no history yet" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:346 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:355 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:364 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:373 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:397 msgid "translations update" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:354 #, fuzzy msgid "fix gnome-shell exntesion when the daemon restarts" msgstr "GNOME Shell 拡張機能を有効化する" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:363 msgid "Fix keybindings for wayland" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:370 msgid "First release for GNOME 41. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:372 msgid "port to gnome-shell 41" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:405 msgid "fix a crash in memory usage checking" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:412 msgid "First release for GNOME 40. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:414 msgid "port to gnome-shell 40" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:415 msgid "placeholder for gnome-shell prefs" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:423 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:487 msgid "fix X11 keybinder outside of GNOME" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:431 msgid "better handling and reporting of invalid uuids passed to gpaste-client" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:432 msgid "" "gpaste-client now has a --use-index argument for several subcommands to use " "index instead of uuid" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:440 msgid "fix the make-password keybinding" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:441 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:450 msgid "updated translations" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:449 #, fuzzy msgid "gnome-shell extension warning fixes" msgstr "GNOME Shell 拡張機能を有効化する" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:458 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:495 #, fuzzy msgid "gnome-shell extension cosmetic updates" msgstr "GNOME Shell 拡張機能を有効化する" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:466 msgid "Disable images support by default (can be reenabled in preferences)" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:467 msgid "Search now includes passwords (using their names)" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:468 msgid "systemd integration enhancements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:474 msgid "First release for GNOME 3.38. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:476 msgid "Drop the Tracking DBus signal" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:477 msgid "Switch to uuids to identify items" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:478 msgid "Bump DBus interface to org.gnome.GPaste2" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:479 msgid "Update to gnome-shell 3.38.0" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:503 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:535 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:577 msgid "Fix activating items using Ctrl-Number in gnome-shell" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:511 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:543 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:576 msgid "Fix keybinding regrab with gnome-shell" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:519 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:551 msgid "Fix keybinding grab with gnome-shell" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:525 msgid "First release for GNOME 3.36. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:527 msgid "Update to gnome-shell 3.36.0" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:559 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:575 msgid "Compatibility with recent appstream-glib" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:565 msgid "First release for GNOME 3.34. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:567 msgid "Update to gnome-shell 3.34.0" msgstr "" #: src/client/gpaste-client.c:146 msgid "Couldn't spawn" msgstr "spawn できませんでした" #: src/client/gpaste-client.c:158 #, c-format msgid "Usage:\n" msgstr "使い方:\n" #. Translators: help for gpaste history #: src/client/gpaste-client.c:160 #, fuzzy msgid "print the history with UUIDs" msgstr "インデックス付きの履歴を表示する" #. Translators: help for gpaste history-size #: src/client/gpaste-client.c:162 msgid "print the size of the history" msgstr "履歴の大きさを表示する" #. Translators: help for gpaste get-history #: src/client/gpaste-client.c:164 msgid "get the name of the current history" msgstr "現在の履歴の名前を取得する" #. Translators: help for gpaste backup-history #. Translators: help for gpaste switch-history #. Translators: help for gpaste delete-history #. Translators: help for gpaste add-password #. Translators: help for gpaste set-password #. Translators: help for gpaste delete-passworf #: src/client/gpaste-client.c:166 src/client/gpaste-client.c:168 #: src/client/gpaste-client.c:170 src/client/gpaste-client.c:176 #: src/client/gpaste-client.c:188 src/client/gpaste-client.c:192 msgid "name" msgstr "名前" #: src/client/gpaste-client.c:166 msgid "backup current history" msgstr "現在の履歴をバックアップする" #: src/client/gpaste-client.c:168 msgid "switch to another history" msgstr "他の履歴に切り替える" #: src/client/gpaste-client.c:170 msgid "delete a history" msgstr "履歴を削除する" #. Translators: help for gpaste list-histories #: src/client/gpaste-client.c:172 msgid "list available histories" msgstr "利用可能な履歴を一覧表示する" #. Translators: help for gpaste add #: src/client/gpaste-client.c:174 msgid "text" msgstr "テキスト" #: src/client/gpaste-client.c:174 msgid "set text to clipboard" msgstr "テキストをクリップボードに追加する" #: src/client/gpaste-client.c:176 msgid "password" msgstr "パスワード" #: src/client/gpaste-client.c:176 msgid "add the name - password couple to the clipboard" msgstr "クリップボードに名前とパスワードの組み合わせを追加する" #. Translators: help for gpaste rename-password #: src/client/gpaste-client.c:178 msgid "old name" msgstr "古い名前" #: src/client/gpaste-client.c:178 msgid "new name" msgstr "新しい名前" #: src/client/gpaste-client.c:178 msgid "rename the password" msgstr "パスワードの名前を変更する" #. Translators: help for gpaste get #: src/client/gpaste-client.c:180 #, fuzzy msgid "get the item from the history" msgstr "この ID に一致する項目を履歴からクリップボードに設定する" #. Translators: help for gpaste select #: src/client/gpaste-client.c:182 #, fuzzy msgid "set the item from the history to the clipboard" msgstr "この ID に一致する項目を履歴からクリップボードに設定する" #. Translators: help for gpaste replace #: src/client/gpaste-client.c:184 msgid "contents" msgstr "内容" #: src/client/gpaste-client.c:184 #, fuzzy msgid "" "replace the contents of the item from the history with the provided " "one" msgstr "履歴の に一致する項目の内容を指定した項目で置き換える" #. Translators: help for gpaste merge #: src/client/gpaste-client.c:186 #, fuzzy msgid "" "merge the items matching the UUIDs from the history and put the result in " "the clipboard" msgstr "履歴の <数字> 番目の項目をマージして、結果をクリップボードに追加する" #: src/client/gpaste-client.c:188 #, fuzzy msgid "set the item from the history as a password named " msgstr "履歴の <数字> 番目の項目を <名前> という名前のパスワードとして設定する" #. Translators: help for gpaste delete #: src/client/gpaste-client.c:190 #, fuzzy msgid "delete item from the history" msgstr "履歴からパスワード <名前> を削除する" #: src/client/gpaste-client.c:192 msgid "delete the password from the history" msgstr "履歴からパスワード <名前> を削除する" #. Translators: help for gpaste file #: src/client/gpaste-client.c:194 msgid "path" msgstr "パス" #: src/client/gpaste-client.c:194 msgid "put the content of the file at into the clipboard" msgstr "<パス> にあるファイルの内容をクリップボードに追加" #. Translators: help for whatever | gpaste #: src/client/gpaste-client.c:196 msgid "whatever" msgstr "プログラム" #: src/client/gpaste-client.c:196 msgid "set the output of whatever to clipboard" msgstr "プログラムの出力をクリップボードに設定する" #. Translators: help for gpaste empty #: src/client/gpaste-client.c:198 msgid "empty the history" msgstr "履歴を空にする" #. Translators: help for gpaste start #: src/client/gpaste-client.c:200 msgid "start tracking clipboard changes" msgstr "クリップボードの変更の追跡を開始する" #. Translators: help for gpaste stop #: src/client/gpaste-client.c:202 msgid "stop tracking clipboard changes" msgstr "クリップボードの変更の追跡を停止する" #. Translators: help for gpaste quit #: src/client/gpaste-client.c:204 msgid "alias for stop" msgstr "gpaste stop と同じ" #. Translators: help for gpaste daemon-reexec #: src/client/gpaste-client.c:206 msgid "reexecute the daemon (after upgrading...)" msgstr "デーモンを再実行する (アップグレード後...)" #. Translators: help for gpaste preferences #: src/client/gpaste-client.c:208 msgid "launch the configuration tool" msgstr "設定ツールを起動する" #. Translators: help for gpaste ui #: src/client/gpaste-client.c:210 msgid "launch the graphical tool" msgstr "GUI ツールを起動する" #. Translators: help for gpaste show-history #: src/client/gpaste-client.c:212 msgid "make the applet or extension display the history" msgstr "アプレットまたは拡張機能に履歴を表示させる" #. Translators: help for gpaste upload #: src/client/gpaste-client.c:214 #, fuzzy msgid "upload the item to a pastebin service" msgstr " に一致する項目を Pastebin にアップロードする" #. Translators: help for gpaste version #: src/client/gpaste-client.c:216 msgid "display the version" msgstr "バージョンを表示する" #. Translators: help for gpaste daemon-version #: src/client/gpaste-client.c:218 msgid "display the daemon version" msgstr "デーモンのバージョンを表示する" #. Translators: help for gpaste help #: src/client/gpaste-client.c:220 msgid "display this help" msgstr "ヘルプを表示する" #. Translators: help for gpaste about #: src/client/gpaste-client.c:222 msgid "display the about dialog" msgstr "GPaste についてのダイアログを表示する" #: src/client/gpaste-client.c:225 #, fuzzy, c-format msgid "Convenience options:" msgstr "マージオプション:" #. Translators: help for --use-index #: src/client/gpaste-client.c:228 msgid "use the index of the item instead of its UUID" msgstr "" #: src/client/gpaste-client.c:231 #, c-format msgid "Display options:" msgstr "表示オプション:" #. Translators: help for --oneline #: src/client/gpaste-client.c:234 msgid "display each item on only one line" msgstr "各項目を一行に表示する" #. Translators: help for --raw #: src/client/gpaste-client.c:236 msgid "display each item raw (without line numbers)" msgstr "各項目を表示する (行番号なし)" #. Translators: help for --reverse #: src/client/gpaste-client.c:238 msgid "display the items in reverse order" msgstr "項目を逆順で表示する" #. Translators: help for --zero #: src/client/gpaste-client.c:240 msgid "use a NUL character instead of a new line betweean each item" msgstr "各項目の区切りに改行ではなくヌル文字を使用する" #: src/client/gpaste-client.c:243 #, c-format msgid "Merge options:" msgstr "マージオプション:" #. Translators: help for --decoration #. Translators: help for --separator #: src/client/gpaste-client.c:246 src/client/gpaste-client.c:248 msgid "string" msgstr "文字列" #: src/client/gpaste-client.c:246 msgid "" "add the given decoration to the beginning and the end of each item before " "merging" msgstr "マージする前に各項目の最初と最後に指定した文字列を追加する" #: src/client/gpaste-client.c:248 msgid "add the given separator between each item when merging" msgstr "マージする時に各項目の間に指定された区切り記号を追加する" #: src/client/gpaste-client.c:345 #, c-format msgid "Successfully reexecuted the daemon\n" msgstr "デーモンを正常に再実行しました\n" #: src/client/gpaste-client.c:486 msgid "Cannot add non utf8 data as text." msgstr "UTF-8 以外のデータはテキストとして追加できません。" #: src/client/gpaste-client.c:796 src/ui/gpaste-ui-window.c:353 #: src/ui/gpaste-ui-window.c:354 msgid "Couldn't connect to GPaste daemon" msgstr "GPaste デーモンに接続できませんでした" #: src/daemon/gpaste-color-item.c:73 msgid "[Color]" msgstr "" #. Translators: strftime format for image timestamps. Rearrange to match your locale's date/time convention. #: src/daemon/gpaste-image-item.c:219 msgid "%m/%d/%y %T" msgstr "%y/%m/%d %T" #. Translators: Image item displayed in history. %d is width, %d is height, %s is the formatted date. #: src/daemon/gpaste-image-item.c:221 #, c-format msgid "[Image, %d x %d (%s)]" msgstr "[画像, %d x %d (%s)]" #: src/daemon/gpaste-make-password-keybinding.c:50 #, fuzzy msgid "Convert to Password" msgstr "パスワードの名前を変更する" #. This is the prefix displayed in history to identify a password #: src/daemon/gpaste-password-item.c:65 msgid "Password" msgstr "パスワード" #: src/daemon/gpaste-pop-keybinding.c:64 #, fuzzy msgid "Pop from History" msgstr "履歴設定" #: src/daemon/gpaste-show-history-keybinding.c:49 #, fuzzy msgid "Show History" msgstr "履歴設定" #: src/daemon/gpaste-sync-clipboard-to-primary-keybinding.c:46 #, fuzzy msgid "Sync Clipboard to Primary" msgstr "クリップボードからプライマリー選択に同期する" #: src/daemon/gpaste-sync-primary-to-clipboard-keybinding.c:46 #, fuzzy msgid "Sync Primary to Clipboard" msgstr "プライマリー選択からクリップボードに同期する" #: src/daemon/gpaste-ui-keybinding.c:43 msgid "Launch UI" msgstr "" #: src/daemon/gpaste-upload-keybinding.c:64 msgid "Upload to Pastebin" msgstr "" #: src/daemon/gpaste-uris-item.c:87 msgid "[Files] " msgstr "[ファイル] " #: src/daemon/main.c:32 msgid "Stop signal received, exiting" msgstr "停止シグナルを受信し、終了します" #: src/daemon/main.c:69 msgid "Could not acquire DBus name." msgstr "DBus 名を取得できませんでした。" #: src/gnome-shell/dummyHistoryItem.js:12 msgid "(Couldn't connect to GPaste daemon)" msgstr "(GPaste デーモンに接続できませんでした)" #: src/gnome-shell/dummyHistoryItem.js:17 msgid "(Empty)" msgstr "(履歴は空です)" #: src/gnome-shell/dummyHistoryItem.js:22 msgid "(No result)" msgstr "(検索結果はありません)" #: src/gnome-shell/emptyHistoryItem.js:14 #, fuzzy msgid "Empty history" msgstr "履歴を空にする" #: src/gnome-shell/stateSwitch.js:12 #, fuzzy msgid "Track changes" msgstr "クリップボードの変更を追跡する" #: src/gnome-shell/uiItem.js:14 #, fuzzy msgid "Graphical tool" msgstr "GUI ツールを起動する" #: src/libgpaste/gpaste/gpaste-util.c:636 msgid "Could not create history dir" msgstr "履歴ディレクトリを作成できませんでした" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-macros.h:38 msgid "Failed to register the gtk application" msgstr "GTK アプリケーションの登録に失敗しました" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:108 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:119 msgid "General behaviour" msgstr "挙動全般" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:121 #: src/ui/gpaste-ui-switch.c:93 msgid "Track clipboard changes" msgstr "クリップボードの変更を追跡する" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:127 msgid "Close UI on select" msgstr "選択時に UI を閉じる" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:133 msgid "Open the UI window centered" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:139 msgid "Save history" msgstr "履歴を保存する" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:150 msgid "Enable the gnome-shell extension" msgstr "GNOME Shell 拡張機能を有効化する" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:156 msgid "Sync the daemon state with the extension's one" msgstr "デーモンの状態を拡張機能の状態と同期する" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:162 msgid "" "When enabled, the daemon automatically starts or stops tracking clipboard " "changes to match the GNOME Shell extension's enabled state" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:166 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:174 msgid "Clipboards synchronization" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:168 msgid "Primary selection affects history" msgstr "プライマリー選択を履歴に反映させる" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:174 msgid "Synchronize clipboard with primary selection" msgstr "クリップボードをプライマリー選択と同期する" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:181 msgid "Optional features" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:183 msgid "Trim items" msgstr "項目をトリムする" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:189 msgid "Detect growing lines" msgstr "ハイフンなどの線の増加を検出する" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:195 msgid "" "When enabled, if a new clipboard entry starts with the previous one, the " "previous entry is replaced instead of creating a new one" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:92 msgid "History settings" msgstr "履歴設定" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:103 msgid "Resources limits" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:120 msgid "Text limits" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:122 msgid "Min text item length" msgstr "テキストの最小の長さ" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:129 msgid "Max text item length" msgstr "テキストの最大の長さ" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:137 #, fuzzy msgid "Display settings" msgstr "履歴設定" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:139 msgid "Max element size when displaying" msgstr "表示時の要素の最大サイズ" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:81 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:92 #, fuzzy msgid "Images settings" msgstr "GPaste の設定" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:94 msgid "Images support" msgstr "画像のサポート" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:100 msgid "Image previews" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:106 msgid "Preview size" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:122 msgid "Keyboard shortcuts" msgstr "キーボードショートカット" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:133 #, fuzzy msgid "History access" msgstr "履歴設定" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:150 msgid "Active element manipulation" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-util.c:51 #: src/ui/gpaste-ui-edit-item.c:84 src/ui/gpaste-ui-new-item.c:66 #: src/ui/gpaste-ui-panel.c:311 msgid "Cancel" msgstr "キャンセル" #. Translators: %s is the name of the history being emptied. #: src/libgpaste/gpaste-gtk4/gpaste-gtk-util.c:126 #, fuzzy, c-format msgid "Do you really want to empty \"%s\"?" msgstr "本当に履歴を空にしますか?" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-util.c:127 #: src/ui/gpaste-ui-history.c:153 src/ui/gpaste-ui-history.c:428 #: src/ui/gpaste-ui-panel.c:517 msgid "Empty" msgstr "空にする" #: src/ui/gpaste-ui.c:47 msgid "Clipboard management system" msgstr "" #: src/ui/gpaste-ui-delete-item.c:46 src/ui/gpaste-ui-panel.c:358 #: src/ui/gpaste-ui-panel.c:518 msgid "Delete" msgstr "削除" #: src/ui/gpaste-ui-edit-item.c:85 src/ui/gpaste-ui-edit-item.c:139 msgid "Edit" msgstr "編集" #: src/ui/gpaste-ui-history.c:266 #, fuzzy msgid "No Results" msgstr "(検索結果はありません)" #: src/ui/gpaste-ui-new-item.c:67 msgid "Add new item" msgstr "" #: src/ui/gpaste-ui-new-item.c:100 msgid "New item" msgstr "" #: src/ui/gpaste-ui-panel.c:307 msgid "Under which name do you want to backup this history?" msgstr "この履歴をどのような名前でバックアップしますか?" #: src/ui/gpaste-ui-panel.c:311 src/ui/gpaste-ui-panel.c:516 msgid "Backup" msgstr "バックアップ" #. Translators: %s is the name of the history being deleted. #: src/ui/gpaste-ui-panel.c:357 #, fuzzy, c-format msgid "Are you sure you want to delete \"%s\"?" msgstr "この履歴を削除してもよろしいですか?" #: src/ui/gpaste-ui-panel.c:441 #, fuzzy msgid "Switch to history" msgstr "他の履歴に切り替える" #: src/ui/gpaste-ui-panel.c:448 msgid "Switch to" msgstr "切り替え" #: src/ui/gpaste-ui-reexec.c:45 msgid "Restart" msgstr "再起動" #: src/ui/gpaste-ui-reexec.c:45 msgid "Do you really want to restart the daemon?" msgstr "本当にデーモンを再起動しますか?" #: src/ui/gpaste-ui-reexec.c:70 msgid "Restart the daemon" msgstr "デーモンを再起動する" #: src/ui/gpaste-ui-search.c:23 msgid "Search" msgstr "検索" #: src/ui/gpaste-ui-settings.c:35 msgid "GPaste Settings" msgstr "GPaste の設定" #: src/ui/gpaste-ui-shortcuts-window.c:21 msgid "General" msgstr "全般" #: src/ui/gpaste-ui-switch.c:68 msgid "Stop" msgstr "停止" #: src/ui/gpaste-ui-switch.c:68 msgid "Do you really want to stop tracking clipboard changes?" msgstr "本当にクリップボードの変更の追跡を停止しますか?" #: src/ui/gpaste-ui-upload-item.c:46 msgid "Upload" msgstr "アップロード" #: src/ui/gpaste-ui-window.c:303 msgid "Quit" msgstr "終了" #: src/ui/gpaste-ui-window.c:380 #, fuzzy msgid "Histories" msgstr "履歴設定" #: src/ui/gpaste-ui-window.c:381 #, fuzzy msgid "History" msgstr "履歴設定" #~ msgid "is already running." #~ msgstr "はすでに実行しています。" #~ msgid "New" #~ msgstr "新規" #~ msgid "Keyboard Shortcuts" #~ msgstr "キーボードショートカット" #~ msgid "About GPaste" #~ msgstr "GPaste について" #~ msgid "number" #~ msgstr "数字" #~ msgid "get the th item from the history" #~ msgstr "履歴の <数字> 番目の項目を取得する" #~ msgid "delete th item of the history" #~ msgstr "履歴の <数字> 番目の項目を削除する" Keruspe-GPaste-724def1/po/ka.po000066400000000000000000001275161521206431300163110ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the GPaste package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: GPaste\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-06-09 21:21+0200\n" "PO-Revision-Date: 2023-02-22 19:39+0000\n" "Last-Translator: Temuri Doghonadze \n" "Language-Team: Georgian \n" "Language: ka\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: Weblate 4.16-dev\n" #: data/control-center/42-gpaste.control-center.xml.in:2 msgid "@GETTEXT_PACKAGE@" msgstr "" #: data/control-center/42-gpaste.control-center.xml.in:3 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:136 #: src/ui/gpaste-ui-shortcuts-window.c:24 msgid "Launch the graphical tool" msgstr "" #: data/control-center/42-gpaste.control-center.xml.in:4 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:153 #: src/ui/gpaste-ui-shortcuts-window.c:25 msgid "Mark the active item as being a password" msgstr "" #: data/control-center/42-gpaste.control-center.xml.in:5 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:167 #: src/ui/gpaste-ui-shortcuts-window.c:23 msgid "Delete the active item from history" msgstr "" #: data/control-center/42-gpaste.control-center.xml.in:6 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:143 #: src/ui/gpaste-ui-shortcuts-window.c:26 msgid "Display the history" msgstr "" #: data/control-center/42-gpaste.control-center.xml.in:7 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:177 #: src/ui/gpaste-ui-shortcuts-window.c:27 msgid "Sync the clipboard to the primary selection" msgstr "" #: data/control-center/42-gpaste.control-center.xml.in:8 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:184 #: src/ui/gpaste-ui-shortcuts-window.c:28 msgid "Sync the primary selection to the clipboard" msgstr "" #: data/control-center/42-gpaste.control-center.xml.in:9 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:160 #: src/ui/gpaste-ui-shortcuts-window.c:29 msgid "Upload the active item to a pastebin service" msgstr "" #: data/desktop/org.gnome.GPaste.Daemon.desktop.in.in:3 #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:3 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:6 msgid "GPaste" msgstr "GPaste" #: data/desktop/org.gnome.GPaste.Preferences.desktop.in.in:3 msgid "GPaste Preferences" msgstr "" #: data/desktop/org.gnome.GPaste.Preferences.desktop.in.in:4 msgid "Manage your GPaste preferences" msgstr "" #: data/desktop/org.gnome.GPaste.Preferences.desktop.in.in:5 #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:6 msgid "Clipboard;Manager;Settings;Preferences;Configuration;" msgstr "" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:4 msgid "Clipboard Manager" msgstr "" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:5 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:7 msgid "Manage your clipboard history" msgstr "" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:16 msgid "Preferences" msgstr "" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:20 #: src/gnome-shell/aboutItem.js:13 src/ui/gpaste-ui-about.c:38 msgid "About" msgstr "პროგრამის შესახებ" #: data/gsettings/org.gnome.GPaste.gschema.xml:7 msgid "Max size of an element when displaying it" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:8 msgid "" "The extra stuff of that element will be replaced by \"…\", and newlines by " "\" \" when displaying from the applet, 0 to disable." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:15 msgid "Do we detect and replace growing lines in history?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:16 msgid "" "By default, selecting \"Here is\", then \"Here is an example\" will create " "two entries in the history. With this feature enabled, the first one will be " "replaced by the second one." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:24 msgid "The name of the current history" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:25 msgid "The default name is \"history\"" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:32 msgid "Do we save the images copied to history, or only text?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:33 msgid "By default, we're saving only text" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:40 msgid "Show image previews in the history?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:41 msgid "By default, we show previews of images in the history" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:49 msgid "Size of image previews in pixels" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:50 msgid "Default size is 100 pixels" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:57 msgid "Do we close the UI after selecting an item?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:58 msgid "By default, we close it" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:65 msgid "Do we open the UI window centered?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:66 msgid "By default, we open it where the mouse cursor is" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:73 msgid "The keyboard shortcut to launch the graphical interface" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:74 msgid "" "By default, hitting ctrl + alt + g does that (\"G\"). An empty " "string here disables this functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:82 msgid "The keyboard shortcut to mark the active item as being a password" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:83 msgid "" "By default, hitting ctrl + alt + s will mark the active item as being a " "password (\"S\"). An empty string here disables this " "functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:92 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:146 msgid "Max displayed history size" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:93 msgid "Maximum number of items displayed in the history" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:101 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:105 msgid "Max history size" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:102 msgid "Maximum number of items in history" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:110 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:112 msgid "Max memory usage (MB)" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:111 msgid "Maximum amount of memory used to store contents" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:119 msgid "Max text item size" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:120 msgid "Maximum size of a text item. Anything out of this boundary is ignored." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:128 msgid "Min text item size" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:129 msgid "Minimum size of a text item. Anything out of this boundary is ignored." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:136 msgid "The keyboard shortcut to delete the first element in history" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:137 msgid "" "By default, hitting ctrl + alt + v does that (\"V\"). An empty " "string here disables this functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:145 msgid "Does the primary selection affects history?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:146 msgid "By default, only clipboard (ctrl+c) affects history." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:153 msgid "" "Do we save all versions of selected rich text (e.g. html) or just the plain " "text version?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:154 msgid "By default, we're saving all" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:161 msgid "Do we save the history from one session to another?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:162 msgid "By default, we're saving it" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:169 msgid "The keyboard shortcut to display the menu" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:170 msgid "" "By default, hitting ctrl + alt + h displays the menu (\"H\"). An " "empty string here disables this functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:178 msgid "The keyboard shortcut to sync the clipboard to the primary selection" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:179 msgid "" "By default, hitting ctrl + alt + o syncs them (\"P\"). An empty " "string here disables this functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:187 msgid "The keyboard shortcut to sync the primary selection to the clipboard" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:188 msgid "" "By default, hitting ctrl + alt + p syncs them (\"P\"). An empty " "string here disables this functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:196 msgid "Are the primary selection and the clipboard synchronized?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:197 msgid "By default, the primary selection and the clipboard are independent." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:204 msgid "Do we track the clipboard changes?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:205 msgid "By default, we're tracking those changes." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:212 msgid "" "Do we sync the daemon state with the gnome-shell extension's one? (disable " "the daemon when disabling the extension)" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:213 msgid "By default, the daemon state keeps unchanged" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:220 msgid "Do we trim the textual items before adding them to history?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:221 msgid "" "Trimming means removing all trailing and ending spaces. By default, we're " "letting them as-is." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:229 msgid "" "The keyboard shortcut to upload the first element in history to a pastebin " "service" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:230 msgid "" "By default, hitting ctrl + alt + u does that (\"U\"). An empty " "string here disables this functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:238 msgid "Do we prompt for confirmation when emptying a history?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:239 msgid "By default, we do as it's a destructive action" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:9 msgid "Marc-Antoine Perennou" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:17 msgid "" "GPaste is a clipboard managing system allowing you to track and manage your " "clipboard history in a highly customizable way." msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:20 msgid "" "GPaste provides you with a graphical tool allowing you to manage everything " "easily." msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:27 msgid "The main UI" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:31 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:35 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:39 msgid "The settings UI" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:51 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:78 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:90 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:100 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:120 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:133 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:143 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:152 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:161 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:180 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:197 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:205 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:213 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:231 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:239 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:247 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:255 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:263 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:287 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:295 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:303 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:311 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:319 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:327 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:335 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:343 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:352 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:361 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:379 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:387 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:395 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:403 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:421 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:429 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:438 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:447 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:456 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:464 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:485 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:493 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:501 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:509 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:517 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:533 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:541 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:549 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:557 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:573 msgid "This is a maintenance release. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:53 msgid "Fix building without the GNOME Shell extension (-Dgnome-shell=false)" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:54 msgid "" "Restore GTK deprecation version-gating and drop the unused build-time gjs " "dependency" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:55 msgid "Target GNOME Shell 50 in the extension" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:56 msgid "Bump the library soversions to reflect the API/ABI changes since 45.8" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:62 msgid "" "This is a major release porting GPaste to GTK 4 and libadwaita. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:64 msgid "Port the daemon, history UI and preferences to GTK 4 and libadwaita" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:65 msgid "Show image thumbnails in the history, with configurable preview size" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:66 msgid "" "Support global keyboard shortcuts on Wayland through the XDG GlobalShortcuts " "portal" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:67 msgid "Recognise copied colours as dedicated colour items" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:68 msgid "" "Give keybindings human-readable descriptions and install a daemon desktop " "file" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:69 msgid "Fix images sometimes being repeatedly re-added to the history" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:70 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:81 msgid "" "Fix keyboard shortcuts not triggering when NumLock and CapsLock are both " "active" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:71 msgid "" "Fix several crashes (search provider, UI lifetime, GNOME Shell extension) " "and memory leaks" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:72 msgid "Modernise the GNOME Shell extension to current conventions" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:80 msgid "Fix use-after-free crash in the GNOME Shell search provider" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:82 msgid "" "Fix memory leaks when re-copying history items and when rebinding shortcuts" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:83 msgid "Fix potential crash when enforcing a very small history size" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:84 msgid "Build: ship the GSettings schema as a static file" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:92 msgid "" "GNOME Shell extension now retries the daemon connection before giving up" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:93 msgid "Fix test crash when GrabAccelerators is not allowed" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:94 msgid "Build: simplify gsettings compilation for tests" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:102 msgid "Fix GC crash and signal leak when disabling the GNOME Shell extension" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:103 msgid "GNOME Shell extension now handles daemon connection failure gracefully" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:104 msgid "Fix crash when a history item has no value yet" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:105 msgid "Fix image files not being deleted when history items are removed" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:106 msgid "Fix image files stored in wrong directory" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:107 msgid "Fix keyboard focus being stolen by history items on hover" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:108 msgid "" "Fix key events incorrectly forwarded to search when another entry has focus" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:109 msgid "Fix signal loop when updating shortcut entries from settings" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:110 msgid "Fix default history item count not reset after history deletion" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:111 msgid "Enforce minimum window size to prevent unresizable state" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:112 msgid "Add descriptive tooltips for settings entries" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:113 msgid "Build: explicitly link libgpaste libraries against libc" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:114 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:127 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:137 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:146 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:155 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:164 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:174 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:225 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:267 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:281 msgid "Translations updates" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:122 msgid "" "Fix infinite Pango assertion loop that could fill disk when clipboard " "content contained tab characters" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:123 msgid "Various bug fixes and memory management improvements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:124 msgid "Daemon improvements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:125 msgid "GNOME Shell extension improvements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:126 msgid "GLib >= 2.76 is now required" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:135 msgid "Support for gnome 50" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:136 msgid "Support for gnome 49" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:145 msgid "Support for gnome 48" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:154 msgid "Support for gnome 47" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:163 msgid "Support for gnome 46" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:170 msgid "Stable release for GNOME 45. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:172 msgid "Port to gnome 45" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:173 msgid "Add setting to open ui window centered" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:182 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:199 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:233 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:289 msgid "Fix a bug leading to history with only one item" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:188 msgid "First release for GNOME 44. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:190 msgid "gcr 4 is now required" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:191 msgid "Port to gnome 44" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:207 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:241 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:297 msgid "Avoid crash under heavy memory load" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:215 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:249 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:305 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:381 msgid "Respect --use-index when displaying history" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:221 msgid "First release for GNOME 43. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:223 msgid "Port to GNOME 43" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:224 msgid "Internal preparation for gtk4 port" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:257 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:313 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:389 msgid "Open GPaste UI where the mouse pointer is" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:265 msgid "Fixes to the new preferences tool" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:266 msgid "Style fixes" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:273 msgid "First release for GNOME 42. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:275 msgid "" "Old libgpaste replaced by a new minimal libgpaste-2 with no gtk dependency" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:276 msgid "New libgpaste-gtk3 for utils and settings ui" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:277 msgid "New libgpaste-gtk4 for utils and preferences ui" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:278 msgid "New gtk4 based gpaste-preferences utility" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:279 msgid "Autotools are no longer supported" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:280 msgid "Extension updated for gnome-shell 42" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:321 msgid "fix the storage path for meson builds" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:329 msgid "fix some race conditions in history handling" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:337 msgid "better fix crash when there is no history yet" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:345 msgid "fix crash when there is no history yet" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:346 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:355 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:364 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:373 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:397 msgid "translations update" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:354 msgid "fix gnome-shell exntesion when the daemon restarts" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:363 msgid "Fix keybindings for wayland" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:370 msgid "First release for GNOME 41. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:372 msgid "port to gnome-shell 41" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:405 msgid "fix a crash in memory usage checking" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:412 msgid "First release for GNOME 40. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:414 msgid "port to gnome-shell 40" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:415 msgid "placeholder for gnome-shell prefs" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:423 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:487 msgid "fix X11 keybinder outside of GNOME" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:431 msgid "better handling and reporting of invalid uuids passed to gpaste-client" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:432 msgid "" "gpaste-client now has a --use-index argument for several subcommands to use " "index instead of uuid" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:440 msgid "fix the make-password keybinding" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:441 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:450 msgid "updated translations" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:449 msgid "gnome-shell extension warning fixes" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:458 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:495 msgid "gnome-shell extension cosmetic updates" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:466 msgid "Disable images support by default (can be reenabled in preferences)" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:467 msgid "Search now includes passwords (using their names)" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:468 msgid "systemd integration enhancements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:474 msgid "First release for GNOME 3.38. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:476 msgid "Drop the Tracking DBus signal" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:477 msgid "Switch to uuids to identify items" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:478 msgid "Bump DBus interface to org.gnome.GPaste2" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:479 msgid "Update to gnome-shell 3.38.0" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:503 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:535 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:577 msgid "Fix activating items using Ctrl-Number in gnome-shell" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:511 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:543 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:576 msgid "Fix keybinding regrab with gnome-shell" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:519 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:551 msgid "Fix keybinding grab with gnome-shell" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:525 msgid "First release for GNOME 3.36. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:527 msgid "Update to gnome-shell 3.36.0" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:559 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:575 msgid "Compatibility with recent appstream-glib" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:565 msgid "First release for GNOME 3.34. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:567 msgid "Update to gnome-shell 3.34.0" msgstr "" #: src/client/gpaste-client.c:146 msgid "Couldn't spawn" msgstr "" #: src/client/gpaste-client.c:158 #, c-format msgid "Usage:\n" msgstr "გამოყენება:\n" #. Translators: help for gpaste history #: src/client/gpaste-client.c:160 msgid "print the history with UUIDs" msgstr "" #. Translators: help for gpaste history-size #: src/client/gpaste-client.c:162 msgid "print the size of the history" msgstr "" #. Translators: help for gpaste get-history #: src/client/gpaste-client.c:164 msgid "get the name of the current history" msgstr "" #. Translators: help for gpaste backup-history #. Translators: help for gpaste switch-history #. Translators: help for gpaste delete-history #. Translators: help for gpaste add-password #. Translators: help for gpaste set-password #. Translators: help for gpaste delete-passworf #: src/client/gpaste-client.c:166 src/client/gpaste-client.c:168 #: src/client/gpaste-client.c:170 src/client/gpaste-client.c:176 #: src/client/gpaste-client.c:188 src/client/gpaste-client.c:192 msgid "name" msgstr "" #: src/client/gpaste-client.c:166 msgid "backup current history" msgstr "" #: src/client/gpaste-client.c:168 msgid "switch to another history" msgstr "" #: src/client/gpaste-client.c:170 msgid "delete a history" msgstr "" #. Translators: help for gpaste list-histories #: src/client/gpaste-client.c:172 msgid "list available histories" msgstr "" #. Translators: help for gpaste add #: src/client/gpaste-client.c:174 msgid "text" msgstr "ტექსტი" #: src/client/gpaste-client.c:174 msgid "set text to clipboard" msgstr "" #: src/client/gpaste-client.c:176 msgid "password" msgstr "password" #: src/client/gpaste-client.c:176 msgid "add the name - password couple to the clipboard" msgstr "" #. Translators: help for gpaste rename-password #: src/client/gpaste-client.c:178 msgid "old name" msgstr "ძველი სახელი" #: src/client/gpaste-client.c:178 msgid "new name" msgstr "ახალი სახელი" #: src/client/gpaste-client.c:178 msgid "rename the password" msgstr "" #. Translators: help for gpaste get #: src/client/gpaste-client.c:180 msgid "get the item from the history" msgstr "" #. Translators: help for gpaste select #: src/client/gpaste-client.c:182 msgid "set the item from the history to the clipboard" msgstr "" #. Translators: help for gpaste replace #: src/client/gpaste-client.c:184 msgid "contents" msgstr "შემცველობა" #: src/client/gpaste-client.c:184 msgid "" "replace the contents of the item from the history with the provided " "one" msgstr "" #. Translators: help for gpaste merge #: src/client/gpaste-client.c:186 msgid "" "merge the items matching the UUIDs from the history and put the result in " "the clipboard" msgstr "" #: src/client/gpaste-client.c:188 msgid "set the item from the history as a password named " msgstr "" #. Translators: help for gpaste delete #: src/client/gpaste-client.c:190 msgid "delete item from the history" msgstr "" #: src/client/gpaste-client.c:192 msgid "delete the password from the history" msgstr "" #. Translators: help for gpaste file #: src/client/gpaste-client.c:194 msgid "path" msgstr "ბილიკი" #: src/client/gpaste-client.c:194 msgid "put the content of the file at into the clipboard" msgstr "" #. Translators: help for whatever | gpaste #: src/client/gpaste-client.c:196 msgid "whatever" msgstr "რაც არ უნდა იყოს" #: src/client/gpaste-client.c:196 msgid "set the output of whatever to clipboard" msgstr "" #. Translators: help for gpaste empty #: src/client/gpaste-client.c:198 msgid "empty the history" msgstr "" #. Translators: help for gpaste start #: src/client/gpaste-client.c:200 msgid "start tracking clipboard changes" msgstr "" #. Translators: help for gpaste stop #: src/client/gpaste-client.c:202 msgid "stop tracking clipboard changes" msgstr "" #. Translators: help for gpaste quit #: src/client/gpaste-client.c:204 msgid "alias for stop" msgstr "" #. Translators: help for gpaste daemon-reexec #: src/client/gpaste-client.c:206 msgid "reexecute the daemon (after upgrading...)" msgstr "" #. Translators: help for gpaste preferences #: src/client/gpaste-client.c:208 msgid "launch the configuration tool" msgstr "" #. Translators: help for gpaste ui #: src/client/gpaste-client.c:210 msgid "launch the graphical tool" msgstr "" #. Translators: help for gpaste show-history #: src/client/gpaste-client.c:212 msgid "make the applet or extension display the history" msgstr "" #. Translators: help for gpaste upload #: src/client/gpaste-client.c:214 msgid "upload the item to a pastebin service" msgstr "" #. Translators: help for gpaste version #: src/client/gpaste-client.c:216 msgid "display the version" msgstr "" #. Translators: help for gpaste daemon-version #: src/client/gpaste-client.c:218 msgid "display the daemon version" msgstr "" #. Translators: help for gpaste help #: src/client/gpaste-client.c:220 msgid "display this help" msgstr "ამ დახმარების ჩვენება" #. Translators: help for gpaste about #: src/client/gpaste-client.c:222 msgid "display the about dialog" msgstr "" #: src/client/gpaste-client.c:225 #, c-format msgid "Convenience options:" msgstr "" #. Translators: help for --use-index #: src/client/gpaste-client.c:228 msgid "use the index of the item instead of its UUID" msgstr "" #: src/client/gpaste-client.c:231 #, c-format msgid "Display options:" msgstr "" #. Translators: help for --oneline #: src/client/gpaste-client.c:234 msgid "display each item on only one line" msgstr "" #. Translators: help for --raw #: src/client/gpaste-client.c:236 msgid "display each item raw (without line numbers)" msgstr "" #. Translators: help for --reverse #: src/client/gpaste-client.c:238 msgid "display the items in reverse order" msgstr "" #. Translators: help for --zero #: src/client/gpaste-client.c:240 msgid "use a NUL character instead of a new line betweean each item" msgstr "" #: src/client/gpaste-client.c:243 #, c-format msgid "Merge options:" msgstr "" #. Translators: help for --decoration #. Translators: help for --separator #: src/client/gpaste-client.c:246 src/client/gpaste-client.c:248 msgid "string" msgstr "სტრიქონი" #: src/client/gpaste-client.c:246 msgid "" "add the given decoration to the beginning and the end of each item before " "merging" msgstr "" #: src/client/gpaste-client.c:248 msgid "add the given separator between each item when merging" msgstr "" #: src/client/gpaste-client.c:345 #, c-format msgid "Successfully reexecuted the daemon\n" msgstr "" #: src/client/gpaste-client.c:486 msgid "Cannot add non utf8 data as text." msgstr "" #: src/client/gpaste-client.c:796 src/ui/gpaste-ui-window.c:353 #: src/ui/gpaste-ui-window.c:354 msgid "Couldn't connect to GPaste daemon" msgstr "" #: src/daemon/gpaste-color-item.c:73 msgid "[Color]" msgstr "" #. Translators: strftime format for image timestamps. Rearrange to match your locale's date/time convention. #: src/daemon/gpaste-image-item.c:219 msgid "%m/%d/%y %T" msgstr "%m/%d/%y %T" #. Translators: Image item displayed in history. %d is width, %d is height, %s is the formatted date. #: src/daemon/gpaste-image-item.c:221 #, c-format msgid "[Image, %d x %d (%s)]" msgstr "" #: src/daemon/gpaste-make-password-keybinding.c:50 msgid "Convert to Password" msgstr "" #. This is the prefix displayed in history to identify a password #: src/daemon/gpaste-password-item.c:65 msgid "Password" msgstr "პაროლი" #: src/daemon/gpaste-pop-keybinding.c:64 msgid "Pop from History" msgstr "" #: src/daemon/gpaste-show-history-keybinding.c:49 #, fuzzy msgid "Show History" msgstr "გადართვა" #: src/daemon/gpaste-sync-clipboard-to-primary-keybinding.c:46 msgid "Sync Clipboard to Primary" msgstr "" #: src/daemon/gpaste-sync-primary-to-clipboard-keybinding.c:46 msgid "Sync Primary to Clipboard" msgstr "" #: src/daemon/gpaste-ui-keybinding.c:43 msgid "Launch UI" msgstr "" #: src/daemon/gpaste-upload-keybinding.c:64 msgid "Upload to Pastebin" msgstr "" #: src/daemon/gpaste-uris-item.c:87 msgid "[Files] " msgstr "" #: src/daemon/main.c:32 msgid "Stop signal received, exiting" msgstr "" #: src/daemon/main.c:69 msgid "Could not acquire DBus name." msgstr "" #: src/gnome-shell/dummyHistoryItem.js:12 msgid "(Couldn't connect to GPaste daemon)" msgstr "" #: src/gnome-shell/dummyHistoryItem.js:17 msgid "(Empty)" msgstr "(ცარიელი)" #: src/gnome-shell/dummyHistoryItem.js:22 msgid "(No result)" msgstr "" #: src/gnome-shell/emptyHistoryItem.js:14 msgid "Empty history" msgstr "" #: src/gnome-shell/stateSwitch.js:12 msgid "Track changes" msgstr "" #: src/gnome-shell/uiItem.js:14 msgid "Graphical tool" msgstr "" #: src/libgpaste/gpaste/gpaste-util.c:636 msgid "Could not create history dir" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-macros.h:38 msgid "Failed to register the gtk application" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:108 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:119 msgid "General behaviour" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:121 #: src/ui/gpaste-ui-switch.c:93 msgid "Track clipboard changes" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:127 msgid "Close UI on select" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:133 msgid "Open the UI window centered" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:139 msgid "Save history" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:150 msgid "Enable the gnome-shell extension" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:156 msgid "Sync the daemon state with the extension's one" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:162 msgid "" "When enabled, the daemon automatically starts or stops tracking clipboard " "changes to match the GNOME Shell extension's enabled state" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:166 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:174 msgid "Clipboards synchronization" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:168 msgid "Primary selection affects history" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:174 msgid "Synchronize clipboard with primary selection" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:181 msgid "Optional features" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:183 msgid "Trim items" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:189 msgid "Detect growing lines" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:195 msgid "" "When enabled, if a new clipboard entry starts with the previous one, the " "previous entry is replaced instead of creating a new one" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:92 msgid "History settings" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:103 msgid "Resources limits" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:120 msgid "Text limits" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:122 msgid "Min text item length" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:129 msgid "Max text item length" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:137 msgid "Display settings" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:139 msgid "Max element size when displaying" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:81 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:92 #, fuzzy msgid "Images settings" msgstr "GPaste-ის მორგება" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:94 msgid "Images support" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:100 msgid "Image previews" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:106 msgid "Preview size" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:122 msgid "Keyboard shortcuts" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:133 msgid "History access" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:150 msgid "Active element manipulation" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-util.c:51 #: src/ui/gpaste-ui-edit-item.c:84 src/ui/gpaste-ui-new-item.c:66 #: src/ui/gpaste-ui-panel.c:311 msgid "Cancel" msgstr "გაუქმება" #. Translators: %s is the name of the history being emptied. #: src/libgpaste/gpaste-gtk4/gpaste-gtk-util.c:126 #, c-format msgid "Do you really want to empty \"%s\"?" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-util.c:127 #: src/ui/gpaste-ui-history.c:153 src/ui/gpaste-ui-history.c:428 #: src/ui/gpaste-ui-panel.c:517 msgid "Empty" msgstr "ცარიელი" #: src/ui/gpaste-ui.c:47 msgid "Clipboard management system" msgstr "" #: src/ui/gpaste-ui-delete-item.c:46 src/ui/gpaste-ui-panel.c:358 #: src/ui/gpaste-ui-panel.c:518 msgid "Delete" msgstr "წაშლა" #: src/ui/gpaste-ui-edit-item.c:85 src/ui/gpaste-ui-edit-item.c:139 msgid "Edit" msgstr "ჩასწორება" #: src/ui/gpaste-ui-history.c:266 msgid "No Results" msgstr "" #: src/ui/gpaste-ui-new-item.c:67 msgid "Add new item" msgstr "" #: src/ui/gpaste-ui-new-item.c:100 msgid "New item" msgstr "" #: src/ui/gpaste-ui-panel.c:307 msgid "Under which name do you want to backup this history?" msgstr "" #: src/ui/gpaste-ui-panel.c:311 src/ui/gpaste-ui-panel.c:516 msgid "Backup" msgstr "მარქაფი" #. Translators: %s is the name of the history being deleted. #: src/ui/gpaste-ui-panel.c:357 #, c-format msgid "Are you sure you want to delete \"%s\"?" msgstr "" #: src/ui/gpaste-ui-panel.c:441 #, fuzzy msgid "Switch to history" msgstr "გადართვა" #: src/ui/gpaste-ui-panel.c:448 msgid "Switch to" msgstr "გადართვა" #: src/ui/gpaste-ui-reexec.c:45 msgid "Restart" msgstr "გადარესტარტება" #: src/ui/gpaste-ui-reexec.c:45 msgid "Do you really want to restart the daemon?" msgstr "" #: src/ui/gpaste-ui-reexec.c:70 msgid "Restart the daemon" msgstr "" #: src/ui/gpaste-ui-search.c:23 msgid "Search" msgstr "ძებნა" #: src/ui/gpaste-ui-settings.c:35 msgid "GPaste Settings" msgstr "GPaste-ის მორგება" #: src/ui/gpaste-ui-shortcuts-window.c:21 msgid "General" msgstr "ზოგადი" #: src/ui/gpaste-ui-switch.c:68 msgid "Stop" msgstr "გაჩერება" #: src/ui/gpaste-ui-switch.c:68 msgid "Do you really want to stop tracking clipboard changes?" msgstr "" #: src/ui/gpaste-ui-upload-item.c:46 msgid "Upload" msgstr "ატვირთვა" #: src/ui/gpaste-ui-window.c:303 msgid "Quit" msgstr "" #: src/ui/gpaste-ui-window.c:380 msgid "Histories" msgstr "" #: src/ui/gpaste-ui-window.c:381 msgid "History" msgstr "" #~ msgid "New" #~ msgstr "ახალი" Keruspe-GPaste-724def1/po/ko.po000066400000000000000000001305771521206431300163300ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the GPaste package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: GPaste\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-06-09 21:21+0200\n" "PO-Revision-Date: 2023-05-23 22:50+0000\n" "Last-Translator: 이야기 \n" "Language-Team: Korean \n" "Language: ko\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Weblate 4.18-dev\n" #: data/control-center/42-gpaste.control-center.xml.in:2 msgid "@GETTEXT_PACKAGE@" msgstr "" #: data/control-center/42-gpaste.control-center.xml.in:3 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:136 #: src/ui/gpaste-ui-shortcuts-window.c:24 msgid "Launch the graphical tool" msgstr "" #: data/control-center/42-gpaste.control-center.xml.in:4 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:153 #: src/ui/gpaste-ui-shortcuts-window.c:25 msgid "Mark the active item as being a password" msgstr "" #: data/control-center/42-gpaste.control-center.xml.in:5 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:167 #: src/ui/gpaste-ui-shortcuts-window.c:23 msgid "Delete the active item from history" msgstr "" #: data/control-center/42-gpaste.control-center.xml.in:6 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:143 #: src/ui/gpaste-ui-shortcuts-window.c:26 msgid "Display the history" msgstr "" #: data/control-center/42-gpaste.control-center.xml.in:7 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:177 #: src/ui/gpaste-ui-shortcuts-window.c:27 msgid "Sync the clipboard to the primary selection" msgstr "" #: data/control-center/42-gpaste.control-center.xml.in:8 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:184 #: src/ui/gpaste-ui-shortcuts-window.c:28 msgid "Sync the primary selection to the clipboard" msgstr "" #: data/control-center/42-gpaste.control-center.xml.in:9 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:160 #: src/ui/gpaste-ui-shortcuts-window.c:29 msgid "Upload the active item to a pastebin service" msgstr "" #: data/desktop/org.gnome.GPaste.Daemon.desktop.in.in:3 #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:3 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:6 msgid "GPaste" msgstr "" #: data/desktop/org.gnome.GPaste.Preferences.desktop.in.in:3 msgid "GPaste Preferences" msgstr "" #: data/desktop/org.gnome.GPaste.Preferences.desktop.in.in:4 msgid "Manage your GPaste preferences" msgstr "" #: data/desktop/org.gnome.GPaste.Preferences.desktop.in.in:5 #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:6 msgid "Clipboard;Manager;Settings;Preferences;Configuration;" msgstr "" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:4 msgid "Clipboard Manager" msgstr "" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:5 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:7 msgid "Manage your clipboard history" msgstr "지난글 돌보기" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:16 msgid "Preferences" msgstr "" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:20 #: src/gnome-shell/aboutItem.js:13 src/ui/gpaste-ui-about.c:38 msgid "About" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:7 msgid "Max size of an element when displaying it" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:8 msgid "" "The extra stuff of that element will be replaced by \"…\", and newlines by " "\" \" when displaying from the applet, 0 to disable." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:15 msgid "Do we detect and replace growing lines in history?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:16 msgid "" "By default, selecting \"Here is\", then \"Here is an example\" will create " "two entries in the history. With this feature enabled, the first one will be " "replaced by the second one." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:24 msgid "The name of the current history" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:25 msgid "The default name is \"history\"" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:32 msgid "Do we save the images copied to history, or only text?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:33 msgid "By default, we're saving only text" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:40 msgid "Show image previews in the history?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:41 msgid "By default, we show previews of images in the history" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:49 msgid "Size of image previews in pixels" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:50 msgid "Default size is 100 pixels" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:57 msgid "Do we close the UI after selecting an item?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:58 msgid "By default, we close it" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:65 msgid "Do we open the UI window centered?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:66 #, fuzzy msgid "By default, we open it where the mouse cursor is" msgstr "마우스 포인터가 있는 GPaste UI 까기" #: data/gsettings/org.gnome.GPaste.gschema.xml:73 msgid "The keyboard shortcut to launch the graphical interface" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:74 msgid "" "By default, hitting ctrl + alt + g does that (\"G\"). An empty " "string here disables this functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:82 msgid "The keyboard shortcut to mark the active item as being a password" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:83 msgid "" "By default, hitting ctrl + alt + s will mark the active item as being a " "password (\"S\"). An empty string here disables this " "functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:92 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:146 msgid "Max displayed history size" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:93 msgid "Maximum number of items displayed in the history" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:101 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:105 msgid "Max history size" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:102 msgid "Maximum number of items in history" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:110 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:112 msgid "Max memory usage (MB)" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:111 msgid "Maximum amount of memory used to store contents" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:119 msgid "Max text item size" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:120 msgid "Maximum size of a text item. Anything out of this boundary is ignored." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:128 msgid "Min text item size" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:129 msgid "Minimum size of a text item. Anything out of this boundary is ignored." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:136 msgid "The keyboard shortcut to delete the first element in history" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:137 msgid "" "By default, hitting ctrl + alt + v does that (\"V\"). An empty " "string here disables this functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:145 msgid "Does the primary selection affects history?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:146 msgid "By default, only clipboard (ctrl+c) affects history." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:153 msgid "" "Do we save all versions of selected rich text (e.g. html) or just the plain " "text version?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:154 msgid "By default, we're saving all" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:161 msgid "Do we save the history from one session to another?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:162 msgid "By default, we're saving it" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:169 msgid "The keyboard shortcut to display the menu" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:170 msgid "" "By default, hitting ctrl + alt + h displays the menu (\"H\"). An " "empty string here disables this functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:178 msgid "The keyboard shortcut to sync the clipboard to the primary selection" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:179 msgid "" "By default, hitting ctrl + alt + o syncs them (\"P\"). An empty " "string here disables this functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:187 msgid "The keyboard shortcut to sync the primary selection to the clipboard" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:188 msgid "" "By default, hitting ctrl + alt + p syncs them (\"P\"). An empty " "string here disables this functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:196 msgid "Are the primary selection and the clipboard synchronized?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:197 msgid "By default, the primary selection and the clipboard are independent." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:204 msgid "Do we track the clipboard changes?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:205 msgid "By default, we're tracking those changes." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:212 msgid "" "Do we sync the daemon state with the gnome-shell extension's one? (disable " "the daemon when disabling the extension)" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:213 msgid "By default, the daemon state keeps unchanged" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:220 msgid "Do we trim the textual items before adding them to history?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:221 msgid "" "Trimming means removing all trailing and ending spaces. By default, we're " "letting them as-is." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:229 msgid "" "The keyboard shortcut to upload the first element in history to a pastebin " "service" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:230 msgid "" "By default, hitting ctrl + alt + u does that (\"U\"). An empty " "string here disables this functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:238 msgid "Do we prompt for confirmation when emptying a history?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:239 msgid "By default, we do as it's a destructive action" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:9 msgid "Marc-Antoine Perennou" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:17 msgid "" "GPaste is a clipboard managing system allowing you to track and manage your " "clipboard history in a highly customizable way." msgstr "" "GPaste는 클립보드 돌보기 시스템으로 사용자 정의가 가능한 방식으로 클립보드 기" "록을 추적하고 돌보기 할 수 있다." #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:20 msgid "" "GPaste provides you with a graphical tool allowing you to manage everything " "easily." msgstr "GPaste는 모든 것을 쉽게 돌보기 할 수 있는 그래픽 도구를 제공합니다." #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:27 msgid "The main UI" msgstr "메인 UI" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:31 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:35 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:39 msgid "The settings UI" msgstr "셋팅 UI" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:51 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:78 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:90 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:100 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:120 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:133 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:143 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:152 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:161 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:180 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:197 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:205 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:213 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:231 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:239 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:247 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:255 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:263 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:287 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:295 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:303 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:311 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:319 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:327 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:335 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:343 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:352 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:361 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:379 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:387 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:395 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:403 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:421 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:429 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:438 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:447 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:456 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:464 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:485 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:493 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:501 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:509 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:517 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:533 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:541 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:549 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:557 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:573 msgid "This is a maintenance release. Changes:" msgstr "이것은 돌보기하기 릴리스입니다. 바낀 것:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:53 msgid "Fix building without the GNOME Shell extension (-Dgnome-shell=false)" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:54 msgid "" "Restore GTK deprecation version-gating and drop the unused build-time gjs " "dependency" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:55 msgid "Target GNOME Shell 50 in the extension" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:56 msgid "Bump the library soversions to reflect the API/ABI changes since 45.8" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:62 msgid "" "This is a major release porting GPaste to GTK 4 and libadwaita. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:64 msgid "Port the daemon, history UI and preferences to GTK 4 and libadwaita" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:65 msgid "Show image thumbnails in the history, with configurable preview size" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:66 msgid "" "Support global keyboard shortcuts on Wayland through the XDG GlobalShortcuts " "portal" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:67 msgid "Recognise copied colours as dedicated colour items" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:68 msgid "" "Give keybindings human-readable descriptions and install a daemon desktop " "file" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:69 msgid "Fix images sometimes being repeatedly re-added to the history" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:70 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:81 msgid "" "Fix keyboard shortcuts not triggering when NumLock and CapsLock are both " "active" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:71 msgid "" "Fix several crashes (search provider, UI lifetime, GNOME Shell extension) " "and memory leaks" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:72 msgid "Modernise the GNOME Shell extension to current conventions" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:80 msgid "Fix use-after-free crash in the GNOME Shell search provider" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:82 msgid "" "Fix memory leaks when re-copying history items and when rebinding shortcuts" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:83 msgid "Fix potential crash when enforcing a very small history size" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:84 msgid "Build: ship the GSettings schema as a static file" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:92 msgid "" "GNOME Shell extension now retries the daemon connection before giving up" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:93 msgid "Fix test crash when GrabAccelerators is not allowed" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:94 msgid "Build: simplify gsettings compilation for tests" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:102 msgid "Fix GC crash and signal leak when disabling the GNOME Shell extension" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:103 msgid "GNOME Shell extension now handles daemon connection failure gracefully" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:104 msgid "Fix crash when a history item has no value yet" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:105 msgid "Fix image files not being deleted when history items are removed" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:106 msgid "Fix image files stored in wrong directory" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:107 msgid "Fix keyboard focus being stolen by history items on hover" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:108 msgid "" "Fix key events incorrectly forwarded to search when another entry has focus" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:109 msgid "Fix signal loop when updating shortcut entries from settings" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:110 msgid "Fix default history item count not reset after history deletion" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:111 msgid "Enforce minimum window size to prevent unresizable state" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:112 msgid "Add descriptive tooltips for settings entries" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:113 msgid "Build: explicitly link libgpaste libraries against libc" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:114 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:127 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:137 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:146 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:155 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:164 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:174 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:225 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:267 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:281 msgid "Translations updates" msgstr "변역 판올림" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:122 msgid "" "Fix infinite Pango assertion loop that could fill disk when clipboard " "content contained tab characters" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:123 msgid "Various bug fixes and memory management improvements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:124 msgid "Daemon improvements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:125 msgid "GNOME Shell extension improvements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:126 #, fuzzy msgid "GLib >= 2.76 is now required" msgstr "이제 gcr 4가 있어야 한다." #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:135 #, fuzzy msgid "Support for gnome 50" msgstr "그놈 44로 Port" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:136 #, fuzzy msgid "Support for gnome 49" msgstr "그놈 44로 Port" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:145 #, fuzzy msgid "Support for gnome 48" msgstr "그놈 44로 Port" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:154 #, fuzzy msgid "Support for gnome 47" msgstr "그놈 44로 Port" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:163 #, fuzzy msgid "Support for gnome 46" msgstr "그놈 44로 Port" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:170 #, fuzzy msgid "Stable release for GNOME 45. Changes:" msgstr "GNOME 44의 첫 번째 릴리스. 바낀 사항:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:172 #, fuzzy msgid "Port to gnome 45" msgstr "그놈 44로 Port" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:173 msgid "Add setting to open ui window centered" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:182 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:199 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:233 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:289 msgid "Fix a bug leading to history with only one item" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:188 msgid "First release for GNOME 44. Changes:" msgstr "GNOME 44의 첫 번째 릴리스. 바낀 사항:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:190 msgid "gcr 4 is now required" msgstr "이제 gcr 4가 있어야 한다." #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:191 msgid "Port to gnome 44" msgstr "그놈 44로 Port" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:207 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:241 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:297 msgid "Avoid crash under heavy memory load" msgstr "심한 메모리 로드 시 박치기 없애기" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:215 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:249 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:305 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:381 msgid "Respect --use-index when displaying history" msgstr "기록을 볼 때 --use-index를 쓴다" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:221 msgid "First release for GNOME 43. Changes:" msgstr "GNOME 43의 첫 번째 릴리스. 바낀 것:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:223 msgid "Port to GNOME 43" msgstr "그놈 43로 Port" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:224 msgid "Internal preparation for gtk4 port" msgstr "gtk4 포트에 대한 안쪽 준비" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:257 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:313 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:389 msgid "Open GPaste UI where the mouse pointer is" msgstr "마우스 포인터가 있는 GPaste UI 까기" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:265 msgid "Fixes to the new preferences tool" msgstr "새로운 환경 설정 도구 바꾸기" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:266 msgid "Style fixes" msgstr "스타일 고치기" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:273 msgid "First release for GNOME 42. Changes:" msgstr "GNOME 42의 첫 번째 릴리스. 바낀 것:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:275 msgid "" "Old libgpaste replaced by a new minimal libgpaste-2 with no gtk dependency" msgstr "전에 libgpaste는 gtk 종속성이 없는 새로운 최소 libgpaste-2로 바끼었다" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:276 msgid "New libgpaste-gtk3 for utils and settings ui" msgstr "유틸리티 및 설정 UI를 위한 새로운 libgpaste-gtk3" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:277 msgid "New libgpaste-gtk4 for utils and preferences ui" msgstr "유틸리티 및 기본 설정 UI를 위한 새로운 libgpaste-gtk4" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:278 msgid "New gtk4 based gpaste-preferences utility" msgstr "새로운 gtk4 기반 gpaste-preferences 유틸리티" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:279 msgid "Autotools are no longer supported" msgstr "Autotools는 더 이상 도와주지 않는다" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:280 msgid "Extension updated for gnome-shell 42" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:321 msgid "fix the storage path for meson builds" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:329 msgid "fix some race conditions in history handling" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:337 msgid "better fix crash when there is no history yet" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:345 msgid "fix crash when there is no history yet" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:346 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:355 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:364 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:373 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:397 msgid "translations update" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:354 msgid "fix gnome-shell exntesion when the daemon restarts" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:363 msgid "Fix keybindings for wayland" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:370 msgid "First release for GNOME 41. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:372 msgid "port to gnome-shell 41" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:405 msgid "fix a crash in memory usage checking" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:412 msgid "First release for GNOME 40. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:414 msgid "port to gnome-shell 40" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:415 msgid "placeholder for gnome-shell prefs" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:423 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:487 msgid "fix X11 keybinder outside of GNOME" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:431 msgid "better handling and reporting of invalid uuids passed to gpaste-client" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:432 msgid "" "gpaste-client now has a --use-index argument for several subcommands to use " "index instead of uuid" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:440 msgid "fix the make-password keybinding" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:441 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:450 msgid "updated translations" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:449 msgid "gnome-shell extension warning fixes" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:458 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:495 msgid "gnome-shell extension cosmetic updates" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:466 msgid "Disable images support by default (can be reenabled in preferences)" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:467 msgid "Search now includes passwords (using their names)" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:468 msgid "systemd integration enhancements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:474 msgid "First release for GNOME 3.38. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:476 msgid "Drop the Tracking DBus signal" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:477 msgid "Switch to uuids to identify items" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:478 msgid "Bump DBus interface to org.gnome.GPaste2" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:479 msgid "Update to gnome-shell 3.38.0" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:503 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:535 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:577 msgid "Fix activating items using Ctrl-Number in gnome-shell" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:511 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:543 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:576 msgid "Fix keybinding regrab with gnome-shell" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:519 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:551 msgid "Fix keybinding grab with gnome-shell" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:525 msgid "First release for GNOME 3.36. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:527 msgid "Update to gnome-shell 3.36.0" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:559 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:575 msgid "Compatibility with recent appstream-glib" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:565 msgid "First release for GNOME 3.34. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:567 msgid "Update to gnome-shell 3.34.0" msgstr "" #: src/client/gpaste-client.c:146 msgid "Couldn't spawn" msgstr "" #: src/client/gpaste-client.c:158 #, c-format msgid "Usage:\n" msgstr "" #. Translators: help for gpaste history #: src/client/gpaste-client.c:160 msgid "print the history with UUIDs" msgstr "" #. Translators: help for gpaste history-size #: src/client/gpaste-client.c:162 msgid "print the size of the history" msgstr "" #. Translators: help for gpaste get-history #: src/client/gpaste-client.c:164 msgid "get the name of the current history" msgstr "" #. Translators: help for gpaste backup-history #. Translators: help for gpaste switch-history #. Translators: help for gpaste delete-history #. Translators: help for gpaste add-password #. Translators: help for gpaste set-password #. Translators: help for gpaste delete-passworf #: src/client/gpaste-client.c:166 src/client/gpaste-client.c:168 #: src/client/gpaste-client.c:170 src/client/gpaste-client.c:176 #: src/client/gpaste-client.c:188 src/client/gpaste-client.c:192 msgid "name" msgstr "" #: src/client/gpaste-client.c:166 msgid "backup current history" msgstr "" #: src/client/gpaste-client.c:168 msgid "switch to another history" msgstr "" #: src/client/gpaste-client.c:170 msgid "delete a history" msgstr "" #. Translators: help for gpaste list-histories #: src/client/gpaste-client.c:172 msgid "list available histories" msgstr "" #. Translators: help for gpaste add #: src/client/gpaste-client.c:174 msgid "text" msgstr "" #: src/client/gpaste-client.c:174 msgid "set text to clipboard" msgstr "" #: src/client/gpaste-client.c:176 msgid "password" msgstr "" #: src/client/gpaste-client.c:176 msgid "add the name - password couple to the clipboard" msgstr "" #. Translators: help for gpaste rename-password #: src/client/gpaste-client.c:178 msgid "old name" msgstr "" #: src/client/gpaste-client.c:178 msgid "new name" msgstr "" #: src/client/gpaste-client.c:178 msgid "rename the password" msgstr "" #. Translators: help for gpaste get #: src/client/gpaste-client.c:180 msgid "get the item from the history" msgstr "" #. Translators: help for gpaste select #: src/client/gpaste-client.c:182 msgid "set the item from the history to the clipboard" msgstr "" #. Translators: help for gpaste replace #: src/client/gpaste-client.c:184 msgid "contents" msgstr "" #: src/client/gpaste-client.c:184 msgid "" "replace the contents of the item from the history with the provided " "one" msgstr "" #. Translators: help for gpaste merge #: src/client/gpaste-client.c:186 msgid "" "merge the items matching the UUIDs from the history and put the result in " "the clipboard" msgstr "" #: src/client/gpaste-client.c:188 msgid "set the item from the history as a password named " msgstr "" #. Translators: help for gpaste delete #: src/client/gpaste-client.c:190 msgid "delete item from the history" msgstr "" #: src/client/gpaste-client.c:192 msgid "delete the password from the history" msgstr "" #. Translators: help for gpaste file #: src/client/gpaste-client.c:194 msgid "path" msgstr "" #: src/client/gpaste-client.c:194 msgid "put the content of the file at into the clipboard" msgstr "" #. Translators: help for whatever | gpaste #: src/client/gpaste-client.c:196 msgid "whatever" msgstr "" #: src/client/gpaste-client.c:196 msgid "set the output of whatever to clipboard" msgstr "" #. Translators: help for gpaste empty #: src/client/gpaste-client.c:198 msgid "empty the history" msgstr "" #. Translators: help for gpaste start #: src/client/gpaste-client.c:200 msgid "start tracking clipboard changes" msgstr "" #. Translators: help for gpaste stop #: src/client/gpaste-client.c:202 msgid "stop tracking clipboard changes" msgstr "" #. Translators: help for gpaste quit #: src/client/gpaste-client.c:204 msgid "alias for stop" msgstr "" #. Translators: help for gpaste daemon-reexec #: src/client/gpaste-client.c:206 msgid "reexecute the daemon (after upgrading...)" msgstr "" #. Translators: help for gpaste preferences #: src/client/gpaste-client.c:208 msgid "launch the configuration tool" msgstr "" #. Translators: help for gpaste ui #: src/client/gpaste-client.c:210 msgid "launch the graphical tool" msgstr "" #. Translators: help for gpaste show-history #: src/client/gpaste-client.c:212 msgid "make the applet or extension display the history" msgstr "" #. Translators: help for gpaste upload #: src/client/gpaste-client.c:214 msgid "upload the item to a pastebin service" msgstr "" #. Translators: help for gpaste version #: src/client/gpaste-client.c:216 msgid "display the version" msgstr "" #. Translators: help for gpaste daemon-version #: src/client/gpaste-client.c:218 msgid "display the daemon version" msgstr "" #. Translators: help for gpaste help #: src/client/gpaste-client.c:220 msgid "display this help" msgstr "" #. Translators: help for gpaste about #: src/client/gpaste-client.c:222 msgid "display the about dialog" msgstr "" #: src/client/gpaste-client.c:225 #, c-format msgid "Convenience options:" msgstr "" #. Translators: help for --use-index #: src/client/gpaste-client.c:228 msgid "use the index of the item instead of its UUID" msgstr "" #: src/client/gpaste-client.c:231 #, c-format msgid "Display options:" msgstr "" #. Translators: help for --oneline #: src/client/gpaste-client.c:234 msgid "display each item on only one line" msgstr "" #. Translators: help for --raw #: src/client/gpaste-client.c:236 msgid "display each item raw (without line numbers)" msgstr "" #. Translators: help for --reverse #: src/client/gpaste-client.c:238 msgid "display the items in reverse order" msgstr "" #. Translators: help for --zero #: src/client/gpaste-client.c:240 msgid "use a NUL character instead of a new line betweean each item" msgstr "" #: src/client/gpaste-client.c:243 #, c-format msgid "Merge options:" msgstr "" #. Translators: help for --decoration #. Translators: help for --separator #: src/client/gpaste-client.c:246 src/client/gpaste-client.c:248 msgid "string" msgstr "" #: src/client/gpaste-client.c:246 msgid "" "add the given decoration to the beginning and the end of each item before " "merging" msgstr "" #: src/client/gpaste-client.c:248 msgid "add the given separator between each item when merging" msgstr "" #: src/client/gpaste-client.c:345 #, c-format msgid "Successfully reexecuted the daemon\n" msgstr "" #: src/client/gpaste-client.c:486 msgid "Cannot add non utf8 data as text." msgstr "" #: src/client/gpaste-client.c:796 src/ui/gpaste-ui-window.c:353 #: src/ui/gpaste-ui-window.c:354 msgid "Couldn't connect to GPaste daemon" msgstr "" #: src/daemon/gpaste-color-item.c:73 msgid "[Color]" msgstr "" #. Translators: strftime format for image timestamps. Rearrange to match your locale's date/time convention. #: src/daemon/gpaste-image-item.c:219 msgid "%m/%d/%y %T" msgstr "" #. Translators: Image item displayed in history. %d is width, %d is height, %s is the formatted date. #: src/daemon/gpaste-image-item.c:221 #, c-format msgid "[Image, %d x %d (%s)]" msgstr "" #: src/daemon/gpaste-make-password-keybinding.c:50 msgid "Convert to Password" msgstr "" #. This is the prefix displayed in history to identify a password #: src/daemon/gpaste-password-item.c:65 msgid "Password" msgstr "" #: src/daemon/gpaste-pop-keybinding.c:64 msgid "Pop from History" msgstr "" #: src/daemon/gpaste-show-history-keybinding.c:49 msgid "Show History" msgstr "" #: src/daemon/gpaste-sync-clipboard-to-primary-keybinding.c:46 msgid "Sync Clipboard to Primary" msgstr "" #: src/daemon/gpaste-sync-primary-to-clipboard-keybinding.c:46 msgid "Sync Primary to Clipboard" msgstr "" #: src/daemon/gpaste-ui-keybinding.c:43 msgid "Launch UI" msgstr "" #: src/daemon/gpaste-upload-keybinding.c:64 msgid "Upload to Pastebin" msgstr "" #: src/daemon/gpaste-uris-item.c:87 msgid "[Files] " msgstr "" #: src/daemon/main.c:32 msgid "Stop signal received, exiting" msgstr "" #: src/daemon/main.c:69 msgid "Could not acquire DBus name." msgstr "" #: src/gnome-shell/dummyHistoryItem.js:12 msgid "(Couldn't connect to GPaste daemon)" msgstr "" #: src/gnome-shell/dummyHistoryItem.js:17 msgid "(Empty)" msgstr "" #: src/gnome-shell/dummyHistoryItem.js:22 msgid "(No result)" msgstr "" #: src/gnome-shell/emptyHistoryItem.js:14 msgid "Empty history" msgstr "" #: src/gnome-shell/stateSwitch.js:12 msgid "Track changes" msgstr "" #: src/gnome-shell/uiItem.js:14 msgid "Graphical tool" msgstr "" #: src/libgpaste/gpaste/gpaste-util.c:636 msgid "Could not create history dir" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-macros.h:38 msgid "Failed to register the gtk application" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:108 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:119 msgid "General behaviour" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:121 #: src/ui/gpaste-ui-switch.c:93 msgid "Track clipboard changes" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:127 msgid "Close UI on select" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:133 msgid "Open the UI window centered" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:139 msgid "Save history" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:150 msgid "Enable the gnome-shell extension" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:156 msgid "Sync the daemon state with the extension's one" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:162 msgid "" "When enabled, the daemon automatically starts or stops tracking clipboard " "changes to match the GNOME Shell extension's enabled state" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:166 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:174 msgid "Clipboards synchronization" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:168 msgid "Primary selection affects history" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:174 msgid "Synchronize clipboard with primary selection" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:181 msgid "Optional features" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:183 msgid "Trim items" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:189 msgid "Detect growing lines" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:195 msgid "" "When enabled, if a new clipboard entry starts with the previous one, the " "previous entry is replaced instead of creating a new one" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:92 msgid "History settings" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:103 msgid "Resources limits" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:120 msgid "Text limits" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:122 msgid "Min text item length" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:129 msgid "Max text item length" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:137 msgid "Display settings" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:139 msgid "Max element size when displaying" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:81 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:92 #, fuzzy msgid "Images settings" msgstr "셋팅 UI" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:94 msgid "Images support" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:100 msgid "Image previews" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:106 msgid "Preview size" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:122 msgid "Keyboard shortcuts" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:133 msgid "History access" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:150 msgid "Active element manipulation" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-util.c:51 #: src/ui/gpaste-ui-edit-item.c:84 src/ui/gpaste-ui-new-item.c:66 #: src/ui/gpaste-ui-panel.c:311 msgid "Cancel" msgstr "" #. Translators: %s is the name of the history being emptied. #: src/libgpaste/gpaste-gtk4/gpaste-gtk-util.c:126 #, c-format msgid "Do you really want to empty \"%s\"?" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-util.c:127 #: src/ui/gpaste-ui-history.c:153 src/ui/gpaste-ui-history.c:428 #: src/ui/gpaste-ui-panel.c:517 msgid "Empty" msgstr "" #: src/ui/gpaste-ui.c:47 msgid "Clipboard management system" msgstr "" #: src/ui/gpaste-ui-delete-item.c:46 src/ui/gpaste-ui-panel.c:358 #: src/ui/gpaste-ui-panel.c:518 msgid "Delete" msgstr "" #: src/ui/gpaste-ui-edit-item.c:85 src/ui/gpaste-ui-edit-item.c:139 msgid "Edit" msgstr "" #: src/ui/gpaste-ui-history.c:266 msgid "No Results" msgstr "" #: src/ui/gpaste-ui-new-item.c:67 msgid "Add new item" msgstr "" #: src/ui/gpaste-ui-new-item.c:100 msgid "New item" msgstr "" #: src/ui/gpaste-ui-panel.c:307 msgid "Under which name do you want to backup this history?" msgstr "" #: src/ui/gpaste-ui-panel.c:311 src/ui/gpaste-ui-panel.c:516 msgid "Backup" msgstr "" #. Translators: %s is the name of the history being deleted. #: src/ui/gpaste-ui-panel.c:357 #, c-format msgid "Are you sure you want to delete \"%s\"?" msgstr "" #: src/ui/gpaste-ui-panel.c:441 msgid "Switch to history" msgstr "" #: src/ui/gpaste-ui-panel.c:448 msgid "Switch to" msgstr "" #: src/ui/gpaste-ui-reexec.c:45 msgid "Restart" msgstr "" #: src/ui/gpaste-ui-reexec.c:45 msgid "Do you really want to restart the daemon?" msgstr "" #: src/ui/gpaste-ui-reexec.c:70 msgid "Restart the daemon" msgstr "" #: src/ui/gpaste-ui-search.c:23 msgid "Search" msgstr "" #: src/ui/gpaste-ui-settings.c:35 msgid "GPaste Settings" msgstr "" #: src/ui/gpaste-ui-shortcuts-window.c:21 msgid "General" msgstr "" #: src/ui/gpaste-ui-switch.c:68 msgid "Stop" msgstr "" #: src/ui/gpaste-ui-switch.c:68 msgid "Do you really want to stop tracking clipboard changes?" msgstr "" #: src/ui/gpaste-ui-upload-item.c:46 msgid "Upload" msgstr "" #: src/ui/gpaste-ui-window.c:303 msgid "Quit" msgstr "" #: src/ui/gpaste-ui-window.c:380 msgid "Histories" msgstr "" #: src/ui/gpaste-ui-window.c:381 msgid "History" msgstr "" Keruspe-GPaste-724def1/po/meson.build000066400000000000000000000000551521206431300175040ustar00rootroot00000000000000i18n.gettext( 'GPaste', preset: 'glib', )Keruspe-GPaste-724def1/po/nb_NO.po000066400000000000000000001540271521206431300167060ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Marc-Antoine Perennou # This file is distributed under the same license as the gpaste package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: gpaste 3.38.2\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-06-09 21:21+0200\n" "PO-Revision-Date: 2024-09-02 20:09+0000\n" "Last-Translator: Allan Nordhøy \n" "Language-Team: Norwegian Bokmål \n" "Language: nb_NO\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: Weblate 5.8-dev\n" #: data/control-center/42-gpaste.control-center.xml.in:2 msgid "@GETTEXT_PACKAGE@" msgstr "@GETTEXT_PACKAGE@" #: data/control-center/42-gpaste.control-center.xml.in:3 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:136 #: src/ui/gpaste-ui-shortcuts-window.c:24 msgid "Launch the graphical tool" msgstr "Start det grafiske verktøyet" #: data/control-center/42-gpaste.control-center.xml.in:4 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:153 #: src/ui/gpaste-ui-shortcuts-window.c:25 msgid "Mark the active item as being a password" msgstr "Maker aktivt element som passord" #: data/control-center/42-gpaste.control-center.xml.in:5 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:167 #: src/ui/gpaste-ui-shortcuts-window.c:23 msgid "Delete the active item from history" msgstr "Slett aktivt element fra historikk" #: data/control-center/42-gpaste.control-center.xml.in:6 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:143 #: src/ui/gpaste-ui-shortcuts-window.c:26 msgid "Display the history" msgstr "Vis historikken" #: data/control-center/42-gpaste.control-center.xml.in:7 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:177 #: src/ui/gpaste-ui-shortcuts-window.c:27 #, fuzzy msgid "Sync the clipboard to the primary selection" msgstr "Synkroniser utklippstavle til primærmarkering" #: data/control-center/42-gpaste.control-center.xml.in:8 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:184 #: src/ui/gpaste-ui-shortcuts-window.c:28 #, fuzzy msgid "Sync the primary selection to the clipboard" msgstr "Synkroniser primær markering til utklippstavle" #: data/control-center/42-gpaste.control-center.xml.in:9 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:160 #: src/ui/gpaste-ui-shortcuts-window.c:29 #, fuzzy msgid "Upload the active item to a pastebin service" msgstr "Last opp aktivt element til en innlimingsnett-tjeneste" #: data/desktop/org.gnome.GPaste.Daemon.desktop.in.in:3 #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:3 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:6 msgid "GPaste" msgstr "GPaste" #: data/desktop/org.gnome.GPaste.Preferences.desktop.in.in:3 #, fuzzy msgid "GPaste Preferences" msgstr "GPaste-innstillinger" #: data/desktop/org.gnome.GPaste.Preferences.desktop.in.in:4 msgid "Manage your GPaste preferences" msgstr "Håndter dine GPaste-innstillinger" #: data/desktop/org.gnome.GPaste.Preferences.desktop.in.in:5 #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:6 msgid "Clipboard;Manager;Settings;Preferences;Configuration;" msgstr "Utklippstavle:håndtering;innstillinger;oppsett;clipboard;" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:4 #, fuzzy msgid "Clipboard Manager" msgstr "Spor endringer i utklippstavlen" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:5 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:7 msgid "Manage your clipboard history" msgstr "Håndter din utklippstavlehistorikk" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:16 #, fuzzy msgid "Preferences" msgstr "GPaste-innstillinger" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:20 #: src/gnome-shell/aboutItem.js:13 src/ui/gpaste-ui-about.c:38 msgid "About" msgstr "Om" #: data/gsettings/org.gnome.GPaste.gschema.xml:7 msgid "Max size of an element when displaying it" msgstr "Maks. størrelse for vist element" #: data/gsettings/org.gnome.GPaste.gschema.xml:8 #, fuzzy msgid "" "The extra stuff of that element will be replaced by \"…\", and newlines by " "\" \" when displaying from the applet, 0 to disable." msgstr "" "Ekstra del av elementet vil erstatet av \"…\", og linjeskiftet med \" \" ved " "visning fra miniprogrammet. 0 for å skru av." #: data/gsettings/org.gnome.GPaste.gschema.xml:15 #, fuzzy msgid "Do we detect and replace growing lines in history?" msgstr "Oppdag og erstatt voksende linjer i historikken?" #: data/gsettings/org.gnome.GPaste.gschema.xml:16 #, fuzzy msgid "" "By default, selecting \"Here is\", then \"Here is an example\" will create " "two entries in the history. With this feature enabled, the first one will be " "replaced by the second one." msgstr "" "Valg av \"Her er\", og så \"Her er det et eksempel\" vil opprette to " "oppføringer i historikken som forvalg. Når dette er påslått, vil den første " "erstattes av den andre." #: data/gsettings/org.gnome.GPaste.gschema.xml:24 msgid "The name of the current history" msgstr "Navn på nåværende historikk" #: data/gsettings/org.gnome.GPaste.gschema.xml:25 #, fuzzy msgid "The default name is \"history\"" msgstr "Forvalgt navn er \"historikk\"" #: data/gsettings/org.gnome.GPaste.gschema.xml:32 #, fuzzy msgid "Do we save the images copied to history, or only text?" msgstr "Lagre bilder kopiert til historikk, eller kun tekst?" #: data/gsettings/org.gnome.GPaste.gschema.xml:33 #, fuzzy msgid "By default, we're saving only text" msgstr "Som forvalg lagres kun tekst" #: data/gsettings/org.gnome.GPaste.gschema.xml:40 msgid "Show image previews in the history?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:41 msgid "By default, we show previews of images in the history" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:49 msgid "Size of image previews in pixels" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:50 msgid "Default size is 100 pixels" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:57 msgid "Do we close the UI after selecting an item?" msgstr "Lukk grensesnitt etter valg av element?" #: data/gsettings/org.gnome.GPaste.gschema.xml:58 #, fuzzy msgid "By default, we close it" msgstr "Som forvalg lukkes det" #: data/gsettings/org.gnome.GPaste.gschema.xml:65 msgid "Do we open the UI window centered?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:66 #, fuzzy msgid "By default, we open it where the mouse cursor is" msgstr "Åpne GPaste-grensesnitt der musepekeren er" #: data/gsettings/org.gnome.GPaste.gschema.xml:73 msgid "The keyboard shortcut to launch the graphical interface" msgstr "Tastatursnarvei for å starte grafisk grensesnitt" #: data/gsettings/org.gnome.GPaste.gschema.xml:74 #, fuzzy msgid "" "By default, hitting ctrl + alt + g does that (\"G\"). An empty " "string here disables this functionnality." msgstr "" "Ctrl+Alt+G gjør dette som forvalg (\"Alt>G\"). La stå tom for å skru " "av." #: data/gsettings/org.gnome.GPaste.gschema.xml:82 #, fuzzy msgid "The keyboard shortcut to mark the active item as being a password" msgstr "Tastatursnarveien for å markere aktivt element som passord" #: data/gsettings/org.gnome.GPaste.gschema.xml:83 #, fuzzy msgid "" "By default, hitting ctrl + alt + s will mark the active item as being a " "password (\"S\"). An empty string here disables this " "functionnality." msgstr "" "Ctrl+Alt+S markerer aktivt element som passord som forvalg " "(\"S\"). La stå tom for å skru av." #: data/gsettings/org.gnome.GPaste.gschema.xml:92 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:146 msgid "Max displayed history size" msgstr "Maks. vist historikkstørrelse" #: data/gsettings/org.gnome.GPaste.gschema.xml:93 msgid "Maximum number of items displayed in the history" msgstr "Maksimalt antall viste elementer i historikken" #: data/gsettings/org.gnome.GPaste.gschema.xml:101 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:105 msgid "Max history size" msgstr "Maks. historikkstørrelse" #: data/gsettings/org.gnome.GPaste.gschema.xml:102 msgid "Maximum number of items in history" msgstr "Maksimalt antall elementer i historikken" #: data/gsettings/org.gnome.GPaste.gschema.xml:110 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:112 msgid "Max memory usage (MB)" msgstr "Maks. minnebruk (MB)" #: data/gsettings/org.gnome.GPaste.gschema.xml:111 msgid "Maximum amount of memory used to store contents" msgstr "Maksimal mengde minne brukt til lagring av innhold" #: data/gsettings/org.gnome.GPaste.gschema.xml:119 msgid "Max text item size" msgstr "Maks. tekstelementstørrelse" #: data/gsettings/org.gnome.GPaste.gschema.xml:120 msgid "Maximum size of a text item. Anything out of this boundary is ignored." msgstr "" "Maksimal størrelse for hvert tekstelement. Alt som overskrider denne grensen " "vil overses." #: data/gsettings/org.gnome.GPaste.gschema.xml:128 msgid "Min text item size" msgstr "Maks. tekstelementstørrelse" #: data/gsettings/org.gnome.GPaste.gschema.xml:129 #, fuzzy msgid "Minimum size of a text item. Anything out of this boundary is ignored." msgstr "" "Minimumsstørrelse for hvert tekstelement. Alt som er mindre enn dette vil " "bli ignorert." #: data/gsettings/org.gnome.GPaste.gschema.xml:136 msgid "The keyboard shortcut to delete the first element in history" msgstr "Tastatursnarvei for å slette første element i historikken" #: data/gsettings/org.gnome.GPaste.gschema.xml:137 #, fuzzy msgid "" "By default, hitting ctrl + alt + v does that (\"V\"). An empty " "string here disables this functionnality." msgstr "" "Ctrl+Alt+V gjør dette som forvalg (\"V\"). La stå tom for å skru " "av." #: data/gsettings/org.gnome.GPaste.gschema.xml:145 #, fuzzy msgid "Does the primary selection affects history?" msgstr "Skal det primære utvalget innvirkning på historikken?" #: data/gsettings/org.gnome.GPaste.gschema.xml:146 #, fuzzy msgid "By default, only clipboard (ctrl+c) affects history." msgstr "" "Som forvalg har kun utklippstavlen (Ctrl+C) innvirkning på historikken." #: data/gsettings/org.gnome.GPaste.gschema.xml:153 #, fuzzy msgid "" "Do we save all versions of selected rich text (e.g. html) or just the plain " "text version?" msgstr "" "Skal alle versjoner av formatert tekst lagres (f.eks. HTML), eller kun " "klartekstversjonen?" #: data/gsettings/org.gnome.GPaste.gschema.xml:154 msgid "By default, we're saving all" msgstr "Som forvalg lagres alt" #: data/gsettings/org.gnome.GPaste.gschema.xml:161 #, fuzzy msgid "Do we save the history from one session to another?" msgstr "Skal historikk lagres fra én økt til en annen?" #: data/gsettings/org.gnome.GPaste.gschema.xml:162 #, fuzzy msgid "By default, we're saving it" msgstr "Som forvalg lagres det" #: data/gsettings/org.gnome.GPaste.gschema.xml:169 msgid "The keyboard shortcut to display the menu" msgstr "Tastatursnarvei for visning av menyen" #: data/gsettings/org.gnome.GPaste.gschema.xml:170 #, fuzzy msgid "" "By default, hitting ctrl + alt + h displays the menu (\"H\"). An " "empty string here disables this functionnality." msgstr "" "Ctrl+Alt+H skjuler menyen som forvalg (\">Ctrl>Alt>H\". La stå tom for å " "skru av." #: data/gsettings/org.gnome.GPaste.gschema.xml:178 msgid "The keyboard shortcut to sync the clipboard to the primary selection" msgstr "" "Tastatursnarvei for å synkronisere utklippstavlen til det primære utvalget" #: data/gsettings/org.gnome.GPaste.gschema.xml:179 #, fuzzy msgid "" "By default, hitting ctrl + alt + o syncs them (\"P\"). An empty " "string here disables this functionnality." msgstr "" "Ctrl+Alt+O synkroniserer dem som forvalg (\"P\"). La stå tom for " "å skru av." #: data/gsettings/org.gnome.GPaste.gschema.xml:187 #, fuzzy msgid "The keyboard shortcut to sync the primary selection to the clipboard" msgstr "" "Tastatursnarvei for å skru av synkronisering av det primære utvalget til " "utklippstavlen" #: data/gsettings/org.gnome.GPaste.gschema.xml:188 #, fuzzy msgid "" "By default, hitting ctrl + alt + p syncs them (\"P\"). An empty " "string here disables this functionnality." msgstr "" "Ctrl+Alt+P synkroniserer dem som forvalg (\"P\"). La stå tom for " "å skru av." #: data/gsettings/org.gnome.GPaste.gschema.xml:196 msgid "Are the primary selection and the clipboard synchronized?" msgstr "Er det primære utvalget og utklippstavlen synkronisert?" #: data/gsettings/org.gnome.GPaste.gschema.xml:197 msgid "By default, the primary selection and the clipboard are independent." msgstr "Det primære utvalget og utklippstavlen er uavhengige som forvalg." #: data/gsettings/org.gnome.GPaste.gschema.xml:204 #, fuzzy msgid "Do we track the clipboard changes?" msgstr "Skal endringer i utklippstavlen spores?" #: data/gsettings/org.gnome.GPaste.gschema.xml:205 #, fuzzy msgid "By default, we're tracking those changes." msgstr "Disse spores som forvalg." #: data/gsettings/org.gnome.GPaste.gschema.xml:212 #, fuzzy msgid "" "Do we sync the daemon state with the gnome-shell extension's one? (disable " "the daemon when disabling the extension)" msgstr "" "Skal nissetilstanden synkroniseres med den i gnome-shell-utvidelsen? (skru " "av nissen når du skrur av utvidelsen)" #: data/gsettings/org.gnome.GPaste.gschema.xml:213 #, fuzzy msgid "By default, the daemon state keeps unchanged" msgstr "Som forvalg endres ikke nissetilstanden" #: data/gsettings/org.gnome.GPaste.gschema.xml:220 #, fuzzy msgid "Do we trim the textual items before adding them to history?" msgstr "Skal tekstelementer beskjæres før de legges til i historikken?" #: data/gsettings/org.gnome.GPaste.gschema.xml:221 #, fuzzy msgid "" "Trimming means removing all trailing and ending spaces. By default, we're " "letting them as-is." msgstr "" "Beskjæring betyr fjerning av alle etterfølgende og påfølgende mellomrom. Som " "forvalg lagres dette som det er." #: data/gsettings/org.gnome.GPaste.gschema.xml:229 #, fuzzy msgid "" "The keyboard shortcut to upload the first element in history to a pastebin " "service" msgstr "" "Tastatursnarveien for å laste opp det første elementer i historikken til en " "innlimingnett-tjeneste" #: data/gsettings/org.gnome.GPaste.gschema.xml:230 #, fuzzy msgid "" "By default, hitting ctrl + alt + u does that (\"U\"). An empty " "string here disables this functionnality." msgstr "" "Som forvalg gjør Ctrl+Alt+U dette (\"U\"). La stå tom for å skru " "av." #: data/gsettings/org.gnome.GPaste.gschema.xml:238 #, fuzzy msgid "Do we prompt for confirmation when emptying a history?" msgstr "Sprør om bekreftelse ved tømming av historikk?" #: data/gsettings/org.gnome.GPaste.gschema.xml:239 #, fuzzy msgid "By default, we do as it's a destructive action" msgstr "" "Dette spørsmålet blir stilt som forvalg, siden det er en destruktiv handling" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:9 msgid "Marc-Antoine Perennou" msgstr "Marc-Antoine Perennou" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:17 msgid "" "GPaste is a clipboard managing system allowing you to track and manage your " "clipboard history in a highly customizable way." msgstr "" "GPaste er et utklippstavlehåndteringssystem som lar deg holde øye med og " "behandle din utklippshistorikk på veldig tilpasset vis." #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:20 msgid "" "GPaste provides you with a graphical tool allowing you to manage everything " "easily." msgstr "" "GPaste gir det et grafisk verktøy som lar deg håndtere alt veldig enkelt." #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:27 msgid "The main UI" msgstr "Hovedgrensesnittet" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:31 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:35 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:39 msgid "The settings UI" msgstr "Innstillingsgrensesnittet" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:51 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:78 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:90 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:100 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:120 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:133 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:143 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:152 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:161 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:180 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:197 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:205 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:213 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:231 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:239 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:247 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:255 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:263 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:287 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:295 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:303 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:311 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:319 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:327 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:335 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:343 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:352 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:361 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:379 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:387 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:395 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:403 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:421 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:429 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:438 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:447 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:456 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:464 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:485 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:493 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:501 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:509 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:517 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:533 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:541 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:549 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:557 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:573 msgid "This is a maintenance release. Changes:" msgstr "Dette er en vedlikeholdsutgivelse. Endringer:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:53 msgid "Fix building without the GNOME Shell extension (-Dgnome-shell=false)" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:54 msgid "" "Restore GTK deprecation version-gating and drop the unused build-time gjs " "dependency" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:55 msgid "Target GNOME Shell 50 in the extension" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:56 msgid "Bump the library soversions to reflect the API/ABI changes since 45.8" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:62 msgid "" "This is a major release porting GPaste to GTK 4 and libadwaita. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:64 msgid "Port the daemon, history UI and preferences to GTK 4 and libadwaita" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:65 msgid "Show image thumbnails in the history, with configurable preview size" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:66 msgid "" "Support global keyboard shortcuts on Wayland through the XDG GlobalShortcuts " "portal" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:67 msgid "Recognise copied colours as dedicated colour items" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:68 msgid "" "Give keybindings human-readable descriptions and install a daemon desktop " "file" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:69 msgid "Fix images sometimes being repeatedly re-added to the history" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:70 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:81 msgid "" "Fix keyboard shortcuts not triggering when NumLock and CapsLock are both " "active" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:71 msgid "" "Fix several crashes (search provider, UI lifetime, GNOME Shell extension) " "and memory leaks" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:72 msgid "Modernise the GNOME Shell extension to current conventions" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:80 msgid "Fix use-after-free crash in the GNOME Shell search provider" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:82 msgid "" "Fix memory leaks when re-copying history items and when rebinding shortcuts" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:83 msgid "Fix potential crash when enforcing a very small history size" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:84 msgid "Build: ship the GSettings schema as a static file" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:92 msgid "" "GNOME Shell extension now retries the daemon connection before giving up" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:93 msgid "Fix test crash when GrabAccelerators is not allowed" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:94 msgid "Build: simplify gsettings compilation for tests" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:102 msgid "Fix GC crash and signal leak when disabling the GNOME Shell extension" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:103 msgid "GNOME Shell extension now handles daemon connection failure gracefully" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:104 #, fuzzy msgid "Fix crash when a history item has no value yet" msgstr "Fikset krasj når det ikke er noen historikk enda" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:105 msgid "Fix image files not being deleted when history items are removed" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:106 msgid "Fix image files stored in wrong directory" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:107 msgid "Fix keyboard focus being stolen by history items on hover" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:108 msgid "" "Fix key events incorrectly forwarded to search when another entry has focus" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:109 msgid "Fix signal loop when updating shortcut entries from settings" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:110 msgid "Fix default history item count not reset after history deletion" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:111 msgid "Enforce minimum window size to prevent unresizable state" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:112 msgid "Add descriptive tooltips for settings entries" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:113 msgid "Build: explicitly link libgpaste libraries against libc" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:114 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:127 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:137 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:146 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:155 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:164 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:174 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:225 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:267 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:281 #, fuzzy msgid "Translations updates" msgstr "oppdaterte oversettelser" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:122 msgid "" "Fix infinite Pango assertion loop that could fill disk when clipboard " "content contained tab characters" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:123 msgid "Various bug fixes and memory management improvements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:124 msgid "Daemon improvements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:125 msgid "GNOME Shell extension improvements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:126 msgid "GLib >= 2.76 is now required" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:135 #, fuzzy msgid "Support for gnome 50" msgstr "portet til gnome-shell 40" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:136 #, fuzzy msgid "Support for gnome 49" msgstr "portet til gnome-shell 40" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:145 #, fuzzy msgid "Support for gnome 48" msgstr "portet til gnome-shell 40" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:154 #, fuzzy msgid "Support for gnome 47" msgstr "portet til gnome-shell 40" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:163 #, fuzzy msgid "Support for gnome 46" msgstr "portet til gnome-shell 40" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:170 #, fuzzy msgid "Stable release for GNOME 45. Changes:" msgstr "Første utgave for GNOME 40. Endringer:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:172 #, fuzzy msgid "Port to gnome 45" msgstr "portet til gnome-shell 40" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:173 msgid "Add setting to open ui window centered" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:182 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:199 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:233 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:289 msgid "Fix a bug leading to history with only one item" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:188 #, fuzzy msgid "First release for GNOME 44. Changes:" msgstr "Første utgave for GNOME 40. Endringer:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:190 msgid "gcr 4 is now required" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:191 #, fuzzy msgid "Port to gnome 44" msgstr "portet til gnome-shell 40" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:207 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:241 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:297 msgid "Avoid crash under heavy memory load" msgstr "Krasj unngått ved høy minnelast" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:215 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:249 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:305 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:381 #, fuzzy msgid "Respect --use-index when displaying history" msgstr "Maks. elementstørrelse ved visning" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:221 #, fuzzy msgid "First release for GNOME 43. Changes:" msgstr "Første utgave for GNOME 40. Endringer:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:223 msgid "Port to GNOME 43" msgstr "Portering til GNOME 43" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:224 msgid "Internal preparation for gtk4 port" msgstr "Intern forberedelse for GTK4-portering" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:257 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:313 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:389 msgid "Open GPaste UI where the mouse pointer is" msgstr "Åpne GPaste-grensesnitt der musepekeren er" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:265 msgid "Fixes to the new preferences tool" msgstr "Fiks av nytt innstillingsverktøy" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:266 msgid "Style fixes" msgstr "Stilfikser" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:273 #, fuzzy msgid "First release for GNOME 42. Changes:" msgstr "Første utgave for GNOME 40. Endringer:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:275 msgid "" "Old libgpaste replaced by a new minimal libgpaste-2 with no gtk dependency" msgstr "" "Gammel libgpaste erstattet av ny minimal libgpaste-2 uten GTK-avhengighet" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:276 msgid "New libgpaste-gtk3 for utils and settings ui" msgstr "Ny libgpaste-gtk3 for verktøy- og innstillingsgrensesnitt" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:277 msgid "New libgpaste-gtk4 for utils and preferences ui" msgstr "Ny libgpaste-gtk4 for verktøy- og innstillingsgrensesnitt" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:278 msgid "New gtk4 based gpaste-preferences utility" msgstr "Nytt verktøy for GTK4-basert gpaste-preferences" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:279 msgid "Autotools are no longer supported" msgstr "Fjernet støtte for Autotools" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:280 #, fuzzy msgid "Extension updated for gnome-shell 42" msgstr "Oppgradering til gnome-shell 3.34.0" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:321 msgid "fix the storage path for meson builds" msgstr "Fikset lagringssti for Meson-bygg" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:329 msgid "fix some race conditions in history handling" msgstr "Fikset utløsende feil i historikkhåndtering" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:337 msgid "better fix crash when there is no history yet" msgstr "Bedre krasjfiks når det ikke er noen historikk enda" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:345 msgid "fix crash when there is no history yet" msgstr "Fikset krasj når det ikke er noen historikk enda" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:346 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:355 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:364 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:373 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:397 #, fuzzy msgid "translations update" msgstr "oppdaterte oversettelser" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:354 #, fuzzy msgid "fix gnome-shell exntesion when the daemon restarts" msgstr "kosmetiske oppdateringer i gnome-shell-utvidelsen" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:363 #, fuzzy msgid "Fix keybindings for wayland" msgstr "Fiks opphenting av tastaturhurtigsekvens med gnome-shell" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:370 #, fuzzy msgid "First release for GNOME 41. Changes:" msgstr "Første utgave for GNOME 40. Endringer:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:372 #, fuzzy msgid "port to gnome-shell 41" msgstr "portet til gnome-shell 40" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:405 msgid "fix a crash in memory usage checking" msgstr "fikset krasj i sjekk av minnebruk" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:412 msgid "First release for GNOME 40. Changes:" msgstr "Første utgave for GNOME 40. Endringer:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:414 msgid "port to gnome-shell 40" msgstr "portet til gnome-shell 40" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:415 #, fuzzy msgid "placeholder for gnome-shell prefs" msgstr "plassholder for GNOME-Shell-innstillinger" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:423 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:487 msgid "fix X11 keybinder outside of GNOME" msgstr "fikset X11-tastaturbindinger utenfor GNOME" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:431 msgid "better handling and reporting of invalid uuids passed to gpaste-client" msgstr "" "bedre håndtering og rapportering av ugyldige UUID-er sendt til gpaste-client" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:432 msgid "" "gpaste-client now has a --use-index argument for several subcommands to use " "index instead of uuid" msgstr "" "gpaste-client har nå et --use-index -argument for flere underkommandoer for " "bruke av indeks istedenfor UUID" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:440 msgid "fix the make-password keybinding" msgstr "fikset make-password -tastaturbinding" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:441 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:450 msgid "updated translations" msgstr "oppdaterte oversettelser" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:449 msgid "gnome-shell extension warning fixes" msgstr "advarselsfikser i gnome-shell-utvidelsen" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:458 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:495 msgid "gnome-shell extension cosmetic updates" msgstr "kosmetiske oppdateringer i gnome-shell-utvidelsen" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:466 #, fuzzy msgid "Disable images support by default (can be reenabled in preferences)" msgstr "Skru av bildestøtte (kan skrus på igjen i innstillingene)" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:467 #, fuzzy msgid "Search now includes passwords (using their names)" msgstr "Søk inneholder nå passord (ved bruk av navnene deres)" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:468 msgid "systemd integration enhancements" msgstr "forbedringer i systemd-integrasjon" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:474 msgid "First release for GNOME 3.38. Changes:" msgstr "Første utgave for GNOME 3.38. Endringer:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:476 #, fuzzy msgid "Drop the Tracking DBus signal" msgstr "Ikke bruk sporingssymbolet fra D-Bus" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:477 #, fuzzy msgid "Switch to uuids to identify items" msgstr "Byttet til UUID-er for å identifisere elementer" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:478 #, fuzzy msgid "Bump DBus interface to org.gnome.GPaste2" msgstr "Oppgradering av D-Bus-grensesnitt til org.gnome.GPaste2" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:479 msgid "Update to gnome-shell 3.38.0" msgstr "Oppgradering til gnome-shell 3.38.0" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:503 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:535 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:577 #, fuzzy msgid "Fix activating items using Ctrl-Number in gnome-shell" msgstr "Fiks aktivering av elementer ved bruk av Ctrl+nummer i gnome-shell" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:511 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:543 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:576 #, fuzzy msgid "Fix keybinding regrab with gnome-shell" msgstr "Fiks av ny opphenting av tastaturhurtigsekvens med gnome-shell" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:519 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:551 #, fuzzy msgid "Fix keybinding grab with gnome-shell" msgstr "Fiks opphenting av tastaturhurtigsekvens med gnome-shell" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:525 msgid "First release for GNOME 3.36. Changes:" msgstr "Første utgave for GNOME 3.36. Endringer:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:527 msgid "Update to gnome-shell 3.36.0" msgstr "Oppgradering til gnome-shell 3.36.0." #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:559 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:575 msgid "Compatibility with recent appstream-glib" msgstr "Kompatibilitet med nyere appstream-glib" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:565 msgid "First release for GNOME 3.34. Changes:" msgstr "Første utgave for GNOME 3.34. Endringer:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:567 msgid "Update to gnome-shell 3.34.0" msgstr "Oppgradering til gnome-shell 3.34.0" #: src/client/gpaste-client.c:146 #, fuzzy msgid "Couldn't spawn" msgstr "Kunne ikke starte" #: src/client/gpaste-client.c:158 #, c-format msgid "Usage:\n" msgstr "Bruk:\n" #. Translators: help for gpaste history #: src/client/gpaste-client.c:160 #, fuzzy msgid "print the history with UUIDs" msgstr "skriv ut historikken med indekser" #. Translators: help for gpaste history-size #: src/client/gpaste-client.c:162 #, fuzzy msgid "print the size of the history" msgstr "skriv ut størrelsen på historikken" #. Translators: help for gpaste get-history #: src/client/gpaste-client.c:164 #, fuzzy msgid "get the name of the current history" msgstr "hent navnet for nåværende historikk" #. Translators: help for gpaste backup-history #. Translators: help for gpaste switch-history #. Translators: help for gpaste delete-history #. Translators: help for gpaste add-password #. Translators: help for gpaste set-password #. Translators: help for gpaste delete-passworf #: src/client/gpaste-client.c:166 src/client/gpaste-client.c:168 #: src/client/gpaste-client.c:170 src/client/gpaste-client.c:176 #: src/client/gpaste-client.c:188 src/client/gpaste-client.c:192 msgid "name" msgstr "navn" #: src/client/gpaste-client.c:166 msgid "backup current history" msgstr "sikkerhetskopier nåværende historikk" #: src/client/gpaste-client.c:168 msgid "switch to another history" msgstr "bytt til annen historikk" #: src/client/gpaste-client.c:170 msgid "delete a history" msgstr "slett en historikk" #. Translators: help for gpaste list-histories #: src/client/gpaste-client.c:172 #, fuzzy msgid "list available histories" msgstr "list opp tilgjengelige historikker" #. Translators: help for gpaste add #: src/client/gpaste-client.c:174 msgid "text" msgstr "tekst" #: src/client/gpaste-client.c:174 #, fuzzy msgid "set text to clipboard" msgstr "sett tekst til utklippstavle" #: src/client/gpaste-client.c:176 msgid "password" msgstr "passord" #: src/client/gpaste-client.c:176 #, fuzzy msgid "add the name - password couple to the clipboard" msgstr "Legg til navnet og passordet i utklippstavlen" #. Translators: help for gpaste rename-password #: src/client/gpaste-client.c:178 msgid "old name" msgstr "gammelt navn" #: src/client/gpaste-client.c:178 msgid "new name" msgstr "nytt navn" #: src/client/gpaste-client.c:178 msgid "rename the password" msgstr "gi passordet et nytt navn" #. Translators: help for gpaste get #: src/client/gpaste-client.c:180 #, fuzzy msgid "get the item from the history" msgstr "hent elementet fra historikken" #. Translators: help for gpaste select #: src/client/gpaste-client.c:182 #, fuzzy msgid "set the item from the history to the clipboard" msgstr "sett elementet fra historikken til utklippstavlen" #. Translators: help for gpaste replace #: src/client/gpaste-client.c:184 msgid "contents" msgstr "innhold" #: src/client/gpaste-client.c:184 msgid "" "replace the contents of the item from the history with the provided " "one" msgstr "erstatt innholdet av elementet fra historikken med det forrige" #. Translators: help for gpaste merge #: src/client/gpaste-client.c:186 #, fuzzy msgid "" "merge the items matching the UUIDs from the history and put the result in " "the clipboard" msgstr "" "flett elementene som samsvarer med UUID-ene fra historikken og legg til " "resultatet i utklippstavlen" #: src/client/gpaste-client.c:188 #, fuzzy msgid "set the item from the history as a password named " msgstr "sett elementet fra historikken som et passord ved navn " #. Translators: help for gpaste delete #: src/client/gpaste-client.c:190 #, fuzzy msgid "delete item from the history" msgstr "slett elementet fra historikken" #: src/client/gpaste-client.c:192 msgid "delete the password from the history" msgstr "slett passordet fra historikken" #. Translators: help for gpaste file #: src/client/gpaste-client.c:194 msgid "path" msgstr "sti" #: src/client/gpaste-client.c:194 msgid "put the content of the file at into the clipboard" msgstr "hent innholdet fra filen i til utklippstavlen" #. Translators: help for whatever | gpaste #: src/client/gpaste-client.c:196 msgid "whatever" msgstr "hva som helst" #: src/client/gpaste-client.c:196 #, fuzzy msgid "set the output of whatever to clipboard" msgstr "sett utdata for hva som helst til utklippstavlen" #. Translators: help for gpaste empty #: src/client/gpaste-client.c:198 #, fuzzy msgid "empty the history" msgstr "tøm historikk" #. Translators: help for gpaste start #: src/client/gpaste-client.c:200 msgid "start tracking clipboard changes" msgstr "begynn å spore endringer i utklippstavlen" #. Translators: help for gpaste stop #: src/client/gpaste-client.c:202 msgid "stop tracking clipboard changes" msgstr "stopp sporing av endringer i utklippstavlen" #. Translators: help for gpaste quit #: src/client/gpaste-client.c:204 msgid "alias for stop" msgstr "alias for stopp" #. Translators: help for gpaste daemon-reexec #: src/client/gpaste-client.c:206 #, fuzzy msgid "reexecute the daemon (after upgrading...)" msgstr "kjør nissen igjen (etter oppgradering…)" #. Translators: help for gpaste preferences #: src/client/gpaste-client.c:208 msgid "launch the configuration tool" msgstr "start oppsettsverktøyet" #. Translators: help for gpaste ui #: src/client/gpaste-client.c:210 msgid "launch the graphical tool" msgstr "start det grafiske verktøyet" #. Translators: help for gpaste show-history #: src/client/gpaste-client.c:212 #, fuzzy msgid "make the applet or extension display the history" msgstr "la miniprogrammet og utvidelsen vise historikken" #. Translators: help for gpaste upload #: src/client/gpaste-client.c:214 #, fuzzy msgid "upload the item to a pastebin service" msgstr "last opp elementet til en innlimingsnett-tjeneste" #. Translators: help for gpaste version #: src/client/gpaste-client.c:216 msgid "display the version" msgstr "vis versjonsinfo" #. Translators: help for gpaste daemon-version #: src/client/gpaste-client.c:218 msgid "display the daemon version" msgstr "vis nisseversjonen" #. Translators: help for gpaste help #: src/client/gpaste-client.c:220 msgid "display this help" msgstr "vis denne hjelpen" #. Translators: help for gpaste about #: src/client/gpaste-client.c:222 #, fuzzy msgid "display the about dialog" msgstr "Vis \"Om\"" #: src/client/gpaste-client.c:225 #, c-format msgid "Convenience options:" msgstr "Beleilighetsvalg:" #. Translators: help for --use-index #: src/client/gpaste-client.c:228 msgid "use the index of the item instead of its UUID" msgstr "bruk indeks for element istedenfor dets UUID" #: src/client/gpaste-client.c:231 #, c-format msgid "Display options:" msgstr "Visningsvalg:" #. Translators: help for --oneline #: src/client/gpaste-client.c:234 msgid "display each item on only one line" msgstr "vis hvert element på hver sin linje" #. Translators: help for --raw #: src/client/gpaste-client.c:236 msgid "display each item raw (without line numbers)" msgstr "vis hvert element som det er (uten linjenummer)" #. Translators: help for --reverse #: src/client/gpaste-client.c:238 #, fuzzy msgid "display the items in reverse order" msgstr "vis elementene i omvendt rekkefølge" #. Translators: help for --zero #: src/client/gpaste-client.c:240 #, fuzzy msgid "use a NUL character instead of a new line betweean each item" msgstr "bruk et NULL-tegn istedenfor linjeskift mellom hvert element" #: src/client/gpaste-client.c:243 #, c-format msgid "Merge options:" msgstr "Flettevalg:" #. Translators: help for --decoration #. Translators: help for --separator #: src/client/gpaste-client.c:246 src/client/gpaste-client.c:248 msgid "string" msgstr "streng" #: src/client/gpaste-client.c:246 msgid "" "add the given decoration to the beginning and the end of each item before " "merging" msgstr "" "legg til gitt dekorasjon i begynnelsen og slutten av hvert element før " "fletting" #: src/client/gpaste-client.c:248 msgid "add the given separator between each item when merging" msgstr "legg til gitt inndeler mellom hvert element ved fletting" #: src/client/gpaste-client.c:345 #, fuzzy, c-format msgid "Successfully reexecuted the daemon\n" msgstr "Nisse startet på ny\n" #: src/client/gpaste-client.c:486 #, fuzzy msgid "Cannot add non utf8 data as text." msgstr "Kan ikke legge til data som ikke er UTF-8 som tekst." #: src/client/gpaste-client.c:796 src/ui/gpaste-ui-window.c:353 #: src/ui/gpaste-ui-window.c:354 msgid "Couldn't connect to GPaste daemon" msgstr "Kunne ikke koble til GPaste-nisse igjen" #: src/daemon/gpaste-color-item.c:73 msgid "[Color]" msgstr "" #. Translators: strftime format for image timestamps. Rearrange to match your locale's date/time convention. #: src/daemon/gpaste-image-item.c:219 #, fuzzy msgid "%m/%d/%y %T" msgstr "%d. %m. %y - %T" #. Translators: Image item displayed in history. %d is width, %d is height, %s is the formatted date. #: src/daemon/gpaste-image-item.c:221 #, c-format msgid "[Image, %d x %d (%s)]" msgstr "[Bilde, %d x %d (%s)]" #: src/daemon/gpaste-make-password-keybinding.c:50 #, fuzzy msgid "Convert to Password" msgstr "gi passordet et nytt navn" #. This is the prefix displayed in history to identify a password #: src/daemon/gpaste-password-item.c:65 msgid "Password" msgstr "Passord" #: src/daemon/gpaste-pop-keybinding.c:64 #, fuzzy msgid "Pop from History" msgstr "Historikkinnstillinger" #: src/daemon/gpaste-show-history-keybinding.c:49 #, fuzzy msgid "Show History" msgstr "Historikkinnstillinger" #: src/daemon/gpaste-sync-clipboard-to-primary-keybinding.c:46 #, fuzzy msgid "Sync Clipboard to Primary" msgstr "Synkroniser utklippstavle til primærmarkering" #: src/daemon/gpaste-sync-primary-to-clipboard-keybinding.c:46 #, fuzzy msgid "Sync Primary to Clipboard" msgstr "Synkroniser primær markering til utklippstavle" #: src/daemon/gpaste-ui-keybinding.c:43 msgid "Launch UI" msgstr "" #: src/daemon/gpaste-upload-keybinding.c:64 msgid "Upload to Pastebin" msgstr "" #: src/daemon/gpaste-uris-item.c:87 msgid "[Files] " msgstr "[Filer] " #: src/daemon/main.c:32 msgid "Stop signal received, exiting" msgstr "Stopp-signal mottatt, avslutter" #: src/daemon/main.c:69 #, fuzzy msgid "Could not acquire DBus name." msgstr "Fikk ikke tak i D-Bus-navn." #: src/gnome-shell/dummyHistoryItem.js:12 msgid "(Couldn't connect to GPaste daemon)" msgstr "(Kunne ikke koble til GPaste-nisse)" #: src/gnome-shell/dummyHistoryItem.js:17 msgid "(Empty)" msgstr "(Tom)" #: src/gnome-shell/dummyHistoryItem.js:22 msgid "(No result)" msgstr "(Resultatløst)" #: src/gnome-shell/emptyHistoryItem.js:14 #, fuzzy msgid "Empty history" msgstr "tøm historikk" #: src/gnome-shell/stateSwitch.js:12 #, fuzzy msgid "Track changes" msgstr "Spor endringer i utklippstavlen" #: src/gnome-shell/uiItem.js:14 #, fuzzy msgid "Graphical tool" msgstr "Start det grafiske verktøyet" #: src/libgpaste/gpaste/gpaste-util.c:636 #, fuzzy msgid "Could not create history dir" msgstr "Kunne ikke opprette historikkmappe" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-macros.h:38 #, fuzzy msgid "Failed to register the gtk application" msgstr "Klarte ikke å registrere GTK-programmet" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:108 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:119 msgid "General behaviour" msgstr "Generell oppførsel" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:121 #: src/ui/gpaste-ui-switch.c:93 msgid "Track clipboard changes" msgstr "Spor endringer i utklippstavlen" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:127 #, fuzzy msgid "Close UI on select" msgstr "Lukk grensesnitt ved markering" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:133 msgid "Open the UI window centered" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:139 msgid "Save history" msgstr "Lagre historikk" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:150 #, fuzzy msgid "Enable the gnome-shell extension" msgstr "Skru på gnome-shell-utvidelsen" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:156 #, fuzzy msgid "Sync the daemon state with the extension's one" msgstr "Synkroniser nissetilstanden med utvidelsens" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:162 msgid "" "When enabled, the daemon automatically starts or stops tracking clipboard " "changes to match the GNOME Shell extension's enabled state" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:166 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:174 msgid "Clipboards synchronization" msgstr "Utklippstavle-synkronisering" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:168 #, fuzzy msgid "Primary selection affects history" msgstr "Primærutvalget har innvirkning på historikk" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:174 #, fuzzy msgid "Synchronize clipboard with primary selection" msgstr "Synkroniser utklippstavle med det primære utvalget" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:181 msgid "Optional features" msgstr "Valgfrie funksjoner" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:183 msgid "Trim items" msgstr "Beskjær elementer" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:189 msgid "Detect growing lines" msgstr "Oppdag voksende linjer" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:195 msgid "" "When enabled, if a new clipboard entry starts with the previous one, the " "previous entry is replaced instead of creating a new one" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:92 msgid "History settings" msgstr "Historikkinnstillinger" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:103 #, fuzzy msgid "Resources limits" msgstr "Ressursgrenser" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:120 msgid "Text limits" msgstr "Tekstgrenser" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:122 msgid "Min text item length" msgstr "Min. tekstelementslengde" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:129 msgid "Max text item length" msgstr "Maks. tekstelementslengde" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:137 #, fuzzy msgid "Display settings" msgstr "Historikkinnstillinger" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:139 #, fuzzy msgid "Max element size when displaying" msgstr "Maks. elementstørrelse ved visning" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:81 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:92 #, fuzzy msgid "Images settings" msgstr "Innstillingsgrensesnittet" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:94 #, fuzzy msgid "Images support" msgstr "Bildestøtte" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:100 msgid "Image previews" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:106 msgid "Preview size" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:122 msgid "Keyboard shortcuts" msgstr "Tastatursnarveier" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:133 #, fuzzy msgid "History access" msgstr "Historikkinnstillinger" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:150 msgid "Active element manipulation" msgstr "Aktiv elementmanipulering" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-util.c:51 #: src/ui/gpaste-ui-edit-item.c:84 src/ui/gpaste-ui-new-item.c:66 #: src/ui/gpaste-ui-panel.c:311 msgid "Cancel" msgstr "Avbryt" #. Translators: %s is the name of the history being emptied. #: src/libgpaste/gpaste-gtk4/gpaste-gtk-util.c:126 #, fuzzy, c-format msgid "Do you really want to empty \"%s\"?" msgstr "Ønsker du virkelig å tømme historikken?" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-util.c:127 #: src/ui/gpaste-ui-history.c:153 src/ui/gpaste-ui-history.c:428 #: src/ui/gpaste-ui-panel.c:517 msgid "Empty" msgstr "Tom" #: src/ui/gpaste-ui.c:47 msgid "Clipboard management system" msgstr "" #: src/ui/gpaste-ui-delete-item.c:46 src/ui/gpaste-ui-panel.c:358 #: src/ui/gpaste-ui-panel.c:518 msgid "Delete" msgstr "Slett" #: src/ui/gpaste-ui-edit-item.c:85 src/ui/gpaste-ui-edit-item.c:139 msgid "Edit" msgstr "Rediger" #: src/ui/gpaste-ui-history.c:266 #, fuzzy msgid "No Results" msgstr "(Resultatløst)" #: src/ui/gpaste-ui-new-item.c:67 msgid "Add new item" msgstr "" #: src/ui/gpaste-ui-new-item.c:100 msgid "New item" msgstr "" #: src/ui/gpaste-ui-panel.c:307 #, fuzzy msgid "Under which name do you want to backup this history?" msgstr "Hvilket navn ønsker du å bruke for sikkerhetskopiering av historikken?" #: src/ui/gpaste-ui-panel.c:311 src/ui/gpaste-ui-panel.c:516 #, fuzzy msgid "Backup" msgstr "Sikkerhetskopi" #. Translators: %s is the name of the history being deleted. #: src/ui/gpaste-ui-panel.c:357 #, fuzzy, c-format msgid "Are you sure you want to delete \"%s\"?" msgstr "Er du sikker på at du ønsker å slette denne historikken?" #: src/ui/gpaste-ui-panel.c:441 #, fuzzy msgid "Switch to history" msgstr "bytt til annen historikk" #: src/ui/gpaste-ui-panel.c:448 msgid "Switch to" msgstr "Bytt til" #: src/ui/gpaste-ui-reexec.c:45 #, fuzzy msgid "Restart" msgstr "Start på ny" #: src/ui/gpaste-ui-reexec.c:45 #, fuzzy msgid "Do you really want to restart the daemon?" msgstr "Ønsker du virkelig å starte nissen på ny?" #: src/ui/gpaste-ui-reexec.c:70 #, fuzzy msgid "Restart the daemon" msgstr "Start nissen på ny" #: src/ui/gpaste-ui-search.c:23 msgid "Search" msgstr "Søk" #: src/ui/gpaste-ui-settings.c:35 msgid "GPaste Settings" msgstr "GPaste-innstillinger" #: src/ui/gpaste-ui-shortcuts-window.c:21 msgid "General" msgstr "Generelt" #: src/ui/gpaste-ui-switch.c:68 msgid "Stop" msgstr "Stopp" #: src/ui/gpaste-ui-switch.c:68 #, fuzzy msgid "Do you really want to stop tracking clipboard changes?" msgstr "Ønsker du virkelig å slutte å spore utklippstavleendringer?" #: src/ui/gpaste-ui-upload-item.c:46 msgid "Upload" msgstr "Last opp" #: src/ui/gpaste-ui-window.c:303 msgid "Quit" msgstr "Avslutt" #: src/ui/gpaste-ui-window.c:380 #, fuzzy msgid "Histories" msgstr "Historikkinnstillinger" #: src/ui/gpaste-ui-window.c:381 #, fuzzy msgid "History" msgstr "Historikkinnstillinger" #~ msgid "is already running." #~ msgstr "kjører allerede." #~ msgid "New" #~ msgstr "Ny" #~ msgid "Keyboard Shortcuts" #~ msgstr "Tastatursnarveier" #, fuzzy #~ msgid "About GPaste" #~ msgstr "Om" Keruspe-GPaste-724def1/po/nl_NL.po000066400000000000000000001537751521206431300167260ustar00rootroot00000000000000# Dutch translations for GPaste package. # Copyright (C) 2013-2015 Listed translators # This file is distributed under the same license as the GPaste package. # Heimen Stoffels , 2017. # msgid "" msgstr "" "Project-Id-Version: GPaste\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-06-09 21:21+0200\n" "PO-Revision-Date: 2017-03-17 17:38+0100\n" "Last-Translator: Heimen Stoffels \n" "Language-Team: Vistaus \n" "Language: nl_NL\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Poedit 1.8.11\n" #: data/control-center/42-gpaste.control-center.xml.in:2 msgid "@GETTEXT_PACKAGE@" msgstr "" #: data/control-center/42-gpaste.control-center.xml.in:3 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:136 #: src/ui/gpaste-ui-shortcuts-window.c:24 msgid "Launch the graphical tool" msgstr "Grafisch venster openen" #: data/control-center/42-gpaste.control-center.xml.in:4 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:153 #: src/ui/gpaste-ui-shortcuts-window.c:25 msgid "Mark the active item as being a password" msgstr "Actief item markeren als wachtwoord" #: data/control-center/42-gpaste.control-center.xml.in:5 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:167 #: src/ui/gpaste-ui-shortcuts-window.c:23 msgid "Delete the active item from history" msgstr "Actief item verwijderen uit geschiedenis" #: data/control-center/42-gpaste.control-center.xml.in:6 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:143 #: src/ui/gpaste-ui-shortcuts-window.c:26 msgid "Display the history" msgstr "Geschiedenis weergeven" #: data/control-center/42-gpaste.control-center.xml.in:7 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:177 #: src/ui/gpaste-ui-shortcuts-window.c:27 msgid "Sync the clipboard to the primary selection" msgstr "Klembord synchroniseren met primaire selectie" #: data/control-center/42-gpaste.control-center.xml.in:8 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:184 #: src/ui/gpaste-ui-shortcuts-window.c:28 msgid "Sync the primary selection to the clipboard" msgstr "Primaire selectie synchroniseren met klembord" #: data/control-center/42-gpaste.control-center.xml.in:9 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:160 #: src/ui/gpaste-ui-shortcuts-window.c:29 msgid "Upload the active item to a pastebin service" msgstr "Actief item uploaden naar een pastebin-dienst" #: data/desktop/org.gnome.GPaste.Daemon.desktop.in.in:3 #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:3 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:6 msgid "GPaste" msgstr "GPaste" #: data/desktop/org.gnome.GPaste.Preferences.desktop.in.in:3 #, fuzzy msgid "GPaste Preferences" msgstr "GPaste-instellingen beheren" #: data/desktop/org.gnome.GPaste.Preferences.desktop.in.in:4 #, fuzzy msgid "Manage your GPaste preferences" msgstr "GPaste-instellingen beheren" #: data/desktop/org.gnome.GPaste.Preferences.desktop.in.in:5 #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:6 msgid "Clipboard;Manager;Settings;Preferences;Configuration;" msgstr "Klembord;Beheer;Instellingen;Voorkeuren;Configuratie;" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:4 #, fuzzy msgid "Clipboard Manager" msgstr "Klembordwijzigingen bijhouden" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:5 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:7 msgid "Manage your clipboard history" msgstr "Beheer uw klembordgeschiedenis" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:16 #, fuzzy msgid "Preferences" msgstr "GPaste-instellingen beheren" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:20 #: src/gnome-shell/aboutItem.js:13 src/ui/gpaste-ui-about.c:38 msgid "About" msgstr "Over" #: data/gsettings/org.gnome.GPaste.gschema.xml:7 msgid "Max size of an element when displaying it" msgstr "Maximale grootte van een weergegeven element" #: data/gsettings/org.gnome.GPaste.gschema.xml:8 msgid "" "The extra stuff of that element will be replaced by \"…\", and newlines by " "\" \" when displaying from the applet, 0 to disable." msgstr "" "De extra elementinformatie zal vervangen worden door \"...\" en nieuwe " "regels door \" \" wanneer weergegeven vanuit de applet. 0 om uit te " "schakelen." #: data/gsettings/org.gnome.GPaste.gschema.xml:15 msgid "Do we detect and replace growing lines in history?" msgstr "Groeiende regels detecteren en vervangen in geschiedenis?" #: data/gsettings/org.gnome.GPaste.gschema.xml:16 msgid "" "By default, selecting \"Here is\", then \"Here is an example\" will create " "two entries in the history. With this feature enabled, the first one will be " "replaced by the second one." msgstr "" "Het selecteren van \"Hier is\", daarna \"Hier is een voorbeeld\" zal twee " "items creëren in de geschiedenis. Als deze functie is ingeschakeld, zal de " "eerste worden vervangen door de tweede." #: data/gsettings/org.gnome.GPaste.gschema.xml:24 msgid "The name of the current history" msgstr "Naam van de huidige geschiedenis" #: data/gsettings/org.gnome.GPaste.gschema.xml:25 msgid "The default name is \"history\"" msgstr "De standaard naam is \"geschiedenis\"" #: data/gsettings/org.gnome.GPaste.gschema.xml:32 msgid "Do we save the images copied to history, or only text?" msgstr "Gekopieerde afbeeldingen opslaan de geschiedenis of alleen tekst?" #: data/gsettings/org.gnome.GPaste.gschema.xml:33 #, fuzzy msgid "By default, we're saving only text" msgstr "Standaard worden beiden opgeslagen" #: data/gsettings/org.gnome.GPaste.gschema.xml:40 msgid "Show image previews in the history?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:41 msgid "By default, we show previews of images in the history" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:49 msgid "Size of image previews in pixels" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:50 msgid "Default size is 100 pixels" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:57 msgid "Do we close the UI after selecting an item?" msgstr "Venster sluiten na het selecteren van een item?" #: data/gsettings/org.gnome.GPaste.gschema.xml:58 msgid "By default, we close it" msgstr "Standaard wordt het gesloten" #: data/gsettings/org.gnome.GPaste.gschema.xml:65 msgid "Do we open the UI window centered?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:66 #, fuzzy msgid "By default, we open it where the mouse cursor is" msgstr "Standaard worden die bijgehouden." #: data/gsettings/org.gnome.GPaste.gschema.xml:73 msgid "The keyboard shortcut to launch the graphical interface" msgstr "Sneltoets om het grafische venster te openen" #: data/gsettings/org.gnome.GPaste.gschema.xml:74 msgid "" "By default, hitting ctrl + alt + g does that (\"G\"). An empty " "string here disables this functionnality." msgstr "" "Ctrl + Alt + G opent het grafische venster (\"G\"). Dit leeglaten " "schakelt de functionaliteit uit." #: data/gsettings/org.gnome.GPaste.gschema.xml:82 msgid "The keyboard shortcut to mark the active item as being a password" msgstr "Sneltoets om het actieve item te markeren als een wachtwoord" #: data/gsettings/org.gnome.GPaste.gschema.xml:83 msgid "" "By default, hitting ctrl + alt + s will mark the active item as being a " "password (\"S\"). An empty string here disables this " "functionnality." msgstr "" "Ctrl + Alt + S markeert het actieve item als een wachtwoord " "(\"S\"). Dit leeglaten schakelt de functionaliteit uit." #: data/gsettings/org.gnome.GPaste.gschema.xml:92 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:146 msgid "Max displayed history size" msgstr "Maximaal weergegeven geschiedenisgrootte" #: data/gsettings/org.gnome.GPaste.gschema.xml:93 msgid "Maximum number of items displayed in the history" msgstr "Maximaal aantal weer te geven items in de geschiedenis" #: data/gsettings/org.gnome.GPaste.gschema.xml:101 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:105 msgid "Max history size" msgstr "Maximale geschiedenisgrootte" #: data/gsettings/org.gnome.GPaste.gschema.xml:102 msgid "Maximum number of items in history" msgstr "Maximaal aantal items in de geschiedenis" #: data/gsettings/org.gnome.GPaste.gschema.xml:110 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:112 msgid "Max memory usage (MB)" msgstr "Maximaal geheugengebruik (MB)" #: data/gsettings/org.gnome.GPaste.gschema.xml:111 msgid "Maximum amount of memory used to store contents" msgstr "Maximaal te gebruiken geheugen om inhoud op te slaan" #: data/gsettings/org.gnome.GPaste.gschema.xml:119 msgid "Max text item size" msgstr "Maximale tekstitem-grootte" #: data/gsettings/org.gnome.GPaste.gschema.xml:120 msgid "Maximum size of a text item. Anything out of this boundary is ignored." msgstr "" "Maximale grootte van een tekstitem. Alle tekst die deze grens overschrijdt " "wordt genegeerd." #: data/gsettings/org.gnome.GPaste.gschema.xml:128 msgid "Min text item size" msgstr "Minimale tekstitemgrootte" #: data/gsettings/org.gnome.GPaste.gschema.xml:129 msgid "Minimum size of a text item. Anything out of this boundary is ignored." msgstr "" "Minimale grootte van een tekstitem. Alle tekst die deze grens overschrijdt " "wordt genegeerd." #: data/gsettings/org.gnome.GPaste.gschema.xml:136 msgid "The keyboard shortcut to delete the first element in history" msgstr "Sneltoets om het eerste element in de geschiedenis te verwijderen" #: data/gsettings/org.gnome.GPaste.gschema.xml:137 msgid "" "By default, hitting ctrl + alt + v does that (\"V\"). An empty " "string here disables this functionnality." msgstr "" "Ctrl + Alt + V verwijdert het eerste element in de geschiedenis " "(\"V\"). Dit leeglaten schakelt de functionaliteit uit." #: data/gsettings/org.gnome.GPaste.gschema.xml:145 msgid "Does the primary selection affects history?" msgstr "Moet de primaire selectie de geschiedenis beïnvloeden?" #: data/gsettings/org.gnome.GPaste.gschema.xml:146 msgid "By default, only clipboard (ctrl+c) affects history." msgstr "Standaard beïnvloedt alleen het klembord (Ctrl + C) de geschiedenis." #: data/gsettings/org.gnome.GPaste.gschema.xml:153 msgid "" "Do we save all versions of selected rich text (e.g. html) or just the plain " "text version?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:154 #, fuzzy msgid "By default, we're saving all" msgstr "Standaard wordt het opgeslagen" #: data/gsettings/org.gnome.GPaste.gschema.xml:161 msgid "Do we save the history from one session to another?" msgstr "" "Moet de geschiedenis worden opgeslagen van de ene sessie naar de andere?" #: data/gsettings/org.gnome.GPaste.gschema.xml:162 msgid "By default, we're saving it" msgstr "Standaard wordt het opgeslagen" #: data/gsettings/org.gnome.GPaste.gschema.xml:169 msgid "The keyboard shortcut to display the menu" msgstr "Sneltoets om het menu te weergeven" #: data/gsettings/org.gnome.GPaste.gschema.xml:170 msgid "" "By default, hitting ctrl + alt + h displays the menu (\"H\"). An " "empty string here disables this functionnality." msgstr "" "Ctrl + Alt + H opent het menu (\"H\"). Dit leeglaten schakelt de " "functionaliteit uit." #: data/gsettings/org.gnome.GPaste.gschema.xml:178 msgid "The keyboard shortcut to sync the clipboard to the primary selection" msgstr "Sneltoets om het klembord te synchroniseren naar de primaire selectie" #: data/gsettings/org.gnome.GPaste.gschema.xml:179 msgid "" "By default, hitting ctrl + alt + o syncs them (\"P\"). An empty " "string here disables this functionnality." msgstr "" "Ctrl + Alt + O synchroniseert (\"O\"). Dit leeglaten schakelt de " "functionaliteit uit." #: data/gsettings/org.gnome.GPaste.gschema.xml:187 msgid "The keyboard shortcut to sync the primary selection to the clipboard" msgstr "Sneltoets om de primaire selectie te synchroniseren met het klembord" #: data/gsettings/org.gnome.GPaste.gschema.xml:188 msgid "" "By default, hitting ctrl + alt + p syncs them (\"P\"). An empty " "string here disables this functionnality." msgstr "" "Ctrl + Alt + P synchroniseert (\"P\"). Dit leeglaten schakelt de " "functionaliteit uit." #: data/gsettings/org.gnome.GPaste.gschema.xml:196 msgid "Are the primary selection and the clipboard synchronized?" msgstr "Moeten de primaire selectie en het klembord worden gesynchroniseerd?" #: data/gsettings/org.gnome.GPaste.gschema.xml:197 msgid "By default, the primary selection and the clipboard are independent." msgstr "" "Standaard werken de primaire selectie en het klembord onafhankelijk van " "elkaar." #: data/gsettings/org.gnome.GPaste.gschema.xml:204 msgid "Do we track the clipboard changes?" msgstr "Moeten klembordwijzigingen worden bijgehouden?" #: data/gsettings/org.gnome.GPaste.gschema.xml:205 msgid "By default, we're tracking those changes." msgstr "Standaard worden die bijgehouden." #: data/gsettings/org.gnome.GPaste.gschema.xml:212 msgid "" "Do we sync the daemon state with the gnome-shell extension's one? (disable " "the daemon when disabling the extension)" msgstr "" "Moet de daemon-staat gesynchroniseerd worden met die van de GNOME Shell-" "uitbreiding? (schakel de daemon uit wanneer de uitbreiding wordt " "uitgeschakeld)" #: data/gsettings/org.gnome.GPaste.gschema.xml:213 msgid "By default, the daemon state keeps unchanged" msgstr "Standaard blijft de daemon-staat ongewijzigd" #: data/gsettings/org.gnome.GPaste.gschema.xml:220 msgid "Do we trim the textual items before adding them to history?" msgstr "" "Moeten de tekstitems worden getrimd voordat ze worden toegevoegd aan de " "geschiedenis?" #: data/gsettings/org.gnome.GPaste.gschema.xml:221 msgid "" "Trimming means removing all trailing and ending spaces. By default, we're " "letting them as-is." msgstr "" "Trimmen houdt in dat alle spaties vóór en ná de tekst worden verwijderd. " "Standaard wordt er niet getrimd." #: data/gsettings/org.gnome.GPaste.gschema.xml:229 msgid "" "The keyboard shortcut to upload the first element in history to a pastebin " "service" msgstr "" "Sneltoets om het eerste element in de geschiedenis te uploaden naar een " "pastebin-dienst" #: data/gsettings/org.gnome.GPaste.gschema.xml:230 msgid "" "By default, hitting ctrl + alt + u does that (\"U\"). An empty " "string here disables this functionnality." msgstr "" "Ctrl + Alt + U wordt gebruikt om te uploaden (\"U\"). Dit " "leeglaten schakelt de functionaliteit uit." #: data/gsettings/org.gnome.GPaste.gschema.xml:238 msgid "Do we prompt for confirmation when emptying a history?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:239 #, fuzzy msgid "By default, we do as it's a destructive action" msgstr "Standaard blijft de daemon-staat ongewijzigd" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:9 msgid "Marc-Antoine Perennou" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:17 msgid "" "GPaste is a clipboard managing system allowing you to track and manage your " "clipboard history in a highly customizable way." msgstr "" "GPaste is een klembordbeheersysteem dat u in staat stelt uw " "klembordgeschiedenis bij te houden en te beheren. Dit alles is zeer " "aanpasbaar." #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:20 msgid "" "GPaste provides you with a graphical tool allowing you to manage everything " "easily." msgstr "" "GPaste geeft u een grafisch hulpmiddel dat u in staat stelt om alles " "gemakkelijk te beheren." #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:27 msgid "The main UI" msgstr "Hoofdvenster" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:31 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:35 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:39 msgid "The settings UI" msgstr "Instellingenvenster" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:51 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:78 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:90 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:100 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:120 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:133 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:143 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:152 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:161 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:180 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:197 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:205 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:213 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:231 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:239 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:247 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:255 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:263 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:287 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:295 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:303 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:311 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:319 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:327 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:335 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:343 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:352 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:361 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:379 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:387 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:395 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:403 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:421 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:429 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:438 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:447 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:456 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:464 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:485 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:493 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:501 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:509 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:517 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:533 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:541 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:549 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:557 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:573 msgid "This is a maintenance release. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:53 msgid "Fix building without the GNOME Shell extension (-Dgnome-shell=false)" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:54 msgid "" "Restore GTK deprecation version-gating and drop the unused build-time gjs " "dependency" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:55 msgid "Target GNOME Shell 50 in the extension" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:56 msgid "Bump the library soversions to reflect the API/ABI changes since 45.8" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:62 msgid "" "This is a major release porting GPaste to GTK 4 and libadwaita. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:64 msgid "Port the daemon, history UI and preferences to GTK 4 and libadwaita" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:65 msgid "Show image thumbnails in the history, with configurable preview size" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:66 msgid "" "Support global keyboard shortcuts on Wayland through the XDG GlobalShortcuts " "portal" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:67 msgid "Recognise copied colours as dedicated colour items" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:68 msgid "" "Give keybindings human-readable descriptions and install a daemon desktop " "file" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:69 msgid "Fix images sometimes being repeatedly re-added to the history" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:70 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:81 msgid "" "Fix keyboard shortcuts not triggering when NumLock and CapsLock are both " "active" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:71 msgid "" "Fix several crashes (search provider, UI lifetime, GNOME Shell extension) " "and memory leaks" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:72 msgid "Modernise the GNOME Shell extension to current conventions" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:80 msgid "Fix use-after-free crash in the GNOME Shell search provider" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:82 msgid "" "Fix memory leaks when re-copying history items and when rebinding shortcuts" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:83 msgid "Fix potential crash when enforcing a very small history size" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:84 msgid "Build: ship the GSettings schema as a static file" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:92 msgid "" "GNOME Shell extension now retries the daemon connection before giving up" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:93 msgid "Fix test crash when GrabAccelerators is not allowed" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:94 msgid "Build: simplify gsettings compilation for tests" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:102 msgid "Fix GC crash and signal leak when disabling the GNOME Shell extension" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:103 msgid "GNOME Shell extension now handles daemon connection failure gracefully" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:104 msgid "Fix crash when a history item has no value yet" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:105 msgid "Fix image files not being deleted when history items are removed" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:106 msgid "Fix image files stored in wrong directory" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:107 msgid "Fix keyboard focus being stolen by history items on hover" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:108 msgid "" "Fix key events incorrectly forwarded to search when another entry has focus" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:109 msgid "Fix signal loop when updating shortcut entries from settings" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:110 msgid "Fix default history item count not reset after history deletion" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:111 msgid "Enforce minimum window size to prevent unresizable state" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:112 msgid "Add descriptive tooltips for settings entries" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:113 msgid "Build: explicitly link libgpaste libraries against libc" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:114 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:127 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:137 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:146 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:155 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:164 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:174 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:225 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:267 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:281 msgid "Translations updates" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:122 msgid "" "Fix infinite Pango assertion loop that could fill disk when clipboard " "content contained tab characters" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:123 msgid "Various bug fixes and memory management improvements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:124 msgid "Daemon improvements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:125 msgid "GNOME Shell extension improvements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:126 msgid "GLib >= 2.76 is now required" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:135 msgid "Support for gnome 50" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:136 msgid "Support for gnome 49" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:145 msgid "Support for gnome 48" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:154 msgid "Support for gnome 47" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:163 msgid "Support for gnome 46" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:170 msgid "Stable release for GNOME 45. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:172 msgid "Port to gnome 45" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:173 msgid "Add setting to open ui window centered" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:182 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:199 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:233 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:289 msgid "Fix a bug leading to history with only one item" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:188 msgid "First release for GNOME 44. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:190 msgid "gcr 4 is now required" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:191 msgid "Port to gnome 44" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:207 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:241 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:297 msgid "Avoid crash under heavy memory load" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:215 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:249 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:305 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:381 #, fuzzy msgid "Respect --use-index when displaying history" msgstr "Maximale elementgrootte tijdens weergave" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:221 msgid "First release for GNOME 43. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:223 msgid "Port to GNOME 43" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:224 msgid "Internal preparation for gtk4 port" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:257 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:313 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:389 msgid "Open GPaste UI where the mouse pointer is" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:265 msgid "Fixes to the new preferences tool" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:266 msgid "Style fixes" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:273 msgid "First release for GNOME 42. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:275 msgid "" "Old libgpaste replaced by a new minimal libgpaste-2 with no gtk dependency" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:276 msgid "New libgpaste-gtk3 for utils and settings ui" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:277 msgid "New libgpaste-gtk4 for utils and preferences ui" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:278 msgid "New gtk4 based gpaste-preferences utility" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:279 msgid "Autotools are no longer supported" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:280 msgid "Extension updated for gnome-shell 42" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:321 msgid "fix the storage path for meson builds" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:329 msgid "fix some race conditions in history handling" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:337 msgid "better fix crash when there is no history yet" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:345 msgid "fix crash when there is no history yet" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:346 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:355 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:364 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:373 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:397 msgid "translations update" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:354 #, fuzzy msgid "fix gnome-shell exntesion when the daemon restarts" msgstr "GNOME Shell-extensie inschakelen" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:363 msgid "Fix keybindings for wayland" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:370 msgid "First release for GNOME 41. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:372 msgid "port to gnome-shell 41" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:405 msgid "fix a crash in memory usage checking" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:412 msgid "First release for GNOME 40. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:414 msgid "port to gnome-shell 40" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:415 msgid "placeholder for gnome-shell prefs" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:423 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:487 msgid "fix X11 keybinder outside of GNOME" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:431 msgid "better handling and reporting of invalid uuids passed to gpaste-client" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:432 msgid "" "gpaste-client now has a --use-index argument for several subcommands to use " "index instead of uuid" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:440 msgid "fix the make-password keybinding" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:441 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:450 msgid "updated translations" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:449 #, fuzzy msgid "gnome-shell extension warning fixes" msgstr "GNOME Shell-extensie inschakelen" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:458 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:495 #, fuzzy msgid "gnome-shell extension cosmetic updates" msgstr "GNOME Shell-extensie inschakelen" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:466 msgid "Disable images support by default (can be reenabled in preferences)" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:467 msgid "Search now includes passwords (using their names)" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:468 msgid "systemd integration enhancements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:474 msgid "First release for GNOME 3.38. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:476 msgid "Drop the Tracking DBus signal" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:477 msgid "Switch to uuids to identify items" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:478 msgid "Bump DBus interface to org.gnome.GPaste2" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:479 msgid "Update to gnome-shell 3.38.0" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:503 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:535 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:577 msgid "Fix activating items using Ctrl-Number in gnome-shell" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:511 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:543 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:576 msgid "Fix keybinding regrab with gnome-shell" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:519 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:551 msgid "Fix keybinding grab with gnome-shell" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:525 msgid "First release for GNOME 3.36. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:527 msgid "Update to gnome-shell 3.36.0" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:559 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:575 msgid "Compatibility with recent appstream-glib" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:565 msgid "First release for GNOME 3.34. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:567 msgid "Update to gnome-shell 3.34.0" msgstr "" #: src/client/gpaste-client.c:146 msgid "Couldn't spawn" msgstr "Het oproepen is mislukt" #: src/client/gpaste-client.c:158 #, c-format msgid "Usage:\n" msgstr "Gebruik:\n" #. Translators: help for gpaste history #: src/client/gpaste-client.c:160 #, fuzzy msgid "print the history with UUIDs" msgstr "geschiedenis met indexen weergeven" #. Translators: help for gpaste history-size #: src/client/gpaste-client.c:162 msgid "print the size of the history" msgstr "geschiedenisgrootte weergeven" #. Translators: help for gpaste get-history #: src/client/gpaste-client.c:164 msgid "get the name of the current history" msgstr "naam verkrijgen van de huidige geschiedenis" #. Translators: help for gpaste backup-history #. Translators: help for gpaste switch-history #. Translators: help for gpaste delete-history #. Translators: help for gpaste add-password #. Translators: help for gpaste set-password #. Translators: help for gpaste delete-passworf #: src/client/gpaste-client.c:166 src/client/gpaste-client.c:168 #: src/client/gpaste-client.c:170 src/client/gpaste-client.c:176 #: src/client/gpaste-client.c:188 src/client/gpaste-client.c:192 msgid "name" msgstr "naam" #: src/client/gpaste-client.c:166 msgid "backup current history" msgstr "huidige geschiedenis back-uppen" #: src/client/gpaste-client.c:168 msgid "switch to another history" msgstr "overschakelen naar andere geschiedenis" #: src/client/gpaste-client.c:170 msgid "delete a history" msgstr "een geschiedenis verwijderen" #. Translators: help for gpaste list-histories #: src/client/gpaste-client.c:172 msgid "list available histories" msgstr "beschikbare geschiedenissen opsommen" #. Translators: help for gpaste add #: src/client/gpaste-client.c:174 msgid "text" msgstr "tekst" #: src/client/gpaste-client.c:174 msgid "set text to clipboard" msgstr "verstuur tekst naar klembord" #: src/client/gpaste-client.c:176 msgid "password" msgstr "Wachtwoord" #: src/client/gpaste-client.c:176 msgid "add the name - password couple to the clipboard" msgstr "voeg de naam - wachtwoord-set toe aan het klembord" #. Translators: help for gpaste rename-password #: src/client/gpaste-client.c:178 msgid "old name" msgstr "oude naam" #: src/client/gpaste-client.c:178 msgid "new name" msgstr "nieuwe naam" #: src/client/gpaste-client.c:178 msgid "rename the password" msgstr "wachtwoordnaam wijzigen" #. Translators: help for gpaste get #: src/client/gpaste-client.c:180 #, fuzzy msgid "get the item from the history" msgstr "verkrijg item uit de geschiedenis" #. Translators: help for gpaste select #: src/client/gpaste-client.c:182 #, fuzzy msgid "set the item from the history to the clipboard" msgstr "stelt item uit de geschiedenis in op het klembord" #. Translators: help for gpaste replace #: src/client/gpaste-client.c:184 msgid "contents" msgstr "inhoud" #: src/client/gpaste-client.c:184 #, fuzzy msgid "" "replace the contents of the item from the history with the provided " "one" msgstr "" "vervang de inhoud van item uit de geschiedenis door het opgegeven " "item" #. Translators: help for gpaste merge #: src/client/gpaste-client.c:186 #, fuzzy msgid "" "merge the items matching the UUIDs from the history and put the result in " "the clipboard" msgstr "" "voeg de items uit de geschiedenis samen en plaats het resultaat op " "het klembord" #: src/client/gpaste-client.c:188 #, fuzzy msgid "set the item from the history as a password named " msgstr "" "stelt item uit de geschiedenis in als een wachtwoord genaamd " #. Translators: help for gpaste delete #: src/client/gpaste-client.c:190 #, fuzzy msgid "delete item from the history" msgstr "verwijdert wachtwoord uit de geschiedenis" #: src/client/gpaste-client.c:192 msgid "delete the password from the history" msgstr "verwijdert wachtwoord uit de geschiedenis" #. Translators: help for gpaste file #: src/client/gpaste-client.c:194 msgid "path" msgstr "pad" #: src/client/gpaste-client.c:194 msgid "put the content of the file at into the clipboard" msgstr "plaats de inhoud van het bestand uit op het klembord" #. Translators: help for whatever | gpaste #: src/client/gpaste-client.c:196 msgid "whatever" msgstr "wat dan ook" #: src/client/gpaste-client.c:196 msgid "set the output of whatever to clipboard" msgstr "stelt de uitvoer van wat dan ook in op het klembord" #. Translators: help for gpaste empty #: src/client/gpaste-client.c:198 msgid "empty the history" msgstr "geschiedenis legen" #. Translators: help for gpaste start #: src/client/gpaste-client.c:200 msgid "start tracking clipboard changes" msgstr "begin met het bijhouden van klembordwijzigingen" #. Translators: help for gpaste stop #: src/client/gpaste-client.c:202 msgid "stop tracking clipboard changes" msgstr "begin met het bijhouden van klembordwijzigingen" #. Translators: help for gpaste quit #: src/client/gpaste-client.c:204 msgid "alias for stop" msgstr "alias voor stop" #. Translators: help for gpaste daemon-reexec #: src/client/gpaste-client.c:206 msgid "reexecute the daemon (after upgrading...)" msgstr "de daemon herstarten (na upgraden...)" #. Translators: help for gpaste preferences #: src/client/gpaste-client.c:208 msgid "launch the configuration tool" msgstr "start het configuratievenster" #. Translators: help for gpaste ui #: src/client/gpaste-client.c:210 msgid "launch the graphical tool" msgstr "start het grafische venster" #. Translators: help for gpaste show-history #: src/client/gpaste-client.c:212 msgid "make the applet or extension display the history" msgstr "" "zorgt ervoor dat het applet of de uitbreiding de geschiedenis weergeeft" #. Translators: help for gpaste upload #: src/client/gpaste-client.c:214 #, fuzzy msgid "upload the item to a pastebin service" msgstr "Actief item uploaden naar een pastebin-dienst" #. Translators: help for gpaste version #: src/client/gpaste-client.c:216 msgid "display the version" msgstr "applicatieversie weergeven" #. Translators: help for gpaste daemon-version #: src/client/gpaste-client.c:218 msgid "display the daemon version" msgstr "daemon-versie weergeven" #. Translators: help for gpaste help #: src/client/gpaste-client.c:220 msgid "display this help" msgstr "deze hulptekst weergeven" #. Translators: help for gpaste about #: src/client/gpaste-client.c:222 msgid "display the about dialog" msgstr "het over-venster weergeven" #: src/client/gpaste-client.c:225 #, fuzzy, c-format msgid "Convenience options:" msgstr "Samenvoegingsopties" #. Translators: help for --use-index #: src/client/gpaste-client.c:228 msgid "use the index of the item instead of its UUID" msgstr "" #: src/client/gpaste-client.c:231 #, c-format msgid "Display options:" msgstr "Weergave-opties:" #. Translators: help for --oneline #: src/client/gpaste-client.c:234 msgid "display each item on only one line" msgstr "elk item slechts op één regel weergeven" #. Translators: help for --raw #: src/client/gpaste-client.c:236 msgid "display each item raw (without line numbers)" msgstr "elk item 'kaal' weergeven (zonder regelnummers)" #. Translators: help for --reverse #: src/client/gpaste-client.c:238 #, fuzzy msgid "display the items in reverse order" msgstr "daemon-versie weergeven" #. Translators: help for --zero #: src/client/gpaste-client.c:240 msgid "use a NUL character instead of a new line betweean each item" msgstr "tussen elk item een NUL-teken gebruiken i.p.v. een nieuwe regel" #: src/client/gpaste-client.c:243 #, c-format msgid "Merge options:" msgstr "Samenvoegingsopties" #. Translators: help for --decoration #. Translators: help for --separator #: src/client/gpaste-client.c:246 src/client/gpaste-client.c:248 msgid "string" msgstr "string" #: src/client/gpaste-client.c:246 msgid "" "add the given decoration to the beginning and the end of each item before " "merging" msgstr "" "voeg de opgegeven decoratie aan het begin en eind van elk item alvorens het " "samen te voegen" #: src/client/gpaste-client.c:248 msgid "add the given separator between each item when merging" msgstr "" "voeg de opgegeven scheidingslijn toe tussen elk item tijdens het samenvoegen" #: src/client/gpaste-client.c:345 #, c-format msgid "Successfully reexecuted the daemon\n" msgstr "De daemon is sucessvol herstart\n" #: src/client/gpaste-client.c:486 msgid "Cannot add non utf8 data as text." msgstr "Het toevoegen van utf8-gegevens als tekst is mislukt." #: src/client/gpaste-client.c:796 src/ui/gpaste-ui-window.c:353 #: src/ui/gpaste-ui-window.c:354 msgid "Couldn't connect to GPaste daemon" msgstr "Het verbinden met de GPaste-daemon is mislukt" #: src/daemon/gpaste-color-item.c:73 msgid "[Color]" msgstr "" #. Translators: strftime format for image timestamps. Rearrange to match your locale's date/time convention. #: src/daemon/gpaste-image-item.c:219 msgid "%m/%d/%y %T" msgstr "%m/%d/%y %T" #. Translators: Image item displayed in history. %d is width, %d is height, %s is the formatted date. #: src/daemon/gpaste-image-item.c:221 #, c-format msgid "[Image, %d x %d (%s)]" msgstr "[Afbeelding, %d x %d (%s)]" #: src/daemon/gpaste-make-password-keybinding.c:50 #, fuzzy msgid "Convert to Password" msgstr "wachtwoordnaam wijzigen" #. This is the prefix displayed in history to identify a password #: src/daemon/gpaste-password-item.c:65 msgid "Password" msgstr "Wachtwoord" #: src/daemon/gpaste-pop-keybinding.c:64 #, fuzzy msgid "Pop from History" msgstr "Geschiedenissen" #: src/daemon/gpaste-show-history-keybinding.c:49 #, fuzzy msgid "Show History" msgstr "Geschiedenissen" #: src/daemon/gpaste-sync-clipboard-to-primary-keybinding.c:46 #, fuzzy msgid "Sync Clipboard to Primary" msgstr "Klembord synchroniseren met primaire selectie" #: src/daemon/gpaste-sync-primary-to-clipboard-keybinding.c:46 #, fuzzy msgid "Sync Primary to Clipboard" msgstr "Primaire selectie synchroniseren met klembord" #: src/daemon/gpaste-ui-keybinding.c:43 msgid "Launch UI" msgstr "" #: src/daemon/gpaste-upload-keybinding.c:64 msgid "Upload to Pastebin" msgstr "" #: src/daemon/gpaste-uris-item.c:87 msgid "[Files] " msgstr "[Bestanden]" #: src/daemon/main.c:32 msgid "Stop signal received, exiting" msgstr "Het stopsignaal is ontvangen; bezig met afsluiten" #: src/daemon/main.c:69 msgid "Could not acquire DBus name." msgstr "Het ophalen van de DBus-naam is mislukt." #: src/gnome-shell/dummyHistoryItem.js:12 msgid "(Couldn't connect to GPaste daemon)" msgstr "(Het verbinden met de GPaste-daemon is mislukt)" #: src/gnome-shell/dummyHistoryItem.js:17 msgid "(Empty)" msgstr "(Leeg)" #: src/gnome-shell/dummyHistoryItem.js:22 msgid "(No result)" msgstr "(Geen resultaat)" #: src/gnome-shell/emptyHistoryItem.js:14 msgid "Empty history" msgstr "Geschiedenis wissen" #: src/gnome-shell/stateSwitch.js:12 msgid "Track changes" msgstr "Wijzigingen bijhouden" #: src/gnome-shell/uiItem.js:14 #, fuzzy msgid "Graphical tool" msgstr "Grafisch venster openen" #: src/libgpaste/gpaste/gpaste-util.c:636 msgid "Could not create history dir" msgstr "Het creëren van de geschiedenismap is mislukt" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-macros.h:38 msgid "Failed to register the gtk application" msgstr "Het registreren van de GTK-applicatie is mislukt" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:108 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:119 msgid "General behaviour" msgstr "Algemeen" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:121 #: src/ui/gpaste-ui-switch.c:93 msgid "Track clipboard changes" msgstr "Klembordwijzigingen bijhouden" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:127 msgid "Close UI on select" msgstr "Venster sluiten na selecteren" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:133 msgid "Open the UI window centered" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:139 msgid "Save history" msgstr "Geschiedenis opslaan" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:150 msgid "Enable the gnome-shell extension" msgstr "GNOME Shell-extensie inschakelen" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:156 msgid "Sync the daemon state with the extension's one" msgstr "Daemon-staat synchroniseren met die van de uitbreiding" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:162 msgid "" "When enabled, the daemon automatically starts or stops tracking clipboard " "changes to match the GNOME Shell extension's enabled state" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:166 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:174 msgid "Clipboards synchronization" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:168 msgid "Primary selection affects history" msgstr "Primaire selectie beïnvloedt geschiedenis" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:174 msgid "Synchronize clipboard with primary selection" msgstr "Klembord synchroniseren met primaire selectie" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:181 msgid "Optional features" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:183 msgid "Trim items" msgstr "Items trimmen" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:189 msgid "Detect growing lines" msgstr "Groeiende regels detecteren" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:195 msgid "" "When enabled, if a new clipboard entry starts with the previous one, the " "previous entry is replaced instead of creating a new one" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:92 msgid "History settings" msgstr "Geschiedenis-instellingen" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:103 msgid "Resources limits" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:120 msgid "Text limits" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:122 msgid "Min text item length" msgstr "Minimale tekstitemlengte:" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:129 msgid "Max text item length" msgstr "Maximale tekstitemlengte:" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:137 #, fuzzy msgid "Display settings" msgstr "Geschiedenis-instellingen" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:139 msgid "Max element size when displaying" msgstr "Maximale elementgrootte tijdens weergave" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:81 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:92 #, fuzzy msgid "Images settings" msgstr "Instellingenvenster" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:94 msgid "Images support" msgstr "Afbeeldingsondersteuning" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:100 msgid "Image previews" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:106 msgid "Preview size" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:122 msgid "Keyboard shortcuts" msgstr "Sneltoetsen" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:133 #, fuzzy msgid "History access" msgstr "Geschiedenissen" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:150 msgid "Active element manipulation" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-util.c:51 #: src/ui/gpaste-ui-edit-item.c:84 src/ui/gpaste-ui-new-item.c:66 #: src/ui/gpaste-ui-panel.c:311 msgid "Cancel" msgstr "Annuleren" #. Translators: %s is the name of the history being emptied. #: src/libgpaste/gpaste-gtk4/gpaste-gtk-util.c:126 #, fuzzy, c-format msgid "Do you really want to empty \"%s\"?" msgstr "Weet u zeker dat u de geschiedenis wilt legen?" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-util.c:127 #: src/ui/gpaste-ui-history.c:153 src/ui/gpaste-ui-history.c:428 #: src/ui/gpaste-ui-panel.c:517 msgid "Empty" msgstr "Legen" #: src/ui/gpaste-ui.c:47 msgid "Clipboard management system" msgstr "" #: src/ui/gpaste-ui-delete-item.c:46 src/ui/gpaste-ui-panel.c:358 #: src/ui/gpaste-ui-panel.c:518 msgid "Delete" msgstr "Verwijderen" #: src/ui/gpaste-ui-edit-item.c:85 src/ui/gpaste-ui-edit-item.c:139 msgid "Edit" msgstr "Bewerken" #: src/ui/gpaste-ui-history.c:266 #, fuzzy msgid "No Results" msgstr "(Geen resultaat)" #: src/ui/gpaste-ui-new-item.c:67 msgid "Add new item" msgstr "" #: src/ui/gpaste-ui-new-item.c:100 msgid "New item" msgstr "" #: src/ui/gpaste-ui-panel.c:307 msgid "Under which name do you want to backup this history?" msgstr "Onder welke naam wilt u de geschiedenis opslaan?" #: src/ui/gpaste-ui-panel.c:311 src/ui/gpaste-ui-panel.c:516 msgid "Backup" msgstr "Back-uppen" #. Translators: %s is the name of the history being deleted. #: src/ui/gpaste-ui-panel.c:357 #, fuzzy, c-format msgid "Are you sure you want to delete \"%s\"?" msgstr "Weet u zeker dat u de geschiedenis wilt verwijderen?" #: src/ui/gpaste-ui-panel.c:441 #, fuzzy msgid "Switch to history" msgstr "overschakelen naar andere geschiedenis" #: src/ui/gpaste-ui-panel.c:448 msgid "Switch to" msgstr "Overschakelen naar" #: src/ui/gpaste-ui-reexec.c:45 msgid "Restart" msgstr "Herstarten" #: src/ui/gpaste-ui-reexec.c:45 msgid "Do you really want to restart the daemon?" msgstr "Weet u zeker dat u de daemon wilt herstarten?" #: src/ui/gpaste-ui-reexec.c:70 msgid "Restart the daemon" msgstr "Daemon herstarten" #: src/ui/gpaste-ui-search.c:23 msgid "Search" msgstr "Zoeken" #: src/ui/gpaste-ui-settings.c:35 msgid "GPaste Settings" msgstr "GPaste-instellingen" #: src/ui/gpaste-ui-shortcuts-window.c:21 msgid "General" msgstr "Algemeen" #: src/ui/gpaste-ui-switch.c:68 msgid "Stop" msgstr "Stoppen" #: src/ui/gpaste-ui-switch.c:68 msgid "Do you really want to stop tracking clipboard changes?" msgstr "Weet u zeker dat u het bijhouden van klembordwijzigingen wilt stoppen?" #: src/ui/gpaste-ui-upload-item.c:46 msgid "Upload" msgstr "Uploaden" #: src/ui/gpaste-ui-window.c:303 msgid "Quit" msgstr "Afsluiten" #: src/ui/gpaste-ui-window.c:380 #, fuzzy msgid "Histories" msgstr "Geschiedenissen" #: src/ui/gpaste-ui-window.c:381 #, fuzzy msgid "History" msgstr "Geschiedenissen" #~ msgid "is already running." #~ msgstr "draait al." #~ msgid "New" #~ msgstr "Nieuw" #~ msgid "Keyboard Shortcuts" #~ msgstr "Sneltoetsen" #~ msgid "About GPaste" #~ msgstr "Over GPaste" #~ msgid "number" #~ msgstr "nummer" #~ msgid "delete th item of the history" #~ msgstr "verwijdert item uit de geschiedenis" #~ msgid "upload the th item to a pastebin service" #~ msgstr "upload item naar een pastebin-dienst" #~ msgid "edit-paste" #~ msgstr "bewerken-plakken" #~ msgid "launch the applet" #~ msgstr "Applet starten" #~ msgid "launch the unity application indicator" #~ msgstr "Unity applicatie-indicator starten" #~ msgid "GPaste Applet" #~ msgstr "GPaste-applet" #~ msgid "Tray icon to manage GPaste" #~ msgstr "Systeemvakpictogram om GPaste te beheren" #~ msgid "" #~ "GPaste provides you with an applet, in the form of a status icon which " #~ "will give you access to your history in your tray area." #~ msgstr "" #~ "GPaste bevat een applet in de vorm van een statuspictogram. Dit geeft u " #~ "toegang tot uw geschiedenis vanuit uw systeemvak.\t" #~ msgid "GPaste AppIndicator" #~ msgstr "GPaste applicatie-indicator" #~ msgid "Unity application indicator to manage GPaste" #~ msgstr "Unity applicatie-indicator om GPaste te beheren" #~ msgid "" #~ "GPaste provides you with an application indicator for unity which will " #~ "give you access to your history in your indicator area." #~ msgstr "" #~ "GPaste bevat een indicator voor Unity. Dit geeft u toegang tot uw " #~ "geschiedenis vanuit uw indicatorvak." #~ msgid "The AppIndicator menu" #~ msgstr "Het AppIndicator-menu" #~ msgid "Max displayed history size: " #~ msgstr "Maximaal weergegeven geschiedenisgrootte:" #~ msgid "Max history size: " #~ msgstr "Maximale geschiedenisgrootte:" #~ msgid "Max memory usage (MB): " #~ msgstr "Maximaal geheugengebruik (MB):" #~ msgid "Backup history as: " #~ msgstr "Geschiedenis back-uppen als:" #~ msgid "Ok" #~ msgstr "Oké" #~ msgid "Could not register DBus service." #~ msgstr "Het registreren van de DBus-dienst is mislukt." #~ msgid "Manage GPaste" #~ msgstr "GPaste beheren" #~ msgid "GPaste daemon settings" #~ msgstr "GPaste-daemon-instellingen" #~ msgid "" #~ "GPaste provides you with a settings utility allowing you to customize its " #~ "behaviour as expected." #~ msgstr "" #~ "GPaste bevat een instellingenvenster waarmee u het applicatiegedrag kunt " #~ "instellen." #~ msgid "Manage the GPaste daemon settings" #~ msgstr "GPaste-Daemon-Einstellungen" #~ msgid "Stop tracking changes" #~ msgstr "Stoppen met bijhouden van wijzigingen" #~ msgid "print the history without newlines" #~ msgstr "geschiedenis printen zonder nieuweregels" #~ msgid "print the history (raw) without indexes" #~ msgstr "geschiedenis printen zonder indexen (zonder opmaak)" #~ msgid "print the history with NUL as separator" #~ msgstr "geschiedenis printen met NUL als scheidingslijn" #~ msgid "get the th item from the history (raw)" #~ msgstr "verkrijg item uit de geschiedenis (zonder opmaak)" #~ msgid "Couldn't spawn gpaste-app-indicator.\n" #~ msgstr "Het starten van de GPaste-appindicator is mislukt.\n" Keruspe-GPaste-724def1/po/oc.po000066400000000000000000001306121521206431300163060ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the GPaste package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: GPaste\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-06-09 21:21+0200\n" "PO-Revision-Date: 2024-01-08 16:06+0000\n" "Last-Translator: Quentin PAGÈS \n" "Language-Team: Occitan \n" "Language: oc\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: Weblate 5.4-dev\n" #: data/control-center/42-gpaste.control-center.xml.in:2 msgid "@GETTEXT_PACKAGE@" msgstr "" #: data/control-center/42-gpaste.control-center.xml.in:3 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:136 #: src/ui/gpaste-ui-shortcuts-window.c:24 msgid "Launch the graphical tool" msgstr "Lançar l’aisina grafica" #: data/control-center/42-gpaste.control-center.xml.in:4 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:153 #: src/ui/gpaste-ui-shortcuts-window.c:25 msgid "Mark the active item as being a password" msgstr "" #: data/control-center/42-gpaste.control-center.xml.in:5 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:167 #: src/ui/gpaste-ui-shortcuts-window.c:23 msgid "Delete the active item from history" msgstr "" #: data/control-center/42-gpaste.control-center.xml.in:6 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:143 #: src/ui/gpaste-ui-shortcuts-window.c:26 msgid "Display the history" msgstr "Suprimir l’istoric" #: data/control-center/42-gpaste.control-center.xml.in:7 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:177 #: src/ui/gpaste-ui-shortcuts-window.c:27 msgid "Sync the clipboard to the primary selection" msgstr "" #: data/control-center/42-gpaste.control-center.xml.in:8 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:184 #: src/ui/gpaste-ui-shortcuts-window.c:28 msgid "Sync the primary selection to the clipboard" msgstr "" #: data/control-center/42-gpaste.control-center.xml.in:9 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:160 #: src/ui/gpaste-ui-shortcuts-window.c:29 msgid "Upload the active item to a pastebin service" msgstr "" #: data/desktop/org.gnome.GPaste.Daemon.desktop.in.in:3 #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:3 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:6 msgid "GPaste" msgstr "GPaste" #: data/desktop/org.gnome.GPaste.Preferences.desktop.in.in:3 msgid "GPaste Preferences" msgstr "Preferéncias GPaste" #: data/desktop/org.gnome.GPaste.Preferences.desktop.in.in:4 msgid "Manage your GPaste preferences" msgstr "" #: data/desktop/org.gnome.GPaste.Preferences.desktop.in.in:5 #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:6 msgid "Clipboard;Manager;Settings;Preferences;Configuration;" msgstr "quichapapièrs;cachapapièrs;sarrapapèrs;pressapapièrs;gestionari;paramètres;preferéncias;configuracion;" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:4 msgid "Clipboard Manager" msgstr "" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:5 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:7 msgid "Manage your clipboard history" msgstr "Gerir l’istoric del quichapapièrs" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:16 #, fuzzy msgid "Preferences" msgstr "Preferéncias GPaste" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:20 #: src/gnome-shell/aboutItem.js:13 src/ui/gpaste-ui-about.c:38 msgid "About" msgstr "A prepaus" #: data/gsettings/org.gnome.GPaste.gschema.xml:7 msgid "Max size of an element when displaying it" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:8 msgid "" "The extra stuff of that element will be replaced by \"…\", and newlines by " "\" \" when displaying from the applet, 0 to disable." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:15 msgid "Do we detect and replace growing lines in history?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:16 msgid "" "By default, selecting \"Here is\", then \"Here is an example\" will create " "two entries in the history. With this feature enabled, the first one will be " "replaced by the second one." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:24 msgid "The name of the current history" msgstr "Lo nom de l’istoric actual" #: data/gsettings/org.gnome.GPaste.gschema.xml:25 msgid "The default name is \"history\"" msgstr "Lo nom per defaut es « history »" #: data/gsettings/org.gnome.GPaste.gschema.xml:32 msgid "Do we save the images copied to history, or only text?" msgstr "Enregistram los imatges copiats a l’istoric o sonque lo tèxte ?" #: data/gsettings/org.gnome.GPaste.gschema.xml:33 msgid "By default, we're saving only text" msgstr "Per defaut, enregistram sonque lo tèxte" #: data/gsettings/org.gnome.GPaste.gschema.xml:40 msgid "Show image previews in the history?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:41 msgid "By default, we show previews of images in the history" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:49 msgid "Size of image previews in pixels" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:50 msgid "Default size is 100 pixels" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:57 msgid "Do we close the UI after selecting an item?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:58 msgid "By default, we close it" msgstr "Per defaut, lo tampam" #: data/gsettings/org.gnome.GPaste.gschema.xml:65 msgid "Do we open the UI window centered?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:66 msgid "By default, we open it where the mouse cursor is" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:73 msgid "The keyboard shortcut to launch the graphical interface" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:74 msgid "" "By default, hitting ctrl + alt + g does that (\"G\"). An empty " "string here disables this functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:82 msgid "The keyboard shortcut to mark the active item as being a password" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:83 msgid "" "By default, hitting ctrl + alt + s will mark the active item as being a " "password (\"S\"). An empty string here disables this " "functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:92 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:146 msgid "Max displayed history size" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:93 msgid "Maximum number of items displayed in the history" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:101 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:105 msgid "Max history size" msgstr "Talha max de l'istoric" #: data/gsettings/org.gnome.GPaste.gschema.xml:102 msgid "Maximum number of items in history" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:110 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:112 msgid "Max memory usage (MB)" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:111 msgid "Maximum amount of memory used to store contents" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:119 msgid "Max text item size" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:120 msgid "Maximum size of a text item. Anything out of this boundary is ignored." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:128 msgid "Min text item size" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:129 msgid "Minimum size of a text item. Anything out of this boundary is ignored." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:136 msgid "The keyboard shortcut to delete the first element in history" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:137 msgid "" "By default, hitting ctrl + alt + v does that (\"V\"). An empty " "string here disables this functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:145 msgid "Does the primary selection affects history?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:146 msgid "By default, only clipboard (ctrl+c) affects history." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:153 msgid "" "Do we save all versions of selected rich text (e.g. html) or just the plain " "text version?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:154 msgid "By default, we're saving all" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:161 msgid "Do we save the history from one session to another?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:162 msgid "By default, we're saving it" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:169 msgid "The keyboard shortcut to display the menu" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:170 msgid "" "By default, hitting ctrl + alt + h displays the menu (\"H\"). An " "empty string here disables this functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:178 msgid "The keyboard shortcut to sync the clipboard to the primary selection" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:179 msgid "" "By default, hitting ctrl + alt + o syncs them (\"P\"). An empty " "string here disables this functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:187 msgid "The keyboard shortcut to sync the primary selection to the clipboard" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:188 msgid "" "By default, hitting ctrl + alt + p syncs them (\"P\"). An empty " "string here disables this functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:196 msgid "Are the primary selection and the clipboard synchronized?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:197 msgid "By default, the primary selection and the clipboard are independent." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:204 msgid "Do we track the clipboard changes?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:205 msgid "By default, we're tracking those changes." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:212 msgid "" "Do we sync the daemon state with the gnome-shell extension's one? (disable " "the daemon when disabling the extension)" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:213 msgid "By default, the daemon state keeps unchanged" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:220 msgid "Do we trim the textual items before adding them to history?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:221 msgid "" "Trimming means removing all trailing and ending spaces. By default, we're " "letting them as-is." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:229 msgid "" "The keyboard shortcut to upload the first element in history to a pastebin " "service" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:230 msgid "" "By default, hitting ctrl + alt + u does that (\"U\"). An empty " "string here disables this functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:238 msgid "Do we prompt for confirmation when emptying a history?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:239 msgid "By default, we do as it's a destructive action" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:9 msgid "Marc-Antoine Perennou" msgstr "Marc-Antoine Perennou" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:17 msgid "" "GPaste is a clipboard managing system allowing you to track and manage your " "clipboard history in a highly customizable way." msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:20 msgid "" "GPaste provides you with a graphical tool allowing you to manage everything " "easily." msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:27 msgid "The main UI" msgstr "L'interfàcia principala" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:31 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:35 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:39 msgid "The settings UI" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:51 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:78 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:90 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:100 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:120 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:133 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:143 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:152 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:161 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:180 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:197 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:205 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:213 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:231 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:239 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:247 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:255 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:263 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:287 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:295 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:303 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:311 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:319 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:327 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:335 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:343 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:352 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:361 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:379 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:387 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:395 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:403 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:421 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:429 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:438 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:447 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:456 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:464 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:485 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:493 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:501 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:509 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:517 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:533 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:541 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:549 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:557 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:573 msgid "This is a maintenance release. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:53 msgid "Fix building without the GNOME Shell extension (-Dgnome-shell=false)" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:54 msgid "" "Restore GTK deprecation version-gating and drop the unused build-time gjs " "dependency" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:55 msgid "Target GNOME Shell 50 in the extension" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:56 msgid "Bump the library soversions to reflect the API/ABI changes since 45.8" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:62 msgid "" "This is a major release porting GPaste to GTK 4 and libadwaita. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:64 msgid "Port the daemon, history UI and preferences to GTK 4 and libadwaita" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:65 msgid "Show image thumbnails in the history, with configurable preview size" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:66 msgid "" "Support global keyboard shortcuts on Wayland through the XDG GlobalShortcuts " "portal" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:67 msgid "Recognise copied colours as dedicated colour items" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:68 msgid "" "Give keybindings human-readable descriptions and install a daemon desktop " "file" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:69 msgid "Fix images sometimes being repeatedly re-added to the history" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:70 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:81 msgid "" "Fix keyboard shortcuts not triggering when NumLock and CapsLock are both " "active" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:71 msgid "" "Fix several crashes (search provider, UI lifetime, GNOME Shell extension) " "and memory leaks" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:72 msgid "Modernise the GNOME Shell extension to current conventions" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:80 msgid "Fix use-after-free crash in the GNOME Shell search provider" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:82 msgid "" "Fix memory leaks when re-copying history items and when rebinding shortcuts" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:83 msgid "Fix potential crash when enforcing a very small history size" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:84 msgid "Build: ship the GSettings schema as a static file" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:92 msgid "" "GNOME Shell extension now retries the daemon connection before giving up" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:93 msgid "Fix test crash when GrabAccelerators is not allowed" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:94 msgid "Build: simplify gsettings compilation for tests" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:102 msgid "Fix GC crash and signal leak when disabling the GNOME Shell extension" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:103 msgid "GNOME Shell extension now handles daemon connection failure gracefully" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:104 msgid "Fix crash when a history item has no value yet" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:105 msgid "Fix image files not being deleted when history items are removed" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:106 msgid "Fix image files stored in wrong directory" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:107 msgid "Fix keyboard focus being stolen by history items on hover" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:108 msgid "" "Fix key events incorrectly forwarded to search when another entry has focus" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:109 msgid "Fix signal loop when updating shortcut entries from settings" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:110 msgid "Fix default history item count not reset after history deletion" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:111 msgid "Enforce minimum window size to prevent unresizable state" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:112 msgid "Add descriptive tooltips for settings entries" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:113 msgid "Build: explicitly link libgpaste libraries against libc" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:114 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:127 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:137 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:146 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:155 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:164 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:174 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:225 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:267 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:281 msgid "Translations updates" msgstr "Mesas a jorn de las traduccions" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:122 msgid "" "Fix infinite Pango assertion loop that could fill disk when clipboard " "content contained tab characters" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:123 msgid "Various bug fixes and memory management improvements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:124 msgid "Daemon improvements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:125 msgid "GNOME Shell extension improvements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:126 msgid "GLib >= 2.76 is now required" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:135 msgid "Support for gnome 50" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:136 msgid "Support for gnome 49" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:145 msgid "Support for gnome 48" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:154 msgid "Support for gnome 47" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:163 msgid "Support for gnome 46" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:170 msgid "Stable release for GNOME 45. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:172 msgid "Port to gnome 45" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:173 msgid "Add setting to open ui window centered" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:182 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:199 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:233 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:289 msgid "Fix a bug leading to history with only one item" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:188 msgid "First release for GNOME 44. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:190 msgid "gcr 4 is now required" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:191 msgid "Port to gnome 44" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:207 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:241 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:297 msgid "Avoid crash under heavy memory load" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:215 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:249 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:305 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:381 msgid "Respect --use-index when displaying history" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:221 msgid "First release for GNOME 43. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:223 msgid "Port to GNOME 43" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:224 msgid "Internal preparation for gtk4 port" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:257 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:313 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:389 msgid "Open GPaste UI where the mouse pointer is" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:265 msgid "Fixes to the new preferences tool" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:266 msgid "Style fixes" msgstr "Correccions d'estil" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:273 msgid "First release for GNOME 42. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:275 msgid "" "Old libgpaste replaced by a new minimal libgpaste-2 with no gtk dependency" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:276 msgid "New libgpaste-gtk3 for utils and settings ui" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:277 msgid "New libgpaste-gtk4 for utils and preferences ui" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:278 msgid "New gtk4 based gpaste-preferences utility" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:279 msgid "Autotools are no longer supported" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:280 msgid "Extension updated for gnome-shell 42" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:321 msgid "fix the storage path for meson builds" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:329 msgid "fix some race conditions in history handling" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:337 msgid "better fix crash when there is no history yet" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:345 msgid "fix crash when there is no history yet" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:346 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:355 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:364 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:373 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:397 msgid "translations update" msgstr "actualizacion de las traduccions" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:354 msgid "fix gnome-shell exntesion when the daemon restarts" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:363 msgid "Fix keybindings for wayland" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:370 msgid "First release for GNOME 41. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:372 msgid "port to gnome-shell 41" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:405 msgid "fix a crash in memory usage checking" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:412 msgid "First release for GNOME 40. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:414 msgid "port to gnome-shell 40" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:415 msgid "placeholder for gnome-shell prefs" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:423 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:487 msgid "fix X11 keybinder outside of GNOME" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:431 msgid "better handling and reporting of invalid uuids passed to gpaste-client" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:432 msgid "" "gpaste-client now has a --use-index argument for several subcommands to use " "index instead of uuid" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:440 msgid "fix the make-password keybinding" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:441 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:450 msgid "updated translations" msgstr "traduccions actualizadas" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:449 msgid "gnome-shell extension warning fixes" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:458 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:495 msgid "gnome-shell extension cosmetic updates" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:466 msgid "Disable images support by default (can be reenabled in preferences)" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:467 msgid "Search now includes passwords (using their names)" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:468 msgid "systemd integration enhancements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:474 msgid "First release for GNOME 3.38. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:476 msgid "Drop the Tracking DBus signal" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:477 msgid "Switch to uuids to identify items" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:478 msgid "Bump DBus interface to org.gnome.GPaste2" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:479 msgid "Update to gnome-shell 3.38.0" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:503 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:535 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:577 msgid "Fix activating items using Ctrl-Number in gnome-shell" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:511 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:543 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:576 msgid "Fix keybinding regrab with gnome-shell" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:519 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:551 msgid "Fix keybinding grab with gnome-shell" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:525 msgid "First release for GNOME 3.36. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:527 msgid "Update to gnome-shell 3.36.0" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:559 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:575 msgid "Compatibility with recent appstream-glib" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:565 msgid "First release for GNOME 3.34. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:567 msgid "Update to gnome-shell 3.34.0" msgstr "" #: src/client/gpaste-client.c:146 msgid "Couldn't spawn" msgstr "" #: src/client/gpaste-client.c:158 #, c-format msgid "Usage:\n" msgstr "Utilizacion :\n" #. Translators: help for gpaste history #: src/client/gpaste-client.c:160 msgid "print the history with UUIDs" msgstr "" #. Translators: help for gpaste history-size #: src/client/gpaste-client.c:162 msgid "print the size of the history" msgstr "" #. Translators: help for gpaste get-history #: src/client/gpaste-client.c:164 msgid "get the name of the current history" msgstr "" #. Translators: help for gpaste backup-history #. Translators: help for gpaste switch-history #. Translators: help for gpaste delete-history #. Translators: help for gpaste add-password #. Translators: help for gpaste set-password #. Translators: help for gpaste delete-passworf #: src/client/gpaste-client.c:166 src/client/gpaste-client.c:168 #: src/client/gpaste-client.c:170 src/client/gpaste-client.c:176 #: src/client/gpaste-client.c:188 src/client/gpaste-client.c:192 msgid "name" msgstr "nom" #: src/client/gpaste-client.c:166 msgid "backup current history" msgstr "salvagardar l’istoric actual" #: src/client/gpaste-client.c:168 msgid "switch to another history" msgstr "" #: src/client/gpaste-client.c:170 msgid "delete a history" msgstr "suprimir un istoric" #. Translators: help for gpaste list-histories #: src/client/gpaste-client.c:172 msgid "list available histories" msgstr "" #. Translators: help for gpaste add #: src/client/gpaste-client.c:174 msgid "text" msgstr "tèxt" #: src/client/gpaste-client.c:174 msgid "set text to clipboard" msgstr "" #: src/client/gpaste-client.c:176 msgid "password" msgstr "senhal" #: src/client/gpaste-client.c:176 msgid "add the name - password couple to the clipboard" msgstr "" #. Translators: help for gpaste rename-password #: src/client/gpaste-client.c:178 msgid "old name" msgstr "ancian nom" #: src/client/gpaste-client.c:178 msgid "new name" msgstr "nom novèl" #: src/client/gpaste-client.c:178 msgid "rename the password" msgstr "tornar nomenar lo senhal" #. Translators: help for gpaste get #: src/client/gpaste-client.c:180 msgid "get the item from the history" msgstr "" #. Translators: help for gpaste select #: src/client/gpaste-client.c:182 msgid "set the item from the history to the clipboard" msgstr "" #. Translators: help for gpaste replace #: src/client/gpaste-client.c:184 msgid "contents" msgstr "" #: src/client/gpaste-client.c:184 msgid "" "replace the contents of the item from the history with the provided " "one" msgstr "" #. Translators: help for gpaste merge #: src/client/gpaste-client.c:186 msgid "" "merge the items matching the UUIDs from the history and put the result in " "the clipboard" msgstr "" #: src/client/gpaste-client.c:188 msgid "set the item from the history as a password named " msgstr "" #. Translators: help for gpaste delete #: src/client/gpaste-client.c:190 msgid "delete item from the history" msgstr "" #: src/client/gpaste-client.c:192 msgid "delete the password from the history" msgstr "" #. Translators: help for gpaste file #: src/client/gpaste-client.c:194 msgid "path" msgstr "emplaçament" #: src/client/gpaste-client.c:194 msgid "put the content of the file at into the clipboard" msgstr "" #. Translators: help for whatever | gpaste #: src/client/gpaste-client.c:196 msgid "whatever" msgstr "" #: src/client/gpaste-client.c:196 msgid "set the output of whatever to clipboard" msgstr "" #. Translators: help for gpaste empty #: src/client/gpaste-client.c:198 msgid "empty the history" msgstr "" #. Translators: help for gpaste start #: src/client/gpaste-client.c:200 msgid "start tracking clipboard changes" msgstr "" #. Translators: help for gpaste stop #: src/client/gpaste-client.c:202 msgid "stop tracking clipboard changes" msgstr "" #. Translators: help for gpaste quit #: src/client/gpaste-client.c:204 msgid "alias for stop" msgstr "" #. Translators: help for gpaste daemon-reexec #: src/client/gpaste-client.c:206 msgid "reexecute the daemon (after upgrading...)" msgstr "" #. Translators: help for gpaste preferences #: src/client/gpaste-client.c:208 msgid "launch the configuration tool" msgstr "" #. Translators: help for gpaste ui #: src/client/gpaste-client.c:210 msgid "launch the graphical tool" msgstr "" #. Translators: help for gpaste show-history #: src/client/gpaste-client.c:212 msgid "make the applet or extension display the history" msgstr "" #. Translators: help for gpaste upload #: src/client/gpaste-client.c:214 msgid "upload the item to a pastebin service" msgstr "" #. Translators: help for gpaste version #: src/client/gpaste-client.c:216 msgid "display the version" msgstr "" #. Translators: help for gpaste daemon-version #: src/client/gpaste-client.c:218 msgid "display the daemon version" msgstr "" #. Translators: help for gpaste help #: src/client/gpaste-client.c:220 msgid "display this help" msgstr "" #. Translators: help for gpaste about #: src/client/gpaste-client.c:222 msgid "display the about dialog" msgstr "" #: src/client/gpaste-client.c:225 #, c-format msgid "Convenience options:" msgstr "" #. Translators: help for --use-index #: src/client/gpaste-client.c:228 msgid "use the index of the item instead of its UUID" msgstr "" #: src/client/gpaste-client.c:231 #, c-format msgid "Display options:" msgstr "Opcions d'afichatge :" #. Translators: help for --oneline #: src/client/gpaste-client.c:234 msgid "display each item on only one line" msgstr "" #. Translators: help for --raw #: src/client/gpaste-client.c:236 msgid "display each item raw (without line numbers)" msgstr "" #. Translators: help for --reverse #: src/client/gpaste-client.c:238 msgid "display the items in reverse order" msgstr "" #. Translators: help for --zero #: src/client/gpaste-client.c:240 msgid "use a NUL character instead of a new line betweean each item" msgstr "" #: src/client/gpaste-client.c:243 #, c-format msgid "Merge options:" msgstr "Opcions de fusion :" #. Translators: help for --decoration #. Translators: help for --separator #: src/client/gpaste-client.c:246 src/client/gpaste-client.c:248 msgid "string" msgstr "cadena" #: src/client/gpaste-client.c:246 msgid "" "add the given decoration to the beginning and the end of each item before " "merging" msgstr "" #: src/client/gpaste-client.c:248 msgid "add the given separator between each item when merging" msgstr "" #: src/client/gpaste-client.c:345 #, c-format msgid "Successfully reexecuted the daemon\n" msgstr "" #: src/client/gpaste-client.c:486 msgid "Cannot add non utf8 data as text." msgstr "" #: src/client/gpaste-client.c:796 src/ui/gpaste-ui-window.c:353 #: src/ui/gpaste-ui-window.c:354 msgid "Couldn't connect to GPaste daemon" msgstr "" #: src/daemon/gpaste-color-item.c:73 msgid "[Color]" msgstr "" #. Translators: strftime format for image timestamps. Rearrange to match your locale's date/time convention. #: src/daemon/gpaste-image-item.c:219 msgid "%m/%d/%y %T" msgstr "%d/%m/%y %T" #. Translators: Image item displayed in history. %d is width, %d is height, %s is the formatted date. #: src/daemon/gpaste-image-item.c:221 #, c-format msgid "[Image, %d x %d (%s)]" msgstr "[Image, %d x %d (%s)]" #: src/daemon/gpaste-make-password-keybinding.c:50 #, fuzzy msgid "Convert to Password" msgstr "tornar nomenar lo senhal" #. This is the prefix displayed in history to identify a password #: src/daemon/gpaste-password-item.c:65 msgid "Password" msgstr "Senhal" #: src/daemon/gpaste-pop-keybinding.c:64 #, fuzzy msgid "Pop from History" msgstr "Accès istoric" #: src/daemon/gpaste-show-history-keybinding.c:49 #, fuzzy msgid "Show History" msgstr "Accès istoric" #: src/daemon/gpaste-sync-clipboard-to-primary-keybinding.c:46 msgid "Sync Clipboard to Primary" msgstr "" #: src/daemon/gpaste-sync-primary-to-clipboard-keybinding.c:46 msgid "Sync Primary to Clipboard" msgstr "" #: src/daemon/gpaste-ui-keybinding.c:43 msgid "Launch UI" msgstr "" #: src/daemon/gpaste-upload-keybinding.c:64 msgid "Upload to Pastebin" msgstr "" #: src/daemon/gpaste-uris-item.c:87 msgid "[Files] " msgstr "[Files] " #: src/daemon/main.c:32 msgid "Stop signal received, exiting" msgstr "" #: src/daemon/main.c:69 msgid "Could not acquire DBus name." msgstr "" #: src/gnome-shell/dummyHistoryItem.js:12 msgid "(Couldn't connect to GPaste daemon)" msgstr "" #: src/gnome-shell/dummyHistoryItem.js:17 msgid "(Empty)" msgstr "(Void)" #: src/gnome-shell/dummyHistoryItem.js:22 msgid "(No result)" msgstr "" #: src/gnome-shell/emptyHistoryItem.js:14 msgid "Empty history" msgstr "Voidar l’istoric" #: src/gnome-shell/stateSwitch.js:12 msgid "Track changes" msgstr "Seguir las modificacions" #: src/gnome-shell/uiItem.js:14 msgid "Graphical tool" msgstr "" #: src/libgpaste/gpaste/gpaste-util.c:636 msgid "Could not create history dir" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-macros.h:38 msgid "Failed to register the gtk application" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:108 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:119 msgid "General behaviour" msgstr "Comportament general" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:121 #: src/ui/gpaste-ui-switch.c:93 msgid "Track clipboard changes" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:127 msgid "Close UI on select" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:133 msgid "Open the UI window centered" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:139 msgid "Save history" msgstr "Enregistrar l’istoric" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:150 msgid "Enable the gnome-shell extension" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:156 msgid "Sync the daemon state with the extension's one" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:162 msgid "" "When enabled, the daemon automatically starts or stops tracking clipboard " "changes to match the GNOME Shell extension's enabled state" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:166 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:174 msgid "Clipboards synchronization" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:168 msgid "Primary selection affects history" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:174 msgid "Synchronize clipboard with primary selection" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:181 msgid "Optional features" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:183 msgid "Trim items" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:189 msgid "Detect growing lines" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:195 msgid "" "When enabled, if a new clipboard entry starts with the previous one, the " "previous entry is replaced instead of creating a new one" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:92 msgid "History settings" msgstr "Paramètres de l’istoric" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:103 msgid "Resources limits" msgstr "Limits de ressorsas" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:120 msgid "Text limits" msgstr "Limits del tèxte" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:122 msgid "Min text item length" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:129 msgid "Max text item length" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:137 msgid "Display settings" msgstr "Paramètres d’afichatge" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:139 msgid "Max element size when displaying" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:81 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:92 #, fuzzy msgid "Images settings" msgstr "Paramètres GPaste" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:94 msgid "Images support" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:100 msgid "Image previews" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:106 msgid "Preview size" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:122 msgid "Keyboard shortcuts" msgstr "Acorchis clavièr" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:133 msgid "History access" msgstr "Accès istoric" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:150 msgid "Active element manipulation" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-util.c:51 #: src/ui/gpaste-ui-edit-item.c:84 src/ui/gpaste-ui-new-item.c:66 #: src/ui/gpaste-ui-panel.c:311 msgid "Cancel" msgstr "Anullar" #. Translators: %s is the name of the history being emptied. #: src/libgpaste/gpaste-gtk4/gpaste-gtk-util.c:126 #, c-format msgid "Do you really want to empty \"%s\"?" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-util.c:127 #: src/ui/gpaste-ui-history.c:153 src/ui/gpaste-ui-history.c:428 #: src/ui/gpaste-ui-panel.c:517 msgid "Empty" msgstr "Void" #: src/ui/gpaste-ui.c:47 msgid "Clipboard management system" msgstr "" #: src/ui/gpaste-ui-delete-item.c:46 src/ui/gpaste-ui-panel.c:358 #: src/ui/gpaste-ui-panel.c:518 msgid "Delete" msgstr "Suprimir" #: src/ui/gpaste-ui-edit-item.c:85 src/ui/gpaste-ui-edit-item.c:139 msgid "Edit" msgstr "Modificar" #: src/ui/gpaste-ui-history.c:266 msgid "No Results" msgstr "" #: src/ui/gpaste-ui-new-item.c:67 msgid "Add new item" msgstr "" #: src/ui/gpaste-ui-new-item.c:100 msgid "New item" msgstr "" #: src/ui/gpaste-ui-panel.c:307 msgid "Under which name do you want to backup this history?" msgstr "" #: src/ui/gpaste-ui-panel.c:311 src/ui/gpaste-ui-panel.c:516 msgid "Backup" msgstr "Salvagardas" #. Translators: %s is the name of the history being deleted. #: src/ui/gpaste-ui-panel.c:357 #, c-format msgid "Are you sure you want to delete \"%s\"?" msgstr "" #: src/ui/gpaste-ui-panel.c:441 #, fuzzy msgid "Switch to history" msgstr "Enregistrar l’istoric" #: src/ui/gpaste-ui-panel.c:448 msgid "Switch to" msgstr "" #: src/ui/gpaste-ui-reexec.c:45 msgid "Restart" msgstr "Reaviar" #: src/ui/gpaste-ui-reexec.c:45 msgid "Do you really want to restart the daemon?" msgstr "" #: src/ui/gpaste-ui-reexec.c:70 msgid "Restart the daemon" msgstr "" #: src/ui/gpaste-ui-search.c:23 msgid "Search" msgstr "Recercar" #: src/ui/gpaste-ui-settings.c:35 msgid "GPaste Settings" msgstr "Paramètres GPaste" #: src/ui/gpaste-ui-shortcuts-window.c:21 msgid "General" msgstr "General" #: src/ui/gpaste-ui-switch.c:68 msgid "Stop" msgstr "Arrestar" #: src/ui/gpaste-ui-switch.c:68 msgid "Do you really want to stop tracking clipboard changes?" msgstr "" #: src/ui/gpaste-ui-upload-item.c:46 msgid "Upload" msgstr "Enviar" #: src/ui/gpaste-ui-window.c:303 msgid "Quit" msgstr "" #: src/ui/gpaste-ui-window.c:380 #, fuzzy msgid "Histories" msgstr "Accès istoric" #: src/ui/gpaste-ui-window.c:381 #, fuzzy msgid "History" msgstr "Accès istoric" #~ msgid "is already running." #~ msgstr "es ja en execucion." #~ msgid "New" #~ msgstr "Novèl" Keruspe-GPaste-724def1/po/pl.po000066400000000000000000001517471521206431300163340ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Marc-Antoine Perennou # This file is distributed under the same license as the gpaste package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: gpaste 3.40.2\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-06-09 21:21+0200\n" "PO-Revision-Date: 2021-05-30 16:32+0000\n" "Last-Translator: F4 Developer \n" "Language-Team: Polish \n" "Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2;\n" "X-Generator: Weblate 4.7-dev\n" #: data/control-center/42-gpaste.control-center.xml.in:2 msgid "@GETTEXT_PACKAGE@" msgstr "@GETTEXT_PACKAGE@" #: data/control-center/42-gpaste.control-center.xml.in:3 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:136 #: src/ui/gpaste-ui-shortcuts-window.c:24 msgid "Launch the graphical tool" msgstr "Uruchom narzędzie graficzne" #: data/control-center/42-gpaste.control-center.xml.in:4 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:153 #: src/ui/gpaste-ui-shortcuts-window.c:25 msgid "Mark the active item as being a password" msgstr "Zaznacz aktywny element jako będący hasłem" #: data/control-center/42-gpaste.control-center.xml.in:5 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:167 #: src/ui/gpaste-ui-shortcuts-window.c:23 msgid "Delete the active item from history" msgstr "Usuń aktywny element z historii" #: data/control-center/42-gpaste.control-center.xml.in:6 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:143 #: src/ui/gpaste-ui-shortcuts-window.c:26 msgid "Display the history" msgstr "Pokaż historię" #: data/control-center/42-gpaste.control-center.xml.in:7 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:177 #: src/ui/gpaste-ui-shortcuts-window.c:27 msgid "Sync the clipboard to the primary selection" msgstr "Synchronizuj schowek do pierwszego zaznaczenia" #: data/control-center/42-gpaste.control-center.xml.in:8 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:184 #: src/ui/gpaste-ui-shortcuts-window.c:28 msgid "Sync the primary selection to the clipboard" msgstr "Synchronizuj pierwsze zaznaczenie do schowka" #: data/control-center/42-gpaste.control-center.xml.in:9 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:160 #: src/ui/gpaste-ui-shortcuts-window.c:29 msgid "Upload the active item to a pastebin service" msgstr "Wygraj aktywny element na pastebin" #: data/desktop/org.gnome.GPaste.Daemon.desktop.in.in:3 #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:3 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:6 msgid "GPaste" msgstr "GPaste" #: data/desktop/org.gnome.GPaste.Preferences.desktop.in.in:3 #, fuzzy msgid "GPaste Preferences" msgstr "Ustawienia GPaste" #: data/desktop/org.gnome.GPaste.Preferences.desktop.in.in:4 msgid "Manage your GPaste preferences" msgstr "" #: data/desktop/org.gnome.GPaste.Preferences.desktop.in.in:5 #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:6 msgid "Clipboard;Manager;Settings;Preferences;Configuration;" msgstr "Schowek;Menadżer;Ustawienia;Preferencje;Konfiguracja;" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:4 #, fuzzy msgid "Clipboard Manager" msgstr "Śledź zmiany schowka" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:5 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:7 msgid "Manage your clipboard history" msgstr "Zarządzaj historią swojego schowka" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:16 #, fuzzy msgid "Preferences" msgstr "Ustawienia GPaste" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:20 #: src/gnome-shell/aboutItem.js:13 src/ui/gpaste-ui-about.c:38 msgid "About" msgstr "O nas" #: data/gsettings/org.gnome.GPaste.gschema.xml:7 msgid "Max size of an element when displaying it" msgstr "Maksymalna długość elementu w trakcie wyświetlania" #: data/gsettings/org.gnome.GPaste.gschema.xml:8 msgid "" "The extra stuff of that element will be replaced by \"…\", and newlines by " "\" \" when displaying from the applet, 0 to disable." msgstr "" "Dodatkowe części tego elementu będą zastąpione przez \"…\", a nowe linie " "przez \" \" w trakcie wyświetlania z apletu, 0 aby wyłączyć." #: data/gsettings/org.gnome.GPaste.gschema.xml:15 #, fuzzy msgid "Do we detect and replace growing lines in history?" msgstr "Do we detect and replace growing lines in history?" #: data/gsettings/org.gnome.GPaste.gschema.xml:16 msgid "" "By default, selecting \"Here is\", then \"Here is an example\" will create " "two entries in the history. With this feature enabled, the first one will be " "replaced by the second one." msgstr "" "Domyślnie zaznaczanie \"Tutaj jest\", a potem \"Tutaj jest przykład\" " "stworzy dwa elementy w historii. Po włączeniu tej opcji, pierwszy zostanie " "zastąpiony przez drugi." #: data/gsettings/org.gnome.GPaste.gschema.xml:24 msgid "The name of the current history" msgstr "Nazwa aktualnej historii" #: data/gsettings/org.gnome.GPaste.gschema.xml:25 msgid "The default name is \"history\"" msgstr "Domyślną nazwa to \"historia\"" #: data/gsettings/org.gnome.GPaste.gschema.xml:32 msgid "Do we save the images copied to history, or only text?" msgstr "Zapisywać skopiowane obrazy, czy tylko tekst?" #: data/gsettings/org.gnome.GPaste.gschema.xml:33 msgid "By default, we're saving only text" msgstr "Domyślnie, zapisujemy tylko tekst" #: data/gsettings/org.gnome.GPaste.gschema.xml:40 msgid "Show image previews in the history?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:41 msgid "By default, we show previews of images in the history" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:49 msgid "Size of image previews in pixels" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:50 msgid "Default size is 100 pixels" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:57 msgid "Do we close the UI after selecting an item?" msgstr "Zamykać interfejs użytkownika po zaznaczeniu elementu?" #: data/gsettings/org.gnome.GPaste.gschema.xml:58 msgid "By default, we close it" msgstr "Domyślnie zamykamy" #: data/gsettings/org.gnome.GPaste.gschema.xml:65 msgid "Do we open the UI window centered?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:66 #, fuzzy msgid "By default, we open it where the mouse cursor is" msgstr "Domyślnie śledzimy te zmiany." #: data/gsettings/org.gnome.GPaste.gschema.xml:73 msgid "The keyboard shortcut to launch the graphical interface" msgstr "Skrót klawiszowy do uruchomienia interfejsu graficznego" #: data/gsettings/org.gnome.GPaste.gschema.xml:74 msgid "" "By default, hitting ctrl + alt + g does that (\"G\"). An empty " "string here disables this functionnality." msgstr "" "Domyślnie jest to wywołane przez ctrl + alt + g (\" G\"). Pusty " "ciąg w tym miejscu wyłącza tę funkcjonalność." #: data/gsettings/org.gnome.GPaste.gschema.xml:82 msgid "The keyboard shortcut to mark the active item as being a password" msgstr "" "Skrót klawiszowy do zaznaczenia aktywnego elementu jako będącego hasłem" #: data/gsettings/org.gnome.GPaste.gschema.xml:83 msgid "" "By default, hitting ctrl + alt + s will mark the active item as being a " "password (\"S\"). An empty string here disables this " "functionnality." msgstr "" "Domyślnie jest to wywołane przez ctrl + alt + s (\"S\"). Pusty " "ciąg w tym miejscu wyłącza tę funkcjonalność." #: data/gsettings/org.gnome.GPaste.gschema.xml:92 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:146 msgid "Max displayed history size" msgstr "Maksymalna wielkość wyświetlanej historii" #: data/gsettings/org.gnome.GPaste.gschema.xml:93 msgid "Maximum number of items displayed in the history" msgstr "Maksymalna ilość elementów wyświetlanych w historii" #: data/gsettings/org.gnome.GPaste.gschema.xml:101 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:105 msgid "Max history size" msgstr "Maksymalna wielkość historii" #: data/gsettings/org.gnome.GPaste.gschema.xml:102 msgid "Maximum number of items in history" msgstr "Maksymalna ilość elementów w historii" #: data/gsettings/org.gnome.GPaste.gschema.xml:110 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:112 msgid "Max memory usage (MB)" msgstr "Maksymalne zużycie pamięci (MB)" #: data/gsettings/org.gnome.GPaste.gschema.xml:111 msgid "Maximum amount of memory used to store contents" msgstr "Maksymalna ilość pamięci używanej do przechowywania zawartości" #: data/gsettings/org.gnome.GPaste.gschema.xml:119 msgid "Max text item size" msgstr "Maksymalna długość elementu tekstowego" #: data/gsettings/org.gnome.GPaste.gschema.xml:120 msgid "Maximum size of a text item. Anything out of this boundary is ignored." msgstr "" "Maksymalna długość elementu tekstowego. Wszystko co jest dłuższe, zostanie " "zignorowane." #: data/gsettings/org.gnome.GPaste.gschema.xml:128 msgid "Min text item size" msgstr "Minimalna długość elementu tekstowego" #: data/gsettings/org.gnome.GPaste.gschema.xml:129 msgid "Minimum size of a text item. Anything out of this boundary is ignored." msgstr "" "Minimalna długość elementu tekstowego. Wszystko, co jest krótsze, zostanie " "zignorowane." #: data/gsettings/org.gnome.GPaste.gschema.xml:136 msgid "The keyboard shortcut to delete the first element in history" msgstr "Skrót klawiszowy do usunięcia pierwszego elementu w historii" #: data/gsettings/org.gnome.GPaste.gschema.xml:137 msgid "" "By default, hitting ctrl + alt + v does that (\"V\"). An empty " "string here disables this functionnality." msgstr "" "Domyślnie jest to wywołane przez ctrl + alt + v (\" V\"). Pusty " "ciąg w tym miejscu wyłącza tę funkcjonalność." #: data/gsettings/org.gnome.GPaste.gschema.xml:145 msgid "Does the primary selection affects history?" msgstr "Czy pierwsze zaznaczenie ma wpływ na historię?" #: data/gsettings/org.gnome.GPaste.gschema.xml:146 msgid "By default, only clipboard (ctrl+c) affects history." msgstr "Domyślnie tylko kopiowanie (ctrl+c) ma wpływ na historię." #: data/gsettings/org.gnome.GPaste.gschema.xml:153 msgid "" "Do we save all versions of selected rich text (e.g. html) or just the plain " "text version?" msgstr "" "Zapisywać wszystkie wersje zaznaczonego bogatego tekstu (rich text, np. " "HTML), czy tylko zwykły tekst (plain text)?" #: data/gsettings/org.gnome.GPaste.gschema.xml:154 msgid "By default, we're saving all" msgstr "Domyślnie zapisujemy wszystkie" #: data/gsettings/org.gnome.GPaste.gschema.xml:161 msgid "Do we save the history from one session to another?" msgstr "Zapisywać historię pomiędzy sesjami?" #: data/gsettings/org.gnome.GPaste.gschema.xml:162 msgid "By default, we're saving it" msgstr "Domyślnie zapisujemy" #: data/gsettings/org.gnome.GPaste.gschema.xml:169 msgid "The keyboard shortcut to display the menu" msgstr "Skrót klawiszowy do wyświetlenia menu" #: data/gsettings/org.gnome.GPaste.gschema.xml:170 msgid "" "By default, hitting ctrl + alt + h displays the menu (\"H\"). An " "empty string here disables this functionnality." msgstr "" "Domyślnie jest to wywołane przez ctrl + alt + h (\" H\"). Pusty " "ciąg w tym miejscu wyłącza tę funkcjonalność." #: data/gsettings/org.gnome.GPaste.gschema.xml:178 msgid "The keyboard shortcut to sync the clipboard to the primary selection" msgstr "Skrót klawiszowy do synchronizacji schowka z pierwszym zaznaczeniem" #: data/gsettings/org.gnome.GPaste.gschema.xml:179 msgid "" "By default, hitting ctrl + alt + o syncs them (\"P\"). An empty " "string here disables this functionnality." msgstr "" "Domyślnie jest to wywołane przez ctrl + alt + o (\" O\"). Pusty " "ciąg w tym miejscu wyłącza tę funkcjonalność." #: data/gsettings/org.gnome.GPaste.gschema.xml:187 msgid "The keyboard shortcut to sync the primary selection to the clipboard" msgstr "Skrót klawiszowy do synchronizacji pierwszego zaznaczenia do schowka" #: data/gsettings/org.gnome.GPaste.gschema.xml:188 msgid "" "By default, hitting ctrl + alt + p syncs them (\"P\"). An empty " "string here disables this functionnality." msgstr "" "Domyślnie jest to wywołane przez ctrl + alt + p (\" P\"). Pusty " "ciąg w tym miejscu wyłącza tę funkcjonalność." #: data/gsettings/org.gnome.GPaste.gschema.xml:196 msgid "Are the primary selection and the clipboard synchronized?" msgstr "Czy pierwsze zaznaczenie i schowek są zsynchronizowane?" #: data/gsettings/org.gnome.GPaste.gschema.xml:197 msgid "By default, the primary selection and the clipboard are independent." msgstr "Domyślnie, pierwsze zaznaczenie i schowek są niezależne." #: data/gsettings/org.gnome.GPaste.gschema.xml:204 msgid "Do we track the clipboard changes?" msgstr "Czy śledzić zmiany w schowku?" #: data/gsettings/org.gnome.GPaste.gschema.xml:205 msgid "By default, we're tracking those changes." msgstr "Domyślnie śledzimy te zmiany." #: data/gsettings/org.gnome.GPaste.gschema.xml:212 msgid "" "Do we sync the daemon state with the gnome-shell extension's one? (disable " "the daemon when disabling the extension)" msgstr "" "Synchronizować status daemons z rozszerzeniem gnome-shella? (wyłącza daemona " "w momencie wyłączenia rozszerzenia)" #: data/gsettings/org.gnome.GPaste.gschema.xml:213 msgid "By default, the daemon state keeps unchanged" msgstr "Domyślnie status daemona nie jest zmieniany" #: data/gsettings/org.gnome.GPaste.gschema.xml:220 msgid "Do we trim the textual items before adding them to history?" msgstr "Czyścić elementy tekstowe przed dodawaniem ich do historii?" #: data/gsettings/org.gnome.GPaste.gschema.xml:221 msgid "" "Trimming means removing all trailing and ending spaces. By default, we're " "letting them as-is." msgstr "" "Czyszczenie oznacza usuwanie wszystkich spacji na początku i końcu tekstu. " "Domyślnie, zostawiamy je tak, jak są." #: data/gsettings/org.gnome.GPaste.gschema.xml:229 msgid "" "The keyboard shortcut to upload the first element in history to a pastebin " "service" msgstr "" "Skrót klawiszowy do wysyłania pierwszego elementu z historii na pastebin" #: data/gsettings/org.gnome.GPaste.gschema.xml:230 msgid "" "By default, hitting ctrl + alt + u does that (\"U\"). An empty " "string here disables this functionnality." msgstr "" "Domyślnie jest to wywołane przez ctrl + alt + u (\" U\"). Pusty " "ciąg w tym miejscu wyłącza tę funkcjonalność." #: data/gsettings/org.gnome.GPaste.gschema.xml:238 msgid "Do we prompt for confirmation when emptying a history?" msgstr "Pytać o potwierdzenie przy czyszczeniu historii?" #: data/gsettings/org.gnome.GPaste.gschema.xml:239 msgid "By default, we do as it's a destructive action" msgstr "Domyślnie robimy to, jako, że jest to akcja destruktywna" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:9 msgid "Marc-Antoine Perennou" msgstr "Marc-Antoine Perennou" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:17 msgid "" "GPaste is a clipboard managing system allowing you to track and manage your " "clipboard history in a highly customizable way." msgstr "" "GPaste jest systemem zarządzania schowkiem, pozwalającym na śledzenie i " "zarządzanie historią schowka w wysoko konfigurowalny sposób." #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:20 msgid "" "GPaste provides you with a graphical tool allowing you to manage everything " "easily." msgstr "" "GPaste zapewnia Ci narzędzie graficzne, które pozwala Ci wszystkim łatwo " "zarządzać." #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:27 msgid "The main UI" msgstr "Główny interfejs użytkownika" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:31 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:35 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:39 msgid "The settings UI" msgstr "Interfejs ustawień" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:51 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:78 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:90 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:100 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:120 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:133 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:143 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:152 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:161 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:180 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:197 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:205 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:213 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:231 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:239 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:247 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:255 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:263 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:287 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:295 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:303 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:311 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:319 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:327 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:335 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:343 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:352 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:361 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:379 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:387 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:395 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:403 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:421 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:429 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:438 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:447 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:456 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:464 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:485 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:493 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:501 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:509 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:517 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:533 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:541 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:549 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:557 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:573 msgid "This is a maintenance release. Changes:" msgstr "To wydanie konserwacyjne. Zmiany:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:53 msgid "Fix building without the GNOME Shell extension (-Dgnome-shell=false)" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:54 msgid "" "Restore GTK deprecation version-gating and drop the unused build-time gjs " "dependency" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:55 msgid "Target GNOME Shell 50 in the extension" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:56 msgid "Bump the library soversions to reflect the API/ABI changes since 45.8" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:62 msgid "" "This is a major release porting GPaste to GTK 4 and libadwaita. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:64 msgid "Port the daemon, history UI and preferences to GTK 4 and libadwaita" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:65 msgid "Show image thumbnails in the history, with configurable preview size" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:66 msgid "" "Support global keyboard shortcuts on Wayland through the XDG GlobalShortcuts " "portal" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:67 msgid "Recognise copied colours as dedicated colour items" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:68 msgid "" "Give keybindings human-readable descriptions and install a daemon desktop " "file" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:69 msgid "Fix images sometimes being repeatedly re-added to the history" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:70 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:81 msgid "" "Fix keyboard shortcuts not triggering when NumLock and CapsLock are both " "active" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:71 msgid "" "Fix several crashes (search provider, UI lifetime, GNOME Shell extension) " "and memory leaks" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:72 msgid "Modernise the GNOME Shell extension to current conventions" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:80 msgid "Fix use-after-free crash in the GNOME Shell search provider" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:82 msgid "" "Fix memory leaks when re-copying history items and when rebinding shortcuts" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:83 msgid "Fix potential crash when enforcing a very small history size" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:84 msgid "Build: ship the GSettings schema as a static file" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:92 msgid "" "GNOME Shell extension now retries the daemon connection before giving up" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:93 msgid "Fix test crash when GrabAccelerators is not allowed" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:94 msgid "Build: simplify gsettings compilation for tests" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:102 msgid "Fix GC crash and signal leak when disabling the GNOME Shell extension" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:103 msgid "GNOME Shell extension now handles daemon connection failure gracefully" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:104 msgid "Fix crash when a history item has no value yet" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:105 msgid "Fix image files not being deleted when history items are removed" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:106 msgid "Fix image files stored in wrong directory" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:107 msgid "Fix keyboard focus being stolen by history items on hover" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:108 msgid "" "Fix key events incorrectly forwarded to search when another entry has focus" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:109 msgid "Fix signal loop when updating shortcut entries from settings" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:110 msgid "Fix default history item count not reset after history deletion" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:111 msgid "Enforce minimum window size to prevent unresizable state" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:112 msgid "Add descriptive tooltips for settings entries" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:113 msgid "Build: explicitly link libgpaste libraries against libc" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:114 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:127 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:137 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:146 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:155 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:164 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:174 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:225 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:267 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:281 #, fuzzy msgid "Translations updates" msgstr "zaktualizowano tłumaczenia" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:122 msgid "" "Fix infinite Pango assertion loop that could fill disk when clipboard " "content contained tab characters" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:123 msgid "Various bug fixes and memory management improvements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:124 msgid "Daemon improvements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:125 msgid "GNOME Shell extension improvements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:126 msgid "GLib >= 2.76 is now required" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:135 #, fuzzy msgid "Support for gnome 50" msgstr "port na gnome-shell 40" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:136 #, fuzzy msgid "Support for gnome 49" msgstr "port na gnome-shell 40" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:145 #, fuzzy msgid "Support for gnome 48" msgstr "port na gnome-shell 40" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:154 #, fuzzy msgid "Support for gnome 47" msgstr "port na gnome-shell 40" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:163 #, fuzzy msgid "Support for gnome 46" msgstr "port na gnome-shell 40" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:170 #, fuzzy msgid "Stable release for GNOME 45. Changes:" msgstr "Pierwsze wydanie na GNOME 40. Zmiany:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:172 #, fuzzy msgid "Port to gnome 45" msgstr "port na gnome-shell 40" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:173 msgid "Add setting to open ui window centered" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:182 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:199 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:233 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:289 msgid "Fix a bug leading to history with only one item" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:188 #, fuzzy msgid "First release for GNOME 44. Changes:" msgstr "Pierwsze wydanie na GNOME 40. Zmiany:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:190 msgid "gcr 4 is now required" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:191 #, fuzzy msgid "Port to gnome 44" msgstr "port na gnome-shell 40" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:207 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:241 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:297 msgid "Avoid crash under heavy memory load" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:215 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:249 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:305 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:381 #, fuzzy msgid "Respect --use-index when displaying history" msgstr "Maksymalna wielkość elementu podczas wyświetlania" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:221 #, fuzzy msgid "First release for GNOME 43. Changes:" msgstr "Pierwsze wydanie na GNOME 40. Zmiany:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:223 msgid "Port to GNOME 43" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:224 msgid "Internal preparation for gtk4 port" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:257 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:313 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:389 msgid "Open GPaste UI where the mouse pointer is" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:265 msgid "Fixes to the new preferences tool" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:266 msgid "Style fixes" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:273 #, fuzzy msgid "First release for GNOME 42. Changes:" msgstr "Pierwsze wydanie na GNOME 40. Zmiany:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:275 msgid "" "Old libgpaste replaced by a new minimal libgpaste-2 with no gtk dependency" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:276 msgid "New libgpaste-gtk3 for utils and settings ui" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:277 msgid "New libgpaste-gtk4 for utils and preferences ui" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:278 msgid "New gtk4 based gpaste-preferences utility" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:279 msgid "Autotools are no longer supported" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:280 #, fuzzy msgid "Extension updated for gnome-shell 42" msgstr "Aktualizacja do gnome-shell 3.34.0" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:321 msgid "fix the storage path for meson builds" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:329 msgid "fix some race conditions in history handling" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:337 msgid "better fix crash when there is no history yet" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:345 msgid "fix crash when there is no history yet" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:346 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:355 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:364 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:373 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:397 #, fuzzy msgid "translations update" msgstr "zaktualizowano tłumaczenia" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:354 #, fuzzy msgid "fix gnome-shell exntesion when the daemon restarts" msgstr "poprawki kosmetyczne rozszerzenia dla gnome-shell" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:363 msgid "Fix keybindings for wayland" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:370 #, fuzzy msgid "First release for GNOME 41. Changes:" msgstr "Pierwsze wydanie na GNOME 40. Zmiany:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:372 #, fuzzy msgid "port to gnome-shell 41" msgstr "port na gnome-shell 40" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:405 msgid "fix a crash in memory usage checking" msgstr "naprawiono błąd w sprawdzeniu wykorzystania pamięci" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:412 msgid "First release for GNOME 40. Changes:" msgstr "Pierwsze wydanie na GNOME 40. Zmiany:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:414 msgid "port to gnome-shell 40" msgstr "port na gnome-shell 40" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:415 msgid "placeholder for gnome-shell prefs" msgstr "placeholder dla preferencji gnome-shell" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:423 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:487 msgid "fix X11 keybinder outside of GNOME" msgstr "poprawiono keybinder X11 poza GNOME" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:431 msgid "better handling and reporting of invalid uuids passed to gpaste-client" msgstr "" "lepsza obsługa i zgłaszanie nieprawidłowych unikalnych identyfikatorów " "przekazywanych do gpaste-client" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:432 msgid "" "gpaste-client now has a --use-index argument for several subcommands to use " "index instead of uuid" msgstr "" "gpaste-client obsługuje teraz argument --use-index dla użycia kilku " "subkomend zamiast unikalnego identyfikatora" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:440 msgid "fix the make-password keybinding" msgstr "poprawka dla skrótu klawiszowego \"stwórz hasło\"" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:441 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:450 msgid "updated translations" msgstr "zaktualizowano tłumaczenia" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:449 msgid "gnome-shell extension warning fixes" msgstr "poprawki w ostrzeżeniach rozszerzenia gnome-shell" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:458 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:495 msgid "gnome-shell extension cosmetic updates" msgstr "poprawki kosmetyczne rozszerzenia dla gnome-shell" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:466 msgid "Disable images support by default (can be reenabled in preferences)" msgstr "" "Domyślnie wyłącz wsparcie dla zdjęć (może zostać ponownie włączone w " "preferencjach)" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:467 msgid "Search now includes passwords (using their names)" msgstr "Wyszukiwanie uwzględnia teraz hasła (używając ich nazw)" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:468 msgid "systemd integration enhancements" msgstr "poprawki w integracji z systemd" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:474 msgid "First release for GNOME 3.38. Changes:" msgstr "Pierwsze wydanie dla GNOME 3.38. Zmiany:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:476 msgid "Drop the Tracking DBus signal" msgstr "Wyłącz śledzenie sygnału DBus" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:477 msgid "Switch to uuids to identify items" msgstr "Przełącz na unikalne identyfikatory do identyfikacji elementów" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:478 msgid "Bump DBus interface to org.gnome.GPaste2" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:479 msgid "Update to gnome-shell 3.38.0" msgstr "Zaktualizowano do gnome-shell 3.38.0" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:503 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:535 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:577 msgid "Fix activating items using Ctrl-Number in gnome-shell" msgstr "Naprawiono aktywowanie elementów używając Ctrl+numer w gnome-shell" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:511 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:543 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:576 #, fuzzy msgid "Fix keybinding regrab with gnome-shell" msgstr "Naprawiono regrab skrótów klawiszowych w gnome-shell" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:519 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:551 msgid "Fix keybinding grab with gnome-shell" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:525 msgid "First release for GNOME 3.36. Changes:" msgstr "Pierwsze wydanie na GNOME 3.36. Zmiany:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:527 msgid "Update to gnome-shell 3.36.0" msgstr "Aktualizacja do gnome-shell 3.36.0" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:559 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:575 msgid "Compatibility with recent appstream-glib" msgstr "Kompatybilność z ostatnim appstream-glib" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:565 msgid "First release for GNOME 3.34. Changes:" msgstr "Pierwsze wydanie dla GNOME 3.34. Zmiany:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:567 msgid "Update to gnome-shell 3.34.0" msgstr "Aktualizacja do gnome-shell 3.34.0" #: src/client/gpaste-client.c:146 msgid "Couldn't spawn" msgstr "Nie można było utworzyć" #: src/client/gpaste-client.c:158 #, c-format msgid "Usage:\n" msgstr "Użycie:\n" #. Translators: help for gpaste history #: src/client/gpaste-client.c:160 msgid "print the history with UUIDs" msgstr "wypisz historię z unikalnymi identyfikatorami" #. Translators: help for gpaste history-size #: src/client/gpaste-client.c:162 msgid "print the size of the history" msgstr "wypisz wielkość historii" #. Translators: help for gpaste get-history #: src/client/gpaste-client.c:164 msgid "get the name of the current history" msgstr "wyświetl nazwę aktywnej historii" #. Translators: help for gpaste backup-history #. Translators: help for gpaste switch-history #. Translators: help for gpaste delete-history #. Translators: help for gpaste add-password #. Translators: help for gpaste set-password #. Translators: help for gpaste delete-passworf #: src/client/gpaste-client.c:166 src/client/gpaste-client.c:168 #: src/client/gpaste-client.c:170 src/client/gpaste-client.c:176 #: src/client/gpaste-client.c:188 src/client/gpaste-client.c:192 msgid "name" msgstr "nazwa" #: src/client/gpaste-client.c:166 msgid "backup current history" msgstr "kopia zapasowa aktywnej historii" #: src/client/gpaste-client.c:168 msgid "switch to another history" msgstr "przełącz na inną historię" #: src/client/gpaste-client.c:170 msgid "delete a history" msgstr "usuń historię" #. Translators: help for gpaste list-histories #: src/client/gpaste-client.c:172 msgid "list available histories" msgstr "wypisz dostępne historie" #. Translators: help for gpaste add #: src/client/gpaste-client.c:174 msgid "text" msgstr "tekst" #: src/client/gpaste-client.c:174 msgid "set text to clipboard" msgstr "ustaw tekst do schowka" #: src/client/gpaste-client.c:176 msgid "password" msgstr "hasło" #: src/client/gpaste-client.c:176 msgid "add the name - password couple to the clipboard" msgstr "dodaj parę nazwa — hasło do schowka" #. Translators: help for gpaste rename-password #: src/client/gpaste-client.c:178 msgid "old name" msgstr "stara nazwa" #: src/client/gpaste-client.c:178 msgid "new name" msgstr "nowa nazwa" #: src/client/gpaste-client.c:178 msgid "rename the password" msgstr "zmień nazwę hasła" #. Translators: help for gpaste get #: src/client/gpaste-client.c:180 msgid "get the item from the history" msgstr "wybierz element z identyfikatorem z historii" #. Translators: help for gpaste select #: src/client/gpaste-client.c:182 msgid "set the item from the history to the clipboard" msgstr "ustaw element z identyfikatorem z historii do schowka" #. Translators: help for gpaste replace #: src/client/gpaste-client.c:184 msgid "contents" msgstr "zawartość" #: src/client/gpaste-client.c:184 msgid "" "replace the contents of the item from the history with the provided " "one" msgstr "" "zastąp zawartość elementu z identyfikatorem z historii tym podanym" #. Translators: help for gpaste merge #: src/client/gpaste-client.c:186 msgid "" "merge the items matching the UUIDs from the history and put the result in " "the clipboard" msgstr "" "połącz elementy z podanymi identyfikatorami z historii i wstaw rezultat do " "schowka" #: src/client/gpaste-client.c:188 msgid "set the item from the history as a password named " msgstr "" "ustaw element z identyfikatorem z historii jako hasło nazwane " #. Translators: help for gpaste delete #: src/client/gpaste-client.c:190 msgid "delete item from the history" msgstr "usuń element z identyfikatorem z historii" #: src/client/gpaste-client.c:192 msgid "delete the password from the history" msgstr "usuń hasło z identyfikatorem z historii" #. Translators: help for gpaste file #: src/client/gpaste-client.c:194 msgid "path" msgstr "ścieżka" #: src/client/gpaste-client.c:194 msgid "put the content of the file at into the clipboard" msgstr "wstaw zawartość pliku pod <ścieżka> do schowka" #. Translators: help for whatever | gpaste #: src/client/gpaste-client.c:196 msgid "whatever" msgstr "cokolwiek" #: src/client/gpaste-client.c:196 msgid "set the output of whatever to clipboard" msgstr "ustaw wyjście czegokolwiek do schowka" #. Translators: help for gpaste empty #: src/client/gpaste-client.c:198 msgid "empty the history" msgstr "opróżnij historię" #. Translators: help for gpaste start #: src/client/gpaste-client.c:200 msgid "start tracking clipboard changes" msgstr "zacznij śledzić zmiany w schowku" #. Translators: help for gpaste stop #: src/client/gpaste-client.c:202 msgid "stop tracking clipboard changes" msgstr "przestań śledzić zmiany w schowku" #. Translators: help for gpaste quit #: src/client/gpaste-client.c:204 msgid "alias for stop" msgstr "alias dla stop" #. Translators: help for gpaste daemon-reexec #: src/client/gpaste-client.c:206 msgid "reexecute the daemon (after upgrading...)" msgstr "uruchom ponownie dameona (po aktualizacji...)" #. Translators: help for gpaste preferences #: src/client/gpaste-client.c:208 msgid "launch the configuration tool" msgstr "uruchom narzędzie konfiguracyjne" #. Translators: help for gpaste ui #: src/client/gpaste-client.c:210 msgid "launch the graphical tool" msgstr "uruchom narzędzie graficzne" #. Translators: help for gpaste show-history #: src/client/gpaste-client.c:212 msgid "make the applet or extension display the history" msgstr "spraw, żeby aplet lub rozszerzenie pokazywało historię" #. Translators: help for gpaste upload #: src/client/gpaste-client.c:214 msgid "upload the item to a pastebin service" msgstr "wyślij element o identyfikatorze na pastebin" #. Translators: help for gpaste version #: src/client/gpaste-client.c:216 msgid "display the version" msgstr "wyświetl wersję" #. Translators: help for gpaste daemon-version #: src/client/gpaste-client.c:218 msgid "display the daemon version" msgstr "wyświetl wersję daemona" #. Translators: help for gpaste help #: src/client/gpaste-client.c:220 msgid "display this help" msgstr "wyświetl tę pomoc" #. Translators: help for gpaste about #: src/client/gpaste-client.c:222 msgid "display the about dialog" msgstr "wyświetl okienko \"o\"" #: src/client/gpaste-client.c:225 #, c-format msgid "Convenience options:" msgstr "" #. Translators: help for --use-index #: src/client/gpaste-client.c:228 msgid "use the index of the item instead of its UUID" msgstr "użyj indeksu elementu zamiast jego identyfikatora" #: src/client/gpaste-client.c:231 #, c-format msgid "Display options:" msgstr "Opcje wyświetlania:" #. Translators: help for --oneline #: src/client/gpaste-client.c:234 msgid "display each item on only one line" msgstr "wyświetlaj każdy element w jednej linii" #. Translators: help for --raw #: src/client/gpaste-client.c:236 msgid "display each item raw (without line numbers)" msgstr "wyświetlaj każdy element w surowej formie (bez numerów linii)" #. Translators: help for --reverse #: src/client/gpaste-client.c:238 msgid "display the items in reverse order" msgstr "wyświetlaj elementy w odwrotnej kolejności" #. Translators: help for --zero #: src/client/gpaste-client.c:240 msgid "use a NUL character instead of a new line betweean each item" msgstr "uzyskaj znaku NUL zamiast nowej linii pomiędzy elementami" #: src/client/gpaste-client.c:243 #, c-format msgid "Merge options:" msgstr "Ustawienia łączenia:" #. Translators: help for --decoration #. Translators: help for --separator #: src/client/gpaste-client.c:246 src/client/gpaste-client.c:248 msgid "string" msgstr "ciąg" #: src/client/gpaste-client.c:246 msgid "" "add the given decoration to the beginning and the end of each item before " "merging" msgstr "" "dodaj podaną dekorację na początek i na koniec każdego elementu przed " "łączeniem" #: src/client/gpaste-client.c:248 msgid "add the given separator between each item when merging" msgstr "dodaj podany separator pomiędzy elementami podczas łączenia" #: src/client/gpaste-client.c:345 #, c-format msgid "Successfully reexecuted the daemon\n" msgstr "Pomyślnie uruchomiono ponownie daemon\n" #: src/client/gpaste-client.c:486 msgid "Cannot add non utf8 data as text." msgstr "Nie można dodać zawartości w innym kodowaniu niż utf8 jako tekst." #: src/client/gpaste-client.c:796 src/ui/gpaste-ui-window.c:353 #: src/ui/gpaste-ui-window.c:354 msgid "Couldn't connect to GPaste daemon" msgstr "Nie można było połączyć się z daemonem GPaste" #: src/daemon/gpaste-color-item.c:73 msgid "[Color]" msgstr "" #. Translators: strftime format for image timestamps. Rearrange to match your locale's date/time convention. #: src/daemon/gpaste-image-item.c:219 msgid "%m/%d/%y %T" msgstr "%d/%m/%y %T" #. Translators: Image item displayed in history. %d is width, %d is height, %s is the formatted date. #: src/daemon/gpaste-image-item.c:221 #, c-format msgid "[Image, %d x %d (%s)]" msgstr "[Obraz, %d x %d (%s)]" #: src/daemon/gpaste-make-password-keybinding.c:50 #, fuzzy msgid "Convert to Password" msgstr "zmień nazwę hasła" #. This is the prefix displayed in history to identify a password #: src/daemon/gpaste-password-item.c:65 msgid "Password" msgstr "Hasło" #: src/daemon/gpaste-pop-keybinding.c:64 #, fuzzy msgid "Pop from History" msgstr "Ustawienia historii" #: src/daemon/gpaste-show-history-keybinding.c:49 #, fuzzy msgid "Show History" msgstr "Ustawienia historii" #: src/daemon/gpaste-sync-clipboard-to-primary-keybinding.c:46 #, fuzzy msgid "Sync Clipboard to Primary" msgstr "Synchronizuj schowek do pierwszego zaznaczenia" #: src/daemon/gpaste-sync-primary-to-clipboard-keybinding.c:46 #, fuzzy msgid "Sync Primary to Clipboard" msgstr "Synchronizuj pierwsze zaznaczenie do schowka" #: src/daemon/gpaste-ui-keybinding.c:43 msgid "Launch UI" msgstr "" #: src/daemon/gpaste-upload-keybinding.c:64 msgid "Upload to Pastebin" msgstr "" #: src/daemon/gpaste-uris-item.c:87 msgid "[Files] " msgstr "[Pliki] " #: src/daemon/main.c:32 msgid "Stop signal received, exiting" msgstr "Otrzymano sygnał stop, wychodzenie" #: src/daemon/main.c:69 msgid "Could not acquire DBus name." msgstr "Nie można było pobrać nazwy DBus." #: src/gnome-shell/dummyHistoryItem.js:12 msgid "(Couldn't connect to GPaste daemon)" msgstr "(Nie można było połączyć się z daemonem GPaste)" #: src/gnome-shell/dummyHistoryItem.js:17 msgid "(Empty)" msgstr "(Puste)" #: src/gnome-shell/dummyHistoryItem.js:22 msgid "(No result)" msgstr "(Brak wyników)" #: src/gnome-shell/emptyHistoryItem.js:14 #, fuzzy msgid "Empty history" msgstr "opróżnij historię" #: src/gnome-shell/stateSwitch.js:12 #, fuzzy msgid "Track changes" msgstr "Śledź zmiany schowka" #: src/gnome-shell/uiItem.js:14 #, fuzzy msgid "Graphical tool" msgstr "Uruchom narzędzie graficzne" #: src/libgpaste/gpaste/gpaste-util.c:636 msgid "Could not create history dir" msgstr "Nie można było stworzyć folderu historii" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-macros.h:38 msgid "Failed to register the gtk application" msgstr "Nie można było zarejestrować aplikacji gtk" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:108 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:119 msgid "General behaviour" msgstr "Generalne zachowanie" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:121 #: src/ui/gpaste-ui-switch.c:93 msgid "Track clipboard changes" msgstr "Śledź zmiany schowka" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:127 msgid "Close UI on select" msgstr "Zamknij interfejs po zaznaczeniu" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:133 msgid "Open the UI window centered" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:139 msgid "Save history" msgstr "Zapisz historię" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:150 msgid "Enable the gnome-shell extension" msgstr "Włącz rozszerzenie gnome-shell" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:156 msgid "Sync the daemon state with the extension's one" msgstr "Synchronizuj status daemona ze statusem rozszerzenia" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:162 msgid "" "When enabled, the daemon automatically starts or stops tracking clipboard " "changes to match the GNOME Shell extension's enabled state" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:166 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:174 msgid "Clipboards synchronization" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:168 msgid "Primary selection affects history" msgstr "Pierwsze zaznaczenie ma wpływ na historię" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:174 msgid "Synchronize clipboard with primary selection" msgstr "Synchronizuj schowek z pierwszym zaznaczeniem" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:181 msgid "Optional features" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:183 msgid "Trim items" msgstr "Czyść elementy" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:189 msgid "Detect growing lines" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:195 msgid "" "When enabled, if a new clipboard entry starts with the previous one, the " "previous entry is replaced instead of creating a new one" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:92 msgid "History settings" msgstr "Ustawienia historii" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:103 msgid "Resources limits" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:120 msgid "Text limits" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:122 msgid "Min text item length" msgstr "Minimalna długość elementu tekstowego" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:129 msgid "Max text item length" msgstr "Maksymalna długość elementu tekstowego" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:137 #, fuzzy msgid "Display settings" msgstr "Ustawienia historii" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:139 msgid "Max element size when displaying" msgstr "Maksymalna wielkość elementu podczas wyświetlania" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:81 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:92 #, fuzzy msgid "Images settings" msgstr "Interfejs ustawień" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:94 msgid "Images support" msgstr "Wsparcie dla obrazów" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:100 msgid "Image previews" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:106 msgid "Preview size" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:122 msgid "Keyboard shortcuts" msgstr "Skróty klawiszowe" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:133 #, fuzzy msgid "History access" msgstr "Ustawienia historii" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:150 msgid "Active element manipulation" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-util.c:51 #: src/ui/gpaste-ui-edit-item.c:84 src/ui/gpaste-ui-new-item.c:66 #: src/ui/gpaste-ui-panel.c:311 msgid "Cancel" msgstr "Anuluj" #. Translators: %s is the name of the history being emptied. #: src/libgpaste/gpaste-gtk4/gpaste-gtk-util.c:126 #, fuzzy, c-format msgid "Do you really want to empty \"%s\"?" msgstr "Czy na pewno chcesz wyczyścić historię?" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-util.c:127 #: src/ui/gpaste-ui-history.c:153 src/ui/gpaste-ui-history.c:428 #: src/ui/gpaste-ui-panel.c:517 msgid "Empty" msgstr "Wyczyść" #: src/ui/gpaste-ui.c:47 msgid "Clipboard management system" msgstr "" #: src/ui/gpaste-ui-delete-item.c:46 src/ui/gpaste-ui-panel.c:358 #: src/ui/gpaste-ui-panel.c:518 msgid "Delete" msgstr "Usuń" #: src/ui/gpaste-ui-edit-item.c:85 src/ui/gpaste-ui-edit-item.c:139 msgid "Edit" msgstr "Edytuj" #: src/ui/gpaste-ui-history.c:266 #, fuzzy msgid "No Results" msgstr "(Brak wyników)" #: src/ui/gpaste-ui-new-item.c:67 msgid "Add new item" msgstr "" #: src/ui/gpaste-ui-new-item.c:100 msgid "New item" msgstr "" #: src/ui/gpaste-ui-panel.c:307 msgid "Under which name do you want to backup this history?" msgstr "Pod jaką nazwą chcesz zrobić kopię zapasową tej historii?" #: src/ui/gpaste-ui-panel.c:311 src/ui/gpaste-ui-panel.c:516 msgid "Backup" msgstr "Kopia zapasowa" #. Translators: %s is the name of the history being deleted. #: src/ui/gpaste-ui-panel.c:357 #, fuzzy, c-format msgid "Are you sure you want to delete \"%s\"?" msgstr "Czy na pewno chcesz usunąć tę historię?" #: src/ui/gpaste-ui-panel.c:441 #, fuzzy msgid "Switch to history" msgstr "przełącz na inną historię" #: src/ui/gpaste-ui-panel.c:448 msgid "Switch to" msgstr "Przełącz na" #: src/ui/gpaste-ui-reexec.c:45 msgid "Restart" msgstr "Restart" #: src/ui/gpaste-ui-reexec.c:45 msgid "Do you really want to restart the daemon?" msgstr "Czy na pewno chcesz zrestartować daemona?" #: src/ui/gpaste-ui-reexec.c:70 msgid "Restart the daemon" msgstr "Zrestartuj daemona" #: src/ui/gpaste-ui-search.c:23 msgid "Search" msgstr "Wyszukaj" #: src/ui/gpaste-ui-settings.c:35 msgid "GPaste Settings" msgstr "Ustawienia GPaste" #: src/ui/gpaste-ui-shortcuts-window.c:21 msgid "General" msgstr "Generalne" #: src/ui/gpaste-ui-switch.c:68 msgid "Stop" msgstr "Stop" #: src/ui/gpaste-ui-switch.c:68 msgid "Do you really want to stop tracking clipboard changes?" msgstr "Na pewno chcesz przestać śledzić zmiany schowka?" #: src/ui/gpaste-ui-upload-item.c:46 msgid "Upload" msgstr "Wyślij" #: src/ui/gpaste-ui-window.c:303 msgid "Quit" msgstr "Wyjdź" #: src/ui/gpaste-ui-window.c:380 #, fuzzy msgid "Histories" msgstr "Ustawienia historii" #: src/ui/gpaste-ui-window.c:381 #, fuzzy msgid "History" msgstr "Ustawienia historii" #~ msgid "is already running." #~ msgstr "już jest uruchomiony." #~ msgid "New" #~ msgstr "Nowy" #~ msgid "Keyboard Shortcuts" #~ msgstr "Skróty klawiszowe" #~ msgid "About GPaste" #~ msgstr "O GPaste" Keruspe-GPaste-724def1/po/pt.po000066400000000000000000001525651521206431300163430ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the GPaste package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: GPaste\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-06-09 21:21+0200\n" "PO-Revision-Date: 2025-08-07 20:01+0000\n" "Last-Translator: ssantos \n" "Language-Team: Portuguese \n" "Language: pt\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: Weblate 5.13-dev\n" #: data/control-center/42-gpaste.control-center.xml.in:2 msgid "@GETTEXT_PACKAGE@" msgstr "@GETTEXT_PACKAGE@" #: data/control-center/42-gpaste.control-center.xml.in:3 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:136 #: src/ui/gpaste-ui-shortcuts-window.c:24 msgid "Launch the graphical tool" msgstr "Inicia a ferramenta gráfica" #: data/control-center/42-gpaste.control-center.xml.in:4 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:153 #: src/ui/gpaste-ui-shortcuts-window.c:25 msgid "Mark the active item as being a password" msgstr "Marca o elemento ativo como sendo uma palavra-passe" #: data/control-center/42-gpaste.control-center.xml.in:5 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:167 #: src/ui/gpaste-ui-shortcuts-window.c:23 msgid "Delete the active item from history" msgstr "Apaga o elemento ativo do histórico" #: data/control-center/42-gpaste.control-center.xml.in:6 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:143 #: src/ui/gpaste-ui-shortcuts-window.c:26 msgid "Display the history" msgstr "Mostra o histórico" #: data/control-center/42-gpaste.control-center.xml.in:7 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:177 #: src/ui/gpaste-ui-shortcuts-window.c:27 msgid "Sync the clipboard to the primary selection" msgstr "Sincroniza a área de transferência com a seleção primária" #: data/control-center/42-gpaste.control-center.xml.in:8 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:184 #: src/ui/gpaste-ui-shortcuts-window.c:28 msgid "Sync the primary selection to the clipboard" msgstr "Sincroniza a seleção primária com a área de transferência" #: data/control-center/42-gpaste.control-center.xml.in:9 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:160 #: src/ui/gpaste-ui-shortcuts-window.c:29 msgid "Upload the active item to a pastebin service" msgstr "Carrega o elemento ativo para um serviço de pastebin" #: data/desktop/org.gnome.GPaste.Daemon.desktop.in.in:3 #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:3 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:6 msgid "GPaste" msgstr "GPaste" #: data/desktop/org.gnome.GPaste.Preferences.desktop.in.in:3 msgid "GPaste Preferences" msgstr "" #: data/desktop/org.gnome.GPaste.Preferences.desktop.in.in:4 msgid "Manage your GPaste preferences" msgstr "" #: data/desktop/org.gnome.GPaste.Preferences.desktop.in.in:5 #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:6 msgid "Clipboard;Manager;Settings;Preferences;Configuration;" msgstr "" "Clipboard;Manager;Settings;Preferences;Configuration;Área de " "transferência;Gestor;Configurações;Preferências;" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:4 #, fuzzy msgid "Clipboard Manager" msgstr "Monitorar a área de transferência" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:5 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:7 msgid "Manage your clipboard history" msgstr "Gira o seu histórico da área de transferência" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:16 msgid "Preferences" msgstr "" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:20 #: src/gnome-shell/aboutItem.js:13 src/ui/gpaste-ui-about.c:38 msgid "About" msgstr "Sobre" #: data/gsettings/org.gnome.GPaste.gschema.xml:7 msgid "Max size of an element when displaying it" msgstr "Tamanho máximo de um elemento ao exibir" #: data/gsettings/org.gnome.GPaste.gschema.xml:8 msgid "" "The extra stuff of that element will be replaced by \"…\", and newlines by " "\" \" when displaying from the applet, 0 to disable." msgstr "" "O restante desse elemento será substituído por \"…\", e novas linhas por \" " "\" quando for exibido no applet, 0 para desativar." #: data/gsettings/org.gnome.GPaste.gschema.xml:15 msgid "Do we detect and replace growing lines in history?" msgstr "Detetar e substituir linhas crescentes no histórico?" #: data/gsettings/org.gnome.GPaste.gschema.xml:16 msgid "" "By default, selecting \"Here is\", then \"Here is an example\" will create " "two entries in the history. With this feature enabled, the first one will be " "replaced by the second one." msgstr "" "Por padrão, selecionando \"Aqui está\" e depois \"Aqui está um exemplo\" irá " "criar duas entradas no histórico. Com este recurso ativado, o primeiro será " "substituído pelo segundo." #: data/gsettings/org.gnome.GPaste.gschema.xml:24 msgid "The name of the current history" msgstr "O nome do histórico atual" #: data/gsettings/org.gnome.GPaste.gschema.xml:25 msgid "The default name is \"history\"" msgstr "O nome padrão é \"history\"" #: data/gsettings/org.gnome.GPaste.gschema.xml:32 msgid "Do we save the images copied to history, or only text?" msgstr "Gravar as imagens copiadas para o histórico ou somente o texto?" #: data/gsettings/org.gnome.GPaste.gschema.xml:33 msgid "By default, we're saving only text" msgstr "Por padrão, apenas texto é gravado" #: data/gsettings/org.gnome.GPaste.gschema.xml:40 msgid "Show image previews in the history?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:41 msgid "By default, we show previews of images in the history" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:49 msgid "Size of image previews in pixels" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:50 msgid "Default size is 100 pixels" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:57 msgid "Do we close the UI after selecting an item?" msgstr "Fechar a UI após selecionar um elemento?" #: data/gsettings/org.gnome.GPaste.gschema.xml:58 msgid "By default, we close it" msgstr "Por padrão, ela é fechada" #: data/gsettings/org.gnome.GPaste.gschema.xml:65 msgid "Do we open the UI window centered?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:66 msgid "By default, we open it where the mouse cursor is" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:73 msgid "The keyboard shortcut to launch the graphical interface" msgstr "O atalho do teclado para executar a interface gráfica" #: data/gsettings/org.gnome.GPaste.gschema.xml:74 msgid "" "By default, hitting ctrl + alt + g does that (\"G\"). An empty " "string here disables this functionnality." msgstr "" "Por padrão, a combinação de teclas ctrl + alt + g faz isto " "(\"G\"). Deixar vazio aqui desativa esta funcionalidade." #: data/gsettings/org.gnome.GPaste.gschema.xml:82 msgid "The keyboard shortcut to mark the active item as being a password" msgstr "" "O atalho do teclado para marcar o elemento ativo como sendo uma palavra-passe" #: data/gsettings/org.gnome.GPaste.gschema.xml:83 msgid "" "By default, hitting ctrl + alt + s will mark the active item as being a " "password (\"S\"). An empty string here disables this " "functionnality." msgstr "" "Por padrão, a combinação de teclas ctrl + alt + s vai marcar o elemento " "ativo como sendo uma palavra-passe (\"S\"). Deixar vazio aqui " "desativa esta funcionalidade." #: data/gsettings/org.gnome.GPaste.gschema.xml:92 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:146 msgid "Max displayed history size" msgstr "Tamanho máximo do histórico ao exibir" #: data/gsettings/org.gnome.GPaste.gschema.xml:93 msgid "Maximum number of items displayed in the history" msgstr "Número máximo de elementos exibidos no histórico" #: data/gsettings/org.gnome.GPaste.gschema.xml:101 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:105 msgid "Max history size" msgstr "Tamanho máximo do histórico" #: data/gsettings/org.gnome.GPaste.gschema.xml:102 msgid "Maximum number of items in history" msgstr "Número máximo de elementos no histórico" #: data/gsettings/org.gnome.GPaste.gschema.xml:110 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:112 msgid "Max memory usage (MB)" msgstr "Uso máximo de memória (MB)" #: data/gsettings/org.gnome.GPaste.gschema.xml:111 msgid "Maximum amount of memory used to store contents" msgstr "Quantidade máxima de memória utilizada para armazenamento" #: data/gsettings/org.gnome.GPaste.gschema.xml:119 msgid "Max text item size" msgstr "Tamanho máximo do elemento de texto" #: data/gsettings/org.gnome.GPaste.gschema.xml:120 msgid "Maximum size of a text item. Anything out of this boundary is ignored." msgstr "" "Tamanho máximo de um elemento de texto. Qualquer coisa fora desse limite é " "ignorado." #: data/gsettings/org.gnome.GPaste.gschema.xml:128 msgid "Min text item size" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:129 msgid "Minimum size of a text item. Anything out of this boundary is ignored." msgstr "" "Tamanho mínimo de um elemento de texto. Qualquer coisa fora desse limite é " "ignorado." #: data/gsettings/org.gnome.GPaste.gschema.xml:136 msgid "The keyboard shortcut to delete the first element in history" msgstr "O atalho do teclado para apagar o primeiro elemento no histórico" #: data/gsettings/org.gnome.GPaste.gschema.xml:137 msgid "" "By default, hitting ctrl + alt + v does that (\"V\"). An empty " "string here disables this functionnality." msgstr "" "Por padrão, a combinação de teclas ctrl + alt + v faz isto " "(\"V\"). Deixar vazio aqui desativa esta funcionalidade." #: data/gsettings/org.gnome.GPaste.gschema.xml:145 msgid "Does the primary selection affects history?" msgstr "Seleção primária afeta o histórico?" #: data/gsettings/org.gnome.GPaste.gschema.xml:146 msgid "By default, only clipboard (ctrl+c) affects history." msgstr "" "Por padrão, somente a área de transferência (ctrl+c) afeta o histórico." #: data/gsettings/org.gnome.GPaste.gschema.xml:153 msgid "" "Do we save all versions of selected rich text (e.g. html) or just the plain " "text version?" msgstr "" "Gravamos todas as versões do texto rico selecionado (por exemplo, html) ou " "apenas a versão em texto simples?" #: data/gsettings/org.gnome.GPaste.gschema.xml:154 msgid "By default, we're saving all" msgstr "Por padrão, tudo é gravado" #: data/gsettings/org.gnome.GPaste.gschema.xml:161 msgid "Do we save the history from one session to another?" msgstr "Gravar o histórico entre uma sessão e outra?" #: data/gsettings/org.gnome.GPaste.gschema.xml:162 msgid "By default, we're saving it" msgstr "Por padrão, é gravado" #: data/gsettings/org.gnome.GPaste.gschema.xml:169 msgid "The keyboard shortcut to display the menu" msgstr "O atalho do teclado para exibir o menu" #: data/gsettings/org.gnome.GPaste.gschema.xml:170 msgid "" "By default, hitting ctrl + alt + h displays the menu (\"H\"). An " "empty string here disables this functionnality." msgstr "" "Por padrão, a combinação de teclas ctrl + alt + h exibe o menu " "(\"H\"). Deixar vazio aqui desativa esta funcionalidade." #: data/gsettings/org.gnome.GPaste.gschema.xml:178 msgid "The keyboard shortcut to sync the clipboard to the primary selection" msgstr "" "Atalho do teclado para sincronizar a área de transferência com a seleção " "primária" #: data/gsettings/org.gnome.GPaste.gschema.xml:179 msgid "" "By default, hitting ctrl + alt + o syncs them (\"P\"). An empty " "string here disables this functionnality." msgstr "" "Por padrão, teclando ctrl + alt + o faz a sincronização (\"P\"). " "Deixar vazio aqui desativa esta funcionalidade." #: data/gsettings/org.gnome.GPaste.gschema.xml:187 msgid "The keyboard shortcut to sync the primary selection to the clipboard" msgstr "" "Atalho do teclado para sincronizar a seleção primária com a área de " "transferência" #: data/gsettings/org.gnome.GPaste.gschema.xml:188 msgid "" "By default, hitting ctrl + alt + p syncs them (\"P\"). An empty " "string here disables this functionnality." msgstr "" "Por padrão, teclando ctrl + alt + p faz a sincronização (\"P\"). " "Deixar vazio aqui desativa esta funcionalidade." #: data/gsettings/org.gnome.GPaste.gschema.xml:196 msgid "Are the primary selection and the clipboard synchronized?" msgstr "Seleção primária e a área de transferência estão sincronizadas?" #: data/gsettings/org.gnome.GPaste.gschema.xml:197 msgid "By default, the primary selection and the clipboard are independent." msgstr "" "Por padrão, seleção primária e área de transferência são independentes." #: data/gsettings/org.gnome.GPaste.gschema.xml:204 msgid "Do we track the clipboard changes?" msgstr "Monitorar as alterações na área de transferência?" #: data/gsettings/org.gnome.GPaste.gschema.xml:205 msgid "By default, we're tracking those changes." msgstr "Por padrão, essas alterações são monitoradas." #: data/gsettings/org.gnome.GPaste.gschema.xml:212 msgid "" "Do we sync the daemon state with the gnome-shell extension's one? (disable " "the daemon when disabling the extension)" msgstr "" "Sincronizar o estado do daemon com a extensão do gnome-shell? (desativar o " "daemon quando desativar a extensão)" #: data/gsettings/org.gnome.GPaste.gschema.xml:213 msgid "By default, the daemon state keeps unchanged" msgstr "Por padrão, o estado do daemon mantém-se inalterado" #: data/gsettings/org.gnome.GPaste.gschema.xml:220 msgid "Do we trim the textual items before adding them to history?" msgstr "Aparar elementos textuais antes de adicioná-los ao histórico?" #: data/gsettings/org.gnome.GPaste.gschema.xml:221 msgid "" "Trimming means removing all trailing and ending spaces. By default, we're " "letting them as-is." msgstr "" "Aparar significa que espaços em branco antes e depois do texto serão " "removidos. Por padrão, é deixado como está." #: data/gsettings/org.gnome.GPaste.gschema.xml:229 msgid "" "The keyboard shortcut to upload the first element in history to a pastebin " "service" msgstr "" "O atalho do teclado para carregar o primeiro elemento do histórico para um " "serviço de pastebin" #: data/gsettings/org.gnome.GPaste.gschema.xml:230 msgid "" "By default, hitting ctrl + alt + u does that (\"U\"). An empty " "string here disables this functionnality." msgstr "" "Por padrão, a combinação de teclas ctrl + alt + u faz isto " "(\"U\"). Deixar vazio aqui desativa esta funcionalidade." #: data/gsettings/org.gnome.GPaste.gschema.xml:238 msgid "Do we prompt for confirmation when emptying a history?" msgstr "Solicitamos confirmação ao esvaziar um histórico?" #: data/gsettings/org.gnome.GPaste.gschema.xml:239 msgid "By default, we do as it's a destructive action" msgstr "Por padrão, é feito por ser uma ação destrutiva" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:9 msgid "Marc-Antoine Perennou" msgstr "Marc-Antoine Perennou" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:17 msgid "" "GPaste is a clipboard managing system allowing you to track and manage your " "clipboard history in a highly customizable way." msgstr "" "O GPaste é um sistema de gestão de área de transferência que permite " "controlar e gerir o seu histórico de uma maneira altamente personalizável." #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:20 msgid "" "GPaste provides you with a graphical tool allowing you to manage everything " "easily." msgstr "" "O GPaste fornece uma ferramenta gráfica que permite gerir tudo facilmente." #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:27 msgid "The main UI" msgstr "A UI principal" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:31 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:35 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:39 msgid "The settings UI" msgstr "A UI de configurações" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:51 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:78 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:90 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:100 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:120 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:133 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:143 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:152 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:161 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:180 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:197 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:205 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:213 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:231 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:239 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:247 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:255 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:263 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:287 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:295 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:303 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:311 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:319 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:327 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:335 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:343 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:352 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:361 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:379 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:387 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:395 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:403 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:421 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:429 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:438 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:447 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:456 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:464 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:485 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:493 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:501 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:509 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:517 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:533 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:541 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:549 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:557 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:573 msgid "This is a maintenance release. Changes:" msgstr "Este é um lançamento de manutenção. Alterações:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:53 msgid "Fix building without the GNOME Shell extension (-Dgnome-shell=false)" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:54 msgid "" "Restore GTK deprecation version-gating and drop the unused build-time gjs " "dependency" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:55 msgid "Target GNOME Shell 50 in the extension" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:56 msgid "Bump the library soversions to reflect the API/ABI changes since 45.8" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:62 msgid "" "This is a major release porting GPaste to GTK 4 and libadwaita. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:64 msgid "Port the daemon, history UI and preferences to GTK 4 and libadwaita" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:65 msgid "Show image thumbnails in the history, with configurable preview size" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:66 msgid "" "Support global keyboard shortcuts on Wayland through the XDG GlobalShortcuts " "portal" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:67 msgid "Recognise copied colours as dedicated colour items" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:68 msgid "" "Give keybindings human-readable descriptions and install a daemon desktop " "file" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:69 msgid "Fix images sometimes being repeatedly re-added to the history" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:70 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:81 msgid "" "Fix keyboard shortcuts not triggering when NumLock and CapsLock are both " "active" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:71 msgid "" "Fix several crashes (search provider, UI lifetime, GNOME Shell extension) " "and memory leaks" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:72 msgid "Modernise the GNOME Shell extension to current conventions" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:80 msgid "Fix use-after-free crash in the GNOME Shell search provider" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:82 msgid "" "Fix memory leaks when re-copying history items and when rebinding shortcuts" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:83 msgid "Fix potential crash when enforcing a very small history size" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:84 msgid "Build: ship the GSettings schema as a static file" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:92 msgid "" "GNOME Shell extension now retries the daemon connection before giving up" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:93 msgid "Fix test crash when GrabAccelerators is not allowed" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:94 msgid "Build: simplify gsettings compilation for tests" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:102 msgid "Fix GC crash and signal leak when disabling the GNOME Shell extension" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:103 msgid "GNOME Shell extension now handles daemon connection failure gracefully" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:104 msgid "Fix crash when a history item has no value yet" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:105 msgid "Fix image files not being deleted when history items are removed" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:106 msgid "Fix image files stored in wrong directory" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:107 #, fuzzy msgid "Fix keyboard focus being stolen by history items on hover" msgstr "Corrigir um erro levando a história com apenas um elemento" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:108 msgid "" "Fix key events incorrectly forwarded to search when another entry has focus" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:109 msgid "Fix signal loop when updating shortcut entries from settings" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:110 msgid "Fix default history item count not reset after history deletion" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:111 msgid "Enforce minimum window size to prevent unresizable state" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:112 msgid "Add descriptive tooltips for settings entries" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:113 msgid "Build: explicitly link libgpaste libraries against libc" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:114 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:127 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:137 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:146 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:155 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:164 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:174 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:225 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:267 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:281 msgid "Translations updates" msgstr "Atualizações de tradução" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:122 msgid "" "Fix infinite Pango assertion loop that could fill disk when clipboard " "content contained tab characters" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:123 msgid "Various bug fixes and memory management improvements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:124 msgid "Daemon improvements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:125 msgid "GNOME Shell extension improvements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:126 #, fuzzy msgid "GLib >= 2.76 is now required" msgstr "gcr 4 é necessário agora" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:135 #, fuzzy msgid "Support for gnome 50" msgstr "Apoio para Gnome 48" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:136 #, fuzzy msgid "Support for gnome 49" msgstr "Apoio para Gnome 48" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:145 msgid "Support for gnome 48" msgstr "Apoio para Gnome 48" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:154 msgid "Support for gnome 47" msgstr "Apoio para gnome 47" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:163 msgid "Support for gnome 46" msgstr "Apoio para gnome 46" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:170 msgid "Stable release for GNOME 45. Changes:" msgstr "Lançamento estável para o GNOME 45. Alterações:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:172 msgid "Port to gnome 45" msgstr "Migrado para gnome 45" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:173 msgid "Add setting to open ui window centered" msgstr "" "Adiciona configuração para abrir a janela de interface de utilizador " "centralizada" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:182 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:199 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:233 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:289 msgid "Fix a bug leading to history with only one item" msgstr "Corrigir um erro levando a história com apenas um elemento" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:188 msgid "First release for GNOME 44. Changes:" msgstr "Primeiro lançamento para GNOME 44. Mudanças:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:190 msgid "gcr 4 is now required" msgstr "gcr 4 é necessário agora" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:191 #, fuzzy msgid "Port to gnome 44" msgstr "Portagen para o Gnome 44" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:207 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:241 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:297 #, fuzzy msgid "Avoid crash under heavy memory load" msgstr "Evitar travar sob carga pesade de memória" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:215 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:249 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:305 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:381 msgid "Respect --use-index when displaying history" msgstr "Respeitar --use-index ao exibir o histórico" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:221 msgid "First release for GNOME 43. Changes:" msgstr "Primeiro lançamento para GNOME 43. Mudanças:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:223 msgid "Port to GNOME 43" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:224 msgid "Internal preparation for gtk4 port" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:257 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:313 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:389 msgid "Open GPaste UI where the mouse pointer is" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:265 msgid "Fixes to the new preferences tool" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:266 msgid "Style fixes" msgstr "Correções de estilo" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:273 msgid "First release for GNOME 42. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:275 msgid "" "Old libgpaste replaced by a new minimal libgpaste-2 with no gtk dependency" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:276 msgid "New libgpaste-gtk3 for utils and settings ui" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:277 msgid "New libgpaste-gtk4 for utils and preferences ui" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:278 msgid "New gtk4 based gpaste-preferences utility" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:279 msgid "Autotools are no longer supported" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:280 msgid "Extension updated for gnome-shell 42" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:321 msgid "fix the storage path for meson builds" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:329 msgid "fix some race conditions in history handling" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:337 msgid "better fix crash when there is no history yet" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:345 msgid "fix crash when there is no history yet" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:346 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:355 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:364 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:373 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:397 msgid "translations update" msgstr "atualização de traduções" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:354 msgid "fix gnome-shell exntesion when the daemon restarts" msgstr "corrige a extensão do gnome-shell quando o daemon é reiniciado" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:363 msgid "Fix keybindings for wayland" msgstr "Corrige associações de teclas para o wayland" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:370 msgid "First release for GNOME 41. Changes:" msgstr "Primeiro lançamento para o GNOME 41. Alterações:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:372 msgid "port to gnome-shell 41" msgstr "port para gnome-shell 41" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:405 msgid "fix a crash in memory usage checking" msgstr "corrige uma falha na verificação do uso de memória" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:412 msgid "First release for GNOME 40. Changes:" msgstr "Primeiro lançamento para o GNOME 40. Alterações:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:414 msgid "port to gnome-shell 40" msgstr "port para gnome-shell 40" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:415 msgid "placeholder for gnome-shell prefs" msgstr "espaço reservado para preferências do gnome-shell" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:423 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:487 msgid "fix X11 keybinder outside of GNOME" msgstr "corrige associação de teclas X11 fora do GNOME" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:431 msgid "better handling and reporting of invalid uuids passed to gpaste-client" msgstr "" "melhor tratamento e relatório de uuids inválidos passados para gpaste-client" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:432 msgid "" "gpaste-client now has a --use-index argument for several subcommands to use " "index instead of uuid" msgstr "" "gpaste-client agora tem um argumento --use-index para vários subcomandos " "para usar index em vez de uuid" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:440 msgid "fix the make-password keybinding" msgstr "corrige a associação de teclas do make-password" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:441 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:450 msgid "updated translations" msgstr "traduções atualizadas" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:449 msgid "gnome-shell extension warning fixes" msgstr "correções de aviso de extensão do gnome-shell" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:458 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:495 msgid "gnome-shell extension cosmetic updates" msgstr "atualizações cosméticas de extensão do gnome-shell" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:466 msgid "Disable images support by default (can be reenabled in preferences)" msgstr "" "Desativa apoio a imagens por padrão (pode ser reabilitado nas preferências)" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:467 msgid "Search now includes passwords (using their names)" msgstr "A pesquisa agora inclui palavras-passe (usando os seus nomes)" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:468 msgid "systemd integration enhancements" msgstr "melhorias de integração systemd" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:474 msgid "First release for GNOME 3.38. Changes:" msgstr "Primeiro lançamento para GNOME 3.38. Alterações:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:476 msgid "Drop the Tracking DBus signal" msgstr "Descara o sinal Tracking DBus" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:477 msgid "Switch to uuids to identify items" msgstr "Alterna para uuids para identificar elementos" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:478 msgid "Bump DBus interface to org.gnome.GPaste2" msgstr "Incrementa a interface DBus para org.gnome.GPaste2" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:479 msgid "Update to gnome-shell 3.38.0" msgstr "Atualiza para o gnome-shell 3.38.0" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:503 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:535 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:577 msgid "Fix activating items using Ctrl-Number in gnome-shell" msgstr "Corrige elementos de ativação usando Ctrl-Número no gnome-shell" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:511 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:543 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:576 msgid "Fix keybinding regrab with gnome-shell" msgstr "Corrige nova captura de associação de teclas com gnome-shell" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:519 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:551 msgid "Fix keybinding grab with gnome-shell" msgstr "Corrige captura de associação de teclas com gnome-shell" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:525 msgid "First release for GNOME 3.36. Changes:" msgstr "Primeiro lançamento para o GNOME 3.36. Alterações:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:527 msgid "Update to gnome-shell 3.36.0" msgstr "Atualização para o gnome-shell 3.36.0" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:559 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:575 msgid "Compatibility with recent appstream-glib" msgstr "Compatibilidade com appstream-glib recente" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:565 msgid "First release for GNOME 3.34. Changes:" msgstr "Primeiro lançamento para o GNOME 3.34. Alterações:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:567 msgid "Update to gnome-shell 3.34.0" msgstr "Atualização para o gnome-shell 3.34.0" #: src/client/gpaste-client.c:146 msgid "Couldn't spawn" msgstr "Não foi possível executar" #: src/client/gpaste-client.c:158 #, c-format msgid "Usage:\n" msgstr "Uso:\n" #. Translators: help for gpaste history #: src/client/gpaste-client.c:160 msgid "print the history with UUIDs" msgstr "imprime o histórico com os UUIDs" #. Translators: help for gpaste history-size #: src/client/gpaste-client.c:162 msgid "print the size of the history" msgstr "imprime o tamanho do histórico" #. Translators: help for gpaste get-history #: src/client/gpaste-client.c:164 msgid "get the name of the current history" msgstr "obtém o nome do histórico atual" #. Translators: help for gpaste backup-history #. Translators: help for gpaste switch-history #. Translators: help for gpaste delete-history #. Translators: help for gpaste add-password #. Translators: help for gpaste set-password #. Translators: help for gpaste delete-passworf #: src/client/gpaste-client.c:166 src/client/gpaste-client.c:168 #: src/client/gpaste-client.c:170 src/client/gpaste-client.c:176 #: src/client/gpaste-client.c:188 src/client/gpaste-client.c:192 msgid "name" msgstr "nome" #: src/client/gpaste-client.c:166 msgid "backup current history" msgstr "faz um backup do histórico atual" #: src/client/gpaste-client.c:168 msgid "switch to another history" msgstr "alterna para um outro histórico" #: src/client/gpaste-client.c:170 msgid "delete a history" msgstr "apaga um histórico" #. Translators: help for gpaste list-histories #: src/client/gpaste-client.c:172 msgid "list available histories" msgstr "lista os históricos disponíveis" #. Translators: help for gpaste add #: src/client/gpaste-client.c:174 msgid "text" msgstr "texto" #: src/client/gpaste-client.c:174 msgid "set text to clipboard" msgstr "copia texto para a área de transferência" #: src/client/gpaste-client.c:176 msgid "password" msgstr "palavra-passe" #: src/client/gpaste-client.c:176 msgid "add the name - password couple to the clipboard" msgstr "adiciona o par nome - palavra-passe para a área de transferência" #. Translators: help for gpaste rename-password #: src/client/gpaste-client.c:178 msgid "old name" msgstr "nome anterior" #: src/client/gpaste-client.c:178 msgid "new name" msgstr "novo nome" #: src/client/gpaste-client.c:178 msgid "rename the password" msgstr "define um nome novo para a palavra-passe" #. Translators: help for gpaste get #: src/client/gpaste-client.c:180 msgid "get the item from the history" msgstr "obtém o elemento do histórico" #. Translators: help for gpaste select #: src/client/gpaste-client.c:182 msgid "set the item from the history to the clipboard" msgstr "define o elemento do histórico para a área de transferência" #. Translators: help for gpaste replace #: src/client/gpaste-client.c:184 msgid "contents" msgstr "conteúdo" #: src/client/gpaste-client.c:184 msgid "" "replace the contents of the item from the history with the provided " "one" msgstr "" "substitui o conteúdo do elemento do histórico com aquele fornecido" #. Translators: help for gpaste merge #: src/client/gpaste-client.c:186 msgid "" "merge the items matching the UUIDs from the history and put the result in " "the clipboard" msgstr "" "mescla os elementos correspondendo os UUIDs do histórico e põe o resultado " "na área de transferência" #: src/client/gpaste-client.c:188 msgid "set the item from the history as a password named " msgstr "" "define o elemento do histórico como uma palavra-passe chamada " #. Translators: help for gpaste delete #: src/client/gpaste-client.c:190 msgid "delete item from the history" msgstr "apaga o elemento do histórico" #: src/client/gpaste-client.c:192 msgid "delete the password from the history" msgstr "apaga a palavra-passe do histórico" #. Translators: help for gpaste file #: src/client/gpaste-client.c:194 msgid "path" msgstr "caminho" #: src/client/gpaste-client.c:194 msgid "put the content of the file at into the clipboard" msgstr "põe o conteúdo do ficheiro em na área de transferência" #. Translators: help for whatever | gpaste #: src/client/gpaste-client.c:196 msgid "whatever" msgstr "" #: src/client/gpaste-client.c:196 msgid "set the output of whatever to clipboard" msgstr "" #. Translators: help for gpaste empty #: src/client/gpaste-client.c:198 msgid "empty the history" msgstr "esvazia o histórico" #. Translators: help for gpaste start #: src/client/gpaste-client.c:200 msgid "start tracking clipboard changes" msgstr "inicia o monitoramento de alterações na área de transferência" #. Translators: help for gpaste stop #: src/client/gpaste-client.c:202 msgid "stop tracking clipboard changes" msgstr "pára o monitoramento de alterações na área de transferência" #. Translators: help for gpaste quit #: src/client/gpaste-client.c:204 msgid "alias for stop" msgstr "apelido para stop" #. Translators: help for gpaste daemon-reexec #: src/client/gpaste-client.c:206 msgid "reexecute the daemon (after upgrading...)" msgstr "reinicia o daemon (depois de uma atualização...)" #. Translators: help for gpaste preferences #: src/client/gpaste-client.c:208 msgid "launch the configuration tool" msgstr "inicia a ferramenta de configuração" #. Translators: help for gpaste ui #: src/client/gpaste-client.c:210 msgid "launch the graphical tool" msgstr "inicia a ferramenta gráfica" #. Translators: help for gpaste show-history #: src/client/gpaste-client.c:212 msgid "make the applet or extension display the history" msgstr "faz o applet ou a extensão exibir o histórico" #. Translators: help for gpaste upload #: src/client/gpaste-client.c:214 msgid "upload the item to a pastebin service" msgstr "envia o elemento para um serviço de pastebin" #. Translators: help for gpaste version #: src/client/gpaste-client.c:216 msgid "display the version" msgstr "mostra a versão" #. Translators: help for gpaste daemon-version #: src/client/gpaste-client.c:218 msgid "display the daemon version" msgstr "mostra a versão do daemon" #. Translators: help for gpaste help #: src/client/gpaste-client.c:220 msgid "display this help" msgstr "mostra esta ajuda" #. Translators: help for gpaste about #: src/client/gpaste-client.c:222 msgid "display the about dialog" msgstr "mostra o diálogo Sobre" #: src/client/gpaste-client.c:225 #, c-format msgid "Convenience options:" msgstr "Opções de conveniência:" #. Translators: help for --use-index #: src/client/gpaste-client.c:228 msgid "use the index of the item instead of its UUID" msgstr "use o índice do elemento em vez do seu UUID" #: src/client/gpaste-client.c:231 #, c-format msgid "Display options:" msgstr "Opções de exibição:" #. Translators: help for --oneline #: src/client/gpaste-client.c:234 msgid "display each item on only one line" msgstr "Mostra cada elemento numa única linha" #. Translators: help for --raw #: src/client/gpaste-client.c:236 msgid "display each item raw (without line numbers)" msgstr "exibe cada elemento bruto (sem números nas linhas)" #. Translators: help for --reverse #: src/client/gpaste-client.c:238 msgid "display the items in reverse order" msgstr "Exibe os elementos na ordem inversa" #. Translators: help for --zero #: src/client/gpaste-client.c:240 msgid "use a NUL character instead of a new line betweean each item" msgstr "" "utiliza um caractere NUL no lugar de um caractere de nova linha entre cada " "elemento" #: src/client/gpaste-client.c:243 #, c-format msgid "Merge options:" msgstr "Opções de merge:" #. Translators: help for --decoration #. Translators: help for --separator #: src/client/gpaste-client.c:246 src/client/gpaste-client.c:248 msgid "string" msgstr "cadeia" #: src/client/gpaste-client.c:246 msgid "" "add the given decoration to the beginning and the end of each item before " "merging" msgstr "" "adiciona a decoração dada ao início e ao fim de cada elemento antes de fazer " "o merge" #: src/client/gpaste-client.c:248 msgid "add the given separator between each item when merging" msgstr "adiciona o separador dado entre cada elemento durante o merge" #: src/client/gpaste-client.c:345 #, c-format msgid "Successfully reexecuted the daemon\n" msgstr "O daemon foi reiniciado com sucesso\n" #: src/client/gpaste-client.c:486 msgid "Cannot add non utf8 data as text." msgstr "Não é possível adicionar dados não utf8 como texto." #: src/client/gpaste-client.c:796 src/ui/gpaste-ui-window.c:353 #: src/ui/gpaste-ui-window.c:354 msgid "Couldn't connect to GPaste daemon" msgstr "Não foi possível conectar ao daemon do GPaste" #: src/daemon/gpaste-color-item.c:73 msgid "[Color]" msgstr "" #. Translators: strftime format for image timestamps. Rearrange to match your locale's date/time convention. #: src/daemon/gpaste-image-item.c:219 msgid "%m/%d/%y %T" msgstr "%d/%m/%y %T" #. Translators: Image item displayed in history. %d is width, %d is height, %s is the formatted date. #: src/daemon/gpaste-image-item.c:221 #, c-format msgid "[Image, %d x %d (%s)]" msgstr "[Imagem, %d x %d (%s)]" #: src/daemon/gpaste-make-password-keybinding.c:50 #, fuzzy msgid "Convert to Password" msgstr "define um nome novo para a palavra-passe" #. This is the prefix displayed in history to identify a password #: src/daemon/gpaste-password-item.c:65 msgid "Password" msgstr "Palavra-passe" #: src/daemon/gpaste-pop-keybinding.c:64 #, fuzzy msgid "Pop from History" msgstr "Gravar histórico" #: src/daemon/gpaste-show-history-keybinding.c:49 #, fuzzy msgid "Show History" msgstr "Gravar histórico" #: src/daemon/gpaste-sync-clipboard-to-primary-keybinding.c:46 #, fuzzy msgid "Sync Clipboard to Primary" msgstr "Sincroniza a área de transferência com a seleção primária" #: src/daemon/gpaste-sync-primary-to-clipboard-keybinding.c:46 #, fuzzy msgid "Sync Primary to Clipboard" msgstr "Sincroniza a seleção primária com a área de transferência" #: src/daemon/gpaste-ui-keybinding.c:43 msgid "Launch UI" msgstr "" #: src/daemon/gpaste-upload-keybinding.c:64 msgid "Upload to Pastebin" msgstr "" #: src/daemon/gpaste-uris-item.c:87 msgid "[Files] " msgstr "[Ficheiros] " #: src/daemon/main.c:32 msgid "Stop signal received, exiting" msgstr "Sinal de paragem recebido, saindo" #: src/daemon/main.c:69 msgid "Could not acquire DBus name." msgstr "Não foi possível obter um nome DBus." #: src/gnome-shell/dummyHistoryItem.js:12 msgid "(Couldn't connect to GPaste daemon)" msgstr "(Não foi possível conectar ao daemon do GPaste)" #: src/gnome-shell/dummyHistoryItem.js:17 msgid "(Empty)" msgstr "(Vazio)" #: src/gnome-shell/dummyHistoryItem.js:22 msgid "(No result)" msgstr "(Nenhum resultado)" #: src/gnome-shell/emptyHistoryItem.js:14 msgid "Empty history" msgstr "Esvaziar histórico" #: src/gnome-shell/stateSwitch.js:12 msgid "Track changes" msgstr "Monitorar a área de transferência" #: src/gnome-shell/uiItem.js:14 msgid "Graphical tool" msgstr "" #: src/libgpaste/gpaste/gpaste-util.c:636 msgid "Could not create history dir" msgstr "Não foi possível criar o diretório do histórico" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-macros.h:38 msgid "Failed to register the gtk application" msgstr "Falha ao registar a aplicação gtk" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:108 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:119 msgid "General behaviour" msgstr "Comportamento geral" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:121 #: src/ui/gpaste-ui-switch.c:93 msgid "Track clipboard changes" msgstr "Monitorar a área de transferência" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:127 msgid "Close UI on select" msgstr "Fechar a UI na seleção" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:133 msgid "Open the UI window centered" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:139 msgid "Save history" msgstr "Gravar histórico" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:150 msgid "Enable the gnome-shell extension" msgstr "Ativar a extensão do gnome-shell" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:156 msgid "Sync the daemon state with the extension's one" msgstr "Sincronizar o estado do daemon com a extensão" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:162 msgid "" "When enabled, the daemon automatically starts or stops tracking clipboard " "changes to match the GNOME Shell extension's enabled state" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:166 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:174 msgid "Clipboards synchronization" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:168 msgid "Primary selection affects history" msgstr "Seleção primária afeta o histórico" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:174 msgid "Synchronize clipboard with primary selection" msgstr "Sincronizar área de transferência com a seleção primária" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:181 msgid "Optional features" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:183 msgid "Trim items" msgstr "Aparar elementos" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:189 msgid "Detect growing lines" msgstr "Detetar linhas crescentes" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:195 msgid "" "When enabled, if a new clipboard entry starts with the previous one, the " "previous entry is replaced instead of creating a new one" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:92 msgid "History settings" msgstr "Configurações do histórico" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:103 msgid "Resources limits" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:120 msgid "Text limits" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:122 msgid "Min text item length" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:129 msgid "Max text item length" msgstr "Tamanho máximo do elemento de texto" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:137 msgid "Display settings" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:139 msgid "Max element size when displaying" msgstr "Tamanho máximo do elemento ao exibir" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:81 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:92 #, fuzzy msgid "Images settings" msgstr "A UI de configurações" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:94 msgid "Images support" msgstr "Apoio de imagens" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:100 msgid "Image previews" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:106 msgid "Preview size" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:122 msgid "Keyboard shortcuts" msgstr "Atalhos do teclado" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:133 msgid "History access" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:150 msgid "Active element manipulation" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-util.c:51 #: src/ui/gpaste-ui-edit-item.c:84 src/ui/gpaste-ui-new-item.c:66 #: src/ui/gpaste-ui-panel.c:311 msgid "Cancel" msgstr "Cancelar" #. Translators: %s is the name of the history being emptied. #: src/libgpaste/gpaste-gtk4/gpaste-gtk-util.c:126 #, fuzzy, c-format msgid "Do you really want to empty \"%s\"?" msgstr "Quer mesmo esvaziar o histórico?" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-util.c:127 #: src/ui/gpaste-ui-history.c:153 src/ui/gpaste-ui-history.c:428 #: src/ui/gpaste-ui-panel.c:517 msgid "Empty" msgstr "Esvaziar" #: src/ui/gpaste-ui.c:47 msgid "Clipboard management system" msgstr "" #: src/ui/gpaste-ui-delete-item.c:46 src/ui/gpaste-ui-panel.c:358 #: src/ui/gpaste-ui-panel.c:518 msgid "Delete" msgstr "Apagar" #: src/ui/gpaste-ui-edit-item.c:85 src/ui/gpaste-ui-edit-item.c:139 msgid "Edit" msgstr "Editar" #: src/ui/gpaste-ui-history.c:266 #, fuzzy msgid "No Results" msgstr "(Nenhum resultado)" #: src/ui/gpaste-ui-new-item.c:67 msgid "Add new item" msgstr "" #: src/ui/gpaste-ui-new-item.c:100 msgid "New item" msgstr "" #: src/ui/gpaste-ui-panel.c:307 msgid "Under which name do you want to backup this history?" msgstr "Com qual nome deseja fazer um backup deste histórico?" #: src/ui/gpaste-ui-panel.c:311 src/ui/gpaste-ui-panel.c:516 msgid "Backup" msgstr "Backup" #. Translators: %s is the name of the history being deleted. #: src/ui/gpaste-ui-panel.c:357 #, fuzzy, c-format msgid "Are you sure you want to delete \"%s\"?" msgstr "Tem certeza que quer apagar este histórico?" #: src/ui/gpaste-ui-panel.c:441 #, fuzzy msgid "Switch to history" msgstr "alterna para um outro histórico" #: src/ui/gpaste-ui-panel.c:448 msgid "Switch to" msgstr "Alternar para" #: src/ui/gpaste-ui-reexec.c:45 msgid "Restart" msgstr "Reiniciar" #: src/ui/gpaste-ui-reexec.c:45 msgid "Do you really want to restart the daemon?" msgstr "Quer mesmo reiniciar o daemon?" #: src/ui/gpaste-ui-reexec.c:70 msgid "Restart the daemon" msgstr "Reiniciar o daemon" #: src/ui/gpaste-ui-search.c:23 msgid "Search" msgstr "Pesquisar" #: src/ui/gpaste-ui-settings.c:35 msgid "GPaste Settings" msgstr "Configurações do GPaste" #: src/ui/gpaste-ui-shortcuts-window.c:21 msgid "General" msgstr "Geral" #: src/ui/gpaste-ui-switch.c:68 msgid "Stop" msgstr "Parar" #: src/ui/gpaste-ui-switch.c:68 msgid "Do you really want to stop tracking clipboard changes?" msgstr "" "Quer mesmo parar o monitoramento de alterações na área de transferência?" #: src/ui/gpaste-ui-upload-item.c:46 msgid "Upload" msgstr "Carregar" #: src/ui/gpaste-ui-window.c:303 msgid "Quit" msgstr "" #: src/ui/gpaste-ui-window.c:380 #, fuzzy msgid "Histories" msgstr "Configurações do histórico" #: src/ui/gpaste-ui-window.c:381 #, fuzzy msgid "History" msgstr "Gravar histórico" #~ msgid "is already running." #~ msgstr "já está em execução." #~ msgid "New" #~ msgstr "Novo" Keruspe-GPaste-724def1/po/pt_BR.po000066400000000000000000001617431521206431300167240ustar00rootroot00000000000000# Brazilian Portuguese translation for GPaste package. # Copyright (C) 2012-2015 Listed translators # This file is distributed under the same license as the GPaste package. # Elder Marco , 2012. # msgid "" msgstr "" "Project-Id-Version: GPaste\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-06-09 21:21+0200\n" "PO-Revision-Date: 2024-11-18 11:00+0000\n" "Last-Translator: Rafael Fontenelle \n" "Language-Team: Portuguese (Brazil) \n" "Language: pt_BR\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: Weblate 5.9-dev\n" #: data/control-center/42-gpaste.control-center.xml.in:2 msgid "@GETTEXT_PACKAGE@" msgstr "@GETTEXT_PACKAGE@" #: data/control-center/42-gpaste.control-center.xml.in:3 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:136 #: src/ui/gpaste-ui-shortcuts-window.c:24 msgid "Launch the graphical tool" msgstr "Inicia a ferramenta gráfica" #: data/control-center/42-gpaste.control-center.xml.in:4 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:153 #: src/ui/gpaste-ui-shortcuts-window.c:25 msgid "Mark the active item as being a password" msgstr "Marca o item ativo como sendo uma senha" #: data/control-center/42-gpaste.control-center.xml.in:5 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:167 #: src/ui/gpaste-ui-shortcuts-window.c:23 msgid "Delete the active item from history" msgstr "Apaga o item ativo do histórico" #: data/control-center/42-gpaste.control-center.xml.in:6 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:143 #: src/ui/gpaste-ui-shortcuts-window.c:26 msgid "Display the history" msgstr "Mostra o histórico" #: data/control-center/42-gpaste.control-center.xml.in:7 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:177 #: src/ui/gpaste-ui-shortcuts-window.c:27 msgid "Sync the clipboard to the primary selection" msgstr "Sincroniza a área de transferência com a seleção primária" #: data/control-center/42-gpaste.control-center.xml.in:8 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:184 #: src/ui/gpaste-ui-shortcuts-window.c:28 msgid "Sync the primary selection to the clipboard" msgstr "Sincroniza a seleção primária com a área de transferência" #: data/control-center/42-gpaste.control-center.xml.in:9 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:160 #: src/ui/gpaste-ui-shortcuts-window.c:29 msgid "Upload the active item to a pastebin service" msgstr "Carrega o item ativo para um serviço de pastebin" #: data/desktop/org.gnome.GPaste.Daemon.desktop.in.in:3 #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:3 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:6 msgid "GPaste" msgstr "GPaste" #: data/desktop/org.gnome.GPaste.Preferences.desktop.in.in:3 #, fuzzy msgid "GPaste Preferences" msgstr "Gerenciar as configurações do GPaste" #: data/desktop/org.gnome.GPaste.Preferences.desktop.in.in:4 #, fuzzy msgid "Manage your GPaste preferences" msgstr "Gerenciar as configurações do GPaste" #: data/desktop/org.gnome.GPaste.Preferences.desktop.in.in:5 #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:6 msgid "Clipboard;Manager;Settings;Preferences;Configuration;" msgstr "" "Clipboard;Manager;Settings;Preferences;Configuration;Área de " "transferência;Gerenciador;Configurações;Preferências;" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:4 #, fuzzy msgid "Clipboard Manager" msgstr "Clipboard;Manager;" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:5 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:7 msgid "Manage your clipboard history" msgstr "Gerencie seu histórico da área de transferência" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:16 #, fuzzy msgid "Preferences" msgstr "Gerenciar as configurações do GPaste" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:20 #: src/gnome-shell/aboutItem.js:13 src/ui/gpaste-ui-about.c:38 msgid "About" msgstr "Sobre" #: data/gsettings/org.gnome.GPaste.gschema.xml:7 msgid "Max size of an element when displaying it" msgstr "Tamanho máximo de um elemento ao exibir" #: data/gsettings/org.gnome.GPaste.gschema.xml:8 msgid "" "The extra stuff of that element will be replaced by \"…\", and newlines by " "\" \" when displaying from the applet, 0 to disable." msgstr "" "O restante desse elemento será substituído por \"…\", e novas linhas por \" " "\" quando for exibido no applet, 0 para desabilitar." #: data/gsettings/org.gnome.GPaste.gschema.xml:15 msgid "Do we detect and replace growing lines in history?" msgstr "Detectar e substituir linhas crescentes no histórico?" #: data/gsettings/org.gnome.GPaste.gschema.xml:16 msgid "" "By default, selecting \"Here is\", then \"Here is an example\" will create " "two entries in the history. With this feature enabled, the first one will be " "replaced by the second one." msgstr "" "Por padrão, selecionando \"Aqui está\", e então \"Aqui está um exemplo\" irá " "criar duas entradas no histórico. Com esse recurso habilitado, o primeiro " "será substituído pelo segundo." #: data/gsettings/org.gnome.GPaste.gschema.xml:24 msgid "The name of the current history" msgstr "O nome do histórico atual" #: data/gsettings/org.gnome.GPaste.gschema.xml:25 msgid "The default name is \"history\"" msgstr "O nome padrão é \"history\"" #: data/gsettings/org.gnome.GPaste.gschema.xml:32 msgid "Do we save the images copied to history, or only text?" msgstr "Salvar as imagens copiadas para o histórico ou somente o texto?" #: data/gsettings/org.gnome.GPaste.gschema.xml:33 msgid "By default, we're saving only text" msgstr "Por padrão, apenas texto é salvo" #: data/gsettings/org.gnome.GPaste.gschema.xml:40 msgid "Show image previews in the history?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:41 msgid "By default, we show previews of images in the history" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:49 msgid "Size of image previews in pixels" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:50 msgid "Default size is 100 pixels" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:57 msgid "Do we close the UI after selecting an item?" msgstr "Fechar a UI após selecionar um item?" #: data/gsettings/org.gnome.GPaste.gschema.xml:58 msgid "By default, we close it" msgstr "Por padrão, ela é fechada" #: data/gsettings/org.gnome.GPaste.gschema.xml:65 msgid "Do we open the UI window centered?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:66 #, fuzzy msgid "By default, we open it where the mouse cursor is" msgstr "Por padrão, essas alterações são monitoradas." #: data/gsettings/org.gnome.GPaste.gschema.xml:73 msgid "The keyboard shortcut to launch the graphical interface" msgstr "O atalho do teclado para executar a interface gráfica" #: data/gsettings/org.gnome.GPaste.gschema.xml:74 msgid "" "By default, hitting ctrl + alt + g does that (\"G\"). An empty " "string here disables this functionnality." msgstr "" "Por padrão, a combinação de teclas ctrl + alt + g faz isso " "(\"G\"). Deixar vazio aqui desabilita essa funcionalidade." #: data/gsettings/org.gnome.GPaste.gschema.xml:82 msgid "The keyboard shortcut to mark the active item as being a password" msgstr "O atalho do teclado para marcar o item ativo como sendo uma senha" #: data/gsettings/org.gnome.GPaste.gschema.xml:83 msgid "" "By default, hitting ctrl + alt + s will mark the active item as being a " "password (\"S\"). An empty string here disables this " "functionnality." msgstr "" "Por padrão, a combinação de teclas ctrl + alt + s vai marcar o item ativo " "como sendo uma senha (\"S\"). Deixar vazio aqui desabilita essa " "funcionalidade." #: data/gsettings/org.gnome.GPaste.gschema.xml:92 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:146 msgid "Max displayed history size" msgstr "Tamanho máximo do histórico ao exibir" #: data/gsettings/org.gnome.GPaste.gschema.xml:93 msgid "Maximum number of items displayed in the history" msgstr "Número máximo de itens exibidos no histórico" #: data/gsettings/org.gnome.GPaste.gschema.xml:101 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:105 msgid "Max history size" msgstr "Tamanho máximo do histórico" #: data/gsettings/org.gnome.GPaste.gschema.xml:102 msgid "Maximum number of items in history" msgstr "Número máximo de itens no histórico" #: data/gsettings/org.gnome.GPaste.gschema.xml:110 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:112 msgid "Max memory usage (MB)" msgstr "Uso máximo de memória (MB)" #: data/gsettings/org.gnome.GPaste.gschema.xml:111 msgid "Maximum amount of memory used to store contents" msgstr "Quantidade máxima de memória utilizada para armazenamento" #: data/gsettings/org.gnome.GPaste.gschema.xml:119 msgid "Max text item size" msgstr "Tamanho máximo do item de texto" #: data/gsettings/org.gnome.GPaste.gschema.xml:120 msgid "Maximum size of a text item. Anything out of this boundary is ignored." msgstr "" "Tamanho máximo de um item de texto. Qualquer coisa fora desse limite é " "ignorado." #: data/gsettings/org.gnome.GPaste.gschema.xml:128 msgid "Min text item size" msgstr "Tamanho mínimo do item de texto" #: data/gsettings/org.gnome.GPaste.gschema.xml:129 msgid "Minimum size of a text item. Anything out of this boundary is ignored." msgstr "" "Tamanho mínimo de um item de texto. Qualquer coisa fora desse limite é " "ignorado." #: data/gsettings/org.gnome.GPaste.gschema.xml:136 msgid "The keyboard shortcut to delete the first element in history" msgstr "O atalho do teclado para apagar o primeiro elemento no histórico" #: data/gsettings/org.gnome.GPaste.gschema.xml:137 msgid "" "By default, hitting ctrl + alt + v does that (\"V\"). An empty " "string here disables this functionnality." msgstr "" "Por padrão, a combinação de teclas ctrl + alt + v faz isso " "(\"V\"). Deixar vazio aqui desabilita essa funcionalidade." #: data/gsettings/org.gnome.GPaste.gschema.xml:145 msgid "Does the primary selection affects history?" msgstr "Seleção primária afeta o histórico?" #: data/gsettings/org.gnome.GPaste.gschema.xml:146 msgid "By default, only clipboard (ctrl+c) affects history." msgstr "" "Por padrão, somente a área de transferência (ctrl+c) afeta o histórico." #: data/gsettings/org.gnome.GPaste.gschema.xml:153 msgid "" "Do we save all versions of selected rich text (e.g. html) or just the plain " "text version?" msgstr "" "Salvamos todas as versões do text rico selecionado (por exemplo, html) ou " "apenas a versão em texto simples?" #: data/gsettings/org.gnome.GPaste.gschema.xml:154 msgid "By default, we're saving all" msgstr "Por padrão, tudo é salvo" #: data/gsettings/org.gnome.GPaste.gschema.xml:161 msgid "Do we save the history from one session to another?" msgstr "Salvar o histórico entre uma sessão e outra?" #: data/gsettings/org.gnome.GPaste.gschema.xml:162 msgid "By default, we're saving it" msgstr "Por padrão, ele é salvo" #: data/gsettings/org.gnome.GPaste.gschema.xml:169 msgid "The keyboard shortcut to display the menu" msgstr "O atalho do teclado para exibir o menu" #: data/gsettings/org.gnome.GPaste.gschema.xml:170 msgid "" "By default, hitting ctrl + alt + h displays the menu (\"H\"). An " "empty string here disables this functionnality." msgstr "" "Por padrão, a combinação de teclas ctrl + alt + h exibe o menu " "(\"H\"). Deixar vazio aqui desabilita essa funcionalidade." #: data/gsettings/org.gnome.GPaste.gschema.xml:178 msgid "The keyboard shortcut to sync the clipboard to the primary selection" msgstr "" "Atalho do teclado para sincronizar a área de transferência com a seleção " "primária" #: data/gsettings/org.gnome.GPaste.gschema.xml:179 msgid "" "By default, hitting ctrl + alt + o syncs them (\"P\"). An empty " "string here disables this functionnality." msgstr "" "Por padrão, teclando ctrl + alt + o faz a sincronização (\"P\"). " "Uma string vazia aqui desabilita essa funcionalidade." #: data/gsettings/org.gnome.GPaste.gschema.xml:187 msgid "The keyboard shortcut to sync the primary selection to the clipboard" msgstr "" "Atalho do teclado para sincronizar a seleção primária com a área de " "transferência" #: data/gsettings/org.gnome.GPaste.gschema.xml:188 msgid "" "By default, hitting ctrl + alt + p syncs them (\"P\"). An empty " "string here disables this functionnality." msgstr "" "Por padrão, teclando ctrl + alt + p faz a sincronização (\"P\"). " "Uma string vazia aqui desabilita essa funcionalidade." #: data/gsettings/org.gnome.GPaste.gschema.xml:196 msgid "Are the primary selection and the clipboard synchronized?" msgstr "Seleção primária e a área de transferência estão sincronizadas?" #: data/gsettings/org.gnome.GPaste.gschema.xml:197 msgid "By default, the primary selection and the clipboard are independent." msgstr "" "Por padrão, seleção primária e área de transferência são independentes." #: data/gsettings/org.gnome.GPaste.gschema.xml:204 msgid "Do we track the clipboard changes?" msgstr "Monitorar as alterações na área de transferência?" #: data/gsettings/org.gnome.GPaste.gschema.xml:205 msgid "By default, we're tracking those changes." msgstr "Por padrão, essas alterações são monitoradas." #: data/gsettings/org.gnome.GPaste.gschema.xml:212 msgid "" "Do we sync the daemon state with the gnome-shell extension's one? (disable " "the daemon when disabling the extension)" msgstr "" "Sincronizar o estado do daemon com a extensão do gnome-shell? (desabilitar o " "daemon quando desabilitar a extensão)" #: data/gsettings/org.gnome.GPaste.gschema.xml:213 msgid "By default, the daemon state keeps unchanged" msgstr "Por padrão, o estado do daemon se mantém inalterado" #: data/gsettings/org.gnome.GPaste.gschema.xml:220 msgid "Do we trim the textual items before adding them to history?" msgstr "Aparar itens textuais antes de adicioná-los ao histórico?" #: data/gsettings/org.gnome.GPaste.gschema.xml:221 msgid "" "Trimming means removing all trailing and ending spaces. By default, we're " "letting them as-is." msgstr "" "Aparar significa que espaços em branco antes e depois do texto serão " "removidos. Por padrão, é deixado como está." #: data/gsettings/org.gnome.GPaste.gschema.xml:229 msgid "" "The keyboard shortcut to upload the first element in history to a pastebin " "service" msgstr "" "O atalho do teclado para carregar o primeiro elemento do histórico para um " "serviço de pastebin" #: data/gsettings/org.gnome.GPaste.gschema.xml:230 msgid "" "By default, hitting ctrl + alt + u does that (\"U\"). An empty " "string here disables this functionnality." msgstr "" "Por padrão, a combinação de teclas ctrl + alt + u faz isso " "(\"U\"). Deixar vazio aqui desabilita essa funcionalidade." #: data/gsettings/org.gnome.GPaste.gschema.xml:238 msgid "Do we prompt for confirmation when emptying a history?" msgstr "Solicitamos confirmação ao esvaziar um histórico?" #: data/gsettings/org.gnome.GPaste.gschema.xml:239 msgid "By default, we do as it's a destructive action" msgstr "Por padrão, é feito por ser uma ação destrutiva" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:9 msgid "Marc-Antoine Perennou" msgstr "Marc-Antoine Perennou" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:17 msgid "" "GPaste is a clipboard managing system allowing you to track and manage your " "clipboard history in a highly customizable way." msgstr "" "O GPaste é um sistema de gerenciamento de área de transferência que permite " "controlar e gerenciar seu histórico de uma maneira altamente personalizável." #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:20 msgid "" "GPaste provides you with a graphical tool allowing you to manage everything " "easily." msgstr "" "O GPaste fornece uma ferramenta gráfica que permite gerenciar tudo " "facilmente." #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:27 msgid "The main UI" msgstr "A UI principal" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:31 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:35 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:39 msgid "The settings UI" msgstr "A UI de configurações" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:51 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:78 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:90 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:100 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:120 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:133 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:143 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:152 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:161 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:180 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:197 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:205 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:213 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:231 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:239 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:247 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:255 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:263 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:287 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:295 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:303 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:311 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:319 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:327 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:335 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:343 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:352 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:361 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:379 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:387 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:395 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:403 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:421 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:429 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:438 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:447 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:456 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:464 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:485 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:493 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:501 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:509 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:517 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:533 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:541 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:549 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:557 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:573 msgid "This is a maintenance release. Changes:" msgstr "Este é um lançamento de manutenção. Alterações:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:53 msgid "Fix building without the GNOME Shell extension (-Dgnome-shell=false)" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:54 msgid "" "Restore GTK deprecation version-gating and drop the unused build-time gjs " "dependency" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:55 msgid "Target GNOME Shell 50 in the extension" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:56 msgid "Bump the library soversions to reflect the API/ABI changes since 45.8" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:62 msgid "" "This is a major release porting GPaste to GTK 4 and libadwaita. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:64 msgid "Port the daemon, history UI and preferences to GTK 4 and libadwaita" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:65 msgid "Show image thumbnails in the history, with configurable preview size" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:66 msgid "" "Support global keyboard shortcuts on Wayland through the XDG GlobalShortcuts " "portal" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:67 msgid "Recognise copied colours as dedicated colour items" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:68 msgid "" "Give keybindings human-readable descriptions and install a daemon desktop " "file" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:69 msgid "Fix images sometimes being repeatedly re-added to the history" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:70 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:81 msgid "" "Fix keyboard shortcuts not triggering when NumLock and CapsLock are both " "active" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:71 msgid "" "Fix several crashes (search provider, UI lifetime, GNOME Shell extension) " "and memory leaks" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:72 msgid "Modernise the GNOME Shell extension to current conventions" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:80 msgid "Fix use-after-free crash in the GNOME Shell search provider" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:82 msgid "" "Fix memory leaks when re-copying history items and when rebinding shortcuts" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:83 msgid "Fix potential crash when enforcing a very small history size" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:84 msgid "Build: ship the GSettings schema as a static file" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:92 msgid "" "GNOME Shell extension now retries the daemon connection before giving up" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:93 msgid "Fix test crash when GrabAccelerators is not allowed" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:94 msgid "Build: simplify gsettings compilation for tests" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:102 msgid "Fix GC crash and signal leak when disabling the GNOME Shell extension" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:103 msgid "GNOME Shell extension now handles daemon connection failure gracefully" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:104 msgid "Fix crash when a history item has no value yet" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:105 msgid "Fix image files not being deleted when history items are removed" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:106 msgid "Fix image files stored in wrong directory" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:107 msgid "Fix keyboard focus being stolen by history items on hover" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:108 msgid "" "Fix key events incorrectly forwarded to search when another entry has focus" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:109 msgid "Fix signal loop when updating shortcut entries from settings" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:110 msgid "Fix default history item count not reset after history deletion" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:111 msgid "Enforce minimum window size to prevent unresizable state" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:112 msgid "Add descriptive tooltips for settings entries" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:113 msgid "Build: explicitly link libgpaste libraries against libc" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:114 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:127 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:137 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:146 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:155 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:164 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:174 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:225 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:267 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:281 msgid "Translations updates" msgstr "Atualizações de tradução" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:122 msgid "" "Fix infinite Pango assertion loop that could fill disk when clipboard " "content contained tab characters" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:123 msgid "Various bug fixes and memory management improvements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:124 msgid "Daemon improvements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:125 msgid "GNOME Shell extension improvements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:126 msgid "GLib >= 2.76 is now required" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:135 #, fuzzy msgid "Support for gnome 50" msgstr "Suporte para gnome 47" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:136 #, fuzzy msgid "Support for gnome 49" msgstr "Suporte para gnome 47" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:145 #, fuzzy msgid "Support for gnome 48" msgstr "Suporte para gnome 47" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:154 msgid "Support for gnome 47" msgstr "Suporte para gnome 47" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:163 msgid "Support for gnome 46" msgstr "Suporte para gnome 46" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:170 msgid "Stable release for GNOME 45. Changes:" msgstr "Lançamento estável para o GNOME 45. Alterações:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:172 msgid "Port to gnome 45" msgstr "Migrado para gnome 45" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:173 msgid "Add setting to open ui window centered" msgstr "" "Adiciona configuração para abrir a janela de interface de usuário " "centralizada" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:182 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:199 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:233 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:289 msgid "Fix a bug leading to history with only one item" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:188 #, fuzzy msgid "First release for GNOME 44. Changes:" msgstr "Primeiro lançamento para o GNOME 41. Alterações:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:190 msgid "gcr 4 is now required" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:191 #, fuzzy msgid "Port to gnome 44" msgstr "port para gnome-shell 41" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:207 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:241 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:297 msgid "Avoid crash under heavy memory load" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:215 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:249 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:305 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:381 #, fuzzy msgid "Respect --use-index when displaying history" msgstr "Tamanho máximo do elemento ao exibir" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:221 #, fuzzy msgid "First release for GNOME 43. Changes:" msgstr "Primeiro lançamento para o GNOME 41. Alterações:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:223 msgid "Port to GNOME 43" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:224 msgid "Internal preparation for gtk4 port" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:257 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:313 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:389 msgid "Open GPaste UI where the mouse pointer is" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:265 msgid "Fixes to the new preferences tool" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:266 msgid "Style fixes" msgstr "Correções de estilo" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:273 #, fuzzy msgid "First release for GNOME 42. Changes:" msgstr "Primeiro lançamento para o GNOME 41. Alterações:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:275 msgid "" "Old libgpaste replaced by a new minimal libgpaste-2 with no gtk dependency" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:276 msgid "New libgpaste-gtk3 for utils and settings ui" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:277 msgid "New libgpaste-gtk4 for utils and preferences ui" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:278 msgid "New gtk4 based gpaste-preferences utility" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:279 msgid "Autotools are no longer supported" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:280 #, fuzzy msgid "Extension updated for gnome-shell 42" msgstr "Atualização para o gnome-shell 3.34.0" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:321 msgid "fix the storage path for meson builds" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:329 msgid "fix some race conditions in history handling" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:337 msgid "better fix crash when there is no history yet" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:345 msgid "fix crash when there is no history yet" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:346 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:355 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:364 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:373 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:397 msgid "translations update" msgstr "atualização de traduções" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:354 msgid "fix gnome-shell exntesion when the daemon restarts" msgstr "corrige a extensão do gnome-shell quando o daemon é reiniciado" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:363 msgid "Fix keybindings for wayland" msgstr "Corrige associações de teclas para o wayland" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:370 msgid "First release for GNOME 41. Changes:" msgstr "Primeiro lançamento para o GNOME 41. Alterações:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:372 msgid "port to gnome-shell 41" msgstr "port para gnome-shell 41" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:405 msgid "fix a crash in memory usage checking" msgstr "corrige uma falha na verificação do uso de memória" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:412 msgid "First release for GNOME 40. Changes:" msgstr "Primeiro lançamento para o GNOME 40. Alterações:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:414 msgid "port to gnome-shell 40" msgstr "port para gnome-shell 40" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:415 msgid "placeholder for gnome-shell prefs" msgstr "espaço reservado para preferências do gnome-shell" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:423 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:487 msgid "fix X11 keybinder outside of GNOME" msgstr "corrige associação de teclas X11 fora do GNOME" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:431 msgid "better handling and reporting of invalid uuids passed to gpaste-client" msgstr "" "melhor tratamento e relatório de uuids inválidos passados para gpaste-client" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:432 msgid "" "gpaste-client now has a --use-index argument for several subcommands to use " "index instead of uuid" msgstr "" "gpaste-client agora tem um argumento --use-index para vários subcomandos " "para usar index em vez de uuid" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:440 msgid "fix the make-password keybinding" msgstr "corrige a associação de teclas do make-password" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:441 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:450 msgid "updated translations" msgstr "traduções atualizadas" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:449 msgid "gnome-shell extension warning fixes" msgstr "correções de aviso de extensão do gnome-shell" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:458 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:495 msgid "gnome-shell extension cosmetic updates" msgstr "atualizações cosméticas de extensão do gnome-shell" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:466 msgid "Disable images support by default (can be reenabled in preferences)" msgstr "" "Desabilita suporte a imagens por padrão (pode ser reabilitado nas " "preferências)" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:467 msgid "Search now includes passwords (using their names)" msgstr "A pesquisa agora inclui senhas (usando seus nomes)" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:468 msgid "systemd integration enhancements" msgstr "melhorias de integração systemd" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:474 msgid "First release for GNOME 3.38. Changes:" msgstr "Primeiro lançamento para GNOME 3.38. Alterações:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:476 msgid "Drop the Tracking DBus signal" msgstr "Descara o sinal Tracking DBus" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:477 msgid "Switch to uuids to identify items" msgstr "Alterna para uuids para identificar itens" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:478 msgid "Bump DBus interface to org.gnome.GPaste2" msgstr "Incrementa a interface DBus para org.gnome.GPaste2" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:479 msgid "Update to gnome-shell 3.38.0" msgstr "Atualiza para o gnome-shell 3.38.0" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:503 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:535 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:577 msgid "Fix activating items using Ctrl-Number in gnome-shell" msgstr "Corrige itens de ativação usando Ctrl-Número no gnome-shell" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:511 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:543 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:576 msgid "Fix keybinding regrab with gnome-shell" msgstr "Corrige nova captura de associação de teclas com gnome-shell" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:519 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:551 msgid "Fix keybinding grab with gnome-shell" msgstr "Corrige captura de associação de teclas com gnome-shell" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:525 msgid "First release for GNOME 3.36. Changes:" msgstr "Primeiro lançamento para o GNOME 3.36. Alterações:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:527 msgid "Update to gnome-shell 3.36.0" msgstr "Atualização para o gnome-shell 3.36.0" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:559 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:575 msgid "Compatibility with recent appstream-glib" msgstr "Compatibilidade com appstream-glib recente" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:565 msgid "First release for GNOME 3.34. Changes:" msgstr "Primeiro lançamento para o GNOME 3.34. Alterações:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:567 msgid "Update to gnome-shell 3.34.0" msgstr "Atualização para o gnome-shell 3.34.0" #: src/client/gpaste-client.c:146 msgid "Couldn't spawn" msgstr "Não foi possível executar" #: src/client/gpaste-client.c:158 #, c-format msgid "Usage:\n" msgstr "Uso:\n" #. Translators: help for gpaste history #: src/client/gpaste-client.c:160 msgid "print the history with UUIDs" msgstr "imprime o histórico com os UUIDs" #. Translators: help for gpaste history-size #: src/client/gpaste-client.c:162 msgid "print the size of the history" msgstr "imprime o tamanho do histórico" #. Translators: help for gpaste get-history #: src/client/gpaste-client.c:164 msgid "get the name of the current history" msgstr "obtém o nome do histórico atual" #. Translators: help for gpaste backup-history #. Translators: help for gpaste switch-history #. Translators: help for gpaste delete-history #. Translators: help for gpaste add-password #. Translators: help for gpaste set-password #. Translators: help for gpaste delete-passworf #: src/client/gpaste-client.c:166 src/client/gpaste-client.c:168 #: src/client/gpaste-client.c:170 src/client/gpaste-client.c:176 #: src/client/gpaste-client.c:188 src/client/gpaste-client.c:192 msgid "name" msgstr "nome" #: src/client/gpaste-client.c:166 msgid "backup current history" msgstr "faz um backup do histórico atual" #: src/client/gpaste-client.c:168 msgid "switch to another history" msgstr "alterna para um outro histórico" #: src/client/gpaste-client.c:170 msgid "delete a history" msgstr "apaga um histórico" #. Translators: help for gpaste list-histories #: src/client/gpaste-client.c:172 msgid "list available histories" msgstr "lista os históricos disponíveis" #. Translators: help for gpaste add #: src/client/gpaste-client.c:174 msgid "text" msgstr "texto" #: src/client/gpaste-client.c:174 msgid "set text to clipboard" msgstr "copia texto para a área de transferência" #: src/client/gpaste-client.c:176 msgid "password" msgstr "senha" #: src/client/gpaste-client.c:176 msgid "add the name - password couple to the clipboard" msgstr "adiciona o par nome - senha para a área de transferência" #. Translators: help for gpaste rename-password #: src/client/gpaste-client.c:178 msgid "old name" msgstr "nome anterior" #: src/client/gpaste-client.c:178 msgid "new name" msgstr "novo nome" #: src/client/gpaste-client.c:178 msgid "rename the password" msgstr "define um novo nome para a senha" #. Translators: help for gpaste get #: src/client/gpaste-client.c:180 msgid "get the item from the history" msgstr "obtém o item do histórico" #. Translators: help for gpaste select #: src/client/gpaste-client.c:182 msgid "set the item from the history to the clipboard" msgstr "define o item do histórico para a área de transferência" #. Translators: help for gpaste replace #: src/client/gpaste-client.c:184 msgid "contents" msgstr "conteúdo" #: src/client/gpaste-client.c:184 msgid "" "replace the contents of the item from the history with the provided " "one" msgstr "substitui o conteúdo do item do histórico com aquele fornecido" #. Translators: help for gpaste merge #: src/client/gpaste-client.c:186 msgid "" "merge the items matching the UUIDs from the history and put the result in " "the clipboard" msgstr "" "mescla os itens correspondendo os UUIDs do histórico e coloca o resultado na " "área de transferência" #: src/client/gpaste-client.c:188 msgid "set the item from the history as a password named " msgstr "define o item do histórico como uma senha chamada " #. Translators: help for gpaste delete #: src/client/gpaste-client.c:190 msgid "delete item from the history" msgstr "apaga o item do histórico" #: src/client/gpaste-client.c:192 msgid "delete the password from the history" msgstr "apaga a senha do histórico" #. Translators: help for gpaste file #: src/client/gpaste-client.c:194 msgid "path" msgstr "caminho" #: src/client/gpaste-client.c:194 msgid "put the content of the file at into the clipboard" msgstr "coloca o conteúdo do arquivo em na área de transferência" #. Translators: help for whatever | gpaste #: src/client/gpaste-client.c:196 msgid "whatever" msgstr "qualquercomando" #: src/client/gpaste-client.c:196 msgid "set the output of whatever to clipboard" msgstr "copia a saída de qualquercomando para a área de transferência" #. Translators: help for gpaste empty #: src/client/gpaste-client.c:198 msgid "empty the history" msgstr "esvazia o histórico" #. Translators: help for gpaste start #: src/client/gpaste-client.c:200 msgid "start tracking clipboard changes" msgstr "inicia o monitoramento de alterações na área de transferência" #. Translators: help for gpaste stop #: src/client/gpaste-client.c:202 msgid "stop tracking clipboard changes" msgstr "pára o monitoramento de alterações na área de transferência" #. Translators: help for gpaste quit #: src/client/gpaste-client.c:204 msgid "alias for stop" msgstr "apelido para stop" #. Translators: help for gpaste daemon-reexec #: src/client/gpaste-client.c:206 msgid "reexecute the daemon (after upgrading...)" msgstr "reinicia o daemon (depois de uma atualização...)" #. Translators: help for gpaste preferences #: src/client/gpaste-client.c:208 msgid "launch the configuration tool" msgstr "inicia a ferramenta de configuração" #. Translators: help for gpaste ui #: src/client/gpaste-client.c:210 msgid "launch the graphical tool" msgstr "inicia a ferramenta gráfica" #. Translators: help for gpaste show-history #: src/client/gpaste-client.c:212 msgid "make the applet or extension display the history" msgstr "faz o applet ou a extensão exibir o histórico" #. Translators: help for gpaste upload #: src/client/gpaste-client.c:214 msgid "upload the item to a pastebin service" msgstr "carrega o item para um serviço de pastebin" #. Translators: help for gpaste version #: src/client/gpaste-client.c:216 msgid "display the version" msgstr "mostra a versão" #. Translators: help for gpaste daemon-version #: src/client/gpaste-client.c:218 msgid "display the daemon version" msgstr "mostra a versão do daemon" #. Translators: help for gpaste help #: src/client/gpaste-client.c:220 msgid "display this help" msgstr "mostra esta ajuda" #. Translators: help for gpaste about #: src/client/gpaste-client.c:222 msgid "display the about dialog" msgstr "mostra o diálogo Sobre" #: src/client/gpaste-client.c:225 #, c-format msgid "Convenience options:" msgstr "Opções de conveniência:" #. Translators: help for --use-index #: src/client/gpaste-client.c:228 msgid "use the index of the item instead of its UUID" msgstr "use o índice do item em vez de seu UUID" #: src/client/gpaste-client.c:231 #, c-format msgid "Display options:" msgstr "Opções de exibição:" #. Translators: help for --oneline #: src/client/gpaste-client.c:234 msgid "display each item on only one line" msgstr "Mostra cada item em uma única linha" #. Translators: help for --raw #: src/client/gpaste-client.c:236 msgid "display each item raw (without line numbers)" msgstr "exibe cada item bruto (sem números nas linhas)" #. Translators: help for --reverse #: src/client/gpaste-client.c:238 msgid "display the items in reverse order" msgstr "Exibe os itens na ordem inversa" #. Translators: help for --zero #: src/client/gpaste-client.c:240 msgid "use a NUL character instead of a new line betweean each item" msgstr "" "utiliza um caractere NUL no lugar de um caractere de nova linha entre cada " "item" #: src/client/gpaste-client.c:243 #, c-format msgid "Merge options:" msgstr "Opções de merge:" #. Translators: help for --decoration #. Translators: help for --separator #: src/client/gpaste-client.c:246 src/client/gpaste-client.c:248 msgid "string" msgstr "string" #: src/client/gpaste-client.c:246 msgid "" "add the given decoration to the beginning and the end of each item before " "merging" msgstr "" "adiciona a decoração dada ao início e ao fim de cada item antes de fazer o " "merge" #: src/client/gpaste-client.c:248 msgid "add the given separator between each item when merging" msgstr "adiciona o separador dado entre cada item durante o merge" #: src/client/gpaste-client.c:345 #, c-format msgid "Successfully reexecuted the daemon\n" msgstr "O daemon foi reiniciado com sucesso\n" #: src/client/gpaste-client.c:486 msgid "Cannot add non utf8 data as text." msgstr "Não é possível adicionar dados não utf8 como texto." #: src/client/gpaste-client.c:796 src/ui/gpaste-ui-window.c:353 #: src/ui/gpaste-ui-window.c:354 msgid "Couldn't connect to GPaste daemon" msgstr "Não foi possível se conectar ao daemon do GPaste" #: src/daemon/gpaste-color-item.c:73 msgid "[Color]" msgstr "" #. Translators: strftime format for image timestamps. Rearrange to match your locale's date/time convention. #: src/daemon/gpaste-image-item.c:219 msgid "%m/%d/%y %T" msgstr "%d/%m/%y %T" #. Translators: Image item displayed in history. %d is width, %d is height, %s is the formatted date. #: src/daemon/gpaste-image-item.c:221 #, c-format msgid "[Image, %d x %d (%s)]" msgstr "[Imagem, %d x %d (%s)]" #: src/daemon/gpaste-make-password-keybinding.c:50 #, fuzzy msgid "Convert to Password" msgstr "define um novo nome para a senha" #. This is the prefix displayed in history to identify a password #: src/daemon/gpaste-password-item.c:65 msgid "Password" msgstr "Senha" #: src/daemon/gpaste-pop-keybinding.c:64 #, fuzzy msgid "Pop from History" msgstr "Históricos" #: src/daemon/gpaste-show-history-keybinding.c:49 #, fuzzy msgid "Show History" msgstr "Históricos" #: src/daemon/gpaste-sync-clipboard-to-primary-keybinding.c:46 #, fuzzy msgid "Sync Clipboard to Primary" msgstr "Sincroniza a área de transferência com a seleção primária" #: src/daemon/gpaste-sync-primary-to-clipboard-keybinding.c:46 #, fuzzy msgid "Sync Primary to Clipboard" msgstr "Sincroniza a seleção primária com a área de transferência" #: src/daemon/gpaste-ui-keybinding.c:43 msgid "Launch UI" msgstr "" #: src/daemon/gpaste-upload-keybinding.c:64 msgid "Upload to Pastebin" msgstr "" #: src/daemon/gpaste-uris-item.c:87 msgid "[Files] " msgstr "[Arquivos] " #: src/daemon/main.c:32 msgid "Stop signal received, exiting" msgstr "Sinal de parada recebido, saindo" #: src/daemon/main.c:69 msgid "Could not acquire DBus name." msgstr "Não foi possível obter um nome DBus." #: src/gnome-shell/dummyHistoryItem.js:12 msgid "(Couldn't connect to GPaste daemon)" msgstr "(Não foi possível se conectar ao daemon do GPaste)" #: src/gnome-shell/dummyHistoryItem.js:17 msgid "(Empty)" msgstr "(Vazio)" #: src/gnome-shell/dummyHistoryItem.js:22 msgid "(No result)" msgstr "(Nenhum resultado)" #: src/gnome-shell/emptyHistoryItem.js:14 msgid "Empty history" msgstr "Esvaziar histórico" #: src/gnome-shell/stateSwitch.js:12 msgid "Track changes" msgstr "Monitorar a área de transferência" #: src/gnome-shell/uiItem.js:14 #, fuzzy msgid "Graphical tool" msgstr "Inicia a ferramenta gráfica" #: src/libgpaste/gpaste/gpaste-util.c:636 msgid "Could not create history dir" msgstr "Não foi possível criar o diretório do histórico" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-macros.h:38 msgid "Failed to register the gtk application" msgstr "Falha ao registrar a aplicação gtk" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:108 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:119 msgid "General behaviour" msgstr "Comportamento geral" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:121 #: src/ui/gpaste-ui-switch.c:93 msgid "Track clipboard changes" msgstr "Monitorar a área de transferência" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:127 msgid "Close UI on select" msgstr "Fechar a UI na seleção" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:133 msgid "Open the UI window centered" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:139 msgid "Save history" msgstr "Salvar histórico" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:150 msgid "Enable the gnome-shell extension" msgstr "Habilitar a extensão do gnome-shell" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:156 msgid "Sync the daemon state with the extension's one" msgstr "Sincronizar o estado do daemon com a extensão" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:162 msgid "" "When enabled, the daemon automatically starts or stops tracking clipboard " "changes to match the GNOME Shell extension's enabled state" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:166 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:174 msgid "Clipboards synchronization" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:168 msgid "Primary selection affects history" msgstr "Seleção primária afeta o histórico" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:174 msgid "Synchronize clipboard with primary selection" msgstr "Sincronizar área de transferência com a seleção primária" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:181 msgid "Optional features" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:183 msgid "Trim items" msgstr "Aparar itens" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:189 msgid "Detect growing lines" msgstr "Detectar linhas crescentes" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:195 msgid "" "When enabled, if a new clipboard entry starts with the previous one, the " "previous entry is replaced instead of creating a new one" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:92 msgid "History settings" msgstr "Configurações do histórico" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:103 msgid "Resources limits" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:120 msgid "Text limits" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:122 msgid "Min text item length" msgstr "Tamanho mínimo do item de texto" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:129 msgid "Max text item length" msgstr "Tamanho máximo do item de texto" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:137 #, fuzzy msgid "Display settings" msgstr "Configurações do histórico" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:139 msgid "Max element size when displaying" msgstr "Tamanho máximo do elemento ao exibir" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:81 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:92 #, fuzzy msgid "Images settings" msgstr "A UI de configurações" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:94 msgid "Images support" msgstr "Suporte a Imagens" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:100 msgid "Image previews" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:106 msgid "Preview size" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:122 msgid "Keyboard shortcuts" msgstr "Atalhos do teclado" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:133 #, fuzzy msgid "History access" msgstr "Históricos" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:150 msgid "Active element manipulation" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-util.c:51 #: src/ui/gpaste-ui-edit-item.c:84 src/ui/gpaste-ui-new-item.c:66 #: src/ui/gpaste-ui-panel.c:311 msgid "Cancel" msgstr "Cancelar" #. Translators: %s is the name of the history being emptied. #: src/libgpaste/gpaste-gtk4/gpaste-gtk-util.c:126 #, fuzzy, c-format msgid "Do you really want to empty \"%s\"?" msgstr "Você quer mesmo esvaziar o histórico?" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-util.c:127 #: src/ui/gpaste-ui-history.c:153 src/ui/gpaste-ui-history.c:428 #: src/ui/gpaste-ui-panel.c:517 msgid "Empty" msgstr "Esvaziar" #: src/ui/gpaste-ui.c:47 #, fuzzy msgid "Clipboard management system" msgstr "Clipboard;Manager;" #: src/ui/gpaste-ui-delete-item.c:46 src/ui/gpaste-ui-panel.c:358 #: src/ui/gpaste-ui-panel.c:518 msgid "Delete" msgstr "Apagar" #: src/ui/gpaste-ui-edit-item.c:85 src/ui/gpaste-ui-edit-item.c:139 msgid "Edit" msgstr "Editar" #: src/ui/gpaste-ui-history.c:266 #, fuzzy msgid "No Results" msgstr "(Nenhum resultado)" #: src/ui/gpaste-ui-new-item.c:67 msgid "Add new item" msgstr "" #: src/ui/gpaste-ui-new-item.c:100 msgid "New item" msgstr "" #: src/ui/gpaste-ui-panel.c:307 msgid "Under which name do you want to backup this history?" msgstr "Com qual nome você deseja salvar este histórico?" #: src/ui/gpaste-ui-panel.c:311 src/ui/gpaste-ui-panel.c:516 msgid "Backup" msgstr "Backup" #. Translators: %s is the name of the history being deleted. #: src/ui/gpaste-ui-panel.c:357 #, fuzzy, c-format msgid "Are you sure you want to delete \"%s\"?" msgstr "Tem certeza que quer apagar este histórico?" #: src/ui/gpaste-ui-panel.c:441 #, fuzzy msgid "Switch to history" msgstr "alterna para um outro histórico" #: src/ui/gpaste-ui-panel.c:448 msgid "Switch to" msgstr "Alternar para" #: src/ui/gpaste-ui-reexec.c:45 msgid "Restart" msgstr "Reiniciar" #: src/ui/gpaste-ui-reexec.c:45 msgid "Do you really want to restart the daemon?" msgstr "Você quer mesmo reiniciar o daemon?" #: src/ui/gpaste-ui-reexec.c:70 msgid "Restart the daemon" msgstr "Reiniciar o daemon" #: src/ui/gpaste-ui-search.c:23 msgid "Search" msgstr "Pesquisar" #: src/ui/gpaste-ui-settings.c:35 msgid "GPaste Settings" msgstr "Configurações do GPaste" #: src/ui/gpaste-ui-shortcuts-window.c:21 msgid "General" msgstr "Geral" #: src/ui/gpaste-ui-switch.c:68 msgid "Stop" msgstr "Parar" #: src/ui/gpaste-ui-switch.c:68 msgid "Do you really want to stop tracking clipboard changes?" msgstr "" "Você quer mesmo parar o monitoramento de alterações na área de transferência?" #: src/ui/gpaste-ui-upload-item.c:46 msgid "Upload" msgstr "Carregar" #: src/ui/gpaste-ui-window.c:303 msgid "Quit" msgstr "Sair" #: src/ui/gpaste-ui-window.c:380 #, fuzzy msgid "Histories" msgstr "Históricos" #: src/ui/gpaste-ui-window.c:381 #, fuzzy msgid "History" msgstr "Históricos" #~ msgid "is already running." #~ msgstr "já está em execução." #~ msgid "New" #~ msgstr "Novo" #~ msgid "Keyboard Shortcuts" #~ msgstr "Atalhos do teclado" #~ msgid "About GPaste" #~ msgstr "Sobre de GPaste" #~ msgid "number" #~ msgstr "número" #~ msgid "delete th item of the history" #~ msgstr "apaga o -ésimo item do histórico" #~ msgid "upload the th item to a pastebin service" #~ msgstr "" #~ "Apagar o primeiro item do histórico: carrega o -ésimo item para " #~ "um serviço de pastebin" #~ msgid "launch the applet" #~ msgstr "inicia o applet do GPaste" #~ msgid "launch the unity application indicator" #~ msgstr "inicia o aplicativo indicador do unity" #~ msgid "GPaste Applet" #~ msgstr "Applet do GPaste" #~ msgid "Tray icon to manage GPaste" #~ msgstr "Ícone da bandeja para gerenciar o GPaste" #~ msgid "" #~ "GPaste provides you with an applet, in the form of a status icon which " #~ "will give you access to your history in your tray area." #~ msgstr "" #~ "O GPaste fornece um applet na forma de um ícone de status, que dá acesso " #~ "ao seu histórico a partir da bandeja do sistema." #~ msgid "GPaste AppIndicator" #~ msgstr "Aplicativo Indicador do GPaste" #~ msgid "Unity application indicator to manage GPaste" #~ msgstr "Aplicativo indicador do Unity para gerenciar o GPaste" #~ msgid "" #~ "GPaste provides you with an application indicator for unity which will " #~ "give you access to your history in your indicator area." #~ msgstr "" #~ "O GPaste fornece um aplicativo indicador para o unity que dá acesso ao " #~ "seu histórico a partir da área de indicações." #, fuzzy #~ msgid "The AppIndicator menu" #~ msgstr "Aplicativo Indicador do GPaste" #~ msgid "Max displayed history size: " #~ msgstr "Tamanho máximo do histórico ao exibir:" #~ msgid "Max history size: " #~ msgstr "Tamanho máximo do histórico:" #~ msgid "Max memory usage (MB): " #~ msgstr "Uso de memória (MB): " #~ msgid "is not installed" #~ msgstr "não está instalado" #~ msgid "Backup history as: " #~ msgstr "Backup do histórico como: " #~ msgid "Ok" #~ msgstr "Ok" #~ msgid "Could not register DBus service." #~ msgstr "Não foi possível registrar o serviço DBus." #~ msgid "GPaste user interface" #~ msgstr "Interface de usuário do GPaste" #~ msgid "GPaste graphical interface" #~ msgstr "Interface gráfica do GPaste" #~ msgid "Manage GPaste" #~ msgstr "Gerenciar o GPaste" #~ msgid "GPaste daemon settings" #~ msgstr "Configurações do daemon GPaste" #~ msgid "" #~ "GPaste provides you with a settings utility allowing you to customize its " #~ "behaviour as expected." #~ msgstr "" #~ "O GPaste fornece um utilitário de configurações que permite personalizar " #~ "o comportamento da maneira como você espera." #~ msgid "Manage the GPaste daemon settings" #~ msgstr "Gerenciar as configurações do daemon GPaste" #~ msgid "Stop tracking changes" #~ msgstr "Parar o monitoramento" #, fuzzy #~ msgid "print the history without newlines" #~ msgstr "imprime o histórico com os índices" #~ msgid "print the history (raw) without indexes" #~ msgstr "imprime o histórico (cru), sem os índices" #~ msgid "print the history with NUL as separator" #~ msgstr "imprime o histórico com um NULO como separador" #~ msgid "get the th item from the history (raw)" #~ msgstr "obtém o n-ésimo item do histórico (cru)" #~ msgid "Couldn't spawn gpaste-app-indicator.\n" #~ msgstr "Não foi possível abrir o gpaste-app-indicator.\n" Keruspe-GPaste-724def1/po/ru.po000066400000000000000000001750071521206431300163420ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Marc-Antoine Perennou # This file is distributed under the same license as the gpaste package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: gpaste 3.42.2\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-06-09 21:21+0200\n" "PO-Revision-Date: 2025-04-15 16:05+0000\n" "Last-Translator: Сергей \n" "Language-Team: Russian \n" "Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "X-Generator: Weblate 5.11-dev\n" #: data/control-center/42-gpaste.control-center.xml.in:2 msgid "@GETTEXT_PACKAGE@" msgstr "@GETTEXT_PACKAGE@" #: data/control-center/42-gpaste.control-center.xml.in:3 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:136 #: src/ui/gpaste-ui-shortcuts-window.c:24 msgid "Launch the graphical tool" msgstr "Запустить графический интерфейс" #: data/control-center/42-gpaste.control-center.xml.in:4 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:153 #: src/ui/gpaste-ui-shortcuts-window.c:25 msgid "Mark the active item as being a password" msgstr "Пометить активный элемент как пароль" #: data/control-center/42-gpaste.control-center.xml.in:5 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:167 #: src/ui/gpaste-ui-shortcuts-window.c:23 msgid "Delete the active item from history" msgstr "Удалить активный элемент из истории" #: data/control-center/42-gpaste.control-center.xml.in:6 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:143 #: src/ui/gpaste-ui-shortcuts-window.c:26 msgid "Display the history" msgstr "Показать историю" #: data/control-center/42-gpaste.control-center.xml.in:7 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:177 #: src/ui/gpaste-ui-shortcuts-window.c:27 msgid "Sync the clipboard to the primary selection" msgstr "Синхронизировать буфер обмена с основным выделением" #: data/control-center/42-gpaste.control-center.xml.in:8 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:184 #: src/ui/gpaste-ui-shortcuts-window.c:28 msgid "Sync the primary selection to the clipboard" msgstr "Синхронизировать основное выделение с буфером обмена" #: data/control-center/42-gpaste.control-center.xml.in:9 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:160 #: src/ui/gpaste-ui-shortcuts-window.c:29 msgid "Upload the active item to a pastebin service" msgstr "Отправить активный элемент на сервис pastebin" #: data/desktop/org.gnome.GPaste.Daemon.desktop.in.in:3 #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:3 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:6 msgid "GPaste" msgstr "GPaste" #: data/desktop/org.gnome.GPaste.Preferences.desktop.in.in:3 msgid "GPaste Preferences" msgstr "Настройки GPaste" #: data/desktop/org.gnome.GPaste.Preferences.desktop.in.in:4 msgid "Manage your GPaste preferences" msgstr "Управляйте настройками GPaste" #: data/desktop/org.gnome.GPaste.Preferences.desktop.in.in:5 #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:6 msgid "Clipboard;Manager;Settings;Preferences;Configuration;" msgstr "Clipboard;Manager;Settings;Preferences;Configuration;Буфер;Обмена;Менеджер;Настройки;Предпочтения;Конфигурация;" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:4 #, fuzzy msgid "Clipboard Manager" msgstr "Отслеживать изменения в буфере обмена" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:5 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:7 msgid "Manage your clipboard history" msgstr "Управляйте историей буфера обмена" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:16 #, fuzzy msgid "Preferences" msgstr "Настройки GPaste" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:20 #: src/gnome-shell/aboutItem.js:13 src/ui/gpaste-ui-about.c:38 msgid "About" msgstr "О нас" #: data/gsettings/org.gnome.GPaste.gschema.xml:7 msgid "Max size of an element when displaying it" msgstr "Максимальный размер элемента при его отображении" #: data/gsettings/org.gnome.GPaste.gschema.xml:8 msgid "" "The extra stuff of that element will be replaced by \"…\", and newlines by " "\" \" when displaying from the applet, 0 to disable." msgstr "" "Лишнее в этом элементе будет заменено на \"...\", а новые строки на \" \" " "при отображении из апплета, 0 для отключения." #: data/gsettings/org.gnome.GPaste.gschema.xml:15 msgid "Do we detect and replace growing lines in history?" msgstr "Мы обнаруживаем и заменяем растущие линии в истории?" #: data/gsettings/org.gnome.GPaste.gschema.xml:16 msgid "" "By default, selecting \"Here is\", then \"Here is an example\" will create " "two entries in the history. With this feature enabled, the first one will be " "replaced by the second one." msgstr "" "По умолчанию выделение \"Вот\", а затем \"Вот пример\" создаст две записи в " "истории. При включении этой функции первая запись будет заменена второй." #: data/gsettings/org.gnome.GPaste.gschema.xml:24 msgid "The name of the current history" msgstr "Имя текущей истории" #: data/gsettings/org.gnome.GPaste.gschema.xml:25 msgid "The default name is \"history\"" msgstr "Имя по умолчанию - \"история\"" #: data/gsettings/org.gnome.GPaste.gschema.xml:32 msgid "Do we save the images copied to history, or only text?" msgstr "Сохраняем ли мы скопированные изображения в историю или только текст?" #: data/gsettings/org.gnome.GPaste.gschema.xml:33 msgid "By default, we're saving only text" msgstr "По умолчанию мы сохраняем только текст" #: data/gsettings/org.gnome.GPaste.gschema.xml:40 msgid "Show image previews in the history?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:41 msgid "By default, we show previews of images in the history" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:49 msgid "Size of image previews in pixels" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:50 msgid "Default size is 100 pixels" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:57 msgid "Do we close the UI after selecting an item?" msgstr "Закрываем ли мы пользовательский интерфейс после выбора элемента?" #: data/gsettings/org.gnome.GPaste.gschema.xml:58 msgid "By default, we close it" msgstr "По умолчанию мы закрываем его" #: data/gsettings/org.gnome.GPaste.gschema.xml:65 msgid "Do we open the UI window centered?" msgstr "Открыть окно пользовательского интерфейса по центру?" #: data/gsettings/org.gnome.GPaste.gschema.xml:66 msgid "By default, we open it where the mouse cursor is" msgstr "По умолчанию окно открывается там, где находится курсор мыши" #: data/gsettings/org.gnome.GPaste.gschema.xml:73 msgid "The keyboard shortcut to launch the graphical interface" msgstr "Комбинация клавиш для запуска графического интерфейса" #: data/gsettings/org.gnome.GPaste.gschema.xml:74 msgid "" "By default, hitting ctrl + alt + g does that (\"G\"). An empty " "string here disables this functionnality." msgstr "" "По умолчанию нажатие ctrl + alt + g делает это («G»). Пустая " "строка здесь отключает эту функцию." #: data/gsettings/org.gnome.GPaste.gschema.xml:82 msgid "The keyboard shortcut to mark the active item as being a password" msgstr "Комбинация клавиш для пометки активного элемента как пароля" #: data/gsettings/org.gnome.GPaste.gschema.xml:83 msgid "" "By default, hitting ctrl + alt + s will mark the active item as being a " "password (\"S\"). An empty string here disables this " "functionnality." msgstr "" "По умолчанию нажатие ctrl + alt + s помечает активный элемент как пароль " "(«S»). Пустая строка здесь отключает эту функцию." #: data/gsettings/org.gnome.GPaste.gschema.xml:92 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:146 msgid "Max displayed history size" msgstr "Максимальный размер отображаемой истории" #: data/gsettings/org.gnome.GPaste.gschema.xml:93 msgid "Maximum number of items displayed in the history" msgstr "Максимальное количество элементов, отображаемых в истории" #: data/gsettings/org.gnome.GPaste.gschema.xml:101 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:105 msgid "Max history size" msgstr "Максимальный размер истории" #: data/gsettings/org.gnome.GPaste.gschema.xml:102 msgid "Maximum number of items in history" msgstr "Максимальное количество элементов в истории" #: data/gsettings/org.gnome.GPaste.gschema.xml:110 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:112 msgid "Max memory usage (MB)" msgstr "Максимальное использование памяти (МБ)" #: data/gsettings/org.gnome.GPaste.gschema.xml:111 msgid "Maximum amount of memory used to store contents" msgstr "Максимальный объем памяти, используемый для хранения содержимого" #: data/gsettings/org.gnome.GPaste.gschema.xml:119 msgid "Max text item size" msgstr "Максимальный размер текстового элемента" #: data/gsettings/org.gnome.GPaste.gschema.xml:120 msgid "Maximum size of a text item. Anything out of this boundary is ignored." msgstr "" "Максимальный размер текстового элемента. Все, что выходит за пределы этой " "границы, игнорируется." #: data/gsettings/org.gnome.GPaste.gschema.xml:128 msgid "Min text item size" msgstr "Минимальный размер текстового элемента" #: data/gsettings/org.gnome.GPaste.gschema.xml:129 msgid "Minimum size of a text item. Anything out of this boundary is ignored." msgstr "" "Минимальный размер текстового элемента. Все, что выходит за пределы этой " "границы, игнорируется." #: data/gsettings/org.gnome.GPaste.gschema.xml:136 msgid "The keyboard shortcut to delete the first element in history" msgstr "Комбинация клавиш для удаления первого элемента в истории" #: data/gsettings/org.gnome.GPaste.gschema.xml:137 msgid "" "By default, hitting ctrl + alt + v does that (\"V\"). An empty " "string here disables this functionnality." msgstr "" "По умолчанию нажатие ctrl + alt + v делает это («V»). Пустая " "строка здесь отключает эту функцию." #: data/gsettings/org.gnome.GPaste.gschema.xml:145 msgid "Does the primary selection affects history?" msgstr "Влияет ли первичное выделение на историю?" #: data/gsettings/org.gnome.GPaste.gschema.xml:146 msgid "By default, only clipboard (ctrl+c) affects history." msgstr "По умолчанию только буфер обмена (ctrl+c) влияет на историю." #: data/gsettings/org.gnome.GPaste.gschema.xml:153 msgid "" "Do we save all versions of selected rich text (e.g. html) or just the plain " "text version?" msgstr "" "Сохраняем ли мы все версии выделенного форматированного текста (такого как " "html) или только версию с простым текстом?" #: data/gsettings/org.gnome.GPaste.gschema.xml:154 msgid "By default, we're saving all" msgstr "По умолчанию мы сохраняем все" #: data/gsettings/org.gnome.GPaste.gschema.xml:161 msgid "Do we save the history from one session to another?" msgstr "Сохраняем ли мы историю между сеансами?" #: data/gsettings/org.gnome.GPaste.gschema.xml:162 msgid "By default, we're saving it" msgstr "По умолчанию мы ее сохраняем" #: data/gsettings/org.gnome.GPaste.gschema.xml:169 msgid "The keyboard shortcut to display the menu" msgstr "Комбинация клавиш для отображения меню" #: data/gsettings/org.gnome.GPaste.gschema.xml:170 msgid "" "By default, hitting ctrl + alt + h displays the menu (\"H\"). An " "empty string here disables this functionnality." msgstr "" "По умолчанию при нажатии ctrl + alt + h отображается меню («H»). " "Пустая строка здесь отключает эту функцию." #: data/gsettings/org.gnome.GPaste.gschema.xml:178 msgid "The keyboard shortcut to sync the clipboard to the primary selection" msgstr "" "Комбинация клавиш для синхронизации буфера обмена с основным выделением" #: data/gsettings/org.gnome.GPaste.gschema.xml:179 msgid "" "By default, hitting ctrl + alt + o syncs them (\"P\"). An empty " "string here disables this functionnality." msgstr "" "По умолчанию нажатие ctrl + alt + o синхронизирует их («P»). " "Пустая строка здесь отключает эту функцию." #: data/gsettings/org.gnome.GPaste.gschema.xml:187 msgid "The keyboard shortcut to sync the primary selection to the clipboard" msgstr "" "Комбинация клавиш для синхронизации основного выделения с буфером обмена" #: data/gsettings/org.gnome.GPaste.gschema.xml:188 msgid "" "By default, hitting ctrl + alt + p syncs them (\"P\"). An empty " "string here disables this functionnality." msgstr "" "По умолчанию нажатие ctrl + alt + p синхронизирует их («P»). " "Пустая строка здесь отключает эту функцию." #: data/gsettings/org.gnome.GPaste.gschema.xml:196 msgid "Are the primary selection and the clipboard synchronized?" msgstr "Синхронизированы ли основное выделение и буфер обмена?" #: data/gsettings/org.gnome.GPaste.gschema.xml:197 msgid "By default, the primary selection and the clipboard are independent." msgstr "По умолчанию основное выделение и буфер обмена являются независимыми." #: data/gsettings/org.gnome.GPaste.gschema.xml:204 msgid "Do we track the clipboard changes?" msgstr "Отслеживаем ли мы изменения в буфере обмена?" #: data/gsettings/org.gnome.GPaste.gschema.xml:205 msgid "By default, we're tracking those changes." msgstr "По умолчанию мы отслеживаем эти изменения." #: data/gsettings/org.gnome.GPaste.gschema.xml:212 msgid "" "Do we sync the daemon state with the gnome-shell extension's one? (disable " "the daemon when disabling the extension)" msgstr "" "Синхронизируем ли мы состояние демона с состоянием расширения gnome-shell? " "(отключение демона при отключении расширения)" #: data/gsettings/org.gnome.GPaste.gschema.xml:213 msgid "By default, the daemon state keeps unchanged" msgstr "По умолчанию состояние демона остается неизменным" #: data/gsettings/org.gnome.GPaste.gschema.xml:220 msgid "Do we trim the textual items before adding them to history?" msgstr "Обрезаем ли мы текстовые элементы, прежде чем добавить их в историю?" #: data/gsettings/org.gnome.GPaste.gschema.xml:221 msgid "" "Trimming means removing all trailing and ending spaces. By default, we're " "letting them as-is." msgstr "" "Обрезка означает удаление пробелов и символов перевода каретки в конце " "строки. По умолчанию мы оставляем их как есть." #: data/gsettings/org.gnome.GPaste.gschema.xml:229 msgid "" "The keyboard shortcut to upload the first element in history to a pastebin " "service" msgstr "" "Комбинация клавиш для отправки первого элемента истории на сервис pastebin" #: data/gsettings/org.gnome.GPaste.gschema.xml:230 msgid "" "By default, hitting ctrl + alt + u does that (\"U\"). An empty " "string here disables this functionnality." msgstr "" "По умолчанию нажатие ctrl + alt + u делает это («U»). Пустая " "строка здесь отключает эту функцию." #: data/gsettings/org.gnome.GPaste.gschema.xml:238 msgid "Do we prompt for confirmation when emptying a history?" msgstr "Запрашиваем ли мы подтверждение при очистке истории?" #: data/gsettings/org.gnome.GPaste.gschema.xml:239 msgid "By default, we do as it's a destructive action" msgstr "По умолчанию мы делаем это, поскольку это деструктивное действие" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:9 msgid "Marc-Antoine Perennou" msgstr "Marc-Antoine Perennou" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:17 msgid "" "GPaste is a clipboard managing system allowing you to track and manage your " "clipboard history in a highly customizable way." msgstr "" "GPaste — это система управления буфером обмена, позволяющая отслеживать и " "управлять историей буфера обмена с широкими возможностями настройки." #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:20 msgid "" "GPaste provides you with a graphical tool allowing you to manage everything " "easily." msgstr "" "GPaste предоставляет вам графический инструмент, позволяющий легко управлять " "всем." #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:27 msgid "The main UI" msgstr "Основной интерфейс" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:31 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:35 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:39 msgid "The settings UI" msgstr "Настройки интерфейса" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:51 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:78 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:90 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:100 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:120 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:133 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:143 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:152 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:161 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:180 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:197 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:205 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:213 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:231 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:239 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:247 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:255 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:263 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:287 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:295 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:303 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:311 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:319 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:327 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:335 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:343 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:352 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:361 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:379 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:387 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:395 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:403 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:421 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:429 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:438 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:447 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:456 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:464 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:485 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:493 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:501 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:509 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:517 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:533 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:541 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:549 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:557 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:573 msgid "This is a maintenance release. Changes:" msgstr "Это обслуживающий выпуск. Изменения:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:53 msgid "Fix building without the GNOME Shell extension (-Dgnome-shell=false)" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:54 msgid "" "Restore GTK deprecation version-gating and drop the unused build-time gjs " "dependency" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:55 msgid "Target GNOME Shell 50 in the extension" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:56 msgid "Bump the library soversions to reflect the API/ABI changes since 45.8" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:62 msgid "" "This is a major release porting GPaste to GTK 4 and libadwaita. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:64 msgid "Port the daemon, history UI and preferences to GTK 4 and libadwaita" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:65 msgid "Show image thumbnails in the history, with configurable preview size" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:66 msgid "" "Support global keyboard shortcuts on Wayland through the XDG GlobalShortcuts " "portal" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:67 msgid "Recognise copied colours as dedicated colour items" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:68 msgid "" "Give keybindings human-readable descriptions and install a daemon desktop " "file" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:69 msgid "Fix images sometimes being repeatedly re-added to the history" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:70 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:81 msgid "" "Fix keyboard shortcuts not triggering when NumLock and CapsLock are both " "active" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:71 msgid "" "Fix several crashes (search provider, UI lifetime, GNOME Shell extension) " "and memory leaks" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:72 msgid "Modernise the GNOME Shell extension to current conventions" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:80 msgid "Fix use-after-free crash in the GNOME Shell search provider" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:82 msgid "" "Fix memory leaks when re-copying history items and when rebinding shortcuts" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:83 msgid "Fix potential crash when enforcing a very small history size" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:84 msgid "Build: ship the GSettings schema as a static file" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:92 msgid "" "GNOME Shell extension now retries the daemon connection before giving up" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:93 msgid "Fix test crash when GrabAccelerators is not allowed" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:94 msgid "Build: simplify gsettings compilation for tests" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:102 msgid "Fix GC crash and signal leak when disabling the GNOME Shell extension" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:103 msgid "GNOME Shell extension now handles daemon connection failure gracefully" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:104 #, fuzzy msgid "Fix crash when a history item has no value yet" msgstr "исправлен сбой, когда истории ещё нет" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:105 msgid "Fix image files not being deleted when history items are removed" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:106 msgid "Fix image files stored in wrong directory" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:107 #, fuzzy msgid "Fix keyboard focus being stolen by history items on hover" msgstr "" "Исправлена ошибка, приводившая к открытию истории только с одним элементом" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:108 msgid "" "Fix key events incorrectly forwarded to search when another entry has focus" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:109 msgid "Fix signal loop when updating shortcut entries from settings" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:110 msgid "Fix default history item count not reset after history deletion" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:111 msgid "Enforce minimum window size to prevent unresizable state" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:112 msgid "Add descriptive tooltips for settings entries" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:113 msgid "Build: explicitly link libgpaste libraries against libc" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:114 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:127 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:137 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:146 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:155 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:164 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:174 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:225 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:267 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:281 msgid "Translations updates" msgstr "Обновление переводов" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:122 msgid "" "Fix infinite Pango assertion loop that could fill disk when clipboard " "content contained tab characters" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:123 msgid "Various bug fixes and memory management improvements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:124 msgid "Daemon improvements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:125 msgid "GNOME Shell extension improvements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:126 #, fuzzy msgid "GLib >= 2.76 is now required" msgstr "теперь требуется gcr 4" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:135 #, fuzzy msgid "Support for gnome 50" msgstr "Поддержка gnome 48" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:136 #, fuzzy msgid "Support for gnome 49" msgstr "Поддержка gnome 48" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:145 msgid "Support for gnome 48" msgstr "Поддержка gnome 48" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:154 msgid "Support for gnome 47" msgstr "Поддержка gnome 47" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:163 msgid "Support for gnome 46" msgstr "Поддержка gnome 46" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:170 msgid "Stable release for GNOME 45. Changes:" msgstr "Стабильный выпуск для GNOME 45. Изменения:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:172 msgid "Port to gnome 45" msgstr "Портирован на gnome 45" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:173 msgid "Add setting to open ui window centered" msgstr "" "Добавить настройку для открытия окна пользовательского интерфейса по центру" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:182 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:199 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:233 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:289 msgid "Fix a bug leading to history with only one item" msgstr "" "Исправлена ошибка, приводившая к открытию истории только с одним элементом" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:188 msgid "First release for GNOME 44. Changes:" msgstr "Первый выпуск для GNOME 44. Изменения:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:190 msgid "gcr 4 is now required" msgstr "теперь требуется gcr 4" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:191 msgid "Port to gnome 44" msgstr "Портирован на gnome 44" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:207 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:241 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:297 msgid "Avoid crash under heavy memory load" msgstr "Предотвращение сбоев при большой нагрузке на память" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:215 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:249 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:305 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:381 msgid "Respect --use-index when displaying history" msgstr "Учитываем --use-index при отображении истории" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:221 msgid "First release for GNOME 43. Changes:" msgstr "Первый выпуск для GNOME 43. Изменения:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:223 msgid "Port to GNOME 43" msgstr "Портирован на GNOME 43" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:224 msgid "Internal preparation for gtk4 port" msgstr "Внутренняя подготовка к переходу на gtk4" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:257 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:313 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:389 msgid "Open GPaste UI where the mouse pointer is" msgstr "" "Открытие пользовательского интерфейса GPaste в том месте, где находится " "указатель мыши" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:265 msgid "Fixes to the new preferences tool" msgstr "Исправления в новом инструменте настроек" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:266 msgid "Style fixes" msgstr "Исправления стиля" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:273 msgid "First release for GNOME 42. Changes:" msgstr "Первый выпуск для GNOME 42. Изменения:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:275 msgid "" "Old libgpaste replaced by a new minimal libgpaste-2 with no gtk dependency" msgstr "" "Старая библиотека libgpaste заменена новой минимальной libgpaste-2 без " "зависимости от gtk" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:276 msgid "New libgpaste-gtk3 for utils and settings ui" msgstr "Новая libgpaste-gtk3 для утилит и интерфейса настроек" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:277 msgid "New libgpaste-gtk4 for utils and preferences ui" msgstr "Новая libgpaste-gtk4 для интерфейса утилит и настроек" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:278 msgid "New gtk4 based gpaste-preferences utility" msgstr "Новая утилита настроек gpaste на основе gtk4" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:279 msgid "Autotools are no longer supported" msgstr "Автоинструменты больше не поддерживаются" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:280 msgid "Extension updated for gnome-shell 42" msgstr "Расширение обновлено для gnome-shell 42" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:321 msgid "fix the storage path for meson builds" msgstr "исправлен путь хранения для сборок мезон" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:329 msgid "fix some race conditions in history handling" msgstr "исправлены некоторые условия способа обработки истории" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:337 msgid "better fix crash when there is no history yet" msgstr "улучшено исправление сбоя, когда истории ещё нет" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:345 msgid "fix crash when there is no history yet" msgstr "исправлен сбой, когда истории ещё нет" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:346 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:355 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:364 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:373 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:397 msgid "translations update" msgstr "обновление переводов" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:354 msgid "fix gnome-shell exntesion when the daemon restarts" msgstr "исправлено расширение gnome-shell при перезапуске демона" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:363 msgid "Fix keybindings for wayland" msgstr "Исправлены привязки клавиш для Wayland" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:370 msgid "First release for GNOME 41. Changes:" msgstr "Первый выпуск для GNOME 41. Изменения:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:372 msgid "port to gnome-shell 41" msgstr "переход на gnome-shell 41" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:405 msgid "fix a crash in memory usage checking" msgstr "исправление сбоя при проверке использования памяти" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:412 msgid "First release for GNOME 40. Changes:" msgstr "Первый выпуск для GNOME 40. Изменения:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:414 msgid "port to gnome-shell 40" msgstr "переход на gnome-shell 40" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:415 msgid "placeholder for gnome-shell prefs" msgstr "место для предварительных настроек gnome-shell" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:423 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:487 msgid "fix X11 keybinder outside of GNOME" msgstr "исправлена привязка клавиш X11 вне GNOME" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:431 msgid "better handling and reporting of invalid uuids passed to gpaste-client" msgstr "" "улучшена обработка и информирование о недопустимых uuids, переданных в " "gpaste-client" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:432 msgid "" "gpaste-client now has a --use-index argument for several subcommands to use " "index instead of uuid" msgstr "" "gpaste-client теперь имеет аргумент --use-index в нескольких подкомандах для " "использования индекса вместо uuid" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:440 msgid "fix the make-password keybinding" msgstr "исправлена привязка клавиши для make-password" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:441 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:450 msgid "updated translations" msgstr "обновленные переводы" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:449 msgid "gnome-shell extension warning fixes" msgstr "исправлены предупреждения в расширении для gnome-shell" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:458 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:495 msgid "gnome-shell extension cosmetic updates" msgstr "косметические обновления в расширения gnome-shell" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:466 msgid "Disable images support by default (can be reenabled in preferences)" msgstr "" "По умолчанию отключена поддержка изображений (можно снова включить в " "настройках)" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:467 msgid "Search now includes passwords (using their names)" msgstr "Поиск теперь включает пароли (используя их имена)" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:468 msgid "systemd integration enhancements" msgstr "улучшения интеграции с systemd" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:474 msgid "First release for GNOME 3.38. Changes:" msgstr "Первый выпуск для GNOME 3.38. Изменения:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:476 msgid "Drop the Tracking DBus signal" msgstr "Сброс сигнала DBus для отслеживания" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:477 msgid "Switch to uuids to identify items" msgstr "Переход на uuids для идентификации предметов" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:478 msgid "Bump DBus interface to org.gnome.GPaste2" msgstr "Обновление интерфейса DBus до org.gnome.GPaste2" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:479 msgid "Update to gnome-shell 3.38.0" msgstr "Обновление до gnome-shell 3.38.0" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:503 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:535 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:577 msgid "Fix activating items using Ctrl-Number in gnome-shell" msgstr "Исправлена активация элементов с помощью Ctrl+Номер в gnome-shell" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:511 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:543 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:576 msgid "Fix keybinding regrab with gnome-shell" msgstr "Исправлена привязка клавиш regrab с помощью gnome-shell" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:519 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:551 msgid "Fix keybinding grab with gnome-shell" msgstr "Исправлен захват привязки клавиш с помощью gnome-shell" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:525 msgid "First release for GNOME 3.36. Changes:" msgstr "Первый выпуск для GNOME 3.36. Изменения:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:527 msgid "Update to gnome-shell 3.36.0" msgstr "Обновление до gnome-shell 3.36.0" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:559 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:575 msgid "Compatibility with recent appstream-glib" msgstr "Совместимость с последними версиями appstream-glib" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:565 msgid "First release for GNOME 3.34. Changes:" msgstr "Первый выпуск для GNOME 3.34. Изменения:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:567 msgid "Update to gnome-shell 3.34.0" msgstr "Обновление до gnome-shell 3.34.0" #: src/client/gpaste-client.c:146 msgid "Couldn't spawn" msgstr "Не удалось создать" #: src/client/gpaste-client.c:158 #, c-format msgid "Usage:\n" msgstr "Использование:\n" #. Translators: help for gpaste history #: src/client/gpaste-client.c:160 msgid "print the history with UUIDs" msgstr "выводить историю с UUID" #. Translators: help for gpaste history-size #: src/client/gpaste-client.c:162 msgid "print the size of the history" msgstr "выводить размер истории" #. Translators: help for gpaste get-history #: src/client/gpaste-client.c:164 msgid "get the name of the current history" msgstr "получить имя текущей истории" #. Translators: help for gpaste backup-history #. Translators: help for gpaste switch-history #. Translators: help for gpaste delete-history #. Translators: help for gpaste add-password #. Translators: help for gpaste set-password #. Translators: help for gpaste delete-passworf #: src/client/gpaste-client.c:166 src/client/gpaste-client.c:168 #: src/client/gpaste-client.c:170 src/client/gpaste-client.c:176 #: src/client/gpaste-client.c:188 src/client/gpaste-client.c:192 msgid "name" msgstr "имя" #: src/client/gpaste-client.c:166 msgid "backup current history" msgstr "резервное копирование текущей истории" #: src/client/gpaste-client.c:168 msgid "switch to another history" msgstr "переключиться на другую историю" #: src/client/gpaste-client.c:170 msgid "delete a history" msgstr "удалить историю" #. Translators: help for gpaste list-histories #: src/client/gpaste-client.c:172 msgid "list available histories" msgstr "список доступных историй" #. Translators: help for gpaste add #: src/client/gpaste-client.c:174 msgid "text" msgstr "текст" #: src/client/gpaste-client.c:174 msgid "set text to clipboard" msgstr "установить текст в буфер обмена" #: src/client/gpaste-client.c:176 msgid "password" msgstr "пароль" #: src/client/gpaste-client.c:176 msgid "add the name - password couple to the clipboard" msgstr "добавить пару имя - пароль в буфер обмена" #. Translators: help for gpaste rename-password #: src/client/gpaste-client.c:178 msgid "old name" msgstr "старое имя" #: src/client/gpaste-client.c:178 msgid "new name" msgstr "новое имя" #: src/client/gpaste-client.c:178 msgid "rename the password" msgstr "переименовать пароль" #. Translators: help for gpaste get #: src/client/gpaste-client.c:180 msgid "get the item from the history" msgstr "получить элемент из истории" #. Translators: help for gpaste select #: src/client/gpaste-client.c:182 msgid "set the item from the history to the clipboard" msgstr "установить элемент из истории в буфер обмена" #. Translators: help for gpaste replace #: src/client/gpaste-client.c:184 msgid "contents" msgstr "содержание" #: src/client/gpaste-client.c:184 msgid "" "replace the contents of the item from the history with the provided " "one" msgstr "" "заменить содержимое элемента из истории на предоставленный элемент" #. Translators: help for gpaste merge #: src/client/gpaste-client.c:186 msgid "" "merge the items matching the UUIDs from the history and put the result in " "the clipboard" msgstr "" "объединить элементы, соответствующие UUID, из истории и поместить результат " "в буфер обмена" #: src/client/gpaste-client.c:188 msgid "set the item from the history as a password named " msgstr "установить элемент из истории в качестве пароля с именем " #. Translators: help for gpaste delete #: src/client/gpaste-client.c:190 msgid "delete item from the history" msgstr "удалить элемент из истории" #: src/client/gpaste-client.c:192 msgid "delete the password from the history" msgstr "удалить пароль из истории" #. Translators: help for gpaste file #: src/client/gpaste-client.c:194 msgid "path" msgstr "путь" #: src/client/gpaste-client.c:194 msgid "put the content of the file at into the clipboard" msgstr "поместить содержимое файла в буфер обмена" #. Translators: help for whatever | gpaste #: src/client/gpaste-client.c:196 msgid "whatever" msgstr "что угодно" #: src/client/gpaste-client.c:196 msgid "set the output of whatever to clipboard" msgstr "установить вывод чего-либо в буфер обмена" #. Translators: help for gpaste empty #: src/client/gpaste-client.c:198 msgid "empty the history" msgstr "очистить историю" #. Translators: help for gpaste start #: src/client/gpaste-client.c:200 msgid "start tracking clipboard changes" msgstr "начать отслеживать изменения в буфере обмена" #. Translators: help for gpaste stop #: src/client/gpaste-client.c:202 msgid "stop tracking clipboard changes" msgstr "прекратить отслеживать изменения в буфере обмена" #. Translators: help for gpaste quit #: src/client/gpaste-client.c:204 msgid "alias for stop" msgstr "псевдоним для остановки" #. Translators: help for gpaste daemon-reexec #: src/client/gpaste-client.c:206 msgid "reexecute the daemon (after upgrading...)" msgstr "перезапустить демон (после обновления ...)" #. Translators: help for gpaste preferences #: src/client/gpaste-client.c:208 msgid "launch the configuration tool" msgstr "запустить инструмент настройки" #. Translators: help for gpaste ui #: src/client/gpaste-client.c:210 msgid "launch the graphical tool" msgstr "запустить графический интерфейс" #. Translators: help for gpaste show-history #: src/client/gpaste-client.c:212 msgid "make the applet or extension display the history" msgstr "заставить апплет или расширение отображать историю" #. Translators: help for gpaste upload #: src/client/gpaste-client.c:214 msgid "upload the item to a pastebin service" msgstr "загрузить элемент на сервис pastebin" #. Translators: help for gpaste version #: src/client/gpaste-client.c:216 msgid "display the version" msgstr "показать версию" #. Translators: help for gpaste daemon-version #: src/client/gpaste-client.c:218 msgid "display the daemon version" msgstr "показать версию демона" #. Translators: help for gpaste help #: src/client/gpaste-client.c:220 msgid "display this help" msgstr "показать эту справку" #. Translators: help for gpaste about #: src/client/gpaste-client.c:222 msgid "display the about dialog" msgstr "показать «О программе»" #: src/client/gpaste-client.c:225 #, c-format msgid "Convenience options:" msgstr "Настройки удобства:" #. Translators: help for --use-index #: src/client/gpaste-client.c:228 msgid "use the index of the item instead of its UUID" msgstr "использовать индекс элемента вместо его UUID" #: src/client/gpaste-client.c:231 #, c-format msgid "Display options:" msgstr "Параметры отображения:" #. Translators: help for --oneline #: src/client/gpaste-client.c:234 msgid "display each item on only one line" msgstr "отображать каждый элемент только в одной строке" #. Translators: help for --raw #: src/client/gpaste-client.c:236 msgid "display each item raw (without line numbers)" msgstr "отображать каждый элемент в необработанном виде (без номеров строк)" #. Translators: help for --reverse #: src/client/gpaste-client.c:238 msgid "display the items in reverse order" msgstr "отображать элементы в обратном порядке" #. Translators: help for --zero #: src/client/gpaste-client.c:240 msgid "use a NUL character instead of a new line betweean each item" msgstr "использовать символ NUL вместо новой строки между элементами" #: src/client/gpaste-client.c:243 #, c-format msgid "Merge options:" msgstr "Параметры слияния:" #. Translators: help for --decoration #. Translators: help for --separator #: src/client/gpaste-client.c:246 src/client/gpaste-client.c:248 msgid "string" msgstr "строка" #: src/client/gpaste-client.c:246 msgid "" "add the given decoration to the beginning and the end of each item before " "merging" msgstr "" "добавить заданный декоратор в начало и конец каждого элемента перед слиянием" #: src/client/gpaste-client.c:248 msgid "add the given separator between each item when merging" msgstr "добавить заданный разделитель между элементами при слиянии" #: src/client/gpaste-client.c:345 #, c-format msgid "Successfully reexecuted the daemon\n" msgstr "Успешный перезапуск демона\n" #: src/client/gpaste-client.c:486 msgid "Cannot add non utf8 data as text." msgstr "Невозможно добавить данные, отличные от utf8, в качестве текста." #: src/client/gpaste-client.c:796 src/ui/gpaste-ui-window.c:353 #: src/ui/gpaste-ui-window.c:354 msgid "Couldn't connect to GPaste daemon" msgstr "Не удалось подключиться к демону GPaste" #: src/daemon/gpaste-color-item.c:73 msgid "[Color]" msgstr "" #. Translators: strftime format for image timestamps. Rearrange to match your locale's date/time convention. #: src/daemon/gpaste-image-item.c:219 msgid "%m/%d/%y %T" msgstr "%d.%m.%y %T" #. Translators: Image item displayed in history. %d is width, %d is height, %s is the formatted date. #: src/daemon/gpaste-image-item.c:221 #, c-format msgid "[Image, %d x %d (%s)]" msgstr "[Изображение, %d x %d (%s)]" #: src/daemon/gpaste-make-password-keybinding.c:50 #, fuzzy msgid "Convert to Password" msgstr "переименовать пароль" #. This is the prefix displayed in history to identify a password #: src/daemon/gpaste-password-item.c:65 msgid "Password" msgstr "Пароль" #: src/daemon/gpaste-pop-keybinding.c:64 #, fuzzy msgid "Pop from History" msgstr "Доступ к истории" #: src/daemon/gpaste-show-history-keybinding.c:49 #, fuzzy msgid "Show History" msgstr "Доступ к истории" #: src/daemon/gpaste-sync-clipboard-to-primary-keybinding.c:46 #, fuzzy msgid "Sync Clipboard to Primary" msgstr "Синхронизировать буфер обмена с основным выделением" #: src/daemon/gpaste-sync-primary-to-clipboard-keybinding.c:46 #, fuzzy msgid "Sync Primary to Clipboard" msgstr "Синхронизировать основное выделение с буфером обмена" #: src/daemon/gpaste-ui-keybinding.c:43 msgid "Launch UI" msgstr "" #: src/daemon/gpaste-upload-keybinding.c:64 msgid "Upload to Pastebin" msgstr "" #: src/daemon/gpaste-uris-item.c:87 msgid "[Files] " msgstr "[Файлы] " #: src/daemon/main.c:32 msgid "Stop signal received, exiting" msgstr "Получен сигнал остановки, выходим" #: src/daemon/main.c:69 msgid "Could not acquire DBus name." msgstr "Не удалось получить имя DBus." #: src/gnome-shell/dummyHistoryItem.js:12 msgid "(Couldn't connect to GPaste daemon)" msgstr "(Не удалось подключиться к демону GPaste)" #: src/gnome-shell/dummyHistoryItem.js:17 msgid "(Empty)" msgstr "(Пусто)" #: src/gnome-shell/dummyHistoryItem.js:22 msgid "(No result)" msgstr "(Нет результата)" #: src/gnome-shell/emptyHistoryItem.js:14 msgid "Empty history" msgstr "Очистить историю" #: src/gnome-shell/stateSwitch.js:12 msgid "Track changes" msgstr "Отслеживать изменения в буфере обмена" #: src/gnome-shell/uiItem.js:14 msgid "Graphical tool" msgstr "Графический интерфейс" #: src/libgpaste/gpaste/gpaste-util.c:636 msgid "Could not create history dir" msgstr "Не удалось создать каталог истории" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-macros.h:38 msgid "Failed to register the gtk application" msgstr "Не удалось зарегистрировать приложение GTK" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:108 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:119 msgid "General behaviour" msgstr "Общее поведение" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:121 #: src/ui/gpaste-ui-switch.c:93 msgid "Track clipboard changes" msgstr "Отслеживать изменения в буфере обмена" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:127 msgid "Close UI on select" msgstr "Закрывать интерфейс после выбора" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:133 msgid "Open the UI window centered" msgstr "Открыть окно пользовательского интерфейса по центру" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:139 msgid "Save history" msgstr "Сохранять историю" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:150 msgid "Enable the gnome-shell extension" msgstr "Включить расширение gnome-shell" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:156 msgid "Sync the daemon state with the extension's one" msgstr "Синхронизировать состояние демона с состоянием расширения" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:162 msgid "" "When enabled, the daemon automatically starts or stops tracking clipboard " "changes to match the GNOME Shell extension's enabled state" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:166 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:174 msgid "Clipboards synchronization" msgstr "Синхронизация буфера обмена" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:168 msgid "Primary selection affects history" msgstr "Первичное выделение влияет на историю" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:174 msgid "Synchronize clipboard with primary selection" msgstr "Синхронизировать буфер обмена с первичным выделением" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:181 msgid "Optional features" msgstr "Дополнительные функции" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:183 msgid "Trim items" msgstr "Обрезать элементы" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:189 msgid "Detect growing lines" msgstr "Обнаружение увеличивающихся строк" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:195 msgid "" "When enabled, if a new clipboard entry starts with the previous one, the " "previous entry is replaced instead of creating a new one" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:92 msgid "History settings" msgstr "Настройки истории" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:103 msgid "Resources limits" msgstr "Ограничения ресурсов" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:120 msgid "Text limits" msgstr "Ограничения текста" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:122 msgid "Min text item length" msgstr "Минимальная длина текстового элемента" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:129 msgid "Max text item length" msgstr "Максимальная длина текстового элемента" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:137 msgid "Display settings" msgstr "Настройки отображения" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:139 msgid "Max element size when displaying" msgstr "Максимальный размер элемента при отображении" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:81 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:92 #, fuzzy msgid "Images settings" msgstr "Настройки интерфейса" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:94 msgid "Images support" msgstr "Поддержка изображений" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:100 msgid "Image previews" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:106 msgid "Preview size" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:122 msgid "Keyboard shortcuts" msgstr "Комбинации клавиш" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:133 msgid "History access" msgstr "Доступ к истории" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:150 msgid "Active element manipulation" msgstr "Манипуляции с активными элементами" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-util.c:51 #: src/ui/gpaste-ui-edit-item.c:84 src/ui/gpaste-ui-new-item.c:66 #: src/ui/gpaste-ui-panel.c:311 msgid "Cancel" msgstr "Отмена" #. Translators: %s is the name of the history being emptied. #: src/libgpaste/gpaste-gtk4/gpaste-gtk-util.c:126 #, fuzzy, c-format msgid "Do you really want to empty \"%s\"?" msgstr "Вы действительно хотите очистить историю?" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-util.c:127 #: src/ui/gpaste-ui-history.c:153 src/ui/gpaste-ui-history.c:428 #: src/ui/gpaste-ui-panel.c:517 msgid "Empty" msgstr "Пусто" #: src/ui/gpaste-ui.c:47 msgid "Clipboard management system" msgstr "" #: src/ui/gpaste-ui-delete-item.c:46 src/ui/gpaste-ui-panel.c:358 #: src/ui/gpaste-ui-panel.c:518 msgid "Delete" msgstr "Удалить" #: src/ui/gpaste-ui-edit-item.c:85 src/ui/gpaste-ui-edit-item.c:139 msgid "Edit" msgstr "Редактировать" #: src/ui/gpaste-ui-history.c:266 #, fuzzy msgid "No Results" msgstr "(Нет результата)" #: src/ui/gpaste-ui-new-item.c:67 msgid "Add new item" msgstr "" #: src/ui/gpaste-ui-new-item.c:100 msgid "New item" msgstr "" #: src/ui/gpaste-ui-panel.c:307 msgid "Under which name do you want to backup this history?" msgstr "Под каким именем вы хотите создать резервную копию этой истории?" #: src/ui/gpaste-ui-panel.c:311 src/ui/gpaste-ui-panel.c:516 msgid "Backup" msgstr "Резервное копирование" #. Translators: %s is the name of the history being deleted. #: src/ui/gpaste-ui-panel.c:357 #, fuzzy, c-format msgid "Are you sure you want to delete \"%s\"?" msgstr "Вы уверены, что хотите удалить эту историю?" #: src/ui/gpaste-ui-panel.c:441 #, fuzzy msgid "Switch to history" msgstr "переключиться на другую историю" #: src/ui/gpaste-ui-panel.c:448 msgid "Switch to" msgstr "Переключиться на" #: src/ui/gpaste-ui-reexec.c:45 msgid "Restart" msgstr "Перезапустить" #: src/ui/gpaste-ui-reexec.c:45 msgid "Do you really want to restart the daemon?" msgstr "Вы действительно хотите перезапустить демон?" #: src/ui/gpaste-ui-reexec.c:70 msgid "Restart the daemon" msgstr "Перезапустить демон" #: src/ui/gpaste-ui-search.c:23 msgid "Search" msgstr "Поиск" #: src/ui/gpaste-ui-settings.c:35 msgid "GPaste Settings" msgstr "Настройки GPaste" #: src/ui/gpaste-ui-shortcuts-window.c:21 msgid "General" msgstr "Общие" #: src/ui/gpaste-ui-switch.c:68 msgid "Stop" msgstr "Остановить" #: src/ui/gpaste-ui-switch.c:68 msgid "Do you really want to stop tracking clipboard changes?" msgstr "" "Вы действительно хотите остановить отслеживание изменений в буфере обмена?" #: src/ui/gpaste-ui-upload-item.c:46 msgid "Upload" msgstr "Загрузить" #: src/ui/gpaste-ui-window.c:303 msgid "Quit" msgstr "Выход" #: src/ui/gpaste-ui-window.c:380 #, fuzzy msgid "Histories" msgstr "Доступ к истории" #: src/ui/gpaste-ui-window.c:381 #, fuzzy msgid "History" msgstr "Доступ к истории" #~ msgid "is already running." #~ msgstr "уже запущен." #~ msgid "Open UI window centered" #~ msgstr "Открывать окно пользовательского интерфейса по центру" #~ msgid "New" #~ msgstr "Новый" #~ msgid "Keyboard Shortcuts" #~ msgstr "Комбинации клавиш" #~ msgid "About GPaste" #~ msgstr "О GPaste" Keruspe-GPaste-724def1/po/sl.po000066400000000000000000001302131521206431300163200ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Marc-Antoine Perennou # This file is distributed under the same license as the gpaste package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: gpaste 3.38.5\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-06-09 21:21+0200\n" "PO-Revision-Date: 2021-02-18 20:50+0000\n" "Last-Translator: Matej U \n" "Language-Team: Slovenian \n" "Language: sl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=4; plural=n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || " "n%100==4 ? 2 : 3;\n" "X-Generator: Weblate 4.5\n" #: data/control-center/42-gpaste.control-center.xml.in:2 msgid "@GETTEXT_PACKAGE@" msgstr "" #: data/control-center/42-gpaste.control-center.xml.in:3 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:136 #: src/ui/gpaste-ui-shortcuts-window.c:24 msgid "Launch the graphical tool" msgstr "" #: data/control-center/42-gpaste.control-center.xml.in:4 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:153 #: src/ui/gpaste-ui-shortcuts-window.c:25 msgid "Mark the active item as being a password" msgstr "" #: data/control-center/42-gpaste.control-center.xml.in:5 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:167 #: src/ui/gpaste-ui-shortcuts-window.c:23 msgid "Delete the active item from history" msgstr "" #: data/control-center/42-gpaste.control-center.xml.in:6 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:143 #: src/ui/gpaste-ui-shortcuts-window.c:26 msgid "Display the history" msgstr "" #: data/control-center/42-gpaste.control-center.xml.in:7 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:177 #: src/ui/gpaste-ui-shortcuts-window.c:27 msgid "Sync the clipboard to the primary selection" msgstr "" #: data/control-center/42-gpaste.control-center.xml.in:8 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:184 #: src/ui/gpaste-ui-shortcuts-window.c:28 msgid "Sync the primary selection to the clipboard" msgstr "" #: data/control-center/42-gpaste.control-center.xml.in:9 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:160 #: src/ui/gpaste-ui-shortcuts-window.c:29 msgid "Upload the active item to a pastebin service" msgstr "" #: data/desktop/org.gnome.GPaste.Daemon.desktop.in.in:3 #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:3 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:6 msgid "GPaste" msgstr "GPaste" #: data/desktop/org.gnome.GPaste.Preferences.desktop.in.in:3 msgid "GPaste Preferences" msgstr "" #: data/desktop/org.gnome.GPaste.Preferences.desktop.in.in:4 msgid "Manage your GPaste preferences" msgstr "" #: data/desktop/org.gnome.GPaste.Preferences.desktop.in.in:5 #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:6 msgid "Clipboard;Manager;Settings;Preferences;Configuration;" msgstr "" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:4 msgid "Clipboard Manager" msgstr "" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:5 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:7 msgid "Manage your clipboard history" msgstr "Upravljanje z zgodovino odložišča" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:16 msgid "Preferences" msgstr "" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:20 #: src/gnome-shell/aboutItem.js:13 src/ui/gpaste-ui-about.c:38 msgid "About" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:7 msgid "Max size of an element when displaying it" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:8 msgid "" "The extra stuff of that element will be replaced by \"…\", and newlines by " "\" \" when displaying from the applet, 0 to disable." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:15 msgid "Do we detect and replace growing lines in history?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:16 msgid "" "By default, selecting \"Here is\", then \"Here is an example\" will create " "two entries in the history. With this feature enabled, the first one will be " "replaced by the second one." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:24 msgid "The name of the current history" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:25 msgid "The default name is \"history\"" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:32 msgid "Do we save the images copied to history, or only text?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:33 msgid "By default, we're saving only text" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:40 msgid "Show image previews in the history?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:41 msgid "By default, we show previews of images in the history" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:49 msgid "Size of image previews in pixels" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:50 msgid "Default size is 100 pixels" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:57 msgid "Do we close the UI after selecting an item?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:58 msgid "By default, we close it" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:65 msgid "Do we open the UI window centered?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:66 msgid "By default, we open it where the mouse cursor is" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:73 msgid "The keyboard shortcut to launch the graphical interface" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:74 msgid "" "By default, hitting ctrl + alt + g does that (\"G\"). An empty " "string here disables this functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:82 msgid "The keyboard shortcut to mark the active item as being a password" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:83 msgid "" "By default, hitting ctrl + alt + s will mark the active item as being a " "password (\"S\"). An empty string here disables this " "functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:92 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:146 msgid "Max displayed history size" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:93 msgid "Maximum number of items displayed in the history" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:101 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:105 msgid "Max history size" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:102 msgid "Maximum number of items in history" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:110 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:112 msgid "Max memory usage (MB)" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:111 msgid "Maximum amount of memory used to store contents" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:119 msgid "Max text item size" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:120 msgid "Maximum size of a text item. Anything out of this boundary is ignored." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:128 msgid "Min text item size" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:129 msgid "Minimum size of a text item. Anything out of this boundary is ignored." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:136 msgid "The keyboard shortcut to delete the first element in history" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:137 msgid "" "By default, hitting ctrl + alt + v does that (\"V\"). An empty " "string here disables this functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:145 msgid "Does the primary selection affects history?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:146 msgid "By default, only clipboard (ctrl+c) affects history." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:153 msgid "" "Do we save all versions of selected rich text (e.g. html) or just the plain " "text version?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:154 msgid "By default, we're saving all" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:161 msgid "Do we save the history from one session to another?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:162 msgid "By default, we're saving it" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:169 msgid "The keyboard shortcut to display the menu" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:170 msgid "" "By default, hitting ctrl + alt + h displays the menu (\"H\"). An " "empty string here disables this functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:178 msgid "The keyboard shortcut to sync the clipboard to the primary selection" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:179 msgid "" "By default, hitting ctrl + alt + o syncs them (\"P\"). An empty " "string here disables this functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:187 msgid "The keyboard shortcut to sync the primary selection to the clipboard" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:188 msgid "" "By default, hitting ctrl + alt + p syncs them (\"P\"). An empty " "string here disables this functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:196 msgid "Are the primary selection and the clipboard synchronized?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:197 msgid "By default, the primary selection and the clipboard are independent." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:204 msgid "Do we track the clipboard changes?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:205 msgid "By default, we're tracking those changes." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:212 msgid "" "Do we sync the daemon state with the gnome-shell extension's one? (disable " "the daemon when disabling the extension)" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:213 msgid "By default, the daemon state keeps unchanged" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:220 msgid "Do we trim the textual items before adding them to history?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:221 msgid "" "Trimming means removing all trailing and ending spaces. By default, we're " "letting them as-is." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:229 msgid "" "The keyboard shortcut to upload the first element in history to a pastebin " "service" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:230 msgid "" "By default, hitting ctrl + alt + u does that (\"U\"). An empty " "string here disables this functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:238 msgid "Do we prompt for confirmation when emptying a history?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:239 msgid "By default, we do as it's a destructive action" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:9 msgid "Marc-Antoine Perennou" msgstr "Marc-Antoine Perennou" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:17 msgid "" "GPaste is a clipboard managing system allowing you to track and manage your " "clipboard history in a highly customizable way." msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:20 msgid "" "GPaste provides you with a graphical tool allowing you to manage everything " "easily." msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:27 msgid "The main UI" msgstr "Glavni vmesnik" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:31 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:35 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:39 msgid "The settings UI" msgstr "Vmesnik nastavitev" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:51 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:78 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:90 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:100 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:120 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:133 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:143 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:152 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:161 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:180 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:197 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:205 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:213 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:231 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:239 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:247 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:255 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:263 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:287 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:295 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:303 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:311 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:319 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:327 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:335 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:343 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:352 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:361 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:379 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:387 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:395 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:403 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:421 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:429 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:438 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:447 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:456 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:464 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:485 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:493 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:501 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:509 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:517 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:533 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:541 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:549 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:557 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:573 msgid "This is a maintenance release. Changes:" msgstr "Nameščena je vzdrževalna različica s spremembami:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:53 msgid "Fix building without the GNOME Shell extension (-Dgnome-shell=false)" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:54 msgid "" "Restore GTK deprecation version-gating and drop the unused build-time gjs " "dependency" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:55 msgid "Target GNOME Shell 50 in the extension" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:56 msgid "Bump the library soversions to reflect the API/ABI changes since 45.8" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:62 msgid "" "This is a major release porting GPaste to GTK 4 and libadwaita. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:64 msgid "Port the daemon, history UI and preferences to GTK 4 and libadwaita" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:65 msgid "Show image thumbnails in the history, with configurable preview size" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:66 msgid "" "Support global keyboard shortcuts on Wayland through the XDG GlobalShortcuts " "portal" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:67 msgid "Recognise copied colours as dedicated colour items" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:68 msgid "" "Give keybindings human-readable descriptions and install a daemon desktop " "file" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:69 msgid "Fix images sometimes being repeatedly re-added to the history" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:70 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:81 msgid "" "Fix keyboard shortcuts not triggering when NumLock and CapsLock are both " "active" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:71 msgid "" "Fix several crashes (search provider, UI lifetime, GNOME Shell extension) " "and memory leaks" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:72 msgid "Modernise the GNOME Shell extension to current conventions" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:80 msgid "Fix use-after-free crash in the GNOME Shell search provider" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:82 msgid "" "Fix memory leaks when re-copying history items and when rebinding shortcuts" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:83 msgid "Fix potential crash when enforcing a very small history size" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:84 msgid "Build: ship the GSettings schema as a static file" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:92 msgid "" "GNOME Shell extension now retries the daemon connection before giving up" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:93 msgid "Fix test crash when GrabAccelerators is not allowed" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:94 msgid "Build: simplify gsettings compilation for tests" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:102 msgid "Fix GC crash and signal leak when disabling the GNOME Shell extension" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:103 msgid "GNOME Shell extension now handles daemon connection failure gracefully" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:104 msgid "Fix crash when a history item has no value yet" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:105 msgid "Fix image files not being deleted when history items are removed" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:106 msgid "Fix image files stored in wrong directory" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:107 msgid "Fix keyboard focus being stolen by history items on hover" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:108 msgid "" "Fix key events incorrectly forwarded to search when another entry has focus" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:109 msgid "Fix signal loop when updating shortcut entries from settings" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:110 msgid "Fix default history item count not reset after history deletion" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:111 msgid "Enforce minimum window size to prevent unresizable state" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:112 msgid "Add descriptive tooltips for settings entries" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:113 msgid "Build: explicitly link libgpaste libraries against libc" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:114 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:127 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:137 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:146 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:155 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:164 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:174 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:225 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:267 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:281 msgid "Translations updates" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:122 msgid "" "Fix infinite Pango assertion loop that could fill disk when clipboard " "content contained tab characters" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:123 msgid "Various bug fixes and memory management improvements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:124 msgid "Daemon improvements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:125 msgid "GNOME Shell extension improvements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:126 msgid "GLib >= 2.76 is now required" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:135 msgid "Support for gnome 50" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:136 msgid "Support for gnome 49" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:145 msgid "Support for gnome 48" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:154 msgid "Support for gnome 47" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:163 msgid "Support for gnome 46" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:170 #, fuzzy msgid "Stable release for GNOME 45. Changes:" msgstr "Prva objava za GNOME 3.38. Spremembe:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:172 msgid "Port to gnome 45" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:173 msgid "Add setting to open ui window centered" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:182 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:199 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:233 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:289 msgid "Fix a bug leading to history with only one item" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:188 #, fuzzy msgid "First release for GNOME 44. Changes:" msgstr "Prva objava za GNOME 3.38. Spremembe:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:190 msgid "gcr 4 is now required" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:191 msgid "Port to gnome 44" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:207 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:241 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:297 msgid "Avoid crash under heavy memory load" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:215 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:249 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:305 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:381 msgid "Respect --use-index when displaying history" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:221 #, fuzzy msgid "First release for GNOME 43. Changes:" msgstr "Prva objava za GNOME 3.38. Spremembe:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:223 msgid "Port to GNOME 43" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:224 msgid "Internal preparation for gtk4 port" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:257 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:313 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:389 msgid "Open GPaste UI where the mouse pointer is" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:265 msgid "Fixes to the new preferences tool" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:266 msgid "Style fixes" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:273 #, fuzzy msgid "First release for GNOME 42. Changes:" msgstr "Prva objava za GNOME 3.38. Spremembe:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:275 msgid "" "Old libgpaste replaced by a new minimal libgpaste-2 with no gtk dependency" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:276 msgid "New libgpaste-gtk3 for utils and settings ui" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:277 msgid "New libgpaste-gtk4 for utils and preferences ui" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:278 msgid "New gtk4 based gpaste-preferences utility" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:279 msgid "Autotools are no longer supported" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:280 msgid "Extension updated for gnome-shell 42" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:321 msgid "fix the storage path for meson builds" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:329 msgid "fix some race conditions in history handling" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:337 msgid "better fix crash when there is no history yet" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:345 msgid "fix crash when there is no history yet" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:346 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:355 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:364 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:373 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:397 msgid "translations update" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:354 msgid "fix gnome-shell exntesion when the daemon restarts" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:363 msgid "Fix keybindings for wayland" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:370 #, fuzzy msgid "First release for GNOME 41. Changes:" msgstr "Prva objava za GNOME 3.38. Spremembe:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:372 msgid "port to gnome-shell 41" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:405 msgid "fix a crash in memory usage checking" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:412 #, fuzzy msgid "First release for GNOME 40. Changes:" msgstr "Prva objava za GNOME 3.38. Spremembe:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:414 msgid "port to gnome-shell 40" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:415 msgid "placeholder for gnome-shell prefs" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:423 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:487 msgid "fix X11 keybinder outside of GNOME" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:431 msgid "better handling and reporting of invalid uuids passed to gpaste-client" msgstr "" "boljše upravljanje in poročanje o neveljavnih določilih UUID, poslanih na " "program gpaste-client" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:432 msgid "" "gpaste-client now has a --use-index argument for several subcommands to use " "index instead of uuid" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:440 msgid "fix the make-password keybinding" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:441 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:450 msgid "updated translations" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:449 msgid "gnome-shell extension warning fixes" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:458 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:495 msgid "gnome-shell extension cosmetic updates" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:466 msgid "Disable images support by default (can be reenabled in preferences)" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:467 msgid "Search now includes passwords (using their names)" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:468 msgid "systemd integration enhancements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:474 msgid "First release for GNOME 3.38. Changes:" msgstr "Prva objava za GNOME 3.38. Spremembe:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:476 msgid "Drop the Tracking DBus signal" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:477 msgid "Switch to uuids to identify items" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:478 msgid "Bump DBus interface to org.gnome.GPaste2" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:479 msgid "Update to gnome-shell 3.38.0" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:503 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:535 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:577 msgid "Fix activating items using Ctrl-Number in gnome-shell" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:511 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:543 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:576 msgid "Fix keybinding regrab with gnome-shell" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:519 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:551 msgid "Fix keybinding grab with gnome-shell" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:525 msgid "First release for GNOME 3.36. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:527 msgid "Update to gnome-shell 3.36.0" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:559 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:575 msgid "Compatibility with recent appstream-glib" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:565 msgid "First release for GNOME 3.34. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:567 msgid "Update to gnome-shell 3.34.0" msgstr "" #: src/client/gpaste-client.c:146 msgid "Couldn't spawn" msgstr "" #: src/client/gpaste-client.c:158 #, c-format msgid "Usage:\n" msgstr "Uporaba:\n" #. Translators: help for gpaste history #: src/client/gpaste-client.c:160 #, fuzzy msgid "print the history with UUIDs" msgstr "izpiši zgodovino z določili UUID" #. Translators: help for gpaste history-size #: src/client/gpaste-client.c:162 msgid "print the size of the history" msgstr "izpiši velikost zgodovine" #. Translators: help for gpaste get-history #: src/client/gpaste-client.c:164 msgid "get the name of the current history" msgstr "pridobi ime trenutne zgodovine" #. Translators: help for gpaste backup-history #. Translators: help for gpaste switch-history #. Translators: help for gpaste delete-history #. Translators: help for gpaste add-password #. Translators: help for gpaste set-password #. Translators: help for gpaste delete-passworf #: src/client/gpaste-client.c:166 src/client/gpaste-client.c:168 #: src/client/gpaste-client.c:170 src/client/gpaste-client.c:176 #: src/client/gpaste-client.c:188 src/client/gpaste-client.c:192 msgid "name" msgstr "ime" #: src/client/gpaste-client.c:166 msgid "backup current history" msgstr "ustvari kopijo trenutne zgodovine" #: src/client/gpaste-client.c:168 msgid "switch to another history" msgstr "preklopi na drugo zgodovino" #: src/client/gpaste-client.c:170 msgid "delete a history" msgstr "izbriši zgodovino" #. Translators: help for gpaste list-histories #: src/client/gpaste-client.c:172 msgid "list available histories" msgstr "izpiši razpoložljive zgodovine" #. Translators: help for gpaste add #: src/client/gpaste-client.c:174 msgid "text" msgstr "besedilo" #: src/client/gpaste-client.c:174 msgid "set text to clipboard" msgstr "nastavi besedilo v odložišče" #: src/client/gpaste-client.c:176 msgid "password" msgstr "geslo" #: src/client/gpaste-client.c:176 msgid "add the name - password couple to the clipboard" msgstr "dodaj par ime/geslo v odložišče" #. Translators: help for gpaste rename-password #: src/client/gpaste-client.c:178 msgid "old name" msgstr "staro ime" #: src/client/gpaste-client.c:178 msgid "new name" msgstr "novo ime" #: src/client/gpaste-client.c:178 msgid "rename the password" msgstr "preimenuj geslo" #. Translators: help for gpaste get #: src/client/gpaste-client.c:180 msgid "get the item from the history" msgstr "" #. Translators: help for gpaste select #: src/client/gpaste-client.c:182 msgid "set the item from the history to the clipboard" msgstr "" #. Translators: help for gpaste replace #: src/client/gpaste-client.c:184 msgid "contents" msgstr "" #: src/client/gpaste-client.c:184 msgid "" "replace the contents of the item from the history with the provided " "one" msgstr "" #. Translators: help for gpaste merge #: src/client/gpaste-client.c:186 msgid "" "merge the items matching the UUIDs from the history and put the result in " "the clipboard" msgstr "" #: src/client/gpaste-client.c:188 msgid "set the item from the history as a password named " msgstr "" #. Translators: help for gpaste delete #: src/client/gpaste-client.c:190 msgid "delete item from the history" msgstr "" #: src/client/gpaste-client.c:192 msgid "delete the password from the history" msgstr "" #. Translators: help for gpaste file #: src/client/gpaste-client.c:194 msgid "path" msgstr "" #: src/client/gpaste-client.c:194 msgid "put the content of the file at into the clipboard" msgstr "" #. Translators: help for whatever | gpaste #: src/client/gpaste-client.c:196 msgid "whatever" msgstr "" #: src/client/gpaste-client.c:196 msgid "set the output of whatever to clipboard" msgstr "" #. Translators: help for gpaste empty #: src/client/gpaste-client.c:198 msgid "empty the history" msgstr "" #. Translators: help for gpaste start #: src/client/gpaste-client.c:200 msgid "start tracking clipboard changes" msgstr "" #. Translators: help for gpaste stop #: src/client/gpaste-client.c:202 msgid "stop tracking clipboard changes" msgstr "" #. Translators: help for gpaste quit #: src/client/gpaste-client.c:204 msgid "alias for stop" msgstr "" #. Translators: help for gpaste daemon-reexec #: src/client/gpaste-client.c:206 msgid "reexecute the daemon (after upgrading...)" msgstr "" #. Translators: help for gpaste preferences #: src/client/gpaste-client.c:208 msgid "launch the configuration tool" msgstr "" #. Translators: help for gpaste ui #: src/client/gpaste-client.c:210 msgid "launch the graphical tool" msgstr "" #. Translators: help for gpaste show-history #: src/client/gpaste-client.c:212 msgid "make the applet or extension display the history" msgstr "" #. Translators: help for gpaste upload #: src/client/gpaste-client.c:214 msgid "upload the item to a pastebin service" msgstr "" #. Translators: help for gpaste version #: src/client/gpaste-client.c:216 msgid "display the version" msgstr "" #. Translators: help for gpaste daemon-version #: src/client/gpaste-client.c:218 msgid "display the daemon version" msgstr "" #. Translators: help for gpaste help #: src/client/gpaste-client.c:220 msgid "display this help" msgstr "" #. Translators: help for gpaste about #: src/client/gpaste-client.c:222 msgid "display the about dialog" msgstr "" #: src/client/gpaste-client.c:225 #, c-format msgid "Convenience options:" msgstr "" #. Translators: help for --use-index #: src/client/gpaste-client.c:228 msgid "use the index of the item instead of its UUID" msgstr "" #: src/client/gpaste-client.c:231 #, c-format msgid "Display options:" msgstr "" #. Translators: help for --oneline #: src/client/gpaste-client.c:234 msgid "display each item on only one line" msgstr "" #. Translators: help for --raw #: src/client/gpaste-client.c:236 msgid "display each item raw (without line numbers)" msgstr "" #. Translators: help for --reverse #: src/client/gpaste-client.c:238 msgid "display the items in reverse order" msgstr "" #. Translators: help for --zero #: src/client/gpaste-client.c:240 msgid "use a NUL character instead of a new line betweean each item" msgstr "" #: src/client/gpaste-client.c:243 #, c-format msgid "Merge options:" msgstr "" #. Translators: help for --decoration #. Translators: help for --separator #: src/client/gpaste-client.c:246 src/client/gpaste-client.c:248 msgid "string" msgstr "" #: src/client/gpaste-client.c:246 msgid "" "add the given decoration to the beginning and the end of each item before " "merging" msgstr "" #: src/client/gpaste-client.c:248 msgid "add the given separator between each item when merging" msgstr "" #: src/client/gpaste-client.c:345 #, c-format msgid "Successfully reexecuted the daemon\n" msgstr "" #: src/client/gpaste-client.c:486 msgid "Cannot add non utf8 data as text." msgstr "" #: src/client/gpaste-client.c:796 src/ui/gpaste-ui-window.c:353 #: src/ui/gpaste-ui-window.c:354 msgid "Couldn't connect to GPaste daemon" msgstr "" #: src/daemon/gpaste-color-item.c:73 msgid "[Color]" msgstr "" #. Translators: strftime format for image timestamps. Rearrange to match your locale's date/time convention. #: src/daemon/gpaste-image-item.c:219 msgid "%m/%d/%y %T" msgstr "" #. Translators: Image item displayed in history. %d is width, %d is height, %s is the formatted date. #: src/daemon/gpaste-image-item.c:221 #, c-format msgid "[Image, %d x %d (%s)]" msgstr "" #: src/daemon/gpaste-make-password-keybinding.c:50 #, fuzzy msgid "Convert to Password" msgstr "preimenuj geslo" #. This is the prefix displayed in history to identify a password #: src/daemon/gpaste-password-item.c:65 msgid "Password" msgstr "Geslo" #: src/daemon/gpaste-pop-keybinding.c:64 #, fuzzy msgid "Pop from History" msgstr "izbriši zgodovino" #: src/daemon/gpaste-show-history-keybinding.c:49 #, fuzzy msgid "Show History" msgstr "izbriši zgodovino" #: src/daemon/gpaste-sync-clipboard-to-primary-keybinding.c:46 msgid "Sync Clipboard to Primary" msgstr "" #: src/daemon/gpaste-sync-primary-to-clipboard-keybinding.c:46 msgid "Sync Primary to Clipboard" msgstr "" #: src/daemon/gpaste-ui-keybinding.c:43 msgid "Launch UI" msgstr "" #: src/daemon/gpaste-upload-keybinding.c:64 msgid "Upload to Pastebin" msgstr "" #: src/daemon/gpaste-uris-item.c:87 msgid "[Files] " msgstr "[Datoteke] " #: src/daemon/main.c:32 msgid "Stop signal received, exiting" msgstr "" #: src/daemon/main.c:69 msgid "Could not acquire DBus name." msgstr "" #: src/gnome-shell/dummyHistoryItem.js:12 msgid "(Couldn't connect to GPaste daemon)" msgstr "" #: src/gnome-shell/dummyHistoryItem.js:17 msgid "(Empty)" msgstr "" #: src/gnome-shell/dummyHistoryItem.js:22 msgid "(No result)" msgstr "" #: src/gnome-shell/emptyHistoryItem.js:14 #, fuzzy msgid "Empty history" msgstr "izbriši zgodovino" #: src/gnome-shell/stateSwitch.js:12 msgid "Track changes" msgstr "" #: src/gnome-shell/uiItem.js:14 msgid "Graphical tool" msgstr "" #: src/libgpaste/gpaste/gpaste-util.c:636 msgid "Could not create history dir" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-macros.h:38 msgid "Failed to register the gtk application" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:108 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:119 msgid "General behaviour" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:121 #: src/ui/gpaste-ui-switch.c:93 msgid "Track clipboard changes" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:127 msgid "Close UI on select" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:133 msgid "Open the UI window centered" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:139 msgid "Save history" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:150 msgid "Enable the gnome-shell extension" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:156 msgid "Sync the daemon state with the extension's one" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:162 msgid "" "When enabled, the daemon automatically starts or stops tracking clipboard " "changes to match the GNOME Shell extension's enabled state" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:166 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:174 msgid "Clipboards synchronization" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:168 msgid "Primary selection affects history" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:174 msgid "Synchronize clipboard with primary selection" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:181 msgid "Optional features" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:183 msgid "Trim items" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:189 msgid "Detect growing lines" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:195 msgid "" "When enabled, if a new clipboard entry starts with the previous one, the " "previous entry is replaced instead of creating a new one" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:92 msgid "History settings" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:103 msgid "Resources limits" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:120 msgid "Text limits" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:122 msgid "Min text item length" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:129 msgid "Max text item length" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:137 msgid "Display settings" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:139 msgid "Max element size when displaying" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:81 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:92 #, fuzzy msgid "Images settings" msgstr "Vmesnik nastavitev" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:94 msgid "Images support" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:100 msgid "Image previews" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:106 msgid "Preview size" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:122 msgid "Keyboard shortcuts" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:133 msgid "History access" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:150 msgid "Active element manipulation" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-util.c:51 #: src/ui/gpaste-ui-edit-item.c:84 src/ui/gpaste-ui-new-item.c:66 #: src/ui/gpaste-ui-panel.c:311 msgid "Cancel" msgstr "" #. Translators: %s is the name of the history being emptied. #: src/libgpaste/gpaste-gtk4/gpaste-gtk-util.c:126 #, c-format msgid "Do you really want to empty \"%s\"?" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-util.c:127 #: src/ui/gpaste-ui-history.c:153 src/ui/gpaste-ui-history.c:428 #: src/ui/gpaste-ui-panel.c:517 msgid "Empty" msgstr "" #: src/ui/gpaste-ui.c:47 msgid "Clipboard management system" msgstr "" #: src/ui/gpaste-ui-delete-item.c:46 src/ui/gpaste-ui-panel.c:358 #: src/ui/gpaste-ui-panel.c:518 msgid "Delete" msgstr "" #: src/ui/gpaste-ui-edit-item.c:85 src/ui/gpaste-ui-edit-item.c:139 msgid "Edit" msgstr "" #: src/ui/gpaste-ui-history.c:266 msgid "No Results" msgstr "" #: src/ui/gpaste-ui-new-item.c:67 msgid "Add new item" msgstr "" #: src/ui/gpaste-ui-new-item.c:100 msgid "New item" msgstr "" #: src/ui/gpaste-ui-panel.c:307 msgid "Under which name do you want to backup this history?" msgstr "" #: src/ui/gpaste-ui-panel.c:311 src/ui/gpaste-ui-panel.c:516 msgid "Backup" msgstr "" #. Translators: %s is the name of the history being deleted. #: src/ui/gpaste-ui-panel.c:357 #, c-format msgid "Are you sure you want to delete \"%s\"?" msgstr "" #: src/ui/gpaste-ui-panel.c:441 #, fuzzy msgid "Switch to history" msgstr "preklopi na drugo zgodovino" #: src/ui/gpaste-ui-panel.c:448 msgid "Switch to" msgstr "" #: src/ui/gpaste-ui-reexec.c:45 msgid "Restart" msgstr "" #: src/ui/gpaste-ui-reexec.c:45 msgid "Do you really want to restart the daemon?" msgstr "" #: src/ui/gpaste-ui-reexec.c:70 msgid "Restart the daemon" msgstr "" #: src/ui/gpaste-ui-search.c:23 msgid "Search" msgstr "" #: src/ui/gpaste-ui-settings.c:35 msgid "GPaste Settings" msgstr "" #: src/ui/gpaste-ui-shortcuts-window.c:21 msgid "General" msgstr "" #: src/ui/gpaste-ui-switch.c:68 msgid "Stop" msgstr "" #: src/ui/gpaste-ui-switch.c:68 msgid "Do you really want to stop tracking clipboard changes?" msgstr "" #: src/ui/gpaste-ui-upload-item.c:46 msgid "Upload" msgstr "" #: src/ui/gpaste-ui-window.c:303 msgid "Quit" msgstr "" #: src/ui/gpaste-ui-window.c:380 msgid "Histories" msgstr "" #: src/ui/gpaste-ui-window.c:381 #, fuzzy msgid "History" msgstr "izbriši zgodovino" Keruspe-GPaste-724def1/po/sv.po000066400000000000000000001465371521206431300163520ustar00rootroot00000000000000# Swedish translations for GPaste package. # Copyright (C) 2013-2015 Listed translators # This file is distributed under the same license as the GPaste package. # Åke Engelbrektson , 2017 # msgid "" msgstr "" "Project-Id-Version: GPaste\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-06-09 21:21+0200\n" "PO-Revision-Date: 2021-08-17 10:34+0000\n" "Last-Translator: Luna Jernberg \n" "Language-Team: Swedish \n" "Language: sv\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: Weblate 4.8-dev\n" #: data/control-center/42-gpaste.control-center.xml.in:2 msgid "@GETTEXT_PACKAGE@" msgstr "@GETTEXT_PACKAGE@" #: data/control-center/42-gpaste.control-center.xml.in:3 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:136 #: src/ui/gpaste-ui-shortcuts-window.c:24 msgid "Launch the graphical tool" msgstr "Starta det grafiska verktyget" #: data/control-center/42-gpaste.control-center.xml.in:4 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:153 #: src/ui/gpaste-ui-shortcuts-window.c:25 msgid "Mark the active item as being a password" msgstr "Märk den aktiva posten som varande lösenord" #: data/control-center/42-gpaste.control-center.xml.in:5 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:167 #: src/ui/gpaste-ui-shortcuts-window.c:23 msgid "Delete the active item from history" msgstr "Ta bort aktiv post från historiken" #: data/control-center/42-gpaste.control-center.xml.in:6 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:143 #: src/ui/gpaste-ui-shortcuts-window.c:26 msgid "Display the history" msgstr "Visa historiken" #: data/control-center/42-gpaste.control-center.xml.in:7 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:177 #: src/ui/gpaste-ui-shortcuts-window.c:27 msgid "Sync the clipboard to the primary selection" msgstr "Synkronisera urklipp med primär markering" #: data/control-center/42-gpaste.control-center.xml.in:8 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:184 #: src/ui/gpaste-ui-shortcuts-window.c:28 msgid "Sync the primary selection to the clipboard" msgstr "Synkronisera primär markering med urklipp" #: data/control-center/42-gpaste.control-center.xml.in:9 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:160 #: src/ui/gpaste-ui-shortcuts-window.c:29 msgid "Upload the active item to a pastebin service" msgstr "Ladda upp aktiv post till en pastebin-tjänst" #: data/desktop/org.gnome.GPaste.Daemon.desktop.in.in:3 #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:3 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:6 msgid "GPaste" msgstr "GPaste" #: data/desktop/org.gnome.GPaste.Preferences.desktop.in.in:3 #, fuzzy msgid "GPaste Preferences" msgstr "GPaste Inställningar" #: data/desktop/org.gnome.GPaste.Preferences.desktop.in.in:4 msgid "Manage your GPaste preferences" msgstr "" #: data/desktop/org.gnome.GPaste.Preferences.desktop.in.in:5 #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:6 msgid "Clipboard;Manager;Settings;Preferences;Configuration;" msgstr "Urklipp;Hanterare;Inställningar;Inställningar;Konfiguration;" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:4 #, fuzzy msgid "Clipboard Manager" msgstr "Övervaka urklippsändringar" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:5 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:7 msgid "Manage your clipboard history" msgstr "Hantera din urklippshistorik" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:16 #, fuzzy msgid "Preferences" msgstr "GPaste Inställningar" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:20 #: src/gnome-shell/aboutItem.js:13 src/ui/gpaste-ui-about.c:38 msgid "About" msgstr "Om" #: data/gsettings/org.gnome.GPaste.gschema.xml:7 msgid "Max size of an element when displaying it" msgstr "Maxstorlek för ett objekt vid visning" #: data/gsettings/org.gnome.GPaste.gschema.xml:8 msgid "" "The extra stuff of that element will be replaced by \"…\", and newlines by " "\" \" when displaying from the applet, 0 to disable." msgstr "" "Överskjutande innehåll från objektet kommer att ersättas av \"…\" och nya " "rader av \" \", vid visning i panelprogrammet. 0 för att inaktivera." #: data/gsettings/org.gnome.GPaste.gschema.xml:15 msgid "Do we detect and replace growing lines in history?" msgstr "Skall vi identifiera och ersätta växande rader i historiken?" #: data/gsettings/org.gnome.GPaste.gschema.xml:16 msgid "" "By default, selecting \"Here is\", then \"Here is an example\" will create " "two entries in the history. With this feature enabled, the first one will be " "replaced by the second one." msgstr "" "Som standard skapas två poster i historiken vid markering av först \"Här " "är\" och sedan \"Här är ett exempel\". Med denna funktion aktiverad, kommer " "den första posten att ersättas av den andra." #: data/gsettings/org.gnome.GPaste.gschema.xml:24 msgid "The name of the current history" msgstr "Namnet på aktuell historik" #: data/gsettings/org.gnome.GPaste.gschema.xml:25 msgid "The default name is \"history\"" msgstr "Standardnamnet är \"historik\"" #: data/gsettings/org.gnome.GPaste.gschema.xml:32 msgid "Do we save the images copied to history, or only text?" msgstr "Skall vi spara bilder kopierade till historiken, eller bara text?" #: data/gsettings/org.gnome.GPaste.gschema.xml:33 #, fuzzy msgid "By default, we're saving only text" msgstr "Som standard sparar vi bägge" #: data/gsettings/org.gnome.GPaste.gschema.xml:40 msgid "Show image previews in the history?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:41 msgid "By default, we show previews of images in the history" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:49 msgid "Size of image previews in pixels" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:50 msgid "Default size is 100 pixels" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:57 msgid "Do we close the UI after selecting an item?" msgstr "Skall vi stänga UI efter att en post valts?" #: data/gsettings/org.gnome.GPaste.gschema.xml:58 msgid "By default, we close it" msgstr "Som standard stänger vi den" #: data/gsettings/org.gnome.GPaste.gschema.xml:65 msgid "Do we open the UI window centered?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:66 #, fuzzy msgid "By default, we open it where the mouse cursor is" msgstr "Som standard övervakar vi dessa ändringar." #: data/gsettings/org.gnome.GPaste.gschema.xml:73 msgid "The keyboard shortcut to launch the graphical interface" msgstr "Tangentbordsgenväg för att starta det grafiska gränssnittet" #: data/gsettings/org.gnome.GPaste.gschema.xml:74 msgid "" "By default, hitting ctrl + alt + g does that (\"G\"). An empty " "string here disables this functionnality." msgstr "" "Som standard görs detta med Ctrl+Alt+G (\"G\"). En tom sträng " "här, inaktiverar denna funktion." #: data/gsettings/org.gnome.GPaste.gschema.xml:82 msgid "The keyboard shortcut to mark the active item as being a password" msgstr "" "Tangentbordsgenväg för att markera aktivt objekt som varande ett lösenord" #: data/gsettings/org.gnome.GPaste.gschema.xml:83 msgid "" "By default, hitting ctrl + alt + s will mark the active item as being a " "password (\"S\"). An empty string here disables this " "functionnality." msgstr "" "Som standard markeras den aktiva posten som varande ett lösenord, med " "Ctrl+Alt+S (\"S\"). En tom sträng här, inaktiverar denna " "funktion." #: data/gsettings/org.gnome.GPaste.gschema.xml:92 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:146 msgid "Max displayed history size" msgstr "Max visad historikstorlek" #: data/gsettings/org.gnome.GPaste.gschema.xml:93 msgid "Maximum number of items displayed in the history" msgstr "Max antal poster som visas i historiken" #: data/gsettings/org.gnome.GPaste.gschema.xml:101 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:105 msgid "Max history size" msgstr "Max historikstorlek" #: data/gsettings/org.gnome.GPaste.gschema.xml:102 msgid "Maximum number of items in history" msgstr "Max antal poster i historiken" #: data/gsettings/org.gnome.GPaste.gschema.xml:110 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:112 msgid "Max memory usage (MB)" msgstr "Max minnesanvändning (MB)" #: data/gsettings/org.gnome.GPaste.gschema.xml:111 msgid "Maximum amount of memory used to store contents" msgstr "Max minnesmängd som kan användas för att lagra innehåll" #: data/gsettings/org.gnome.GPaste.gschema.xml:119 msgid "Max text item size" msgstr "Max textobjektstorlek" #: data/gsettings/org.gnome.GPaste.gschema.xml:120 msgid "Maximum size of a text item. Anything out of this boundary is ignored." msgstr "" "Maxstorlek för ett textobjekt. Allt som överskrider denna gräns undantas." #: data/gsettings/org.gnome.GPaste.gschema.xml:128 msgid "Min text item size" msgstr "Minsta textobjektstorlek" #: data/gsettings/org.gnome.GPaste.gschema.xml:129 msgid "Minimum size of a text item. Anything out of this boundary is ignored." msgstr "Minsta storlek för en textpost. Allt under denna gräns undantas." #: data/gsettings/org.gnome.GPaste.gschema.xml:136 msgid "The keyboard shortcut to delete the first element in history" msgstr "Tangentbordsgenväg för att ta bort första posten från historiken" #: data/gsettings/org.gnome.GPaste.gschema.xml:137 msgid "" "By default, hitting ctrl + alt + v does that (\"V\"). An empty " "string here disables this functionnality." msgstr "" "Som standard görs detta med Ctrl+Alt+V (\"V\"). En tom sträng " "här, inaktiverar denna funktion." #: data/gsettings/org.gnome.GPaste.gschema.xml:145 msgid "Does the primary selection affects history?" msgstr "Skall primär markering påverka historiken?" #: data/gsettings/org.gnome.GPaste.gschema.xml:146 msgid "By default, only clipboard (ctrl+c) affects history." msgstr "Som standard påverkas historiken endast av urklipp (Ctrl+C)." #: data/gsettings/org.gnome.GPaste.gschema.xml:153 msgid "" "Do we save all versions of selected rich text (e.g. html) or just the plain " "text version?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:154 #, fuzzy msgid "By default, we're saving all" msgstr "Som standard sparar vi den" #: data/gsettings/org.gnome.GPaste.gschema.xml:161 msgid "Do we save the history from one session to another?" msgstr "Skall vi spara historiken från en session till en annan?" #: data/gsettings/org.gnome.GPaste.gschema.xml:162 msgid "By default, we're saving it" msgstr "Som standard sparar vi den" #: data/gsettings/org.gnome.GPaste.gschema.xml:169 msgid "The keyboard shortcut to display the menu" msgstr "Tangentbordsgenväg för att visa menyn" #: data/gsettings/org.gnome.GPaste.gschema.xml:170 msgid "" "By default, hitting ctrl + alt + h displays the menu (\"H\"). An " "empty string here disables this functionnality." msgstr "" "Som standard visas menyn med Ctrl+Alt+H (\"H\"). En tom sträng " "här, inaktiverar denna funktion." #: data/gsettings/org.gnome.GPaste.gschema.xml:178 msgid "The keyboard shortcut to sync the clipboard to the primary selection" msgstr "Tangentbordsgenväg för att synkronisera urklipp med primär markering" #: data/gsettings/org.gnome.GPaste.gschema.xml:179 msgid "" "By default, hitting ctrl + alt + o syncs them (\"P\"). An empty " "string here disables this functionnality." msgstr "" "Som standard synkroniseras de med Ctrl+Alt+O (\"O\"). En tom " "sträng här, inaktiverar denna funktion." #: data/gsettings/org.gnome.GPaste.gschema.xml:187 msgid "The keyboard shortcut to sync the primary selection to the clipboard" msgstr "Tangentbordsgenväg för att synkronisera primär markering med urklipp" #: data/gsettings/org.gnome.GPaste.gschema.xml:188 msgid "" "By default, hitting ctrl + alt + p syncs them (\"P\"). An empty " "string here disables this functionnality." msgstr "" "Som standard synkroniseras de med Ctrl+Alt+P (\"P\"). En tom " "sträng här, inaktiverar denna funktion." #: data/gsettings/org.gnome.GPaste.gschema.xml:196 msgid "Are the primary selection and the clipboard synchronized?" msgstr "Är primär markering och urklipp synkroniserade?" #: data/gsettings/org.gnome.GPaste.gschema.xml:197 msgid "By default, the primary selection and the clipboard are independent." msgstr "Som standard är primär markering och urklipp oberoende av varandra." #: data/gsettings/org.gnome.GPaste.gschema.xml:204 msgid "Do we track the clipboard changes?" msgstr "Skall vi övervaka urklippsändringar?" #: data/gsettings/org.gnome.GPaste.gschema.xml:205 msgid "By default, we're tracking those changes." msgstr "Som standard övervakar vi dessa ändringar." #: data/gsettings/org.gnome.GPaste.gschema.xml:212 msgid "" "Do we sync the daemon state with the gnome-shell extension's one? (disable " "the daemon when disabling the extension)" msgstr "" "Skall vi synkronisera tjänststatus med status för gnome-skaltillägget " "(inaktivera tjänsten när tillägget inaktiveras)?" #: data/gsettings/org.gnome.GPaste.gschema.xml:213 msgid "By default, the daemon state keeps unchanged" msgstr "Som standard ändras inte tjänstens status" #: data/gsettings/org.gnome.GPaste.gschema.xml:220 msgid "Do we trim the textual items before adding them to history?" msgstr "Skall vi trimma textposter innan de läggs till i historiken?" #: data/gsettings/org.gnome.GPaste.gschema.xml:221 msgid "" "Trimming means removing all trailing and ending spaces. By default, we're " "letting them as-is." msgstr "" "Trimning innebär att alla efterföljande och avslutande blanksteg tas bort. " "Som standard lämnas de kvar." #: data/gsettings/org.gnome.GPaste.gschema.xml:229 msgid "" "The keyboard shortcut to upload the first element in history to a pastebin " "service" msgstr "" "Tangentbordsgenväg för att ladda upp historikens första post, till en " "pastebin-tjänst." #: data/gsettings/org.gnome.GPaste.gschema.xml:230 msgid "" "By default, hitting ctrl + alt + u does that (\"U\"). An empty " "string here disables this functionnality." msgstr "" "Som standard görs detta med Ctrl+Alt+U (\"U\"). En tom sträng " "här, inaktiverar denna funktion." #: data/gsettings/org.gnome.GPaste.gschema.xml:238 msgid "Do we prompt for confirmation when emptying a history?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:239 #, fuzzy msgid "By default, we do as it's a destructive action" msgstr "Som standard ändras inte tjänstens status" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:9 msgid "Marc-Antoine Perennou" msgstr "Marc-Antoine Perennou" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:17 msgid "" "GPaste is a clipboard managing system allowing you to track and manage your " "clipboard history in a highly customizable way." msgstr "" "GPaste är ett system för urklippshantering, som låter dig övervaka och " "hantera din urklippshistorik på ett mycket anpassningsbart sätt." #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:20 msgid "" "GPaste provides you with a graphical tool allowing you to manage everything " "easily." msgstr "" "GPaste är ett grafiskt verktyg som låter dig hantera allt på ett enkelt sätt." #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:27 msgid "The main UI" msgstr "Primärt UI" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:31 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:35 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:39 msgid "The settings UI" msgstr "Inställnings-UI" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:51 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:78 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:90 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:100 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:120 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:133 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:143 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:152 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:161 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:180 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:197 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:205 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:213 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:231 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:239 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:247 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:255 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:263 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:287 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:295 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:303 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:311 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:319 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:327 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:335 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:343 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:352 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:361 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:379 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:387 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:395 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:403 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:421 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:429 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:438 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:447 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:456 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:464 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:485 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:493 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:501 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:509 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:517 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:533 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:541 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:549 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:557 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:573 msgid "This is a maintenance release. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:53 msgid "Fix building without the GNOME Shell extension (-Dgnome-shell=false)" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:54 msgid "" "Restore GTK deprecation version-gating and drop the unused build-time gjs " "dependency" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:55 msgid "Target GNOME Shell 50 in the extension" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:56 msgid "Bump the library soversions to reflect the API/ABI changes since 45.8" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:62 msgid "" "This is a major release porting GPaste to GTK 4 and libadwaita. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:64 msgid "Port the daemon, history UI and preferences to GTK 4 and libadwaita" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:65 msgid "Show image thumbnails in the history, with configurable preview size" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:66 msgid "" "Support global keyboard shortcuts on Wayland through the XDG GlobalShortcuts " "portal" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:67 msgid "Recognise copied colours as dedicated colour items" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:68 msgid "" "Give keybindings human-readable descriptions and install a daemon desktop " "file" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:69 msgid "Fix images sometimes being repeatedly re-added to the history" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:70 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:81 msgid "" "Fix keyboard shortcuts not triggering when NumLock and CapsLock are both " "active" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:71 msgid "" "Fix several crashes (search provider, UI lifetime, GNOME Shell extension) " "and memory leaks" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:72 msgid "Modernise the GNOME Shell extension to current conventions" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:80 msgid "Fix use-after-free crash in the GNOME Shell search provider" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:82 msgid "" "Fix memory leaks when re-copying history items and when rebinding shortcuts" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:83 msgid "Fix potential crash when enforcing a very small history size" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:84 msgid "Build: ship the GSettings schema as a static file" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:92 msgid "" "GNOME Shell extension now retries the daemon connection before giving up" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:93 msgid "Fix test crash when GrabAccelerators is not allowed" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:94 msgid "Build: simplify gsettings compilation for tests" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:102 msgid "Fix GC crash and signal leak when disabling the GNOME Shell extension" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:103 msgid "GNOME Shell extension now handles daemon connection failure gracefully" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:104 msgid "Fix crash when a history item has no value yet" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:105 msgid "Fix image files not being deleted when history items are removed" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:106 msgid "Fix image files stored in wrong directory" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:107 msgid "Fix keyboard focus being stolen by history items on hover" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:108 msgid "" "Fix key events incorrectly forwarded to search when another entry has focus" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:109 msgid "Fix signal loop when updating shortcut entries from settings" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:110 msgid "Fix default history item count not reset after history deletion" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:111 msgid "Enforce minimum window size to prevent unresizable state" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:112 msgid "Add descriptive tooltips for settings entries" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:113 msgid "Build: explicitly link libgpaste libraries against libc" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:114 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:127 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:137 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:146 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:155 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:164 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:174 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:225 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:267 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:281 #, fuzzy msgid "Translations updates" msgstr "uppdaterade översättningar" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:122 msgid "" "Fix infinite Pango assertion loop that could fill disk when clipboard " "content contained tab characters" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:123 msgid "Various bug fixes and memory management improvements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:124 msgid "Daemon improvements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:125 msgid "GNOME Shell extension improvements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:126 msgid "GLib >= 2.76 is now required" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:135 #, fuzzy msgid "Support for gnome 50" msgstr "port till gnome-shell 40" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:136 #, fuzzy msgid "Support for gnome 49" msgstr "port till gnome-shell 40" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:145 #, fuzzy msgid "Support for gnome 48" msgstr "port till gnome-shell 40" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:154 #, fuzzy msgid "Support for gnome 47" msgstr "port till gnome-shell 40" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:163 #, fuzzy msgid "Support for gnome 46" msgstr "port till gnome-shell 40" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:170 msgid "Stable release for GNOME 45. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:172 #, fuzzy msgid "Port to gnome 45" msgstr "port till gnome-shell 40" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:173 msgid "Add setting to open ui window centered" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:182 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:199 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:233 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:289 msgid "Fix a bug leading to history with only one item" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:188 msgid "First release for GNOME 44. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:190 msgid "gcr 4 is now required" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:191 #, fuzzy msgid "Port to gnome 44" msgstr "port till gnome-shell 40" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:207 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:241 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:297 msgid "Avoid crash under heavy memory load" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:215 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:249 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:305 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:381 #, fuzzy msgid "Respect --use-index when displaying history" msgstr "Max objektstorlek vid visning" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:221 msgid "First release for GNOME 43. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:223 msgid "Port to GNOME 43" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:224 msgid "Internal preparation for gtk4 port" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:257 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:313 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:389 msgid "Open GPaste UI where the mouse pointer is" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:265 msgid "Fixes to the new preferences tool" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:266 msgid "Style fixes" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:273 msgid "First release for GNOME 42. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:275 msgid "" "Old libgpaste replaced by a new minimal libgpaste-2 with no gtk dependency" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:276 msgid "New libgpaste-gtk3 for utils and settings ui" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:277 msgid "New libgpaste-gtk4 for utils and preferences ui" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:278 msgid "New gtk4 based gpaste-preferences utility" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:279 msgid "Autotools are no longer supported" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:280 #, fuzzy msgid "Extension updated for gnome-shell 42" msgstr "port till gnome-shell 40" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:321 msgid "fix the storage path for meson builds" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:329 msgid "fix some race conditions in history handling" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:337 msgid "better fix crash when there is no history yet" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:345 msgid "fix crash when there is no history yet" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:346 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:355 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:364 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:373 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:397 #, fuzzy msgid "translations update" msgstr "uppdaterade översättningar" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:354 #, fuzzy msgid "fix gnome-shell exntesion when the daemon restarts" msgstr "Aktivera gnome-skaltillägget" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:363 msgid "Fix keybindings for wayland" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:370 msgid "First release for GNOME 41. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:372 #, fuzzy msgid "port to gnome-shell 41" msgstr "port till gnome-shell 40" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:405 msgid "fix a crash in memory usage checking" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:412 msgid "First release for GNOME 40. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:414 msgid "port to gnome-shell 40" msgstr "port till gnome-shell 40" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:415 msgid "placeholder for gnome-shell prefs" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:423 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:487 msgid "fix X11 keybinder outside of GNOME" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:431 msgid "better handling and reporting of invalid uuids passed to gpaste-client" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:432 msgid "" "gpaste-client now has a --use-index argument for several subcommands to use " "index instead of uuid" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:440 msgid "fix the make-password keybinding" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:441 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:450 msgid "updated translations" msgstr "uppdaterade översättningar" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:449 #, fuzzy msgid "gnome-shell extension warning fixes" msgstr "Aktivera gnome-skaltillägget" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:458 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:495 #, fuzzy msgid "gnome-shell extension cosmetic updates" msgstr "Aktivera gnome-skaltillägget" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:466 msgid "Disable images support by default (can be reenabled in preferences)" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:467 msgid "Search now includes passwords (using their names)" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:468 msgid "systemd integration enhancements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:474 msgid "First release for GNOME 3.38. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:476 msgid "Drop the Tracking DBus signal" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:477 msgid "Switch to uuids to identify items" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:478 msgid "Bump DBus interface to org.gnome.GPaste2" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:479 msgid "Update to gnome-shell 3.38.0" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:503 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:535 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:577 msgid "Fix activating items using Ctrl-Number in gnome-shell" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:511 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:543 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:576 msgid "Fix keybinding regrab with gnome-shell" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:519 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:551 msgid "Fix keybinding grab with gnome-shell" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:525 msgid "First release for GNOME 3.36. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:527 msgid "Update to gnome-shell 3.36.0" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:559 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:575 msgid "Compatibility with recent appstream-glib" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:565 msgid "First release for GNOME 3.34. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:567 msgid "Update to gnome-shell 3.34.0" msgstr "" #: src/client/gpaste-client.c:146 msgid "Couldn't spawn" msgstr "Kunde inte starta" #: src/client/gpaste-client.c:158 #, c-format msgid "Usage:\n" msgstr "Användning:\n" #. Translators: help for gpaste history #: src/client/gpaste-client.c:160 #, fuzzy msgid "print the history with UUIDs" msgstr "Skriv ut historiken med index" #. Translators: help for gpaste history-size #: src/client/gpaste-client.c:162 msgid "print the size of the history" msgstr "Skriv ut historikstorleken" #. Translators: help for gpaste get-history #: src/client/gpaste-client.c:164 msgid "get the name of the current history" msgstr "Hämta namnet på aktuell historik" #. Translators: help for gpaste backup-history #. Translators: help for gpaste switch-history #. Translators: help for gpaste delete-history #. Translators: help for gpaste add-password #. Translators: help for gpaste set-password #. Translators: help for gpaste delete-passworf #: src/client/gpaste-client.c:166 src/client/gpaste-client.c:168 #: src/client/gpaste-client.c:170 src/client/gpaste-client.c:176 #: src/client/gpaste-client.c:188 src/client/gpaste-client.c:192 msgid "name" msgstr "Namn" #: src/client/gpaste-client.c:166 msgid "backup current history" msgstr "Säkerhetskopiera aktuell historik" #: src/client/gpaste-client.c:168 msgid "switch to another history" msgstr "Växla till en annan historik" #: src/client/gpaste-client.c:170 msgid "delete a history" msgstr "Ta bort en historik" #. Translators: help for gpaste list-histories #: src/client/gpaste-client.c:172 msgid "list available histories" msgstr "Lista tillgängliga historiker" #. Translators: help for gpaste add #: src/client/gpaste-client.c:174 msgid "text" msgstr "Text" #: src/client/gpaste-client.c:174 msgid "set text to clipboard" msgstr "Ange text till urklipp" #: src/client/gpaste-client.c:176 msgid "password" msgstr "Lösenord" #: src/client/gpaste-client.c:176 msgid "add the name - password couple to the clipboard" msgstr "Lägg till namn och lösenordspar till urklipp" #. Translators: help for gpaste rename-password #: src/client/gpaste-client.c:178 msgid "old name" msgstr "Gammalt namn" #: src/client/gpaste-client.c:178 msgid "new name" msgstr "Nytt namn" #: src/client/gpaste-client.c:178 msgid "rename the password" msgstr "Byt namn på lösenordet" #. Translators: help for gpaste get #: src/client/gpaste-client.c:180 #, fuzzy msgid "get the item from the history" msgstr "Hämta den :e posten från historiken" #. Translators: help for gpaste select #: src/client/gpaste-client.c:182 #, fuzzy msgid "set the item from the history to the clipboard" msgstr "Skicka den :e historikposten till urklipp" #. Translators: help for gpaste replace #: src/client/gpaste-client.c:184 msgid "contents" msgstr "Innehåll" #: src/client/gpaste-client.c:184 #, fuzzy msgid "" "replace the contents of the item from the history with the provided " "one" msgstr "" "Ersätt innehållet i :e historikposten med nytt angivet innehåll" #. Translators: help for gpaste merge #: src/client/gpaste-client.c:186 #, fuzzy msgid "" "merge the items matching the UUIDs from the history and put the result in " "the clipboard" msgstr "" "Sammanfoga de :e posterna från historiken och skicka resultatet till " "urklipp" #: src/client/gpaste-client.c:188 #, fuzzy msgid "set the item from the history as a password named " msgstr "" "Märk den :e historikposten som varande lösenord med namnet " #. Translators: help for gpaste delete #: src/client/gpaste-client.c:190 #, fuzzy msgid "delete item from the history" msgstr "Ta bort lösenordet från historiken" #: src/client/gpaste-client.c:192 msgid "delete the password from the history" msgstr "Ta bort lösenordet från historiken" #. Translators: help for gpaste file #: src/client/gpaste-client.c:194 msgid "path" msgstr "Sökväg" #: src/client/gpaste-client.c:194 msgid "put the content of the file at into the clipboard" msgstr "Skicka innehållet i filen , till urklipp" #. Translators: help for whatever | gpaste #: src/client/gpaste-client.c:196 msgid "whatever" msgstr "Vad som helst" #: src/client/gpaste-client.c:196 msgid "set the output of whatever to clipboard" msgstr "Skicka utdata från vad som helst till urklipp" #. Translators: help for gpaste empty #: src/client/gpaste-client.c:198 msgid "empty the history" msgstr "Töm historiken" #. Translators: help for gpaste start #: src/client/gpaste-client.c:200 msgid "start tracking clipboard changes" msgstr "Börja övervaka urklippsändringar" #. Translators: help for gpaste stop #: src/client/gpaste-client.c:202 msgid "stop tracking clipboard changes" msgstr "Sluta övervaka urklippsändringar" #. Translators: help for gpaste quit #: src/client/gpaste-client.c:204 msgid "alias for stop" msgstr "alias för stopp" #. Translators: help for gpaste daemon-reexec #: src/client/gpaste-client.c:206 msgid "reexecute the daemon (after upgrading...)" msgstr "Starta om tjänsten (efter uppgradering...)" #. Translators: help for gpaste preferences #: src/client/gpaste-client.c:208 msgid "launch the configuration tool" msgstr "Starta inställningsverktyget" #. Translators: help for gpaste ui #: src/client/gpaste-client.c:210 msgid "launch the graphical tool" msgstr "Starta det grafiska verktyget" #. Translators: help for gpaste show-history #: src/client/gpaste-client.c:212 msgid "make the applet or extension display the history" msgstr "Låt panelprogrammet eller tillägget visa historiken" #. Translators: help for gpaste upload #: src/client/gpaste-client.c:214 #, fuzzy msgid "upload the item to a pastebin service" msgstr "Ladda upp aktiv post till en pastebin-tjänst" #. Translators: help for gpaste version #: src/client/gpaste-client.c:216 msgid "display the version" msgstr "Visa version" #. Translators: help for gpaste daemon-version #: src/client/gpaste-client.c:218 msgid "display the daemon version" msgstr "Visa tjänstversion" #. Translators: help for gpaste help #: src/client/gpaste-client.c:220 msgid "display this help" msgstr "Visa denna hjälp" #. Translators: help for gpaste about #: src/client/gpaste-client.c:222 msgid "display the about dialog" msgstr "Visa \"Om\"" #: src/client/gpaste-client.c:225 #, fuzzy, c-format msgid "Convenience options:" msgstr "Sammanfogningsalternativ:" #. Translators: help for --use-index #: src/client/gpaste-client.c:228 msgid "use the index of the item instead of its UUID" msgstr "" #: src/client/gpaste-client.c:231 #, c-format msgid "Display options:" msgstr "Visningsalternativ:" #. Translators: help for --oneline #: src/client/gpaste-client.c:234 msgid "display each item on only one line" msgstr "Visa varje post på endast en rad" #. Translators: help for --raw #: src/client/gpaste-client.c:236 msgid "display each item raw (without line numbers)" msgstr "Visa varje post rent (utan radnummer)" #. Translators: help for --reverse #: src/client/gpaste-client.c:238 #, fuzzy msgid "display the items in reverse order" msgstr "Visa tjänstversion" #. Translators: help for --zero #: src/client/gpaste-client.c:240 msgid "use a NUL character instead of a new line betweean each item" msgstr "Använd NULL-tecken istället för ny rad mellan varje post" #: src/client/gpaste-client.c:243 #, c-format msgid "Merge options:" msgstr "Sammanfogningsalternativ:" #. Translators: help for --decoration #. Translators: help for --separator #: src/client/gpaste-client.c:246 src/client/gpaste-client.c:248 msgid "string" msgstr "Sträng" #: src/client/gpaste-client.c:246 msgid "" "add the given decoration to the beginning and the end of each item before " "merging" msgstr "" "Lägg till angiven dekoration i början och slutet på varje post, före " "sammanfogning" #: src/client/gpaste-client.c:248 msgid "add the given separator between each item when merging" msgstr "Lägg till angiven separator mellan varje post vid sammanfogning" #: src/client/gpaste-client.c:345 #, c-format msgid "Successfully reexecuted the daemon\n" msgstr "Tjänsten startades om korrekt\n" #: src/client/gpaste-client.c:486 msgid "Cannot add non utf8 data as text." msgstr "Kan inte lägga till icke UTF8-data som text." #: src/client/gpaste-client.c:796 src/ui/gpaste-ui-window.c:353 #: src/ui/gpaste-ui-window.c:354 msgid "Couldn't connect to GPaste daemon" msgstr "Kunde inte ansluta till GPaste-tjänsten" #: src/daemon/gpaste-color-item.c:73 msgid "[Color]" msgstr "" #. Translators: strftime format for image timestamps. Rearrange to match your locale's date/time convention. #: src/daemon/gpaste-image-item.c:219 msgid "%m/%d/%y %T" msgstr "%y-%m-%d %T" #. Translators: Image item displayed in history. %d is width, %d is height, %s is the formatted date. #: src/daemon/gpaste-image-item.c:221 #, c-format msgid "[Image, %d x %d (%s)]" msgstr "[Bild, %d x %d (%s)]" #: src/daemon/gpaste-make-password-keybinding.c:50 #, fuzzy msgid "Convert to Password" msgstr "Byt namn på lösenordet" #. This is the prefix displayed in history to identify a password #: src/daemon/gpaste-password-item.c:65 msgid "Password" msgstr "Lösenord" #: src/daemon/gpaste-pop-keybinding.c:64 #, fuzzy msgid "Pop from History" msgstr "Historikinställningar" #: src/daemon/gpaste-show-history-keybinding.c:49 #, fuzzy msgid "Show History" msgstr "Historikinställningar" #: src/daemon/gpaste-sync-clipboard-to-primary-keybinding.c:46 #, fuzzy msgid "Sync Clipboard to Primary" msgstr "Synkronisera urklipp med primär markering" #: src/daemon/gpaste-sync-primary-to-clipboard-keybinding.c:46 #, fuzzy msgid "Sync Primary to Clipboard" msgstr "Synkronisera primär markering med urklipp" #: src/daemon/gpaste-ui-keybinding.c:43 msgid "Launch UI" msgstr "" #: src/daemon/gpaste-upload-keybinding.c:64 msgid "Upload to Pastebin" msgstr "" #: src/daemon/gpaste-uris-item.c:87 msgid "[Files] " msgstr "[Filer] " #: src/daemon/main.c:32 msgid "Stop signal received, exiting" msgstr "Stoppsignal mottagen, avslutar" #: src/daemon/main.c:69 msgid "Could not acquire DBus name." msgstr "Kunde inte hämta DBus-namn." #: src/gnome-shell/dummyHistoryItem.js:12 msgid "(Couldn't connect to GPaste daemon)" msgstr "(Kunde inte ansluta till GPaste-tjänsten)" #: src/gnome-shell/dummyHistoryItem.js:17 msgid "(Empty)" msgstr "(Tom)" #: src/gnome-shell/dummyHistoryItem.js:22 msgid "(No result)" msgstr "(Inget resultat)" #: src/gnome-shell/emptyHistoryItem.js:14 #, fuzzy msgid "Empty history" msgstr "Töm historiken" #: src/gnome-shell/stateSwitch.js:12 #, fuzzy msgid "Track changes" msgstr "Övervaka urklippsändringar" #: src/gnome-shell/uiItem.js:14 #, fuzzy msgid "Graphical tool" msgstr "Starta det grafiska verktyget" #: src/libgpaste/gpaste/gpaste-util.c:636 msgid "Could not create history dir" msgstr "Kunde inte skapa historikmapp" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-macros.h:38 msgid "Failed to register the gtk application" msgstr "Kunde inte registrera gtk-applikationen" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:108 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:119 msgid "General behaviour" msgstr "Allmänt beteende" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:121 #: src/ui/gpaste-ui-switch.c:93 msgid "Track clipboard changes" msgstr "Övervaka urklippsändringar" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:127 msgid "Close UI on select" msgstr "Stäng UI vid markering" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:133 msgid "Open the UI window centered" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:139 msgid "Save history" msgstr "Spara historik" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:150 msgid "Enable the gnome-shell extension" msgstr "Aktivera gnome-skaltillägget" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:156 msgid "Sync the daemon state with the extension's one" msgstr "Synkronisera tjänstens status med tilläggets" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:162 msgid "" "When enabled, the daemon automatically starts or stops tracking clipboard " "changes to match the GNOME Shell extension's enabled state" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:166 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:174 msgid "Clipboards synchronization" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:168 msgid "Primary selection affects history" msgstr "Primär markering påverkar historiken" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:174 msgid "Synchronize clipboard with primary selection" msgstr "Synkronisera urklipp med primär markering" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:181 msgid "Optional features" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:183 msgid "Trim items" msgstr "Trimma poster" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:189 msgid "Detect growing lines" msgstr "Identifiera växande rader" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:195 msgid "" "When enabled, if a new clipboard entry starts with the previous one, the " "previous entry is replaced instead of creating a new one" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:92 msgid "History settings" msgstr "Historikinställningar" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:103 msgid "Resources limits" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:120 msgid "Text limits" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:122 msgid "Min text item length" msgstr "Minimumlängd för textposter" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:129 msgid "Max text item length" msgstr "Maxlängd för textposter" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:137 #, fuzzy msgid "Display settings" msgstr "Historikinställningar" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:139 msgid "Max element size when displaying" msgstr "Max objektstorlek vid visning" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:81 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:92 #, fuzzy msgid "Images settings" msgstr "Inställnings-UI" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:94 msgid "Images support" msgstr "Bildstöd" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:100 msgid "Image previews" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:106 msgid "Preview size" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:122 msgid "Keyboard shortcuts" msgstr "Tangentbordsgenvägar" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:133 #, fuzzy msgid "History access" msgstr "Historikinställningar" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:150 msgid "Active element manipulation" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-util.c:51 #: src/ui/gpaste-ui-edit-item.c:84 src/ui/gpaste-ui-new-item.c:66 #: src/ui/gpaste-ui-panel.c:311 msgid "Cancel" msgstr "Avbryt" #. Translators: %s is the name of the history being emptied. #: src/libgpaste/gpaste-gtk4/gpaste-gtk-util.c:126 #, fuzzy, c-format msgid "Do you really want to empty \"%s\"?" msgstr "Vill du verkligen tömma historiken?" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-util.c:127 #: src/ui/gpaste-ui-history.c:153 src/ui/gpaste-ui-history.c:428 #: src/ui/gpaste-ui-panel.c:517 msgid "Empty" msgstr "Töm" #: src/ui/gpaste-ui.c:47 msgid "Clipboard management system" msgstr "" #: src/ui/gpaste-ui-delete-item.c:46 src/ui/gpaste-ui-panel.c:358 #: src/ui/gpaste-ui-panel.c:518 msgid "Delete" msgstr "Ta bort" #: src/ui/gpaste-ui-edit-item.c:85 src/ui/gpaste-ui-edit-item.c:139 msgid "Edit" msgstr "Redigera" #: src/ui/gpaste-ui-history.c:266 #, fuzzy msgid "No Results" msgstr "(Inget resultat)" #: src/ui/gpaste-ui-new-item.c:67 msgid "Add new item" msgstr "" #: src/ui/gpaste-ui-new-item.c:100 msgid "New item" msgstr "" #: src/ui/gpaste-ui-panel.c:307 msgid "Under which name do you want to backup this history?" msgstr "Under vilket namn vill du säkerhetskopiera historiken?" #: src/ui/gpaste-ui-panel.c:311 src/ui/gpaste-ui-panel.c:516 msgid "Backup" msgstr "Säkerhetskopiera" #. Translators: %s is the name of the history being deleted. #: src/ui/gpaste-ui-panel.c:357 #, fuzzy, c-format msgid "Are you sure you want to delete \"%s\"?" msgstr "Vill du verkligen ta bort denna historik?" #: src/ui/gpaste-ui-panel.c:441 #, fuzzy msgid "Switch to history" msgstr "Växla till en annan historik" #: src/ui/gpaste-ui-panel.c:448 msgid "Switch to" msgstr "Växla till" #: src/ui/gpaste-ui-reexec.c:45 msgid "Restart" msgstr "Starta om" #: src/ui/gpaste-ui-reexec.c:45 msgid "Do you really want to restart the daemon?" msgstr "Vill du verkligen starta om tjänsten?" #: src/ui/gpaste-ui-reexec.c:70 msgid "Restart the daemon" msgstr "Starta om tjänsten" #: src/ui/gpaste-ui-search.c:23 msgid "Search" msgstr "Sök" #: src/ui/gpaste-ui-settings.c:35 msgid "GPaste Settings" msgstr "GPaste Inställningar" #: src/ui/gpaste-ui-shortcuts-window.c:21 msgid "General" msgstr "Allmänt" #: src/ui/gpaste-ui-switch.c:68 msgid "Stop" msgstr "Stopp" #: src/ui/gpaste-ui-switch.c:68 msgid "Do you really want to stop tracking clipboard changes?" msgstr "Vill du verkligen sluta övervaka urklippsändringar?" #: src/ui/gpaste-ui-upload-item.c:46 msgid "Upload" msgstr "Ladda upp" #: src/ui/gpaste-ui-window.c:303 msgid "Quit" msgstr "Avsluta" #: src/ui/gpaste-ui-window.c:380 #, fuzzy msgid "Histories" msgstr "Historikinställningar" #: src/ui/gpaste-ui-window.c:381 #, fuzzy msgid "History" msgstr "Historikinställningar" #~ msgid "is already running." #~ msgstr "körs redan." #~ msgid "New" #~ msgstr "Nytt" #~ msgid "Keyboard Shortcuts" #~ msgstr "Tangentbordsgenvägar" #~ msgid "About GPaste" #~ msgstr "Om GPaste" #~ msgid "number" #~ msgstr "Nummer" #~ msgid "delete th item of the history" #~ msgstr "Ta bort den :e posten i historiken" #~ msgid "upload the th item to a pastebin service" #~ msgstr "Ladda upp den :e posten till en pastebin-tjänst" #~ msgid "edit-paste" #~ msgstr "Redigera-Klistra in" Keruspe-GPaste-724def1/po/ta.po000066400000000000000000002230741521206431300163160ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the GPaste package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: GPaste\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-06-09 21:21+0200\n" "PO-Revision-Date: 2026-03-16 04:09+0000\n" "Last-Translator: தமிழ்நேரம் \n" "Language-Team: Tamil \n" "Language: ta\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: Weblate 5.17-dev\n" #: data/control-center/42-gpaste.control-center.xml.in:2 msgid "@GETTEXT_PACKAGE@" msgstr "@Gettext_package@" #: data/control-center/42-gpaste.control-center.xml.in:3 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:136 #: src/ui/gpaste-ui-shortcuts-window.c:24 msgid "Launch the graphical tool" msgstr "வரைகலை கருவியைத் தொடங்கவும்" #: data/control-center/42-gpaste.control-center.xml.in:4 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:153 #: src/ui/gpaste-ui-shortcuts-window.c:25 msgid "Mark the active item as being a password" msgstr "செயலில் உள்ள உருப்படியை கடவுச்சொல் எனக் குறிக்கவும்" #: data/control-center/42-gpaste.control-center.xml.in:5 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:167 #: src/ui/gpaste-ui-shortcuts-window.c:23 msgid "Delete the active item from history" msgstr "செயலில் உள்ள உருப்படியை வரலாற்றிலிருந்து நீக்கவும்" #: data/control-center/42-gpaste.control-center.xml.in:6 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:143 #: src/ui/gpaste-ui-shortcuts-window.c:26 msgid "Display the history" msgstr "வரலாற்றைக் காண்பி" #: data/control-center/42-gpaste.control-center.xml.in:7 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:177 #: src/ui/gpaste-ui-shortcuts-window.c:27 msgid "Sync the clipboard to the primary selection" msgstr "கிளிப்போர்டை முதன்மை தேர்வுக்கு ஒத்திசைக்கவும்" #: data/control-center/42-gpaste.control-center.xml.in:8 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:184 #: src/ui/gpaste-ui-shortcuts-window.c:28 msgid "Sync the primary selection to the clipboard" msgstr "முதன்மை தேர்வை கிளிப்போர்டுடன் ஒத்திசைக்கவும்" #: data/control-center/42-gpaste.control-center.xml.in:9 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:160 #: src/ui/gpaste-ui-shortcuts-window.c:29 msgid "Upload the active item to a pastebin service" msgstr "செயலில் உள்ள உருப்படியை பேச்டெபின் சேவையில் பதிவேற்றவும்" #: data/desktop/org.gnome.GPaste.Daemon.desktop.in.in:3 #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:3 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:6 msgid "GPaste" msgstr "Gpaste" #: data/desktop/org.gnome.GPaste.Preferences.desktop.in.in:3 msgid "GPaste Preferences" msgstr "Gpaste விருப்பத்தேர்வுகள்" #: data/desktop/org.gnome.GPaste.Preferences.desktop.in.in:4 msgid "Manage your GPaste preferences" msgstr "உங்கள் GPASTE விருப்பங்களை நிர்வகிக்கவும்" #: data/desktop/org.gnome.GPaste.Preferences.desktop.in.in:5 #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:6 msgid "Clipboard;Manager;Settings;Preferences;Configuration;" msgstr "கிளிப்போர்டு; மேலாளர்; அமைப்புகள்; விருப்பத்தேர்வுகள்; உள்ளமைவு;" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:4 #, fuzzy msgid "Clipboard Manager" msgstr "ட்ராக் இடைநிலைப்பலகை மாற்றங்கள்" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:5 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:7 msgid "Manage your clipboard history" msgstr "உங்கள் இடைநிலைப்பலகை வரலாற்றை நிர்வகிக்கவும்" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:16 #, fuzzy msgid "Preferences" msgstr "Gpaste விருப்பத்தேர்வுகள்" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:20 #: src/gnome-shell/aboutItem.js:13 src/ui/gpaste-ui-about.c:38 msgid "About" msgstr "பற்றி" #: data/gsettings/org.gnome.GPaste.gschema.xml:7 msgid "Max size of an element when displaying it" msgstr "ஒரு உறுப்பின் அதிகபட்ச அளவு அதைக் காண்பிக்கும் போது" #: data/gsettings/org.gnome.GPaste.gschema.xml:8 msgid "" "The extra stuff of that element will be replaced by \"…\", and newlines by " "\" \" when displaying from the applet, 0 to disable." msgstr "" "அந்த உறுப்பின் கூடுதல் பொருள் \"…\", மற்றும் நியூமைன்சை \"\" ஆப்லெட்டிலிருந்து " "காண்பிக்கும் போது 0, 0 ஐ முடக்குவதன் மூலம் மாற்றப்படும்." #: data/gsettings/org.gnome.GPaste.gschema.xml:15 msgid "Do we detect and replace growing lines in history?" msgstr "வரலாற்றில் வளர்ந்து வரும் வரிகளை நாங்கள் கண்டறிந்து மாற்றுவோமா?" #: data/gsettings/org.gnome.GPaste.gschema.xml:16 msgid "" "By default, selecting \"Here is\", then \"Here is an example\" will create " "two entries in the history. With this feature enabled, the first one will be " "replaced by the second one." msgstr "" "இயல்பாக, \"இங்கே\" என்பதைத் தேர்ந்தெடுப்பது, பின்னர் \"இங்கே ஒரு எடுத்துக்காட்டு\" " "வரலாற்றில் இரண்டு உள்ளீடுகளை உருவாக்கும். இந்த நற்பொருத்தம் இயக்கப்பட்டவுடன், முதலாவது " "இரண்டாவது மூலம் மாற்றப்படும்." #: data/gsettings/org.gnome.GPaste.gschema.xml:24 msgid "The name of the current history" msgstr "தற்போதைய வரலாற்றின் பெயர்" #: data/gsettings/org.gnome.GPaste.gschema.xml:25 msgid "The default name is \"history\"" msgstr "இயல்புநிலை பெயர் \"வரலாறு\"" #: data/gsettings/org.gnome.GPaste.gschema.xml:32 msgid "Do we save the images copied to history, or only text?" msgstr "" "வரலாற்றில் நகலெடுக்கப்பட்ட படங்களை நாம் சேமிக்கிறோமா, அல்லது உரையை மட்டுமே சேமிக்கிறோமா?" #: data/gsettings/org.gnome.GPaste.gschema.xml:33 msgid "By default, we're saving only text" msgstr "இயல்பாக, நாங்கள் உரையை மட்டுமே சேமிக்கிறோம்" #: data/gsettings/org.gnome.GPaste.gschema.xml:40 msgid "Show image previews in the history?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:41 msgid "By default, we show previews of images in the history" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:49 msgid "Size of image previews in pixels" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:50 msgid "Default size is 100 pixels" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:57 msgid "Do we close the UI after selecting an item?" msgstr "ஒரு உருப்படியைத் தேர்ந்தெடுத்த பிறகு நாங்கள் இடைமுகம் ஐ மூடுகிறோமா?" #: data/gsettings/org.gnome.GPaste.gschema.xml:58 msgid "By default, we close it" msgstr "இயல்பாக, நாங்கள் அதை மூடுகிறோம்" #: data/gsettings/org.gnome.GPaste.gschema.xml:65 msgid "Do we open the UI window centered?" msgstr "இடைமுகம் சாளரத்தை மையமாகக் கொண்டதா?" #: data/gsettings/org.gnome.GPaste.gschema.xml:66 msgid "By default, we open it where the mouse cursor is" msgstr "இயல்பாக, மவுச் கர்சர் இருக்கும் இடத்தில் அதைத் திறக்கிறோம்" #: data/gsettings/org.gnome.GPaste.gschema.xml:73 msgid "The keyboard shortcut to launch the graphical interface" msgstr "விசைப்பலகை குறுக்குவழி வரைகலை இடைமுகத்தைத் தொடங்க" #: data/gsettings/org.gnome.GPaste.gschema.xml:74 msgid "" "By default, hitting ctrl + alt + g does that (\"G\"). An empty " "string here disables this functionnality." msgstr "" "இயல்பாக, கட்டுப்பாடு + மாற்று + G ஐ அடிப்பது அதைச் செய்கிறது (\" g\"). " "இங்கே ஒரு வெற்று சரம் இந்த செயல்பாட்டை முடக்குகிறது." #: data/gsettings/org.gnome.GPaste.gschema.xml:82 msgid "The keyboard shortcut to mark the active item as being a password" msgstr "செயலில் உள்ள உருப்படியை கடவுச்சொல் எனக் குறிக்க விசைப்பலகை குறுக்குவழி" #: data/gsettings/org.gnome.GPaste.gschema.xml:83 msgid "" "By default, hitting ctrl + alt + s will mark the active item as being a " "password (\"S\"). An empty string here disables this " "functionnality." msgstr "" "இயல்பாக, கட்டுப்பாடு + மாற்று + S ஐத் தாக்குவது செயலில் உள்ள உருப்படியை கடவுச்சொல் " "(\" s\") எனக் குறிக்கும். இங்கே ஒரு வெற்று சரம் இந்த செயல்பாட்டை " "முடக்குகிறது." #: data/gsettings/org.gnome.GPaste.gschema.xml:92 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:146 msgid "Max displayed history size" msgstr "அதிகபட்சம் வரலாற்றைக் காட்டியது" #: data/gsettings/org.gnome.GPaste.gschema.xml:93 msgid "Maximum number of items displayed in the history" msgstr "வரலாற்றில் காட்டப்படும் அதிகபட்ச உருப்படிகளின் எண்ணிக்கை" #: data/gsettings/org.gnome.GPaste.gschema.xml:101 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:105 msgid "Max history size" msgstr "அதிகபட்ச வரலாற்று அளவு" #: data/gsettings/org.gnome.GPaste.gschema.xml:102 msgid "Maximum number of items in history" msgstr "வரலாற்றில் அதிகபட்ச உருப்படிகளின் எண்ணிக்கை" #: data/gsettings/org.gnome.GPaste.gschema.xml:110 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:112 msgid "Max memory usage (MB)" msgstr "அதிகபட்ச நினைவக பயன்பாடு (எம்பி)" #: data/gsettings/org.gnome.GPaste.gschema.xml:111 msgid "Maximum amount of memory used to store contents" msgstr "உள்ளடக்கங்களை சேமிக்க பயன்படுத்தப்படும் அதிகபட்ச நினைவகம்" #: data/gsettings/org.gnome.GPaste.gschema.xml:119 msgid "Max text item size" msgstr "அதிகபட்ச உரை உருப்படி அளவு" #: data/gsettings/org.gnome.GPaste.gschema.xml:120 msgid "Maximum size of a text item. Anything out of this boundary is ignored." msgstr "" "உரை உருப்படியின் அதிகபட்ச அளவு. இந்த எல்லைக்கு வெளியே எதுவும் புறக்கணிக்கப்படுகிறது." #: data/gsettings/org.gnome.GPaste.gschema.xml:128 msgid "Min text item size" msgstr "மணித்துளி உரை உருப்படி அளவு" #: data/gsettings/org.gnome.GPaste.gschema.xml:129 msgid "Minimum size of a text item. Anything out of this boundary is ignored." msgstr "" "உரை உருப்படியின் குறைந்தபட்ச அளவு. இந்த எல்லைக்கு வெளியே எதுவும் புறக்கணிக்கப்படுகிறது." #: data/gsettings/org.gnome.GPaste.gschema.xml:136 msgid "The keyboard shortcut to delete the first element in history" msgstr "வரலாற்றின் முதல் உறுப்பை நீக்க விசைப்பலகை குறுக்குவழி" #: data/gsettings/org.gnome.GPaste.gschema.xml:137 msgid "" "By default, hitting ctrl + alt + v does that (\"V\"). An empty " "string here disables this functionnality." msgstr "" "இயல்பாக, கட்டுப்பாடு + மாற்று + V ஐத் தாக்கும் அதைச் செய்கிறது (\" v\"). " "இங்கே ஒரு வெற்று சரம் இந்த செயல்பாட்டை முடக்குகிறது." #: data/gsettings/org.gnome.GPaste.gschema.xml:145 msgid "Does the primary selection affects history?" msgstr "முதன்மை தேர்வு வரலாற்றை பாதிக்கிறதா?" #: data/gsettings/org.gnome.GPaste.gschema.xml:146 msgid "By default, only clipboard (ctrl+c) affects history." msgstr "இயல்பாக, இடைநிலைப்பலகை (ctrl+c) மட்டுமே வரலாற்றைப் பாதிக்கிறது." #: data/gsettings/org.gnome.GPaste.gschema.xml:153 msgid "" "Do we save all versions of selected rich text (e.g. html) or just the plain " "text version?" msgstr "" "தேர்ந்தெடுக்கப்பட்ட பணக்கார உரையின் (எ.கா. html) அல்லது எளிய உரை பதிப்பின் அனைத்து " "பதிப்புகளையும் சேமிக்கிறோமா?" #: data/gsettings/org.gnome.GPaste.gschema.xml:154 msgid "By default, we're saving all" msgstr "இயல்பாக, நாங்கள் அனைத்தையும் சேமிக்கிறோம்" #: data/gsettings/org.gnome.GPaste.gschema.xml:161 msgid "Do we save the history from one session to another?" msgstr "வரலாற்றை ஒரு அமர்விலிருந்து மற்றொரு அமர்வுக்கு சேமிக்கிறோமா?" #: data/gsettings/org.gnome.GPaste.gschema.xml:162 msgid "By default, we're saving it" msgstr "இயல்பாக, நாங்கள் அதை சேமிக்கிறோம்" #: data/gsettings/org.gnome.GPaste.gschema.xml:169 msgid "The keyboard shortcut to display the menu" msgstr "மெனுவைக் காண்பிக்க விசைப்பலகை குறுக்குவழி" #: data/gsettings/org.gnome.GPaste.gschema.xml:170 msgid "" "By default, hitting ctrl + alt + h displays the menu (\"H\"). An " "empty string here disables this functionnality." msgstr "" "இயல்பாக, கட்டுப்பாடு + மாற்று + H ஐத் தாக்குவது மெனுவைக் காட்டுகிறது (\" " "H\"). இங்கே ஒரு வெற்று சரம் இந்த செயல்பாட்டை முடக்குகிறது." #: data/gsettings/org.gnome.GPaste.gschema.xml:178 msgid "The keyboard shortcut to sync the clipboard to the primary selection" msgstr "கிளிப்போர்டை முதன்மை தேர்வுக்கு ஒத்திசைக்க விசைப்பலகை குறுக்குவழி" #: data/gsettings/org.gnome.GPaste.gschema.xml:179 msgid "" "By default, hitting ctrl + alt + o syncs them (\"P\"). An empty " "string here disables this functionnality." msgstr "" "இயல்பாக, கட்டுப்பாடு + மாற்று + O ஐ அழுத்தி அவற்றை ஒத்திசைக்கிறது (\" " "p\"). இங்கே ஒரு வெற்று சரம் இந்த செயல்பாட்டை முடக்குகிறது." #: data/gsettings/org.gnome.GPaste.gschema.xml:187 msgid "The keyboard shortcut to sync the primary selection to the clipboard" msgstr "முதன்மை தேர்வை கிளிப்போர்டுடன் ஒத்திசைக்க விசைப்பலகை குறுக்குவழி" #: data/gsettings/org.gnome.GPaste.gschema.xml:188 msgid "" "By default, hitting ctrl + alt + p syncs them (\"P\"). An empty " "string here disables this functionnality." msgstr "" "இயல்பாக, கட்டுப்பாடு + மாற்று + P ஐ அழுத்தி அவற்றை ஒத்திசைக்கிறது (\" " "p\"). இங்கே ஒரு வெற்று சரம் இந்த செயல்பாட்டை முடக்குகிறது." #: data/gsettings/org.gnome.GPaste.gschema.xml:196 msgid "Are the primary selection and the clipboard synchronized?" msgstr "முதன்மை தேர்வு மற்றும் இடைநிலைப்பலகை ஒத்திசைக்கப்பட்டதா?" #: data/gsettings/org.gnome.GPaste.gschema.xml:197 msgid "By default, the primary selection and the clipboard are independent." msgstr "இயல்பாக, முதன்மை தேர்வு மற்றும் இடைநிலைப்பலகை சுயாதீனமானவை." #: data/gsettings/org.gnome.GPaste.gschema.xml:204 msgid "Do we track the clipboard changes?" msgstr "இடைநிலைப்பலகை மாற்றங்களை நாங்கள் கண்காணிக்கிறோமா?" #: data/gsettings/org.gnome.GPaste.gschema.xml:205 msgid "By default, we're tracking those changes." msgstr "இயல்பாக, அந்த மாற்றங்களை நாங்கள் கண்காணிக்கிறோம்." #: data/gsettings/org.gnome.GPaste.gschema.xml:212 msgid "" "Do we sync the daemon state with the gnome-shell extension's one? (disable " "the daemon when disabling the extension)" msgstr "" "டீமான் நிலையை க்னோம்-செல் நீட்டிப்புடன் ஒத்திசைக்கிறோமா? (நீட்டிப்பை முடக்கும்போது டீமனை " "முடக்கவும்)" #: data/gsettings/org.gnome.GPaste.gschema.xml:213 msgid "By default, the daemon state keeps unchanged" msgstr "இயல்பாக, டீமான் நிலை மாறாமல் இருக்கும்" #: data/gsettings/org.gnome.GPaste.gschema.xml:220 msgid "Do we trim the textual items before adding them to history?" msgstr "உரை உருப்படிகளை வரலாற்றில் சேர்ப்பதற்கு முன்பு அவற்றை ஒழுங்கமைக்கலாமா?" #: data/gsettings/org.gnome.GPaste.gschema.xml:221 msgid "" "Trimming means removing all trailing and ending spaces. By default, we're " "letting them as-is." msgstr "" "ஒழுங்கமைத்தல் என்பது அனைத்து பின்தங்கிய மற்றும் இறுதி இடங்களையும் அகற்றுவதாகும். இயல்பாக, " "நாங்கள் அவர்களை அனுமதிக்கிறோம்." #: data/gsettings/org.gnome.GPaste.gschema.xml:229 msgid "" "The keyboard shortcut to upload the first element in history to a pastebin " "service" msgstr "வரலாற்றில் முதல் உறுப்பை ஒரு பேச்டெபின் சேவையில் பதிவேற்ற விசைப்பலகை குறுக்குவழி" #: data/gsettings/org.gnome.GPaste.gschema.xml:230 msgid "" "By default, hitting ctrl + alt + u does that (\"U\"). An empty " "string here disables this functionnality." msgstr "" "இயல்பாக, கட்டுப்பாடு + மாற்று + உ ஐத் தாக்கும் அதைச் செய்கிறது (\" u\"). " "இங்கே ஒரு வெற்று சரம் இந்த செயல்பாட்டை முடக்குகிறது." #: data/gsettings/org.gnome.GPaste.gschema.xml:238 msgid "Do we prompt for confirmation when emptying a history?" msgstr "வரலாற்றை காலியாக்கும்போது உறுதிப்படுத்த நாங்கள் தூண்டுகிறோமா?" #: data/gsettings/org.gnome.GPaste.gschema.xml:239 msgid "By default, we do as it's a destructive action" msgstr "இயல்பாக, இது ஒரு அழிவுகரமான செயல் என்பதால் நாங்கள் செய்கிறோம்" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:9 msgid "Marc-Antoine Perennou" msgstr "மார்க்-அன்டோயின் பெரென்னோ" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:17 msgid "" "GPaste is a clipboard managing system allowing you to track and manage your " "clipboard history in a highly customizable way." msgstr "" "GPaste என்பது ஒரு இடைநிலைப்பலகை நிர்வாக அமைப்பாகும், இது உங்கள் இடைநிலைப்பலகை " "வரலாற்றை மிகவும் தனிப்பயனாக்கக்கூடிய வகையில் கண்காணிக்கவும் நிர்வகிக்கவும் அனுமதிக்கிறது." #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:20 msgid "" "GPaste provides you with a graphical tool allowing you to manage everything " "easily." msgstr "" "எல்லாவற்றையும் எளிதாக நிர்வகிக்க உங்களை அனுமதிக்கும் ஒரு வரைகலை கருவியை GPaste " "உங்களுக்கு வழங்குகிறது." #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:27 msgid "The main UI" msgstr "முதன்மையான இடைமுகம்" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:31 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:35 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:39 msgid "The settings UI" msgstr "அமைப்புகள் இடைமுகம்" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:51 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:78 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:90 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:100 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:120 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:133 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:143 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:152 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:161 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:180 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:197 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:205 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:213 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:231 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:239 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:247 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:255 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:263 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:287 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:295 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:303 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:311 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:319 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:327 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:335 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:343 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:352 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:361 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:379 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:387 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:395 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:403 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:421 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:429 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:438 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:447 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:456 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:464 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:485 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:493 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:501 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:509 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:517 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:533 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:541 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:549 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:557 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:573 msgid "This is a maintenance release. Changes:" msgstr "இது ஒரு பராமரிப்பு வெளியீடு. மாற்றங்கள்:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:53 msgid "Fix building without the GNOME Shell extension (-Dgnome-shell=false)" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:54 msgid "" "Restore GTK deprecation version-gating and drop the unused build-time gjs " "dependency" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:55 msgid "Target GNOME Shell 50 in the extension" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:56 msgid "Bump the library soversions to reflect the API/ABI changes since 45.8" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:62 msgid "" "This is a major release porting GPaste to GTK 4 and libadwaita. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:64 msgid "Port the daemon, history UI and preferences to GTK 4 and libadwaita" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:65 msgid "Show image thumbnails in the history, with configurable preview size" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:66 msgid "" "Support global keyboard shortcuts on Wayland through the XDG GlobalShortcuts " "portal" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:67 msgid "Recognise copied colours as dedicated colour items" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:68 msgid "" "Give keybindings human-readable descriptions and install a daemon desktop " "file" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:69 msgid "Fix images sometimes being repeatedly re-added to the history" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:70 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:81 msgid "" "Fix keyboard shortcuts not triggering when NumLock and CapsLock are both " "active" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:71 msgid "" "Fix several crashes (search provider, UI lifetime, GNOME Shell extension) " "and memory leaks" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:72 msgid "Modernise the GNOME Shell extension to current conventions" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:80 msgid "Fix use-after-free crash in the GNOME Shell search provider" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:82 msgid "" "Fix memory leaks when re-copying history items and when rebinding shortcuts" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:83 msgid "Fix potential crash when enforcing a very small history size" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:84 msgid "Build: ship the GSettings schema as a static file" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:92 msgid "" "GNOME Shell extension now retries the daemon connection before giving up" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:93 msgid "Fix test crash when GrabAccelerators is not allowed" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:94 msgid "Build: simplify gsettings compilation for tests" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:102 msgid "Fix GC crash and signal leak when disabling the GNOME Shell extension" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:103 msgid "GNOME Shell extension now handles daemon connection failure gracefully" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:104 #, fuzzy msgid "Fix crash when a history item has no value yet" msgstr "இதுவரை வரலாறு இல்லாதபோது செயலிழப்பை சரிசெய்யவும்" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:105 msgid "Fix image files not being deleted when history items are removed" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:106 msgid "Fix image files stored in wrong directory" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:107 #, fuzzy msgid "Fix keyboard focus being stolen by history items on hover" msgstr "ஒரே ஒரு உருப்படியுடன் வரலாற்றுக்கு வழிவகுக்கும் பிழையை சரிசெய்யவும்" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:108 msgid "" "Fix key events incorrectly forwarded to search when another entry has focus" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:109 msgid "Fix signal loop when updating shortcut entries from settings" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:110 msgid "Fix default history item count not reset after history deletion" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:111 msgid "Enforce minimum window size to prevent unresizable state" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:112 msgid "Add descriptive tooltips for settings entries" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:113 msgid "Build: explicitly link libgpaste libraries against libc" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:114 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:127 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:137 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:146 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:155 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:164 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:174 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:225 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:267 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:281 msgid "Translations updates" msgstr "மொழிபெயர்ப்பு புதுப்பிப்புகள்" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:122 msgid "" "Fix infinite Pango assertion loop that could fill disk when clipboard " "content contained tab characters" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:123 msgid "Various bug fixes and memory management improvements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:124 msgid "Daemon improvements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:125 msgid "GNOME Shell extension improvements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:126 #, fuzzy msgid "GLib >= 2.76 is now required" msgstr "சி.சி.ஆர் 4 இப்போது தேவை" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:135 #, fuzzy msgid "Support for gnome 50" msgstr "க்னோம் 48 க்கான உதவி" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:136 #, fuzzy msgid "Support for gnome 49" msgstr "க்னோம் 48 க்கான உதவி" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:145 msgid "Support for gnome 48" msgstr "க்னோம் 48 க்கான உதவி" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:154 msgid "Support for gnome 47" msgstr "க்னோம் 47 க்கான உதவி" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:163 msgid "Support for gnome 46" msgstr "க்னோம் 46 க்கான உதவி" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:170 msgid "Stable release for GNOME 45. Changes:" msgstr "க்னோம் 45 க்கான நிலையான வெளியீடு. மாற்றங்கள்:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:172 msgid "Port to gnome 45" msgstr "க்னோம் 45 க்கு துறைமுகம்" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:173 msgid "Add setting to open ui window centered" msgstr "இடைமுகம் சாளரத்தை மையமாகக் கொண்ட அமைப்பைச் சேர்க்கவும்" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:182 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:199 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:233 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:289 msgid "Fix a bug leading to history with only one item" msgstr "ஒரே ஒரு உருப்படியுடன் வரலாற்றுக்கு வழிவகுக்கும் பிழையை சரிசெய்யவும்" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:188 msgid "First release for GNOME 44. Changes:" msgstr "க்னோம் 44 க்கான முதல் வெளியீடு. மாற்றங்கள்:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:190 msgid "gcr 4 is now required" msgstr "சி.சி.ஆர் 4 இப்போது தேவை" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:191 msgid "Port to gnome 44" msgstr "க்னோம் 44 க்கு துறைமுகம்" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:207 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:241 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:297 msgid "Avoid crash under heavy memory load" msgstr "கனமான நினைவக சுமைகளின் கீழ் செயலிழப்பைத் தவிர்க்கவும்" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:215 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:249 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:305 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:381 msgid "Respect --use-index when displaying history" msgstr "வரலாற்றைக் காண்பிக்கும் போது மரியாதை-use-index" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:221 msgid "First release for GNOME 43. Changes:" msgstr "க்னோம் 43 க்கான முதல் வெளியீடு. மாற்றங்கள்:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:223 msgid "Port to GNOME 43" msgstr "க்னோம் 43 க்கு துறைமுகம்" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:224 msgid "Internal preparation for gtk4 port" msgstr "சி.டி.கே 4 போர்ட்டுக்கான உள் தயாரிப்பு" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:257 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:313 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:389 msgid "Open GPaste UI where the mouse pointer is" msgstr "மவுச் சுட்டிக்காட்டி இருக்கும் இடத்தில் gpaste இடைமுகம் ஐத் திறக்கவும்" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:265 msgid "Fixes to the new preferences tool" msgstr "புதிய விருப்பத்தேர்வுகள் கருவியை சரிசெய்கிறது" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:266 msgid "Style fixes" msgstr "பாணி திருத்தங்கள்" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:273 msgid "First release for GNOME 42. Changes:" msgstr "க்னோம் 42 க்கான முதல் வெளியீடு. மாற்றங்கள்:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:275 msgid "" "Old libgpaste replaced by a new minimal libgpaste-2 with no gtk dependency" msgstr "" "சி.டி.கே சார்பு இல்லாத புதிய குறைந்தபட்ச லிப்க்பேச்ட் -2 ஆல் மாற்றப்பட்ட பழைய லிப்க்பேச்ட்" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:276 msgid "New libgpaste-gtk3 for utils and settings ui" msgstr "பயன்பாடுகள் மற்றும் அமைப்புகளுக்கு இடைமுகம் க்கான புதிய libgpaste-gtk3" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:277 msgid "New libgpaste-gtk4 for utils and preferences ui" msgstr "பயன்பாடுகள் மற்றும் விருப்பங்களுக்கான புதிய libgpaste-gtk4 இடைமுகம்" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:278 msgid "New gtk4 based gpaste-preferences utility" msgstr "புதிய சி.டி.கே 4 அடிப்படையிலான சிஒட்டு-முன்னுரிமைகள் பயன்பாடு" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:279 msgid "Autotools are no longer supported" msgstr "ஆட்டோடூல்கள் இனி ஆதரிக்கப்படாது" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:280 msgid "Extension updated for gnome-shell 42" msgstr "க்னோம்-செல் 42 க்கு நீட்டிப்பு புதுப்பிக்கப்பட்டது" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:321 msgid "fix the storage path for meson builds" msgstr "மீசன் கட்டமைப்பிற்கான சேமிப்பக பாதையை சரிசெய்யவும்" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:329 msgid "fix some race conditions in history handling" msgstr "வரலாற்று கையாளுதலில் சில இன நிலைமைகளை சரிசெய்யவும்" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:337 msgid "better fix crash when there is no history yet" msgstr "இதுவரை வரலாறு இல்லாதபோது செயலிழப்பை சரிசெய்ய சிறந்தது" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:345 msgid "fix crash when there is no history yet" msgstr "இதுவரை வரலாறு இல்லாதபோது செயலிழப்பை சரிசெய்யவும்" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:346 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:355 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:364 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:373 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:397 msgid "translations update" msgstr "மொழிபெயர்ப்பு புதுப்பிப்பு" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:354 msgid "fix gnome-shell exntesion when the daemon restarts" msgstr "டீமான் மறுதொடக்கம் செய்யும் போது க்னோம்-செல் எக்சன்டீனை சரிசெய்யவும்" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:363 msgid "Fix keybindings for wayland" msgstr "வேலண்டிற்கான விசைப்பலகைகளை சரிசெய்யவும்" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:370 msgid "First release for GNOME 41. Changes:" msgstr "க்னோம் 41 க்கான முதல் வெளியீடு. மாற்றங்கள்:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:372 msgid "port to gnome-shell 41" msgstr "க்னோம்-செல் 41 க்கு துறைமுகம்" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:405 msgid "fix a crash in memory usage checking" msgstr "நினைவக பயன்பாட்டு சோதனையில் விபத்தை சரிசெய்யவும்" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:412 msgid "First release for GNOME 40. Changes:" msgstr "க்னோம் 40 க்கான முதல் வெளியீடு. மாற்றங்கள்:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:414 msgid "port to gnome-shell 40" msgstr "க்னோம்-செல் 40 க்கு துறைமுகம்" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:415 msgid "placeholder for gnome-shell prefs" msgstr "க்னோம்-செல் முன்னுரிமைகளுக்கான ஒதுக்கிடர்" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:423 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:487 msgid "fix X11 keybinder outside of GNOME" msgstr "க்னோமுக்கு வெளியே x11 கீபிண்டரை சரிசெய்யவும்" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:431 msgid "better handling and reporting of invalid uuids passed to gpaste-client" msgstr "" "gpaste-client க்கு அனுப்பப்பட்ட தவறான uuids களின் சிறந்த கையாளுதல் மற்றும் அறிக்கையிடல்" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:432 msgid "" "gpaste-client now has a --use-index argument for several subcommands to use " "index instead of uuid" msgstr "" "gpaste-client இப்போது uuid க்கு பதிலாகக் குறியீட்டைப் பயன்படுத்தப் பல துணைக் " "கமாண்டுகளுக்கு-use-index உரையாடல் உள்ளது" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:440 msgid "fix the make-password keybinding" msgstr "மேக்-பாச்வேர்ட் கீபிங்கை சரிசெய்யவும்" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:441 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:450 msgid "updated translations" msgstr "புதுப்பிக்கப்பட்ட மொழிபெயர்ப்புகள்" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:449 msgid "gnome-shell extension warning fixes" msgstr "க்னோம்-செல் நீட்டிப்பு எச்சரிக்கை திருத்தங்கள்" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:458 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:495 msgid "gnome-shell extension cosmetic updates" msgstr "க்னோம்-செல் நீட்டிப்பு ஒப்பனை புதுப்பிப்புகள்" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:466 msgid "Disable images support by default (can be reenabled in preferences)" msgstr "முன்னிருப்பாக படங்களின் ஆதரவை முடக்கு (விருப்பங்களில் மீண்டும் உருவாக்கப்படலாம்)" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:467 msgid "Search now includes passwords (using their names)" msgstr "இப்போது தேடலில் கடவுச்சொற்கள் உள்ளன (அவற்றின் பெயர்களைப் பயன்படுத்தி)" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:468 msgid "systemd integration enhancements" msgstr "SystemD ஒருங்கிணைப்பு மேம்பாடுகள்" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:474 msgid "First release for GNOME 3.38. Changes:" msgstr "க்னோம் 3.38 க்கான முதல் வெளியீடு. மாற்றங்கள்:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:476 msgid "Drop the Tracking DBus signal" msgstr "கண்காணிப்பு DBUS சமிக்ஞையை கைவிடவும்" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:477 msgid "Switch to uuids to identify items" msgstr "உருப்படிகளை அடையாளம் காண uuids க்கு மாறவும்" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:478 msgid "Bump DBus interface to org.gnome.GPaste2" msgstr "Org.gnome.gpasat2 க்கு பம்ப் டிபிஎச் இடைமுகம்" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:479 msgid "Update to gnome-shell 3.38.0" msgstr "க்னோம்-செல் 3.38.0 க்கு புதுப்பிக்கவும்" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:503 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:535 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:577 msgid "Fix activating items using Ctrl-Number in gnome-shell" msgstr "க்னோம்-செல்லில் Ctrl- எண் பயன்படுத்தி செயல்படுத்தும் உருப்படிகளை சரிசெய்யவும்" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:511 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:543 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:576 msgid "Fix keybinding regrab with gnome-shell" msgstr "க்னோம்-செல் உடன் கீபிண்டிங் ரெட்ராபை சரிசெய்யவும்" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:519 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:551 msgid "Fix keybinding grab with gnome-shell" msgstr "க்னோம்-செல் மூலம் கீபிங் கிராப்பை சரிசெய்யவும்" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:525 msgid "First release for GNOME 3.36. Changes:" msgstr "க்னோம் 3.36 க்கான முதல் வெளியீடு. மாற்றங்கள்:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:527 msgid "Update to gnome-shell 3.36.0" msgstr "க்னோம்-செல் 3.36.0 க்கு புதுப்பிக்கவும்" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:559 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:575 msgid "Compatibility with recent appstream-glib" msgstr "அண்மைக் கால ஆப்ச்ட்ரீம்-க்ளிபுடன் பொருந்தக்கூடிய தன்மை" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:565 msgid "First release for GNOME 3.34. Changes:" msgstr "க்னோம் 3.34 க்கான முதல் வெளியீடு. மாற்றங்கள்:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:567 msgid "Update to gnome-shell 3.34.0" msgstr "க்னோம்-செல் 3.34.0 க்கு புதுப்பிக்கவும்" #: src/client/gpaste-client.c:146 msgid "Couldn't spawn" msgstr "ச்பான் செய்ய முடியவில்லை" #: src/client/gpaste-client.c:158 #, c-format msgid "Usage:\n" msgstr "பயன்பாடு:\n" #. Translators: help for gpaste history #: src/client/gpaste-client.c:160 msgid "print the history with UUIDs" msgstr "வரலாற்றை UUIDS உடன் அச்சிடுங்கள்" #. Translators: help for gpaste history-size #: src/client/gpaste-client.c:162 msgid "print the size of the history" msgstr "வரலாற்றின் அளவை அச்சிடுங்கள்" #. Translators: help for gpaste get-history #: src/client/gpaste-client.c:164 msgid "get the name of the current history" msgstr "தற்போதைய வரலாற்றின் பெயரைப் பெறுங்கள்" #. Translators: help for gpaste backup-history #. Translators: help for gpaste switch-history #. Translators: help for gpaste delete-history #. Translators: help for gpaste add-password #. Translators: help for gpaste set-password #. Translators: help for gpaste delete-passworf #: src/client/gpaste-client.c:166 src/client/gpaste-client.c:168 #: src/client/gpaste-client.c:170 src/client/gpaste-client.c:176 #: src/client/gpaste-client.c:188 src/client/gpaste-client.c:192 msgid "name" msgstr "பெயர்" #: src/client/gpaste-client.c:166 msgid "backup current history" msgstr "தற்போதைய வரலாறு காப்புப்பிரதி" #: src/client/gpaste-client.c:168 msgid "switch to another history" msgstr "மற்றொரு வரலாற்றுக்கு மாறவும்" #: src/client/gpaste-client.c:170 msgid "delete a history" msgstr "ஒரு வரலாற்றை நீக்கு" #. Translators: help for gpaste list-histories #: src/client/gpaste-client.c:172 msgid "list available histories" msgstr "கிடைக்கக்கூடிய வரலாறுகள் பட்டியல்" #. Translators: help for gpaste add #: src/client/gpaste-client.c:174 msgid "text" msgstr "உரை" #: src/client/gpaste-client.c:174 msgid "set text to clipboard" msgstr "இடைநிலைப்பலகைக்கு உரையை அமைக்கவும்" #: src/client/gpaste-client.c:176 msgid "password" msgstr "கடவுச்சொல்" #: src/client/gpaste-client.c:176 msgid "add the name - password couple to the clipboard" msgstr "கிளிப்போர்டில் பெயர் - கடவுச்சொல் இணை சேர்க்கவும்" #. Translators: help for gpaste rename-password #: src/client/gpaste-client.c:178 msgid "old name" msgstr "பழைய பெயர்" #: src/client/gpaste-client.c:178 msgid "new name" msgstr "புதிய பெயர்" #: src/client/gpaste-client.c:178 msgid "rename the password" msgstr "கடவுச்சொல்லை மறுபெயரிடுங்கள்" #. Translators: help for gpaste get #: src/client/gpaste-client.c:180 msgid "get the item from the history" msgstr "வரலாற்றிலிருந்து உருப்படியைப் பெறுங்கள்" #. Translators: help for gpaste select #: src/client/gpaste-client.c:182 msgid "set the item from the history to the clipboard" msgstr "உருப்படியை வரலாற்றிலிருந்து இடைநிலைப்பலகைக்கு அமைக்கவும்" #. Translators: help for gpaste replace #: src/client/gpaste-client.c:184 msgid "contents" msgstr "உள்ளடக்கங்கள்" #: src/client/gpaste-client.c:184 msgid "" "replace the contents of the item from the history with the provided " "one" msgstr "வழங்கப்பட்ட ஒன்றோடு வரலாற்றிலிருந்து உருப்படியின் உள்ளடக்கங்களை மாற்றவும்" #. Translators: help for gpaste merge #: src/client/gpaste-client.c:186 msgid "" "merge the items matching the UUIDs from the history and put the result in " "the clipboard" msgstr "" "வரலாற்றிலிருந்து UUID களுடன் பொருந்தக்கூடிய உருப்படிகளை ஒன்றிணைத்து, முடிவை " "கிளிப்போர்டில் வைக்கவும்" #: src/client/gpaste-client.c:188 msgid "set the item from the history as a password named " msgstr "வரலாற்றிலிருந்து உருப்படியை <பெயர்> என்ற கடவுச்சொல்லாக அமைக்கவும்" #. Translators: help for gpaste delete #: src/client/gpaste-client.c:190 msgid "delete item from the history" msgstr "வரலாற்றிலிருந்து உருப்படியை நீக்கு" #: src/client/gpaste-client.c:192 msgid "delete the password from the history" msgstr "வரலாற்றிலிருந்து கடவுச்சொல்லை <பெயர்> நீக்கவும்" #. Translators: help for gpaste file #: src/client/gpaste-client.c:194 msgid "path" msgstr "பாதை" #: src/client/gpaste-client.c:194 msgid "put the content of the file at into the clipboard" msgstr "கோப்பின் உள்ளடக்கத்தை இல் கிளிப்போர்டில் வைக்கவும்" #. Translators: help for whatever | gpaste #: src/client/gpaste-client.c:196 msgid "whatever" msgstr "எதுவாக இருந்தாலும்" #: src/client/gpaste-client.c:196 msgid "set the output of whatever to clipboard" msgstr "இடைநிலைப்பலகைக்கு எதுவுமே வெளியீட்டை அமைக்கவும்" #. Translators: help for gpaste empty #: src/client/gpaste-client.c:198 msgid "empty the history" msgstr "வரலாற்றை வெறுமை செய்யுங்கள்" #. Translators: help for gpaste start #: src/client/gpaste-client.c:200 msgid "start tracking clipboard changes" msgstr "இடைநிலைப்பலகை மாற்றங்களைக் கண்காணிக்கத் தொடங்குங்கள்" #. Translators: help for gpaste stop #: src/client/gpaste-client.c:202 msgid "stop tracking clipboard changes" msgstr "இடைநிலைப்பலகை மாற்றங்களைக் கண்காணிப்பதை நிறுத்துங்கள்" #. Translators: help for gpaste quit #: src/client/gpaste-client.c:204 msgid "alias for stop" msgstr "நிறுத்தத்திற்கான மாற்றுப்பெயர்" #. Translators: help for gpaste daemon-reexec #: src/client/gpaste-client.c:206 msgid "reexecute the daemon (after upgrading...)" msgstr "டீமனை மீண்டும் ஆராயுங்கள் (மேம்படுத்தப்பட்ட பிறகு ...)" #. Translators: help for gpaste preferences #: src/client/gpaste-client.c:208 msgid "launch the configuration tool" msgstr "உள்ளமைவு கருவியைத் தொடங்கவும்" #. Translators: help for gpaste ui #: src/client/gpaste-client.c:210 msgid "launch the graphical tool" msgstr "வரைகலை கருவியைத் தொடங்கவும்" #. Translators: help for gpaste show-history #: src/client/gpaste-client.c:212 msgid "make the applet or extension display the history" msgstr "ஆப்லெட் அல்லது நீட்டிப்பு வரலாற்றைக் காண்பி" #. Translators: help for gpaste upload #: src/client/gpaste-client.c:214 msgid "upload the item to a pastebin service" msgstr "உருப்படியை ஒரு பேச்டெபின் சேவையில் பதிவேற்றவும்" #. Translators: help for gpaste version #: src/client/gpaste-client.c:216 msgid "display the version" msgstr "பதிப்பைக் காண்பி" #. Translators: help for gpaste daemon-version #: src/client/gpaste-client.c:218 msgid "display the daemon version" msgstr "டீமான் பதிப்பைக் காண்பி" #. Translators: help for gpaste help #: src/client/gpaste-client.c:220 msgid "display this help" msgstr "இந்த உதவியைக் காண்பி" #. Translators: help for gpaste about #: src/client/gpaste-client.c:222 msgid "display the about dialog" msgstr "பற்றி உரையாடலைக் காண்பி" #: src/client/gpaste-client.c:225 #, c-format msgid "Convenience options:" msgstr "வசதியான விருப்பங்கள்:" #. Translators: help for --use-index #: src/client/gpaste-client.c:228 msgid "use the index of the item instead of its UUID" msgstr "உருப்படியின் குறியீட்டை அதன் UUID க்கு பதிலாக பயன்படுத்தவும்" #: src/client/gpaste-client.c:231 #, c-format msgid "Display options:" msgstr "காட்சி விருப்பங்கள்:" #. Translators: help for --oneline #: src/client/gpaste-client.c:234 msgid "display each item on only one line" msgstr "ஒவ்வொரு உருப்படியையும் ஒரே வரியில் மட்டுமே காண்பி" #. Translators: help for --raw #: src/client/gpaste-client.c:236 msgid "display each item raw (without line numbers)" msgstr "ஒவ்வொரு உருப்படியையும் ராவைக் காண்பி (வரி எண்கள் இல்லாமல்)" #. Translators: help for --reverse #: src/client/gpaste-client.c:238 msgid "display the items in reverse order" msgstr "உருப்படிகளை தலைகீழ் வரிசையில் காண்பி" #. Translators: help for --zero #: src/client/gpaste-client.c:240 msgid "use a NUL character instead of a new line betweean each item" msgstr "ஒவ்வொரு பொருளுக்கும் ஒரு புதிய வரிக்கு பதிலாக ஒரு NUL எழுத்தை பயன்படுத்தவும்" #: src/client/gpaste-client.c:243 #, c-format msgid "Merge options:" msgstr "விருப்பங்களை ஒன்றிணைத்தல்:" #. Translators: help for --decoration #. Translators: help for --separator #: src/client/gpaste-client.c:246 src/client/gpaste-client.c:248 msgid "string" msgstr "சரம்" #: src/client/gpaste-client.c:246 msgid "" "add the given decoration to the beginning and the end of each item before " "merging" msgstr "" "ஒன்றிணைவதற்கு முன் ஒவ்வொரு பொருளின் தொடக்கத்திலும் முடிவிலும் கொடுக்கப்பட்ட அலங்காரத்தை " "சேர்க்கவும்" #: src/client/gpaste-client.c:248 msgid "add the given separator between each item when merging" msgstr "ஒன்றிணைக்கும் போது ஒவ்வொரு பொருளுக்கும் இடையில் கொடுக்கப்பட்ட பிரிப்பான் சேர்க்கவும்" #: src/client/gpaste-client.c:345 #, c-format msgid "Successfully reexecuted the daemon\n" msgstr "டீமனை வெற்றிகரமாக மறுபரிசீலனை செய்தார்\n" #: src/client/gpaste-client.c:486 msgid "Cannot add non utf8 data as text." msgstr "utf8 அல்லாத தரவை உரையாகச் சேர்க்க முடியாது." #: src/client/gpaste-client.c:796 src/ui/gpaste-ui-window.c:353 #: src/ui/gpaste-ui-window.c:354 msgid "Couldn't connect to GPaste daemon" msgstr "Gpaste டீமனுடன் இணைக்க முடியவில்லை" #: src/daemon/gpaste-color-item.c:73 msgid "[Color]" msgstr "" #. Translators: strftime format for image timestamps. Rearrange to match your locale's date/time convention. #: src/daemon/gpaste-image-item.c:219 msgid "%m/%d/%y %T" msgstr "%m/%d/%y%t" #. Translators: Image item displayed in history. %d is width, %d is height, %s is the formatted date. #: src/daemon/gpaste-image-item.c:221 #, c-format msgid "[Image, %d x %d (%s)]" msgstr "[படம், %d ஃச் %d ( %s)]]" #: src/daemon/gpaste-make-password-keybinding.c:50 #, fuzzy msgid "Convert to Password" msgstr "கடவுச்சொல்லை மறுபெயரிடுங்கள்" #. This is the prefix displayed in history to identify a password #: src/daemon/gpaste-password-item.c:65 msgid "Password" msgstr "கடவுச்சொல்" #: src/daemon/gpaste-pop-keybinding.c:64 #, fuzzy msgid "Pop from History" msgstr "வரலாற்று அணுகல்" #: src/daemon/gpaste-show-history-keybinding.c:49 #, fuzzy msgid "Show History" msgstr "வரலாற்று அணுகல்" #: src/daemon/gpaste-sync-clipboard-to-primary-keybinding.c:46 #, fuzzy msgid "Sync Clipboard to Primary" msgstr "கிளிப்போர்டை முதன்மை தேர்வுக்கு ஒத்திசைக்கவும்" #: src/daemon/gpaste-sync-primary-to-clipboard-keybinding.c:46 #, fuzzy msgid "Sync Primary to Clipboard" msgstr "முதன்மை தேர்வை கிளிப்போர்டுடன் ஒத்திசைக்கவும்" #: src/daemon/gpaste-ui-keybinding.c:43 msgid "Launch UI" msgstr "" #: src/daemon/gpaste-upload-keybinding.c:64 msgid "Upload to Pastebin" msgstr "" #: src/daemon/gpaste-uris-item.c:87 msgid "[Files] " msgstr "[கோப்புகள்] " #: src/daemon/main.c:32 msgid "Stop signal received, exiting" msgstr "சிக்னல் பெறப்பட்ட நிறுத்த, வெளியேறுதல்" #: src/daemon/main.c:69 msgid "Could not acquire DBus name." msgstr "DBUS பெயரைப் பெற முடியவில்லை." #: src/gnome-shell/dummyHistoryItem.js:12 msgid "(Couldn't connect to GPaste daemon)" msgstr "(GPaste டீமானுடன் இணைக்க முடியவில்லை)" #: src/gnome-shell/dummyHistoryItem.js:17 msgid "(Empty)" msgstr "(காலியாக)" #: src/gnome-shell/dummyHistoryItem.js:22 msgid "(No result)" msgstr "(முடிவு இல்லை)" #: src/gnome-shell/emptyHistoryItem.js:14 msgid "Empty history" msgstr "வெற்று வரலாறு" #: src/gnome-shell/stateSwitch.js:12 msgid "Track changes" msgstr "மாற்றங்களை கண்காணிக்கவும்" #: src/gnome-shell/uiItem.js:14 msgid "Graphical tool" msgstr "வரைகலை கருவி" #: src/libgpaste/gpaste/gpaste-util.c:636 msgid "Could not create history dir" msgstr "வரலாற்றை உருவாக்க முடியவில்லை" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-macros.h:38 msgid "Failed to register the gtk application" msgstr "சி.டி.கே விண்ணப்பத்தை பதிவு செய்வதில் தோல்வி" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:108 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:119 msgid "General behaviour" msgstr "பொது நடத்தை" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:121 #: src/ui/gpaste-ui-switch.c:93 msgid "Track clipboard changes" msgstr "ட்ராக் இடைநிலைப்பலகை மாற்றங்கள்" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:127 msgid "Close UI on select" msgstr "தேர்ந்தெடுக்கப்பட்ட இடைமுகம் ஐ மூடு" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:133 msgid "Open the UI window centered" msgstr "இடைமுகம் சாளரத்தைத் திறக்கவும்" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:139 msgid "Save history" msgstr "வரலாற்றைக் காப்பாற்றுங்கள்" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:150 msgid "Enable the gnome-shell extension" msgstr "க்னோம்-செல் நீட்டிப்பை இயக்கவும்" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:156 msgid "Sync the daemon state with the extension's one" msgstr "டீமான் நிலையை நீட்டிப்புடன் ஒத்திசைக்கவும்" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:162 msgid "" "When enabled, the daemon automatically starts or stops tracking clipboard " "changes to match the GNOME Shell extension's enabled state" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:166 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:174 msgid "Clipboards synchronization" msgstr "கிளிப்போர்டுகள் ஒத்திசைவு" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:168 msgid "Primary selection affects history" msgstr "முதன்மை தேர்வு வரலாற்றை பாதிக்கிறது" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:174 msgid "Synchronize clipboard with primary selection" msgstr "முதன்மை தேர்வோடு கிளிப்போர்டை ஒத்திசைக்கவும்" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:181 msgid "Optional features" msgstr "விருப்ப நற்பொருத்தங்கள்" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:183 msgid "Trim items" msgstr "உருப்படிகளை ஒழுங்கமைக்கவும்" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:189 msgid "Detect growing lines" msgstr "வளர்ந்து வரும் கோடுகளைக் கண்டறியவும்" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:195 msgid "" "When enabled, if a new clipboard entry starts with the previous one, the " "previous entry is replaced instead of creating a new one" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:92 msgid "History settings" msgstr "வரலாற்று அமைப்புகள்" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:103 msgid "Resources limits" msgstr "வள வரம்புகள்" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:120 msgid "Text limits" msgstr "உரை வரம்புகள்" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:122 msgid "Min text item length" msgstr "மணித்துளி உரை உருப்படி நீளம்" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:129 msgid "Max text item length" msgstr "அதிகபட்ச உரை உருப்படி நீளம்" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:137 msgid "Display settings" msgstr "அமைப்புகளைக் காண்பி" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:139 msgid "Max element size when displaying" msgstr "காண்பிக்கும் போது அதிகபட்ச உறுப்பு அளவு" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:81 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:92 #, fuzzy msgid "Images settings" msgstr "அமைப்புகள் இடைமுகம்" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:94 msgid "Images support" msgstr "படங்கள் உதவி" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:100 msgid "Image previews" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:106 msgid "Preview size" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:122 msgid "Keyboard shortcuts" msgstr "விசைப்பலகை குறுக்குவழிகள்" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:133 msgid "History access" msgstr "வரலாற்று அணுகல்" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:150 msgid "Active element manipulation" msgstr "செயலில் உறுப்பு கையாளுதல்" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-util.c:51 #: src/ui/gpaste-ui-edit-item.c:84 src/ui/gpaste-ui-new-item.c:66 #: src/ui/gpaste-ui-panel.c:311 msgid "Cancel" msgstr "ரத்துசெய்" #. Translators: %s is the name of the history being emptied. #: src/libgpaste/gpaste-gtk4/gpaste-gtk-util.c:126 #, fuzzy, c-format msgid "Do you really want to empty \"%s\"?" msgstr "நீங்கள் உண்மையில் வரலாற்றை வெறுமை செய்ய விரும்புகிறீர்களா?" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-util.c:127 #: src/ui/gpaste-ui-history.c:153 src/ui/gpaste-ui-history.c:428 #: src/ui/gpaste-ui-panel.c:517 msgid "Empty" msgstr "காலி" #: src/ui/gpaste-ui.c:47 msgid "Clipboard management system" msgstr "" #: src/ui/gpaste-ui-delete-item.c:46 src/ui/gpaste-ui-panel.c:358 #: src/ui/gpaste-ui-panel.c:518 msgid "Delete" msgstr "நீக்கு" #: src/ui/gpaste-ui-edit-item.c:85 src/ui/gpaste-ui-edit-item.c:139 msgid "Edit" msgstr "தொகு" #: src/ui/gpaste-ui-history.c:266 #, fuzzy msgid "No Results" msgstr "(முடிவு இல்லை)" #: src/ui/gpaste-ui-new-item.c:67 msgid "Add new item" msgstr "" #: src/ui/gpaste-ui-new-item.c:100 msgid "New item" msgstr "" #: src/ui/gpaste-ui-panel.c:307 msgid "Under which name do you want to backup this history?" msgstr "இந்த வரலாற்றை எந்த பெயரில் காப்புப் பிரதி எடுக்க விரும்புகிறீர்கள்?" #: src/ui/gpaste-ui-panel.c:311 src/ui/gpaste-ui-panel.c:516 msgid "Backup" msgstr "காப்புப்பிரதி" #. Translators: %s is the name of the history being deleted. #: src/ui/gpaste-ui-panel.c:357 #, fuzzy, c-format msgid "Are you sure you want to delete \"%s\"?" msgstr "இந்த வரலாற்றை நீக்க விரும்புகிறீர்களா?" #: src/ui/gpaste-ui-panel.c:441 #, fuzzy msgid "Switch to history" msgstr "மற்றொரு வரலாற்றுக்கு மாறவும்" #: src/ui/gpaste-ui-panel.c:448 msgid "Switch to" msgstr "மாறவும்" #: src/ui/gpaste-ui-reexec.c:45 msgid "Restart" msgstr "மறுதொடக்கம்" #: src/ui/gpaste-ui-reexec.c:45 msgid "Do you really want to restart the daemon?" msgstr "நீங்கள் உண்மையில் டீமனை மறுதொடக்கம் செய்ய விரும்புகிறீர்களா?" #: src/ui/gpaste-ui-reexec.c:70 msgid "Restart the daemon" msgstr "டீமனை மறுதொடக்கம் செய்யுங்கள்" #: src/ui/gpaste-ui-search.c:23 msgid "Search" msgstr "தேடல்" #: src/ui/gpaste-ui-settings.c:35 msgid "GPaste Settings" msgstr "Gpaste அமைப்புகள்" #: src/ui/gpaste-ui-shortcuts-window.c:21 msgid "General" msgstr "பொது" #: src/ui/gpaste-ui-switch.c:68 msgid "Stop" msgstr "நிறுத்து" #: src/ui/gpaste-ui-switch.c:68 msgid "Do you really want to stop tracking clipboard changes?" msgstr "இடைநிலைப்பலகை மாற்றங்களைக் கண்காணிப்பதை நிறுத்த விரும்புகிறீர்களா?" #: src/ui/gpaste-ui-upload-item.c:46 msgid "Upload" msgstr "பதிவேற்றும்" #: src/ui/gpaste-ui-window.c:303 msgid "Quit" msgstr "" #: src/ui/gpaste-ui-window.c:380 #, fuzzy msgid "Histories" msgstr "வரலாற்று அணுகல்" #: src/ui/gpaste-ui-window.c:381 #, fuzzy msgid "History" msgstr "வரலாற்று அணுகல்" #~ msgid "is already running." #~ msgstr "ஏற்கனவே இயங்குகிறது." #~ msgid "Open UI window centered" #~ msgstr "இடைமுகம் சாளரத்தை மையமாகக் கொண்டது" #~ msgid "New" #~ msgstr "புதிய" Keruspe-GPaste-724def1/po/tok.po000066400000000000000000001255261521206431300165120ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the GPaste package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: GPaste\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-06-09 21:21+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" "Language: tok\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: data/control-center/42-gpaste.control-center.xml.in:2 msgid "@GETTEXT_PACKAGE@" msgstr "" #: data/control-center/42-gpaste.control-center.xml.in:3 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:136 #: src/ui/gpaste-ui-shortcuts-window.c:24 msgid "Launch the graphical tool" msgstr "" #: data/control-center/42-gpaste.control-center.xml.in:4 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:153 #: src/ui/gpaste-ui-shortcuts-window.c:25 msgid "Mark the active item as being a password" msgstr "" #: data/control-center/42-gpaste.control-center.xml.in:5 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:167 #: src/ui/gpaste-ui-shortcuts-window.c:23 msgid "Delete the active item from history" msgstr "" #: data/control-center/42-gpaste.control-center.xml.in:6 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:143 #: src/ui/gpaste-ui-shortcuts-window.c:26 msgid "Display the history" msgstr "" #: data/control-center/42-gpaste.control-center.xml.in:7 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:177 #: src/ui/gpaste-ui-shortcuts-window.c:27 msgid "Sync the clipboard to the primary selection" msgstr "" #: data/control-center/42-gpaste.control-center.xml.in:8 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:184 #: src/ui/gpaste-ui-shortcuts-window.c:28 msgid "Sync the primary selection to the clipboard" msgstr "" #: data/control-center/42-gpaste.control-center.xml.in:9 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:160 #: src/ui/gpaste-ui-shortcuts-window.c:29 msgid "Upload the active item to a pastebin service" msgstr "" #: data/desktop/org.gnome.GPaste.Daemon.desktop.in.in:3 #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:3 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:6 msgid "GPaste" msgstr "" #: data/desktop/org.gnome.GPaste.Preferences.desktop.in.in:3 msgid "GPaste Preferences" msgstr "" #: data/desktop/org.gnome.GPaste.Preferences.desktop.in.in:4 msgid "Manage your GPaste preferences" msgstr "" #: data/desktop/org.gnome.GPaste.Preferences.desktop.in.in:5 #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:6 msgid "Clipboard;Manager;Settings;Preferences;Configuration;" msgstr "" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:4 msgid "Clipboard Manager" msgstr "" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:5 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:7 msgid "Manage your clipboard history" msgstr "" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:16 msgid "Preferences" msgstr "" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:20 #: src/gnome-shell/aboutItem.js:13 src/ui/gpaste-ui-about.c:38 msgid "About" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:7 msgid "Max size of an element when displaying it" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:8 msgid "" "The extra stuff of that element will be replaced by \"…\", and newlines by " "\" \" when displaying from the applet, 0 to disable." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:15 msgid "Do we detect and replace growing lines in history?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:16 msgid "" "By default, selecting \"Here is\", then \"Here is an example\" will create " "two entries in the history. With this feature enabled, the first one will be " "replaced by the second one." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:24 msgid "The name of the current history" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:25 msgid "The default name is \"history\"" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:32 msgid "Do we save the images copied to history, or only text?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:33 msgid "By default, we're saving only text" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:40 msgid "Show image previews in the history?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:41 msgid "By default, we show previews of images in the history" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:49 msgid "Size of image previews in pixels" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:50 msgid "Default size is 100 pixels" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:57 msgid "Do we close the UI after selecting an item?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:58 msgid "By default, we close it" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:65 msgid "Do we open the UI window centered?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:66 msgid "By default, we open it where the mouse cursor is" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:73 msgid "The keyboard shortcut to launch the graphical interface" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:74 msgid "" "By default, hitting ctrl + alt + g does that (\"G\"). An empty " "string here disables this functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:82 msgid "The keyboard shortcut to mark the active item as being a password" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:83 msgid "" "By default, hitting ctrl + alt + s will mark the active item as being a " "password (\"S\"). An empty string here disables this " "functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:92 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:146 msgid "Max displayed history size" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:93 msgid "Maximum number of items displayed in the history" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:101 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:105 msgid "Max history size" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:102 msgid "Maximum number of items in history" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:110 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:112 msgid "Max memory usage (MB)" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:111 msgid "Maximum amount of memory used to store contents" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:119 msgid "Max text item size" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:120 msgid "Maximum size of a text item. Anything out of this boundary is ignored." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:128 msgid "Min text item size" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:129 msgid "Minimum size of a text item. Anything out of this boundary is ignored." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:136 msgid "The keyboard shortcut to delete the first element in history" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:137 msgid "" "By default, hitting ctrl + alt + v does that (\"V\"). An empty " "string here disables this functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:145 msgid "Does the primary selection affects history?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:146 msgid "By default, only clipboard (ctrl+c) affects history." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:153 msgid "" "Do we save all versions of selected rich text (e.g. html) or just the plain " "text version?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:154 msgid "By default, we're saving all" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:161 msgid "Do we save the history from one session to another?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:162 msgid "By default, we're saving it" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:169 msgid "The keyboard shortcut to display the menu" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:170 msgid "" "By default, hitting ctrl + alt + h displays the menu (\"H\"). An " "empty string here disables this functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:178 msgid "The keyboard shortcut to sync the clipboard to the primary selection" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:179 msgid "" "By default, hitting ctrl + alt + o syncs them (\"P\"). An empty " "string here disables this functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:187 msgid "The keyboard shortcut to sync the primary selection to the clipboard" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:188 msgid "" "By default, hitting ctrl + alt + p syncs them (\"P\"). An empty " "string here disables this functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:196 msgid "Are the primary selection and the clipboard synchronized?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:197 msgid "By default, the primary selection and the clipboard are independent." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:204 msgid "Do we track the clipboard changes?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:205 msgid "By default, we're tracking those changes." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:212 msgid "" "Do we sync the daemon state with the gnome-shell extension's one? (disable " "the daemon when disabling the extension)" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:213 msgid "By default, the daemon state keeps unchanged" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:220 msgid "Do we trim the textual items before adding them to history?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:221 msgid "" "Trimming means removing all trailing and ending spaces. By default, we're " "letting them as-is." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:229 msgid "" "The keyboard shortcut to upload the first element in history to a pastebin " "service" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:230 msgid "" "By default, hitting ctrl + alt + u does that (\"U\"). An empty " "string here disables this functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:238 msgid "Do we prompt for confirmation when emptying a history?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:239 msgid "By default, we do as it's a destructive action" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:9 msgid "Marc-Antoine Perennou" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:17 msgid "" "GPaste is a clipboard managing system allowing you to track and manage your " "clipboard history in a highly customizable way." msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:20 msgid "" "GPaste provides you with a graphical tool allowing you to manage everything " "easily." msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:27 msgid "The main UI" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:31 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:35 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:39 msgid "The settings UI" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:51 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:78 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:90 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:100 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:120 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:133 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:143 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:152 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:161 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:180 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:197 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:205 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:213 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:231 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:239 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:247 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:255 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:263 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:287 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:295 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:303 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:311 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:319 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:327 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:335 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:343 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:352 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:361 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:379 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:387 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:395 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:403 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:421 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:429 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:438 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:447 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:456 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:464 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:485 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:493 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:501 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:509 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:517 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:533 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:541 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:549 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:557 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:573 msgid "This is a maintenance release. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:53 msgid "Fix building without the GNOME Shell extension (-Dgnome-shell=false)" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:54 msgid "" "Restore GTK deprecation version-gating and drop the unused build-time gjs " "dependency" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:55 msgid "Target GNOME Shell 50 in the extension" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:56 msgid "Bump the library soversions to reflect the API/ABI changes since 45.8" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:62 msgid "" "This is a major release porting GPaste to GTK 4 and libadwaita. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:64 msgid "Port the daemon, history UI and preferences to GTK 4 and libadwaita" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:65 msgid "Show image thumbnails in the history, with configurable preview size" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:66 msgid "" "Support global keyboard shortcuts on Wayland through the XDG GlobalShortcuts " "portal" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:67 msgid "Recognise copied colours as dedicated colour items" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:68 msgid "" "Give keybindings human-readable descriptions and install a daemon desktop " "file" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:69 msgid "Fix images sometimes being repeatedly re-added to the history" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:70 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:81 msgid "" "Fix keyboard shortcuts not triggering when NumLock and CapsLock are both " "active" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:71 msgid "" "Fix several crashes (search provider, UI lifetime, GNOME Shell extension) " "and memory leaks" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:72 msgid "Modernise the GNOME Shell extension to current conventions" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:80 msgid "Fix use-after-free crash in the GNOME Shell search provider" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:82 msgid "" "Fix memory leaks when re-copying history items and when rebinding shortcuts" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:83 msgid "Fix potential crash when enforcing a very small history size" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:84 msgid "Build: ship the GSettings schema as a static file" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:92 msgid "" "GNOME Shell extension now retries the daemon connection before giving up" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:93 msgid "Fix test crash when GrabAccelerators is not allowed" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:94 msgid "Build: simplify gsettings compilation for tests" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:102 msgid "Fix GC crash and signal leak when disabling the GNOME Shell extension" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:103 msgid "GNOME Shell extension now handles daemon connection failure gracefully" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:104 msgid "Fix crash when a history item has no value yet" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:105 msgid "Fix image files not being deleted when history items are removed" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:106 msgid "Fix image files stored in wrong directory" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:107 msgid "Fix keyboard focus being stolen by history items on hover" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:108 msgid "" "Fix key events incorrectly forwarded to search when another entry has focus" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:109 msgid "Fix signal loop when updating shortcut entries from settings" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:110 msgid "Fix default history item count not reset after history deletion" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:111 msgid "Enforce minimum window size to prevent unresizable state" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:112 msgid "Add descriptive tooltips for settings entries" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:113 msgid "Build: explicitly link libgpaste libraries against libc" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:114 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:127 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:137 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:146 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:155 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:164 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:174 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:225 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:267 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:281 msgid "Translations updates" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:122 msgid "" "Fix infinite Pango assertion loop that could fill disk when clipboard " "content contained tab characters" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:123 msgid "Various bug fixes and memory management improvements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:124 msgid "Daemon improvements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:125 msgid "GNOME Shell extension improvements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:126 msgid "GLib >= 2.76 is now required" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:135 msgid "Support for gnome 50" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:136 msgid "Support for gnome 49" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:145 msgid "Support for gnome 48" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:154 msgid "Support for gnome 47" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:163 msgid "Support for gnome 46" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:170 msgid "Stable release for GNOME 45. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:172 msgid "Port to gnome 45" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:173 msgid "Add setting to open ui window centered" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:182 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:199 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:233 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:289 msgid "Fix a bug leading to history with only one item" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:188 msgid "First release for GNOME 44. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:190 msgid "gcr 4 is now required" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:191 msgid "Port to gnome 44" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:207 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:241 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:297 msgid "Avoid crash under heavy memory load" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:215 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:249 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:305 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:381 msgid "Respect --use-index when displaying history" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:221 msgid "First release for GNOME 43. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:223 msgid "Port to GNOME 43" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:224 msgid "Internal preparation for gtk4 port" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:257 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:313 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:389 msgid "Open GPaste UI where the mouse pointer is" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:265 msgid "Fixes to the new preferences tool" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:266 msgid "Style fixes" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:273 msgid "First release for GNOME 42. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:275 msgid "" "Old libgpaste replaced by a new minimal libgpaste-2 with no gtk dependency" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:276 msgid "New libgpaste-gtk3 for utils and settings ui" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:277 msgid "New libgpaste-gtk4 for utils and preferences ui" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:278 msgid "New gtk4 based gpaste-preferences utility" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:279 msgid "Autotools are no longer supported" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:280 msgid "Extension updated for gnome-shell 42" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:321 msgid "fix the storage path for meson builds" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:329 msgid "fix some race conditions in history handling" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:337 msgid "better fix crash when there is no history yet" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:345 msgid "fix crash when there is no history yet" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:346 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:355 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:364 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:373 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:397 msgid "translations update" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:354 msgid "fix gnome-shell exntesion when the daemon restarts" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:363 msgid "Fix keybindings for wayland" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:370 msgid "First release for GNOME 41. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:372 msgid "port to gnome-shell 41" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:405 msgid "fix a crash in memory usage checking" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:412 msgid "First release for GNOME 40. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:414 msgid "port to gnome-shell 40" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:415 msgid "placeholder for gnome-shell prefs" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:423 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:487 msgid "fix X11 keybinder outside of GNOME" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:431 msgid "better handling and reporting of invalid uuids passed to gpaste-client" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:432 msgid "" "gpaste-client now has a --use-index argument for several subcommands to use " "index instead of uuid" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:440 msgid "fix the make-password keybinding" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:441 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:450 msgid "updated translations" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:449 msgid "gnome-shell extension warning fixes" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:458 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:495 msgid "gnome-shell extension cosmetic updates" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:466 msgid "Disable images support by default (can be reenabled in preferences)" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:467 msgid "Search now includes passwords (using their names)" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:468 msgid "systemd integration enhancements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:474 msgid "First release for GNOME 3.38. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:476 msgid "Drop the Tracking DBus signal" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:477 msgid "Switch to uuids to identify items" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:478 msgid "Bump DBus interface to org.gnome.GPaste2" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:479 msgid "Update to gnome-shell 3.38.0" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:503 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:535 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:577 msgid "Fix activating items using Ctrl-Number in gnome-shell" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:511 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:543 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:576 msgid "Fix keybinding regrab with gnome-shell" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:519 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:551 msgid "Fix keybinding grab with gnome-shell" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:525 msgid "First release for GNOME 3.36. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:527 msgid "Update to gnome-shell 3.36.0" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:559 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:575 msgid "Compatibility with recent appstream-glib" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:565 msgid "First release for GNOME 3.34. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:567 msgid "Update to gnome-shell 3.34.0" msgstr "" #: src/client/gpaste-client.c:146 msgid "Couldn't spawn" msgstr "" #: src/client/gpaste-client.c:158 #, c-format msgid "Usage:\n" msgstr "" #. Translators: help for gpaste history #: src/client/gpaste-client.c:160 msgid "print the history with UUIDs" msgstr "" #. Translators: help for gpaste history-size #: src/client/gpaste-client.c:162 msgid "print the size of the history" msgstr "" #. Translators: help for gpaste get-history #: src/client/gpaste-client.c:164 msgid "get the name of the current history" msgstr "" #. Translators: help for gpaste backup-history #. Translators: help for gpaste switch-history #. Translators: help for gpaste delete-history #. Translators: help for gpaste add-password #. Translators: help for gpaste set-password #. Translators: help for gpaste delete-passworf #: src/client/gpaste-client.c:166 src/client/gpaste-client.c:168 #: src/client/gpaste-client.c:170 src/client/gpaste-client.c:176 #: src/client/gpaste-client.c:188 src/client/gpaste-client.c:192 msgid "name" msgstr "" #: src/client/gpaste-client.c:166 msgid "backup current history" msgstr "" #: src/client/gpaste-client.c:168 msgid "switch to another history" msgstr "" #: src/client/gpaste-client.c:170 msgid "delete a history" msgstr "" #. Translators: help for gpaste list-histories #: src/client/gpaste-client.c:172 msgid "list available histories" msgstr "" #. Translators: help for gpaste add #: src/client/gpaste-client.c:174 msgid "text" msgstr "" #: src/client/gpaste-client.c:174 msgid "set text to clipboard" msgstr "" #: src/client/gpaste-client.c:176 msgid "password" msgstr "" #: src/client/gpaste-client.c:176 msgid "add the name - password couple to the clipboard" msgstr "" #. Translators: help for gpaste rename-password #: src/client/gpaste-client.c:178 msgid "old name" msgstr "" #: src/client/gpaste-client.c:178 msgid "new name" msgstr "" #: src/client/gpaste-client.c:178 msgid "rename the password" msgstr "" #. Translators: help for gpaste get #: src/client/gpaste-client.c:180 msgid "get the item from the history" msgstr "" #. Translators: help for gpaste select #: src/client/gpaste-client.c:182 msgid "set the item from the history to the clipboard" msgstr "" #. Translators: help for gpaste replace #: src/client/gpaste-client.c:184 msgid "contents" msgstr "" #: src/client/gpaste-client.c:184 msgid "" "replace the contents of the item from the history with the provided " "one" msgstr "" #. Translators: help for gpaste merge #: src/client/gpaste-client.c:186 msgid "" "merge the items matching the UUIDs from the history and put the result in " "the clipboard" msgstr "" #: src/client/gpaste-client.c:188 msgid "set the item from the history as a password named " msgstr "" #. Translators: help for gpaste delete #: src/client/gpaste-client.c:190 msgid "delete item from the history" msgstr "" #: src/client/gpaste-client.c:192 msgid "delete the password from the history" msgstr "" #. Translators: help for gpaste file #: src/client/gpaste-client.c:194 msgid "path" msgstr "" #: src/client/gpaste-client.c:194 msgid "put the content of the file at into the clipboard" msgstr "" #. Translators: help for whatever | gpaste #: src/client/gpaste-client.c:196 msgid "whatever" msgstr "" #: src/client/gpaste-client.c:196 msgid "set the output of whatever to clipboard" msgstr "" #. Translators: help for gpaste empty #: src/client/gpaste-client.c:198 msgid "empty the history" msgstr "" #. Translators: help for gpaste start #: src/client/gpaste-client.c:200 msgid "start tracking clipboard changes" msgstr "" #. Translators: help for gpaste stop #: src/client/gpaste-client.c:202 msgid "stop tracking clipboard changes" msgstr "" #. Translators: help for gpaste quit #: src/client/gpaste-client.c:204 msgid "alias for stop" msgstr "" #. Translators: help for gpaste daemon-reexec #: src/client/gpaste-client.c:206 msgid "reexecute the daemon (after upgrading...)" msgstr "" #. Translators: help for gpaste preferences #: src/client/gpaste-client.c:208 msgid "launch the configuration tool" msgstr "" #. Translators: help for gpaste ui #: src/client/gpaste-client.c:210 msgid "launch the graphical tool" msgstr "" #. Translators: help for gpaste show-history #: src/client/gpaste-client.c:212 msgid "make the applet or extension display the history" msgstr "" #. Translators: help for gpaste upload #: src/client/gpaste-client.c:214 msgid "upload the item to a pastebin service" msgstr "" #. Translators: help for gpaste version #: src/client/gpaste-client.c:216 msgid "display the version" msgstr "" #. Translators: help for gpaste daemon-version #: src/client/gpaste-client.c:218 msgid "display the daemon version" msgstr "" #. Translators: help for gpaste help #: src/client/gpaste-client.c:220 msgid "display this help" msgstr "" #. Translators: help for gpaste about #: src/client/gpaste-client.c:222 msgid "display the about dialog" msgstr "" #: src/client/gpaste-client.c:225 #, c-format msgid "Convenience options:" msgstr "" #. Translators: help for --use-index #: src/client/gpaste-client.c:228 msgid "use the index of the item instead of its UUID" msgstr "" #: src/client/gpaste-client.c:231 #, c-format msgid "Display options:" msgstr "" #. Translators: help for --oneline #: src/client/gpaste-client.c:234 msgid "display each item on only one line" msgstr "" #. Translators: help for --raw #: src/client/gpaste-client.c:236 msgid "display each item raw (without line numbers)" msgstr "" #. Translators: help for --reverse #: src/client/gpaste-client.c:238 msgid "display the items in reverse order" msgstr "" #. Translators: help for --zero #: src/client/gpaste-client.c:240 msgid "use a NUL character instead of a new line betweean each item" msgstr "" #: src/client/gpaste-client.c:243 #, c-format msgid "Merge options:" msgstr "" #. Translators: help for --decoration #. Translators: help for --separator #: src/client/gpaste-client.c:246 src/client/gpaste-client.c:248 msgid "string" msgstr "" #: src/client/gpaste-client.c:246 msgid "" "add the given decoration to the beginning and the end of each item before " "merging" msgstr "" #: src/client/gpaste-client.c:248 msgid "add the given separator between each item when merging" msgstr "" #: src/client/gpaste-client.c:345 #, c-format msgid "Successfully reexecuted the daemon\n" msgstr "" #: src/client/gpaste-client.c:486 msgid "Cannot add non utf8 data as text." msgstr "" #: src/client/gpaste-client.c:796 src/ui/gpaste-ui-window.c:353 #: src/ui/gpaste-ui-window.c:354 msgid "Couldn't connect to GPaste daemon" msgstr "" #: src/daemon/gpaste-color-item.c:73 msgid "[Color]" msgstr "" #. Translators: strftime format for image timestamps. Rearrange to match your locale's date/time convention. #: src/daemon/gpaste-image-item.c:219 msgid "%m/%d/%y %T" msgstr "" #. Translators: Image item displayed in history. %d is width, %d is height, %s is the formatted date. #: src/daemon/gpaste-image-item.c:221 #, c-format msgid "[Image, %d x %d (%s)]" msgstr "" #: src/daemon/gpaste-make-password-keybinding.c:50 msgid "Convert to Password" msgstr "" #. This is the prefix displayed in history to identify a password #: src/daemon/gpaste-password-item.c:65 msgid "Password" msgstr "" #: src/daemon/gpaste-pop-keybinding.c:64 msgid "Pop from History" msgstr "" #: src/daemon/gpaste-show-history-keybinding.c:49 msgid "Show History" msgstr "" #: src/daemon/gpaste-sync-clipboard-to-primary-keybinding.c:46 msgid "Sync Clipboard to Primary" msgstr "" #: src/daemon/gpaste-sync-primary-to-clipboard-keybinding.c:46 msgid "Sync Primary to Clipboard" msgstr "" #: src/daemon/gpaste-ui-keybinding.c:43 msgid "Launch UI" msgstr "" #: src/daemon/gpaste-upload-keybinding.c:64 msgid "Upload to Pastebin" msgstr "" #: src/daemon/gpaste-uris-item.c:87 msgid "[Files] " msgstr "" #: src/daemon/main.c:32 msgid "Stop signal received, exiting" msgstr "" #: src/daemon/main.c:69 msgid "Could not acquire DBus name." msgstr "" #: src/gnome-shell/dummyHistoryItem.js:12 msgid "(Couldn't connect to GPaste daemon)" msgstr "" #: src/gnome-shell/dummyHistoryItem.js:17 msgid "(Empty)" msgstr "" #: src/gnome-shell/dummyHistoryItem.js:22 msgid "(No result)" msgstr "" #: src/gnome-shell/emptyHistoryItem.js:14 msgid "Empty history" msgstr "" #: src/gnome-shell/stateSwitch.js:12 msgid "Track changes" msgstr "" #: src/gnome-shell/uiItem.js:14 msgid "Graphical tool" msgstr "" #: src/libgpaste/gpaste/gpaste-util.c:636 msgid "Could not create history dir" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-macros.h:38 msgid "Failed to register the gtk application" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:108 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:119 msgid "General behaviour" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:121 #: src/ui/gpaste-ui-switch.c:93 msgid "Track clipboard changes" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:127 msgid "Close UI on select" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:133 msgid "Open the UI window centered" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:139 msgid "Save history" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:150 msgid "Enable the gnome-shell extension" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:156 msgid "Sync the daemon state with the extension's one" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:162 msgid "" "When enabled, the daemon automatically starts or stops tracking clipboard " "changes to match the GNOME Shell extension's enabled state" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:166 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:174 msgid "Clipboards synchronization" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:168 msgid "Primary selection affects history" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:174 msgid "Synchronize clipboard with primary selection" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:181 msgid "Optional features" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:183 msgid "Trim items" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:189 msgid "Detect growing lines" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:195 msgid "" "When enabled, if a new clipboard entry starts with the previous one, the " "previous entry is replaced instead of creating a new one" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:92 msgid "History settings" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:103 msgid "Resources limits" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:120 msgid "Text limits" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:122 msgid "Min text item length" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:129 msgid "Max text item length" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:137 msgid "Display settings" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:139 msgid "Max element size when displaying" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:81 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:92 msgid "Images settings" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:94 msgid "Images support" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:100 msgid "Image previews" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:106 msgid "Preview size" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:122 msgid "Keyboard shortcuts" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:133 msgid "History access" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:150 msgid "Active element manipulation" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-util.c:51 #: src/ui/gpaste-ui-edit-item.c:84 src/ui/gpaste-ui-new-item.c:66 #: src/ui/gpaste-ui-panel.c:311 msgid "Cancel" msgstr "" #. Translators: %s is the name of the history being emptied. #: src/libgpaste/gpaste-gtk4/gpaste-gtk-util.c:126 #, c-format msgid "Do you really want to empty \"%s\"?" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-util.c:127 #: src/ui/gpaste-ui-history.c:153 src/ui/gpaste-ui-history.c:428 #: src/ui/gpaste-ui-panel.c:517 msgid "Empty" msgstr "" #: src/ui/gpaste-ui.c:47 msgid "Clipboard management system" msgstr "" #: src/ui/gpaste-ui-delete-item.c:46 src/ui/gpaste-ui-panel.c:358 #: src/ui/gpaste-ui-panel.c:518 msgid "Delete" msgstr "" #: src/ui/gpaste-ui-edit-item.c:85 src/ui/gpaste-ui-edit-item.c:139 msgid "Edit" msgstr "" #: src/ui/gpaste-ui-history.c:266 msgid "No Results" msgstr "" #: src/ui/gpaste-ui-new-item.c:67 msgid "Add new item" msgstr "" #: src/ui/gpaste-ui-new-item.c:100 msgid "New item" msgstr "" #: src/ui/gpaste-ui-panel.c:307 msgid "Under which name do you want to backup this history?" msgstr "" #: src/ui/gpaste-ui-panel.c:311 src/ui/gpaste-ui-panel.c:516 msgid "Backup" msgstr "" #. Translators: %s is the name of the history being deleted. #: src/ui/gpaste-ui-panel.c:357 #, c-format msgid "Are you sure you want to delete \"%s\"?" msgstr "" #: src/ui/gpaste-ui-panel.c:441 msgid "Switch to history" msgstr "" #: src/ui/gpaste-ui-panel.c:448 msgid "Switch to" msgstr "" #: src/ui/gpaste-ui-reexec.c:45 msgid "Restart" msgstr "" #: src/ui/gpaste-ui-reexec.c:45 msgid "Do you really want to restart the daemon?" msgstr "" #: src/ui/gpaste-ui-reexec.c:70 msgid "Restart the daemon" msgstr "" #: src/ui/gpaste-ui-search.c:23 msgid "Search" msgstr "" #: src/ui/gpaste-ui-settings.c:35 msgid "GPaste Settings" msgstr "" #: src/ui/gpaste-ui-shortcuts-window.c:21 msgid "General" msgstr "" #: src/ui/gpaste-ui-switch.c:68 msgid "Stop" msgstr "" #: src/ui/gpaste-ui-switch.c:68 msgid "Do you really want to stop tracking clipboard changes?" msgstr "" #: src/ui/gpaste-ui-upload-item.c:46 msgid "Upload" msgstr "" #: src/ui/gpaste-ui-window.c:303 msgid "Quit" msgstr "" #: src/ui/gpaste-ui-window.c:380 msgid "Histories" msgstr "" #: src/ui/gpaste-ui-window.c:381 msgid "History" msgstr "" Keruspe-GPaste-724def1/po/tr.po000066400000000000000000001551361521206431300163420ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Marc-Antoine Perennou # This file is distributed under the same license as the gpaste package. # Serkan ÖNDER , 2021. # msgid "" msgstr "" "Project-Id-Version: gpaste 3.40.2\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-06-09 21:21+0200\n" "PO-Revision-Date: 2025-10-11 08:07+0000\n" "Last-Translator: Oğuz Ersen \n" "Language-Team: Turkish \n" "Language: tr\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: Weblate 5.14-dev\n" #: data/control-center/42-gpaste.control-center.xml.in:2 msgid "@GETTEXT_PACKAGE@" msgstr "@GETTEXT_PACKAGE@" #: data/control-center/42-gpaste.control-center.xml.in:3 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:136 #: src/ui/gpaste-ui-shortcuts-window.c:24 msgid "Launch the graphical tool" msgstr "Grafik aracını başlatın" #: data/control-center/42-gpaste.control-center.xml.in:4 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:153 #: src/ui/gpaste-ui-shortcuts-window.c:25 msgid "Mark the active item as being a password" msgstr "Etkin öğeyi parola olarak işaretleyin" #: data/control-center/42-gpaste.control-center.xml.in:5 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:167 #: src/ui/gpaste-ui-shortcuts-window.c:23 msgid "Delete the active item from history" msgstr "Etkin öğeyi geçmişten sil" #: data/control-center/42-gpaste.control-center.xml.in:6 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:143 #: src/ui/gpaste-ui-shortcuts-window.c:26 msgid "Display the history" msgstr "Geçmişi göster" #: data/control-center/42-gpaste.control-center.xml.in:7 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:177 #: src/ui/gpaste-ui-shortcuts-window.c:27 msgid "Sync the clipboard to the primary selection" msgstr "Panoyu birincil seçimle senkronize edin" #: data/control-center/42-gpaste.control-center.xml.in:8 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:184 #: src/ui/gpaste-ui-shortcuts-window.c:28 msgid "Sync the primary selection to the clipboard" msgstr "Birincil seçimi panoya senkronize et" #: data/control-center/42-gpaste.control-center.xml.in:9 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:160 #: src/ui/gpaste-ui-shortcuts-window.c:29 msgid "Upload the active item to a pastebin service" msgstr "Etkin öğeyi bir pastebin hizmetine yükleyin" #: data/desktop/org.gnome.GPaste.Daemon.desktop.in.in:3 #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:3 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:6 msgid "GPaste" msgstr "GPaste" #: data/desktop/org.gnome.GPaste.Preferences.desktop.in.in:3 msgid "GPaste Preferences" msgstr "GPaste Tercihleri" #: data/desktop/org.gnome.GPaste.Preferences.desktop.in.in:4 msgid "Manage your GPaste preferences" msgstr "GPaste tercihlerinizi yönetin" #: data/desktop/org.gnome.GPaste.Preferences.desktop.in.in:5 #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:6 msgid "Clipboard;Manager;Settings;Preferences;Configuration;" msgstr "Pano;Yönetici;Ayarlar;Tercihler;Yapılandırma;" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:4 #, fuzzy msgid "Clipboard Manager" msgstr "Pano değişikliklerini izle" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:5 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:7 msgid "Manage your clipboard history" msgstr "Pano geçmişinizi yönetin" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:16 #, fuzzy msgid "Preferences" msgstr "GPaste Tercihleri" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:20 #: src/gnome-shell/aboutItem.js:13 src/ui/gpaste-ui-about.c:38 msgid "About" msgstr "Hakkında" #: data/gsettings/org.gnome.GPaste.gschema.xml:7 msgid "Max size of an element when displaying it" msgstr "Bir öğenin maksimum boyutu, onu görüntülerken" #: data/gsettings/org.gnome.GPaste.gschema.xml:8 msgid "" "The extra stuff of that element will be replaced by \"…\", and newlines by " "\" \" when displaying from the applet, 0 to disable." msgstr "" "Bu öğenin fazladan öğeleri \"…\" ile değiştirilir ve uygulamadan " "görüntülenirken yeni satırlar \" \" ile değiştirilir, devre dışı bırakmak " "için 0." #: data/gsettings/org.gnome.GPaste.gschema.xml:15 msgid "Do we detect and replace growing lines in history?" msgstr "Tarihte büyüyen çizgileri tespit edip değiştiriyor muyuz?" #: data/gsettings/org.gnome.GPaste.gschema.xml:16 msgid "" "By default, selecting \"Here is\", then \"Here is an example\" will create " "two entries in the history. With this feature enabled, the first one will be " "replaced by the second one." msgstr "" "Varsayılan olarak, \"İşte\", ardından \"İşte bir örnek\" seçildiğinde, " "geçmişte iki giriş oluşturulur. Bu özellik etkinleştirildiğinde, birincisi " "ikincisi ile değiştirilecektir." #: data/gsettings/org.gnome.GPaste.gschema.xml:24 msgid "The name of the current history" msgstr "Şimdiki tarihin adı" #: data/gsettings/org.gnome.GPaste.gschema.xml:25 msgid "The default name is \"history\"" msgstr "Varsayılan ad \"geçmiş\"" #: data/gsettings/org.gnome.GPaste.gschema.xml:32 msgid "Do we save the images copied to history, or only text?" msgstr "Kopyalanan görüntüleri tarihe mi kaydediyoruz yoksa sadece metin mi?" #: data/gsettings/org.gnome.GPaste.gschema.xml:33 msgid "By default, we're saving only text" msgstr "Varsayılan olarak, yalnızca metni kaydediyoruz" #: data/gsettings/org.gnome.GPaste.gschema.xml:40 msgid "Show image previews in the history?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:41 msgid "By default, we show previews of images in the history" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:49 msgid "Size of image previews in pixels" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:50 msgid "Default size is 100 pixels" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:57 msgid "Do we close the UI after selecting an item?" msgstr "Bir öğe seçtikten sonra kullanıcı arayüzünü kapatıyor muyuz?" #: data/gsettings/org.gnome.GPaste.gschema.xml:58 msgid "By default, we close it" msgstr "Varsayılan olarak kapatıyoruz" #: data/gsettings/org.gnome.GPaste.gschema.xml:65 msgid "Do we open the UI window centered?" msgstr "Arayüzü ortalı mı açıyoruz?" #: data/gsettings/org.gnome.GPaste.gschema.xml:66 msgid "By default, we open it where the mouse cursor is" msgstr "" "Öntanımlı olarak GPaste kullanıcı arayüzünü fare işaretçisinin olduğu yerde " "aç" #: data/gsettings/org.gnome.GPaste.gschema.xml:73 msgid "The keyboard shortcut to launch the graphical interface" msgstr "Grafik arayüzü başlatmak için klavye kısayolu" #: data/gsettings/org.gnome.GPaste.gschema.xml:74 msgid "" "By default, hitting ctrl + alt + g does that (\"G\"). An empty " "string here disables this functionnality." msgstr "" "Varsayılan olarak, ctrl + alt + g tuşlarına basmak bunu yapar " "(\"G\"). Burada boş bir dize bu işlevi devre dışı bırakır." #: data/gsettings/org.gnome.GPaste.gschema.xml:82 msgid "The keyboard shortcut to mark the active item as being a password" msgstr "Etkin öğeyi parola olarak işaretlemek için klavye kısayolu" #: data/gsettings/org.gnome.GPaste.gschema.xml:83 msgid "" "By default, hitting ctrl + alt + s will mark the active item as being a " "password (\"S\"). An empty string here disables this " "functionnality." msgstr "" "Varsayılan olarak, ctrl + alt + s tuşlarına basmak, etkin öğeyi parola " "(\"S\") olarak işaretler. Burada boş bir dize bu işlevi devre " "dışı bırakır." #: data/gsettings/org.gnome.GPaste.gschema.xml:92 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:146 msgid "Max displayed history size" msgstr "Maksimum görüntülenen geçmiş boyutu" #: data/gsettings/org.gnome.GPaste.gschema.xml:93 msgid "Maximum number of items displayed in the history" msgstr "Geçmişte görüntülenen maksimum öğe sayısı" #: data/gsettings/org.gnome.GPaste.gschema.xml:101 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:105 msgid "Max history size" msgstr "Maksimum geçmiş boyutu" #: data/gsettings/org.gnome.GPaste.gschema.xml:102 msgid "Maximum number of items in history" msgstr "Geçmişteki maksimum öğe sayısı" #: data/gsettings/org.gnome.GPaste.gschema.xml:110 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:112 msgid "Max memory usage (MB)" msgstr "Maksimum bellek kullanımı (MB)" #: data/gsettings/org.gnome.GPaste.gschema.xml:111 msgid "Maximum amount of memory used to store contents" msgstr "İçeriği depolamak için kullanılan maksimum bellek miktarı" #: data/gsettings/org.gnome.GPaste.gschema.xml:119 msgid "Max text item size" msgstr "Maksimum metin öğesi boyutu" #: data/gsettings/org.gnome.GPaste.gschema.xml:120 msgid "Maximum size of a text item. Anything out of this boundary is ignored." msgstr "" "Bir metin öğesinin maksimum boyutu. Bu sınırın dışındaki herhangi bir şey " "göz ardı edilir." #: data/gsettings/org.gnome.GPaste.gschema.xml:128 msgid "Min text item size" msgstr "Minimum metin öğesi boyutu" #: data/gsettings/org.gnome.GPaste.gschema.xml:129 msgid "Minimum size of a text item. Anything out of this boundary is ignored." msgstr "" "Bir metin öğesinin minimum boyutu. Bu sınırın dışındaki herhangi bir şey göz " "ardı edilir." #: data/gsettings/org.gnome.GPaste.gschema.xml:136 msgid "The keyboard shortcut to delete the first element in history" msgstr "Tarihteki ilk öğeyi silmek için klavye kısayolu" #: data/gsettings/org.gnome.GPaste.gschema.xml:137 msgid "" "By default, hitting ctrl + alt + v does that (\"V\"). An empty " "string here disables this functionnality." msgstr "" "Varsayılan olarak, ctrl + alt + v tuşlarına basmak bunu yapar " "(\"V\"). Burada boş bir dize bu işlevi devre dışı bırakır." #: data/gsettings/org.gnome.GPaste.gschema.xml:145 msgid "Does the primary selection affects history?" msgstr "Birincil seçim tarihi etkiler mi?" #: data/gsettings/org.gnome.GPaste.gschema.xml:146 msgid "By default, only clipboard (ctrl+c) affects history." msgstr "Varsayılan olarak, yalnızca pano (ctrl+c) geçmişi etkiler." #: data/gsettings/org.gnome.GPaste.gschema.xml:153 msgid "" "Do we save all versions of selected rich text (e.g. html) or just the plain " "text version?" msgstr "" "Seçilen zengin metnin (ör. html) tüm sürümlerini mi yoksa yalnızca düz metin " "sürümünü mi kaydediyoruz?" #: data/gsettings/org.gnome.GPaste.gschema.xml:154 msgid "By default, we're saving all" msgstr "Varsayılan olarak, hepsini kaydediyoruz" #: data/gsettings/org.gnome.GPaste.gschema.xml:161 msgid "Do we save the history from one session to another?" msgstr "Bir oturumdan diğerine geçmişi kaydediyor muyuz?" #: data/gsettings/org.gnome.GPaste.gschema.xml:162 msgid "By default, we're saving it" msgstr "Varsayılan olarak, kaydediyoruz" #: data/gsettings/org.gnome.GPaste.gschema.xml:169 msgid "The keyboard shortcut to display the menu" msgstr "Menüyü görüntülemek için klavye kısayolu" #: data/gsettings/org.gnome.GPaste.gschema.xml:170 msgid "" "By default, hitting ctrl + alt + h displays the menu (\"H\"). An " "empty string here disables this functionnality." msgstr "" "Varsayılan olarak, ctrl + alt + h tuşlarına basıldığında menü görüntülenir " "(\"H\"). Burada boş bir dize bu işlevi devre dışı bırakır." #: data/gsettings/org.gnome.GPaste.gschema.xml:178 msgid "The keyboard shortcut to sync the clipboard to the primary selection" msgstr "Panoyu birincil seçimle senkronize etmek için klavye kısayolu" #: data/gsettings/org.gnome.GPaste.gschema.xml:179 msgid "" "By default, hitting ctrl + alt + o syncs them (\"P\"). An empty " "string here disables this functionnality." msgstr "" "Varsayılan olarak, ctrl + alt + o tuşlarına basmak onları senkronize eder " "(\"P\"). Burada boş bir dize bu işlevi devre dışı bırakır." #: data/gsettings/org.gnome.GPaste.gschema.xml:187 msgid "The keyboard shortcut to sync the primary selection to the clipboard" msgstr "Birincil seçimi panoya senkronize etmek için klavye kısayolu" #: data/gsettings/org.gnome.GPaste.gschema.xml:188 msgid "" "By default, hitting ctrl + alt + p syncs them (\"P\"). An empty " "string here disables this functionnality." msgstr "" "Varsayılan olarak, ctrl + alt + p tuşlarına basmak onları senkronize eder " "(\"P\"). Burada boş bir dize bu işlevi devre dışı bırakır." #: data/gsettings/org.gnome.GPaste.gschema.xml:196 msgid "Are the primary selection and the clipboard synchronized?" msgstr "Birincil seçim ve pano senkronize mi?" #: data/gsettings/org.gnome.GPaste.gschema.xml:197 msgid "By default, the primary selection and the clipboard are independent." msgstr "Varsayılan olarak, birincil seçim ve pano bağımsızdır." #: data/gsettings/org.gnome.GPaste.gschema.xml:204 msgid "Do we track the clipboard changes?" msgstr "Pano değişikliklerini izliyor muyuz?" #: data/gsettings/org.gnome.GPaste.gschema.xml:205 msgid "By default, we're tracking those changes." msgstr "Varsayılan olarak, bu değişiklikleri izliyoruz." #: data/gsettings/org.gnome.GPaste.gschema.xml:212 msgid "" "Do we sync the daemon state with the gnome-shell extension's one? (disable " "the daemon when disabling the extension)" msgstr "" "Daemon durumunu gnome-shell uzantısınınkiyle senkronize ediyor muyuz? " "(uzantıyı devre dışı bırakırken arka plan programını devre dışı bırakın)" #: data/gsettings/org.gnome.GPaste.gschema.xml:213 msgid "By default, the daemon state keeps unchanged" msgstr "Varsayılan olarak, arka plan programı durumu değişmeden kalır" #: data/gsettings/org.gnome.GPaste.gschema.xml:220 msgid "Do we trim the textual items before adding them to history?" msgstr "Metin öğelerini tarihe eklemeden önce kırpıyor muyuz?" #: data/gsettings/org.gnome.GPaste.gschema.xml:221 msgid "" "Trimming means removing all trailing and ending spaces. By default, we're " "letting them as-is." msgstr "" "Kırpma, tüm sondaki ve bitiş boşluklarının kaldırılması anlamına gelir. " "Varsayılan olarak, onları olduğu gibi bırakıyoruz." #: data/gsettings/org.gnome.GPaste.gschema.xml:229 msgid "" "The keyboard shortcut to upload the first element in history to a pastebin " "service" msgstr "" "Geçmişteki ilk öğeyi bir pastebin hizmetine yüklemek için klavye kısayolu" #: data/gsettings/org.gnome.GPaste.gschema.xml:230 msgid "" "By default, hitting ctrl + alt + u does that (\"U\"). An empty " "string here disables this functionnality." msgstr "" "Varsayılan olarak, ctrl + alt + u tuşlarına basmak bunu yapar " "(\"U\"). Burada boş bir dize bu işlevi devre dışı bırakır." #: data/gsettings/org.gnome.GPaste.gschema.xml:238 msgid "Do we prompt for confirmation when emptying a history?" msgstr "Bir geçmişi boşaltırken onay istiyor muyuz?" #: data/gsettings/org.gnome.GPaste.gschema.xml:239 msgid "By default, we do as it's a destructive action" msgstr "Varsayılan olarak, yıkıcı bir eylem olduğu için yaparız" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:9 msgid "Marc-Antoine Perennou" msgstr "Marc-Antoine Perennou" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:17 msgid "" "GPaste is a clipboard managing system allowing you to track and manage your " "clipboard history in a highly customizable way." msgstr "" "GPaste, pano geçmişinizi son derece özelleştirilebilir bir şekilde " "izlemenize ve yönetmenize olanak tanıyan bir pano yönetim sistemidir." #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:20 msgid "" "GPaste provides you with a graphical tool allowing you to manage everything " "easily." msgstr "" "GPaste size her şeyi kolayca yönetmenizi sağlayan bir grafik araç sağlar." #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:27 msgid "The main UI" msgstr "Ana kullanıcı arayüzü" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:31 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:35 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:39 msgid "The settings UI" msgstr "Ayarlar kullanıcı arayüzü" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:51 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:78 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:90 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:100 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:120 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:133 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:143 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:152 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:161 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:180 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:197 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:205 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:213 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:231 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:239 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:247 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:255 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:263 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:287 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:295 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:303 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:311 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:319 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:327 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:335 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:343 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:352 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:361 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:379 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:387 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:395 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:403 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:421 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:429 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:438 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:447 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:456 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:464 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:485 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:493 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:501 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:509 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:517 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:533 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:541 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:549 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:557 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:573 msgid "This is a maintenance release. Changes:" msgstr "Bu bir bakım sürümüdür. Değişiklikler:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:53 msgid "Fix building without the GNOME Shell extension (-Dgnome-shell=false)" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:54 msgid "" "Restore GTK deprecation version-gating and drop the unused build-time gjs " "dependency" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:55 msgid "Target GNOME Shell 50 in the extension" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:56 msgid "Bump the library soversions to reflect the API/ABI changes since 45.8" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:62 msgid "" "This is a major release porting GPaste to GTK 4 and libadwaita. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:64 msgid "Port the daemon, history UI and preferences to GTK 4 and libadwaita" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:65 msgid "Show image thumbnails in the history, with configurable preview size" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:66 msgid "" "Support global keyboard shortcuts on Wayland through the XDG GlobalShortcuts " "portal" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:67 msgid "Recognise copied colours as dedicated colour items" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:68 msgid "" "Give keybindings human-readable descriptions and install a daemon desktop " "file" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:69 msgid "Fix images sometimes being repeatedly re-added to the history" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:70 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:81 msgid "" "Fix keyboard shortcuts not triggering when NumLock and CapsLock are both " "active" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:71 msgid "" "Fix several crashes (search provider, UI lifetime, GNOME Shell extension) " "and memory leaks" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:72 msgid "Modernise the GNOME Shell extension to current conventions" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:80 msgid "Fix use-after-free crash in the GNOME Shell search provider" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:82 msgid "" "Fix memory leaks when re-copying history items and when rebinding shortcuts" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:83 msgid "Fix potential crash when enforcing a very small history size" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:84 msgid "Build: ship the GSettings schema as a static file" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:92 msgid "" "GNOME Shell extension now retries the daemon connection before giving up" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:93 msgid "Fix test crash when GrabAccelerators is not allowed" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:94 msgid "Build: simplify gsettings compilation for tests" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:102 msgid "Fix GC crash and signal leak when disabling the GNOME Shell extension" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:103 msgid "GNOME Shell extension now handles daemon connection failure gracefully" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:104 #, fuzzy msgid "Fix crash when a history item has no value yet" msgstr "henüz bir geçmiş olmadığında çökmeyi düzelt" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:105 msgid "Fix image files not being deleted when history items are removed" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:106 msgid "Fix image files stored in wrong directory" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:107 #, fuzzy msgid "Fix keyboard focus being stolen by history items on hover" msgstr "Yalnızca bir geçmiş öge gösterilmesine sebep olan hata giderildi" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:108 msgid "" "Fix key events incorrectly forwarded to search when another entry has focus" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:109 msgid "Fix signal loop when updating shortcut entries from settings" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:110 msgid "Fix default history item count not reset after history deletion" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:111 msgid "Enforce minimum window size to prevent unresizable state" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:112 msgid "Add descriptive tooltips for settings entries" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:113 msgid "Build: explicitly link libgpaste libraries against libc" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:114 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:127 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:137 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:146 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:155 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:164 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:174 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:225 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:267 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:281 msgid "Translations updates" msgstr "Çeviri güncellemeleri" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:122 msgid "" "Fix infinite Pango assertion loop that could fill disk when clipboard " "content contained tab characters" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:123 msgid "Various bug fixes and memory management improvements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:124 msgid "Daemon improvements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:125 msgid "GNOME Shell extension improvements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:126 #, fuzzy msgid "GLib >= 2.76 is now required" msgstr "Artık gcr 4 gerekli" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:135 #, fuzzy msgid "Support for gnome 50" msgstr "gnome 48 desteği" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:136 #, fuzzy msgid "Support for gnome 49" msgstr "gnome 48 desteği" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:145 msgid "Support for gnome 48" msgstr "gnome 48 desteği" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:154 msgid "Support for gnome 47" msgstr "gnome 47 desteği" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:163 msgid "Support for gnome 46" msgstr "gnome 46 desteği" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:170 msgid "Stable release for GNOME 45. Changes:" msgstr "GNOME 45 için kararlı sürüm. Değişiklikler:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:172 msgid "Port to gnome 45" msgstr "gnome 45 sürümüne uyarlandı" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:173 msgid "Add setting to open ui window centered" msgstr "Arayüz penceresini ortalanmış açmak için ayar eklendi" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:182 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:199 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:233 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:289 msgid "Fix a bug leading to history with only one item" msgstr "Yalnızca bir geçmiş öge gösterilmesine sebep olan hata giderildi" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:188 msgid "First release for GNOME 44. Changes:" msgstr "GNOME 44 için ilk sürüm. Değişiklikler:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:190 msgid "gcr 4 is now required" msgstr "Artık gcr 4 gerekli" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:191 msgid "Port to gnome 44" msgstr "gnome 44 sürümüne uyarlandı" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:207 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:241 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:297 msgid "Avoid crash under heavy memory load" msgstr "Ağır bellek kullanımı altında çökmeyi önle" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:215 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:249 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:305 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:381 msgid "Respect --use-index when displaying history" msgstr "Geçmişi görüntülerken --use-index seçeneğini dikkate al" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:221 msgid "First release for GNOME 43. Changes:" msgstr "GNOME 43 için ilk sürüm. Değişiklikler:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:223 msgid "Port to GNOME 43" msgstr "GNOME 43 sürümüne uyarlandı" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:224 msgid "Internal preparation for gtk4 port" msgstr "gtk4 sürümüne uyarlanması için iç hazırlık" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:257 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:313 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:389 msgid "Open GPaste UI where the mouse pointer is" msgstr "GPaste kullanıcı arayüzünü fare işaretçisinin olduğu yerde aç" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:265 msgid "Fixes to the new preferences tool" msgstr "Yeni tercihler aracı için düzeltmeler" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:266 msgid "Style fixes" msgstr "Görünüm düzeltmeleri" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:273 msgid "First release for GNOME 42. Changes:" msgstr "GNOME 42 için ilk sürüm. Değişiklikler:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:275 msgid "" "Old libgpaste replaced by a new minimal libgpaste-2 with no gtk dependency" msgstr "" "Eski libgpaste, gtk bağımlılığı olmayan yeni bir sade libgpaste-2 ile " "değiştirildi" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:276 msgid "New libgpaste-gtk3 for utils and settings ui" msgstr "Araçlar ve ayarlar kullanıcı arayüzü için yeni libgpaste-gtk3" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:277 msgid "New libgpaste-gtk4 for utils and preferences ui" msgstr "Araçlar ve tercihler kullanıcı arayüzü için yeni libgpaste-gtk4" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:278 msgid "New gtk4 based gpaste-preferences utility" msgstr "Yeni gtk4 tabanlı gpaste-preferences programı" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:279 msgid "Autotools are no longer supported" msgstr "Autotools artık desteklenmiyor" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:280 msgid "Extension updated for gnome-shell 42" msgstr "Uzantı gnome-shell 42 için güncellendi" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:321 msgid "fix the storage path for meson builds" msgstr "meson derlemeleri için depolama yollarını düzelt" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:329 msgid "fix some race conditions in history handling" msgstr "geçmiş işlemedeki bazı yarış durumlarını düzelt" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:337 msgid "better fix crash when there is no history yet" msgstr "henüz bir geçmiş olmadığında çökmeyi daha iyi düzelt" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:345 msgid "fix crash when there is no history yet" msgstr "henüz bir geçmiş olmadığında çökmeyi düzelt" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:346 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:355 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:364 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:373 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:397 msgid "translations update" msgstr "çeviri güncellemesi" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:354 msgid "fix gnome-shell exntesion when the daemon restarts" msgstr "" "arka plan programı yeniden başladığında gnome-shell uzantısını düzeltin" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:363 msgid "Fix keybindings for wayland" msgstr "Wayland için tuş atamalarını düzelt" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:370 msgid "First release for GNOME 41. Changes:" msgstr "GNOME 41 için ilk sürüm. Değişiklikler:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:372 msgid "port to gnome-shell 41" msgstr "gnome-shell 41 sürümüne uyarlandı" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:405 msgid "fix a crash in memory usage checking" msgstr "bellek kullanımı denetiminde bir çökmeyi düzelt" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:412 msgid "First release for GNOME 40. Changes:" msgstr "GNOME 40 için ilk sürüm. Değişiklikler:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:414 msgid "port to gnome-shell 40" msgstr "gnome-shell 40 sürümüne uyarlandı" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:415 msgid "placeholder for gnome-shell prefs" msgstr "gnome-shell tercihleri için yer tutucu" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:423 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:487 msgid "fix X11 keybinder outside of GNOME" msgstr "GNOME dışında X11 tuş atayıcısını düzelt" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:431 msgid "better handling and reporting of invalid uuids passed to gpaste-client" msgstr "" "gpaste istemcisine iletilen geçersiz kullanıcı kimliklerinin daha iyi " "işlenmesi ve raporlanması" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:432 msgid "" "gpaste-client now has a --use-index argument for several subcommands to use " "index instead of uuid" msgstr "" "gpaste istemcisinin artık birkaç alt komutun uuid yerine dizin kullanması " "için bir --kullanım dizini argümanı var" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:440 msgid "fix the make-password keybinding" msgstr "Parola yap tuş atamasını düzelt" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:441 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:450 msgid "updated translations" msgstr "güncellenmiş çeviriler" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:449 msgid "gnome-shell extension warning fixes" msgstr "gnome kabuk uzantısı uyarı düzeltmeleri" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:458 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:495 msgid "gnome-shell extension cosmetic updates" msgstr "gnome kabuk uzantısı kozmetik güncellemeleri" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:466 msgid "Disable images support by default (can be reenabled in preferences)" msgstr "" "Görüntü desteğini varsayılan olarak devre dışı bırakın (tercihlerde yeniden " "etkinleştirilebilir)" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:467 msgid "Search now includes passwords (using their names)" msgstr "Arama artık şifreleri içeriyor (adlarını kullanarak)" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:468 msgid "systemd integration enhancements" msgstr "systemd entegrasyon geliştirmeleri" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:474 msgid "First release for GNOME 3.38. Changes:" msgstr "GNOME 3.38 için ilk sürüm. Değişiklikler:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:476 msgid "Drop the Tracking DBus signal" msgstr "İzleme DBus sinyalini bırakın" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:477 msgid "Switch to uuids to identify items" msgstr "Öğeleri tanımlamak için kullanıcı kimliklerine geçin" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:478 msgid "Bump DBus interface to org.gnome.GPaste2" msgstr "DBus arabirimini org.gnome.GPaste2'ye aktarın" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:479 msgid "Update to gnome-shell 3.38.0" msgstr "Gnome-shell 3.38.0 güncellemesi" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:503 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:535 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:577 msgid "Fix activating items using Ctrl-Number in gnome-shell" msgstr "" "Gnome kabuğunda Ctrl-Number kullanarak etkinleştirilen öğeleri düzeltin" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:511 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:543 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:576 msgid "Fix keybinding regrab with gnome-shell" msgstr "Gnome kabuğu ile tuş atama yeniden düzenlemesini düzelt" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:519 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:551 msgid "Fix keybinding grab with gnome-shell" msgstr "Gnome kabuğu ile tuş atama tutuşunu düzelt" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:525 msgid "First release for GNOME 3.36. Changes:" msgstr "GNOME 3.36 için ilk sürüm. Değişiklikler:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:527 msgid "Update to gnome-shell 3.36.0" msgstr "Gnome kabuğu 3.36.0'a güncelleme" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:559 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:575 msgid "Compatibility with recent appstream-glib" msgstr "En son uygulama akışı-glib ile uyumluluk" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:565 msgid "First release for GNOME 3.34. Changes:" msgstr "GNOME 3.34 için ilk sürüm. Değişiklikler:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:567 msgid "Update to gnome-shell 3.34.0" msgstr "Gnome kabuğu 3.34.0 güncellemesi" #: src/client/gpaste-client.c:146 msgid "Couldn't spawn" msgstr "Çoğaltılamadı" #: src/client/gpaste-client.c:158 #, c-format msgid "Usage:\n" msgstr "Kullanım:\n" #. Translators: help for gpaste history #: src/client/gpaste-client.c:160 msgid "print the history with UUIDs" msgstr "UUID'lerle geçmişi yazdır" #. Translators: help for gpaste history-size #: src/client/gpaste-client.c:162 msgid "print the size of the history" msgstr "tarihin boyutunu yazdır" #. Translators: help for gpaste get-history #: src/client/gpaste-client.c:164 msgid "get the name of the current history" msgstr "şimdiki tarihin adını al" #. Translators: help for gpaste backup-history #. Translators: help for gpaste switch-history #. Translators: help for gpaste delete-history #. Translators: help for gpaste add-password #. Translators: help for gpaste set-password #. Translators: help for gpaste delete-passworf #: src/client/gpaste-client.c:166 src/client/gpaste-client.c:168 #: src/client/gpaste-client.c:170 src/client/gpaste-client.c:176 #: src/client/gpaste-client.c:188 src/client/gpaste-client.c:192 msgid "name" msgstr "ad" #: src/client/gpaste-client.c:166 msgid "backup current history" msgstr "geçerli geçmişi yedekle" #: src/client/gpaste-client.c:168 msgid "switch to another history" msgstr "başka bir geçmişe geç" #: src/client/gpaste-client.c:170 msgid "delete a history" msgstr "geçmişi sil" #. Translators: help for gpaste list-histories #: src/client/gpaste-client.c:172 msgid "list available histories" msgstr "kullanılabilir geçmişleri listele" #. Translators: help for gpaste add #: src/client/gpaste-client.c:174 msgid "text" msgstr "metin" #: src/client/gpaste-client.c:174 msgid "set text to clipboard" msgstr "metni panoya ayarla" #: src/client/gpaste-client.c:176 msgid "password" msgstr "parola" #: src/client/gpaste-client.c:176 msgid "add the name - password couple to the clipboard" msgstr "panoya adı - şifre çiftini ekleyin" #. Translators: help for gpaste rename-password #: src/client/gpaste-client.c:178 msgid "old name" msgstr "eski ad" #: src/client/gpaste-client.c:178 msgid "new name" msgstr "yeni ad" #: src/client/gpaste-client.c:178 msgid "rename the password" msgstr "parolayı yeniden adlandır" #. Translators: help for gpaste get #: src/client/gpaste-client.c:180 msgid "get the item from the history" msgstr " öğesini geçmişten al" #. Translators: help for gpaste select #: src/client/gpaste-client.c:182 msgid "set the item from the history to the clipboard" msgstr " öğesini geçmişten panoya ayarla" #. Translators: help for gpaste replace #: src/client/gpaste-client.c:184 msgid "contents" msgstr "içindekiler" #: src/client/gpaste-client.c:184 msgid "" "replace the contents of the item from the history with the provided " "one" msgstr " öğesinin içeriğini geçmişten sağlananla değiştirin" #. Translators: help for gpaste merge #: src/client/gpaste-client.c:186 msgid "" "merge the items matching the UUIDs from the history and put the result in " "the clipboard" msgstr "UUID'lerle eşleşen öğeleri geçmişten birleştir ve sonucu panoya koy" #: src/client/gpaste-client.c:188 msgid "set the item from the history as a password named " msgstr " öğesini geçmişten adlı bir parola olarak ayarlayın" #. Translators: help for gpaste delete #: src/client/gpaste-client.c:190 msgid "delete item from the history" msgstr " öğesini geçmişten sil" #: src/client/gpaste-client.c:192 msgid "delete the password from the history" msgstr " parolasını geçmişten sil" #. Translators: help for gpaste file #: src/client/gpaste-client.c:194 msgid "path" msgstr "yol" #: src/client/gpaste-client.c:194 msgid "put the content of the file at into the clipboard" msgstr " konumundaki dosyanın içeriğini panoya yerleştirin" #. Translators: help for whatever | gpaste #: src/client/gpaste-client.c:196 msgid "whatever" msgstr "her neyse" #: src/client/gpaste-client.c:196 msgid "set the output of whatever to clipboard" msgstr "panoya ne olursa olsun çıktısını ayarla" #. Translators: help for gpaste empty #: src/client/gpaste-client.c:198 msgid "empty the history" msgstr "geçmişi boşalt" #. Translators: help for gpaste start #: src/client/gpaste-client.c:200 msgid "start tracking clipboard changes" msgstr "pano değişikliklerini izlemeye başla" #. Translators: help for gpaste stop #: src/client/gpaste-client.c:202 msgid "stop tracking clipboard changes" msgstr "pano değişikliklerini izlemeyi durdur" #. Translators: help for gpaste quit #: src/client/gpaste-client.c:204 msgid "alias for stop" msgstr "durdurmak için takma ad" #. Translators: help for gpaste daemon-reexec #: src/client/gpaste-client.c:206 msgid "reexecute the daemon (after upgrading...)" msgstr "arka plan programını yeniden yürütün (yükseltmeden sonra...)" #. Translators: help for gpaste preferences #: src/client/gpaste-client.c:208 msgid "launch the configuration tool" msgstr "yapılandırma aracını başlat" #. Translators: help for gpaste ui #: src/client/gpaste-client.c:210 msgid "launch the graphical tool" msgstr "grafik aracını başlat" #. Translators: help for gpaste show-history #: src/client/gpaste-client.c:212 msgid "make the applet or extension display the history" msgstr "uygulama veya uzantının geçmişi görüntülemesini sağlayın" #. Translators: help for gpaste upload #: src/client/gpaste-client.c:214 msgid "upload the item to a pastebin service" msgstr " öğesini bir pastebin hizmetine yükleyin" #. Translators: help for gpaste version #: src/client/gpaste-client.c:216 msgid "display the version" msgstr "sürümü göster" #. Translators: help for gpaste daemon-version #: src/client/gpaste-client.c:218 msgid "display the daemon version" msgstr "daemon sürümünü göster" #. Translators: help for gpaste help #: src/client/gpaste-client.c:220 msgid "display this help" msgstr "bu yardımı göster" #. Translators: help for gpaste about #: src/client/gpaste-client.c:222 msgid "display the about dialog" msgstr "hakkında iletişim kutusunu göster" #: src/client/gpaste-client.c:225 #, c-format msgid "Convenience options:" msgstr "Kolaylık seçenekleri:" #. Translators: help for --use-index #: src/client/gpaste-client.c:228 msgid "use the index of the item instead of its UUID" msgstr "UUID'si yerine öğenin dizinini kullanın" #: src/client/gpaste-client.c:231 #, c-format msgid "Display options:" msgstr "Görüntüleme seçenekleri:" #. Translators: help for --oneline #: src/client/gpaste-client.c:234 msgid "display each item on only one line" msgstr "her öğeyi yalnızca bir satırda göster" #. Translators: help for --raw #: src/client/gpaste-client.c:236 msgid "display each item raw (without line numbers)" msgstr "her öğeyi ham olarak göster (satır numaraları olmadan)" #. Translators: help for --reverse #: src/client/gpaste-client.c:238 msgid "display the items in reverse order" msgstr "öğeleri ters sırada göster" #. Translators: help for --zero #: src/client/gpaste-client.c:240 msgid "use a NUL character instead of a new line betweean each item" msgstr "her öğe arasında yeni bir satır yerine BOŞ karakter kullanın" #: src/client/gpaste-client.c:243 #, c-format msgid "Merge options:" msgstr "Birleştirme seçenekleri:" #. Translators: help for --decoration #. Translators: help for --separator #: src/client/gpaste-client.c:246 src/client/gpaste-client.c:248 msgid "string" msgstr "dizi" #: src/client/gpaste-client.c:246 msgid "" "add the given decoration to the beginning and the end of each item before " "merging" msgstr "" "birleştirmeden önce verilen dekorasyonu her öğenin başına ve sonuna ekleyin" #: src/client/gpaste-client.c:248 msgid "add the given separator between each item when merging" msgstr "birleştirme sırasında her öğe arasına verilen ayırıcıyı ekleyin" #: src/client/gpaste-client.c:345 #, c-format msgid "Successfully reexecuted the daemon\n" msgstr "Daemon başarıyla yeniden çalıştırıldı\n" #: src/client/gpaste-client.c:486 msgid "Cannot add non utf8 data as text." msgstr "Utf8 olmayan veriler metin olarak eklenemez." #: src/client/gpaste-client.c:796 src/ui/gpaste-ui-window.c:353 #: src/ui/gpaste-ui-window.c:354 msgid "Couldn't connect to GPaste daemon" msgstr "GPaste arka plan programına bağlanılamadı" #: src/daemon/gpaste-color-item.c:73 msgid "[Color]" msgstr "" #. Translators: strftime format for image timestamps. Rearrange to match your locale's date/time convention. #: src/daemon/gpaste-image-item.c:219 msgid "%m/%d/%y %T" msgstr "%d/%m/%y %T" #. Translators: Image item displayed in history. %d is width, %d is height, %s is the formatted date. #: src/daemon/gpaste-image-item.c:221 #, c-format msgid "[Image, %d x %d (%s)]" msgstr "[Görüntü, %d x %d (%s)]" #: src/daemon/gpaste-make-password-keybinding.c:50 #, fuzzy msgid "Convert to Password" msgstr "parolayı yeniden adlandır" #. This is the prefix displayed in history to identify a password #: src/daemon/gpaste-password-item.c:65 msgid "Password" msgstr "Parola" #: src/daemon/gpaste-pop-keybinding.c:64 #, fuzzy msgid "Pop from History" msgstr "Geçmiş erişimi" #: src/daemon/gpaste-show-history-keybinding.c:49 #, fuzzy msgid "Show History" msgstr "Geçmiş erişimi" #: src/daemon/gpaste-sync-clipboard-to-primary-keybinding.c:46 #, fuzzy msgid "Sync Clipboard to Primary" msgstr "Panoyu birincil seçimle senkronize edin" #: src/daemon/gpaste-sync-primary-to-clipboard-keybinding.c:46 #, fuzzy msgid "Sync Primary to Clipboard" msgstr "Birincil seçimi panoya senkronize et" #: src/daemon/gpaste-ui-keybinding.c:43 msgid "Launch UI" msgstr "" #: src/daemon/gpaste-upload-keybinding.c:64 msgid "Upload to Pastebin" msgstr "" #: src/daemon/gpaste-uris-item.c:87 msgid "[Files] " msgstr "[Dosyalar] " #: src/daemon/main.c:32 msgid "Stop signal received, exiting" msgstr "Dur sinyali alındı, çıkılıyor" #: src/daemon/main.c:69 msgid "Could not acquire DBus name." msgstr "DBus adı alınamadı." #: src/gnome-shell/dummyHistoryItem.js:12 msgid "(Couldn't connect to GPaste daemon)" msgstr "(GPaste arka plan programına bağlanılamadı)" #: src/gnome-shell/dummyHistoryItem.js:17 msgid "(Empty)" msgstr "(Boş)" #: src/gnome-shell/dummyHistoryItem.js:22 msgid "(No result)" msgstr "(Sonuç yok)" #: src/gnome-shell/emptyHistoryItem.js:14 msgid "Empty history" msgstr "Geçmişi temizle" #: src/gnome-shell/stateSwitch.js:12 msgid "Track changes" msgstr "Değişiklikleri izle" #: src/gnome-shell/uiItem.js:14 msgid "Graphical tool" msgstr "Grafiksel araç" #: src/libgpaste/gpaste/gpaste-util.c:636 msgid "Could not create history dir" msgstr "Geçmiş dizini oluşturulamadı" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-macros.h:38 msgid "Failed to register the gtk application" msgstr "GTK uygulaması kaydedilemedi" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:108 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:119 msgid "General behaviour" msgstr "Genel davranış" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:121 #: src/ui/gpaste-ui-switch.c:93 msgid "Track clipboard changes" msgstr "Pano değişikliklerini izle" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:127 msgid "Close UI on select" msgstr "Seçimde kullanıcı arayüzünü kapat" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:133 msgid "Open the UI window centered" msgstr "Arayüz penceresini ortalanmış aç" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:139 msgid "Save history" msgstr "Geçmişi kaydet" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:150 msgid "Enable the gnome-shell extension" msgstr "Gnome kabuk uzantısını etkinleştirin" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:156 msgid "Sync the daemon state with the extension's one" msgstr "Daemon durumunu uzantınınkiyle senkronize edin" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:162 msgid "" "When enabled, the daemon automatically starts or stops tracking clipboard " "changes to match the GNOME Shell extension's enabled state" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:166 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:174 msgid "Clipboards synchronization" msgstr "Pano eşzamanlaması" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:168 msgid "Primary selection affects history" msgstr "Birincil seçim geçmişi etkiler" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:174 msgid "Synchronize clipboard with primary selection" msgstr "Panoyu birincil seçimle senkronize et" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:181 msgid "Optional features" msgstr "İsteğe bağlı özellikler" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:183 msgid "Trim items" msgstr "Öğeleri kırp" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:189 msgid "Detect growing lines" msgstr "Büyüyen çizgileri algıla" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:195 msgid "" "When enabled, if a new clipboard entry starts with the previous one, the " "previous entry is replaced instead of creating a new one" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:92 msgid "History settings" msgstr "Geçmiş ayarları" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:103 msgid "Resources limits" msgstr "Kaynak sınırları" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:120 msgid "Text limits" msgstr "Metin sınırları" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:122 msgid "Min text item length" msgstr "Minimum metin öğesi uzunluğu" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:129 msgid "Max text item length" msgstr "Maksimum metin öğesi uzunluğu" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:137 msgid "Display settings" msgstr "Görüntüleme ayarları" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:139 msgid "Max element size when displaying" msgstr "Görüntülerken maksimum eleman boyutu" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:81 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:92 #, fuzzy msgid "Images settings" msgstr "Ayarlar kullanıcı arayüzü" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:94 msgid "Images support" msgstr "Görüntü desteği" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:100 msgid "Image previews" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:106 msgid "Preview size" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:122 msgid "Keyboard shortcuts" msgstr "Klavye Kısayolları" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:133 msgid "History access" msgstr "Geçmiş erişimi" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:150 msgid "Active element manipulation" msgstr "Etkin öge yönetimi" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-util.c:51 #: src/ui/gpaste-ui-edit-item.c:84 src/ui/gpaste-ui-new-item.c:66 #: src/ui/gpaste-ui-panel.c:311 msgid "Cancel" msgstr "İptal Et" #. Translators: %s is the name of the history being emptied. #: src/libgpaste/gpaste-gtk4/gpaste-gtk-util.c:126 #, fuzzy, c-format msgid "Do you really want to empty \"%s\"?" msgstr "Gerçekten geçmişi temizlemek istiyor musunuz?" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-util.c:127 #: src/ui/gpaste-ui-history.c:153 src/ui/gpaste-ui-history.c:428 #: src/ui/gpaste-ui-panel.c:517 msgid "Empty" msgstr "Temizle" #: src/ui/gpaste-ui.c:47 msgid "Clipboard management system" msgstr "" #: src/ui/gpaste-ui-delete-item.c:46 src/ui/gpaste-ui-panel.c:358 #: src/ui/gpaste-ui-panel.c:518 msgid "Delete" msgstr "Sil" #: src/ui/gpaste-ui-edit-item.c:85 src/ui/gpaste-ui-edit-item.c:139 msgid "Edit" msgstr "Düzenle" #: src/ui/gpaste-ui-history.c:266 #, fuzzy msgid "No Results" msgstr "(Sonuç yok)" #: src/ui/gpaste-ui-new-item.c:67 msgid "Add new item" msgstr "" #: src/ui/gpaste-ui-new-item.c:100 msgid "New item" msgstr "" #: src/ui/gpaste-ui-panel.c:307 msgid "Under which name do you want to backup this history?" msgstr "Bu geçmişi hangi ad altında yedeklemek istiyorsunuz?" #: src/ui/gpaste-ui-panel.c:311 src/ui/gpaste-ui-panel.c:516 msgid "Backup" msgstr "Yedek" #. Translators: %s is the name of the history being deleted. #: src/ui/gpaste-ui-panel.c:357 #, fuzzy, c-format msgid "Are you sure you want to delete \"%s\"?" msgstr "Bu geçmişi silmek istediğinizden emin misiniz?" #: src/ui/gpaste-ui-panel.c:441 #, fuzzy msgid "Switch to history" msgstr "başka bir geçmişe geç" #: src/ui/gpaste-ui-panel.c:448 msgid "Switch to" msgstr "Değiştir" #: src/ui/gpaste-ui-reexec.c:45 msgid "Restart" msgstr "Yeniden Başlat" #: src/ui/gpaste-ui-reexec.c:45 msgid "Do you really want to restart the daemon?" msgstr "Daemon'u gerçekten yeniden başlatmak istiyor musunuz?" #: src/ui/gpaste-ui-reexec.c:70 msgid "Restart the daemon" msgstr "Daemon'u yeniden başlatın" #: src/ui/gpaste-ui-search.c:23 msgid "Search" msgstr "Ara" #: src/ui/gpaste-ui-settings.c:35 msgid "GPaste Settings" msgstr "GPaste Ayarları" #: src/ui/gpaste-ui-shortcuts-window.c:21 msgid "General" msgstr "Genel" #: src/ui/gpaste-ui-switch.c:68 msgid "Stop" msgstr "Durdur" #: src/ui/gpaste-ui-switch.c:68 msgid "Do you really want to stop tracking clipboard changes?" msgstr "Pano değişikliklerini izlemeyi gerçekten durdurmak istiyor musunuz?" #: src/ui/gpaste-ui-upload-item.c:46 msgid "Upload" msgstr "Yükle" #: src/ui/gpaste-ui-window.c:303 msgid "Quit" msgstr "Çık" #: src/ui/gpaste-ui-window.c:380 #, fuzzy msgid "Histories" msgstr "Geçmiş erişimi" #: src/ui/gpaste-ui-window.c:381 #, fuzzy msgid "History" msgstr "Geçmiş erişimi" #~ msgid "is already running." #~ msgstr "zaten çalışıyor." #~ msgid "Open UI window centered" #~ msgstr "Arayüz penceresini ortalanmış aç" #~ msgid "New" #~ msgstr "Yeni" #~ msgid "Keyboard Shortcuts" #~ msgstr "Klavye Kısayolları" #~ msgid "About GPaste" #~ msgstr "GPaste Hakkında" Keruspe-GPaste-724def1/po/uk.po000066400000000000000000001745521521206431300163370ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the GPaste package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: GPaste\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-06-09 21:21+0200\n" "PO-Revision-Date: 2025-07-10 06:01+0000\n" "Last-Translator: Максим Горпиніч \n" "Language-Team: Ukrainian \n" "Language: uk\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "X-Generator: Weblate 5.13-dev\n" #: data/control-center/42-gpaste.control-center.xml.in:2 msgid "@GETTEXT_PACKAGE@" msgstr "@GETTEXT_PACKAGE@" #: data/control-center/42-gpaste.control-center.xml.in:3 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:136 #: src/ui/gpaste-ui-shortcuts-window.c:24 msgid "Launch the graphical tool" msgstr "Запустити графічний інструмент" #: data/control-center/42-gpaste.control-center.xml.in:4 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:153 #: src/ui/gpaste-ui-shortcuts-window.c:25 msgid "Mark the active item as being a password" msgstr "Позначити активний об'єкт як пароль" #: data/control-center/42-gpaste.control-center.xml.in:5 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:167 #: src/ui/gpaste-ui-shortcuts-window.c:23 msgid "Delete the active item from history" msgstr "Видалити активний об'єкт із історії" #: data/control-center/42-gpaste.control-center.xml.in:6 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:143 #: src/ui/gpaste-ui-shortcuts-window.c:26 msgid "Display the history" msgstr "Показати історію" #: data/control-center/42-gpaste.control-center.xml.in:7 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:177 #: src/ui/gpaste-ui-shortcuts-window.c:27 msgid "Sync the clipboard to the primary selection" msgstr "Синхронізувати буфер обміну з головним виділенням" #: data/control-center/42-gpaste.control-center.xml.in:8 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:184 #: src/ui/gpaste-ui-shortcuts-window.c:28 msgid "Sync the primary selection to the clipboard" msgstr "Синзронізувати головне виділення з буфером обміну" #: data/control-center/42-gpaste.control-center.xml.in:9 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:160 #: src/ui/gpaste-ui-shortcuts-window.c:29 msgid "Upload the active item to a pastebin service" msgstr "Вивантажити активний об'єкт до сервісу pastebin" #: data/desktop/org.gnome.GPaste.Daemon.desktop.in.in:3 #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:3 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:6 msgid "GPaste" msgstr "GPaste" #: data/desktop/org.gnome.GPaste.Preferences.desktop.in.in:3 msgid "GPaste Preferences" msgstr "Налаштування GPaste" #: data/desktop/org.gnome.GPaste.Preferences.desktop.in.in:4 msgid "Manage your GPaste preferences" msgstr "Керуйте налаштуваннями GPaste" #: data/desktop/org.gnome.GPaste.Preferences.desktop.in.in:5 #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:6 msgid "Clipboard;Manager;Settings;Preferences;Configuration;" msgstr "Clipboard;Manager;Settings;Preferences;Configuration;буфер;обміну;менеджер;налаштування;конфігурація;" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:4 #, fuzzy msgid "Clipboard Manager" msgstr "Слідкувати за змінами буфера обміну" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:5 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:7 msgid "Manage your clipboard history" msgstr "Керуйте історією вашого буферу обміну" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:16 #, fuzzy msgid "Preferences" msgstr "Налаштування GPaste" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:20 #: src/gnome-shell/aboutItem.js:13 src/ui/gpaste-ui-about.c:38 msgid "About" msgstr "Про GPaste" #: data/gsettings/org.gnome.GPaste.gschema.xml:7 msgid "Max size of an element when displaying it" msgstr "Максимальний розмір об'єкту при його відображенні" #: data/gsettings/org.gnome.GPaste.gschema.xml:8 msgid "" "The extra stuff of that element will be replaced by \"…\", and newlines by " "\" \" when displaying from the applet, 0 to disable." msgstr "" "Зайве в об'єкті буде замінено на \"…\", а нові рядки будуть замінені на \" " "\" при відображенні з аплету, 0 для вимкнення." #: data/gsettings/org.gnome.GPaste.gschema.xml:15 msgid "Do we detect and replace growing lines in history?" msgstr "Чи виявляємо і заміняємо зростаючи рядки у історії?" #: data/gsettings/org.gnome.GPaste.gschema.xml:16 msgid "" "By default, selecting \"Here is\", then \"Here is an example\" will create " "two entries in the history. With this feature enabled, the first one will be " "replaced by the second one." msgstr "" "За замовченням, обирання \"Ось тут\", а потім \"Ось тут є приклад\" створить " "два записи у історії. Коли ця опція активна, перший буде замінений на другий." #: data/gsettings/org.gnome.GPaste.gschema.xml:24 msgid "The name of the current history" msgstr "Назва поточної історії" #: data/gsettings/org.gnome.GPaste.gschema.xml:25 msgid "The default name is \"history\"" msgstr "Назва за замовченням - \"історія\"" #: data/gsettings/org.gnome.GPaste.gschema.xml:32 msgid "Do we save the images copied to history, or only text?" msgstr "Чи зберігаємо скопійовані зображення у історію, чи тільки текст?" #: data/gsettings/org.gnome.GPaste.gschema.xml:33 msgid "By default, we're saving only text" msgstr "За замовченням, ми зберігаємо тільки текст" #: data/gsettings/org.gnome.GPaste.gschema.xml:40 msgid "Show image previews in the history?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:41 msgid "By default, we show previews of images in the history" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:49 msgid "Size of image previews in pixels" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:50 msgid "Default size is 100 pixels" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:57 msgid "Do we close the UI after selecting an item?" msgstr "Чи закриваємо інтерфейс після обирання об'єкту?" #: data/gsettings/org.gnome.GPaste.gschema.xml:58 msgid "By default, we close it" msgstr "За замовченням, зачиняємо його" #: data/gsettings/org.gnome.GPaste.gschema.xml:65 msgid "Do we open the UI window centered?" msgstr "Чи відкриваємо вікно інтерфейсу центрованим?" #: data/gsettings/org.gnome.GPaste.gschema.xml:66 msgid "By default, we open it where the mouse cursor is" msgstr "За замовченням, відкриваємо там де курсор миші" #: data/gsettings/org.gnome.GPaste.gschema.xml:73 msgid "The keyboard shortcut to launch the graphical interface" msgstr "Клавіатурне скорочення для запуску графічного інтерфейсу" #: data/gsettings/org.gnome.GPaste.gschema.xml:74 msgid "" "By default, hitting ctrl + alt + g does that (\"G\"). An empty " "string here disables this functionnality." msgstr "" "За замовченням, ctrl + alt + g виконає це (\"G\"). Порожній рядок " "тут вимкне цю функцію." #: data/gsettings/org.gnome.GPaste.gschema.xml:82 msgid "The keyboard shortcut to mark the active item as being a password" msgstr "Клавіатурне скорочення для позначення активного об'єкту як пароль" #: data/gsettings/org.gnome.GPaste.gschema.xml:83 msgid "" "By default, hitting ctrl + alt + s will mark the active item as being a " "password (\"S\"). An empty string here disables this " "functionnality." msgstr "" "За замовченням, ctrl + alt + s позначить активний об'єкт як пароль " "(\"S\"). Порожній рядок тут вимкне цю функцію." #: data/gsettings/org.gnome.GPaste.gschema.xml:92 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:146 msgid "Max displayed history size" msgstr "Максимальний розмір відображення історії" #: data/gsettings/org.gnome.GPaste.gschema.xml:93 msgid "Maximum number of items displayed in the history" msgstr "Максимальна кількість об'єктів для відображення у історії" #: data/gsettings/org.gnome.GPaste.gschema.xml:101 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:105 msgid "Max history size" msgstr "Максимальний розмір історії" #: data/gsettings/org.gnome.GPaste.gschema.xml:102 msgid "Maximum number of items in history" msgstr "Максимальна кількість об'єктів у історії" #: data/gsettings/org.gnome.GPaste.gschema.xml:110 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:112 msgid "Max memory usage (MB)" msgstr "Максимальне споживання оперативної пам'яті (МБ)" #: data/gsettings/org.gnome.GPaste.gschema.xml:111 msgid "Maximum amount of memory used to store contents" msgstr "Максимальна кількість оперативної пам'яті для зберігання вмісту" #: data/gsettings/org.gnome.GPaste.gschema.xml:119 msgid "Max text item size" msgstr "Максимальний розмір текстового об'єкту" #: data/gsettings/org.gnome.GPaste.gschema.xml:120 msgid "Maximum size of a text item. Anything out of this boundary is ignored." msgstr "" "Максимальний розмір текстового об'єкту. Все що буде виходити за його межі - " "буде проігноровано." #: data/gsettings/org.gnome.GPaste.gschema.xml:128 msgid "Min text item size" msgstr "Мінімальний розмір текстового об'кту" #: data/gsettings/org.gnome.GPaste.gschema.xml:129 msgid "Minimum size of a text item. Anything out of this boundary is ignored." msgstr "" "Мінімальний розмір текстового об'кту. Все що буде за його межами - буде " "проігноровано." #: data/gsettings/org.gnome.GPaste.gschema.xml:136 msgid "The keyboard shortcut to delete the first element in history" msgstr "Клавіатурне скорочення, щоб видалити перший елемент у історії" #: data/gsettings/org.gnome.GPaste.gschema.xml:137 msgid "" "By default, hitting ctrl + alt + v does that (\"V\"). An empty " "string here disables this functionnality." msgstr "" "За замовченням, ctrl + alt + v виконає це ((\"V\"). Порожній " "рядок тут вимкне цю функцію." #: data/gsettings/org.gnome.GPaste.gschema.xml:145 msgid "Does the primary selection affects history?" msgstr "Чи буде головне виділення впливати на історію?" #: data/gsettings/org.gnome.GPaste.gschema.xml:146 msgid "By default, only clipboard (ctrl+c) affects history." msgstr "За замовченням, тільки буфер обміну (ctrl + c) впливає на історію." #: data/gsettings/org.gnome.GPaste.gschema.xml:153 msgid "" "Do we save all versions of selected rich text (e.g. html) or just the plain " "text version?" msgstr "" "Чи будемо ми зберігати усі версії форматованого тексту (наприклад, html) або " "тільки просту текстову версію?" #: data/gsettings/org.gnome.GPaste.gschema.xml:154 msgid "By default, we're saving all" msgstr "За замовченням, мі зберігаємо усі" #: data/gsettings/org.gnome.GPaste.gschema.xml:161 msgid "Do we save the history from one session to another?" msgstr "Чи будемо ми зберігати історію однієї сесії в іншій?" #: data/gsettings/org.gnome.GPaste.gschema.xml:162 msgid "By default, we're saving it" msgstr "За замовченням, ми зберігаємо її" #: data/gsettings/org.gnome.GPaste.gschema.xml:169 msgid "The keyboard shortcut to display the menu" msgstr "Клавіатурне скорочення щоб відобразити меню" #: data/gsettings/org.gnome.GPaste.gschema.xml:170 msgid "" "By default, hitting ctrl + alt + h displays the menu (\"H\"). An " "empty string here disables this functionnality." msgstr "" "За замовченням, ctrl + alt + h відобразить меню (\"H\"). Порожній " "рядок тут вимкне цю функцію." #: data/gsettings/org.gnome.GPaste.gschema.xml:178 msgid "The keyboard shortcut to sync the clipboard to the primary selection" msgstr "Клавіатурне скорочення для синхронізації головного виділення" #: data/gsettings/org.gnome.GPaste.gschema.xml:179 msgid "" "By default, hitting ctrl + alt + o syncs them (\"P\"). An empty " "string here disables this functionnality." msgstr "" "За замовченням, ctrl + alt + o синхронізує їх (\"P\"). Порожній " "рядок тут вимкне цю функцію." #: data/gsettings/org.gnome.GPaste.gschema.xml:187 msgid "The keyboard shortcut to sync the primary selection to the clipboard" msgstr "" "Клавіатурне скорочення для сихронізації головного виділення до буферу обміну" #: data/gsettings/org.gnome.GPaste.gschema.xml:188 msgid "" "By default, hitting ctrl + alt + p syncs them (\"P\"). An empty " "string here disables this functionnality." msgstr "" "За замовченням, ctrl + alt + p синхронізує їх (\"P\"). Порожній " "рядок тут вимкне цю функцію." #: data/gsettings/org.gnome.GPaste.gschema.xml:196 msgid "Are the primary selection and the clipboard synchronized?" msgstr "Чи головне виділення та буфер обміну синхронізовані?" #: data/gsettings/org.gnome.GPaste.gschema.xml:197 msgid "By default, the primary selection and the clipboard are independent." msgstr "За замовченням, головне виділення та буфер обміну незалежні." #: data/gsettings/org.gnome.GPaste.gschema.xml:204 msgid "Do we track the clipboard changes?" msgstr "Чи слідкуємо за змінами у буфері обміну?" #: data/gsettings/org.gnome.GPaste.gschema.xml:205 msgid "By default, we're tracking those changes." msgstr "За замовченням, ми слідкуємо за цими змінами." #: data/gsettings/org.gnome.GPaste.gschema.xml:212 msgid "" "Do we sync the daemon state with the gnome-shell extension's one? (disable " "the daemon when disabling the extension)" msgstr "" "Чи синхронізуємо стан даемону з розширенням оболонки? (вимкнення даемону при " "вимкненні розширення)" #: data/gsettings/org.gnome.GPaste.gschema.xml:213 msgid "By default, the daemon state keeps unchanged" msgstr "За замовченням, стан даемону залишається незмінним" #: data/gsettings/org.gnome.GPaste.gschema.xml:220 msgid "Do we trim the textual items before adding them to history?" msgstr "Чи будемо обрізати текстові об'єкти перед додавання їх до історії?" #: data/gsettings/org.gnome.GPaste.gschema.xml:221 msgid "" "Trimming means removing all trailing and ending spaces. By default, we're " "letting them as-is." msgstr "" "Обрізання означає видалення усіх зайвих пробілів та символів переводу рядку. " "За замовченням, ми залишаємо їх як є." #: data/gsettings/org.gnome.GPaste.gschema.xml:229 msgid "" "The keyboard shortcut to upload the first element in history to a pastebin " "service" msgstr "" "Клавіатурне скорочення для завантаження першого елементу історії до сервісу " "pastebin" #: data/gsettings/org.gnome.GPaste.gschema.xml:230 msgid "" "By default, hitting ctrl + alt + u does that (\"U\"). An empty " "string here disables this functionnality." msgstr "" "За замовченням, ctrl + alt + u виконає це (\"U\"). Порожній рядок " "тут вимкне цю функцію." #: data/gsettings/org.gnome.GPaste.gschema.xml:238 msgid "Do we prompt for confirmation when emptying a history?" msgstr "Чи будемо ми питати про підтвердження при очищенні історії?" #: data/gsettings/org.gnome.GPaste.gschema.xml:239 msgid "By default, we do as it's a destructive action" msgstr "За замовченням, ми виконуємо це як деструктивну дію" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:9 msgid "Marc-Antoine Perennou" msgstr "Марк-Антуан Перену" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:17 msgid "" "GPaste is a clipboard managing system allowing you to track and manage your " "clipboard history in a highly customizable way." msgstr "" "GPaste - це система керування буфером обміну, яка дозволяє вам слідкувати та " "керувати історією вашого буферу обміну та має багато налаштувань." #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:20 msgid "" "GPaste provides you with a graphical tool allowing you to manage everything " "easily." msgstr "" "GPaste забезпечує вас графічними інструментами, які дають вам керувати усім " "з легкістю." #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:27 msgid "The main UI" msgstr "Головний інтерфейс" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:31 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:35 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:39 msgid "The settings UI" msgstr "Інтерфейс налаштувань" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:51 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:78 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:90 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:100 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:120 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:133 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:143 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:152 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:161 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:180 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:197 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:205 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:213 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:231 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:239 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:247 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:255 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:263 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:287 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:295 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:303 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:311 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:319 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:327 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:335 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:343 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:352 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:361 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:379 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:387 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:395 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:403 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:421 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:429 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:438 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:447 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:456 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:464 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:485 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:493 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:501 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:509 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:517 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:533 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:541 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:549 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:557 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:573 msgid "This is a maintenance release. Changes:" msgstr "Випуск з обслуговування. Зміни:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:53 msgid "Fix building without the GNOME Shell extension (-Dgnome-shell=false)" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:54 msgid "" "Restore GTK deprecation version-gating and drop the unused build-time gjs " "dependency" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:55 msgid "Target GNOME Shell 50 in the extension" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:56 msgid "Bump the library soversions to reflect the API/ABI changes since 45.8" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:62 msgid "" "This is a major release porting GPaste to GTK 4 and libadwaita. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:64 msgid "Port the daemon, history UI and preferences to GTK 4 and libadwaita" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:65 msgid "Show image thumbnails in the history, with configurable preview size" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:66 msgid "" "Support global keyboard shortcuts on Wayland through the XDG GlobalShortcuts " "portal" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:67 msgid "Recognise copied colours as dedicated colour items" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:68 msgid "" "Give keybindings human-readable descriptions and install a daemon desktop " "file" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:69 msgid "Fix images sometimes being repeatedly re-added to the history" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:70 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:81 msgid "" "Fix keyboard shortcuts not triggering when NumLock and CapsLock are both " "active" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:71 msgid "" "Fix several crashes (search provider, UI lifetime, GNOME Shell extension) " "and memory leaks" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:72 msgid "Modernise the GNOME Shell extension to current conventions" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:80 msgid "Fix use-after-free crash in the GNOME Shell search provider" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:82 msgid "" "Fix memory leaks when re-copying history items and when rebinding shortcuts" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:83 msgid "Fix potential crash when enforcing a very small history size" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:84 msgid "Build: ship the GSettings schema as a static file" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:92 msgid "" "GNOME Shell extension now retries the daemon connection before giving up" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:93 msgid "Fix test crash when GrabAccelerators is not allowed" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:94 msgid "Build: simplify gsettings compilation for tests" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:102 msgid "Fix GC crash and signal leak when disabling the GNOME Shell extension" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:103 msgid "GNOME Shell extension now handles daemon connection failure gracefully" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:104 #, fuzzy msgid "Fix crash when a history item has no value yet" msgstr "виправлено аварійне завершення коли ще немає історії" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:105 msgid "Fix image files not being deleted when history items are removed" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:106 msgid "Fix image files stored in wrong directory" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:107 #, fuzzy msgid "Fix keyboard focus being stolen by history items on hover" msgstr "" "Виправлено ваду яка призводила до відкриття історії тільки з одним об'єктом" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:108 msgid "" "Fix key events incorrectly forwarded to search when another entry has focus" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:109 msgid "Fix signal loop when updating shortcut entries from settings" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:110 msgid "Fix default history item count not reset after history deletion" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:111 msgid "Enforce minimum window size to prevent unresizable state" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:112 msgid "Add descriptive tooltips for settings entries" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:113 msgid "Build: explicitly link libgpaste libraries against libc" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:114 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:127 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:137 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:146 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:155 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:164 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:174 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:225 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:267 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:281 msgid "Translations updates" msgstr "Оновлення перекладів" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:122 msgid "" "Fix infinite Pango assertion loop that could fill disk when clipboard " "content contained tab characters" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:123 msgid "Various bug fixes and memory management improvements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:124 msgid "Daemon improvements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:125 msgid "GNOME Shell extension improvements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:126 #, fuzzy msgid "GLib >= 2.76 is now required" msgstr "Тепер потребується gcr 4" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:135 #, fuzzy msgid "Support for gnome 50" msgstr "Підтримка gnome 48" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:136 #, fuzzy msgid "Support for gnome 49" msgstr "Підтримка gnome 48" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:145 msgid "Support for gnome 48" msgstr "Підтримка gnome 48" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:154 msgid "Support for gnome 47" msgstr "Підтримка GNOME 47" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:163 msgid "Support for gnome 46" msgstr "Підтримка GNOME 46" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:170 msgid "Stable release for GNOME 45. Changes:" msgstr "Стабільний випуск для GNOME 45. Зміни:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:172 msgid "Port to gnome 45" msgstr "Портування до GNOME 45" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:173 msgid "Add setting to open ui window centered" msgstr "Додано опцію для відкривання вікна інтерфейсу центрованим" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:182 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:199 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:233 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:289 msgid "Fix a bug leading to history with only one item" msgstr "" "Виправлено ваду яка призводила до відкриття історії тільки з одним об'єктом" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:188 msgid "First release for GNOME 44. Changes:" msgstr "Перший випуск для GNOME 44. Зміни:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:190 msgid "gcr 4 is now required" msgstr "Тепер потребується gcr 4" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:191 msgid "Port to gnome 44" msgstr "Портування до GNOME 44" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:207 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:241 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:297 msgid "Avoid crash under heavy memory load" msgstr "Уникання аварійного завершення при високому навантаженні пам'яті" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:215 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:249 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:305 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:381 msgid "Respect --use-index when displaying history" msgstr "Дотримування --use-index при відображенні історії" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:221 msgid "First release for GNOME 43. Changes:" msgstr "Перший випуск для GNOME 43. Зміни:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:223 msgid "Port to GNOME 43" msgstr "Портування до GNOME 43" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:224 msgid "Internal preparation for gtk4 port" msgstr "Внутрішня підготовка до портування на GTK4" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:257 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:313 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:389 msgid "Open GPaste UI where the mouse pointer is" msgstr "Відкривання інтерфейсу GPaste там де курсор миші" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:265 msgid "Fixes to the new preferences tool" msgstr "Виправлення до нового інструменту налаштувань" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:266 msgid "Style fixes" msgstr "Виправлення стилю" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:273 msgid "First release for GNOME 42. Changes:" msgstr "Перший випуск для GNOME 42. Зміни:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:275 msgid "" "Old libgpaste replaced by a new minimal libgpaste-2 with no gtk dependency" msgstr "" "Стара бібліотека libpaste була замінена на нову мінімалістичну libpaste-2 " "без залежностей від GTK" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:276 msgid "New libgpaste-gtk3 for utils and settings ui" msgstr "Нова libpaste-gtk3 бібліотека для утиліт та інтерфейсу налаштувань" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:277 msgid "New libgpaste-gtk4 for utils and preferences ui" msgstr "Нова бібліотека libpaste-gtk4 для утиліт та інтерфейсу налаштувань" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:278 msgid "New gtk4 based gpaste-preferences utility" msgstr "Нова утиліта gpaste-preferences заснована на GTK4" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:279 msgid "Autotools are no longer supported" msgstr "Автоінструменти більше не підтримуються" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:280 msgid "Extension updated for gnome-shell 42" msgstr "Розширення оновлено до оболонки GNOME 42 (gnome-shell)" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:321 msgid "fix the storage path for meson builds" msgstr "Виправлено шлях до сховища для meson збірок" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:329 msgid "fix some race conditions in history handling" msgstr "виправлено декілька станів гонитви у поводженні з історією" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:337 msgid "better fix crash when there is no history yet" msgstr "покращено виправлення аварійного завершення коли історії ще нема" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:345 msgid "fix crash when there is no history yet" msgstr "виправлено аварійне завершення коли ще немає історії" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:346 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:355 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:364 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:373 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:397 msgid "translations update" msgstr "Оновлення перекладів" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:354 msgid "fix gnome-shell exntesion when the daemon restarts" msgstr "" "Виправлено розширення оболонки GNOME (gnome-shell) коли даемон " "перезапускається" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:363 msgid "Fix keybindings for wayland" msgstr "Виправлено клавіатурні скорочення для Wayland" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:370 msgid "First release for GNOME 41. Changes:" msgstr "Перший випуск для GNOME 41. Зміни:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:372 msgid "port to gnome-shell 41" msgstr "Портування до оболонки GNOME 41 (gnome-shell)" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:405 msgid "fix a crash in memory usage checking" msgstr "Виправлено аварійне завершення у перевірці використання пам'яті" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:412 msgid "First release for GNOME 40. Changes:" msgstr "Перший випуск для GNOME 40. Зміни:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:414 msgid "port to gnome-shell 40" msgstr "Портування до оболонки GNOME 40 (gnome-shell)" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:415 msgid "placeholder for gnome-shell prefs" msgstr "Заповнювач для налаштувань оболонки GNOME (gnome-shell)" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:423 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:487 msgid "fix X11 keybinder outside of GNOME" msgstr "Виправлено X11 клавіатурні скорочення за межами GNOME" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:431 msgid "better handling and reporting of invalid uuids passed to gpaste-client" msgstr "" "Покращена обробка та звітування про неправильні uuid-ри відправлені до " "gpaste-client" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:432 msgid "" "gpaste-client now has a --use-index argument for several subcommands to use " "index instead of uuid" msgstr "" "gpaste-client тепер має --use-index аргумент для декількох підкоманд для " "використання індексу замість uuid-ів" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:440 msgid "fix the make-password keybinding" msgstr "Виправленно make-password клавіатурне скорочення" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:441 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:450 msgid "updated translations" msgstr "Оновлення перекладів" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:449 msgid "gnome-shell extension warning fixes" msgstr "Виправлено застереження розширення оболонки GNOME (gnome-shell)" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:458 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:495 msgid "gnome-shell extension cosmetic updates" msgstr "Візуальні покращення до розширення оболонки GNOME (gnome-shell)" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:466 msgid "Disable images support by default (can be reenabled in preferences)" msgstr "" "Вимкнена підтримка зображень за замовченням (можна ввімкнути назад у " "налаштуваннях)" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:467 msgid "Search now includes passwords (using their names)" msgstr "Тепер пошук включає паролі (використовуючи їхні назви)" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:468 msgid "systemd integration enhancements" msgstr "Покращення до інтеграції з systemd" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:474 msgid "First release for GNOME 3.38. Changes:" msgstr "Перший випуск до GNOME 3.38. Зміни:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:476 msgid "Drop the Tracking DBus signal" msgstr "Скидання сигналу слідкування DBus" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:477 msgid "Switch to uuids to identify items" msgstr "Переключення на uuid-ри для ідентифікації об'єктів" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:478 msgid "Bump DBus interface to org.gnome.GPaste2" msgstr "Піднята версія DBus інтерфейсу до org.gnome.GPaste2" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:479 msgid "Update to gnome-shell 3.38.0" msgstr "Оновлено до оболонки GNOME 3.38.0 (gnome-shell)" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:503 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:535 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:577 msgid "Fix activating items using Ctrl-Number in gnome-shell" msgstr "" "Виправлення активація об'єктів за допомогою Ctrl + цифра у оболонці GNOME " "(gnome-shell)" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:511 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:543 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:576 msgid "Fix keybinding regrab with gnome-shell" msgstr "" "Виправлення перезавантаження комбінацій клавіш за допомогою gnome-shell" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:519 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:551 msgid "Fix keybinding grab with gnome-shell" msgstr "Виправлено захоплення комбінацій клавіш за допомогою gnome-shell" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:525 msgid "First release for GNOME 3.36. Changes:" msgstr "Перший випуск для GNOME 3.36. Зміни:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:527 msgid "Update to gnome-shell 3.36.0" msgstr "Оновлено до оболонки GNOME 3.36.0 (gnome-shell)" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:559 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:575 msgid "Compatibility with recent appstream-glib" msgstr "Сумісність з нещодавнім appsteam-glib" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:565 msgid "First release for GNOME 3.34. Changes:" msgstr "Перший випуск для GNOME 3.34. Зміни:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:567 msgid "Update to gnome-shell 3.34.0" msgstr "Оновлено до оболонки GNOME 3.34.0 (gnome-shell)" #: src/client/gpaste-client.c:146 msgid "Couldn't spawn" msgstr "Не вдалося створити" #: src/client/gpaste-client.c:158 #, c-format msgid "Usage:\n" msgstr "Використання:\n" #. Translators: help for gpaste history #: src/client/gpaste-client.c:160 msgid "print the history with UUIDs" msgstr "вивести історію з UUID-ми" #. Translators: help for gpaste history-size #: src/client/gpaste-client.c:162 msgid "print the size of the history" msgstr "вивести розмір історії" #. Translators: help for gpaste get-history #: src/client/gpaste-client.c:164 msgid "get the name of the current history" msgstr "отримати назву поточної історії" #. Translators: help for gpaste backup-history #. Translators: help for gpaste switch-history #. Translators: help for gpaste delete-history #. Translators: help for gpaste add-password #. Translators: help for gpaste set-password #. Translators: help for gpaste delete-passworf #: src/client/gpaste-client.c:166 src/client/gpaste-client.c:168 #: src/client/gpaste-client.c:170 src/client/gpaste-client.c:176 #: src/client/gpaste-client.c:188 src/client/gpaste-client.c:192 msgid "name" msgstr "назва" #: src/client/gpaste-client.c:166 msgid "backup current history" msgstr "зробити резервну копію поточної історії" #: src/client/gpaste-client.c:168 msgid "switch to another history" msgstr "перемикнутися на іншу історію" #: src/client/gpaste-client.c:170 msgid "delete a history" msgstr "видалити історію" #. Translators: help for gpaste list-histories #: src/client/gpaste-client.c:172 msgid "list available histories" msgstr "список доступних історій" #. Translators: help for gpaste add #: src/client/gpaste-client.c:174 msgid "text" msgstr "текст" #: src/client/gpaste-client.c:174 msgid "set text to clipboard" msgstr "встановити текст у буфер обміну" #: src/client/gpaste-client.c:176 msgid "password" msgstr "пароль" #: src/client/gpaste-client.c:176 msgid "add the name - password couple to the clipboard" msgstr "додати пару \"назва - пароль\" у буфер обміну" #. Translators: help for gpaste rename-password #: src/client/gpaste-client.c:178 msgid "old name" msgstr "стара назва" #: src/client/gpaste-client.c:178 msgid "new name" msgstr "нова назва" #: src/client/gpaste-client.c:178 msgid "rename the password" msgstr "перейменувати пароль" #. Translators: help for gpaste get #: src/client/gpaste-client.c:180 msgid "get the item from the history" msgstr "отримати об'єкт із історії" #. Translators: help for gpaste select #: src/client/gpaste-client.c:182 msgid "set the item from the history to the clipboard" msgstr "встановити об'єкт із історії у буфер обміну" #. Translators: help for gpaste replace #: src/client/gpaste-client.c:184 msgid "contents" msgstr "вміст" #: src/client/gpaste-client.c:184 msgid "" "replace the contents of the item from the history with the provided " "one" msgstr "замінити вміст об'єкту з історії на представлений об'єкт" #. Translators: help for gpaste merge #: src/client/gpaste-client.c:186 msgid "" "merge the items matching the UUIDs from the history and put the result in " "the clipboard" msgstr "" "злити об'єкти з однаковими UUID-ми з історії та відправити результат у буфер " "обміну" #: src/client/gpaste-client.c:188 msgid "set the item from the history as a password named " msgstr "встановити об'єкт з історії як пароль який називається " #. Translators: help for gpaste delete #: src/client/gpaste-client.c:190 msgid "delete item from the history" msgstr "видалити об'єкт з історії" #: src/client/gpaste-client.c:192 msgid "delete the password from the history" msgstr "видалити пароль з історії" #. Translators: help for gpaste file #: src/client/gpaste-client.c:194 msgid "path" msgstr "шлях" #: src/client/gpaste-client.c:194 msgid "put the content of the file at into the clipboard" msgstr "вставити вміст файлу за шляхом у буфер обміну" #. Translators: help for whatever | gpaste #: src/client/gpaste-client.c:196 msgid "whatever" msgstr "будь-що" #: src/client/gpaste-client.c:196 msgid "set the output of whatever to clipboard" msgstr "вставити вивід будь-чого у буфер обміну" #. Translators: help for gpaste empty #: src/client/gpaste-client.c:198 msgid "empty the history" msgstr "очистити історію" #. Translators: help for gpaste start #: src/client/gpaste-client.c:200 msgid "start tracking clipboard changes" msgstr "почати слідкувати за змінами у буфері обміну" #. Translators: help for gpaste stop #: src/client/gpaste-client.c:202 msgid "stop tracking clipboard changes" msgstr "зупинити слідкування за змінами у буфері обміну" #. Translators: help for gpaste quit #: src/client/gpaste-client.c:204 msgid "alias for stop" msgstr "псевдонім (alias) для зупинки" #. Translators: help for gpaste daemon-reexec #: src/client/gpaste-client.c:206 msgid "reexecute the daemon (after upgrading...)" msgstr "перезапустити даемон (після оновлення...)" #. Translators: help for gpaste preferences #: src/client/gpaste-client.c:208 msgid "launch the configuration tool" msgstr "запустити інструмент конфігурації" #. Translators: help for gpaste ui #: src/client/gpaste-client.c:210 msgid "launch the graphical tool" msgstr "запустити графічний інструмент" #. Translators: help for gpaste show-history #: src/client/gpaste-client.c:212 msgid "make the applet or extension display the history" msgstr "змусити щоб аплет або розширення відображало історію" #. Translators: help for gpaste upload #: src/client/gpaste-client.c:214 msgid "upload the item to a pastebin service" msgstr "завантажити об'єкт до сервісу pastebin" #. Translators: help for gpaste version #: src/client/gpaste-client.c:216 msgid "display the version" msgstr "відображає версію" #. Translators: help for gpaste daemon-version #: src/client/gpaste-client.c:218 msgid "display the daemon version" msgstr "відобразити версію даемона" #. Translators: help for gpaste help #: src/client/gpaste-client.c:220 msgid "display this help" msgstr "відобразити цю довідку" #. Translators: help for gpaste about #: src/client/gpaste-client.c:222 msgid "display the about dialog" msgstr "відобразити діалогове вікно \"Про GPaste\"" #: src/client/gpaste-client.c:225 #, c-format msgid "Convenience options:" msgstr "Опції для зручності:" #. Translators: help for --use-index #: src/client/gpaste-client.c:228 msgid "use the index of the item instead of its UUID" msgstr "використовувати індекс об'єкту замість його UUID" #: src/client/gpaste-client.c:231 #, c-format msgid "Display options:" msgstr "Опції відображення:" #. Translators: help for --oneline #: src/client/gpaste-client.c:234 msgid "display each item on only one line" msgstr "відображати кожний об'єкт тільки на одному рядку" #. Translators: help for --raw #: src/client/gpaste-client.c:236 msgid "display each item raw (without line numbers)" msgstr "відображати кожний об'єкт без обробки (без номеру рядку)" #. Translators: help for --reverse #: src/client/gpaste-client.c:238 msgid "display the items in reverse order" msgstr "відображати об'єкти у зворотньому порядку" #. Translators: help for --zero #: src/client/gpaste-client.c:240 msgid "use a NUL character instead of a new line betweean each item" msgstr "використовувати NUL символ замість нових рядків поміж кожного об'єкту" #: src/client/gpaste-client.c:243 #, c-format msgid "Merge options:" msgstr "Опції злиття:" #. Translators: help for --decoration #. Translators: help for --separator #: src/client/gpaste-client.c:246 src/client/gpaste-client.c:248 msgid "string" msgstr "рядок" #: src/client/gpaste-client.c:246 msgid "" "add the given decoration to the beginning and the end of each item before " "merging" msgstr "" "додати вказані декорації на початок та кінець кожного об'єкту перед зливанням" #: src/client/gpaste-client.c:248 msgid "add the given separator between each item when merging" msgstr "додати наданий роздільник поміж кожним об'єктом перед злиттям" #: src/client/gpaste-client.c:345 #, c-format msgid "Successfully reexecuted the daemon\n" msgstr "Вдало перезапущено даемон\n" #: src/client/gpaste-client.c:486 msgid "Cannot add non utf8 data as text." msgstr "Не можна додати не utf8 дані як текст." #: src/client/gpaste-client.c:796 src/ui/gpaste-ui-window.c:353 #: src/ui/gpaste-ui-window.c:354 msgid "Couldn't connect to GPaste daemon" msgstr "Не вдалося під'єднатися до GPaste даемону" #: src/daemon/gpaste-color-item.c:73 msgid "[Color]" msgstr "" #. Translators: strftime format for image timestamps. Rearrange to match your locale's date/time convention. #: src/daemon/gpaste-image-item.c:219 msgid "%m/%d/%y %T" msgstr "%d. %m. %y %T" #. Translators: Image item displayed in history. %d is width, %d is height, %s is the formatted date. #: src/daemon/gpaste-image-item.c:221 #, c-format msgid "[Image, %d x %d (%s)]" msgstr "[Зображення, %d x %d (%s)]" #: src/daemon/gpaste-make-password-keybinding.c:50 #, fuzzy msgid "Convert to Password" msgstr "перейменувати пароль" #. This is the prefix displayed in history to identify a password #: src/daemon/gpaste-password-item.c:65 msgid "Password" msgstr "Пароль" #: src/daemon/gpaste-pop-keybinding.c:64 #, fuzzy msgid "Pop from History" msgstr "Доступ до історії" #: src/daemon/gpaste-show-history-keybinding.c:49 #, fuzzy msgid "Show History" msgstr "Доступ до історії" #: src/daemon/gpaste-sync-clipboard-to-primary-keybinding.c:46 #, fuzzy msgid "Sync Clipboard to Primary" msgstr "Синхронізувати буфер обміну з головним виділенням" #: src/daemon/gpaste-sync-primary-to-clipboard-keybinding.c:46 #, fuzzy msgid "Sync Primary to Clipboard" msgstr "Синзронізувати головне виділення з буфером обміну" #: src/daemon/gpaste-ui-keybinding.c:43 msgid "Launch UI" msgstr "" #: src/daemon/gpaste-upload-keybinding.c:64 msgid "Upload to Pastebin" msgstr "" #: src/daemon/gpaste-uris-item.c:87 msgid "[Files] " msgstr "[Файли] " #: src/daemon/main.c:32 msgid "Stop signal received, exiting" msgstr "Отримано сигнал зупинки, виходимо" #: src/daemon/main.c:69 msgid "Could not acquire DBus name." msgstr "Не вдалося отримати назву DBus." #: src/gnome-shell/dummyHistoryItem.js:12 msgid "(Couldn't connect to GPaste daemon)" msgstr "(Не вдалося під'єднатися до GPaste даемона)" #: src/gnome-shell/dummyHistoryItem.js:17 msgid "(Empty)" msgstr "(Порожньо)" #: src/gnome-shell/dummyHistoryItem.js:22 msgid "(No result)" msgstr "(Немає результатів)" #: src/gnome-shell/emptyHistoryItem.js:14 msgid "Empty history" msgstr "Очистити історію" #: src/gnome-shell/stateSwitch.js:12 msgid "Track changes" msgstr "Слідкувати за змінами" #: src/gnome-shell/uiItem.js:14 msgid "Graphical tool" msgstr "Графічний інструмент" #: src/libgpaste/gpaste/gpaste-util.c:636 msgid "Could not create history dir" msgstr "Не вдалося створити теку для історії" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-macros.h:38 msgid "Failed to register the gtk application" msgstr "Не вдалося зареєструвати GTK додаток" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:108 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:119 msgid "General behaviour" msgstr "Загальна поведінка" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:121 #: src/ui/gpaste-ui-switch.c:93 msgid "Track clipboard changes" msgstr "Слідкувати за змінами буфера обміну" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:127 msgid "Close UI on select" msgstr "Зачиняти інтерфейс при обиранні" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:133 msgid "Open the UI window centered" msgstr "Відкривати вікно інтерфейсу центрованим" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:139 msgid "Save history" msgstr "Зберігати історію" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:150 msgid "Enable the gnome-shell extension" msgstr "Активувати розширення для оболонки" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:156 msgid "Sync the daemon state with the extension's one" msgstr "Синхронізувати стан даемону з розширенням" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:162 msgid "" "When enabled, the daemon automatically starts or stops tracking clipboard " "changes to match the GNOME Shell extension's enabled state" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:166 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:174 msgid "Clipboards synchronization" msgstr "Синхронізація буферу обміну" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:168 msgid "Primary selection affects history" msgstr "Головне виділення впливає на історію" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:174 msgid "Synchronize clipboard with primary selection" msgstr "Синхронізувати буфер обміну з головним виділенням" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:181 msgid "Optional features" msgstr "Додаткові функції" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:183 msgid "Trim items" msgstr "Обрізати об'єкти" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:189 msgid "Detect growing lines" msgstr "Виявляти зростаючи рядки" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:195 msgid "" "When enabled, if a new clipboard entry starts with the previous one, the " "previous entry is replaced instead of creating a new one" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:92 msgid "History settings" msgstr "Налаштування історії" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:103 msgid "Resources limits" msgstr "Обмеження ресурсів" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:120 msgid "Text limits" msgstr "Ліміти тексту" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:122 msgid "Min text item length" msgstr "Мінімальна довжина текстового об'єкту" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:129 msgid "Max text item length" msgstr "Максимальна довжина текстового об'єкту" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:137 msgid "Display settings" msgstr "Налаштування відображення" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:139 msgid "Max element size when displaying" msgstr "Максимальна кількість об'єктів для відображення" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:81 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:92 #, fuzzy msgid "Images settings" msgstr "Інтерфейс налаштувань" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:94 msgid "Images support" msgstr "Підтримка зображень" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:100 msgid "Image previews" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:106 msgid "Preview size" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:122 msgid "Keyboard shortcuts" msgstr "Клавіатурні скорочення" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:133 msgid "History access" msgstr "Доступ до історії" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:150 msgid "Active element manipulation" msgstr "Маніпулювання активними об'єктами" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-util.c:51 #: src/ui/gpaste-ui-edit-item.c:84 src/ui/gpaste-ui-new-item.c:66 #: src/ui/gpaste-ui-panel.c:311 msgid "Cancel" msgstr "Закрити" #. Translators: %s is the name of the history being emptied. #: src/libgpaste/gpaste-gtk4/gpaste-gtk-util.c:126 #, fuzzy, c-format msgid "Do you really want to empty \"%s\"?" msgstr "Ви дійсно хочете очистити історію?" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-util.c:127 #: src/ui/gpaste-ui-history.c:153 src/ui/gpaste-ui-history.c:428 #: src/ui/gpaste-ui-panel.c:517 msgid "Empty" msgstr "Очистити" #: src/ui/gpaste-ui.c:47 msgid "Clipboard management system" msgstr "" #: src/ui/gpaste-ui-delete-item.c:46 src/ui/gpaste-ui-panel.c:358 #: src/ui/gpaste-ui-panel.c:518 msgid "Delete" msgstr "Видалити" #: src/ui/gpaste-ui-edit-item.c:85 src/ui/gpaste-ui-edit-item.c:139 msgid "Edit" msgstr "Редагувати" #: src/ui/gpaste-ui-history.c:266 #, fuzzy msgid "No Results" msgstr "(Немає результатів)" #: src/ui/gpaste-ui-new-item.c:67 msgid "Add new item" msgstr "" #: src/ui/gpaste-ui-new-item.c:100 msgid "New item" msgstr "" #: src/ui/gpaste-ui-panel.c:307 msgid "Under which name do you want to backup this history?" msgstr "Яку назви ви хочете дати резервній копії цієї історії?" #: src/ui/gpaste-ui-panel.c:311 src/ui/gpaste-ui-panel.c:516 msgid "Backup" msgstr "Резервна копія" #. Translators: %s is the name of the history being deleted. #: src/ui/gpaste-ui-panel.c:357 #, fuzzy, c-format msgid "Are you sure you want to delete \"%s\"?" msgstr "Ви впевнені, що бажаєте видалити цю історію?" #: src/ui/gpaste-ui-panel.c:441 #, fuzzy msgid "Switch to history" msgstr "перемикнутися на іншу історію" #: src/ui/gpaste-ui-panel.c:448 msgid "Switch to" msgstr "Перемикнутися на" #: src/ui/gpaste-ui-reexec.c:45 msgid "Restart" msgstr "Перезавантажити" #: src/ui/gpaste-ui-reexec.c:45 msgid "Do you really want to restart the daemon?" msgstr "Ви дійсно хочете перезавантажити даемон?" #: src/ui/gpaste-ui-reexec.c:70 msgid "Restart the daemon" msgstr "Перезавантажити даемон" #: src/ui/gpaste-ui-search.c:23 msgid "Search" msgstr "Пошук" #: src/ui/gpaste-ui-settings.c:35 msgid "GPaste Settings" msgstr "Налаштування GPaste" #: src/ui/gpaste-ui-shortcuts-window.c:21 msgid "General" msgstr "Загальні" #: src/ui/gpaste-ui-switch.c:68 msgid "Stop" msgstr "Зупинити" #: src/ui/gpaste-ui-switch.c:68 msgid "Do you really want to stop tracking clipboard changes?" msgstr "Ви дійсно хочете припинити слідкування за змінами буферу обміну?" #: src/ui/gpaste-ui-upload-item.c:46 msgid "Upload" msgstr "Вивантажити" #: src/ui/gpaste-ui-window.c:303 msgid "Quit" msgstr "" #: src/ui/gpaste-ui-window.c:380 #, fuzzy msgid "Histories" msgstr "Доступ до історії" #: src/ui/gpaste-ui-window.c:381 #, fuzzy msgid "History" msgstr "Доступ до історії" #~ msgid "is already running." #~ msgstr "вже запущено." #~ msgid "Open UI window centered" #~ msgstr "Центрувати вікно інтерфейсу" #~ msgid "New" #~ msgstr "Новий об'єкт" Keruspe-GPaste-724def1/po/vi.po000066400000000000000000001305731521206431300163310ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the GPaste package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: GPaste\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-06-09 21:21+0200\n" "PO-Revision-Date: 2023-02-08 12:37+0000\n" "Last-Translator: Nghiêm Nguyễn \n" "Language-Team: Vietnamese \n" "Language: vi\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Weblate 4.16-dev\n" #: data/control-center/42-gpaste.control-center.xml.in:2 msgid "@GETTEXT_PACKAGE@" msgstr "" #: data/control-center/42-gpaste.control-center.xml.in:3 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:136 #: src/ui/gpaste-ui-shortcuts-window.c:24 msgid "Launch the graphical tool" msgstr "" #: data/control-center/42-gpaste.control-center.xml.in:4 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:153 #: src/ui/gpaste-ui-shortcuts-window.c:25 msgid "Mark the active item as being a password" msgstr "" #: data/control-center/42-gpaste.control-center.xml.in:5 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:167 #: src/ui/gpaste-ui-shortcuts-window.c:23 msgid "Delete the active item from history" msgstr "" #: data/control-center/42-gpaste.control-center.xml.in:6 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:143 #: src/ui/gpaste-ui-shortcuts-window.c:26 msgid "Display the history" msgstr "" #: data/control-center/42-gpaste.control-center.xml.in:7 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:177 #: src/ui/gpaste-ui-shortcuts-window.c:27 msgid "Sync the clipboard to the primary selection" msgstr "" #: data/control-center/42-gpaste.control-center.xml.in:8 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:184 #: src/ui/gpaste-ui-shortcuts-window.c:28 msgid "Sync the primary selection to the clipboard" msgstr "" #: data/control-center/42-gpaste.control-center.xml.in:9 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:160 #: src/ui/gpaste-ui-shortcuts-window.c:29 msgid "Upload the active item to a pastebin service" msgstr "" #: data/desktop/org.gnome.GPaste.Daemon.desktop.in.in:3 #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:3 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:6 msgid "GPaste" msgstr "GPaste" #: data/desktop/org.gnome.GPaste.Preferences.desktop.in.in:3 msgid "GPaste Preferences" msgstr "" #: data/desktop/org.gnome.GPaste.Preferences.desktop.in.in:4 msgid "Manage your GPaste preferences" msgstr "" #: data/desktop/org.gnome.GPaste.Preferences.desktop.in.in:5 #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:6 msgid "Clipboard;Manager;Settings;Preferences;Configuration;" msgstr "" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:4 msgid "Clipboard Manager" msgstr "" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:5 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:7 msgid "Manage your clipboard history" msgstr "Quản lý lịch sử bảng tạm cuả bạn" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:16 msgid "Preferences" msgstr "" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:20 #: src/gnome-shell/aboutItem.js:13 src/ui/gpaste-ui-about.c:38 msgid "About" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:7 msgid "Max size of an element when displaying it" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:8 msgid "" "The extra stuff of that element will be replaced by \"…\", and newlines by " "\" \" when displaying from the applet, 0 to disable." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:15 msgid "Do we detect and replace growing lines in history?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:16 msgid "" "By default, selecting \"Here is\", then \"Here is an example\" will create " "two entries in the history. With this feature enabled, the first one will be " "replaced by the second one." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:24 msgid "The name of the current history" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:25 msgid "The default name is \"history\"" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:32 msgid "Do we save the images copied to history, or only text?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:33 msgid "By default, we're saving only text" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:40 msgid "Show image previews in the history?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:41 msgid "By default, we show previews of images in the history" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:49 msgid "Size of image previews in pixels" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:50 msgid "Default size is 100 pixels" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:57 msgid "Do we close the UI after selecting an item?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:58 msgid "By default, we close it" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:65 msgid "Do we open the UI window centered?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:66 #, fuzzy msgid "By default, we open it where the mouse cursor is" msgstr "Mở GPaste khi đặt con trỏ chuột ở" #: data/gsettings/org.gnome.GPaste.gschema.xml:73 msgid "The keyboard shortcut to launch the graphical interface" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:74 msgid "" "By default, hitting ctrl + alt + g does that (\"G\"). An empty " "string here disables this functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:82 msgid "The keyboard shortcut to mark the active item as being a password" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:83 msgid "" "By default, hitting ctrl + alt + s will mark the active item as being a " "password (\"S\"). An empty string here disables this " "functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:92 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:146 msgid "Max displayed history size" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:93 msgid "Maximum number of items displayed in the history" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:101 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:105 msgid "Max history size" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:102 msgid "Maximum number of items in history" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:110 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:112 msgid "Max memory usage (MB)" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:111 msgid "Maximum amount of memory used to store contents" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:119 msgid "Max text item size" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:120 msgid "Maximum size of a text item. Anything out of this boundary is ignored." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:128 msgid "Min text item size" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:129 msgid "Minimum size of a text item. Anything out of this boundary is ignored." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:136 msgid "The keyboard shortcut to delete the first element in history" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:137 msgid "" "By default, hitting ctrl + alt + v does that (\"V\"). An empty " "string here disables this functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:145 msgid "Does the primary selection affects history?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:146 msgid "By default, only clipboard (ctrl+c) affects history." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:153 msgid "" "Do we save all versions of selected rich text (e.g. html) or just the plain " "text version?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:154 msgid "By default, we're saving all" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:161 msgid "Do we save the history from one session to another?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:162 msgid "By default, we're saving it" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:169 msgid "The keyboard shortcut to display the menu" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:170 msgid "" "By default, hitting ctrl + alt + h displays the menu (\"H\"). An " "empty string here disables this functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:178 msgid "The keyboard shortcut to sync the clipboard to the primary selection" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:179 msgid "" "By default, hitting ctrl + alt + o syncs them (\"P\"). An empty " "string here disables this functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:187 msgid "The keyboard shortcut to sync the primary selection to the clipboard" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:188 msgid "" "By default, hitting ctrl + alt + p syncs them (\"P\"). An empty " "string here disables this functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:196 msgid "Are the primary selection and the clipboard synchronized?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:197 msgid "By default, the primary selection and the clipboard are independent." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:204 msgid "Do we track the clipboard changes?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:205 msgid "By default, we're tracking those changes." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:212 msgid "" "Do we sync the daemon state with the gnome-shell extension's one? (disable " "the daemon when disabling the extension)" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:213 msgid "By default, the daemon state keeps unchanged" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:220 msgid "Do we trim the textual items before adding them to history?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:221 msgid "" "Trimming means removing all trailing and ending spaces. By default, we're " "letting them as-is." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:229 msgid "" "The keyboard shortcut to upload the first element in history to a pastebin " "service" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:230 msgid "" "By default, hitting ctrl + alt + u does that (\"U\"). An empty " "string here disables this functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:238 msgid "Do we prompt for confirmation when emptying a history?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:239 msgid "By default, we do as it's a destructive action" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:9 msgid "Marc-Antoine Perennou" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:17 msgid "" "GPaste is a clipboard managing system allowing you to track and manage your " "clipboard history in a highly customizable way." msgstr "" "GPaste là một hệ thống quản lý bảng tạm cho phép bạn theo dõi và quản lý " "lịch sử bảng tạm, theo một cách có thể dễ dàng tùy chỉnh." #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:20 msgid "" "GPaste provides you with a graphical tool allowing you to manage everything " "easily." msgstr "" "GPaste cung cấp cho bạn một giao diện cho phép bạn quản lý mọi thứ một cách " "dễ dàng." #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:27 msgid "The main UI" msgstr "Giao diện chính" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:31 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:35 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:39 msgid "The settings UI" msgstr "Giao diện cài đặt" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:51 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:78 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:90 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:100 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:120 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:133 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:143 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:152 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:161 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:180 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:197 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:205 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:213 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:231 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:239 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:247 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:255 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:263 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:287 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:295 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:303 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:311 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:319 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:327 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:335 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:343 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:352 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:361 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:379 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:387 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:395 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:403 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:421 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:429 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:438 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:447 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:456 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:464 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:485 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:493 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:501 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:509 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:517 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:533 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:541 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:549 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:557 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:573 msgid "This is a maintenance release. Changes:" msgstr "Đây là một bản phát hành bảo trì với những thay đổi:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:53 msgid "Fix building without the GNOME Shell extension (-Dgnome-shell=false)" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:54 msgid "" "Restore GTK deprecation version-gating and drop the unused build-time gjs " "dependency" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:55 msgid "Target GNOME Shell 50 in the extension" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:56 msgid "Bump the library soversions to reflect the API/ABI changes since 45.8" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:62 msgid "" "This is a major release porting GPaste to GTK 4 and libadwaita. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:64 msgid "Port the daemon, history UI and preferences to GTK 4 and libadwaita" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:65 msgid "Show image thumbnails in the history, with configurable preview size" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:66 msgid "" "Support global keyboard shortcuts on Wayland through the XDG GlobalShortcuts " "portal" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:67 msgid "Recognise copied colours as dedicated colour items" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:68 msgid "" "Give keybindings human-readable descriptions and install a daemon desktop " "file" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:69 msgid "Fix images sometimes being repeatedly re-added to the history" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:70 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:81 msgid "" "Fix keyboard shortcuts not triggering when NumLock and CapsLock are both " "active" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:71 msgid "" "Fix several crashes (search provider, UI lifetime, GNOME Shell extension) " "and memory leaks" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:72 msgid "Modernise the GNOME Shell extension to current conventions" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:80 msgid "Fix use-after-free crash in the GNOME Shell search provider" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:82 msgid "" "Fix memory leaks when re-copying history items and when rebinding shortcuts" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:83 msgid "Fix potential crash when enforcing a very small history size" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:84 msgid "Build: ship the GSettings schema as a static file" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:92 msgid "" "GNOME Shell extension now retries the daemon connection before giving up" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:93 msgid "Fix test crash when GrabAccelerators is not allowed" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:94 msgid "Build: simplify gsettings compilation for tests" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:102 msgid "Fix GC crash and signal leak when disabling the GNOME Shell extension" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:103 msgid "GNOME Shell extension now handles daemon connection failure gracefully" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:104 msgid "Fix crash when a history item has no value yet" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:105 msgid "Fix image files not being deleted when history items are removed" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:106 msgid "Fix image files stored in wrong directory" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:107 msgid "Fix keyboard focus being stolen by history items on hover" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:108 msgid "" "Fix key events incorrectly forwarded to search when another entry has focus" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:109 msgid "Fix signal loop when updating shortcut entries from settings" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:110 msgid "Fix default history item count not reset after history deletion" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:111 msgid "Enforce minimum window size to prevent unresizable state" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:112 msgid "Add descriptive tooltips for settings entries" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:113 msgid "Build: explicitly link libgpaste libraries against libc" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:114 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:127 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:137 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:146 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:155 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:164 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:174 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:225 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:267 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:281 #, fuzzy msgid "Translations updates" msgstr "Cập nhật bản dịch" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:122 msgid "" "Fix infinite Pango assertion loop that could fill disk when clipboard " "content contained tab characters" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:123 msgid "Various bug fixes and memory management improvements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:124 msgid "Daemon improvements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:125 msgid "GNOME Shell extension improvements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:126 msgid "GLib >= 2.76 is now required" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:135 #, fuzzy msgid "Support for gnome 50" msgstr "Biên dịch sang GNOME 43" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:136 #, fuzzy msgid "Support for gnome 49" msgstr "Biên dịch sang GNOME 43" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:145 #, fuzzy msgid "Support for gnome 48" msgstr "Biên dịch sang GNOME 43" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:154 #, fuzzy msgid "Support for gnome 47" msgstr "Biên dịch sang GNOME 43" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:163 #, fuzzy msgid "Support for gnome 46" msgstr "Biên dịch sang GNOME 43" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:170 #, fuzzy msgid "Stable release for GNOME 45. Changes:" msgstr "Bản phát hành đầu tiên cho Gnome 43. Gồm các thay đổi sau:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:172 #, fuzzy msgid "Port to gnome 45" msgstr "Biên dịch sang GNOME 43" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:173 msgid "Add setting to open ui window centered" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:182 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:199 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:233 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:289 msgid "Fix a bug leading to history with only one item" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:188 #, fuzzy msgid "First release for GNOME 44. Changes:" msgstr "Bản phát hành đầu tiên cho Gnome 43. Gồm các thay đổi sau:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:190 msgid "gcr 4 is now required" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:191 #, fuzzy msgid "Port to gnome 44" msgstr "Biên dịch sang GNOME 43" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:207 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:241 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:297 msgid "Avoid crash under heavy memory load" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:215 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:249 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:305 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:381 msgid "Respect --use-index when displaying history" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:221 msgid "First release for GNOME 43. Changes:" msgstr "Bản phát hành đầu tiên cho Gnome 43. Gồm các thay đổi sau:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:223 msgid "Port to GNOME 43" msgstr "Biên dịch sang GNOME 43" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:224 msgid "Internal preparation for gtk4 port" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:257 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:313 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:389 msgid "Open GPaste UI where the mouse pointer is" msgstr "Mở GPaste khi đặt con trỏ chuột ở" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:265 msgid "Fixes to the new preferences tool" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:266 msgid "Style fixes" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:273 msgid "First release for GNOME 42. Changes:" msgstr "Bản phát hành đầu tiên cho GNOME 42. Gồm các thay đổi:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:275 msgid "" "Old libgpaste replaced by a new minimal libgpaste-2 with no gtk dependency" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:276 msgid "New libgpaste-gtk3 for utils and settings ui" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:277 msgid "New libgpaste-gtk4 for utils and preferences ui" msgstr "libgpaste-gtk4 mới cho giao diện tiện ích và tùy chỉnh" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:278 msgid "New gtk4 based gpaste-preferences utility" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:279 msgid "Autotools are no longer supported" msgstr "Autotools không còn được hỗ trợ" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:280 msgid "Extension updated for gnome-shell 42" msgstr "Đã cập nhật tiện ích mở rộng cho GNOME-shell 42" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:321 msgid "fix the storage path for meson builds" msgstr "sửa đường dẫn lưu trữ cho các bản dựng meson" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:329 msgid "fix some race conditions in history handling" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:337 msgid "better fix crash when there is no history yet" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:345 msgid "fix crash when there is no history yet" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:346 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:355 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:364 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:373 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:397 msgid "translations update" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:354 msgid "fix gnome-shell exntesion when the daemon restarts" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:363 msgid "Fix keybindings for wayland" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:370 msgid "First release for GNOME 41. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:372 msgid "port to gnome-shell 41" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:405 msgid "fix a crash in memory usage checking" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:412 msgid "First release for GNOME 40. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:414 msgid "port to gnome-shell 40" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:415 msgid "placeholder for gnome-shell prefs" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:423 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:487 msgid "fix X11 keybinder outside of GNOME" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:431 msgid "better handling and reporting of invalid uuids passed to gpaste-client" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:432 msgid "" "gpaste-client now has a --use-index argument for several subcommands to use " "index instead of uuid" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:440 msgid "fix the make-password keybinding" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:441 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:450 msgid "updated translations" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:449 msgid "gnome-shell extension warning fixes" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:458 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:495 msgid "gnome-shell extension cosmetic updates" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:466 msgid "Disable images support by default (can be reenabled in preferences)" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:467 msgid "Search now includes passwords (using their names)" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:468 msgid "systemd integration enhancements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:474 msgid "First release for GNOME 3.38. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:476 msgid "Drop the Tracking DBus signal" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:477 msgid "Switch to uuids to identify items" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:478 msgid "Bump DBus interface to org.gnome.GPaste2" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:479 msgid "Update to gnome-shell 3.38.0" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:503 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:535 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:577 msgid "Fix activating items using Ctrl-Number in gnome-shell" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:511 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:543 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:576 msgid "Fix keybinding regrab with gnome-shell" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:519 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:551 msgid "Fix keybinding grab with gnome-shell" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:525 msgid "First release for GNOME 3.36. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:527 msgid "Update to gnome-shell 3.36.0" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:559 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:575 msgid "Compatibility with recent appstream-glib" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:565 msgid "First release for GNOME 3.34. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:567 msgid "Update to gnome-shell 3.34.0" msgstr "" #: src/client/gpaste-client.c:146 msgid "Couldn't spawn" msgstr "" #: src/client/gpaste-client.c:158 #, c-format msgid "Usage:\n" msgstr "" #. Translators: help for gpaste history #: src/client/gpaste-client.c:160 msgid "print the history with UUIDs" msgstr "" #. Translators: help for gpaste history-size #: src/client/gpaste-client.c:162 msgid "print the size of the history" msgstr "" #. Translators: help for gpaste get-history #: src/client/gpaste-client.c:164 msgid "get the name of the current history" msgstr "" #. Translators: help for gpaste backup-history #. Translators: help for gpaste switch-history #. Translators: help for gpaste delete-history #. Translators: help for gpaste add-password #. Translators: help for gpaste set-password #. Translators: help for gpaste delete-passworf #: src/client/gpaste-client.c:166 src/client/gpaste-client.c:168 #: src/client/gpaste-client.c:170 src/client/gpaste-client.c:176 #: src/client/gpaste-client.c:188 src/client/gpaste-client.c:192 msgid "name" msgstr "" #: src/client/gpaste-client.c:166 msgid "backup current history" msgstr "" #: src/client/gpaste-client.c:168 msgid "switch to another history" msgstr "" #: src/client/gpaste-client.c:170 msgid "delete a history" msgstr "" #. Translators: help for gpaste list-histories #: src/client/gpaste-client.c:172 msgid "list available histories" msgstr "" #. Translators: help for gpaste add #: src/client/gpaste-client.c:174 msgid "text" msgstr "" #: src/client/gpaste-client.c:174 msgid "set text to clipboard" msgstr "" #: src/client/gpaste-client.c:176 msgid "password" msgstr "" #: src/client/gpaste-client.c:176 msgid "add the name - password couple to the clipboard" msgstr "" #. Translators: help for gpaste rename-password #: src/client/gpaste-client.c:178 msgid "old name" msgstr "" #: src/client/gpaste-client.c:178 msgid "new name" msgstr "" #: src/client/gpaste-client.c:178 msgid "rename the password" msgstr "" #. Translators: help for gpaste get #: src/client/gpaste-client.c:180 msgid "get the item from the history" msgstr "" #. Translators: help for gpaste select #: src/client/gpaste-client.c:182 msgid "set the item from the history to the clipboard" msgstr "" #. Translators: help for gpaste replace #: src/client/gpaste-client.c:184 msgid "contents" msgstr "" #: src/client/gpaste-client.c:184 msgid "" "replace the contents of the item from the history with the provided " "one" msgstr "" #. Translators: help for gpaste merge #: src/client/gpaste-client.c:186 msgid "" "merge the items matching the UUIDs from the history and put the result in " "the clipboard" msgstr "" #: src/client/gpaste-client.c:188 msgid "set the item from the history as a password named " msgstr "" #. Translators: help for gpaste delete #: src/client/gpaste-client.c:190 msgid "delete item from the history" msgstr "" #: src/client/gpaste-client.c:192 msgid "delete the password from the history" msgstr "" #. Translators: help for gpaste file #: src/client/gpaste-client.c:194 msgid "path" msgstr "" #: src/client/gpaste-client.c:194 msgid "put the content of the file at into the clipboard" msgstr "" #. Translators: help for whatever | gpaste #: src/client/gpaste-client.c:196 msgid "whatever" msgstr "" #: src/client/gpaste-client.c:196 msgid "set the output of whatever to clipboard" msgstr "" #. Translators: help for gpaste empty #: src/client/gpaste-client.c:198 msgid "empty the history" msgstr "" #. Translators: help for gpaste start #: src/client/gpaste-client.c:200 msgid "start tracking clipboard changes" msgstr "" #. Translators: help for gpaste stop #: src/client/gpaste-client.c:202 msgid "stop tracking clipboard changes" msgstr "" #. Translators: help for gpaste quit #: src/client/gpaste-client.c:204 msgid "alias for stop" msgstr "" #. Translators: help for gpaste daemon-reexec #: src/client/gpaste-client.c:206 msgid "reexecute the daemon (after upgrading...)" msgstr "" #. Translators: help for gpaste preferences #: src/client/gpaste-client.c:208 msgid "launch the configuration tool" msgstr "" #. Translators: help for gpaste ui #: src/client/gpaste-client.c:210 msgid "launch the graphical tool" msgstr "" #. Translators: help for gpaste show-history #: src/client/gpaste-client.c:212 msgid "make the applet or extension display the history" msgstr "" #. Translators: help for gpaste upload #: src/client/gpaste-client.c:214 msgid "upload the item to a pastebin service" msgstr "" #. Translators: help for gpaste version #: src/client/gpaste-client.c:216 msgid "display the version" msgstr "" #. Translators: help for gpaste daemon-version #: src/client/gpaste-client.c:218 msgid "display the daemon version" msgstr "" #. Translators: help for gpaste help #: src/client/gpaste-client.c:220 msgid "display this help" msgstr "" #. Translators: help for gpaste about #: src/client/gpaste-client.c:222 msgid "display the about dialog" msgstr "" #: src/client/gpaste-client.c:225 #, c-format msgid "Convenience options:" msgstr "" #. Translators: help for --use-index #: src/client/gpaste-client.c:228 msgid "use the index of the item instead of its UUID" msgstr "" #: src/client/gpaste-client.c:231 #, c-format msgid "Display options:" msgstr "" #. Translators: help for --oneline #: src/client/gpaste-client.c:234 msgid "display each item on only one line" msgstr "" #. Translators: help for --raw #: src/client/gpaste-client.c:236 msgid "display each item raw (without line numbers)" msgstr "" #. Translators: help for --reverse #: src/client/gpaste-client.c:238 msgid "display the items in reverse order" msgstr "" #. Translators: help for --zero #: src/client/gpaste-client.c:240 msgid "use a NUL character instead of a new line betweean each item" msgstr "" #: src/client/gpaste-client.c:243 #, c-format msgid "Merge options:" msgstr "" #. Translators: help for --decoration #. Translators: help for --separator #: src/client/gpaste-client.c:246 src/client/gpaste-client.c:248 msgid "string" msgstr "" #: src/client/gpaste-client.c:246 msgid "" "add the given decoration to the beginning and the end of each item before " "merging" msgstr "" #: src/client/gpaste-client.c:248 msgid "add the given separator between each item when merging" msgstr "" #: src/client/gpaste-client.c:345 #, c-format msgid "Successfully reexecuted the daemon\n" msgstr "" #: src/client/gpaste-client.c:486 msgid "Cannot add non utf8 data as text." msgstr "" #: src/client/gpaste-client.c:796 src/ui/gpaste-ui-window.c:353 #: src/ui/gpaste-ui-window.c:354 msgid "Couldn't connect to GPaste daemon" msgstr "" #: src/daemon/gpaste-color-item.c:73 msgid "[Color]" msgstr "" #. Translators: strftime format for image timestamps. Rearrange to match your locale's date/time convention. #: src/daemon/gpaste-image-item.c:219 msgid "%m/%d/%y %T" msgstr "" #. Translators: Image item displayed in history. %d is width, %d is height, %s is the formatted date. #: src/daemon/gpaste-image-item.c:221 #, c-format msgid "[Image, %d x %d (%s)]" msgstr "" #: src/daemon/gpaste-make-password-keybinding.c:50 msgid "Convert to Password" msgstr "" #. This is the prefix displayed in history to identify a password #: src/daemon/gpaste-password-item.c:65 msgid "Password" msgstr "" #: src/daemon/gpaste-pop-keybinding.c:64 msgid "Pop from History" msgstr "" #: src/daemon/gpaste-show-history-keybinding.c:49 msgid "Show History" msgstr "" #: src/daemon/gpaste-sync-clipboard-to-primary-keybinding.c:46 msgid "Sync Clipboard to Primary" msgstr "" #: src/daemon/gpaste-sync-primary-to-clipboard-keybinding.c:46 msgid "Sync Primary to Clipboard" msgstr "" #: src/daemon/gpaste-ui-keybinding.c:43 msgid "Launch UI" msgstr "" #: src/daemon/gpaste-upload-keybinding.c:64 msgid "Upload to Pastebin" msgstr "" #: src/daemon/gpaste-uris-item.c:87 msgid "[Files] " msgstr "" #: src/daemon/main.c:32 msgid "Stop signal received, exiting" msgstr "" #: src/daemon/main.c:69 msgid "Could not acquire DBus name." msgstr "" #: src/gnome-shell/dummyHistoryItem.js:12 msgid "(Couldn't connect to GPaste daemon)" msgstr "" #: src/gnome-shell/dummyHistoryItem.js:17 msgid "(Empty)" msgstr "" #: src/gnome-shell/dummyHistoryItem.js:22 msgid "(No result)" msgstr "" #: src/gnome-shell/emptyHistoryItem.js:14 msgid "Empty history" msgstr "" #: src/gnome-shell/stateSwitch.js:12 msgid "Track changes" msgstr "" #: src/gnome-shell/uiItem.js:14 msgid "Graphical tool" msgstr "" #: src/libgpaste/gpaste/gpaste-util.c:636 msgid "Could not create history dir" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-macros.h:38 msgid "Failed to register the gtk application" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:108 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:119 msgid "General behaviour" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:121 #: src/ui/gpaste-ui-switch.c:93 msgid "Track clipboard changes" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:127 msgid "Close UI on select" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:133 msgid "Open the UI window centered" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:139 msgid "Save history" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:150 msgid "Enable the gnome-shell extension" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:156 msgid "Sync the daemon state with the extension's one" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:162 msgid "" "When enabled, the daemon automatically starts or stops tracking clipboard " "changes to match the GNOME Shell extension's enabled state" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:166 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:174 msgid "Clipboards synchronization" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:168 msgid "Primary selection affects history" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:174 msgid "Synchronize clipboard with primary selection" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:181 msgid "Optional features" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:183 msgid "Trim items" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:189 msgid "Detect growing lines" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:195 msgid "" "When enabled, if a new clipboard entry starts with the previous one, the " "previous entry is replaced instead of creating a new one" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:92 msgid "History settings" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:103 msgid "Resources limits" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:120 msgid "Text limits" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:122 msgid "Min text item length" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:129 msgid "Max text item length" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:137 msgid "Display settings" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:139 msgid "Max element size when displaying" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:81 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:92 #, fuzzy msgid "Images settings" msgstr "Giao diện cài đặt" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:94 msgid "Images support" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:100 msgid "Image previews" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:106 msgid "Preview size" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:122 msgid "Keyboard shortcuts" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:133 msgid "History access" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:150 msgid "Active element manipulation" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-util.c:51 #: src/ui/gpaste-ui-edit-item.c:84 src/ui/gpaste-ui-new-item.c:66 #: src/ui/gpaste-ui-panel.c:311 msgid "Cancel" msgstr "" #. Translators: %s is the name of the history being emptied. #: src/libgpaste/gpaste-gtk4/gpaste-gtk-util.c:126 #, c-format msgid "Do you really want to empty \"%s\"?" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-util.c:127 #: src/ui/gpaste-ui-history.c:153 src/ui/gpaste-ui-history.c:428 #: src/ui/gpaste-ui-panel.c:517 msgid "Empty" msgstr "" #: src/ui/gpaste-ui.c:47 msgid "Clipboard management system" msgstr "" #: src/ui/gpaste-ui-delete-item.c:46 src/ui/gpaste-ui-panel.c:358 #: src/ui/gpaste-ui-panel.c:518 msgid "Delete" msgstr "" #: src/ui/gpaste-ui-edit-item.c:85 src/ui/gpaste-ui-edit-item.c:139 msgid "Edit" msgstr "" #: src/ui/gpaste-ui-history.c:266 msgid "No Results" msgstr "" #: src/ui/gpaste-ui-new-item.c:67 msgid "Add new item" msgstr "" #: src/ui/gpaste-ui-new-item.c:100 msgid "New item" msgstr "" #: src/ui/gpaste-ui-panel.c:307 msgid "Under which name do you want to backup this history?" msgstr "" #: src/ui/gpaste-ui-panel.c:311 src/ui/gpaste-ui-panel.c:516 msgid "Backup" msgstr "" #. Translators: %s is the name of the history being deleted. #: src/ui/gpaste-ui-panel.c:357 #, c-format msgid "Are you sure you want to delete \"%s\"?" msgstr "" #: src/ui/gpaste-ui-panel.c:441 msgid "Switch to history" msgstr "" #: src/ui/gpaste-ui-panel.c:448 msgid "Switch to" msgstr "" #: src/ui/gpaste-ui-reexec.c:45 msgid "Restart" msgstr "" #: src/ui/gpaste-ui-reexec.c:45 msgid "Do you really want to restart the daemon?" msgstr "" #: src/ui/gpaste-ui-reexec.c:70 msgid "Restart the daemon" msgstr "" #: src/ui/gpaste-ui-search.c:23 msgid "Search" msgstr "" #: src/ui/gpaste-ui-settings.c:35 msgid "GPaste Settings" msgstr "" #: src/ui/gpaste-ui-shortcuts-window.c:21 msgid "General" msgstr "" #: src/ui/gpaste-ui-switch.c:68 msgid "Stop" msgstr "" #: src/ui/gpaste-ui-switch.c:68 msgid "Do you really want to stop tracking clipboard changes?" msgstr "" #: src/ui/gpaste-ui-upload-item.c:46 msgid "Upload" msgstr "" #: src/ui/gpaste-ui-window.c:303 msgid "Quit" msgstr "" #: src/ui/gpaste-ui-window.c:380 msgid "Histories" msgstr "" #: src/ui/gpaste-ui-window.c:381 msgid "History" msgstr "" Keruspe-GPaste-724def1/po/zh_CN.po000066400000000000000000001473601521206431300167160ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Marc-Antoine Perennou # This file is distributed under the same license as the gpaste package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: gpaste 3.38.5\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-06-09 21:21+0200\n" "PO-Revision-Date: 2026-02-27 19:09+0000\n" "Last-Translator: ayasa520 \n" "Language-Team: Chinese (Simplified Han script) \n" "Language: zh_CN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Weblate 5.16.1-dev\n" #: data/control-center/42-gpaste.control-center.xml.in:2 msgid "@GETTEXT_PACKAGE@" msgstr "@GETTEXT_PACKAGE@" #: data/control-center/42-gpaste.control-center.xml.in:3 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:136 #: src/ui/gpaste-ui-shortcuts-window.c:24 msgid "Launch the graphical tool" msgstr "启动界面" #: data/control-center/42-gpaste.control-center.xml.in:4 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:153 #: src/ui/gpaste-ui-shortcuts-window.c:25 msgid "Mark the active item as being a password" msgstr "标记激活项为密码" #: data/control-center/42-gpaste.control-center.xml.in:5 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:167 #: src/ui/gpaste-ui-shortcuts-window.c:23 msgid "Delete the active item from history" msgstr "删除激活项" #: data/control-center/42-gpaste.control-center.xml.in:6 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:143 #: src/ui/gpaste-ui-shortcuts-window.c:26 msgid "Display the history" msgstr "显示记录" #: data/control-center/42-gpaste.control-center.xml.in:7 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:177 #: src/ui/gpaste-ui-shortcuts-window.c:27 msgid "Sync the clipboard to the primary selection" msgstr "同步剪切板到主选择项" #: data/control-center/42-gpaste.control-center.xml.in:8 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:184 #: src/ui/gpaste-ui-shortcuts-window.c:28 msgid "Sync the primary selection to the clipboard" msgstr "同步主选择项到剪切板" #: data/control-center/42-gpaste.control-center.xml.in:9 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:160 #: src/ui/gpaste-ui-shortcuts-window.c:29 msgid "Upload the active item to a pastebin service" msgstr "将活动项上传到pastebin服务" #: data/desktop/org.gnome.GPaste.Daemon.desktop.in.in:3 #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:3 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:6 msgid "GPaste" msgstr "GPaste" #: data/desktop/org.gnome.GPaste.Preferences.desktop.in.in:3 msgid "GPaste Preferences" msgstr "GPaste 首选项" #: data/desktop/org.gnome.GPaste.Preferences.desktop.in.in:4 msgid "Manage your GPaste preferences" msgstr "管理你的 GPaste 首选项" #: data/desktop/org.gnome.GPaste.Preferences.desktop.in.in:5 #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:6 msgid "Clipboard;Manager;Settings;Preferences;Configuration;" msgstr "剪切板;管理;设置;首选项;配置;" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:4 #, fuzzy msgid "Clipboard Manager" msgstr "跟踪剪切板变化" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:5 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:7 msgid "Manage your clipboard history" msgstr "管理你的剪切板记录" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:16 #, fuzzy msgid "Preferences" msgstr "GPaste 首选项" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:20 #: src/gnome-shell/aboutItem.js:13 src/ui/gpaste-ui-about.c:38 msgid "About" msgstr "关于" #: data/gsettings/org.gnome.GPaste.gschema.xml:7 msgid "Max size of an element when displaying it" msgstr "显示项的最大尺寸" #: data/gsettings/org.gnome.GPaste.gschema.xml:8 msgid "" "The extra stuff of that element will be replaced by \"…\", and newlines by " "\" \" when displaying from the applet, 0 to disable." msgstr "" "当在applet显示时,项的额外内容会被 \"…\" 替换, 新行会被空格替换,值为0则禁" "用。" #: data/gsettings/org.gnome.GPaste.gschema.xml:15 msgid "Do we detect and replace growing lines in history?" msgstr "如果新项是在前一项的基础上增加,那要以新换旧吗?" #: data/gsettings/org.gnome.GPaste.gschema.xml:16 msgid "" "By default, selecting \"Here is\", then \"Here is an example\" will create " "two entries in the history. With this feature enabled, the first one will be " "replaced by the second one." msgstr "" "默认时,选择“Here is”和“Here is an example”会在记录里面显示两个项,当这个功能" "被启用,第一个会被第二个替换。" #: data/gsettings/org.gnome.GPaste.gschema.xml:24 msgid "The name of the current history" msgstr "最经记录名" #: data/gsettings/org.gnome.GPaste.gschema.xml:25 msgid "The default name is \"history\"" msgstr "默认名为history" #: data/gsettings/org.gnome.GPaste.gschema.xml:32 msgid "Do we save the images copied to history, or only text?" msgstr "你要保存被剪切板的图片到记录里还是只需要保存文本就行?" #: data/gsettings/org.gnome.GPaste.gschema.xml:33 msgid "By default, we're saving only text" msgstr "默认时,GPaste只会保存文本到记录里" #: data/gsettings/org.gnome.GPaste.gschema.xml:40 msgid "Show image previews in the history?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:41 msgid "By default, we show previews of images in the history" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:49 msgid "Size of image previews in pixels" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:50 msgid "Default size is 100 pixels" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:57 msgid "Do we close the UI after selecting an item?" msgstr "选择一项后要关闭GPaste界面吗?" #: data/gsettings/org.gnome.GPaste.gschema.xml:58 msgid "By default, we close it" msgstr "默认时,我们会关闭界面" #: data/gsettings/org.gnome.GPaste.gschema.xml:65 msgid "Do we open the UI window centered?" msgstr "我们是否以居中方式打开 UI 窗口?" #: data/gsettings/org.gnome.GPaste.gschema.xml:66 msgid "By default, we open it where the mouse cursor is" msgstr "默认情况下,我们在鼠标光标所在的位置打开它" #: data/gsettings/org.gnome.GPaste.gschema.xml:73 msgid "The keyboard shortcut to launch the graphical interface" msgstr "启动界面的快捷键" #: data/gsettings/org.gnome.GPaste.gschema.xml:74 msgid "" "By default, hitting ctrl + alt + g does that (\"G\"). An empty " "string here disables this functionnality." msgstr "" "默认时,Ctrl+Alt+g快捷键(即G)会启动GPaste界面,如果这里的值为空," "这个功能就被禁用。" #: data/gsettings/org.gnome.GPaste.gschema.xml:82 msgid "The keyboard shortcut to mark the active item as being a password" msgstr "让激活项变为密码的快捷键" #: data/gsettings/org.gnome.GPaste.gschema.xml:83 msgid "" "By default, hitting ctrl + alt + s will mark the active item as being a " "password (\"S\"). An empty string here disables this " "functionnality." msgstr "" "默认时,Ctrl+Alt+S快捷键(即S)会把当前的激活项变为密码。如果这里" "的值为空,这个功能就被禁用。" #: data/gsettings/org.gnome.GPaste.gschema.xml:92 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:146 msgid "Max displayed history size" msgstr "显示记录数" #: data/gsettings/org.gnome.GPaste.gschema.xml:93 msgid "Maximum number of items displayed in the history" msgstr "最多显示几条记录" #: data/gsettings/org.gnome.GPaste.gschema.xml:101 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:105 msgid "Max history size" msgstr "最大的记录数" #: data/gsettings/org.gnome.GPaste.gschema.xml:102 msgid "Maximum number of items in history" msgstr "最多记录多少项" #: data/gsettings/org.gnome.GPaste.gschema.xml:110 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:112 msgid "Max memory usage (MB)" msgstr "GPaste 最多能够使用的内存大小(MB)" #: data/gsettings/org.gnome.GPaste.gschema.xml:111 msgid "Maximum amount of memory used to store contents" msgstr "GPaste存储记录所能使用的内存大小" #: data/gsettings/org.gnome.GPaste.gschema.xml:119 msgid "Max text item size" msgstr "每项文本的最大长度" #: data/gsettings/org.gnome.GPaste.gschema.xml:120 msgid "Maximum size of a text item. Anything out of this boundary is ignored." msgstr "文本项的最大长度,文本内容超过会不被记录。" #: data/gsettings/org.gnome.GPaste.gschema.xml:128 msgid "Min text item size" msgstr "每项文本的最小长度" #: data/gsettings/org.gnome.GPaste.gschema.xml:129 msgid "Minimum size of a text item. Anything out of this boundary is ignored." msgstr "文本项的最小长度,文本内容太少会不被记录。" #: data/gsettings/org.gnome.GPaste.gschema.xml:136 msgid "The keyboard shortcut to delete the first element in history" msgstr "“删除第一项”的快捷键" #: data/gsettings/org.gnome.GPaste.gschema.xml:137 msgid "" "By default, hitting ctrl + alt + v does that (\"V\"). An empty " "string here disables this functionnality." msgstr "" "默认时Ctrl+Alt+v快捷键(即V)会删除第一项,此处内容为空则该功能被" "禁用。" #: data/gsettings/org.gnome.GPaste.gschema.xml:145 msgid "Does the primary selection affects history?" msgstr "将选择的内容添加到记录?" #: data/gsettings/org.gnome.GPaste.gschema.xml:146 msgid "By default, only clipboard (ctrl+c) affects history." msgstr "默认时,你按下Ctrl+C,GPaste才会把选择的内容添加到记录。" #: data/gsettings/org.gnome.GPaste.gschema.xml:153 msgid "" "Do we save all versions of selected rich text (e.g. html) or just the plain " "text version?" msgstr "获取富文本格式(例如html)还是只获取富文本的内容?" #: data/gsettings/org.gnome.GPaste.gschema.xml:154 msgid "By default, we're saving all" msgstr "默认时,获取富文本" #: data/gsettings/org.gnome.GPaste.gschema.xml:161 msgid "Do we save the history from one session to another?" msgstr "同步session的记录吗?" #: data/gsettings/org.gnome.GPaste.gschema.xml:162 msgid "By default, we're saving it" msgstr "默认时,会同步" #: data/gsettings/org.gnome.GPaste.gschema.xml:169 msgid "The keyboard shortcut to display the menu" msgstr "显示记录的快捷键" #: data/gsettings/org.gnome.GPaste.gschema.xml:170 msgid "" "By default, hitting ctrl + alt + h displays the menu (\"H\"). An " "empty string here disables this functionnality." msgstr "默认时,Ctrl+Alt+h快捷键(即H)显示记录,此处为空则禁用。" #: data/gsettings/org.gnome.GPaste.gschema.xml:178 msgid "The keyboard shortcut to sync the clipboard to the primary selection" msgstr "将选中内容替换为剪切板内容的快捷键" #: data/gsettings/org.gnome.GPaste.gschema.xml:179 msgid "" "By default, hitting ctrl + alt + o syncs them (\"P\"). An empty " "string here disables this functionnality." msgstr "" "默认时,Ctrl+Alt+o快捷键(即P)会将选中内容替换为剪切板内容此处为" "空则禁用。" #: data/gsettings/org.gnome.GPaste.gschema.xml:187 msgid "The keyboard shortcut to sync the primary selection to the clipboard" msgstr "将选中内容放置到剪切板记录的快捷键" #: data/gsettings/org.gnome.GPaste.gschema.xml:188 msgid "" "By default, hitting ctrl + alt + p syncs them (\"P\"). An empty " "string here disables this functionnality." msgstr "" "默认时,Ctrl+Alt+p快捷键(即P)会将选中内容放置到剪切板记录此处为" "空则禁用。" #: data/gsettings/org.gnome.GPaste.gschema.xml:196 msgid "Are the primary selection and the clipboard synchronized?" msgstr "将选中内容放置到剪切板记录?" #: data/gsettings/org.gnome.GPaste.gschema.xml:197 msgid "By default, the primary selection and the clipboard are independent." msgstr "默认时,选中内容不会被放置到记录里。" #: data/gsettings/org.gnome.GPaste.gschema.xml:204 msgid "Do we track the clipboard changes?" msgstr "跟踪剪切板变化?" #: data/gsettings/org.gnome.GPaste.gschema.xml:205 msgid "By default, we're tracking those changes." msgstr "默认时,剪切板的内容都会被放置到记录里。" #: data/gsettings/org.gnome.GPaste.gschema.xml:212 msgid "" "Do we sync the daemon state with the gnome-shell extension's one? (disable " "the daemon when disabling the extension)" msgstr "" "与gnome-shell的守护进程状态同步?(gnome-shell扩展被禁用时守护进程也会被停" "止)" #: data/gsettings/org.gnome.GPaste.gschema.xml:213 msgid "By default, the daemon state keeps unchanged" msgstr "默认时,不与gnome-shell扩展的守护进程状态同步" #: data/gsettings/org.gnome.GPaste.gschema.xml:220 msgid "Do we trim the textual items before adding them to history?" msgstr "文本被添加到记录前,要将它的两边空白去除吗?" #: data/gsettings/org.gnome.GPaste.gschema.xml:221 msgid "" "Trimming means removing all trailing and ending spaces. By default, we're " "letting them as-is." msgstr "默认时,添加到记录前会去除首尾空白。" #: data/gsettings/org.gnome.GPaste.gschema.xml:229 msgid "" "The keyboard shortcut to upload the first element in history to a pastebin " "service" msgstr "“上传第一项到pastebin服务”的快捷键" #: data/gsettings/org.gnome.GPaste.gschema.xml:230 msgid "" "By default, hitting ctrl + alt + u does that (\"U\"). An empty " "string here disables this functionnality." msgstr "" "默认时,Ctrl+Alt+u快捷键(即U)会上传第一项到pastebin服务,此处为" "空则禁用。" #: data/gsettings/org.gnome.GPaste.gschema.xml:238 msgid "Do we prompt for confirmation when emptying a history?" msgstr "清空记录时要弹出提示吗?" #: data/gsettings/org.gnome.GPaste.gschema.xml:239 msgid "By default, we do as it's a destructive action" msgstr "默认时,做出提示以防止你不小心清空记录" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:9 msgid "Marc-Antoine Perennou" msgstr "Marc-Antoine Perennou" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:17 msgid "" "GPaste is a clipboard managing system allowing you to track and manage your " "clipboard history in a highly customizable way." msgstr "GPaste是一个可以让你高度定制的剪切板记录管理系统。" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:20 msgid "" "GPaste provides you with a graphical tool allowing you to manage everything " "easily." msgstr "GPaste可以让你通过界面轻而易举地管理所有剪切板记录。" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:27 msgid "The main UI" msgstr "主界面" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:31 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:35 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:39 msgid "The settings UI" msgstr "设置界面" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:51 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:78 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:90 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:100 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:120 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:133 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:143 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:152 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:161 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:180 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:197 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:205 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:213 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:231 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:239 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:247 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:255 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:263 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:287 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:295 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:303 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:311 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:319 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:327 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:335 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:343 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:352 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:361 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:379 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:387 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:395 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:403 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:421 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:429 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:438 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:447 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:456 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:464 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:485 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:493 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:501 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:509 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:517 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:533 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:541 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:549 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:557 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:573 msgid "This is a maintenance release. Changes:" msgstr "这是一个维护版本。更改如下:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:53 msgid "Fix building without the GNOME Shell extension (-Dgnome-shell=false)" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:54 msgid "" "Restore GTK deprecation version-gating and drop the unused build-time gjs " "dependency" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:55 msgid "Target GNOME Shell 50 in the extension" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:56 msgid "Bump the library soversions to reflect the API/ABI changes since 45.8" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:62 msgid "" "This is a major release porting GPaste to GTK 4 and libadwaita. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:64 msgid "Port the daemon, history UI and preferences to GTK 4 and libadwaita" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:65 msgid "Show image thumbnails in the history, with configurable preview size" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:66 msgid "" "Support global keyboard shortcuts on Wayland through the XDG GlobalShortcuts " "portal" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:67 msgid "Recognise copied colours as dedicated colour items" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:68 msgid "" "Give keybindings human-readable descriptions and install a daemon desktop " "file" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:69 msgid "Fix images sometimes being repeatedly re-added to the history" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:70 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:81 msgid "" "Fix keyboard shortcuts not triggering when NumLock and CapsLock are both " "active" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:71 msgid "" "Fix several crashes (search provider, UI lifetime, GNOME Shell extension) " "and memory leaks" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:72 msgid "Modernise the GNOME Shell extension to current conventions" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:80 msgid "Fix use-after-free crash in the GNOME Shell search provider" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:82 msgid "" "Fix memory leaks when re-copying history items and when rebinding shortcuts" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:83 msgid "Fix potential crash when enforcing a very small history size" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:84 msgid "Build: ship the GSettings schema as a static file" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:92 msgid "" "GNOME Shell extension now retries the daemon connection before giving up" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:93 msgid "Fix test crash when GrabAccelerators is not allowed" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:94 msgid "Build: simplify gsettings compilation for tests" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:102 msgid "Fix GC crash and signal leak when disabling the GNOME Shell extension" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:103 msgid "GNOME Shell extension now handles daemon connection failure gracefully" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:104 #, fuzzy msgid "Fix crash when a history item has no value yet" msgstr "修复没有历史记录时的崩溃" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:105 msgid "Fix image files not being deleted when history items are removed" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:106 msgid "Fix image files stored in wrong directory" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:107 #, fuzzy msgid "Fix keyboard focus being stolen by history items on hover" msgstr "修复了导致只有一个项目的历史记录的错误" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:108 msgid "" "Fix key events incorrectly forwarded to search when another entry has focus" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:109 msgid "Fix signal loop when updating shortcut entries from settings" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:110 msgid "Fix default history item count not reset after history deletion" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:111 msgid "Enforce minimum window size to prevent unresizable state" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:112 msgid "Add descriptive tooltips for settings entries" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:113 msgid "Build: explicitly link libgpaste libraries against libc" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:114 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:127 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:137 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:146 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:155 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:164 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:174 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:225 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:267 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:281 msgid "Translations updates" msgstr "更新翻译" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:122 msgid "" "Fix infinite Pango assertion loop that could fill disk when clipboard " "content contained tab characters" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:123 msgid "Various bug fixes and memory management improvements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:124 msgid "Daemon improvements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:125 msgid "GNOME Shell extension improvements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:126 #, fuzzy msgid "GLib >= 2.76 is now required" msgstr "现在需要 gcr 4" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:135 #, fuzzy msgid "Support for gnome 50" msgstr "对 gnome 46 的支持" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:136 #, fuzzy msgid "Support for gnome 49" msgstr "对 gnome 46 的支持" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:145 #, fuzzy msgid "Support for gnome 48" msgstr "对 gnome 46 的支持" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:154 #, fuzzy msgid "Support for gnome 47" msgstr "对 gnome 46 的支持" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:163 msgid "Support for gnome 46" msgstr "对 gnome 46 的支持" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:170 msgid "Stable release for GNOME 45. Changes:" msgstr "用于 GNOME 45 的稳定版本发布。变化:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:172 msgid "Port to gnome 45" msgstr "移植到 gnome 45" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:173 msgid "Add setting to open ui window centered" msgstr "添加设置,使 UI 窗口居中打开" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:182 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:199 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:233 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:289 msgid "Fix a bug leading to history with only one item" msgstr "修复了导致只有一个项目的历史记录的错误" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:188 msgid "First release for GNOME 44. Changes:" msgstr "GNOME 44的首次发布。变化:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:190 msgid "gcr 4 is now required" msgstr "现在需要 gcr 4" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:191 msgid "Port to gnome 44" msgstr "移植到 gnome-shell 44" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:207 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:241 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:297 msgid "Avoid crash under heavy memory load" msgstr "避免在繁重的内存负载下崩溃" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:215 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:249 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:305 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:381 msgid "Respect --use-index when displaying history" msgstr "在显示历史时,Respect --use-index" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:221 msgid "First release for GNOME 43. Changes:" msgstr "首个 GNOME 43 版本。更改如下:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:223 msgid "Port to GNOME 43" msgstr "移植到 GNOME 43" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:224 msgid "Internal preparation for gtk4 port" msgstr "gtk4 移植内部准备工作" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:257 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:313 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:389 msgid "Open GPaste UI where the mouse pointer is" msgstr "在鼠标指针所在处打开 GPaste 用户界面" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:265 msgid "Fixes to the new preferences tool" msgstr "修复新选项工具的问题" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:266 msgid "Style fixes" msgstr "样式修复" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:273 msgid "First release for GNOME 42. Changes:" msgstr "GNOME 42 下发行的首个版本。更改如下:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:275 msgid "" "Old libgpaste replaced by a new minimal libgpaste-2 with no gtk dependency" msgstr "用不依赖 gtk 的新的最小 libgpaste-2 替代了旧的 libgpaste" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:276 msgid "New libgpaste-gtk3 for utils and settings ui" msgstr "新的 libgpaste-gtk3 用于 utils 和设置界面" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:277 msgid "New libgpaste-gtk4 for utils and preferences ui" msgstr "新的 libgpaste-gtk4 用于 utils 和设置界面" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:278 msgid "New gtk4 based gpaste-preferences utility" msgstr "新的基于 gtk4 的 gpaste-preferences 工具" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:279 msgid "Autotools are no longer supported" msgstr "不再支持 Autotools" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:280 msgid "Extension updated for gnome-shell 42" msgstr "为 gnome-shell 42 更新了扩展" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:321 msgid "fix the storage path for meson builds" msgstr "修复 meson 构建的存储路径" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:329 msgid "fix some race conditions in history handling" msgstr "修复历史记录处理方面的某些竞态条件" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:337 msgid "better fix crash when there is no history yet" msgstr "更好修复尚无历史记录时的崩溃" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:345 msgid "fix crash when there is no history yet" msgstr "修复没有历史记录时的崩溃" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:346 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:355 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:364 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:373 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:397 msgid "translations update" msgstr "更新翻译" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:354 msgid "fix gnome-shell exntesion when the daemon restarts" msgstr "修复守护进程重启时 gnome-shell 扩展的问题" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:363 msgid "Fix keybindings for wayland" msgstr "修复 Wayland 模式下的键绑定" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:370 msgid "First release for GNOME 41. Changes:" msgstr "GNOME 41 下发行的首个版本。更改如下:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:372 msgid "port to gnome-shell 41" msgstr "移植到 gnome-shell 41" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:405 msgid "fix a crash in memory usage checking" msgstr "修复内存使用检查的一处崩溃" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:412 msgid "First release for GNOME 40. Changes:" msgstr "GNOME 40 下发行的首个版本。更改如下:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:414 msgid "port to gnome-shell 40" msgstr "移植到 gnome-shell 40" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:415 msgid "placeholder for gnome-shell prefs" msgstr "gnome-shell 首选项的占位符" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:423 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:487 msgid "fix X11 keybinder outside of GNOME" msgstr "修复了 GNOME 外的 X11 keybinder" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:431 msgid "better handling and reporting of invalid uuids passed to gpaste-client" msgstr "无效的uuid被传递到gpaste-client时最佳的处理和反馈" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:432 msgid "" "gpaste-client now has a --use-index argument for several subcommands to use " "index instead of uuid" msgstr "" "当前gpaste-client拥有一个子命令的--use-index参数以方便使用索引来代替uuid" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:440 msgid "fix the make-password keybinding" msgstr "修复make-password快捷键" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:441 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:450 msgid "updated translations" msgstr "更新翻译" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:449 msgid "gnome-shell extension warning fixes" msgstr "gnome-shell扩展的warning被修复" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:458 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:495 msgid "gnome-shell extension cosmetic updates" msgstr "gnome-shell扩展cosmetic更新" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:466 msgid "Disable images support by default (can be reenabled in preferences)" msgstr "默认禁用图片(可以在首选项中重新启用)" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:467 msgid "Search now includes passwords (using their names)" msgstr "搜索现在包括了密码(使用密码名)" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:468 msgid "systemd integration enhancements" msgstr "systemd集成增强功能" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:474 msgid "First release for GNOME 3.38. Changes:" msgstr "首次发行GNOME 3.38的更改如下:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:476 msgid "Drop the Tracking DBus signal" msgstr "去除跟踪DBus的信号" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:477 msgid "Switch to uuids to identify items" msgstr "将标识符项切换到uuid" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:478 msgid "Bump DBus interface to org.gnome.GPaste2" msgstr "将DBus接口连接到org.gnome.GPaste2" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:479 msgid "Update to gnome-shell 3.38.0" msgstr "更新到gnome-shell 3.38.0" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:503 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:535 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:577 msgid "Fix activating items using Ctrl-Number in gnome-shell" msgstr "使用 Ctrl-数字 来修复gnome-shell的激活项" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:511 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:543 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:576 msgid "Fix keybinding regrab with gnome-shell" msgstr "重新修复gnome-shell的快捷键" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:519 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:551 msgid "Fix keybinding grab with gnome-shell" msgstr "重新修复gnome-shell的快捷键" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:525 msgid "First release for GNOME 3.36. Changes:" msgstr "首次发行GNOME 3.36。更改如下:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:527 msgid "Update to gnome-shell 3.36.0" msgstr "更新到gnome-shell 3.36.0" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:559 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:575 msgid "Compatibility with recent appstream-glib" msgstr "兼容最近的appstream-glib" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:565 msgid "First release for GNOME 3.34. Changes:" msgstr "首次发行GNOME 3.34。更改如下:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:567 msgid "Update to gnome-shell 3.34.0" msgstr "更新到gnome-shell 3.34.0" #: src/client/gpaste-client.c:146 msgid "Couldn't spawn" msgstr "无法自动进行" #: src/client/gpaste-client.c:158 #, c-format msgid "Usage:\n" msgstr "使用:\n" #. Translators: help for gpaste history #: src/client/gpaste-client.c:160 msgid "print the history with UUIDs" msgstr "打印历史记录(带 UUID)" #. Translators: help for gpaste history-size #: src/client/gpaste-client.c:162 msgid "print the size of the history" msgstr "输出记录的大小" #. Translators: help for gpaste get-history #: src/client/gpaste-client.c:164 msgid "get the name of the current history" msgstr "获取当前记录名" #. Translators: help for gpaste backup-history #. Translators: help for gpaste switch-history #. Translators: help for gpaste delete-history #. Translators: help for gpaste add-password #. Translators: help for gpaste set-password #. Translators: help for gpaste delete-passworf #: src/client/gpaste-client.c:166 src/client/gpaste-client.c:168 #: src/client/gpaste-client.c:170 src/client/gpaste-client.c:176 #: src/client/gpaste-client.c:188 src/client/gpaste-client.c:192 msgid "name" msgstr "名称(名)" #: src/client/gpaste-client.c:166 msgid "backup current history" msgstr "备份当前记录" #: src/client/gpaste-client.c:168 msgid "switch to another history" msgstr "切换到另一个记录" #: src/client/gpaste-client.c:170 msgid "delete a history" msgstr "删除记录" #. Translators: help for gpaste list-histories #: src/client/gpaste-client.c:172 msgid "list available histories" msgstr "列出可用记录" #. Translators: help for gpaste add #: src/client/gpaste-client.c:174 msgid "text" msgstr "文本" #: src/client/gpaste-client.c:174 msgid "set text to clipboard" msgstr "保存文本到剪切板" #: src/client/gpaste-client.c:176 msgid "password" msgstr "密码" #: src/client/gpaste-client.c:176 msgid "add the name - password couple to the clipboard" msgstr "添加“名称 - 密码”到剪切板" #. Translators: help for gpaste rename-password #: src/client/gpaste-client.c:178 msgid "old name" msgstr "旧名称" #: src/client/gpaste-client.c:178 msgid "new name" msgstr "新名称" #: src/client/gpaste-client.c:178 msgid "rename the password" msgstr "更改密码名称" #. Translators: help for gpaste get #: src/client/gpaste-client.c:180 msgid "get the item from the history" msgstr "通过uuid从记录获取项" #. Translators: help for gpaste select #: src/client/gpaste-client.c:182 msgid "set the item from the history to the clipboard" msgstr "通过uuid将项从记录放置到剪切板" #. Translators: help for gpaste replace #: src/client/gpaste-client.c:184 msgid "contents" msgstr "内容" #: src/client/gpaste-client.c:184 msgid "" "replace the contents of the item from the history with the provided " "one" msgstr "通过uuid和内容替换记录中的项" #. Translators: help for gpaste merge #: src/client/gpaste-client.c:186 msgid "" "merge the items matching the UUIDs from the history and put the result in " "the clipboard" msgstr "合并与历史记录中的 UUID 匹配的项,并将结果放在剪贴板中" #: src/client/gpaste-client.c:188 msgid "set the item from the history as a password named " msgstr "通过uuid来设置记录中的密码名称" #. Translators: help for gpaste delete #: src/client/gpaste-client.c:190 msgid "delete item from the history" msgstr "通过uuid删除记录中的项" #: src/client/gpaste-client.c:192 msgid "delete the password from the history" msgstr "删除记录中的密码名称" #. Translators: help for gpaste file #: src/client/gpaste-client.c:194 msgid "path" msgstr "路径" #: src/client/gpaste-client.c:194 msgid "put the content of the file at into the clipboard" msgstr "将路径的文件内容放置到剪切板" #. Translators: help for whatever | gpaste #: src/client/gpaste-client.c:196 msgid "whatever" msgstr "凡" #: src/client/gpaste-client.c:196 msgid "set the output of whatever to clipboard" msgstr "将任何输出内容都放置到剪切板" #. Translators: help for gpaste empty #: src/client/gpaste-client.c:198 msgid "empty the history" msgstr "清空记录" #. Translators: help for gpaste start #: src/client/gpaste-client.c:200 msgid "start tracking clipboard changes" msgstr "开始跟踪剪切板变化" #. Translators: help for gpaste stop #: src/client/gpaste-client.c:202 msgid "stop tracking clipboard changes" msgstr "结束跟踪剪切板变化" #. Translators: help for gpaste quit #: src/client/gpaste-client.c:204 msgid "alias for stop" msgstr "“结束”的别称" #. Translators: help for gpaste daemon-reexec #: src/client/gpaste-client.c:206 msgid "reexecute the daemon (after upgrading...)" msgstr "重启守护进程(更新之后. . .)" #. Translators: help for gpaste preferences #: src/client/gpaste-client.c:208 msgid "launch the configuration tool" msgstr "启动配置工具" #. Translators: help for gpaste ui #: src/client/gpaste-client.c:210 msgid "launch the graphical tool" msgstr "启动界面" #. Translators: help for gpaste show-history #: src/client/gpaste-client.c:212 msgid "make the applet or extension display the history" msgstr "让applet或扩展显示历史" #. Translators: help for gpaste upload #: src/client/gpaste-client.c:214 msgid "upload the item to a pastebin service" msgstr "上传项到pastebin服务" #. Translators: help for gpaste version #: src/client/gpaste-client.c:216 msgid "display the version" msgstr "显示版本" #. Translators: help for gpaste daemon-version #: src/client/gpaste-client.c:218 msgid "display the daemon version" msgstr "显示守护进程版本" #. Translators: help for gpaste help #: src/client/gpaste-client.c:220 msgid "display this help" msgstr "显示“帮助”" #. Translators: help for gpaste about #: src/client/gpaste-client.c:222 msgid "display the about dialog" msgstr "显示“关于”" #: src/client/gpaste-client.c:225 #, c-format msgid "Convenience options:" msgstr "快捷选项:" #. Translators: help for --use-index #: src/client/gpaste-client.c:228 msgid "use the index of the item instead of its UUID" msgstr "使用项目的索引而不是它的 UUID" #: src/client/gpaste-client.c:231 #, c-format msgid "Display options:" msgstr "显示选项:" #. Translators: help for --oneline #: src/client/gpaste-client.c:234 msgid "display each item on only one line" msgstr "每项只显示一行" #. Translators: help for --raw #: src/client/gpaste-client.c:236 msgid "display each item raw (without line numbers)" msgstr "显示每项的原内容(无行号)" #. Translators: help for --reverse #: src/client/gpaste-client.c:238 msgid "display the items in reverse order" msgstr "反序显示" #. Translators: help for --zero #: src/client/gpaste-client.c:240 msgid "use a NUL character instead of a new line betweean each item" msgstr "每项都使用NUL代替换行" #: src/client/gpaste-client.c:243 #, c-format msgid "Merge options:" msgstr "合并选项:" #. Translators: help for --decoration #. Translators: help for --separator #: src/client/gpaste-client.c:246 src/client/gpaste-client.c:248 msgid "string" msgstr "字符串" #: src/client/gpaste-client.c:246 msgid "" "add the given decoration to the beginning and the end of each item before " "merging" msgstr "添加既定内容到每个将合并项" #: src/client/gpaste-client.c:248 msgid "add the given separator between each item when merging" msgstr "添加既定分割符到每个将合并项" #: src/client/gpaste-client.c:345 #, c-format msgid "Successfully reexecuted the daemon\n" msgstr "重启守护进程成功\n" #: src/client/gpaste-client.c:486 msgid "Cannot add non utf8 data as text." msgstr "无法添加非utf8内容。" #: src/client/gpaste-client.c:796 src/ui/gpaste-ui-window.c:353 #: src/ui/gpaste-ui-window.c:354 msgid "Couldn't connect to GPaste daemon" msgstr "无法连接GPaste守护进程" #: src/daemon/gpaste-color-item.c:73 msgid "[Color]" msgstr "" #. Translators: strftime format for image timestamps. Rearrange to match your locale's date/time convention. #: src/daemon/gpaste-image-item.c:219 msgid "%m/%d/%y %T" msgstr "%m/%d/%y %T" #. Translators: Image item displayed in history. %d is width, %d is height, %s is the formatted date. #: src/daemon/gpaste-image-item.c:221 #, c-format msgid "[Image, %d x %d (%s)]" msgstr "[Image, %d x %d (%s)]" #: src/daemon/gpaste-make-password-keybinding.c:50 #, fuzzy msgid "Convert to Password" msgstr "更改密码名称" #. This is the prefix displayed in history to identify a password #: src/daemon/gpaste-password-item.c:65 msgid "Password" msgstr "密码" #: src/daemon/gpaste-pop-keybinding.c:64 #, fuzzy msgid "Pop from History" msgstr "记录访问" #: src/daemon/gpaste-show-history-keybinding.c:49 #, fuzzy msgid "Show History" msgstr "记录访问" #: src/daemon/gpaste-sync-clipboard-to-primary-keybinding.c:46 #, fuzzy msgid "Sync Clipboard to Primary" msgstr "同步剪切板到主选择项" #: src/daemon/gpaste-sync-primary-to-clipboard-keybinding.c:46 #, fuzzy msgid "Sync Primary to Clipboard" msgstr "同步主选择项到剪切板" #: src/daemon/gpaste-ui-keybinding.c:43 msgid "Launch UI" msgstr "" #: src/daemon/gpaste-upload-keybinding.c:64 msgid "Upload to Pastebin" msgstr "" #: src/daemon/gpaste-uris-item.c:87 msgid "[Files] " msgstr "[Files] " #: src/daemon/main.c:32 msgid "Stop signal received, exiting" msgstr "收到退出信号,退出中" #: src/daemon/main.c:69 msgid "Could not acquire DBus name." msgstr "无法获取DBus名。" #: src/gnome-shell/dummyHistoryItem.js:12 msgid "(Couldn't connect to GPaste daemon)" msgstr "(无法连接GPaste守护进程)" #: src/gnome-shell/dummyHistoryItem.js:17 msgid "(Empty)" msgstr "(空)" #: src/gnome-shell/dummyHistoryItem.js:22 msgid "(No result)" msgstr "(无内容)" #: src/gnome-shell/emptyHistoryItem.js:14 msgid "Empty history" msgstr "清空记录" #: src/gnome-shell/stateSwitch.js:12 msgid "Track changes" msgstr "跟踪变化" #: src/gnome-shell/uiItem.js:14 msgid "Graphical tool" msgstr "图形工具" #: src/libgpaste/gpaste/gpaste-util.c:636 msgid "Could not create history dir" msgstr "无法新建记录目录" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-macros.h:38 msgid "Failed to register the gtk application" msgstr "注册gtk应用失败" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:108 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:119 msgid "General behaviour" msgstr "常用" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:121 #: src/ui/gpaste-ui-switch.c:93 msgid "Track clipboard changes" msgstr "跟踪剪切板变化" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:127 msgid "Close UI on select" msgstr "选择后关闭界面" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:133 msgid "Open the UI window centered" msgstr "打开居中的UI窗口" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:139 msgid "Save history" msgstr "保存记录" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:150 msgid "Enable the gnome-shell extension" msgstr "启用gnome-shell扩展" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:156 msgid "Sync the daemon state with the extension's one" msgstr "与gnome-shell扩展的守护进程状态同步" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:162 msgid "" "When enabled, the daemon automatically starts or stops tracking clipboard " "changes to match the GNOME Shell extension's enabled state" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:166 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:174 msgid "Clipboards synchronization" msgstr "剪贴板同步" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:168 msgid "Primary selection affects history" msgstr "将选择的内容放置到记录" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:174 msgid "Synchronize clipboard with primary selection" msgstr "将选择的内容放置到剪切板" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:181 msgid "Optional features" msgstr "可选功能" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:183 msgid "Trim items" msgstr "去除首尾空白" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:189 msgid "Detect growing lines" msgstr "检测“在上一个项上添加”的新项" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:195 msgid "" "When enabled, if a new clipboard entry starts with the previous one, the " "previous entry is replaced instead of creating a new one" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:92 msgid "History settings" msgstr "记录设置" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:103 msgid "Resources limits" msgstr "资源限制" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:120 msgid "Text limits" msgstr "文本限制" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:122 msgid "Min text item length" msgstr "文本最短长度(过短不记录)" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:129 msgid "Max text item length" msgstr "文本最长长度(过长不记录)" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:137 msgid "Display settings" msgstr "显示设置" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:139 msgid "Max element size when displaying" msgstr "最多显示项数" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:81 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:92 #, fuzzy msgid "Images settings" msgstr "设置界面" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:94 msgid "Images support" msgstr "支持图片记录" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:100 msgid "Image previews" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:106 msgid "Preview size" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:122 msgid "Keyboard shortcuts" msgstr "快捷键" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:133 msgid "History access" msgstr "记录访问" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:150 msgid "Active element manipulation" msgstr "活跃元素操控" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-util.c:51 #: src/ui/gpaste-ui-edit-item.c:84 src/ui/gpaste-ui-new-item.c:66 #: src/ui/gpaste-ui-panel.c:311 msgid "Cancel" msgstr "取消" #. Translators: %s is the name of the history being emptied. #: src/libgpaste/gpaste-gtk4/gpaste-gtk-util.c:126 #, fuzzy, c-format msgid "Do you really want to empty \"%s\"?" msgstr "清空记录?" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-util.c:127 #: src/ui/gpaste-ui-history.c:153 src/ui/gpaste-ui-history.c:428 #: src/ui/gpaste-ui-panel.c:517 msgid "Empty" msgstr "清空" #: src/ui/gpaste-ui.c:47 msgid "Clipboard management system" msgstr "" #: src/ui/gpaste-ui-delete-item.c:46 src/ui/gpaste-ui-panel.c:358 #: src/ui/gpaste-ui-panel.c:518 msgid "Delete" msgstr "删除" #: src/ui/gpaste-ui-edit-item.c:85 src/ui/gpaste-ui-edit-item.c:139 msgid "Edit" msgstr "编辑" #: src/ui/gpaste-ui-history.c:266 #, fuzzy msgid "No Results" msgstr "(无内容)" #: src/ui/gpaste-ui-new-item.c:67 msgid "Add new item" msgstr "" #: src/ui/gpaste-ui-new-item.c:100 msgid "New item" msgstr "" #: src/ui/gpaste-ui-panel.c:307 msgid "Under which name do you want to backup this history?" msgstr "要保存哪一个记录?" #: src/ui/gpaste-ui-panel.c:311 src/ui/gpaste-ui-panel.c:516 msgid "Backup" msgstr "备份" #. Translators: %s is the name of the history being deleted. #: src/ui/gpaste-ui-panel.c:357 #, fuzzy, c-format msgid "Are you sure you want to delete \"%s\"?" msgstr "删除记录?" #: src/ui/gpaste-ui-panel.c:441 #, fuzzy msgid "Switch to history" msgstr "切换到另一个记录" #: src/ui/gpaste-ui-panel.c:448 msgid "Switch to" msgstr "切换到" #: src/ui/gpaste-ui-reexec.c:45 msgid "Restart" msgstr "重启" #: src/ui/gpaste-ui-reexec.c:45 msgid "Do you really want to restart the daemon?" msgstr "重启守护进程?" #: src/ui/gpaste-ui-reexec.c:70 msgid "Restart the daemon" msgstr "重启守护进程" #: src/ui/gpaste-ui-search.c:23 msgid "Search" msgstr "搜索" #: src/ui/gpaste-ui-settings.c:35 msgid "GPaste Settings" msgstr "GPaste设置" #: src/ui/gpaste-ui-shortcuts-window.c:21 msgid "General" msgstr "常用" #: src/ui/gpaste-ui-switch.c:68 msgid "Stop" msgstr "停止" #: src/ui/gpaste-ui-switch.c:68 msgid "Do you really want to stop tracking clipboard changes?" msgstr "跟踪剪切板?" #: src/ui/gpaste-ui-upload-item.c:46 msgid "Upload" msgstr "上传" #: src/ui/gpaste-ui-window.c:303 msgid "Quit" msgstr "退出" #: src/ui/gpaste-ui-window.c:380 #, fuzzy msgid "Histories" msgstr "记录访问" #: src/ui/gpaste-ui-window.c:381 #, fuzzy msgid "History" msgstr "记录访问" #~ msgid "is already running." #~ msgstr "准备运行。" #~ msgid "Open UI window centered" #~ msgstr "打开居中的UI窗口" #~ msgid "New" #~ msgstr "新建" #~ msgid "Keyboard Shortcuts" #~ msgstr "快捷键" #~ msgid "About GPaste" #~ msgstr "关于GPaste" Keruspe-GPaste-724def1/po/zh_Hant.po000066400000000000000000001330741521206431300173050ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Marc-Antoine Perennou # This file is distributed under the same license as the gpaste package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: gpaste 3.40.2\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-06-09 21:21+0200\n" "PO-Revision-Date: 2024-06-18 10:09+0000\n" "Last-Translator: hugoalh \n" "Language-Team: Chinese (Traditional) \n" "Language: zh_Hant\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Weblate 5.6-dev\n" #: data/control-center/42-gpaste.control-center.xml.in:2 msgid "@GETTEXT_PACKAGE@" msgstr "@GETTEXT_PACKAGE@" #: data/control-center/42-gpaste.control-center.xml.in:3 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:136 #: src/ui/gpaste-ui-shortcuts-window.c:24 msgid "Launch the graphical tool" msgstr "" #: data/control-center/42-gpaste.control-center.xml.in:4 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:153 #: src/ui/gpaste-ui-shortcuts-window.c:25 msgid "Mark the active item as being a password" msgstr "" #: data/control-center/42-gpaste.control-center.xml.in:5 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:167 #: src/ui/gpaste-ui-shortcuts-window.c:23 msgid "Delete the active item from history" msgstr "" #: data/control-center/42-gpaste.control-center.xml.in:6 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:143 #: src/ui/gpaste-ui-shortcuts-window.c:26 msgid "Display the history" msgstr "顯示歷史記錄" #: data/control-center/42-gpaste.control-center.xml.in:7 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:177 #: src/ui/gpaste-ui-shortcuts-window.c:27 msgid "Sync the clipboard to the primary selection" msgstr "" #: data/control-center/42-gpaste.control-center.xml.in:8 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:184 #: src/ui/gpaste-ui-shortcuts-window.c:28 msgid "Sync the primary selection to the clipboard" msgstr "" #: data/control-center/42-gpaste.control-center.xml.in:9 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:160 #: src/ui/gpaste-ui-shortcuts-window.c:29 msgid "Upload the active item to a pastebin service" msgstr "" #: data/desktop/org.gnome.GPaste.Daemon.desktop.in.in:3 #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:3 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:6 msgid "GPaste" msgstr "GPaste" #: data/desktop/org.gnome.GPaste.Preferences.desktop.in.in:3 msgid "GPaste Preferences" msgstr "GPaste 偏好設定" #: data/desktop/org.gnome.GPaste.Preferences.desktop.in.in:4 msgid "Manage your GPaste preferences" msgstr "" #: data/desktop/org.gnome.GPaste.Preferences.desktop.in.in:5 #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:6 msgid "Clipboard;Manager;Settings;Preferences;Configuration;" msgstr "" "Clipboard;Manager;Settings;Preferences;Configuration;剪貼簿;管理器;設定;偏好" "設定;配置;" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:4 #, fuzzy msgid "Clipboard Manager" msgstr "追蹤剪貼簿變化" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:5 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:7 msgid "Manage your clipboard history" msgstr "管理你的剪貼簿歷史記錄" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:16 #, fuzzy msgid "Preferences" msgstr "GPaste 偏好設定" #: data/desktop/org.gnome.GPaste.Ui.desktop.in.in:20 #: src/gnome-shell/aboutItem.js:13 src/ui/gpaste-ui-about.c:38 msgid "About" msgstr "關於" #: data/gsettings/org.gnome.GPaste.gschema.xml:7 msgid "Max size of an element when displaying it" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:8 msgid "" "The extra stuff of that element will be replaced by \"…\", and newlines by " "\" \" when displaying from the applet, 0 to disable." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:15 msgid "Do we detect and replace growing lines in history?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:16 msgid "" "By default, selecting \"Here is\", then \"Here is an example\" will create " "two entries in the history. With this feature enabled, the first one will be " "replaced by the second one." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:24 msgid "The name of the current history" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:25 msgid "The default name is \"history\"" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:32 msgid "Do we save the images copied to history, or only text?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:33 msgid "By default, we're saving only text" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:40 msgid "Show image previews in the history?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:41 msgid "By default, we show previews of images in the history" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:49 msgid "Size of image previews in pixels" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:50 msgid "Default size is 100 pixels" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:57 msgid "Do we close the UI after selecting an item?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:58 msgid "By default, we close it" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:65 msgid "Do we open the UI window centered?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:66 msgid "By default, we open it where the mouse cursor is" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:73 msgid "The keyboard shortcut to launch the graphical interface" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:74 msgid "" "By default, hitting ctrl + alt + g does that (\"G\"). An empty " "string here disables this functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:82 msgid "The keyboard shortcut to mark the active item as being a password" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:83 msgid "" "By default, hitting ctrl + alt + s will mark the active item as being a " "password (\"S\"). An empty string here disables this " "functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:92 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:146 msgid "Max displayed history size" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:93 msgid "Maximum number of items displayed in the history" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:101 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:105 msgid "Max history size" msgstr "最大歷史記錄大小" #: data/gsettings/org.gnome.GPaste.gschema.xml:102 msgid "Maximum number of items in history" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:110 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:112 msgid "Max memory usage (MB)" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:111 msgid "Maximum amount of memory used to store contents" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:119 msgid "Max text item size" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:120 msgid "Maximum size of a text item. Anything out of this boundary is ignored." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:128 msgid "Min text item size" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:129 msgid "Minimum size of a text item. Anything out of this boundary is ignored." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:136 msgid "The keyboard shortcut to delete the first element in history" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:137 msgid "" "By default, hitting ctrl + alt + v does that (\"V\"). An empty " "string here disables this functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:145 msgid "Does the primary selection affects history?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:146 msgid "By default, only clipboard (ctrl+c) affects history." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:153 msgid "" "Do we save all versions of selected rich text (e.g. html) or just the plain " "text version?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:154 msgid "By default, we're saving all" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:161 msgid "Do we save the history from one session to another?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:162 msgid "By default, we're saving it" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:169 msgid "The keyboard shortcut to display the menu" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:170 msgid "" "By default, hitting ctrl + alt + h displays the menu (\"H\"). An " "empty string here disables this functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:178 msgid "The keyboard shortcut to sync the clipboard to the primary selection" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:179 msgid "" "By default, hitting ctrl + alt + o syncs them (\"P\"). An empty " "string here disables this functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:187 msgid "The keyboard shortcut to sync the primary selection to the clipboard" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:188 msgid "" "By default, hitting ctrl + alt + p syncs them (\"P\"). An empty " "string here disables this functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:196 msgid "Are the primary selection and the clipboard synchronized?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:197 msgid "By default, the primary selection and the clipboard are independent." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:204 msgid "Do we track the clipboard changes?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:205 msgid "By default, we're tracking those changes." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:212 msgid "" "Do we sync the daemon state with the gnome-shell extension's one? (disable " "the daemon when disabling the extension)" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:213 msgid "By default, the daemon state keeps unchanged" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:220 msgid "Do we trim the textual items before adding them to history?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:221 msgid "" "Trimming means removing all trailing and ending spaces. By default, we're " "letting them as-is." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:229 msgid "" "The keyboard shortcut to upload the first element in history to a pastebin " "service" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:230 msgid "" "By default, hitting ctrl + alt + u does that (\"U\"). An empty " "string here disables this functionnality." msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:238 msgid "Do we prompt for confirmation when emptying a history?" msgstr "" #: data/gsettings/org.gnome.GPaste.gschema.xml:239 msgid "By default, we do as it's a destructive action" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:9 msgid "Marc-Antoine Perennou" msgstr "Marc-Antoine Perennou" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:17 msgid "" "GPaste is a clipboard managing system allowing you to track and manage your " "clipboard history in a highly customizable way." msgstr "" "GPaste 是一個剪貼簿管理系統,允許你可以高度自訂方式以追蹤和管理你的剪貼簿歷史" "記錄。" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:20 msgid "" "GPaste provides you with a graphical tool allowing you to manage everything " "easily." msgstr "GPaste 提供一個簡單易用的界面來讓您容易的管理。" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:27 msgid "The main UI" msgstr "主介面" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:31 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:35 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:39 msgid "The settings UI" msgstr "設定介面" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:51 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:78 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:90 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:100 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:120 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:133 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:143 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:152 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:161 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:180 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:197 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:205 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:213 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:231 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:239 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:247 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:255 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:263 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:287 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:295 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:303 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:311 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:319 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:327 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:335 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:343 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:352 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:361 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:379 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:387 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:395 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:403 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:421 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:429 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:438 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:447 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:456 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:464 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:485 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:493 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:501 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:509 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:517 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:533 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:541 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:549 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:557 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:573 msgid "This is a maintenance release. Changes:" msgstr "這是一個維護更新。更新內容:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:53 msgid "Fix building without the GNOME Shell extension (-Dgnome-shell=false)" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:54 msgid "" "Restore GTK deprecation version-gating and drop the unused build-time gjs " "dependency" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:55 msgid "Target GNOME Shell 50 in the extension" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:56 msgid "Bump the library soversions to reflect the API/ABI changes since 45.8" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:62 msgid "" "This is a major release porting GPaste to GTK 4 and libadwaita. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:64 msgid "Port the daemon, history UI and preferences to GTK 4 and libadwaita" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:65 msgid "Show image thumbnails in the history, with configurable preview size" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:66 msgid "" "Support global keyboard shortcuts on Wayland through the XDG GlobalShortcuts " "portal" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:67 msgid "Recognise copied colours as dedicated colour items" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:68 msgid "" "Give keybindings human-readable descriptions and install a daemon desktop " "file" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:69 msgid "Fix images sometimes being repeatedly re-added to the history" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:70 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:81 msgid "" "Fix keyboard shortcuts not triggering when NumLock and CapsLock are both " "active" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:71 msgid "" "Fix several crashes (search provider, UI lifetime, GNOME Shell extension) " "and memory leaks" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:72 msgid "Modernise the GNOME Shell extension to current conventions" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:80 msgid "Fix use-after-free crash in the GNOME Shell search provider" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:82 msgid "" "Fix memory leaks when re-copying history items and when rebinding shortcuts" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:83 msgid "Fix potential crash when enforcing a very small history size" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:84 msgid "Build: ship the GSettings schema as a static file" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:92 msgid "" "GNOME Shell extension now retries the daemon connection before giving up" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:93 msgid "Fix test crash when GrabAccelerators is not allowed" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:94 msgid "Build: simplify gsettings compilation for tests" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:102 msgid "Fix GC crash and signal leak when disabling the GNOME Shell extension" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:103 msgid "GNOME Shell extension now handles daemon connection failure gracefully" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:104 #, fuzzy msgid "Fix crash when a history item has no value yet" msgstr "修復沒有歷史記錄時的崩潰" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:105 msgid "Fix image files not being deleted when history items are removed" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:106 msgid "Fix image files stored in wrong directory" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:107 msgid "Fix keyboard focus being stolen by history items on hover" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:108 msgid "" "Fix key events incorrectly forwarded to search when another entry has focus" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:109 msgid "Fix signal loop when updating shortcut entries from settings" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:110 msgid "Fix default history item count not reset after history deletion" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:111 msgid "Enforce minimum window size to prevent unresizable state" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:112 msgid "Add descriptive tooltips for settings entries" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:113 msgid "Build: explicitly link libgpaste libraries against libc" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:114 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:127 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:137 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:146 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:155 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:164 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:174 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:225 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:267 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:281 msgid "Translations updates" msgstr "翻譯更新" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:122 msgid "" "Fix infinite Pango assertion loop that could fill disk when clipboard " "content contained tab characters" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:123 msgid "Various bug fixes and memory management improvements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:124 msgid "Daemon improvements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:125 msgid "GNOME Shell extension improvements" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:126 msgid "GLib >= 2.76 is now required" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:135 #, fuzzy msgid "Support for gnome 50" msgstr "讓其可用於 GNOME Shell 40" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:136 #, fuzzy msgid "Support for gnome 49" msgstr "讓其可用於 GNOME Shell 40" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:145 #, fuzzy msgid "Support for gnome 48" msgstr "讓其可用於 GNOME Shell 40" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:154 #, fuzzy msgid "Support for gnome 47" msgstr "讓其可用於 GNOME Shell 40" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:163 #, fuzzy msgid "Support for gnome 46" msgstr "讓其可用於 GNOME Shell 40" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:170 #, fuzzy msgid "Stable release for GNOME 45. Changes:" msgstr "第一個適用於 GNOME 40 的版本。更新內容:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:172 #, fuzzy msgid "Port to gnome 45" msgstr "讓其可用於 GNOME Shell 40" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:173 msgid "Add setting to open ui window centered" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:182 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:199 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:233 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:289 msgid "Fix a bug leading to history with only one item" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:188 #, fuzzy msgid "First release for GNOME 44. Changes:" msgstr "第一個適用於 GNOME 40 的版本。更新內容:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:190 msgid "gcr 4 is now required" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:191 #, fuzzy msgid "Port to gnome 44" msgstr "讓其可用於 GNOME Shell 40" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:207 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:241 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:297 msgid "Avoid crash under heavy memory load" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:215 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:249 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:305 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:381 msgid "Respect --use-index when displaying history" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:221 #, fuzzy msgid "First release for GNOME 43. Changes:" msgstr "第一個適用於 GNOME 40 的版本。更新內容:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:223 msgid "Port to GNOME 43" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:224 msgid "Internal preparation for gtk4 port" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:257 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:313 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:389 msgid "Open GPaste UI where the mouse pointer is" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:265 msgid "Fixes to the new preferences tool" msgstr "修復了新的首選工具" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:266 msgid "Style fixes" msgstr "樣式修復" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:273 #, fuzzy msgid "First release for GNOME 42. Changes:" msgstr "第一個適用於 GNOME 40 的版本。更新內容:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:275 msgid "" "Old libgpaste replaced by a new minimal libgpaste-2 with no gtk dependency" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:276 msgid "New libgpaste-gtk3 for utils and settings ui" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:277 msgid "New libgpaste-gtk4 for utils and preferences ui" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:278 msgid "New gtk4 based gpaste-preferences utility" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:279 msgid "Autotools are no longer supported" msgstr "不再支持自動工具" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:280 #, fuzzy msgid "Extension updated for gnome-shell 42" msgstr "讓其可用於 GNOME Shell 40" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:321 msgid "fix the storage path for meson builds" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:329 msgid "fix some race conditions in history handling" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:337 msgid "better fix crash when there is no history yet" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:345 msgid "fix crash when there is no history yet" msgstr "修復沒有歷史記錄時的崩潰" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:346 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:355 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:364 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:373 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:397 msgid "translations update" msgstr "翻譯更新" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:354 #, fuzzy msgid "fix gnome-shell exntesion when the daemon restarts" msgstr "GNOME Shell 插件警告修復" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:363 msgid "Fix keybindings for wayland" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:370 #, fuzzy msgid "First release for GNOME 41. Changes:" msgstr "第一個適用於 GNOME 40 的版本。更新內容:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:372 #, fuzzy msgid "port to gnome-shell 41" msgstr "讓其可用於 GNOME Shell 40" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:405 msgid "fix a crash in memory usage checking" msgstr "修復在檢查記憶體使用量時的崩潰" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:412 msgid "First release for GNOME 40. Changes:" msgstr "第一個適用於 GNOME 40 的版本。更新內容:" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:414 msgid "port to gnome-shell 40" msgstr "讓其可用於 GNOME Shell 40" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:415 msgid "placeholder for gnome-shell prefs" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:423 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:487 msgid "fix X11 keybinder outside of GNOME" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:431 msgid "better handling and reporting of invalid uuids passed to gpaste-client" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:432 msgid "" "gpaste-client now has a --use-index argument for several subcommands to use " "index instead of uuid" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:440 msgid "fix the make-password keybinding" msgstr "修復「建立密碼」快捷鍵" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:441 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:450 msgid "updated translations" msgstr "更新了翻譯" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:449 msgid "gnome-shell extension warning fixes" msgstr "GNOME Shell 插件警告修復" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:458 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:495 msgid "gnome-shell extension cosmetic updates" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:466 msgid "Disable images support by default (can be reenabled in preferences)" msgstr "預設禁用圖像歷史(可在偏好設定裏重啓)" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:467 msgid "Search now includes passwords (using their names)" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:468 msgid "systemd integration enhancements" msgstr "systemd 整合增強" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:474 msgid "First release for GNOME 3.38. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:476 msgid "Drop the Tracking DBus signal" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:477 msgid "Switch to uuids to identify items" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:478 msgid "Bump DBus interface to org.gnome.GPaste2" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:479 msgid "Update to gnome-shell 3.38.0" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:503 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:535 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:577 msgid "Fix activating items using Ctrl-Number in gnome-shell" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:511 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:543 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:576 msgid "Fix keybinding regrab with gnome-shell" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:519 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:551 msgid "Fix keybinding grab with gnome-shell" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:525 msgid "First release for GNOME 3.36. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:527 msgid "Update to gnome-shell 3.36.0" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:559 #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:575 msgid "Compatibility with recent appstream-glib" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:565 msgid "First release for GNOME 3.34. Changes:" msgstr "" #: data/metainfo/org.gnome.GPaste.Ui.metainfo.xml.in:567 msgid "Update to gnome-shell 3.34.0" msgstr "" #: src/client/gpaste-client.c:146 msgid "Couldn't spawn" msgstr "" #: src/client/gpaste-client.c:158 #, c-format msgid "Usage:\n" msgstr "" #. Translators: help for gpaste history #: src/client/gpaste-client.c:160 msgid "print the history with UUIDs" msgstr "" #. Translators: help for gpaste history-size #: src/client/gpaste-client.c:162 msgid "print the size of the history" msgstr "" #. Translators: help for gpaste get-history #: src/client/gpaste-client.c:164 msgid "get the name of the current history" msgstr "" #. Translators: help for gpaste backup-history #. Translators: help for gpaste switch-history #. Translators: help for gpaste delete-history #. Translators: help for gpaste add-password #. Translators: help for gpaste set-password #. Translators: help for gpaste delete-passworf #: src/client/gpaste-client.c:166 src/client/gpaste-client.c:168 #: src/client/gpaste-client.c:170 src/client/gpaste-client.c:176 #: src/client/gpaste-client.c:188 src/client/gpaste-client.c:192 msgid "name" msgstr "名稱" #: src/client/gpaste-client.c:166 msgid "backup current history" msgstr "備份目前歷史記錄" #: src/client/gpaste-client.c:168 msgid "switch to another history" msgstr "" #: src/client/gpaste-client.c:170 msgid "delete a history" msgstr "刪除一個歷史記錄" #. Translators: help for gpaste list-histories #: src/client/gpaste-client.c:172 msgid "list available histories" msgstr "列出可用的歷史記錄" #. Translators: help for gpaste add #: src/client/gpaste-client.c:174 msgid "text" msgstr "文字" #: src/client/gpaste-client.c:174 msgid "set text to clipboard" msgstr "" #: src/client/gpaste-client.c:176 msgid "password" msgstr "密碼" #: src/client/gpaste-client.c:176 msgid "add the name - password couple to the clipboard" msgstr "" #. Translators: help for gpaste rename-password #: src/client/gpaste-client.c:178 msgid "old name" msgstr "舊名稱" #: src/client/gpaste-client.c:178 msgid "new name" msgstr "新名稱" #: src/client/gpaste-client.c:178 msgid "rename the password" msgstr "重新命名密碼" #. Translators: help for gpaste get #: src/client/gpaste-client.c:180 msgid "get the item from the history" msgstr "" #. Translators: help for gpaste select #: src/client/gpaste-client.c:182 msgid "set the item from the history to the clipboard" msgstr "" #. Translators: help for gpaste replace #: src/client/gpaste-client.c:184 msgid "contents" msgstr "內容" #: src/client/gpaste-client.c:184 msgid "" "replace the contents of the item from the history with the provided " "one" msgstr "" #. Translators: help for gpaste merge #: src/client/gpaste-client.c:186 msgid "" "merge the items matching the UUIDs from the history and put the result in " "the clipboard" msgstr "" #: src/client/gpaste-client.c:188 msgid "set the item from the history as a password named " msgstr "" #. Translators: help for gpaste delete #: src/client/gpaste-client.c:190 msgid "delete item from the history" msgstr "" #: src/client/gpaste-client.c:192 msgid "delete the password from the history" msgstr "" #. Translators: help for gpaste file #: src/client/gpaste-client.c:194 msgid "path" msgstr "路徑" #: src/client/gpaste-client.c:194 msgid "put the content of the file at into the clipboard" msgstr "" #. Translators: help for whatever | gpaste #: src/client/gpaste-client.c:196 msgid "whatever" msgstr "任何" #: src/client/gpaste-client.c:196 msgid "set the output of whatever to clipboard" msgstr "" #. Translators: help for gpaste empty #: src/client/gpaste-client.c:198 msgid "empty the history" msgstr "清空歷史記錄" #. Translators: help for gpaste start #: src/client/gpaste-client.c:200 msgid "start tracking clipboard changes" msgstr "" #. Translators: help for gpaste stop #: src/client/gpaste-client.c:202 msgid "stop tracking clipboard changes" msgstr "" #. Translators: help for gpaste quit #: src/client/gpaste-client.c:204 msgid "alias for stop" msgstr "停止的別名" #. Translators: help for gpaste daemon-reexec #: src/client/gpaste-client.c:206 msgid "reexecute the daemon (after upgrading...)" msgstr "" #. Translators: help for gpaste preferences #: src/client/gpaste-client.c:208 msgid "launch the configuration tool" msgstr "" #. Translators: help for gpaste ui #: src/client/gpaste-client.c:210 msgid "launch the graphical tool" msgstr "" #. Translators: help for gpaste show-history #: src/client/gpaste-client.c:212 msgid "make the applet or extension display the history" msgstr "" #. Translators: help for gpaste upload #: src/client/gpaste-client.c:214 msgid "upload the item to a pastebin service" msgstr "" #. Translators: help for gpaste version #: src/client/gpaste-client.c:216 msgid "display the version" msgstr "顯示版本" #. Translators: help for gpaste daemon-version #: src/client/gpaste-client.c:218 msgid "display the daemon version" msgstr "" #. Translators: help for gpaste help #: src/client/gpaste-client.c:220 msgid "display this help" msgstr "顯示這個幫助" #. Translators: help for gpaste about #: src/client/gpaste-client.c:222 msgid "display the about dialog" msgstr "" #: src/client/gpaste-client.c:225 #, c-format msgid "Convenience options:" msgstr "便利選項:" #. Translators: help for --use-index #: src/client/gpaste-client.c:228 msgid "use the index of the item instead of its UUID" msgstr "" #: src/client/gpaste-client.c:231 #, c-format msgid "Display options:" msgstr "顯示選項:" #. Translators: help for --oneline #: src/client/gpaste-client.c:234 msgid "display each item on only one line" msgstr "" #. Translators: help for --raw #: src/client/gpaste-client.c:236 msgid "display each item raw (without line numbers)" msgstr "" #. Translators: help for --reverse #: src/client/gpaste-client.c:238 msgid "display the items in reverse order" msgstr "" #. Translators: help for --zero #: src/client/gpaste-client.c:240 msgid "use a NUL character instead of a new line betweean each item" msgstr "" #: src/client/gpaste-client.c:243 #, c-format msgid "Merge options:" msgstr "合併選項:" #. Translators: help for --decoration #. Translators: help for --separator #: src/client/gpaste-client.c:246 src/client/gpaste-client.c:248 msgid "string" msgstr "字串" #: src/client/gpaste-client.c:246 msgid "" "add the given decoration to the beginning and the end of each item before " "merging" msgstr "" #: src/client/gpaste-client.c:248 msgid "add the given separator between each item when merging" msgstr "" #: src/client/gpaste-client.c:345 #, c-format msgid "Successfully reexecuted the daemon\n" msgstr "" #: src/client/gpaste-client.c:486 msgid "Cannot add non utf8 data as text." msgstr "" #: src/client/gpaste-client.c:796 src/ui/gpaste-ui-window.c:353 #: src/ui/gpaste-ui-window.c:354 msgid "Couldn't connect to GPaste daemon" msgstr "" #: src/daemon/gpaste-color-item.c:73 msgid "[Color]" msgstr "" #. Translators: strftime format for image timestamps. Rearrange to match your locale's date/time convention. #: src/daemon/gpaste-image-item.c:219 msgid "%m/%d/%y %T" msgstr "%m/%d/%y %T" #. Translators: Image item displayed in history. %d is width, %d is height, %s is the formatted date. #: src/daemon/gpaste-image-item.c:221 #, c-format msgid "[Image, %d x %d (%s)]" msgstr "" #: src/daemon/gpaste-make-password-keybinding.c:50 #, fuzzy msgid "Convert to Password" msgstr "重新命名密碼" #. This is the prefix displayed in history to identify a password #: src/daemon/gpaste-password-item.c:65 msgid "Password" msgstr "密碼" #: src/daemon/gpaste-pop-keybinding.c:64 #, fuzzy msgid "Pop from History" msgstr "儲存歷史記錄" #: src/daemon/gpaste-show-history-keybinding.c:49 #, fuzzy msgid "Show History" msgstr "儲存歷史記錄" #: src/daemon/gpaste-sync-clipboard-to-primary-keybinding.c:46 msgid "Sync Clipboard to Primary" msgstr "" #: src/daemon/gpaste-sync-primary-to-clipboard-keybinding.c:46 msgid "Sync Primary to Clipboard" msgstr "" #: src/daemon/gpaste-ui-keybinding.c:43 msgid "Launch UI" msgstr "" #: src/daemon/gpaste-upload-keybinding.c:64 msgid "Upload to Pastebin" msgstr "" #: src/daemon/gpaste-uris-item.c:87 msgid "[Files] " msgstr "[檔案] " #: src/daemon/main.c:32 msgid "Stop signal received, exiting" msgstr "" #: src/daemon/main.c:69 msgid "Could not acquire DBus name." msgstr "" #: src/gnome-shell/dummyHistoryItem.js:12 msgid "(Couldn't connect to GPaste daemon)" msgstr "" #: src/gnome-shell/dummyHistoryItem.js:17 msgid "(Empty)" msgstr "(空)" #: src/gnome-shell/dummyHistoryItem.js:22 msgid "(No result)" msgstr "(沒有結果)" #: src/gnome-shell/emptyHistoryItem.js:14 msgid "Empty history" msgstr "清空歷史記錄" #: src/gnome-shell/stateSwitch.js:12 msgid "Track changes" msgstr "追蹤變化" #: src/gnome-shell/uiItem.js:14 msgid "Graphical tool" msgstr "圖形化工具" #: src/libgpaste/gpaste/gpaste-util.c:636 msgid "Could not create history dir" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-macros.h:38 msgid "Failed to register the gtk application" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:108 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:119 msgid "General behaviour" msgstr "一般行為" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:121 #: src/ui/gpaste-ui-switch.c:93 msgid "Track clipboard changes" msgstr "追蹤剪貼簿變化" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:127 msgid "Close UI on select" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:133 msgid "Open the UI window centered" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:139 msgid "Save history" msgstr "儲存歷史記錄" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:150 msgid "Enable the gnome-shell extension" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:156 msgid "Sync the daemon state with the extension's one" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:162 msgid "" "When enabled, the daemon automatically starts or stops tracking clipboard " "changes to match the GNOME Shell extension's enabled state" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:166 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:174 msgid "Clipboards synchronization" msgstr "剪貼簿同步" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:168 msgid "Primary selection affects history" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:174 msgid "Synchronize clipboard with primary selection" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:181 msgid "Optional features" msgstr "選用功能" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:183 msgid "Trim items" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:189 msgid "Detect growing lines" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c:195 msgid "" "When enabled, if a new clipboard entry starts with the previous one, the " "previous entry is replaced instead of creating a new one" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:92 msgid "History settings" msgstr "歷史記錄設定" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:103 msgid "Resources limits" msgstr "資源限制" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:120 msgid "Text limits" msgstr "文字限制" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:122 msgid "Min text item length" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:129 msgid "Max text item length" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:137 msgid "Display settings" msgstr "顯示設定" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c:139 msgid "Max element size when displaying" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:81 #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:92 #, fuzzy msgid "Images settings" msgstr "設定介面" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:94 msgid "Images support" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:100 msgid "Image previews" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c:106 msgid "Preview size" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:122 msgid "Keyboard shortcuts" msgstr "鍵盤快捷鍵" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:133 msgid "History access" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c:150 msgid "Active element manipulation" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-util.c:51 #: src/ui/gpaste-ui-edit-item.c:84 src/ui/gpaste-ui-new-item.c:66 #: src/ui/gpaste-ui-panel.c:311 msgid "Cancel" msgstr "取消" #. Translators: %s is the name of the history being emptied. #: src/libgpaste/gpaste-gtk4/gpaste-gtk-util.c:126 #, c-format msgid "Do you really want to empty \"%s\"?" msgstr "" #: src/libgpaste/gpaste-gtk4/gpaste-gtk-util.c:127 #: src/ui/gpaste-ui-history.c:153 src/ui/gpaste-ui-history.c:428 #: src/ui/gpaste-ui-panel.c:517 msgid "Empty" msgstr "清空" #: src/ui/gpaste-ui.c:47 msgid "Clipboard management system" msgstr "" #: src/ui/gpaste-ui-delete-item.c:46 src/ui/gpaste-ui-panel.c:358 #: src/ui/gpaste-ui-panel.c:518 msgid "Delete" msgstr "刪除" #: src/ui/gpaste-ui-edit-item.c:85 src/ui/gpaste-ui-edit-item.c:139 msgid "Edit" msgstr "編輯" #: src/ui/gpaste-ui-history.c:266 #, fuzzy msgid "No Results" msgstr "(沒有結果)" #: src/ui/gpaste-ui-new-item.c:67 msgid "Add new item" msgstr "" #: src/ui/gpaste-ui-new-item.c:100 msgid "New item" msgstr "" #: src/ui/gpaste-ui-panel.c:307 msgid "Under which name do you want to backup this history?" msgstr "" #: src/ui/gpaste-ui-panel.c:311 src/ui/gpaste-ui-panel.c:516 msgid "Backup" msgstr "備份" #. Translators: %s is the name of the history being deleted. #: src/ui/gpaste-ui-panel.c:357 #, c-format msgid "Are you sure you want to delete \"%s\"?" msgstr "" #: src/ui/gpaste-ui-panel.c:441 #, fuzzy msgid "Switch to history" msgstr "切換至" #: src/ui/gpaste-ui-panel.c:448 msgid "Switch to" msgstr "切換至" #: src/ui/gpaste-ui-reexec.c:45 msgid "Restart" msgstr "重新啟動" #: src/ui/gpaste-ui-reexec.c:45 msgid "Do you really want to restart the daemon?" msgstr "" #: src/ui/gpaste-ui-reexec.c:70 msgid "Restart the daemon" msgstr "重新啟動守護程式" #: src/ui/gpaste-ui-search.c:23 msgid "Search" msgstr "搜尋" #: src/ui/gpaste-ui-settings.c:35 msgid "GPaste Settings" msgstr "GPaste 設定" #: src/ui/gpaste-ui-shortcuts-window.c:21 msgid "General" msgstr "一般" #: src/ui/gpaste-ui-switch.c:68 msgid "Stop" msgstr "停止" #: src/ui/gpaste-ui-switch.c:68 msgid "Do you really want to stop tracking clipboard changes?" msgstr "" #: src/ui/gpaste-ui-upload-item.c:46 msgid "Upload" msgstr "上載" #: src/ui/gpaste-ui-window.c:303 msgid "Quit" msgstr "" #: src/ui/gpaste-ui-window.c:380 #, fuzzy msgid "Histories" msgstr "歷史記錄設定" #: src/ui/gpaste-ui-window.c:381 #, fuzzy msgid "History" msgstr "儲存歷史記錄" #~ msgid "New" #~ msgstr "新" Keruspe-GPaste-724def1/release.sh000077500000000000000000000006751521206431300167130ustar00rootroot00000000000000#!/usr/bin/env bash set -euo pipefail run_ninja() { ninja -C build "${@}" } main() { local version="${1}" appstreamcli validate data/metainfo/*.xml.in || exit 1 run_ninja ls po/*.po | sed 's|po/||; s|\.po$||' | sort > po/LINGUAS run_ninja GPaste-pot run_ninja GPaste-update-po git commit -asm "Release GPaste ${version}" run_ninja dist git tag -m "Release GPaste ${version}" v${version} } main "${@}" Keruspe-GPaste-724def1/src/000077500000000000000000000000001521206431300155135ustar00rootroot00000000000000Keruspe-GPaste-724def1/src/client/000077500000000000000000000000001521206431300167715ustar00rootroot00000000000000Keruspe-GPaste-724def1/src/client/gpaste-client.c000066400000000000000000000640271521206431300217050ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #include #include #include typedef struct { GPasteClient *client; gint argc; const gchar **args; gchar *pipe_data; const gchar *uuid; gboolean help; gboolean version; gboolean oneline; gboolean raw; gboolean reverse; gboolean use_index; gboolean zero; const gchar *decoration; const gchar *separator; } Context; /* * Utility functions */ static gboolean parse_cmdline (int *argc, char **argv[], Context *ctx) { struct option long_options[] = { { "decoration", required_argument, NULL, 'd' }, { "help", no_argument, NULL, 'h' }, { "oneline", no_argument, NULL, 'o' }, { "raw", no_argument, NULL, 'r' }, { "reverse", no_argument, NULL, 'e' }, { "separator", required_argument, NULL, 's' }, { "use-index", no_argument, NULL, 'i' }, { "version", no_argument, NULL, 'v' }, { "zero", no_argument, NULL, 'z' }, { NULL, no_argument, NULL, '\0' } }; gint64 c; while ((c = getopt_long(*argc, *argv, "d:hores:ivz", long_options, NULL)) != -1) { switch (c) { case 'd': ctx->decoration = optarg; break; case 'h': ctx->help = TRUE; break; case 'o': ctx->oneline = TRUE; break; case 'r': ctx->raw = TRUE; break; case 'e': ctx->reverse = TRUE; break; case 's': ctx->separator = optarg; break; case 'i': ctx->use_index = TRUE; break; case 'v': ctx->version = TRUE; break; case 'z': ctx->zero = TRUE; break; default: ctx->help = TRUE; return FALSE; } } *argc -= optind; *argv += optind; ctx->argc = *argc - 1; ctx->args = (const gchar **) *argv; ++ctx->args; return TRUE; } static gchar * extract_pipe_data (void) { if (isatty (STDIN_FILENO)) return NULL; /* We're not being piped */ g_autoptr (GString) data = g_string_new (NULL); gint64 c; while ((c = fgetc (stdin)) != EOF) data = g_string_append_c (data, (guchar)c); g_string_append_c (data, '\0'); return (*data->str) ? g_strdup (data->str) : NULL; } static const gchar * strip_newline (gchar *str) { for (gchar *s = str; *s; ++s) { if (*s == '\n') *s = ' '; } return str; } static void print_history_line (gchar *line, guint index, const gchar *uuid, Context *ctx) { if (!ctx->raw) { if (ctx->use_index) printf ("%d: ", index); else printf ("%s: ", uuid); } printf ("%s%c", (ctx->oneline) ? strip_newline (line) : line, (ctx->zero) ? '\0' : '\n'); } static gint spawn (const gchar *app) { g_autoptr (GError) error = NULL; if (!g_paste_util_spawn_sync (app, &error)) { g_critical ("%s %s: %s", _("Couldn't spawn"), app, error->message); return EXIT_FAILURE; } return EXIT_SUCCESS; } static void show_help (void) { const char *progname = g_get_prgname (); printf (_("Usage:\n")); /* Translators: help for gpaste history */ printf (" %s [history]: %s\n", progname, _("print the history with UUIDs")); /* Translators: help for gpaste history-size */ printf (" %s history-size: %s\n", progname, _("print the size of the history")); /* Translators: help for gpaste get-history */ printf (" %s get-history: %s\n", progname, _("get the name of the current history")); /* Translators: help for gpaste backup-history */ printf (" %s backup-history <%s>: %s\n", progname, _("name"), _("backup current history")); /* Translators: help for gpaste switch-history */ printf (" %s switch-history <%s>: %s\n", progname, _("name"), _("switch to another history")); /* Translators: help for gpaste delete-history */ printf (" %s delete-history <%s>: %s\n", progname, _("name"), _("delete a history")); /* Translators: help for gpaste list-histories */ printf (" %s list-histories: %s\n", progname, _("list available histories")); /* Translators: help for gpaste add */ printf (" %s add <%s>: %s\n", progname, _("text"), _("set text to clipboard")); /* Translators: help for gpaste add-password */ printf (" %s add-password <%s> <%s>: %s\n", progname, _("name"), _("password"), _("add the name - password couple to the clipboard")); /* Translators: help for gpaste rename-password */ printf (" %s rename-password <%s> <%s>: %s\n", progname, _("old name"), _("new name"), _("rename the password")); /* Translators: help for gpaste get */ printf (" %s get : %s\n", progname, _("get the item from the history")); /* Translators: help for gpaste select */ printf (" %s select : %s\n", progname, _("set the item from the history to the clipboard")); /* Translators: help for gpaste replace */ printf (" %s replace <%s>: %s\n", progname, _("contents"), _("replace the contents of the item from the history with the provided one")); /* Translators: help for gpaste merge */ printf (" %s merge : %s\n", progname, _("merge the items matching the UUIDs from the history and put the result in the clipboard")); /* Translators: help for gpaste set-password */ printf (" %s set-password <%s>: %s\n", progname, _("name"), _("set the item from the history as a password named ")); /* Translators: help for gpaste delete */ printf (" %s delete : %s\n", progname, _("delete item from the history")); /* Translators: help for gpaste delete-passworf */ printf (" %s delete-password <%s>: %s\n", progname, _("name"), _("delete the password from the history")); /* Translators: help for gpaste file */ printf (" %s file <%s>: %s\n", progname, _("path"), _("put the content of the file at into the clipboard")); /* Translators: help for whatever | gpaste */ printf (" %s | %s: %s\n", _("whatever"), progname, _("set the output of whatever to clipboard")); /* Translators: help for gpaste empty */ printf (" %s empty: %s\n", progname, _("empty the history")); /* Translators: help for gpaste start */ printf (" %s start: %s\n", progname, _("start tracking clipboard changes")); /* Translators: help for gpaste stop */ printf (" %s stop: %s\n", progname, _("stop tracking clipboard changes")); /* Translators: help for gpaste quit */ printf (" %s quit: %s\n", progname, _("alias for stop")); /* Translators: help for gpaste daemon-reexec */ printf (" %s daemon-reexec: %s\n", progname, _("reexecute the daemon (after upgrading...)")); /* Translators: help for gpaste preferences */ printf (" %s preferences: %s\n", progname, _("launch the configuration tool")); /* Translators: help for gpaste ui */ printf (" %s ui: %s\n", progname, _("launch the graphical tool")); /* Translators: help for gpaste show-history */ printf (" %s show-history: %s\n", progname, _("make the applet or extension display the history")); /* Translators: help for gpaste upload */ printf (" %s upload : %s\n", progname, _("upload the item to a pastebin service")); /* Translators: help for gpaste version */ printf (" %s version: %s\n", progname, _("display the version")); /* Translators: help for gpaste daemon-version */ printf (" %s daemon-version: %s\n", progname, _("display the daemon version")); /* Translators: help for gpaste help */ printf (" %s help: %s\n", progname, _("display this help")); /* Translators: help for gpaste about */ printf (" %s about: %s\n", progname, _("display the about dialog")); printf("\n"); printf(_("Convenience options:")); printf("\n"); /* Translators: help for --use-index */ printf(" --use-index: %s\n", _("use the index of the item instead of its UUID")); printf("\n"); printf(_("Display options:")); printf("\n"); /* Translators: help for --oneline */ printf(" --oneline: %s\n", _("display each item on only one line")); /* Translators: help for --raw */ printf(" --raw: %s\n", _("display each item raw (without line numbers)")); /* Translators: help for --reverse */ printf(" --reverse: %s\n", _("display the items in reverse order")); /* Translators: help for --zero */ printf(" --zero: %s\n", _("use a NUL character instead of a new line betweean each item")); printf("\n"); printf(_("Merge options:")); printf("\n"); /* Translators: help for --decoration */ printf(" --decoration <%s>: %s\n", _("string"), _("add the given decoration to the beginning and the end of each item before merging")); /* Translators: help for --separator */ printf(" --separator <%s>: %s\n", _("string"), _("add the given separator between each item when merging")); } static void show_version (void) { printf ("%s\n", PACKAGE_STRING); } /* * GPaste commands */ static gint g_paste_help (Context *ctx G_GNUC_UNUSED, GError **error G_GNUC_UNUSED) { show_help (); return EXIT_SUCCESS; } static gint g_paste_version (Context *ctx G_GNUC_UNUSED, GError **error G_GNUC_UNUSED) { show_version (); return EXIT_SUCCESS; } static gint g_paste_flag_action (Context *ctx, GError **error) { if (ctx->help) return g_paste_help (ctx, error); if (ctx->version) return g_paste_version (ctx, error); return -1; } static gint g_paste_history (Context *ctx, GError **error) { g_autolist (GPasteClientItem) history = (ctx->raw) ? g_paste_client_get_raw_history_sync (ctx->client, error) : g_paste_client_get_history_sync (ctx->client, error); if (*error) return EXIT_FAILURE; guint index = 0; for (const GList *i = (ctx->reverse ? g_list_last (history) : history); i; i = ctx->reverse ? i->prev : i->next) { const GPasteClientItem *item = i->data; g_autofree gchar *line = g_strdup (g_paste_client_item_get_value (item)); print_history_line (line, index++, g_paste_client_item_get_uuid (item), ctx); } return EXIT_SUCCESS; } static gint g_paste_about (Context *ctx, GError **error) { g_paste_client_about_sync (ctx->client, error); return (*error) ? EXIT_FAILURE : EXIT_SUCCESS; } static gint g_paste_daemon_reexec (Context *ctx, GError **error) { g_paste_client_reexecute_sync (ctx->client, error); gboolean success = (!*error || (*error)->code == G_DBUS_ERROR_NO_REPLY); g_clear_error (error); #ifdef G_OS_UNIX if (!success) { GPid pid = g_paste_util_read_pid_file ("Daemon"); if (pid != (GPid) -1) success = !kill (pid, SIGUSR1); } #endif if (!success) return EXIT_FAILURE; printf (_("Successfully reexecuted the daemon\n")); return EXIT_SUCCESS; } static gint g_paste_daemon_version (Context *ctx, GError **error G_GNUC_UNUSED) { g_autofree gchar *v = g_paste_client_get_version (ctx->client); printf ("%s\n", v); return EXIT_SUCCESS; } static gint g_paste_empty (Context *ctx, GError **error) { g_autofree gchar *name = (ctx->argc) ? g_strdup (ctx->args[0]) : g_paste_client_get_history_name_sync (ctx->client, error); if (*error) return EXIT_FAILURE; g_paste_client_empty_history_sync (ctx->client, name, error); return (*error) ? EXIT_FAILURE : EXIT_SUCCESS; } static gint g_paste_get_history (Context *ctx, GError **error) { g_autofree gchar *name = g_paste_client_get_history_name_sync (ctx->client, error); if (*error) return EXIT_FAILURE; printf("%s\n", name); return EXIT_SUCCESS; } static gint g_paste_history_size (Context *ctx, GError **error) { g_autofree gchar *name = (ctx->argc) ? g_strdup (ctx->args[0]) : g_paste_client_get_history_name_sync (ctx->client, error); if (*error) return EXIT_FAILURE; guint64 size = g_paste_client_get_history_size_sync (ctx->client, name, error); if (*error) return EXIT_FAILURE; printf ("%" G_GUINT64_FORMAT "\n", size); return EXIT_SUCCESS; } static gint g_paste_list_histories (Context *ctx, GError **error) { g_auto (GStrv) histories = g_paste_client_list_histories_sync (ctx->client, error); if (*error) return EXIT_FAILURE; for (GStrv h = histories; *h; ++h) printf ("%s\n", *h); return EXIT_SUCCESS; } static gint g_paste_delete_history (Context *ctx, GError **error) { g_autofree gchar *name = (ctx->argc) ? g_strdup (ctx->args[0]) : g_paste_client_get_history_name_sync (ctx->client, error); g_paste_client_delete_history_sync (ctx->client, name, error); return (*error) ? EXIT_FAILURE : EXIT_SUCCESS; } static gint g_paste_preferences (Context *ctx G_GNUC_UNUSED, GError **error G_GNUC_UNUSED) { return spawn ("Preferences"); } static gint g_paste_show_history (Context *ctx, GError **error) { g_paste_client_show_history_sync (ctx->client, error); return (*error) ? EXIT_FAILURE : EXIT_SUCCESS; } static gint g_paste_start (Context *ctx, GError **error) { g_paste_client_track_sync (ctx->client, TRUE, error); return (*error) ? EXIT_FAILURE : EXIT_SUCCESS; } static gint g_paste_stop (Context *ctx, GError **error) { g_paste_client_track_sync (ctx->client, FALSE, error); return (*error) ? EXIT_FAILURE : EXIT_SUCCESS; } static gint g_paste_ui (Context *ctx G_GNUC_UNUSED, GError **error G_GNUC_UNUSED) { return spawn ("Ui"); } static gint g_paste_add (Context *ctx, GError **error) { const gchar *data = (ctx->argc > 0) ? ctx->args[0] : ctx->pipe_data; if (!data) return -1; if (!g_utf8_validate(data, -1, NULL)) { g_critical (_("Cannot add non utf8 data as text.")); return EXIT_FAILURE; } g_paste_client_add_sync (ctx->client, data, error); return (*error) ? EXIT_FAILURE : EXIT_SUCCESS; } static gint g_paste_add_password (Context *ctx, GError **error) { const gchar *data = (ctx->argc > 1) ? ctx->args[1] : ctx->pipe_data; if (!data) return EXIT_FAILURE; g_paste_client_add_password_sync (ctx->client, ctx->args[0], data, error); return (*error) ? EXIT_FAILURE : EXIT_SUCCESS; } static gint g_paste_backup_history (Context *ctx G_GNUC_UNUSED, GError **error G_GNUC_UNUSED) { guint64 index = 0; g_autofree gchar *name = (ctx->argc > 1) ? g_strdup (ctx->args[index++]) : g_paste_client_get_history_name_sync (ctx->client, error); if (*error) return EXIT_FAILURE; g_paste_client_backup_history_sync (ctx->client, name, ctx->args[index], error); return (*error) ? EXIT_FAILURE : EXIT_SUCCESS; } static gint g_paste_delete (Context *ctx, GError **error) { g_paste_client_delete_sync (ctx->client, ctx->uuid, error); return (*error) ? EXIT_FAILURE : EXIT_SUCCESS; } static gint g_paste_delete_password (Context *ctx, GError **error) { g_paste_client_delete_password_sync (ctx->client, ctx->args[0], error); return (*error) ? EXIT_FAILURE : EXIT_SUCCESS; } static gint g_paste_file (Context *ctx, GError **error) { g_paste_client_add_file_sync (ctx->client, ctx->args[0], error); return (*error) ? EXIT_FAILURE : EXIT_SUCCESS; } static gint g_paste_get (Context *ctx, GError **error) { g_autofree gchar *value = ((ctx->raw) ? g_paste_client_get_raw_element_sync : g_paste_client_get_element_sync) (ctx->client, ctx->uuid, error); if (*error) return EXIT_FAILURE; printf ("%s", value); return EXIT_SUCCESS; } static gint g_paste_replace (Context *ctx, GError **error) { const gchar *data = (ctx->argc > 1) ? ctx->args[1] : ctx->pipe_data; if (!data) return EXIT_FAILURE; g_paste_client_replace_sync (ctx->client, ctx->uuid, data, error); return (*error) ? EXIT_FAILURE : EXIT_SUCCESS; } static gint g_paste_search (Context *ctx, GError **error) { g_auto (GStrv) results = g_paste_client_search_sync (ctx->client, ctx->args[0], error); if (*error) return EXIT_FAILURE; g_autolist (GPasteClientItem) items = g_paste_client_get_elements_sync (ctx->client, (const gchar **) results, -1, error); guint index = 0; for (const GList *i = items; i; i = i->next) { const GPasteClientItem *item = i->data; g_autofree gchar *line = g_strdup (g_paste_client_item_get_value (item)); print_history_line (line, index++, g_paste_client_item_get_uuid (item), ctx); } return EXIT_SUCCESS; } static gint g_paste_select (Context *ctx, GError **error) { g_paste_client_select_sync (ctx->client, ctx->uuid, error); return (*error) ? EXIT_FAILURE : EXIT_SUCCESS; } static gint g_paste_switch_history (Context *ctx, GError **error) { g_paste_client_switch_history_sync (ctx->client, ctx->args[0], error); return (*error) ? EXIT_FAILURE : EXIT_SUCCESS; } static gint g_paste_upload (Context *ctx, GError **error) { g_paste_client_upload_sync (ctx->client, ctx->uuid, error); return (*error) ? EXIT_FAILURE : EXIT_SUCCESS; } static gint g_paste_rename_password (Context *ctx, GError **error) { g_paste_client_rename_password_sync (ctx->client, ctx->args[0], ctx->args[1], error); return (*error) ? EXIT_FAILURE : EXIT_SUCCESS; } static gint g_paste_set_password (Context *ctx, GError **error) { g_paste_client_set_password_sync (ctx->client, ctx->uuid, ctx->args[1], error); return (*error) ? EXIT_FAILURE : EXIT_SUCCESS; } static gint g_paste_merge (Context *ctx, GError **error) { g_paste_client_merge_sync (ctx->client, ctx->decoration, ctx->separator, ctx->args, ctx->argc, error); return (*error) ? EXIT_FAILURE : EXIT_SUCCESS; } /* * Main */ static gint g_paste_dispatch (gint argc, const gchar *verb, Context *ctx, GError **error) { static struct { gint argc; const gchar *verb; gint extra_args; gboolean needs_client; gint (*handler) (Context *ctx, GError **error); } dispatch[] = { { 0, NULL, G_MAXINT, FALSE, g_paste_flag_action }, { 0, NULL, 0, TRUE, g_paste_add }, { 0, NULL, 0, TRUE, g_paste_history }, { 1, "help", 0, FALSE, g_paste_help }, { 1, "v", 0, FALSE, g_paste_version }, { 1, "version", 0, FALSE, g_paste_version }, { 1, "about", 0, TRUE, g_paste_about }, { 1, "dr", 0, TRUE, g_paste_daemon_reexec }, { 1, "daemon-reexec", 0, TRUE, g_paste_daemon_reexec }, { 1, "dv", 0, TRUE, g_paste_daemon_version }, { 1, "daemon-version", 0, TRUE, g_paste_daemon_version }, { 1, "e", 1, TRUE, g_paste_empty }, { 1, "empty", 1, TRUE, g_paste_empty }, { 1, "gh", 0, TRUE, g_paste_get_history }, { 1, "get-history", 0, TRUE, g_paste_get_history }, { 1, "h", 0, TRUE, g_paste_history }, { 1, "history", 0, TRUE, g_paste_history }, { 1, "hs", 1, TRUE, g_paste_history_size }, { 1, "history-size", 1, TRUE, g_paste_history_size }, { 1, "lh", 0, TRUE, g_paste_list_histories }, { 1, "list-histories", 0, TRUE, g_paste_list_histories }, { 1, "dh", 1, TRUE, g_paste_delete_history }, { 1, "delete-history", 1, TRUE, g_paste_delete_history }, { 1, "settings", 0, FALSE, g_paste_preferences }, { 1, "p", 0, FALSE, g_paste_preferences }, { 1, "preferences", 0, FALSE, g_paste_preferences }, { 1, "show-history", 0, TRUE, g_paste_show_history }, { 1, "start", 0, TRUE, g_paste_start }, { 1, "d", 0, TRUE, g_paste_start }, { 1, "daemon", 0, TRUE, g_paste_start }, { 1, "stop", 0, TRUE, g_paste_stop }, { 1, "q", 0, TRUE, g_paste_stop }, { 1, "quit", 0, TRUE, g_paste_stop }, { 1, "ui", 0, FALSE, g_paste_ui }, { 1, "a", 1, TRUE, g_paste_add }, { 1, "add", 1, TRUE, g_paste_add }, { 2, "ap", 1, TRUE, g_paste_add_password }, { 2, "add-password", 1, TRUE, g_paste_add_password }, { 2, "bh", 1, TRUE, g_paste_backup_history }, { 2, "backup-history", 1, TRUE, g_paste_backup_history }, { 2, "d", 0, TRUE, g_paste_delete }, { 2, "del", 0, TRUE, g_paste_delete }, { 2, "delete", 0, TRUE, g_paste_delete }, { 2, "rm", 0, TRUE, g_paste_delete }, { 2, "remove", 0, TRUE, g_paste_delete }, { 2, "dp", 0, TRUE, g_paste_delete_password }, { 2, "delete-password", 0, TRUE, g_paste_delete_password }, { 2, "f", 0, TRUE, g_paste_file }, { 2, "file", 0, TRUE, g_paste_file }, { 2, "g", 0, TRUE, g_paste_get }, { 2, "get", 0, TRUE, g_paste_get }, { 2, "replace", 1, TRUE, g_paste_replace }, { 2, "search", 0, TRUE, g_paste_search }, { 2, "s", 0, TRUE, g_paste_select }, { 2, "set", 0, TRUE, g_paste_select }, { 2, "select", 0, TRUE, g_paste_select }, { 2, "sh", 0, TRUE, g_paste_switch_history }, { 2, "switch-history", 0, TRUE, g_paste_switch_history }, { 2, "u", 0, TRUE, g_paste_upload }, { 2, "upload", 0, TRUE, g_paste_upload }, { 3, "rp", 0, TRUE, g_paste_rename_password }, { 3, "rename-password", 0, TRUE, g_paste_rename_password }, { 3, "sp", 0, TRUE, g_paste_set_password }, { 3, "set-password", 0, TRUE, g_paste_set_password }, { 4, "m", G_MAXINT, TRUE, g_paste_merge }, { 4, "merge", G_MAXINT, TRUE, g_paste_merge }, }; for (guint64 i = 0; i < G_N_ELEMENTS (dispatch); ++i) { if (argc == dispatch[i].argc || dispatch[i].extra_args == G_MAXINT || (argc > dispatch[i].argc && argc <= (dispatch[i].argc + dispatch[i].extra_args))) { if (argc > 0 && dispatch[i].verb && !g_paste_str_equal (verb, dispatch[i].verb)) continue; if (dispatch[i].needs_client && !ctx->client) return EXIT_FAILURE; gint ret = dispatch[i].handler(ctx, error); if (ret >= 0) { if (!dispatch[i].needs_client && !ctx->client) g_clear_error (error); return ret; } } } return -1; } gint main (gint argc, gchar *argv[]) { G_PASTE_INIT_GETTEXT (); g_set_prgname (argv[0]); g_autoptr (GError) error = NULL; Context ctx = { NULL, 0, NULL, NULL, NULL, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL, NULL }; gint status = EXIT_SUCCESS; if (parse_cmdline (&argc, &argv, &ctx)) { g_autoptr (GPasteClient) client = ctx.client = g_paste_client_new_sync (&error); g_autofree gchar *pipe_data = ctx.pipe_data = extract_pipe_data (); g_autofree gchar *uuid = NULL; if (ctx.use_index && ctx.argc > 0) { g_autoptr (GPasteClientItem) item = g_paste_client_get_element_at_index_sync (ctx.client, g_ascii_strtoull (ctx.args[0], NULL, 10), &error); if (!error) ctx.uuid = uuid = g_strdup (g_paste_client_item_get_uuid (item)); } else ctx.uuid = ctx.args[0]; if (!error) status = g_paste_dispatch (argc, (argc > 0) ? argv[0] : NULL, &ctx, &error); if (error) { g_critical ("%s\n", (error) ? error->message : _("Couldn't connect to GPaste daemon")); status = EXIT_FAILURE; } } else { show_help (); status = EXIT_FAILURE; } return status; } Keruspe-GPaste-724def1/src/client/meson.build000066400000000000000000000003561521206431300211370ustar00rootroot00000000000000gpaste_client_sources = [ 'gpaste-client.c', ] executable( 'gpaste-client', sources: gpaste_client_sources, install: true, dependencies: [ glib_dep, gobject_dep, libgpaste_internal_dep ], install_dir: get_option('bindir'), ) Keruspe-GPaste-724def1/src/daemon/000077500000000000000000000000001521206431300167565ustar00rootroot00000000000000Keruspe-GPaste-724def1/src/daemon/gpaste-binary-data.c000066400000000000000000000063051521206431300226020ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #include struct _GPasteBinaryData { GObject parent_instance; }; typedef struct { GPasteSpecialAtom mime; GBytes *bytes; } GPasteBinaryDataPrivate; G_PASTE_DEFINE_TYPE_WITH_PRIVATE (BinaryData, binary_data, G_TYPE_OBJECT) /** * g_paste_binary_data_get_mime: * @self: a #GPasteBinaryData instance * * Get the special atom (mime type) associated with the #GPasteBinaryData * * Returns: the #GPasteSpecialAtom */ G_PASTE_VISIBLE GPasteSpecialAtom g_paste_binary_data_get_mime (const GPasteBinaryData *self) { g_return_val_if_fail (_G_PASTE_IS_BINARY_DATA (self), G_PASTE_SPECIAL_ATOM_INVALID); const GPasteBinaryDataPrivate *priv = _g_paste_binary_data_get_instance_private (self); return priv->mime; } /** * g_paste_binary_data_get_bytes: * @self: a #GPasteBinaryData instance * * Get the bytes stored in the #GPasteBinaryData * * Returns: (transfer none): read-only #GBytes */ G_PASTE_VISIBLE GBytes * g_paste_binary_data_get_bytes (const GPasteBinaryData *self) { g_return_val_if_fail (_G_PASTE_IS_BINARY_DATA (self), NULL); const GPasteBinaryDataPrivate *priv = _g_paste_binary_data_get_instance_private (self); return priv->bytes; } /** * g_paste_binary_data_to_base64: * @self: a #GPasteBinaryData instance * * Encode the data stored in the #GPasteBinaryData as a base64 string * * Returns: a newly allocated base64-encoded string * free it with g_free */ G_PASTE_VISIBLE gchar * g_paste_binary_data_to_base64 (const GPasteBinaryData *self) { g_return_val_if_fail (_G_PASTE_IS_BINARY_DATA (self), NULL); const GPasteBinaryDataPrivate *priv = _g_paste_binary_data_get_instance_private (self); gsize len; const guchar *data = g_bytes_get_data (priv->bytes, &len); return g_base64_encode (data, len); } static void g_paste_binary_data_dispose (GObject *object) { GPasteBinaryDataPrivate *priv = g_paste_binary_data_get_instance_private (G_PASTE_BINARY_DATA (object)); g_clear_pointer (&priv->bytes, g_bytes_unref); G_OBJECT_CLASS (g_paste_binary_data_parent_class)->dispose (object); } static void g_paste_binary_data_class_init (GPasteBinaryDataClass *klass) { G_OBJECT_CLASS (klass)->dispose = g_paste_binary_data_dispose; } static void g_paste_binary_data_init (GPasteBinaryData *self G_GNUC_UNUSED) { } /** * g_paste_binary_data_new: * @mime: the #GPasteSpecialAtom identifying the mime type * @bytes: (transfer full): the bytes to store * * Create a new instance of #GPasteBinaryData, taking ownership of @bytes * * Returns: a newly allocated #GPasteBinaryData * free it with g_object_unref */ G_PASTE_VISIBLE GPasteBinaryData * g_paste_binary_data_new (GPasteSpecialAtom mime, GBytes *bytes) { g_return_val_if_fail (bytes, NULL); g_return_val_if_fail (g_bytes_get_size (bytes) > 0, NULL); GPasteBinaryData *self = g_object_new (G_PASTE_TYPE_BINARY_DATA, NULL); GPasteBinaryDataPrivate *priv = g_paste_binary_data_get_instance_private (self); priv->mime = mime; priv->bytes = bytes; return self; } Keruspe-GPaste-724def1/src/daemon/gpaste-binary-data.h000066400000000000000000000013271521206431300226060ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #pragma once #include G_BEGIN_DECLS #define G_PASTE_TYPE_BINARY_DATA (g_paste_binary_data_get_type ()) G_PASTE_FINAL_TYPE (BinaryData, binary_data, BINARY_DATA, GObject) GPasteSpecialAtom g_paste_binary_data_get_mime (const GPasteBinaryData *self); GBytes *g_paste_binary_data_get_bytes (const GPasteBinaryData *self); gchar *g_paste_binary_data_to_base64 (const GPasteBinaryData *self); GPasteBinaryData *g_paste_binary_data_new (GPasteSpecialAtom mime, GBytes *bytes); G_END_DECLS Keruspe-GPaste-724def1/src/daemon/gpaste-bus-object.c000066400000000000000000000022521521206431300224410ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #include "gpaste-bus-object.h" G_PASTE_DEFINE_ABSTRACT_TYPE (BusObject, bus_object, G_TYPE_OBJECT) /** * g_paste_bus_object_register_on_connection: * @self: a #GPasteBusObject * @connection: a #GDBusConnection * @error: a #GError * * Register the #GPasteBusObject on the connection * * Returns: Whether the action succeeded or not */ G_PASTE_VISIBLE gboolean g_paste_bus_object_register_on_connection (GPasteBusObject *self, GDBusConnection *connection, GError **error) { g_return_val_if_fail (_G_PASTE_IS_BUS_OBJECT (self), FALSE); g_return_val_if_fail (G_IS_DBUS_CONNECTION (connection), FALSE); g_return_val_if_fail (!error || !(*error), FALSE); return G_PASTE_BUS_OBJECT_GET_CLASS (self)->register_on_connection (self, connection, error); } static void g_paste_bus_object_class_init (GPasteBusObjectClass *klass) { klass->register_on_connection = NULL; } static void g_paste_bus_object_init (GPasteBusObject *self G_GNUC_UNUSED) { } Keruspe-GPaste-724def1/src/daemon/gpaste-bus-object.h000066400000000000000000000015371521206431300224530ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #pragma once #include G_BEGIN_DECLS #define G_PASTE_TYPE_BUS_OBJECT (g_paste_bus_object_get_type ()) G_PASTE_DERIVABLE_TYPE (BusObject, bus_object, BUS_OBJECT, GObject) struct _GPasteBusObjectClass { GObjectClass parent_class; /*< pure virtual >*/ gboolean (*register_on_connection) (GPasteBusObject *self, GDBusConnection *connection, GError **error); }; gboolean g_paste_bus_object_register_on_connection (GPasteBusObject *self, GDBusConnection *connection, GError **error); G_END_DECLS Keruspe-GPaste-724def1/src/daemon/gpaste-bus.c000066400000000000000000000107151521206431300212000ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #include #include #include struct _GPasteBus { GObject parent_instance; }; typedef struct { GDBusConnection *connection; guint64 id_on_bus; GPasteBusAcquiredCallback on_bus_acquired; gpointer user_data; } GPasteBusPrivate; G_PASTE_DEFINE_TYPE_WITH_PRIVATE (Bus, bus, G_TYPE_OBJECT) enum { NAME_LOST, LAST_SIGNAL }; static guint64 signals[LAST_SIGNAL] = { 0 }; static void g_paste_bus_on_bus_acquired (GDBusConnection *connection, const char *name G_GNUC_UNUSED, gpointer user_data) { GPasteBus *self = user_data; GPasteBusPrivate *priv = g_paste_bus_get_instance_private (self); priv->connection = g_object_ref (connection); if (priv->on_bus_acquired) priv->on_bus_acquired (self, priv->user_data); } static void g_paste_bus_on_name_lost (GDBusConnection *connection G_GNUC_UNUSED, const char *name G_GNUC_UNUSED, gpointer user_data) { g_signal_emit (G_PASTE_BUS (user_data), signals[NAME_LOST], 0, /* detail */ NULL); } /** * g_paste_bus_own_name: * @self: the #GPasteBus * * Own the bus name */ G_PASTE_VISIBLE void g_paste_bus_own_name (GPasteBus *self) { g_return_if_fail (_G_PASTE_IS_BUS (self)); GPasteBusPrivate *priv = g_paste_bus_get_instance_private (self); g_return_if_fail (!priv->id_on_bus); priv->id_on_bus = g_bus_own_name (G_BUS_TYPE_SESSION, G_PASTE_BUS_NAME, G_BUS_NAME_OWNER_FLAGS_NONE, g_paste_bus_on_bus_acquired, NULL, /* on_name_acquired */ g_paste_bus_on_name_lost, g_object_ref (self), g_object_unref); } /** * g_paste_bus_get_connection: * @self: the #GPasteBus * * returns the #GDBusConnection * * Returns: (transfer none) (nullable): the connection */ G_PASTE_VISIBLE GDBusConnection * g_paste_bus_get_connection (const GPasteBus *self) { g_return_val_if_fail (_G_PASTE_IS_BUS (self), NULL); const GPasteBusPrivate *priv = _g_paste_bus_get_instance_private (self); return priv->connection; } static void g_paste_bus_dispose (GObject *object) { GPasteBusPrivate *priv = g_paste_bus_get_instance_private (G_PASTE_BUS (object)); if (priv->connection) { g_bus_unown_name (priv->id_on_bus); g_clear_object (&priv->connection); } G_OBJECT_CLASS (g_paste_bus_parent_class)->dispose (object); } static void g_paste_bus_class_init (GPasteBusClass *klass) { G_OBJECT_CLASS (klass)->dispose = g_paste_bus_dispose; /** * GPasteDaemon::name-lost: * @gpaste_daemon: the object on which the signal was emitted * * The "name-lost" signal is emitted when the daemon has lost * its name on the bus. */ signals[NAME_LOST] = g_signal_new ("name-lost", G_PASTE_TYPE_BUS, G_SIGNAL_RUN_LAST, 0, /* class offset */ NULL, /* accumulator */ NULL, /* accumulator data */ g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); } static void g_paste_bus_init (GPasteBus *self G_GNUC_UNUSED) { } /** * g_paste_bus_new: * @on_bus_acquired: (closure user_data) (scope notified) (nullable): handler to invoke when name is acquired or %NULL * * Create a new instance of #GPasteBus * * Returns: a newly allocated #GPasteBus * free it with g_object_unref */ G_PASTE_VISIBLE GPasteBus * g_paste_bus_new (GPasteBusAcquiredCallback on_bus_acquired, gpointer user_data) { GPasteBus *self = G_PASTE_BUS (g_object_new (G_PASTE_TYPE_BUS, NULL)); GPasteBusPrivate *priv = g_paste_bus_get_instance_private (self); priv->on_bus_acquired = on_bus_acquired; priv->user_data = user_data; return self; } Keruspe-GPaste-724def1/src/daemon/gpaste-bus.h000066400000000000000000000012521521206431300212010ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #pragma once #include G_BEGIN_DECLS #define G_PASTE_TYPE_BUS (g_paste_bus_get_type ()) G_PASTE_FINAL_TYPE (Bus, bus, BUS, GObject) typedef void (*GPasteBusAcquiredCallback) (GPasteBus *bus, gpointer user_data); void g_paste_bus_own_name (GPasteBus *self); GDBusConnection *g_paste_bus_get_connection (const GPasteBus *self); GPasteBus *g_paste_bus_new (GPasteBusAcquiredCallback on_bus_acquired, gpointer user_data); G_END_DECLS Keruspe-GPaste-724def1/src/daemon/gpaste-clipboard.c000066400000000000000000001125421521206431300223470ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #include #include #include #include #include #include struct _GPasteClipboard { GObject parent_instance; }; enum { C_CHANGED, C_LAST_SIGNAL }; typedef enum { CLIPBOARD_CONTENT_NONE, CLIPBOARD_CONTENT_TEXT, CLIPBOARD_CONTENT_IMAGE, CLIPBOARD_CONTENT_FILE_LIST, CLIPBOARD_CONTENT_COLOR, } GPasteClipboardContent; typedef struct { GdkClipboard *real; gboolean is_clipboard; GPasteSettings *settings; GPasteClipboardContent content_kind; union { gchar *str; GdkFileList *file_list; GdkRGBA rgba; }; guint64 c_signals[C_LAST_SIGNAL]; } GPasteClipboardPrivate; G_PASTE_DEFINE_TYPE_WITH_PRIVATE (Clipboard, clipboard, G_TYPE_OBJECT) enum { CHANGED, LAST_SIGNAL }; static guint64 signals[LAST_SIGNAL] = { 0 }; typedef void (*GPasteClipboardTextCallback) (GPasteClipboard *self, const gchar *text, gpointer user_data); typedef void (*GPasteClipboardTextureCallback) (GPasteClipboard *self, GdkTexture *texture, gpointer user_data); /** * g_paste_clipboard_is_clipboard: * @self: a #GPasteClipboard instance * * Get whether this #GPasteClipboard is a clipboard or not (primary selection) * * Returns: %TRUE if this #GPasteClipboard is a clipboard */ G_PASTE_VISIBLE gboolean g_paste_clipboard_is_clipboard (const GPasteClipboard *self) { g_return_val_if_fail (_G_PASTE_IS_CLIPBOARD (self), FALSE); const GPasteClipboardPrivate *priv = _g_paste_clipboard_get_instance_private (self); return priv->is_clipboard; } /** * g_paste_clipboard_get_text: * @self: a #GPasteClipboard instance * * Get the text stored in the #GPasteClipboard * * Returns: read-only string containing the text or NULL */ G_PASTE_VISIBLE const gchar * g_paste_clipboard_get_text (const GPasteClipboard *self) { g_return_val_if_fail (_G_PASTE_IS_CLIPBOARD (self), NULL); const GPasteClipboardPrivate *priv = _g_paste_clipboard_get_instance_private (self); return (priv->content_kind == CLIPBOARD_CONTENT_TEXT) ? priv->str : NULL; } static const gchar * _g_paste_clipboard_private_target_name (const GPasteClipboardPrivate *priv) { return priv->is_clipboard ? "CLIPBOARD" : "PRIMARY"; } static void g_paste_clipboard_private_clear_content (GPasteClipboardPrivate *priv) { switch (priv->content_kind) { case CLIPBOARD_CONTENT_TEXT: case CLIPBOARD_CONTENT_IMAGE: g_clear_pointer (&priv->str, g_free); break; case CLIPBOARD_CONTENT_FILE_LIST: g_boxed_free (GDK_TYPE_FILE_LIST, g_steal_pointer (&priv->file_list)); break; case CLIPBOARD_CONTENT_COLOR: case CLIPBOARD_CONTENT_NONE: break; } priv->content_kind = CLIPBOARD_CONTENT_NONE; } static void g_paste_clipboard_private_set_text (GPasteClipboardPrivate *priv, const gchar *text) { g_paste_clipboard_private_clear_content (priv); g_debug ("%s: set text", _g_paste_clipboard_private_target_name (priv)); priv->content_kind = CLIPBOARD_CONTENT_TEXT; priv->str = g_strdup (text); } typedef struct { GPasteClipboard *self; GPasteClipboardTextCallback callback; gpointer user_data; } GPasteClipboardTextCallbackData; static void g_paste_clipboard_on_text_ready (GObject *source_object, GAsyncResult *res, gpointer user_data) { g_autofree GPasteClipboardTextCallbackData *data = user_data; GPasteClipboard *self = data->self; g_autoptr (GError) error = NULL; g_autofree gchar *text = gdk_clipboard_read_text_finish (GDK_CLIPBOARD (source_object), res, &error); if (!text) { if (error) g_debug ("Failed to read text from clipboard: %s", error->message); if (data->callback) data->callback (self, NULL, data->user_data); return; } GPasteClipboardPrivate *priv = g_paste_clipboard_get_instance_private (self); GPasteSettings *settings = priv->settings; g_autofree gchar *stripped = g_strstrip (g_strdup (text)); gboolean trim_items = g_paste_settings_get_trim_items (settings); const gchar *to_add = trim_items ? stripped : text; guint64 length = strlen (to_add); if (length < g_paste_settings_get_min_text_item_size (settings) || length > g_paste_settings_get_max_text_item_size (settings)) { if (data->callback) data->callback (self, NULL, data->user_data); return; } if (priv->content_kind == CLIPBOARD_CONTENT_TEXT && g_paste_str_equal (priv->str, to_add)) { if (data->callback) data->callback (self, NULL, data->user_data); return; } if (trim_items && priv->is_clipboard && !g_paste_str_equal (text, stripped)) g_paste_clipboard_select_text (self, stripped); else g_paste_clipboard_private_set_text (priv, to_add); if (data->callback) data->callback (self, priv->str, data->user_data); } static void g_paste_clipboard_set_text (GPasteClipboard *self, GPasteClipboardTextCallback callback, gpointer user_data) { g_return_if_fail (_G_PASTE_IS_CLIPBOARD (self)); const GPasteClipboardPrivate *priv = _g_paste_clipboard_get_instance_private (self); GPasteClipboardTextCallbackData *data = g_new (GPasteClipboardTextCallbackData, 1); data->self = self; data->callback = callback; data->user_data = user_data; gdk_clipboard_read_text_async (priv->real, NULL, /* cancellable */ g_paste_clipboard_on_text_ready, data); } /** * g_paste_clipboard_select_text: * @self: a #GPasteClipboard instance * @text: the text to select * * Put the text into the #GPasteClipboard and the intern GdkClipboard */ G_PASTE_VISIBLE void g_paste_clipboard_select_text (GPasteClipboard *self, const gchar *text) { g_return_if_fail (_G_PASTE_IS_CLIPBOARD (self)); g_return_if_fail (text); g_return_if_fail (g_utf8_validate (text, -1, NULL)); GPasteClipboardPrivate *priv = g_paste_clipboard_get_instance_private (self); g_debug ("%s: select text", _g_paste_clipboard_private_target_name (priv)); /* Avoid cycling twice as gdk_clipboard_set_text will make the clipboards manager react */ g_paste_clipboard_private_set_text (priv, text); gdk_clipboard_set_text (priv->real, text); } static void g_paste_clipboard_sync_ready (GObject *source_object, GAsyncResult *res, gpointer user_data) { g_autoptr (GError) error = NULL; g_autofree gchar *text = gdk_clipboard_read_text_finish (GDK_CLIPBOARD (source_object), res, &error); if (error) g_debug ("Failed to sync clipboard text: %s", error->message); else if (text) g_paste_clipboard_select_text (user_data, text); } /** * g_paste_clipboard_sync_text: * @self: the source #GPasteClipboard instance * @other: the target #GPasteClipboard instance * * Synchronise the text between two clipboards */ G_PASTE_VISIBLE void g_paste_clipboard_sync_text (const GPasteClipboard *self, GPasteClipboard *other) { g_return_if_fail (_G_PASTE_IS_CLIPBOARD (self)); g_return_if_fail (_G_PASTE_IS_CLIPBOARD (other)); const GPasteClipboardPrivate *priv = _g_paste_clipboard_get_instance_private (self); gdk_clipboard_read_text_async (priv->real, NULL, g_paste_clipboard_sync_ready, other); } /** * g_paste_clipboard_clear: * @self: a #GPasteClipboard instance * * Clears the content of the clipboard */ G_PASTE_VISIBLE void g_paste_clipboard_clear (GPasteClipboard *self) { g_return_if_fail (_G_PASTE_IS_CLIPBOARD (self)); GPasteClipboardPrivate *priv = g_paste_clipboard_get_instance_private (self); /* We're already clear, don't enter an infinite event loop */ if (priv->content_kind == CLIPBOARD_CONTENT_NONE) return; g_debug ("%s: clear", _g_paste_clipboard_private_target_name (priv)); g_paste_clipboard_private_clear_content (priv); if (gdk_clipboard_is_local (priv->real)) gdk_clipboard_set_content (priv->real, NULL); } static void g_paste_clipboard_store_async_done (GObject *source_object, GAsyncResult *res, gpointer user_data G_GNUC_UNUSED) { g_autoptr (GError) error = NULL; if (!gdk_clipboard_store_finish (GDK_CLIPBOARD (source_object), res, &error)) g_warning ("Failed to store clipboard: %s", error->message); } /** * g_paste_clipboard_store: * @self: a #GPasteClipboard instance * * Store the contents of the clipboard before exiting */ G_PASTE_VISIBLE void g_paste_clipboard_store (GPasteClipboard *self) { g_return_if_fail (_G_PASTE_IS_CLIPBOARD (self)); GPasteClipboardPrivate *priv = g_paste_clipboard_get_instance_private (self); g_debug ("%s: store", _g_paste_clipboard_private_target_name (priv)); gdk_clipboard_store_async (priv->real, G_PRIORITY_DEFAULT, NULL, /* cancellable */ g_paste_clipboard_store_async_done, NULL); } /** * g_paste_clipboard_get_image_checksum: * @self: a #GPasteClipboard instance * * Get the checksum of the image stored in the #GPasteClipboard * * Returns: read-only string containing the checksum of the image stored in the #GPasteClipboard or NULL */ G_PASTE_VISIBLE const gchar * g_paste_clipboard_get_image_checksum (const GPasteClipboard *self) { g_return_val_if_fail (_G_PASTE_IS_CLIPBOARD (self), NULL); const GPasteClipboardPrivate *priv = _g_paste_clipboard_get_instance_private (self); return (priv->content_kind == CLIPBOARD_CONTENT_IMAGE) ? priv->str : NULL; } static void g_paste_clipboard_private_set_image_checksum (GPasteClipboardPrivate *priv, const gchar *image_checksum) { g_paste_clipboard_private_clear_content (priv); priv->content_kind = CLIPBOARD_CONTENT_IMAGE; priv->str = g_strdup (image_checksum); } static gboolean g_paste_file_list_equal (GdkFileList *a, GdkFileList *b) { if (a == b) return TRUE; if (!a || !b) return FALSE; GSList *fa = gdk_file_list_get_files (a); GSList *fb = gdk_file_list_get_files (b); for (; fa && fb; fa = fa->next, fb = fb->next) { if (!g_file_equal (G_FILE (fa->data), G_FILE (fb->data))) return FALSE; } return !fa && !fb; } static void g_paste_clipboard_private_set_color (GPasteClipboardPrivate *priv, const GdkRGBA *rgba) { g_paste_clipboard_private_clear_content (priv); g_debug ("%s: set color", _g_paste_clipboard_private_target_name (priv)); priv->content_kind = CLIPBOARD_CONTENT_COLOR; priv->rgba = *rgba; } static void g_paste_clipboard_private_set_file_list (GPasteClipboardPrivate *priv, GdkFileList *file_list) { g_paste_clipboard_private_clear_content (priv); g_debug ("%s: set file list", _g_paste_clipboard_private_target_name (priv)); if (file_list) { priv->content_kind = CLIPBOARD_CONTENT_FILE_LIST; priv->file_list = g_boxed_copy (GDK_TYPE_FILE_LIST, file_list); } } static void g_paste_clipboard_private_select_texture (GPasteClipboardPrivate *priv, GdkTexture *texture, const gchar *checksum) { g_return_if_fail (GDK_IS_TEXTURE (texture)); g_debug ("%s: select image", _g_paste_clipboard_private_target_name (priv)); g_paste_clipboard_private_set_image_checksum (priv, checksum); gdk_clipboard_set (priv->real, GDK_TYPE_TEXTURE, texture); } typedef struct { GPasteClipboard *self; GPasteClipboardTextureCallback callback; gpointer user_data; } GPasteClipboardTextureCallbackData; static void g_paste_clipboard_on_texture_ready (GObject *source_object, GAsyncResult *res, gpointer user_data) { g_autofree GPasteClipboardTextureCallbackData *data = user_data; GPasteClipboard *self = data->self; g_autoptr (GError) error = NULL; /* Transfer full — we own this ref */ g_autoptr (GdkTexture) texture = gdk_clipboard_read_texture_finish (GDK_CLIPBOARD (source_object), res, &error); if (!texture) { if (error) g_debug ("Failed to read texture from clipboard: %s", error->message); if (data->callback) data->callback (self, NULL, data->user_data); return; } GPasteClipboardPrivate *priv = g_paste_clipboard_get_instance_private (self); g_autofree gchar *checksum = g_paste_gtk_util_compute_checksum (texture); GdkTexture *result = NULL; if (priv->content_kind == CLIPBOARD_CONTENT_IMAGE && g_paste_str_equal (checksum, priv->str)) { /* Same image, nothing to do */ } else { g_paste_clipboard_private_select_texture (priv, texture, checksum); result = texture; /* borrowed from the g_autoptr above */ } if (data->callback) data->callback (self, result, data->user_data); } static void g_paste_clipboard_set_texture (GPasteClipboard *self, GPasteClipboardTextureCallback callback, gpointer user_data) { g_return_if_fail (_G_PASTE_IS_CLIPBOARD (self)); const GPasteClipboardPrivate *priv = _g_paste_clipboard_get_instance_private (self); GPasteClipboardTextureCallbackData *data = g_new (GPasteClipboardTextureCallbackData, 1); data->self = self; data->callback = callback; data->user_data = user_data; gdk_clipboard_read_texture_async (priv->real, NULL, /* cancellable */ g_paste_clipboard_on_texture_ready, data); } typedef void (*GPasteClipboardRGBACallback) (GPasteClipboard *self, const GdkRGBA *rgba, gpointer user_data); typedef struct { GPasteClipboard *self; GPasteClipboardRGBACallback callback; gpointer user_data; } GPasteClipboardRGBACallbackData; static void g_paste_clipboard_on_rgba_ready (GObject *source_object, GAsyncResult *res, gpointer user_data) { g_autofree GPasteClipboardRGBACallbackData *data = user_data; GPasteClipboard *self = data->self; g_autoptr (GError) error = NULL; const GValue *value = gdk_clipboard_read_value_finish (GDK_CLIPBOARD (source_object), res, &error); if (!value) { if (error) g_debug ("Failed to read color from clipboard: %s", error->message); if (data->callback) data->callback (self, NULL, data->user_data); return; } const GdkRGBA *rgba = g_value_get_boxed (value); if (!rgba) { if (data->callback) data->callback (self, NULL, data->user_data); return; } GPasteClipboardPrivate *priv = g_paste_clipboard_get_instance_private (self); if (priv->content_kind == CLIPBOARD_CONTENT_COLOR && gdk_rgba_equal (rgba, &priv->rgba)) { if (data->callback) data->callback (self, NULL, data->user_data); return; } g_paste_clipboard_private_set_color (priv, rgba); if (data->callback) data->callback (self, &priv->rgba, data->user_data); } static void g_paste_clipboard_set_color (GPasteClipboard *self, GPasteClipboardRGBACallback callback, gpointer user_data) { g_return_if_fail (_G_PASTE_IS_CLIPBOARD (self)); const GPasteClipboardPrivate *priv = _g_paste_clipboard_get_instance_private (self); GPasteClipboardRGBACallbackData *data = g_new (GPasteClipboardRGBACallbackData, 1); data->self = self; data->callback = callback; data->user_data = user_data; gdk_clipboard_read_value_async (priv->real, GDK_TYPE_RGBA, G_PRIORITY_DEFAULT, NULL, /* cancellable */ g_paste_clipboard_on_rgba_ready, data); } typedef void (*GPasteClipboardSpecialAtomCallback) (GPasteClipboard *self, GPasteSpecialAtom atom, GBytes *bytes, gpointer user_data); typedef struct { GPasteClipboard *self; GPasteSpecialAtom atom; GPasteClipboardSpecialAtomCallback callback; gpointer user_data; } GPasteClipboardSpecialAtomData; static void g_paste_clipboard_on_special_atom_bytes_ready (GObject *source_object, GAsyncResult *res, gpointer user_data) { g_autofree GPasteClipboardSpecialAtomData *data = user_data; g_autoptr (GError) error = NULL; g_autoptr (GBytes) bytes = g_input_stream_read_bytes_finish (G_INPUT_STREAM (source_object), res, &error); if (error || !bytes) { if (error) g_debug ("Failed to read special atom bytes: %s", error->message); if (data->callback) data->callback (data->self, data->atom, NULL, data->user_data); return; } if (data->callback) data->callback (data->self, data->atom, bytes, data->user_data); } static void g_paste_clipboard_on_special_atom_stream_ready (GObject *source_object, GAsyncResult *res, gpointer user_data) { g_autofree GPasteClipboardSpecialAtomData *data = user_data; g_autoptr (GError) error = NULL; const gchar *actual_mime = NULL; g_autoptr (GInputStream) stream = gdk_clipboard_read_finish (GDK_CLIPBOARD (source_object), res, &actual_mime, &error); if (error || !stream) { if (error) g_debug ("Failed to read special atom stream: %s", error->message); if (data->callback) data->callback (data->self, data->atom, NULL, data->user_data); return; } g_input_stream_read_bytes_async (stream, G_MAXUINT, G_PRIORITY_DEFAULT, NULL, /* cancellable */ g_paste_clipboard_on_special_atom_bytes_ready, g_steal_pointer (&data)); } static void g_paste_clipboard_fetch_special_atom (GPasteClipboard *self, GPasteSpecialAtom atom, GPasteClipboardSpecialAtomCallback callback, gpointer user_data) { g_return_if_fail (_G_PASTE_IS_CLIPBOARD (self)); const GPasteClipboardPrivate *priv = _g_paste_clipboard_get_instance_private (self); GPasteClipboardSpecialAtomData *data = g_new (GPasteClipboardSpecialAtomData, 1); data->self = self; data->atom = atom; data->callback = callback; data->user_data = user_data; // TODO: should/can we fetch all mime types at once? const gchar *mime_types[] = { g_paste_special_atom_get (atom), NULL }; gdk_clipboard_read_async (priv->real, mime_types, G_PRIORITY_DEFAULT, NULL, /* cancellable */ g_paste_clipboard_on_special_atom_stream_ready, data); } typedef struct { GPasteClipboard *self; GPasteClipboardUpdateCallback callback; gpointer user_data; gint pending; GPasteClipboardContent content_kind; union { const gchar *text; GdkTexture *texture; GdkFileList *file_list; const GdkRGBA *rgba; }; GPasteBinaryData *special_atom[G_PASTE_SPECIAL_ATOM_LAST]; } GPasteClipboardUpdateData; static void g_paste_clipboard_update_maybe_done (GPasteClipboardUpdateData *data) { if (--data->pending > 0) return; GPasteItem *item = NULL; switch (data->content_kind) { case CLIPBOARD_CONTENT_FILE_LIST: if (data->file_list) item = G_PASTE_ITEM (g_paste_uris_item_new (data->file_list)); break; case CLIPBOARD_CONTENT_COLOR: if (data->rgba) item = G_PASTE_ITEM (g_paste_color_item_new (data->rgba)); break; case CLIPBOARD_CONTENT_TEXT: if (data->text) item = G_PASTE_ITEM (g_paste_text_item_new (data->text)); break; case CLIPBOARD_CONTENT_IMAGE: if (data->texture) item = G_PASTE_ITEM (g_paste_image_item_new (data->texture)); break; case CLIPBOARD_CONTENT_NONE: break; } if (item && (data->content_kind == CLIPBOARD_CONTENT_TEXT || data->content_kind == CLIPBOARD_CONTENT_FILE_LIST)) { for (GPasteSpecialAtom atom = G_PASTE_SPECIAL_ATOM_FIRST; atom < G_PASTE_SPECIAL_ATOM_LAST; ++atom) { if (data->special_atom[atom]) g_paste_item_add_special_value (item, g_steal_pointer (&data->special_atom[atom])); } } if (data->callback) data->callback (data->self, item, data->user_data); for (GPasteSpecialAtom atom = G_PASTE_SPECIAL_ATOM_FIRST; atom < G_PASTE_SPECIAL_ATOM_LAST; ++atom) g_clear_object (&data->special_atom[atom]); g_free (data); } static void g_paste_clipboard_update_on_file_list_ready (GObject *source_object, GAsyncResult *res, gpointer user_data) { GPasteClipboardUpdateData *data = user_data; GPasteClipboard *self = data->self; g_autoptr (GError) error = NULL; const GValue *value = gdk_clipboard_read_value_finish (GDK_CLIPBOARD (source_object), res, &error); if (!value) { if (error) g_debug ("Failed to read file list from clipboard: %s", error->message); g_paste_clipboard_update_maybe_done (data); return; } GdkFileList *file_list = g_value_get_boxed (value); if (!gdk_file_list_get_files (file_list)) { g_paste_clipboard_update_maybe_done (data); return; } GPasteClipboardPrivate *priv = g_paste_clipboard_get_instance_private (self); if (g_paste_file_list_equal (priv->file_list, file_list)) { g_paste_clipboard_update_maybe_done (data); return; } g_paste_clipboard_private_set_file_list (priv, file_list); data->file_list = priv->file_list; g_paste_clipboard_update_maybe_done (data); } static void g_paste_clipboard_fetch_file_list (GPasteClipboard *self, GPasteClipboardUpdateData *data) { const GPasteClipboardPrivate *priv = _g_paste_clipboard_get_instance_private (self); gdk_clipboard_read_value_async (priv->real, GDK_TYPE_FILE_LIST, G_PRIORITY_DEFAULT, NULL, /* cancellable */ g_paste_clipboard_update_on_file_list_ready, data); } static void g_paste_clipboard_update_on_text_ready (GPasteClipboard *self G_GNUC_UNUSED, const gchar *text, gpointer user_data) { GPasteClipboardUpdateData *data = user_data; data->text = text; g_paste_clipboard_update_maybe_done (data); } static void g_paste_clipboard_update_on_texture_ready (GPasteClipboard *self G_GNUC_UNUSED, GdkTexture *texture, gpointer user_data) { GPasteClipboardUpdateData *data = user_data; data->texture = texture; g_paste_clipboard_update_maybe_done (data); } static void g_paste_clipboard_update_on_color_ready (GPasteClipboard *self G_GNUC_UNUSED, const GdkRGBA *rgba, gpointer user_data) { GPasteClipboardUpdateData *data = user_data; data->rgba = rgba; g_paste_clipboard_update_maybe_done (data); } static void g_paste_clipboard_update_on_special_atom_ready (GPasteClipboard *self G_GNUC_UNUSED, GPasteSpecialAtom atom, GBytes *bytes, gpointer user_data) { GPasteClipboardUpdateData *data = user_data; if (bytes && g_bytes_get_size (bytes) > 0) data->special_atom[atom] = g_paste_binary_data_new (atom, g_bytes_ref (bytes)); g_paste_clipboard_update_maybe_done (data); } /** * g_paste_clipboard_update: * @self: a #GPasteClipboard instance * @callback: (scope async): the callback to be called when the clipboard content is ready * @user_data: user data to pass to @callback * * Read the current clipboard content and update the internal cache. * The callback receives a newly created #GPasteItem or NULL if the content is * unchanged, unrecognised, or the selection has no owner. */ G_PASTE_VISIBLE void g_paste_clipboard_update (GPasteClipboard *self, GPasteClipboardUpdateCallback callback, gpointer user_data) { g_return_if_fail (_G_PASTE_IS_CLIPBOARD (self)); GPasteClipboardPrivate *priv = g_paste_clipboard_get_instance_private (self); GdkContentFormats *formats = gdk_clipboard_get_formats (priv->real); GPasteClipboardContent content_kind = CLIPBOARD_CONTENT_NONE; if (gdk_content_formats_contain_gtype (formats, GDK_TYPE_FILE_LIST)) content_kind = CLIPBOARD_CONTENT_FILE_LIST; else if (gdk_content_formats_contain_gtype (formats, GDK_TYPE_RGBA)) content_kind = CLIPBOARD_CONTENT_COLOR; else if (g_paste_settings_get_images_support (priv->settings) && gdk_content_formats_contain_gtype (formats, GDK_TYPE_TEXTURE)) content_kind = CLIPBOARD_CONTENT_IMAGE; else if (gdk_content_formats_contain_gtype (formats, G_TYPE_STRING)) content_kind = CLIPBOARD_CONTENT_TEXT; else { /* No recognized content: the selection was released or the owner * provides no type we handle. Clear our cache so callers see an * empty clipboard and act accordingly (e.g. ensure_not_empty). */ g_paste_clipboard_private_clear_content (priv); if (callback) callback (self, NULL, user_data); return; } GPasteClipboardUpdateData *data = g_new0 (GPasteClipboardUpdateData, 1); data->self = self; data->callback = callback; data->user_data = user_data; data->pending = 1; data->content_kind = content_kind; gboolean atom_available[G_PASTE_SPECIAL_ATOM_LAST] = { FALSE }; if (content_kind == CLIPBOARD_CONTENT_FILE_LIST || (content_kind == CLIPBOARD_CONTENT_TEXT && g_paste_settings_get_rich_text_support (priv->settings))) { for (GPasteSpecialAtom atom = G_PASTE_SPECIAL_ATOM_FIRST; atom < G_PASTE_SPECIAL_ATOM_LAST; ++atom) { if (gdk_content_formats_contain_mime_type (formats, g_paste_special_atom_get (atom))) atom_available[atom] = TRUE; } } ++data->pending; switch (content_kind) { case CLIPBOARD_CONTENT_FILE_LIST: g_paste_clipboard_fetch_file_list (self, data); break; case CLIPBOARD_CONTENT_COLOR: g_paste_clipboard_set_color (self, g_paste_clipboard_update_on_color_ready, data); break; case CLIPBOARD_CONTENT_TEXT: g_paste_clipboard_set_text (self, g_paste_clipboard_update_on_text_ready, data); break; case CLIPBOARD_CONTENT_IMAGE: g_paste_clipboard_set_texture (self, g_paste_clipboard_update_on_texture_ready, data); break; case CLIPBOARD_CONTENT_NONE: g_assert_not_reached (); } for (GPasteSpecialAtom atom = G_PASTE_SPECIAL_ATOM_FIRST; atom < G_PASTE_SPECIAL_ATOM_LAST; ++atom) { if (atom_available[atom]) { ++data->pending; g_paste_clipboard_fetch_special_atom (self, atom, g_paste_clipboard_update_on_special_atom_ready, data); } } g_paste_clipboard_update_maybe_done (data); } /** * g_paste_clipboard_select_item: * @self: a #GPasteClipboard instance * @item: the item to select * * Put the value of the item into the #GPasteClipboard and the intern GdkClipboard * * Returns: %FALSE if the item was invalid, %TRUE otherwise */ G_PASTE_VISIBLE gboolean g_paste_clipboard_select_item (GPasteClipboard *self, GPasteItem *item) { g_return_val_if_fail (_G_PASTE_IS_CLIPBOARD (self), FALSE); g_return_val_if_fail (_G_PASTE_IS_ITEM (item), FALSE); GPasteClipboardPrivate *priv = g_paste_clipboard_get_instance_private (self); g_debug ("%s: select item", _g_paste_clipboard_private_target_name (priv)); if (_G_PASTE_IS_IMAGE_ITEM (item)) { GdkTexture *texture = g_paste_image_item_get_image (G_PASTE_IMAGE_ITEM (item)); const gchar *checksum = g_paste_image_item_get_checksum (G_PASTE_IMAGE_ITEM (item)); if (!texture) return FALSE; g_paste_clipboard_private_select_texture (priv, texture, checksum); return TRUE; } if (_G_PASTE_IS_COLOR_ITEM (item)) { const GdkRGBA *rgba = g_paste_color_item_get_rgba (G_PASTE_COLOR_ITEM (item)); g_paste_clipboard_private_set_color (priv, rgba); gdk_clipboard_set (priv->real, GDK_TYPE_RGBA, rgba); return TRUE; } g_autoptr (GPtrArray) providers = g_ptr_array_new (); if (_G_PASTE_IS_URIS_ITEM (item)) { GdkFileList *file_list = g_paste_uris_item_get_file_list (G_PASTE_URIS_ITEM (item)); g_paste_clipboard_private_set_file_list (priv, file_list); g_ptr_array_add (providers, gdk_content_provider_new_typed (GDK_TYPE_FILE_LIST, file_list)); } else { const gchar *real_value = g_paste_item_get_real_value (item); g_paste_clipboard_private_set_text (priv, real_value); g_ptr_array_add (providers, gdk_content_provider_new_typed (G_TYPE_STRING, real_value)); } for (const GSList *sv = g_paste_item_get_special_values (item); sv; sv = sv->next) { const GPasteBinaryData *v = sv->data; g_ptr_array_add (providers, gdk_content_provider_new_for_bytes (g_paste_special_atom_get (g_paste_binary_data_get_mime (v)), g_paste_binary_data_get_bytes (v))); } g_autoptr (GdkContentProvider) provider = NULL; if (providers->len == 1) provider = g_ptr_array_index (providers, 0); else provider = gdk_content_provider_new_union ((GdkContentProvider **) providers->pdata, providers->len); gdk_clipboard_set_content (priv->real, provider); return TRUE; } /** * g_paste_clipboard_ensure_not_empty: * @self: a #GPasteClipboard instance * @history: a #GPasteHistory instance * * Ensure the clipboard has some contents (as long as the history's not empty) */ G_PASTE_VISIBLE void g_paste_clipboard_ensure_not_empty (GPasteClipboard *self, GPasteHistory *history) { g_return_if_fail (_G_PASTE_IS_CLIPBOARD (self)); g_return_if_fail (_G_PASTE_IS_HISTORY (history)); const GPasteClipboardPrivate *priv = _g_paste_clipboard_get_instance_private (self); if (priv->content_kind != CLIPBOARD_CONTENT_NONE) return; const GList *hist = g_paste_history_get_history (history); if (hist) { GPasteItem *item = hist->data; if (!g_paste_clipboard_select_item (self, item)) g_paste_history_remove (history, 0); } } static void g_paste_clipboard_on_real_changed (GPasteClipboard *self) { const GPasteClipboardPrivate *priv = _g_paste_clipboard_get_instance_private (self); /* Unlike GTK3's owner-change, GdkClipboard::changed fires for local writes too. * Skip them to avoid re-processing our own clipboard content. */ if (gdk_clipboard_is_local (priv->real)) return; /* GTK4 fires changed twice per external selection event: once immediately * with empty formats (before TARGETS resolves) and once with the real * format list after TARGETS have been fetched. Only process the latter — * equivalent to GTK3 filtering out GDK_OWNER_CHANGE_DESTROY/CLOSE. */ if (gdk_content_formats_is_empty (gdk_clipboard_get_formats (priv->real))) return; g_debug ("%s: owner change", _g_paste_clipboard_private_target_name (priv)); g_signal_emit (self, signals[CHANGED], 0); } static void g_paste_clipboard_dispose (GObject *object) { GPasteClipboardPrivate *priv = g_paste_clipboard_get_instance_private (G_PASTE_CLIPBOARD (object)); if (priv->settings) { g_signal_handler_disconnect (priv->real, priv->c_signals[C_CHANGED]); g_clear_object (&priv->real); g_clear_object (&priv->settings); } G_OBJECT_CLASS (g_paste_clipboard_parent_class)->dispose (object); } static void g_paste_clipboard_finalize (GObject *object) { GPasteClipboardPrivate *priv = g_paste_clipboard_get_instance_private (G_PASTE_CLIPBOARD (object)); g_paste_clipboard_private_clear_content (priv); G_OBJECT_CLASS (g_paste_clipboard_parent_class)->finalize (object); } static void g_paste_clipboard_class_init (GPasteClipboardClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); object_class->dispose = g_paste_clipboard_dispose; object_class->finalize = g_paste_clipboard_finalize; /** * GPasteClipboard::changed: * @clipboard: the object on which the signal was emitted * * The "changed" signal is emitted when GPaste receives an event that * indicates that the ownership of the clipboard has changed. */ signals[CHANGED] = g_signal_new ("changed", G_PASTE_TYPE_CLIPBOARD, G_SIGNAL_RUN_FIRST, 0, /* class offset */ NULL, /* accumulator */ NULL, /* accumulator data */ g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); } static void g_paste_clipboard_init (GPasteClipboard *self G_GNUC_UNUSED) { } static GPasteClipboard * _g_paste_clipboard_new (GPasteSettings *settings, gboolean is_clipboard) { GPasteClipboard *self = g_object_new (G_PASTE_TYPE_CLIPBOARD, NULL); GPasteClipboardPrivate *priv = g_paste_clipboard_get_instance_private (self); GdkDisplay *display = gdk_display_get_default (); priv->real = g_object_ref (is_clipboard ? gdk_display_get_clipboard (display) : gdk_display_get_primary_clipboard (display)); priv->is_clipboard = is_clipboard; priv->settings = g_object_ref (settings); priv->c_signals[C_CHANGED] = g_signal_connect_swapped (priv->real, "changed", G_CALLBACK (g_paste_clipboard_on_real_changed), self); return self; } /** * g_paste_clipboard_new_clipboard: * @settings: a #GPasteSettings instance * * Create a new instance of #GPasteClipboard * * Returns: a newly allocated #GPasteClipboard * free it with g_object_unref */ G_PASTE_VISIBLE GPasteClipboard * g_paste_clipboard_new_clipboard (GPasteSettings *settings) { g_return_val_if_fail (_G_PASTE_IS_SETTINGS (settings), NULL); return _g_paste_clipboard_new (settings, TRUE); } /** * g_paste_clipboard_new_primary: * @settings: a #GPasteSettings instance * * Create a new instance of #GPasteClipboard (primary selection) * * Returns: a newly allocated #GPasteClipboard * free it with g_object_unref */ G_PASTE_VISIBLE GPasteClipboard * g_paste_clipboard_new_primary (GPasteSettings *settings) { g_return_val_if_fail (_G_PASTE_IS_SETTINGS (settings), NULL); return _g_paste_clipboard_new (settings, FALSE); } Keruspe-GPaste-724def1/src/daemon/gpaste-clipboard.h000066400000000000000000000036551521206431300223600ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #pragma once #include #include G_BEGIN_DECLS #define G_PASTE_TYPE_CLIPBOARD (g_paste_clipboard_get_type ()) G_PASTE_FINAL_TYPE (Clipboard, clipboard, CLIPBOARD, GObject) typedef void (*GPasteClipboardUpdateCallback) (GPasteClipboard *self, GPasteItem *item, gpointer user_data); void g_paste_clipboard_update (GPasteClipboard *self, GPasteClipboardUpdateCallback callback, gpointer user_data); gboolean g_paste_clipboard_is_clipboard (const GPasteClipboard *self); const gchar *g_paste_clipboard_get_text (const GPasteClipboard *self); void g_paste_clipboard_select_text (GPasteClipboard *self, const gchar *text); void g_paste_clipboard_sync_text (const GPasteClipboard *self, GPasteClipboard *other); void g_paste_clipboard_clear (GPasteClipboard *self); void g_paste_clipboard_store (GPasteClipboard *self); const gchar *g_paste_clipboard_get_image_checksum (const GPasteClipboard *self); gboolean g_paste_clipboard_select_item (GPasteClipboard *self, GPasteItem *item); void g_paste_clipboard_ensure_not_empty (GPasteClipboard *self, GPasteHistory *history); GPasteClipboard *g_paste_clipboard_new_clipboard (GPasteSettings *settings); GPasteClipboard *g_paste_clipboard_new_primary (GPasteSettings *settings); G_END_DECLS Keruspe-GPaste-724def1/src/daemon/gpaste-clipboards-manager.c000066400000000000000000000263451521206431300241470ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #include struct _GPasteClipboardsManager { GObject parent_instance; }; typedef struct { GPasteClipboard *clipboard; GSignalGroup *signal_group; } _Clipboard; typedef struct { GSList *clipboards; GPasteHistory *history; GSignalGroup *history_signals; GPasteSettings *settings; } GPasteClipboardsManagerPrivate; G_PASTE_DEFINE_TYPE_WITH_PRIVATE (ClipboardsManager, clipboards_manager, G_TYPE_OBJECT) static void g_paste_clipboards_manager_notify (GPasteClipboard *clipboard, gpointer user_data); static void g_paste_clipboards_manager_bootstrap_ready (GPasteClipboard *clipboard, GPasteItem *item G_GNUC_UNUSED, gpointer user_data) { GPasteClipboardsManagerPrivate *priv = user_data; g_paste_clipboard_ensure_not_empty (clipboard, priv->history); } /** * g_paste_clipboards_manager_add_clipboard: * @self: a #GPasteClipboardsManager instance * @clipboard: (transfer none): the GPasteClipboard to add * * Add a #GPasteClipboard to the #GPasteClipboardsManager */ G_PASTE_VISIBLE void g_paste_clipboards_manager_add_clipboard (GPasteClipboardsManager *self, GPasteClipboard *clipboard) { g_return_if_fail (_G_PASTE_IS_CLIPBOARDS_MANAGER (self)); g_return_if_fail (_G_PASTE_IS_CLIPBOARD (clipboard)); GPasteClipboardsManagerPrivate *priv = g_paste_clipboards_manager_get_instance_private (self); _Clipboard *clip = g_new0 (_Clipboard, 1); clip->clipboard = g_object_ref (clipboard); clip->signal_group = g_signal_group_new (G_PASTE_TYPE_CLIPBOARD); g_signal_group_connect (clip->signal_group, "changed", G_CALLBACK (g_paste_clipboards_manager_notify), priv); priv->clipboards = g_slist_prepend (priv->clipboards, clip); g_paste_clipboard_update (clipboard, g_paste_clipboards_manager_bootstrap_ready, priv); } /** * g_paste_clipboards_manager_sync_from_to: * @self: a #GPasteClipboardsManager instance * @from_clipboard: whether we sync from clipboard or to clipboard * * Sync a clipboard into another */ G_PASTE_VISIBLE void g_paste_clipboards_manager_sync_from_to (GPasteClipboardsManager *self, gboolean from_clipboard) { g_return_if_fail (_G_PASTE_IS_CLIPBOARDS_MANAGER (self)); const GPasteClipboardsManagerPrivate *priv = _g_paste_clipboards_manager_get_instance_private (self); GPasteClipboard *_from = NULL; GPasteClipboard *_to = NULL; g_debug ("clipboards-manager: sync_from_to"); for (GSList *clipboard = priv->clipboards; clipboard; clipboard = g_slist_next (clipboard)) { _Clipboard *_clip = clipboard->data; GPasteClipboard *clip = _clip->clipboard; if (g_paste_clipboard_is_clipboard (clip) == from_clipboard) _from = clip; else _to = clip; } if (_from && _to) g_paste_clipboard_sync_text (_from, _to); } static void g_paste_clipboards_manager_notify_finish (GPasteClipboardsManagerPrivate *priv, GPasteClipboard *clipboard, GPasteItem *item, const gchar *synchronized_text, gboolean something_in_clipboard) { GPasteHistory *history = priv->history; g_debug ("clipboards-manager: notify finish"); if (item) g_paste_history_add (history, item); if (!something_in_clipboard) g_paste_clipboard_ensure_not_empty (clipboard, history); if (synchronized_text) { g_debug ("clipboards-manager: synchronizing clipboards"); for (GSList *_clipboard = priv->clipboards; _clipboard; _clipboard = g_slist_next (_clipboard)) { _Clipboard *_clip = _clipboard->data; GPasteClipboard *clip = _clip->clipboard; if (clipboard == clip) continue; const gchar *text = g_paste_clipboard_get_text (clip); if (!text || !g_paste_str_equal (text, synchronized_text)) g_paste_clipboard_select_text (clip, synchronized_text); } } } typedef struct { GPasteClipboardsManagerPrivate *priv; gboolean track; } GPasteClipboardsManagerUpdateData; static void g_paste_clipboards_manager_update_ready (GPasteClipboard *clipboard, GPasteItem *item, gpointer user_data) { g_autofree GPasteClipboardsManagerUpdateData *data = user_data; GPasteClipboardsManagerPrivate *priv = data->priv; g_debug ("clipboards-manager: update ready"); const gchar *synchronized_text = NULL; if (item && g_paste_clipboard_get_text (clipboard) && g_paste_settings_get_synchronize_clipboards (priv->settings)) synchronized_text = g_paste_clipboard_get_text (clipboard); if (!data->track && item) g_clear_object (&item); gboolean something_in_clipboard = !!g_paste_clipboard_get_text (clipboard) || !!g_paste_clipboard_get_image_checksum (clipboard); g_paste_clipboards_manager_notify_finish (priv, clipboard, item, synchronized_text, something_in_clipboard); } static void g_paste_clipboards_manager_notify (GPasteClipboard *clipboard, gpointer user_data) { GPasteClipboardsManagerPrivate *priv = user_data; g_debug ("clipboards-manager: notify"); GPasteSettings *settings = priv->settings; gboolean track = (g_paste_settings_get_track_changes (settings) && (g_paste_clipboard_is_clipboard (clipboard) || // We're not primary g_paste_settings_get_primary_to_history (settings) || // Or we asked that primary affects clipboard g_paste_settings_get_synchronize_clipboards (settings))); // Or primary and clipboards are synchronized hence primary will affect history through clipboard GPasteClipboardsManagerUpdateData *data = g_new0 (GPasteClipboardsManagerUpdateData, 1); data->priv = priv; data->track = track; g_paste_clipboard_update (clipboard, g_paste_clipboards_manager_update_ready, data); } /** * g_paste_clipboards_manager_activate: * @self: a #GPasteClipboardsManager instance * * Activate the #GPasteClipboardsManager */ G_PASTE_VISIBLE void g_paste_clipboards_manager_activate (GPasteClipboardsManager *self) { g_return_if_fail (_G_PASTE_IS_CLIPBOARDS_MANAGER (self)); GPasteClipboardsManagerPrivate *priv = g_paste_clipboards_manager_get_instance_private (self); for (GSList *clipboard = priv->clipboards; clipboard; clipboard = g_slist_next (clipboard)) { _Clipboard *clip = clipboard->data; g_signal_group_set_target (clip->signal_group, clip->clipboard); } } /** * g_paste_clipboards_manager_select: * @self: a #GPasteClipboardsManager instance * @item: the #GPasteItem to select * * Select a new #GPasteItem * * Returns: %FALSE if the item was invalid, %TRUE otherwise */ G_PASTE_VISIBLE gboolean g_paste_clipboards_manager_select (GPasteClipboardsManager *self, GPasteItem *item) { g_return_val_if_fail (_G_PASTE_IS_CLIPBOARDS_MANAGER (self), FALSE); g_return_val_if_fail (_G_PASTE_IS_ITEM (item), FALSE); const GPasteClipboardsManagerPrivate *priv = _g_paste_clipboards_manager_get_instance_private (self); g_debug ("clipboards-manager: select"); for (GSList *clipboard = priv->clipboards; clipboard; clipboard = g_slist_next (clipboard)) { _Clipboard *clip = clipboard->data; if (!g_paste_clipboard_select_item (clip->clipboard, item)) { g_debug ("clipboards-manager: item was invalid, deleting it"); return FALSE; } } return TRUE; } /** * g_paste_clipboards_manager_store: * @self: a #GPasteClipboardsManager instance * * Store clipboards contents before exiting */ G_PASTE_VISIBLE void g_paste_clipboards_manager_store (GPasteClipboardsManager *self) { g_return_if_fail (_G_PASTE_IS_CLIPBOARDS_MANAGER (self)); const GPasteClipboardsManagerPrivate *priv = _g_paste_clipboards_manager_get_instance_private (self); g_debug ("clipboards-manager: store"); for (GSList *clipboard = priv->clipboards; clipboard; clipboard = g_slist_next (clipboard)) { _Clipboard *clip = clipboard->data; g_paste_clipboard_store (clip->clipboard); } } static void on_item_selected (GPasteClipboardsManager *self, GPasteItem *item, GPasteHistory *history G_GNUC_UNUSED) { GPasteClipboardsManagerPrivate *priv = g_paste_clipboards_manager_get_instance_private (G_PASTE_CLIPBOARDS_MANAGER (self)); if (!g_paste_clipboards_manager_select (self, item)) g_paste_history_remove (priv->history, 0); } static void _clipboard_free (gpointer data) { _Clipboard *clip = data; g_clear_object (&clip->signal_group); g_object_unref (clip->clipboard); g_free (clip); } static void g_paste_clipboards_manager_dispose (GObject *object) { GPasteClipboardsManagerPrivate *priv = g_paste_clipboards_manager_get_instance_private (G_PASTE_CLIPBOARDS_MANAGER (object)); g_clear_object (&priv->history_signals); g_clear_object (&priv->history); g_clear_object (&priv->settings); g_clear_slist (&priv->clipboards, _clipboard_free); G_OBJECT_CLASS (g_paste_clipboards_manager_parent_class)->dispose (object); } static void g_paste_clipboards_manager_class_init (GPasteClipboardsManagerClass *klass) { G_OBJECT_CLASS (klass)->dispose = g_paste_clipboards_manager_dispose; } static void g_paste_clipboards_manager_init (GPasteClipboardsManager *self G_GNUC_UNUSED) { } /** * g_paste_clipboards_manager_new: * @history: (transfer none): a #GPasteHistory instance * @settings: (transfer none): a #GPasteSettings instance * * Create a new instance of #GPasteClipboardsManager * * Returns: a newly allocated #GPasteClipboardsManager * free it with g_object_unref */ G_PASTE_VISIBLE GPasteClipboardsManager * g_paste_clipboards_manager_new (GPasteHistory *history, GPasteSettings *settings) { g_return_val_if_fail (_G_PASTE_IS_HISTORY (history), NULL); g_return_val_if_fail (_G_PASTE_IS_SETTINGS (settings), NULL); GPasteClipboardsManager *self = g_object_new (G_PASTE_TYPE_CLIPBOARDS_MANAGER, NULL); GPasteClipboardsManagerPrivate *priv = g_paste_clipboards_manager_get_instance_private (self); priv->history = g_object_ref (history); priv->settings = g_object_ref (settings); GSignalGroup *history_signals = priv->history_signals = g_signal_group_new (G_PASTE_TYPE_HISTORY); g_signal_group_connect_swapped (history_signals, "selected", G_CALLBACK (on_item_selected), self); g_signal_group_set_target (history_signals, history); return self; } Keruspe-GPaste-724def1/src/daemon/gpaste-clipboards-manager.h000066400000000000000000000023001521206431300241350ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #pragma once #include G_BEGIN_DECLS #define G_PASTE_TYPE_CLIPBOARDS_MANAGER (g_paste_clipboards_manager_get_type ()) G_PASTE_FINAL_TYPE (ClipboardsManager, clipboards_manager, CLIPBOARDS_MANAGER, GObject) void g_paste_clipboards_manager_add_clipboard (GPasteClipboardsManager *self, GPasteClipboard *clipboard); void g_paste_clipboards_manager_sync_from_to (GPasteClipboardsManager *self, gboolean from_clipboard); void g_paste_clipboards_manager_activate (GPasteClipboardsManager *self); gboolean g_paste_clipboards_manager_select (GPasteClipboardsManager *self, GPasteItem *item); void g_paste_clipboards_manager_store (GPasteClipboardsManager *self); GPasteClipboardsManager *g_paste_clipboards_manager_new (GPasteHistory *history, GPasteSettings *settings); G_END_DECLS Keruspe-GPaste-724def1/src/daemon/gpaste-color-item.c000066400000000000000000000056411521206431300224630ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #include struct _GPasteColorItem { GPasteItem parent_instance; }; typedef struct { GdkRGBA rgba; } GPasteColorItemPrivate; G_PASTE_DEFINE_TYPE_WITH_PRIVATE (ColorItem, color_item, G_PASTE_TYPE_ITEM) /** * g_paste_color_item_get_rgba: * @self: a #GPasteColorItem instance * * Get the #GdkRGBA stored in the #GPasteColorItem * * Returns: (transfer none): read-only #GdkRGBA */ G_PASTE_VISIBLE const GdkRGBA * g_paste_color_item_get_rgba (const GPasteColorItem *self) { g_return_val_if_fail (_G_PASTE_IS_COLOR_ITEM (self), NULL); const GPasteColorItemPrivate *priv = _g_paste_color_item_get_instance_private (self); return &priv->rgba; } static gboolean g_paste_color_item_equals (const GPasteItem *self, const GPasteItem *other) { return (_G_PASTE_IS_COLOR_ITEM (other) && G_PASTE_ITEM_CLASS (g_paste_color_item_parent_class)->equals (self, other)); } static const gchar * g_paste_color_item_get_kind (const GPasteItem *self G_GNUC_UNUSED) { return "Color"; } static void g_paste_color_item_class_init (GPasteColorItemClass *klass) { GPasteItemClass *item_class = G_PASTE_ITEM_CLASS (klass); item_class->equals = g_paste_color_item_equals; item_class->get_kind = g_paste_color_item_get_kind; } static void g_paste_color_item_init (GPasteColorItem *self G_GNUC_UNUSED) { } static GPasteItem * _g_paste_color_item_new (const gchar *str, const GdkRGBA *rgba) { GPasteItem *self = g_paste_item_new (G_PASTE_TYPE_COLOR_ITEM, str); GPasteColorItemPrivate *priv = g_paste_color_item_get_instance_private (G_PASTE_COLOR_ITEM (self)); priv->rgba = *rgba; g_autofree gchar *display = g_strconcat (_("[Color]"), " ", str, NULL); g_paste_item_set_display_string (self, g_steal_pointer (&display)); return self; } /** * g_paste_color_item_new: * @rgba: (transfer none): a #GdkRGBA from the clipboard * * Create a new instance of #GPasteColorItem * * Returns: a newly allocated #GPasteColorItem * free it with g_object_unref */ G_PASTE_VISIBLE GPasteItem * g_paste_color_item_new (const GdkRGBA *rgba) { g_return_val_if_fail (rgba != NULL, NULL); g_autofree gchar *str = gdk_rgba_to_string (rgba); return _g_paste_color_item_new (str, rgba); } /** * g_paste_color_item_new_from_str: * @str: a string representation of the color * * Create a new instance of #GPasteColorItem from its string representation * * Returns: a newly allocated #GPasteColorItem * free it with g_object_unref */ G_PASTE_VISIBLE GPasteItem * g_paste_color_item_new_from_str (const gchar *str) { g_return_val_if_fail (str != NULL, NULL); GdkRGBA rgba; if (!gdk_rgba_parse (&rgba, str)) return NULL; return _g_paste_color_item_new (str, &rgba); } Keruspe-GPaste-724def1/src/daemon/gpaste-color-item.h000066400000000000000000000010541521206431300224620ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #pragma once #include #include G_BEGIN_DECLS #define G_PASTE_TYPE_COLOR_ITEM (g_paste_color_item_get_type ()) G_PASTE_FINAL_TYPE (ColorItem, color_item, COLOR_ITEM, GPasteItem) const GdkRGBA *g_paste_color_item_get_rgba (const GPasteColorItem *self); GPasteItem *g_paste_color_item_new (const GdkRGBA *rgba); GPasteItem *g_paste_color_item_new_from_str (const gchar *str); G_END_DECLS Keruspe-GPaste-724def1/src/daemon/gpaste-daemon.c000066400000000000000000001400311521206431300216450ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #include #include #include #include #include #include #include #include #include #include #include #include #define G_PASTE_SEND_DBUS_SIGNAL_FULLER(interface, sig, data, error) \ g_dbus_connection_emit_signal (priv->connection, \ NULL, /* destination_bus_name */ \ G_PASTE_DAEMON_OBJECT_PATH, \ interface, \ sig, \ data, \ error) #define G_PASTE_SEND_DBUS_SIGNAL_FULL(sig,data,error) \ G_PASTE_SEND_DBUS_SIGNAL_FULLER (G_PASTE_DAEMON_INTERFACE_NAME, G_PASTE_DAEMON_SIG_##sig, data, error) #define G_PASTE_SEND_DBUS_PROPERTIES_CHANGED(property, value) \ GVariantDict dict; \ g_variant_dict_init (&dict, NULL); \ g_variant_dict_insert_value (&dict, property, value); \ GVariant *data = g_variant_new ("(s@a{sv}@as)", \ G_PASTE_DAEMON_INTERFACE_NAME, \ g_variant_dict_end (&dict), \ g_variant_new_strv (NULL, 0)); \ G_PASTE_SEND_DBUS_SIGNAL_FULLER ("org.freedesktop.DBus.Properties", "PropertiesChanged", data, NULL) #define __NODATA g_variant_new_tuple (NULL, 0) #define __DATA(data) g_variant_new_tuple (&data, 1) #define G_PASTE_SEND_DBUS_SIGNAL(sig) G_PASTE_SEND_DBUS_SIGNAL_FULL(sig, __NODATA, NULL) #define G_PASTE_SEND_DBUS_SIGNAL_WITH_ERROR(sig) G_PASTE_SEND_DBUS_SIGNAL_FULL(sig, __NODATA, error) #define G_PASTE_SEND_DBUS_SIGNAL_WITH_DATA(sig,d) G_PASTE_SEND_DBUS_SIGNAL_FULL(sig, __DATA(d), NULL) #define G_PASTE_DBUS_ASSERT_FULL(cond, _msg, ret) \ do { \ if (!(cond)) \ { \ *err = _err (G_PASTE_BUS_NAME ".Error", _msg); \ return ret; \ } \ } while (FALSE) #define G_PASTE_DBUS_ASSERT(cond, _msg) G_PASTE_DBUS_ASSERT_FULL (cond, _msg, ;) struct _GPasteDaemon { GPasteBusObject parent_instance; }; typedef struct { GDBusConnection *connection; guint64 id_on_bus; gboolean registered; GPasteHistory *history; GPasteSettings *settings; GPasteClipboardsManager *clipboards_manager; GPasteKeybinder *keybinder; GPasteScreensaverClient *screensaver; GDBusNodeInfo *g_paste_daemon_dbus_info; GDBusInterfaceVTable g_paste_daemon_dbus_vtable; GSignalGroup *history_signals; GSignalGroup *settings_signals; GSignalGroup *screensaver_signals; } GPasteDaemonPrivate; G_PASTE_DEFINE_TYPE_WITH_PRIVATE (Daemon, daemon, G_PASTE_TYPE_BUS_OBJECT) enum { REEXECUTE_SELF, LAST_SIGNAL }; static guint64 signals[LAST_SIGNAL] = { 0 }; typedef struct { const gchar *name; const gchar *msg; } GPasteDBusError; static inline GPasteDBusError * _err (const gchar *name, const gchar *msg) { GPasteDBusError *err = g_new (GPasteDBusError, 1); err->name = name; err->msg = msg; return err; } static gchar * g_paste_daemon_get_dbus_string_parameter (GVariant *parameters, gsize *length) { GVariantIter parameters_iter; g_variant_iter_init (¶meters_iter, parameters); g_autoptr (GVariant) variant = g_variant_iter_next_value (¶meters_iter); return g_variant_dup_string (variant, length); } static void _variant_iter_read_strings_parameter (GVariantIter *parameters_iter, gchar **str1, gchar **str2) { g_autoptr (GVariant) variant1 = g_variant_iter_next_value (parameters_iter); g_autoptr (GVariant) variant2 = g_variant_iter_next_value (parameters_iter); gsize length; *str1 = g_variant_dup_string (variant1, &length); *str2 = g_variant_dup_string (variant2, &length); } static void g_paste_daemon_get_dbus_strings_parameter (GVariant *parameters, gchar **str1, gchar **str2) { GVariantIter parameters_iter; g_variant_iter_init (¶meters_iter, parameters); _variant_iter_read_strings_parameter (¶meters_iter, str1, str2); } static guint64 g_paste_daemon_get_dbus_uint64_parameter (GVariant *parameters) { GVariantIter parameters_iter; g_variant_iter_init (¶meters_iter, parameters); g_autoptr (GVariant) variant = g_variant_iter_next_value (¶meters_iter); return g_variant_get_uint64 (variant); } /****************/ /* DBus Signals */ /****************/ static void g_paste_daemon_update (GPasteDaemon *self, GPasteUpdateAction action, GPasteUpdateTarget target, guint64 position) { const GPasteDaemonPrivate *priv = _g_paste_daemon_get_instance_private (self); GVariant *data[] = { g_variant_new_string (g_enum_get_value (g_type_class_peek (G_PASTE_TYPE_UPDATE_ACTION), action)->value_nick), g_variant_new_string (g_enum_get_value (g_type_class_peek (G_PASTE_TYPE_UPDATE_TARGET), target)->value_nick), g_variant_new_uint64 (position) }; G_PASTE_SEND_DBUS_SIGNAL_FULL (UPDATE, g_variant_new_tuple (data, 3), NULL); } /** * g_paste_daemon_show_history: * @self: (transfer none): the #GPasteDaemon * @error: a #GError * * Emit the signal to show history */ G_PASTE_VISIBLE void g_paste_daemon_show_history (GPasteDaemon *self, GError **error) { g_return_if_fail (_G_PASTE_IS_DAEMON (self)); const GPasteDaemonPrivate *priv = _g_paste_daemon_get_instance_private (self); G_PASTE_SEND_DBUS_SIGNAL_WITH_ERROR (SHOW_HISTORY); } static void g_paste_daemon_tracking (GPasteDaemon *self, gboolean tracking_state, GPasteSettings *settings G_GNUC_UNUSED) { const GPasteDaemonPrivate *priv = _g_paste_daemon_get_instance_private (self); GVariant *variant = g_variant_new_boolean (tracking_state); G_PASTE_SEND_DBUS_PROPERTIES_CHANGED (G_PASTE_DAEMON_PROP_ACTIVE, variant); } /****************/ /* DBus Mathods */ /****************/ static void g_paste_daemon_private_do_add_item (const GPasteDaemonPrivate *priv, GPasteItem *item) { /* g_paste_history_add takes ownership; keep our own ref for the select call below */ g_paste_history_add (priv->history, g_object_ref (item)); if (!g_paste_clipboards_manager_select (priv->clipboards_manager, item)) g_paste_history_remove (priv->history, 0); g_object_unref (item); } static void g_paste_daemon_private_do_add (const GPasteDaemonPrivate *priv, const gchar *text, guint64 length, GPasteDBusError **err) { G_PASTE_DBUS_ASSERT (text && length, "no content to add"); GPasteSettings *settings = priv->settings; gboolean trim_items = g_paste_settings_get_trim_items (settings); g_autofree gchar *stripped = trim_items ? g_strstrip (g_strdup (text)) : NULL; const gchar *to_add = trim_items ? stripped : text; if (length >= g_paste_settings_get_min_text_item_size (settings) && length <= g_paste_settings_get_max_text_item_size (settings) && strlen (to_add) != 0) { g_paste_daemon_private_do_add_item (priv, g_paste_text_item_new (to_add)); } } static void g_paste_daemon_private_add (const GPasteDaemonPrivate *priv, GVariant *parameters, GPasteDBusError **err) { gsize length; g_autofree gchar *text = g_paste_daemon_get_dbus_string_parameter (parameters, &length); g_paste_daemon_private_do_add (priv, text, length, err); } static void g_paste_daemon_private_add_file (const GPasteDaemonPrivate *priv, GVariant *parameters, GError **error, GPasteDBusError **err) { gsize length; g_autofree gchar *file = g_paste_daemon_get_dbus_string_parameter (parameters, &length); g_autofree gchar *content = NULL; G_PASTE_DBUS_ASSERT (file, "no file to add"); if (g_file_get_contents (file, &content, &length, error)) { if (g_utf8_validate (content, length, NULL)) g_paste_daemon_private_do_add (priv, content, length, err); else { g_autoptr (GError) img_error = NULL; g_autoptr (GdkTexture) img = gdk_texture_new_from_filename (file, &img_error); if (img_error) g_warning ("Failed to load image from %s: %s", file, img_error->message); g_paste_daemon_private_do_add_item (priv, g_paste_image_item_new (img)); } } } static void g_paste_daemon_private_add_password (const GPasteDaemonPrivate *priv, GVariant *parameters, GPasteDBusError **err) { g_autofree gchar *name = NULL; g_autofree gchar *password = NULL; g_paste_daemon_get_dbus_strings_parameter (parameters, &name, &password); G_PASTE_DBUS_ASSERT (name && password, "no password to add"); g_paste_history_delete_password (priv->history, name); g_paste_daemon_private_do_add_item (priv, g_paste_password_item_new (name, password)); } static void g_paste_daemon_private_delete_history_signal (const GPasteDaemonPrivate *priv, const gchar *history) { GVariant *variant = g_variant_new_string (history); G_PASTE_SEND_DBUS_SIGNAL_WITH_DATA (DELETE_HISTORY, variant); } static void g_paste_daemon_private_empty_history_signal (const GPasteDaemonPrivate *priv, const gchar *history) { GVariant *variant = g_variant_new_string (history); G_PASTE_SEND_DBUS_SIGNAL_WITH_DATA (EMPTY_HISTORY, variant); } static void g_paste_daemon_private_switch_history_signal (const GPasteDaemonPrivate *priv, const gchar *history) { GVariant *variant = g_variant_new_string (history); G_PASTE_SEND_DBUS_SIGNAL_WITH_DATA (SWITCH_HISTORY, variant); } static void g_paste_daemon_private_backup_history (const GPasteDaemonPrivate *priv, GVariant *parameters, GPasteDBusError **err) { g_autofree gchar *history = NULL; g_autofree gchar *backup = NULL; g_paste_daemon_get_dbus_strings_parameter (parameters, &history, &backup); G_PASTE_DBUS_ASSERT (history && backup, "no history to backup"); GPasteSettings *settings = priv->settings; /* create a new history to do the backup without polluting the current one */ g_autoptr (GPasteHistory) _history = g_paste_history_new (settings); const gchar *old_name = g_paste_history_get_current (priv->history); /* We emit all those signals to be sure that all the guis have their histories list updated */ g_paste_history_load (_history, history); g_paste_daemon_private_switch_history_signal (priv, history); g_paste_history_save (_history, backup); g_paste_daemon_private_switch_history_signal (priv, backup); g_paste_daemon_private_switch_history_signal (priv, old_name); } static void g_paste_daemon_private_delete (const GPasteDaemonPrivate *priv, GVariant *parameters, GPasteDBusError **err) { g_autofree gchar *uuid = g_paste_daemon_get_dbus_string_parameter (parameters, NULL); G_PASTE_DBUS_ASSERT (g_paste_history_remove_by_uuid (priv->history, uuid), "Provided uuid doesn't match any item."); } static void g_paste_daemon_private_delete_history (const GPasteDaemonPrivate *priv, GVariant *parameters, GPasteDBusError **err) { g_autofree gchar *name = g_paste_daemon_get_dbus_string_parameter (parameters, NULL); G_PASTE_DBUS_ASSERT (name, "no history to delete"); GPasteHistory *history = priv->history; g_paste_history_delete (history, name, NULL); g_paste_daemon_private_delete_history_signal (priv, name); if (g_paste_str_equal (name, g_paste_history_get_current (priv->history))) g_paste_history_switch (history, G_PASTE_DEFAULT_HISTORY); } static void g_paste_daemon_private_delete_password (const GPasteDaemonPrivate *priv, GVariant *parameters, GPasteDBusError **err) { g_autofree gchar *name = g_paste_daemon_get_dbus_string_parameter (parameters, NULL); G_PASTE_DBUS_ASSERT (name, "no password to delete"); g_paste_history_delete_password (priv->history, name); } static void g_paste_daemon_private_empty_history (const GPasteDaemonPrivate *priv, GVariant *parameters) { g_autofree gchar *name = g_paste_daemon_get_dbus_string_parameter (parameters, NULL); if (g_paste_str_equal (name, g_paste_history_get_current (priv->history))) g_paste_history_empty (priv->history); else { g_autoptr (GPasteHistory) history = g_paste_history_new (priv->settings); g_paste_history_save (history, name); } g_paste_daemon_private_empty_history_signal (priv, name); } static GVariant * g_paste_daemon_private_get_element (const GPasteDaemonPrivate *priv, GVariant *parameters, GPasteDBusError **err) { g_autofree gchar *uuid = g_paste_daemon_get_dbus_string_parameter (parameters, NULL); const GPasteItem *item = g_paste_history_get_by_uuid (priv->history, uuid); G_PASTE_DBUS_ASSERT_FULL (item, "Provided uuid doesn't match any item.", NULL); GVariant *variant = g_variant_new_string (g_paste_item_get_display_string (item)); return g_variant_new_tuple (&variant, 1); } static GVariant * g_paste_daemon_private_get_element_at_index (const GPasteDaemonPrivate *priv, GVariant *parameters, GPasteDBusError **err) { GPasteHistory *history = priv->history; guint64 index = g_paste_daemon_get_dbus_uint64_parameter (parameters); G_PASTE_DBUS_ASSERT_FULL (index < g_paste_history_get_length (history), "invalid index received", NULL); const GPasteItem *item = g_paste_history_get (history, index); G_PASTE_DBUS_ASSERT_FULL (item, "received no value for this index", NULL); GVariant *data[] = { g_variant_new_string (g_paste_item_get_uuid (item)), g_variant_new_string (g_paste_item_get_display_string (item)) }; return g_variant_new_tuple (data, 2); } static GVariant * g_paste_daemon_private_get_element_kind (const GPasteDaemonPrivate *priv, GVariant *parameters, GPasteDBusError **err) { GPasteHistory *history = priv->history; g_autofree gchar *uuid = g_paste_daemon_get_dbus_string_parameter (parameters, NULL); const GPasteItem *item = g_paste_history_get_by_uuid (history, uuid); G_PASTE_DBUS_ASSERT_FULL (item, "received no item for this index", NULL); GVariant *variant = g_variant_new_string (g_paste_item_get_kind (item)); return g_variant_new_tuple (&variant, 1); } static GVariant * g_paste_daemon_private_get_elements (const GPasteDaemonPrivate *priv, GVariant *parameters, GPasteDBusError **err) { GPasteHistory *history = priv->history; GVariantIter parameters_iter; GVariantBuilder builder; g_variant_iter_init (¶meters_iter, parameters); g_variant_builder_init (&builder, G_VARIANT_TYPE ("a(ss)")); g_autoptr (GVariant) variant = g_variant_iter_next_value (¶meters_iter); gsize len; g_autofree const gchar **uuids = g_variant_get_strv (variant, &len); for (gsize i = 0; i < len; ++i) { const GPasteItem *item = g_paste_history_get_by_uuid (history, uuids[i]); G_PASTE_DBUS_ASSERT_FULL (item, "received no value for this index", NULL); g_variant_builder_add (&builder, "(ss)", g_paste_item_get_uuid (item), g_paste_item_get_display_string (item)); } GVariant *ans = g_variant_builder_end (&builder); return g_variant_new_tuple (&ans, 1); } static GVariant * g_paste_daemon_private_get_history (const GPasteDaemonPrivate *priv) { const GList *history = g_paste_history_get_history (priv->history); guint64 length = g_list_length ((GList *) history); GVariantBuilder builder; g_variant_builder_init (&builder, G_VARIANT_TYPE ("a(ss)")); for (guint64 i = 0; i < length; ++i, history = g_list_next (history)) { const GPasteItem *item = history->data; g_variant_builder_add (&builder, "(ss)", g_paste_item_get_uuid (item), g_paste_item_get_display_string (item)); } GVariant *variant = g_variant_builder_end (&builder); return g_variant_new_tuple (&variant, 1); } static GVariant * g_paste_daemon_private_get_history_name (const GPasteDaemonPrivate *priv) { GVariant *variant = g_variant_new_string (g_paste_history_get_current (priv->history)); return g_variant_new_tuple (&variant, 1); } static GVariant * g_paste_daemon_private_get_history_size (const GPasteDaemonPrivate *priv, GVariant *parameters) { g_autofree gchar *name = g_paste_daemon_get_dbus_string_parameter (parameters, NULL); guint64 size; if (g_paste_str_equal (name, g_paste_history_get_current (priv->history))) size = g_paste_history_get_length (priv->history); else { g_autoptr (GPasteHistory) history = g_paste_history_new (priv->settings); g_paste_history_load (history, name); size = g_paste_history_get_length (history); } GVariant *variant = g_variant_new_uint64 (size); return g_variant_new_tuple (&variant, 1); } static GVariant * g_paste_daemon_private_get_raw_element (const GPasteDaemonPrivate *priv, GVariant *parameters, GPasteDBusError **err) { g_autofree gchar *uuid = g_paste_daemon_get_dbus_string_parameter (parameters, NULL); const GPasteItem *item = g_paste_history_get_by_uuid (priv->history, uuid); G_PASTE_DBUS_ASSERT_FULL (item, "Provided uuid doesn't match any item.", NULL); GVariant *variant = g_variant_new_string (g_paste_item_get_value (item)); return g_variant_new_tuple (&variant, 1); } static GVariant * g_paste_daemon_private_get_raw_history (const GPasteDaemonPrivate *priv) { const GList *history = g_paste_history_get_history (priv->history); guint64 length = g_list_length ((GList *) history); GVariantBuilder builder; g_variant_builder_init (&builder, G_VARIANT_TYPE ("a(ss)")); for (guint64 i = 0; i < length; ++i, history = g_list_next (history)) { const GPasteItem *item = history->data; g_variant_builder_add (&builder, "(ss)", g_paste_item_get_uuid (item), g_paste_item_get_value (item)); } GVariant *variant = g_variant_builder_end (&builder); return g_variant_new_tuple (&variant, 1); } static GVariant * g_paste_daemon_list_histories (const GPasteDaemonPrivate *priv, GError **error) { g_auto (GStrv) history_names = g_paste_history_list (priv->history, error); if (!history_names) return NULL; GVariant *variant = g_variant_new_strv ((const gchar * const *) history_names, -1); return g_variant_new_tuple (&variant, 1); } static void g_paste_daemon_private_merge (const GPasteDaemonPrivate *priv, GVariant *parameters, GPasteDBusError **err) { GVariantIter parameters_iter; g_variant_iter_init (¶meters_iter, parameters); g_autofree gchar *decoration = NULL; g_autofree gchar *separator = NULL; _variant_iter_read_strings_parameter (¶meters_iter, &decoration, &separator); g_autoptr (GVariant) v_uuids = g_variant_iter_next_value (¶meters_iter); gsize length; const GStrv uuids = (const GStrv) g_variant_get_strv (v_uuids, &length); G_PASTE_DBUS_ASSERT (length, "nothing to merge"); GPasteHistory *history = priv->history; g_autoptr (GString) str = g_string_new (NULL); for (guint64 i = 0; i < length; ++i) { const GPasteItem *item = g_paste_history_get_by_uuid (history, uuids[i]); G_PASTE_DBUS_ASSERT (item, "no item matching this uuid"); g_string_append_printf (str, "%s%s%s%s", (i) ? separator : "", decoration, g_paste_item_get_value (item), decoration); } g_paste_daemon_private_do_add (priv, str->str, str->len, err); } static void g_paste_daemon_track (GPasteDaemon *self, GVariant *parameters) { GVariantIter parameters_iter; g_variant_iter_init (¶meters_iter, parameters); g_autoptr (GVariant) variant = g_variant_iter_next_value (¶meters_iter); gboolean tracking_state = g_variant_get_boolean (variant); const GPasteDaemonPrivate *priv = _g_paste_daemon_get_instance_private (self); g_paste_settings_set_track_changes (priv->settings, tracking_state); } static void g_paste_daemon_on_extension_state_changed (GPasteDaemon *self, GVariant *parameters) { const GPasteDaemonPrivate *priv = _g_paste_daemon_get_instance_private (self); if (g_paste_settings_get_track_extension_state (priv->settings)) g_paste_daemon_track (self, parameters); } static void g_paste_daemon_reexecute (GPasteDaemon *self) { const GPasteDaemonPrivate *priv = _g_paste_daemon_get_instance_private (self); g_paste_clipboards_manager_store (priv->clipboards_manager); g_signal_emit (self, signals[REEXECUTE_SELF], 0, /* detail */ NULL); } static void g_paste_daemon_private_rename_password (const GPasteDaemonPrivate *priv, GVariant *parameters, GPasteDBusError **err) { g_autofree gchar *old_name = NULL; g_autofree gchar *new_name = NULL; g_paste_daemon_get_dbus_strings_parameter (parameters, &old_name, &new_name); G_PASTE_DBUS_ASSERT (old_name, "no password to rename"); g_paste_history_rename_password (priv->history, old_name, new_name); } static GVariant * g_paste_daemon_private_search (const GPasteDaemonPrivate *priv, GVariant *parameters, GPasteDBusError **err) { g_autofree gchar *search = g_paste_daemon_get_dbus_string_parameter (parameters, NULL); g_auto (GStrv) results = g_paste_history_search (priv->history, search); G_PASTE_DBUS_ASSERT_FULL (results, "Error while performing search", NULL); GVariant *variant = g_variant_new_strv ((const gchar * const *) results, -1); return g_variant_new_tuple (&variant, 1); } static void g_paste_daemon_select (const GPasteDaemon *self, GVariant *parameters, GPasteDBusError **err) { const GPasteDaemonPrivate *priv = _g_paste_daemon_get_instance_private (self); g_autofree gchar *uuid = g_paste_daemon_get_dbus_string_parameter (parameters, NULL); G_PASTE_DBUS_ASSERT (g_paste_history_select (priv->history, uuid), "Provided uuid doesn't match any item."); } static void g_paste_daemon_private_replace (const GPasteDaemonPrivate *priv, GVariant *parameters, GPasteDBusError **err) { GPasteHistory *history = priv->history; GVariantIter parameters_iter; gsize length; g_variant_iter_init (¶meters_iter, parameters); g_autoptr (GVariant) variant1 = g_variant_iter_next_value (¶meters_iter); const gchar *uuid = g_variant_get_string (variant1, NULL); const GPasteItem *item = g_paste_history_get_by_uuid (history, uuid); G_PASTE_DBUS_ASSERT (item, "Provided uuid doesn't match any item."); G_PASTE_DBUS_ASSERT (_G_PASTE_IS_TEXT_ITEM (item) && g_paste_str_equal (g_paste_item_get_kind (item), "Text"), "attempted to replace an item other than GPasteTextItem"); g_autoptr (GVariant) variant2 = g_variant_iter_next_value (¶meters_iter); g_autofree gchar *contents = g_variant_dup_string (variant2, &length); G_PASTE_DBUS_ASSERT (contents, "no contents given"); g_paste_history_replace (priv->history, uuid, contents); } static void g_paste_daemon_private_set_password (const GPasteDaemonPrivate *priv, GVariant *parameters, GPasteDBusError **err) { GPasteHistory *history = priv->history; GVariantIter parameters_iter; gsize length; g_variant_iter_init (¶meters_iter, parameters); g_autoptr (GVariant) variant1 = g_variant_iter_next_value (¶meters_iter); const gchar *uuid = g_variant_get_string (variant1, NULL); const GPasteItem *item = g_paste_history_get_by_uuid (history, uuid); G_PASTE_DBUS_ASSERT (item, "Provided uuid doesn't match any item."); G_PASTE_DBUS_ASSERT (_G_PASTE_IS_TEXT_ITEM (item) && g_paste_str_equal (g_paste_item_get_kind (item), "Text"), "attempted to replace an item other than GPasteTextItem"); g_autoptr (GVariant) variant2 = g_variant_iter_next_value (¶meters_iter); g_autofree gchar *name = g_variant_dup_string (variant2, &length); G_PASTE_DBUS_ASSERT (name, "no password name given"); G_PASTE_DBUS_ASSERT (!g_paste_history_get_password (priv->history, name), "a password with tat name already exists"); g_paste_history_set_password (priv->history, uuid, name); } static void g_paste_daemon_private_switch_history (const GPasteDaemonPrivate *priv, GVariant *parameters, GPasteDBusError **err) { g_autofree gchar *name = g_paste_daemon_get_dbus_string_parameter (parameters, NULL); G_PASTE_DBUS_ASSERT (name, "no history to switch to"); g_paste_history_switch (priv->history, name); } static void g_paste_daemon_private_upload_finish (GObject *source_object, GAsyncResult *res, gpointer user_data) { g_autoptr (GSubprocess) upload = G_SUBPROCESS (source_object); g_autofree gchar *url = NULL; g_autofree GPasteDBusError *err = NULL; GPasteDaemonPrivate *priv = user_data; g_autoptr (GError) error = NULL; if (!g_subprocess_communicate_utf8_finish (upload, res, &url, NULL, &error)) g_warning ("Upload failed: %s", error->message); if (url) g_paste_daemon_private_do_add (priv, url, strlen (url), &err); } /** * g_paste_daemon_upload: * @self: (transfer none): the #GPasteDaemon * @uuid: the uuid of the item to upload * * Upload an item to a pastebin service * * Returns: whether there was something to upload */ G_PASTE_VISIBLE gboolean g_paste_daemon_upload (GPasteDaemon *self, const gchar *uuid) { g_return_val_if_fail (_G_PASTE_IS_DAEMON (self), FALSE); GPasteDaemonPrivate *priv = g_paste_daemon_get_instance_private (self); const GPasteItem *item = (uuid) ? g_paste_history_get_by_uuid (priv->history, uuid) : g_paste_history_get (priv->history, 0); if (!item) return FALSE; g_autoptr (GError) error = NULL; GSubprocess *upload = g_subprocess_new (G_SUBPROCESS_FLAGS_STDIN_PIPE|G_SUBPROCESS_FLAGS_STDOUT_PIPE, &error, "wgetpaste", NULL); if (!upload) { g_warning ("Failed to spawn wgetpaste: %s", error->message); return FALSE; } const gchar *value = g_paste_item_get_value (item); g_subprocess_communicate_utf8_async (upload, value, NULL, /* cancellable */ g_paste_daemon_private_upload_finish, priv); return TRUE; } static void _g_paste_daemon_upload (GPasteDaemon *self, GVariant *parameters, GPasteDBusError **err) { g_autofree gchar *uuid = g_paste_daemon_get_dbus_string_parameter (parameters, NULL); G_PASTE_DBUS_ASSERT (g_paste_daemon_upload (self, uuid), "Provided uuid doesn't match any item."); } static void g_paste_daemon_activate_default_keybindings (GPasteDaemon *self) { const GPasteDaemonPrivate *priv = _g_paste_daemon_get_instance_private (self); GPasteKeybinder *keybinder = priv->keybinder; GPasteHistory *history = priv->history; GPasteClipboardsManager *clipboards_manager = priv->clipboards_manager; GPasteKeybinding *keybindings[] = { g_paste_make_password_keybinding_new (history), g_paste_pop_keybinding_new (history), g_paste_show_history_keybinding_new (self), g_paste_sync_clipboard_to_primary_keybinding_new (clipboards_manager), g_paste_sync_primary_to_clipboard_keybinding_new (clipboards_manager), g_paste_ui_keybinding_new (), g_paste_upload_keybinding_new (self) }; for (guint64 k = 0; k < G_N_ELEMENTS (keybindings); ++k) g_paste_keybinder_add_keybinding (keybinder, keybindings[k]); g_paste_keybinder_activate_all (keybinder); } static void g_paste_daemon_dbus_method_call (GDBusConnection *connection G_GNUC_UNUSED, const gchar *sender G_GNUC_UNUSED, const gchar *object_path G_GNUC_UNUSED, const gchar *interface_name G_GNUC_UNUSED, const gchar *method_name, GVariant *parameters, GDBusMethodInvocation *invocation, gpointer user_data) { GPasteDaemon *self = user_data; const GPasteDaemonPrivate *priv = _g_paste_daemon_get_instance_private (self); GVariant *answer = NULL; GError *error = NULL; g_autofree GPasteDBusError *err = NULL; if (g_paste_str_equal (method_name, G_PASTE_DAEMON_ABOUT)) g_paste_util_activate_ui ("about", NULL); else if (g_paste_str_equal (method_name, G_PASTE_DAEMON_ADD)) g_paste_daemon_private_add (priv, parameters, &err); else if (g_paste_str_equal (method_name, G_PASTE_DAEMON_ADD_FILE)) g_paste_daemon_private_add_file (priv, parameters, &error, &err); else if (g_paste_str_equal (method_name, G_PASTE_DAEMON_ADD_PASSWORD)) g_paste_daemon_private_add_password (priv, parameters, &err); else if (g_paste_str_equal (method_name, G_PASTE_DAEMON_BACKUP_HISTORY)) g_paste_daemon_private_backup_history (priv, parameters, &err); else if (g_paste_str_equal (method_name, G_PASTE_DAEMON_DELETE)) g_paste_daemon_private_delete (priv, parameters, &err); else if (g_paste_str_equal (method_name, G_PASTE_DAEMON_DELETE_HISTORY)) g_paste_daemon_private_delete_history (priv, parameters, &err); else if (g_paste_str_equal (method_name, G_PASTE_DAEMON_DELETE_PASSWORD)) g_paste_daemon_private_delete_password (priv, parameters, &err); else if (g_paste_str_equal (method_name, G_PASTE_DAEMON_EMPTY_HISTORY)) g_paste_daemon_private_empty_history (priv, parameters); else if (g_paste_str_equal (method_name, G_PASTE_DAEMON_GET_ELEMENT)) answer = g_paste_daemon_private_get_element (priv, parameters, &err); else if (g_paste_str_equal (method_name, G_PASTE_DAEMON_GET_ELEMENT_AT_INDEX)) answer = g_paste_daemon_private_get_element_at_index (priv, parameters, &err); else if (g_paste_str_equal (method_name, G_PASTE_DAEMON_GET_ELEMENT_KIND)) answer = g_paste_daemon_private_get_element_kind (priv, parameters, &err); else if (g_paste_str_equal (method_name, G_PASTE_DAEMON_GET_ELEMENTS)) answer = g_paste_daemon_private_get_elements (priv, parameters, &err); else if (g_paste_str_equal (method_name, G_PASTE_DAEMON_GET_HISTORY)) answer = g_paste_daemon_private_get_history (priv); else if (g_paste_str_equal (method_name, G_PASTE_DAEMON_GET_HISTORY_NAME)) answer = g_paste_daemon_private_get_history_name (priv); else if (g_paste_str_equal (method_name, G_PASTE_DAEMON_GET_HISTORY_SIZE)) answer = g_paste_daemon_private_get_history_size (priv, parameters); else if (g_paste_str_equal (method_name, G_PASTE_DAEMON_GET_RAW_ELEMENT)) answer = g_paste_daemon_private_get_raw_element (priv, parameters, &err); else if (g_paste_str_equal (method_name, G_PASTE_DAEMON_GET_RAW_HISTORY)) answer = g_paste_daemon_private_get_raw_history (priv); else if (g_paste_str_equal (method_name, G_PASTE_DAEMON_LIST_HISTORIES)) answer = g_paste_daemon_list_histories (priv, &error); else if (g_paste_str_equal (method_name, G_PASTE_DAEMON_MERGE)) g_paste_daemon_private_merge (priv, parameters, &err); else if (g_paste_str_equal (method_name, G_PASTE_DAEMON_ON_EXTENSION_STATE_CHANGED)) g_paste_daemon_on_extension_state_changed (self, parameters); else if (g_paste_str_equal (method_name, G_PASTE_DAEMON_REEXECUTE)) g_paste_daemon_reexecute (self); else if (g_paste_str_equal (method_name, G_PASTE_DAEMON_RENAME_PASSWORD)) g_paste_daemon_private_rename_password (priv, parameters, &err); else if (g_paste_str_equal (method_name, G_PASTE_DAEMON_REPLACE)) g_paste_daemon_private_replace (priv, parameters, &err); else if (g_paste_str_equal (method_name, G_PASTE_DAEMON_SEARCH)) answer = g_paste_daemon_private_search (priv, parameters, &err); else if (g_paste_str_equal (method_name, G_PASTE_DAEMON_SELECT)) g_paste_daemon_select (self, parameters, &err); else if (g_paste_str_equal (method_name, G_PASTE_DAEMON_SET_PASSWORD)) g_paste_daemon_private_set_password (priv, parameters, &err); else if (g_paste_str_equal (method_name, G_PASTE_DAEMON_SHOW_HISTORY)) g_paste_daemon_show_history (self, &error); else if (g_paste_str_equal (method_name, G_PASTE_DAEMON_SWITCH_HISTORY)) g_paste_daemon_private_switch_history (priv, parameters, &err); else if (g_paste_str_equal (method_name, G_PASTE_DAEMON_TRACK)) g_paste_daemon_track (self, parameters); else if (g_paste_str_equal (method_name, G_PASTE_DAEMON_UPLOAD)) _g_paste_daemon_upload (self, parameters, &err); if (error) g_dbus_method_invocation_take_error (invocation, error); else if (err) g_dbus_method_invocation_return_dbus_error (invocation, err->name, err->msg); else g_dbus_method_invocation_return_value (invocation, answer); } static GVariant * g_paste_daemon_dbus_get_property (GDBusConnection *connection G_GNUC_UNUSED, const gchar *sender G_GNUC_UNUSED, const gchar *object_path G_GNUC_UNUSED, const gchar *interface_name G_GNUC_UNUSED, const gchar *property_name, GError **error G_GNUC_UNUSED, gpointer user_data) { const GPasteDaemonPrivate *priv = _g_paste_daemon_get_instance_private (G_PASTE_DAEMON (user_data)); if (g_paste_str_equal (property_name, G_PASTE_DAEMON_PROP_ACTIVE)) return g_variant_new_boolean (g_paste_settings_get_track_changes (priv->settings)); else if (g_paste_str_equal (property_name, G_PASTE_DAEMON_PROP_VERSION)) return g_variant_new_string (VERSION); return NULL; } static void g_paste_daemon_unregister_object (gpointer user_data) { g_autoptr (GPasteDaemon) self = G_PASTE_DAEMON (user_data); GPasteDaemonPrivate *priv = g_paste_daemon_get_instance_private (self); g_signal_group_set_target (priv->settings_signals, NULL); g_signal_group_set_target (priv->history_signals, NULL); g_signal_group_set_target (priv->screensaver_signals, NULL); priv->registered = FALSE; } static void g_paste_daemon_on_history_update (GPasteDaemon *self, GPasteUpdateAction action, GPasteUpdateTarget target, guint64 position, gpointer user_data G_GNUC_UNUSED) { g_paste_daemon_update (self, action, target, position); } static void g_paste_daemon_on_history_switch (GPasteDaemonPrivate *priv, const gchar *name, gpointer user_data G_GNUC_UNUSED) { g_paste_daemon_private_switch_history_signal (priv, name); } static void g_paste_daemon_on_screensaver_active_changed (GPasteDaemonPrivate *priv, gboolean active, gpointer user_data G_GNUC_UNUSED) { if (!priv->registered) return; /* The deactivate signal is always sent, but not the activate one */ /* We always do the activate action, so that the deactivate one works anyways */ { g_autoptr (GPasteItem) item = g_paste_text_item_new (""); /* will always return TRUE */ g_paste_clipboards_manager_select (priv->clipboards_manager, item); } if (!active) { g_autoptr (GPasteItem) item = g_paste_history_dup (priv->history, 0); if (item) { if (!g_paste_clipboards_manager_select (priv->clipboards_manager, item)) g_paste_history_remove (priv->history, 0); } } } static void _g_paste_daemon_changed (gpointer data) { GPasteDaemon *self = G_PASTE_DAEMON (data); g_paste_daemon_update (self, G_PASTE_UPDATE_ACTION_REPLACE, G_PASTE_UPDATE_TARGET_ALL, 0); } static void g_paste_daemon_dispose (GObject *object) { GPasteDaemonPrivate *priv = g_paste_daemon_get_instance_private (G_PASTE_DAEMON (object)); if (priv->settings) { g_dbus_connection_unregister_object (priv->connection, priv->id_on_bus); g_clear_object (&priv->connection); g_clear_object (&priv->history_signals); g_clear_object (&priv->settings_signals); g_clear_object (&priv->screensaver_signals); g_clear_object (&priv->history); g_clear_object (&priv->settings); g_clear_object (&priv->clipboards_manager); g_clear_object (&priv->keybinder); g_clear_object (&priv->screensaver); g_clear_pointer (&priv->g_paste_daemon_dbus_info, g_dbus_node_info_unref); } G_OBJECT_CLASS (g_paste_daemon_parent_class)->dispose (object); } static gboolean g_paste_daemon_register_on_connection (GPasteBusObject *self, GDBusConnection *connection, GError **error) { GPasteDaemonPrivate *priv = g_paste_daemon_get_instance_private (G_PASTE_DAEMON (self)); g_clear_object (&priv->connection); priv->connection = g_object_ref (connection); priv->id_on_bus = g_dbus_connection_register_object (connection, G_PASTE_DAEMON_OBJECT_PATH, priv->g_paste_daemon_dbus_info->interfaces[0], &priv->g_paste_daemon_dbus_vtable, g_object_ref (self), g_paste_daemon_unregister_object, error); if (!priv->id_on_bus) return FALSE; g_signal_group_set_target (priv->settings_signals, priv->settings); g_signal_group_set_target (priv->history_signals, priv->history); priv->registered = TRUE; g_source_set_name_by_id (g_timeout_add_seconds_once (1, _g_paste_daemon_changed, self), "[GPaste] Startup - changed"); return TRUE; } static void g_paste_daemon_class_init (GPasteDaemonClass *klass) { G_OBJECT_CLASS (klass)->dispose = g_paste_daemon_dispose; G_PASTE_BUS_OBJECT_CLASS (klass)->register_on_connection = g_paste_daemon_register_on_connection; /** * GPasteDaemon::reexecute-self: * @gpaste_daemon: the object on which the signal was emitted * * The "reexecute-self" signal is emitted when the daemon is about * to reexecute itself into a new freshly spawned daemon */ signals[REEXECUTE_SELF] = g_signal_new ("reexecute-self", G_PASTE_TYPE_DAEMON, G_SIGNAL_RUN_LAST, 0, /* class offset */ NULL, /* accumulator */ NULL, /* accumulator data */ g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); } static void on_screensaver_client_ready (GObject *source_object G_GNUC_UNUSED, GAsyncResult *res, gpointer user_data) { GPasteDaemonPrivate *priv = user_data; g_autoptr (GError) error = NULL; GPasteScreensaverClient *screensaver = priv->screensaver = g_paste_screensaver_client_new_finish (res, &error); if (error) { g_warning ("Couldn't watch screensaver state: %s", error->message); g_clear_object (&priv->screensaver); } else if (screensaver) g_signal_group_set_target (priv->screensaver_signals, screensaver); } static void g_paste_daemon_setup_keybinder (GPasteDaemon *self, GPasteKeybindingProvider *provider) { GPasteDaemonPrivate *priv = g_paste_daemon_get_instance_private (self); g_paste_screensaver_client_new (on_screensaver_client_ready, priv); priv->keybinder = g_paste_keybinder_new (priv->settings, provider); g_paste_daemon_activate_default_keybindings (self); } static void use_internal_keybinding_provider (GPasteDaemon *self) { g_autoptr (GPasteInternalKeybindingProvider) provider = g_paste_internal_keybinding_provider_new (); g_paste_daemon_setup_keybinder (self, G_PASTE_KEYBINDING_PROVIDER (provider)); } static void on_shell_client_ready (GObject *source_object G_GNUC_UNUSED, GAsyncResult *res, gpointer user_data) { GPasteDaemon *self = user_data; g_autoptr (GError) error = NULL; g_autoptr (GPasteGnomeShellClient) shell_client = g_paste_gnome_shell_client_new_finish (res, &error); if (error || !shell_client) { if (error) g_warning ("Couldn't connect to gnome-shell: %s", error->message); use_internal_keybinding_provider (self); return; } g_paste_daemon_setup_keybinder (self, G_PASTE_KEYBINDING_PROVIDER (shell_client)); } static void on_portal_client_ready (GObject *source_object G_GNUC_UNUSED, GAsyncResult *res, gpointer user_data) { GPasteDaemon *self = user_data; g_autoptr (GError) error = NULL; g_autoptr (GPasteGtkGlobalShortcutClient) portal_client = g_paste_gtk_global_shortcut_client_new_finish (res, &error); if (error) { g_warning ("Couldn't connect to GlobalShortcuts portal, falling back to gnome-shell: %s", error->message); g_paste_gnome_shell_client_new (on_shell_client_ready, self); return; } g_paste_daemon_setup_keybinder (self, G_PASTE_KEYBINDING_PROVIDER (portal_client)); } static void g_paste_daemon_init (GPasteDaemon *self) { GPasteDaemonPrivate *priv = g_paste_daemon_get_instance_private (self); GDBusInterfaceVTable *vtable = &priv->g_paste_daemon_dbus_vtable; priv->id_on_bus = 0; g_autoptr (GError) error = NULL; priv->g_paste_daemon_dbus_info = g_dbus_node_info_new_for_xml (G_PASTE_DAEMON_INTERFACE, &error); g_assert_no_error (error); vtable->method_call = g_paste_daemon_dbus_method_call; vtable->get_property = g_paste_daemon_dbus_get_property; vtable->set_property = NULL; GPasteSettings *settings = priv->settings = g_paste_settings_new (); GPasteHistory *history = priv->history = g_paste_history_new (settings); GPasteClipboardsManager *clipboards_manager = priv->clipboards_manager = g_paste_clipboards_manager_new (history, settings); g_autoptr (GPasteClipboard) clipboard = g_paste_clipboard_new_clipboard (settings); g_autoptr (GPasteClipboard) primary = g_paste_clipboard_new_primary (settings); g_paste_clipboards_manager_add_clipboard (clipboards_manager, clipboard); g_paste_clipboards_manager_add_clipboard (clipboards_manager, primary); g_paste_clipboards_manager_activate (clipboards_manager); g_paste_history_load_async (history, NULL); priv->history_signals = g_signal_group_new (G_PASTE_TYPE_HISTORY); g_signal_group_connect_swapped (priv->history_signals, "update", G_CALLBACK (g_paste_daemon_on_history_update), self); g_signal_group_connect_swapped (priv->history_signals, "switch", G_CALLBACK (g_paste_daemon_on_history_switch), priv); priv->settings_signals = g_signal_group_new (G_PASTE_TYPE_SETTINGS); g_signal_group_connect_swapped (priv->settings_signals, "track", G_CALLBACK (g_paste_daemon_tracking), self); priv->screensaver_signals = g_signal_group_new (G_PASTE_TYPE_SCREENSAVER_CLIENT); g_signal_group_connect_swapped (priv->screensaver_signals, "active-changed", G_CALLBACK (g_paste_daemon_on_screensaver_active_changed), priv); g_paste_gtk_global_shortcut_client_new (on_portal_client_ready, self); } /** * g_paste_daemon_new: * * Create a new instance of #GPasteDaemon * * Returns: a newly allocated #GPasteDaemon * free it with g_object_unref */ G_PASTE_VISIBLE GPasteDaemon * g_paste_daemon_new (void) { return G_PASTE_DAEMON (g_object_new (G_PASTE_TYPE_DAEMON, NULL)); } Keruspe-GPaste-724def1/src/daemon/gpaste-daemon.h000066400000000000000000000011101521206431300216440ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #pragma once #include G_BEGIN_DECLS #define G_PASTE_TYPE_DAEMON (g_paste_daemon_get_type ()) G_PASTE_FINAL_TYPE (Daemon, daemon, DAEMON, GPasteBusObject) void g_paste_daemon_show_history (GPasteDaemon *self, GError **error); gboolean g_paste_daemon_upload (GPasteDaemon *self, const gchar *uuid); GPasteDaemon *g_paste_daemon_new (void); G_END_DECLS Keruspe-GPaste-724def1/src/daemon/gpaste-file-backend.c000066400000000000000000000630441521206431300227160ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #include #include #include #include #include #include G_PASTE_DEFINE_TYPE (FileBackend, file_backend, G_PASTE_TYPE_STORAGE_BACKEND) static gboolean _g_paste_file_backend_write_image_metadata (GOutputStream *stream, const GPasteImageItem *item, GError **error) { g_autofree gchar *date_str = g_date_time_format ((GDateTime *) g_paste_image_item_get_date (item), "%s"); const gchar *checksum = g_paste_image_item_get_checksum (item); if (!g_output_stream_write_all (stream, "\" date=\"", 8, NULL, NULL /* cancellable */, error) || !g_output_stream_write_all (stream, date_str, strlen (date_str), NULL, NULL /* cancellable */, error)) return FALSE; /* The checksum (hex SHA256) needs no XML escaping */ if (checksum && (!g_output_stream_write_all (stream, "\" checksum=\"", 12, NULL, NULL /* cancellable */, error) || !g_output_stream_write_all (stream, checksum, strlen (checksum), NULL, NULL /* cancellable */, error))) return FALSE; return TRUE; } static gboolean _g_paste_file_backend_write_special_values (GOutputStream *stream, const GSList *special_values, GError **error) { for (const GSList *val = special_values; val; val = val->next) { const GPasteBinaryData *value = val->data; const gchar *mime = g_enum_get_value (g_type_class_peek (G_PASTE_TYPE_SPECIAL_ATOM), g_paste_binary_data_get_mime (value))->value_nick; g_autofree gchar *b64 = g_paste_binary_data_to_base64 (value); g_autofree gchar *text = g_paste_util_xml_encode (b64); if (!g_output_stream_write_all (stream, " \n", 12, NULL, NULL /* cancellable */, error)) { return FALSE; } } return TRUE; } static void g_paste_file_backend_write_history_file (const GPasteStorageBackend *self, const gchar *history_file_path, const GList *history) { const GPasteSettings *settings = _G_PASTE_STORAGE_BACKEND_GET_CLASS (self)->get_settings (self); if (!g_paste_util_ensure_history_dir_exists (settings)) return; g_autoptr (GFile) history_file = g_file_new_for_path (history_file_path); if (!g_paste_settings_get_save_history (settings)) { g_autoptr (GError) error = NULL; if (!g_file_delete (history_file, NULL, &error) && !g_error_matches (error, G_IO_ERROR, G_IO_ERROR_NOT_FOUND)) { g_warning ("Failed to delete history file: %s", error->message); } return; } const GPasteFileBackend *real_self = _G_PASTE_FILE_BACKEND (self); g_autofree gchar *tmp_path = g_strconcat (history_file_path, ".tmp", NULL); g_autoptr (GFile) tmp_file = g_file_new_for_path (tmp_path); g_autoptr (GOutputStream) stream = _G_PASTE_FILE_BACKEND_GET_CLASS (real_self)->get_output_stream (real_self, tmp_file); if (!stream) return; gboolean success = TRUE; g_autoptr (GError) error = NULL; if (!g_output_stream_write_all (stream, "\n", 39, NULL, NULL /* cancellable */, &error) || !g_output_stream_write_all (stream, "\n", 24, NULL, NULL /* cancellable */, &error)) { g_warning ("Failed to write history header: %s", error->message); g_clear_error (&error); success = FALSE; } for (const GList *h = history; success && h; h = g_list_next (h)) { const GPasteItem *item = h->data; const gchar *kind = g_paste_item_get_kind (item); const gchar *uuid = g_paste_item_get_uuid (item); if (g_paste_str_equal (kind, "Password")) continue; const GSList *special_values = g_paste_item_get_special_values (item); g_autofree gchar *text = g_paste_util_xml_encode (g_paste_item_get_value (item)); if (!g_output_stream_write_all (stream, " \n \n", 12, NULL, NULL /* cancellable */, &error) || (special_values && !_g_paste_file_backend_write_special_values (stream, special_values, &error)) || !g_output_stream_write_all (stream, " \n", 10, NULL, NULL /* cancellable */, &error)) { g_warning ("Failed to write an item to history: %s", error->message); g_clear_error (&error); success = FALSE; } } if (success && !g_output_stream_write_all (stream, "\n", 11, NULL, NULL /* cancellable */, &error)) { g_warning ("Failed to write history footer: %s", error->message); g_clear_error (&error); success = FALSE; } if (success && !g_output_stream_close (stream, NULL /* cancellable */, &error)) { g_warning ("Failed to close history temp file: %s", error->message); g_clear_error (&error); success = FALSE; } if (success && !g_file_move (tmp_file, history_file, G_FILE_COPY_OVERWRITE, NULL, NULL, NULL, &error)) { g_warning ("Failed to install history file: %s", error->message); g_clear_error (&error); success = FALSE; } if (!success) { if (!g_file_delete (tmp_file, NULL, &error) && !g_error_matches (error, G_IO_ERROR, G_IO_ERROR_NOT_FOUND)) { g_warning ("Failed to delete history temp file: %s", error->message); } } } /********************/ /* Begin XML Parser */ /********************/ typedef enum { BEGIN, IN_HISTORY, IN_ITEM, IN_ITEM_WITH_TEXT, IN_VALUE, IN_VALUE_WITH_TEXT, END } State; typedef enum { TEXT, IMAGE, URIS, PASSWORD, COLOR } Type; typedef enum { HISTORY_1_0, HISTORY_2_0, HISTORY_CURRENT = HISTORY_2_0, HISTORY_INVALID = -1 } HistoryVersion; typedef struct { const gchar *history_file_path; GList *history; gsize mem_size; State state; Type type; guint64 current_size; guint64 max_size; gboolean images_support; gchar *uuid; gchar *date; gchar *checksum; gchar *name; gchar *text; GSList *special_values; HistoryVersion version; GPasteSpecialAtom mime; } Data; #define ASSERT_STATE(x) \ if (data->state != x) \ { \ gint line_number, char_number; \ g_markup_parse_context_get_position (context, &line_number, &char_number); \ g_warning ("Expected state %" G_GINT32_FORMAT ", but got %" G_GINT32_FORMAT \ " in file “%s” at line %" G_GINT32_FORMAT ", column %" G_GINT32_FORMAT ".", \ x, data->state, data->history_file_path, line_number, char_number); \ return; \ } #define SWITCH_STATE(x, y) \ do { \ ASSERT_STATE (x); \ data->state = y; \ } while (0) static gboolean history_contains_uuid (const GList *history, const gchar *uuid) { for (; history; history = g_list_next (history)) { const GPasteItem *item = history->data; if (g_paste_str_equal (g_paste_item_get_uuid (item), uuid)) return TRUE; } return FALSE; } static void start_tag (GMarkupParseContext *context G_GNUC_UNUSED, const gchar *element_name, const gchar **attribute_names, const gchar **attribute_values, gpointer user_data, GError **error G_GNUC_UNUSED) { Data *data = user_data; if (g_paste_str_equal (element_name, "history")) { SWITCH_STATE (BEGIN, IN_HISTORY); for (const gchar **a = attribute_names, **v = attribute_values; *a && *v; ++a, ++v) { if (g_paste_str_equal (*a, "version")) { if (g_paste_str_equal (*v, "1.0")) data->version = HISTORY_1_0; else if (g_paste_str_equal (*v, "2.0")) data->version = HISTORY_2_0; else { g_warning ("Unknown history version: %s", *v); data->version = HISTORY_INVALID; } } } } else if (g_paste_str_equal (element_name, "item")) { SWITCH_STATE (IN_HISTORY, IN_ITEM); g_clear_pointer (&data->uuid, g_free); g_clear_pointer (&data->date, g_free); g_clear_pointer (&data->checksum, g_free); g_clear_pointer (&data->name, g_free); g_clear_pointer (&data->text, g_free); g_clear_slist (&data->special_values, g_object_unref); for (const gchar **a = attribute_names, **v = attribute_values; *a && *v; ++a, ++v) { if (g_paste_str_equal (*a, "kind")) { if (g_paste_str_equal (*v, "Text")) data->type = TEXT; else if (g_paste_str_equal (*v, "Image")) data->type = IMAGE; else if (g_paste_str_equal (*v, "Uris")) data->type = URIS; else if (g_paste_str_equal (*v, "Password")) data->type = PASSWORD; else if (g_paste_str_equal (*v, "Color")) data->type = COLOR; else g_warning ("Unknown item kind: %s", *v); } else if (g_paste_str_equal (*a, "uuid")) { if (g_uuid_string_is_valid (*v) && !history_contains_uuid (data->history, *v)) data->uuid = g_strdup (*v); } else if (g_paste_str_equal (*a, "date")) { if (data->type != IMAGE) { g_warning ("Expected type %" G_GINT32_FORMAT ", but got %" G_GINT32_FORMAT, IMAGE, data->type); return; } data->date = g_strdup (*v); } else if (g_paste_str_equal (*a, "checksum")) { if (data->type != IMAGE) { g_warning ("Expected type %" G_GINT32_FORMAT ", but got %" G_GINT32_FORMAT, IMAGE, data->type); return; } data->checksum = g_strdup (*v); } else if (g_paste_str_equal (*a, "name")) { if (data->type != PASSWORD) { g_warning ("Expected type %" G_GINT32_FORMAT ", but got %" G_GINT32_FORMAT, PASSWORD, data->type); return; } data->name = g_strdup (*v); } else g_warning ("Unknown item attribute: %s", *a); } } else if (g_paste_str_equal (element_name, "value")) { SWITCH_STATE (IN_ITEM, IN_VALUE); data->mime = G_PASTE_SPECIAL_ATOM_INVALID; for (const gchar **a = attribute_names, **v = attribute_values; *a && *v; ++a, ++v) { if (g_paste_str_equal (*a, "mime")) { GEnumValue *gev = g_enum_get_value_by_nick (g_type_class_peek (G_PASTE_TYPE_SPECIAL_ATOM), *v); if (gev) data->mime = gev->value; else g_warning ("Unknown mime: %s", *v); } } } else g_warning ("Unknown element: %s", element_name); } static void add_item (Data *data) { GPasteItem *item = NULL; switch (data->type) { case TEXT: item = g_paste_text_item_new (data->text); break; case URIS: item = g_paste_uris_item_new_from_str (data->text); break; case PASSWORD: item = g_paste_password_item_new (data->name, data->text); break; case COLOR: item = g_paste_color_item_new_from_str (data->text); break; case IMAGE: if (data->images_support && data->date) { g_autoptr (GDateTime) date_time = g_date_time_new_from_unix_local (g_ascii_strtoll (data->date, NULL, /* end */ 0)); /* base */ item = g_paste_image_item_new_from_file (data->text, date_time, data->checksum); } else { g_autoptr (GFile) img_file = g_file_new_for_path (data->text); if (g_file_query_exists (img_file, NULL)) /* cancellable */ { g_autoptr (GError) error = NULL; if (!g_file_delete (img_file, NULL, &error)) g_warning ("Failed to delete leftover image: %s", error->message); } } break; } if (item) { if (!data->uuid) data->uuid = g_uuid_string_random (); g_paste_item_set_uuid (item, data->uuid); data->history = g_list_append (data->history, item); ++data->current_size; } for (GSList *d = data->special_values; d; d = d->next) { GPasteBinaryData *v = d->data; if (item) g_paste_item_add_special_value (item, v); else g_object_unref (v); } if (item) data->mem_size += g_paste_item_get_size (item); g_clear_pointer (&data->special_values, g_slist_free); } static void end_tag (GMarkupParseContext *context G_GNUC_UNUSED, const gchar *element_name, gpointer user_data, GError **error G_GNUC_UNUSED) { Data *data = user_data; if (g_paste_str_equal (element_name, "history")) SWITCH_STATE (IN_HISTORY, END); else if (g_paste_str_equal (element_name, "item")) { if (data->current_size < data->max_size) add_item (data); switch (data->version) { case HISTORY_1_0: SWITCH_STATE (IN_ITEM_WITH_TEXT, IN_HISTORY); break; case HISTORY_2_0: SWITCH_STATE (IN_ITEM, IN_HISTORY); break; case HISTORY_INVALID: g_warning ("Invalid history version, ignoring end of item"); break; } } else if (g_paste_str_equal (element_name, "value")) SWITCH_STATE (IN_VALUE_WITH_TEXT, IN_ITEM); else g_warning ("Unknown element: %s", element_name); } static void on_text (GMarkupParseContext *context G_GNUC_UNUSED, const gchar *text, gsize text_len, gpointer user_data, GError **error G_GNUC_UNUSED) { Data *data = user_data; g_autofree gchar *txt = g_strndup (text, text_len); switch (data->state) { case IN_HISTORY: case IN_ITEM_WITH_TEXT: case IN_VALUE_WITH_TEXT: if (*g_strstrip (txt)) { g_warning ("Unexpected text: %s", txt); return; } break; case IN_ITEM: { if (data->version == HISTORY_1_0) { data->text = g_paste_util_xml_decode (txt); if (*g_strstrip (txt)) SWITCH_STATE (IN_ITEM, IN_ITEM_WITH_TEXT); else g_clear_pointer (&data->text, g_free); } else if (*g_strstrip (txt)) g_warning ("Unexpected text in item for history version != 1.0 %s", txt); break; } case IN_VALUE: if (data->version == HISTORY_2_0) { g_autofree gchar *value = g_paste_util_xml_decode (txt); if (*g_strstrip (txt)) { SWITCH_STATE (IN_VALUE, IN_VALUE_WITH_TEXT); if (data->mime == G_PASTE_SPECIAL_ATOM_INVALID) { g_clear_pointer (&data->text, g_free); data->text = g_steal_pointer (&value); } else { gsize raw_length; guchar *raw = (guchar *) g_base64_decode (value, &raw_length); GPasteBinaryData *sv = g_paste_binary_data_new (data->mime, g_bytes_new_take (raw, raw_length)); data->special_values = g_slist_prepend (data->special_values, sv); } } } else g_warning ("Unexpected value for history version != 2.0"); break; default: g_warning ("Unexpected state: %" G_GINT32_FORMAT, data->state); break; } } static void on_error (GMarkupParseContext *context G_GNUC_UNUSED, GError *error, gpointer user_data G_GNUC_UNUSED) { g_warning ("error: %s", error->message); } /******************/ /* End XML Parser */ /******************/ static void g_paste_file_backend_read_history_file (const GPasteStorageBackend *self, const gchar *history_file_path, GList **history, gsize *size) { const GPasteSettings *settings = _G_PASTE_STORAGE_BACKEND_GET_CLASS (self)->get_settings (self); g_autoptr (GFile) history_file = g_file_new_for_path (history_file_path); g_autofree gchar *text = NULL; if (g_file_query_exists (history_file, NULL)) /* cancellable */ { GMarkupParser parser = { start_tag, end_tag, on_text, NULL, on_error }; Data data = { history_file_path, NULL, 0, BEGIN, TEXT, 0, g_paste_settings_get_max_history_size (settings), g_paste_settings_get_images_support (settings), NULL, /* uuid */ NULL, /* date */ NULL, /* checksum */ NULL, /* name */ NULL, /* text */ NULL, /* special_values */ HISTORY_INVALID, G_PASTE_SPECIAL_ATOM_INVALID }; g_autoptr (GMarkupParseContext) ctx = g_markup_parse_context_new (&parser, G_MARKUP_TREAT_CDATA_AS_TEXT, &data, NULL); gsize text_length; g_autoptr (GError) error = NULL; if (!g_file_get_contents (history_file_path, &text, &text_length, &error)) { g_warning ("Failed to read history file: %s", error->message); return; } if (!g_markup_parse_context_parse (ctx, text, text_length, &error) || !g_markup_parse_context_end_parse (ctx, &error)) { g_warning ("Failed to parse history file: %s", error->message); } if (data.state != END) g_warning ("Unexpected state after parsing history: %" G_GINT32_FORMAT, data.state); *history = data.history; *size = data.mem_size; g_clear_pointer (&data.uuid, g_free); g_clear_pointer (&data.date, g_free); g_clear_pointer (&data.checksum, g_free); g_clear_pointer (&data.name, g_free); g_clear_pointer (&data.text, g_free); if (data.version != HISTORY_CURRENT) g_paste_file_backend_write_history_file (self, history_file_path, *history); } else { /* Create the empty file to be listed as an available history */ if (g_paste_util_ensure_history_dir_exists (settings)) { g_autoptr (GError) error = NULL; g_autoptr (GFileOutputStream) created = g_file_create (history_file, G_FILE_CREATE_NONE, NULL, &error); if (!created && !g_error_matches (error, G_IO_ERROR, G_IO_ERROR_EXISTS)) g_warning ("Failed to create history file: %s", error->message); } } } static void g_paste_file_backend_delete_history (const GPasteStorageBackend *self G_GNUC_UNUSED, const gchar *name, GError **error) { g_autoptr (GFile) history_file = g_paste_util_get_history_file (name, "xml"); g_file_delete (history_file, NULL, error); } static GStrv g_paste_file_backend_list_histories (const GPasteStorageBackend *self G_GNUC_UNUSED, GError **error) { g_autoptr (GStrvBuilder) history_names = g_strv_builder_new (); g_autoptr (GFile) history_dir = g_paste_util_get_history_dir (); g_autoptr (GFileEnumerator) histories = g_file_enumerate_children (history_dir, G_FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME, G_FILE_QUERY_INFO_NONE, NULL, error); if (error && *error) { if ((*error)->domain == G_IO_ERROR && (*error)->code == G_IO_ERROR_NOT_FOUND) { g_clear_error (error); return g_strv_builder_end (history_names); } return NULL; } GFileInfo *history; while ((history = g_file_enumerator_next_file (histories, NULL, error))) { g_autoptr (GFileInfo) h = history; if (error && *error) return NULL; const gchar *raw_name = g_file_info_get_display_name (h); if (g_str_has_suffix (raw_name, ".xml")) { g_autofree gchar *name = g_strdup (raw_name); name[strlen (name) - 4] = '\0'; g_strv_builder_take (history_names, g_steal_pointer (&name)); } } return g_strv_builder_end (history_names); } static const gchar * g_paste_file_backend_get_extension (const GPasteStorageBackend *self G_GNUC_UNUSED) { return "xml"; } static GOutputStream * g_paste_file_backend_get_output_stream (const GPasteFileBackend *self G_GNUC_UNUSED, GFile *output_file) { g_autoptr (GError) error = NULL; GOutputStream *stream = G_OUTPUT_STREAM (g_file_replace (output_file, NULL, FALSE, G_FILE_CREATE_REPLACE_DESTINATION, NULL, /* cancellable */ &error)); if (!stream) g_warning ("Failed to open history temp file for writing: %s", error->message); return stream; } static void g_paste_file_backend_class_init (GPasteFileBackendClass *klass) { GPasteStorageBackendClass *storage_class = G_PASTE_STORAGE_BACKEND_CLASS (klass); storage_class->read_history_file = g_paste_file_backend_read_history_file; storage_class->write_history_file = g_paste_file_backend_write_history_file; storage_class->get_extension = g_paste_file_backend_get_extension; storage_class->delete_history = g_paste_file_backend_delete_history; storage_class->list_histories = g_paste_file_backend_list_histories; klass->get_output_stream = g_paste_file_backend_get_output_stream; } static void g_paste_file_backend_init (GPasteFileBackend *self G_GNUC_UNUSED) { } Keruspe-GPaste-724def1/src/daemon/gpaste-file-backend.h000066400000000000000000000011551521206431300227160ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #pragma once #include G_BEGIN_DECLS #define G_PASTE_TYPE_FILE_BACKEND (g_paste_file_backend_get_type ()) G_PASTE_DERIVABLE_TYPE (FileBackend, file_backend, FILE_BACKEND, GPasteStorageBackend) struct _GPasteFileBackendClass { GPasteStorageBackendClass parent_class; /*< protected >*/ GOutputStream *(*get_output_stream) (const GPasteFileBackend *self, GFile *output_file); }; G_END_DECLS Keruspe-GPaste-724def1/src/daemon/gpaste-history.c000066400000000000000000001274501521206431300221150ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #include #include #include #include #include #include #include #include #define G_PASTE_LOCK_HISTORY \ g_debug ("%s: Locking history", G_STRFUNC); \ g_autoptr(GMutexLocker) locker = g_mutex_locker_new (&priv->lock) struct _GPasteHistory { GObject parent_instance; }; typedef struct { GMutex lock; GPasteStorageBackend *backend; GPasteSettings *settings; GSignalGroup *settings_signals; GList *history; gsize size; gchar *name; /* Note: we never track the first (active) item here */ const gchar *biggest_uuid; guint64 biggest_size; gboolean write_in_progress; gboolean write_pending; gboolean load_in_progress; guint64 load_generation; } GPasteHistoryPrivate; G_PASTE_DEFINE_TYPE_WITH_PRIVATE (History, history, G_TYPE_OBJECT) enum { SELECTED, SWITCH, UPDATE, LAST_SIGNAL }; static guint64 signals[LAST_SIGNAL] = { 0 }; static void g_paste_history_private_elect_new_biggest (GPasteHistoryPrivate *priv) { g_debug ("history: elect biggest"); priv->biggest_uuid = NULL; priv->biggest_size = 0; GList *history = priv->history; if (history) { for (history = history->next; history; history = history->next) { GPasteItem *item = history->data; guint64 size = g_paste_item_get_size (item); if (size > priv->biggest_size) { priv->biggest_uuid = g_paste_item_get_uuid (item); priv->biggest_size = size; } } } } static void g_paste_history_item_free (gpointer data) { g_autoptr (GPasteItem) item = data; if (_G_PASTE_IS_IMAGE_ITEM (item)) { g_autoptr (GFile) image = g_file_new_for_path (g_paste_item_get_value (item)); g_autoptr (GError) error = NULL; if (!g_file_delete (image, NULL, &error)) g_warning ("Failed to delete image file: %s", error->message); } } static void g_paste_history_private_remove (GPasteHistoryPrivate *priv, GList *elem, gboolean remove_leftovers) { if (!elem) return; GPasteItem *item = elem->data; priv->size -= g_paste_item_get_size (item); if (remove_leftovers) g_paste_history_item_free (item); priv->history = g_list_delete_link (priv->history, elem); } static void g_paste_history_selected (GPasteHistory *self, GPasteItem *item) { g_debug ("history: selected"); g_signal_emit (self, signals[SELECTED], 0, /* detail */ item, NULL); } static void g_paste_history_emit_switch (GPasteHistory *self, const gchar *name) { g_debug ("history: switch"); g_signal_emit (self, signals[SWITCH], 0, /* detail */ name, NULL); } typedef struct { GPasteStorageBackend *backend; gchar *name; GList *history; } GPasteHistoryWriteData; static void g_paste_history_write_data_free (gpointer data) { g_autofree GPasteHistoryWriteData *d = data; g_clear_object (&d->backend); g_clear_pointer (&d->name, g_free); g_clear_list (&d->history, g_object_unref); } G_DEFINE_AUTOPTR_CLEANUP_FUNC (GPasteHistoryWriteData, g_paste_history_write_data_free) static void g_paste_history_write_done (GObject *source_object, GAsyncResult *result, gpointer user_data); static gpointer g_paste_history_copy_ref (gconstpointer src, gpointer data G_GNUC_UNUSED) { return g_object_ref ((gpointer) src); } static void g_paste_history_write_task (GTask *task, gpointer source_object G_GNUC_UNUSED, gpointer task_data, GCancellable *cancellable G_GNUC_UNUSED) { const GPasteHistoryWriteData *data = task_data; g_paste_storage_backend_write_history (data->backend, data->name, data->history); g_task_return_boolean (task, TRUE); } static void g_paste_history_schedule_write (GPasteHistory *self, GPasteHistoryPrivate *priv) { priv->write_pending = FALSE; priv->write_in_progress = TRUE; g_autoptr (GPasteHistoryWriteData) data = g_new (GPasteHistoryWriteData, 1); data->backend = g_object_ref (priv->backend); data->name = g_strdup (priv->name); data->history = g_list_copy_deep (priv->history, g_paste_history_copy_ref, NULL); g_autoptr (GTask) task = g_task_new (self, NULL, g_paste_history_write_done, NULL); g_task_set_static_name (task, "gpaste-history-write"); g_task_set_task_data (task, g_steal_pointer (&data), g_paste_history_write_data_free); g_task_run_in_thread (task, g_paste_history_write_task); } static void g_paste_history_write_done (GObject *source_object, GAsyncResult *result G_GNUC_UNUSED, gpointer user_data G_GNUC_UNUSED) { GPasteHistory *self = G_PASTE_HISTORY (source_object); GPasteHistoryPrivate *priv = g_paste_history_get_instance_private (self); G_PASTE_LOCK_HISTORY; priv->write_in_progress = FALSE; if (priv->write_pending && priv->backend) g_paste_history_schedule_write (self, priv); } static void g_paste_history_emit_update (GPasteHistory *self, GPasteUpdateAction action, GPasteUpdateTarget target, guint64 position) { g_debug ("history: update"); g_signal_emit (self, signals[UPDATE], 0, /* detail */ action, target, position, NULL); } static void g_paste_history_update (GPasteHistory *self, GPasteUpdateAction action, GPasteUpdateTarget target, guint64 position) { GPasteHistoryPrivate *priv = g_paste_history_get_instance_private (self); if (!priv->load_in_progress) { if (priv->write_in_progress) priv->write_pending = TRUE; else g_paste_history_schedule_write (self, priv); } g_paste_history_emit_update (self, action, target, position); } static void g_paste_history_activate_first (GPasteHistory *self, gboolean select) { GPasteHistoryPrivate *priv = g_paste_history_get_instance_private (self); GList *history = priv->history; if (!history) return; GPasteItem *first = history->data; priv->size -= g_paste_item_get_size (first); g_paste_item_set_state (first, G_PASTE_ITEM_STATE_ACTIVE); priv->size += g_paste_item_get_size (first); if (select) g_paste_history_selected (self, first); } static GList * g_paste_history_private_get_item_by_uuid (const GPasteHistoryPrivate *priv, const gchar *uuid, guint64 *index) { guint64 idx = 0; for (GList *history = priv->history; history; history = history->next, ++idx) { const GPasteItem *item = history->data; if (g_paste_str_equal (g_paste_item_get_uuid (item), uuid)) { if (index) *index = idx; return history; } } return NULL; } static GPasteItem * g_paste_history_private_get_by_uuid (const GPasteHistoryPrivate *priv, const gchar *uuid) { GList *item = g_paste_history_private_get_item_by_uuid (priv, uuid, NULL); return (item) ? item->data : NULL; } static void g_paste_history_private_check_memory_usage (GPasteHistoryPrivate *priv) { guint64 max_memory = g_paste_settings_get_max_memory_usage (priv->settings) * 1024 * 1024; while (priv->size > max_memory && priv->biggest_uuid) { GList *biggest = g_paste_history_private_get_item_by_uuid (priv, priv->biggest_uuid, NULL); if (biggest) g_paste_history_private_remove (priv, biggest, TRUE); g_paste_history_private_elect_new_biggest (priv); } } static void g_paste_history_private_check_size (GPasteHistoryPrivate *priv) { GList *history = priv->history; guint64 max_history_size = g_paste_settings_get_max_history_size (priv->settings); guint64 length = g_list_length (history); if (length > max_history_size) { history = g_list_nth (history, max_history_size); g_return_if_fail (history); for (GList *_history = history; _history; _history = g_list_next (_history)) priv->size -= g_paste_item_get_size (_history->data); if (history->prev) { history->prev->next = NULL; history->prev = NULL; } else priv->history = NULL; g_list_free_full (history, g_paste_history_item_free); } } static gboolean g_paste_history_private_is_growing_line (GPasteHistoryPrivate *priv, GPasteItem *old, GPasteItem *new) { if (_G_PASTE_IS_IMAGE_ITEM (old) || _G_PASTE_IS_IMAGE_ITEM (new)) return FALSE; if (!(g_paste_settings_get_growing_lines (priv->settings) && _G_PASTE_IS_TEXT_ITEM (old) && _G_PASTE_IS_TEXT_ITEM (new) && !_G_PASTE_IS_PASSWORD_ITEM (old) && !_G_PASTE_IS_PASSWORD_ITEM (new))) return FALSE; const gchar *n = g_paste_item_get_value (new); const gchar *o = g_paste_item_get_value (old); return (g_str_has_prefix (n, o) || g_str_has_suffix (n, o)); } static void _g_paste_history_add (GPasteHistory *self, GPasteItem *item, gboolean new_selection) { g_return_if_fail (_G_PASTE_IS_HISTORY (self)); g_return_if_fail (_G_PASTE_IS_ITEM (item)); GPasteHistoryPrivate *priv = g_paste_history_get_instance_private (self); guint64 max_memory = g_paste_settings_get_max_memory_usage (priv->settings) * 1024 * 1024; /* On add (new_selection) we own @item (transfer full) and must consume it on * every path; on select it is borrowed (already in the history) and merely * moved. Holding it here frees it automatically on the early-return paths; * it is g_steal_pointer'd into the list once it is actually stored. */ g_autoptr (GPasteItem) owned = new_selection ? item : NULL; if (g_paste_item_get_size (item) > max_memory) return; GList *history = priv->history; gboolean election_needed = !history; // If we don't have an history we want to initalize the biggest GPasteUpdateTarget target = G_PASTE_UPDATE_TARGET_ALL; g_debug ("history: add"); if (history) { GPasteItem *old_first = history->data; if (g_paste_item_equals (old_first, item)) return; if (new_selection && g_paste_history_private_is_growing_line (priv, old_first, item)) { if (g_paste_str_equal (priv->biggest_uuid, g_paste_item_get_uuid (old_first))) election_needed = TRUE; target = G_PASTE_UPDATE_TARGET_POSITION; /* old_first is a distinct object replaced by the grown item; free it * (its shared backing file, if any, is kept). */ g_autoptr (GPasteItem) dropped = old_first; g_paste_history_private_remove (priv, history, FALSE); } else { /* size may change when state is idle */ priv->size -= g_paste_item_get_size (old_first); g_paste_item_set_state (old_first, G_PASTE_ITEM_STATE_IDLE); guint64 size = g_paste_item_get_size (old_first); priv->size += size; if (size >= priv->biggest_size) { priv->biggest_uuid = g_paste_item_get_uuid (old_first); priv->biggest_size = size; } for (history = history->next; history; history = history->next) { if (g_paste_item_equals (history->data, item) || (new_selection && g_paste_history_private_is_growing_line (priv, history->data, item))) { GPasteItem *entry = history->data; if (g_paste_str_equal (priv->biggest_uuid, g_paste_item_get_uuid (entry))) election_needed = TRUE; /* On add, @entry is a distinct duplicate to free (its shared * backing file is kept). On select, @entry IS @item being moved * to the front, so its ref must be left alone. */ g_autoptr (GPasteItem) dropped = new_selection ? entry : NULL; g_paste_history_private_remove (priv, history, FALSE); break; } } } } priv->history = g_list_prepend (priv->history, item); g_steal_pointer (&owned); /* ownership transferred to the history list */ g_paste_history_activate_first (self, FALSE); priv->size += g_paste_item_get_size (item); g_paste_history_private_check_size (priv); if (election_needed) g_paste_history_private_elect_new_biggest (priv); g_paste_history_private_check_memory_usage (priv); g_paste_history_update (self, G_PASTE_UPDATE_ACTION_REPLACE, target, 0); } /** * g_paste_history_add: * @self: a #GPasteHistory instance * @item: (transfer full): the #GPasteItem to add * * Add a #GPasteItem to the #GPasteHistory */ G_PASTE_VISIBLE void g_paste_history_add (GPasteHistory *self, GPasteItem *item) { g_return_if_fail (_G_PASTE_IS_HISTORY (self)); g_return_if_fail (_G_PASTE_IS_ITEM (item)); GPasteHistoryPrivate *priv = g_paste_history_get_instance_private (self); G_PASTE_LOCK_HISTORY; _g_paste_history_add (self, item, TRUE); } static void g_paste_history_remove_common (GPasteHistory *self, GPasteHistoryPrivate *priv, GList *item, guint64 index) { if (!item) return; gboolean was_biggest = g_paste_str_equal (priv->biggest_uuid, g_paste_item_get_uuid (item->data)); g_paste_history_private_remove (priv, item, TRUE); if (!index) g_paste_history_activate_first (self, TRUE); if (was_biggest) g_paste_history_private_elect_new_biggest (priv); g_paste_history_update (self, G_PASTE_UPDATE_ACTION_REMOVE, G_PASTE_UPDATE_TARGET_POSITION, index); } static void g_paste_history_remove_locked (GPasteHistory *self, GPasteHistoryPrivate *priv, guint64 index) { GList *history = priv->history; g_debug ("history: remove '%" G_GUINT64_FORMAT "'", index); if (index >= g_list_length (history)) return; GList *item = g_list_nth (history, index); g_paste_history_remove_common (self, priv, item, index); } /** * g_paste_history_remove: * @self: a #GPasteHistory instance * @index: the index of the #GPasteItem to delete * * Delete a #GPasteItem from the #GPasteHistory */ G_PASTE_VISIBLE void g_paste_history_remove (GPasteHistory *self, guint64 index) { g_return_if_fail (_G_PASTE_IS_HISTORY (self)); GPasteHistoryPrivate *priv = g_paste_history_get_instance_private (self); G_PASTE_LOCK_HISTORY; g_paste_history_remove_locked (self, priv, index); } /** * g_paste_history_remove_by_uuid: * @self: a #GPasteHistory instance * @uuid: the uuid of the #GPasteItem to delete * * Delete a #GPasteItem from the #GPasteHistory * * Returns: whether we removed anything */ G_PASTE_VISIBLE gboolean g_paste_history_remove_by_uuid (GPasteHistory *self, const gchar *uuid) { g_return_val_if_fail (_G_PASTE_IS_HISTORY (self), FALSE); GPasteHistoryPrivate *priv = g_paste_history_get_instance_private (self); G_PASTE_LOCK_HISTORY; g_debug ("history: remove '%s", uuid); guint64 index; GList *item = g_paste_history_private_get_item_by_uuid (priv, uuid, &index); if (!item) return FALSE; g_paste_history_remove_common (self, priv, item, index); return TRUE; } static GPasteItem * g_paste_history_private_get (const GPasteHistoryPrivate *priv, guint64 index) { GList *history = priv->history; if (index >= g_list_length (history)) return NULL; return G_PASTE_ITEM (g_list_nth_data (history, index)); } /** * g_paste_history_get: * @self: a #GPasteHistory instance * @index: the index of the #GPasteItem * * Get a #GPasteItem from the #GPasteHistory * * Returns: a read-only #GPasteItem */ G_PASTE_VISIBLE const GPasteItem * g_paste_history_get (GPasteHistory *self, guint64 index) { g_return_val_if_fail (_G_PASTE_IS_HISTORY (self), NULL); GPasteHistoryPrivate *priv = g_paste_history_get_instance_private (self); G_PASTE_LOCK_HISTORY; return g_paste_history_private_get (priv, index); } /** * g_paste_history_get_by_uuid: * @self: a #GPasteHistory instance * @uuid: the uuid of the #GPasteItem * * Get a #GPasteItem from the #GPasteHistory * * Returns: a read-only #GPasteItem */ G_PASTE_VISIBLE const GPasteItem * g_paste_history_get_by_uuid (GPasteHistory *self, const gchar *uuid) { g_return_val_if_fail (_G_PASTE_IS_HISTORY (self), NULL); GPasteHistoryPrivate *priv = g_paste_history_get_instance_private (self); G_PASTE_LOCK_HISTORY; return g_paste_history_private_get_by_uuid (priv, uuid); } /** * g_paste_history_dup: * @self: a #GPasteHistory instance * @index: the index of the #GPasteItem * * Get a #GPasteItem from the #GPasteHistory * free it with g_object_unref * * Returns: (transfer full): a #GPasteItem */ G_PASTE_VISIBLE GPasteItem * g_paste_history_dup (GPasteHistory *self, guint64 index) { g_return_val_if_fail (_G_PASTE_IS_HISTORY (self), NULL); GPasteHistoryPrivate *priv = g_paste_history_get_instance_private (self); G_PASTE_LOCK_HISTORY; return g_object_ref (g_paste_history_private_get (priv, index)); } /** * g_paste_history_select: * @self: a #GPasteHistory instance * @uuid: the uuid of the #GPasteItem to select * * Select a #GPasteItem from the #GPasteHistory * * Returns: whether the item could be selected */ G_PASTE_VISIBLE gboolean g_paste_history_select (GPasteHistory *self, const gchar *uuid) { g_return_val_if_fail (_G_PASTE_IS_HISTORY (self), FALSE); g_debug ("history: select '%s'", uuid); GPasteHistoryPrivate *priv = g_paste_history_get_instance_private (self); G_PASTE_LOCK_HISTORY; GPasteItem *item = g_paste_history_private_get_by_uuid (priv, uuid); if (!item) return FALSE; _g_paste_history_add (self, item, FALSE); g_paste_history_selected (self, item); return TRUE; } static void _g_paste_history_replace (GPasteHistory *self, guint64 index, GPasteItem *new, GList *todel) { GPasteHistoryPrivate *priv = g_paste_history_get_instance_private (self); GPasteItem *old = todel->data; gboolean was_biggest = g_paste_str_equal (priv->biggest_uuid, g_paste_item_get_uuid (old)); priv->size -= g_paste_item_get_size (old); priv->size += g_paste_item_get_size (new); g_object_unref (old); todel->data = new; if (was_biggest) g_paste_history_private_elect_new_biggest (priv); g_paste_history_update (self, G_PASTE_UPDATE_ACTION_REPLACE, G_PASTE_UPDATE_TARGET_POSITION, index); } /** * g_paste_history_replace: * @self: a #GPasteHistory instance * @uuid: the uuid of the #GPasteTextItem to replace * @contents: the new contents * * Replace the contents of text item at index @index */ G_PASTE_VISIBLE void g_paste_history_replace (GPasteHistory *self, const gchar *uuid, const gchar *contents) { g_return_if_fail (_G_PASTE_IS_HISTORY (self)); g_return_if_fail (!contents || g_utf8_validate (contents, -1, NULL)); GPasteHistoryPrivate *priv = g_paste_history_get_instance_private (self); G_PASTE_LOCK_HISTORY; guint64 index; GList *todel = g_paste_history_private_get_item_by_uuid (priv, uuid, &index); if (!todel) return; GPasteItem *item = todel->data; g_return_if_fail (_G_PASTE_IS_TEXT_ITEM (item) && g_paste_str_equal (g_paste_item_get_kind (item), "Text")); GPasteItem *new = g_paste_text_item_new (contents); _g_paste_history_replace (self, index, new, todel); if (!index) g_paste_history_selected (self, new); } static GPasteItem * _g_paste_history_private_get_password (const GPasteHistoryPrivate *priv, const gchar *name, guint64 *index) { guint64 idx = 0; for (GList *h = priv->history; h; h = g_list_next (h), ++idx) { GPasteItem *i = h->data; if (_G_PASTE_IS_PASSWORD_ITEM (i) && g_paste_str_equal (g_paste_password_item_get_name ((GPastePasswordItem *) i), name)) { if (index) *index = idx; return i; } } if (index) *index = -1; return NULL; } /** * g_paste_history_set_password: * @self: a #GPasteHistory instance * @uuid: the uuid of the #GPasteTextItem to change as password * @name: (nullable): the name to give to the password * * Mark a text item as password */ G_PASTE_VISIBLE void g_paste_history_set_password (GPasteHistory *self, const gchar *uuid, const gchar *name) { g_return_if_fail (_G_PASTE_IS_HISTORY (self)); g_return_if_fail (!name || g_utf8_validate (name, -1, NULL)); GPasteHistoryPrivate *priv = g_paste_history_get_instance_private (self); G_PASTE_LOCK_HISTORY; guint64 index; GList *todel = g_paste_history_private_get_item_by_uuid (priv, uuid, &index); g_return_if_fail (todel); GPasteItem *item = todel->data; g_return_if_fail (_G_PASTE_IS_TEXT_ITEM (item) && g_paste_str_equal (g_paste_item_get_kind (item), "Text")); g_return_if_fail (!_g_paste_history_private_get_password (priv, name, NULL)); GPasteItem *password = g_paste_password_item_new (name, g_paste_item_get_real_value (item)); _g_paste_history_replace (self, index, password, todel); } /** * g_paste_history_get_password: * @self: a #GPasteHistory instance * @name: the name of the #GPastePasswordItem * * Get the first password matching name * * Returns: (nullable): a #GPastePasswordItem or %NULL */ G_PASTE_VISIBLE const GPastePasswordItem * g_paste_history_get_password (GPasteHistory *self, const gchar *name) { g_return_val_if_fail (_G_PASTE_IS_HISTORY (self), NULL); g_return_val_if_fail (!name || g_utf8_validate (name, -1, NULL), NULL); GPasteHistoryPrivate *priv = g_paste_history_get_instance_private (self); G_PASTE_LOCK_HISTORY; GPasteItem *item = _g_paste_history_private_get_password (priv, name, NULL); return (item) ? G_PASTE_PASSWORD_ITEM (item) : NULL; } /** * g_paste_history_delete_password: * @self: a #GPasteHistory instance * @name: the name of the #GPastePasswordItem * * Delete the password matching name */ G_PASTE_VISIBLE void g_paste_history_delete_password (GPasteHistory *self, const gchar *name) { g_return_if_fail (_G_PASTE_IS_HISTORY (self)); g_return_if_fail (!name || g_utf8_validate (name, -1, NULL)); GPasteHistoryPrivate *priv = g_paste_history_get_instance_private (self); G_PASTE_LOCK_HISTORY; guint64 index; if (_g_paste_history_private_get_password (priv, name, &index)) g_paste_history_remove_locked (self, priv, index); } /** * g_paste_history_rename_password: * @self: a #GPasteHistory instance * @old_name: the old name of the #GPastePasswordItem * @new_name: (nullable): the new name of the #GPastePasswordItem * * Rename the password item */ G_PASTE_VISIBLE void g_paste_history_rename_password (GPasteHistory *self, const gchar *old_name, const gchar *new_name) { g_return_if_fail (_G_PASTE_IS_HISTORY (self)); g_return_if_fail (!old_name || g_utf8_validate (old_name, -1, NULL)); g_return_if_fail (!new_name || g_utf8_validate (new_name, -1, NULL)); GPasteHistoryPrivate *priv = g_paste_history_get_instance_private (self); G_PASTE_LOCK_HISTORY; guint64 index = 0; GPasteItem *item = _g_paste_history_private_get_password (priv, old_name, &index); if (item) { g_paste_password_item_set_name (G_PASTE_PASSWORD_ITEM (item), new_name); g_paste_history_update (self, G_PASTE_UPDATE_ACTION_REPLACE, G_PASTE_UPDATE_TARGET_POSITION, index); } } /** * g_paste_history_empty: * @self: a #GPasteHistory instance * * Empty the #GPasteHistory */ G_PASTE_VISIBLE void g_paste_history_empty (GPasteHistory *self) { g_return_if_fail (_G_PASTE_IS_HISTORY (self)); GPasteHistoryPrivate *priv = g_paste_history_get_instance_private (self); G_PASTE_LOCK_HISTORY; g_clear_list (&priv->history, g_paste_history_item_free); priv->size = 0; g_paste_history_private_elect_new_biggest (priv); g_paste_history_update (self, G_PASTE_UPDATE_ACTION_REMOVE, G_PASTE_UPDATE_TARGET_ALL, 0); } /** * g_paste_history_save: * @self: a #GPasteHistory instance * @name: (nullable): the name to save the history to (defaults to the configured one) * * Save the #GPasteHistory to the history file */ G_PASTE_VISIBLE void g_paste_history_save (GPasteHistory *self, const gchar *name) { g_return_if_fail (_G_PASTE_IS_HISTORY (self)); GPasteHistoryPrivate *priv = g_paste_history_get_instance_private (self); G_PASTE_LOCK_HISTORY; g_paste_storage_backend_write_history (priv->backend, (name) ? name : priv->name, priv->history); } static void g_paste_history_load_locked (GPasteHistory *self, GPasteHistoryPrivate *priv, const gchar *name) { g_clear_list (&priv->history, g_object_unref); priv->size = 0; g_set_str (&priv->name, (name) ? name : g_paste_settings_get_history_name (priv->settings)); g_paste_storage_backend_read_history (priv->backend, priv->name, &priv->history, &priv->size); if (priv->history) { g_paste_history_activate_first (self, TRUE); g_paste_history_private_elect_new_biggest (priv); } } /** * g_paste_history_load: * @self: a #GPasteHistory instance * @name: (nullable): the name of the history to load, defaults to the configured one * * Load the #GPasteHistory from the history file (synchronous) */ G_PASTE_VISIBLE void g_paste_history_load (GPasteHistory *self, const gchar *name) { g_return_if_fail (_G_PASTE_IS_HISTORY (self)); g_return_if_fail (!name || g_utf8_validate (name, -1, NULL)); GPasteHistoryPrivate *priv = g_paste_history_get_instance_private (self); G_PASTE_LOCK_HISTORY; if (priv->name && g_paste_str_equal (name, priv->name)) return; g_paste_history_load_locked (self, priv, name); } typedef struct { GPasteStorageBackend *backend; gchar *name; guint64 generation; gboolean save_after; } GPasteHistoryLoadData; typedef struct { GList *history; gsize size; } GPasteHistoryLoadResult; static void g_paste_history_load_data_free (gpointer data) { g_autofree GPasteHistoryLoadData *d = data; g_clear_object (&d->backend); g_clear_pointer (&d->name, g_free); } G_DEFINE_AUTOPTR_CLEANUP_FUNC (GPasteHistoryLoadData, g_paste_history_load_data_free) static void g_paste_history_load_result_free (GPasteHistoryLoadResult *result) { g_autofree GPasteHistoryLoadResult *r = result; g_clear_list (&r->history, g_object_unref); } G_DEFINE_AUTOPTR_CLEANUP_FUNC (GPasteHistoryLoadResult, g_paste_history_load_result_free) static void g_paste_history_load_task (GTask *task, gpointer source_object G_GNUC_UNUSED, gpointer task_data, GCancellable *cancellable G_GNUC_UNUSED) { const GPasteHistoryLoadData *data = task_data; GPasteHistoryLoadResult *result = g_new0 (GPasteHistoryLoadResult, 1); g_paste_storage_backend_read_history (data->backend, data->name, &result->history, &result->size); g_task_return_pointer (task, result, (GDestroyNotify) g_paste_history_load_result_free); } static void g_paste_history_load_done (GObject *source_object, GAsyncResult *result, gpointer user_data G_GNUC_UNUSED) { GPasteHistory *self = G_PASTE_HISTORY (source_object); GPasteHistoryPrivate *priv = g_paste_history_get_instance_private (self); const GPasteHistoryLoadData *data = g_task_get_task_data (G_TASK (result)); g_autoptr (GError) error = NULL; g_autoptr (GPasteHistoryLoadResult) load_result = g_task_propagate_pointer (G_TASK (result), &error); G_PASTE_LOCK_HISTORY; priv->load_in_progress = FALSE; if (!load_result) { if (error) g_warning ("Failed to load history: %s", error->message); return; } if (data->generation == priv->load_generation) { g_clear_list (&priv->history, g_object_unref); priv->history = g_steal_pointer (&load_result->history); priv->size = load_result->size; if (priv->history) { g_paste_history_activate_first (self, TRUE); g_paste_history_private_elect_new_biggest (priv); } if (data->save_after) g_paste_history_update (self, G_PASTE_UPDATE_ACTION_REPLACE, G_PASTE_UPDATE_TARGET_ALL, 0); else g_paste_history_emit_update (self, G_PASTE_UPDATE_ACTION_REPLACE, G_PASTE_UPDATE_TARGET_ALL, 0); } } static void g_paste_history_schedule_load (GPasteHistory *self, GPasteHistoryPrivate *priv, const gchar *name, gboolean save_after) { priv->load_in_progress = TRUE; priv->load_generation++; g_autoptr (GPasteHistoryLoadData) data = g_new (GPasteHistoryLoadData, 1); data->backend = g_object_ref (priv->backend); data->name = g_strdup (name); data->generation = priv->load_generation; data->save_after = save_after; g_autoptr (GTask) task = g_task_new (self, NULL, g_paste_history_load_done, NULL); g_task_set_static_name (task, "gpaste-history-load"); g_task_set_task_data (task, g_steal_pointer (&data), g_paste_history_load_data_free); g_task_run_in_thread (task, g_paste_history_load_task); } /** * g_paste_history_load_async: * @self: a #GPasteHistory instance * @name: (nullable): the name of the history to load, defaults to the configured one * * Load the #GPasteHistory from the history file asynchronously. * The UPDATE signal is emitted on the main thread when loading is complete. */ G_PASTE_VISIBLE void g_paste_history_load_async (GPasteHistory *self, const gchar *name) { g_return_if_fail (_G_PASTE_IS_HISTORY (self)); g_return_if_fail (!name || g_utf8_validate (name, -1, NULL)); GPasteHistoryPrivate *priv = g_paste_history_get_instance_private (self); G_PASTE_LOCK_HISTORY; const gchar *resolved = (name) ? name : g_paste_settings_get_history_name (priv->settings); if (priv->name && g_paste_str_equal (resolved, priv->name) && !priv->load_in_progress) return; g_set_str (&priv->name, resolved); g_clear_list (&priv->history, g_object_unref); priv->size = 0; g_paste_history_schedule_load (self, priv, priv->name, FALSE); } /** * g_paste_history_switch: * @self: a #GPasteHistory instance * @name: the name of the new history * * Switch to a new history */ G_PASTE_VISIBLE void g_paste_history_switch (GPasteHistory *self, const gchar *name) { g_return_if_fail (_G_PASTE_IS_HISTORY (self)); g_return_if_fail (name); g_return_if_fail (g_utf8_validate (name, -1, NULL)); const GPasteHistoryPrivate *priv = _g_paste_history_get_instance_private (self); g_paste_settings_set_history_name (priv->settings, name); } /** * g_paste_history_delete: * @self: a #GPasteHistory instance * @name: (nullable): the history to delete (defaults to the configured one) * @error: a #GError * * Delete the current #GPasteHistory */ G_PASTE_VISIBLE void g_paste_history_delete (GPasteHistory *self, const gchar *name, GError **error) { g_return_if_fail (_G_PASTE_IS_HISTORY (self)); const GPasteHistoryPrivate *priv = _g_paste_history_get_instance_private (self); const gchar *history_name = (name) ? name : priv->name; if (g_paste_str_equal (history_name, priv->name)) g_paste_history_empty (self); g_paste_storage_backend_delete_history (priv->backend, history_name, error); } static void g_paste_history_history_name_changed (GPasteHistory *self) { GPasteHistoryPrivate *priv = g_paste_history_get_instance_private (self); g_set_str (&priv->name, g_paste_settings_get_history_name (priv->settings)); g_debug ("history: name changed to '%s'", priv->name); g_clear_list (&priv->history, g_object_unref); priv->size = 0; g_paste_history_emit_switch (self, priv->name); g_paste_history_schedule_load (self, priv, priv->name, TRUE); } static void g_paste_history_settings_changed (GPasteSettings *settings G_GNUC_UNUSED, const gchar *key, gpointer user_data) { GPasteHistory *self = user_data; GPasteHistoryPrivate *priv = g_paste_history_get_instance_private (self); G_PASTE_LOCK_HISTORY; /* FIXME: track text item size settings */ if (g_paste_str_equal (key, G_PASTE_MAX_HISTORY_SIZE_SETTING)) g_paste_history_private_check_size (priv); else if (g_paste_str_equal (key, G_PASTE_MAX_MEMORY_USAGE_SETTING)) g_paste_history_private_check_memory_usage (priv); else if (g_paste_str_equal (key, G_PASTE_HISTORY_NAME_SETTING)) g_paste_history_history_name_changed (self); } static void g_paste_history_dispose (GObject *object) { GPasteHistory *self = G_PASTE_HISTORY (object); GPasteHistoryPrivate *priv = g_paste_history_get_instance_private (self); g_clear_object (&priv->backend); g_clear_list (&priv->history, g_object_unref); g_clear_object (&priv->settings_signals); g_clear_object (&priv->settings); G_OBJECT_CLASS (g_paste_history_parent_class)->dispose (object); } static void g_paste_history_finalize (GObject *object) { GPasteHistoryPrivate *priv = g_paste_history_get_instance_private (G_PASTE_HISTORY (object)); g_free (priv->name); g_mutex_clear (&priv->lock); G_OBJECT_CLASS (g_paste_history_parent_class)->finalize (object); } static void g_paste_history_class_init (GPasteHistoryClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); object_class->dispose = g_paste_history_dispose; object_class->finalize = g_paste_history_finalize; /** * GPasteHistory::selected: * @history: the object on which the signal was emitted * @item: the new selected item * * The "selected" signal is emitted when the user has just * selected a new item form the history. */ signals[SELECTED] = g_signal_new ("selected", G_PASTE_TYPE_HISTORY, G_SIGNAL_RUN_LAST, 0, /* class offset */ NULL, /* accumulator */ NULL, /* accumulator data */ g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, /* number of params */ G_PASTE_TYPE_ITEM); /** * GPasteHistory::switch: * @history: the object on which the signal was emitted * @name: the new history name * * The "switch" signal is emitted when the user has just * switched to a new history */ signals[SWITCH] = g_signal_new ("switch", G_PASTE_TYPE_HISTORY, G_SIGNAL_RUN_LAST, 0, /* class offset */ NULL, /* accumulator */ NULL, /* accumulator data */ g_cclosure_marshal_VOID__STRING, G_TYPE_NONE, 1, /* number of params */ G_TYPE_STRING); /** * GPasteHistory::update: * @history: the object on which the signal was emitted * @action: the kind of update * @target: the items which need updating * @index: the index of the item, when the target is POSITION * * The "update" signal is emitted whenever anything changed * in the history (something was added, removed, selected, replaced...). */ signals[UPDATE] = g_signal_new ("update", G_PASTE_TYPE_HISTORY, G_SIGNAL_RUN_LAST, 0, /* class offset */ NULL, /* accumulator */ NULL, /* accumulator data */ g_cclosure_marshal_generic, G_TYPE_NONE, 3, /* number of params */ G_PASTE_TYPE_UPDATE_ACTION, G_PASTE_TYPE_UPDATE_TARGET, G_TYPE_UINT64); } static void g_paste_history_init (GPasteHistory *self) { GPasteHistoryPrivate *priv = g_paste_history_get_instance_private (self); g_mutex_init (&priv->lock); G_PASTE_LOCK_HISTORY; g_paste_history_private_elect_new_biggest (priv); } /** * g_paste_history_get_history: * @self: a #GPasteHistory instance * * Get the inner history of a #GPasteHistory * * Returns: (element-type GPasteItem) (transfer none): The inner history */ G_PASTE_VISIBLE const GList * g_paste_history_get_history (const GPasteHistory *self) { g_return_val_if_fail (_G_PASTE_IS_HISTORY (self), NULL); const GPasteHistoryPrivate *priv = _g_paste_history_get_instance_private (self); return priv->history; } /** * g_paste_history_get_length: * @self: a #GPasteHistory instance * * Get the length of a #GPasteHistory * * Returns: The length of the inner history */ G_PASTE_VISIBLE guint64 g_paste_history_get_length (GPasteHistory *self) { g_return_val_if_fail (_G_PASTE_IS_HISTORY (self), 0); GPasteHistoryPrivate *priv = g_paste_history_get_instance_private (self); G_PASTE_LOCK_HISTORY; return g_list_length (priv->history); } /** * g_paste_history_get_current: * @self: a #GPasteHistory instance * * Get the name of the current history * * Returns: The name of the current history */ G_PASTE_VISIBLE const gchar * g_paste_history_get_current (const GPasteHistory *self) { g_return_val_if_fail (_G_PASTE_IS_HISTORY (self), 0); const GPasteHistoryPrivate *priv = _g_paste_history_get_instance_private (self); return priv->name; } /** * g_paste_history_search: * @self: a #GPasteHistory instance * @pattern: the pattern to match * * Get the elements matching @pattern in the history * * Returns: (transfer full): The uuids of the matching elements */ G_PASTE_VISIBLE GStrv g_paste_history_search (GPasteHistory *self, const gchar *pattern) { g_return_val_if_fail (_G_PASTE_IS_HISTORY (self), NULL); g_return_val_if_fail (pattern && g_utf8_validate (pattern, -1, NULL), NULL); g_return_val_if_fail (strlen (pattern) <= 256, NULL); g_debug ("history: search '%s'", pattern); GPasteHistoryPrivate *priv = g_paste_history_get_instance_private (self); G_PASTE_LOCK_HISTORY; g_autoptr (GError) error = NULL; g_autoptr (GRegex) regex = g_regex_new (pattern, G_REGEX_CASELESS|G_REGEX_MULTILINE|G_REGEX_DOTALL|G_REGEX_OPTIMIZE, G_REGEX_MATCH_NOTEMPTY|G_REGEX_MATCH_NEWLINE_ANY, &error); if (error) { g_warning ("error while creating regex: %s", error->message); return NULL; } if (!regex) return NULL; g_autoptr (GArray) results = g_array_new (TRUE, /* zero-terminated */ TRUE, /* clear */ sizeof (gchar *)); for (GList *history = priv->history; history; history = g_list_next (history)) { const GPasteItem *item = (GPasteItem *) history->data; const gchar *uuid = g_paste_item_get_uuid (item); gboolean match = FALSE; if (g_paste_str_equal (pattern, uuid)) match = TRUE; else if (_G_PASTE_IS_PASSWORD_ITEM (item) && g_paste_str_equal (pattern, g_paste_password_item_get_name (_G_PASTE_PASSWORD_ITEM (item)))) match = TRUE; else if (g_regex_match (regex, g_paste_item_get_value (item), G_REGEX_MATCH_NOTEMPTY|G_REGEX_MATCH_NEWLINE_ANY, NULL)) match = TRUE; if (match) { gchar *id = g_strdup (uuid); g_array_append_val (results, id); } } return g_array_steal (results, NULL); } /** * g_paste_history_new: * @settings: (transfer none): a #GPasteSettings instance * * Create a new instance of #GPasteHistory * * Returns: a newly allocated #GPasteHistory * free it with g_object_unref */ G_PASTE_VISIBLE GPasteHistory * g_paste_history_new (GPasteSettings *settings) { g_return_val_if_fail (_G_PASTE_IS_SETTINGS (settings), NULL); GPasteHistory *self = g_object_new (G_PASTE_TYPE_HISTORY, NULL); GPasteHistoryPrivate *priv = g_paste_history_get_instance_private (self); priv->backend = g_paste_storage_backend_new (G_PASTE_STORAGE_DEFAULT, settings); priv->settings = g_object_ref (settings); GSignalGroup *settings_signals = priv->settings_signals = g_signal_group_new (G_PASTE_TYPE_SETTINGS); g_signal_group_connect (settings_signals, "changed", G_CALLBACK (g_paste_history_settings_changed), self); g_signal_group_set_target (settings_signals, settings); return self; } /** * g_paste_history_list: * @self: a #GPasteHistory instance * @error: a #GError * * Get the list of available histories * * Returns: (transfer full): The list of history names * free it with g_array_unref */ G_PASTE_VISIBLE GStrv g_paste_history_list (GPasteHistory *self, GError **error) { g_return_val_if_fail (_G_PASTE_IS_HISTORY (self), NULL); g_return_val_if_fail (!error || !(*error), NULL); const GPasteHistoryPrivate *priv = _g_paste_history_get_instance_private (self); return g_paste_storage_backend_list_histories (priv->backend, error); } Keruspe-GPaste-724def1/src/daemon/gpaste-history.h000066400000000000000000000071661521206431300221230ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #pragma once #include #include G_BEGIN_DECLS #define G_PASTE_TYPE_HISTORY (g_paste_history_get_type ()) G_PASTE_FINAL_TYPE (History, history, HISTORY, GObject) void g_paste_history_add (GPasteHistory *self, GPasteItem *item); void g_paste_history_remove (GPasteHistory *self, guint64 index); gboolean g_paste_history_remove_by_uuid (GPasteHistory *self, const gchar *uuid); const GPasteItem *g_paste_history_get (GPasteHistory *self, guint64 index); const GPasteItem *g_paste_history_get_by_uuid (GPasteHistory *self, const gchar *uuid); GPasteItem *g_paste_history_dup (GPasteHistory *self, guint64 index); gboolean g_paste_history_select (GPasteHistory *self, const gchar *uuid); void g_paste_history_replace (GPasteHistory *self, const gchar *uuid, const gchar *contents); void g_paste_history_set_password (GPasteHistory *self, const gchar *uuid, const gchar *name); const GPastePasswordItem *g_paste_history_get_password (GPasteHistory *self, const gchar *name); void g_paste_history_delete_password (GPasteHistory *self, const gchar *name); void g_paste_history_rename_password (GPasteHistory *self, const gchar *old_name, const gchar *new_name); void g_paste_history_empty (GPasteHistory *self); void g_paste_history_save (GPasteHistory *self, const gchar *name); void g_paste_history_load (GPasteHistory *self, const gchar *name); void g_paste_history_load_async (GPasteHistory *self, const gchar *name); void g_paste_history_switch (GPasteHistory *self, const gchar *name); void g_paste_history_delete (GPasteHistory *self, const gchar *name, GError **error); const GList *g_paste_history_get_history (const GPasteHistory *self); guint64 g_paste_history_get_length (GPasteHistory *self); const gchar *g_paste_history_get_current (const GPasteHistory *self); GStrv g_paste_history_search (GPasteHistory *self, const gchar *pattern); GPasteHistory *g_paste_history_new (GPasteSettings *settings); GStrv g_paste_history_list (GPasteHistory *self, GError **error); G_END_DECLS Keruspe-GPaste-724def1/src/daemon/gpaste-image-item.c000066400000000000000000000264371521206431300224350ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #include #include #include #include #include struct _GPasteImageItem { GPasteItem parent_instance; }; typedef struct _GPasteImageItemPrivate { gchar *checksum; GDateTime *date; GdkTexture *image; guint64 additional_size; } GPasteImageItemPrivate; G_PASTE_DEFINE_TYPE_WITH_PRIVATE (ImageItem, image_item, G_PASTE_TYPE_ITEM) /** * g_paste_image_item_get_checksum: * @self: a #GPasteImageItem instance * * Get the checksum of the GdkTexture contained in the #GPasteImageItem * * Returns: read-only string representatig the SHA256 checksum of the image */ G_PASTE_VISIBLE const gchar * g_paste_image_item_get_checksum (const GPasteImageItem *self) { g_return_val_if_fail (_G_PASTE_IS_IMAGE_ITEM (self), NULL); const GPasteImageItemPrivate *priv = _g_paste_image_item_get_instance_private (self); return priv->checksum; } /** * g_paste_image_item_get_date: * @self: a #GPasteImageItem instance * * Get the date at which the image was created * * Returns: read-only GDateTime containing the image's creation date */ G_PASTE_VISIBLE const GDateTime * g_paste_image_item_get_date (const GPasteImageItem *self) { g_return_val_if_fail (_G_PASTE_IS_IMAGE_ITEM (self), NULL); const GPasteImageItemPrivate *priv = _g_paste_image_item_get_instance_private (self); return priv->date; } /** * g_paste_image_item_get_image: * @self: a #GPasteImageItem instance * * Get the image contained in the #GPasteImageItem * * Returns: (transfer none): the GdkTexture of the image */ G_PASTE_VISIBLE GdkTexture * g_paste_image_item_get_image (const GPasteImageItem *self) { g_return_val_if_fail (_G_PASTE_IS_IMAGE_ITEM (self), NULL); const GPasteImageItemPrivate *priv = _g_paste_image_item_get_instance_private (self); return priv->image; } static gboolean g_paste_image_item_equals (const GPasteItem *self, const GPasteItem *other) { if (!_G_PASTE_IS_IMAGE_ITEM (other)) return FALSE; const GPasteImageItemPrivate *priv = _g_paste_image_item_get_instance_private (_G_PASTE_IMAGE_ITEM (self)); const GPasteImageItemPrivate *_priv = _g_paste_image_item_get_instance_private (_G_PASTE_IMAGE_ITEM (other)); return g_paste_str_equal (priv->checksum, _priv->checksum); } static void g_paste_image_item_set_size (GPasteItem *self) { GPasteImageItemPrivate *priv = g_paste_image_item_get_instance_private (G_PASTE_IMAGE_ITEM (self)); GdkTexture *image = priv->image; if (image) { if (!priv->additional_size) { priv->additional_size += strlen (priv->checksum) + 1 + (gsize) gdk_texture_get_width (image) * gdk_texture_get_height (image) * 4; g_paste_item_add_size (self, priv->additional_size); } } else { g_paste_item_remove_size (self, priv->additional_size); priv->additional_size = 0; } } static const gchar * g_paste_image_item_get_kind (const GPasteItem *self G_GNUC_UNUSED) { return "Image"; } static void g_paste_image_item_set_state (GPasteItem *self, GPasteItemState state) { GPasteImageItemPrivate *priv = g_paste_image_item_get_instance_private (G_PASTE_IMAGE_ITEM (self)); switch (state) { case G_PASTE_ITEM_STATE_IDLE: /* Drop only the heavy texture; keep the checksum so deduplication * keeps working against idle items already in the history. */ g_clear_object (&priv->image); break; case G_PASTE_ITEM_STATE_ACTIVE: if (!priv->image) { g_autoptr (GError) error = NULL; priv->image = gdk_texture_new_from_filename (g_paste_item_get_value (self), &error); if (error) g_warning ("Failed to load image from %s: %s", g_paste_item_get_value (self), error->message); if (!priv->checksum) priv->checksum = g_paste_gtk_util_compute_checksum (priv->image); } break; } g_paste_image_item_set_size (self); } static void g_paste_image_item_dispose (GObject *object) { GPasteImageItemPrivate *priv = g_paste_image_item_get_instance_private (G_PASTE_IMAGE_ITEM (object)); g_clear_pointer (&priv->date, g_date_time_unref); g_clear_object (&priv->image); G_OBJECT_CLASS (g_paste_image_item_parent_class)->dispose (object); } static void g_paste_image_item_finalize (GObject *object) { const GPasteImageItemPrivate *priv = _g_paste_image_item_get_instance_private (G_PASTE_IMAGE_ITEM (object)); g_free (priv->checksum); G_OBJECT_CLASS (g_paste_image_item_parent_class)->finalize (object); } static void g_paste_image_item_class_init (GPasteImageItemClass *klass) { GPasteItemClass *item_class = G_PASTE_ITEM_CLASS (klass); item_class->equals = g_paste_image_item_equals; item_class->get_kind = g_paste_image_item_get_kind; item_class->set_state = g_paste_image_item_set_state; GObjectClass *gobject_class = G_OBJECT_CLASS (klass); gobject_class->dispose = g_paste_image_item_dispose; gobject_class->finalize = g_paste_image_item_finalize; } static void g_paste_image_item_init (GPasteImageItem *self G_GNUC_UNUSED) { } static GPasteItem * _g_paste_image_item_new (const gchar *path, GDateTime *date, GdkTexture *image, gchar *checksum) { GPasteItem *self = g_paste_item_new (G_PASTE_TYPE_IMAGE_ITEM, path); GPasteImageItemPrivate *priv = g_paste_image_item_get_instance_private (G_PASTE_IMAGE_ITEM (self)); priv->date = date; priv->image = image; priv->checksum = checksum; /* may be NULL, takes ownership */ if (image) { if (!priv->checksum) priv->checksum = g_paste_gtk_util_compute_checksum (image); } else g_paste_image_item_set_state (G_PASTE_ITEM (self), G_PASTE_ITEM_STATE_ACTIVE); if (!priv->image || !GDK_IS_TEXTURE (priv->image)) { g_object_unref (self); return NULL; } /* Translators: strftime format for image timestamps. Rearrange to match your locale's date/time convention. */ g_autofree gchar *formatted_date = g_date_time_format (date, _("%m/%d/%y %T")); /* Translators: Image item displayed in history. %d is width, %d is height, %s is the formatted date. */ g_autofree gchar *display_string = g_strdup_printf (_("[Image, %d x %d (%s)]"), gdk_texture_get_width (priv->image), gdk_texture_get_height (priv->image), formatted_date); g_paste_item_set_display_string (self, g_steal_pointer (&display_string)); if (image) g_paste_image_item_set_size (self); else g_paste_image_item_set_state (G_PASTE_ITEM (self), G_PASTE_ITEM_STATE_IDLE); return self; } typedef struct { GdkTexture *texture; gchar *path; } GPasteImageSaveData; static void g_paste_image_save_data_free (gpointer data) { g_autofree GPasteImageSaveData *d = data; g_clear_object (&d->texture); g_clear_pointer (&d->path, g_free); } G_DEFINE_AUTOPTR_CLEANUP_FUNC (GPasteImageSaveData, g_paste_image_save_data_free) static void g_paste_image_save_done (GObject *source_object, GAsyncResult *result, gpointer user_data); static void g_paste_image_save_task (GTask *task, gpointer source_object G_GNUC_UNUSED, gpointer task_data, GCancellable *cancellable G_GNUC_UNUSED) { const GPasteImageSaveData *data = task_data; g_task_return_boolean (task, gdk_texture_save_to_png (data->texture, data->path)); } static void g_paste_image_save_done (GObject *source_object G_GNUC_UNUSED, GAsyncResult *result, gpointer user_data G_GNUC_UNUSED) { g_autoptr (GError) error = NULL; if (!g_task_propagate_boolean (G_TASK (result), &error)) { const GPasteImageSaveData *data = g_task_get_task_data (G_TASK (result)); g_warning ("Failed to save image to %s: %s", data->path, error ? error->message : "unknown error"); } } /** * g_paste_image_item_new: * @texture: (transfer none): the GdkTexture we want to be contained in the #GPasteImageItem * * Create a new instance of #GPasteImageItem * * Returns: a newly allocated #GPasteImageItem * free it with g_object_unref */ G_PASTE_VISIBLE GPasteItem * g_paste_image_item_new (GdkTexture *texture) { g_return_val_if_fail (GDK_IS_TEXTURE (texture), NULL); g_autofree gchar *checksum = g_paste_gtk_util_compute_checksum (texture); g_autofree gchar *history_dir = g_paste_util_get_history_dir_path (); g_autofree gchar *images_dir_path = g_build_filename (history_dir, "images", NULL); g_autoptr (GFile) images_dir = g_file_new_for_path (images_dir_path); g_autoptr (GError) mkdir_error = NULL; if (!g_file_make_directory_with_parents (images_dir, NULL, &mkdir_error) && !g_error_matches (mkdir_error, G_IO_ERROR, G_IO_ERROR_EXISTS)) { g_warning ("Failed to create images directory: %s", mkdir_error->message); return NULL; } g_autofree gchar *filename = g_strconcat (checksum, ".png", NULL); g_autofree gchar *path = g_build_filename (images_dir_path, filename, NULL); GPasteItem *self = _g_paste_image_item_new (path, g_date_time_new_now_local (), g_object_ref (texture), g_steal_pointer (&checksum)); if (!self) return NULL; g_autoptr (GPasteImageSaveData) data = g_new (GPasteImageSaveData, 1); data->texture = g_object_ref (texture); data->path = g_strdup (g_paste_item_get_value (self)); g_autoptr (GTask) task = g_task_new (NULL, NULL, g_paste_image_save_done, NULL); g_task_set_static_name (task, "gpaste-image-save"); g_task_set_task_data (task, g_steal_pointer (&data), g_paste_image_save_data_free); g_task_run_in_thread (task, g_paste_image_save_task); return self; } /** * g_paste_image_item_new_from_file: * @path: the path to the image we want to be contained in the #GPasteImageItem * @date: (transfer none): the date at which the image was created * @checksum: (nullable): the image's known SHA256 checksum, or %NULL to compute it * * Create a new instance of #GPasteImageItem * * Returns: a newly allocated #GPasteImageItem * free it with g_object_unref */ G_PASTE_VISIBLE GPasteItem * g_paste_image_item_new_from_file (const gchar *path, GDateTime *date, const gchar *checksum) { g_return_val_if_fail (path, NULL); g_return_val_if_fail (g_utf8_validate (path, -1, NULL), NULL); g_return_val_if_fail (date, NULL); return _g_paste_image_item_new (path, g_date_time_ref (date), NULL, /* GdkTexture */ g_strdup (checksum)); /* Checksum (may be NULL) */ } Keruspe-GPaste-724def1/src/daemon/gpaste-image-item.h000066400000000000000000000015631521206431300224330ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #pragma once #include #include G_BEGIN_DECLS #define G_PASTE_TYPE_IMAGE_ITEM (g_paste_image_item_get_type ()) G_PASTE_FINAL_TYPE (ImageItem, image_item, IMAGE_ITEM, GPasteItem) const gchar *g_paste_image_item_get_checksum (const GPasteImageItem *self); const GDateTime *g_paste_image_item_get_date (const GPasteImageItem *self); GdkTexture *g_paste_image_item_get_image (const GPasteImageItem *self); GPasteItem *g_paste_image_item_new (GdkTexture *texture); GPasteItem *g_paste_image_item_new_from_file (const gchar *path, GDateTime *date, const gchar *checksum); G_END_DECLS Keruspe-GPaste-724def1/src/daemon/gpaste-internal-keybinding-provider.c000066400000000000000000000262331521206431300261760ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #include #include #ifdef GDK_WINDOWING_WAYLAND # include #endif #if defined(ENABLE_X_KEYBINDER) && defined (GDK_WINDOWING_X11) # include # include #endif typedef struct { gchar *id; guint32 *keycodes; /* NULL-terminated, owned */ GdkModifierType modifiers; } _InternalBinding; static void _internal_binding_free (gpointer data) { g_autofree _InternalBinding *b = data; g_free (b->id); g_free (b->keycodes); } typedef struct { GPtrArray *bindings; /* _InternalBinding*, freed with _internal_binding_free */ guint64 c_xevent; } GPasteInternalKeybindingProviderPrivate; struct _GPasteInternalKeybindingProvider { GObject parent_instance; }; static void internal_provider_iface_init (GPasteKeybindingProviderInterface *iface); G_PASTE_DEFINE_TYPE_WITH_PRIVATE_AND_INTERFACE (InternalKeybindingProvider, internal_keybinding_provider, G_TYPE_OBJECT, G_PASTE_TYPE_KEYBINDING_PROVIDER, internal_provider_iface_init) /****************************/ /* Platform-specific grabbing */ /****************************/ #ifdef GDK_WINDOWING_WAYLAND static void internal_provider_change_grab_wayland (void) { g_warning_once ("Wayland hotkeys are currently not supported outside of gnome-shell."); } #endif #if defined(ENABLE_X_KEYBINDER) && defined (GDK_WINDOWING_X11) static gint internal_provider_get_xinput_opcode (Display *display) { static gint32 xinput_opcode = 0; if (!xinput_opcode) { gint32 major = 2, minor = 3; gint32 xinput_error_base; gint32 xinput_event_base; if (XQueryExtension (display, "XInputExtension", &xinput_opcode, &xinput_error_base, &xinput_event_base)) { if (XIQueryVersion (display, &major, &minor) != Success) g_warning ("XInput 2 not found, keybinder won't work"); } } return xinput_opcode; } G_GNUC_BEGIN_IGNORE_DEPRECATIONS static void internal_provider_change_grab_x11 (const guint32 *keycodes, GdkModifierType modifiers, GdkDisplay *display, gboolean grab) { Display *xdisplay = GDK_DISPLAY_XDISPLAY (display); Window window = gdk_x11_display_get_xrootwindow (display); /* Grab with every combination of the "lock" modifiers (NumLock, CapsLock) * so the shortcut fires regardless of their state. */ static const guint locked_mods[] = { 0, Mod2Mask /* NumLock */, LockMask /* CapsLock */, Mod2Mask | LockMask, }; g_autoptr (GArray) mods = g_array_new (FALSE, TRUE, sizeof (XIGrabModifiers)); guchar mask_bits[XIMaskLen (XI_LASTEVENT)] = { 0 }; XIEventMask mask = { XIAllMasterDevices, sizeof (mask_bits), mask_bits }; if (modifiers & XIAnyModifier) g_array_append_val (mods, ((XIGrabModifiers) { XIAnyModifier, 0 })); else { for (guint64 i = 0; i < G_N_ELEMENTS (locked_mods); ++i) g_array_append_val (mods, ((XIGrabModifiers) { modifiers | locked_mods[i], 0 })); } XISetMask (mask.mask, XI_KeyPress); gdk_x11_display_error_trap_push (display); for (const guint32 *keycode = keycodes; *keycode; ++keycode) { if (grab) { XIGrabKeycode (xdisplay, XIAllMasterDevices, *keycode, window, XIGrabModeSync, XIGrabModeAsync, False, &mask, mods->len, (XIGrabModifiers *) mods->data); } else { XIUngrabKeycode (xdisplay, XIAllMasterDevices, *keycode, window, mods->len, (XIGrabModifiers *) mods->data); } } gdk_display_flush (display); gdk_x11_display_error_trap_pop_ignored (display); } G_GNUC_END_IGNORE_DEPRECATIONS #endif static void internal_provider_change_grab (const guint32 *keycodes, GdkModifierType modifiers, gboolean grab) { GdkDisplay *display = gdk_display_get_default (); #ifdef GDK_WINDOWING_WAYLAND if (GDK_IS_WAYLAND_DISPLAY (display)) internal_provider_change_grab_wayland (); else #endif #if defined(ENABLE_X_KEYBINDER) && defined (GDK_WINDOWING_X11) if (GDK_IS_X11_DISPLAY (display)) internal_provider_change_grab_x11 (keycodes, modifiers, display, grab); else #endif g_warning ("Unsupported GDK backend, keybinder won't work."); } /*****************************/ /* GPasteKeybindingProvider */ /*****************************/ static void internal_provider_ungrab_all (GPasteKeybindingProvider *provider) { GPasteInternalKeybindingProvider *self = G_PASTE_INTERNAL_KEYBINDING_PROVIDER (provider); GPasteInternalKeybindingProviderPrivate *priv = g_paste_internal_keybinding_provider_get_instance_private (self); for (guint i = 0; i < priv->bindings->len; i++) { _InternalBinding *b = g_ptr_array_index (priv->bindings, i); internal_provider_change_grab (b->keycodes, b->modifiers, FALSE); } g_ptr_array_set_size (priv->bindings, 0); } static void internal_provider_grab_all (GPasteKeybindingProvider *provider, const GPasteKeybindingAccelerator *accels) { GPasteInternalKeybindingProvider *self = G_PASTE_INTERNAL_KEYBINDING_PROVIDER (provider); GPasteInternalKeybindingProviderPrivate *priv = g_paste_internal_keybinding_provider_get_instance_private (self); internal_provider_ungrab_all (provider); for (const GPasteKeybindingAccelerator *a = accels; a->id; a++) { guint32 *keycodes = NULL; GdkModifierType modifiers = 0; gtk_accelerator_parse_with_keycode (a->accelerator, NULL, NULL, &keycodes, &modifiers); if (!keycodes) continue; _InternalBinding *b = g_new (_InternalBinding, 1); b->id = g_strdup (a->id); b->keycodes = keycodes; b->modifiers = modifiers; g_ptr_array_add (priv->bindings, b); internal_provider_change_grab (keycodes, modifiers, TRUE); } } static void internal_provider_iface_init (GPasteKeybindingProviderInterface *iface) { iface->grab_all = internal_provider_grab_all; iface->ungrab_all = internal_provider_ungrab_all; } /******************************/ /* XEvent dispatch */ /******************************/ #if defined(ENABLE_X_KEYBINDER) && defined (GDK_WINDOWING_X11) static void internal_provider_parse_event_x11 (XEvent *event, GdkModifierType *modifiers, guint64 *keycode) { XGenericEventCookie cookie = event->xcookie; if (cookie.extension == internal_provider_get_xinput_opcode (NULL)) { XIDeviceEvent *xi_ev = (XIDeviceEvent *) cookie.data; if (xi_ev->evtype == XI_KeyPress) { *modifiers = xi_ev->mods.effective; *keycode = xi_ev->detail; } } } #endif static gboolean internal_provider_xevent (GdkDisplay *display, XEvent *xevent, gpointer data) { GPasteInternalKeybindingProvider *self = data; GPasteInternalKeybindingProviderPrivate *priv = g_paste_internal_keybinding_provider_get_instance_private (self); GdkModifierType modifiers = 0; guint64 keycode = 0; #ifdef GDK_WINDOWING_WAYLAND if (GDK_IS_WAYLAND_DISPLAY (display)) g_warning ("Wayland hotkeys are currently not supported outside of gnome-shell."); else #endif #if defined(ENABLE_X_KEYBINDER) && defined (GDK_WINDOWING_X11) if (GDK_IS_X11_DISPLAY (display)) internal_provider_parse_event_x11 (xevent, &modifiers, &keycode); else #endif g_warning ("Unsupported GDK backend, keybinder won't work."); if (!keycode) return FALSE; for (guint i = 0; i < priv->bindings->len; i++) { _InternalBinding *b = g_ptr_array_index (priv->bindings, i); if (!b->keycodes) continue; if (b->modifiers != (b->modifiers & modifiers)) continue; for (const guint32 *kc = b->keycodes; *kc; ++kc) { if (keycode == *kc) { g_paste_keybinding_provider_emit_keybinding_activated (G_PASTE_KEYBINDING_PROVIDER (self), b->id); break; } } } return FALSE; } /************************/ /* GObject boilerplate */ /************************/ static void g_paste_internal_keybinding_provider_dispose (GObject *object) { GPasteInternalKeybindingProvider *self = G_PASTE_INTERNAL_KEYBINDING_PROVIDER (object); GPasteInternalKeybindingProviderPrivate *priv = g_paste_internal_keybinding_provider_get_instance_private (self); if (priv->c_xevent) { g_signal_handler_disconnect (gdk_display_get_default (), priv->c_xevent); priv->c_xevent = 0; } if (priv->bindings) { internal_provider_ungrab_all (G_PASTE_KEYBINDING_PROVIDER (self)); g_clear_pointer (&priv->bindings, g_ptr_array_unref); } G_OBJECT_CLASS (g_paste_internal_keybinding_provider_parent_class)->dispose (object); } static void g_paste_internal_keybinding_provider_class_init (GPasteInternalKeybindingProviderClass *klass) { G_OBJECT_CLASS (klass)->dispose = g_paste_internal_keybinding_provider_dispose; } static void g_paste_internal_keybinding_provider_init (GPasteInternalKeybindingProvider *self) { GPasteInternalKeybindingProviderPrivate *priv = g_paste_internal_keybinding_provider_get_instance_private (self); priv->bindings = g_ptr_array_new_with_free_func (_internal_binding_free); priv->c_xevent = 0; #if defined(ENABLE_X_KEYBINDER) && defined (GDK_WINDOWING_X11) GdkDisplay *display = gdk_display_get_default (); if (GDK_IS_X11_DISPLAY (display)) { G_GNUC_BEGIN_IGNORE_DEPRECATIONS internal_provider_get_xinput_opcode (GDK_DISPLAY_XDISPLAY (display)); G_GNUC_END_IGNORE_DEPRECATIONS priv->c_xevent = g_signal_connect (display, "xevent", G_CALLBACK (internal_provider_xevent), self); } #endif } /** * g_paste_internal_keybinding_provider_new: * * Create a new instance of #GPasteInternalKeybindingProvider * * Returns: a newly allocated #GPasteInternalKeybindingProvider * free it with g_object_unref */ GPasteInternalKeybindingProvider * g_paste_internal_keybinding_provider_new (void) { return g_object_new (G_PASTE_TYPE_INTERNAL_KEYBINDING_PROVIDER, NULL); } Keruspe-GPaste-724def1/src/daemon/gpaste-internal-keybinding-provider.h000066400000000000000000000010121521206431300261670ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #pragma once #include G_BEGIN_DECLS #define G_PASTE_TYPE_INTERNAL_KEYBINDING_PROVIDER (g_paste_internal_keybinding_provider_get_type ()) G_PASTE_FINAL_TYPE (InternalKeybindingProvider, internal_keybinding_provider, INTERNAL_KEYBINDING_PROVIDER, GObject) GPasteInternalKeybindingProvider *g_paste_internal_keybinding_provider_new (void); G_END_DECLS Keruspe-GPaste-724def1/src/daemon/gpaste-item.c000066400000000000000000000243151521206431300213460ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #include #include #define GCR_API_SUBJECT_TO_CHANGE #include typedef struct { gchar *uuid; gchar *value; GSList *special_values; gchar *display_string; guint64 size; } GPasteItemPrivate; G_PASTE_DEFINE_ABSTRACT_TYPE_WITH_PRIVATE (Item, item, G_TYPE_OBJECT) /** * g_paste_item_get_uuid: * @self: a #GPasteItem instance * * Get the uuid of the given item * * Returns: read-only string containing the uuid */ G_PASTE_VISIBLE const gchar * g_paste_item_get_uuid (const GPasteItem *self) { g_return_val_if_fail (_G_PASTE_IS_ITEM (self), NULL); const GPasteItemPrivate *priv = _g_paste_item_get_instance_private (self); return priv->uuid; } /** * g_paste_item_get_value: * @self: a #GPasteItem instance * * Get the value of the given item (text, uris or path to the image) * * Returns: read-only string containing the value */ G_PASTE_VISIBLE const gchar * g_paste_item_get_value (const GPasteItem *self) { g_return_val_if_fail (_G_PASTE_IS_ITEM (self), NULL); return _G_PASTE_ITEM_GET_CLASS (self)->get_value (self); } /** * g_paste_item_get_real_value: * @self: a #GPasteItem instance * * Get the real value of the given item (text, uris or path to the image) * This is different from get_value only for #GPastePasswordItem * * Returns: read-only string containing the real value */ G_PASTE_VISIBLE const gchar * g_paste_item_get_real_value (const GPasteItem *self) { g_return_val_if_fail (_G_PASTE_IS_ITEM (self), NULL); const GPasteItemPrivate *priv = _g_paste_item_get_instance_private (self); return priv->value; } /** * g_paste_item_get_special_values: * @self: a #GPasteItem instance * * Get the special values (special mime types) for an item * * Returns: (element-type GPasteSpecialValue): read-only list containing the special values */ G_PASTE_VISIBLE const GSList * g_paste_item_get_special_values (const GPasteItem *self) { g_return_val_if_fail (_G_PASTE_IS_ITEM (self), NULL); const GPasteItemPrivate *priv = _g_paste_item_get_instance_private (self); return priv->special_values; } /** * g_paste_item_get_display_string: * @self: a #GPasteItem instance * * Get the string we should use to display the #GPasteItem * * Returns: read-only display string */ G_PASTE_VISIBLE const gchar * g_paste_item_get_display_string (const GPasteItem *self) { g_return_val_if_fail (_G_PASTE_IS_ITEM (self), NULL); const GPasteItemPrivate *priv = _g_paste_item_get_instance_private (self); const gchar *display_string = priv->display_string; return (display_string) ? display_string : priv->value; } /** * g_paste_item_equals: * @self: a #GPasteItem instance * @other: another #GPasteItem instance * * Compare the two instances * * Returns: true if equals, false otherwise */ G_PASTE_VISIBLE gboolean g_paste_item_equals (const GPasteItem *self, const GPasteItem *other) { g_return_val_if_fail (_G_PASTE_IS_ITEM (self), FALSE); g_return_val_if_fail (_G_PASTE_IS_ITEM (other), FALSE); if (self == other) return TRUE; return _G_PASTE_ITEM_GET_CLASS (self)->equals (self, other) && _G_PASTE_ITEM_GET_CLASS (other)->equals (other, self); } /** * g_paste_item_get_kind: * @self: a #GPasteItem instance * * Get the kind of #GPasteItem as string (for serialization) * * Returns: read-only string containing the kind of GPasteItem * can be "Text", "Uris" or "Image" */ G_PASTE_VISIBLE const gchar * g_paste_item_get_kind (const GPasteItem *self) { g_return_val_if_fail (_G_PASTE_IS_ITEM (self), NULL); const GPasteItemClass *klass = _G_PASTE_ITEM_GET_CLASS (self); g_return_val_if_fail (klass->get_kind, NULL); return klass->get_kind (self); } /** * g_paste_item_get_size: * @self: a #GPasteItem instance * * Get the size of the #GPasteItem * * Returns: The size of its contents */ G_PASTE_VISIBLE guint64 g_paste_item_get_size (const GPasteItem *self) { g_return_val_if_fail (_G_PASTE_IS_ITEM (self), 0); const GPasteItemPrivate *priv = _g_paste_item_get_instance_private (self); return priv->size; } /** * g_paste_item_set_size: * @self: a #GPasteItem instance * @size: the new size * * Set the size of the item */ G_PASTE_VISIBLE void g_paste_item_set_size (GPasteItem *self, guint64 size) { g_return_if_fail (_G_PASTE_IS_ITEM (self)); GPasteItemPrivate *priv = g_paste_item_get_instance_private (self); priv->size = size; } /** * g_paste_item_add_size: * @self: a #GPasteItem instance * @size: the size to add * * Add some size of the item */ G_PASTE_VISIBLE void g_paste_item_add_size (GPasteItem *self, guint64 size) { g_return_if_fail (_G_PASTE_IS_ITEM (self)); GPasteItemPrivate *priv = g_paste_item_get_instance_private (self); priv->size += size; } /** * g_paste_item_remove_size: * @self: a #GPasteItem instance * @size: the size to remove * * Remove some size from the item */ G_PASTE_VISIBLE void g_paste_item_remove_size (GPasteItem *self, guint64 size) { g_return_if_fail (_G_PASTE_IS_ITEM (self)); GPasteItemPrivate *priv = g_paste_item_get_instance_private (self); g_return_if_fail (priv->size >= size); priv->size -= size; } /** * g_paste_item_set_display_string: * @self: a #GPasteItem instance * @display_string: (transfer full) (nullable): the new display string * * Set the string to display */ G_PASTE_VISIBLE void g_paste_item_set_display_string (GPasteItem *self, gchar *display_string) { g_return_if_fail (_G_PASTE_IS_ITEM (self)); GPasteItemPrivate *priv = g_paste_item_get_instance_private (self); if (priv->display_string) priv->size -= (strlen (priv->display_string) + 1); g_free (priv->display_string); priv->display_string = display_string; if (display_string) priv->size += strlen (display_string) + 1; } /** * g_paste_item_add_special_value: * @self: a #GPasteItem instance * @binary_data: (transfer full): the binary data to add * * Add the special value (special mime type) for an item, taking full ownership * of the #GPasteBinaryData reference. */ G_PASTE_VISIBLE void g_paste_item_add_special_value (GPasteItem *self, GPasteBinaryData *binary_data) { g_return_if_fail (_G_PASTE_IS_ITEM (self)); GPasteItemPrivate *priv = g_paste_item_get_instance_private (self); priv->size += g_bytes_get_size (g_paste_binary_data_get_bytes (binary_data)); priv->special_values = g_slist_prepend (priv->special_values, binary_data); } /** * g_paste_item_set_state: * @self: a #GPasteItem instance * @state: a #GPasteItemState * * Set whether this item is Active or Idle */ G_PASTE_VISIBLE void g_paste_item_set_state (GPasteItem *self, GPasteItemState state) { g_return_if_fail (_G_PASTE_IS_ITEM (self)); g_debug ("item: set state: %d", state); G_PASTE_ITEM_GET_CLASS (self)->set_state (self, state); } /** * g_paste_item_set_uuid: * @self: a #GPasteItem instance * @uuid: the new uuid * * Set the uuid of the item */ G_PASTE_VISIBLE void g_paste_item_set_uuid (GPasteItem *self, const gchar *uuid) { g_return_if_fail (_G_PASTE_IS_ITEM (self)); g_return_if_fail (g_uuid_string_is_valid (uuid)); GPasteItemPrivate *priv = g_paste_item_get_instance_private (self); g_set_str (&priv->uuid, uuid); } static void g_paste_item_dispose (GObject *object) { GPasteItemPrivate *priv = g_paste_item_get_instance_private (G_PASTE_ITEM (object)); g_clear_slist (&priv->special_values, g_object_unref); G_OBJECT_CLASS (g_paste_item_parent_class)->dispose (object); } static void g_paste_item_finalize (GObject *object) { const GPasteItem *self = _G_PASTE_ITEM (object); const GPasteItemPrivate *priv = _g_paste_item_get_instance_private (self); g_free (priv->uuid); if (_G_PASTE_ITEM_GET_CLASS (self)->secure (self)) gcr_secure_memory_strfree (priv->value); else g_free (priv->value); g_free (priv->display_string); G_OBJECT_CLASS (g_paste_item_parent_class)->finalize (object); } static gboolean g_paste_item_default_equals (const GPasteItem *self, const GPasteItem *other) { if (self == other) return TRUE; const GPasteItemPrivate *priv = _g_paste_item_get_instance_private (self); const GPasteItemPrivate *_priv = _g_paste_item_get_instance_private (other); return g_paste_str_equal (priv->value, _priv->value); } static void g_paste_item_default_set_state (GPasteItem *self G_GNUC_UNUSED, GPasteItemState state G_GNUC_UNUSED) { } static gboolean g_paste_item_default_secure (const GPasteItem *self G_GNUC_UNUSED) { return FALSE; } static void g_paste_item_class_init (GPasteItemClass *klass) { klass->equals = g_paste_item_default_equals; klass->get_value = g_paste_item_get_real_value; klass->get_kind = NULL; klass->set_state = g_paste_item_default_set_state; klass->secure = g_paste_item_default_secure; G_OBJECT_CLASS (klass)->dispose = g_paste_item_dispose; G_OBJECT_CLASS (klass)->finalize = g_paste_item_finalize; } static void g_paste_item_init (GPasteItem *self G_GNUC_UNUSED) { } /** * g_paste_item_new: * @type: the type of the subclass to instantiate * @value: the value of the item * * Create a new instance of #GPasteItem * * Returns: a newly allocated #GPasteItem * free it with g_object_unref */ G_PASTE_VISIBLE GPasteItem * g_paste_item_new (GType type, const gchar *value) { g_return_val_if_fail (g_type_is_a (type, G_PASTE_TYPE_ITEM), NULL); g_return_val_if_fail (value, NULL); GPasteItem *self = g_object_new (type, NULL); GPasteItemPrivate *priv = g_paste_item_get_instance_private (self); priv->uuid = g_uuid_string_random (); priv->value = (_G_PASTE_ITEM_GET_CLASS (self)->secure (self)) ? gcr_secure_memory_strdup (value) : g_strdup (value); priv->display_string = NULL; priv->size = strlen (priv->value) + 1; return self; } Keruspe-GPaste-724def1/src/daemon/gpaste-item.h000066400000000000000000000045731521206431300213570ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #pragma once #include G_BEGIN_DECLS typedef enum { G_PASTE_ITEM_STATE_IDLE, G_PASTE_ITEM_STATE_ACTIVE } GPasteItemState; #define G_PASTE_TYPE_ITEM (g_paste_item_get_type ()) G_PASTE_DERIVABLE_TYPE (Item, item, ITEM, GObject) struct _GPasteItemClass { GObjectClass parent_class; /*< virtual >*/ const gchar * (*get_value) (const GPasteItem *self); gboolean (*equals) (const GPasteItem *self, const GPasteItem *other); void (*set_state) (GPasteItem *self, GPasteItemState state); gboolean (*secure) (const GPasteItem *self); /*< pure virtual >*/ const gchar *(*get_kind) (const GPasteItem *self); }; const gchar *g_paste_item_get_uuid (const GPasteItem *self); const gchar *g_paste_item_get_value (const GPasteItem *self); const gchar *g_paste_item_get_real_value (const GPasteItem *self); const GSList *g_paste_item_get_special_values (const GPasteItem *self); const gchar *g_paste_item_get_display_string (const GPasteItem *self); gboolean g_paste_item_equals (const GPasteItem *self, const GPasteItem *other); const gchar *g_paste_item_get_kind (const GPasteItem *self); guint64 g_paste_item_get_size (const GPasteItem *self); void g_paste_item_set_state (GPasteItem *self, GPasteItemState state); void g_paste_item_set_uuid (GPasteItem *self, const gchar *uuid); void g_paste_item_set_display_string (GPasteItem *self, gchar *display_string); void g_paste_item_add_special_value (GPasteItem *self, GPasteBinaryData *binary_data); void g_paste_item_set_size (GPasteItem *self, guint64 size); void g_paste_item_add_size (GPasteItem *self, guint64 size); void g_paste_item_remove_size (GPasteItem *self, guint64 size); GPasteItem *g_paste_item_new (GType type, const gchar *value); G_END_DECLS Keruspe-GPaste-724def1/src/daemon/gpaste-keybinder.c000066400000000000000000000163361521206431300223700ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #include struct _GPasteKeybinder { GObject parent_instance; }; typedef struct { GHashTable *keybindings; /* const gchar * (borrowed from _Keybinding) → _Keybinding * */ GPasteSettings *settings; GPasteKeybindingProvider *provider; GSignalGroup *provider_signals; } GPasteKeybinderPrivate; G_PASTE_DEFINE_TYPE_WITH_PRIVATE (Keybinder, keybinder, G_TYPE_OBJECT) /***********************************/ /* Wrapper around GPasteKeybinding */ /***********************************/ typedef struct { GPasteKeybinder *keybinder; /* not ref'd */ GPasteKeybinding *binding; GPasteSettings *settings; GSignalGroup *signal_group; } _Keybinding; static void _keybinding_activate (_Keybinding *k) { if (!g_paste_keybinding_is_active (k->binding)) g_paste_keybinding_activate (k->binding, k->settings); } static void _keybinding_deactivate (_Keybinding *k) { if (g_paste_keybinding_is_active (k->binding)) g_paste_keybinding_deactivate (k->binding); } static void _keybinding_rebind (_Keybinding *k, GPasteSettings *settings G_GNUC_UNUSED) { g_paste_keybinder_deactivate_all (k->keybinder); g_paste_keybinder_activate_all (k->keybinder); } static _Keybinding * _keybinding_new (GPasteKeybinder *keybinder, GPasteKeybinding *binding, GPasteSettings *settings) { _Keybinding *k = g_new (_Keybinding, 1); k->keybinder = keybinder; k->binding = binding; k->settings = g_object_ref (settings); g_autofree gchar *detailed_signal = g_strdup_printf ("rebind::%s", g_paste_keybinding_get_dconf_key (binding)); k->signal_group = g_signal_group_new (G_PASTE_TYPE_SETTINGS); g_signal_group_connect_swapped (k->signal_group, detailed_signal, G_CALLBACK (_keybinding_rebind), k); g_signal_group_set_target (k->signal_group, settings); return k; } static void _keybinding_free (gpointer data) { _Keybinding *k = data; g_clear_object (&k->signal_group); g_object_unref (k->binding); g_object_unref (k->settings); g_free (k); } /** * g_paste_keybinder_add_keybinding: * @self: a #GPasteKeybinder instance * @binding: (transfer full): a #GPasteKeybinding instance * * Add a new keybinding */ G_PASTE_VISIBLE void g_paste_keybinder_add_keybinding (GPasteKeybinder *self, GPasteKeybinding *binding) { g_return_if_fail (_G_PASTE_IS_KEYBINDER (self)); g_return_if_fail (_G_PASTE_IS_KEYBINDING (binding)); GPasteKeybinderPrivate *priv = g_paste_keybinder_get_instance_private (self); g_hash_table_insert (priv->keybindings, (gpointer) g_paste_keybinding_get_dconf_key (binding), _keybinding_new (self, binding, priv->settings)); } /** * g_paste_keybinder_activate_all: * @self: a #GPasteKeybinder instance * * Activate all the managed keybindings */ G_PASTE_VISIBLE void g_paste_keybinder_activate_all (GPasteKeybinder *self) { g_return_if_fail (_G_PASTE_IS_KEYBINDER (self)); GPasteKeybinderPrivate *priv = g_paste_keybinder_get_instance_private (self); g_autoptr (GList) values = g_hash_table_get_values (priv->keybindings); gsize n = 0; for (GList *l = values; l; l = g_list_next (l)) { _Keybinding *k = l->data; _keybinding_activate (k); if (g_paste_keybinding_is_active (k->binding)) n++; } g_autofree GPasteKeybindingAccelerator *accels = g_new (GPasteKeybindingAccelerator, n + 1); gsize i = 0; for (GList *l = values; l; l = g_list_next (l)) { _Keybinding *k = l->data; if (g_paste_keybinding_is_active (k->binding)) { accels[i++] = G_PASTE_KEYBINDING_ACCELERATOR ( g_paste_keybinding_get_dconf_key (k->binding), g_paste_keybinding_get_accelerator (k->binding, k->settings), g_paste_keybinding_get_description (k->binding)); } } accels[i].id = NULL; g_paste_keybinding_provider_grab_all (priv->provider, accels); } /** * g_paste_keybinder_deactivate_all: * @self: a #GPasteKeybinder instance * * Deactivate all the managed keybindings */ G_PASTE_VISIBLE void g_paste_keybinder_deactivate_all (GPasteKeybinder *self) { g_return_if_fail (_G_PASTE_IS_KEYBINDER (self)); GPasteKeybinderPrivate *priv = g_paste_keybinder_get_instance_private (self); g_paste_keybinding_provider_ungrab_all (priv->provider); g_autoptr (GList) values = g_hash_table_get_values (priv->keybindings); for (GList *l = values; l; l = g_list_next (l)) _keybinding_deactivate (l->data); } static void on_keybinding_activated (GPasteKeybindingProvider *provider G_GNUC_UNUSED, const gchar *id, gpointer user_data) { GPasteKeybinderPrivate *priv = user_data; _Keybinding *k = g_hash_table_lookup (priv->keybindings, id); if (k && g_paste_keybinding_is_active (k->binding)) g_paste_keybinding_perform (k->binding); } static void g_paste_keybinder_dispose (GObject *object) { GPasteKeybinder *self = G_PASTE_KEYBINDER (object); GPasteKeybinderPrivate *priv = g_paste_keybinder_get_instance_private (self); if (priv->settings) { g_clear_object (&priv->settings); g_paste_keybinding_provider_ungrab_all (priv->provider); g_clear_pointer (&priv->keybindings, g_hash_table_unref); g_clear_object (&priv->provider_signals); g_clear_object (&priv->provider); } G_OBJECT_CLASS (g_paste_keybinder_parent_class)->dispose (object); } static void g_paste_keybinder_class_init (GPasteKeybinderClass *klass) { G_OBJECT_CLASS (klass)->dispose = g_paste_keybinder_dispose; } static void g_paste_keybinder_init (GPasteKeybinder *self) { GPasteKeybinderPrivate *priv = g_paste_keybinder_get_instance_private (self); priv->keybindings = g_hash_table_new_full (g_str_hash, g_str_equal, NULL, _keybinding_free); } /** * g_paste_keybinder_new: * @settings: a #GPasteSettings instance * @provider: a #GPasteKeybindingProvider instance * * Create a new instance of #GPasteKeybinder * * Returns: a newly allocated #GPasteKeybinder * free it with g_object_unref */ G_PASTE_VISIBLE GPasteKeybinder * g_paste_keybinder_new (GPasteSettings *settings, GPasteKeybindingProvider *provider) { g_return_val_if_fail (_G_PASTE_IS_SETTINGS (settings), NULL); g_return_val_if_fail (G_PASTE_IS_KEYBINDING_PROVIDER (provider), NULL); GPasteKeybinder *self = G_PASTE_KEYBINDER (g_object_new (G_PASTE_TYPE_KEYBINDER, NULL)); GPasteKeybinderPrivate *priv = g_paste_keybinder_get_instance_private (self); priv->settings = g_object_ref (settings); priv->provider = g_object_ref (provider); GSignalGroup *provider_signals = priv->provider_signals = g_signal_group_new (G_PASTE_TYPE_KEYBINDING_PROVIDER); g_signal_group_connect (provider_signals, "keybinding-activated", G_CALLBACK (on_keybinding_activated), priv); g_signal_group_set_target (provider_signals, provider); return self; } Keruspe-GPaste-724def1/src/daemon/gpaste-keybinder.h000066400000000000000000000014651521206431300223720ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #pragma once #include #include G_BEGIN_DECLS #define G_PASTE_TYPE_KEYBINDER (g_paste_keybinder_get_type ()) G_PASTE_FINAL_TYPE (Keybinder, keybinder, KEYBINDER, GObject) void g_paste_keybinder_add_keybinding (GPasteKeybinder *self, GPasteKeybinding *binding); void g_paste_keybinder_activate_all (GPasteKeybinder *self); void g_paste_keybinder_deactivate_all (GPasteKeybinder *self); GPasteKeybinder *g_paste_keybinder_new (GPasteSettings *settings, GPasteKeybindingProvider *provider); G_END_DECLS Keruspe-GPaste-724def1/src/daemon/gpaste-keybinding.c000066400000000000000000000213511521206431300225300ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #include typedef struct _GPasteKeybindingPrivate { GPasteKeybindingGetter getter; gchar *dconf_key; gchar *description; GPasteKeybindingFunc callback; gpointer user_data; gboolean active; GdkModifierType modifiers; guint32 *keycodes; } GPasteKeybindingPrivate; G_PASTE_DEFINE_ABSTRACT_TYPE_WITH_PRIVATE (Keybinding, keybinding, G_TYPE_OBJECT) /** * g_paste_keybinding_get_modifiers: * @self: a #GPasteKeybinding instance * * Get the modifiers for this keybinding * * Returns: the modifiers */ G_PASTE_VISIBLE GdkModifierType g_paste_keybinding_get_modifiers (const GPasteKeybinding *self) { g_return_val_if_fail (_G_PASTE_IS_KEYBINDING (self), 0); const GPasteKeybindingPrivate *priv = _g_paste_keybinding_get_instance_private (self); return priv->modifiers; } /** * g_paste_keybinding_get_keycodes: * @self: a #GPasteKeybinding instance * * Get the keycodes for this keybinding * * Returns: the keycodes */ G_PASTE_VISIBLE const guint32 * g_paste_keybinding_get_keycodes (const GPasteKeybinding *self) { g_return_val_if_fail (_G_PASTE_IS_KEYBINDING (self), NULL); const GPasteKeybindingPrivate *priv = _g_paste_keybinding_get_instance_private (self); return priv->keycodes; } /** * g_paste_keybinding_get_dconf_key: * @self: a #GPasteKeybinding instance * * Get the dconf key for this keybinding * * Returns: the dconf key */ G_PASTE_VISIBLE const gchar * g_paste_keybinding_get_dconf_key (const GPasteKeybinding *self) { g_return_val_if_fail (_G_PASTE_IS_KEYBINDING ((gpointer) self), NULL); const GPasteKeybindingPrivate *priv = _g_paste_keybinding_get_instance_private (self); return priv->dconf_key; } /** * g_paste_keybinding_get_description: * @self: a #GPasteKeybinding instance * * Get the human-readable description for this keybinding * * Returns: the description */ G_PASTE_VISIBLE const gchar * g_paste_keybinding_get_description (const GPasteKeybinding *self) { g_return_val_if_fail (_G_PASTE_IS_KEYBINDING ((gpointer) self), NULL); const GPasteKeybindingPrivate *priv = _g_paste_keybinding_get_instance_private (self); return priv->description; } /** * g_paste_keybinding_get_accelerator: * @self: a #GPasteKeybinding instance * * Get the accelerator for this keybinding * * Returns: the accelerator */ G_PASTE_VISIBLE const gchar * g_paste_keybinding_get_accelerator (const GPasteKeybinding *self, const GPasteSettings *settings) { g_return_val_if_fail (_G_PASTE_IS_KEYBINDING ((gpointer) self), NULL); g_return_val_if_fail (_G_PASTE_IS_SETTINGS ((gpointer) settings), NULL); const GPasteKeybindingPrivate *priv = _g_paste_keybinding_get_instance_private (self); return priv->getter (settings); } /** * g_paste_keybinding_activate: * @self: a #GPasteKeybinding instance * @settings: a #GPasteSettings instance * * Activate the keybinding */ G_PASTE_VISIBLE void g_paste_keybinding_activate (GPasteKeybinding *self, GPasteSettings *settings) { g_return_if_fail (_G_PASTE_IS_KEYBINDING (self)); g_return_if_fail (_G_PASTE_IS_SETTINGS (settings)); GPasteKeybindingPrivate *priv = g_paste_keybinding_get_instance_private (self); g_return_if_fail (!priv->active); const gchar *binding = priv->getter (settings); if (binding) { gtk_accelerator_parse_with_keycode (binding, NULL, NULL, &priv->keycodes, &priv->modifiers); priv->active = priv->keycodes != NULL; } } /** * g_paste_keybinding_deactivate: * @self: a #GPasteKeybinding instance * * Deactivate the keybinding */ G_PASTE_VISIBLE void g_paste_keybinding_deactivate (GPasteKeybinding *self) { g_return_if_fail (_G_PASTE_IS_KEYBINDING (self)); GPasteKeybindingPrivate *priv = g_paste_keybinding_get_instance_private (self); g_return_if_fail (priv->active); g_clear_pointer (&priv->keycodes, g_free); priv->active = FALSE; } /** * g_paste_keybinding_is_active: * @self: a #GPasteKeybinding instance * * Check whether the keybinding is active or not * * Returns: true if the keybinding is active */ G_PASTE_VISIBLE gboolean g_paste_keybinding_is_active (GPasteKeybinding *self) { g_return_val_if_fail (_G_PASTE_IS_KEYBINDING (self), FALSE); const GPasteKeybindingPrivate *priv = _g_paste_keybinding_get_instance_private (self); return priv->active; } static gboolean g_paste_keybinding_private_match (const GPasteKeybindingPrivate *priv, GdkModifierType modifiers, guint64 keycode) { if (priv->keycodes && priv->modifiers == (priv->modifiers & modifiers)) { for (guint32 *_keycode = priv->keycodes; *_keycode; ++_keycode) { if (keycode == *_keycode) return TRUE; } } return FALSE; } /** * g_paste_keybinding_notify: * @self: a #GPasteKeybinding instance * @modifiers: The modifiers of the current event * @keycode: the keycode of the current event * * Runs the callback associated to the keybinding if needed */ G_PASTE_VISIBLE void g_paste_keybinding_notify (GPasteKeybinding *self, GdkModifierType modifiers, guint64 keycode) { g_return_if_fail (_G_PASTE_IS_KEYBINDING (self)); const GPasteKeybindingPrivate *priv = _g_paste_keybinding_get_instance_private (self); if (keycode && g_paste_keybinding_private_match (priv, modifiers, keycode)) priv->callback (self, priv->user_data); } /** * g_paste_keybinding_perform: * @self: a #GPasteKeybinding instance * * Runs the callback associated to the keybinding */ G_PASTE_VISIBLE void g_paste_keybinding_perform (GPasteKeybinding *self) { g_return_if_fail (_G_PASTE_IS_KEYBINDING (self)); const GPasteKeybindingPrivate *priv = _g_paste_keybinding_get_instance_private (self); priv->callback (self, priv->user_data); } static void g_paste_keybinding_dispose (GObject *object) { GPasteKeybinding *self = G_PASTE_KEYBINDING (object); const GPasteKeybindingPrivate *priv = _g_paste_keybinding_get_instance_private (self); if (priv->active) g_paste_keybinding_deactivate (self); G_OBJECT_CLASS (g_paste_keybinding_parent_class)->dispose (object); } static void g_paste_keybinding_finalize (GObject *object) { const GPasteKeybindingPrivate *priv = _g_paste_keybinding_get_instance_private (G_PASTE_KEYBINDING (object)); g_free (priv->keycodes); g_free (priv->dconf_key); g_free (priv->description); G_OBJECT_CLASS (g_paste_keybinding_parent_class)->finalize (object); } static void g_paste_keybinding_class_init (GPasteKeybindingClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); object_class->dispose = g_paste_keybinding_dispose; object_class->finalize = g_paste_keybinding_finalize; } static void g_paste_keybinding_init (GPasteKeybinding *self) { GPasteKeybindingPrivate *priv = g_paste_keybinding_get_instance_private (self); priv->active = FALSE; } /** * g_paste_keybinding_new: * @type: the type of the subclass to instantiate * @dconf_key: the dconf key to watch * @description: a human-readable, translated description of the action * @getter: (scope notified): the getter to use to get the binding * @callback: (closure user_data) (scope notified): the callback to call when activated * @user_data: (closure): the data to pass to @callback, defaults to self/this * * Create a new instance of #GPasteKeybinding * * Returns: a newly allocated #GPasteKeybinding * free it with g_object_unref */ G_PASTE_VISIBLE GPasteKeybinding * g_paste_keybinding_new (GType type, const gchar *dconf_key, const gchar *description, GPasteKeybindingGetter getter, GPasteKeybindingFunc callback, gpointer user_data) { g_return_val_if_fail (g_type_is_a (type, G_PASTE_TYPE_KEYBINDING), NULL); g_return_val_if_fail (dconf_key, NULL); g_return_val_if_fail (getter, NULL); g_return_val_if_fail (callback, NULL); GPasteKeybinding *self = g_object_new (type, NULL); GPasteKeybindingPrivate *priv = g_paste_keybinding_get_instance_private (self); priv->getter = getter; priv->dconf_key = g_strdup (dconf_key); priv->description = g_strdup (description); priv->callback = callback; priv->user_data = user_data; priv->keycodes = NULL; return self; } Keruspe-GPaste-724def1/src/daemon/gpaste-keybinding.h000066400000000000000000000042361521206431300225400ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #pragma once #include #include G_BEGIN_DECLS #define G_PASTE_TYPE_KEYBINDING (g_paste_keybinding_get_type ()) G_PASTE_DERIVABLE_TYPE (Keybinding, keybinding, KEYBINDING, GObject) struct _GPasteKeybindingClass { GObjectClass parent_class; }; typedef const gchar *(*GPasteKeybindingGetter) (const GPasteSettings *settings); typedef void (*GPasteKeybindingFunc) (GPasteKeybinding *self, gpointer data); const guint32 *g_paste_keybinding_get_keycodes (const GPasteKeybinding *self); GdkModifierType g_paste_keybinding_get_modifiers (const GPasteKeybinding *self); const gchar *g_paste_keybinding_get_dconf_key (const GPasteKeybinding *self); const gchar *g_paste_keybinding_get_description (const GPasteKeybinding *self); const gchar *g_paste_keybinding_get_accelerator (const GPasteKeybinding *self, const GPasteSettings *settings); void g_paste_keybinding_activate (GPasteKeybinding *self, GPasteSettings *settings); void g_paste_keybinding_deactivate (GPasteKeybinding *self); gboolean g_paste_keybinding_is_active (GPasteKeybinding *self); void g_paste_keybinding_perform (GPasteKeybinding *self); void g_paste_keybinding_notify (GPasteKeybinding *self, GdkModifierType modifiers, guint64 keycode); GPasteKeybinding *g_paste_keybinding_new (GType type, const gchar *dconf_key, const gchar *description, GPasteKeybindingGetter getter, GPasteKeybindingFunc callback, gpointer user_data); G_END_DECLS Keruspe-GPaste-724def1/src/daemon/gpaste-make-password-keybinding.c000066400000000000000000000032671521206431300253110ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #include struct _GPasteMakePasswordKeybinding { GPasteKeybinding parent_instance; }; G_PASTE_DEFINE_TYPE (MakePasswordKeybinding, make_password_keybinding, G_PASTE_TYPE_KEYBINDING) static void g_paste_make_password_keybinding_class_init (GPasteMakePasswordKeybindingClass *klass G_GNUC_UNUSED) { } static void g_paste_make_password_keybinding_init (GPasteMakePasswordKeybinding *self G_GNUC_UNUSED) { } static void g_paste_make_password_keybinding_make_password (GPasteKeybinding *self G_GNUC_UNUSED, gpointer data) { GPasteHistory *history = data; const GPasteItem *first = g_paste_history_get (history, 0); if (!first) return; g_paste_history_set_password (history, g_paste_item_get_uuid (first), NULL); } /** * g_paste_make_password_keybinding_new: * @history: a #GPasteHistory instance * * Create a new instance of #GPasteMakePasswordKeybinding * * Returns: a newly allocated #GPasteMakePasswordKeybinding * free it with g_object_unref */ G_PASTE_VISIBLE GPasteKeybinding * g_paste_make_password_keybinding_new (GPasteHistory *history) { return g_paste_keybinding_new (G_PASTE_TYPE_MAKE_PASSWORD_KEYBINDING, G_PASTE_MAKE_PASSWORD_SETTING, _("Convert to Password"), g_paste_settings_get_make_password, g_paste_make_password_keybinding_make_password, history); } Keruspe-GPaste-724def1/src/daemon/gpaste-make-password-keybinding.h000066400000000000000000000010111521206431300252770ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #pragma once #include #include G_BEGIN_DECLS #define G_PASTE_TYPE_MAKE_PASSWORD_KEYBINDING (g_paste_make_password_keybinding_get_type ()) G_PASTE_FINAL_TYPE (MakePasswordKeybinding, make_password_keybinding, MAKE_PASSWORD_KEYBINDING, GPasteKeybinding) GPasteKeybinding *g_paste_make_password_keybinding_new (GPasteHistory *history); G_END_DECLS Keruspe-GPaste-724def1/src/daemon/gpaste-password-item.c000066400000000000000000000102761521206431300232070ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #include #include struct _GPastePasswordItem { GPasteTextItem parent_instance; }; typedef struct { gchar *name; } GPastePasswordItemPrivate; G_PASTE_DEFINE_TYPE_WITH_PRIVATE (PasswordItem, password_item, G_PASTE_TYPE_TEXT_ITEM) /** * g_paste_password_item_get_name: * @self: a #GPastePasswordItem instance * * Get the name of the given item * * Returns: read-only string containing the name */ G_PASTE_VISIBLE const gchar * g_paste_password_item_get_name (const GPastePasswordItem *self) { g_return_val_if_fail (_G_PASTE_IS_PASSWORD_ITEM (self), NULL); const GPastePasswordItemPrivate *priv = _g_paste_password_item_get_instance_private (self); return priv->name; } /** * g_paste_password_item_set_name: * @self: a #GPastePasswordItem instance * @name: (nullable): the new name * * Set the name of the given item */ G_PASTE_VISIBLE void g_paste_password_item_set_name (GPastePasswordItem *self, const gchar *name) { g_return_if_fail (_G_PASTE_IS_PASSWORD_ITEM (self)); g_return_if_fail (!name || g_utf8_validate (name, -1, NULL)); GPastePasswordItemPrivate *priv = g_paste_password_item_get_instance_private (self); if (!name) name = "******"; GPasteItem *item = G_PASTE_ITEM (self); if (priv->name) g_paste_item_remove_size (item, strlen (priv->name)); g_paste_item_add_size (item, strlen (name)); g_set_str (&priv->name, name); // This is the prefix displayed in history to identify a password g_autofree gchar *full_display_string = g_strdup_printf ("[%s] %s", _("Password"), name); g_paste_item_set_display_string (item, g_steal_pointer (&full_display_string)); } static const gchar * g_paste_password_item_get_value (const GPasteItem *self G_GNUC_UNUSED) { return "******"; } static const gchar * g_paste_password_item_get_kind (const GPasteItem *self G_GNUC_UNUSED) { return "Password"; } static gboolean g_paste_password_item_equals (const GPasteItem *self, const GPasteItem *other) { g_return_val_if_fail (_G_PASTE_IS_PASSWORD_ITEM (self), FALSE); g_return_val_if_fail (_G_PASTE_IS_ITEM (other), FALSE); /* Passwords are never considered equals, except when it's the exact same object */ return FALSE; } static gboolean g_paste_password_item_secure (const GPasteItem *self G_GNUC_UNUSED) { return TRUE; } static void g_paste_password_item_finalize (GObject *object) { const GPastePasswordItemPrivate *priv = _g_paste_password_item_get_instance_private (G_PASTE_PASSWORD_ITEM (object)); g_free (priv->name); G_OBJECT_CLASS (g_paste_password_item_parent_class)->finalize (object); } static void g_paste_password_item_class_init (GPastePasswordItemClass *klass) { GPasteItemClass *item_class = G_PASTE_ITEM_CLASS (klass); item_class->get_kind = g_paste_password_item_get_kind; item_class->get_value = g_paste_password_item_get_value; item_class->equals = g_paste_password_item_equals; item_class->secure = g_paste_password_item_secure; G_OBJECT_CLASS (klass)->finalize = g_paste_password_item_finalize; } static void g_paste_password_item_init (GPastePasswordItem *self G_GNUC_UNUSED) { } /** * g_paste_password_item_new: * @name: (nullable): the name used to identify the password * @password: the content of the desired #GPastePasswordItem * * Create a new instance of #GPastePasswordItem * * Returns: a newly allocated #GPastePasswordItem * free it with g_object_unref */ G_PASTE_VISIBLE GPasteItem * g_paste_password_item_new (const gchar *name, const gchar *password) { g_return_val_if_fail (password, NULL); g_return_val_if_fail (g_utf8_validate (password, -1, NULL), NULL); g_return_val_if_fail (!name || g_utf8_validate (name, -1, NULL), NULL); GPasteItem *self = g_paste_item_new (G_PASTE_TYPE_PASSWORD_ITEM, password); /* override password value length */ g_paste_item_set_size (self, 0); g_paste_password_item_set_name (G_PASTE_PASSWORD_ITEM (self), name); return self; } Keruspe-GPaste-724def1/src/daemon/gpaste-password-item.h000066400000000000000000000012531521206431300232070ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #pragma once #include G_BEGIN_DECLS #define G_PASTE_TYPE_PASSWORD_ITEM (g_paste_password_item_get_type ()) G_PASTE_FINAL_TYPE (PasswordItem, password_item, PASSWORD_ITEM, GPasteTextItem) const gchar *g_paste_password_item_get_name (const GPastePasswordItem *self); void g_paste_password_item_set_name (GPastePasswordItem *self, const char *name); GPasteItem *g_paste_password_item_new (const gchar *name, const gchar *password); G_END_DECLS Keruspe-GPaste-724def1/src/daemon/gpaste-pop-keybinding.c000066400000000000000000000042211521206431300233210ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #include struct _GPastePopKeybinding { GPasteKeybinding parent_instance; }; typedef struct { GPasteHistory *history; } GPastePopKeybindingPrivate; G_PASTE_DEFINE_TYPE_WITH_PRIVATE (PopKeybinding, pop_keybinding, G_PASTE_TYPE_KEYBINDING) static void g_paste_pop_keybinding_dispose (GObject *object) { GPastePopKeybindingPrivate *priv = g_paste_pop_keybinding_get_instance_private (G_PASTE_POP_KEYBINDING (object)); g_clear_object (&priv->history); G_OBJECT_CLASS (g_paste_pop_keybinding_parent_class)->dispose (object); } static void g_paste_pop_keybinding_class_init (GPastePopKeybindingClass *klass) { G_OBJECT_CLASS (klass)->dispose = g_paste_pop_keybinding_dispose; } static void g_paste_pop_keybinding_init (GPastePopKeybinding *self G_GNUC_UNUSED) { } static void pop (GPasteKeybinding *self, gpointer data G_GNUC_UNUSED) { const GPastePopKeybindingPrivate *priv = _g_paste_pop_keybinding_get_instance_private (G_PASTE_POP_KEYBINDING (self)); g_paste_history_remove (priv->history, 0); } /** * g_paste_pop_keybinding_new: * @history: a #GPasteHistory instance * * Create a new instance of #GPastePopKeybinding * * Returns: a newly allocated #GPastePopKeybinding * free it with g_object_unref */ G_PASTE_VISIBLE GPasteKeybinding * g_paste_pop_keybinding_new (GPasteHistory *history) { g_return_val_if_fail (_G_PASTE_IS_HISTORY (history), NULL); GPasteKeybinding *self = g_paste_keybinding_new (G_PASTE_TYPE_POP_KEYBINDING, G_PASTE_POP_SETTING, _("Pop from History"), g_paste_settings_get_pop, pop, NULL); GPastePopKeybindingPrivate *priv = g_paste_pop_keybinding_get_instance_private (G_PASTE_POP_KEYBINDING (self)); priv->history = g_object_ref (history); return self; } Keruspe-GPaste-724def1/src/daemon/gpaste-pop-keybinding.h000066400000000000000000000007161521206431300233330ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #pragma once #include #include G_BEGIN_DECLS #define G_PASTE_TYPE_POP_KEYBINDING (g_paste_pop_keybinding_get_type ()) G_PASTE_FINAL_TYPE (PopKeybinding, pop_keybinding, POP_KEYBINDING, GPasteKeybinding) GPasteKeybinding *g_paste_pop_keybinding_new (GPasteHistory *history); G_END_DECLS Keruspe-GPaste-724def1/src/daemon/gpaste-search-provider.c000066400000000000000000000326561521206431300235140ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #include #include #include #include struct _GPasteSearchProvider { GPasteBusObject parent_instance; }; typedef struct { GDBusConnection *connection; guint64 id_on_bus; gboolean registered; GPasteClient *client; GDBusNodeInfo *g_paste_search_provider_dbus_info; GDBusInterfaceVTable g_paste_search_provider_dbus_vtable; } GPasteSearchProviderPrivate; G_PASTE_DEFINE_TYPE_WITH_PRIVATE (SearchProvider, search_provider, G_PASTE_TYPE_BUS_OBJECT) static char * g_paste_dbus_get_as_result (GVariant *variant) { gsize _len; g_autofree const gchar **r = g_variant_get_strv (variant, &_len); return g_strjoinv (" ", (gchar **) r); } static char * _g_paste_dbus_get_as_result (GVariant *parameters) { GVariantIter parameters_iter; g_variant_iter_init (¶meters_iter, parameters); g_autoptr (GVariant) variant = g_variant_iter_next_value (¶meters_iter); return g_paste_dbus_get_as_result (variant); } /****************/ /* DBus Mathods */ /****************/ static void on_search_ready (GObject *source_object G_GNUC_UNUSED, GAsyncResult *res, gpointer user_data) { g_autofree gpointer *data = (gpointer *) user_data; GPasteClient *client = data[0]; GDBusMethodInvocation *invocation = data[1]; g_autoptr (GError) error = NULL; g_auto (GStrv) results = g_paste_client_search_finish (client, res, &error); if (error) g_warning ("GPaste search failed: %s", error->message); GVariant *ans = g_variant_new_strv ((const char * const *) results, -1); g_dbus_method_invocation_return_value (invocation, g_variant_new_tuple (&ans, 1)); } static gboolean _do_search (const GPasteSearchProviderPrivate *priv, gchar *search, GDBusMethodInvocation *invocation) { if (strlen (search) < 3 || !priv->client) { GVariant *ans = g_variant_new_strv (NULL, 0); g_dbus_method_invocation_return_value (invocation, g_variant_new_tuple (&ans, 1)); } else { gpointer *data = g_new (gpointer, 2); data[0] = priv->client; data[1] = invocation; g_paste_client_search (priv->client, search, on_search_ready, data); } return TRUE; } static gboolean g_paste_search_provider_private_get_initial_result_set (const GPasteSearchProviderPrivate *priv, GDBusMethodInvocation *invocation, GVariant *parameters) { g_autofree gchar *search = _g_paste_dbus_get_as_result (parameters); return _do_search (priv, search, invocation); } static gboolean g_paste_search_provider_private_get_subsearch_result_set (const GPasteSearchProviderPrivate *priv, GDBusMethodInvocation *invocation, GVariant *parameters) { GVariantIter parameters_iter; g_variant_iter_init (¶meters_iter, parameters); G_GNUC_UNUSED g_autoptr (GVariant) old_results = g_variant_iter_next_value (¶meters_iter); g_autoptr (GVariant) variant = g_variant_iter_next_value (¶meters_iter); g_autofree gchar *search = g_paste_dbus_get_as_result (variant); return _do_search (priv, search, invocation); } static void append_dict_entry (GVariantBuilder *dict, const gchar *key, const gchar *value) { g_variant_builder_add_value (dict, g_variant_new_dict_entry (g_variant_new_string (key), g_variant_new_variant (g_variant_new_string (value)))); } typedef struct { GPasteClient *client; GDBusMethodInvocation *invocation; GStrv uuids; } GetResultMetasData; static void on_elements_ready (GObject *source_object G_GNUC_UNUSED, GAsyncResult *res, gpointer user_data) { g_autofree GetResultMetasData *data = user_data; GPasteClient *client = data->client; g_auto (GStrv) uuids = data->uuids; g_auto (GVariantBuilder) builder; g_variant_builder_init (&builder, (GVariantType *) "aa{sv}"); g_autoptr (GError) error = NULL; g_autolist (GPasteClientItem) results = g_paste_client_get_elements_finish (client, res, &error); if (error) g_warning ("GPaste get elements failed: %s", error->message); guint64 n = 0; for (const GList *i = results; i; i = i->next, ++n) { const GPasteClientItem *item = i->data; const gchar *value = g_paste_client_item_get_value (item); g_auto (GVariantBuilder) dict; g_autofree gchar *result = g_strdelimit (g_strdup (value), "\n\t", ' '); g_variant_builder_init (&dict, G_VARIANT_TYPE_VARDICT); append_dict_entry (&dict, "id", uuids[n]); append_dict_entry (&dict, "name", result); append_dict_entry (&dict, "gicon", G_PASTE_ICON_NAME); append_dict_entry (&dict, "clipboardText", value); g_variant_builder_add_value (&builder, g_variant_builder_end (&dict)); } GVariant *ans = g_variant_builder_end (&builder); g_dbus_method_invocation_return_value (data->invocation, g_variant_new_tuple (&ans, 1)); } static gboolean g_paste_search_provider_private_get_result_metas (const GPasteSearchProviderPrivate *priv, GDBusMethodInvocation *invocation, GVariant *parameters) { GVariantIter parameters_iter; g_variant_iter_init (¶meters_iter, parameters); g_autoptr (GVariant) results = g_variant_iter_next_value (¶meters_iter); gsize len; /* Deep-copy: the strings must outlive `results` since they are used again * in the async on_elements_ready callback. */ g_auto (GStrv) uuids = g_variant_dup_strv (results, &len); if (!len) return FALSE; GetResultMetasData *data = g_new (GetResultMetasData, 1); data->client = priv->client; data->invocation = invocation; data->uuids = g_steal_pointer (&uuids); g_paste_client_get_elements (priv->client, (const gchar **) data->uuids, len, on_elements_ready, data); return TRUE; } static gboolean g_paste_search_provider_private_activate_result (const GPasteSearchProviderPrivate *priv G_GNUC_UNUSED, GVariant *parameters) { GVariantIter parameters_iter; g_variant_iter_init (¶meters_iter, parameters); g_autoptr (GVariant) indexv = g_variant_iter_next_value (¶meters_iter); G_GNUC_UNUSED g_autoptr (GVariant) terms = g_variant_iter_next_value (¶meters_iter); G_GNUC_UNUSED g_autoptr (GVariant) timestamp = g_variant_iter_next_value (¶meters_iter); g_paste_client_select (priv->client, g_variant_get_string (indexv, NULL), NULL, NULL); return FALSE; } static gboolean g_paste_search_provider_private_launch_search (const GPasteSearchProviderPrivate *priv G_GNUC_UNUSED, GVariant *parameters) { GVariantIter parameters_iter; g_variant_iter_init (¶meters_iter, parameters); g_autoptr (GVariant) searchv = g_variant_iter_next_value (¶meters_iter); G_GNUC_UNUSED g_autoptr (GVariant) timestamp = g_variant_iter_next_value (¶meters_iter); g_autofree gchar *search = g_paste_dbus_get_as_result (searchv); g_paste_util_activate_ui ("search", g_variant_new_string (search)); return FALSE; } static void g_paste_search_provider_dbus_method_call (GDBusConnection *connection G_GNUC_UNUSED, const gchar *sender G_GNUC_UNUSED, const gchar *object_path G_GNUC_UNUSED, const gchar *interface_name G_GNUC_UNUSED, const gchar *method_name, GVariant *parameters, GDBusMethodInvocation *invocation, gpointer user_data) { GPasteSearchProvider *self = user_data; const GPasteSearchProviderPrivate *priv = _g_paste_search_provider_get_instance_private (self); gboolean async = FALSE; if (g_paste_str_equal (method_name, G_PASTE_SEARCH_PROVIDER_GET_INITIAL_RESULT_SET)) async = g_paste_search_provider_private_get_initial_result_set (priv, invocation, parameters); else if (g_paste_str_equal (method_name, G_PASTE_SEARCH_PROVIDER_GET_SUBSEARCH_RESULT_SET)) async = g_paste_search_provider_private_get_subsearch_result_set (priv, invocation, parameters); else if (g_paste_str_equal (method_name, G_PASTE_SEARCH_PROVIDER_GET_RESULT_METAS)) async = g_paste_search_provider_private_get_result_metas (priv, invocation, parameters); else if (g_paste_str_equal (method_name, G_PASTE_SEARCH_PROVIDER_ACTIVATE_RESULT)) async = g_paste_search_provider_private_activate_result (priv, parameters); else if (g_paste_str_equal (method_name, G_PASTE_SEARCH_PROVIDER_LAUNCH_SEARCH)) async = g_paste_search_provider_private_launch_search (priv, parameters); if (!async) g_dbus_method_invocation_return_value (invocation, NULL); } static void g_paste_search_provider_unregister_object (gpointer user_data) { g_autoptr (GPasteSearchProvider) self = G_PASTE_SEARCH_PROVIDER (user_data); GPasteSearchProviderPrivate *priv = g_paste_search_provider_get_instance_private (self); priv->registered = FALSE; } static void g_paste_search_provider_dispose (GObject *object) { GPasteSearchProviderPrivate *priv = g_paste_search_provider_get_instance_private (G_PASTE_SEARCH_PROVIDER (object)); if (priv->connection) { g_dbus_connection_unregister_object (priv->connection, priv->id_on_bus); g_clear_object (&priv->connection); g_clear_pointer (&priv->g_paste_search_provider_dbus_info, g_dbus_node_info_unref); g_clear_object (&priv->client); } G_OBJECT_CLASS (g_paste_search_provider_parent_class)->dispose (object); } static gboolean g_paste_search_provider_register_on_connection (GPasteBusObject *self, GDBusConnection *connection, GError **error) { GPasteSearchProviderPrivate *priv = g_paste_search_provider_get_instance_private (G_PASTE_SEARCH_PROVIDER (self)); g_clear_object (&priv->connection); priv->connection = g_object_ref (connection); priv->id_on_bus = g_dbus_connection_register_object (connection, G_PASTE_SEARCH_PROVIDER_OBJECT_PATH, priv->g_paste_search_provider_dbus_info->interfaces[0], &priv->g_paste_search_provider_dbus_vtable, g_object_ref (self), g_paste_search_provider_unregister_object, error); return (priv->registered = !!priv->id_on_bus); } static void g_paste_search_provider_class_init (GPasteSearchProviderClass *klass) { G_OBJECT_CLASS (klass)->dispose = g_paste_search_provider_dispose; G_PASTE_BUS_OBJECT_CLASS (klass)->register_on_connection = g_paste_search_provider_register_on_connection; } static void on_client_ready (GObject *source_object G_GNUC_UNUSED, GAsyncResult *res, gpointer user_data) { GPasteSearchProviderPrivate *priv = user_data; g_autoptr (GError) error = NULL; priv->client = g_paste_client_new_finish (res, &error); if (error) g_error ("Failed to connect to GPaste daemon: %s", error->message); } static void g_paste_search_provider_init (GPasteSearchProvider *self) { GPasteSearchProviderPrivate *priv = g_paste_search_provider_get_instance_private (self); GDBusInterfaceVTable *vtable = &priv->g_paste_search_provider_dbus_vtable; priv->id_on_bus = 0; g_autoptr (GError) error = NULL; priv->g_paste_search_provider_dbus_info = g_dbus_node_info_new_for_xml (G_PASTE_SEARCH_PROVIDER_INTERFACE, &error); g_assert_no_error (error); vtable->method_call = g_paste_search_provider_dbus_method_call; vtable->get_property = NULL; vtable->set_property = NULL; g_paste_client_new (on_client_ready, priv); } /** * g_paste_search_provider_new: * * Create a new instance of #GPasteSearchProvider * * Returns: a newly allocated #GPasteSearchProvider * free it with g_object_unref */ G_PASTE_VISIBLE GPasteBusObject * g_paste_search_provider_new (void) { return G_PASTE_BUS_OBJECT (g_object_new (G_PASTE_TYPE_SEARCH_PROVIDER, NULL)); } Keruspe-GPaste-724def1/src/daemon/gpaste-search-provider.h000066400000000000000000000006441521206431300235110ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #pragma once #include G_BEGIN_DECLS #define G_PASTE_TYPE_SEARCH_PROVIDER (g_paste_search_provider_get_type ()) G_PASTE_FINAL_TYPE (SearchProvider, search_provider, SEARCH_PROVIDER, GPasteBusObject) GPasteBusObject *g_paste_search_provider_new (void); G_END_DECLS Keruspe-GPaste-724def1/src/daemon/gpaste-show-history-keybinding.c000066400000000000000000000032551521206431300252100ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #include struct _GPasteShowHistoryKeybinding { GPasteKeybinding parent_instance; }; G_PASTE_DEFINE_TYPE (ShowHistoryKeybinding, show_history_keybinding, G_PASTE_TYPE_KEYBINDING) static void g_paste_show_history_keybinding_class_init (GPasteShowHistoryKeybindingClass *klass G_GNUC_UNUSED) { } static void g_paste_show_history_keybinding_init (GPasteShowHistoryKeybinding *self G_GNUC_UNUSED) { } static void g_paste_show_history_keybinding_show_history (GPasteKeybinding *self G_GNUC_UNUSED, gpointer data) { GPasteDaemon *gpaste_daemon = data; g_autoptr (GError) error = NULL; g_paste_daemon_show_history (gpaste_daemon, &error); if (error) g_warning ("Failed to show history: %s", error->message); } /** * g_paste_show_history_keybinding_new: * @gpaste_daemon: a #GPasteDaemon instance * * Create a new instance of #GPasteShowHistoryKeybinding * * Returns: a newly allocated #GPasteShowHistoryKeybinding * free it with g_object_unref */ G_PASTE_VISIBLE GPasteKeybinding * g_paste_show_history_keybinding_new (GPasteDaemon *gpaste_daemon) { return g_paste_keybinding_new (G_PASTE_TYPE_SHOW_HISTORY_KEYBINDING, G_PASTE_SHOW_HISTORY_SETTING, _("Show History"), g_paste_settings_get_show_history, g_paste_show_history_keybinding_show_history, gpaste_daemon); } Keruspe-GPaste-724def1/src/daemon/gpaste-show-history-keybinding.h000066400000000000000000000010071521206431300252060ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #pragma once #include #include G_BEGIN_DECLS #define G_PASTE_TYPE_SHOW_HISTORY_KEYBINDING (g_paste_show_history_keybinding_get_type ()) G_PASTE_FINAL_TYPE (ShowHistoryKeybinding, show_history_keybinding, SHOW_HISTORY_KEYBINDING, GPasteKeybinding) GPasteKeybinding *g_paste_show_history_keybinding_new (GPasteDaemon *gpaste_daemon); G_END_DECLS Keruspe-GPaste-724def1/src/daemon/gpaste-special-atom.c000066400000000000000000000037761521206431300227760ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #include static const gchar *special_atoms[G_PASTE_SPECIAL_ATOM_LAST] = { [G_PASTE_SPECIAL_ATOM_GNOME_COPIED_FILES] = "x-special/gnome-copied-files", [G_PASTE_SPECIAL_ATOM_TEXT_HTML] = "text/html", [G_PASTE_SPECIAL_ATOM_TEXT_HTML_UTF8] = "text/html;charset=utf-8", [G_PASTE_SPECIAL_ATOM_TEXT_XML] = "text/xml", [G_PASTE_SPECIAL_ATOM_TEXT_XML_UTF8] = "text/xml;charset=utf-8", }; G_PASTE_VISIBLE GType g_paste_special_atom_get_type (void) { static GType etype = 0; if (!etype) { static const GEnumValue values[] = { { G_PASTE_SPECIAL_ATOM_GNOME_COPIED_FILES, "G_PASTE_SPECIAL_ATOM_GNOME_COPIED_FILES", "gnome-copied-files" }, { G_PASTE_SPECIAL_ATOM_TEXT_HTML, "G_PASTE_SPECIAL_ATOM_TEXT_HTML", "text-html" }, { G_PASTE_SPECIAL_ATOM_TEXT_HTML_UTF8, "G_PASTE_SPECIAL_ATOM_TEXT_HTML_UTF8", "text-html-utf8" }, { G_PASTE_SPECIAL_ATOM_TEXT_XML, "G_PASTE_SPECIAL_ATOM_TEXT_XML", "text-xml" }, { G_PASTE_SPECIAL_ATOM_TEXT_XML_UTF8, "G_PASTE_SPECIAL_ATOM_TEXT_XML_UTF8", "text-xml-utf8" }, { G_PASTE_SPECIAL_ATOM_INVALID, NULL, NULL }, }; etype = g_enum_register_static (g_intern_static_string ("GPasteSpecialAtom"), values); g_type_class_ref (etype); } return etype; } /** * g_paste_special_atom_get: * @atom: the atom we want to get * * Find special MIME type strings handled by GPaste * * Returns: the MIME type string corresponding to @atom */ G_PASTE_VISIBLE const gchar * g_paste_special_atom_get (GPasteSpecialAtom atom) { g_return_val_if_fail (atom >= G_PASTE_SPECIAL_ATOM_FIRST && atom < G_PASTE_SPECIAL_ATOM_LAST, NULL); return special_atoms[atom]; } Keruspe-GPaste-724def1/src/daemon/gpaste-special-atom.h000066400000000000000000000013721521206431300227710ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #pragma once #include G_BEGIN_DECLS typedef enum { G_PASTE_SPECIAL_ATOM_FIRST, G_PASTE_SPECIAL_ATOM_GNOME_COPIED_FILES = G_PASTE_SPECIAL_ATOM_FIRST, G_PASTE_SPECIAL_ATOM_TEXT_HTML, G_PASTE_SPECIAL_ATOM_TEXT_HTML_UTF8, G_PASTE_SPECIAL_ATOM_TEXT_XML, G_PASTE_SPECIAL_ATOM_TEXT_XML_UTF8, G_PASTE_SPECIAL_ATOM_LAST, G_PASTE_SPECIAL_ATOM_INVALID = -1 } GPasteSpecialAtom; #define G_PASTE_TYPE_SPECIAL_ATOM (g_paste_special_atom_get_type ()) GType g_paste_special_atom_get_type (void); const gchar *g_paste_special_atom_get (GPasteSpecialAtom atom); G_END_DECLS Keruspe-GPaste-724def1/src/daemon/gpaste-storage-backend.c000066400000000000000000000134451521206431300234430ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #include #include typedef struct { GPasteSettings *settings; } GPasteStorageBackendPrivate; G_PASTE_DEFINE_ABSTRACT_TYPE_WITH_PRIVATE (StorageBackend, storage_backend, G_TYPE_OBJECT) static gchar * _g_paste_storage_backend_get_history_file_path (const GPasteStorageBackend *self, const gchar *name) { return g_paste_util_get_history_file_path (name, _G_PASTE_STORAGE_BACKEND_GET_CLASS (self)->get_extension (self)); } /** * g_paste_storage_backend_read_history: * @self: a #GPasteItem instance * @name: the name of the history to load * @history: (out) (element-type GPasteItem): the history we just read * @size: (out): the size used by the history * * Reads the history from our storage backend */ G_PASTE_VISIBLE void g_paste_storage_backend_read_history (const GPasteStorageBackend *self, const gchar *name, GList **history, gsize *size) { g_return_if_fail (_G_PASTE_IS_STORAGE_BACKEND (self)); g_return_if_fail (name); g_return_if_fail (history && !*history); g_return_if_fail (size); g_autofree gchar *history_file_path = _g_paste_storage_backend_get_history_file_path (self, name); _G_PASTE_STORAGE_BACKEND_GET_CLASS (self)->read_history_file (self, history_file_path, history, size); } /** * g_paste_storage_backend_write_history: * @self: a #GPasteItem instance * @name: the name of the history to save * @history: (element-type GPasteItem): the history to write * * Save the history by writing it to our storage backend */ G_PASTE_VISIBLE void g_paste_storage_backend_write_history (const GPasteStorageBackend *self, const gchar *name, const GList *history) { g_return_if_fail (_G_PASTE_IS_STORAGE_BACKEND (self)); g_autofree gchar *history_file_path = _g_paste_storage_backend_get_history_file_path (self, name); _G_PASTE_STORAGE_BACKEND_GET_CLASS (self)->write_history_file (self, history_file_path, history); } /** * g_paste_storage_backend_delete_history: * @self: a #GPasteStorageBackend instance * @name: the name of the history to delete * @error: a #GError * * Delete a history from our storage backend */ G_PASTE_VISIBLE void g_paste_storage_backend_delete_history (const GPasteStorageBackend *self, const gchar *name, GError **error) { g_return_if_fail (_G_PASTE_IS_STORAGE_BACKEND (self)); g_return_if_fail (name); if (_G_PASTE_STORAGE_BACKEND_GET_CLASS (self)->delete_history) _G_PASTE_STORAGE_BACKEND_GET_CLASS (self)->delete_history (self, name, error); } /** * g_paste_storage_backend_list_histories: * @self: a #GPasteStorageBackend instance * @error: a #GError * * Get the list of available histories from our storage backend * * Returns: (transfer full): The list of history names */ G_PASTE_VISIBLE GStrv g_paste_storage_backend_list_histories (const GPasteStorageBackend *self, GError **error) { g_return_val_if_fail (_G_PASTE_IS_STORAGE_BACKEND (self), NULL); g_return_val_if_fail (!error || !(*error), NULL); if (_G_PASTE_STORAGE_BACKEND_GET_CLASS (self)->list_histories) return _G_PASTE_STORAGE_BACKEND_GET_CLASS (self)->list_histories (self, error); return NULL; } static void g_paste_storage_backend_dispose (GObject *object) { GPasteStorageBackendPrivate *priv = g_paste_storage_backend_get_instance_private (G_PASTE_STORAGE_BACKEND (object)); g_clear_object (&priv->settings); G_OBJECT_CLASS (g_paste_storage_backend_parent_class)->dispose (object); } static const GPasteSettings * g_paste_storage_backend_get_settings (const GPasteStorageBackend *self) { const GPasteStorageBackendPrivate *priv = _g_paste_storage_backend_get_instance_private (self); return priv->settings; } static void g_paste_storage_backend_class_init (GPasteStorageBackendClass *klass) { klass->read_history_file = NULL; klass->write_history_file = NULL; klass->get_extension = NULL; klass->get_settings = g_paste_storage_backend_get_settings; klass->delete_history = NULL; klass->list_histories = NULL; G_OBJECT_CLASS (klass)->dispose = g_paste_storage_backend_dispose; } static void g_paste_storage_backend_init (GPasteStorageBackend *self G_GNUC_UNUSED) { } static GType _g_paste_storage_backend_get_type (GPasteStorage storage_kind) { switch (storage_kind) { case G_PASTE_STORAGE_FILE: return G_PASTE_TYPE_FILE_BACKEND; default: return _g_paste_storage_backend_get_type (G_PASTE_STORAGE_DEFAULT); } } /** * g_paste_storage_backend_new: * @storage_kind: the kind of storage we want to use to save and load history * @settings: a #GPasteSettings instance * * Create a new instance of #GPasteStorageBackend * * Returns: a newly allocated #GPasteStorageBackend * free it with g_object_unref */ G_PASTE_VISIBLE GPasteStorageBackend * g_paste_storage_backend_new (GPasteStorage storage_kind, GPasteSettings *settings) { g_return_val_if_fail (G_PASTE_IS_SETTINGS (settings), NULL); GPasteStorageBackend *self = g_object_new (_g_paste_storage_backend_get_type (storage_kind), NULL); GPasteStorageBackendPrivate *priv = g_paste_storage_backend_get_instance_private (self); priv->settings = g_object_ref (settings); return self; } Keruspe-GPaste-724def1/src/daemon/gpaste-storage-backend.h000066400000000000000000000053141521206431300234440ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #pragma once #include G_BEGIN_DECLS typedef enum { G_PASTE_STORAGE_FILE, G_PASTE_STORAGE_DEFAULT = G_PASTE_STORAGE_FILE } GPasteStorage; #define G_PASTE_TYPE_STORAGE_BACKEND (g_paste_storage_backend_get_type ()) G_PASTE_DERIVABLE_TYPE (StorageBackend, storage_backend, STORAGE_BACKEND, GObject) struct _GPasteStorageBackendClass { GObjectClass parent_class; /*< pure virtual >*/ void (*read_history_file) (const GPasteStorageBackend *self, const gchar *history_file_path, GList **history, gsize *size); void (*write_history_file) (const GPasteStorageBackend *self, const gchar *history_file_path, const GList *history); /*< protected >*/ const gchar *(*get_extension) (const GPasteStorageBackend *self); const GPasteSettings *(*get_settings) (const GPasteStorageBackend *self); void (*delete_history) (const GPasteStorageBackend *self, const gchar *name, GError **error); GStrv (*list_histories) (const GPasteStorageBackend *self, GError **error); }; void g_paste_storage_backend_read_history (const GPasteStorageBackend *self, const gchar *name, GList **history, gsize *size); void g_paste_storage_backend_write_history (const GPasteStorageBackend *self, const gchar *name, const GList *history); void g_paste_storage_backend_delete_history (const GPasteStorageBackend *self, const gchar *name, GError **error); GStrv g_paste_storage_backend_list_histories (const GPasteStorageBackend *self, GError **error); GPasteStorageBackend *g_paste_storage_backend_new (GPasteStorage storage_kind, GPasteSettings *settings); G_END_DECLS Keruspe-GPaste-724def1/src/daemon/gpaste-sync-clipboard-to-primary-keybinding.c000066400000000000000000000034021521206431300275350ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #include struct _GPasteSyncClipboardToPrimaryKeybinding { GPasteKeybinding parent_instance; }; G_PASTE_DEFINE_TYPE (SyncClipboardToPrimaryKeybinding, sync_clipboard_to_primary_keybinding, G_PASTE_TYPE_KEYBINDING) static void g_paste_sync_clipboard_to_primary_keybinding_class_init (GPasteSyncClipboardToPrimaryKeybindingClass *klass G_GNUC_UNUSED) { } static void g_paste_sync_clipboard_to_primary_keybinding_init (GPasteSyncClipboardToPrimaryKeybinding *self G_GNUC_UNUSED) { } static void g_paste_sync_clipboard_to_primary_keybinding_sync (GPasteKeybinding *self G_GNUC_UNUSED, gpointer data) { GPasteClipboardsManager *gcm = data; g_paste_clipboards_manager_sync_from_to (gcm, TRUE); } /** * g_paste_sync_clipboard_to_primary_keybinding_new: * @gcm: a #GPasteClipboardManager instance * * Create a new instance of #GPasteSyncClipboardToPrimaryKeybinding * * Returns: a newly allocated #GPasteSyncClipboardToPrimaryKeybinding * free it with g_object_unref */ G_PASTE_VISIBLE GPasteKeybinding * g_paste_sync_clipboard_to_primary_keybinding_new (GPasteClipboardsManager *gcm) { return g_paste_keybinding_new (G_PASTE_TYPE_SYNC_CLIPBOARD_TO_PRIMARY_KEYBINDING, G_PASTE_SYNC_CLIPBOARD_TO_PRIMARY_SETTING, _("Sync Clipboard to Primary"), g_paste_settings_get_sync_clipboard_to_primary, g_paste_sync_clipboard_to_primary_keybinding_sync, gcm); } Keruspe-GPaste-724def1/src/daemon/gpaste-sync-clipboard-to-primary-keybinding.h000066400000000000000000000011401521206431300275370ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #pragma once #include #include G_BEGIN_DECLS #define G_PASTE_TYPE_SYNC_CLIPBOARD_TO_PRIMARY_KEYBINDING (g_paste_sync_clipboard_to_primary_keybinding_get_type ()) G_PASTE_FINAL_TYPE (SyncClipboardToPrimaryKeybinding, sync_clipboard_to_primary_keybinding, SYNC_CLIPBOARD_TO_PRIMARY_KEYBINDING, GPasteKeybinding) GPasteKeybinding *g_paste_sync_clipboard_to_primary_keybinding_new (GPasteClipboardsManager *gcm); G_END_DECLS Keruspe-GPaste-724def1/src/daemon/gpaste-sync-primary-to-clipboard-keybinding.c000066400000000000000000000034031521206431300275360ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #include struct _GPasteSyncPrimaryToClipboardKeybinding { GPasteKeybinding parent_instance; }; G_PASTE_DEFINE_TYPE (SyncPrimaryToClipboardKeybinding, sync_primary_to_clipboard_keybinding, G_PASTE_TYPE_KEYBINDING) static void g_paste_sync_primary_to_clipboard_keybinding_class_init (GPasteSyncPrimaryToClipboardKeybindingClass *klass G_GNUC_UNUSED) { } static void g_paste_sync_primary_to_clipboard_keybinding_init (GPasteSyncPrimaryToClipboardKeybinding *self G_GNUC_UNUSED) { } static void g_paste_sync_primary_to_clipboard_keybinding_sync (GPasteKeybinding *self G_GNUC_UNUSED, gpointer data) { GPasteClipboardsManager *gcm = data; g_paste_clipboards_manager_sync_from_to (gcm, FALSE); } /** * g_paste_sync_primary_to_clipboard_keybinding_new: * @gcm: a #GPasteClipboardManager instance * * Create a new instance of #GPasteSyncPrimaryToClipboardKeybinding * * Returns: a newly allocated #GPasteSyncPrimaryToClipboardKeybinding * free it with g_object_unref */ G_PASTE_VISIBLE GPasteKeybinding * g_paste_sync_primary_to_clipboard_keybinding_new (GPasteClipboardsManager *gcm) { return g_paste_keybinding_new (G_PASTE_TYPE_SYNC_PRIMARY_TO_CLIPBOARD_KEYBINDING, G_PASTE_SYNC_PRIMARY_TO_CLIPBOARD_SETTING, _("Sync Primary to Clipboard"), g_paste_settings_get_sync_primary_to_clipboard, g_paste_sync_primary_to_clipboard_keybinding_sync, gcm); } Keruspe-GPaste-724def1/src/daemon/gpaste-sync-primary-to-clipboard-keybinding.h000066400000000000000000000011401521206431300275370ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #pragma once #include #include G_BEGIN_DECLS #define G_PASTE_TYPE_SYNC_PRIMARY_TO_CLIPBOARD_KEYBINDING (g_paste_sync_primary_to_clipboard_keybinding_get_type ()) G_PASTE_FINAL_TYPE (SyncPrimaryToClipboardKeybinding, sync_primary_to_clipboard_keybinding, SYNC_PRIMARY_TO_CLIPBOARD_KEYBINDING, GPasteKeybinding) GPasteKeybinding *g_paste_sync_primary_to_clipboard_keybinding_new (GPasteClipboardsManager *gcm); G_END_DECLS Keruspe-GPaste-724def1/src/daemon/gpaste-text-item.c000066400000000000000000000025361521206431300223310ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #include G_PASTE_DEFINE_TYPE (TextItem, text_item, G_PASTE_TYPE_ITEM) static gboolean g_paste_text_item_equals (const GPasteItem *self, const GPasteItem *other) { return (_G_PASTE_IS_TEXT_ITEM (other) && G_PASTE_ITEM_CLASS (g_paste_text_item_parent_class)->equals (self, other)); } static const gchar * g_paste_text_item_get_kind (const GPasteItem *self G_GNUC_UNUSED) { return "Text"; } static void g_paste_text_item_class_init (GPasteTextItemClass *klass) { GPasteItemClass *item_class = G_PASTE_ITEM_CLASS (klass); item_class->equals = g_paste_text_item_equals; item_class->get_kind = g_paste_text_item_get_kind; } static void g_paste_text_item_init (GPasteTextItem *self G_GNUC_UNUSED) { } /** * g_paste_text_item_new: * @text: the content of the desired #GPasteTextItem * * Create a new instance of #GPasteTextItem * * Returns: a newly allocated #GPasteTextItem * free it with g_object_unref */ G_PASTE_VISIBLE GPasteItem * g_paste_text_item_new (const gchar *text) { g_return_val_if_fail (text, NULL); g_return_val_if_fail (g_utf8_validate (text, -1, NULL), NULL); return g_paste_item_new (G_PASTE_TYPE_TEXT_ITEM, text); } Keruspe-GPaste-724def1/src/daemon/gpaste-text-item.h000066400000000000000000000007051521206431300223320ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #pragma once #include G_BEGIN_DECLS #define G_PASTE_TYPE_TEXT_ITEM (g_paste_text_item_get_type ()) G_PASTE_DERIVABLE_TYPE (TextItem, text_item, TEXT_ITEM, GPasteItem) struct _GPasteTextItemClass { GPasteItemClass parent_class; }; GPasteItem *g_paste_text_item_new (const gchar *text); G_END_DECLS Keruspe-GPaste-724def1/src/daemon/gpaste-ui-keybinding.c000066400000000000000000000023101521206431300231350ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #include struct _GPasteUiKeybinding { GPasteKeybinding parent_instance; }; G_PASTE_DEFINE_TYPE (UiKeybinding, ui_keybinding, G_PASTE_TYPE_KEYBINDING) static void g_paste_ui_keybinding_class_init (GPasteUiKeybindingClass *klass G_GNUC_UNUSED) { } static void g_paste_ui_keybinding_init (GPasteUiKeybinding *self G_GNUC_UNUSED) { } static void launch_ui (GPasteKeybinding *self G_GNUC_UNUSED, gpointer data G_GNUC_UNUSED) { g_paste_util_spawn ("Ui"); } /** * g_paste_ui_keybinding_new: * * Create a new instance of #GPasteUiKeybinding * * Returns: a newly allocated #GPasteUiKeybinding * free it with g_object_unref */ G_PASTE_VISIBLE GPasteKeybinding * g_paste_ui_keybinding_new (void) { return g_paste_keybinding_new (G_PASTE_TYPE_UI_KEYBINDING, G_PASTE_LAUNCH_UI_SETTING, _("Launch UI"), g_paste_settings_get_launch_ui, launch_ui, NULL); } Keruspe-GPaste-724def1/src/daemon/gpaste-ui-keybinding.h000066400000000000000000000006321521206431300231470ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #pragma once #include G_BEGIN_DECLS #define G_PASTE_TYPE_UI_KEYBINDING (g_paste_ui_keybinding_get_type ()) G_PASTE_FINAL_TYPE (UiKeybinding, ui_keybinding, UI_KEYBINDING, GPasteKeybinding) GPasteKeybinding *g_paste_ui_keybinding_new (void); G_END_DECLS Keruspe-GPaste-724def1/src/daemon/gpaste-upload-keybinding.c000066400000000000000000000043461521206431300240170ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #include struct _GPasteUploadKeybinding { GPasteKeybinding parent_instance; }; typedef struct { GPasteDaemon *daemon; } GPasteUploadKeybindingPrivate; G_PASTE_DEFINE_TYPE_WITH_PRIVATE (UploadKeybinding, upload_keybinding, G_PASTE_TYPE_KEYBINDING) static void g_paste_upload_keybinding_dispose (GObject *object) { GPasteUploadKeybindingPrivate *priv = g_paste_upload_keybinding_get_instance_private (G_PASTE_UPLOAD_KEYBINDING (object)); g_clear_object (&priv->daemon); G_OBJECT_CLASS (g_paste_upload_keybinding_parent_class)->dispose (object); } static void g_paste_upload_keybinding_class_init (GPasteUploadKeybindingClass *klass) { G_OBJECT_CLASS (klass)->dispose = g_paste_upload_keybinding_dispose; } static void g_paste_upload_keybinding_init (GPasteUploadKeybinding *self G_GNUC_UNUSED) { } static void upload (GPasteKeybinding *self, gpointer data G_GNUC_UNUSED) { const GPasteUploadKeybindingPrivate *priv = _g_paste_upload_keybinding_get_instance_private (G_PASTE_UPLOAD_KEYBINDING (self)); g_paste_daemon_upload (priv->daemon, NULL); } /** * g_paste_upload_keybinding_new: * @daemon: a #GPasteDaemon instance * * Create a new instance of #GPasteUploadKeybinding * * Returns: a newly allocated #GPasteUploadKeybinding * free it with g_object_unref */ G_PASTE_VISIBLE GPasteKeybinding * g_paste_upload_keybinding_new (GPasteDaemon *daemon) { g_return_val_if_fail (_G_PASTE_IS_DAEMON (daemon), NULL); GPasteKeybinding *self = g_paste_keybinding_new (G_PASTE_TYPE_UPLOAD_KEYBINDING, G_PASTE_UPLOAD_SETTING, _("Upload to Pastebin"), g_paste_settings_get_upload, upload, NULL); GPasteUploadKeybindingPrivate *priv = g_paste_upload_keybinding_get_instance_private (G_PASTE_UPLOAD_KEYBINDING (self)); priv->daemon = g_object_ref (daemon); return self; } Keruspe-GPaste-724def1/src/daemon/gpaste-upload-keybinding.h000066400000000000000000000007351521206431300240220ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #pragma once #include #include G_BEGIN_DECLS #define G_PASTE_TYPE_UPLOAD_KEYBINDING (g_paste_upload_keybinding_get_type ()) G_PASTE_FINAL_TYPE (UploadKeybinding, upload_keybinding, UPLOAD_KEYBINDING, GPasteKeybinding) GPasteKeybinding *g_paste_upload_keybinding_new (GPasteDaemon *daemon); G_END_DECLS Keruspe-GPaste-724def1/src/daemon/gpaste-uris-item.c000066400000000000000000000110741521206431300223240ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #include #include struct _GPasteUrisItem { GPasteTextItem parent_instance; }; typedef struct { GdkFileList *file_list; } GPasteUrisItemPrivate; G_PASTE_DEFINE_TYPE_WITH_PRIVATE (UrisItem, uris_item, G_PASTE_TYPE_TEXT_ITEM) /** * g_paste_uris_item_get_file_list: * @self: a #GPasteUrisItem instance * * Get the file list contained in the #GPasteUrisItem * * Returns: (transfer none): read-only #GdkFileList */ G_PASTE_VISIBLE GdkFileList * g_paste_uris_item_get_file_list (const GPasteUrisItem *self) { g_return_val_if_fail (_G_PASTE_IS_URIS_ITEM (self), NULL); const GPasteUrisItemPrivate *priv = _g_paste_uris_item_get_instance_private (self); return priv->file_list; } static gboolean g_paste_uris_item_equals (const GPasteItem *self, const GPasteItem *other) { return (_G_PASTE_IS_URIS_ITEM (other) && G_PASTE_ITEM_CLASS (g_paste_uris_item_parent_class)->equals (self, other)); } static const gchar * g_paste_uris_item_get_kind (const GPasteItem *self G_GNUC_UNUSED) { return "Uris"; } static void g_paste_uris_item_finalize (GObject *object) { GPasteUrisItemPrivate *priv = g_paste_uris_item_get_instance_private (G_PASTE_URIS_ITEM (object)); g_boxed_free (GDK_TYPE_FILE_LIST, priv->file_list); G_OBJECT_CLASS (g_paste_uris_item_parent_class)->finalize (object); } static void g_paste_uris_item_class_init (GPasteUrisItemClass *klass) { GPasteItemClass *item_class = G_PASTE_ITEM_CLASS (klass); item_class->equals = g_paste_uris_item_equals; item_class->get_kind = g_paste_uris_item_get_kind; G_OBJECT_CLASS (klass)->finalize = g_paste_uris_item_finalize; } static void g_paste_uris_item_init (GPasteUrisItem *self G_GNUC_UNUSED) { } static GPasteItem * _g_paste_uris_item_new (const gchar *uris_joined, GdkFileList *file_list) { GPasteItem *self = g_paste_item_new (G_PASTE_TYPE_URIS_ITEM, uris_joined); GPasteUrisItemPrivate *priv = g_paste_uris_item_get_instance_private (G_PASTE_URIS_ITEM (self)); g_autofree gchar *display_no_home = g_paste_util_replace (uris_joined, g_get_home_dir (), "~"); g_autofree gchar *display_flat = g_paste_util_replace (display_no_home, "\n", " "); g_autofree gchar *display = g_strconcat (_("[Files] "), display_flat, NULL); g_paste_item_set_display_string (self, g_steal_pointer (&display)); guint64 n_uris = g_slist_length (gdk_file_list_get_files (file_list)); g_paste_item_add_size (self, strlen (uris_joined) + 1 + n_uris); priv->file_list = file_list; return self; } /** * g_paste_uris_item_new_from_str: * @str: a string containing newline-separated file URIs * * Create a new instance of #GPasteUrisItem from its string representation * * Returns: a newly allocated #GPasteUrisItem * free it with g_object_unref */ G_PASTE_VISIBLE GPasteItem * g_paste_uris_item_new_from_str (const gchar *str) { g_return_val_if_fail (str != NULL, NULL); g_return_val_if_fail (g_utf8_validate (str, -1, NULL), NULL); g_auto (GStrv) uris = g_strsplit (str, "\n", 0); guint64 length = g_strv_length (uris); if (!length) return NULL; g_autoslist (GFile) files = NULL; for (guint64 i = 0; i < length; ++i) files = g_slist_prepend (files, g_file_new_for_uri (uris[i])); files = g_slist_reverse (files); GdkFileList *file_list = gdk_file_list_new_from_list (files); return _g_paste_uris_item_new (str, file_list); } /** * g_paste_uris_item_new: * @file_list: (transfer none): a #GdkFileList from the clipboard * * Create a new instance of #GPasteUrisItem * * Returns: a newly allocated #GPasteUrisItem * free it with g_object_unref */ G_PASTE_VISIBLE GPasteItem * g_paste_uris_item_new (GdkFileList *file_list) { g_return_val_if_fail (file_list != NULL, NULL); GSList *files = gdk_file_list_get_files (file_list); if (!files) return NULL; g_autoptr (GString) uris_joined = g_string_new (NULL); for (GSList *l = files; l; l = l->next) { g_autofree gchar *uri = g_file_get_uri (G_FILE (l->data)); if (uris_joined->len > 0) g_string_append_c (uris_joined, '\n'); g_string_append (uris_joined, uri); } if (!g_utf8_validate (uris_joined->str, -1, NULL)) return NULL; return _g_paste_uris_item_new (uris_joined->str, g_boxed_copy (GDK_TYPE_FILE_LIST, file_list)); } Keruspe-GPaste-724def1/src/daemon/gpaste-uris-item.h000066400000000000000000000010671521206431300223320ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #pragma once #include #include G_BEGIN_DECLS #define G_PASTE_TYPE_URIS_ITEM (g_paste_uris_item_get_type ()) G_PASTE_FINAL_TYPE (UrisItem, uris_item, URIS_ITEM, GPasteTextItem) GdkFileList *g_paste_uris_item_get_file_list (const GPasteUrisItem *self); GPasteItem *g_paste_uris_item_new (GdkFileList *file_list); GPasteItem *g_paste_uris_item_new_from_str (const gchar *str); G_END_DECLS Keruspe-GPaste-724def1/src/daemon/main.c000066400000000000000000000103631521206431300200510ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #include #include #include #include #include #ifdef G_OS_UNIX # include #endif static void reexec (GPasteDaemon *g_paste_daemon G_GNUC_UNUSED, gpointer user_data) { GApplication *app = user_data; g_application_quit (app); execl (PKGLIBEXECDIR "/gpaste-daemon", "gpaste-daemon", NULL); } #ifdef G_OS_UNIX static gboolean signal_handler (gpointer user_data) { GApplication *app = user_data; g_print ("%s\n", _("Stop signal received, exiting")); g_application_quit (app); return G_SOURCE_REMOVE; } typedef struct { GPasteDaemon *daemon; GApplication *app; } Usr1Data; static gboolean usr1_handler (gpointer user_data) { Usr1Data *data = user_data; reexec (data->daemon, data->app); return G_SOURCE_REMOVE; } #endif enum { C_NAME_LOST, C_REEXECUTE_SELF, C_LAST_SIGNAL }; G_GNUC_NORETURN static void on_name_lost (GPasteBus *bus G_GNUC_UNUSED, gpointer user_data) { GApplication *app = user_data; fprintf (stderr, "%s\n", _("Could not acquire DBus name.")); g_application_quit (app); exit (EXIT_FAILURE); } typedef struct { GPasteBus *bus; GPasteDaemon *daemon; GPasteBusObject **search_provider; GApplication *gapp; } CallbackData; static void register_bus_object (GPasteBus *bus, GPasteBusObject *object, GApplication *gapp) { g_autoptr (GError) error = NULL; if (!g_paste_bus_object_register_on_connection (object, g_paste_bus_get_connection (bus), &error)) on_name_lost (bus, gapp); } static void register_search_provider (gpointer user_data) { CallbackData *data = user_data; GPasteBusObject *search_provider = *(data->search_provider) = g_paste_search_provider_new (); register_bus_object (data->bus, search_provider, data->gapp); } static void on_bus_acquired (GPasteBus *bus, gpointer user_data) { CallbackData *data = user_data; register_bus_object (bus, G_PASTE_BUS_OBJECT (data->daemon), data->gapp); g_source_set_name_by_id (g_idle_add_once (register_search_provider, user_data), "[GPaste] register_search_provider"); } gint main (gint argc, gchar *argv[]) { /* FIXME: remove this once gtk supports clipboard correctly on wayland */ gdk_set_allowed_backends ("x11"); G_PASTE_GTK_INIT_APPLICATION ("Daemon"); /* Keep the gapplication around */ g_application_hold (gapp); g_autofree CallbackData *data = g_new0 (CallbackData, 1); g_autoptr (GPasteDaemon) g_paste_daemon = data->daemon = g_paste_daemon_new (); g_autoptr (GPasteBusObject) search_provider = NULL; data->search_provider = &search_provider; data->gapp = gapp; g_autoptr (GPasteBus) bus = data->bus = g_paste_bus_new (on_bus_acquired, data); guint64 c_signals[C_LAST_SIGNAL] = { [C_NAME_LOST] = g_signal_connect (bus, "name-lost", G_CALLBACK (on_name_lost), gapp), [C_REEXECUTE_SELF] = g_signal_connect (g_paste_daemon, "reexecute-self", G_CALLBACK (reexec), gapp) }; #ifdef G_OS_UNIX g_source_set_name_by_id (g_unix_signal_add (SIGTERM, signal_handler, app), "[GPaste] SIGTERM listener"); g_source_set_name_by_id (g_unix_signal_add (SIGINT, signal_handler, app), "[GPaste] SIGINT listener"); Usr1Data usr1_data = { g_paste_daemon, gapp }; g_source_set_name_by_id (g_unix_signal_add (SIGUSR1, usr1_handler, &usr1_data), "[GPaste] SIGUSR1 listener"); #endif g_paste_bus_own_name (bus); g_paste_util_write_pid_file ("Daemon"); gint64 exit_status = g_application_run (gapp, argc, argv); g_signal_handler_disconnect (bus, c_signals[C_NAME_LOST]); g_signal_handler_disconnect (g_paste_daemon, c_signals[C_REEXECUTE_SELF]); return exit_status; } Keruspe-GPaste-724def1/src/daemon/meson.build000066400000000000000000000040731521206431300211240ustar00rootroot00000000000000gpaste_daemon_sources = [ 'gpaste-binary-data.c', 'gpaste-bus-object.c', 'gpaste-bus.c', 'gpaste-clipboard.c', 'gpaste-color-item.c', 'gpaste-clipboards-manager.c', 'gpaste-daemon.c', 'main.c', 'gpaste-file-backend.c', 'gpaste-history.c', 'gpaste-image-item.c', 'gpaste-item.c', 'gpaste-internal-keybinding-provider.c', 'gpaste-keybinder.c', 'gpaste-keybinding.c', 'gpaste-make-password-keybinding.c', 'gpaste-password-item.c', 'gpaste-pop-keybinding.c', 'gpaste-search-provider.c', 'gpaste-show-history-keybinding.c', 'gpaste-special-atom.c', 'gpaste-storage-backend.c', 'gpaste-sync-clipboard-to-primary-keybinding.c', 'gpaste-sync-primary-to-clipboard-keybinding.c', 'gpaste-text-item.c', 'gpaste-ui-keybinding.c', 'gpaste-upload-keybinding.c', 'gpaste-uris-item.c', ] gpaste_daemon_headers = [ 'gpaste-binary-data.h', 'gpaste-bus-object.h', 'gpaste-bus.h', 'gpaste-clipboard.h', 'gpaste-color-item.h', 'gpaste-clipboards-manager.h', 'gpaste-daemon.h', 'gpaste-file-backend.h', 'gpaste-history.h', 'gpaste-image-item.h', 'gpaste-item.h', 'gpaste-internal-keybinding-provider.h', 'gpaste-keybinder.h', 'gpaste-keybinding.h', 'gpaste-make-password-keybinding.h', 'gpaste-password-item.h', 'gpaste-pop-keybinding.h', 'gpaste-search-provider.h', 'gpaste-show-history-keybinding.h', 'gpaste-special-atom.h', 'gpaste-storage-backend.h', 'gpaste-sync-clipboard-to-primary-keybinding.h', 'gpaste-sync-primary-to-clipboard-keybinding.h', 'gpaste-text-item.h', 'gpaste-ui-keybinding.h', 'gpaste-upload-keybinding.h', 'gpaste-uris-item.h', ] gpaste_daemon_headers_dep = declare_dependency( include_directories: include_directories('.', '../libgpaste'), sources: gpaste_daemon_headers, ) executable( 'gpaste-daemon', sources: gpaste_daemon_sources, install: true, dependencies: [ gcr_dep, glib_dep, gtk4_dep, gtk4x11_dep, libadwaita_dep, libgpaste_internal_dep, libgpaste_gtk4_internal_dep, gpaste_daemon_headers_dep ] + keybinder_deps, install_dir: get_option('libexecdir') / 'gpaste', ) Keruspe-GPaste-724def1/src/gnome-shell/000077500000000000000000000000001521206431300177255ustar00rootroot00000000000000Keruspe-GPaste-724def1/src/gnome-shell/.editorconfig000066400000000000000000000002001521206431300223720ustar00rootroot00000000000000root = true [*] charset = utf-8 end_of_line = lf indent_style = space trim_trailing_whitespace = true [*.js] indent_size = 4 Keruspe-GPaste-724def1/src/gnome-shell/aboutItem.js000066400000000000000000000011221521206431300222100ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause import {gettext as _} from 'resource:///org/gnome/shell/extensions/extension.js'; import GObject from 'gi://GObject'; import {GPasteActionButton} from './actionButton.js'; export const GPasteAboutItem = GObject.registerClass( class GPasteAboutItem extends GPasteActionButton { constructor(client, menu) { super('dialog-information-symbolic', _('About'), () => { menu.itemActivated(); client.about(null); }); } }); Keruspe-GPaste-724def1/src/gnome-shell/actionButton.js000066400000000000000000000015071521206431300227370ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause import Clutter from 'gi://Clutter'; import GObject from 'gi://GObject'; import St from 'gi://St'; import {GPasteActionButtonActor} from './actionButtonActor.js'; export const GPasteActionButton = GObject.registerClass( class GPasteActionButton extends St.Button { constructor(iconName, label, action) { super({ x_expand: true, x_align: Clutter.ActorAlign.CENTER, reactive: true, can_focus: true, track_hover: true, style_class: 'button', child: new GPasteActionButtonActor(iconName, label), }); this._action = action; } vfunc_clicked(_clickedButton) { this._action(); } }); Keruspe-GPaste-724def1/src/gnome-shell/actionButtonActor.js000066400000000000000000000012771521206431300237340ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause import {gettext as _} from 'resource:///org/gnome/shell/extensions/extension.js'; import GObject from 'gi://GObject'; import St from 'gi://St'; export const GPasteActionButtonActor = GObject.registerClass( class GPasteActionButtonActor extends St.BoxLayout { constructor(iconName, label) { super({style: 'spacing: 10px;'}); this.add_child(new St.Icon({ icon_name: iconName, style_class: 'popup-menu-icon', })); this.add_child(new St.Bin({ child: new St.Label({text: label}), })); } }); Keruspe-GPaste-724def1/src/gnome-shell/actions.js000066400000000000000000000017501521206431300217260ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause import {Ornament, PopupBaseMenuItem} from 'resource:///org/gnome/shell/ui/popupMenu.js'; import GObject from 'gi://GObject'; import {GPasteAboutItem} from './aboutItem.js'; import {GPastePadding} from './padding.js'; import {GPasteUiItem} from './uiItem.js'; export const GPasteActions = GObject.registerClass( class GPasteActions extends PopupBaseMenuItem { constructor(client, menu, emptyHistoryItem) { super({ reactive: false, can_focus: false, }); this.setOrnament(Ornament.NONE); // Add padding at the beginning and end so that our contents is centered this.add_child(new GPastePadding()); this.add_child(new GPasteUiItem(menu)); this.add_child(emptyHistoryItem); this.add_child(new GPasteAboutItem(client, menu)); this.add_child(new GPastePadding()); } }); Keruspe-GPaste-724def1/src/gnome-shell/checkerBypass.js000066400000000000000000000025051521206431300230530ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause // Based on js/misc/util.js from gnome-shell import * as Main from 'resource:///org/gnome/shell/ui/main.js'; import GLib from 'gi://GLib'; import Gio from 'gi://Gio'; // Sadly, there is no other way of making global keybindings work on wayland until we get a portal for this. // I really wish we could avoid this, and the fact that we do this defeats the whole purpose of the added security from // gnome-shell which is... really sad. export default function checkerBypass() { if (!Main.shellDBusService) { // we got loaded too early, the dbus service isn't ready so we cannot hook ourselves in, try back later GLib.Source.set_name_by_id(GLib.idle_add_once(GLib.PRIORITY_DEFAULT_IDLE, checkerBypass), '[GPaste] checkerBypass'); return; } const checker = Main.shellDBusService._senderChecker; if (!checker._gpasteEnabled) { checker._gpasteEnabled = true; checker._watchList.push(Gio.DBus.watch_name(Gio.BusType.SESSION, 'org.gnome.GPaste', Gio.BusNameWatcherFlags.NONE, (conn_, name_, owner) => checker._allowlistMap.set('org.gnome.GPaste', owner), () => checker._allowlistMap.delete('org.gnome.GPaste'))); } } Keruspe-GPaste-724def1/src/gnome-shell/deleteButton.js000066400000000000000000000012701521206431300227210ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause import GObject from 'gi://GObject'; import St from 'gi://St'; export const GPasteDeleteButton = GObject.registerClass( class GPasteDeleteButton extends St.Button { constructor(client, uuid) { super(); this.child = new St.Icon({ icon_name: 'edit-delete-symbolic', style_class: 'popup-menu-icon', }); this._client = client; this.setUuid(uuid); } setUuid(uuid) { this._uuid = uuid; } vfunc_clicked(_clickedButton) { this._client.delete(this._uuid, null); } }); Keruspe-GPaste-724def1/src/gnome-shell/deleteItemPart.js000066400000000000000000000011121521206431300231660ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause import GObject from 'gi://GObject'; import St from 'gi://St'; import {GPasteDeleteButton} from './deleteButton.js'; export const GPasteDeleteItemPart = GObject.registerClass( class GPasteDeleteItemPart extends St.Bin { constructor(client, uuid) { super(); this._deleteButton = new GPasteDeleteButton(client, uuid); this.child = this._deleteButton; } setUuid(uuid) { this._deleteButton.setUuid(uuid); } }); Keruspe-GPaste-724def1/src/gnome-shell/dependencies.js000066400000000000000000000017071521206431300227160ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause import Gio from 'gi://Gio'; import GPaste from 'gi://GPaste?version=2'; import * as Config from 'resource:///org/gnome/shell/misc/config.js'; import gi from 'gi'; gi.require('Clutter', Config.LIBMUTTER_API_VERSION); gi.require('St', Config.LIBMUTTER_API_VERSION); // GPaste.Client.new is handled manually in indicator.js: Gio._promisify cannot // replace a static constructor on the class object inside gnome-shell. Gio._promisify(GPaste.Client.prototype, 'get_history_name', 'get_history_name_finish'); Gio._promisify(GPaste.Client.prototype, 'get_history_size', 'get_history_size_finish'); Gio._promisify(GPaste.Client.prototype, 'search', 'search_finish'); Gio._promisify(GPaste.Client.prototype, 'get_element_at_index', 'get_element_at_index_finish'); Gio._promisify(GPaste.Client.prototype, 'get_element', 'get_element_finish'); Keruspe-GPaste-724def1/src/gnome-shell/dummyHistoryItem.js000066400000000000000000000013421521206431300236170ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause import {gettext as _} from 'resource:///org/gnome/shell/extensions/extension.js'; import {PopupMenuItem} from 'resource:///org/gnome/shell/ui/popupMenu.js'; import GObject from 'gi://GObject'; export const GPasteDummyHistoryItem = GObject.registerClass( class GPasteDummyHistoryItem extends PopupMenuItem { constructor() { super(_("(Couldn't connect to GPaste daemon)")); this.setSensitive(false); } showEmpty() { this.label.text = _('(Empty)'); this.show(); } showNoResult() { this.label.text = _('(No result)'); this.show(); } }); Keruspe-GPaste-724def1/src/gnome-shell/emptyHistoryItem.js000066400000000000000000000014031521206431300236200ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause import {gettext as _} from 'resource:///org/gnome/shell/extensions/extension.js'; import GObject from 'gi://GObject'; import GPaste from 'gi://GPaste?version=2'; import {GPasteActionButton} from './actionButton.js'; export const GPasteEmptyHistoryItem = GObject.registerClass( class GPasteEmptyHistoryItem extends GPasteActionButton { constructor(client, settings, menu) { super('edit-clear-all-symbolic', _('Empty history'), async () => { menu.itemActivated(); const name = await client.get_history_name(); GPaste.util_empty_with_confirmation(client, settings, name); }); } }); Keruspe-GPaste-724def1/src/gnome-shell/extension.js000066400000000000000000000011661521206431300223030ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause import * as Main from 'resource:///org/gnome/shell/ui/main.js'; import {Extension, gettext as _} from 'resource:///org/gnome/shell/extensions/extension.js'; import checkerBypass from './checkerBypass.js'; import {GPasteIndicator} from './indicator.js'; export default class GPasteExtension extends Extension { enable() { checkerBypass(); Main.panel.addToStatusArea('gpaste', new GPasteIndicator()); } disable() { Main.panel.statusArea.gpaste.shutdown(); } } Keruspe-GPaste-724def1/src/gnome-shell/indicator.js000066400000000000000000000311171521206431300222420ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause import './dependencies.js'; import {gettext as _} from 'resource:///org/gnome/shell/extensions/extension.js'; import {Button} from 'resource:///org/gnome/shell/ui/panelMenu.js'; import {PopupSeparatorMenuItem} from 'resource:///org/gnome/shell/ui/popupMenu.js'; import Clutter from 'gi://Clutter'; import GObject from 'gi://GObject'; import GLib from 'gi://GLib'; import GPaste from 'gi://GPaste?version=2'; import {GPasteActions} from './actions.js'; import {GPasteDummyHistoryItem} from './dummyHistoryItem.js'; import {GPasteEmptyHistoryItem} from './emptyHistoryItem.js'; import {GPasteItem} from './item.js'; import {GPastePageSwitcher} from './pageSwitcher.js'; import {GPasteSearchItem} from './searchItem.js'; import {GPasteStateSwitch} from './stateSwitch.js'; import {GPasteStatusIcon} from './statusIcon.js'; export const GPasteIndicator = GObject.registerClass( class GPasteIndicator extends Button { static _CONNECT_RETRIES = 3; constructor() { super(0.0, 'GPaste'); this._statusIcon = new GPasteStatusIcon(); this.add_child(this._statusIcon); this._settings = new GPaste.Settings(); this._destroyed = false; this._headerSize = 0; this._postHeaderSize = 0; this._history = []; this._preFooterSize = 0; this._footerSize = 0; this._searchResults = []; this._dummyHistoryItem = new GPasteDummyHistoryItem(); this._searchItem = new GPasteSearchItem(); this._searchItem.connect('text-changed', this._onNewSearch.bind(this)); this._settings.connectObject('changed::element-size', this._resetElementSize.bind(this), this); this._resetElementSize(); this.menu.connect('key-press-event', this._onMenuKeyPress.bind(this)); this._pageSwitcher = new GPastePageSwitcher(); this._pageSwitcher.connect('switch', (sw, page) => { this._updatePage(page); }); this._addToPostHeader(this._dummyHistoryItem); this._addToPreFooter(new PopupSeparatorMenuItem()); this._setup().catch(console.error); } async _connect(retries = GPasteIndicator._CONNECT_RETRIES, delay = 1) { try { // GJS' Gio._promisify cannot replace the static GPaste.Client.new // constructor inside gnome-shell (the class-object property assignment // does not stick), so promise-wrap the raw async pair by hand. return await new Promise((resolve, reject) => { GPaste.Client.new((_source, res) => { try { resolve(GPaste.Client.new_finish(res)); } catch (e) { reject(e); } }); }); } catch (e) { if (retries <= 0) { console.error(`GPaste: ${e.message}`); return null; } await new Promise(resolve => setTimeout(resolve, delay * 1000)); if (this._destroyed) return null; return this._connect(retries - 1, delay * 2); } } async _setup() { this._client = await this._connect(); if (this._destroyed || !this._client) { this._client = null; return; } this._emptyHistoryItem = new GPasteEmptyHistoryItem(this._client, this._settings, this.menu); this._switch = new GPasteStateSwitch(this._client); this._addToHeader(this._switch); this._addToHeader(this._searchItem); this._addToHeader(this._pageSwitcher); this._addToFooter(new GPasteActions(this._client, this.menu, this._emptyHistoryItem)); await this._resetMaxDisplayedSize(); if (this._destroyed) { this._client = null; return; } this._settings.connectObject('changed::max-displayed-history-size', () => this._resetMaxDisplayedSize().catch(console.error), this); this._client.connectObject( 'update', this._update.bind(this), 'show-history', this._popup.bind(this), 'tracking', this._toggle.bind(this), this); this._onStateChanged(true); this.menu.connect('key-press-event', this._onKeyPressEvent.bind(this)); this.menu.connect('key-release-event', this._onKeyReleaseEvent.bind(this)); this.connect('destroy', this._onDestroy.bind(this)); } shutdown() { this._destroyed = true; this._onStateChanged(false); this._onDestroy(); this.destroy(); } _onKeyPressEvent(actor, event) { if (event.has_control_modifier()) { const nb = parseInt(event.get_key_unicode(), 10); if (!Number.isNaN(nb) && nb >= 0 && nb <= 9 && nb < this._history.length) this._history[nb].activate(event); } else { this._maybeUpdateIndexVisibility(event, true); } } _onKeyReleaseEvent(actor, event) { this._updateIndexVisibility(!this._eventIsControlKey(event) && event.has_control_modifier()); } _maybeUpdateIndexVisibility(event, state) { if (this._eventIsControlKey(event)) this._updateIndexVisibility(state); } _updateIndexVisibility(state) { this._history.slice(0, 10).forEach(i => { i.showIndex(state); }); } _eventIsControlKey(event) { const key = event.get_key_symbol(); return key === Clutter.KEY_Control_L || key === Clutter.KEY_Control_R; } _hasSearch() { return this._searchItem.text.length > 0; } async _onSearch(page) { if (this._hasSearch()) { const search = this._searchItem.text.toLowerCase(); this._searchResults = await this._client.search(search); if (!this._client) return; let results = this._searchResults.length; const maxSize = this._history.length; if (!this._pageSwitcher.updateForSize(results)) return; this._pageSwitcher.setActive(page); const offset = this._pageSwitcher.getPageOffset(); if (results > (maxSize + offset)) results = maxSize + offset; this._history.slice(0, results - offset).forEach((i, index) => { i.setUuid(this._searchResults[offset + index]); }); this._updateVisibility(results === 0); this._history.slice(results - offset, maxSize).forEach(i => { i.setIndex(-1); }); } else { this._searchResults = []; await this._refresh(0); } } _onNewSearch() { this._onSearch(1).catch(console.error); } _resetElementSize() { const size = this._settings.get_element_size(); this._searchItem.resetSize(size / 2 + 3); this._history.forEach(i => { i.setTextSize(size); }); } _updatePage(page) { this._pageSwitcher.setActive(page); this._refresh(0).catch(console.error); } async _resetMaxDisplayedSize() { const oldSize = this._history.length; const newSize = this._settings.get_max_displayed_history_size(); const elementSize = this._settings.get_element_size(); this._pageSwitcher.setMaxDisplayedSize(newSize); const name = await this._client.get_history_name(); if (!this._client) return; const realSize = await this._client.get_history_size(name); if (!this._client) return; const offset = this._pageSwitcher.getPageOffset(); if (newSize > oldSize) { for (let index = oldSize; index < newSize; ++index) { const realIndex = index + offset; const item = new GPasteItem(this._client, elementSize, index, realIndex < realSize ? realIndex : -1); this.menu.addMenuItem(item, this._headerSize + this._postHeaderSize + index); this._history[index] = item; } } else { for (let i = newSize; i < oldSize; ++i) this._history.pop().destroy(); } if (offset === 0 || oldSize === 0) this._updatePage(1); else this._updatePage((offset / oldSize) + 1); } _update(client, action, target, position) { switch (target) { case GPaste.UpdateTarget.ALL: this._refresh(0).catch(console.error); break; case GPaste.UpdateTarget.POSITION: { const offset = this._pageSwitcher.getPageOffset(); const displayPos = position - offset; switch (action) { case GPaste.UpdateAction.REPLACE: this._history[displayPos]?.refresh(); break; case GPaste.UpdateAction.REMOVE: this._refresh(displayPos).catch(console.error); break; } break; } } } async _refresh(resetTextFrom) { if (!this._client) return; if (this._searchResults.length > 0) { await this._onSearch(this._pageSwitcher.getPage()); } else if (this._hasSearch()) { this._history.forEach(i => { i.setIndex(-1); }); this._updateVisibility(true); } else { const name = await this._client.get_history_name(); if (!this._client) return; const realSize = await this._client.get_history_size(name); if (!this._client) return; if (!this._pageSwitcher.updateForSize(realSize)) return; const maxSize = this._history.length; const offset = this._pageSwitcher.getPageOffset(); const size = Math.min(realSize - offset, maxSize); this._history.slice(resetTextFrom, size).forEach((i, index) => { i.setIndex(offset + resetTextFrom + index); }); this._history.slice(size, maxSize).forEach(i => { i.setIndex(-1); }); this._updateVisibility(size === 0); } } _updateVisibility(empty) { if (!empty) { this._dummyHistoryItem.hide(); this._emptyHistoryItem.show(); this._searchItem.show(); } else if (this._hasSearch()) { this._dummyHistoryItem.showNoResult(); this._emptyHistoryItem.hide(); this._searchItem.show(); } else { this._dummyHistoryItem.showEmpty(); this._emptyHistoryItem.hide(); this._searchItem.hide(); } } _popup() { this.menu.open(true); } _toggle(c, state) { this._switch.toggle(state); } _selectSearch() { if (this._history.length > 0) this._searchItem.grabFocus(); } _addToHeader(item) { this.menu.addMenuItem(item, this._headerSize++); } _addToPostHeader(item) { this.menu.addMenuItem(item, this._headerSize + this._postHeaderSize++); } _addToPreFooter(item) { this.menu.addMenuItem(item, this._headerSize + this._postHeaderSize + this._history.length + this._preFooterSize++); } _addToFooter(item) { this.menu.addMenuItem(item, this._headerSize + this._postHeaderSize + this._history.length + this._preFooterSize + this._footerSize++); } _onStateChanged(state) { if (this._client) this._client.on_extension_state_changed(state, null); } _onOpenStateChanged(menu, state) { if (state) { this._searchItem.reset(); this._updatePage(1); GLib.Source.set_name_by_id(GLib.idle_add_once(GLib.PRIORITY_DEFAULT_IDLE, this._selectSearch.bind(this)), '[GPaste] select search'); } else { this._updateIndexVisibility(false); } super._onOpenStateChanged(menu, state); } _onMenuKeyPress(actor, event) { if (this._switch && this._switch.active) return super._onMenuKeyPress(actor, event); const symbol = event.get_key_symbol(); if (symbol === Clutter.KEY_Left) return this._pageSwitcher.previous(); if (symbol === Clutter.KEY_Right) return this._pageSwitcher.next(); return Clutter.EVENT_PROPAGATE; } _onDestroy() { this._settings.disconnectObject(this); if (!this._client) return; this._client.disconnectObject(this); this._client = null; } }); Keruspe-GPaste-724def1/src/gnome-shell/item.js000066400000000000000000000075451521206431300212340ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause import {PopupMenuItem} from 'resource:///org/gnome/shell/ui/popupMenu.js'; import Clutter from 'gi://Clutter'; import GObject from 'gi://GObject'; import Pango from 'gi://Pango'; import St from 'gi://St'; import {GPasteDeleteItemPart} from './deleteItemPart.js'; export const GPasteItem = GObject.registerClass( class GPasteItem extends PopupMenuItem { constructor(client, size, slotIndex, index) { super('', {can_focus: false}); this.label.set_x_expand(true); this._client = client; this._index = -1; this._fakeIndex = false; this._uuid = null; this._generation = 0; if (slotIndex <= 9) { this._indexLabel = new St.Label({ text: `${slotIndex}: `, }); this._indexLabelVisible = false; } this._deleteItem = new GPasteDeleteItemPart(client, this._uuid); this.add_child(this._deleteItem); this.label.clutter_text.ellipsize = Pango.EllipsizeMode.END; this.setTextSize(size); this.setIndex(index).catch(console.error); } showIndex(state) { if (state) { if (!this._indexLabelVisible) this.insert_child_at_index(this._indexLabel, 1); } else if (this._indexLabelVisible) { this.remove_child(this._indexLabel); } this._indexLabelVisible = state; } refresh() { this.setIndex(this._index).catch(console.error); } async setIndex(index) { const generation = ++this._generation; const oldIndex = this._index; this._index = index; this._fakeIndex = false; if (index === -1) { this._setValue(null, oldIndex); } else { const item = await this._client.get_element_at_index(index); if (generation !== this._generation) return; this._uuid = item.get_uuid(); this._setValue(item.get_value(), oldIndex); } } async setUuid(uuid) { const generation = ++this._generation; const oldIndex = this._index; this._index = -2; this._fakeIndex = true; this._uuid = uuid; if (uuid == null) { this._setValue(null, oldIndex); } else { const value = await this._client.get_element(uuid); if (generation !== this._generation) return; this._setValue(value, oldIndex); } } _setValue(value, oldIndex) { if (this._index === 0) this.label.set_style('font-weight: bold;'); else if (oldIndex === 0) this.label.set_style(null); if (this._index === -1) { this._uuid = null; this.label.clutter_text.set_text(value || ''); this.hide(); } else { const text = (value ?? '').replace(/[\t\n\r]/g, ' '); if (text !== this.label.get_text()) this.label.clutter_text.set_text(text); if (oldIndex === -1) this.show(); } this._deleteItem.setUuid(this._uuid); } setTextSize(size) { this.label.clutter_text.max_length = size; } activate(event) { this._client.select(this._uuid, null); super.activate(event); } vfunc_key_press_event(event) { const symbol = event.get_key_symbol(); if (symbol === Clutter.KEY_space || symbol === Clutter.KEY_Return) { this.activate(event); return Clutter.EVENT_STOP; } if (symbol === Clutter.KEY_BackSpace || symbol === Clutter.KEY_Delete) { this._client.delete(this._uuid, null); return Clutter.EVENT_STOP; } return Clutter.EVENT_PROPAGATE; } }); Keruspe-GPaste-724def1/src/gnome-shell/meson.build000066400000000000000000000017751521206431300221010ustar00rootroot00000000000000shell_extension_files = [ 'aboutItem.js', 'actionButton.js', 'actionButtonActor.js', 'actions.js', 'checkerBypass.js', 'deleteButton.js', 'deleteItemPart.js', 'dependencies.js', 'dummyHistoryItem.js', 'emptyHistoryItem.js', 'extension.js', 'indicator.js', 'item.js', 'padding.js', 'pageItem.js', 'pageSwitcher.js', 'prefs.js', 'searchItem.js', 'stateSwitch.js', 'statusIcon.js', 'uiItem.js', ] npm = find_program('npm', required: false) run_eslint = find_program( meson.project_source_root() / 'tools/run-eslint.sh', required: false, ) if npm.found() and run_eslint.found() test( 'eslint', run_eslint, workdir: meson.project_source_root(), ) endif configured_shell_ext_metadata = configure_file( input: 'metadata.json.in', configuration: conf, output: 'metadata.json', ) install_data( shell_extension_files, configured_shell_ext_metadata, install_dir: get_option('datadir') / 'gnome-shell/extensions/GPaste@gnome-shell-extensions.gnome.org', ) Keruspe-GPaste-724def1/src/gnome-shell/metadata.json.in000066400000000000000000000004711521206431300230070ustar00rootroot00000000000000{ "shell-version": [ "50" ], "session-modes": [ "user" ], "uuid": "GPaste@gnome-shell-extensions.gnome.org", "name": "GPaste", "version": "@version@", "description": "Clipboard management system", "url": "https://github.com/Keruspe/GPaste", "gettext-domain": "@gettext_domain@" } Keruspe-GPaste-724def1/src/gnome-shell/padding.js000066400000000000000000000005441521206431300216740ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause import GObject from 'gi://GObject'; import St from 'gi://St'; export const GPastePadding = GObject.registerClass( class GPastePadding extends St.Label { constructor() { super({text: '', x_expand: true}); } }); Keruspe-GPaste-724def1/src/gnome-shell/pageItem.js000066400000000000000000000015751521206431300220260ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause import GObject from 'gi://GObject'; import St from 'gi://St'; export const GPastePageItem = GObject.registerClass({ Signals: { 'switch': {param_types: [GObject.TYPE_UINT64]}, }, }, class GPastePageItem extends St.Button { constructor(page) { super({ label: `${page}`, reactive: true, can_focus: false, track_hover: true, style_class: 'calendar-day-base calendar-day', }); this._page = page; } vfunc_clicked(_clickedButton) { this.emit('switch', this._page); } setActive(active) { if (active) this.add_style_pseudo_class('selected'); else this.remove_style_pseudo_class('selected'); } }); Keruspe-GPaste-724def1/src/gnome-shell/pageSwitcher.js000066400000000000000000000063401521206431300227130ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause import {Ornament, PopupBaseMenuItem} from 'resource:///org/gnome/shell/ui/popupMenu.js'; import Clutter from 'gi://Clutter'; import GObject from 'gi://GObject'; import {GPastePadding} from './padding.js'; import {GPastePageItem} from './pageItem.js'; const MAX_PAGES = 20; export const GPastePageSwitcher = GObject.registerClass({ Signals: { 'switch': {param_types: [GObject.TYPE_UINT64]}, }, }, class GPastePageSwitcher extends PopupBaseMenuItem { constructor() { super({ style_class: 'calendar', reactive: false, can_focus: false, }); this.setOrnament(Ornament.NONE); // Add padding at the beginning and end so that our contents is centered this.add_child(new GPastePadding()); // We want to keep a reference to the trailing padding to insert elements before it. this._padding = new GPastePadding(); this.add_child(this._padding); this._active = -1; this._maxDisplayedSize = -1; this._pages = []; } setMaxDisplayedSize(size) { this._maxDisplayedSize = size; } updateForSize(size) { const pages = Math.min(size === 0 ? 0 : Math.floor((size - 1) / this._maxDisplayedSize + 1), MAX_PAGES); for (let i = this._pages.length; i < pages; ++i) this._addPage(); while (this._pages.length !== pages) this._pages.pop().destroy(); if (size > 0 && this._active === -1) { this._switch(1); return false; } else if (size === 0 || this._active < pages) { return true; } else { this._active = -1; this._switch(pages); return false; } } _addPage() { const sw = new GPastePageItem(this._pages.length + 1); this._pages.push(sw); // We pop the trailing padding, and put it back after the page we add this.remove_child(this._padding); this.add_child(sw); this.add_child(this._padding); sw.connect('switch', (_sw, page) => { this._switch(page); }); } getPageOffset() { return this._active < 0 ? 0 : this._active * this._maxDisplayedSize; } getPage() { return this._active + 1; } setActive(page) { if (page !== 0 && page !== (this._active + 1) && page <= this._pages.length) { if (this._active !== -1) this._pages[this._active].setActive(false); this._active = page - 1; this._pages[this._active].setActive(true); } } previous() { const page = this.getPage(); if (page > 1) { this._switch(page - 1); return Clutter.EVENT_STOP; } return Clutter.EVENT_PROPAGATE; } next() { const page = this.getPage(); if (page < this._pages.length) { this._switch(page + 1); return Clutter.EVENT_STOP; } return Clutter.EVENT_PROPAGATE; } _switch(page) { if (!Number.isNaN(page)) this.emit('switch', page); } }); Keruspe-GPaste-724def1/src/gnome-shell/prefs.js000066400000000000000000000007041521206431300214030ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause import {ExtensionPreferences, gettext as _} from 'resource:///org/gnome/Shell/Extensions/js/extensions/prefs.js'; import GPasteGtk from 'gi://GPasteGtk?version=4'; export default class GPastePreferences extends ExtensionPreferences { getPreferencesWidget() { return new GPasteGtk.PreferencesWidget(); } } Keruspe-GPaste-724def1/src/gnome-shell/searchItem.js000066400000000000000000000037311521206431300223530ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause import {PopupBaseMenuItem} from 'resource:///org/gnome/shell/ui/popupMenu.js'; import GObject from 'gi://GObject'; import St from 'gi://St'; export const GPasteSearchItem = GObject.registerClass({ Signals: { 'text-changed': {param_types: []}, }, }, class GPasteSearchItem extends PopupBaseMenuItem { constructor() { super({ activate: false, reactive: true, hover: false, can_focus: false, }); this._entry = new St.Entry({ name: 'GPasteSearchEntry', style_class: 'search-entry', track_hover: true, reactive: true, can_focus: true, }); this.add_child(this._entry); this._entry.set_primary_icon(new St.Icon({ style_class: 'search-entry-icon', icon_name: 'edit-find-symbolic', })); this._entry.clutter_text.connect('text-changed', this._onTextChanged.bind(this)); this._clearIcon = new St.Icon({ style_class: 'search-entry-icon', icon_name: 'edit-clear-symbolic', }); this._iconClickedId = 0; } get text() { return this._entry.get_text(); } resetSize(size) { this._entry.style = `width: ${size}em`; } reset() { this._entry.text = ''; const text = this._entry.clutter_text; text.set_cursor_visible(true); text.set_selection(0, 0); } grabFocus() { this._entry.grab_key_focus(); } _onTextChanged() { const dummy = this.text.length === 0; this._entry.set_secondary_icon(dummy ? null : this._clearIcon); if (!dummy && this._iconClickedId === 0) this._iconClickedId = this._entry.connect('secondary-icon-clicked', this.reset.bind(this)); this.emit('text-changed'); } }); Keruspe-GPaste-724def1/src/gnome-shell/stateSwitch.js000066400000000000000000000014341521206431300225670ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause import {gettext as _} from 'resource:///org/gnome/shell/extensions/extension.js'; import {PopupSwitchMenuItem} from 'resource:///org/gnome/shell/ui/popupMenu.js'; import GObject from 'gi://GObject'; export const GPasteStateSwitch = GObject.registerClass( class GPasteStateSwitch extends PopupSwitchMenuItem { constructor(client) { super(_('Track changes'), client.is_active()); this._client = client; this.connect('toggled', this._onToggle.bind(this)); } toggle(state) { if (state !== this.state) super.toggle(state); } _onToggle(_item, state) { this._client.track(state, null); } }); Keruspe-GPaste-724def1/src/gnome-shell/statusIcon.js000066400000000000000000000010121521206431300224110ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause import GObject from 'gi://GObject'; import St from 'gi://St'; export const GPasteStatusIcon = GObject.registerClass( class GPasteStatusIcon extends St.BoxLayout { constructor() { super({style_class: 'panel-status-menu-box'}); this.add_child(new St.Icon({ icon_name: 'edit-paste-symbolic', style_class: 'system-status-icon', })); } }); Keruspe-GPaste-724def1/src/gnome-shell/uiItem.js000066400000000000000000000011631521206431300215200ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause import {gettext as _} from 'resource:///org/gnome/shell/extensions/extension.js'; import GObject from 'gi://GObject'; import GPaste from 'gi://GPaste?version=2'; import {GPasteActionButton} from './actionButton.js'; export const GPasteUiItem = GObject.registerClass( class GPasteUiItem extends GPasteActionButton { constructor(menu) { super('go-home-symbolic', _('Graphical tool'), () => { menu.itemActivated(); GPaste.util_spawn('Ui'); }); } }); Keruspe-GPaste-724def1/src/libgpaste/000077500000000000000000000000001521206431300174655ustar00rootroot00000000000000Keruspe-GPaste-724def1/src/libgpaste/gpaste-gtk4.h000066400000000000000000000017051521206431300217730ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #pragma once #define __G_PASTE_GTK4_H_INSIDE__ /* Misc. macros */ #include #include /* GPasteGlobalShortcutClient */ #include /* GPasteGtkPreferences */ #include #include #include #include #include #include #include #include #include #undef __G_PASTE_GTK4_H_INSIDE__ Keruspe-GPaste-724def1/src/libgpaste/gpaste-gtk4/000077500000000000000000000000001521206431300216175ustar00rootroot00000000000000Keruspe-GPaste-724def1/src/libgpaste/gpaste-gtk4/gpaste-gtk-global-shortcut-client.c000066400000000000000000000432771521206431300304310ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #include #include #include #include #define G_PASTE_GTK_GLOBAL_SHORTCUT_OBJECT_PATH "/org/freedesktop/portal/desktop" #define G_PASTE_GTK_GLOBAL_SHORTCUT_INTERFACE_NAME "org.freedesktop.portal.GlobalShortcuts" #define G_PASTE_GTK_GLOBAL_SHORTCUT_CREATE_SESSION "CreateSession" #define G_PASTE_GTK_GLOBAL_SHORTCUT_BIND_SHORTCUTS "BindShortcuts" #define G_PASTE_GTK_GLOBAL_SHORTCUT_SIG_ACTIVATED "Activated" #define G_PASTE_GTK_GLOBAL_SHORTCUT_INTERFACE \ "" \ "" \ "" \ "" \ "" \ "" \ "" \ "" \ "" \ "" \ "" \ "" \ "" \ "" \ "" \ "" \ "" \ "" \ "" \ "" \ "" typedef struct { gchar *id; gchar *accelerator; gchar *description; } _Shortcut; static _Shortcut * _shortcut_new (const gchar *id, const gchar *accelerator, const gchar *description) { _Shortcut *s = g_new (_Shortcut, 1); s->id = g_strdup (id); s->accelerator = g_strdup (accelerator); s->description = g_strdup (description); return s; } static void _shortcut_free (gpointer data) { g_autofree _Shortcut *s = data; g_free (s->id); g_free (s->accelerator); g_free (s->description); } typedef struct { gchar *session_handle; GPtrArray *shortcuts; /* _Shortcut*, owned via _shortcut_free */ } GPasteGtkGlobalShortcutClientPrivate; struct _GPasteGtkGlobalShortcutClient { GDBusProxy parent_instance; }; static void global_shortcut_client_provider_init (GPasteKeybindingProviderInterface *iface); G_PASTE_DEFINE_TYPE_WITH_PRIVATE_AND_INTERFACE (GtkGlobalShortcutClient, gtk_global_shortcut_client, G_TYPE_DBUS_PROXY, G_PASTE_TYPE_KEYBINDING_PROVIDER, global_shortcut_client_provider_init) /**********************/ /* Shortcut variant */ /**********************/ static gchar * gtk_accel_to_portal_trigger (const gchar *accel) { if (!accel || !*accel) return NULL; guint keyval = 0; GdkModifierType mods = 0; if (!gtk_accelerator_parse (accel, &keyval, &mods) || !keyval) return NULL; const gchar *key_name = gdk_keyval_name (keyval); if (!key_name) return NULL; g_autoptr (GStrvBuilder) tokens = g_strv_builder_new (); if (mods & GDK_CONTROL_MASK) g_strv_builder_add (tokens, "CTRL"); if (mods & GDK_ALT_MASK) g_strv_builder_add (tokens, "ALT"); if (mods & GDK_SHIFT_MASK) g_strv_builder_add (tokens, "SHIFT"); if (mods & GDK_SUPER_MASK) g_strv_builder_add (tokens, "SUPER"); g_strv_builder_take (tokens, g_ascii_strup (key_name, -1)); g_auto (GStrv) parts = g_strv_builder_end (tokens); return g_strjoinv ("+", parts); } static GVariant * build_shortcuts_variant (GPasteGtkGlobalShortcutClientPrivate *priv) { g_auto (GVariantBuilder) builder; g_variant_builder_init (&builder, G_VARIANT_TYPE ("a(sa{sv})")); for (guint i = 0; i < priv->shortcuts->len; i++) { _Shortcut *s = g_ptr_array_index (priv->shortcuts, i); g_variant_builder_open (&builder, G_VARIANT_TYPE ("(sa{sv})")); g_variant_builder_add (&builder, "s", s->id); g_variant_builder_open (&builder, G_VARIANT_TYPE_VARDICT); if (s->accelerator) { g_autofree gchar *portal_trigger = gtk_accel_to_portal_trigger (s->accelerator); if (portal_trigger) g_variant_builder_add (&builder, "{sv}", "preferred_trigger", g_variant_new_string (portal_trigger)); } if (s->description) g_variant_builder_add (&builder, "{sv}", "description", g_variant_new_string (s->description)); g_variant_builder_close (&builder); g_variant_builder_close (&builder); } return g_variant_builder_end (&builder); } /**********************/ /* Async session/bind */ /**********************/ typedef struct { GPasteGtkGlobalShortcutClient *client; GTask *task; GDBusConnection *connection; guint signal_id; } _SessionRequestData; static void session_request_data_free (_SessionRequestData *data) { g_clear_object (&data->client); g_clear_object (&data->task); g_clear_object (&data->connection); g_free (data); } static void start_bind_async (GPasteGtkGlobalShortcutClient *self, GTask *task); static void on_bind_method_done (GObject *source, GAsyncResult *result, gpointer user_data) { g_autoptr (GTask) task = user_data; g_autoptr (GError) error = NULL; g_autoptr (GVariant) ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (source), result, &error); if (!ret) { GPasteGtkGlobalShortcutClient *self = G_PASTE_GTK_GLOBAL_SHORTCUT_CLIENT (source); GPasteGtkGlobalShortcutClientPrivate *priv = g_paste_gtk_global_shortcut_client_get_instance_private (self); g_clear_pointer (&priv->session_handle, g_free); g_task_return_error (task, g_steal_pointer (&error)); } else g_task_return_boolean (task, TRUE); } static void start_bind_async (GPasteGtkGlobalShortcutClient *self, GTask *task) { GPasteGtkGlobalShortcutClientPrivate *priv = g_paste_gtk_global_shortcut_client_get_instance_private (self); GDBusProxy *proxy = G_DBUS_PROXY (self); g_auto (GVariantBuilder) options; g_variant_builder_init (&options, G_VARIANT_TYPE_VARDICT); GVariant *params[] = { g_variant_new_object_path (priv->session_handle), build_shortcuts_variant (priv), g_variant_new_string (""), g_variant_builder_end (&options) }; g_dbus_proxy_call (proxy, G_PASTE_GTK_GLOBAL_SHORTCUT_BIND_SHORTCUTS, g_variant_new_tuple (params, 4), G_DBUS_CALL_FLAGS_NONE, -1, NULL, on_bind_method_done, g_object_ref (task)); } static void on_session_created (GDBusConnection *conn, const gchar *sender G_GNUC_UNUSED, const gchar *path G_GNUC_UNUSED, const gchar *iface G_GNUC_UNUSED, const gchar *sig G_GNUC_UNUSED, GVariant *params, gpointer user_data) { _SessionRequestData *data = user_data; g_dbus_connection_signal_unsubscribe (conn, data->signal_id); guint response; g_autoptr (GVariant) results = NULL; g_variant_get (params, "(u@a{sv})", &response, &results); if (response != 0) { g_task_return_new_error (data->task, G_IO_ERROR, G_IO_ERROR_FAILED, "CreateSession portal request failed with response %u", response); session_request_data_free (data); return; } g_autoptr (GVariant) handle_v = g_variant_lookup_value (results, "session_handle", NULL); if (!handle_v) { g_task_return_new_error (data->task, G_IO_ERROR, G_IO_ERROR_FAILED, "CreateSession response missing session_handle"); session_request_data_free (data); return; } GPasteGtkGlobalShortcutClientPrivate *priv = g_paste_gtk_global_shortcut_client_get_instance_private (data->client); g_set_str (&priv->session_handle, g_variant_get_string (handle_v, NULL)); g_autoptr (GPasteGtkGlobalShortcutClient) client = g_object_ref (data->client); g_autoptr (GTask) task = g_object_ref (data->task); session_request_data_free (data); start_bind_async (client, task); } static void on_create_session_method_done (GObject *source, GAsyncResult *result, gpointer user_data) { _SessionRequestData *data = user_data; g_autoptr (GError) error = NULL; g_autoptr (GVariant) ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (source), result, &error); if (!ret) { g_task_return_error (data->task, g_steal_pointer (&error)); session_request_data_free (data); return; } const gchar *request_path; g_variant_get (ret, "(o)", &request_path); data->signal_id = g_dbus_connection_signal_subscribe ( data->connection, NULL, "org.freedesktop.portal.Request", "Response", request_path, NULL, G_DBUS_SIGNAL_FLAGS_NONE, on_session_created, data, NULL); } static void start_create_session_async (GPasteGtkGlobalShortcutClient *self, GTask *task) { GDBusProxy *proxy = G_DBUS_PROXY (self); GDBusConnection *connection = g_dbus_proxy_get_connection (proxy); _SessionRequestData *data = g_new (_SessionRequestData, 1); data->client = g_object_ref (self); data->task = g_object_ref (task); data->connection = g_object_ref (connection); data->signal_id = 0; g_auto (GVariantBuilder) options; g_variant_builder_init (&options, G_VARIANT_TYPE_VARDICT); g_variant_builder_add (&options, "{sv}", "session_handle_token", g_variant_new_string ("gpaste")); GVariant *params[] = { g_variant_builder_end (&options) }; g_dbus_proxy_call (proxy, G_PASTE_GTK_GLOBAL_SHORTCUT_CREATE_SESSION, g_variant_new_tuple (params, 1), G_DBUS_CALL_FLAGS_NONE, -1, NULL, on_create_session_method_done, data); } /**************************/ /* GPasteKeybindingProvider */ /**************************/ static void on_provider_bind_done (GObject *source G_GNUC_UNUSED, GAsyncResult *result, gpointer user_data G_GNUC_UNUSED) { g_autoptr (GError) error = NULL; if (!g_task_propagate_boolean (G_TASK (result), &error)) g_warning ("GPasteGtkGlobalShortcutClient: BindShortcuts failed: %s", error->message); } static void global_shortcut_client_grab_all (GPasteKeybindingProvider *provider, const GPasteKeybindingAccelerator *accels) { GPasteGtkGlobalShortcutClient *self = G_PASTE_GTK_GLOBAL_SHORTCUT_CLIENT (provider); GPasteGtkGlobalShortcutClientPrivate *priv = g_paste_gtk_global_shortcut_client_get_instance_private (self); g_ptr_array_set_size (priv->shortcuts, 0); for (const GPasteKeybindingAccelerator *a = accels; a->id; a++) g_ptr_array_add (priv->shortcuts, _shortcut_new (a->id, a->accelerator, a->description)); g_autoptr (GTask) task = g_task_new (self, NULL, on_provider_bind_done, NULL); if (priv->session_handle) start_bind_async (self, task); else if (priv->shortcuts->len) start_create_session_async (self, task); else g_task_return_boolean (task, TRUE); } static void global_shortcut_client_ungrab_all (GPasteKeybindingProvider *provider) { GPasteGtkGlobalShortcutClient *self = G_PASTE_GTK_GLOBAL_SHORTCUT_CLIENT (provider); GPasteGtkGlobalShortcutClientPrivate *priv = g_paste_gtk_global_shortcut_client_get_instance_private (self); g_ptr_array_set_size (priv->shortcuts, 0); if (!priv->session_handle) return; g_autoptr (GTask) task = g_task_new (self, NULL, on_provider_bind_done, NULL); start_bind_async (self, task); } static void global_shortcut_client_provider_init (GPasteKeybindingProviderInterface *iface) { iface->grab_all = global_shortcut_client_grab_all; iface->ungrab_all = global_shortcut_client_ungrab_all; } /**********************/ /* D-Bus signal */ /**********************/ static void g_paste_gtk_global_shortcut_client_g_signal (GDBusProxy *proxy, const gchar *sender_name G_GNUC_UNUSED, const gchar *signal_name, GVariant *parameters) { GPasteGtkGlobalShortcutClient *self = G_PASTE_GTK_GLOBAL_SHORTCUT_CLIENT (proxy); if (g_paste_str_equal (signal_name, G_PASTE_GTK_GLOBAL_SHORTCUT_SIG_ACTIVATED)) { GPasteGtkGlobalShortcutClientPrivate *priv = g_paste_gtk_global_shortcut_client_get_instance_private (self); const gchar *session_handle; const gchar *shortcut_id; guint64 timestamp G_GNUC_UNUSED; g_autoptr (GVariant) options = NULL; g_variant_get (parameters, "(&o&st@a{sv})", &session_handle, &shortcut_id, ×tamp, &options); if (g_paste_str_equal (session_handle, priv->session_handle)) g_paste_keybinding_provider_emit_keybinding_activated (G_PASTE_KEYBINDING_PROVIDER (self), shortcut_id); } } /****************/ /* GObject glue */ /****************/ static void g_paste_gtk_global_shortcut_client_dispose (GObject *object) { GPasteGtkGlobalShortcutClient *self = G_PASTE_GTK_GLOBAL_SHORTCUT_CLIENT (object); GPasteGtkGlobalShortcutClientPrivate *priv = g_paste_gtk_global_shortcut_client_get_instance_private (self); g_clear_pointer (&priv->session_handle, g_free); g_clear_pointer (&priv->shortcuts, g_ptr_array_unref); G_OBJECT_CLASS (g_paste_gtk_global_shortcut_client_parent_class)->dispose (object); } static void g_paste_gtk_global_shortcut_client_class_init (GPasteGtkGlobalShortcutClientClass *klass) { G_OBJECT_CLASS (klass)->dispose = g_paste_gtk_global_shortcut_client_dispose; G_DBUS_PROXY_CLASS (klass)->g_signal = g_paste_gtk_global_shortcut_client_g_signal; } static void g_paste_gtk_global_shortcut_client_init (GPasteGtkGlobalShortcutClient *self) { GDBusProxy *proxy = G_DBUS_PROXY (self); g_autoptr (GError) error = NULL; g_autoptr (GDBusNodeInfo) dbus_info = g_dbus_node_info_new_for_xml (G_PASTE_GTK_GLOBAL_SHORTCUT_INTERFACE, &error); g_assert_no_error (error); g_dbus_proxy_set_interface_info (proxy, dbus_info->interfaces[0]); GPasteGtkGlobalShortcutClientPrivate *priv = g_paste_gtk_global_shortcut_client_get_instance_private (self); priv->session_handle = NULL; priv->shortcuts = g_ptr_array_new_with_free_func (_shortcut_free); } /** * g_paste_gtk_global_shortcut_client_new_sync: * @error: Return location for error or %NULL. * * Create a new instance of #GPasteGtkGlobalShortcutClient * * Returns: a newly allocated #GPasteGtkGlobalShortcutClient * free it with g_object_unref */ G_PASTE_VISIBLE GPasteGtkGlobalShortcutClient * g_paste_gtk_global_shortcut_client_new_sync (GError **error) { CUSTOM_PROXY_NEW (GTK_GLOBAL_SHORTCUT_CLIENT, GTK_GLOBAL_SHORTCUT, G_PASTE_GTK_GLOBAL_SHORTCUT_BUS_NAME); } /** * g_paste_gtk_global_shortcut_client_new: * @callback: Callback function to invoke when the proxy is ready. * @user_data: User data to pass to @callback. * * Create a new instance of #GPasteGtkGlobalShortcutClient */ G_PASTE_VISIBLE void g_paste_gtk_global_shortcut_client_new (GAsyncReadyCallback callback, gpointer user_data) { CUSTOM_PROXY_NEW_ASYNC (GTK_GLOBAL_SHORTCUT_CLIENT, GTK_GLOBAL_SHORTCUT, G_PASTE_GTK_GLOBAL_SHORTCUT_BUS_NAME); } /** * g_paste_gtk_global_shortcut_client_new_finish: * @result: A #GAsyncResult obtained from the #GAsyncReadyCallback function passed to the async ctor. * @error: Return location for error or %NULL. * * Create a new instance of #GPasteGtkGlobalShortcutClient * * Returns: a newly allocated #GPasteGtkGlobalShortcutClient * free it with g_object_unref */ G_PASTE_VISIBLE GPasteGtkGlobalShortcutClient * g_paste_gtk_global_shortcut_client_new_finish (GAsyncResult *result, GError **error) { CUSTOM_PROXY_NEW_FINISH (GTK_GLOBAL_SHORTCUT_CLIENT); } Keruspe-GPaste-724def1/src/libgpaste/gpaste-gtk4/gpaste-gtk-global-shortcut-client.h000066400000000000000000000023161521206431300304230ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #if !defined (__G_PASTE_GTK4_H_INSIDE__) && !defined (G_PASTE_COMPILATION) #error "Only can be included directly." #endif #pragma once #include G_BEGIN_DECLS #define G_PASTE_GTK_GLOBAL_SHORTCUT_BUS_NAME "org.freedesktop.portal.Desktop" #define G_PASTE_TYPE_GTK_GLOBAL_SHORTCUT_CLIENT (g_paste_gtk_global_shortcut_client_get_type ()) G_PASTE_FINAL_TYPE (GtkGlobalShortcutClient, gtk_global_shortcut_client, GTK_GLOBAL_SHORTCUT_CLIENT, GDBusProxy) /****************/ /* Constructors */ /****************/ GPasteGtkGlobalShortcutClient *g_paste_gtk_global_shortcut_client_new_sync (GError **error); void g_paste_gtk_global_shortcut_client_new (GAsyncReadyCallback callback, gpointer user_data); GPasteGtkGlobalShortcutClient *g_paste_gtk_global_shortcut_client_new_finish (GAsyncResult *result, GError **error); G_END_DECLS Keruspe-GPaste-724def1/src/libgpaste/gpaste-gtk4/gpaste-gtk-macros.h000066400000000000000000000055341521206431300253270ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #if !defined (__G_PASTE_GTK4_H_INSIDE__) && !defined (G_PASTE_COMPILATION) #error "Only can be included directly." #endif #pragma once #include #include G_BEGIN_DECLS #define G_PASTE_GTK_FINAL_TYPE(TypeName, type_name, TYPE_NAME, ParentTypeName) \ G_PASTE_VISIBLE G_DECLARE_FINAL_TYPE (GPasteGtk##TypeName, g_paste_gtk_##type_name, G_PASTE, GTK_##TYPE_NAME, ParentTypeName) #define G_PASTE_GTK_DERIVABLE_TYPE(TypeName, type_name, TYPE_NAME, ParentTypeName) \ G_PASTE_VISIBLE G_DECLARE_DERIVABLE_TYPE (GPasteGtk##TypeName, g_paste_gtk_##type_name, G_PASTE, GTK_##TYPE_NAME, ParentTypeName) #define G_PASTE_GTK_DEFINE_TYPE(TypeName, type_name, ParentTypeName) \ G_DEFINE_TYPE (GPasteGtk##TypeName, g_paste_gtk_##type_name, ParentTypeName) #define G_PASTE_GTK_DEFINE_TYPE_WITH_PRIVATE(TypeName, type_name, ParentTypeName) \ G_DEFINE_TYPE_WITH_PRIVATE (GPasteGtk##TypeName, g_paste_gtk_##type_name, ParentTypeName) #define G_PASTE_GTK_INIT_APPLICATION(name) \ G_PASTE_INIT_GETTEXT (); \ AdwApplication *adw = adw_application_new ("org.gnome.GPaste." name, G_APPLICATION_DEFAULT_FLAGS); \ GtkApplication *app = GTK_APPLICATION (adw); \ GApplication *gapp = G_APPLICATION (app); \ g_autoptr (GError) error = NULL; \ G_APPLICATION_GET_CLASS (gapp)->activate = g_paste_gtk_util_show_window; \ g_application_register (gapp, NULL, &error); \ if (error) \ { \ fprintf (stderr, "%s: %s\n", _("Failed to register the gtk application"), error->message); \ return EXIT_FAILURE; \ } \ if (g_application_get_is_remote (gapp)) \ { \ g_application_activate (gapp); \ return g_application_run (gapp, argc, argv); \ } G_END_DECLS Keruspe-GPaste-724def1/src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c000066400000000000000000000336721521206431300312370ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #include #include struct _GPasteGtkPreferencesBehaviourPage { GPasteGtkPreferencesPage parent_instance; }; typedef struct { GPasteGtkPreferencesManager *manager; AdwSwitchRow *track_changes_switch; AdwSwitchRow *close_on_select_switch; AdwSwitchRow *open_centered_switch; AdwSwitchRow *save_history_switch; AdwSwitchRow *extension_enabled_switch; AdwSwitchRow *track_extension_state_switch; AdwSwitchRow *primary_to_history_switch; AdwSwitchRow *synchronize_clipboards_switch; AdwSwitchRow *growing_lines_switch; AdwSwitchRow *trim_items_switch; } GPasteGtkPreferencesBehaviourPagePrivate; G_PASTE_GTK_DEFINE_TYPE_WITH_PRIVATE (PreferencesBehaviourPage, preferences_behaviour_page, G_PASTE_TYPE_GTK_PREFERENCES_PAGE) static void g_paste_gtk_preferences_behaviour_page_setting_changed (GPasteGtkPreferencesPage *self, GPasteSettings *settings, const gchar *key) { GPasteGtkPreferencesBehaviourPagePrivate *priv = g_paste_gtk_preferences_behaviour_page_get_instance_private (G_PASTE_GTK_PREFERENCES_BEHAVIOUR_PAGE (self)); if (g_paste_str_equal (key, G_PASTE_CLOSE_ON_SELECT_SETTING)) adw_switch_row_set_active (priv->close_on_select_switch, g_paste_settings_get_close_on_select (settings)); else if (g_paste_str_equal (key, G_PASTE_OPEN_CENTERED_SETTING)) adw_switch_row_set_active (priv->open_centered_switch, g_paste_settings_get_open_centered (settings)); else if (g_paste_str_equal (key, G_PASTE_GROWING_LINES_SETTING)) adw_switch_row_set_active (priv->growing_lines_switch, g_paste_settings_get_growing_lines (settings)); else if (g_paste_str_equal (key, G_PASTE_PRIMARY_TO_HISTORY_SETTING )) adw_switch_row_set_active (priv->primary_to_history_switch, g_paste_settings_get_primary_to_history (settings)); else if (g_paste_str_equal (key, G_PASTE_SAVE_HISTORY_SETTING)) adw_switch_row_set_active (priv->save_history_switch, g_paste_settings_get_save_history (settings)); else if (g_paste_str_equal (key, G_PASTE_SYNCHRONIZE_CLIPBOARDS_SETTING)) adw_switch_row_set_active (priv->synchronize_clipboards_switch, g_paste_settings_get_synchronize_clipboards (settings)); else if (g_paste_str_equal (key, G_PASTE_TRACK_CHANGES_SETTING)) adw_switch_row_set_active (priv->track_changes_switch, g_paste_settings_get_track_changes (settings)); else if (g_paste_str_equal (key, G_PASTE_TRIM_ITEMS_SETTING)) adw_switch_row_set_active (priv->trim_items_switch, g_paste_settings_get_trim_items (settings)); else if (g_paste_util_has_gnome_shell ()) { if (g_paste_str_equal (key, G_PASTE_EXTENSION_ENABLED_SETTING)) adw_switch_row_set_active (priv->extension_enabled_switch, g_paste_settings_get_extension_enabled (settings)); else if (g_paste_str_equal (key, G_PASTE_TRACK_EXTENSION_STATE_SETTING)) adw_switch_row_set_active (priv->track_extension_state_switch, g_paste_settings_get_track_extension_state (settings)); } } static void g_paste_gtk_preferences_behaviour_page_dispose (GObject *object) { GPasteGtkPreferencesBehaviourPagePrivate *priv = g_paste_gtk_preferences_behaviour_page_get_instance_private (G_PASTE_GTK_PREFERENCES_BEHAVIOUR_PAGE (object)); if (priv->manager) /* first dispose call */ { g_paste_gtk_preferences_manager_deregister (priv->manager, G_PASTE_GTK_PREFERENCES_PAGE (object)); g_clear_object (&priv->manager); } G_OBJECT_CLASS (g_paste_gtk_preferences_behaviour_page_parent_class)->dispose (object); } static void g_paste_gtk_preferences_behaviour_page_class_init (GPasteGtkPreferencesBehaviourPageClass *klass) { G_PASTE_GTK_PREFERENCES_PAGE_CLASS (klass)->setting_changed = g_paste_gtk_preferences_behaviour_page_setting_changed; G_OBJECT_CLASS (klass)->dispose = g_paste_gtk_preferences_behaviour_page_dispose; } static void g_paste_gtk_preferences_behaviour_page_init (GPasteGtkPreferencesBehaviourPage *self G_GNUC_UNUSED) { } /** * g_paste_gtk_preferences_behaviour_page_new: * @manager: a #GPasteGtkPreferencesManager instance * * Create a new instance of #GPasteGtkPreferencesBehaviourPage * * Returns: (nullable): a newly allocated #GPasteGtkPreferencesBehaviourPage * free it with g_object_unref */ G_PASTE_VISIBLE GtkWidget * g_paste_gtk_preferences_behaviour_page_new (GPasteGtkPreferencesManager *manager) { g_return_val_if_fail (G_PASTE_IS_GTK_PREFERENCES_MANAGER (manager), NULL); GPasteGtkPreferencesBehaviourPage *self = G_PASTE_GTK_PREFERENCES_BEHAVIOUR_PAGE (g_object_new (G_PASTE_TYPE_GTK_PREFERENCES_BEHAVIOUR_PAGE, "name", "behaviour", "title", _("General behaviour"), "icon-name", "preferences-system", NULL)); GPasteGtkPreferencesBehaviourPagePrivate *priv = g_paste_gtk_preferences_behaviour_page_get_instance_private (self); GPasteSettings *settings = g_paste_gtk_preferences_manager_get_settings (manager); AdwPreferencesPage *page = ADW_PREFERENCES_PAGE (self); priv->manager = g_object_ref (manager); g_paste_gtk_preferences_manager_register (manager, G_PASTE_GTK_PREFERENCES_PAGE (self)); GPasteGtkPreferencesGroup *group = g_paste_gtk_preferences_group_new (_("General behaviour")); priv->track_changes_switch = g_paste_gtk_preferences_group_add_boolean_setting (group, _("Track clipboard changes"), g_paste_settings_get_track_changes (settings), g_paste_settings_set_track_changes, g_paste_settings_reset_track_changes, settings); priv->close_on_select_switch = g_paste_gtk_preferences_group_add_boolean_setting (group, _("Close UI on select"), g_paste_settings_get_close_on_select (settings), g_paste_settings_set_close_on_select, g_paste_settings_reset_close_on_select, settings); priv->open_centered_switch = g_paste_gtk_preferences_group_add_boolean_setting (group, _("Open the UI window centered"), g_paste_settings_get_open_centered (settings), g_paste_settings_set_open_centered, g_paste_settings_reset_open_centered, settings); priv->save_history_switch = g_paste_gtk_preferences_group_add_boolean_setting (group, _("Save history"), g_paste_settings_get_save_history (settings), g_paste_settings_set_save_history, g_paste_settings_reset_save_history, settings); adw_preferences_page_add (page, ADW_PREFERENCES_GROUP (group)); if (g_paste_util_has_gnome_shell ()) { group = g_paste_gtk_preferences_group_new ("GNOME shell"); priv->extension_enabled_switch = g_paste_gtk_preferences_group_add_boolean_setting (group, _("Enable the gnome-shell extension"), g_paste_settings_get_extension_enabled (settings), g_paste_settings_set_extension_enabled, NULL, settings); priv->track_extension_state_switch = g_paste_gtk_preferences_group_add_boolean_setting (group, _("Sync the daemon state with the extension's one"), g_paste_settings_get_track_extension_state (settings), g_paste_settings_set_track_extension_state, g_paste_settings_reset_track_extension_state, settings); adw_action_row_set_subtitle (ADW_ACTION_ROW (priv->track_extension_state_switch), _("When enabled, the daemon automatically starts or stops tracking clipboard changes to match the GNOME Shell extension's enabled state")); adw_preferences_page_add (page, ADW_PREFERENCES_GROUP (group)); } group = g_paste_gtk_preferences_group_new (_("Clipboards synchronization")); priv->primary_to_history_switch = g_paste_gtk_preferences_group_add_boolean_setting (group, _("Primary selection affects history"), g_paste_settings_get_primary_to_history (settings), g_paste_settings_set_primary_to_history, g_paste_settings_reset_primary_to_history, settings); priv->synchronize_clipboards_switch = g_paste_gtk_preferences_group_add_boolean_setting (group, _("Synchronize clipboard with primary selection"), g_paste_settings_get_synchronize_clipboards (settings), g_paste_settings_set_synchronize_clipboards, g_paste_settings_reset_synchronize_clipboards, settings); adw_preferences_page_add (page, ADW_PREFERENCES_GROUP (group)); group = g_paste_gtk_preferences_group_new (_("Optional features")); priv->trim_items_switch = g_paste_gtk_preferences_group_add_boolean_setting (group, _("Trim items"), g_paste_settings_get_trim_items (settings), g_paste_settings_set_trim_items, g_paste_settings_reset_trim_items, settings); priv->growing_lines_switch = g_paste_gtk_preferences_group_add_boolean_setting (group, _("Detect growing lines"), g_paste_settings_get_growing_lines (settings), g_paste_settings_set_growing_lines, g_paste_settings_reset_growing_lines, settings); adw_action_row_set_subtitle (ADW_ACTION_ROW (priv->growing_lines_switch), _("When enabled, if a new clipboard entry starts with the previous one, the previous entry is replaced instead of creating a new one")); adw_preferences_page_add (page, ADW_PREFERENCES_GROUP (group)); return GTK_WIDGET (self); } Keruspe-GPaste-724def1/src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.h000066400000000000000000000012741521206431300312350ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #if !defined (__G_PASTE_GTK4_H_INSIDE__) && !defined (G_PASTE_COMPILATION) #error "Only can be included directly." #endif #pragma once #include G_BEGIN_DECLS #define G_PASTE_TYPE_GTK_PREFERENCES_BEHAVIOUR_PAGE (g_paste_gtk_preferences_behaviour_page_get_type ()) G_PASTE_GTK_FINAL_TYPE (PreferencesBehaviourPage, preferences_behaviour_page, PREFERENCES_BEHAVIOUR_PAGE, GPasteGtkPreferencesPage) GtkWidget *g_paste_gtk_preferences_behaviour_page_new (GPasteGtkPreferencesManager *manager); G_END_DECLS Keruspe-GPaste-724def1/src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-dialog.c000066400000000000000000000047561521206431300276010ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #include #include #include #include #include struct _GPasteGtkPreferencesDialog { AdwPreferencesDialog parent_instance; }; typedef struct { GApplication *gapp; } GPasteGtkPreferencesDialogPrivate; G_PASTE_GTK_DEFINE_TYPE_WITH_PRIVATE (PreferencesDialog, preferences_dialog, ADW_TYPE_PREFERENCES_DIALOG) static void g_paste_gtk_preferences_dialog_finalize (GObject *object) { GPasteGtkPreferencesDialogPrivate *priv = g_paste_gtk_preferences_dialog_get_instance_private (G_PASTE_GTK_PREFERENCES_DIALOG (object)); if (priv->gapp) g_application_release (priv->gapp); } static void g_paste_gtk_preferences_dialog_class_init (GPasteGtkPreferencesDialogClass *klass) { G_OBJECT_CLASS (klass)->finalize = g_paste_gtk_preferences_dialog_finalize; } static void g_paste_gtk_preferences_dialog_init (GPasteGtkPreferencesDialog *self) { AdwPreferencesDialog *win = ADW_PREFERENCES_DIALOG (self); g_autoptr (GPasteGtkPreferencesManager) manager = g_paste_gtk_preferences_manager_new (); adw_preferences_dialog_add (win, ADW_PREFERENCES_PAGE (g_paste_gtk_preferences_behaviour_page_new (manager))); adw_preferences_dialog_add (win, ADW_PREFERENCES_PAGE (g_paste_gtk_preferences_history_settings_page_new (manager))); adw_preferences_dialog_add (win, ADW_PREFERENCES_PAGE (g_paste_gtk_preferences_images_page_new (manager))); adw_preferences_dialog_add (win, ADW_PREFERENCES_PAGE (g_paste_gtk_preferences_shortcuts_page_new (manager))); } /** * g_paste_gtk_preferences_dialog_new: * @gapp: a #GApplication instance * * Create a new instance of #GPasteGtkPreferencesDialog * * Returns: (nullable): a newly allocated #GPasteGtkPreferencesDialog * free it with g_object_unref */ G_PASTE_VISIBLE AdwDialog * g_paste_gtk_preferences_dialog_new (GApplication *gapp) { GPasteGtkPreferencesDialog *self = g_object_new (G_PASTE_TYPE_GTK_PREFERENCES_DIALOG, NULL); GPasteGtkPreferencesDialogPrivate *priv = g_paste_gtk_preferences_dialog_get_instance_private (self); if (gapp) g_application_hold (gapp); priv->gapp = gapp; return ADW_DIALOG (self); } Keruspe-GPaste-724def1/src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-dialog.h000066400000000000000000000011521521206431300275710ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #if !defined (__G_PASTE_GTK4_H_INSIDE__) && !defined (G_PASTE_COMPILATION) #error "Only can be included directly." #endif #pragma once #include G_BEGIN_DECLS #define G_PASTE_TYPE_GTK_PREFERENCES_DIALOG (g_paste_gtk_preferences_dialog_get_type ()) G_PASTE_GTK_FINAL_TYPE (PreferencesDialog, preferences_dialog, PREFERENCES_DIALOG, AdwPreferencesDialog) AdwDialog *g_paste_gtk_preferences_dialog_new (GApplication *gapp); G_END_DECLS Keruspe-GPaste-724def1/src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-group.c000066400000000000000000000254151521206431300274710ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #include struct _GPasteGtkPreferencesGroup { AdwPreferencesGroup parent_instance; }; typedef struct { GSList *callback_data; } GPasteGtkPreferencesGroupPrivate; G_PASTE_GTK_DEFINE_TYPE_WITH_PRIVATE (PreferencesGroup, preferences_group, ADW_TYPE_PREFERENCES_GROUP) #define CALLBACK_DATA(w) \ GPasteGtkPreferencesGroupPrivate *priv = g_paste_gtk_preferences_group_get_instance_private (self); \ _CallbackDataWrapper *_data = g_new0 (_CallbackDataWrapper, 1); \ CallbackDataWrapper *data = (CallbackDataWrapper *) _data; \ priv->callback_data = g_slist_prepend (priv->callback_data, _data); \ _data->widget = G_OBJECT (w); \ data->callback = G_CALLBACK (on_value_changed); \ data->reset_cb = on_reset; \ data->settings = settings; #define G_PASTE_CALLBACK(cb_type) \ CallbackDataWrapper *data = (CallbackDataWrapper *) user_data; \ ((cb_type) data->callback) #define G_PASTE_RESET_CALLBACK() \ CallbackDataWrapper *data = (CallbackDataWrapper *) user_data; \ (data->reset_cb) typedef struct { GCallback callback; GPasteGtkResetCallback reset_cb; GPasteSettings *settings; } CallbackDataWrapper; enum { C_W_ACTION, C_W_RESET, C_W_LAST_SIGNAL }; typedef struct { CallbackDataWrapper wrap; GObject *widget; GtkWidget *reset_widget; guint64 c_signals[C_W_LAST_SIGNAL]; } _CallbackDataWrapper; static void boolean_wrapper (GObject *object, GParamSpec *pspec G_GNUC_UNUSED, gpointer user_data) { G_PASTE_CALLBACK (GPasteGtkBooleanCallback) (data->settings, adw_switch_row_get_active (ADW_SWITCH_ROW (object))); } static gboolean g_paste_gtk_preferences_group_on_reset_clicked (GtkWidget *widget G_GNUC_UNUSED, gpointer user_data) { G_PASTE_RESET_CALLBACK () (data->settings); return FALSE; } static GtkWidget * g_paste_gtk_preferences_group_make_reset_button (_CallbackDataWrapper *data) { GtkWidget *reset_widget = data->reset_widget = gtk_button_new_from_icon_name ("edit-delete-symbolic"); data->c_signals[C_W_RESET] = g_signal_connect (reset_widget, "clicked", G_CALLBACK (g_paste_gtk_preferences_group_on_reset_clicked), data); if (!((CallbackDataWrapper *) data)->reset_cb) gtk_widget_set_sensitive (reset_widget, FALSE); gtk_widget_set_valign (reset_widget, GTK_ALIGN_CENTER); return data->reset_widget; } /** * g_paste_gtk_preferences_group_add_boolean_setting: * @self: a #GPasteGtkPreferencesGroup instance * @label: the label to display * @value: the deafault value * @on_value_changed: (scope notified): the callback to call when the value changes * @on_reset: (scope notified): the callback to call when the value is reset * @settings: a #GPasteSettings instance * * Add a new boolean settings to the current pane * * Returns: (transfer none): the #AdwSwitchRow we just added */ G_PASTE_VISIBLE AdwSwitchRow * g_paste_gtk_preferences_group_add_boolean_setting (GPasteGtkPreferencesGroup *self, const gchar *label, gboolean value, GPasteGtkBooleanCallback on_value_changed, GPasteGtkResetCallback on_reset, GPasteSettings *settings) { g_return_val_if_fail (G_PASTE_IS_GTK_PREFERENCES_GROUP (self), NULL); g_return_val_if_fail (label, NULL); g_return_val_if_fail (on_value_changed, NULL); g_return_val_if_fail (G_PASTE_IS_SETTINGS (settings), NULL); AdwSwitchRow *row = ADW_SWITCH_ROW (adw_switch_row_new ()); adw_preferences_row_set_title (ADW_PREFERENCES_ROW (row), label); adw_switch_row_set_active (row, value); CALLBACK_DATA (row); _data->c_signals[C_W_ACTION] = g_signal_connect (row, "notify::active", G_CALLBACK (boolean_wrapper), data); adw_action_row_add_suffix (ADW_ACTION_ROW (row), g_paste_gtk_preferences_group_make_reset_button (_data)); adw_preferences_group_add (ADW_PREFERENCES_GROUP (self), GTK_WIDGET (row)); return row; } static void range_wrapper (AdwSpinRow *spin_row, GParamSpec *pspec G_GNUC_UNUSED, gpointer user_data) { G_PASTE_CALLBACK (GPasteGtkRangeCallback) (data->settings, (guint64) adw_spin_row_get_value (spin_row)); } /** * g_paste_gtk_preferences_group_add_range_setting: * @self: a #GPasteGtkPreferencesGroup instance * @label: the label to display * @value: the deafault value * @min: the minimal authorized value * @max: the maximal authorized value * @step: the step between proposed values * @on_value_changed: (scope notified): the callback to call when the value changes * @on_reset: (scope notified): the callback to call when the value is reset * @settings: a #GPasteSettings instance * * Add a new range settings to the current pane * * Returns: (transfer none): the #AdwSpinRow we just added */ G_PASTE_VISIBLE AdwSpinRow * g_paste_gtk_preferences_group_add_range_setting (GPasteGtkPreferencesGroup *self, const gchar *label, gdouble value, gdouble min, gdouble max, gdouble step, GPasteGtkRangeCallback on_value_changed, GPasteGtkResetCallback on_reset, GPasteSettings *settings) { g_return_val_if_fail (G_PASTE_IS_GTK_PREFERENCES_GROUP (self), NULL); g_return_val_if_fail (label, NULL); g_return_val_if_fail (on_value_changed, NULL); g_return_val_if_fail (G_PASTE_IS_SETTINGS (settings), NULL); AdwSpinRow *row = ADW_SPIN_ROW (adw_spin_row_new_with_range (min, max, step)); adw_preferences_row_set_title (ADW_PREFERENCES_ROW (row), label); adw_spin_row_set_value (row, value); CALLBACK_DATA (row); _data->c_signals[C_W_ACTION] = g_signal_connect (row, "notify::value", G_CALLBACK (range_wrapper), data); adw_action_row_add_suffix (ADW_ACTION_ROW (row), g_paste_gtk_preferences_group_make_reset_button (_data)); adw_preferences_group_add (ADW_PREFERENCES_GROUP (self), GTK_WIDGET (row)); return row; } static void text_wrapper (GObject *object, GParamSpec *pspec G_GNUC_UNUSED, gpointer user_data) { G_PASTE_CALLBACK (GPasteGtkTextCallback) (data->settings, gtk_editable_get_text (GTK_EDITABLE (object))); } /** * g_paste_gtk_preferences_group_add_text_setting: * @self: a #GPasteGtkPreferencesGroup instance * @label: the label to display * @value: the deafault value * @on_value_changed: (scope notified): the callback to call when the value changes * @on_reset: (scope notified): the callback to call when the value is reset * @settings: a #GPasteSettings instance * * Add a new text settings to the current pane * * Returns: (transfer none): the #AdwEntryRow we just added */ G_PASTE_VISIBLE AdwEntryRow * g_paste_gtk_preferences_group_add_text_setting (GPasteGtkPreferencesGroup *self, const gchar *label, const gchar *value, GPasteGtkTextCallback on_value_changed, GPasteGtkResetCallback on_reset, GPasteSettings *settings) { g_return_val_if_fail (G_PASTE_IS_GTK_PREFERENCES_GROUP (self), NULL); g_return_val_if_fail (label, NULL); g_return_val_if_fail (value, NULL); g_return_val_if_fail (on_value_changed, NULL); g_return_val_if_fail (G_PASTE_IS_SETTINGS (settings), NULL); AdwEntryRow *row = ADW_ENTRY_ROW (adw_entry_row_new ()); adw_preferences_row_set_title (ADW_PREFERENCES_ROW (row), label); gtk_editable_set_text (GTK_EDITABLE (row), value); CALLBACK_DATA (row); _data->c_signals[C_W_ACTION] = g_signal_connect (row, "notify::text", G_CALLBACK (text_wrapper), data); if (on_reset) adw_entry_row_add_suffix (row, g_paste_gtk_preferences_group_make_reset_button (_data)); adw_preferences_group_add (ADW_PREFERENCES_GROUP (self), GTK_WIDGET (row)); return row; } static void clean_callback_data (gpointer data) { g_autofree _CallbackDataWrapper *wrap = data; g_signal_handler_disconnect (wrap->widget, wrap->c_signals[C_W_ACTION]); if (wrap->reset_widget) g_signal_handler_disconnect (wrap->reset_widget, wrap->c_signals[C_W_RESET]); } static void g_paste_gtk_preferences_group_dispose (GObject *object) { GPasteGtkPreferencesGroupPrivate *priv = g_paste_gtk_preferences_group_get_instance_private (G_PASTE_GTK_PREFERENCES_GROUP (object)); g_clear_slist (&priv->callback_data, clean_callback_data); G_OBJECT_CLASS (g_paste_gtk_preferences_group_parent_class)->dispose (object); } static void g_paste_gtk_preferences_group_class_init (GPasteGtkPreferencesGroupClass *klass) { G_OBJECT_CLASS (klass)->dispose = g_paste_gtk_preferences_group_dispose; } static void g_paste_gtk_preferences_group_init (GPasteGtkPreferencesGroup *self G_GNUC_UNUSED) { } /** * g_paste_gtk_preferences_group_new: * @title: The title of the preferences group * * Create a new instance of #GPasteGtkPreferencesGroup * * Returns: a newly allocated #GPasteGtkPreferencesGroup * free it with g_object_unref */ G_PASTE_VISIBLE GPasteGtkPreferencesGroup * g_paste_gtk_preferences_group_new (const gchar *title) { g_return_val_if_fail (title, NULL); return G_PASTE_GTK_PREFERENCES_GROUP (g_object_new (G_PASTE_TYPE_GTK_PREFERENCES_GROUP, "title", title, NULL)); } Keruspe-GPaste-724def1/src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-group.h000066400000000000000000000061321521206431300274710ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #if !defined (__G_PASTE_GTK4_H_INSIDE__) && !defined (G_PASTE_COMPILATION) #error "Only can be included directly." #endif #pragma once #include G_BEGIN_DECLS #define G_PASTE_TYPE_GTK_PREFERENCES_GROUP (g_paste_gtk_preferences_group_get_type ()) G_PASTE_GTK_FINAL_TYPE (PreferencesGroup, preferences_group, PREFERENCES_GROUP, AdwPreferencesGroup) typedef void (*GPasteGtkBooleanCallback) (GPasteSettings *settings, gboolean data); typedef void (*GPasteGtkRangeCallback) (GPasteSettings *settings, guint64 data); typedef void (*GPasteGtkTextCallback) (GPasteSettings *settings, const gchar *data); typedef void (*GPasteGtkResetCallback) (GPasteSettings *settings); AdwSwitchRow *g_paste_gtk_preferences_group_add_boolean_setting (GPasteGtkPreferencesGroup *self, const gchar *label, gboolean value, GPasteGtkBooleanCallback on_value_changed, GPasteGtkResetCallback on_reset, GPasteSettings *settings); AdwSpinRow *g_paste_gtk_preferences_group_add_range_setting (GPasteGtkPreferencesGroup *self, const gchar *label, gdouble value, gdouble min, gdouble max, gdouble step, GPasteGtkRangeCallback on_value_changed, GPasteGtkResetCallback on_reset, GPasteSettings *settings); AdwEntryRow *g_paste_gtk_preferences_group_add_text_setting (GPasteGtkPreferencesGroup *self, const gchar *label, const gchar *value, GPasteGtkTextCallback on_value_changed, GPasteGtkResetCallback on_reset, GPasteSettings *settings); GPasteGtkPreferencesGroup *g_paste_gtk_preferences_group_new (const gchar *title); G_END_DECLS Keruspe-GPaste-724def1/src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c000066400000000000000000000246411521206431300326060ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #include #include struct _GPasteGtkPreferencesHistorySettingsPage { GPasteGtkPreferencesPage parent_instance; }; typedef struct { GPasteGtkPreferencesManager *manager; AdwSpinRow *max_history_size_button; AdwSpinRow *max_memory_usage_button; AdwSpinRow *min_text_item_size_button; AdwSpinRow *max_text_item_size_button; AdwSpinRow *element_size_button; AdwSpinRow *max_displayed_history_size_button; } GPasteGtkPreferencesHistorySettingsPagePrivate; G_PASTE_GTK_DEFINE_TYPE_WITH_PRIVATE (PreferencesHistorySettingsPage, preferences_history_settings_page, G_PASTE_TYPE_GTK_PREFERENCES_PAGE) static void g_paste_gtk_preferences_history_settings_page_setting_changed (GPasteGtkPreferencesPage *self, GPasteSettings *settings, const gchar *key) { GPasteGtkPreferencesHistorySettingsPagePrivate *priv = g_paste_gtk_preferences_history_settings_page_get_instance_private (G_PASTE_GTK_PREFERENCES_HISTORY_SETTINGS_PAGE (self)); if (g_paste_str_equal (key, G_PASTE_ELEMENT_SIZE_SETTING)) adw_spin_row_set_value (priv->element_size_button, g_paste_settings_get_element_size (settings)); else if (g_paste_str_equal (key, G_PASTE_MAX_DISPLAYED_HISTORY_SIZE_SETTING)) adw_spin_row_set_value (priv->max_displayed_history_size_button, g_paste_settings_get_max_displayed_history_size (settings)); else if (g_paste_str_equal (key, G_PASTE_MAX_HISTORY_SIZE_SETTING)) adw_spin_row_set_value (priv->max_history_size_button, g_paste_settings_get_max_history_size (settings)); else if (g_paste_str_equal (key, G_PASTE_MAX_MEMORY_USAGE_SETTING)) adw_spin_row_set_value (priv->max_memory_usage_button, g_paste_settings_get_max_memory_usage (settings)); else if (g_paste_str_equal (key, G_PASTE_MAX_TEXT_ITEM_SIZE_SETTING)) adw_spin_row_set_value (priv->max_text_item_size_button, g_paste_settings_get_max_text_item_size (settings)); else if (g_paste_str_equal (key, G_PASTE_MIN_TEXT_ITEM_SIZE_SETTING)) adw_spin_row_set_value (priv->min_text_item_size_button, g_paste_settings_get_min_text_item_size (settings)); } static void g_paste_gtk_preferences_history_settings_page_dispose (GObject *object) { GPasteGtkPreferencesHistorySettingsPagePrivate *priv = g_paste_gtk_preferences_history_settings_page_get_instance_private (G_PASTE_GTK_PREFERENCES_HISTORY_SETTINGS_PAGE (object)); if (priv->manager) /* first dispose call */ { g_paste_gtk_preferences_manager_deregister (priv->manager, G_PASTE_GTK_PREFERENCES_PAGE (object)); g_clear_object (&priv->manager); } G_OBJECT_CLASS (g_paste_gtk_preferences_history_settings_page_parent_class)->dispose (object); } static void g_paste_gtk_preferences_history_settings_page_class_init (GPasteGtkPreferencesHistorySettingsPageClass *klass) { G_PASTE_GTK_PREFERENCES_PAGE_CLASS (klass)->setting_changed = g_paste_gtk_preferences_history_settings_page_setting_changed; G_OBJECT_CLASS (klass)->dispose = g_paste_gtk_preferences_history_settings_page_dispose; } static void g_paste_gtk_preferences_history_settings_page_init (GPasteGtkPreferencesHistorySettingsPage *self G_GNUC_UNUSED) { } /** * g_paste_gtk_preferences_history_settings_page_new: * @manager: a #GPasteGtkPreferencesManager instance * * Create a new instance of #GPasteGtkPreferencesHistorySettingsPage * * Returns: (nullable): a newly allocated #GPasteGtkPreferencesHistorySettingsPage * free it with g_object_unref */ G_PASTE_VISIBLE GtkWidget * g_paste_gtk_preferences_history_settings_page_new (GPasteGtkPreferencesManager *manager) { g_return_val_if_fail (G_PASTE_IS_GTK_PREFERENCES_MANAGER (manager), NULL); GPasteGtkPreferencesHistorySettingsPage *self = G_PASTE_GTK_PREFERENCES_HISTORY_SETTINGS_PAGE (g_object_new (G_PASTE_TYPE_GTK_PREFERENCES_HISTORY_SETTINGS_PAGE, "name", "history-settings", "title", _("History settings"), "icon-name", "preferences-other", NULL)); GPasteGtkPreferencesHistorySettingsPagePrivate *priv = g_paste_gtk_preferences_history_settings_page_get_instance_private (self); GPasteSettings *settings = g_paste_gtk_preferences_manager_get_settings (manager); AdwPreferencesPage *page = ADW_PREFERENCES_PAGE (self); priv->manager = g_object_ref (manager); g_paste_gtk_preferences_manager_register (manager, G_PASTE_GTK_PREFERENCES_PAGE (self)); GPasteGtkPreferencesGroup *group = g_paste_gtk_preferences_group_new (_("Resources limits")); priv->max_history_size_button = g_paste_gtk_preferences_group_add_range_setting (group, _("Max history size"), (gdouble) g_paste_settings_get_max_history_size (settings), 5, 65535, 5, g_paste_settings_set_max_history_size, g_paste_settings_reset_max_history_size, settings); priv->max_memory_usage_button = g_paste_gtk_preferences_group_add_range_setting (group, _("Max memory usage (MB)"), (gdouble) g_paste_settings_get_max_memory_usage (settings), 5, 16383, 5, g_paste_settings_set_max_memory_usage, g_paste_settings_reset_max_memory_usage, settings); adw_preferences_page_add (page, ADW_PREFERENCES_GROUP (group)); group = g_paste_gtk_preferences_group_new (_("Text limits")); priv->min_text_item_size_button = g_paste_gtk_preferences_group_add_range_setting (group, _("Min text item length"), (gdouble) g_paste_settings_get_min_text_item_size (settings), 1, 65535, 1, g_paste_settings_set_min_text_item_size, g_paste_settings_reset_min_text_item_size, settings); priv->max_text_item_size_button = g_paste_gtk_preferences_group_add_range_setting (group, _("Max text item length"), (gdouble) g_paste_settings_get_max_text_item_size (settings), 1, 2147483647, 1, g_paste_settings_set_max_text_item_size, g_paste_settings_reset_max_text_item_size, settings); adw_preferences_page_add (page, ADW_PREFERENCES_GROUP (group)); group = g_paste_gtk_preferences_group_new (_("Display settings")); priv->element_size_button = g_paste_gtk_preferences_group_add_range_setting (group, _("Max element size when displaying"), (gdouble) g_paste_settings_get_element_size (settings), 0, 511, 5, g_paste_settings_set_element_size, g_paste_settings_reset_element_size, settings); priv->max_displayed_history_size_button = g_paste_gtk_preferences_group_add_range_setting (group, _("Max displayed history size"), (gdouble) g_paste_settings_get_max_displayed_history_size (settings), 10, 255, 5, g_paste_settings_set_max_displayed_history_size, g_paste_settings_reset_max_displayed_history_size, settings); adw_preferences_page_add (page, ADW_PREFERENCES_GROUP (group)); return GTK_WIDGET (self); } Keruspe-GPaste-724def1/src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.h000066400000000000000000000013451521206431300326070ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #if !defined (__G_PASTE_GTK4_H_INSIDE__) && !defined (G_PASTE_COMPILATION) #error "Only can be included directly." #endif #pragma once #include G_BEGIN_DECLS #define G_PASTE_TYPE_GTK_PREFERENCES_HISTORY_SETTINGS_PAGE (g_paste_gtk_preferences_history_settings_page_get_type ()) G_PASTE_GTK_FINAL_TYPE (PreferencesHistorySettingsPage, preferences_history_settings_page, PREFERENCES_HISTORY_SETTINGS_PAGE, GPasteGtkPreferencesPage) GtkWidget *g_paste_gtk_preferences_history_settings_page_new (GPasteGtkPreferencesManager *manager); G_END_DECLS Keruspe-GPaste-724def1/src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.c000066400000000000000000000145751521206431300305210ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #include #include struct _GPasteGtkPreferencesImagesPage { GPasteGtkPreferencesPage parent_instance; }; typedef struct { GPasteGtkPreferencesManager *manager; AdwSwitchRow *images_support_switch; AdwSwitchRow *images_preview_switch; AdwSpinRow *images_preview_size_button; } GPasteGtkPreferencesImagesPagePrivate; G_PASTE_GTK_DEFINE_TYPE_WITH_PRIVATE (PreferencesImagesPage, preferences_images_page, G_PASTE_TYPE_GTK_PREFERENCES_PAGE) static void g_paste_gtk_preferences_images_page_setting_changed (GPasteGtkPreferencesPage *self, GPasteSettings *settings, const gchar *key) { GPasteGtkPreferencesImagesPagePrivate *priv = g_paste_gtk_preferences_images_page_get_instance_private (G_PASTE_GTK_PREFERENCES_IMAGES_PAGE (self)); if (g_paste_str_equal (key, G_PASTE_IMAGES_SUPPORT_SETTING)) adw_switch_row_set_active (priv->images_support_switch, g_paste_settings_get_images_support (settings)); else if (g_paste_str_equal (key, G_PASTE_IMAGES_PREVIEW_SETTING)) adw_switch_row_set_active (priv->images_preview_switch, g_paste_settings_get_images_preview (settings)); else if (g_paste_str_equal (key, G_PASTE_IMAGES_PREVIEW_SIZE_SETTING)) adw_spin_row_set_value (priv->images_preview_size_button, g_paste_settings_get_images_preview_size (settings)); } static void g_paste_gtk_preferences_images_page_dispose (GObject *object) { GPasteGtkPreferencesImagesPagePrivate *priv = g_paste_gtk_preferences_images_page_get_instance_private (G_PASTE_GTK_PREFERENCES_IMAGES_PAGE (object)); if (priv->manager) /* first dispose call */ { g_paste_gtk_preferences_manager_deregister (priv->manager, G_PASTE_GTK_PREFERENCES_PAGE (object)); g_clear_object (&priv->manager); } G_OBJECT_CLASS (g_paste_gtk_preferences_images_page_parent_class)->dispose (object); } static void g_paste_gtk_preferences_images_page_class_init (GPasteGtkPreferencesImagesPageClass *klass) { G_PASTE_GTK_PREFERENCES_PAGE_CLASS (klass)->setting_changed = g_paste_gtk_preferences_images_page_setting_changed; G_OBJECT_CLASS (klass)->dispose = g_paste_gtk_preferences_images_page_dispose; } static void g_paste_gtk_preferences_images_page_init (GPasteGtkPreferencesImagesPage *self G_GNUC_UNUSED) { } /** * g_paste_gtk_preferences_images_page_new: * @manager: a #GPasteGtkPreferencesManager instance * * Create a new instance of #GPasteGtkPreferencesImagesPage * * Returns: (nullable): a newly allocated #GPasteGtkPreferencesImagesPage * free it with g_object_unref */ G_PASTE_VISIBLE GtkWidget * g_paste_gtk_preferences_images_page_new (GPasteGtkPreferencesManager *manager) { g_return_val_if_fail (G_PASTE_IS_GTK_PREFERENCES_MANAGER (manager), NULL); GPasteGtkPreferencesImagesPage *self = G_PASTE_GTK_PREFERENCES_IMAGES_PAGE (g_object_new (G_PASTE_TYPE_GTK_PREFERENCES_IMAGES_PAGE, "name", "images", "title", _("Images settings"), "icon-name", "image-x-generic", NULL)); GPasteGtkPreferencesImagesPagePrivate *priv = g_paste_gtk_preferences_images_page_get_instance_private (self); GPasteSettings *settings = g_paste_gtk_preferences_manager_get_settings (manager); AdwPreferencesPage *page = ADW_PREFERENCES_PAGE (self); priv->manager = g_object_ref (manager); g_paste_gtk_preferences_manager_register (manager, G_PASTE_GTK_PREFERENCES_PAGE (self)); GPasteGtkPreferencesGroup *group = g_paste_gtk_preferences_group_new (_("Images settings")); priv->images_support_switch = g_paste_gtk_preferences_group_add_boolean_setting (group, _("Images support"), g_paste_settings_get_images_support (settings), g_paste_settings_set_images_support, g_paste_settings_reset_images_support, settings); priv->images_preview_switch = g_paste_gtk_preferences_group_add_boolean_setting (group, _("Image previews"), g_paste_settings_get_images_preview (settings), g_paste_settings_set_images_preview, g_paste_settings_reset_images_preview, settings); priv->images_preview_size_button = g_paste_gtk_preferences_group_add_range_setting (group, _("Preview size"), (gdouble) g_paste_settings_get_images_preview_size (settings), 50, 400, 10, g_paste_settings_set_images_preview_size, g_paste_settings_reset_images_preview_size, settings); adw_preferences_page_add (page, ADW_PREFERENCES_GROUP (group)); return GTK_WIDGET (self); } Keruspe-GPaste-724def1/src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-images-page.h000066400000000000000000000012521521206431300305120ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #if !defined (__G_PASTE_GTK4_H_INSIDE__) && !defined (G_PASTE_COMPILATION) #error "Only can be included directly." #endif #pragma once #include G_BEGIN_DECLS #define G_PASTE_TYPE_GTK_PREFERENCES_IMAGES_PAGE (g_paste_gtk_preferences_images_page_get_type ()) G_PASTE_GTK_FINAL_TYPE (PreferencesImagesPage, preferences_images_page, PREFERENCES_IMAGES_PAGE, GPasteGtkPreferencesPage) GtkWidget *g_paste_gtk_preferences_images_page_new (GPasteGtkPreferencesManager *manager); G_END_DECLS Keruspe-GPaste-724def1/src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-manager.c000066400000000000000000000114771521206431300277520ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #include struct _GPasteGtkPreferencesManager { GObject parent_instance; }; typedef struct { GPasteSettings *settings; GSignalGroup *settings_signals; GSList *pages; } GPasteGtkPreferencesManagerPrivate; G_PASTE_GTK_DEFINE_TYPE_WITH_PRIVATE (PreferencesManager, preferences_manager, G_TYPE_OBJECT) /** * g_paste_gtk_preferences_manager_get_settings: * @self: a #GPasteGtkPreferencesManager instance * * Returns the #GPasteSettings instance manager by @self * * Returns: (nullable) (transfer none): the #GPasteSettings instance */ G_PASTE_VISIBLE GPasteSettings * g_paste_gtk_preferences_manager_get_settings (GPasteGtkPreferencesManager *self) { g_return_val_if_fail (G_PASTE_IS_GTK_PREFERENCES_MANAGER (self), NULL); GPasteGtkPreferencesManagerPrivate *priv = g_paste_gtk_preferences_manager_get_instance_private (self); return priv->settings; } /** * g_paste_gtk_preferences_manager_register: * @self: a #GPasteGtkPreferencesManager instance * @page: a #GPasteGtkPreferencesPage instance * * Register the page in the manager to notify for settings changes */ G_PASTE_VISIBLE void g_paste_gtk_preferences_manager_register (GPasteGtkPreferencesManager *self, GPasteGtkPreferencesPage *page) { g_return_if_fail (G_PASTE_IS_GTK_PREFERENCES_MANAGER (self)); g_return_if_fail (G_PASTE_IS_GTK_PREFERENCES_PAGE (page)); GPasteGtkPreferencesManagerPrivate *priv = g_paste_gtk_preferences_manager_get_instance_private (self); priv->pages = g_slist_prepend (priv->pages, page); } /** * g_paste_gtk_preferences_manager_deregister: * @self: a #GPasteGtkPreferencesManager instance * @page: a #GPasteGtkPreferencesPage instance * * Deregister the page from the manager */ G_PASTE_VISIBLE void g_paste_gtk_preferences_manager_deregister (GPasteGtkPreferencesManager *self, GPasteGtkPreferencesPage *page) { g_return_if_fail (G_PASTE_IS_GTK_PREFERENCES_MANAGER (self)); g_return_if_fail (G_PASTE_IS_GTK_PREFERENCES_PAGE (page)); GPasteGtkPreferencesManagerPrivate *priv = g_paste_gtk_preferences_manager_get_instance_private (self); priv->pages = g_slist_remove (priv->pages, page); } static void g_paste_gtk_preferences_manager_setting_changed (GPasteSettings *settings, const gchar *key, gpointer user_data) { GPasteGtkPreferencesManagerPrivate *priv = user_data; for (GSList *page = priv->pages; page; page = g_slist_next (page)) g_paste_gtk_preferences_page_setting_changed (G_PASTE_GTK_PREFERENCES_PAGE (page->data), settings, key); } static void g_paste_gtk_preferences_manager_dispose (GObject *object) { GPasteGtkPreferencesManagerPrivate *priv = g_paste_gtk_preferences_manager_get_instance_private (G_PASTE_GTK_PREFERENCES_MANAGER (object)); g_clear_object (&priv->settings_signals); g_clear_object (&priv->settings); G_OBJECT_CLASS (g_paste_gtk_preferences_manager_parent_class)->dispose (object); } static void g_paste_gtk_preferences_manager_finalize (GObject *object) { GPasteGtkPreferencesManagerPrivate *priv = g_paste_gtk_preferences_manager_get_instance_private (G_PASTE_GTK_PREFERENCES_MANAGER (object)); g_slist_free (priv->pages); G_OBJECT_CLASS (g_paste_gtk_preferences_manager_parent_class)->finalize (object); } static void g_paste_gtk_preferences_manager_class_init (GPasteGtkPreferencesManagerClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); object_class->dispose = g_paste_gtk_preferences_manager_dispose; object_class->finalize = g_paste_gtk_preferences_manager_finalize; } static void g_paste_gtk_preferences_manager_init (GPasteGtkPreferencesManager *self) { GPasteGtkPreferencesManagerPrivate *priv = g_paste_gtk_preferences_manager_get_instance_private (self); priv->settings = g_paste_settings_new (); GSignalGroup *settings_signals = priv->settings_signals = g_signal_group_new (G_PASTE_TYPE_SETTINGS); g_signal_group_connect (settings_signals, "changed", G_CALLBACK (g_paste_gtk_preferences_manager_setting_changed), priv); g_signal_group_set_target (settings_signals, priv->settings); } /** * g_paste_gtk_preferences_manager_new: * * Create a new instance of #GPasteGtkPreferencesManager * * Returns: (nullable): a newly allocated #GPasteGtkPreferencesManager * free it with g_object_unref */ G_PASTE_VISIBLE GPasteGtkPreferencesManager * g_paste_gtk_preferences_manager_new (void) { return G_PASTE_GTK_PREFERENCES_MANAGER (g_object_new (G_PASTE_TYPE_GTK_PREFERENCES_MANAGER, NULL)); } Keruspe-GPaste-724def1/src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-manager.h000066400000000000000000000020441521206431300277450ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #if !defined (__G_PASTE_GTK4_H_INSIDE__) && !defined (G_PASTE_COMPILATION) #error "Only can be included directly." #endif #pragma once #include G_BEGIN_DECLS #define G_PASTE_TYPE_GTK_PREFERENCES_MANAGER (g_paste_gtk_preferences_manager_get_type ()) G_PASTE_GTK_FINAL_TYPE (PreferencesManager, preferences_manager, PREFERENCES_MANAGER, GObject) GPasteSettings *g_paste_gtk_preferences_manager_get_settings (GPasteGtkPreferencesManager *self); void g_paste_gtk_preferences_manager_register (GPasteGtkPreferencesManager *self, GPasteGtkPreferencesPage *page); void g_paste_gtk_preferences_manager_deregister (GPasteGtkPreferencesManager *self, GPasteGtkPreferencesPage *page); GPasteGtkPreferencesManager *g_paste_gtk_preferences_manager_new (void); G_END_DECLS Keruspe-GPaste-724def1/src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-page.c000066400000000000000000000024371521206431300272500ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #include G_PASTE_GTK_DEFINE_TYPE (PreferencesPage, preferences_page, ADW_TYPE_PREFERENCES_PAGE) /** * g_paste_gtk_preferences_page_setting_changed: * @self: a #GPasteGtkPreferencesPage instance * @settings: a #GPasteSettings instance * @key: the settings key that just changed * * Apply changes related to the update of one setting */ G_PASTE_VISIBLE void g_paste_gtk_preferences_page_setting_changed (GPasteGtkPreferencesPage *self, GPasteSettings *settings, const gchar *key) { g_return_if_fail (G_PASTE_IS_GTK_PREFERENCES_PAGE (self)); g_return_if_fail (G_PASTE_IS_SETTINGS (settings)); g_return_if_fail (key); GPasteGtkPreferencesPageClass *klass = G_PASTE_GTK_PREFERENCES_PAGE_GET_CLASS (self); if (klass->setting_changed) klass->setting_changed (self, settings, key); } static void g_paste_gtk_preferences_page_class_init (GPasteGtkPreferencesPageClass *klass G_GNUC_UNUSED) { } static void g_paste_gtk_preferences_page_init (GPasteGtkPreferencesPage *self G_GNUC_UNUSED) { } Keruspe-GPaste-724def1/src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-page.h000066400000000000000000000021061521206431300272460ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #if !defined (__G_PASTE_GTK4_H_INSIDE__) && !defined (G_PASTE_COMPILATION) #error "Only can be included directly." #endif #pragma once #include G_BEGIN_DECLS #define G_PASTE_TYPE_GTK_PREFERENCES_PAGE (g_paste_gtk_preferences_page_get_type ()) G_PASTE_GTK_DERIVABLE_TYPE (PreferencesPage, preferences_page, PREFERENCES_PAGE, AdwPreferencesPage) struct _GPasteGtkPreferencesPageClass { AdwPreferencesPageClass parent_class; /*< pure virtual >*/ void (*setting_changed) (GPasteGtkPreferencesPage *self, GPasteSettings *settings, const gchar *key); }; void g_paste_gtk_preferences_page_setting_changed (GPasteGtkPreferencesPage *self, GPasteSettings *settings, const gchar *key); G_END_DECLS Keruspe-GPaste-724def1/src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c000066400000000000000000000261011521206431300312760ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #include #include struct _GPasteGtkPreferencesShortcutsPage { GPasteGtkPreferencesPage parent_instance; }; typedef struct { GPasteGtkPreferencesManager *manager; AdwEntryRow *launch_ui_entry; AdwEntryRow *show_history_entry; AdwEntryRow *make_password_entry; AdwEntryRow *upload_entry; AdwEntryRow *pop_entry; AdwEntryRow *sync_clipboard_to_primary_entry; AdwEntryRow *sync_primary_to_clipboard_entry; } GPasteGtkPreferencesShortcutsPagePrivate; G_PASTE_GTK_DEFINE_TYPE_WITH_PRIVATE (PreferencesShortcutsPage, preferences_shortcuts_page, G_PASTE_TYPE_GTK_PREFERENCES_PAGE) static void g_paste_gtk_preferences_shortcuts_page_setting_changed (GPasteGtkPreferencesPage *self, GPasteSettings *settings, const gchar *key) { GPasteGtkPreferencesShortcutsPagePrivate *priv = g_paste_gtk_preferences_shortcuts_page_get_instance_private (G_PASTE_GTK_PREFERENCES_SHORTCUTS_PAGE (self)); AdwEntryRow *entry = NULL; const gchar *value = NULL; if (g_paste_str_equal (key, G_PASTE_LAUNCH_UI_SETTING)) { entry = priv->launch_ui_entry; value = g_paste_settings_get_launch_ui (settings); } else if (g_paste_str_equal (key, G_PASTE_MAKE_PASSWORD_SETTING)) { entry = priv->make_password_entry; value = g_paste_settings_get_make_password (settings); } else if (g_paste_str_equal (key, G_PASTE_POP_SETTING)) { entry = priv->pop_entry; value = g_paste_settings_get_pop (settings); } else if (g_paste_str_equal (key, G_PASTE_SHOW_HISTORY_SETTING)) { entry = priv->show_history_entry; value = g_paste_settings_get_show_history (settings); } else if (g_paste_str_equal (key, G_PASTE_SYNC_CLIPBOARD_TO_PRIMARY_SETTING)) { entry = priv->sync_clipboard_to_primary_entry; value = g_paste_settings_get_sync_clipboard_to_primary (settings); } else if (g_paste_str_equal (key, G_PASTE_SYNC_PRIMARY_TO_CLIPBOARD_SETTING)) { entry = priv->sync_primary_to_clipboard_entry; value = g_paste_settings_get_sync_primary_to_clipboard (settings); } else if (g_paste_str_equal (key, G_PASTE_UPLOAD_SETTING)) { entry = priv->upload_entry; value = g_paste_settings_get_upload (settings); } /* Guard against the notify::text → setter → GSettings changed → setting_changed → set_text signal loop */ if (entry && !g_paste_str_equal (gtk_editable_get_text (GTK_EDITABLE (entry)), value)) gtk_editable_set_text (GTK_EDITABLE (entry), value); } static void g_paste_gtk_preferences_shortcuts_page_dispose (GObject *object) { GPasteGtkPreferencesShortcutsPagePrivate *priv = g_paste_gtk_preferences_shortcuts_page_get_instance_private (G_PASTE_GTK_PREFERENCES_SHORTCUTS_PAGE (object)); if (priv->manager) /* first dispose call */ { g_paste_gtk_preferences_manager_deregister (priv->manager, G_PASTE_GTK_PREFERENCES_PAGE (object)); g_clear_object (&priv->manager); } G_OBJECT_CLASS (g_paste_gtk_preferences_shortcuts_page_parent_class)->dispose (object); } static void g_paste_gtk_preferences_shortcuts_page_class_init (GPasteGtkPreferencesShortcutsPageClass *klass) { G_PASTE_GTK_PREFERENCES_PAGE_CLASS (klass)->setting_changed = g_paste_gtk_preferences_shortcuts_page_setting_changed; G_OBJECT_CLASS (klass)->dispose = g_paste_gtk_preferences_shortcuts_page_dispose; } static void g_paste_gtk_preferences_shortcuts_page_init (GPasteGtkPreferencesShortcutsPage *self G_GNUC_UNUSED) { } /** * g_paste_gtk_preferences_shortcuts_page_new: * @manager: a #GPasteGtkPreferencesManager instance * * Create a new instance of #GPasteGtkPreferencesShortcutsPage * * Returns: (nullable): a newly allocated #GPasteGtkPreferencesShortcutsPage * free it with g_object_unref */ G_PASTE_VISIBLE GtkWidget * g_paste_gtk_preferences_shortcuts_page_new (GPasteGtkPreferencesManager *manager) { g_return_val_if_fail (G_PASTE_IS_GTK_PREFERENCES_MANAGER (manager), NULL); GPasteGtkPreferencesShortcutsPage *self = G_PASTE_GTK_PREFERENCES_SHORTCUTS_PAGE (g_object_new (G_PASTE_TYPE_GTK_PREFERENCES_SHORTCUTS_PAGE, "name", "shortcuts", "title", _("Keyboard shortcuts"), "icon-name", "preferences-desktop-keyboard-shortcuts", NULL)); GPasteGtkPreferencesShortcutsPagePrivate *priv = g_paste_gtk_preferences_shortcuts_page_get_instance_private (self); GPasteSettings *settings = g_paste_gtk_preferences_manager_get_settings (manager); AdwPreferencesPage *page = ADW_PREFERENCES_PAGE (self); priv->manager = g_object_ref (manager); g_paste_gtk_preferences_manager_register (manager, G_PASTE_GTK_PREFERENCES_PAGE (self)); GPasteGtkPreferencesGroup *group = g_paste_gtk_preferences_group_new (_("History access")); /* translators: Keyboard shortcut to launch the graphical tool */ priv->launch_ui_entry = g_paste_gtk_preferences_group_add_text_setting (group, _("Launch the graphical tool"), g_paste_settings_get_launch_ui (settings), g_paste_settings_set_launch_ui, g_paste_settings_reset_launch_ui, settings); /* translators: Keyboard shortcut to display the history */ priv->show_history_entry = g_paste_gtk_preferences_group_add_text_setting (group, _("Display the history"), g_paste_settings_get_show_history (settings), g_paste_settings_set_show_history, g_paste_settings_reset_show_history, settings); adw_preferences_page_add (page, ADW_PREFERENCES_GROUP (group)); group = g_paste_gtk_preferences_group_new (_("Active element manipulation")); /* translators: Keyboard shortcut to mark the active item as being a password */ priv->make_password_entry = g_paste_gtk_preferences_group_add_text_setting (group, _("Mark the active item as being a password"), g_paste_settings_get_make_password (settings), g_paste_settings_set_make_password, g_paste_settings_reset_make_password, settings); /* translators: Keyboard shortcut to upload the active item from history to a pastebin service */ priv->upload_entry = g_paste_gtk_preferences_group_add_text_setting (group, _("Upload the active item to a pastebin service"), g_paste_settings_get_upload (settings), g_paste_settings_set_upload, g_paste_settings_reset_upload, settings); /* translators: Keyboard shortcut to delete the active item from history */ priv->pop_entry = g_paste_gtk_preferences_group_add_text_setting (group, _("Delete the active item from history"), g_paste_settings_get_pop (settings), g_paste_settings_set_pop, g_paste_settings_reset_pop, settings); adw_preferences_page_add (page, ADW_PREFERENCES_GROUP (group)); group = g_paste_gtk_preferences_group_new (_("Clipboards synchronization")); /* translators: Keyboard shortcut to sync the clipboard to the primary selection */ priv->sync_clipboard_to_primary_entry = g_paste_gtk_preferences_group_add_text_setting (group, _("Sync the clipboard to the primary selection"), g_paste_settings_get_sync_clipboard_to_primary (settings), g_paste_settings_set_sync_clipboard_to_primary, g_paste_settings_reset_sync_clipboard_to_primary, settings); /* translators: Keyboard shortcut to sync the primary selection to the clipboard */ priv->sync_primary_to_clipboard_entry = g_paste_gtk_preferences_group_add_text_setting (group, _("Sync the primary selection to the clipboard"), g_paste_settings_get_sync_primary_to_clipboard (settings), g_paste_settings_set_sync_primary_to_clipboard, g_paste_settings_reset_sync_primary_to_clipboard, settings); adw_preferences_page_add (page, ADW_PREFERENCES_GROUP (group)); return GTK_WIDGET (self); } Keruspe-GPaste-724def1/src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.h000066400000000000000000000012741521206431300313070ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #if !defined (__G_PASTE_GTK4_H_INSIDE__) && !defined (G_PASTE_COMPILATION) #error "Only can be included directly." #endif #pragma once #include G_BEGIN_DECLS #define G_PASTE_TYPE_GTK_PREFERENCES_SHORTCUTS_PAGE (g_paste_gtk_preferences_shortcuts_page_get_type ()) G_PASTE_GTK_FINAL_TYPE (PreferencesShortcutsPage, preferences_shortcuts_page, PREFERENCES_SHORTCUTS_PAGE, GPasteGtkPreferencesPage) GtkWidget *g_paste_gtk_preferences_shortcuts_page_new (GPasteGtkPreferencesManager *manager); G_END_DECLS Keruspe-GPaste-724def1/src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-widget.c000066400000000000000000000045151521206431300276160ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #include #include #include #include #include struct _GPasteGtkPreferencesWidget { AdwBin parent_instance; }; G_PASTE_GTK_DEFINE_TYPE (PreferencesWidget, preferences_widget, ADW_TYPE_BIN) static void g_paste_gtk_preferences_widget_class_init (GPasteGtkPreferencesWidgetClass *klass G_GNUC_UNUSED) { } static void add_page (AdwViewStack *s, GtkWidget *page) { AdwPreferencesPage *p = ADW_PREFERENCES_PAGE (page); AdwViewStackPage *asp = adw_view_stack_add_titled (s, page, adw_preferences_page_get_name (p), adw_preferences_page_get_title (p)); adw_view_stack_page_set_icon_name (asp, adw_preferences_page_get_icon_name (p)); } static void g_paste_gtk_preferences_widget_init (GPasteGtkPreferencesWidget *self) { AdwBin *bin = ADW_BIN (self); GtkWidget *box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); GtkBox *b = GTK_BOX (box); g_autoptr (GPasteGtkPreferencesManager) manager = g_paste_gtk_preferences_manager_new (); GtkWidget *stack = adw_view_stack_new (); AdwViewStack *s = ADW_VIEW_STACK (stack); GtkWidget *switcher = GTK_WIDGET (g_object_new (ADW_TYPE_VIEW_SWITCHER, "stack", stack, "policy", ADW_VIEW_SWITCHER_POLICY_WIDE, NULL)); add_page (s, g_paste_gtk_preferences_behaviour_page_new (manager)); add_page (s, g_paste_gtk_preferences_history_settings_page_new (manager)); add_page (s, g_paste_gtk_preferences_images_page_new (manager)); add_page (s, g_paste_gtk_preferences_shortcuts_page_new (manager)); gtk_box_append (b, switcher); gtk_box_append (b, stack); adw_bin_set_child (bin, box); } /** * g_paste_gtk_preferences_widget_new: * * Create a new instance of #GPasteGtkPreferencesWidget * * Returns: (nullable): a newly allocated #GPasteGtkPreferencesWidget * free it with g_object_unref */ G_PASTE_VISIBLE GtkWidget * g_paste_gtk_preferences_widget_new (void) { return GTK_WIDGET (g_object_new (G_PASTE_TYPE_GTK_PREFERENCES_WIDGET, NULL)); } Keruspe-GPaste-724def1/src/libgpaste/gpaste-gtk4/gpaste-gtk-preferences-widget.h000066400000000000000000000011161521206431300276150ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #if !defined (__G_PASTE_GTK4_H_INSIDE__) && !defined (G_PASTE_COMPILATION) #error "Only can be included directly." #endif #pragma once #include G_BEGIN_DECLS #define G_PASTE_TYPE_GTK_PREFERENCES_WIDGET (g_paste_gtk_preferences_widget_get_type ()) G_PASTE_GTK_FINAL_TYPE (PreferencesWidget, preferences_widget, PREFERENCES_WIDGET, AdwBin) GtkWidget *g_paste_gtk_preferences_widget_new (void); G_END_DECLS Keruspe-GPaste-724def1/src/libgpaste/gpaste-gtk4/gpaste-gtk-util.c000066400000000000000000000121541521206431300250070ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #include #include typedef struct { GPasteGtkConfirmDialogCallback callback; gpointer user_data; } GPasteGtkConfirmDialogCallbackData; static void on_confirm_response (GObject *dialog, GAsyncResult *result, gpointer user_data) { g_autofree GPasteGtkConfirmDialogCallbackData *data = user_data; const gchar *response = adw_alert_dialog_choose_finish (ADW_ALERT_DIALOG (dialog), result); data->callback (g_strcmp0 (response, "confirm") == 0, data->user_data); } /** * g_paste_gtk_util_confirm_dialog: * @parent: (nullable): the parent #GtkWindow * @action: the label for the confirm button * @msg: the message to display * @on_confirmation: (closure user_data) (scope notified): handler to invoke when we get a confirmation * * Ask the user for confirmation */ G_PASTE_VISIBLE void g_paste_gtk_util_confirm_dialog (GtkWindow *parent, const gchar *action, const gchar *msg, GPasteGtkConfirmDialogCallback on_confirmation, gpointer user_data) { g_return_if_fail (!parent || GTK_IS_WINDOW (parent)); g_return_if_fail (action); g_return_if_fail (g_utf8_validate (msg, -1, NULL)); g_return_if_fail (on_confirmation); GPasteGtkConfirmDialogCallbackData *data = g_new (GPasteGtkConfirmDialogCallbackData, 1); AdwAlertDialog *dialog = ADW_ALERT_DIALOG (adw_alert_dialog_new (PACKAGE_STRING, msg)); data->callback = on_confirmation; data->user_data = user_data; adw_alert_dialog_add_responses (dialog, "cancel", _("Cancel"), "confirm", action, NULL); adw_alert_dialog_set_response_appearance (dialog, "confirm", ADW_RESPONSE_DESTRUCTIVE); adw_alert_dialog_choose (dialog, GTK_WIDGET (parent), NULL, on_confirm_response, data); } /** * g_paste_gtk_util_compute_checksum: * @image: the #GdkTexture to checksum * * Compute the checksum of an image * * Returns: the newly allocated checksum */ G_PASTE_VISIBLE gchar * g_paste_gtk_util_compute_checksum (GdkTexture *image) { if (!image || !GDK_IS_TEXTURE (image)) return NULL; gsize stride = (gsize) gdk_texture_get_width (image) * 4; gsize length = stride * gdk_texture_get_height (image); g_autofree guchar *data = g_malloc (length); gdk_texture_download (image, data, stride); return g_compute_checksum_for_data (G_CHECKSUM_SHA256, data, length); } typedef struct { GPasteClient *client; gchar *history; } EmptyHistoryCallbackData; static void empty_history_callback (gboolean confirmed, gpointer user_data) { g_autofree EmptyHistoryCallbackData *data = user_data; g_autoptr (GPasteClient) client = data->client; g_autofree gchar *history = data->history; if (confirmed) g_paste_client_empty_history (client, history, NULL, NULL); } /** * g_paste_gtk_util_empty_history: * @parent_window: (nullable): the parent #GtkWindow * @client: a #GPasteClient instance * @settings: a #GPasteSettings instance * @history: the name of the history to empty * * Empty history after prompting user for confirmation */ G_PASTE_VISIBLE void g_paste_gtk_util_empty_history (GtkWindow *parent_window, GPasteClient *client, GPasteSettings *settings, const gchar *history) { g_return_if_fail (!parent_window || GTK_IS_WINDOW (parent_window)); g_return_if_fail (G_PASTE_IS_CLIENT (client)); g_return_if_fail (G_PASTE_IS_SETTINGS (settings)); g_return_if_fail (history); if (g_paste_settings_get_empty_history_confirmation (settings)) { EmptyHistoryCallbackData *data = g_new (EmptyHistoryCallbackData, 1); data->client = g_object_ref (client); data->history = g_strdup (history); /* Translators: %s is the name of the history being emptied. */ g_autofree gchar *msg = g_strdup_printf (_("Do you really want to empty \"%s\"?"), history); g_paste_gtk_util_confirm_dialog (parent_window, _("Empty"), msg, empty_history_callback, data); } else g_paste_client_empty_history (client, history, NULL, NULL); } /** * g_paste_gtk_util_show_window: * @application: a #GtkApplication * * Present the application's window to user */ G_PASTE_VISIBLE void g_paste_gtk_util_show_window (GApplication *application) { g_return_if_fail (GTK_IS_APPLICATION (application)); for (GList *wins = gtk_application_get_windows (GTK_APPLICATION (application)); wins; wins = g_list_next (wins)) { if (GTK_IS_WIDGET (wins->data) && gtk_widget_get_realized (wins->data)) gtk_window_present (wins->data); } } Keruspe-GPaste-724def1/src/libgpaste/gpaste-gtk4/gpaste-gtk-util.h000066400000000000000000000024721521206431300250160ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #if !defined (__G_PASTE_GTK4_H_INSIDE__) && !defined (G_PASTE_COMPILATION) #error "Only can be included directly." #endif #pragma once #include #include G_BEGIN_DECLS typedef void (*GPasteGtkConfirmDialogCallback) (gboolean confirmed, gpointer user_data); void g_paste_gtk_util_confirm_dialog (GtkWindow *parent, const gchar *action, const gchar *msg, GPasteGtkConfirmDialogCallback on_confirmation, gpointer user_data); gchar *g_paste_gtk_util_compute_checksum (GdkTexture *image); void g_paste_gtk_util_empty_history (GtkWindow *parent_window, GPasteClient *client, GPasteSettings *settings, const gchar *history); void g_paste_gtk_util_show_window (GApplication *application); G_END_DECLS Keruspe-GPaste-724def1/src/libgpaste/gpaste.h000066400000000000000000000016141521206431300211230ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #pragma once #define __G_PASTE_H_INSIDE__ /* Misc. macros */ #include /* GDBus utils */ #include #include #include #include /* GPasteSettings */ #include #include /* GPasteClient */ #include #include /* GPasteUtil */ #include /* GPasteKeybindingProvider */ #include /* GPasteGnomeShellClient */ #include /* GPasteScreensaverClient */ #include #undef __G_PASTE_H_INSIDE__ Keruspe-GPaste-724def1/src/libgpaste/gpaste/000077500000000000000000000000001521206431300207505ustar00rootroot00000000000000Keruspe-GPaste-724def1/src/libgpaste/gpaste/gpaste-client-item.c000066400000000000000000000046661521206431300246230ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #include struct _GPasteClientItem { GObject parent_instance; }; typedef struct { gchar *uuid; gchar *value; } GPasteClientItemPrivate; G_PASTE_DEFINE_TYPE_WITH_PRIVATE (ClientItem, client_item, G_TYPE_OBJECT) /** * g_paste_client_item_get_uuid: * @self: a #GPasteClientItem instance * * Returns the uuid of the item */ G_PASTE_VISIBLE const gchar * g_paste_client_item_get_uuid (const GPasteClientItem *self) { g_return_val_if_fail (_G_PASTE_IS_CLIENT_ITEM (self), NULL); const GPasteClientItemPrivate *priv = _g_paste_client_item_get_instance_private (self); return priv->uuid; } /** * g_paste_client_item_get_value: * @self: a #GPasteClientItem instance * * Returns the value of the item */ G_PASTE_VISIBLE const gchar * g_paste_client_item_get_value (const GPasteClientItem *self) { g_return_val_if_fail (_G_PASTE_IS_CLIENT_ITEM (self), NULL); const GPasteClientItemPrivate *priv = _g_paste_client_item_get_instance_private (self); return priv->value; } static void g_paste_client_item_finalize (GObject *object) { GPasteClientItemPrivate *priv = g_paste_client_item_get_instance_private (G_PASTE_CLIENT_ITEM (object)); g_free (priv->uuid); g_free (priv->value); G_OBJECT_CLASS (g_paste_client_item_parent_class)->finalize (object); } static void g_paste_client_item_class_init (GPasteClientItemClass *klass) { G_OBJECT_CLASS (klass)->finalize = g_paste_client_item_finalize; } static void g_paste_client_item_init (GPasteClientItem *self G_GNUC_UNUSED) { } /** * g_paste_client_item_new: * @uuid: the uuid of the item * @value: the value of the item * * Create a new instance of #GPasteClientItem * * Returns: (transfer full): a newly allocated #GPasteClientItem * free it with g_object_unref */ G_PASTE_VISIBLE GPasteClientItem * g_paste_client_item_new (const gchar *uuid, const gchar *value) { g_return_val_if_fail (g_uuid_string_is_valid (uuid), NULL); g_return_val_if_fail (g_utf8_validate (value, -1, NULL), NULL); GPasteClientItem *self = g_object_new (G_PASTE_TYPE_CLIENT_ITEM, NULL); GPasteClientItemPrivate *priv = g_paste_client_item_get_instance_private (self); priv->uuid = g_strdup (uuid); priv->value = g_strdup (value); return self; } Keruspe-GPaste-724def1/src/libgpaste/gpaste/gpaste-client-item.h000066400000000000000000000013541521206431300246170ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #if !defined (__G_PASTE_H_INSIDE__) && !defined (G_PASTE_COMPILATION) #error "Only can be included directly." #endif #pragma once #include G_BEGIN_DECLS #define G_PASTE_TYPE_CLIENT_ITEM (g_paste_client_item_get_type ()) G_PASTE_FINAL_TYPE (ClientItem, client_item, CLIENT_ITEM, GObject) const gchar *g_paste_client_item_get_uuid (const GPasteClientItem *self); const gchar *g_paste_client_item_get_value (const GPasteClientItem *self); GPasteClientItem *g_paste_client_item_new (const gchar *uuid, const gchar *value); G_END_DECLS Keruspe-GPaste-724def1/src/libgpaste/gpaste/gpaste-client.c000066400000000000000000002077521521206431300236700ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #include #include struct _GPasteClient { GDBusProxy parent_instance; }; G_PASTE_DEFINE_TYPE (Client, client, G_TYPE_DBUS_PROXY) enum { DELETE_HISTORY, EMPTY_HISTORY, SHOW_HISTORY, SWITCH_HISTORY, TRACKING, UPDATE, LAST_SIGNAL }; static guint64 signals[LAST_SIGNAL] = { 0 }; /*******************/ /* Methods / Async */ /*******************/ #define DBUS_CALL_NO_PARAM_ASYNC(method) \ DBUS_CALL_NO_PARAM_ASYNC_BASE (CLIENT, G_PASTE_DAEMON_##method) #define DBUS_CALL_ONE_PARAM_ASYNC(method, param_type, param_name) \ DBUS_CALL_ONE_PARAM_ASYNC_BASE (CLIENT, param_type, param_name, G_PASTE_DAEMON_##method) #define DBUS_CALL_ONE_PARAMV_ASYNC(method, paramv) \ DBUS_CALL_ONE_PARAMV_ASYNC_BASE (CLIENT, paramv, G_PASTE_DAEMON_##method) #define DBUS_CALL_TWO_PARAMS_ASYNC(method, params) \ DBUS_CALL_TWO_PARAMS_ASYNC_BASE (CLIENT, params, G_PASTE_DAEMON_##method) #define DBUS_CALL_THREE_PARAMS_ASYNC(method, params) \ DBUS_CALL_THREE_PARAMS_ASYNC_BASE (CLIENT, params, G_PASTE_DAEMON_##method) /****************************/ /* Methods / Async - Finish */ /****************************/ #define DBUS_ASYNC_FINISH_NO_RETURN \ DBUS_ASYNC_FINISH_NO_RETURN_BASE (CLIENT) #define DBUS_ASYNC_FINISH_RET_STRING \ DBUS_ASYNC_FINISH_RET_STRING_BASE (CLIENT) #define DBUS_ASYNC_FINISH_RET_ITEM \ DBUS_ASYNC_FINISH_RET_ITEM_BASE (CLIENT) #define DBUS_ASYNC_FINISH_RET_STRV \ DBUS_ASYNC_FINISH_RET_STRV_BASE (CLIENT) #define DBUS_ASYNC_FINISH_RET_ITEMS \ DBUS_ASYNC_FINISH_RET_ITEMS_BASE (CLIENT) #define DBUS_ASYNC_FINISH_RET_UINT64 \ DBUS_ASYNC_FINISH_RET_UINT64_BASE (CLIENT) /******************/ /* Methods / Sync */ /******************/ #define DBUS_CALL_NO_PARAM_NO_RETURN(method) \ DBUS_CALL_NO_PARAM_NO_RETURN_BASE (CLIENT, G_PASTE_DAEMON_##method) #define DBUS_CALL_NO_PARAM_RET_STRING(method) \ DBUS_CALL_NO_PARAM_RET_STRING_BASE (CLIENT, G_PASTE_DAEMON_##method) #define DBUS_CALL_NO_PARAM_RET_STRV(method) \ DBUS_CALL_NO_PARAM_RET_STRV_BASE (CLIENT, G_PASTE_DAEMON_##method) #define DBUS_CALL_NO_PARAM_RET_ITEMS(method) \ DBUS_CALL_NO_PARAM_RET_ITEMS_BASE (CLIENT, G_PASTE_DAEMON_##method) #define DBUS_CALL_ONE_PARAM_NO_RETURN(method, param_type, param_name) \ DBUS_CALL_ONE_PARAM_NO_RETURN_BASE (CLIENT, param_type, param_name, G_PASTE_DAEMON_##method) #define DBUS_CALL_ONE_PARAM_RET_UINT64(method, param_type, param_name) \ DBUS_CALL_ONE_PARAM_RET_UINT64_BASE (CLIENT, param_type, param_name, G_PASTE_DAEMON_##method) #define DBUS_CALL_ONE_PARAM_RET_STRING(method, param_type, param_name) \ DBUS_CALL_ONE_PARAM_RET_STRING_BASE (CLIENT, param_type, param_name, G_PASTE_DAEMON_##method) #define DBUS_CALL_ONE_PARAM_RET_STRV(method, param_type, param_name) \ DBUS_CALL_ONE_PARAM_RET_STRV_BASE (CLIENT, param_type, param_name, G_PASTE_DAEMON_##method) #define DBUS_CALL_ONE_PARAM_RET_ITEM(method, param_type, param_name) \ DBUS_CALL_ONE_PARAM_RET_ITEM_BASE (CLIENT, param_type, param_name, G_PASTE_DAEMON_##method) #define DBUS_CALL_ONE_PARAMV_RET_ITEMS(method, paramv) \ DBUS_CALL_ONE_PARAMV_RET_ITEMS_BASE (CLIENT, G_PASTE_DAEMON_##method, paramv) #define DBUS_CALL_TWO_PARAMS_NO_RETURN(method, params) \ DBUS_CALL_TWO_PARAMS_NO_RETURN_BASE (CLIENT, params, G_PASTE_DAEMON_##method) #define DBUS_CALL_THREE_PARAMS_NO_RETURN(method, params) \ DBUS_CALL_THREE_PARAMS_NO_RETURN_BASE (CLIENT, params, G_PASTE_DAEMON_##method) /**************/ /* Properties */ /**************/ #define DBUS_GET_BOOLEAN_PROPERTY(property) \ DBUS_GET_BOOLEAN_PROPERTY_BASE (CLIENT, G_PASTE_DAEMON_PROP_##property) #define DBUS_GET_STRING_PROPERTY(property) \ DBUS_GET_STRING_PROPERTY_BASE (CLIENT, G_PASTE_DAEMON_PROP_##property) /***********/ /* Signals */ /***********/ #define HANDLE_SIGNAL(sig) \ if (g_paste_str_equal (signal_name, G_PASTE_DAEMON_SIG_##sig)) \ { \ g_signal_emit (self, \ signals[sig], \ 0, /* detail */ \ NULL); \ } #define HANDLE_SIGNAL_WITH_DATA(sig, ans_type, get_data) \ if (g_paste_str_equal (signal_name, G_PASTE_DAEMON_SIG_##sig)) \ { \ GVariantIter params_iter; \ g_variant_iter_init (¶ms_iter, parameters); \ g_autoptr (GVariant) variant = g_variant_iter_next_value (¶ms_iter); \ ans_type answer = get_data; \ g_signal_emit (self, \ signals[sig], \ 0, /* detail */ \ answer, \ NULL); \ } #define NEW_SIGNAL(name) \ g_signal_new (name, \ G_PASTE_TYPE_CLIENT, \ G_SIGNAL_RUN_LAST, \ 0, /* class offset */ \ NULL, /* accumulator */ \ NULL, /* accumulator data */ \ g_cclosure_marshal_VOID__VOID, \ G_TYPE_NONE, \ 0) /* number of params */ #define NEW_SIGNAL_WITH_DATA(name, type) \ g_signal_new (name, \ G_PASTE_TYPE_CLIENT, \ G_SIGNAL_RUN_LAST, \ 0, /* class offset */ \ NULL, /* accumulator */ \ NULL, /* accumulator data */ \ g_cclosure_marshal_VOID__##type, \ G_TYPE_NONE, \ 1, \ G_TYPE_##type) #define NEW_SIGNAL_WITH_DATA_GENERIC(name, type) \ g_signal_new (name, \ G_PASTE_TYPE_CLIENT, \ G_SIGNAL_RUN_LAST, \ 0, /* class offset */ \ NULL, /* accumulator */ \ NULL, /* accumulator data */ \ g_cclosure_marshal_generic, \ G_TYPE_NONE, \ 1, \ G_TYPE_##type) /******************/ /* Methods / Sync */ /******************/ /** * g_paste_client_about_sync: * @self: a #GPasteClient instance * @error: a #GError * * Display the about dialog */ G_PASTE_VISIBLE void g_paste_client_about_sync (GPasteClient *self, GError **error) { DBUS_CALL_NO_PARAM_NO_RETURN (ABOUT); } /** * g_paste_client_add_sync: * @self: a #GPasteClient instance * @text: the text to add * @error: a #GError * * Add an item to the #GPasteDaemon */ G_PASTE_VISIBLE void g_paste_client_add_sync (GPasteClient *self, const gchar *text, GError **error) { DBUS_CALL_ONE_PARAM_NO_RETURN (ADD, string, text); } /** * g_paste_client_add_file_sync: * @self: a #GPasteClient instance * @file: the file to add * @error: a #GError * * Add the file contents to the #GPasteDaemon */ G_PASTE_VISIBLE void g_paste_client_add_file_sync (GPasteClient *self, const gchar *file, GError **error) { g_autofree gchar *absolute_path = NULL; if (!g_path_is_absolute (file)) { g_autofree gchar *current_dir = g_get_current_dir (); absolute_path = g_build_filename (current_dir, file, NULL); } DBUS_CALL_ONE_PARAM_NO_RETURN (ADD_FILE, string, ((absolute_path) ? absolute_path : file)); } /** * g_paste_client_add_password_sync: * @self: a #GPasteClient instance * @name: the name to identify the password to add * @password: the password to add * @error: a #GError * * Add the password to the #GPasteDaemon */ G_PASTE_VISIBLE void g_paste_client_add_password_sync (GPasteClient *self, const gchar *name, const gchar *password, GError **error) { GVariant *params[] = { g_variant_new_string (name), g_variant_new_string (password) }; DBUS_CALL_TWO_PARAMS_NO_RETURN (ADD_PASSWORD, params); } /** * g_paste_client_backup_history_sync: * @self: a #GPasteClient instance * @history: the name of the history * @backup: the name of the backup * @error: a #GError * * Backup the current history */ G_PASTE_VISIBLE void g_paste_client_backup_history_sync (GPasteClient *self, const gchar *history, const gchar *backup, GError **error) { GVariant *params[] = { g_variant_new_string (history), g_variant_new_string (backup) }; DBUS_CALL_TWO_PARAMS_NO_RETURN (BACKUP_HISTORY, params); } /** * g_paste_client_delete_sync: * @self: a #GPasteClient instance * @uuid: the uuid of the element we want to delete * @error: a #GError * * Delete an item from the #GPasteDaemon */ G_PASTE_VISIBLE void g_paste_client_delete_sync (GPasteClient *self, const gchar *uuid, GError **error) { DBUS_CALL_ONE_PARAM_NO_RETURN (DELETE, string, uuid); } /** * g_paste_client_delete_history_sync: * @self: a #GPasteClient instance * @name: the name of the history to delete * @error: a #GError * * Delete a history */ G_PASTE_VISIBLE void g_paste_client_delete_history_sync (GPasteClient *self, const gchar *name, GError **error) { DBUS_CALL_ONE_PARAM_NO_RETURN (DELETE_HISTORY, string, name); } /** * g_paste_client_delete_password_sync: * @self: a #GPasteClient instance * @name: the name of the password to delete * @error: a #GError * * Delete the password from the #GPasteDaemon */ G_PASTE_VISIBLE void g_paste_client_delete_password_sync (GPasteClient *self, const gchar *name, GError **error) { DBUS_CALL_ONE_PARAM_NO_RETURN (DELETE_PASSWORD, string, name); } /** * g_paste_client_empty_history_sync: * @self: a #GPasteClient instance * @name: the name of the history to empty * @error: a #GError * * Empty the history from the #GPasteDaemon */ G_PASTE_VISIBLE void g_paste_client_empty_history_sync (GPasteClient *self, const gchar *name, GError **error) { DBUS_CALL_ONE_PARAM_NO_RETURN (EMPTY_HISTORY, string, name); } /** * g_paste_client_get_element_sync: * @self: a #GPasteClient instance * @uuid: the uuid of the element we want to get * @error: a #GError * * Get an item from the #GPasteDaemon * * Returns: (transfer full): a newly allocated string */ G_PASTE_VISIBLE gchar * g_paste_client_get_element_sync (GPasteClient *self, const gchar *uuid, GError **error) { DBUS_CALL_ONE_PARAM_RET_STRING (GET_ELEMENT, string, uuid); } /** * g_paste_client_get_element_at_index_sync: * @self: a #GPasteClient instance * @index: the index of the element we want to get * @error: a #GError * * Get an item from the #GPasteDaemon * * Returns: (transfer full): a new #GPasteClientItem */ G_PASTE_VISIBLE GPasteClientItem * g_paste_client_get_element_at_index_sync (GPasteClient *self, guint64 index, GError **error) { DBUS_CALL_ONE_PARAM_RET_ITEM (GET_ELEMENT_AT_INDEX, uint64, index); } static gchar * _g_paste_client_get_element_kind_sync (GPasteClient *self, const gchar *uuid, GError **error) { DBUS_CALL_ONE_PARAM_RET_STRING (GET_ELEMENT_KIND, string, uuid); } /** * g_paste_client_get_element_kind_sync: * @self: a #GPasteClient instance * @uuid: the uuid of the element we want to get * @error: a #GError * * Get the kind of an item from the #GPasteDaemon * * Returns: The #GPasteItemKind */ G_PASTE_VISIBLE GPasteItemKind g_paste_client_get_element_kind_sync (GPasteClient *self, const gchar *uuid, GError **error) { g_autofree gchar *kind = _g_paste_client_get_element_kind_sync (self, uuid, error); GEnumValue *k = (kind) ? g_enum_get_value_by_nick (g_type_class_peek (G_PASTE_TYPE_ITEM_KIND), kind) : NULL; return (k) ? k->value : G_PASTE_ITEM_KIND_INVALID; } /** * g_paste_client_get_elements_sync: * @self: a #GPasteClient instance * @uuids: (array length=n_uuids): the uuids of the elements we want to get * @n_uuids: the number of uuids * @error: a #GError * * Get some items from the #GPasteDaemon * * Returns: (element-type GPasteClientItem) (transfer full): a newly allocated array of string */ G_PASTE_VISIBLE GList * g_paste_client_get_elements_sync (GPasteClient *self, const gchar **uuids, guint64 n_uuids, GError **error) { GVariant *param = g_variant_new_strv (uuids, n_uuids); DBUS_CALL_ONE_PARAMV_RET_ITEMS (GET_ELEMENTS, param); } /** * g_paste_client_get_history_sync: * @self: a #GPasteClient instance * @error: a #GError * * Get the history from the #GPasteDaemon * * Returns: (element-type GPasteClientItem) (transfer full): a newly allocated array of string */ G_PASTE_VISIBLE GList * g_paste_client_get_history_sync (GPasteClient *self, GError **error) { DBUS_CALL_NO_PARAM_RET_ITEMS (GET_HISTORY); } /** * g_paste_client_get_history_name_sync: * @self: a #GPasteClient instance * @error: a #GError * * Get the name of the history from the #GPasteDaemon * * Returns: (transfer full): a newly allocated string */ G_PASTE_VISIBLE gchar * g_paste_client_get_history_name_sync (GPasteClient *self, GError **error) { DBUS_CALL_NO_PARAM_RET_STRING (GET_HISTORY_NAME); } /** * g_paste_client_get_history_size_sync: * @self: a #GPasteClient instance * @name: the name of the history * @error: a #GError * * Get the history size from the #GPasteDaemon * * Returns: the size of the history */ G_PASTE_VISIBLE guint64 g_paste_client_get_history_size_sync (GPasteClient *self, const gchar *name, GError **error) { DBUS_CALL_ONE_PARAM_RET_UINT64 (GET_HISTORY_SIZE, string, name); } /** * g_paste_client_get_raw_element_sync: * @self: a #GPasteClient instance * @uuid: the uuid of the element we want to get * @error: a #GError * * Get an item from the #GPasteDaemon * * Returns: (transfer full): a newly allocated string */ G_PASTE_VISIBLE gchar * g_paste_client_get_raw_element_sync (GPasteClient *self, const gchar *uuid, GError **error) { DBUS_CALL_ONE_PARAM_RET_STRING (GET_RAW_ELEMENT, string, uuid); } /** * g_paste_client_get_raw_history_sync: * @self: a #GPasteClient instance * @error: a #GError * * Get the history from the #GPasteDaemon * * Returns: (element-type GPasteClientItem) (transfer full): a newly allocated array of string */ G_PASTE_VISIBLE GList * g_paste_client_get_raw_history_sync (GPasteClient *self, GError **error) { DBUS_CALL_NO_PARAM_RET_ITEMS (GET_RAW_HISTORY); } /** * g_paste_client_list_histories_sync: * @self: a #GPasteClient instance * @error: a #GError * * List all available hisotries * * Returns: (transfer full): a newly allocated array of string */ G_PASTE_VISIBLE GStrv g_paste_client_list_histories_sync (GPasteClient *self, GError **error) { DBUS_CALL_NO_PARAM_RET_STRV (LIST_HISTORIES); } /** * g_paste_client_merge_sync: * @self: a #GPasteClient instance * @decoration: (nullable): the decoration to apply to each entry * @separator: (nullable): the separator to add between each entry * @uuids: (array length=n_uuids): the uuids of the elements we want to get * @n_uuids: the number of uuids * @error: a #GError * * Merge some history entries * * If decoration is " and separator is , and entries are foo bar baz * result will be "foo","bar","baz" */ G_PASTE_VISIBLE void g_paste_client_merge_sync (GPasteClient *self, const gchar *decoration, const gchar *separator, const gchar **uuids, guint64 n_uuids, GError **error) { GVariant *params[] = { g_variant_new_string (decoration ? decoration : ""), g_variant_new_string (separator ? separator : ""), g_variant_new_strv (uuids, n_uuids) }; DBUS_CALL_THREE_PARAMS_NO_RETURN (MERGE, params); } /** * g_paste_client_on_extension_state_changed_sync: * @self: a #GPasteClient instance * @state: the new state of the extension * @error: a #GError * * Call this when the extension changes its state */ G_PASTE_VISIBLE void g_paste_client_on_extension_state_changed_sync (GPasteClient *self, gboolean state, GError **error) { DBUS_CALL_ONE_PARAM_NO_RETURN (ON_EXTENSION_STATE_CHANGED, boolean, state); } /** * g_paste_client_reexecute_sync: * @self: a #GPasteClient instance * @error: a #GError * * Reexecute the #GPasteDaemon */ G_PASTE_VISIBLE void g_paste_client_reexecute_sync (GPasteClient *self, GError **error) { DBUS_CALL_NO_PARAM_NO_RETURN (REEXECUTE); } /** * g_paste_client_rename_password_sync: * @self: a #GPasteClient instance * @old_name: the name of the password to rename * @new_name: the new name to give it * @error: a #GError * * Rename the password in the #GPasteDaemon */ G_PASTE_VISIBLE void g_paste_client_rename_password_sync (GPasteClient *self, const gchar *old_name, const gchar *new_name, GError **error) { GVariant *params[] = { g_variant_new_string (old_name), g_variant_new_string (new_name) }; DBUS_CALL_TWO_PARAMS_NO_RETURN (RENAME_PASSWORD, params); } /** * g_paste_client_replace_sync: * @self: a #GPasteClient instance * @uuid: the uuid of the element we want to replace * @contents: the replacement contents * @error: a #GError * * Replace the contents of an item */ G_PASTE_VISIBLE void g_paste_client_replace_sync (GPasteClient *self, const gchar *uuid, const gchar *contents, GError **error) { GVariant *params[] = { g_variant_new_string (uuid), g_variant_new_string (contents) }; DBUS_CALL_TWO_PARAMS_NO_RETURN (REPLACE, params); } /** * g_paste_client_search_sync: * @self: a #GPasteClient instance * @pattern: the pattern to look for in history * @error: a #GError * * Search for items matching @pattern in history * * Returns: (transfer full): The uuids of the matching items */ G_PASTE_VISIBLE GStrv g_paste_client_search_sync (GPasteClient *self, const gchar *pattern, GError **error) { DBUS_CALL_ONE_PARAM_RET_STRV (SEARCH, string, pattern); } /** * g_paste_client_select_sync: * @self: a #GPasteClient instance * @uuid: the uuid of the element we want to select * @error: a #GError * * Select an item from the #GPasteDaemon */ G_PASTE_VISIBLE void g_paste_client_select_sync (GPasteClient *self, const gchar *uuid, GError **error) { DBUS_CALL_ONE_PARAM_NO_RETURN (SELECT, string, uuid); } /** * g_paste_client_set_password_sync: * @self: a #GPasteClient instance * @uuid: the uuid of the element we want to set as password * @name: the name to identify the password * @error: a #GError * * Set the item as password */ G_PASTE_VISIBLE void g_paste_client_set_password_sync (GPasteClient *self, const gchar *uuid, const gchar *name, GError **error) { GVariant *params[] = { g_variant_new_string (uuid), g_variant_new_string (name) }; DBUS_CALL_TWO_PARAMS_NO_RETURN (SET_PASSWORD, params); } /** * g_paste_client_show_history_sync: * @self: a #GPasteClient instance * @error: a #GError * * Emit the ShowHistory signal */ G_PASTE_VISIBLE void g_paste_client_show_history_sync (GPasteClient *self, GError **error) { DBUS_CALL_NO_PARAM_NO_RETURN (SHOW_HISTORY); } /** * g_paste_client_switch_history_sync: * @self: a #GPasteClient instance * @name: the name of the history to switch to * @error: a #GError * * Switch to another history */ G_PASTE_VISIBLE void g_paste_client_switch_history_sync (GPasteClient *self, const gchar *name, GError **error) { DBUS_CALL_ONE_PARAM_NO_RETURN (SWITCH_HISTORY, string, name); } /** * g_paste_client_track_sync: * @self: a #GPasteClient instance * @state: the new tracking state of the #GPasteDaemon * @error: a #GError * * Change the tracking state of the #GPasteDaemon */ G_PASTE_VISIBLE void g_paste_client_track_sync (GPasteClient *self, gboolean state, GError **error) { DBUS_CALL_ONE_PARAM_NO_RETURN (TRACK, boolean, state); } /** * g_paste_client_upload_sync: * @self: a #GPasteClient instance * @uuid: the uuid of the element we want to upload * @error: a #GError * * Upload an item to a pastebin service */ G_PASTE_VISIBLE void g_paste_client_upload_sync (GPasteClient *self, const gchar *uuid, GError **error) { DBUS_CALL_ONE_PARAM_NO_RETURN (UPLOAD, string, uuid); } /*******************/ /* Methods / Async */ /*******************/ /** * g_paste_client_about: * @self: a #GPasteClient instance * @callback: (nullable): A #GAsyncReadyCallback to call when the request is satisfied or %NULL if you don't * care about the result of the method invocation. * @user_data: (nullable): The data to pass to @callback. * * Display the about dialog */ G_PASTE_VISIBLE void g_paste_client_about (GPasteClient *self, GAsyncReadyCallback callback, gpointer user_data) { DBUS_CALL_NO_PARAM_ASYNC (ABOUT); } /** * g_paste_client_add: * @self: a #GPasteClient instance * @text: the text to add * @callback: (nullable): A #GAsyncReadyCallback to call when the request is satisfied or %NULL if you don't * care about the result of the method invocation. * @user_data: (nullable): The data to pass to @callback. * * Add an item to the #GPasteDaemon */ G_PASTE_VISIBLE void g_paste_client_add (GPasteClient *self, const gchar *text, GAsyncReadyCallback callback, gpointer user_data) { DBUS_CALL_ONE_PARAM_ASYNC (ADD, string, text); } /** * g_paste_client_add_file: * @self: a #GPasteClient instance * @file: the file to add * @callback: (nullable): A #GAsyncReadyCallback to call when the request is satisfied or %NULL if you don't * care about the result of the method invocation. * @user_data: (nullable): The data to pass to @callback. * * Add the file contents to the #GPasteDaemon */ G_PASTE_VISIBLE void g_paste_client_add_file (GPasteClient *self, const gchar *file, GAsyncReadyCallback callback, gpointer user_data) { g_autofree gchar *absolute_path = NULL; if (!g_path_is_absolute (file)) { g_autofree gchar *current_dir = g_get_current_dir (); absolute_path = g_build_filename (current_dir, file, NULL); } DBUS_CALL_ONE_PARAM_ASYNC (ADD_FILE, string, ((absolute_path) ? absolute_path : file)); } /** * g_paste_client_add_password: * @self: a #GPasteClient instance * @name: the name to identify the password to add * @password: the password to add * @callback: (nullable): A #GAsyncReadyCallback to call when the request is satisfied or %NULL if you don't * care about the result of the method invocation. * @user_data: (nullable): The data to pass to @callback. * * Add the password to the #GPasteDaemon */ G_PASTE_VISIBLE void g_paste_client_add_password (GPasteClient *self, const gchar *name, const gchar *password, GAsyncReadyCallback callback, gpointer user_data) { GVariant *params[] = { g_variant_new_string (name), g_variant_new_string (password) }; DBUS_CALL_TWO_PARAMS_ASYNC (ADD_PASSWORD, params); } /** * g_paste_client_backup_history: * @self: a #GPasteClient instance * @history: the name of the history * @backup: the name of the backup * @callback: (nullable): A #GAsyncReadyCallback to call when the request is satisfied or %NULL if you don't * care about the result of the method invocation. * @user_data: (nullable): The data to pass to @callback. * * Backup the current history */ G_PASTE_VISIBLE void g_paste_client_backup_history (GPasteClient *self, const gchar *history, const gchar *backup, GAsyncReadyCallback callback, gpointer user_data) { GVariant *params[] = { g_variant_new_string (history), g_variant_new_string (backup) }; DBUS_CALL_TWO_PARAMS_ASYNC (BACKUP_HISTORY, params); } /** * g_paste_client_delete: * @self: a #GPasteClient instance * @uuid: the uuid of the element we want to delete * @callback: (nullable): A #GAsyncReadyCallback to call when the request is satisfied or %NULL if you don't * care about the result of the method invocation. * @user_data: (nullable): The data to pass to @callback. * * Delete an item from the #GPasteDaemon */ G_PASTE_VISIBLE void g_paste_client_delete (GPasteClient *self, const gchar *uuid, GAsyncReadyCallback callback, gpointer user_data) { DBUS_CALL_ONE_PARAM_ASYNC (DELETE, string, uuid); } /** * g_paste_client_delete_history: * @self: a #GPasteClient instance * @name: the name of the history to delete * @callback: (nullable): A #GAsyncReadyCallback to call when the request is satisfied or %NULL if you don't * care about the result of the method invocation. * @user_data: (nullable): The data to pass to @callback. * * Delete a history */ G_PASTE_VISIBLE void g_paste_client_delete_history (GPasteClient *self, const gchar *name, GAsyncReadyCallback callback, gpointer user_data) { DBUS_CALL_ONE_PARAM_ASYNC (DELETE_HISTORY, string, name); } /** * g_paste_client_delete_password: * @self: a #GPasteClient instance * @name: the name of the password to delete * @callback: (nullable): A #GAsyncReadyCallback to call when the request is satisfied or %NULL if you don't * care about the result of the method invocation. * @user_data: The data to pass to @callback. * * Delete the password from the #GPasteDaemon */ G_PASTE_VISIBLE void g_paste_client_delete_password (GPasteClient *self, const gchar *name, GAsyncReadyCallback callback, gpointer user_data) { DBUS_CALL_ONE_PARAM_ASYNC (DELETE_PASSWORD, string, name); } /** * g_paste_client_empty_history: * @self: a #GPasteClient instance * @name: the name of the history to empty * @callback: (nullable): A #GAsyncReadyCallback to call when the request is satisfied or %NULL if you don't * care about the result of the method invocation. * @user_data: (nullable): The data to pass to @callback. * * Empty the history from the #GPasteDaemon */ G_PASTE_VISIBLE void g_paste_client_empty_history (GPasteClient *self, const gchar *name, GAsyncReadyCallback callback, gpointer user_data) { DBUS_CALL_ONE_PARAM_ASYNC (EMPTY_HISTORY, string, name); } /** * g_paste_client_get_element: * @self: a #GPasteClient instance * @uuid: the uuid of the element we want to get * @callback: (nullable): A #GAsyncReadyCallback to call when the request is satisfied or %NULL if you don't * care about the result of the method invocation. * @user_data: (nullable): The data to pass to @callback. * * Get an item from the #GPasteDaemon */ G_PASTE_VISIBLE void g_paste_client_get_element (GPasteClient *self, const gchar *uuid, GAsyncReadyCallback callback, gpointer user_data) { DBUS_CALL_ONE_PARAM_ASYNC (GET_ELEMENT, string, uuid); } /** * g_paste_client_get_element_at_index: * @self: a #GPasteClient instance * @index: the index of the element we want to get * @callback: (nullable): A #GAsyncReadyCallback to call when the request is satisfied or %NULL if you don't * care about the result of the method invocation. * @user_data: (nullable): The data to pass to @callback. * * Get an item from the #GPasteDaemon */ G_PASTE_VISIBLE void g_paste_client_get_element_at_index (GPasteClient *self, guint64 index, GAsyncReadyCallback callback, gpointer user_data) { DBUS_CALL_ONE_PARAM_ASYNC (GET_ELEMENT_AT_INDEX, uint64, index); } /** * g_paste_client_get_element_kind: * @self: a #GPasteClient instance * @uuid: the uuid of the element we want to get * @callback: (nullable): A #GAsyncReadyCallback to call when the request is satisfied or %NULL if you don't * care about the result of the method invocation. * @user_data: (nullable): The data to pass to @callback. * * Get the kind of an item from the #GPasteDaemon */ G_PASTE_VISIBLE void g_paste_client_get_element_kind (GPasteClient *self, const gchar *uuid, GAsyncReadyCallback callback, gpointer user_data) { DBUS_CALL_ONE_PARAM_ASYNC (GET_ELEMENT_KIND, string, uuid); } /** * g_paste_client_get_elements: * @self: a #GPasteClient instance * @uuids: (array length=n_uuids): the uuids of the elements we want to get * @n_uuids: the number of uuids * @callback: (nullable): A #GAsyncReadyCallback to call when the request is satisfied or %NULL if you don't * care about the result of the method invocation. * @user_data: (nullable): The data to pass to @callback. * * Get some items from the #GPasteDaemon */ G_PASTE_VISIBLE void g_paste_client_get_elements (GPasteClient *self, const gchar **uuids, guint64 n_uuids, GAsyncReadyCallback callback, gpointer user_data) { GVariant *param = g_variant_new_strv (uuids, n_uuids); DBUS_CALL_ONE_PARAMV_ASYNC (GET_ELEMENTS, param); } /** * g_paste_client_get_history: * @self: a #GPasteClient instance * @callback: (nullable): A #GAsyncReadyCallback to call when the request is satisfied or %NULL if you don't * care about the result of the method invocation. * @user_data: (nullable): The data to pass to @callback. * * Get the history from the #GPasteDaemon */ G_PASTE_VISIBLE void g_paste_client_get_history (GPasteClient *self, GAsyncReadyCallback callback, gpointer user_data) { DBUS_CALL_NO_PARAM_ASYNC (GET_HISTORY); } /** * g_paste_client_get_history_name: * @self: a #GPasteClient instance * @callback: (nullable): A #GAsyncReadyCallback to call when the request is satisfied or %NULL if you don't * care about the result of the method invocation. * @user_data: (nullable): The data to pass to @callback. * * Get the name of the history from the #GPasteDaemon */ G_PASTE_VISIBLE void g_paste_client_get_history_name (GPasteClient *self, GAsyncReadyCallback callback, gpointer user_data) { DBUS_CALL_NO_PARAM_ASYNC (GET_HISTORY_NAME); } /** * g_paste_client_get_history_size: * @self: a #GPasteClient instance * @name: the name of the history * @callback: (nullable): A #GAsyncReadyCallback to call when the request is satisfied or %NULL if you don't * care about the result of the method invocation. * @user_data: (nullable): The data to pass to @callback. * * Get the history isize from the #GPasteDaemon */ G_PASTE_VISIBLE void g_paste_client_get_history_size (GPasteClient *self, const gchar *name, GAsyncReadyCallback callback, gpointer user_data) { DBUS_CALL_ONE_PARAM_ASYNC (GET_HISTORY_SIZE, string, name); } /** * g_paste_client_get_raw_element: * @self: a #GPasteClient instance * @uuid: the uuid of the element we want to get * @callback: (nullable): A #GAsyncReadyCallback to call when the request is satisfied or %NULL if you don't * care about the result of the method invocation. * @user_data: (nullable): The data to pass to @callback. * * Get an item from the #GPasteDaemon */ G_PASTE_VISIBLE void g_paste_client_get_raw_element (GPasteClient *self, const gchar *uuid, GAsyncReadyCallback callback, gpointer user_data) { DBUS_CALL_ONE_PARAM_ASYNC (GET_RAW_ELEMENT, string, uuid); } /** * g_paste_client_get_raw_history: * @self: a #GPasteClient instance * @callback: (nullable): A #GAsyncReadyCallback to call when the request is satisfied or %NULL if you don't * care about the result of the method invocation. * @user_data: (nullable): The data to pass to @callback. * * Get the history from the #GPasteDaemon */ G_PASTE_VISIBLE void g_paste_client_get_raw_history (GPasteClient *self, GAsyncReadyCallback callback, gpointer user_data) { DBUS_CALL_NO_PARAM_ASYNC (GET_RAW_HISTORY); } /** * g_paste_client_list_histories: * @self: a #GPasteClient instance * @callback: (nullable): A #GAsyncReadyCallback to call when the request is satisfied or %NULL if you don't * care about the result of the method invocation. * @user_data: (nullable): The data to pass to @callback. * * List all available hisotries */ G_PASTE_VISIBLE void g_paste_client_list_histories (GPasteClient *self, GAsyncReadyCallback callback, gpointer user_data) { DBUS_CALL_NO_PARAM_ASYNC (LIST_HISTORIES); } /** * g_paste_client_merge: * @self: a #GPasteClient instance * @decoration: (nullable): the decoration to apply to each entry * @separator: (nullable): the separator to add between each entry * @uuids: (array length=n_uuids): the uuids of the elements we want to get * @n_uuids: the number of uuids * @callback: (nullable): A #GAsyncReadyCallback to call when the request is satisfied or %NULL if you don't * care about the result of the method invocation. * @user_data: (nullable): The data to pass to @callback. * * Merge some history entries * * If decoration is " and separator is , and entries are foo bar baz * result will be "foo","bar","baz" */ G_PASTE_VISIBLE void g_paste_client_merge (GPasteClient *self, const gchar *decoration, const gchar *separator, const gchar **uuids, guint64 n_uuids, GAsyncReadyCallback callback, gpointer user_data) { GVariant *params[] = { g_variant_new_string (decoration ? decoration : ""), g_variant_new_string (separator ? separator : ""), g_variant_new_strv (uuids, n_uuids) }; DBUS_CALL_THREE_PARAMS_ASYNC (MERGE, params); } /** * g_paste_client_on_extension_state_changed: * @self: a #GPasteClient instance * @state: the new state of the extension * @callback: (nullable): A #GAsyncReadyCallback to call when the request is satisfied or %NULL if you don't * care about the result of the method invocation. * @user_data: (nullable): The data to pass to @callback. * * Call this when the extension changes its state */ G_PASTE_VISIBLE void g_paste_client_on_extension_state_changed (GPasteClient *self, gboolean state, GAsyncReadyCallback callback, gpointer user_data) { DBUS_CALL_ONE_PARAM_ASYNC (ON_EXTENSION_STATE_CHANGED, boolean, state); } /** * g_paste_client_reexecute: * @self: a #GPasteClient instance * @callback: (nullable): A #GAsyncReadyCallback to call when the request is satisfied or %NULL if you don't * care about the result of the method invocation. * @user_data: (nullable): The data to pass to @callback. * * Reexecute the #GPasteDaemon */ G_PASTE_VISIBLE void g_paste_client_reexecute (GPasteClient *self, GAsyncReadyCallback callback, gpointer user_data) { DBUS_CALL_NO_PARAM_ASYNC (REEXECUTE); } /** * g_paste_client_rename_password: * @self: a #GPasteClient instance * @old_name: the old name of the password to rename * @new_name: the new name to give it * @callback: (nullable): A #GAsyncReadyCallback to call when the request is satisfied or %NULL if you don't * care about the result of the method invocation. * @user_data: The data to pass to @callback. * * Rename the password in the #GPasteDaemon */ G_PASTE_VISIBLE void g_paste_client_rename_password (GPasteClient *self, const gchar *old_name, const gchar *new_name, GAsyncReadyCallback callback, gpointer user_data) { GVariant *params[] = { g_variant_new_string (old_name), g_variant_new_string (new_name) }; DBUS_CALL_TWO_PARAMS_ASYNC (RENAME_PASSWORD, params); } /** * g_paste_client_replace: * @self: a #GPasteClient instance * @uuid: the uuid of the element we want to replace * @contents: the replacement contents * @callback: (nullable): A #GAsyncReadyCallback to call when the request is satisfied or %NULL if you don't * care about the result of the method invocation. * @user_data: The data to pass to @callback. * * Replace the contents of an item */ G_PASTE_VISIBLE void g_paste_client_replace (GPasteClient *self, const gchar *uuid, const gchar *contents, GAsyncReadyCallback callback, gpointer user_data) { GVariant *params[] = { g_variant_new_string (uuid), g_variant_new_string (contents) }; DBUS_CALL_TWO_PARAMS_ASYNC (REPLACE, params); } /** * g_paste_client_search: * @self: a #GPasteClient instance * @pattern: the pattern to look for in history * @callback: (nullable): A #GAsyncReadyCallback to call when the request is satisfied or %NULL if you don't * care about the result of the method invocation. * @user_data: (nullable): The data to pass to @callback. * * Search for items matching @pattern in history */ G_PASTE_VISIBLE void g_paste_client_search (GPasteClient *self, const gchar *pattern, GAsyncReadyCallback callback, gpointer user_data) { DBUS_CALL_ONE_PARAM_ASYNC (SEARCH, string, pattern); } /** * g_paste_client_select: * @self: a #GPasteClient instance * @uuid: the uuid of the element we want to select * @callback: (nullable): A #GAsyncReadyCallback to call when the request is satisfied or %NULL if you don't * care about the result of the method invocation. * @user_data: (nullable): The data to pass to @callback. * * Select an item from the #GPasteDaemon */ G_PASTE_VISIBLE void g_paste_client_select (GPasteClient *self, const gchar *uuid, GAsyncReadyCallback callback, gpointer user_data) { DBUS_CALL_ONE_PARAM_ASYNC (SELECT, string, uuid); } /** * g_paste_client_set_password: * @self: a #GPasteClient instance * @uuid: the uuid of the element we want to set as password * @name: the name to identify the password * @callback: (nullable): A #GAsyncReadyCallback to call when the request is satisfied or %NULL if you don't * care about the result of the method invocation. * @user_data: The data to pass to @callback. * * Set the item as password */ G_PASTE_VISIBLE void g_paste_client_set_password (GPasteClient *self, const gchar *uuid, const gchar *name, GAsyncReadyCallback callback, gpointer user_data) { GVariant *params[] = { g_variant_new_string (uuid), g_variant_new_string (name) }; DBUS_CALL_TWO_PARAMS_ASYNC (SET_PASSWORD, params); } /** * g_paste_client_show_history: * @self: a #GPasteClient instance * @callback: (nullable): A #GAsyncReadyCallback to call when the request is satisfied or %NULL if you don't * care about the result of the method invocation. * @user_data: (nullable): The data to pass to @callback. * * Emit the ShowHistory signal */ G_PASTE_VISIBLE void g_paste_client_show_history (GPasteClient *self, GAsyncReadyCallback callback, gpointer user_data) { DBUS_CALL_NO_PARAM_ASYNC (SHOW_HISTORY); } /** * g_paste_client_switch_history: * @self: a #GPasteClient instance * @name: the name of the history to switch to * @callback: (nullable): A #GAsyncReadyCallback to call when the request is satisfied or %NULL if you don't * care about the result of the method invocation. * @user_data: (nullable):The data to pass to @callback. * * Switch to another history */ G_PASTE_VISIBLE void g_paste_client_switch_history (GPasteClient *self, const gchar *name, GAsyncReadyCallback callback, gpointer user_data) { DBUS_CALL_ONE_PARAM_ASYNC (SWITCH_HISTORY, string, name); } /** * g_paste_client_track: * @self: a #GPasteClient instance * @state: the new tracking state of the #GPasteDaemon * @callback: (nullable): A #GAsyncReadyCallback to call when the request is satisfied or %NULL if you don't * care about the result of the method invocation. * @user_data: (nullable): The data to pass to @callback. * * Change the tracking state of the #GPasteDaemon */ G_PASTE_VISIBLE void g_paste_client_track (GPasteClient *self, gboolean state, GAsyncReadyCallback callback, gpointer user_data) { DBUS_CALL_ONE_PARAM_ASYNC (TRACK, boolean, state); } /** * g_paste_client_upload: * @self: a #GPasteClient instance * @uuid: the uuid of the element we want to upload * @callback: (nullable): A #GAsyncReadyCallback to call when the request is satisfied or %NULL if you don't * care about the result of the method invocation. * @user_data: (nullable): The data to pass to @callback. * * Upload an item to a pastebin service */ G_PASTE_VISIBLE void g_paste_client_upload (GPasteClient *self, const gchar *uuid, GAsyncReadyCallback callback, gpointer user_data) { DBUS_CALL_ONE_PARAM_ASYNC (UPLOAD, string, uuid); } /****************************/ /* Methods / Async - Finish */ /****************************/ /** * g_paste_client_about_finish: * @self: a #GPasteClient instance * @result: A #GAsyncResult obtained from the #GAsyncReadyCallback passed to the async call. * @error: a #GError * * Display the about dialog */ G_PASTE_VISIBLE void g_paste_client_about_finish (GPasteClient *self, GAsyncResult *result, GError **error) { DBUS_ASYNC_FINISH_NO_RETURN; } /** * g_paste_client_add_finish: * @self: a #GPasteClient instance * @result: A #GAsyncResult obtained from the #GAsyncReadyCallback passed to the async call. * @error: a #GError * * Add an item to the #GPasteDaemon */ G_PASTE_VISIBLE void g_paste_client_add_finish (GPasteClient *self, GAsyncResult *result, GError **error) { DBUS_ASYNC_FINISH_NO_RETURN; } /** * g_paste_client_add_file_finish: * @self: a #GPasteClient instance * @result: A #GAsyncResult obtained from the #GAsyncReadyCallback passed to the async call. * @error: a #GError * * Add the file contents to the #GPasteDaemon */ G_PASTE_VISIBLE void g_paste_client_add_file_finish (GPasteClient *self, GAsyncResult *result, GError **error) { DBUS_ASYNC_FINISH_NO_RETURN; } /** * g_paste_client_add_password_finish: * @self: a #GPasteClient instance * @result: A #GAsyncResult obtained from the #GAsyncReadyCallback passed to the async call. * @error: a #GError * * Add the password to the #GPasteDaemon */ G_PASTE_VISIBLE void g_paste_client_add_password_finish (GPasteClient *self, GAsyncResult *result, GError **error) { DBUS_ASYNC_FINISH_NO_RETURN; } /** * g_paste_client_backup_history_finish: * @self: a #GPasteClient instance * @result: A #GAsyncResult obtained from the #GAsyncReadyCallback passed to the async call. * @error: a #GError * * Backup the current history */ G_PASTE_VISIBLE void g_paste_client_backup_history_finish (GPasteClient *self, GAsyncResult *result, GError **error) { DBUS_ASYNC_FINISH_NO_RETURN; } /** * g_paste_client_delete_finish: * @self: a #GPasteClient instance * @result: A #GAsyncResult obtained from the #GAsyncReadyCallback passed to the async call. * @error: a #GError * * Delete an item from the #GPasteDaemon */ G_PASTE_VISIBLE void g_paste_client_delete_finish (GPasteClient *self, GAsyncResult *result, GError **error) { DBUS_ASYNC_FINISH_NO_RETURN; } /** * g_paste_client_delete_history_finish: * @self: a #GPasteClient instance * @result: A #GAsyncResult obtained from the #GAsyncReadyCallback passed to the async call. * @error: a #GError * * Delete a history */ G_PASTE_VISIBLE void g_paste_client_delete_history_finish (GPasteClient *self, GAsyncResult *result, GError **error) { DBUS_ASYNC_FINISH_NO_RETURN; } /** * g_paste_client_delete_password_finish: * @self: a #GPasteClient instance * @result: A #GAsyncResult obtained from the #GAsyncReadyCallback passed to the async call. * @error: a #GError * * Delete the password from the #GPasteDaemon */ G_PASTE_VISIBLE void g_paste_client_delete_password_finish (GPasteClient *self, GAsyncResult *result, GError **error) { DBUS_ASYNC_FINISH_NO_RETURN; } /** * g_paste_client_empty_history_finish: * @self: a #GPasteClient instance * @result: A #GAsyncResult obtained from the #GAsyncReadyCallback passed to the async call. * @error: a #GError * * Empty the history from the #GPasteDaemon */ G_PASTE_VISIBLE void g_paste_client_empty_history_finish (GPasteClient *self, GAsyncResult *result, GError **error) { DBUS_ASYNC_FINISH_NO_RETURN; } /** * g_paste_client_get_element_finish: * @self: a #GPasteClient instance * @result: A #GAsyncResult obtained from the #GAsyncReadyCallback passed to the async call. * @error: a #GError * * Get an item from the #GPasteDaemon * * Returns: (transfer full): a newly allocated string */ G_PASTE_VISIBLE gchar * g_paste_client_get_element_finish (GPasteClient *self, GAsyncResult *result, GError **error) { DBUS_ASYNC_FINISH_RET_STRING; } /** * g_paste_client_get_element_at_index_finish: * @self: a #GPasteClient instance * @result: A #GAsyncResult obtained from the #GAsyncReadyCallback passed to the async call. * @error: a #GError * * Get an item from the #GPasteDaemon * * Returns: (transfer full): a new #GPasteClientItem */ G_PASTE_VISIBLE GPasteClientItem * g_paste_client_get_element_at_index_finish (GPasteClient *self, GAsyncResult *result, GError **error) { DBUS_ASYNC_FINISH_RET_ITEM; } static gchar * _g_paste_client_get_element_kind_finish (GPasteClient *self, GAsyncResult *result, GError **error) { DBUS_ASYNC_FINISH_RET_STRING; } /** * g_paste_client_get_element_kind_finish: * @self: a #GPasteClient instance * @result: A #GAsyncResult obtained from the #GAsyncReadyCallback passed to the async call. * @error: a #GError * * Get this kind of an item from the #GPasteDaemon * * Returns: The #GPasteItemKind */ G_PASTE_VISIBLE GPasteItemKind g_paste_client_get_element_kind_finish (GPasteClient *self, GAsyncResult *result, GError **error) { g_autofree gchar *kind = _g_paste_client_get_element_kind_finish (self, result, error); GEnumValue *k = (kind) ? g_enum_get_value_by_nick (g_type_class_peek (G_PASTE_TYPE_ITEM_KIND), kind) : NULL; return (k) ? k->value : G_PASTE_ITEM_KIND_INVALID; } /** * g_paste_client_get_elements_finish: * @self: a #GPasteClient instance * @result: A #GAsyncResult obtained from the #GAsyncReadyCallback passed to the async call. * @error: a #GError * * Get some items from the #GPasteDaemon * * Returns: (element-type GPasteClientItem) (transfer full): a newly allocated array of string */ G_PASTE_VISIBLE GList * g_paste_client_get_elements_finish (GPasteClient *self, GAsyncResult *result, GError **error) { DBUS_ASYNC_FINISH_RET_ITEMS; } /** * g_paste_client_get_history_finish: * @self: a #GPasteClient instance * @result: A #GAsyncResult obtained from the #GAsyncReadyCallback passed to the async call. * @error: a #GError * * Get the history from the #GPasteDaemon * * Returns: (element-type GPasteClientItem) (transfer full): a newly allocated array of string */ G_PASTE_VISIBLE GList * g_paste_client_get_history_finish (GPasteClient *self, GAsyncResult *result, GError **error) { DBUS_ASYNC_FINISH_RET_ITEMS; } /** * g_paste_client_get_history_name_finish: * @self: a #GPasteClient instance * @result: A #GAsyncResult obtained from the #GAsyncReadyCallback passed to the async call. * @error: a #GError * * Get the name of the history from the #GPasteDaemon * * Returns: (transfer full): a newly allocated string */ G_PASTE_VISIBLE gchar * g_paste_client_get_history_name_finish (GPasteClient *self, GAsyncResult *result, GError **error) { DBUS_ASYNC_FINISH_RET_STRING; } /** * g_paste_client_get_history_size_finish: * @self: a #GPasteClient instance * @result: A #GAsyncResult obtained from the #GAsyncReadyCallback passed to the async call. * @error: a #GError * * Get the history size from the #GPasteDaemon * * Returns: the size of the history */ G_PASTE_VISIBLE guint64 g_paste_client_get_history_size_finish (GPasteClient *self, GAsyncResult *result, GError **error) { DBUS_ASYNC_FINISH_RET_UINT64; } /** * g_paste_client_get_raw_element_finish: * @self: a #GPasteClient instance * @result: A #GAsyncResult obtained from the #GAsyncReadyCallback passed to the async call. * @error: a #GError * * Get an item from the #GPasteDaemon * * Returns: (transfer full): a newly allocated string */ G_PASTE_VISIBLE gchar * g_paste_client_get_raw_element_finish (GPasteClient *self, GAsyncResult *result, GError **error) { DBUS_ASYNC_FINISH_RET_STRING; } /** * g_paste_client_get_raw_history_finish: * @self: a #GPasteClient instance * @result: A #GAsyncResult obtained from the #GAsyncReadyCallback passed to the async call. * @error: a #GError * * Get the history from the #GPasteDaemon * * Returns: (element-type GPasteClientItem) (transfer full): a newly allocated array of string */ G_PASTE_VISIBLE GList * g_paste_client_get_raw_history_finish (GPasteClient *self, GAsyncResult *result, GError **error) { DBUS_ASYNC_FINISH_RET_ITEMS; } /** * g_paste_client_list_histories_finish: * @self: a #GPasteClient instance * @result: A #GAsyncResult obtained from the #GAsyncReadyCallback passed to the async call. * @error: a #GError * * List all available hisotries * * Returns: (transfer full): a newly allocated array of string */ G_PASTE_VISIBLE GStrv g_paste_client_list_histories_finish (GPasteClient *self, GAsyncResult *result, GError **error) { DBUS_ASYNC_FINISH_RET_STRV; } /** * g_paste_client_merge_finish: * @self: a #GPasteClient instance * @result: A #GAsyncResult obtained from the #GAsyncReadyCallback passed to the async call. * @error: a #GError * * Merge some history entries */ G_PASTE_VISIBLE void g_paste_client_merge_finish (GPasteClient *self, GAsyncResult *result, GError **error) { DBUS_ASYNC_FINISH_NO_RETURN; } /** * g_paste_client_on_extension_state_changed_finish: * @self: a #GPasteClient instance * @result: A #GAsyncResult obtained from the #GAsyncReadyCallback passed to the async call. * @error: a #GError * * Call this when the extension changes its state */ G_PASTE_VISIBLE void g_paste_client_on_extension_state_changed_finish (GPasteClient *self, GAsyncResult *result, GError **error) { DBUS_ASYNC_FINISH_NO_RETURN; } /** * g_paste_client_reexecute_finish: * @self: a #GPasteClient instance * @result: A #GAsyncResult obtained from the #GAsyncReadyCallback passed to the async call. * @error: a #GError * * Reexecute the #GPasteDaemon */ G_PASTE_VISIBLE void g_paste_client_reexecute_finish (GPasteClient *self, GAsyncResult *result, GError **error) { DBUS_ASYNC_FINISH_NO_RETURN; } /** * g_paste_client_rename_password_finish: * @self: a #GPasteClient instance * @result: A #GAsyncResult obtained from the #GAsyncReadyCallback passed to the async call. * @error: a #GError * * Rename the password in the #GPasteDaemon */ G_PASTE_VISIBLE void g_paste_client_rename_password_finish (GPasteClient *self, GAsyncResult *result, GError **error) { DBUS_ASYNC_FINISH_NO_RETURN; } /** * g_paste_client_replace_finish: * @self: a #GPasteClient instance * @result: A #GAsyncResult obtained from the #GAsyncReadyCallback passed to the async call. * @error: a #GError * * Replace the contents of an item */ G_PASTE_VISIBLE void g_paste_client_replace_finish (GPasteClient *self, GAsyncResult *result, GError **error) { DBUS_ASYNC_FINISH_NO_RETURN; } /** * g_paste_client_search_finish: * @self: a #GPasteClient instance * @result: A #GAsyncResult obtained from the #GAsyncReadyCallback passed to the async call. * @error: a #GError * * Search for items matching @pattern in history * * Returns: (transfer full): The indexes of the matching items */ G_PASTE_VISIBLE GStrv g_paste_client_search_finish (GPasteClient *self, GAsyncResult *result, GError **error) { DBUS_ASYNC_FINISH_RET_STRV; } /** * g_paste_client_select_finish: * @self: a #GPasteClient instance * @result: A #GAsyncResult obtained from the #GAsyncReadyCallback passed to the async call. * @error: a #GError * * Select an item from the #GPasteDaemon */ G_PASTE_VISIBLE void g_paste_client_select_finish (GPasteClient *self, GAsyncResult *result, GError **error) { DBUS_ASYNC_FINISH_NO_RETURN; } /** * g_paste_client_set_password_finish: * @self: a #GPasteClient instance * @result: A #GAsyncResult obtained from the #GAsyncReadyCallback passed to the async call. * @error: a #GError * * Set the item as password */ G_PASTE_VISIBLE void g_paste_client_set_password_finish (GPasteClient *self, GAsyncResult *result, GError **error) { DBUS_ASYNC_FINISH_NO_RETURN; } /** * g_paste_client_show_history_finish: * @self: a #GPasteClient instance * @result: A #GAsyncResult obtained from the #GAsyncReadyCallback passed to the async call. * @error: a #GError * * Emit the ShowHistory signal */ G_PASTE_VISIBLE void g_paste_client_show_history_finish (GPasteClient *self, GAsyncResult *result, GError **error) { DBUS_ASYNC_FINISH_NO_RETURN; } /** * g_paste_client_switch_history_finish: * @self: a #GPasteClient instance * @result: A #GAsyncResult obtained from the #GAsyncReadyCallback passed to the async call. * @error: a #GError * * Switch to another history */ G_PASTE_VISIBLE void g_paste_client_switch_history_finish (GPasteClient *self, GAsyncResult *result, GError **error) { DBUS_ASYNC_FINISH_NO_RETURN; } /** * g_paste_client_track_finish: * @self: a #GPasteClient instance * @result: A #GAsyncResult obtained from the #GAsyncReadyCallback passed to the async call. * @error: a #GError * * Change the tracking state of the #GPasteDaemon */ G_PASTE_VISIBLE void g_paste_client_track_finish (GPasteClient *self, GAsyncResult *result, GError **error) { DBUS_ASYNC_FINISH_NO_RETURN; } /** * g_paste_client_upload_finish: * @self: a #GPasteClient instance * @result: A #GAsyncResult obtained from the #GAsyncReadyCallback passed to the async call. * @error: a #GError * * Upload an item to a pastebin service */ G_PASTE_VISIBLE void g_paste_client_upload_finish (GPasteClient *self, GAsyncResult *result, GError **error) { DBUS_ASYNC_FINISH_NO_RETURN; } /**************/ /* Properties */ /**************/ /** * g_paste_client_is_active: * @self: a #GPasteClient instance * * Check if the daemon is active * * Returns: whether the daemon is active or not */ G_PASTE_VISIBLE gboolean g_paste_client_is_active (GPasteClient *self) { DBUS_GET_BOOLEAN_PROPERTY (ACTIVE); } /** * g_paste_client_get_version: * @self: a #GPasteClient instance * * Get the version of the running gpaste daemon * * Returns: the version of the daemon */ G_PASTE_VISIBLE gchar * g_paste_client_get_version (GPasteClient *self) { DBUS_GET_STRING_PROPERTY (VERSION); } static void g_paste_client_g_signal (GDBusProxy *proxy, const gchar *sender_name G_GNUC_UNUSED, const gchar *signal_name, GVariant *parameters) { GPasteClient *self = G_PASTE_CLIENT (proxy); HANDLE_SIGNAL (SHOW_HISTORY) else HANDLE_SIGNAL_WITH_DATA (DELETE_HISTORY, const gchar *, g_variant_get_string (variant, NULL)) else HANDLE_SIGNAL_WITH_DATA (EMPTY_HISTORY, const gchar *, g_variant_get_string (variant, NULL)) else HANDLE_SIGNAL_WITH_DATA (SWITCH_HISTORY, const gchar *, g_variant_get_string (variant, NULL)) else if (g_paste_str_equal (signal_name, G_PASTE_DAEMON_SIG_UPDATE)) { GVariantIter params_iter; g_variant_iter_init (¶ms_iter, parameters); g_autoptr (GVariant) v1 = g_variant_iter_next_value (¶ms_iter); g_autoptr (GVariant) v2 = g_variant_iter_next_value (¶ms_iter); g_autoptr (GVariant) v3 = g_variant_iter_next_value (¶ms_iter); g_signal_emit (self, signals[UPDATE], 0, /* detail */ g_enum_get_value_by_nick (g_type_class_peek (G_PASTE_TYPE_UPDATE_ACTION), g_variant_get_string (v1, NULL))->value, g_enum_get_value_by_nick (g_type_class_peek (G_PASTE_TYPE_UPDATE_TARGET), g_variant_get_string (v2, NULL))->value, g_variant_get_uint64 (v3), NULL); } } static void g_paste_client_g_properties_changed (GDBusProxy *proxy, GVariant *changed_properties, const gchar * const *invalidated_properties G_GNUC_UNUSED) { GPasteClient *self = G_PASTE_CLIENT (proxy); GVariantDict dict; g_variant_dict_init (&dict, changed_properties); if (g_variant_dict_contains (&dict, G_PASTE_DAEMON_PROP_ACTIVE)) { g_autoptr (GVariant) v = g_dbus_proxy_get_cached_property (proxy, G_PASTE_DAEMON_PROP_ACTIVE); g_signal_emit (self, signals[TRACKING], 0, /* detail */ g_variant_get_boolean (v), NULL); } } static void g_paste_client_class_init (GPasteClientClass *klass) { GDBusProxyClass *proxy_class = G_DBUS_PROXY_CLASS (klass); proxy_class->g_signal = g_paste_client_g_signal; proxy_class->g_properties_changed = g_paste_client_g_properties_changed; /** * GPasteClient::delete-history: * @client: the object on which the signal was emitted * @history: the name of the history we deleted * * The "delete-history" signal is emitted when we delete * a history. */ signals[DELETE_HISTORY] = NEW_SIGNAL_WITH_DATA ("delete-history", STRING); /** * GPasteClient::empty-history: * @client: the object on which the signal was emitted * @history: the name of the history we emptied * * The "empty-history" signal is emitted when we empty * a history. */ signals[EMPTY_HISTORY] = NEW_SIGNAL_WITH_DATA ("empty-history", STRING); /** * GPasteClient::show-history: * @client: the object on which the signal was emitted * * The "show-history" signal is emitted when we switch * from a history to another. */ signals[SHOW_HISTORY] = NEW_SIGNAL ("show-history"); /** * GPasteClient::switch-history: * @client: the object on which the signal was emitted * @history: the name of the history we switch to * * The "switch-history" signal is emitted when we switch * from a history to another. */ signals[SWITCH_HISTORY] = NEW_SIGNAL_WITH_DATA ("switch-history", STRING); /** * GPasteClient::track: * @client: the object on which the signal was emitted * @tracking_state: whether we're now tracking or not * * The "tracking" signal is emitted when the daemon starts or stops tracking * clipboard changes. */ signals[TRACKING] = NEW_SIGNAL_WITH_DATA ("tracking", BOOLEAN); /** * GPasteClient::update: * @client: the object on which the signal was emitted * @action: the kind of update * @target: the items which need updating * @index: the index of the item, when the target is POSITION * * The "update" signal is emitted whenever anything changed * in the history (something was added, removed, selected, replaced...). */ signals[UPDATE] = g_signal_new ("update", G_PASTE_TYPE_CLIENT, G_SIGNAL_RUN_LAST, 0, /* class offset */ NULL, /* accumulator */ NULL, /* accumulator data */ g_cclosure_marshal_generic, G_TYPE_NONE, 3, /* number of params */ G_PASTE_TYPE_UPDATE_ACTION, G_PASTE_TYPE_UPDATE_TARGET, G_TYPE_UINT64); } static void g_paste_client_init (GPasteClient *self) { GDBusProxy *proxy = G_DBUS_PROXY (self); g_autoptr (GError) error = NULL; g_autoptr (GDBusNodeInfo) g_paste_daemon_dbus_info = g_dbus_node_info_new_for_xml (G_PASTE_DAEMON_INTERFACE, &error); g_assert_no_error (error); g_dbus_proxy_set_interface_info (proxy, g_paste_daemon_dbus_info->interfaces[0]); } /** * g_paste_client_new_sync: * @error: Return location for error or %NULL. * * Create a new instance of #GPasteClient * * Returns: (transfer full): a newly allocated #GPasteClient * free it with g_object_unref */ G_PASTE_VISIBLE GPasteClient * g_paste_client_new_sync (GError **error) { CUSTOM_PROXY_NEW (CLIENT, DAEMON, G_PASTE_BUS_NAME); } /** * g_paste_client_new: * @callback: Callback function to invoke when the proxy is ready. * @user_data: User data to pass to @callback. * * Create a new instance of #GPasteClient */ G_PASTE_VISIBLE void g_paste_client_new (GAsyncReadyCallback callback, gpointer user_data) { CUSTOM_PROXY_NEW_ASYNC (CLIENT, DAEMON, G_PASTE_BUS_NAME); } /** * g_paste_client_new_finish: * @result: A #GAsyncResult obtained from the #GAsyncReadyCallback function passed to the async ctor. * @error: Return location for error or %NULL. * * Create a new instance of #GPasteClient * * Returns: (transfer full): a newly allocated #GPasteClient * free it with g_object_unref */ G_PASTE_VISIBLE GPasteClient * g_paste_client_new_finish (GAsyncResult *result, GError **error) { CUSTOM_PROXY_NEW_FINISH (CLIENT); } Keruspe-GPaste-724def1/src/libgpaste/gpaste/gpaste-client.h000066400000000000000000000626251521206431300236730ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #if !defined (__G_PASTE_H_INSIDE__) && !defined (G_PASTE_COMPILATION) #error "Only can be included directly." #endif #pragma once #include #include G_BEGIN_DECLS #define G_PASTE_TYPE_CLIENT (g_paste_client_get_type ()) G_PASTE_FINAL_TYPE (Client, client, CLIENT, GDBusProxy) /*******************/ /* Methods / Sync */ /*******************/ void g_paste_client_about_sync (GPasteClient *self, GError **error); void g_paste_client_add_sync (GPasteClient *self, const gchar *text, GError **error); void g_paste_client_add_file_sync (GPasteClient *self, const gchar *file, GError **error); void g_paste_client_add_password_sync (GPasteClient *self, const gchar *name, const gchar *password, GError **error); void g_paste_client_backup_history_sync (GPasteClient *self, const gchar *history, const gchar *backup, GError **error); void g_paste_client_delete_sync (GPasteClient *self, const gchar *uuid, GError **error); void g_paste_client_delete_history_sync (GPasteClient *self, const gchar *name, GError **error); void g_paste_client_delete_password_sync (GPasteClient *self, const gchar *name, GError **error); void g_paste_client_empty_history_sync (GPasteClient *self, const gchar *name, GError **error); gchar *g_paste_client_get_element_sync (GPasteClient *self, const gchar *uuid, GError **error); GList *g_paste_client_get_elements_sync (GPasteClient *self, const gchar **uuids, guint64 n_uuids, GError **error); GList *g_paste_client_get_history_sync (GPasteClient *self, GError **error); gchar *g_paste_client_get_history_name_sync (GPasteClient *self, GError **error); guint64 g_paste_client_get_history_size_sync (GPasteClient *self, const gchar *name, GError **error); gchar *g_paste_client_get_raw_element_sync (GPasteClient *self, const gchar *uuid, GError **error); GList *g_paste_client_get_raw_history_sync (GPasteClient *self, GError **error); GStrv g_paste_client_list_histories_sync (GPasteClient *self, GError **error); void g_paste_client_merge_sync (GPasteClient *self, const gchar *decoration, const gchar *separator, const gchar **uuids, guint64 n_uuids, GError **error); void g_paste_client_on_extension_state_changed_sync (GPasteClient *self, gboolean state, GError **error); void g_paste_client_reexecute_sync (GPasteClient *self, GError **error); void g_paste_client_rename_password_sync (GPasteClient *self, const gchar *old_name, const gchar *new_name, GError **error); void g_paste_client_replace_sync (GPasteClient *self, const gchar *uuid, const gchar *contents, GError **error); GStrv g_paste_client_search_sync (GPasteClient *self, const gchar *pattern, GError **error); void g_paste_client_select_sync (GPasteClient *self, const gchar *uuid, GError **error); void g_paste_client_set_password_sync (GPasteClient *self, const gchar *uuid, const gchar *name, GError **error); void g_paste_client_show_history_sync (GPasteClient *self, GError **error); void g_paste_client_switch_history_sync (GPasteClient *self, const gchar *name, GError **error); void g_paste_client_track_sync (GPasteClient *self, gboolean state, GError **error); void g_paste_client_upload_sync (GPasteClient *self, const gchar *uuid, GError **error); GPasteClientItem *g_paste_client_get_element_at_index_sync (GPasteClient *self, guint64 index, GError **error); GPasteItemKind g_paste_client_get_element_kind_sync (GPasteClient *self, const gchar *uuid, GError **error); /*******************/ /* Methods / Async */ /*******************/ void g_paste_client_about (GPasteClient *self, GAsyncReadyCallback callback, gpointer user_data); void g_paste_client_add (GPasteClient *self, const gchar *text, GAsyncReadyCallback callback, gpointer user_data); void g_paste_client_add_file (GPasteClient *self, const gchar *file, GAsyncReadyCallback callback, gpointer user_data); void g_paste_client_add_password (GPasteClient *self, const gchar *name, const gchar *password, GAsyncReadyCallback callback, gpointer user_data); void g_paste_client_backup_history (GPasteClient *self, const gchar *history, const gchar *backup, GAsyncReadyCallback callback, gpointer user_data); void g_paste_client_delete (GPasteClient *self, const gchar *uuid, GAsyncReadyCallback callback, gpointer user_data); void g_paste_client_delete_history (GPasteClient *self, const gchar *name, GAsyncReadyCallback callback, gpointer user_data); void g_paste_client_delete_password (GPasteClient *self, const gchar *name, GAsyncReadyCallback callback, gpointer user_data); void g_paste_client_empty_history (GPasteClient *self, const gchar *name, GAsyncReadyCallback callback, gpointer user_data); void g_paste_client_get_element (GPasteClient *self, const gchar *uuid, GAsyncReadyCallback callback, gpointer user_data); void g_paste_client_get_element_at_index (GPasteClient *self, guint64 index, GAsyncReadyCallback callback, gpointer user_data); void g_paste_client_get_element_kind (GPasteClient *self, const gchar *uuid, GAsyncReadyCallback callback, gpointer user_data); void g_paste_client_get_elements (GPasteClient *self, const gchar **uuids, guint64 n_uuids, GAsyncReadyCallback callback, gpointer user_data); void g_paste_client_get_history (GPasteClient *self, GAsyncReadyCallback callback, gpointer user_data); void g_paste_client_get_history_name (GPasteClient *self, GAsyncReadyCallback callback, gpointer user_data); void g_paste_client_get_history_size (GPasteClient *self, const gchar *name, GAsyncReadyCallback callback, gpointer user_data); void g_paste_client_get_raw_element (GPasteClient *self, const gchar *uuid, GAsyncReadyCallback callback, gpointer user_data); void g_paste_client_get_raw_history (GPasteClient *self, GAsyncReadyCallback callback, gpointer user_data); void g_paste_client_list_histories (GPasteClient *self, GAsyncReadyCallback callback, gpointer user_data); void g_paste_client_merge (GPasteClient *self, const gchar *decoration, const gchar *separator, const gchar **uuids, guint64 n_uuids, GAsyncReadyCallback callback, gpointer user_data); void g_paste_client_on_extension_state_changed (GPasteClient *self, gboolean state, GAsyncReadyCallback callback, gpointer user_data); void g_paste_client_reexecute (GPasteClient *self, GAsyncReadyCallback callback, gpointer user_data); void g_paste_client_rename_password (GPasteClient *self, const gchar *old_name, const gchar *new_name, GAsyncReadyCallback callback, gpointer user_data); void g_paste_client_replace (GPasteClient *self, const gchar *uuid, const gchar *contents, GAsyncReadyCallback callback, gpointer user_data); void g_paste_client_search (GPasteClient *self, const gchar *pattern, GAsyncReadyCallback callback, gpointer user_data); void g_paste_client_select (GPasteClient *self, const gchar *uuid, GAsyncReadyCallback callback, gpointer user_data); void g_paste_client_set_password (GPasteClient *self, const gchar *uuid, const gchar *name, GAsyncReadyCallback callback, gpointer user_data); void g_paste_client_show_history (GPasteClient *self, GAsyncReadyCallback callback, gpointer user_data); void g_paste_client_switch_history (GPasteClient *self, const gchar *name, GAsyncReadyCallback callback, gpointer user_data); void g_paste_client_track (GPasteClient *self, gboolean state, GAsyncReadyCallback callback, gpointer user_data); void g_paste_client_upload (GPasteClient *self, const gchar *uuid, GAsyncReadyCallback callback, gpointer user_data); /****************************/ /* Methods / Async - Finish */ /****************************/ void g_paste_client_about_finish (GPasteClient *self, GAsyncResult *result, GError **error); void g_paste_client_add_finish (GPasteClient *self, GAsyncResult *result, GError **error); void g_paste_client_add_file_finish (GPasteClient *self, GAsyncResult *result, GError **error); void g_paste_client_add_password_finish (GPasteClient *self, GAsyncResult *result, GError **error); void g_paste_client_backup_history_finish (GPasteClient *self, GAsyncResult *result, GError **error); void g_paste_client_delete_finish (GPasteClient *self, GAsyncResult *result, GError **error); void g_paste_client_delete_history_finish (GPasteClient *self, GAsyncResult *result, GError **error); void g_paste_client_delete_password_finish (GPasteClient *self, GAsyncResult *result, GError **error); void g_paste_client_empty_history_finish (GPasteClient *self, GAsyncResult *result, GError **error); gchar *g_paste_client_get_element_finish (GPasteClient *self, GAsyncResult *result, GError **error); GList *g_paste_client_get_elements_finish (GPasteClient *self, GAsyncResult *result, GError **error); GList *g_paste_client_get_history_finish (GPasteClient *self, GAsyncResult *result, GError **error); gchar *g_paste_client_get_history_name_finish (GPasteClient *self, GAsyncResult *result, GError **error); guint64 g_paste_client_get_history_size_finish (GPasteClient *self, GAsyncResult *result, GError **error); gchar *g_paste_client_get_raw_element_finish (GPasteClient *self, GAsyncResult *result, GError **error); GList *g_paste_client_get_raw_history_finish (GPasteClient *self, GAsyncResult *result, GError **error); GStrv g_paste_client_list_histories_finish (GPasteClient *self, GAsyncResult *result, GError **error); void g_paste_client_merge_finish (GPasteClient *self, GAsyncResult *result, GError **error); void g_paste_client_on_extension_state_changed_finish (GPasteClient *self, GAsyncResult *result, GError **error); void g_paste_client_reexecute_finish (GPasteClient *self, GAsyncResult *result, GError **error); void g_paste_client_rename_password_finish (GPasteClient *self, GAsyncResult *result, GError **error); void g_paste_client_replace_finish (GPasteClient *self, GAsyncResult *result, GError **error); GStrv g_paste_client_search_finish (GPasteClient *self, GAsyncResult *result, GError **error); void g_paste_client_select_finish (GPasteClient *self, GAsyncResult *result, GError **error); void g_paste_client_set_password_finish (GPasteClient *self, GAsyncResult *result, GError **error); void g_paste_client_show_history_finish (GPasteClient *self, GAsyncResult *result, GError **error); void g_paste_client_switch_history_finish (GPasteClient *self, GAsyncResult *result, GError **error); void g_paste_client_track_finish (GPasteClient *self, GAsyncResult *result, GError **error); void g_paste_client_upload_finish (GPasteClient *self, GAsyncResult *result, GError **error); GPasteClientItem *g_paste_client_get_element_at_index_finish (GPasteClient *self, GAsyncResult *result, GError **error); GPasteItemKind g_paste_client_get_element_kind_finish (GPasteClient *self, GAsyncResult *result, GError **error); /**************/ /* Properties */ /**************/ gboolean g_paste_client_is_active (GPasteClient *self); gchar *g_paste_client_get_version (GPasteClient *self); /****************/ /* Constructors */ /****************/ GPasteClient *g_paste_client_new_sync (GError **error); void g_paste_client_new (GAsyncReadyCallback callback, gpointer user_data); GPasteClient *g_paste_client_new_finish (GAsyncResult *result, GError **error); G_END_DECLS Keruspe-GPaste-724def1/src/libgpaste/gpaste/gpaste-gdbus-defines.h000066400000000000000000000353331521206431300251300ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #if !defined (__G_PASTE_H_INSIDE__) && !defined (G_PASTE_COMPILATION) #error "Only can be included directly." #endif #pragma once #include G_BEGIN_DECLS #define G_PASTE_BUS_NAME "org.gnome.GPaste" #define G_PASTE_DAEMON_OBJECT_PATH "/org/gnome/GPaste" #define G_PASTE_DAEMON_INTERFACE_NAME "org.gnome.GPaste2" #define G_PASTE_DAEMON_ABOUT "About" #define G_PASTE_DAEMON_ADD "Add" #define G_PASTE_DAEMON_ADD_FILE "AddFile" #define G_PASTE_DAEMON_ADD_PASSWORD "AddPassword" #define G_PASTE_DAEMON_BACKUP_HISTORY "BackupHistory" #define G_PASTE_DAEMON_DELETE "Delete" #define G_PASTE_DAEMON_DELETE_HISTORY "DeleteHistory" #define G_PASTE_DAEMON_DELETE_PASSWORD "DeletePassword" #define G_PASTE_DAEMON_EMPTY_HISTORY "EmptyHistory" #define G_PASTE_DAEMON_GET_ELEMENT "GetElement" #define G_PASTE_DAEMON_GET_ELEMENT_AT_INDEX "GetElementAtIndex" #define G_PASTE_DAEMON_GET_ELEMENT_KIND "GetElementKind" #define G_PASTE_DAEMON_GET_ELEMENTS "GetElements" #define G_PASTE_DAEMON_GET_HISTORY "GetHistory" #define G_PASTE_DAEMON_GET_HISTORY_NAME "GetHistoryName" #define G_PASTE_DAEMON_GET_HISTORY_SIZE "GetHistorySize" #define G_PASTE_DAEMON_GET_RAW_ELEMENT "GetRawElement" #define G_PASTE_DAEMON_GET_RAW_HISTORY "GetRawHistory" #define G_PASTE_DAEMON_LIST_HISTORIES "ListHistories" #define G_PASTE_DAEMON_MERGE "Merge" #define G_PASTE_DAEMON_ON_EXTENSION_STATE_CHANGED "OnExtensionStateChanged" #define G_PASTE_DAEMON_REEXECUTE "Reexecute" #define G_PASTE_DAEMON_RENAME_PASSWORD "RenamePassword" #define G_PASTE_DAEMON_REPLACE "Replace" #define G_PASTE_DAEMON_SEARCH "Search" #define G_PASTE_DAEMON_SELECT "Select" #define G_PASTE_DAEMON_SET_PASSWORD "SetPassword" #define G_PASTE_DAEMON_SHOW_HISTORY "ShowHistory" #define G_PASTE_DAEMON_SWITCH_HISTORY "SwitchHistory" #define G_PASTE_DAEMON_TRACK "Track" #define G_PASTE_DAEMON_UPLOAD "Upload" #define G_PASTE_DAEMON_SIG_DELETE_HISTORY "DeleteHistory" #define G_PASTE_DAEMON_SIG_EMPTY_HISTORY "EmptyHistory" #define G_PASTE_DAEMON_SIG_SHOW_HISTORY "ShowHistory" #define G_PASTE_DAEMON_SIG_SWITCH_HISTORY "SwitchHistory" #define G_PASTE_DAEMON_SIG_UPDATE "Update" #define G_PASTE_DAEMON_PROP_ACTIVE "Active" #define G_PASTE_DAEMON_PROP_VERSION "Version" #define G_PASTE_DAEMON_INTERFACE \ "" \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ "" #define G_PASTE_SEARCH_PROVIDER_OBJECT_PATH "/org/gnome/GPaste/SearchProvider" #define G_PASTE_SEARCH_PROVIDER_INTERFACE_NAME "org.gnome.Shell.SearchProvider2" #define G_PASTE_SEARCH_PROVIDER_GET_INITIAL_RESULT_SET "GetInitialResultSet" #define G_PASTE_SEARCH_PROVIDER_GET_SUBSEARCH_RESULT_SET "GetSubsearchResultSet" #define G_PASTE_SEARCH_PROVIDER_GET_RESULT_METAS "GetResultMetas" #define G_PASTE_SEARCH_PROVIDER_ACTIVATE_RESULT "ActivateResult" #define G_PASTE_SEARCH_PROVIDER_LAUNCH_SEARCH "LaunchSearch" #define G_PASTE_SEARCH_PROVIDER_INTERFACE \ "" \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ " " \ "" G_END_DECLS Keruspe-GPaste-724def1/src/libgpaste/gpaste/gpaste-gdbus-macros.h000066400000000000000000000477641521206431300250120ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #if !defined (__G_PASTE_H_INSIDE__) && !defined (G_PASTE_COMPILATION) #error "Only can be included directly." #endif #pragma once #ifndef __GI_SCANNER__ #include #include G_BEGIN_DECLS /***************/ /* Constructor */ /***************/ #define CUSTOM_PROXY_NEW_ASYNC(TYPE, BUS_ID, BUS_NAME) \ g_async_initable_new_async (G_PASTE_TYPE_##TYPE, \ G_PRIORITY_DEFAULT, \ NULL, /* cancellable */ \ callback, \ user_data, \ "g-bus-type", G_BUS_TYPE_SESSION, \ "g-flags", G_DBUS_PROXY_FLAGS_NONE, \ "g-name", BUS_NAME, \ "g-object-path", G_PASTE_##BUS_ID##_OBJECT_PATH, \ "g-interface-name", G_PASTE_##BUS_ID##_INTERFACE_NAME, \ NULL) #define CUSTOM_PROXY_RET(TYPE) \ if (_error) \ { \ if (error) \ { \ *error = _error; \ _error = NULL; \ } \ return NULL; \ } \ return (self) ? G_PASTE_##TYPE (self) : NULL #define CUSTOM_PROXY_NEW_FINISH(TYPE) \ g_return_val_if_fail (G_IS_ASYNC_RESULT (result), NULL); \ g_return_val_if_fail (!error || !(*error), NULL); \ g_autoptr (GObject) source = g_async_result_get_source_object (result); \ g_autoptr (GError) _error = NULL; \ g_assert (source); \ GObject *self = g_async_initable_new_finish (G_ASYNC_INITABLE (source), \ result, \ &_error); \ CUSTOM_PROXY_RET (TYPE); #define CUSTOM_PROXY_NEW(TYPE, BUS_ID, BUS_NAME) \ g_autoptr (GError) _error = NULL; \ GInitable *self = g_initable_new (G_PASTE_TYPE_##TYPE, \ NULL, /* cancellable */ \ &_error, \ "g-bus-type", G_BUS_TYPE_SESSION, \ "g-flags", G_DBUS_PROXY_FLAGS_NONE, \ "g-name", BUS_NAME, \ "g-object-path", G_PASTE_##BUS_ID##_OBJECT_PATH, \ "g-interface-name", G_PASTE_##BUS_ID##_INTERFACE_NAME, \ NULL); \ CUSTOM_PROXY_RET (TYPE); /********************/ /* Methods / Common */ /********************/ #define DBUS_PREPARE_EXTRACTION(iter) \ g_autoptr (GVariant) _variant = NULL; \ G_GNUC_UNUSED GVariant *variant; \ if (iter) \ { \ GVariantIter result_iter; \ g_variant_iter_init (&result_iter, _result); \ variant = _variant = g_variant_iter_next_value (&result_iter); \ } \ else \ variant = _result #define DBUS_RETURN(if_fail, extract_and_return_answer) \ if (!_result) \ return if_fail; \ extract_and_return_answer /*****************************/ /* Methods / Async / General */ /*****************************/ #define DBUS_CALL_ASYNC_FULL(TYPE_CHECKER, decl, method, params, n_params) \ g_return_if_fail (_G_PASTE_IS_##TYPE_CHECKER (self)); \ decl; \ g_dbus_proxy_call (G_DBUS_PROXY(self), \ method, \ g_variant_new_tuple (params, n_params), \ G_DBUS_CALL_FLAGS_NONE, \ -1, \ NULL, /* cancellable */ \ callback, \ user_data) /**************************/ /* Methods / Async / Impl */ /**************************/ #define DBUS_CALL_NO_PARAM_ASYNC_BASE(TYPE_CHECKER, method) \ DBUS_CALL_ASYNC_FULL (TYPE_CHECKER, {}, method, NULL, 0) #define DBUS_CALL_ONE_PARAM_ASYNC_BASE(TYPE_CHECKER, param_type, param_name, method) \ DBUS_CALL_ASYNC_FULL (TYPE_CHECKER, GVariant *parameter = g_variant_new_##param_type (param_name), method, ¶meter, 1) #define DBUS_CALL_ONE_PARAMV_ASYNC_BASE(TYPE_CHECKER, paramv, method) \ DBUS_CALL_ASYNC_FULL (TYPE_CHECKER, {}, method, ¶mv, 1) #define DBUS_CALL_TWO_PARAMS_ASYNC_BASE(TYPE_CHECKER, params, method) \ DBUS_CALL_ASYNC_FULL (TYPE_CHECKER, {}, method, params, 2) #define DBUS_CALL_THREE_PARAMS_ASYNC_BASE(TYPE_CHECKER, params, method) \ DBUS_CALL_ASYNC_FULL (TYPE_CHECKER, {}, method, params, 3) /**************************************/ /* Methods / Async / General - Finish */ /**************************************/ #define DBUS_ASYNC_FINISH_FULL(guard, if_fail, extract_and_return_answer) \ guard; \ g_autoptr (GVariant) _result = g_dbus_proxy_call_finish (G_DBUS_PROXY (self), \ result, \ error); \ DBUS_RETURN (if_fail, extract_and_return_answer) #define DBUS_ASYNC_FINISH_WITH_RETURN_FULL(TYPE_CHECKER, if_fail, iter, extract_and_return_answer) \ DBUS_ASYNC_FINISH_FULL (g_return_val_if_fail (_G_PASTE_IS_##TYPE_CHECKER (self), if_fail); \ g_return_val_if_fail (G_IS_ASYNC_RESULT (result), if_fail); \ g_return_val_if_fail (!error || !(*error), if_fail), \ if_fail, \ DBUS_PREPARE_EXTRACTION(iter); \ extract_and_return_answer) #define DBUS_ASYNC_FINISH_WITH_RETURN(TYPE_CHECKER, if_fail, extract_and_return_answer) \ DBUS_ASYNC_FINISH_WITH_RETURN_FULL(TYPE_CHECKER, if_fail, TRUE, extract_and_return_answer) /***********************************/ /* Methods / Async / Impl - Finish */ /***********************************/ #define DBUS_ASYNC_FINISH_NO_RETURN_BASE(TYPE_CHECKER) \ DBUS_ASYNC_FINISH_FULL (g_return_if_fail (_G_PASTE_IS_##TYPE_CHECKER (self)); \ g_return_if_fail (G_IS_ASYNC_RESULT (result)); \ g_return_if_fail (!error || !(*error)), ;, {}) #define DBUS_ASYNC_FINISH_RET_BOOL_BASE(TYPE_CHECKER) \ DBUS_ASYNC_FINISH_WITH_RETURN (TYPE_CHECKER, FALSE, return g_variant_get_boolean (variant)) #define DBUS_ASYNC_FINISH_RET_UINT64_BASE(TYPE_CHECKER) \ DBUS_ASYNC_FINISH_WITH_RETURN (TYPE_CHECKER, 0, return g_variant_get_uint64 (variant)) #define DBUS_ASYNC_FINISH_RET_UINT32_BASE(TYPE_CHECKER) \ DBUS_ASYNC_FINISH_WITH_RETURN (TYPE_CHECKER, 0, return g_variant_get_uint32 (variant)) #define DBUS_ASYNC_FINISH_RET_STRING_BASE(TYPE_CHECKER) \ DBUS_ASYNC_FINISH_WITH_RETURN (TYPE_CHECKER, NULL, return g_variant_dup_string (variant, NULL)) #define DBUS_ASYNC_FINISH_RET_ITEM_BASE(TYPE_CHECKER) \ DBUS_ASYNC_FINISH_WITH_RETURN_FULL (TYPE_CHECKER, NULL, FALSE, return g_paste_util_get_dbus_item_result (variant)) #define DBUS_ASYNC_FINISH_RET_STRV_BASE(TYPE_CHECKER) \ DBUS_ASYNC_FINISH_WITH_RETURN (TYPE_CHECKER, NULL, return g_variant_dup_strv (variant, NULL)) #define DBUS_ASYNC_FINISH_RET_ITEMS_BASE(TYPE_CHECKER) \ DBUS_ASYNC_FINISH_WITH_RETURN (TYPE_CHECKER, NULL, return g_paste_util_get_dbus_items_result (variant)) #define DBUS_ASYNC_FINISH_RET_AU_BASE(TYPE_CHECKER, len) \ DBUS_ASYNC_FINISH_WITH_RETURN (TYPE_CHECKER, NULL, return g_paste_util_get_dbus_au_result (variant, len)) /****************************/ /* Methods / Sync / General */ /****************************/ #define DBUS_CALL_FULL(guard, decl, method, params, n_params, if_fail, extract_and_return_answer) \ guard; \ decl; \ g_autoptr (GVariant) _result = g_dbus_proxy_call_sync (G_DBUS_PROXY (self), \ method, \ g_variant_new_tuple (params, n_params), \ G_DBUS_CALL_FLAGS_NONE, \ -1, \ NULL, /* cancellable */ \ error); \ DBUS_RETURN (if_fail, extract_and_return_answer) /****************************************/ /* Methods / Sync / General - No return */ /****************************************/ #define DBUS_CALL_NO_RETURN_BASE(TYPE_CHECKER, decl, method, params, n_params) \ DBUS_CALL_FULL (g_return_if_fail (_G_PASTE_IS_##TYPE_CHECKER (self)); \ g_return_if_fail (!error || !(*error)), decl, method, params, n_params, ;, {}) /******************************************/ /* Methods / Sync / General - With return */ /******************************************/ #define DBUS_CALL_WITH_RETURN_FULL_BASE(TYPE_CHECKER, decl, method, params, n_params, if_fail, variant_extract, pre_extract) \ DBUS_CALL_FULL (g_return_val_if_fail (_G_PASTE_IS_##TYPE_CHECKER (self), if_fail); \ g_return_val_if_fail (!error || !(*error), if_fail), decl, method, params, n_params, if_fail, \ pre_extract; \ variant_extract) #define DBUS_CALL_WITH_RETURN_RAW_BASE(TYPE_CHECKER, decl, method, params, n_params, if_fail, variant_extract) \ DBUS_CALL_WITH_RETURN_FULL_BASE (TYPE_CHECKER, decl, method, params, n_params, if_fail, variant_extract, GVariant *variant = _result) #define DBUS_CALL_WITH_RETURN_BASE_FULL(TYPE_CHECKER, decl, method, params, n_params, if_fail, iter, variant_extract) \ DBUS_CALL_WITH_RETURN_FULL_BASE (TYPE_CHECKER, decl, method, params, n_params, if_fail, variant_extract, DBUS_PREPARE_EXTRACTION(iter)) #define DBUS_CALL_WITH_RETURN_BASE(TYPE_CHECKER, decl, method, params, n_params, if_fail, variant_extract) \ DBUS_CALL_WITH_RETURN_BASE_FULL(TYPE_CHECKER, decl, method, params, n_params, if_fail, TRUE, variant_extract) /*************************************/ /* Methods / Sync / Impl - No return */ /*************************************/ #define DBUS_CALL_NO_PARAM_NO_RETURN_BASE(TYPE_CHECKER, method) \ DBUS_CALL_NO_RETURN_BASE (TYPE_CHECKER, {}, method, NULL, 0) #define DBUS_CALL_ONE_PARAMV_NO_RETURN_BASE(TYPE_CHECKER, paramv, method) \ DBUS_CALL_NO_RETURN_BASE (TYPE_CHECKER, {}, method, ¶mv, 1) #define DBUS_CALL_ONE_PARAM_NO_RETURN_BASE(TYPE_CHECKER, param_type, param_name, method) \ DBUS_CALL_NO_RETURN_BASE (TYPE_CHECKER, GVariant *parameter = g_variant_new_##param_type (param_name), method, ¶meter, 1) #define DBUS_CALL_TWO_PARAMS_NO_RETURN_BASE(TYPE_CHECKER, params, method) \ DBUS_CALL_NO_RETURN_BASE (TYPE_CHECKER, {}, method, params, 2) #define DBUS_CALL_THREE_PARAMS_NO_RETURN_BASE(TYPE_CHECKER, params, method) \ DBUS_CALL_NO_RETURN_BASE (TYPE_CHECKER, {}, method, params, 3) /**************************************************/ /* Methods / Sync / Impl - With return - No param */ /**************************************************/ #define DBUS_CALL_NO_PARAM_BASE(TYPE_CHECKER, method, if_fail, variant_extract) \ DBUS_CALL_WITH_RETURN_BASE (TYPE_CHECKER, {}, method, NULL, 0, if_fail, variant_extract) #define DBUS_CALL_NO_PARAM_RET_STRING_BASE(TYPE_CHECKER, method) \ DBUS_CALL_NO_PARAM_BASE (TYPE_CHECKER, method, NULL, return g_variant_dup_string (variant, NULL)) #define DBUS_CALL_NO_PARAM_RET_STRV_BASE(TYPE_CHECKER, method) \ DBUS_CALL_NO_PARAM_BASE (TYPE_CHECKER, method, NULL, return g_variant_dup_strv (variant, NULL)) #define DBUS_CALL_NO_PARAM_RET_ITEMS_BASE(TYPE_CHECKER, method) \ DBUS_CALL_NO_PARAM_BASE (TYPE_CHECKER, method, NULL, return g_paste_util_get_dbus_items_result (variant)) #define DBUS_CALL_ONE_PARAMV_RET_AU_BASE(TYPE_CHECKER, method, paramv, len) \ DBUS_CALL_WITH_RETURN_BASE (TYPE_CHECKER, {}, method, ¶mv, 1, NULL, return g_paste_util_get_dbus_au_result (variant, len)) #define DBUS_CALL_ONE_PARAMV_RET_ITEMS_BASE(TYPE_CHECKER, method, paramv) \ DBUS_CALL_WITH_RETURN_BASE (TYPE_CHECKER, {}, method, ¶mv, 1, NULL, return g_paste_util_get_dbus_items_result (variant)) /******************************************************/ /* Methods / Sync / General - With return - One param */ /******************************************************/ #define DBUS_CALL_ONE_PARAM_RAW_BASE(TYPE_CHECKER, param_type, param_name, method, if_fail, variant_extract) \ DBUS_CALL_WITH_RETURN_RAW_BASE (TYPE_CHECKER, GVariant *parameter = g_variant_new_##param_type (param_name), method, ¶meter, 1, if_fail, variant_extract) #define DBUS_CALL_ONE_PARAM_BASE_FULL(TYPE_CHECKER, param_type, param_name, method, if_fail, iter, variant_extract) \ DBUS_CALL_WITH_RETURN_BASE_FULL (TYPE_CHECKER, GVariant *parameter = g_variant_new_##param_type (param_name), method, ¶meter, 1, if_fail, iter, variant_extract) #define DBUS_CALL_ONE_PARAM_BASE(TYPE_CHECKER, param_type, param_name, method, if_fail, variant_extract) \ DBUS_CALL_ONE_PARAM_BASE_FULL (TYPE_CHECKER, param_type, param_name, method, if_fail, TRUE, variant_extract) /***************************************************/ /* Methods / Sync / Impl - With return - One param */ /***************************************************/ #define DBUS_CALL_ONE_PARAM_RET_BOOL_BASE(TYPE_CHECKER, param_type, param_name, method) \ DBUS_CALL_ONE_PARAM_BASE (TYPE_CHECKER, param_type, param_name, method, FALSE, return g_variant_get_boolean (variant)) #define DBUS_CALL_ONE_PARAM_RET_UINT64_BASE(TYPE_CHECKER, param_type, param_name, method) \ DBUS_CALL_ONE_PARAM_BASE (TYPE_CHECKER, param_type, param_name, method, 0, return g_variant_get_uint64 (variant)) #define DBUS_CALL_ONE_PARAM_RET_STRING_BASE(TYPE_CHECKER, param_type, param_name, method) \ DBUS_CALL_ONE_PARAM_BASE (TYPE_CHECKER, param_type, param_name, method, NULL, return g_variant_dup_string (variant, NULL /* length */)) #define DBUS_CALL_ONE_PARAM_RET_STRV_BASE(TYPE_CHECKER, param_type, param_name, method) \ DBUS_CALL_ONE_PARAM_BASE (TYPE_CHECKER, param_type, param_name, method, NULL, return g_variant_dup_strv (variant, NULL)) #define DBUS_CALL_ONE_PARAM_RET_ITEM_BASE(TYPE_CHECKER, param_type, param_name, method) \ DBUS_CALL_ONE_PARAM_BASE_FULL (TYPE_CHECKER, param_type, param_name, method, NULL, FALSE, return g_paste_util_get_dbus_item_result (variant)) /****************************************************/ /* Methods / Sync / Impl - With return - Two params */ /****************************************************/ #define DBUS_CALL_TWO_PARAMS_BASE(TYPE_CHECKER, params, method, if_fail, variant_extract) \ DBUS_CALL_WITH_RETURN_BASE (TYPE_CHECKER, {}, method, params, 2, if_fail, variant_extract) #define DBUS_CALL_TWO_PARAMS_RET_UINT64_BASE(TYPE_CHECKER, params, method) \ DBUS_CALL_TWO_PARAMS_BASE(TYPE_CHECKER, params, method, 0, return g_variant_get_uint64 (variant)) #define DBUS_CALL_THREE_PARAMS_BASE(TYPE_CHECKER, params, method, if_fail, variant_extract) \ DBUS_CALL_WITH_RETURN_BASE (TYPE_CHECKER, {}, method, params, 3, if_fail, variant_extract) #define DBUS_CALL_THREE_PARAMS_RET_UINT32_BASE(TYPE_CHECKER, params, method) \ DBUS_CALL_THREE_PARAMS_BASE(TYPE_CHECKER, params, method, 0, return g_variant_get_uint32 (variant)) /************************/ /* Properties / Getters */ /************************/ #define DBUS_GET_PROPERTY_INIT(TYPE_CHECKER, property, _default) \ g_return_val_if_fail (_G_PASTE_IS_##TYPE_CHECKER (self), _default); \ g_autoptr (GVariant) result = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (self), \ property); \ if (!result) \ return _default #define DBUS_GET_BOOLEAN_PROPERTY_BASE(TYPE_CHECKER, property) \ DBUS_GET_PROPERTY_INIT (TYPE_CHECKER, property, FALSE); \ return g_variant_get_boolean (result) #define DBUS_GET_STRING_PROPERTY_BASE(TYPE_CHECKER, property) \ DBUS_GET_PROPERTY_INIT (TYPE_CHECKER, property, NULL); \ return g_variant_dup_string (result, NULL) /************************/ /* Properties / Setters */ /************************/ #define DBUS_SET_GENERIC_PROPERTY_BASE(TYPE_CHECKER, iface, property, value, vtype) \ g_return_val_if_fail (_G_PASTE_IS_##TYPE_CHECKER (self), FALSE); \ GVariant *prop[] = { \ g_variant_new_string (iface), \ g_variant_new_string (property), \ g_variant_new_variant (g_variant_new_##vtype (value)) \ }; \ g_autoptr (GVariant) result = g_dbus_proxy_call_sync (G_DBUS_PROXY (self), \ "org.freedesktop.DBus.Properties.Set", \ g_variant_new_tuple (prop, 3), \ G_DBUS_CALL_FLAGS_NONE, \ -1, \ NULL, /* cancellable */ \ error); \ return !!result #define DBUS_SET_BOOLEAN_PROPERTY_BASE(TYPE_CHECKER, iface, property, value) \ DBUS_SET_GENERIC_PROPERTY_BASE (TYPE_CHECKER, iface, property, value, boolean) G_END_DECLS #endif /*__GI_SCANNER__ */ Keruspe-GPaste-724def1/src/libgpaste/gpaste/gpaste-gnome-shell-client.c000066400000000000000000000640721521206431300260740ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #include #include #include #define G_PASTE_GNOME_SHELL_OBJECT_PATH "/org/gnome/Shell" #define G_PASTE_GNOME_SHELL_INTERFACE_NAME "org.gnome.Shell" #define G_PASTE_GNOME_SHELL_GRAB_ACCELERATOR "GrabAccelerator" #define G_PASTE_GNOME_SHELL_GRAB_ACCELERATORS "GrabAccelerators" #define G_PASTE_GNOME_SHELL_UNGRAB_ACCELERATOR "UngrabAccelerator" #define G_PASTE_GNOME_SHELL_SIG_ACCELERATOR_ACTIVATED "AcceleratorActivated" #define G_PASTE_GNOME_SHELL_INTERFACE \ "" \ "" \ "" \ "" \ "" \ "" \ "" \ "" \ "" \ "" \ "" \ "" \ "" \ "" \ "" \ "" \ "" \ "" \ "" \ "" \ "" \ "" typedef struct { GHashTable *id_to_action; /* gchar* (owned) → GUINT_TO_POINTER (guint32) */ gchar **stored_ids; /* NULL-terminated, owned — saved for re-grab */ gchar **stored_accels; /* NULL-terminated, owned — saved for re-grab */ gsize stored_n; gboolean grabbing; guint64 retries; guint retry_source; guint64 shell_watch; } GPasteGnomeShellClientPrivate; struct _GPasteGnomeShellClient { GDBusProxy parent_instance; }; static void gnome_shell_client_provider_init (GPasteKeybindingProviderInterface *iface); G_PASTE_DEFINE_TYPE_WITH_PRIVATE_AND_INTERFACE (GnomeShellClient, gnome_shell_client, G_TYPE_DBUS_PROXY, G_PASTE_TYPE_KEYBINDING_PROVIDER, gnome_shell_client_provider_init) enum { ACCELERATOR_ACTIVATED, LAST_SIGNAL }; static guint signals[LAST_SIGNAL] = { 0 }; /*******************/ /* Methods / Async */ /*******************/ #define DBUS_CALL_ONE_PARAM_ASYNC(method, param_type, param_name) \ DBUS_CALL_ONE_PARAM_ASYNC_BASE (GNOME_SHELL_CLIENT, param_type, param_name, G_PASTE_GNOME_SHELL_##method) #define DBUS_CALL_ONE_PARAMV_ASYNC(method, paramv) \ DBUS_CALL_ONE_PARAMV_ASYNC_BASE (GNOME_SHELL_CLIENT, paramv, G_PASTE_GNOME_SHELL_##method) #define DBUS_CALL_THREE_PARAMS_ASYNC(method, params) \ DBUS_CALL_THREE_PARAMS_ASYNC_BASE (GNOME_SHELL_CLIENT, params, G_PASTE_GNOME_SHELL_##method) /****************************/ /* Methods / Async - Finish */ /****************************/ #define DBUS_ASYNC_FINISH_RET_BOOL \ DBUS_ASYNC_FINISH_RET_BOOL_BASE (GNOME_SHELL_CLIENT) #define DBUS_ASYNC_FINISH_RET_AU \ DBUS_ASYNC_FINISH_RET_AU_BASE (GNOME_SHELL_CLIENT, NULL) #define DBUS_ASYNC_FINISH_RET_UINT32 \ DBUS_ASYNC_FINISH_RET_UINT32_BASE (GNOME_SHELL_CLIENT) /********************************/ /* Methods / Sync - With return */ /********************************/ #define DBUS_CALL_ONE_PARAM_RET_BOOL(method, param_type, param_name) \ DBUS_CALL_ONE_PARAM_RET_BOOL_BASE (GNOME_SHELL_CLIENT, param_type, param_name, G_PASTE_GNOME_SHELL_##method) #define DBUS_CALL_ONE_PARAMV_RET_AU(method, paramv) \ DBUS_CALL_ONE_PARAMV_RET_AU_BASE (GNOME_SHELL_CLIENT, G_PASTE_GNOME_SHELL_##method, paramv, NULL) #define DBUS_CALL_THREE_PARAMS_RET_UINT32(method, params) \ DBUS_CALL_THREE_PARAMS_RET_UINT32_BASE (GNOME_SHELL_CLIENT, params, G_PASTE_GNOME_SHELL_##method) /******************/ /* Methods / Sync */ /******************/ /** * g_paste_gnome_shell_client_grab_accelerator_sync: * @self: a #GPasteGnomeShellClient instance * @accelerator: a #GPasteGnomeShellAccelerator instance * @error: a #GError * * Grab a keybinding * * Returns: the action id corresponding */ G_PASTE_VISIBLE guint32 g_paste_gnome_shell_client_grab_accelerator_sync (GPasteGnomeShellClient *self, GPasteGnomeShellAccelerator accelerator, GError **error) { GVariant *accel[] = { g_variant_new_string (accelerator.accelerator), g_variant_new_uint32 (accelerator.grab_flags), g_variant_new_uint32 (accelerator.mode_flags) }; DBUS_CALL_THREE_PARAMS_RET_UINT32 (GRAB_ACCELERATOR, accel); } /** * g_paste_gnome_shell_client_grab_accelerators_sync: * @self: a #GPasteGnomeShellClient instance * @accelerators: (array): an array of #GPasteGnomeShellAccelerator instances * @error: a #GError * * Grab some keybindings * * Returns: the action ids corresponding */ G_PASTE_VISIBLE guint32 * g_paste_gnome_shell_client_grab_accelerators_sync (GPasteGnomeShellClient *self, GPasteGnomeShellAccelerator *accelerators, GError **error) { g_auto (GVariantBuilder) builder; guint64 n_accelerators = 0; g_variant_builder_init (&builder, G_VARIANT_TYPE_ARRAY); for (GPasteGnomeShellAccelerator *accelerator = &accelerators[0]; accelerator->accelerator; accelerator = &accelerators[++n_accelerators]) { g_variant_builder_open (&builder, G_VARIANT_TYPE_TUPLE); g_variant_builder_add_value (&builder, g_variant_new_string (accelerator->accelerator)); g_variant_builder_add_value (&builder, g_variant_new_uint32 (accelerator->grab_flags)); g_variant_builder_add_value (&builder, g_variant_new_uint32 (accelerator->mode_flags)); g_variant_builder_close (&builder); } GVariant *array = g_variant_builder_end (&builder); DBUS_CALL_ONE_PARAMV_RET_AU (GRAB_ACCELERATORS, array); } /** * g_paste_gnome_shell_client_ungrab_accelerator_sync: * @self: a #GPasteGnomeShellClient instance * @action: the action id corresponding to the keybinding * @error: a #GError * * Ungrab a keybinding * * Returns: whether the ungrab was succesful or not */ G_PASTE_VISIBLE gboolean g_paste_gnome_shell_client_ungrab_accelerator_sync (GPasteGnomeShellClient *self, guint32 action, GError **error) { DBUS_CALL_ONE_PARAM_RET_BOOL (UNGRAB_ACCELERATOR, uint32, action); } /*******************/ /* Methods / Async */ /*******************/ /** * g_paste_gnome_shell_client_grab_accelerator: * @self: a #GPasteGnomeShellClient instance * @accelerator: a #GPasteGnomeShellAccelerator instance * @callback: (nullable): A #GAsyncReadyCallback to call when the request is satisfied or %NULL if you don't * care about the result of the method invocation. * @user_data: (nullable): The data to pass to @callback. * * Grab a keybinding */ G_PASTE_VISIBLE void g_paste_gnome_shell_client_grab_accelerator (GPasteGnomeShellClient *self, GPasteGnomeShellAccelerator accelerator, GAsyncReadyCallback callback, gpointer user_data) { GVariant *accel[] = { g_variant_new_string (accelerator.accelerator), g_variant_new_uint32 (accelerator.grab_flags), g_variant_new_uint32 (accelerator.mode_flags) }; DBUS_CALL_THREE_PARAMS_ASYNC (GRAB_ACCELERATOR, accel); } /** * g_paste_gnome_shell_client_grab_accelerators: * @self: a #GPasteGnomeShellClient instance * @accelerators: (array): an array of #GPasteGnomeShellAccelerator instances * @callback: (nullable): A #GAsyncReadyCallback to call when the request is satisfied or %NULL if you don't * care about the result of the method invocation. * @user_data: (nullable): The data to pass to @callback. * * Grab some keybindings */ G_PASTE_VISIBLE void g_paste_gnome_shell_client_grab_accelerators (GPasteGnomeShellClient *self, GPasteGnomeShellAccelerator *accelerators, GAsyncReadyCallback callback, gpointer user_data) { g_auto (GVariantBuilder) builder; guint64 n_accelerators = 0; g_variant_builder_init (&builder, G_VARIANT_TYPE_ARRAY); for (GPasteGnomeShellAccelerator *accelerator = &accelerators[0]; accelerator->accelerator; accelerator = &accelerators[++n_accelerators]) { g_variant_builder_open (&builder, G_VARIANT_TYPE_TUPLE); g_variant_builder_add_value (&builder, g_variant_new_string (accelerator->accelerator)); g_variant_builder_add_value (&builder, g_variant_new_uint32 (accelerator->grab_flags)); g_variant_builder_add_value (&builder, g_variant_new_uint32 (accelerator->mode_flags)); g_variant_builder_close (&builder); } GVariant *array = g_variant_builder_end (&builder); DBUS_CALL_ONE_PARAMV_ASYNC (GRAB_ACCELERATORS, array); } /** * g_paste_gnome_shell_client_ungrab_accelerator: * @self: a #GPasteGnomeShellClient instance * @action: the action id corresponding to the keybinding * @callback: (nullable): A #GAsyncReadyCallback to call when the request is satisfied or %NULL if you don't * care about the result of the method invocation. * @user_data: (nullable): The data to pass to @callback. * * Ungrab a keybinding */ G_PASTE_VISIBLE void g_paste_gnome_shell_client_ungrab_accelerator (GPasteGnomeShellClient *self, guint32 action, GAsyncReadyCallback callback, gpointer user_data) { DBUS_CALL_ONE_PARAM_ASYNC (UNGRAB_ACCELERATOR, uint32, action); } /****************************/ /* Methods / Async - Finish */ /****************************/ /** * g_paste_gnome_shell_client_grab_accelerator_finish: * @self: a #GPasteGnomeShellClient instance * @result: A #GAsyncResult obtained from the #GAsyncReadyCallback passed to the async call. * @error: a #GError * * Grab a keybinding * * Returns: the action id corresultponding */ G_PASTE_VISIBLE guint32 g_paste_gnome_shell_client_grab_accelerator_finish (GPasteGnomeShellClient *self, GAsyncResult *result, GError **error) { DBUS_ASYNC_FINISH_RET_UINT32; } /** * g_paste_gnome_shell_client_grab_accelerators_finish: * @self: a #GPasteGnomeShellClient instance * @result: A #GAsyncResult obtained from the #GAsyncReadyCallback passed to the async call. * @error: a #GError * * Grab some keybindings * * Returns: the action ids corresultponding */ G_PASTE_VISIBLE guint32 * g_paste_gnome_shell_client_grab_accelerators_finish (GPasteGnomeShellClient *self, GAsyncResult *result, GError **error) { DBUS_ASYNC_FINISH_RET_AU; } /** * g_paste_gnome_shell_client_ungrab_accelerator_finish: * @self: a #GPasteGnomeShellClient instance * @result: A #GAsyncResult obtained from the #GAsyncReadyCallback passed to the async call. * @error: a #GError * * Ungrab a keybinding * * Returns: whether the ungrab was succesful or not */ G_PASTE_VISIBLE gboolean g_paste_gnome_shell_client_ungrab_accelerator_finish (GPasteGnomeShellClient *self, GAsyncResult *result, GError **error) { DBUS_ASYNC_FINISH_RET_BOOL; } /**************************/ /* GPasteKeybindingProvider */ /**************************/ typedef struct { GPasteGnomeShellClient *client; gchar **ids; /* owned copy for mapping after async completes */ gsize n; } _GrabAllContext; static gboolean retry_grab_all (gpointer user_data); static void grab_all_cb (GObject *source_object, GAsyncResult *res, gpointer user_data) { _GrabAllContext *ctx = user_data; GPasteGnomeShellClientPrivate *priv = g_paste_gnome_shell_client_get_instance_private (ctx->client); g_autoptr (GError) error = NULL; g_autofree guint32 *actions = g_paste_gnome_shell_client_grab_accelerators_finish ( G_PASTE_GNOME_SHELL_CLIENT (source_object), res, &error); if (error) { if (error->code == G_DBUS_ERROR_UNKNOWN_METHOD && priv->retries < 10) { ++priv->retries; priv->retry_source = g_timeout_add_seconds (1, retry_grab_all, ctx->client); g_source_set_name_by_id (priv->retry_source, "[GPaste] gnome-shell grab retry"); } else { priv->retries = 0; g_warning ("Couldn't grab keybindings with gnome-shell: %s", error->message); } } else { priv->retries = 0; for (gsize i = 0; i < ctx->n; i++) { g_hash_table_insert (priv->id_to_action, g_strdup (ctx->ids[i]), GUINT_TO_POINTER (actions[i])); } } priv->grabbing = FALSE; g_strfreev (ctx->ids); g_object_unref (ctx->client); g_free (ctx); } static void gnome_shell_client_grab_all (GPasteKeybindingProvider *provider, const GPasteKeybindingAccelerator *accels) { GPasteGnomeShellClient *self = G_PASTE_GNOME_SHELL_CLIENT (provider); GPasteGnomeShellClientPrivate *priv = g_paste_gnome_shell_client_get_instance_private (self); if (priv->grabbing) return; g_clear_handle_id (&priv->retry_source, g_source_remove); g_hash_table_remove_all (priv->id_to_action); gsize n = 0; for (const GPasteKeybindingAccelerator *a = accels; a->id; a++) n++; if (!n) { g_clear_pointer (&priv->stored_ids, g_strfreev); g_clear_pointer (&priv->stored_accels, g_strfreev); priv->stored_n = 0; return; } /* Copy accel data to owned storage BEFORE freeing the old stored arrays, * since the caller may have built accels[] from priv->stored_ids/stored_accels. */ gchar **new_ids = g_new (gchar *, n + 1); gchar **new_accels = g_new (gchar *, n + 1); for (gsize i = 0; i < n; i++) { new_ids[i] = g_strdup (accels[i].id); new_accels[i] = g_strdup (accels[i].accelerator); } new_ids[n] = NULL; new_accels[n] = NULL; g_strfreev (priv->stored_ids); g_strfreev (priv->stored_accels); priv->stored_ids = new_ids; priv->stored_accels = new_accels; priv->stored_n = n; g_autofree GPasteGnomeShellAccelerator *shell_accels = g_new (GPasteGnomeShellAccelerator, n + 1); for (gsize i = 0; i < n; i++) shell_accels[i] = G_PASTE_GNOME_SHELL_ACCELERATOR (priv->stored_accels[i]); shell_accels[n].accelerator = NULL; _GrabAllContext *ctx = g_new (_GrabAllContext, 1); ctx->client = g_object_ref (self); ctx->ids = g_strdupv (priv->stored_ids); ctx->n = n; priv->grabbing = TRUE; g_paste_gnome_shell_client_grab_accelerators (self, shell_accels, grab_all_cb, ctx); } static gboolean retry_grab_all (gpointer user_data) { GPasteGnomeShellClient *self = user_data; GPasteGnomeShellClientPrivate *priv = g_paste_gnome_shell_client_get_instance_private (self); priv->retry_source = 0; if (!priv->stored_ids || priv->stored_n == 0) return G_SOURCE_REMOVE; g_autofree GPasteKeybindingAccelerator *tmp = g_new (GPasteKeybindingAccelerator, priv->stored_n + 1); for (gsize i = 0; i < priv->stored_n; i++) tmp[i] = G_PASTE_KEYBINDING_ACCELERATOR (priv->stored_ids[i], priv->stored_accels[i], NULL); tmp[priv->stored_n].id = NULL; gnome_shell_client_grab_all (G_PASTE_KEYBINDING_PROVIDER (self), tmp); return G_SOURCE_REMOVE; } static void gnome_shell_client_ungrab_all (GPasteKeybindingProvider *provider) { GPasteGnomeShellClient *self = G_PASTE_GNOME_SHELL_CLIENT (provider); GPasteGnomeShellClientPrivate *priv = g_paste_gnome_shell_client_get_instance_private (self); g_clear_handle_id (&priv->retry_source, g_source_remove); GHashTableIter iter; gpointer key G_GNUC_UNUSED, value; g_hash_table_iter_init (&iter, priv->id_to_action); while (g_hash_table_iter_next (&iter, &key, &value)) g_paste_gnome_shell_client_ungrab_accelerator (self, GPOINTER_TO_UINT (value), NULL, NULL); g_hash_table_remove_all (priv->id_to_action); g_clear_pointer (&priv->stored_ids, g_strfreev); g_clear_pointer (&priv->stored_accels, g_strfreev); priv->stored_n = 0; priv->grabbing = FALSE; priv->retries = 0; } static void gnome_shell_client_provider_init (GPasteKeybindingProviderInterface *iface) { iface->grab_all = gnome_shell_client_grab_all; iface->ungrab_all = gnome_shell_client_ungrab_all; } /****************************/ /* Shell watch / D-Bus sig */ /****************************/ static void on_shell_appeared (GDBusConnection *connection G_GNUC_UNUSED, const gchar *name G_GNUC_UNUSED, const gchar *name_owner G_GNUC_UNUSED, gpointer user_data) { GPasteGnomeShellClient *self = user_data; GPasteGnomeShellClientPrivate *priv = g_paste_gnome_shell_client_get_instance_private (self); if (!priv->stored_ids || priv->stored_n == 0) return; g_autofree GPasteKeybindingAccelerator *tmp = g_new (GPasteKeybindingAccelerator, priv->stored_n + 1); for (gsize i = 0; i < priv->stored_n; i++) tmp[i] = G_PASTE_KEYBINDING_ACCELERATOR (priv->stored_ids[i], priv->stored_accels[i], NULL); tmp[priv->stored_n].id = NULL; gnome_shell_client_grab_all (G_PASTE_KEYBINDING_PROVIDER (self), tmp); } static void on_shell_vanished (GDBusConnection *connection G_GNUC_UNUSED, const gchar *name G_GNUC_UNUSED, gpointer user_data) { GPasteGnomeShellClient *self = user_data; GPasteGnomeShellClientPrivate *priv = g_paste_gnome_shell_client_get_instance_private (self); g_hash_table_remove_all (priv->id_to_action); priv->grabbing = FALSE; } static void g_paste_gnome_shell_client_g_signal (GDBusProxy *proxy, const gchar *sender_name G_GNUC_UNUSED, const gchar *signal_name, GVariant *parameters) { GPasteGnomeShellClient *self = G_PASTE_GNOME_SHELL_CLIENT (proxy); if (g_paste_str_equal (signal_name, G_PASTE_GNOME_SHELL_SIG_ACCELERATOR_ACTIVATED)) { GVariantIter params_iter; g_variant_iter_init (¶ms_iter, parameters); g_autoptr (GVariant) action_v = g_variant_iter_next_value (¶ms_iter); G_GNUC_UNUSED g_autoptr (GVariant) params = g_variant_iter_next_value (¶ms_iter); guint32 action = g_variant_get_uint32 (action_v); g_signal_emit (self, signals[ACCELERATOR_ACTIVATED], 0, /* detail */ action, NULL); GPasteGnomeShellClientPrivate *priv = g_paste_gnome_shell_client_get_instance_private (self); GHashTableIter iter; gpointer key, value; g_hash_table_iter_init (&iter, priv->id_to_action); while (g_hash_table_iter_next (&iter, &key, &value)) { if (GPOINTER_TO_UINT (value) == action) { g_paste_keybinding_provider_emit_keybinding_activated (G_PASTE_KEYBINDING_PROVIDER (self), key); break; } } } } static void g_paste_gnome_shell_client_dispose (GObject *object) { GPasteGnomeShellClient *self = G_PASTE_GNOME_SHELL_CLIENT (object); GPasteGnomeShellClientPrivate *priv = g_paste_gnome_shell_client_get_instance_private (self); g_clear_handle_id (&priv->retry_source, g_source_remove); if (priv->shell_watch) { g_bus_unwatch_name (priv->shell_watch); priv->shell_watch = 0; } g_clear_pointer (&priv->id_to_action, g_hash_table_unref); g_clear_pointer (&priv->stored_ids, g_strfreev); g_clear_pointer (&priv->stored_accels, g_strfreev); G_OBJECT_CLASS (g_paste_gnome_shell_client_parent_class)->dispose (object); } static void g_paste_gnome_shell_client_class_init (GPasteGnomeShellClientClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); object_class->dispose = g_paste_gnome_shell_client_dispose; G_DBUS_PROXY_CLASS (klass)->g_signal = g_paste_gnome_shell_client_g_signal; /** * GPasteGnomeShellClient::accelerator-activated: * @gnome_shell: the object on which the signal was emitted * @id: the id of the activated accelerator * * The "accelerator-activated" signal is emitted when gnome-shell notifies us * that an accelerator has been pressed. */ signals[ACCELERATOR_ACTIVATED] = g_signal_new ("accelerator-activated", G_PASTE_TYPE_GNOME_SHELL_CLIENT, G_SIGNAL_RUN_LAST, 0, /* class offset */ NULL, /* accumulator */ NULL, /* accumulator data */ g_cclosure_marshal_VOID__UINT, G_TYPE_NONE, 1, G_TYPE_UINT); } static void g_paste_gnome_shell_client_init (GPasteGnomeShellClient *self) { GDBusProxy *proxy = G_DBUS_PROXY (self); g_autoptr (GError) error = NULL; g_autoptr (GDBusNodeInfo) gnome_shell_dbus_info = g_dbus_node_info_new_for_xml (G_PASTE_GNOME_SHELL_INTERFACE, &error); g_assert_no_error (error); g_dbus_proxy_set_interface_info (proxy, gnome_shell_dbus_info->interfaces[0]); GPasteGnomeShellClientPrivate *priv = g_paste_gnome_shell_client_get_instance_private (self); priv->id_to_action = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL); priv->stored_ids = NULL; priv->stored_accels = NULL; priv->stored_n = 0; priv->grabbing = FALSE; priv->retries = 0; priv->retry_source = 0; priv->shell_watch = g_bus_watch_name (G_BUS_TYPE_SESSION, G_PASTE_GNOME_SHELL_BUS_NAME, G_BUS_NAME_WATCHER_FLAGS_NONE, on_shell_appeared, on_shell_vanished, self, NULL); } /** * g_paste_gnome_shell_client_new_sync: * @error: Return location for error or %NULL. * * Create a new instance of #GPasteGnomeShellClient * * Returns: a newly allocated #GPasteGnomeShellClient * free it with g_object_unref */ G_PASTE_VISIBLE GPasteGnomeShellClient * g_paste_gnome_shell_client_new_sync (GError **error) { CUSTOM_PROXY_NEW (GNOME_SHELL_CLIENT, GNOME_SHELL, G_PASTE_GNOME_SHELL_BUS_NAME); } /** * g_paste_gnome_shell_client_new: * @callback: Callback function to invoke when the proxy is ready. * @user_data: User data to pass to @callback. * * Create a new instance of #GPasteGnomeShellClient */ G_PASTE_VISIBLE void g_paste_gnome_shell_client_new (GAsyncReadyCallback callback, gpointer user_data) { CUSTOM_PROXY_NEW_ASYNC (GNOME_SHELL_CLIENT, GNOME_SHELL, G_PASTE_GNOME_SHELL_BUS_NAME); } /** * g_paste_gnome_shell_client_new_finsh: * @result: A #GAsyncResult obtained from the #GAsyncReadyCallback function passed to the async ctor. * @error: Return location for error or %NULL. * * Create a new instance of #GPasteGnomeShellClient * * Returns: a newly allocated #GPasteGnomeShellClient * free it with g_object_unref */ G_PASTE_VISIBLE GPasteGnomeShellClient * g_paste_gnome_shell_client_new_finish (GAsyncResult *result, GError **error) { CUSTOM_PROXY_NEW_FINISH (GNOME_SHELL_CLIENT); } Keruspe-GPaste-724def1/src/libgpaste/gpaste/gpaste-gnome-shell-client.h000066400000000000000000000154701521206431300260770ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #if !defined (__G_PASTE_H_INSIDE__) && !defined (G_PASTE_COMPILATION) #error "Only can be included directly." #endif #pragma once #include G_BEGIN_DECLS #define G_PASTE_GNOME_SHELL_BUS_NAME "org.gnome.Shell" /* ShellActionMode stolen from gnome-shell */ /** * GPasteGnomeShellActionMode: * @G_PASTE_GNOME_SHELL_ACTION_MODE_NONE: block action * @G_PASTE_GNOME_SHELL_ACTION_MODE_NORMAL: allow action when in window mode, * e.g. when the focus is in an application window * @G_PASTE_GNOME_SHELL_ACTION_MODE_OVERVIEW: allow action while the overview * is active * @G_PASTE_GNOME_SHELL_ACTION_MODE_LOCK_SCREEN: allow action when the screen * is locked, e.g. when the screen shield is shown * @G_PASTE_GNOME_SHELL_ACTION_MODE_UNLOCK_SCREEN: allow action in the unlock * dialog * @G_PASTE_GNOME_SHELL_ACTION_MODE_LOGIN_SCREEN: allow action in the login screen * @G_PASTE_GNOME_SHELL_ACTION_MODE_SYSTEM_MODAL: allow action when a system modal * dialog (e.g. authentification or session dialogs) is open * @G_PASTE_GNOME_SHELL_ACTION_MODE_LOOKING_GLASS: allow action in looking glass * @G_PASTE_GNOME_SHELL_ACTION_MODE_POPUP: allow action while a shell menu is open * @G_PASTE_GNOME_SHELL_ACTION_MODE_ALL: always allow action * * Controls in which GNOME Shell states an action (like keybindings and gestures) * should be handled. */ typedef enum { G_PASTE_GNOME_SHELL_ACTION_MODE_NONE = 0, G_PASTE_GNOME_SHELL_ACTION_MODE_NORMAL = 1 << 0, G_PASTE_GNOME_SHELL_ACTION_MODE_OVERVIEW = 1 << 1, G_PASTE_GNOME_SHELL_ACTION_MODE_LOCK_SCREEN = 1 << 2, G_PASTE_GNOME_SHELL_ACTION_MODE_UNLOCK_SCREEN = 1 << 3, G_PASTE_GNOME_SHELL_ACTION_MODE_LOGIN_SCREEN = 1 << 4, G_PASTE_GNOME_SHELL_ACTION_MODE_SYSTEM_MODAL = 1 << 5, G_PASTE_GNOME_SHELL_ACTION_MODE_LOOKING_GLASS = 1 << 6, G_PASTE_GNOME_SHELL_ACTION_MODE_POPUP = 1 << 7, G_PASTE_GNOME_SHELL_ACTION_MODE_ALL = ~0, } GPasteGnomeShellActionMode; /* MetaKeyBindingFlags stolen from mutter */ /** * GPasteMetaKeyBindingFlags: * @G_PASTE_META_KEY_BINDING_NONE: none * @G_PASTE_META_KEY_BINDING_PER_WINDOW: per-window * @G_PASTE_META_KEY_BINDING_BUILTIN: built-in * @G_PASTE_META_KEY_BINDING_IS_REVERSED: is reversed * @G_PASTE_META_KEY_BINDING_NON_MASKABLE: always active */ typedef enum { G_PASTE_META_KEY_BINDING_NONE = 0, G_PASTE_META_KEY_BINDING_PER_WINDOW = 1 << 0, G_PASTE_META_KEY_BINDING_BUILTIN = 1 << 1, G_PASTE_META_KEY_BINDING_IS_REVERSED = 1 << 2, G_PASTE_META_KEY_BINDING_NON_MASKABLE = 1 << 3, G_PASTE_META_KEY_BINDING_IGNORE_AUTOREPEAT = 1 << 4, } GPasteMetaKeyBindingFlags; #define G_PASTE_TYPE_GNOME_SHELL_CLIENT (g_paste_gnome_shell_client_get_type ()) typedef struct { const gchar *accelerator; GPasteMetaKeyBindingFlags mode_flags; GPasteGnomeShellActionMode grab_flags; } GPasteGnomeShellAccelerator; #define G_PASTE_GNOME_SHELL_ACCELERATOR(accelerator) ((GPasteGnomeShellAccelerator) {accelerator, G_PASTE_META_KEY_BINDING_NONE, G_PASTE_GNOME_SHELL_ACTION_MODE_ALL}) G_PASTE_FINAL_TYPE (GnomeShellClient, gnome_shell_client, GNOME_SHELL_CLIENT, GDBusProxy) /*******************/ /* Methods / Sync */ /*******************/ guint32 g_paste_gnome_shell_client_grab_accelerator_sync (GPasteGnomeShellClient *self, GPasteGnomeShellAccelerator accelerator, GError **error); guint32 *g_paste_gnome_shell_client_grab_accelerators_sync (GPasteGnomeShellClient *self, GPasteGnomeShellAccelerator *accelerators, GError **error); gboolean g_paste_gnome_shell_client_ungrab_accelerator_sync (GPasteGnomeShellClient *self, guint32 action, GError **error); /********************/ /* Methods / Async */ /********************/ void g_paste_gnome_shell_client_grab_accelerator (GPasteGnomeShellClient *self, GPasteGnomeShellAccelerator accelerator, GAsyncReadyCallback callback, gpointer user_data); void g_paste_gnome_shell_client_grab_accelerators (GPasteGnomeShellClient *self, GPasteGnomeShellAccelerator *accelerators, GAsyncReadyCallback callback, gpointer user_data); void g_paste_gnome_shell_client_ungrab_accelerator (GPasteGnomeShellClient *self, guint32 action, GAsyncReadyCallback callback, gpointer user_data); /*****************************/ /* Methods / Async - Finish */ /*****************************/ guint32 g_paste_gnome_shell_client_grab_accelerator_finish (GPasteGnomeShellClient *self, GAsyncResult *result, GError **error); guint32 *g_paste_gnome_shell_client_grab_accelerators_finish (GPasteGnomeShellClient *self, GAsyncResult *result, GError **error); gboolean g_paste_gnome_shell_client_ungrab_accelerator_finish (GPasteGnomeShellClient *self, GAsyncResult *result, GError **error); /****************/ /* Constructors */ /****************/ GPasteGnomeShellClient *g_paste_gnome_shell_client_new_sync (GError **error); void g_paste_gnome_shell_client_new (GAsyncReadyCallback callback, gpointer user_data); GPasteGnomeShellClient *g_paste_gnome_shell_client_new_finish (GAsyncResult *result, GError **error); G_END_DECLS Keruspe-GPaste-724def1/src/libgpaste/gpaste/gpaste-gsettings-keys.h000066400000000000000000000050241521206431300253630ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #if !defined (__G_PASTE_H_INSIDE__) && !defined (G_PASTE_COMPILATION) #error "Only can be included directly." #endif #pragma once #include G_BEGIN_DECLS #define G_PASTE_SETTINGS_NAME "org.gnome.GPaste" #define G_PASTE_SETTINGS_PATH "/org/gnome/GPaste/" #define G_PASTE_SHELL_SETTINGS_NAME "org.gnome.shell" #define G_PASTE_CLOSE_ON_SELECT_SETTING "close-on-select" #define G_PASTE_ELEMENT_SIZE_SETTING "element-size" #define G_PASTE_EMPTY_HISTORY_CONFIRMATION_SETTING "empty-history-confirmation" #define G_PASTE_GROWING_LINES_SETTING "growing-lines" #define G_PASTE_HISTORY_NAME_SETTING "history-name" #define G_PASTE_IMAGES_PREVIEW_SETTING "images-preview" #define G_PASTE_IMAGES_PREVIEW_SIZE_SETTING "images-preview-size" #define G_PASTE_IMAGES_SUPPORT_SETTING "images-support" #define G_PASTE_LAUNCH_UI_SETTING "launch-ui" #define G_PASTE_MAKE_PASSWORD_SETTING "make-password" #define G_PASTE_MAX_DISPLAYED_HISTORY_SIZE_SETTING "max-displayed-history-size" #define G_PASTE_MAX_HISTORY_SIZE_SETTING "max-history-size" #define G_PASTE_MAX_MEMORY_USAGE_SETTING "max-memory-usage" #define G_PASTE_MAX_TEXT_ITEM_SIZE_SETTING "max-text-item-size" #define G_PASTE_MIN_TEXT_ITEM_SIZE_SETTING "min-text-item-size" #define G_PASTE_OPEN_CENTERED_SETTING "open-centered" #define G_PASTE_POP_SETTING "pop" #define G_PASTE_PRIMARY_TO_HISTORY_SETTING "primary-to-history" #define G_PASTE_RICH_TEXT_SUPPORT_SETTING "rich-text-support" #define G_PASTE_SAVE_HISTORY_SETTING "save-history" #define G_PASTE_SHOW_HISTORY_SETTING "show-history" #define G_PASTE_SYNC_CLIPBOARD_TO_PRIMARY_SETTING "sync-clipboard-to-primary" #define G_PASTE_SYNC_PRIMARY_TO_CLIPBOARD_SETTING "sync-primary-to-clipboard" #define G_PASTE_SYNCHRONIZE_CLIPBOARDS_SETTING "synchronize-clipboards" #define G_PASTE_TRACK_CHANGES_SETTING "track-changes" #define G_PASTE_TRACK_EXTENSION_STATE_SETTING "track-extension-state" #define G_PASTE_TRIM_ITEMS_SETTING "trim-items" #define G_PASTE_UPLOAD_SETTING "upload" #define G_PASTE_EXTENSION_ENABLED_SETTING "extension-enabled" #define G_PASTE_SHELL_ENABLED_EXTENSIONS_SETTING "enabled-extensions" G_END_DECLS Keruspe-GPaste-724def1/src/libgpaste/gpaste/gpaste-item-enums.c000066400000000000000000000016631521206431300244660ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #include #include G_PASTE_VISIBLE GType g_paste_item_kind_get_type (void) { static GType etype = 0; if (!etype) { static const GEnumValue values[] = { { G_PASTE_ITEM_KIND_TEXT, "G_PASTE_ITEM_KIND_TEXT", "Text" }, { G_PASTE_ITEM_KIND_URIS, "G_PASTE_ITEM_KIND_URIS", "Uris" }, { G_PASTE_ITEM_KIND_IMAGE, "G_PASTE_ITEM_KIND_IMAGE", "Image" }, { G_PASTE_ITEM_KIND_PASSWORD, "G_PASTE_ITEM_KIND_PASSWORD", "Password" }, { G_PASTE_ITEM_KIND_INVALID, NULL, NULL } }; etype = g_enum_register_static (g_intern_static_string ("GPasteItemKind"), values); g_type_class_ref (etype); } return etype; } Keruspe-GPaste-724def1/src/libgpaste/gpaste/gpaste-item-enums.h000066400000000000000000000011531521206431300244650ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #if !defined (__G_PASTE_H_INSIDE__) && !defined (G_PASTE_COMPILATION) #error "Only can be included directly." #endif #pragma once #include G_BEGIN_DECLS typedef enum { G_PASTE_ITEM_KIND_TEXT = 1, G_PASTE_ITEM_KIND_URIS, G_PASTE_ITEM_KIND_IMAGE, G_PASTE_ITEM_KIND_PASSWORD, G_PASTE_ITEM_KIND_INVALID = 0 } GPasteItemKind; #define G_PASTE_TYPE_ITEM_KIND (g_paste_item_kind_get_type ()) GType g_paste_item_kind_get_type (void); G_END_DECLS Keruspe-GPaste-724def1/src/libgpaste/gpaste/gpaste-keybinding-provider.c000066400000000000000000000057161521206431300263610ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #include enum { KEYBINDING_ACTIVATED, LAST_SIGNAL }; static guint signals[LAST_SIGNAL] = { 0 }; G_DEFINE_INTERFACE (GPasteKeybindingProvider, g_paste_keybinding_provider, G_TYPE_OBJECT) static void g_paste_keybinding_provider_default_init (GPasteKeybindingProviderInterface *iface G_GNUC_UNUSED) { /** * GPasteKeybindingProvider::keybinding-activated: * @provider: the object on which the signal was emitted * @id: the id of the activated shortcut (its dconf key) * * The "keybinding-activated" signal is emitted when a registered shortcut * is pressed by the user. */ signals[KEYBINDING_ACTIVATED] = g_signal_new ("keybinding-activated", G_TYPE_FROM_INTERFACE (iface), G_SIGNAL_RUN_LAST, 0, NULL, /* accumulator */ NULL, /* accumulator data */ g_cclosure_marshal_VOID__STRING, G_TYPE_NONE, 1, G_TYPE_STRING); } /** * g_paste_keybinding_provider_emit_keybinding_activated: * @self: a #GPasteKeybindingProvider * @id: the id of the activated shortcut (its dconf key) * * Emit the "keybinding-activated" signal on @self. */ G_PASTE_VISIBLE void g_paste_keybinding_provider_emit_keybinding_activated (GPasteKeybindingProvider *self, const gchar *id) { g_return_if_fail (G_PASTE_IS_KEYBINDING_PROVIDER (self)); g_return_if_fail (id); g_signal_emit (self, signals[KEYBINDING_ACTIVATED], 0, id); } /** * g_paste_keybinding_provider_grab_all: * @self: a #GPasteKeybindingProvider * @accels: (array): a %NULL-terminated (by id) array of #GPasteKeybindingAccelerator * * Replace all currently registered shortcuts with @accels. */ G_PASTE_VISIBLE void g_paste_keybinding_provider_grab_all (GPasteKeybindingProvider *self, const GPasteKeybindingAccelerator *accels) { g_return_if_fail (G_PASTE_IS_KEYBINDING_PROVIDER (self)); g_return_if_fail (accels); G_PASTE_KEYBINDING_PROVIDER_GET_IFACE (self)->grab_all (self, accels); } /** * g_paste_keybinding_provider_ungrab_all: * @self: a #GPasteKeybindingProvider * * Release all currently registered shortcuts. */ G_PASTE_VISIBLE void g_paste_keybinding_provider_ungrab_all (GPasteKeybindingProvider *self) { g_return_if_fail (G_PASTE_IS_KEYBINDING_PROVIDER (self)); G_PASTE_KEYBINDING_PROVIDER_GET_IFACE (self)->ungrab_all (self); } Keruspe-GPaste-724def1/src/libgpaste/gpaste/gpaste-keybinding-provider.h000066400000000000000000000046051521206431300263620ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #if !defined (__G_PASTE_H_INSIDE__) && !defined (G_PASTE_COMPILATION) #error "Only can be included directly." #endif #pragma once #include G_BEGIN_DECLS /** * GPasteKeybindingAccelerator: * @id: a unique string identifier for this shortcut (the dconf key) * @accelerator: the trigger string (e.g., "V") * @description: a human-readable, translated description shown in the portal UI * * Represents a global shortcut to be registered with a #GPasteKeybindingProvider. * Terminate an array of these with an entry whose @id is %NULL. */ typedef struct { const gchar *id; const gchar *accelerator; const gchar *description; } GPasteKeybindingAccelerator; #define G_PASTE_KEYBINDING_ACCELERATOR(id, accelerator, description) \ ((GPasteKeybindingAccelerator) { (id), (accelerator), (description) }) #define G_PASTE_TYPE_KEYBINDING_PROVIDER (g_paste_keybinding_provider_get_type ()) G_PASTE_VISIBLE G_DECLARE_INTERFACE (GPasteKeybindingProvider, g_paste_keybinding_provider, G_PASTE, KEYBINDING_PROVIDER, GObject) struct _GPasteKeybindingProviderInterface { GTypeInterface parent_iface; /** * GPasteKeybindingProviderInterface::grab_all: * @self: a #GPasteKeybindingProvider * @accels: (array): a %NULL-terminated (by @id) array of #GPasteKeybindingAccelerator * * Replace all currently registered shortcuts with @accels. */ void (*grab_all) (GPasteKeybindingProvider *self, const GPasteKeybindingAccelerator *accels); /** * GPasteKeybindingProviderInterface::ungrab_all: * @self: a #GPasteKeybindingProvider * * Release all currently registered shortcuts. */ void (*ungrab_all) (GPasteKeybindingProvider *self); }; void g_paste_keybinding_provider_grab_all (GPasteKeybindingProvider *self, const GPasteKeybindingAccelerator *accels); void g_paste_keybinding_provider_ungrab_all (GPasteKeybindingProvider *self); void g_paste_keybinding_provider_emit_keybinding_activated (GPasteKeybindingProvider *self, const gchar *id); G_END_DECLS Keruspe-GPaste-724def1/src/libgpaste/gpaste/gpaste-macros.h000066400000000000000000000077451521206431300237030ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #if !defined (__G_PASTE_H_INSIDE__) && !defined (G_PASTE_COMPILATION) #error "Only can be included directly." #endif #pragma once #include #include #include G_BEGIN_DECLS #ifdef G_HAVE_GNUC_VISIBILITY # define G_PASTE_VISIBLE __attribute__((visibility("default"))) #else # define G_PASTE_VISIBLE #endif #define g_paste_str_equal(s1, s2) (!g_strcmp0 (s1, s2)) #define G_PASTE_CONST_CHECKER(TYPE_NAME) \ static inline gboolean \ _G_PASTE_IS_##TYPE_NAME (gconstpointer ptr) { \ return G_PASTE_IS_##TYPE_NAME ((gpointer) ptr); \ } #define G_PASTE_CONST_CLASS_GETTER(TypeName, TYPE_NAME) \ static inline const GPaste##TypeName##Class * \ _G_PASTE_##TYPE_NAME##_GET_CLASS (gconstpointer ptr) { \ return G_PASTE_##TYPE_NAME##_GET_CLASS ((gpointer) ptr); \ } #define G_PASTE_CONST_CASTER(TypeName, TYPE_NAME) \ static inline const GPaste##TypeName * \ _G_PASTE_##TYPE_NAME (gconstpointer ptr) { \ return G_PASTE_##TYPE_NAME ((gpointer) ptr); \ } #define G_PASTE_CONST_FUNCS(TypeName, TYPE_NAME) \ G_PASTE_CONST_CHECKER (TYPE_NAME) \ G_PASTE_CONST_CASTER (TypeName, TYPE_NAME) #define G_PASTE_DERIVABLE_TYPE(TypeName, type_name, TYPE_NAME, ParentTypeName) \ G_PASTE_VISIBLE G_DECLARE_DERIVABLE_TYPE (GPaste##TypeName, g_paste_##type_name, G_PASTE, TYPE_NAME, ParentTypeName) \ G_PASTE_CONST_CLASS_GETTER (TypeName, TYPE_NAME) \ G_PASTE_CONST_FUNCS (TypeName, TYPE_NAME) #define G_PASTE_FINAL_TYPE(TypeName, type_name, TYPE_NAME, ParentTypeName) \ G_PASTE_VISIBLE G_DECLARE_FINAL_TYPE (GPaste##TypeName, g_paste_##type_name, G_PASTE, TYPE_NAME, ParentTypeName) \ G_PASTE_CONST_FUNCS (TypeName, TYPE_NAME) #define G_PASTE_CONST_PRIV_ACCESSOR(TypeName, type_name) \ static inline G_GNUC_UNUSED gconstpointer \ _g_paste_##type_name##_get_instance_private (const GPaste##TypeName *self) \ { \ return g_paste_##type_name##_get_instance_private ((GPaste##TypeName *) self); \ } #define G_PASTE_DEFINE_TYPE(TypeName, type_name, ParentTypeName) \ G_DEFINE_TYPE (GPaste##TypeName, g_paste_##type_name, ParentTypeName) #define G_PASTE_DEFINE_TYPE_WITH_PRIVATE(TypeName, type_name, ParentTypeName) \ G_DEFINE_TYPE_WITH_PRIVATE (GPaste##TypeName, g_paste_##type_name, ParentTypeName) \ G_PASTE_CONST_PRIV_ACCESSOR (TypeName, type_name) #define G_PASTE_DEFINE_ABSTRACT_TYPE(TypeName, type_name, ParentTypeName) \ G_DEFINE_ABSTRACT_TYPE (GPaste##TypeName, g_paste_##type_name, ParentTypeName) #define G_PASTE_DEFINE_ABSTRACT_TYPE_WITH_PRIVATE(TypeName, type_name, ParentTypeName) \ G_DEFINE_ABSTRACT_TYPE_WITH_PRIVATE (GPaste##TypeName, g_paste_##type_name, ParentTypeName) \ G_PASTE_CONST_PRIV_ACCESSOR (TypeName, type_name) #define G_PASTE_DEFINE_TYPE_WITH_PRIVATE_AND_INTERFACE(TypeName, type_name, ParentTypeName, IFACE_TYPE, iface_init) \ G_DEFINE_TYPE_WITH_CODE (GPaste##TypeName, g_paste_##type_name, ParentTypeName, \ G_ADD_PRIVATE (GPaste##TypeName) \ G_IMPLEMENT_INTERFACE (IFACE_TYPE, iface_init)) \ G_PASTE_CONST_PRIV_ACCESSOR (TypeName, type_name) #define G_PASTE_INIT_GETTEXT() \ bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR); \ bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); \ textdomain (GETTEXT_PACKAGE) G_END_DECLS Keruspe-GPaste-724def1/src/libgpaste/gpaste/gpaste-screensaver-client.c000066400000000000000000000117411521206431300261750ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #include #include #define G_PASTE_SCREENSAVER_OBJECT_PATH "/org/gnome/ScreenSaver" #define G_PASTE_SCREENSAVER_INTERFACE_NAME "org.gnome.ScreenSaver" #define G_PASTE_SCREENSAVER_SIG_ACTIVE_CHANGED "ActiveChanged" #define G_PASTE_SCREENSAVER_INTERFACE \ "" \ "" \ "" \ "" \ "" \ "" \ "" struct _GPasteScreensaverClient { GDBusProxy parent_instance; }; G_PASTE_DEFINE_TYPE (ScreensaverClient, screensaver_client, G_TYPE_DBUS_PROXY) enum { ACTIVE_CHANGED, LAST_SIGNAL }; static guint64 signals[LAST_SIGNAL] = { 0 }; static void g_paste_screensaver_client_g_signal (GDBusProxy *proxy, const gchar *sender_name G_GNUC_UNUSED, const gchar *signal_name, GVariant *parameters) { GPasteScreensaverClient *self = G_PASTE_SCREENSAVER_CLIENT (proxy); if (g_paste_str_equal (signal_name, G_PASTE_SCREENSAVER_SIG_ACTIVE_CHANGED)) { GVariantIter params_iter; g_variant_iter_init (¶ms_iter, parameters); g_autoptr (GVariant) value = g_variant_iter_next_value (¶ms_iter); g_signal_emit (self, signals[ACTIVE_CHANGED], 0, /* detail */ g_variant_get_boolean (value), NULL); } } static void g_paste_screensaver_client_class_init (GPasteScreensaverClientClass *klass G_GNUC_UNUSED) { G_DBUS_PROXY_CLASS (klass)->g_signal = g_paste_screensaver_client_g_signal; /** * GPasteScreensaverClient::active-changed: * @screensaver: the object on which the signal was emitted * @active: whether the screensaver is now active or not * * The "active-changed" signal is emitted when the screensaver appears or vanishes */ signals[ACTIVE_CHANGED] = g_signal_new ("active-changed", G_PASTE_TYPE_SCREENSAVER_CLIENT, G_SIGNAL_RUN_LAST, 0, /* class offset */ NULL, /* accumulator */ NULL, /* accumulator data */ g_cclosure_marshal_VOID__BOOLEAN, G_TYPE_NONE, 1, G_TYPE_BOOLEAN); } static void g_paste_screensaver_client_init (GPasteScreensaverClient *self) { GDBusProxy *proxy = G_DBUS_PROXY (self); g_autoptr (GError) error = NULL; g_autoptr (GDBusNodeInfo) screensaver_dbus_info = g_dbus_node_info_new_for_xml (G_PASTE_SCREENSAVER_INTERFACE, &error); g_assert_no_error (error); g_dbus_proxy_set_interface_info (proxy, screensaver_dbus_info->interfaces[0]); } /** * g_paste_screensaver_client_new_sync: * @error: Return location for error or %NULL. * * Create a new instance of #GPasteScreensaverClient * * Returns: a newly allocated #GPasteScreensaverClient * free it with g_object_unref */ G_PASTE_VISIBLE GPasteScreensaverClient * g_paste_screensaver_client_new_sync (GError **error) { CUSTOM_PROXY_NEW (SCREENSAVER_CLIENT, SCREENSAVER, G_PASTE_SCREENSAVER_BUS_NAME); } /** * g_paste_screensaver_client_new: * @callback: Callback function to invoke when the proxy is ready. * @user_data: User data to pass to @callback. * * Create a new instance of #GPasteScreensaverClient */ G_PASTE_VISIBLE void g_paste_screensaver_client_new (GAsyncReadyCallback callback, gpointer user_data) { CUSTOM_PROXY_NEW_ASYNC (SCREENSAVER_CLIENT, SCREENSAVER, G_PASTE_SCREENSAVER_BUS_NAME); } /** * g_paste_screensaver_client_new_finsh: * @result: A #GAsyncResult obtained from the #GAsyncReadyCallback function passed to the async ctor. * @error: Return location for error or %NULL. * * Create a new instance of #GPasteScreensaverClient * * Returns: a newly allocated #GPasteScreensaverClient * free it with g_object_unref */ G_PASTE_VISIBLE GPasteScreensaverClient * g_paste_screensaver_client_new_finish (GAsyncResult *result, GError **error) { CUSTOM_PROXY_NEW_FINISH (SCREENSAVER_CLIENT); } Keruspe-GPaste-724def1/src/libgpaste/gpaste/gpaste-screensaver-client.h000066400000000000000000000020021521206431300261700ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #if !defined (__G_PASTE_H_INSIDE__) && !defined (G_PASTE_COMPILATION) #error "Only can be included directly." #endif #pragma once #include G_BEGIN_DECLS #define G_PASTE_SCREENSAVER_BUS_NAME "org.gnome.ScreenSaver" #define G_PASTE_TYPE_SCREENSAVER_CLIENT (g_paste_screensaver_client_get_type ()) G_PASTE_FINAL_TYPE (ScreensaverClient, screensaver_client, SCREENSAVER_CLIENT, GDBusProxy) GPasteScreensaverClient *g_paste_screensaver_client_new_sync (GError **error); void g_paste_screensaver_client_new (GAsyncReadyCallback callback, gpointer user_data); GPasteScreensaverClient *g_paste_screensaver_client_new_finish (GAsyncResult *result, GError **error); G_END_DECLS Keruspe-GPaste-724def1/src/libgpaste/gpaste/gpaste-settings.c000066400000000000000000001116421521206431300242420ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #include #include #define G_SETTINGS_ENABLE_BACKEND 1 #include struct _GPasteSettings { GObject parent_instance; }; typedef struct { GSettings *settings; GSettings *shell_settings; GSignalGroup *settings_signals; GSignalGroup *shell_settings_signals; gboolean close_on_select; gboolean open_centered; guint64 element_size; gboolean empty_history_confirmation; gboolean growing_lines; gchar *history_name; gboolean images_support; gboolean images_preview; guint64 images_preview_size; gchar *launch_ui; gchar *make_password; guint64 max_displayed_history_size; guint64 max_history_size; guint64 max_memory_usage; guint64 max_text_item_size; guint64 min_text_item_size; gchar *pop; gboolean primary_to_history; gboolean rich_text_support; gboolean save_history; gchar *show_history; gchar *sync_clipboard_to_primary; gchar *sync_primary_to_clipboard; gboolean synchronize_clipboards; gboolean track_changes; gboolean track_extension_state; gboolean trim_items; gchar *upload; gboolean extension_enabled; } GPasteSettingsPrivate; G_PASTE_DEFINE_TYPE_WITH_PRIVATE (Settings, settings, G_TYPE_OBJECT) enum { CHANGED, REBIND, TRACK, LAST_SIGNAL }; static guint64 signals[LAST_SIGNAL] = { 0 }; #define SETTING(name, key, type, setting_type, fail, guards, clear_func, dup_func) \ G_PASTE_VISIBLE type \ g_paste_settings_get_##name (const GPasteSettings *self) \ { \ g_return_val_if_fail (_G_PASTE_IS_SETTINGS ((gpointer) self), fail); \ const GPasteSettingsPrivate *priv = _g_paste_settings_get_instance_private (self); \ return priv->name; \ } \ G_PASTE_VISIBLE void \ g_paste_settings_reset_##name (GPasteSettings *self) \ { \ g_return_if_fail (_G_PASTE_IS_SETTINGS (self)); \ const GPasteSettingsPrivate *priv = _g_paste_settings_get_instance_private (self); \ g_settings_reset (priv->settings, G_PASTE_##key##_SETTING); \ } \ static void \ g_paste_settings_private_set_##name##_from_dconf (GPasteSettingsPrivate *priv) \ { \ clear_func \ priv->name = g_settings_get_##setting_type (priv->settings, G_PASTE_##key##_SETTING); \ } \ G_PASTE_VISIBLE void \ g_paste_settings_set_##name (GPasteSettings *self, \ type value) \ { \ g_return_if_fail (_G_PASTE_IS_SETTINGS (self)); \ guards \ GPasteSettingsPrivate *priv = g_paste_settings_get_instance_private (self); \ clear_func \ priv->name = dup_func (value); \ g_settings_set_##setting_type (priv->settings, G_PASTE_##key##_SETTING, value); \ } #define TRIVIAL_SETTING(name, key, type, setting_type, fail) \ SETTING (name, key, type, setting_type, fail, {}, {},) #define BOOLEAN_SETTING(name, key) TRIVIAL_SETTING (name, key, gboolean, boolean, FALSE) #define UNSIGNED_SETTING(name, key) TRIVIAL_SETTING (name, key, guint64, uint64, 0) #define STRING_SETTING(name, key) SETTING (name, key, const gchar *, string, NULL, \ g_return_if_fail (value); \ g_return_if_fail (g_utf8_validate (value, -1, NULL));, \ g_free (priv->name);, g_strdup) #define NEW_SIGNAL_FULL(name, type, MTYPE, arg_type) \ g_signal_new (name, \ G_PASTE_TYPE_SETTINGS, \ type, \ 0, /* class offset */ \ NULL, /* accumulator */ \ NULL, /* accumulator data */ \ g_cclosure_marshal_VOID__##MTYPE, \ G_TYPE_NONE, \ 1, /* number of params */ \ G_TYPE_##arg_type) #define NEW_SIGNAL(name, arg_type) NEW_SIGNAL_FULL (name, G_SIGNAL_RUN_LAST, arg_type, arg_type) #define NEW_SIGNAL_DETAILED(name, arg_type) NEW_SIGNAL_FULL (name, G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED, arg_type, arg_type) #define NEW_SIGNAL_DETAILED_STATIC(name, arg_type) NEW_SIGNAL_FULL (name, G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED, arg_type, arg_type | G_SIGNAL_TYPE_STATIC_SCOPE) /** * g_paste_settings_get_close_on_select: * @self: a #GPasteSettings instance * * Get the "close-on-select" setting * * Returns: the value of the "close-on-select" setting */ /** * g_paste_settings_reset_close_on_select: * @self: a #GPasteSettings instance * * Reset the "close-on-select" setting */ /** * g_paste_settings_set_close_on_select: * @self: a #GPasteSettings instance * @value: the new history name * * Change the "close-on-select" setting */ BOOLEAN_SETTING (close_on_select, CLOSE_ON_SELECT) /** * g_paste_settings_get_open_centered: * @self: a #GPasteSettings instance * * Get the "open-centered" setting * * Returns: the value of the "open-centered" setting */ /** * g_paste_settings_reset_open_centered: * @self: a #GPasteSettings instance * * Reset the "open-centered" setting */ /** * g_paste_settings_set_open_centered: * @self: a #GPasteSettings instance * @value: the new history name * * Change the "open-centered" setting */ BOOLEAN_SETTING (open_centered, OPEN_CENTERED) /** * g_paste_settings_get_element_size: * @self: a #GPasteSettings instance * * Get the "element-size" setting * * Returns: the value of the "element-size" setting */ /** * g_paste_settings_reset_element_size: * @self: a #GPasteSettings instance * * Reset the "element-size" setting */ /** * g_paste_settings_set_element_size: * @self: a #GPasteSettings instance * @value: the maximum displayed size of an item * * Change the "element-size" setting */ UNSIGNED_SETTING (element_size, ELEMENT_SIZE) /** * g_paste_settings_get_empty_history_confirmation: * @self: a #GPasteSettings instance * * Get the "empty-history-confirmation" setting * * Returns: the value of the "empty-history-confirmation" setting */ /** * g_paste_settings_reset_empty_history_confirmation: * @self: a #GPasteSettings instance * * Reset the "empty-history-confirmation" setting */ /** * g_paste_settings_set_empty_history_confirmation: * @self: a #GPasteSettings instance * @value: whether to prompt for confirmation when emptying a history * * Change the "empty-history-confirmation" setting */ BOOLEAN_SETTING (empty_history_confirmation, EMPTY_HISTORY_CONFIRMATION) /** * g_paste_settings_get_growing_lines: * @self: a #GPasteSettings instance * * Get the "growing-lines" setting * * Returns: the value of the "growing-lines" setting */ /** * g_paste_settings_reset_growing_lines: * @self: a #GPasteSettings instance * * Reset the "growing-lines" setting */ /** * g_paste_settings_set_growing_lines: * @self: a #GPasteSettings instance * @value: whether to detect or not growing lines * * Change the "growing-lines" setting */ BOOLEAN_SETTING (growing_lines, GROWING_LINES) /** * g_paste_settings_get_history_name: * @self: a #GPasteSettings instance * * Get the "history-name" setting * * Returns: the value of the "history-name" setting */ /** * g_paste_settings_reset_history_name: * @self: a #GPasteSettings instance * * Reset the "history-name" setting */ /** * g_paste_settings_set_history_name: * @self: a #GPasteSettings instance * @value: the new history name * * Change the "history-name" setting */ STRING_SETTING (history_name, HISTORY_NAME) /** * g_paste_settings_get_images_support: * @self: a #GPasteSettings instance * * Get the "images-support" setting * * Returns: the value of the "images-support" setting */ /** * g_paste_settings_reset_images_support: * @self: a #GPasteSettings instance * * Reset the "images-support" setting */ /** * g_paste_settings_set_images_support: * @self: a #GPasteSettings instance * @value: the new history name * * Change the "images-support" setting */ BOOLEAN_SETTING (images_support, IMAGES_SUPPORT) /** * g_paste_settings_get_images_preview: * @self: a #GPasteSettings instance * * Get the "images-preview" setting * * Returns: the value of the "images-preview" setting */ /** * g_paste_settings_reset_images_preview: * @self: a #GPasteSettings instance * * Reset the "images-preview" setting */ /** * g_paste_settings_set_images_preview: * @self: a #GPasteSettings instance * @value: whether to enable or not image previews * * Change the "images-preview" setting */ BOOLEAN_SETTING (images_preview, IMAGES_PREVIEW) /** * g_paste_settings_get_images_preview_size: * @self: a #GPasteSettings instance * * Get the "images-preview-size" setting * * Returns: the value of the "images-preview-size" setting */ /** * g_paste_settings_reset_images_preview_size: * @self: a #GPasteSettings instance * * Reset the "images-preview-size" setting */ /** * g_paste_settings_set_images_preview_size: * @self: a #GPasteSettings instance * @value: the size of image previews in pixels * * Change the "images-preview-size" setting */ UNSIGNED_SETTING (images_preview_size, IMAGES_PREVIEW_SIZE) /** * g_paste_settings_get_launch_ui: * @self: a #GPasteSettings instance * * Get the "launch-ui" setting * * Returns: the value of the "launch-ui" setting */ /** * g_paste_settings_reset_launch_ui: * @self: a #GPasteSettings instance * * Reset the "launch-ui" setting */ /** * g_paste_settings_set_launch_ui: * @self: a #GPasteSettings instance * @value: the new keyboard shortcut * * Change the "launch-ui" setting */ STRING_SETTING (launch_ui, LAUNCH_UI) /** * g_paste_settings_get_make_password: * @self: a #GPasteSettings instance * * Get the "make-password" setting * * Returns: the value of the "make-password" setting */ /** * g_paste_settings_reset_make_password: * @self: a #GPasteSettings instance * * Reset the "make-password" setting */ /** * g_paste_settings_set_make_password: * @self: a #GPasteSettings instance * @value: the new keyboard shortcut * * Change the "make-password" setting */ STRING_SETTING (make_password, MAKE_PASSWORD) /** * g_paste_settings_get_max_displayed_history_size: * @self: a #GPasteSettings instance * * Get the "max-displayed-history-size" setting * * Returns: the value of the "max-displayed-history-size" setting */ /** * g_paste_settings_reset_max_displayed_history_size: * @self: a #GPasteSettings instance * * Reset the "max-displayed-history-size" setting */ /** * g_paste_settings_set_max_displayed_history_size: * @self: a #GPasteSettings instance * @value: the maximum number of items to display * * Change the "max-displayed-history-size" setting */ UNSIGNED_SETTING (max_displayed_history_size, MAX_DISPLAYED_HISTORY_SIZE) /** * g_paste_settings_get_max_history_size: * @self: a #GPasteSettings instance * * Get the "max-history-size" setting * * Returns: the value of the "max-history-size" setting */ /** * g_paste_settings_reset_max_history_size: * @self: a #GPasteSettings instance * * Reset the "max-history-size" setting */ /** * g_paste_settings_set_max_history_size: * @self: a #GPasteSettings instance * @value: the maximum number of items the history can contain * * Change the "max-history-size" setting */ UNSIGNED_SETTING (max_history_size, MAX_HISTORY_SIZE) /** * g_paste_settings_get_max_memory_usage: * @self: a #GPasteSettings instance * * Get the "max-memory-usage" setting * * Returns: the value of the "max-memory-usage" setting */ /** * g_paste_settings_reset_max_memory_usage: * @self: a #GPasteSettings instance * * Reset the "max-memory-usage" setting */ /** * g_paste_settings_set_max_memory_usage: * @self: a #GPasteSettings instance * @value: the maximum amount of memory we can use * * Change the "max-memory-usage" setting */ UNSIGNED_SETTING (max_memory_usage, MAX_MEMORY_USAGE) /** * g_paste_settings_get_max_text_item_size: * @self: a #GPasteSettings instance * * Get the "max-text-item-size" setting * * Returns: the value of the "max-text-item-size" setting */ /** * g_paste_settings_reset_max_text_item_size: * @self: a #GPasteSettings instance * * Reset the "max-text-item-size" setting */ /** * g_paste_settings_set_max_text_item_size: * @self: a #GPasteSettings instance * @value: the maximum size for a textual item to be handled * * Change the "max-text-item-size" setting */ UNSIGNED_SETTING (max_text_item_size, MAX_TEXT_ITEM_SIZE) /** * g_paste_settings_get_min_text_item_size: * @self: a #GPasteSettings instance * * Get the "min-text-item-size" setting * * Returns: the value of the "min-text-item-size" setting */ /** * g_paste_settings_reset_min_text_item_size: * @self: a #GPasteSettings instance * * Reset the "min-text-item-size" setting */ /** * g_paste_settings_set_min_text_item_size: * @self: a #GPasteSettings instance * @value: the minimum size for a textual item to be handled * * Change the "min-text-item-size" setting */ UNSIGNED_SETTING (min_text_item_size, MIN_TEXT_ITEM_SIZE) /** * g_paste_settings_get_pop: * @self: a #GPasteSettings instance * * Get the "pop" setting * * Returns: the value of the "pop" setting */ /** * g_paste_settings_reset_pop: * @self: a #GPasteSettings instance * * Reset the "pop" setting */ /** * g_paste_settings_set_pop: * @self: a #GPasteSettings instance * @value: the new keyboard shortcut * * Change the "pop" setting */ STRING_SETTING (pop, POP) /** * g_paste_settings_get_primary_to_history: * @self: a #GPasteSettings instance * * Get the "primary-to-history" setting * * Returns: the value of the "primary-to-history" setting */ /** * g_paste_settings_reset_primary_to_history: * @self: a #GPasteSettings instance * * Reset the "primary-to-history" setting */ /** * g_paste_settings_set_primary_to_history: * @self: a #GPasteSettings instance * @value: whether to track or not the primary selection changes as clipboard ones * * Change the "primary-to-history" setting */ BOOLEAN_SETTING (primary_to_history, PRIMARY_TO_HISTORY) /** * g_paste_settings_get_rich_text_support: * @self: a #GPasteSettings instance * * Get the "rich-text-support" setting * * Returns: the value of the "rich-text-support" setting */ /** * g_paste_settings_reset_rich_text_support: * @self: a #GPasteSettings instance * * Reset the "rich-text-support" setting */ /** * g_paste_settings_set_rich_text_support: * @self: a #GPasteSettings instance * @value: the new history name * * Change the "rich-text-support" setting */ BOOLEAN_SETTING (rich_text_support, RICH_TEXT_SUPPORT) /** * g_paste_settings_get_save_history: * @self: a #GPasteSettings instance * * Get the "save-history" setting * * Returns: the value of the "save-history" setting */ /** * g_paste_settings_reset_save_history: * @self: a #GPasteSettings instance * * Reset the "save-history" setting */ /** * g_paste_settings_set_save_history: * @self: a #GPasteSettings instance * @value: whether to save or not the history * * Change the "save-history" setting */ BOOLEAN_SETTING (save_history, SAVE_HISTORY) /** * g_paste_settings_get_show_history: * @self: a #GPasteSettings instance * * Get the "show-history" setting * * Returns: the value of the "show-history" setting */ /** * g_paste_settings_reset_show_history: * @self: a #GPasteSettings instance * * Reset the "show-history" setting */ /** * g_paste_settings_set_show_history: * @self: a #GPasteSettings instance * @value: the new keyboard shortcut * * Change the "show-history" setting */ STRING_SETTING (show_history, SHOW_HISTORY) /** * g_paste_settings_get_sync_clipboard_to_primary: * @self: a #GPasteSettings instance * * Get the "sync-clipboard-to-primary" setting * * Returns: the value of the "sync-clipboard-to-primary" setting */ /** * g_paste_settings_reset_sync_clipboard_to_primary: * @self: a #GPasteSettings instance * * Reset the "sync-clipboard-to-primary" setting */ /** * g_paste_settings_set_sync_clipboard_to_primary: * @self: a #GPasteSettings instance * @value: the new keyboard shortcut * * Change the "sync-clipboard-to-primary" setting */ STRING_SETTING (sync_clipboard_to_primary, SYNC_CLIPBOARD_TO_PRIMARY) /** * g_paste_settings_get_sync_primary_to_clipboard: * @self: a #GPasteSettings instance * * Get the "sync-primary-to-clipboard" setting * * Returns: the value of the "sync-primary-to-clipboard" setting */ /** * g_paste_settings_reset_sync_primary_to_clipboard: * @self: a #GPasteSettings instance * * Reset the "sync-primary-to-clipboard" setting */ /** * g_paste_settings_set_sync_primary_to_clipboard: * @self: a #GPasteSettings instance * @value: the new keyboard shortcut * * Change the "sync-primary-to-clipboard" setting */ STRING_SETTING (sync_primary_to_clipboard, SYNC_PRIMARY_TO_CLIPBOARD) /** * g_paste_settings_get_synchronize_clipboards: * @self: a #GPasteSettings instance * * Get the "synchronize-clipboards" setting * * Returns: the value of the "synchronize-clipboards" setting */ /** * g_paste_settings_reset_synchronize_clipboards: * @self: a #GPasteSettings instance * * Reset the "synchronize-clipboards" setting */ /** * g_paste_settings_set_synchronize_clipboards: * @self: a #GPasteSettings instance * @value: whether to synchronize the clipboard and the primary selection or not * * Change the "synchronize-clipboards" setting */ BOOLEAN_SETTING (synchronize_clipboards, SYNCHRONIZE_CLIPBOARDS) /** * g_paste_settings_get_track_changes: * @self: a #GPasteSettings instance * * Get the "track-changes" setting * * Returns: the value of the "track-changes" setting */ /** * g_paste_settings_reset_track_changes: * @self: a #GPasteSettings instance * * Reset the "track-changes" setting */ /** * g_paste_settings_set_track_changes: * @self: a #GPasteSettings instance * @value: whether to track or not the clipboard changes * * Change the "track-changes" setting */ BOOLEAN_SETTING (track_changes, TRACK_CHANGES) /** * g_paste_settings_get_track_extension_state: * @self: a #GPasteSettings instance * * Get the "track-extension-state" setting * * Returns: the value of the "track-extension-state" setting */ /** * g_paste_settings_reset_track_extension_state: * @self: a #GPasteSettings instance * * Reset the "track-extension-state" setting */ /** * g_paste_settings_set_track_extension_state: * @self: a #GPasteSettings instance * @value: whether to stop tracking or not the clipboard changes when an applet exits * * Change the "track-extension-state" setting */ BOOLEAN_SETTING (track_extension_state, TRACK_EXTENSION_STATE) /** * g_paste_settings_get_trim_items: * @self: a #GPasteSettings instance * * Get the "trim-items" setting * * Returns: the value of the "trim-items" setting */ /** * g_paste_settings_reset_trim_items: * @self: a #GPasteSettings instance * * Reset the "trim-items" setting */ /** * g_paste_settings_set_trim_items: * @self: a #GPasteSettings instance * @value: whether to trim or not textual items * * Change the "trim-items" setting */ BOOLEAN_SETTING (trim_items, TRIM_ITEMS) /** * g_paste_settings_get_upload: * @self: a #GPasteSettings instance * * Get the "upload" setting * * Returns: the value of the "upload" setting */ /** * g_paste_settings_reset_upload: * @self: a #GPasteSettings instance * * Reset the "upload" setting */ /** * g_paste_settings_set_upload: * @self: a #GPasteSettings instance * @value: the new keyboard shortcut * * Change the "upload" setting */ STRING_SETTING (upload, UPLOAD) /** * g_paste_settings_get_extension_enabled: * @self: a #GPasteSettings instance * * Get the "extension-enabled" special setting * * Returns: Whether the gnome-shell extension is enabled or not */ G_PASTE_VISIBLE gboolean g_paste_settings_get_extension_enabled (const GPasteSettings *self) { g_return_val_if_fail (_G_PASTE_IS_SETTINGS ((gpointer) self), FALSE); const GPasteSettingsPrivate *priv = _g_paste_settings_get_instance_private (self); return priv->extension_enabled; } static inline gchar ** g_paste_settings_private_get_enabled_extensions (GPasteSettingsPrivate *priv) { return (priv->shell_settings) ? g_settings_get_strv (priv->shell_settings, G_PASTE_SHELL_ENABLED_EXTENSIONS_SETTING) : NULL; } static void g_paste_settings_private_set_extension_enabled_from_dconf (GPasteSettingsPrivate *priv) { g_auto (GStrv) extensions = g_paste_settings_private_get_enabled_extensions (priv); for (GStrv e = extensions; *e; ++e) { if (g_paste_str_equal (*e, G_PASTE_EXTENSION_NAME)) { priv->extension_enabled = TRUE; return; } } priv->extension_enabled = FALSE; } /** * g_paste_settings_set_extension_enabled: * @self: a #GPasteSettings instance * @value: whether to enable or not the gnome-shell extension * * Change the "extension-enabled" special setting */ G_PASTE_VISIBLE void g_paste_settings_set_extension_enabled (GPasteSettings *self, gboolean value) { g_return_if_fail (_G_PASTE_IS_SETTINGS (self)); GPasteSettingsPrivate *priv = g_paste_settings_get_instance_private (self); g_auto (GStrv) extensions = NULL; if (!priv->shell_settings || (value == priv->extension_enabled)) return; extensions = g_paste_settings_private_get_enabled_extensions (priv); guint64 nb = g_strv_length (extensions); if (value) { extensions = g_realloc (extensions, (nb + 2) * sizeof (gchar *)); extensions[nb] = g_strdup (G_PASTE_EXTENSION_NAME); extensions[nb+1] = NULL; } else { gboolean found = FALSE; for (guint64 i = 0; i < nb; ++i) { if (!found && g_paste_str_equal (extensions[i], G_PASTE_EXTENSION_NAME)) { found = TRUE; g_free (extensions[i]); } if (found) extensions[i] = extensions[i+1]; } } priv->extension_enabled = value; g_settings_set_strv (priv->shell_settings, G_PASTE_SHELL_ENABLED_EXTENSIONS_SETTING, (const gchar * const *) extensions); } static void g_paste_settings_shell_settings_changed (GSettings *settings G_GNUC_UNUSED, const gchar *key G_GNUC_UNUSED, gpointer user_data) { GPasteSettings *self = G_PASTE_SETTINGS (user_data); GPasteSettingsPrivate *priv = g_paste_settings_get_instance_private (self); g_paste_settings_private_set_extension_enabled_from_dconf (priv); /* Forward the signal */ g_signal_emit (self, signals[CHANGED], g_quark_from_string (G_PASTE_EXTENSION_ENABLED_SETTING), G_PASTE_EXTENSION_ENABLED_SETTING, NULL); } static void g_paste_settings_rebind (GPasteSettings *self, const gchar *key) { g_signal_emit (self, signals[REBIND], g_quark_from_string (key), NULL); } static void g_paste_settings_settings_changed (GSettings *settings G_GNUC_UNUSED, const gchar *key, gpointer user_data) { GPasteSettings *self = G_PASTE_SETTINGS (user_data); GPasteSettingsPrivate *priv = g_paste_settings_get_instance_private (self); if (g_paste_str_equal (key, G_PASTE_CLOSE_ON_SELECT_SETTING)) g_paste_settings_private_set_close_on_select_from_dconf (priv); else if (g_paste_str_equal (key, G_PASTE_OPEN_CENTERED_SETTING)) g_paste_settings_private_set_open_centered_from_dconf (priv); else if (g_paste_str_equal (key, G_PASTE_ELEMENT_SIZE_SETTING)) g_paste_settings_private_set_element_size_from_dconf (priv); else if (g_paste_str_equal (key, G_PASTE_EMPTY_HISTORY_CONFIRMATION_SETTING)) g_paste_settings_private_set_empty_history_confirmation_from_dconf (priv); else if (g_paste_str_equal (key, G_PASTE_GROWING_LINES_SETTING)) g_paste_settings_private_set_growing_lines_from_dconf (priv); else if (g_paste_str_equal (key, G_PASTE_HISTORY_NAME_SETTING)) g_paste_settings_private_set_history_name_from_dconf (priv); else if (g_paste_str_equal (key, G_PASTE_IMAGES_SUPPORT_SETTING)) g_paste_settings_private_set_images_support_from_dconf (priv); else if (g_paste_str_equal (key, G_PASTE_IMAGES_PREVIEW_SETTING)) g_paste_settings_private_set_images_preview_from_dconf (priv); else if (g_paste_str_equal (key, G_PASTE_IMAGES_PREVIEW_SIZE_SETTING)) g_paste_settings_private_set_images_preview_size_from_dconf (priv); else if (g_paste_str_equal (key, G_PASTE_LAUNCH_UI_SETTING)) { g_paste_settings_private_set_launch_ui_from_dconf (priv); g_paste_settings_rebind (self, G_PASTE_LAUNCH_UI_SETTING); } else if (g_paste_str_equal (key, G_PASTE_MAKE_PASSWORD_SETTING)) { g_paste_settings_private_set_make_password_from_dconf (priv); g_paste_settings_rebind (self, G_PASTE_MAKE_PASSWORD_SETTING); } else if (g_paste_str_equal (key, G_PASTE_MAX_DISPLAYED_HISTORY_SIZE_SETTING)) g_paste_settings_private_set_max_displayed_history_size_from_dconf (priv); else if (g_paste_str_equal (key, G_PASTE_MAX_HISTORY_SIZE_SETTING)) g_paste_settings_private_set_max_history_size_from_dconf (priv); else if (g_paste_str_equal (key, G_PASTE_MAX_MEMORY_USAGE_SETTING)) g_paste_settings_private_set_max_memory_usage_from_dconf (priv); else if (g_paste_str_equal (key, G_PASTE_MAX_TEXT_ITEM_SIZE_SETTING)) g_paste_settings_private_set_max_text_item_size_from_dconf (priv); else if (g_paste_str_equal (key, G_PASTE_MIN_TEXT_ITEM_SIZE_SETTING)) g_paste_settings_private_set_min_text_item_size_from_dconf (priv); else if (g_paste_str_equal (key, G_PASTE_POP_SETTING)) { g_paste_settings_private_set_pop_from_dconf (priv); g_paste_settings_rebind (self, G_PASTE_POP_SETTING); } else if (g_paste_str_equal (key, G_PASTE_PRIMARY_TO_HISTORY_SETTING )) g_paste_settings_private_set_primary_to_history_from_dconf (priv); else if (g_paste_str_equal (key, G_PASTE_RICH_TEXT_SUPPORT_SETTING)) g_paste_settings_private_set_rich_text_support_from_dconf (priv); else if (g_paste_str_equal (key, G_PASTE_SAVE_HISTORY_SETTING)) g_paste_settings_private_set_save_history_from_dconf (priv); else if (g_paste_str_equal (key, G_PASTE_SHOW_HISTORY_SETTING)) { g_paste_settings_private_set_show_history_from_dconf (priv); g_paste_settings_rebind (self, G_PASTE_SHOW_HISTORY_SETTING); } else if (g_paste_str_equal (key, G_PASTE_SYNC_CLIPBOARD_TO_PRIMARY_SETTING)) { g_paste_settings_private_set_sync_clipboard_to_primary_from_dconf (priv); g_paste_settings_rebind (self, G_PASTE_SYNC_CLIPBOARD_TO_PRIMARY_SETTING); } else if (g_paste_str_equal (key, G_PASTE_SYNC_PRIMARY_TO_CLIPBOARD_SETTING)) { g_paste_settings_private_set_sync_primary_to_clipboard_from_dconf (priv); g_paste_settings_rebind (self, G_PASTE_SYNC_PRIMARY_TO_CLIPBOARD_SETTING); } else if (g_paste_str_equal (key, G_PASTE_SYNCHRONIZE_CLIPBOARDS_SETTING)) g_paste_settings_private_set_synchronize_clipboards_from_dconf (priv); else if (g_paste_str_equal (key, G_PASTE_TRACK_CHANGES_SETTING)) { g_paste_settings_private_set_track_changes_from_dconf (priv); g_signal_emit (self, signals[TRACK], 0, /* detail */ priv->track_changes, NULL); } else if (g_paste_str_equal (key, G_PASTE_TRACK_EXTENSION_STATE_SETTING)) g_paste_settings_private_set_track_extension_state_from_dconf (priv); else if (g_paste_str_equal (key, G_PASTE_TRIM_ITEMS_SETTING)) g_paste_settings_private_set_trim_items_from_dconf (priv); else if (g_paste_str_equal (key, G_PASTE_UPLOAD_SETTING)) { g_paste_settings_private_set_upload_from_dconf (priv); g_paste_settings_rebind (self, G_PASTE_UPLOAD_SETTING); } /* Forward the signal */ g_signal_emit (self, signals[CHANGED], g_quark_from_string (key), key, NULL); } static void g_paste_settings_dispose (GObject *object) { GPasteSettingsPrivate *priv = g_paste_settings_get_instance_private (G_PASTE_SETTINGS (object)); g_clear_object (&priv->settings_signals); g_clear_object (&priv->settings); g_clear_object (&priv->shell_settings_signals); g_clear_object (&priv->shell_settings); G_OBJECT_CLASS (g_paste_settings_parent_class)->dispose (object); } static void g_paste_settings_finalize (GObject *object) { const GPasteSettingsPrivate *priv = _g_paste_settings_get_instance_private (G_PASTE_SETTINGS (object)); g_free (priv->history_name); g_free (priv->launch_ui); g_free (priv->make_password); g_free (priv->pop); g_free (priv->show_history); g_free (priv->sync_clipboard_to_primary); g_free (priv->sync_primary_to_clipboard); g_free (priv->upload); G_OBJECT_CLASS (g_paste_settings_parent_class)->finalize (object); } static void g_paste_settings_class_init (GPasteSettingsClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); object_class->dispose = g_paste_settings_dispose; object_class->finalize = g_paste_settings_finalize; /** * GPasteSettings::changed: * @settings: the object on which the signal was emitted * @key: the name of the key that changed * * The "changed" signal is emitted when a key has potentially changed. * You should call one of the g_paste_settings_get() calls to check the new * value. * * This signal supports detailed connections. You can connect to the * detailed signal "changed::x" in order to only receive callbacks * when key "x" changes. */ signals[CHANGED] = NEW_SIGNAL_DETAILED_STATIC ("changed", STRING); /** * GPasteSettings::rebind: * @settings: the object on which the signal was emitted * @key: the name of the key that changed * * The "rebind" signal is emitted when a key has potentially changed. * You should call one of the g_paste_settings_get() calls to check the new * value. * * This signal supports detailed connections. You can connect to the * detailed signal "rebind::x" in order to only receive callbacks * when key "x" changes. */ signals[REBIND] = NEW_SIGNAL_DETAILED ("rebind" , STRING); /** * GPasteSettings::track: * @settings: the object on which the signal was emitted * @tracking_state: whether we're now tracking or not * * The "track" signal is emitted when the daemon starts or stops tracking * clipboard changes */ signals[TRACK] = NEW_SIGNAL ("track" , BOOLEAN); } static GSettings * create_g_settings (void) { g_autofree gchar *config_file_path = g_build_filename (g_get_user_config_dir (), PACKAGE, "settings", NULL); g_autoptr (GFile) config_file = g_file_new_for_path (config_file_path); if (g_file_query_exists (config_file, NULL /* cancellable */)) { g_autoptr (GSettingsBackend) backend = g_keyfile_settings_backend_new (config_file_path, G_PASTE_SETTINGS_PATH, PACKAGE_NAME); return g_settings_new_with_backend (G_PASTE_SETTINGS_NAME, backend); } else return g_settings_new (G_PASTE_SETTINGS_NAME); } static void g_paste_settings_init (GPasteSettings *self) { GPasteSettingsPrivate *priv = g_paste_settings_get_instance_private (self); GSettings *settings = priv->settings = create_g_settings (); priv->history_name = NULL; priv->launch_ui = NULL; priv->make_password = NULL; priv->pop = NULL; priv->show_history = NULL; priv->sync_clipboard_to_primary = NULL; priv->sync_primary_to_clipboard = NULL; priv->upload = NULL; GSignalGroup *settings_signals = priv->settings_signals = g_signal_group_new (G_TYPE_SETTINGS); g_signal_group_connect (settings_signals, "changed", G_CALLBACK (g_paste_settings_settings_changed), self); g_signal_group_set_target (settings_signals, settings); g_paste_settings_private_set_close_on_select_from_dconf (priv); g_paste_settings_private_set_open_centered_from_dconf (priv); g_paste_settings_private_set_element_size_from_dconf (priv); g_paste_settings_private_set_empty_history_confirmation_from_dconf (priv); g_paste_settings_private_set_growing_lines_from_dconf (priv); g_paste_settings_private_set_history_name_from_dconf (priv); g_paste_settings_private_set_images_support_from_dconf (priv); g_paste_settings_private_set_images_preview_from_dconf (priv); g_paste_settings_private_set_images_preview_size_from_dconf (priv); g_paste_settings_private_set_launch_ui_from_dconf (priv); g_paste_settings_private_set_make_password_from_dconf (priv); g_paste_settings_private_set_max_displayed_history_size_from_dconf (priv); g_paste_settings_private_set_max_history_size_from_dconf (priv); g_paste_settings_private_set_max_memory_usage_from_dconf (priv); g_paste_settings_private_set_max_text_item_size_from_dconf (priv); g_paste_settings_private_set_min_text_item_size_from_dconf (priv); g_paste_settings_private_set_pop_from_dconf (priv); g_paste_settings_private_set_primary_to_history_from_dconf (priv); g_paste_settings_private_set_rich_text_support_from_dconf (priv); g_paste_settings_private_set_save_history_from_dconf (priv); g_paste_settings_private_set_show_history_from_dconf (priv); g_paste_settings_private_set_sync_clipboard_to_primary_from_dconf (priv); g_paste_settings_private_set_sync_primary_to_clipboard_from_dconf (priv); g_paste_settings_private_set_synchronize_clipboards_from_dconf (priv); g_paste_settings_private_set_track_changes_from_dconf (priv); g_paste_settings_private_set_track_extension_state_from_dconf (priv); g_paste_settings_private_set_trim_items_from_dconf (priv); g_paste_settings_private_set_upload_from_dconf (priv); priv->shell_settings = NULL; priv->extension_enabled = FALSE; GSignalGroup *shell_settings_signals = priv->shell_settings_signals = g_signal_group_new (G_TYPE_SETTINGS); g_signal_group_connect (shell_settings_signals, "changed::" G_PASTE_SHELL_ENABLED_EXTENSIONS_SETTING, G_CALLBACK (g_paste_settings_shell_settings_changed), self); if (g_paste_util_has_gnome_shell ()) { priv->shell_settings = g_settings_new (G_PASTE_SHELL_SETTINGS_NAME); g_signal_group_set_target (shell_settings_signals, priv->shell_settings); g_paste_settings_private_set_extension_enabled_from_dconf (priv); } } /** * g_paste_settings_new: * * Create a new instance of #GPasteSettings * * Returns: a newly allocated #GPasteSettings * free it with g_object_unref */ G_PASTE_VISIBLE GPasteSettings * g_paste_settings_new (void) { return g_object_new (G_PASTE_TYPE_SETTINGS, NULL); } Keruspe-GPaste-724def1/src/libgpaste/gpaste/gpaste-settings.h000066400000000000000000000231101521206431300242370ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #if !defined (__G_PASTE_H_INSIDE__) && !defined (G_PASTE_COMPILATION) #error "Only can be included directly." #endif #pragma once #include G_BEGIN_DECLS #define G_PASTE_TYPE_SETTINGS (g_paste_settings_get_type ()) G_PASTE_FINAL_TYPE (Settings, settings, SETTINGS, GObject) gboolean g_paste_settings_get_close_on_select (const GPasteSettings *self); gboolean g_paste_settings_get_open_centered (const GPasteSettings *self); guint64 g_paste_settings_get_element_size (const GPasteSettings *self); gboolean g_paste_settings_get_empty_history_confirmation (const GPasteSettings *self); gboolean g_paste_settings_get_growing_lines (const GPasteSettings *self); const gchar *g_paste_settings_get_history_name (const GPasteSettings *self); gboolean g_paste_settings_get_images_preview (const GPasteSettings *self); guint64 g_paste_settings_get_images_preview_size (const GPasteSettings *self); gboolean g_paste_settings_get_images_support (const GPasteSettings *self); const gchar *g_paste_settings_get_launch_ui (const GPasteSettings *self); const gchar *g_paste_settings_get_make_password (const GPasteSettings *self); guint64 g_paste_settings_get_max_displayed_history_size (const GPasteSettings *self); guint64 g_paste_settings_get_max_history_size (const GPasteSettings *self); guint64 g_paste_settings_get_max_memory_usage (const GPasteSettings *self); guint64 g_paste_settings_get_max_text_item_size (const GPasteSettings *self); guint64 g_paste_settings_get_min_text_item_size (const GPasteSettings *self); const gchar *g_paste_settings_get_pop (const GPasteSettings *self); gboolean g_paste_settings_get_primary_to_history (const GPasteSettings *self); gboolean g_paste_settings_get_rich_text_support (const GPasteSettings *self); gboolean g_paste_settings_get_save_history (const GPasteSettings *self); const gchar *g_paste_settings_get_show_history (const GPasteSettings *self); const gchar *g_paste_settings_get_sync_clipboard_to_primary (const GPasteSettings *self); const gchar *g_paste_settings_get_sync_primary_to_clipboard (const GPasteSettings *self); gboolean g_paste_settings_get_synchronize_clipboards (const GPasteSettings *self); gboolean g_paste_settings_get_track_changes (const GPasteSettings *self); gboolean g_paste_settings_get_track_extension_state (const GPasteSettings *self); gboolean g_paste_settings_get_trim_items (const GPasteSettings *self); const gchar *g_paste_settings_get_upload (const GPasteSettings *self); void g_paste_settings_reset_close_on_select (GPasteSettings *self); void g_paste_settings_reset_open_centered (GPasteSettings *self); void g_paste_settings_reset_element_size (GPasteSettings *self); void g_paste_settings_reset_empty_history_confirmation (GPasteSettings *self); void g_paste_settings_reset_growing_lines (GPasteSettings *self); void g_paste_settings_reset_history_name (GPasteSettings *self); void g_paste_settings_reset_images_preview (GPasteSettings *self); void g_paste_settings_reset_images_preview_size (GPasteSettings *self); void g_paste_settings_reset_images_support (GPasteSettings *self); void g_paste_settings_reset_launch_ui (GPasteSettings *self); void g_paste_settings_reset_make_password (GPasteSettings *self); void g_paste_settings_reset_max_displayed_history_size (GPasteSettings *self); void g_paste_settings_reset_max_history_size (GPasteSettings *self); void g_paste_settings_reset_max_memory_usage (GPasteSettings *self); void g_paste_settings_reset_max_text_item_size (GPasteSettings *self); void g_paste_settings_reset_min_text_item_size (GPasteSettings *self); void g_paste_settings_reset_pop (GPasteSettings *self); void g_paste_settings_reset_primary_to_history (GPasteSettings *self); void g_paste_settings_reset_rich_text_support (GPasteSettings *self); void g_paste_settings_reset_save_history (GPasteSettings *self); void g_paste_settings_reset_show_history (GPasteSettings *self); void g_paste_settings_reset_sync_clipboard_to_primary (GPasteSettings *self); void g_paste_settings_reset_sync_primary_to_clipboard (GPasteSettings *self); void g_paste_settings_reset_synchronize_clipboards (GPasteSettings *self); void g_paste_settings_reset_track_changes (GPasteSettings *self); void g_paste_settings_reset_track_extension_state (GPasteSettings *self); void g_paste_settings_reset_trim_items (GPasteSettings *self); void g_paste_settings_reset_upload (GPasteSettings *self); void g_paste_settings_set_close_on_select (GPasteSettings *self, gboolean value); void g_paste_settings_set_open_centered (GPasteSettings *self, gboolean value); void g_paste_settings_set_element_size (GPasteSettings *self, guint64 value); void g_paste_settings_set_empty_history_confirmation (GPasteSettings *self, gboolean value); void g_paste_settings_set_growing_lines (GPasteSettings *self, gboolean value); void g_paste_settings_set_history_name (GPasteSettings *self, const gchar *value); void g_paste_settings_set_images_preview (GPasteSettings *self, gboolean value); void g_paste_settings_set_images_preview_size (GPasteSettings *self, guint64 value); void g_paste_settings_set_images_support (GPasteSettings *self, gboolean value); void g_paste_settings_set_launch_ui (GPasteSettings *self, const gchar *value); void g_paste_settings_set_make_password (GPasteSettings *self, const gchar *value); void g_paste_settings_set_max_displayed_history_size (GPasteSettings *self, guint64 value); void g_paste_settings_set_max_history_size (GPasteSettings *self, guint64 value); void g_paste_settings_set_max_memory_usage (GPasteSettings *self, guint64 value); void g_paste_settings_set_max_text_item_size (GPasteSettings *self, guint64 value); void g_paste_settings_set_min_text_item_size (GPasteSettings *self, guint64 value); void g_paste_settings_set_pop (GPasteSettings *self, const gchar *value); void g_paste_settings_set_primary_to_history (GPasteSettings *self, gboolean value); void g_paste_settings_set_rich_text_support (GPasteSettings *self, gboolean value); void g_paste_settings_set_save_history (GPasteSettings *self, gboolean value); void g_paste_settings_set_show_history (GPasteSettings *self, const gchar *value); void g_paste_settings_set_sync_clipboard_to_primary (GPasteSettings *self, const gchar *value); void g_paste_settings_set_sync_primary_to_clipboard (GPasteSettings *self, const gchar *value); void g_paste_settings_set_synchronize_clipboards (GPasteSettings *self, gboolean value); void g_paste_settings_set_track_changes (GPasteSettings *self, gboolean value); void g_paste_settings_set_track_extension_state (GPasteSettings *self, gboolean value); void g_paste_settings_set_trim_items (GPasteSettings *self, gboolean value); void g_paste_settings_set_upload (GPasteSettings *self, const gchar *value); gboolean g_paste_settings_get_extension_enabled (const GPasteSettings *self); void g_paste_settings_set_extension_enabled (GPasteSettings *self, gboolean value); GPasteSettings *g_paste_settings_new (void); G_END_DECLS Keruspe-GPaste-724def1/src/libgpaste/gpaste/gpaste-update-enums.c000066400000000000000000000025761521206431300250160ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #include #include G_PASTE_VISIBLE GType g_paste_update_action_get_type (void) { static GType etype = 0; if (!etype) { static const GEnumValue values[] = { { G_PASTE_UPDATE_ACTION_REPLACE, "G_PASTE_UPDATE_ACTION_REPLACE", "REPLACE" }, { G_PASTE_UPDATE_ACTION_REMOVE, "G_PASTE_UPDATE_ACTION_REMOVE", "REMOVE" }, { G_PASTE_UPDATE_ACTION_INVALID, NULL, NULL } }; etype = g_enum_register_static (g_intern_static_string ("GPasteUpdateAction"), values); g_type_class_ref (etype); } return etype; } G_PASTE_VISIBLE GType g_paste_update_target_get_type (void) { static GType etype = 0; if (!etype) { static const GEnumValue values[] = { { G_PASTE_UPDATE_TARGET_ALL, "G_PASTE_UPDATE_TARGET_ALL", "ALL" }, { G_PASTE_UPDATE_TARGET_POSITION, "G_PASTE_UPDATE_TARGET_POSITION", "POSITION" }, { G_PASTE_UPDATE_TARGET_INVALID, NULL, NULL } }; etype = g_enum_register_static (g_intern_static_string ("GPasteUpdateTarget"), values); g_type_class_ref (etype); } return etype; } Keruspe-GPaste-724def1/src/libgpaste/gpaste/gpaste-update-enums.h000066400000000000000000000015271521206431300250160ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #if !defined (__G_PASTE_H_INSIDE__) && !defined (G_PASTE_COMPILATION) #error "Only can be included directly." #endif #pragma once #include G_BEGIN_DECLS typedef enum { G_PASTE_UPDATE_ACTION_REPLACE = 1, G_PASTE_UPDATE_ACTION_REMOVE, G_PASTE_UPDATE_ACTION_INVALID = 0 } GPasteUpdateAction; #define G_PASTE_TYPE_UPDATE_ACTION (g_paste_update_action_get_type ()) GType g_paste_update_action_get_type (void); typedef enum { G_PASTE_UPDATE_TARGET_ALL = 1, G_PASTE_UPDATE_TARGET_POSITION, G_PASTE_UPDATE_TARGET_INVALID = 0 } GPasteUpdateTarget; #define G_PASTE_TYPE_UPDATE_TARGET (g_paste_update_target_get_type ()) GType g_paste_update_target_get_type (void); G_END_DECLS Keruspe-GPaste-724def1/src/libgpaste/gpaste/gpaste-util.c000066400000000000000000000471531521206431300233640ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #include #include /* Copied from glib's gio/gapplication-tool.c */ static GVariant * app_get_platform_data (void) { g_auto (GVariantBuilder) builder; const gchar *startup_id; g_variant_builder_init_static (&builder, G_VARIANT_TYPE_VARDICT); if ((startup_id = g_getenv ("DESKTOP_STARTUP_ID"))) g_variant_builder_add (&builder, "{sv}", "desktop-startup-id", g_variant_new_string (startup_id)); return g_variant_builder_end (&builder); } static void g_paste_util_spawn_on_proxy_ready (GObject *source_object G_GNUC_UNUSED, GAsyncResult *res, gpointer user_data G_GNUC_UNUSED) { g_autoptr (GError) error = NULL; g_autoptr (GDBusProxy) proxy = g_dbus_proxy_new_for_bus_finish (res, &error); if (!proxy) { g_warning ("Failed to get D-Bus proxy: %s", error->message); return; } g_dbus_proxy_call (proxy, "Activate", g_variant_new ("(@a{sv})", app_get_platform_data ()), G_DBUS_CALL_FLAGS_NONE, -1, NULL, /* cancellable */ NULL, /* callback */ NULL); /* user_data */ } /** * g_paste_util_spawn: * @app: the GPaste app to spawn * * spawn a GPaste app */ G_PASTE_VISIBLE void g_paste_util_spawn (const gchar *app) { g_return_if_fail (g_utf8_validate (app, -1, NULL)); g_autofree gchar *name = g_strdup_printf ("org.gnome.GPaste.%s", app); g_autofree gchar *object = g_strdup_printf ("/org/gnome/GPaste/%s", app); g_dbus_proxy_new_for_bus (G_BUS_TYPE_SESSION, G_DBUS_PROXY_FLAGS_NONE, NULL, name, object, "org.freedesktop.Application", NULL, g_paste_util_spawn_on_proxy_ready, NULL); } static GDBusProxy * _bus_proxy_new_sync (const gchar *app, GError **error) { g_autofree gchar *name = g_strdup_printf ("org.gnome.GPaste.%s", app); g_autofree gchar *object = g_strdup_printf ("/org/gnome/GPaste/%s", app); return g_dbus_proxy_new_for_bus_sync (G_BUS_TYPE_SESSION, G_DBUS_PROXY_FLAGS_NONE, NULL, name, object, "org.freedesktop.Application", NULL, error); } static gboolean _spawn_sync (GDBusProxy *proxy, GError **error) { G_GNUC_UNUSED g_autoptr (GVariant) res = g_dbus_proxy_call_sync (proxy, "Activate", g_variant_new ("(@a{sv})", app_get_platform_data ()), G_DBUS_CALL_FLAGS_NONE, -1, NULL, error); return !error || !(*error); } /** * g_paste_util_spawn_sync: * @app: the GPaste app to spawn * @error: a #GError or %NULL * * spawn a GPaste app * * Returns: whether the spawn was successful */ G_PASTE_VISIBLE gboolean g_paste_util_spawn_sync (const gchar *app, GError **error) { g_return_val_if_fail (g_utf8_validate (app, -1, NULL), FALSE); g_return_val_if_fail (!error || !(*error), FALSE); g_autoptr (GDBusProxy) proxy = _bus_proxy_new_sync (app, error); if (!proxy) return FALSE; return _spawn_sync (proxy, error); } static void g_paste_util_activate_ui_on_proxy_ready (GObject *source_object G_GNUC_UNUSED, GAsyncResult *res, gpointer user_data) { g_autofree gpointer *data = (gpointer *) user_data; g_autofree gchar *action = data[0]; GVariant *arg = data[1]; g_autoptr (GError) error = NULL; g_autoptr (GDBusProxy) proxy = g_dbus_proxy_new_for_bus_finish (res, &error); if (!proxy) { g_warning ("Failed to get D-Bus proxy: %s", error->message); if (arg) g_variant_unref (g_variant_ref_sink (arg)); return; } g_auto (GVariantBuilder) params; g_variant_builder_init_static (¶ms, G_VARIANT_TYPE ("av")); if (arg) g_variant_builder_add (¶ms, "v", arg); g_dbus_proxy_call (proxy, "ActivateAction", g_variant_new ("(sav@a{sv})", action, ¶ms, app_get_platform_data ()), G_DBUS_CALL_FLAGS_NONE, -1, NULL, /* cancellable */ NULL, /* callback */ NULL); /* user_data */ } /** * g_paste_util_activate_ui: * @action: the action to activate * @arg: (nullable): the action argument * * Activate an action on a GPaste app */ G_PASTE_VISIBLE void g_paste_util_activate_ui (const gchar *action, GVariant *arg) { g_return_if_fail (g_utf8_validate (action, -1, NULL)); gpointer *data = g_new (gpointer, 2); data[0] = g_strdup (action); data[1] = arg; g_dbus_proxy_new_for_bus (G_BUS_TYPE_SESSION, G_DBUS_PROXY_FLAGS_NONE, NULL, "org.gnome.GPaste.Ui", "/org/gnome/GPaste/Ui", "org.freedesktop.Application", NULL, g_paste_util_activate_ui_on_proxy_ready, data); } /** * g_paste_util_activate_ui_sync: * @action: the action to activate * @arg: (nullable): the action argument * @error: a #GError or %NULL * * activate an action from GPaste Ui * * Returns: whether the action was successful */ G_PASTE_VISIBLE gboolean g_paste_util_activate_ui_sync (const gchar *action, GVariant *arg, GError **error) { g_return_val_if_fail (g_utf8_validate (action, -1, NULL), FALSE); g_return_val_if_fail (!error || !(*error), FALSE); g_autoptr (GDBusProxy) proxy = g_dbus_proxy_new_for_bus_sync (G_BUS_TYPE_SESSION, G_DBUS_PROXY_FLAGS_NONE, NULL, "org.gnome.GPaste.Ui", "/org/gnome/GPaste/Ui", "org.freedesktop.Application", NULL, error); if (!proxy) return FALSE; g_auto (GVariantBuilder) params; g_variant_builder_init_static (¶ms, G_VARIANT_TYPE ("av")); if (arg) g_variant_builder_add (¶ms, "v", arg); /* We only consume it */ G_GNUC_UNUSED g_autoptr (GVariant) res = g_dbus_proxy_call_sync (proxy, "ActivateAction", g_variant_new ("(sav@a{sv})", action, ¶ms, app_get_platform_data ()), G_DBUS_CALL_FLAGS_NONE, -1, NULL, /* cancellable */ error); return !error || !(*error); } /** * g_paste_util_empty_with_confirmation: * @client: a #GPasteClient instance * @settings: a #GPasteSettings instance * @history: the name of the history to empty * * Empty a history after confirmation. * Confirmation is skipped if GPaste is configured to do so. */ G_PASTE_VISIBLE void g_paste_util_empty_with_confirmation (GPasteClient *client, const GPasteSettings *settings, const gchar *history) { g_return_if_fail (_G_PASTE_IS_CLIENT (client)); g_return_if_fail (_G_PASTE_IS_SETTINGS (settings)); g_return_if_fail (g_utf8_validate (history, -1, NULL)); if (g_paste_settings_get_empty_history_confirmation (settings)) g_paste_util_activate_ui ("empty", g_variant_new_string (history)); else g_paste_client_empty_history (client, history, NULL, NULL); } /** * g_paste_util_empty_with_confirmation_sync: * @client: a #GPasteClient instance * @settings: a #GPasteSettings instance * @history: the name of the history to empty * @error: a #GError or %NULL * * Empty a history after confirmation. * Confirmation is skipped if GPaste is configured to do so. * * Returns: whether the action was successful */ G_PASTE_VISIBLE gboolean g_paste_util_empty_with_confirmation_sync (GPasteClient *client, const GPasteSettings *settings, const gchar *history, GError **error) { g_return_val_if_fail (_G_PASTE_IS_CLIENT (client), FALSE); g_return_val_if_fail (_G_PASTE_IS_SETTINGS (settings), FALSE); g_return_val_if_fail (g_utf8_validate (history, -1, NULL), FALSE); g_return_val_if_fail (!error || !(*error), FALSE); if (g_paste_settings_get_empty_history_confirmation (settings)) return g_paste_util_activate_ui_sync ("empty", g_variant_new_string (history), error); else { g_autoptr (GError) _error = NULL; g_paste_client_empty_history_sync (client, history, &_error); if (error) { *error = _error; _error = NULL; } return !_error && !(error && *error); } } /** * g_paste_util_relace: * @text: the initial text * @pattern: the pattern to replace * @substitution: the replacement text * * Replace some text * * Returns: the newly allocated string */ G_PASTE_VISIBLE gchar * g_paste_util_replace (const gchar *text, const gchar *pattern, const gchar *substitution) { g_return_val_if_fail (g_utf8_validate (text, -1, NULL), NULL); g_return_val_if_fail (g_utf8_validate (pattern, -1, NULL), NULL); g_return_val_if_fail (g_utf8_validate (substitution, -1, NULL), NULL); g_autofree gchar *regex_string = g_regex_escape_string (pattern, -1); g_autoptr (GError) error = NULL; g_autoptr (GRegex) regex = g_regex_new (regex_string, 0, /* Compile options */ 0, /* Match options */ &error); g_assert_no_error (error); gchar *result = g_regex_replace_literal (regex, text, (gssize) -1, 0, /* Start position */ substitution, 0, /* Match options */ &error); g_assert_no_error (error); return result; } /** * g_paste_util_has_gnome_shell: * * Check whether gnome-shell is installed or not * * Returns: %TRUE if gnome-shell is installed */ G_PASTE_VISIBLE gboolean g_paste_util_has_gnome_shell (void) { GSettingsSchemaSource *source = g_settings_schema_source_get_default (); if (!source) return FALSE; g_autoptr (GSettingsSchema) schema = g_settings_schema_source_lookup (source, G_PASTE_SHELL_SETTINGS_NAME, TRUE); return !!schema; } /** * g_paste_util_get_au_result: * @variant: a #GVariant * @len: the length of the resulting array * * Get the "au" GVariant as an array of guint32 * * Returns: (array length=len): The resulting array */ G_PASTE_VISIBLE guint32 * g_paste_util_get_dbus_au_result (GVariant *variant, guint64 *len) { gsize _len; const guint32 *r = g_variant_get_fixed_array (variant, &_len, sizeof (guint32)); guint32 *ret = g_memdup2 (r, _len * sizeof (guint32)); if (len) *len = _len; return ret; } /** * g_paste_util_get_dbus_item_result: * @variant: a #GVariant * * Get the "(ss)" GVariant as an item * * Returns: (transfer full): The item */ G_PASTE_VISIBLE GPasteClientItem * g_paste_util_get_dbus_item_result (GVariant *variant) { const gchar *uuid, *value; g_variant_get (variant, "(ss)", &uuid, &value); return g_paste_client_item_new (uuid, value); } /** * g_paste_util_get_dbus_items_result: * @variant: a #GVariant * * Get the "a(ss)" GVariant as a list of items * * Returns: (element-type GPasteClientItem) (transfer full): The items */ G_PASTE_VISIBLE GList * g_paste_util_get_dbus_items_result (GVariant *variant) { GList *items = NULL; GVariantIter iter; g_autoptr (GVariant) v = NULL; g_variant_iter_init (&iter, variant); while ((v = g_variant_iter_next_value (&iter))) { items = g_list_append (items, g_paste_util_get_dbus_item_result (v)); g_variant_unref (v); } return items; } static gchar * g_paste_util_get_runtime_dir (const gchar *component) { g_return_val_if_fail (component, NULL); return g_strdup_printf ("%s/" PACKAGE_NAME "/%s", g_get_user_runtime_dir (), component); } /** * g_paste_util_write_pid_file: * @component: The component we're handling * * Write the pid file */ G_PASTE_VISIBLE void g_paste_util_write_pid_file (const gchar *component) { g_return_if_fail (component); g_autofree gchar *dir = g_paste_util_get_runtime_dir (component); g_mkdir_with_parents (dir, 0700); g_autofree gchar *pidfile = g_strdup_printf ("%s/pid", dir); g_autofree gchar *contents = g_strdup_printf ("%" G_PID_FORMAT, getpid ()); g_autoptr (GError) error = NULL; if (!g_file_set_contents (pidfile, contents, -1, &error)) g_warning ("Failed to write pid file: %s", error->message); } /** * g_paste_util_read_pid_file: * @component: The component we're handling * * Read the pid file * * Returns: the pid */ G_PASTE_VISIBLE GPid g_paste_util_read_pid_file (const gchar *component) { g_return_val_if_fail (component, (GPid) -1); #ifdef G_OS_UNIX g_autofree gchar *dir = g_paste_util_get_runtime_dir (component); g_autofree gchar *pidfile = g_strdup_printf ("%s/pid", dir); g_autofree gchar *contents = NULL; g_autoptr (GError) error = NULL; if (!g_file_get_contents (pidfile, &contents, NULL, &error)) { g_warning ("Failed to read pid file: %s", error->message); return (GPid) -1; } return (GPid) g_ascii_strtoll (contents, NULL, 0); #else return (GPid) -1; #endif } /** * g_paste_util_xml_decode: * @text: The text to decode * * Decode the text to its original pre-xml form * * Returns: the decoded text */ G_PASTE_VISIBLE gchar * g_paste_util_xml_decode (const gchar *text) { g_return_val_if_fail (text, NULL); g_autofree gchar *_decoded_text = g_paste_util_replace (text, ">", ">"); return g_paste_util_replace (_decoded_text, "&", "&"); } /** * g_paste_util_xml_encode: * @text: The text to encode * * Encode the text into its xml form * * Returns: the encoded text */ G_PASTE_VISIBLE gchar * g_paste_util_xml_encode (const gchar *text) { g_return_val_if_fail (text, NULL); g_autofree gchar *_encoded_text = g_paste_util_replace (text, "&", "&"); return g_paste_util_replace (_encoded_text, ">", ">"); } /** * g_paste_util_get_history_dir_path: * * Get the path to the directory where we store the history * * Returns: the directory path */ G_PASTE_VISIBLE gchar * g_paste_util_get_history_dir_path (void) { const gchar *user_data_dir = g_get_user_data_dir (); g_autofree gchar *meson_bug_history_path = g_build_filename (user_data_dir, PACKAGE_NAME, NULL); // meson wrongfully defined PACKAGE as PACKAGE_NAME. // use it if it exists, but otherwise use the correct path. if (g_file_test (meson_bug_history_path, G_FILE_TEST_IS_DIR)) return g_steal_pointer (&meson_bug_history_path); return g_build_filename (user_data_dir, PACKAGE, NULL); } /** * g_paste_util_get_history_dir: * * Get the directory where we store the history * * Returns: (transfer full): the directory */ G_PASTE_VISIBLE GFile * g_paste_util_get_history_dir (void) { g_autofree gchar *history_dir_path = g_paste_util_get_history_dir_path (); return g_file_new_for_path (history_dir_path); } /** * g_paste_util_get_history_file_path: * @name: the name of the history * @extension: the file extension * * Get the path to the file in which we store the history * * Returns: the file path */ G_PASTE_VISIBLE gchar * g_paste_util_get_history_file_path (const gchar *name, const gchar *extension) { g_return_val_if_fail (name, NULL); g_return_val_if_fail (extension, NULL); g_autofree gchar *history_dir_path = g_paste_util_get_history_dir_path (); g_autofree gchar *history_file_name = g_strconcat (name, ".", extension, NULL); return g_build_filename (history_dir_path, history_file_name, NULL); } /** * g_paste_util_get_history_file: * @name: the name of the history * @extension: the file extension * * Get the file in which we store the history * * Returns: (transfer full): the file */ G_PASTE_VISIBLE GFile * g_paste_util_get_history_file (const gchar *name, const gchar *extension) { g_return_val_if_fail (name, NULL); g_return_val_if_fail (extension, NULL); g_autofree gchar *history_file_path = g_paste_util_get_history_file_path (name, extension); return g_file_new_for_path (history_file_path); } /** * g_paste_util_ensure_history_dir_exists: * @settings: a #GPasteSettings instance * * Ensure the history dir exists * * Returns: where it exists or if there was an error creating it */ G_PASTE_VISIBLE gboolean g_paste_util_ensure_history_dir_exists (const GPasteSettings *settings) { g_return_val_if_fail (_G_PASTE_IS_SETTINGS (settings), FALSE); g_autoptr (GFile) history_dir = g_paste_util_get_history_dir (); if (!g_file_query_exists (history_dir, NULL)) /* cancellable */ { if (!g_paste_settings_get_save_history (settings)) return TRUE; g_autoptr (GError) error = NULL; g_file_make_directory_with_parents (history_dir, NULL, /* cancellable */ &error); if (error) { g_critical ("%s: %s", _("Could not create history dir"), error->message); return FALSE; } } return TRUE; } Keruspe-GPaste-724def1/src/libgpaste/gpaste/gpaste-util.h000066400000000000000000000050471521206431300233650ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #if !defined (__G_PASTE_H_INSIDE__) && !defined (G_PASTE_COMPILATION) #error "Only can be included directly." #endif #pragma once #include #include G_BEGIN_DECLS void g_paste_util_spawn (const gchar *app); gboolean g_paste_util_spawn_sync (const gchar *app, GError **error); void g_paste_util_activate_ui (const gchar *action, GVariant *arg); gboolean g_paste_util_activate_ui_sync (const gchar *action, GVariant *arg, GError **error); void g_paste_util_empty_with_confirmation (GPasteClient *client, const GPasteSettings *settings, const gchar *history); gboolean g_paste_util_empty_with_confirmation_sync (GPasteClient *client, const GPasteSettings *settings, const gchar *history, GError **error); gchar *g_paste_util_replace (const gchar *text, const gchar *pattern, const gchar *substitution); gboolean g_paste_util_has_gnome_shell (void); guint32 *g_paste_util_get_dbus_au_result (GVariant *variant, guint64 *len); GPasteClientItem *g_paste_util_get_dbus_item_result (GVariant *variant); GList *g_paste_util_get_dbus_items_result (GVariant *variant); void g_paste_util_write_pid_file (const gchar *component); GPid g_paste_util_read_pid_file (const gchar *component); gchar *g_paste_util_xml_decode (const gchar *text); gchar *g_paste_util_xml_encode (const gchar *text); gchar *g_paste_util_get_history_dir_path (void); GFile *g_paste_util_get_history_dir (void); gchar *g_paste_util_get_history_file_path (const gchar *name, const gchar *extension); GFile *g_paste_util_get_history_file (const gchar *name, const gchar *extension); gboolean g_paste_util_ensure_history_dir_exists (const GPasteSettings *settings); G_END_DECLS Keruspe-GPaste-724def1/src/libgpaste/libgpaste-gtk4.sym000066400000000000000000000030071521206431300230400ustar00rootroot00000000000000LIBGPASTE_GTK4_42 { global: g_paste_gtk_global_shortcut_client_get_type; g_paste_gtk_global_shortcut_client_new; g_paste_gtk_global_shortcut_client_new_finish; g_paste_gtk_global_shortcut_client_new_sync; g_paste_gtk_util_confirm_dialog; g_paste_gtk_util_compute_checksum; g_paste_gtk_util_empty_history; g_paste_gtk_util_show_window; g_paste_gtk_preferences_behaviour_page_get_type; g_paste_gtk_preferences_behaviour_page_new; g_paste_gtk_preferences_group_add_boolean_setting; g_paste_gtk_preferences_group_add_range_setting; g_paste_gtk_preferences_group_add_text_setting; g_paste_gtk_preferences_group_get_type; g_paste_gtk_preferences_group_new; g_paste_gtk_preferences_history_settings_page_get_type; g_paste_gtk_preferences_history_settings_page_new; g_paste_gtk_preferences_images_page_get_type; g_paste_gtk_preferences_images_page_new; g_paste_gtk_preferences_manager_get_settings; g_paste_gtk_preferences_manager_get_type; g_paste_gtk_preferences_manager_deregister; g_paste_gtk_preferences_manager_new; g_paste_gtk_preferences_manager_register; g_paste_gtk_preferences_page_get_type; g_paste_gtk_preferences_page_setting_changed; g_paste_gtk_preferences_shortcuts_page_get_type; g_paste_gtk_preferences_shortcuts_page_new; g_paste_gtk_preferences_widget_get_type; g_paste_gtk_preferences_widget_new; g_paste_gtk_preferences_dialog_get_type; g_paste_gtk_preferences_dialog_new; local: *; }; Keruspe-GPaste-724def1/src/libgpaste/libgpaste.sym000066400000000000000000000221711521206431300221740ustar00rootroot00000000000000LIBGPASTE_42 { global: g_paste_client_about; g_paste_client_about_finish; g_paste_client_about_sync; g_paste_client_add; g_paste_client_add_file; g_paste_client_add_file_finish; g_paste_client_add_file_sync; g_paste_client_add_finish; g_paste_client_add_password; g_paste_client_add_password_finish; g_paste_client_add_password_sync; g_paste_client_add_sync; g_paste_client_backup_history; g_paste_client_backup_history_finish; g_paste_client_backup_history_sync; g_paste_client_delete; g_paste_client_delete_finish; g_paste_client_delete_history; g_paste_client_delete_history_finish; g_paste_client_delete_history_sync; g_paste_client_delete_password; g_paste_client_delete_password_finish; g_paste_client_delete_password_sync; g_paste_client_delete_sync; g_paste_client_empty_history; g_paste_client_empty_history_finish; g_paste_client_empty_history_sync; g_paste_client_get_element; g_paste_client_get_element_at_index; g_paste_client_get_element_at_index_finish; g_paste_client_get_element_at_index_sync; g_paste_client_get_element_finish; g_paste_client_get_element_kind; g_paste_client_get_element_kind_finish; g_paste_client_get_element_kind_sync; g_paste_client_get_element_sync; g_paste_client_get_elements; g_paste_client_get_elements_finish; g_paste_client_get_elements_sync; g_paste_client_get_history; g_paste_client_get_history_finish; g_paste_client_get_history_name; g_paste_client_get_history_name_finish; g_paste_client_get_history_name_sync; g_paste_client_get_history_size; g_paste_client_get_history_size_finish; g_paste_client_get_history_size_sync; g_paste_client_get_history_sync; g_paste_client_get_raw_element; g_paste_client_get_raw_element_finish; g_paste_client_get_raw_element_sync; g_paste_client_get_raw_history; g_paste_client_get_raw_history_finish; g_paste_client_get_raw_history_sync; g_paste_client_get_type; g_paste_client_get_version; g_paste_client_is_active; g_paste_client_list_histories; g_paste_client_list_histories_finish; g_paste_client_list_histories_sync; g_paste_client_merge; g_paste_client_merge_finish; g_paste_client_merge_sync; g_paste_client_new; g_paste_client_new_finish; g_paste_client_new_sync; g_paste_client_on_extension_state_changed; g_paste_client_on_extension_state_changed_finish; g_paste_client_on_extension_state_changed_sync; g_paste_client_reexecute; g_paste_client_reexecute_finish; g_paste_client_reexecute_sync; g_paste_client_rename_password; g_paste_client_rename_password_finish; g_paste_client_rename_password_sync; g_paste_client_replace; g_paste_client_replace_finish; g_paste_client_replace_sync; g_paste_client_search; g_paste_client_search_finish; g_paste_client_search_sync; g_paste_client_select; g_paste_client_select_finish; g_paste_client_select_sync; g_paste_client_set_password; g_paste_client_set_password_finish; g_paste_client_set_password_sync; g_paste_client_show_history; g_paste_client_show_history_finish; g_paste_client_show_history_sync; g_paste_client_switch_history; g_paste_client_switch_history_finish; g_paste_client_switch_history_sync; g_paste_client_track; g_paste_client_track_finish; g_paste_client_track_sync; g_paste_client_upload; g_paste_client_upload_finish; g_paste_client_upload_sync; g_paste_client_item_get_type; g_paste_client_item_get_uuid; g_paste_client_item_get_value; g_paste_client_item_new; g_paste_keybinding_provider_emit_keybinding_activated; g_paste_keybinding_provider_get_type; g_paste_keybinding_provider_grab_all; g_paste_keybinding_provider_ungrab_all; g_paste_gnome_shell_client_get_type; g_paste_gnome_shell_client_grab_accelerator; g_paste_gnome_shell_client_grab_accelerator_finish; g_paste_gnome_shell_client_grab_accelerator_sync; g_paste_gnome_shell_client_grab_accelerators; g_paste_gnome_shell_client_grab_accelerators_finish; g_paste_gnome_shell_client_grab_accelerators_sync; g_paste_gnome_shell_client_new; g_paste_gnome_shell_client_new_finish; g_paste_gnome_shell_client_new_sync; g_paste_gnome_shell_client_ungrab_accelerator; g_paste_gnome_shell_client_ungrab_accelerator_finish; g_paste_gnome_shell_client_ungrab_accelerator_sync; g_paste_item_kind_get_type; g_paste_screensaver_client_get_type; g_paste_screensaver_client_new; g_paste_screensaver_client_new_finish; g_paste_screensaver_client_new_sync; g_paste_settings_get_close_on_select; g_paste_settings_get_element_size; g_paste_settings_get_empty_history_confirmation; g_paste_settings_get_extension_enabled; g_paste_settings_get_growing_lines; g_paste_settings_get_history_name; g_paste_settings_get_images_preview; g_paste_settings_get_images_preview_size; g_paste_settings_get_images_support; g_paste_settings_get_launch_ui; g_paste_settings_get_make_password; g_paste_settings_get_max_displayed_history_size; g_paste_settings_get_max_history_size; g_paste_settings_get_max_memory_usage; g_paste_settings_get_max_text_item_size; g_paste_settings_get_min_text_item_size; g_paste_settings_get_open_centered; g_paste_settings_get_pop; g_paste_settings_get_primary_to_history; g_paste_settings_get_rich_text_support; g_paste_settings_get_save_history; g_paste_settings_get_show_history; g_paste_settings_get_sync_clipboard_to_primary; g_paste_settings_get_sync_primary_to_clipboard; g_paste_settings_get_synchronize_clipboards; g_paste_settings_get_track_changes; g_paste_settings_get_track_extension_state; g_paste_settings_get_trim_items; g_paste_settings_get_type; g_paste_settings_get_upload; g_paste_settings_new; g_paste_settings_reset_close_on_select; g_paste_settings_reset_element_size; g_paste_settings_reset_empty_history_confirmation; g_paste_settings_reset_growing_lines; g_paste_settings_reset_history_name; g_paste_settings_reset_images_preview; g_paste_settings_reset_images_preview_size; g_paste_settings_reset_images_support; g_paste_settings_reset_launch_ui; g_paste_settings_reset_make_password; g_paste_settings_reset_max_displayed_history_size; g_paste_settings_reset_max_history_size; g_paste_settings_reset_max_memory_usage; g_paste_settings_reset_max_text_item_size; g_paste_settings_reset_min_text_item_size; g_paste_settings_reset_open_centered; g_paste_settings_reset_pop; g_paste_settings_reset_primary_to_history; g_paste_settings_reset_rich_text_support; g_paste_settings_reset_save_history; g_paste_settings_reset_show_history; g_paste_settings_reset_sync_clipboard_to_primary; g_paste_settings_reset_sync_primary_to_clipboard; g_paste_settings_reset_synchronize_clipboards; g_paste_settings_reset_track_changes; g_paste_settings_reset_track_extension_state; g_paste_settings_reset_trim_items; g_paste_settings_reset_upload; g_paste_settings_set_close_on_select; g_paste_settings_set_element_size; g_paste_settings_set_empty_history_confirmation; g_paste_settings_set_extension_enabled; g_paste_settings_set_growing_lines; g_paste_settings_set_history_name; g_paste_settings_set_images_preview; g_paste_settings_set_images_preview_size; g_paste_settings_set_images_support; g_paste_settings_set_launch_ui; g_paste_settings_set_make_password; g_paste_settings_set_max_displayed_history_size; g_paste_settings_set_max_history_size; g_paste_settings_set_max_memory_usage; g_paste_settings_set_max_text_item_size; g_paste_settings_set_min_text_item_size; g_paste_settings_set_open_centered; g_paste_settings_set_pop; g_paste_settings_set_primary_to_history; g_paste_settings_set_rich_text_support; g_paste_settings_set_save_history; g_paste_settings_set_show_history; g_paste_settings_set_sync_clipboard_to_primary; g_paste_settings_set_sync_primary_to_clipboard; g_paste_settings_set_synchronize_clipboards; g_paste_settings_set_track_changes; g_paste_settings_set_track_extension_state; g_paste_settings_set_trim_items; g_paste_settings_set_upload; g_paste_update_action_get_type; g_paste_update_target_get_type; g_paste_util_activate_ui; g_paste_util_activate_ui_sync; g_paste_util_empty_with_confirmation; g_paste_util_empty_with_confirmation_sync; g_paste_util_ensure_history_dir_exists; g_paste_util_get_dbus_au_result; g_paste_util_get_dbus_item_result; g_paste_util_get_dbus_items_result; g_paste_util_get_history_dir; g_paste_util_get_history_dir_path; g_paste_util_get_history_file; g_paste_util_get_history_file_path; g_paste_util_has_gnome_shell; g_paste_util_read_pid_file; g_paste_util_replace; g_paste_util_spawn; g_paste_util_spawn_sync; g_paste_util_write_pid_file; g_paste_util_xml_decode; g_paste_util_xml_encode; local: *; }; Keruspe-GPaste-724def1/src/libgpaste/meson.build000066400000000000000000000117021521206431300216300ustar00rootroot00000000000000libgpaste_soversion = '0.1.0' libgpaste_gtk4_soversion = '1.0.0' pkg = import('pkgconfig') libgpaste_sources = [ 'gpaste/gpaste-client-item.c', 'gpaste/gpaste-client.c', 'gpaste/gpaste-gnome-shell-client.c', 'gpaste/gpaste-keybinding-provider.c', 'gpaste/gpaste-item-enums.c', 'gpaste/gpaste-screensaver-client.c', 'gpaste/gpaste-settings.c', 'gpaste/gpaste-update-enums.c', 'gpaste/gpaste-util.c', ] libgpaste_headers = [ 'gpaste/gpaste-client-item.h', 'gpaste/gpaste-client.h', 'gpaste/gpaste-gdbus-defines.h', 'gpaste/gpaste-gdbus-macros.h', 'gpaste/gpaste-gnome-shell-client.h', 'gpaste/gpaste-keybinding-provider.h', 'gpaste/gpaste-gsettings-keys.h', 'gpaste/gpaste-item-enums.h', 'gpaste/gpaste-macros.h', 'gpaste/gpaste-screensaver-client.h', 'gpaste/gpaste-settings.h', 'gpaste/gpaste-update-enums.h', 'gpaste/gpaste-util.h', ] libgpaste_symbols_file = meson.current_source_dir() / 'libgpaste.sym' libgpaste = library( 'gpaste-' + apiversion, sources: libgpaste_sources, version: libgpaste_soversion, dependencies: libgpaste_deps, install: true, install_dir: get_option('libdir'), link_args: ['-Wl,--version-script=' + libgpaste_symbols_file, '-lc'], link_depends: libgpaste_symbols_file, ) libgpaste_internal_dep = declare_dependency( link_with: libgpaste, include_directories: include_directories('.'), ) install_headers( ['gpaste.h'], subdir: 'gpaste-' + apiversion, ) install_headers( libgpaste_headers, subdir: 'gpaste-' + apiversion + '/gpaste', ) pkg.generate( libgpaste, name: 'GPaste', filebase: 'gpaste-' + apiversion, subdirs: 'gpaste-' + apiversion, description: 'Library to handle and communicate with GPaste', requires: libgpaste_deps, ) libgpaste_gtk4_sources = [ 'gpaste-gtk4/gpaste-gtk-global-shortcut-client.c', 'gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.c', 'gpaste-gtk4/gpaste-gtk-preferences-dialog.c', 'gpaste-gtk4/gpaste-gtk-preferences-group.c', 'gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.c', 'gpaste-gtk4/gpaste-gtk-preferences-images-page.c', 'gpaste-gtk4/gpaste-gtk-preferences-manager.c', 'gpaste-gtk4/gpaste-gtk-preferences-page.c', 'gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.c', 'gpaste-gtk4/gpaste-gtk-preferences-widget.c', 'gpaste-gtk4/gpaste-gtk-util.c', ] libgpaste_gtk4_headers = [ 'gpaste-gtk4/gpaste-gtk-global-shortcut-client.h', 'gpaste-gtk4/gpaste-gtk-macros.h', 'gpaste-gtk4/gpaste-gtk-preferences-behaviour-page.h', 'gpaste-gtk4/gpaste-gtk-preferences-dialog.h', 'gpaste-gtk4/gpaste-gtk-preferences-group.h', 'gpaste-gtk4/gpaste-gtk-preferences-history-settings-page.h', 'gpaste-gtk4/gpaste-gtk-preferences-images-page.h', 'gpaste-gtk4/gpaste-gtk-preferences-manager.h', 'gpaste-gtk4/gpaste-gtk-preferences-page.h', 'gpaste-gtk4/gpaste-gtk-preferences-shortcuts-page.h', 'gpaste-gtk4/gpaste-gtk-preferences-widget.h', 'gpaste-gtk4/gpaste-gtk-util.h', ] libgpaste_gtk4_symbols_file = meson.current_source_dir() / 'libgpaste-gtk4.sym' libgpaste_gtk4_deps = [ libgpaste_internal_dep, libadwaita_dep, gtk4_dep ] libgpaste_gtk4 = library( 'gpaste-gtk4', sources: libgpaste_gtk4_sources, version: libgpaste_gtk4_soversion, dependencies: libgpaste_gtk4_deps, install: true, install_dir: get_option('libdir'), link_args: ['-Wl,--version-script=' + libgpaste_gtk4_symbols_file, '-lc'], link_depends: libgpaste_gtk4_symbols_file, ) libgpaste_gtk4_internal_dep = declare_dependency( link_with: libgpaste_gtk4, include_directories: include_directories('.'), ) install_headers( ['gpaste-gtk4.h'], subdir: 'gpaste-' + apiversion, ) install_headers( libgpaste_gtk4_headers, subdir: 'gpaste-' + apiversion + '/gpaste-gtk4', ) pkg.generate( libgpaste_gtk4, name: 'GPasteGtk4', filebase: 'gpaste-gtk-4', subdirs: 'gpaste-' + apiversion, description: 'Library to manage GPaste settings and perform graphical operations', libraries: libgpaste_gtk4_deps, ) if get_option('introspection') libgpaste_gir = gnome.generate_gir( libgpaste, sources: [ libgpaste_sources, libgpaste_headers ], includes: [ 'Gio-2.0', 'GLib-2.0', 'GObject-2.0' ], dependencies: [ libgpaste_deps, libgpaste_internal_dep ], header: 'gpaste.h', namespace: 'GPaste', nsversion: apiversion, install: true, ) libgpaste_gtk4_gir = gnome.generate_gir( libgpaste_gtk4, sources: [ libgpaste_gtk4_sources, libgpaste_gtk4_headers ], includes: [ libgpaste_gir[0], 'Adw-1', 'Gtk-4.0', 'Gdk-4.0' ], dependencies: [ ], header: 'gpaste-gtk4.h', namespace: 'GPasteGtk', nsversion: '4', install: true, ) endif if get_option('vapi') libgpaste_vapi = gnome.generate_vapi( 'gpaste-' + apiversion, sources: [libgpaste_gir[0]], packages: [ 'gio-2.0', 'glib-2.0', 'gobject-2.0' ], install: true, ) gnome.generate_vapi( 'gpaste-gtk-4', sources: [libgpaste_gtk4_gir[0]], packages: [ libgpaste_vapi, 'gtk4', 'libadwaita-1'], install: true, ) endif Keruspe-GPaste-724def1/src/meson.build000066400000000000000000000002251521206431300176540ustar00rootroot00000000000000subdir('libgpaste') subdir('client') subdir('daemon') subdir('preferences') subdir('ui') if get_option('gnome-shell') subdir('gnome-shell') endif Keruspe-GPaste-724def1/src/preferences/000077500000000000000000000000001521206431300200145ustar00rootroot00000000000000Keruspe-GPaste-724def1/src/preferences/gpaste-preferences.c000066400000000000000000000016171521206431300237470ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #include #include static void quit_activated (GSimpleAction *action G_GNUC_UNUSED, GVariant *parameter G_GNUC_UNUSED, gpointer user_data) { g_application_quit (G_APPLICATION (user_data)); } gint main (gint argc, gchar *argv[]) { G_PASTE_GTK_INIT_APPLICATION ("Preferences"); GActionEntry app_entries[] = { { "quit", quit_activated, NULL, NULL, NULL, { 0 } }, }; g_action_map_add_action_entries (G_ACTION_MAP (app), app_entries, G_N_ELEMENTS (app_entries), app); AdwDialog *dialog = g_paste_gtk_preferences_dialog_new (gapp); adw_dialog_present (dialog, NULL); return g_application_run (gapp, argc, argv); } Keruspe-GPaste-724def1/src/preferences/meson.build000066400000000000000000000004731521206431300221620ustar00rootroot00000000000000gpaste_preferences_sources = [ 'gpaste-preferences.c', ] executable( 'gpaste-preferences', sources: gpaste_preferences_sources, install: true, dependencies: [ glib_dep, gtk4_dep, libadwaita_dep, libgpaste_internal_dep, libgpaste_gtk4_internal_dep ], install_dir: get_option('libexecdir') / 'gpaste', ) Keruspe-GPaste-724def1/src/ui/000077500000000000000000000000001521206431300161305ustar00rootroot00000000000000Keruspe-GPaste-724def1/src/ui/gpaste-ui-about.c000066400000000000000000000031721521206431300213050ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #include #include struct _GPasteUiAbout { GtkButton parent_instance; }; typedef struct { GActionGroup *action_group; } GPasteUiAboutPrivate; G_PASTE_DEFINE_TYPE_WITH_PRIVATE (UiAbout, ui_about, GTK_TYPE_BUTTON) static void g_paste_ui_about_clicked (GtkButton *button) { const GPasteUiAboutPrivate *priv = _g_paste_ui_about_get_instance_private (G_PASTE_UI_ABOUT (button)); g_action_group_activate_action (priv->action_group, "about", NULL); } static void g_paste_ui_about_class_init (GPasteUiAboutClass *klass) { GTK_BUTTON_CLASS (klass)->clicked = g_paste_ui_about_clicked; } static void g_paste_ui_about_init (GPasteUiAbout *self) { GtkWidget *widget = GTK_WIDGET (self); gtk_widget_set_tooltip_text (widget, _("About")); gtk_widget_set_valign (widget, GTK_ALIGN_CENTER); gtk_button_set_child (GTK_BUTTON (self), gtk_image_new_from_icon_name ("dialog-information-symbolic")); } /** * g_paste_ui_about_new: * @app: The #GtkApplication * * Create a new instance of #GPasteUiAbout * * Returns: a newly allocated #GPasteUiAbout * free it with g_object_unref */ G_PASTE_VISIBLE GtkWidget * g_paste_ui_about_new (GtkApplication *app) { g_return_val_if_fail (GTK_IS_APPLICATION (app), NULL); GtkWidget *self = g_object_new (G_PASTE_TYPE_UI_ABOUT, NULL); GPasteUiAboutPrivate *priv = g_paste_ui_about_get_instance_private (G_PASTE_UI_ABOUT (self)); priv->action_group = G_ACTION_GROUP (app); return self; } Keruspe-GPaste-724def1/src/ui/gpaste-ui-about.h000066400000000000000000000010301521206431300213010ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #if !defined (__G_PASTE_H_INSIDE__) && !defined (G_PASTE_COMPILATION) #error "Only can be included directly." #endif #pragma once #include #include G_BEGIN_DECLS #define G_PASTE_TYPE_UI_ABOUT (g_paste_ui_about_get_type ()) G_PASTE_FINAL_TYPE (UiAbout, ui_about, UI_ABOUT, GtkButton) GtkWidget *g_paste_ui_about_new (GtkApplication *app); G_END_DECLS Keruspe-GPaste-724def1/src/ui/gpaste-ui-delete-item.c000066400000000000000000000024351521206431300223720ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #include struct _GPasteUiDeleteItem { GPasteUiItemAction parent_instance; }; G_PASTE_DEFINE_TYPE (UiDeleteItem, ui_delete_item, G_PASTE_TYPE_UI_ITEM_ACTION) static void g_paste_ui_delete_item_activate (GPasteUiItemAction *self G_GNUC_UNUSED, GPasteClient *client, const gchar *uuid) { g_paste_client_delete (client, uuid, NULL, NULL); } static void g_paste_ui_delete_item_class_init (GPasteUiDeleteItemClass *klass) { G_PASTE_UI_ITEM_ACTION_CLASS (klass)->activate = g_paste_ui_delete_item_activate; } static void g_paste_ui_delete_item_init (GPasteUiDeleteItem *self G_GNUC_UNUSED) { } /** * g_paste_ui_delete_item_new: * @client: a #GPasteClient * * Create a new instance of #GPasteUiDeleteItem * * Returns: a newly allocated #GPasteUiDeleteItem * free it with g_object_unref */ G_PASTE_VISIBLE GtkWidget * g_paste_ui_delete_item_new (GPasteClient *client) { g_return_val_if_fail (_G_PASTE_IS_CLIENT (client), NULL); return g_paste_ui_item_action_new (G_PASTE_TYPE_UI_DELETE_ITEM, client, "edit-delete-symbolic", _("Delete")); } Keruspe-GPaste-724def1/src/ui/gpaste-ui-delete-item.h000066400000000000000000000010601521206431300223700ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #if !defined (__G_PASTE_H_INSIDE__) && !defined (G_PASTE_COMPILATION) #error "Only can be included directly." #endif #pragma once #include G_BEGIN_DECLS #define G_PASTE_TYPE_UI_DELETE_ITEM (g_paste_ui_delete_item_get_type ()) G_PASTE_FINAL_TYPE (UiDeleteItem, ui_delete_item, UI_DELETE_ITEM, GPasteUiItemAction) GtkWidget *g_paste_ui_delete_item_new (GPasteClient *client); G_END_DECLS Keruspe-GPaste-724def1/src/ui/gpaste-ui-edit-item.c000066400000000000000000000107611521206431300220560ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #include #include struct _GPasteUiEditItem { GPasteUiItemAction parent_instance; }; typedef struct { GtkWindow *rootwin; } GPasteUiEditItemPrivate; G_PASTE_DEFINE_TYPE_WITH_PRIVATE (UiEditItem, ui_edit_item, G_PASTE_TYPE_UI_ITEM_ACTION) typedef struct { GtkWindow *rootwin; gchar *uuid; } CallbackData; typedef struct { GPasteClient *client; gchar *uuid; GtkTextBuffer *buffer; } EditItemDialogData; static void on_edit_response (GObject *dialog, GAsyncResult *result, gpointer user_data) { g_autofree EditItemDialogData *data = user_data; g_autoptr (GPasteClient) client = data->client; g_autofree gchar *uuid = data->uuid; g_autoptr (GtkTextBuffer) buffer = data->buffer; const gchar *response = adw_alert_dialog_choose_finish (ADW_ALERT_DIALOG (dialog), result); if (g_strcmp0 (response, "confirm") == 0) { GtkTextIter start, end; gtk_text_buffer_get_bounds (buffer, &start, &end); g_autofree gchar *txt = gtk_text_buffer_get_text (buffer, &start, &end, FALSE); if (txt && *txt) g_paste_client_replace (client, uuid, txt, NULL, NULL); } } static void on_item_ready (GObject *source_object, GAsyncResult *res, gpointer user_data) { g_autofree CallbackData *data = user_data; g_autofree gchar *uuid = data->uuid; g_autoptr (GtkWindow) rootwin = data->rootwin; GPasteClient *client = G_PASTE_CLIENT (source_object); g_autofree gchar *old_item = g_paste_client_get_raw_element_finish (client, res, NULL); if (!old_item) return; AdwAlertDialog *dialog = ADW_ALERT_DIALOG (adw_alert_dialog_new (PACKAGE_STRING, NULL)); GtkWidget *text = gtk_text_view_new (); GtkTextView *tv = GTK_TEXT_VIEW (text); GtkTextBuffer *buf = gtk_text_view_get_buffer (tv); GtkWidget *scroll = gtk_scrolled_window_new (); GtkScrolledWindow *sw = GTK_SCROLLED_WINDOW (scroll); gtk_text_view_set_wrap_mode (tv, GTK_WRAP_WORD); gtk_text_buffer_set_text (buf, old_item, -1); gtk_scrolled_window_set_min_content_height (sw, 300); gtk_scrolled_window_set_min_content_width (sw, 600); gtk_scrolled_window_set_child (sw, text); gtk_widget_set_vexpand (scroll, TRUE); adw_alert_dialog_add_responses (dialog, "cancel", _("Cancel"), "confirm", _("Edit"), NULL); adw_alert_dialog_set_extra_child (dialog, scroll); EditItemDialogData *dialog_data = g_new (EditItemDialogData, 1); dialog_data->client = g_object_ref (client); dialog_data->uuid = g_strdup (uuid); dialog_data->buffer = g_object_ref (buf); adw_alert_dialog_choose (dialog, GTK_WIDGET (rootwin), NULL, on_edit_response, dialog_data); } static void g_paste_ui_edit_item_activate (GPasteUiItemAction *self, GPasteClient *client, const gchar *uuid) { CallbackData *data = g_new (CallbackData, 1); GPasteUiEditItemPrivate *priv = g_paste_ui_edit_item_get_instance_private (G_PASTE_UI_EDIT_ITEM (self)); data->rootwin = g_object_ref (priv->rootwin); data->uuid = g_strdup (uuid); g_paste_client_get_raw_element (client, uuid, on_item_ready, data); } static void g_paste_ui_edit_item_class_init (GPasteUiEditItemClass *klass) { G_PASTE_UI_ITEM_ACTION_CLASS (klass)->activate = g_paste_ui_edit_item_activate; } static void g_paste_ui_edit_item_init (GPasteUiEditItem *self G_GNUC_UNUSED) { } /** * g_paste_ui_edit_item_new: * @client: a #GPasteClient * @rootwin: the root #GtkWindow * * Create a new instance of #GPasteUiEditItem * * Returns: a newly allocated #GPasteUiEditItem * free it with g_object_unref */ G_PASTE_VISIBLE GtkWidget * g_paste_ui_edit_item_new (GPasteClient *client, GtkWindow *rootwin) { g_return_val_if_fail (_G_PASTE_IS_CLIENT (client), NULL); g_return_val_if_fail (GTK_IS_WINDOW (rootwin), NULL); GtkWidget *self = g_paste_ui_item_action_new (G_PASTE_TYPE_UI_EDIT_ITEM, client, "accessories-text-editor-symbolic", _("Edit")); GPasteUiEditItemPrivate *priv = g_paste_ui_edit_item_get_instance_private (G_PASTE_UI_EDIT_ITEM (self)); priv->rootwin = rootwin; return self; } Keruspe-GPaste-724def1/src/ui/gpaste-ui-edit-item.h000066400000000000000000000011401521206431300220520ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #if !defined (__G_PASTE_H_INSIDE__) && !defined (G_PASTE_COMPILATION) #error "Only can be included directly." #endif #pragma once #include G_BEGIN_DECLS #define G_PASTE_TYPE_UI_EDIT_ITEM (g_paste_ui_edit_item_get_type ()) G_PASTE_FINAL_TYPE (UiEditItem, ui_edit_item, UI_EDIT_ITEM, GPasteUiItemAction) GtkWidget *g_paste_ui_edit_item_new (GPasteClient *client, GtkWindow *rootwin); G_END_DECLS Keruspe-GPaste-724def1/src/ui/gpaste-ui-header.c000066400000000000000000000063201521206431300214210ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #include #include #include #include #include #include #include typedef struct { GtkButton *settings; GtkToggleButton *search; AdwWindowTitle *title; } GPasteUiHeaderData; /** * g_paste_ui_header_show_prefs: * @self: the header bar * * Show the prefs pane */ G_PASTE_VISIBLE void g_paste_ui_header_show_prefs (AdwHeaderBar *self) { g_return_if_fail (ADW_IS_HEADER_BAR (self)); GPasteUiHeaderData *data = g_object_get_data (G_OBJECT (self), "header-data"); gtk_widget_activate (GTK_WIDGET (data->settings)); } /** * g_paste_ui_header_set_subtitle: * @self: the header bar * @subtitle: the subtitle to display (current history name) * * Update the subtitle shown in the window title widget */ G_PASTE_VISIBLE void g_paste_ui_header_set_subtitle (AdwHeaderBar *self, const gchar *subtitle) { g_return_if_fail (ADW_IS_HEADER_BAR (self)); GPasteUiHeaderData *data = g_object_get_data (G_OBJECT (self), "header-data"); adw_window_title_set_subtitle (data->title, subtitle); } /** * g_paste_ui_header_get_search_button: * @self: the header bar * * Get the search button * * Returns: (transfer none): the #GtkToggleButton for search */ G_PASTE_VISIBLE GtkToggleButton * g_paste_ui_header_get_search_button (AdwHeaderBar *self) { g_return_val_if_fail (ADW_IS_HEADER_BAR (self), NULL); GPasteUiHeaderData *data = g_object_get_data (G_OBJECT (self), "header-data"); return data->search; } /** * g_paste_ui_header_new: * @topwin: the main #GtkWindow * @client: a #GPasteClient instance * * Create a new #AdwHeaderBar configured for GPaste * * Returns: a newly allocated #AdwHeaderBar * free it with g_object_unref */ G_PASTE_VISIBLE GtkWidget * g_paste_ui_header_new (GtkWindow *topwin, GPasteClient *client) { g_return_val_if_fail (GTK_IS_WINDOW (topwin), NULL); g_return_val_if_fail (_G_PASTE_IS_CLIENT (client), NULL); GtkWidget *self = adw_header_bar_new (); AdwHeaderBar *bar = ADW_HEADER_BAR (self); GtkWidget *settings = g_paste_ui_settings_new (); GtkWidget *search = g_paste_ui_search_new (); GtkWidget *title = adw_window_title_new (PACKAGE_NAME, NULL); GPasteUiHeaderData *data = g_new0 (GPasteUiHeaderData, 1); data->settings = GTK_BUTTON (settings); data->search = GTK_TOGGLE_BUTTON (search); data->title = ADW_WINDOW_TITLE (title); g_object_set_data_full (G_OBJECT (self), "header-data", data, g_free); adw_header_bar_set_title_widget (bar, title); adw_header_bar_pack_start (bar, g_paste_ui_switch_new (topwin, client)); adw_header_bar_pack_start (bar, g_paste_ui_reexec_new (topwin, client)); adw_header_bar_pack_end (bar, g_paste_ui_about_new (gtk_window_get_application (topwin))); adw_header_bar_pack_end (bar, g_paste_ui_new_item_new (topwin, client)); adw_header_bar_pack_end (bar, settings); adw_header_bar_pack_end (bar, search); return self; } Keruspe-GPaste-724def1/src/ui/gpaste-ui-header.h000066400000000000000000000013251521206431300214260ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #if !defined (__G_PASTE_H_INSIDE__) && !defined (G_PASTE_COMPILATION) #error "Only can be included directly." #endif #pragma once #include #include G_BEGIN_DECLS void g_paste_ui_header_show_prefs (AdwHeaderBar *self); void g_paste_ui_header_set_subtitle (AdwHeaderBar *self, const gchar *subtitle); GtkToggleButton *g_paste_ui_header_get_search_button (AdwHeaderBar *self); GtkWidget *g_paste_ui_header_new (GtkWindow *topwin, GPasteClient *client); G_END_DECLS Keruspe-GPaste-724def1/src/ui/gpaste-ui-history.c000066400000000000000000000341311521206431300216730ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #include #include #include #include #include struct _GPasteUiHistory { GtkBox parent_instance; }; typedef struct { GPasteClient *client; GPasteSettings *settings; GPasteUiPanel *panel; AdwStatusPage *status_page; GtkScrolledWindow *scroll; GtkListBox *list_box; GtkWindow *rootwin; GSList *items; guint64 size; gint32 item_height; gchar *search; GStrv search_results; } GPasteUiHistoryPrivate; G_PASTE_DEFINE_TYPE_WITH_PRIVATE (UiHistory, ui_history, GTK_TYPE_BOX) static void g_paste_ui_history_show_status (GPasteUiHistory *self, const gchar *icon, const gchar *title) { GPasteUiHistoryPrivate *priv = g_paste_ui_history_get_instance_private (self); adw_status_page_set_icon_name (priv->status_page, icon); adw_status_page_set_title (priv->status_page, title); gtk_widget_set_visible (GTK_WIDGET (priv->status_page), TRUE); gtk_widget_set_visible (GTK_WIDGET (priv->scroll), FALSE); } static void g_paste_ui_history_show_list (GPasteUiHistory *self) { GPasteUiHistoryPrivate *priv = g_paste_ui_history_get_instance_private (self); gtk_widget_set_visible (GTK_WIDGET (priv->status_page), FALSE); gtk_widget_set_visible (GTK_WIDGET (priv->scroll), TRUE); } static void on_row_activated (GtkListBox *history G_GNUC_UNUSED, GtkListBoxRow *row) { g_paste_ui_item_activate (G_PASTE_UI_ITEM (row)); } static void g_paste_ui_history_add_item (gpointer data, gpointer user_data) { GtkListBox *list_box = user_data; GtkWidget *item = data; g_object_ref (item); gtk_list_box_append (list_box, item); } static void g_paste_ui_history_add_list (GtkListBox *list_box, GSList *list) { g_slist_foreach (list, g_paste_ui_history_add_item, list_box); } static void g_paste_ui_history_remove (gpointer data, gpointer user_data) { GtkWidget *item = data; GtkListBox *list_box = user_data; gtk_list_box_remove (list_box, item); g_object_unref (item); } static void g_paste_ui_history_drop_list (GtkListBox *list_box, GSList *list) { g_slist_foreach (list, g_paste_ui_history_remove, list_box); g_slist_free (list); } static void g_paste_ui_history_refresh (GPasteUiHistory *self, guint64 from_index); static void g_paste_ui_history_update_height_request (GPasteSettings *settings, const gchar *key G_GNUC_UNUSED, gpointer user_data) { GPasteUiHistory *self = user_data; GPasteUiHistoryPrivate *priv = g_paste_ui_history_get_instance_private (self); guint64 new_size = g_paste_settings_get_max_displayed_history_size (settings); if (priv->item_height) g_object_set (G_OBJECT (priv->list_box), "height-request", new_size * priv->item_height, NULL); if (new_size != priv->size) g_paste_ui_history_refresh (self, 0); } typedef struct { GPasteUiHistory *self; gchar *name; guint64 from_index; } OnUpdateCallbackData; static void g_paste_ui_history_refresh_history (GObject *source_object G_GNUC_UNUSED, GAsyncResult *res, gpointer user_data) { g_autofree OnUpdateCallbackData *cdata = user_data; g_autofree gchar *name = cdata->name; GPasteUiHistory *self = cdata->self; GPasteUiHistoryPrivate *priv = g_paste_ui_history_get_instance_private (self); if (!priv->client) return; guint64 old_size = priv->size; guint64 refreshTextBound = old_size; guint64 new_size = g_paste_client_get_history_size_finish (priv->client, res, NULL); guint64 max_size = g_paste_settings_get_max_displayed_history_size (priv->settings); priv->size = MIN (new_size, max_size); if (priv->size) g_paste_ui_history_show_list (self); else g_paste_ui_history_show_status (self, "edit-paste-symbolic", _("Empty")); g_paste_ui_panel_update_history_length (priv->panel, name, new_size); if (old_size < priv->size) { for (guint64 i = old_size; i < priv->size; ++i) { GtkWidget *item = g_paste_ui_item_new (priv->client, priv->settings, priv->rootwin, i); priv->items = g_slist_append (priv->items, item); } g_paste_ui_history_add_list (priv->list_box, g_slist_nth (priv->items, old_size)); refreshTextBound = old_size; } else if (old_size > priv->size) { if (priv->size) { GSList *last = g_slist_nth (priv->items, priv->size - 1); g_return_if_fail (last); g_paste_ui_history_drop_list (priv->list_box, g_slist_next (last)); last->next = NULL; } else { g_paste_ui_history_drop_list (priv->list_box, priv->items); priv->items = NULL; } refreshTextBound = priv->size; } GSList *item = priv->items; for (guint64 i = 0; i < cdata->from_index; ++i) item = g_slist_next (item); for (guint64 i = cdata->from_index; i < refreshTextBound && item; ++i, item = g_slist_next (item)) g_paste_ui_item_set_index (item->data, i); if (!priv->item_height && priv->items) { gtk_widget_measure (GTK_WIDGET (priv->items->data), GTK_ORIENTATION_VERTICAL, -1, NULL, &priv->item_height, NULL, NULL); g_paste_ui_history_update_height_request (priv->settings, NULL, self); } } static void on_name_ready (GObject *source_object G_GNUC_UNUSED, GAsyncResult *res, gpointer user_data) { OnUpdateCallbackData *cdata = user_data; GPasteUiHistoryPrivate *priv = g_paste_ui_history_get_instance_private (cdata->self); if (!priv->client) { g_free (user_data); return; } cdata->name = g_paste_client_get_history_name_finish (priv->client, res, NULL); g_paste_client_get_history_size (priv->client, cdata->name, g_paste_ui_history_refresh_history, cdata); } static void g_paste_ui_history_refresh (GPasteUiHistory *self, guint64 from_index) { GPasteUiHistoryPrivate *priv = g_paste_ui_history_get_instance_private (self); if (!priv->client) return; if (priv->search) g_paste_ui_history_search (self, priv->search); else { OnUpdateCallbackData *cdata = g_new (OnUpdateCallbackData, 1); cdata->self = self; cdata->from_index = from_index; g_paste_client_get_history_name (priv->client, on_name_ready, cdata); } } static void on_search_ready (GObject *source_object G_GNUC_UNUSED, GAsyncResult *res, gpointer user_data) { GPasteUiHistory *self = user_data; GPasteUiHistoryPrivate *priv = g_paste_ui_history_get_instance_private (self); if (!priv->client) return; GSList *item = priv->items; g_clear_pointer (&priv->search_results, g_strfreev); priv->search_results = g_paste_client_search_finish (priv->client, res, NULL /* error */); guint64 search_results_size = g_strv_length (priv->search_results); if (search_results_size) { g_paste_ui_history_show_list (self); if (search_results_size > priv->size) search_results_size = priv->size; for (guint64 i = 0; i < search_results_size; ++i, item = g_slist_next (item)) g_paste_ui_item_set_uuid (item->data, priv->search_results[i]); } else g_paste_ui_history_show_status (self, "edit-find-symbolic", _("No Results")); for (guint64 i = search_results_size; i < priv->size; ++i, item = g_slist_next (item)) g_paste_ui_item_set_index (item->data, (guint64) -1); } /** * g_paste_ui_history_search: * @self: a #GPasteUiHistory instance * @search: the search * * Apply a search to the history list */ G_PASTE_VISIBLE void g_paste_ui_history_search (GPasteUiHistory *self, const gchar *search) { g_return_if_fail (G_PASTE_IS_UI_HISTORY (self)); GPasteUiHistoryPrivate *priv = g_paste_ui_history_get_instance_private (self); if (!priv->client) return; if (g_paste_str_equal (search, "")) { g_clear_pointer (&priv->search, g_free); g_clear_pointer (&priv->search_results, g_strfreev); g_paste_ui_history_refresh (self, 0); } else { g_set_str (&priv->search, search); g_paste_client_search (priv->client, search, on_search_ready, self); } } /** * g_paste_ui_history_select_first: * @self: a #GPasteUiHistory instance * * Select the first element * * returns: whether anything was selected or not */ G_PASTE_VISIBLE gboolean g_paste_ui_history_select_first (GPasteUiHistory *self) { g_return_val_if_fail (G_PASTE_IS_UI_HISTORY (self), FALSE); GPasteUiHistoryPrivate *priv = g_paste_ui_history_get_instance_private (self); if (!priv->items) return FALSE; return g_paste_ui_item_activate (priv->items->data); } static void g_paste_ui_history_on_update (GPasteClient *client G_GNUC_UNUSED, GPasteUpdateAction action, GPasteUpdateTarget target, guint64 position, gpointer user_data) { GPasteUiHistory *self = user_data; GPasteUiHistoryPrivate *priv = g_paste_ui_history_get_instance_private (self); gboolean refresh = FALSE; if (!priv->client) return; switch (target) { case G_PASTE_UPDATE_TARGET_ALL: refresh = TRUE; break; case G_PASTE_UPDATE_TARGET_POSITION: switch (action) { case G_PASTE_UPDATE_ACTION_REPLACE: g_paste_ui_item_refresh (g_slist_nth_data (priv->items, position)); break; case G_PASTE_UPDATE_ACTION_REMOVE: refresh = TRUE; break; default: g_assert_not_reached (); } break; default: g_assert_not_reached (); } if (refresh) g_paste_ui_history_refresh (self, position); } static void g_paste_ui_history_dispose (GObject *object) { GPasteUiHistory *self = G_PASTE_UI_HISTORY (object); GPasteUiHistoryPrivate *priv = g_paste_ui_history_get_instance_private (self); g_clear_slist (&priv->items, g_object_unref); g_clear_pointer (&priv->search, g_free); g_clear_pointer (&priv->search_results, g_strfreev); g_clear_object (&priv->client); g_clear_object (&priv->settings); G_OBJECT_CLASS (g_paste_ui_history_parent_class)->dispose (object); } static void g_paste_ui_history_class_init (GPasteUiHistoryClass *klass) { G_OBJECT_CLASS (klass)->dispose = g_paste_ui_history_dispose; } static void g_paste_ui_history_init (GPasteUiHistory *self G_GNUC_UNUSED) { } /** * g_paste_ui_history_new: * @client: a #GPasteClient instance * @settings: a #GPasteSettings instance * @panel: the #GPasteSettingsUiPanel * @rootwin: the root #GtkWindow * * Create a new #GPasteUiHistory for GPaste history * * Returns: a newly allocated #GPasteUiHistory * free it with g_object_unref */ G_PASTE_VISIBLE GtkWidget * g_paste_ui_history_new (GPasteClient *client, GPasteSettings *settings, GPasteUiPanel *panel, GtkWindow *rootwin) { g_return_val_if_fail (_G_PASTE_IS_CLIENT (client), NULL); g_return_val_if_fail (_G_PASTE_IS_SETTINGS (settings), NULL); g_return_val_if_fail (_G_PASTE_IS_UI_PANEL (panel), NULL); g_return_val_if_fail (GTK_IS_WINDOW (rootwin), NULL); GtkWidget *self = g_object_new (G_PASTE_TYPE_UI_HISTORY, "orientation", GTK_ORIENTATION_VERTICAL, NULL); GPasteUiHistoryPrivate *priv = g_paste_ui_history_get_instance_private (G_PASTE_UI_HISTORY (self)); GtkBox *box = GTK_BOX (self); priv->client = g_object_ref (client); priv->settings = g_object_ref (settings); priv->panel = panel; priv->rootwin = rootwin; GtkWidget *status_page = adw_status_page_new (); priv->status_page = ADW_STATUS_PAGE (status_page); adw_status_page_set_icon_name (priv->status_page, "edit-paste-symbolic"); adw_status_page_set_title (priv->status_page, _("Empty")); gtk_widget_set_hexpand (status_page, TRUE); gtk_widget_set_vexpand (status_page, TRUE); gtk_box_append (box, status_page); GtkWidget *list_box = gtk_list_box_new (); priv->list_box = GTK_LIST_BOX (list_box); GtkWidget *scroll = gtk_scrolled_window_new (); priv->scroll = GTK_SCROLLED_WINDOW (scroll); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scroll), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); gtk_widget_set_hexpand (scroll, TRUE); gtk_widget_set_vexpand (scroll, TRUE); gtk_widget_set_halign (scroll, GTK_ALIGN_FILL); gtk_widget_set_valign (scroll, GTK_ALIGN_FILL); gtk_scrolled_window_set_child (GTK_SCROLLED_WINDOW (scroll), list_box); gtk_widget_set_visible (scroll, FALSE); gtk_box_append (box, scroll); g_signal_connect (list_box, "row-activated", G_CALLBACK (on_row_activated), NULL); g_signal_connect_object (settings, "changed::" G_PASTE_MAX_DISPLAYED_HISTORY_SIZE_SETTING, G_CALLBACK (g_paste_ui_history_update_height_request), self, 0); g_signal_connect_object (client, "update", G_CALLBACK (g_paste_ui_history_on_update), self, 0); g_paste_ui_history_on_update (client, G_PASTE_UPDATE_ACTION_REPLACE, G_PASTE_UPDATE_TARGET_ALL, 0, self); return self; } Keruspe-GPaste-724def1/src/ui/gpaste-ui-history.h000066400000000000000000000015611521206431300217010ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #if !defined (__G_PASTE_H_INSIDE__) && !defined (G_PASTE_COMPILATION) #error "Only can be included directly." #endif #pragma once #include G_BEGIN_DECLS #define G_PASTE_TYPE_UI_HISTORY (g_paste_ui_history_get_type ()) G_PASTE_FINAL_TYPE (UiHistory, ui_history, UI_HISTORY, GtkBox) void g_paste_ui_history_search (GPasteUiHistory *self, const gchar *search); gboolean g_paste_ui_history_select_first (GPasteUiHistory *self); GtkWidget *g_paste_ui_history_new (GPasteClient *client, GPasteSettings *settings, GPasteUiPanel *panel, GtkWindow *rootwin); G_END_DECLS Keruspe-GPaste-724def1/src/ui/gpaste-ui-item-action.c000066400000000000000000000060021521206431300223770ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #include typedef struct { GPasteClient *client; gchar *uuid; } GPasteUiItemActionPrivate; G_PASTE_DEFINE_ABSTRACT_TYPE_WITH_PRIVATE (UiItemAction, ui_item_action, GTK_TYPE_BUTTON) /** * g_paste_ui_item_action_set_uuid: * @self: a #GPasteUiItemAction instance * @uuid: the uuid of the corresponding item * * Track a new uuid */ G_PASTE_VISIBLE void g_paste_ui_item_action_set_uuid (GPasteUiItemAction *self, const gchar *uuid) { g_return_if_fail (_G_PASTE_IS_UI_ITEM_ACTION (self)); GPasteUiItemActionPrivate *priv = g_paste_ui_item_action_get_instance_private (self); g_set_str (&priv->uuid, uuid); } static void g_paste_ui_item_action_clicked (GtkButton *button) { GPasteUiItemAction *self = G_PASTE_UI_ITEM_ACTION (button); const GPasteUiItemActionPrivate *priv = _g_paste_ui_item_action_get_instance_private (self); GPasteUiItemActionClass *klass = G_PASTE_UI_ITEM_ACTION_GET_CLASS (self); if (klass->activate) klass->activate (self, priv->client, priv->uuid); } static void g_paste_ui_item_action_dispose (GObject *object) { GPasteUiItemActionPrivate *priv = g_paste_ui_item_action_get_instance_private (G_PASTE_UI_ITEM_ACTION (object)); g_clear_object (&priv->client); g_clear_pointer (&priv->uuid, g_free); G_OBJECT_CLASS (g_paste_ui_item_action_parent_class)->dispose (object); } static void g_paste_ui_item_action_class_init (GPasteUiItemActionClass *klass) { G_OBJECT_CLASS (klass)->dispose = g_paste_ui_item_action_dispose; GTK_BUTTON_CLASS (klass)->clicked = g_paste_ui_item_action_clicked; } static void g_paste_ui_item_action_init (GPasteUiItemAction *self G_GNUC_UNUSED) { } /** * g_paste_ui_item_action_new: * @type: the type of the subclass to instantiate * @client: a #GPasteClient * @icon_name: the name of the icon to use * @tooltip: the tooltip to display * * Create a new instance of #GPasteUiItemAction * * Returns: a newly allocated #GPasteUiItemAction * free it with g_object_unref */ G_PASTE_VISIBLE GtkWidget * g_paste_ui_item_action_new (GType type, GPasteClient *client, const gchar *icon_name, const gchar *tooltip) { g_return_val_if_fail (g_type_is_a (type, G_PASTE_TYPE_UI_ITEM_ACTION), NULL); g_return_val_if_fail (_G_PASTE_IS_CLIENT (client), NULL); GtkWidget *self = g_object_new (type, NULL); GPasteUiItemActionPrivate *priv = g_paste_ui_item_action_get_instance_private (G_PASTE_UI_ITEM_ACTION (self)); GtkWidget *icon = gtk_image_new_from_icon_name (icon_name); priv->client = g_object_ref (client); gtk_widget_set_tooltip_text (self, tooltip); gtk_widget_set_margin_start (icon, 5); gtk_widget_set_margin_end (icon, 5); gtk_button_set_child (GTK_BUTTON (self), icon); return self; } Keruspe-GPaste-724def1/src/ui/gpaste-ui-item-action.h000066400000000000000000000021571521206431300224130ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #if !defined (__G_PASTE_H_INSIDE__) && !defined (G_PASTE_COMPILATION) #error "Only can be included directly." #endif #pragma once #include #include G_BEGIN_DECLS #define G_PASTE_TYPE_UI_ITEM_ACTION (g_paste_ui_item_action_get_type ()) G_PASTE_DERIVABLE_TYPE (UiItemAction, ui_item_action, UI_ITEM_ACTION, GtkButton) struct _GPasteUiItemActionClass { GtkButtonClass parent_class; /*< pure virtual >*/ void (*activate) (GPasteUiItemAction *self, GPasteClient *client, const gchar *uuid); }; void g_paste_ui_item_action_set_uuid (GPasteUiItemAction *self, const gchar *uuid); GtkWidget *g_paste_ui_item_action_new (GType type, GPasteClient *client, const gchar *icon_name, const gchar *tooltip); G_END_DECLS Keruspe-GPaste-724def1/src/ui/gpaste-ui-item-skeleton.c000066400000000000000000000332241521206431300227540ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #include #include #include #include #include typedef struct { GPasteSettings *settings; GSignalGroup *settings_signals; GSList *actions; GtkWidget *edit; GtkWidget *upload; GtkWidget *hbox; GtkLabel *index_label; GtkInscription *label; GtkPicture *thumbnail; gboolean editable; gboolean uploadable; } GPasteUiItemSkeletonPrivate; G_PASTE_DEFINE_ABSTRACT_TYPE_WITH_PRIVATE (UiItemSkeleton, ui_item_skeleton, GTK_TYPE_LIST_BOX_ROW) static void g_paste_ui_item_skeleton_set_text_size (GPasteSettings *settings, const gchar *key G_GNUC_UNUSED, gpointer user_data) { GPasteUiItemSkeletonPrivate *priv = user_data; guint64 size = g_paste_settings_get_element_size (settings); gtk_inscription_set_min_chars (priv->label, size); gtk_inscription_set_nat_chars (priv->label, size); } static void g_paste_ui_item_skeleton_on_images_preview_changed (GPasteSettings *settings, const gchar *key G_GNUC_UNUSED, gpointer user_data) { GPasteUiItemSkeletonPrivate *priv = user_data; if (!priv->thumbnail) return; gboolean has_image = gtk_picture_get_paintable (priv->thumbnail) != NULL; if (has_image) { gint size = MAX ((gint) g_paste_settings_get_images_preview_size (settings), 10); gtk_widget_set_size_request (GTK_WIDGET (priv->thumbnail), size, size); } gtk_widget_set_visible (GTK_WIDGET (priv->thumbnail), has_image && g_paste_settings_get_images_preview (settings)); } static void action_set_activatable (gpointer data, gpointer user_data) { GtkWidget *w = data; gboolean *a = user_data; gtk_widget_set_sensitive (w, *a); } /** * g_paste_ui_item_skeleton_set_activatable: * @self: the #GPasteUiItemSkeleton instance * @activatable: whether the item should now be activatable or not * * Mark the item as being activatable or not */ G_PASTE_VISIBLE void g_paste_ui_item_skeleton_set_activatable (GPasteUiItemSkeleton *self, gboolean activatable) { g_return_if_fail (_G_PASTE_IS_UI_ITEM_SKELETON (self)); const GPasteUiItemSkeletonPrivate *priv = _g_paste_ui_item_skeleton_get_instance_private (self); gtk_list_box_row_set_activatable (GTK_LIST_BOX_ROW (self), activatable); gtk_widget_set_sensitive (GTK_WIDGET (priv->label), activatable); g_slist_foreach (priv->actions, action_set_activatable, &activatable); if (priv->edit) gtk_widget_set_sensitive (priv->edit, activatable && priv->editable); if (priv->upload) gtk_widget_set_sensitive (priv->upload, activatable && priv->uploadable); } /** * g_paste_ui_item_skeleton_set_editable: * @self: the #GPasteUiItemSkeleton instance * @editable: whether the item should now be editable or not * * Mark the item as being editable or not */ G_PASTE_VISIBLE void g_paste_ui_item_skeleton_set_editable (GPasteUiItemSkeleton *self, gboolean editable) { g_return_if_fail (_G_PASTE_IS_UI_ITEM_SKELETON (self)); GPasteUiItemSkeletonPrivate *priv = g_paste_ui_item_skeleton_get_instance_private (self); priv->editable = editable; gtk_widget_set_sensitive (priv->edit, editable); } /** * g_paste_ui_item_skeleton_set_uploadable: * @self: the #GPasteUiItemSkeleton instance * @uploadable: whether the item should now be uploadable or not * * Mark the item as being uploadable or not */ G_PASTE_VISIBLE void g_paste_ui_item_skeleton_set_uploadable (GPasteUiItemSkeleton *self, gboolean uploadable) { g_return_if_fail (_G_PASTE_IS_UI_ITEM_SKELETON (self)); GPasteUiItemSkeletonPrivate *priv = g_paste_ui_item_skeleton_get_instance_private (self); priv->uploadable = uploadable; gtk_widget_set_sensitive (priv->upload, uploadable); } /** * g_paste_ui_item_skeleton_set_text: * @self: the #GPasteUiItemSkeleton instance * @text: the new text for the label * * Changes the displayed text */ G_PASTE_VISIBLE void g_paste_ui_item_skeleton_set_text (GPasteUiItemSkeleton *self, const gchar *text) { g_return_if_fail (_G_PASTE_IS_UI_ITEM_SKELETON (self)); g_return_if_fail (g_utf8_validate (text, -1, NULL)); const GPasteUiItemSkeletonPrivate *priv = _g_paste_ui_item_skeleton_get_instance_private (self); gtk_inscription_set_attributes (priv->label, NULL); gtk_inscription_set_text (priv->label, text); } /** * g_paste_ui_item_skeleton_set_text_bold: * @self: the #GPasteUiItemSkeleton instance * @text: the new text for the label, displayed bold * * Changes the displayed text, rendered in bold */ G_PASTE_VISIBLE void g_paste_ui_item_skeleton_set_text_bold (GPasteUiItemSkeleton *self, const gchar *text) { g_return_if_fail (_G_PASTE_IS_UI_ITEM_SKELETON (self)); g_return_if_fail (g_utf8_validate (text, -1, NULL)); const GPasteUiItemSkeletonPrivate *priv = _g_paste_ui_item_skeleton_get_instance_private (self); g_autoptr (PangoAttrList) attrs = pango_attr_list_new (); pango_attr_list_insert (attrs, pango_attr_weight_new (PANGO_WEIGHT_BOLD)); gtk_inscription_set_attributes (priv->label, attrs); gtk_inscription_set_text (priv->label, text); } static void action_set_uuid (gpointer data, gpointer user_data) { GPasteUiItemAction *a = data; const gchar *uuid = user_data; g_paste_ui_item_action_set_uuid (a, uuid); } /** * g_paste_ui_item_skeleton_set_index_and_uuid: * @self: the #GPasteUiItemSkeleton instance * @index: the index of the new item to display * @uuid: the uuid of the new item to display * * Changes the displayed item */ G_PASTE_VISIBLE void g_paste_ui_item_skeleton_set_index_and_uuid (GPasteUiItemSkeleton *self, guint64 index, const gchar *uuid) { g_return_if_fail (_G_PASTE_IS_UI_ITEM_SKELETON (self)); const GPasteUiItemSkeletonPrivate *priv = _g_paste_ui_item_skeleton_get_instance_private (self); if (index == (guint64) -1 || index == (guint64) -2) gtk_label_set_text (priv->index_label, ""); else { g_autofree gchar *_index = g_strdup_printf("%" G_GUINT64_FORMAT, index); gtk_label_set_text (priv->index_label, _index); } g_slist_foreach (priv->actions, action_set_uuid, (gpointer) uuid); } /** * g_paste_ui_item_skeleton_set_thumbnail: * @self: a #GPasteUiItemSkeleton * @texture: (transfer none) (nullable): a #GdkTexture to use as thumbnail, or %NULL to clear * * Set the thumbnail for this item if it's an image */ G_PASTE_VISIBLE void g_paste_ui_item_skeleton_set_thumbnail (GPasteUiItemSkeleton *self, GdkTexture *texture) { g_return_if_fail (_G_PASTE_IS_UI_ITEM_SKELETON (self)); GPasteUiItemSkeletonPrivate *priv = g_paste_ui_item_skeleton_get_instance_private (self); gtk_picture_set_paintable (priv->thumbnail, texture ? GDK_PAINTABLE (texture) : NULL); g_paste_ui_item_skeleton_on_images_preview_changed (priv->settings, NULL, priv); } /** * g_paste_ui_item_skeleton_get_label: * @self: a #GPasteUiItemSkeleton * * Get the item's label * * Returns: (transfer none): the label */ G_PASTE_VISIBLE GtkInscription * g_paste_ui_item_skeleton_get_label (GPasteUiItemSkeleton *self) { g_return_val_if_fail (_G_PASTE_IS_UI_ITEM_SKELETON (self), NULL); const GPasteUiItemSkeletonPrivate *priv = _g_paste_ui_item_skeleton_get_instance_private (self); return priv->label; } static void add_action (gpointer data, gpointer user_data) { GtkWidget *w = data; GtkBox *b = user_data; gtk_widget_set_halign (w, GTK_ALIGN_START); gtk_box_append (b, w); } static void g_paste_ui_item_skeleton_dispose (GObject *object) { GPasteUiItemSkeletonPrivate *priv = g_paste_ui_item_skeleton_get_instance_private (G_PASTE_UI_ITEM_SKELETON (object)); g_clear_object (&priv->settings_signals); g_clear_object (&priv->settings); g_clear_pointer (&priv->actions, g_slist_free); G_OBJECT_CLASS (g_paste_ui_item_skeleton_parent_class)->dispose (object); } static void g_paste_ui_item_skeleton_class_init (GPasteUiItemSkeletonClass *klass) { G_OBJECT_CLASS (klass)->dispose = g_paste_ui_item_skeleton_dispose; } static void g_paste_ui_item_skeleton_init (GPasteUiItemSkeleton *self) { GPasteUiItemSkeletonPrivate *priv = g_paste_ui_item_skeleton_get_instance_private (self); GtkWidget *index_label = gtk_label_new (""); GtkWidget *label = gtk_inscription_new (NULL); priv->index_label = GTK_LABEL (index_label); priv->label = GTK_INSCRIPTION (label); priv->editable = TRUE; gtk_widget_set_margin_start (index_label, 6); gtk_widget_set_margin_end (index_label, 6); gtk_widget_set_margin_top (index_label, 6); gtk_widget_set_margin_bottom (index_label, 6); gtk_widget_set_sensitive (index_label, FALSE); gtk_label_set_xalign (priv->index_label, 1.0); gtk_label_set_width_chars (priv->index_label, 3); gtk_label_set_max_width_chars (priv->index_label, 3); gtk_label_set_selectable (priv->index_label, FALSE); gtk_inscription_set_text_overflow (priv->label, GTK_INSCRIPTION_OVERFLOW_ELLIPSIZE_END); gtk_inscription_set_xalign (priv->label, 0.0); GtkWidget *hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 2); priv->hbox = hbox; gtk_widget_set_margin_start (hbox, 6); gtk_widget_set_margin_end (hbox, 6); gtk_widget_set_halign (index_label, GTK_ALIGN_START); gtk_box_append (GTK_BOX (hbox), index_label); gtk_widget_set_hexpand (label, TRUE); gtk_widget_set_halign (label, GTK_ALIGN_START); gtk_box_append (GTK_BOX (hbox), label); GtkWidget *thumbnail = gtk_picture_new (); priv->thumbnail = GTK_PICTURE (thumbnail); gtk_picture_set_content_fit (priv->thumbnail, GTK_CONTENT_FIT_CONTAIN); gtk_widget_set_visible (thumbnail, FALSE); gtk_widget_set_hexpand (thumbnail, TRUE); gtk_widget_set_halign (thumbnail, GTK_ALIGN_FILL); GtkWidget *thumbnail_container = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_widget_set_hexpand (thumbnail_container, FALSE); gtk_widget_set_halign (thumbnail_container, GTK_ALIGN_CENTER); gtk_box_append (GTK_BOX (thumbnail_container), thumbnail); gtk_box_append (GTK_BOX (hbox), thumbnail_container); gtk_list_box_row_set_child (GTK_LIST_BOX_ROW (self), hbox); } /** * g_paste_ui_item_skeleton_new: * @type: the type of the subclass * @client: a #GPasteClient instance * @settings: a #GPasteSettings instance * @rootwin: the root #GtkWindow * * Create a new instance of #GPasteUiItemSkeleton * * Returns: a newly allocated #GPasteUiItemSkeleton * free it with g_object_unref */ G_PASTE_VISIBLE GtkWidget * g_paste_ui_item_skeleton_new (GType type, GPasteClient *client, GPasteSettings *settings, GtkWindow *rootwin) { g_return_val_if_fail (g_type_is_a (type, G_PASTE_TYPE_UI_ITEM_SKELETON), NULL); g_return_val_if_fail (_G_PASTE_IS_CLIENT (client), NULL); g_return_val_if_fail (_G_PASTE_IS_SETTINGS (settings), NULL); g_return_val_if_fail (GTK_IS_WINDOW (rootwin), NULL); GtkWidget *self = g_object_new (type, "selectable", FALSE, NULL); GPasteUiItemSkeletonPrivate *priv = g_paste_ui_item_skeleton_get_instance_private (G_PASTE_UI_ITEM_SKELETON (self)); GtkWidget *edit = g_paste_ui_edit_item_new (client, rootwin); GtkWidget *upload = g_paste_ui_upload_item_new (client); GtkWidget *delete = g_paste_ui_delete_item_new (client); priv->settings = g_object_ref (settings); priv->edit = edit; priv->upload = upload; priv->actions = g_slist_prepend (priv->actions, edit); priv->actions = g_slist_prepend (priv->actions, upload); priv->actions = g_slist_prepend (priv->actions, delete); /* Reverse so that pack_end order (edit|upload|delete) is preserved with append */ g_autoptr (GSList) actions_reversed = g_slist_reverse (g_slist_copy (priv->actions)); g_slist_foreach (actions_reversed, add_action, GTK_BOX (priv->hbox)); GSignalGroup *settings_signals = priv->settings_signals = g_signal_group_new (G_PASTE_TYPE_SETTINGS); g_signal_group_connect (settings_signals, "changed::" G_PASTE_ELEMENT_SIZE_SETTING, G_CALLBACK (g_paste_ui_item_skeleton_set_text_size), priv); g_signal_group_connect (settings_signals, "changed::" G_PASTE_IMAGES_PREVIEW_SETTING, G_CALLBACK (g_paste_ui_item_skeleton_on_images_preview_changed), priv); g_signal_group_connect (settings_signals, "changed::" G_PASTE_IMAGES_PREVIEW_SIZE_SETTING, G_CALLBACK (g_paste_ui_item_skeleton_on_images_preview_changed), priv); g_signal_group_set_target (settings_signals, settings); g_paste_ui_item_skeleton_set_text_size (settings, NULL, priv); g_paste_ui_item_skeleton_on_images_preview_changed (settings, NULL, priv); return self; } Keruspe-GPaste-724def1/src/ui/gpaste-ui-item-skeleton.h000066400000000000000000000041331521206431300227560ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #if !defined (__G_PASTE_H_INSIDE__) && !defined (G_PASTE_COMPILATION) #error "Only can be included directly." #endif #pragma once #include #include #include G_BEGIN_DECLS #define G_PASTE_TYPE_UI_ITEM_SKELETON (g_paste_ui_item_skeleton_get_type ()) G_PASTE_DERIVABLE_TYPE (UiItemSkeleton, ui_item_skeleton, UI_ITEM_SKELETON, GtkListBoxRow) struct _GPasteUiItemSkeletonClass { GtkListBoxRowClass parent_class; }; void g_paste_ui_item_skeleton_set_activatable (GPasteUiItemSkeleton *self, gboolean activatable); void g_paste_ui_item_skeleton_set_editable (GPasteUiItemSkeleton *self, gboolean editable); void g_paste_ui_item_skeleton_set_uploadable (GPasteUiItemSkeleton *self, gboolean uploadable); void g_paste_ui_item_skeleton_set_text (GPasteUiItemSkeleton *self, const gchar *text); void g_paste_ui_item_skeleton_set_text_bold (GPasteUiItemSkeleton *self, const gchar *text); void g_paste_ui_item_skeleton_set_index_and_uuid (GPasteUiItemSkeleton *self, guint64 index, const gchar *uuid); void g_paste_ui_item_skeleton_set_thumbnail (GPasteUiItemSkeleton *self, GdkTexture *texture); GtkInscription *g_paste_ui_item_skeleton_get_label (GPasteUiItemSkeleton *self); GtkWidget *g_paste_ui_item_skeleton_new (GType type, GPasteClient *client, GPasteSettings *settings, GtkWindow *rootwin); G_END_DECLS Keruspe-GPaste-724def1/src/ui/gpaste-ui-item.c000066400000000000000000000213371521206431300211340ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #include struct _GPasteUiItem { GPasteUiItemSkeleton parent_instance; }; typedef struct { GPasteClient *client; GPasteSettings *settings; GtkWindow *rootwin; guint64 index; gboolean fake_index; gchar *uuid; } GPasteUiItemPrivate; G_PASTE_DEFINE_TYPE_WITH_PRIVATE (UiItem, ui_item, G_PASTE_TYPE_UI_ITEM_SKELETON) /** * g_paste_ui_item_activate: * @self: a #GPasteUiItem instance * * Activate/Select the item * * returns: whether there was anything to select or not */ G_PASTE_VISIBLE gboolean g_paste_ui_item_activate (GPasteUiItem *self) { g_return_val_if_fail (_G_PASTE_IS_UI_ITEM (self), FALSE); const GPasteUiItemPrivate *priv = _g_paste_ui_item_get_instance_private (self); if (!priv->uuid) return FALSE; g_paste_client_select (priv->client, priv->uuid, NULL, NULL); if (g_paste_settings_get_close_on_select (priv->settings)) gtk_window_close (priv->rootwin); /* Exit the application */ return TRUE; } static void g_paste_ui_item_on_image_path_ready (GObject *source_object G_GNUC_UNUSED, GAsyncResult *res, gpointer user_data) { g_autoptr (GPasteUiItem) self = user_data; const GPasteUiItemPrivate *priv = _g_paste_ui_item_get_instance_private (self); g_autoptr (GError) error = NULL; g_autofree gchar *path = g_paste_client_get_raw_element_finish (priv->client, res, &error); if (!path || error) { g_warning ("Failed to retrieve image path: %s", error ? error->message : "no path returned"); return; } g_autoptr (GError) load_error = NULL; g_autoptr (GdkTexture) texture = gdk_texture_new_from_filename (path, &load_error); if (!texture) { if (load_error) g_warning ("Failed to load image: %s", load_error->message); return; } g_paste_ui_item_skeleton_set_thumbnail (G_PASTE_UI_ITEM_SKELETON (self), texture); } static void g_paste_ui_item_on_kind_ready (GObject *source_object G_GNUC_UNUSED, GAsyncResult *res, gpointer user_data) { g_autoptr (GPasteUiItem) self = user_data; const GPasteUiItemPrivate *priv = _g_paste_ui_item_get_instance_private (self); g_autoptr (GError) error = NULL; GPasteItemKind kind = g_paste_client_get_element_kind_finish (priv->client, res, &error); if (error) return; GPasteUiItemSkeleton *sk = G_PASTE_UI_ITEM_SKELETON (self); g_paste_ui_item_skeleton_set_editable (sk, kind == G_PASTE_ITEM_KIND_TEXT); g_paste_ui_item_skeleton_set_uploadable (sk, kind == G_PASTE_ITEM_KIND_TEXT); if (kind == G_PASTE_ITEM_KIND_IMAGE) g_paste_client_get_raw_element (priv->client, priv->uuid, g_paste_ui_item_on_image_path_ready, g_object_ref (self)); else g_paste_ui_item_skeleton_set_thumbnail (sk, NULL); } static void _g_paste_ui_item_ready (GPasteUiItem *self, const gchar *txt) { if (!txt) return; GPasteUiItemPrivate *priv = g_paste_ui_item_get_instance_private (self); g_autofree gchar *oneline = g_strdelimit (g_strdup (txt), "\n\t", ' '); g_paste_ui_item_skeleton_set_index_and_uuid (G_PASTE_UI_ITEM_SKELETON (self), priv->index, priv->uuid); g_paste_client_get_element_kind (priv->client, priv->uuid, g_paste_ui_item_on_kind_ready, g_object_ref (self)); if (!priv->index) g_paste_ui_item_skeleton_set_text_bold (G_PASTE_UI_ITEM_SKELETON (self), oneline); else g_paste_ui_item_skeleton_set_text (G_PASTE_UI_ITEM_SKELETON (self), oneline); } static void g_paste_ui_item_on_text_ready (GObject *source_object G_GNUC_UNUSED, GAsyncResult *res, gpointer user_data) { g_autoptr (GPasteUiItem) self = user_data; GPasteUiItemPrivate *priv = g_paste_ui_item_get_instance_private (self); g_autoptr (GError) error = NULL; g_autofree gchar *txt = g_paste_client_get_element_finish (priv->client, res, &error); if (!txt || error) return; _g_paste_ui_item_ready (self, txt); } static void g_paste_ui_item_on_item_ready (GObject *source_object G_GNUC_UNUSED, GAsyncResult *res, gpointer user_data) { g_autoptr (GPasteUiItem) self = user_data; GPasteUiItemPrivate *priv = g_paste_ui_item_get_instance_private (self); g_autoptr (GError) error = NULL; g_autoptr (GPasteClientItem) txt = g_paste_client_get_element_at_index_finish (priv->client, res, &error); if (!txt || error) return; g_set_str (&priv->uuid, g_paste_client_item_get_uuid (txt)); _g_paste_ui_item_ready (self, g_paste_client_item_get_value (txt)); } static void g_paste_ui_item_reset_text (GPasteUiItem *self) { g_return_if_fail (_G_PASTE_IS_UI_ITEM (self)); const GPasteUiItemPrivate *priv = _g_paste_ui_item_get_instance_private (self); if (priv->fake_index) g_paste_client_get_element (priv->client, priv->uuid, g_paste_ui_item_on_text_ready, g_object_ref (self)); else g_paste_client_get_element_at_index (priv->client, priv->index, g_paste_ui_item_on_item_ready, g_object_ref (self)); } /** * g_paste_ui_item_refresh: * @self: a #GPasteUiItem instance * * Refresh the item */ G_PASTE_VISIBLE void g_paste_ui_item_refresh (GPasteUiItem *self) { g_return_if_fail (_G_PASTE_IS_UI_ITEM (self)); g_paste_ui_item_reset_text (self); } static void _g_paste_ui_item_set_index (GPasteUiItem *self, guint64 index, gboolean fake_index) { GPasteUiItemPrivate *priv = g_paste_ui_item_get_instance_private (self); priv->index = index; priv->fake_index = fake_index; if (index != (guint64) -1) { g_paste_ui_item_reset_text (self); gtk_widget_set_visible (GTK_WIDGET (self), TRUE); } else if (priv->uuid) gtk_widget_set_visible (GTK_WIDGET (self), FALSE); } /** * g_paste_ui_item_set_index: * @self: a #GPasteUiItem instance * @index: the index of the corresponding item * * Track a new index */ G_PASTE_VISIBLE void g_paste_ui_item_set_index (GPasteUiItem *self, guint64 index) { g_return_if_fail (_G_PASTE_IS_UI_ITEM (self)); _g_paste_ui_item_set_index (self, index, FALSE); } /** * g_paste_ui_item_set_uuid: * @self: a #GPasteUiItem instance * @uuid: the uuid of the corresponding item * * Track a new uuid */ G_PASTE_VISIBLE void g_paste_ui_item_set_uuid (GPasteUiItem *self, const gchar *uuid) { g_return_if_fail (_G_PASTE_IS_UI_ITEM (self)); GPasteUiItemPrivate *priv = g_paste_ui_item_get_instance_private (self); g_set_str (&priv->uuid, uuid); _g_paste_ui_item_set_index (self, (guint64) -2, TRUE); } static void g_paste_ui_item_dispose (GObject *object) { GPasteUiItemPrivate *priv = g_paste_ui_item_get_instance_private (G_PASTE_UI_ITEM (object)); g_clear_object (&priv->client); g_clear_object (&priv->settings); g_clear_pointer (&priv->uuid, g_free); G_OBJECT_CLASS (g_paste_ui_item_parent_class)->dispose (object); } static void g_paste_ui_item_class_init (GPasteUiItemClass *klass) { G_OBJECT_CLASS (klass)->dispose = g_paste_ui_item_dispose; } static void g_paste_ui_item_init (GPasteUiItem *self) { GPasteUiItemPrivate *priv = g_paste_ui_item_get_instance_private (G_PASTE_UI_ITEM (self)); priv->index = (guint64) -1; } /** * g_paste_ui_item_new: * @client: a #GPasteClient instance * @settings: a #GPasteSettings instance * @rootwin: the root #GtkWindow * @index: the index of the corresponding item * * Create a new instance of #GPasteUiItem * * Returns: a newly allocated #GPasteUiItem * free it with g_object_unref */ G_PASTE_VISIBLE GtkWidget * g_paste_ui_item_new (GPasteClient *client, GPasteSettings *settings, GtkWindow *rootwin, guint64 index) { g_return_val_if_fail (_G_PASTE_IS_CLIENT (client), NULL); g_return_val_if_fail (_G_PASTE_IS_SETTINGS (settings), NULL); g_return_val_if_fail (GTK_IS_WINDOW (rootwin), NULL); GtkWidget *self = g_paste_ui_item_skeleton_new (G_PASTE_TYPE_UI_ITEM, client, settings, rootwin); GPasteUiItemPrivate *priv = g_paste_ui_item_get_instance_private (G_PASTE_UI_ITEM (self)); priv->client = g_object_ref (client); priv->settings = g_object_ref (settings); priv->rootwin = rootwin; g_paste_ui_item_set_index (G_PASTE_UI_ITEM (self), index); return self; } Keruspe-GPaste-724def1/src/ui/gpaste-ui-item.h000066400000000000000000000020211521206431300211260ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #if !defined (__G_PASTE_H_INSIDE__) && !defined (G_PASTE_COMPILATION) #error "Only can be included directly." #endif #pragma once #include G_BEGIN_DECLS #define G_PASTE_TYPE_UI_ITEM (g_paste_ui_item_get_type ()) G_PASTE_FINAL_TYPE (UiItem, ui_item, UI_ITEM, GPasteUiItemSkeleton) gboolean g_paste_ui_item_activate (GPasteUiItem *self); void g_paste_ui_item_refresh (GPasteUiItem *self); void g_paste_ui_item_set_index (GPasteUiItem *self, guint64 index); void g_paste_ui_item_set_uuid (GPasteUiItem *self, const gchar *uuid); GtkWidget *g_paste_ui_item_new (GPasteClient *client, GPasteSettings *settings, GtkWindow *rootwin, guint64 index); G_END_DECLS Keruspe-GPaste-724def1/src/ui/gpaste-ui-new-item.c000066400000000000000000000077771521206431300217370ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #include #include struct _GPasteUiNewItem { GtkButton parent_instance; }; typedef struct { GPasteClient *client; GtkWindow *rootwin; } GPasteUiNewItemPrivate; G_PASTE_DEFINE_TYPE_WITH_PRIVATE (UiNewItem, ui_new_item, GTK_TYPE_BUTTON) typedef struct { GPasteClient *client; GtkTextBuffer *buffer; } NewItemDialogData; static void on_new_item_response (GObject *dialog G_GNUC_UNUSED, GAsyncResult *result, gpointer user_data) { g_autofree NewItemDialogData *data = user_data; g_autoptr (GPasteClient) client = data->client; g_autoptr (GtkTextBuffer) buffer = data->buffer; const gchar *response = adw_alert_dialog_choose_finish (ADW_ALERT_DIALOG (dialog), result); if (g_strcmp0 (response, "confirm") == 0) { GtkTextIter start, end; gtk_text_buffer_get_bounds (buffer, &start, &end); g_autofree gchar *txt = gtk_text_buffer_get_text (buffer, &start, &end, FALSE); if (txt && *txt) g_paste_client_add (client, txt, NULL, NULL); } } static void g_paste_ui_new_item_clicked (GtkButton *button) { const GPasteUiNewItemPrivate *priv = _g_paste_ui_new_item_get_instance_private (G_PASTE_UI_NEW_ITEM (button)); AdwAlertDialog *dialog = ADW_ALERT_DIALOG (adw_alert_dialog_new (PACKAGE_STRING, NULL)); GtkWidget *text = gtk_text_view_new (); GtkTextView *tv = GTK_TEXT_VIEW (text); GtkWidget *scroll = gtk_scrolled_window_new (); GtkScrolledWindow *sw = GTK_SCROLLED_WINDOW (scroll); gtk_text_view_set_wrap_mode (tv, GTK_WRAP_WORD); gtk_scrolled_window_set_min_content_height (sw, 300); gtk_scrolled_window_set_min_content_width (sw, 600); gtk_scrolled_window_set_child (sw, text); gtk_widget_set_vexpand (scroll, TRUE); adw_alert_dialog_add_responses (dialog, "cancel", _("Cancel"), "confirm", _("Add new item"), NULL); adw_alert_dialog_set_extra_child (dialog, scroll); NewItemDialogData *data = g_new (NewItemDialogData, 1); data->client = g_object_ref (priv->client); data->buffer = g_object_ref (gtk_text_view_get_buffer (tv)); adw_alert_dialog_choose (dialog, GTK_WIDGET (priv->rootwin), NULL, on_new_item_response, data); } static void g_paste_ui_new_item_dispose (GObject *object) { GPasteUiNewItemPrivate *priv = g_paste_ui_new_item_get_instance_private (G_PASTE_UI_NEW_ITEM (object)); g_clear_object (&priv->client); G_OBJECT_CLASS (g_paste_ui_new_item_parent_class)->dispose (object); } static void g_paste_ui_new_item_class_init (GPasteUiNewItemClass *klass) { G_OBJECT_CLASS (klass)->dispose = g_paste_ui_new_item_dispose; GTK_BUTTON_CLASS (klass)->clicked = g_paste_ui_new_item_clicked; } static void g_paste_ui_new_item_init (GPasteUiNewItem *self) { GtkWidget *widget = GTK_WIDGET (self); gtk_widget_set_tooltip_text (widget, _("New item")); gtk_widget_set_valign (widget, GTK_ALIGN_CENTER); gtk_button_set_child (GTK_BUTTON (self), gtk_image_new_from_icon_name ("document-new-symbolic")); } /** * g_paste_ui_new_item_new: * @rootwin: the root #GtkWindow * @client: a #GPasteClient * * Create a new instance of #GPasteUiNewItem * * Returns: a newly allocated #GPasteUiNewItem * free it with g_object_unref */ G_PASTE_VISIBLE GtkWidget * g_paste_ui_new_item_new (GtkWindow *rootwin, GPasteClient *client) { g_return_val_if_fail (_G_PASTE_IS_CLIENT (client), NULL); g_return_val_if_fail (GTK_IS_WINDOW (rootwin), NULL); GtkWidget *self = g_object_new (G_PASTE_TYPE_UI_NEW_ITEM, NULL); GPasteUiNewItemPrivate *priv = g_paste_ui_new_item_get_instance_private (G_PASTE_UI_NEW_ITEM (self)); priv->client = g_object_ref (client); priv->rootwin = rootwin; return self; } Keruspe-GPaste-724def1/src/ui/gpaste-ui-new-item.h000066400000000000000000000011451521206431300217230ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #if !defined (__G_PASTE_H_INSIDE__) && !defined (G_PASTE_COMPILATION) #error "Only can be included directly." #endif #pragma once #include #include G_BEGIN_DECLS #define G_PASTE_TYPE_UI_NEW_ITEM (g_paste_ui_new_item_get_type ()) G_PASTE_FINAL_TYPE (UiNewItem, ui_new_item, UI_NEW_ITEM, GtkButton) GtkWidget *g_paste_ui_new_item_new (GtkWindow *rootwin, GPasteClient *client); G_END_DECLS Keruspe-GPaste-724def1/src/ui/gpaste-ui-panel-history.c000066400000000000000000000101461521206431300227700ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #include struct _GPasteUiPanelHistory { AdwSidebarItem parent_instance; }; typedef struct { GPasteClient *client; gchar *history; } GPasteUiPanelHistoryPrivate; G_PASTE_DEFINE_TYPE_WITH_PRIVATE (UiPanelHistory, ui_panel_history, ADW_TYPE_SIDEBAR_ITEM) /** * g_paste_ui_panel_history_activate: * @self: a #GPasteUiPanelHistory instance * * Switch to this history */ G_PASTE_VISIBLE void g_paste_ui_panel_history_activate (GPasteUiPanelHistory *self) { g_return_if_fail (_G_PASTE_IS_UI_PANEL_HISTORY (self)); const GPasteUiPanelHistoryPrivate *priv = _g_paste_ui_panel_history_get_instance_private (self); g_paste_client_switch_history (priv->client, priv->history, NULL, NULL); } /** * g_paste_ui_panel_history_set_length: * @self: a #GPasteUiPanelHistory instance * @length: the length of the #GPasteHistory * * Update the displayed length of this history */ G_PASTE_VISIBLE void g_paste_ui_panel_history_set_length (GPasteUiPanelHistory *self, guint64 length) { g_return_if_fail (_G_PASTE_IS_UI_PANEL_HISTORY (self)); g_autofree gchar *str = g_strdup_printf ("%" G_GUINT64_FORMAT, length); adw_sidebar_item_set_subtitle (ADW_SIDEBAR_ITEM (self), str); } /** * g_paste_ui_panel_history_get_history: * @self: a #GPasteUiPanelHistory instance * * Get the underlying history name * * Returns: the name of the history */ G_PASTE_VISIBLE const gchar * g_paste_ui_panel_history_get_history (const GPasteUiPanelHistory *self) { g_return_val_if_fail (_G_PASTE_IS_UI_PANEL_HISTORY (self), NULL); const GPasteUiPanelHistoryPrivate *priv = _g_paste_ui_panel_history_get_instance_private ((GPasteUiPanelHistory *) self); return priv->history; } static void on_size_ready (GObject *source_object, GAsyncResult *res, gpointer user_data) { GPasteUiPanelHistory *self = user_data; g_paste_ui_panel_history_set_length (self, g_paste_client_get_history_size_finish (G_PASTE_CLIENT (source_object), res, NULL)); } static void g_paste_ui_panel_history_dispose (GObject *object) { GPasteUiPanelHistoryPrivate *priv = g_paste_ui_panel_history_get_instance_private (G_PASTE_UI_PANEL_HISTORY (object)); g_clear_object (&priv->client); G_OBJECT_CLASS (g_paste_ui_panel_history_parent_class)->dispose (object); } static void g_paste_ui_panel_history_finalize (GObject *object) { GPasteUiPanelHistoryPrivate *priv = g_paste_ui_panel_history_get_instance_private (G_PASTE_UI_PANEL_HISTORY (object)); g_clear_pointer (&priv->history, g_free); G_OBJECT_CLASS (g_paste_ui_panel_history_parent_class)->finalize (object); } static void g_paste_ui_panel_history_class_init (GPasteUiPanelHistoryClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); object_class->dispose = g_paste_ui_panel_history_dispose; object_class->finalize = g_paste_ui_panel_history_finalize; } static void g_paste_ui_panel_history_init (GPasteUiPanelHistory *self G_GNUC_UNUSED) { } /** * g_paste_ui_panel_history_new: * @client: a #GPasteClient instance * @history: the history we represent * * Create a new instance of #GPasteUiPanelHistory * * Returns: a newly allocated #GPasteUiPanelHistory * free it with g_object_unref */ G_PASTE_VISIBLE GPasteUiPanelHistory * g_paste_ui_panel_history_new (GPasteClient *client, const gchar *history) { g_return_val_if_fail (_G_PASTE_IS_CLIENT (client), NULL); g_return_val_if_fail (g_utf8_validate (history, -1, NULL), NULL); GPasteUiPanelHistory *self = g_object_new (G_PASTE_TYPE_UI_PANEL_HISTORY, NULL); GPasteUiPanelHistoryPrivate *priv = g_paste_ui_panel_history_get_instance_private (self); priv->client = g_object_ref (client); priv->history = g_strdup (history); adw_sidebar_item_set_title (ADW_SIDEBAR_ITEM (self), history); g_paste_client_get_history_size (client, history, on_size_ready, self); return self; } Keruspe-GPaste-724def1/src/ui/gpaste-ui-panel-history.h000066400000000000000000000017211521206431300227740ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #if !defined (__G_PASTE_H_INSIDE__) && !defined (G_PASTE_COMPILATION) #error "Only can be included directly." #endif #pragma once #include #include G_BEGIN_DECLS #define G_PASTE_TYPE_UI_PANEL_HISTORY (g_paste_ui_panel_history_get_type ()) G_PASTE_FINAL_TYPE (UiPanelHistory, ui_panel_history, UI_PANEL_HISTORY, AdwSidebarItem) void g_paste_ui_panel_history_activate (GPasteUiPanelHistory *self); void g_paste_ui_panel_history_set_length (GPasteUiPanelHistory *self, guint64 length); const gchar *g_paste_ui_panel_history_get_history (const GPasteUiPanelHistory *self); GPasteUiPanelHistory *g_paste_ui_panel_history_new (GPasteClient *client, const gchar *history); G_END_DECLS Keruspe-GPaste-724def1/src/ui/gpaste-ui-panel.c000066400000000000000000000445261521206431300213020ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #include #include #include #include struct _GPasteUiPanel { GtkBox parent_instance; }; enum { C_SELECTION_CHANGED, C_SETUP_MENU, C_SWITCH_ACTIVATED, C_SWITCH_CLICKED, C_LAST_SIGNAL }; typedef struct { GPasteClient *client; GPasteSettings *settings; GSignalGroup *client_signals; AdwSidebar *sidebar; AdwSidebarSection *section; AdwSidebarItem *menu_item; AdwEntryRow *switch_entry; GtkButton *jump_button; GList *histories; GtkWindow *rootwin; GtkWidget *search_entry; gboolean inhibit_switch; guint64 c_signals[C_LAST_SIGNAL]; } GPasteUiPanelPrivate; G_PASTE_DEFINE_TYPE_WITH_PRIVATE (UiPanel, ui_panel, GTK_TYPE_BOX) static gint32 history_equals (gconstpointer a, gconstpointer b) { return !g_paste_str_equal (b, g_paste_ui_panel_history_get_history (a)); } static GList * history_find (GList *histories, const gchar *history) { return g_list_find_custom (histories, history, history_equals); } /** * g_paste_ui_panel_update_history_length: * @self: a #GPasteUiPanel instance * @history: the history to update * @length: the new length * * Update the displayed length of the specified history */ G_PASTE_VISIBLE void g_paste_ui_panel_update_history_length (GPasteUiPanel *self, const gchar *history, guint64 length) { g_return_if_fail (_G_PASTE_IS_UI_PANEL (self)); const GPasteUiPanelPrivate *priv = _g_paste_ui_panel_get_instance_private (self); GList *h = history_find (priv->histories, history); if (h) g_paste_ui_panel_history_set_length (h->data, length); } static void on_history_deleted (GPasteClient *client G_GNUC_UNUSED, const gchar *history, gpointer user_data) { GPasteUiPanelPrivate *priv = user_data; GList *h = history_find (priv->histories, history); if (!h) return; if (g_paste_str_equal (history, G_PASTE_DEFAULT_HISTORY)) { g_paste_ui_panel_history_set_length (h->data, 0); return; } priv->histories = g_list_remove_link (priv->histories, h); adw_sidebar_section_remove (priv->section, ADW_SIDEBAR_ITEM (h->data)); g_list_free_1 (h); } static void on_history_emptied (GPasteClient *client G_GNUC_UNUSED, const gchar *history, gpointer user_data) { GPasteUiPanel *self = user_data; g_paste_ui_panel_update_history_length (self, history, 0); } static void g_paste_ui_panel_add_history (GPasteUiPanelPrivate *priv, const gchar *history, gboolean select); static void on_history_switched (GPasteClient *client G_GNUC_UNUSED, const gchar *history, gpointer user_data) { GPasteUiPanelPrivate *priv = user_data; g_paste_ui_panel_add_history (priv, history, TRUE); } static void on_selection_changed (GtkSelectionModel *model G_GNUC_UNUSED, guint position G_GNUC_UNUSED, guint n_items G_GNUC_UNUSED, gpointer user_data) { GPasteUiPanelPrivate *priv = user_data; if (priv->inhibit_switch) return; AdwSidebarItem *item = priv->menu_item; if (!item || !G_PASTE_IS_UI_PANEL_HISTORY (item)) return; g_paste_ui_panel_history_activate (G_PASTE_UI_PANEL_HISTORY (item)); } static void g_paste_ui_panel_add_history (GPasteUiPanelPrivate *priv, const gchar *history, gboolean select) { GList *concurrent = history_find (priv->histories, history); GPasteUiPanelHistory *h; if (concurrent) h = concurrent->data; else { h = g_paste_ui_panel_history_new (priv->client, history); adw_sidebar_section_append (priv->section, ADW_SIDEBAR_ITEM (h)); priv->histories = g_list_prepend (priv->histories, h); } if (select) { priv->inhibit_switch = TRUE; adw_sidebar_set_selected (priv->sidebar, adw_sidebar_item_get_index (ADW_SIDEBAR_ITEM (h))); priv->inhibit_switch = FALSE; } } typedef struct { GPasteUiPanel *self; gchar *name; } HistoriesData; static void on_histories_ready (GObject *source_object G_GNUC_UNUSED, GAsyncResult *res, gpointer user_data) { g_autofree HistoriesData *data = user_data; g_autoptr (GPasteUiPanel) self = data->self; g_autofree gchar *current = data->name; GPasteUiPanelPrivate *priv = g_paste_ui_panel_get_instance_private (self); if (!priv->client) /* panel was disposed while the call was in flight */ return; g_autoptr (GError) error = NULL; g_auto (GStrv) histories = g_paste_client_list_histories_finish (priv->client, res, &error); g_paste_ui_panel_add_history (priv, G_PASTE_DEFAULT_HISTORY, g_paste_str_equal (G_PASTE_DEFAULT_HISTORY, current)); if (error) { g_critical ("Error while listing available histories: %s", error->message); return; } for (GStrv h = histories; *h; ++h) g_paste_ui_panel_add_history (priv, *h, g_paste_str_equal (*h, current)); } static void on_name_ready (GObject *source_object G_GNUC_UNUSED, GAsyncResult *res, gpointer user_data) { g_autoptr (GPasteUiPanel) self = user_data; GPasteUiPanelPrivate *priv = g_paste_ui_panel_get_instance_private (self); if (!priv->client) /* panel was disposed while the call was in flight */ return; g_autofree gchar *name = g_paste_client_get_history_name_finish (priv->client, res, NULL); HistoriesData *data = g_new (HistoriesData, 1); data->self = g_steal_pointer (&self); data->name = g_steal_pointer (&name); g_paste_client_list_histories (priv->client, on_histories_ready, data); } static void g_paste_ui_panel_do_switch (GPasteUiPanelPrivate *priv) { const gchar *text = gtk_editable_get_text (GTK_EDITABLE (priv->switch_entry)); g_paste_client_switch_history (priv->client, (text && *text) ? text : G_PASTE_DEFAULT_HISTORY, NULL, NULL); gtk_editable_set_text (GTK_EDITABLE (priv->switch_entry), ""); gtk_widget_grab_focus (priv->search_entry); } static void g_paste_ui_panel_switch_activated (AdwEntryRow *entry G_GNUC_UNUSED, gpointer user_data) { g_paste_ui_panel_do_switch (user_data); } static void g_paste_ui_panel_switch_clicked (GtkButton *button G_GNUC_UNUSED, gpointer user_data) { g_paste_ui_panel_do_switch (user_data); } static void on_setup_menu (AdwSidebar *sidebar G_GNUC_UNUSED, AdwSidebarItem *item, gpointer user_data) { GPasteUiPanelPrivate *priv = user_data; priv->menu_item = item; } /* Context menu action callbacks */ typedef struct { GPasteClient *client; gchar *history; GtkEditable *entry; } BackupHistoryData; static void on_backup_response (GObject *dialog, GAsyncResult *result, gpointer user_data) { g_autofree BackupHistoryData *data = user_data; g_autoptr (GPasteClient) client = data->client; g_autofree gchar *history = data->history; const gchar *response = adw_alert_dialog_choose_finish (ADW_ALERT_DIALOG (dialog), result); if (g_strcmp0 (response, "backup") == 0) { const gchar *text = gtk_editable_get_text (data->entry); if (text && *text) g_paste_client_backup_history (client, history, text, NULL, NULL); } } static void on_backup_history_action (GSimpleAction *action G_GNUC_UNUSED, GVariant *parameter G_GNUC_UNUSED, gpointer user_data) { GPasteUiPanelPrivate *priv = user_data; AdwSidebarItem *item = priv->menu_item; if (!item || !G_PASTE_IS_UI_PANEL_HISTORY (item)) return; const gchar *history = g_paste_ui_panel_history_get_history (G_PASTE_UI_PANEL_HISTORY (item)); g_autofree gchar *default_name = g_strdup_printf ("%s_backup", history); AdwAlertDialog *dialog = ADW_ALERT_DIALOG (adw_alert_dialog_new (PACKAGE_STRING, _("Under which name do you want to backup this history?"))); GtkWidget *entry = gtk_entry_new (); gtk_editable_set_text (GTK_EDITABLE (entry), default_name); adw_alert_dialog_add_responses (dialog, "cancel", _("Cancel"), "backup", _("Backup"), NULL); adw_alert_dialog_set_extra_child (dialog, entry); BackupHistoryData *data = g_new (BackupHistoryData, 1); data->client = g_object_ref (priv->client); data->history = g_strdup (history); data->entry = GTK_EDITABLE (entry); adw_alert_dialog_choose (dialog, GTK_WIDGET (priv->rootwin), NULL, on_backup_response, data); } typedef struct { GPasteClient *client; gchar *history; } DeleteHistoryData; static void on_delete_confirmed (gboolean confirmed, gpointer user_data) { g_autofree DeleteHistoryData *data = user_data; g_autoptr (GPasteClient) client = data->client; g_autofree gchar *history = data->history; if (confirmed) g_paste_client_delete_history (client, history, NULL, NULL); } static void on_delete_history_action (GSimpleAction *action G_GNUC_UNUSED, GVariant *parameter G_GNUC_UNUSED, gpointer user_data) { GPasteUiPanelPrivate *priv = user_data; AdwSidebarItem *item = priv->menu_item; if (!item || !G_PASTE_IS_UI_PANEL_HISTORY (item)) return; const gchar *history = g_paste_ui_panel_history_get_history (G_PASTE_UI_PANEL_HISTORY (item)); DeleteHistoryData *data = g_new (DeleteHistoryData, 1); data->client = g_object_ref (priv->client); data->history = g_strdup (history); /* Translators: %s is the name of the history being deleted. */ g_autofree gchar *msg = g_strdup_printf (_("Are you sure you want to delete \"%s\"?"), history); g_paste_gtk_util_confirm_dialog (priv->rootwin, _("Delete"), msg, on_delete_confirmed, data); } static void on_empty_history_action (GSimpleAction *action G_GNUC_UNUSED, GVariant *parameter G_GNUC_UNUSED, gpointer user_data) { GPasteUiPanelPrivate *priv = user_data; AdwSidebarItem *item = priv->menu_item; if (!item || !G_PASTE_IS_UI_PANEL_HISTORY (item)) return; const gchar *history = g_paste_ui_panel_history_get_history (G_PASTE_UI_PANEL_HISTORY (item)); g_paste_gtk_util_empty_history (priv->rootwin, priv->client, priv->settings, history); } static void g_paste_ui_panel_dispose (GObject *object) { GPasteUiPanelPrivate *priv = g_paste_ui_panel_get_instance_private (G_PASTE_UI_PANEL (object)); if (priv->c_signals[C_SELECTION_CHANGED]) { g_autoptr (GtkSelectionModel) selection = adw_sidebar_get_items (priv->sidebar); g_signal_handler_disconnect (selection, priv->c_signals[C_SELECTION_CHANGED]); g_signal_handler_disconnect (priv->switch_entry, priv->c_signals[C_SWITCH_ACTIVATED]); g_signal_handler_disconnect (priv->jump_button, priv->c_signals[C_SWITCH_CLICKED]); g_signal_handler_disconnect (priv->sidebar, priv->c_signals[C_SETUP_MENU]); priv->c_signals[C_SELECTION_CHANGED] = 0; } g_clear_object (&priv->client_signals); g_clear_object (&priv->client); g_clear_object (&priv->settings); /* FIXME: adw_sidebar_section_dispose crashes with leftover items in libadwaita 1.9.0; drain manually until fixed upstream */ for (GList *h = priv->histories; h; h = h->next) adw_sidebar_section_remove (priv->section, ADW_SIDEBAR_ITEM (h->data)); g_clear_pointer (&priv->histories, g_list_free); G_OBJECT_CLASS (g_paste_ui_panel_parent_class)->dispose (object); } static void g_paste_ui_panel_class_init (GPasteUiPanelClass *klass) { G_OBJECT_CLASS (klass)->dispose = g_paste_ui_panel_dispose; } static void g_paste_ui_panel_init (GPasteUiPanel *self) { GPasteUiPanelPrivate *priv = g_paste_ui_panel_get_instance_private (self); GtkBox *box = GTK_BOX (self); GtkWidget *sidebar = adw_sidebar_new (); priv->sidebar = ADW_SIDEBAR (sidebar); AdwSidebarSection *section = adw_sidebar_section_new (); priv->section = section; adw_sidebar_append (priv->sidebar, section); gtk_widget_set_vexpand (sidebar, TRUE); GtkSelectionModel *selection = adw_sidebar_get_items (priv->sidebar); priv->c_signals[C_SELECTION_CHANGED] = g_signal_connect (selection, "selection-changed", G_CALLBACK (on_selection_changed), priv); GtkWidget *entry_box = gtk_list_box_new (); gtk_widget_add_css_class (entry_box, "boxed-list"); gtk_list_box_set_selection_mode (GTK_LIST_BOX (entry_box), GTK_SELECTION_NONE); gtk_widget_set_margin_top (entry_box, 6); gtk_widget_set_margin_bottom (entry_box, 6); GtkWidget *switch_entry = adw_entry_row_new (); priv->switch_entry = ADW_ENTRY_ROW (switch_entry); adw_preferences_row_set_title (ADW_PREFERENCES_ROW (switch_entry), _("Switch to history")); gtk_editable_set_enable_undo (GTK_EDITABLE (switch_entry), FALSE); GtkWidget *jump_button = gtk_button_new_from_icon_name ("go-jump-symbolic"); priv->jump_button = GTK_BUTTON (jump_button); gtk_widget_set_valign (jump_button, GTK_ALIGN_CENTER); gtk_widget_add_css_class (jump_button, "flat"); gtk_widget_set_tooltip_text (jump_button, _("Switch to")); adw_entry_row_add_suffix (ADW_ENTRY_ROW (switch_entry), jump_button); priv->c_signals[C_SWITCH_ACTIVATED] = g_signal_connect (G_OBJECT (switch_entry), "entry-activated", G_CALLBACK (g_paste_ui_panel_switch_activated), priv); priv->c_signals[C_SWITCH_CLICKED] = g_signal_connect (G_OBJECT (jump_button), "clicked", G_CALLBACK (g_paste_ui_panel_switch_clicked), priv); gtk_list_box_append (GTK_LIST_BOX (entry_box), switch_entry); gtk_box_append (box, sidebar); gtk_box_append (box, entry_box); } /** * g_paste_ui_panel_new: * @client: a #GPasteClient instance * @settings: a #GPasteSettings instance * @rootwin: the root #GtkWindow * @search_entry: the #GtkSearchEntry * * Create a new instance of #GPasteUiPanel * * Returns: a newly allocated #GPasteUiPanel * free it with g_object_unref */ G_PASTE_VISIBLE GtkWidget * g_paste_ui_panel_new (GPasteClient *client, GPasteSettings *settings, GtkWindow *rootwin, GtkSearchEntry *search_entry) { g_return_val_if_fail (_G_PASTE_IS_CLIENT (client), NULL); g_return_val_if_fail (_G_PASTE_IS_SETTINGS (settings), NULL); g_return_val_if_fail (GTK_IS_WINDOW (rootwin), NULL); g_return_val_if_fail (GTK_IS_SEARCH_ENTRY (search_entry), NULL); GtkWidget *self = g_object_new (G_PASTE_TYPE_UI_PANEL, "orientation", GTK_ORIENTATION_VERTICAL, NULL); GPasteUiPanelPrivate *priv = g_paste_ui_panel_get_instance_private (G_PASTE_UI_PANEL (self)); priv->client = g_object_ref (client); priv->settings = g_object_ref (settings); priv->rootwin = rootwin; priv->search_entry = GTK_WIDGET (search_entry); g_autoptr (GSimpleActionGroup) ag = g_simple_action_group_new (); g_autoptr (GSimpleAction) backup_action = g_simple_action_new ("backup-history", NULL); g_signal_connect (backup_action, "activate", G_CALLBACK (on_backup_history_action), priv); g_action_map_add_action (G_ACTION_MAP (ag), G_ACTION (backup_action)); g_autoptr (GSimpleAction) delete_action = g_simple_action_new ("delete-history", NULL); g_signal_connect (delete_action, "activate", G_CALLBACK (on_delete_history_action), priv); g_action_map_add_action (G_ACTION_MAP (ag), G_ACTION (delete_action)); g_autoptr (GSimpleAction) empty_action = g_simple_action_new ("empty-history", NULL); g_signal_connect (empty_action, "activate", G_CALLBACK (on_empty_history_action), priv); g_action_map_add_action (G_ACTION_MAP (ag), G_ACTION (empty_action)); gtk_widget_insert_action_group (self, "panel", G_ACTION_GROUP (ag)); g_autoptr (GMenu) menu = g_menu_new (); g_menu_append (menu, _("Backup"), "panel.backup-history"); g_menu_append (menu, _("Empty"), "panel.empty-history"); g_menu_append (menu, _("Delete"), "panel.delete-history"); adw_sidebar_set_menu_model (priv->sidebar, G_MENU_MODEL (menu)); GSignalGroup *client_signals = priv->client_signals = g_signal_group_new (G_PASTE_TYPE_CLIENT); g_signal_group_connect (client_signals, "delete-history", G_CALLBACK (on_history_deleted), priv); g_signal_group_connect (client_signals, "empty-history", G_CALLBACK (on_history_emptied), self); g_signal_group_connect (client_signals, "switch-history", G_CALLBACK (on_history_switched), priv); g_signal_group_set_target (client_signals, client); priv->c_signals[C_SETUP_MENU] = g_signal_connect (priv->sidebar, "setup-menu", G_CALLBACK (on_setup_menu), priv); g_paste_client_get_history_name (client, on_name_ready, g_object_ref (self)); return self; } Keruspe-GPaste-724def1/src/ui/gpaste-ui-panel.h000066400000000000000000000016471521206431300213040ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #if !defined (__G_PASTE_H_INSIDE__) && !defined (G_PASTE_COMPILATION) #error "Only can be included directly." #endif #pragma once #include #include G_BEGIN_DECLS #define G_PASTE_TYPE_UI_PANEL (g_paste_ui_panel_get_type ()) G_PASTE_FINAL_TYPE (UiPanel, ui_panel, UI_PANEL, GtkBox) void g_paste_ui_panel_update_history_length (GPasteUiPanel *self, const gchar *history, guint64 length); GtkWidget *g_paste_ui_panel_new (GPasteClient *client, GPasteSettings *settings, GtkWindow *rootwin, GtkSearchEntry *search_entry); G_END_DECLS Keruspe-GPaste-724def1/src/ui/gpaste-ui-reexec.c000066400000000000000000000052751521206431300214540ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #include #include struct _GPasteUiReexec { GtkButton parent_instance; }; typedef struct { GPasteClient *client; GtkWindow *topwin; } GPasteUiReexecPrivate; G_PASTE_DEFINE_TYPE_WITH_PRIVATE (UiReexec, ui_reexec, GTK_TYPE_BUTTON) typedef struct { GPasteClient *client; } ReexecCallbackData; static void on_reexec_confirmed (gboolean confirmed, gpointer user_data) { g_autofree ReexecCallbackData *data = user_data; g_autoptr (GPasteClient) client = data->client; if (confirmed) g_paste_client_reexecute (client, NULL, NULL); } static void g_paste_ui_reexec_clicked (GtkButton *button) { const GPasteUiReexecPrivate *priv = _g_paste_ui_reexec_get_instance_private (G_PASTE_UI_REEXEC (button)); ReexecCallbackData *data = g_new (ReexecCallbackData, 1); data->client = g_object_ref (priv->client); g_paste_gtk_util_confirm_dialog (priv->topwin, _("Restart"), _("Do you really want to restart the daemon?"), on_reexec_confirmed, data); } static void g_paste_ui_reexec_dispose (GObject *object) { GPasteUiReexecPrivate *priv = g_paste_ui_reexec_get_instance_private (G_PASTE_UI_REEXEC (object)); g_clear_object (&priv->client); G_OBJECT_CLASS (g_paste_ui_reexec_parent_class)->dispose (object); } static void g_paste_ui_reexec_class_init (GPasteUiReexecClass *klass) { G_OBJECT_CLASS (klass)->dispose = g_paste_ui_reexec_dispose; GTK_BUTTON_CLASS (klass)->clicked = g_paste_ui_reexec_clicked; } static void g_paste_ui_reexec_init (GPasteUiReexec *self) { GtkWidget *widget = GTK_WIDGET (self); gtk_widget_set_tooltip_text (widget, _("Restart the daemon")); gtk_widget_set_valign (widget, GTK_ALIGN_CENTER); gtk_button_set_child (GTK_BUTTON (self), gtk_image_new_from_icon_name ("view-refresh-symbolic")); } /** * g_paste_ui_reexec_new: * @topwin: the main #GtkWindow * @client: a #GPasteClient instance * * Create a new instance of #GPasteUiReexec * * Returns: a newly allocated #GPasteUiReexec * free it with g_object_unref */ G_PASTE_VISIBLE GtkWidget * g_paste_ui_reexec_new (GtkWindow *topwin, GPasteClient *client) { g_return_val_if_fail (GTK_IS_WINDOW (topwin), NULL); g_return_val_if_fail (_G_PASTE_IS_CLIENT (client), NULL); GtkWidget *self = g_object_new (G_PASTE_TYPE_UI_REEXEC, NULL); GPasteUiReexecPrivate *priv = g_paste_ui_reexec_get_instance_private (G_PASTE_UI_REEXEC (self)); priv->topwin = topwin; priv->client = g_object_ref (client); return self; } Keruspe-GPaste-724def1/src/ui/gpaste-ui-reexec.h000066400000000000000000000011271521206431300214510ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #if !defined (__G_PASTE_H_INSIDE__) && !defined (G_PASTE_COMPILATION) #error "Only can be included directly." #endif #pragma once #include #include G_BEGIN_DECLS #define G_PASTE_TYPE_UI_REEXEC (g_paste_ui_reexec_get_type ()) G_PASTE_FINAL_TYPE (UiReexec, ui_reexec, UI_REEXEC, GtkButton) GtkWidget *g_paste_ui_reexec_new (GtkWindow *topwin, GPasteClient *client); G_END_DECLS Keruspe-GPaste-724def1/src/ui/gpaste-ui-search-bar.c000066400000000000000000000020771521206431300222050ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #include /** * g_paste_ui_search_bar_get_entry: * @self: a #GtkSearchBar * * Get the #GtkSearchEntry * * Returns: (transfer none): the #GtkSearchEntry */ G_PASTE_VISIBLE GtkSearchEntry * g_paste_ui_search_bar_get_entry (GtkSearchBar *self) { g_return_val_if_fail (GTK_IS_SEARCH_BAR (self), NULL); return GTK_SEARCH_ENTRY (g_object_get_data (G_OBJECT (self), "entry")); } /** * g_paste_ui_search_bar_new: * * Create a new #GtkSearchBar for GPaste * * Returns: a newly allocated #GtkSearchBar * free it with g_object_unref */ G_PASTE_VISIBLE GtkWidget * g_paste_ui_search_bar_new (void) { GtkWidget *self = gtk_search_bar_new (); GtkWidget *entry = gtk_search_entry_new (); g_object_set_data (G_OBJECT (self), "entry", entry); gtk_search_bar_set_child (GTK_SEARCH_BAR (self), entry); gtk_search_bar_connect_entry (GTK_SEARCH_BAR (self), GTK_EDITABLE (entry)); return self; } Keruspe-GPaste-724def1/src/ui/gpaste-ui-search-bar.h000066400000000000000000000007321521206431300222060ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #if !defined (__G_PASTE_H_INSIDE__) && !defined (G_PASTE_COMPILATION) #error "Only can be included directly." #endif #pragma once #include #include G_BEGIN_DECLS GtkSearchEntry *g_paste_ui_search_bar_get_entry (GtkSearchBar *self); GtkWidget *g_paste_ui_search_bar_new (void); G_END_DECLS Keruspe-GPaste-724def1/src/ui/gpaste-ui-search.c000066400000000000000000000017301521206431300214360ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #include struct _GPasteUiSearch { GtkToggleButton parent_instance; }; G_PASTE_DEFINE_TYPE (UiSearch, ui_search, GTK_TYPE_TOGGLE_BUTTON) static void g_paste_ui_search_class_init (GPasteUiSearchClass *klass G_GNUC_UNUSED) { } static void g_paste_ui_search_init (GPasteUiSearch *self) { GtkWidget *widget = GTK_WIDGET (self); gtk_widget_set_tooltip_text (widget, _("Search")); gtk_widget_set_valign (widget, GTK_ALIGN_CENTER); gtk_button_set_child (GTK_BUTTON (self), gtk_image_new_from_icon_name ("edit-find-symbolic")); } /** * g_paste_ui_search_new: * * Create a new instance of #GPasteUiSearch * * Returns: a newly allocated #GPasteUiSearch * free it with g_object_unref */ G_PASTE_VISIBLE GtkWidget * g_paste_ui_search_new (void) { return g_object_new (G_PASTE_TYPE_UI_SEARCH, NULL); } Keruspe-GPaste-724def1/src/ui/gpaste-ui-search.h000066400000000000000000000010251521206431300214400ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #if !defined (__G_PASTE_H_INSIDE__) && !defined (G_PASTE_COMPILATION) #error "Only can be included directly." #endif #pragma once #include #include G_BEGIN_DECLS #define G_PASTE_TYPE_UI_SEARCH (g_paste_ui_search_get_type ()) G_PASTE_FINAL_TYPE (UiSearch, ui_search, UI_SEARCH, GtkToggleButton) GtkWidget *g_paste_ui_search_new (void); G_END_DECLS Keruspe-GPaste-724def1/src/ui/gpaste-ui-settings.c000066400000000000000000000026151521206431300220340ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #include #include struct _GPasteUiSettings { GtkButton parent_instance; }; G_PASTE_DEFINE_TYPE (UiSettings, ui_settings, GTK_TYPE_BUTTON) static void g_paste_ui_settings_clicked (GtkButton *button) { GtkRoot *root = gtk_widget_get_root (GTK_WIDGET (button)); AdwDialog *dialog = g_paste_gtk_preferences_dialog_new (NULL); adw_dialog_present (dialog, GTK_WIDGET (root)); } static void g_paste_ui_settings_class_init (GPasteUiSettingsClass *klass) { GTK_BUTTON_CLASS (klass)->clicked = g_paste_ui_settings_clicked; } static void g_paste_ui_settings_init (GPasteUiSettings *self) { GtkWidget *widget = GTK_WIDGET (self); gtk_widget_set_tooltip_text (widget, _("GPaste Settings")); gtk_widget_set_valign (widget, GTK_ALIGN_CENTER); gtk_widget_add_css_class (widget, "flat"); gtk_button_set_child (GTK_BUTTON (self), gtk_image_new_from_icon_name ("preferences-system-symbolic")); } /** * g_paste_ui_settings_new: * * Create a new instance of #GPasteUiSettings * * Returns: a newly allocated #GPasteUiSettings * free it with g_object_unref */ G_PASTE_VISIBLE GtkWidget * g_paste_ui_settings_new (void) { return g_object_new (G_PASTE_TYPE_UI_SETTINGS, NULL); } Keruspe-GPaste-724def1/src/ui/gpaste-ui-settings.h000066400000000000000000000010331521206431300220320ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #if !defined (__G_PASTE_H_INSIDE__) && !defined (G_PASTE_COMPILATION) #error "Only can be included directly." #endif #pragma once #include #include G_BEGIN_DECLS #define G_PASTE_TYPE_UI_SETTINGS (g_paste_ui_settings_get_type ()) G_PASTE_FINAL_TYPE (UiSettings, ui_settings, UI_SETTINGS, GtkButton) GtkWidget *g_paste_ui_settings_new (void); G_END_DECLS Keruspe-GPaste-724def1/src/ui/gpaste-ui-shortcuts-window.c000066400000000000000000000036261521206431300235420ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #include /** * g_paste_ui_shortcuts_window_new: * @settings: a #GPasteSettings instance * * Create a new #AdwShortcutsDialog for GPaste * * Returns: a newly allocated #AdwShortcutsDialog * free it with g_object_unref */ G_PASTE_VISIBLE GtkWidget * g_paste_ui_shortcuts_window_new (const GPasteSettings *settings) { g_return_val_if_fail (_G_PASTE_IS_SETTINGS (settings), NULL); AdwDialog *self = adw_shortcuts_dialog_new (); AdwShortcutsSection *section = adw_shortcuts_section_new (_("General")); adw_shortcuts_section_add (section, adw_shortcuts_item_new (_("Delete the active item from history"), g_paste_settings_get_pop (settings))); adw_shortcuts_section_add (section, adw_shortcuts_item_new (_("Launch the graphical tool"), g_paste_settings_get_launch_ui (settings))); adw_shortcuts_section_add (section, adw_shortcuts_item_new (_("Mark the active item as being a password"), g_paste_settings_get_make_password (settings))); adw_shortcuts_section_add (section, adw_shortcuts_item_new (_("Display the history"), g_paste_settings_get_show_history (settings))); adw_shortcuts_section_add (section, adw_shortcuts_item_new (_("Sync the clipboard to the primary selection"), g_paste_settings_get_sync_clipboard_to_primary (settings))); adw_shortcuts_section_add (section, adw_shortcuts_item_new (_("Sync the primary selection to the clipboard"), g_paste_settings_get_sync_primary_to_clipboard (settings))); adw_shortcuts_section_add (section, adw_shortcuts_item_new (_("Upload the active item to a pastebin service"), g_paste_settings_get_upload (settings))); adw_shortcuts_dialog_add (ADW_SHORTCUTS_DIALOG (self), section); return GTK_WIDGET (self); } Keruspe-GPaste-724def1/src/ui/gpaste-ui-shortcuts-window.h000066400000000000000000000006651521206431300235470ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #if !defined (__G_PASTE_H_INSIDE__) && !defined (G_PASTE_COMPILATION) #error "Only can be included directly." #endif #pragma once #include #include G_BEGIN_DECLS GtkWidget *g_paste_ui_shortcuts_window_new (const GPasteSettings *settings); G_END_DECLS Keruspe-GPaste-724def1/src/ui/gpaste-ui-switch.c000066400000000000000000000067211521206431300214770ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #include #include typedef struct { GPasteClient *client; GtkWindow *topwin; } GPasteUiSwitchData; static void g_paste_ui_switch_data_free (gpointer user_data) { g_autofree GPasteUiSwitchData *data = user_data; g_clear_object (&data->client); } static void on_tracking_changed (GPasteClient *client G_GNUC_UNUSED, gboolean state, gpointer user_data) { GtkSwitch *sw = user_data; gtk_switch_set_active (sw, state); } typedef struct { GPasteClient *client; gboolean track; } SwitchTrackData; static void on_track_confirmed (gboolean confirmed, gpointer user_data) { g_autofree SwitchTrackData *data = user_data; g_autoptr (GPasteClient) client = data->client; if (confirmed) g_paste_client_track (client, data->track, NULL, NULL); } static void on_gesture_pressed (GtkGestureClick *gesture, gint n_press G_GNUC_UNUSED, gdouble x G_GNUC_UNUSED, gdouble y G_GNUC_UNUSED, gpointer user_data G_GNUC_UNUSED) { GtkWidget *widget = gtk_event_controller_get_widget (GTK_EVENT_CONTROLLER (gesture)); GPasteUiSwitchData *data = g_object_get_data (G_OBJECT (widget), "switch-data"); GtkSwitch *sw = GTK_SWITCH (widget); gboolean track = !gtk_switch_get_active (sw); gtk_gesture_set_state (GTK_GESTURE (gesture), GTK_EVENT_SEQUENCE_CLAIMED); if (!track) { SwitchTrackData *track_data = g_new (SwitchTrackData, 1); track_data->client = g_object_ref (data->client); track_data->track = track; g_paste_gtk_util_confirm_dialog (data->topwin, _("Stop"), _("Do you really want to stop tracking clipboard changes?"), on_track_confirmed, track_data); } else g_paste_client_track (data->client, track, NULL, NULL); } /** * g_paste_ui_switch_new: * @topwin: the main #GtkWindow * @client: a #GPasteClient instance * * Create a new #GtkSwitch for GPaste tracking control * * Returns: a newly allocated #GtkSwitch * free it with g_object_unref */ G_PASTE_VISIBLE GtkWidget * g_paste_ui_switch_new (GtkWindow *topwin, GPasteClient *client) { g_return_val_if_fail (GTK_IS_WINDOW (topwin), NULL); g_return_val_if_fail (_G_PASTE_IS_CLIENT (client), NULL); GtkWidget *self = gtk_switch_new (); gtk_widget_set_tooltip_text (self, _("Track clipboard changes")); gtk_widget_set_valign (self, GTK_ALIGN_CENTER); GPasteUiSwitchData *data = g_new0 (GPasteUiSwitchData, 1); data->client = g_object_ref (client); data->topwin = topwin; g_object_set_data_full (G_OBJECT (self), "switch-data", data, g_paste_ui_switch_data_free); GtkGesture *gesture = gtk_gesture_click_new (); gtk_event_controller_set_propagation_phase (GTK_EVENT_CONTROLLER (gesture), GTK_PHASE_CAPTURE); g_signal_connect (gesture, "pressed", G_CALLBACK (on_gesture_pressed), NULL); gtk_widget_add_controller (self, GTK_EVENT_CONTROLLER (gesture)); g_signal_connect_object (client, "tracking", G_CALLBACK (on_tracking_changed), self, 0); gtk_switch_set_active (GTK_SWITCH (self), g_paste_client_is_active (client)); return self; } Keruspe-GPaste-724def1/src/ui/gpaste-ui-switch.h000066400000000000000000000007271521206431300215040ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #if !defined (__G_PASTE_H_INSIDE__) && !defined (G_PASTE_COMPILATION) #error "Only can be included directly." #endif #pragma once #include #include G_BEGIN_DECLS GtkWidget *g_paste_ui_switch_new (GtkWindow *topwin, GPasteClient *client); G_END_DECLS Keruspe-GPaste-724def1/src/ui/gpaste-ui-upload-item.c000066400000000000000000000024371521206431300224160ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #include struct _GPasteUiUploadItem { GPasteUiItemAction parent_instance; }; G_PASTE_DEFINE_TYPE (UiUploadItem, ui_upload_item, G_PASTE_TYPE_UI_ITEM_ACTION) static void g_paste_ui_upload_item_activate (GPasteUiItemAction *self G_GNUC_UNUSED, GPasteClient *client, const gchar *uuid) { g_paste_client_upload (client, uuid, NULL, NULL); } static void g_paste_ui_upload_item_class_init (GPasteUiUploadItemClass *klass) { G_PASTE_UI_ITEM_ACTION_CLASS (klass)->activate = g_paste_ui_upload_item_activate; } static void g_paste_ui_upload_item_init (GPasteUiUploadItem *self G_GNUC_UNUSED) { } /** * g_paste_ui_upload_item_new: * @client: a #GPasteClient * * Create a new instance of #GPasteUiUploadItem * * Returns: a newly allocated #GPasteUiUploadItem * free it with g_object_unref */ G_PASTE_VISIBLE GtkWidget * g_paste_ui_upload_item_new (GPasteClient *client) { g_return_val_if_fail (_G_PASTE_IS_CLIENT (client), NULL); return g_paste_ui_item_action_new (G_PASTE_TYPE_UI_UPLOAD_ITEM, client, "document-send-symbolic", _("Upload")); } Keruspe-GPaste-724def1/src/ui/gpaste-ui-upload-item.h000066400000000000000000000010601521206431300224120ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #if !defined (__G_PASTE_H_INSIDE__) && !defined (G_PASTE_COMPILATION) #error "Only can be included directly." #endif #pragma once #include G_BEGIN_DECLS #define G_PASTE_TYPE_UI_UPLOAD_ITEM (g_paste_ui_upload_item_get_type ()) G_PASTE_FINAL_TYPE (UiUploadItem, ui_upload_item, UI_UPLOAD_ITEM, GPasteUiItemAction) GtkWidget *g_paste_ui_upload_item_new (GPasteClient *client); G_END_DECLS Keruspe-GPaste-724def1/src/ui/gpaste-ui-window.c000066400000000000000000000342451521206431300215070ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #include #include #include #include #include #include struct _GPasteUiWindow { AdwApplicationWindow parent_instance; }; typedef struct { AdwHeaderBar *header; GPasteUiHistory *history; GPasteClient *client; GPasteSettings *settings; AdwToolbarView *toolbar_view; GtkSearchBar *search_bar; GtkSearchEntry *search_entry; GtkBox *content_box; AdwToastOverlay *toast_overlay; AdwBanner *banner; AdwDialog *shortcuts; GSignalGroup *search_signals; GSignalGroup *client_signals; gboolean initialized; } GPasteUiWindowPrivate; G_PASTE_DEFINE_TYPE_WITH_PRIVATE (UiWindow, ui_window, ADW_TYPE_APPLICATION_WINDOW) static gboolean _empty (gpointer user_data) { gpointer *data = (gpointer *) user_data; GPasteUiWindow *self = data[0]; GPasteUiWindowPrivate *priv = g_paste_ui_window_get_instance_private (self); /* Keep waiting until ready, unless the window was destroyed meanwhile */ if (priv->client && !priv->initialized) return G_SOURCE_CONTINUE; g_autofree gchar *history = data[1]; g_free (data); if (priv->client) g_paste_gtk_util_empty_history (GTK_WINDOW (self), priv->client, priv->settings, history); g_object_unref (self); return G_SOURCE_REMOVE; } /** * g_paste_ui_window_empty_history: * @self: the #GPasteUiWindow * @history: the history to empty * * Empty a history */ G_PASTE_VISIBLE void g_paste_ui_window_empty_history (GPasteUiWindow *self, const gchar *history) { g_return_if_fail (_G_PASTE_IS_UI_WINDOW (self)); g_return_if_fail (g_utf8_validate (history, -1, NULL)); gpointer *data = g_new (gpointer, 2); data[0] = g_object_ref (self); data[1] = g_strdup (history); g_source_set_name_by_id (g_idle_add (_empty, data), "[GPaste] empty"); } static gboolean _search (gpointer user_data) { gpointer *data = (gpointer *) user_data; GPasteUiWindow *self = data[0]; GPasteUiWindowPrivate *priv = g_paste_ui_window_get_instance_private (self); /* Keep waiting until ready, unless the window was destroyed meanwhile */ if (priv->client && !priv->initialized) return G_SOURCE_CONTINUE; g_autofree gchar *search = data[1]; g_free (data); if (priv->client) { gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (g_paste_ui_header_get_search_button (priv->header)), TRUE); gtk_editable_set_text (GTK_EDITABLE (priv->search_entry), search); } g_object_unref (self); return G_SOURCE_REMOVE; } /** * g_paste_ui_window_search: * @self: the #GPasteUiWindow * @search: the text to search * * Do a search */ G_PASTE_VISIBLE void g_paste_ui_window_search (GPasteUiWindow *self, const gchar *search) { g_return_if_fail (_G_PASTE_IS_UI_WINDOW (self)); g_return_if_fail (g_utf8_validate (search, -1, NULL)); gpointer *data = g_new (gpointer, 2); data[0] = g_object_ref (self); data[1] = g_strdup (search); g_source_set_name_by_id (g_idle_add (_search, data), "[GPaste] search"); } static gboolean _show_prefs (gpointer user_data) { GPasteUiWindow *self = user_data; GPasteUiWindowPrivate *priv = g_paste_ui_window_get_instance_private (self); /* Keep waiting until ready, unless the window was destroyed meanwhile */ if (priv->client && !priv->initialized) return G_SOURCE_CONTINUE; if (priv->client) g_paste_ui_header_show_prefs (priv->header); g_object_unref (self); return G_SOURCE_REMOVE; } /** * g_paste_ui_window_show_prefs: * @self: the #GPasteUiWindow * * Show the prefs pane */ G_PASTE_VISIBLE void g_paste_ui_window_show_prefs (GPasteUiWindow *self) { g_return_if_fail (_G_PASTE_IS_UI_WINDOW (self)); g_source_set_name_by_id (g_idle_add (_show_prefs, g_object_ref (self)), "[GPaste] show_prefs"); } static void on_show_help_overlay (GSimpleAction *action G_GNUC_UNUSED, GVariant *parameter G_GNUC_UNUSED, gpointer user_data) { GPasteUiWindow *self = user_data; GPasteUiWindowPrivate *priv = g_paste_ui_window_get_instance_private (self); adw_dialog_present (priv->shortcuts, GTK_WIDGET (self)); } static gboolean on_key_pressed (GtkEventControllerKey *controller G_GNUC_UNUSED, guint keyval, guint keycode G_GNUC_UNUSED, GdkModifierType state G_GNUC_UNUSED, gpointer user_data) { GPasteUiWindow *self = user_data; GPasteUiWindowPrivate *priv = g_paste_ui_window_get_instance_private (self); GtkWidget *focus = gtk_window_get_focus (GTK_WINDOW (self)); gboolean search_has_focus = focus == GTK_WIDGET (priv->search_entry); gboolean search_in_progress = search_has_focus && gtk_entry_get_text_length (GTK_ENTRY (priv->search_entry)); gboolean other_entry_has_focus = focus && GTK_IS_EDITABLE (focus) && !search_has_focus; switch (keyval) { case GDK_KEY_Escape: if (!search_in_progress) { gtk_window_close (GTK_WINDOW (self)); return GDK_EVENT_STOP; } break; case GDK_KEY_Return: case GDK_KEY_KP_Enter: case GDK_KEY_ISO_Enter: if (search_in_progress && g_paste_ui_history_select_first (priv->history)) return GDK_EVENT_STOP; break; } return other_entry_has_focus ? GDK_EVENT_STOP : GDK_EVENT_PROPAGATE; } static void on_search (GtkSearchEntry *entry, gpointer user_data) { GPasteUiWindowPrivate *priv = user_data; g_paste_ui_history_search (priv->history, gtk_editable_get_text (GTK_EDITABLE (entry))); } static gboolean focus_search (gpointer user_data) { GPasteUiWindow *self = user_data; const GPasteUiWindowPrivate *priv = _g_paste_ui_window_get_instance_private (self); GtkWindow *win = user_data; GtkWidget *widget = user_data; if (!GTK_IS_WIDGET (widget)) return G_SOURCE_REMOVE; if (!gtk_widget_get_realized (widget)) return G_SOURCE_CONTINUE; gtk_window_set_focus (win, GTK_WIDGET (priv->search_entry)); return G_SOURCE_REMOVE; } static void on_banner_quit (AdwBanner *banner G_GNUC_UNUSED, gpointer user_data) { GPasteUiWindow *self = user_data; g_application_quit (G_APPLICATION (gtk_window_get_application (GTK_WINDOW (self)))); } static void on_switch_history (GPasteClient *client G_GNUC_UNUSED, const gchar *history, gpointer user_data) { GPasteUiWindowPrivate *priv = user_data; g_paste_ui_header_set_subtitle (priv->header, history); } static void on_initial_history_name (GObject *source_object G_GNUC_UNUSED, GAsyncResult *res, gpointer user_data) { GPasteUiWindowPrivate *priv = user_data; g_autofree gchar *name = g_paste_client_get_history_name_finish (priv->client, res, NULL); if (name) g_paste_ui_header_set_subtitle (priv->header, name); } static void g_paste_ui_window_dispose (GObject *object) { GPasteUiWindow *self = G_PASTE_UI_WINDOW (object); GPasteUiWindowPrivate *priv = g_paste_ui_window_get_instance_private (self); g_clear_object (&priv->search_signals); g_clear_object (&priv->client_signals); g_clear_object (&priv->client); g_clear_object (&priv->settings); g_clear_object (&priv->shortcuts); G_OBJECT_CLASS (g_paste_ui_window_parent_class)->dispose (object); } static void g_paste_ui_window_class_init (GPasteUiWindowClass *klass) { G_OBJECT_CLASS (klass)->dispose = g_paste_ui_window_dispose; } static void g_paste_ui_window_init (GPasteUiWindow *self) { GPasteUiWindowPrivate *priv = g_paste_ui_window_get_instance_private (self); GtkWidget *vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); priv->settings = g_paste_settings_new (); priv->content_box = GTK_BOX (vbox); gtk_widget_set_hexpand (vbox, TRUE); gtk_widget_set_vexpand (vbox, TRUE); gtk_widget_set_halign (vbox, GTK_ALIGN_FILL); gtk_widget_set_valign (vbox, GTK_ALIGN_FILL); GtkWidget *banner = adw_banner_new (""); priv->banner = ADW_BANNER (banner); adw_banner_set_button_label (priv->banner, _("Quit")); g_signal_connect_object (banner, "button-clicked", G_CALLBACK (on_banner_quit), self, 0); gtk_box_append (GTK_BOX (vbox), banner); GtkWidget *search_bar = g_paste_ui_search_bar_new (); priv->search_bar = GTK_SEARCH_BAR (search_bar); gtk_box_append (GTK_BOX (vbox), search_bar); gtk_search_bar_set_key_capture_widget (priv->search_bar, GTK_WIDGET (self)); GtkWidget *toolbar_view = adw_toolbar_view_new (); priv->toolbar_view = ADW_TOOLBAR_VIEW (toolbar_view); GtkWidget *toast_overlay = adw_toast_overlay_new (); priv->toast_overlay = ADW_TOAST_OVERLAY (toast_overlay); adw_toast_overlay_set_child (ADW_TOAST_OVERLAY (toast_overlay), vbox); adw_toolbar_view_set_content (ADW_TOOLBAR_VIEW (toolbar_view), toast_overlay); adw_application_window_set_content (ADW_APPLICATION_WINDOW (self), toolbar_view); GtkSearchEntry *entry = priv->search_entry = g_paste_ui_search_bar_get_entry (priv->search_bar); GSignalGroup *search_signals = priv->search_signals = g_signal_group_new (GTK_TYPE_SEARCH_ENTRY); g_signal_group_connect (search_signals, "search-changed", G_CALLBACK (on_search), priv); g_signal_group_set_target (search_signals, entry); priv->client_signals = g_signal_group_new (G_PASTE_TYPE_CLIENT); g_signal_group_connect (priv->client_signals, "switch-history", G_CALLBACK (on_switch_history), priv); GtkEventController *key_controller = gtk_event_controller_key_new (); gtk_event_controller_set_propagation_phase (key_controller, GTK_PHASE_CAPTURE); g_signal_connect_object (key_controller, "key-pressed", G_CALLBACK (on_key_pressed), self, 0); gtk_widget_add_controller (GTK_WIDGET (self), key_controller); g_source_set_name_by_id (g_idle_add (focus_search, self), "[GPaste] focus_search"); } static void on_client_ready (GObject *source_object G_GNUC_UNUSED, GAsyncResult *res, gpointer user_data) { GPasteUiWindowPrivate *priv = g_paste_ui_window_get_instance_private (user_data); GtkWindow *win = GTK_WINDOW (user_data); g_autoptr (GError) error = NULL; g_autoptr (GPasteClient) client = g_paste_client_new_finish (res, &error); if (error) { priv->initialized = TRUE; g_critical ("%s: %s\n", _("Couldn't connect to GPaste daemon"), error->message); adw_banner_set_title (priv->banner, _("Couldn't connect to GPaste daemon")); adw_banner_set_revealed (priv->banner, TRUE); return; } GPasteSettings *settings = priv->settings; GtkWidget *header = g_paste_ui_header_new (win, client); GtkWidget *panel = g_paste_ui_panel_new (client, settings, win, priv->search_entry); GtkWidget *history = g_paste_ui_history_new (client, settings, G_PASTE_UI_PANEL (panel), win); priv->header = ADW_HEADER_BAR (header); priv->history = G_PASTE_UI_HISTORY (history); priv->client = g_object_ref (client); priv->shortcuts = g_object_ref_sink (ADW_DIALOG (g_paste_ui_shortcuts_window_new (settings))); g_autoptr (GSimpleAction) show_shortcuts = g_simple_action_new ("show-help-overlay", NULL); g_signal_connect_object (show_shortcuts, "activate", G_CALLBACK (on_show_help_overlay), user_data, 0); g_action_map_add_action (G_ACTION_MAP (user_data), G_ACTION (show_shortcuts)); gtk_application_set_accels_for_action (GTK_APPLICATION (gtk_window_get_application (win)), "win.show-help-overlay", (const char *[]) { "question", NULL }); adw_toolbar_view_add_top_bar (priv->toolbar_view, header); AdwNavigationPage *sidebar_page = adw_navigation_page_new (panel, _("Histories")); AdwNavigationPage *content_page = adw_navigation_page_new (history, _("History")); GtkWidget *nav_split_view = adw_navigation_split_view_new (); adw_navigation_split_view_set_sidebar (ADW_NAVIGATION_SPLIT_VIEW (nav_split_view), sidebar_page); adw_navigation_split_view_set_content (ADW_NAVIGATION_SPLIT_VIEW (nav_split_view), content_page); adw_navigation_split_view_set_min_sidebar_width (ADW_NAVIGATION_SPLIT_VIEW (nav_split_view), 240); gtk_widget_set_hexpand (nav_split_view, TRUE); gtk_widget_set_vexpand (nav_split_view, TRUE); gtk_widget_set_halign (nav_split_view, GTK_ALIGN_FILL); gtk_widget_set_valign (nav_split_view, GTK_ALIGN_FILL); gtk_box_append (priv->content_box, nav_split_view); g_object_bind_property (g_paste_ui_header_get_search_button (priv->header), "active", priv->search_bar, "search-mode-enabled", G_BINDING_BIDIRECTIONAL); g_signal_group_set_target (priv->client_signals, priv->client); g_paste_client_get_history_name (priv->client, on_initial_history_name, priv); priv->initialized = TRUE; gtk_window_present (win); } /** * g_paste_ui_window_new: * @app: the #GtkApplication * * Create a new instance of #GPasteUiWindow * * Returns: a newly allocated #GPasteUiWindow * free it with g_object_unref */ G_PASTE_VISIBLE GtkWidget * g_paste_ui_window_new (GtkApplication *app) { g_return_val_if_fail (GTK_IS_APPLICATION (app), NULL); GtkWidget *self = g_object_new (G_PASTE_TYPE_UI_WINDOW, "application", app, "resizable", TRUE, "title", PACKAGE_STRING, "icon-name", G_PASTE_ICON_NAME, NULL); gtk_window_set_default_size (GTK_WINDOW (self), 800, 600); gtk_widget_set_size_request (self, 400, 300); g_paste_client_new (on_client_ready, self); return self; } Keruspe-GPaste-724def1/src/ui/gpaste-ui-window.h000066400000000000000000000015361521206431300215110ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #if !defined (__G_PASTE_H_INSIDE__) && !defined (G_PASTE_COMPILATION) #error "Only can be included directly." #endif #pragma once #include #include G_BEGIN_DECLS #define G_PASTE_TYPE_UI_WINDOW (g_paste_ui_window_get_type ()) G_PASTE_FINAL_TYPE (UiWindow, ui_window, UI_WINDOW, AdwApplicationWindow) void g_paste_ui_window_empty_history (GPasteUiWindow *self, const gchar *history); void g_paste_ui_window_search (GPasteUiWindow *self, const gchar *search); void g_paste_ui_window_show_prefs (GPasteUiWindow *self); GtkWidget *g_paste_ui_window_new (GtkApplication *app); G_END_DECLS Keruspe-GPaste-724def1/src/ui/gpaste-ui.c000066400000000000000000000066341521206431300202030ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2010-2026 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause #include #include #include static GPasteUiWindow * get_ui_window (gpointer user_data) { return G_PASTE_UI_WINDOW (gtk_application_get_windows (GTK_APPLICATION (user_data))->data); } static void prefs_activated (GSimpleAction *action G_GNUC_UNUSED, GVariant *parameter G_GNUC_UNUSED, gpointer user_data) { g_paste_ui_window_show_prefs (get_ui_window (user_data)); } static gboolean show_about_dialog (gpointer user_data) { GtkWidget *widget = user_data; if (!GTK_IS_WIDGET (widget)) return G_SOURCE_REMOVE; if (!gtk_widget_get_realized (widget)) return G_SOURCE_CONTINUE; const gchar *authors[] = { "Marc-Antoine Perennou ", NULL }; AdwAboutDialog *dialog = ADW_ABOUT_DIALOG (adw_about_dialog_new ()); adw_about_dialog_set_application_name (dialog, PACKAGE_NAME); adw_about_dialog_set_version (dialog, PACKAGE_VERSION); adw_about_dialog_set_application_icon (dialog, G_PASTE_ICON_NAME); adw_about_dialog_set_license_type (dialog, GTK_LICENSE_BSD); adw_about_dialog_set_developers (dialog, authors); adw_about_dialog_set_copyright (dialog, "Copyright (c) 2010-2026, Marc-Antoine Perennou"); adw_about_dialog_set_comments (dialog, _("Clipboard management system")); adw_about_dialog_set_website (dialog, "http://www.imagination-land.org/tags/GPaste.html"); adw_dialog_present (ADW_DIALOG (dialog), widget); return G_SOURCE_REMOVE; } static void about_activated (GSimpleAction *action G_GNUC_UNUSED, GVariant *parameter G_GNUC_UNUSED, gpointer user_data) { g_source_set_name_by_id (g_idle_add (show_about_dialog, gtk_application_get_windows (GTK_APPLICATION (user_data))->data), "[GPaste] about_dialog"); } static void empty_activated (GSimpleAction *action G_GNUC_UNUSED, GVariant *parameter, gpointer user_data) { g_paste_ui_window_empty_history (get_ui_window (user_data), g_variant_get_string (parameter, NULL)); } static void quit_activated (GSimpleAction *action G_GNUC_UNUSED, GVariant *parameter G_GNUC_UNUSED, gpointer user_data) { g_application_quit (G_APPLICATION (user_data)); } static void search_activated (GSimpleAction *action G_GNUC_UNUSED, GVariant *parameter, gpointer user_data) { g_paste_ui_window_search (get_ui_window (user_data), g_variant_get_string (parameter, NULL)); } gint main (gint argc, gchar *argv[]) { G_PASTE_GTK_INIT_APPLICATION ("Ui"); GActionEntry app_entries[] = { { "about", about_activated, NULL, NULL, NULL, { 0 } }, { "empty", empty_activated, "s", NULL, NULL, { 0 } }, { "prefs", prefs_activated, NULL, NULL, NULL, { 0 } }, { "quit", quit_activated, NULL, NULL, NULL, { 0 } }, { "search", search_activated, "s", NULL, NULL, { 0 } } }; g_action_map_add_action_entries (G_ACTION_MAP (app), app_entries, G_N_ELEMENTS (app_entries), app); G_GNUC_UNUSED GtkWidget *window = g_paste_ui_window_new (app); return g_application_run (gapp, argc, argv); } Keruspe-GPaste-724def1/src/ui/meson.build000066400000000000000000000027111521206431300202730ustar00rootroot00000000000000gpaste_ui_sources = [ 'gpaste-ui-about.c', 'gpaste-ui-delete-item.c', 'gpaste-ui-edit-item.c', 'gpaste-ui-header.c', 'gpaste-ui-history.c', 'gpaste-ui-item-action.c', 'gpaste-ui-item-skeleton.c', 'gpaste-ui-item.c', 'gpaste-ui-new-item.c', 'gpaste-ui-panel-history.c', 'gpaste-ui-panel.c', 'gpaste-ui-reexec.c', 'gpaste-ui-search-bar.c', 'gpaste-ui-search.c', 'gpaste-ui-settings.c', 'gpaste-ui-shortcuts-window.c', 'gpaste-ui-switch.c', 'gpaste-ui-upload-item.c', 'gpaste-ui-window.c', 'gpaste-ui.c', ] gpaste_ui_headers = [ 'gpaste-ui-about.h', 'gpaste-ui-delete-item.h', 'gpaste-ui-edit-item.h', 'gpaste-ui-header.h', 'gpaste-ui-history.h', 'gpaste-ui-item-action.h', 'gpaste-ui-item-skeleton.h', 'gpaste-ui-item.h', 'gpaste-ui-new-item.h', 'gpaste-ui-panel-history.h', 'gpaste-ui-panel.h', 'gpaste-ui-reexec.h', 'gpaste-ui-search-bar.h', 'gpaste-ui-search.h', 'gpaste-ui-settings.h', 'gpaste-ui-shortcuts-window.h', 'gpaste-ui-switch.h', 'gpaste-ui-upload-item.h', 'gpaste-ui-window.h', ] gpaste_ui_headers_dep = declare_dependency( include_directories: include_directories('../libgpaste'), sources: gpaste_ui_headers, ) executable( 'gpaste-ui', sources: gpaste_ui_sources, install: true, dependencies: [ glib_dep, gtk4_dep, pango_dep, libadwaita_dep, libgpaste_internal_dep, libgpaste_gtk4_internal_dep, gpaste_ui_headers_dep ], install_dir: get_option('libexecdir') / 'gpaste', ) Keruspe-GPaste-724def1/tests/000077500000000000000000000000001521206431300160665ustar00rootroot00000000000000Keruspe-GPaste-724def1/tests/gnome-shell-client/000077500000000000000000000000001521206431300215545ustar00rootroot00000000000000Keruspe-GPaste-724def1/tests/gnome-shell-client/meson.build000066400000000000000000000006231521206431300237170ustar00rootroot00000000000000# We're overlinking with libgpaste here, but we need one of it's includes # and since this isn't installed anyway it doesn't matter and is easier for us. gnome_shell_client_test_exe = executable( 'gpaste-gnome-shell-client-test', sources: 'test-gnome-shell-client.c', dependencies: [ glib_dep, gobject_dep, libgpaste_internal_dep ], ) test('test-gnome-shell-client', gnome_shell_client_test_exe) Keruspe-GPaste-724def1/tests/gnome-shell-client/test-gnome-shell-client.c000066400000000000000000000063451521206431300263730ustar00rootroot00000000000000/* * This file is part of GPaste. * * Copyright (c) 2010-2026, Marc-Antoine Perennou */ #include #define EXIT_TEST_SKIP 77 typedef struct { const gchar *accelerator; guint32 action; } Accelerator; static void on_accelerator_activated (GPasteGnomeShellClient *client G_GNUC_UNUSED, guint64 action, gpointer user_data) { Accelerator *accels = user_data; g_print ("Recieved action %lu, was ", action); for (guint64 i = 0; i < 3; ++i) { if (accels[i].action == action) { g_print ("%s\n", accels[i].accelerator); return; } } g_print ("not a known accelerator\n"); } static gboolean kill_loop (gpointer user_data) { g_main_loop_quit (user_data); return G_SOURCE_REMOVE; } gint main (gint argc, gchar *argv[]) { if (argc != 2 || !g_paste_str_equal (argv[1], "--dont-skip")) return EXIT_TEST_SKIP; g_setenv ("G_MESSAGES_DEBUG", "all", TRUE); g_autoptr (GError) error = NULL; g_autoptr (GPasteGnomeShellClient) client = g_paste_gnome_shell_client_new_sync (&error); if (!client) { g_error ("Couldn't connect to gnome-shell: %s", error->message); return EXIT_FAILURE; } Accelerator accels[3] = { { "D", 0 }, { "F", 0 }, { "G", 0 } }; GPasteGnomeShellAccelerator gs_accels[3]; GPasteGnomeShellAccelerator gs_accel = G_PASTE_GNOME_SHELL_ACCELERATOR (accels[2].accelerator); for (guint64 i = 0; i < 2; ++i) gs_accels[i] = G_PASTE_GNOME_SHELL_ACCELERATOR (accels[i].accelerator); gs_accels[2].accelerator = NULL; guint64 signal_id = g_signal_connect (client, "accelerator-activated", G_CALLBACK (on_accelerator_activated), accels); g_print ("Now testing KeyGrabber\n"); guint32 *actions = g_paste_gnome_shell_client_grab_accelerators_sync (client, gs_accels, &error); if (error) { g_error ("Couldn't grab accelerators: %s", error->message); return EXIT_FAILURE; } for (guint64 i = 0; i < 2; ++i) accels[i].action = actions[i]; g_free (actions); accels[2].action = g_paste_gnome_shell_client_grab_accelerator_sync (client, gs_accel, &error); if (error) { g_error ("Couldn't grab accelerator: %s", error->message); return EXIT_FAILURE; } g_print ("Now should recognize D, F and G for 10 secondes.\n"); g_autoptr (GMainLoop) loop = g_main_loop_new (NULL, FALSE); g_source_set_name_by_id (g_timeout_add_seconds (10, kill_loop, loop), "[GPaste] test loop"); g_main_loop_run (loop); for (guint64 i = 0; i < 2; ++i) { g_paste_gnome_shell_client_ungrab_accelerator_sync (client, accels[i].action, &error); accels[i].action = 0; if (error) { g_error ("Couldn't ungrab accelerator: %s", error->message); return EXIT_FAILURE; } } g_print ("Now should no longer recognize keybindings for 3 secondes.\n"); g_usleep (3000000); g_signal_handler_disconnect (client, signal_id); return EXIT_SUCCESS; } Keruspe-GPaste-724def1/tests/meson.build000066400000000000000000000000341521206431300202250ustar00rootroot00000000000000subdir('gnome-shell-client')Keruspe-GPaste-724def1/tools/000077500000000000000000000000001521206431300160645ustar00rootroot00000000000000Keruspe-GPaste-724def1/tools/check-includes.sh000077500000000000000000000030501521206431300213020ustar00rootroot00000000000000#!/usr/bin/env zsh typeset -A includes get_file_name() { local file="${1}" if [[ "${file}" == *.h ]]; then echo "$(basename ${file})" else echo "${file}" fi } parse_includes() { local file name for file in **/*.[ch]; do name=$(get_file_name "${file}") includes[${name}]="$(grep '#include' "${file}" | awk '{print $NF}' | sed -e 's///' -e 's/"//g')" done } get_includes() { local file="${1}" local name name=$(get_file_name "${file}") echo ${includes[${name}]} } has_include() { local file="${1}" local include="${2}" local output="${3}" local i for i in $(get_includes "${file}"); do [[ "${i}" == "${include}" ]] && echo "${include}: ${output} => ${include}" && return 0 has_include "${i}" "${include}" "${output} => ${i}" && return 0 done return 1 } check_include() { local file="${1}" local include="${2}" local i for i in $(get_includes "${file}"); do [[ "${include}" == "${i}" ]] && continue has_include "${i}" "${include}" "${file} => ${i}" done } check_includes() { local file i for file in **/*.[ch]; do [[ "${file}" == "src/libgpaste/gpaste.h" ]] && continue [[ "${file}" == "src/libgpaste/gpaste-gtk4.h" ]] && continue for i in $(get_includes "${file}"); do check_include "${file}" "${i}" done done } main() { pushd "$(dirname "${1}")/.." &>/dev/null parse_includes check_includes popd &>/dev/null } main "${0}" Keruspe-GPaste-724def1/tools/eslint.config.js000066400000000000000000000026431521206431300211710ustar00rootroot00000000000000// SPDX-FileCopyrightText: 2025 Marc-Antoine Perennou // SPDX-License-Identifier: BSD-2-Clause import {defineConfig} from '@eslint/config-helpers'; import gnome from 'eslint-config-gnome'; export default defineConfig([ gnome.configs.recommended, gnome.configs.jsdoc, { ignores: [ 'node_modules', 'build', ], }, { rules: { camelcase: ['error', { properties: 'never', }], 'consistent-return': 'error', 'eqeqeq': ['error', 'smart'], 'key-spacing': ['error', { mode: 'minimum', beforeColon: false, afterColon: true, }], 'prefer-arrow-callback': 'error', 'prefer-const': ['error', { destructuring: 'all', }], 'jsdoc/require-param-description': 'off', 'jsdoc/require-jsdoc': ['error', { exemptEmptyFunctions: true, publicOnly: { esm: true, }, }], }, }, { files: ['src/gnome-shell/**'], languageOptions: { globals: { global: 'readonly', _: 'readonly', C_: 'readonly', N_: 'readonly', ngettext: 'readonly', }, }, }, ]); Keruspe-GPaste-724def1/tools/package-lock.json000066400000000000000000001306131521206431300213040ustar00rootroot00000000000000{ "name": "gpaste-dev-scripts", "version": "1.0.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "gpaste-dev-scripts", "version": "1.0.0", "license": "BSD-2-Clause", "dependencies": { "ci-run-eslint": "git+https://gitlab.gnome.org/World/javascript/ci-run-eslint.git#f94b653606476d151439793ab8a8a93aa4a146de", "eslint-config-gnome": "git+https://gitlab.gnome.org/World/javascript/eslint-config-gnome.git#c479d059e8d9ea99c3b53c2ea43abf7fdb05eb51", "eslint-formatter-junit": "^9.0.1" } }, "node_modules/@es-joy/jsdoccomment": { "version": "0.46.0", "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.46.0.tgz", "integrity": "sha512-C3Axuq1xd/9VqFZpW4YAzOx5O9q/LP46uIQy/iNDpHG3fmPa6TBtvfglMCs3RBiBxAIi0Go97r8+jvTt55XMyQ==", "license": "MIT", "dependencies": { "comment-parser": "1.4.1", "esquery": "^1.6.0", "jsdoc-type-pratt-parser": "~4.0.0" }, "engines": { "node": ">=16" } }, "node_modules/@eslint-community/eslint-utils": { "version": "4.9.1", "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz", "integrity": "sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==", "license": "MIT", "dependencies": { "eslint-visitor-keys": "^3.4.3" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { "url": "https://opencollective.com/eslint" }, "peerDependencies": { "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { "version": "3.4.3", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "license": "Apache-2.0", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { "url": "https://opencollective.com/eslint" } }, "node_modules/@eslint-community/regexpp": { "version": "4.12.2", "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz", "integrity": "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==", "license": "MIT", "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, "node_modules/@eslint/config-array": { "version": "0.21.2", "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.2.tgz", "integrity": "sha512-nJl2KGTlrf9GjLimgIru+V/mzgSK0ABCDQRvxw5BjURL7WfH5uoWmizbH7QB6MmnMBd8cIC9uceWnezL1VZWWw==", "license": "Apache-2.0", "dependencies": { "@eslint/object-schema": "^2.1.7", "debug": "^4.3.1", "minimatch": "^3.1.5" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, "node_modules/@eslint/config-helpers": { "version": "0.4.2", "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.4.2.tgz", "integrity": "sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==", "license": "Apache-2.0", "dependencies": { "@eslint/core": "^0.17.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, "node_modules/@eslint/core": { "version": "0.17.0", "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.17.0.tgz", "integrity": "sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==", "license": "Apache-2.0", "dependencies": { "@types/json-schema": "^7.0.15" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, "node_modules/@eslint/eslintrc": { "version": "3.3.5", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.5.tgz", "integrity": "sha512-4IlJx0X0qftVsN5E+/vGujTRIFtwuLbNsVUe7TO6zYPDR1O6nFwvwhIKEKSrl6dZchmYBITazxKoUYOjdtjlRg==", "license": "MIT", "dependencies": { "ajv": "^6.14.0", "debug": "^4.3.2", "espree": "^10.0.1", "globals": "^14.0.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.1", "minimatch": "^3.1.5", "strip-json-comments": "^3.1.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" } }, "node_modules/@eslint/js": { "version": "9.39.4", "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.4.tgz", "integrity": "sha512-nE7DEIchvtiFTwBw4Lfbu59PG+kCofhjsKaCWzxTpt4lfRjRMqG6uMBzKXuEcyXhOHoUp9riAm7/aWYGhXZ9cw==", "license": "MIT", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://eslint.org/donate" } }, "node_modules/@eslint/object-schema": { "version": "2.1.7", "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.7.tgz", "integrity": "sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==", "license": "Apache-2.0", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, "node_modules/@eslint/plugin-kit": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.4.1.tgz", "integrity": "sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==", "license": "Apache-2.0", "dependencies": { "@eslint/core": "^0.17.0", "levn": "^0.4.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, "node_modules/@humanfs/core": { "version": "0.19.2", "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.2.tgz", "integrity": "sha512-UhXNm+CFMWcbChXywFwkmhqjs3PRCmcSa/hfBgLIb7oQ5HNb1wS0icWsGtSAUNgefHeI+eBrA8I1fxmbHsGdvA==", "license": "Apache-2.0", "dependencies": { "@humanfs/types": "^0.15.0" }, "engines": { "node": ">=18.18.0" } }, "node_modules/@humanfs/node": { "version": "0.16.8", "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.8.tgz", "integrity": "sha512-gE1eQNZ3R++kTzFUpdGlpmy8kDZD/MLyHqDwqjkVQI0JMdI1D51sy1H958PNXYkM2rAac7e5/CnIKZrHtPh3BQ==", "license": "Apache-2.0", "dependencies": { "@humanfs/core": "^0.19.2", "@humanfs/types": "^0.15.0", "@humanwhocodes/retry": "^0.4.0" }, "engines": { "node": ">=18.18.0" } }, "node_modules/@humanfs/types": { "version": "0.15.0", "resolved": "https://registry.npmjs.org/@humanfs/types/-/types-0.15.0.tgz", "integrity": "sha512-ZZ1w0aoQkwuUuC7Yf+7sdeaNfqQiiLcSRbfI08oAxqLtpXQr9AIVX7Ay7HLDuiLYAaFPu8oBYNq/QIi9URHJ3Q==", "license": "Apache-2.0", "engines": { "node": ">=18.18.0" } }, "node_modules/@humanwhocodes/module-importer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", "license": "Apache-2.0", "engines": { "node": ">=12.22" }, "funding": { "type": "github", "url": "https://github.com/sponsors/nzakas" } }, "node_modules/@humanwhocodes/retry": { "version": "0.4.3", "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz", "integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==", "license": "Apache-2.0", "engines": { "node": ">=18.18" }, "funding": { "type": "github", "url": "https://github.com/sponsors/nzakas" } }, "node_modules/@pkgr/core": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.2.tgz", "integrity": "sha512-fdDH1LSGfZdTH2sxdpVMw31BanV28K/Gry0cVFxaNP77neJSkd82mM8ErPNYs9e+0O7SdHBLTDzDgwUuy18RnQ==", "license": "MIT", "engines": { "node": "^12.20.0 || ^14.18.0 || >=16.0.0" }, "funding": { "url": "https://opencollective.com/unts" } }, "node_modules/@types/estree": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.9.tgz", "integrity": "sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==", "license": "MIT" }, "node_modules/@types/json-schema": { "version": "7.0.15", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", "license": "MIT" }, "node_modules/acorn": { "version": "8.16.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz", "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==", "license": "MIT", "bin": { "acorn": "bin/acorn" }, "engines": { "node": ">=0.4.0" } }, "node_modules/acorn-jsx": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "license": "MIT", "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, "node_modules/ajv": { "version": "6.15.0", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.15.0.tgz", "integrity": "sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==", "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" }, "funding": { "type": "github", "url": "https://github.com/sponsors/epoberezkin" } }, "node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/are-docs-informative": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/are-docs-informative/-/are-docs-informative-0.0.2.tgz", "integrity": "sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==", "license": "MIT", "engines": { "node": ">=14" } }, "node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "license": "Python-2.0" }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "license": "MIT" }, "node_modules/brace-expansion": { "version": "1.1.15", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.15.tgz", "integrity": "sha512-EwOCDEex4quD37XhqM3omwtMoJjr//isUZz1JopUNWms+4Z2ViyM/k1YIRePpoVNnQhENnxtFjLaxNHrT7xIUg==", "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "node_modules/callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" }, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/chalk/chalk?sponsor=1" } }, "node_modules/ci-run-eslint": { "version": "1.0.0", "resolved": "git+https://gitlab.gnome.org/World/javascript/ci-run-eslint.git#f94b653606476d151439793ab8a8a93aa4a146de", "license": "MIT OR LGPL-3.0-or-later", "dependencies": { "commander": "^14.0.0", "eslint": "^9.38.0" }, "bin": { "ci-run-eslint": "run-eslint.js" } }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, "engines": { "node": ">=7.0.0" } }, "node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "license": "MIT" }, "node_modules/commander": { "version": "14.0.3", "resolved": "https://registry.npmjs.org/commander/-/commander-14.0.3.tgz", "integrity": "sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==", "license": "MIT", "engines": { "node": ">=20" } }, "node_modules/comment-parser": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.4.1.tgz", "integrity": "sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==", "license": "MIT", "engines": { "node": ">= 12.0.0" } }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", "license": "MIT" }, "node_modules/cross-spawn": { "version": "7.0.6", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", "license": "MIT", "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", "which": "^2.0.1" }, "engines": { "node": ">= 8" } }, "node_modules/debug": { "version": "4.4.3", "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", "license": "MIT", "dependencies": { "ms": "^2.1.3" }, "engines": { "node": ">=6.0" }, "peerDependenciesMeta": { "supports-color": { "optional": true } } }, "node_modules/deep-is": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "license": "MIT" }, "node_modules/es-module-lexer": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz", "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==", "license": "MIT" }, "node_modules/escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "license": "MIT", "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/eslint": { "version": "9.39.4", "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.4.tgz", "integrity": "sha512-XoMjdBOwe/esVgEvLmNsD3IRHkm7fbKIUGvrleloJXUZgDHig2IPWNniv+GwjyJXzuNqVjlr5+4yVUZjycJwfQ==", "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.1", "@eslint/config-array": "^0.21.2", "@eslint/config-helpers": "^0.4.2", "@eslint/core": "^0.17.0", "@eslint/eslintrc": "^3.3.5", "@eslint/js": "9.39.4", "@eslint/plugin-kit": "^0.4.1", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/retry": "^0.4.2", "@types/estree": "^1.0.6", "ajv": "^6.14.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.6", "debug": "^4.3.2", "escape-string-regexp": "^4.0.0", "eslint-scope": "^8.4.0", "eslint-visitor-keys": "^4.2.1", "espree": "^10.4.0", "esquery": "^1.5.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^8.0.0", "find-up": "^5.0.0", "glob-parent": "^6.0.2", "ignore": "^5.2.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "json-stable-stringify-without-jsonify": "^1.0.1", "lodash.merge": "^4.6.2", "minimatch": "^3.1.5", "natural-compare": "^1.4.0", "optionator": "^0.9.3" }, "bin": { "eslint": "bin/eslint.js" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://eslint.org/donate" }, "peerDependencies": { "jiti": "*" }, "peerDependenciesMeta": { "jiti": { "optional": true } } }, "node_modules/eslint-config-gnome": { "version": "1.0.0", "resolved": "git+https://gitlab.gnome.org/World/javascript/eslint-config-gnome.git#c479d059e8d9ea99c3b53c2ea43abf7fdb05eb51", "license": "MIT OR LGPL-2.1-or-later", "dependencies": { "@eslint/config-helpers": "^0.2.2", "@eslint/js": "^9.28.0", "eslint-plugin-jsdoc": "^48.11.0" } }, "node_modules/eslint-config-gnome/node_modules/@eslint/config-helpers": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.2.3.tgz", "integrity": "sha512-u180qk2Um1le4yf0ruXH3PYFeEZeYC3p/4wCTKrr2U1CmGdzGi3KtY0nuPDH48UJxlKCC5RDzbcbh4X0XlqgHg==", "license": "Apache-2.0", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, "node_modules/eslint-formatter-junit": { "version": "9.0.1", "resolved": "https://registry.npmjs.org/eslint-formatter-junit/-/eslint-formatter-junit-9.0.1.tgz", "integrity": "sha512-0MrNGXg2C46M/ImjWuClHSGKHBR0eSBPfYHqPgYmB0utq7Jog3YyLBmbshNvo/Ba/Al3zClPWdd6/jnxk2F+9Q==", "license": "MIT", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, "node_modules/eslint-plugin-jsdoc": { "version": "48.11.0", "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-48.11.0.tgz", "integrity": "sha512-d12JHJDPNo7IFwTOAItCeJY1hcqoIxE0lHA8infQByLilQ9xkqrRa6laWCnsuCrf+8rUnvxXY1XuTbibRBNylA==", "license": "BSD-3-Clause", "dependencies": { "@es-joy/jsdoccomment": "~0.46.0", "are-docs-informative": "^0.0.2", "comment-parser": "1.4.1", "debug": "^4.3.5", "escape-string-regexp": "^4.0.0", "espree": "^10.1.0", "esquery": "^1.6.0", "parse-imports": "^2.1.1", "semver": "^7.6.3", "spdx-expression-parse": "^4.0.0", "synckit": "^0.9.1" }, "engines": { "node": ">=18" }, "peerDependencies": { "eslint": "^7.0.0 || ^8.0.0 || ^9.0.0" } }, "node_modules/eslint-scope": { "version": "8.4.0", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz", "integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==", "license": "BSD-2-Clause", "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" } }, "node_modules/eslint-visitor-keys": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", "license": "Apache-2.0", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" } }, "node_modules/espree": { "version": "10.4.0", "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz", "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==", "license": "BSD-2-Clause", "dependencies": { "acorn": "^8.15.0", "acorn-jsx": "^5.3.2", "eslint-visitor-keys": "^4.2.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" } }, "node_modules/esquery": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.7.0.tgz", "integrity": "sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==", "license": "BSD-3-Clause", "dependencies": { "estraverse": "^5.1.0" }, "engines": { "node": ">=0.10" } }, "node_modules/esrecurse": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "license": "BSD-2-Clause", "dependencies": { "estraverse": "^5.2.0" }, "engines": { "node": ">=4.0" } }, "node_modules/estraverse": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } }, "node_modules/esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "license": "BSD-2-Clause", "engines": { "node": ">=0.10.0" } }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "license": "MIT" }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", "license": "MIT" }, "node_modules/fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "license": "MIT" }, "node_modules/file-entry-cache": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", "license": "MIT", "dependencies": { "flat-cache": "^4.0.0" }, "engines": { "node": ">=16.0.0" } }, "node_modules/find-up": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "license": "MIT", "dependencies": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" }, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/flat-cache": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", "license": "MIT", "dependencies": { "flatted": "^3.2.9", "keyv": "^4.5.4" }, "engines": { "node": ">=16" } }, "node_modules/flatted": { "version": "3.4.2", "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.2.tgz", "integrity": "sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==", "license": "ISC" }, "node_modules/glob-parent": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "license": "ISC", "dependencies": { "is-glob": "^4.0.3" }, "engines": { "node": ">=10.13.0" } }, "node_modules/globals": { "version": "14.0.0", "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", "license": "MIT", "engines": { "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/ignore": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", "license": "MIT", "engines": { "node": ">= 4" } }, "node_modules/import-fresh": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", "license": "MIT", "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" }, "engines": { "node": ">=6" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "license": "MIT", "engines": { "node": ">=0.8.19" } }, "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/is-glob": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" }, "engines": { "node": ">=0.10.0" } }, "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", "license": "ISC" }, "node_modules/js-yaml": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.2.0.tgz", "integrity": "sha512-ePWsvanv0DWuDRsW8dnt+R4jQ31SCRCQ7hhNcPXZPsoBZiemuZNYGf7adZdqX2D86j6rvKp3RpCxVTSb8WQlOw==", "funding": [ { "type": "github", "url": "https://github.com/sponsors/puzrin" }, { "type": "github", "url": "https://github.com/sponsors/nodeca" } ], "license": "MIT", "dependencies": { "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "node_modules/jsdoc-type-pratt-parser": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-4.0.0.tgz", "integrity": "sha512-YtOli5Cmzy3q4dP26GraSOeAhqecewG04hoO8DY56CH4KJ9Fvv5qKWUCCo3HZob7esJQHCv6/+bnTy72xZZaVQ==", "license": "MIT", "engines": { "node": ">=12.0.0" } }, "node_modules/json-buffer": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", "license": "MIT" }, "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "license": "MIT" }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", "license": "MIT" }, "node_modules/keyv": { "version": "4.5.4", "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", "license": "MIT", "dependencies": { "json-buffer": "3.0.1" } }, "node_modules/levn": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" }, "engines": { "node": ">= 0.8.0" } }, "node_modules/locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "license": "MIT", "dependencies": { "p-locate": "^5.0.0" }, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "license": "MIT" }, "node_modules/minimatch": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, "engines": { "node": "*" } }, "node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "license": "MIT" }, "node_modules/natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "license": "MIT" }, "node_modules/optionator": { "version": "0.9.4", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", "license": "MIT", "dependencies": { "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", "type-check": "^0.4.0", "word-wrap": "^1.2.5" }, "engines": { "node": ">= 0.8.0" } }, "node_modules/p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "license": "MIT", "dependencies": { "yocto-queue": "^0.1.0" }, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/p-locate": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "license": "MIT", "dependencies": { "p-limit": "^3.0.2" }, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "license": "MIT", "dependencies": { "callsites": "^3.0.0" }, "engines": { "node": ">=6" } }, "node_modules/parse-imports": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/parse-imports/-/parse-imports-2.2.1.tgz", "integrity": "sha512-OL/zLggRp8mFhKL0rNORUTR4yBYujK/uU+xZL+/0Rgm2QE4nLO9v8PzEweSJEbMGKmDRjJE4R3IMJlL2di4JeQ==", "license": "Apache-2.0 AND MIT", "dependencies": { "es-module-lexer": "^1.5.3", "slashes": "^3.0.12" }, "engines": { "node": ">= 18" } }, "node_modules/path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "license": "MIT", "engines": { "node": ">= 0.8.0" } }, "node_modules/punycode": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/semver": { "version": "7.8.2", "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.2.tgz", "integrity": "sha512-c8jsqUZm3omBOI66G90z1Dyw5z622G8oLG+omfsHBJf3CWQTlOcwOjvOG6wtiNfW6anKm/eA39LMwMtMez2TiQ==", "license": "ISC", "bin": { "semver": "bin/semver.js" }, "engines": { "node": ">=10" } }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "license": "MIT", "dependencies": { "shebang-regex": "^3.0.0" }, "engines": { "node": ">=8" } }, "node_modules/shebang-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/slashes": { "version": "3.0.12", "resolved": "https://registry.npmjs.org/slashes/-/slashes-3.0.12.tgz", "integrity": "sha512-Q9VME8WyGkc7pJf6QEkj3wE+2CnvZMI+XJhwdTPR8Z/kWQRXi7boAWLDibRPyHRTUTPx5FaU7MsyrjI3yLB4HA==", "license": "ISC" }, "node_modules/spdx-exceptions": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", "license": "CC-BY-3.0" }, "node_modules/spdx-expression-parse": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-4.0.0.tgz", "integrity": "sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ==", "license": "MIT", "dependencies": { "spdx-exceptions": "^2.1.0", "spdx-license-ids": "^3.0.0" } }, "node_modules/spdx-license-ids": { "version": "3.0.23", "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.23.tgz", "integrity": "sha512-CWLcCCH7VLu13TgOH+r8p1O/Znwhqv/dbb6lqWy67G+pT1kHmeD/+V36AVb/vq8QMIQwVShJ6Ssl5FPh0fuSdw==", "license": "CC0-1.0" }, "node_modules/strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "license": "MIT", "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, "engines": { "node": ">=8" } }, "node_modules/synckit": { "version": "0.9.3", "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.9.3.tgz", "integrity": "sha512-JJoOEKTfL1urb1mDoEblhD9NhEbWmq9jHEMEnxoC4ujUaZ4itA8vKgwkFAyNClgxplLi9tsUKX+EduK0p/l7sg==", "license": "MIT", "dependencies": { "@pkgr/core": "^0.1.0", "tslib": "^2.6.2" }, "engines": { "node": "^14.18.0 || >=16.0.0" }, "funding": { "url": "https://opencollective.com/unts" } }, "node_modules/tslib": { "version": "2.8.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", "license": "0BSD" }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1" }, "engines": { "node": ">= 0.8.0" } }, "node_modules/uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "license": "BSD-2-Clause", "dependencies": { "punycode": "^2.1.0" } }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, "bin": { "node-which": "bin/node-which" }, "engines": { "node": ">= 8" } }, "node_modules/word-wrap": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "license": "MIT", "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } } } } Keruspe-GPaste-724def1/tools/package.json000066400000000000000000000010241521206431300203470ustar00rootroot00000000000000{ "name": "gpaste-dev-scripts", "version": "1.0.0", "license": "BSD-2-Clause", "type": "module", "private": true, "scripts": { "lint": "cd .. && ci-run-eslint src/gnome-shell" }, "dependencies": { "ci-run-eslint": "git+https://gitlab.gnome.org/World/javascript/ci-run-eslint.git#f94b653606476d151439793ab8a8a93aa4a146de", "eslint-config-gnome": "git+https://gitlab.gnome.org/World/javascript/eslint-config-gnome.git#c479d059e8d9ea99c3b53c2ea43abf7fdb05eb51", "eslint-formatter-junit": "^9.0.1" } } Keruspe-GPaste-724def1/tools/run-eslint.sh000077500000000000000000000006621521206431300205270ustar00rootroot00000000000000#!/bin/sh # SPDX-FileCopyrightText: 2020 Philip Chimento # SPDX-FileCopyrightText: 2025 Florian Müllner # SPDX-License-Identifier: MIT OR LGPL-3.0-or-later srcdir=$(dirname -- "$0") cd $srcdir [ ! -d node_modules ] && npm clean-install # Link in project root to make imports work properly [ ! -e ../node_modules ] && ln -s $srcdir/node_modules ../node_modules npm run lint -- "$@"