Version in base suite: 48.4-1~deb13u1
Base version: gnome-shell_48.4-1~deb13u1
Target version: gnome-shell_48.7-0+deb13u1
Base file: /srv/ftp-master.debian.org/ftp/pool/main/g/gnome-shell/gnome-shell_48.4-1~deb13u1.dsc
Target file: /srv/ftp-master.debian.org/policy/pool/main/g/gnome-shell/gnome-shell_48.7-0+deb13u1.dsc
.gitlab-ci.yml | 22
NEWS | 68
README.md | 2
data/dbus-interfaces/org.gnome.Shell.PortalHelper.xml | 2
data/gnome-shell-osk-layouts.gresource.xml | 2
data/osk-layouts/at-extended.json | 1038 ++
data/osk-layouts/de-extended.json | 1038 ++
data/osk-layouts/in+bolnagri.json | 39
debian/changelog | 147
debian/patches/build-Define-test-dependencies.patch | 127
debian/patches/debian/Revert-tests-Fail-on-warnings-too.patch | 4
debian/patches/extensions-app-Add-test-dependency-on-generated-desktop-f.patch | 48
debian/patches/series | 12
debian/patches/st-theme-node-Forget-properties-cache-on-stylesheet-chang.patch | 89
debian/patches/tray-icons/build-Add-explicit-dependency-on-Xfixes.patch | 38
debian/patches/tray-icons/shell-tray-Ensure-that-only-a-child-can-be-added.patch | 22
debian/patches/tray-icons/shell-tray-icon-Trigger-a-relayout-when-the-underneath-xe.patch | 83
debian/patches/tray-icons/shell-tray-icon-Use-available-space-when-that-s-defined.patch | 111
debian/patches/tray-icons/tray-Zero-initialize-the-event-structures-on-initializati.patch | 55
debian/patches/tray-icons/tray-na-tray-manager-Remove-outdated-comment-and-return-v.patch | 33
debian/patches/tray-icons/tray-na-xembed-Destroy-socket-window-when-ending-the-embe.patch | 111
debian/patches/tray-icons/tray-na-xembed-Use-XShape-to-remove-input-on-socket-windo.patch | 90
debian/patches/tray-icons/tray-na-xembed-Use-proper-indentation-style-header.patch | 20
debian/salsa-ci.yml | 4
debian/tests/build-and-test | 19
debian/tests/control | 12
debian/tests/shell-tests | 60
js/gdm/authList.js | 3
js/gdm/authPrompt.js | 45
js/gdm/loginDialog.js | 13
js/gdm/util.js | 7
js/misc/errorUtils.js | 25
js/misc/ibusManager.js | 15
js/misc/inputMethod.js | 5
js/misc/keyboardManager.js | 14
js/misc/loginManager.js | 34
js/misc/parentalControlsManager.js | 2
js/misc/systemActions.js | 7
js/misc/timeLimitsManager.js | 5
js/portalHelper/main.js | 60
js/ui/components/networkAgent.js | 7
js/ui/dash.js | 16
js/ui/dnd.js | 2
js/ui/extensionSystem.js | 20
js/ui/ibusCandidatePopup.js | 10
js/ui/keyboard.js | 10
js/ui/layout.js | 2
js/ui/main.js | 9
js/ui/messageTray.js | 3
js/ui/notificationDaemon.js | 13
js/ui/overviewControls.js | 34
js/ui/panel.js | 2
js/ui/panelMenu.js | 2
js/ui/popupMenu.js | 7
js/ui/remoteSearch.js | 3
js/ui/screenShield.js | 7
js/ui/screenshot.js | 3
js/ui/search.js | 20
js/ui/status/dwellClick.js | 3
js/ui/status/network.js | 27
js/ui/swipeTracker.js | 3
js/ui/unlockDialog.js | 12
js/ui/windowManager.js | 6
js/ui/workspaceThumbnail.js | 42
meson.build | 6
po/de.po | 661 -
po/fi.po | 967 -
po/ro.po | 338
po/th.po | 428
po/ug.po | 4976 ++++++----
po/zh_TW.po | 294
src/meson.build | 1
src/shell-tray-icon.c | 9
src/st/st-entry.c | 6
src/st/st-focus-manager.c | 2
src/st/st-private.c | 2
src/st/st-spinner-content.c | 2
src/st/st-theme-context.c | 21
src/st/st-theme-node-private.h | 2
src/st/st-theme-node.c | 3
src/st/st-widget.c | 52
src/tray/meson.build | 2
src/tray/na-tray-child.c | 6
src/tray/na-tray-manager.c | 5
src/tray/na-xembed.c | 109
src/tray/na-xembed.h | 7
subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in | 3
subprojects/extensions-app/meson.build | 2
subprojects/extensions-app/subprojects/shew/meson.build | 2
subprojects/extensions-tool/meson.build | 2
subprojects/shew/meson.build | 2
tests/meson.build | 1
tests/unit/errorUtils.js | 49
93 files changed, 7868 insertions(+), 3886 deletions(-)
diff: /srv/release.debian.org/tmp/Cr7141qQAd/gnome-shell-48.4/subprojects/gvc/.gitlab-ci/subprojects/gvc: recursive directory loop
diff -Nru gnome-shell-48.4/.gitlab-ci.yml gnome-shell-48.7/.gitlab-ci.yml
--- gnome-shell-48.4/.gitlab-ci.yml 2025-08-03 10:53:34.000000000 +0000
+++ gnome-shell-48.7/.gitlab-ci.yml 2025-11-24 14:16:08.000000000 +0000
@@ -8,7 +8,7 @@
ref: '057b052e682d8e5a20c1eb2dd60d5b87d2b56856'
- project: 'Infrastructure/freedesktop-ci-templates'
file: 'templates/ci-fairy.yml'
- ref: 'bc70242ffb8402243e934659ecc1a2d1c89eca2b'
+ ref: 'aec7a6ce7bb38902c70641526f6611e27141784a'
- component: "gitlab.gnome.org/GNOME/citemplates/release-service@25.5"
inputs:
job-stage: deploy
@@ -90,26 +90,6 @@
else
echo "Not a merge request" ;
fi
- rules:
- - !reference [.pipeline-guard, rules]
- artifacts:
- expire_in: 1 week
- reports:
- junit: $JUNIT_REPORT
-
-check-merge-request:
- extends:
- - .fdo.ci-fairy
- stage: pre-review
- variables:
- JUNIT_REPORT: check-merge-request-report.xml
- script:
- - if [[ x"$CI_MERGE_REQUEST_TARGET_BRANCH_NAME" != "x" ]] ;
- then
- ci-fairy check-merge-request --require-allow-collaboration --junit-xml=$JUNIT_REPORT ;
- else
- echo "Not a merge request" ;
- fi
rules:
- !reference [.pipeline-guard, rules]
artifacts:
diff -Nru gnome-shell-48.4/NEWS gnome-shell-48.7/NEWS
--- gnome-shell-48.4/NEWS 2025-08-03 10:53:34.000000000 +0000
+++ gnome-shell-48.7/NEWS 2025-11-24 14:16:08.000000000 +0000
@@ -1,3 +1,71 @@
+48.7
+====
+* Fix wrong network icon on connectivity loss [Antoine; !3910]
+* Sort session list on login screen by display name [Balló; !3920]
+* Add extended OSK layouts for German and Austrian [Leonidas; !3923]
+* Fix leaving VPN auth helper zombie processes [Michael; !3926]
+* Fix freeze on modifier-only layout switch shortcut [Sebastian; !3939]
+* Fix glitch in list search results [Florian; !3951]
+* Fix swipe gestures behaving erroneously in RTL locales [Florian; !3967]
+* Fix misplaced separator in dash after unpinning running app [Raghuveer; !1973]
+* Fixed crash [Sebastian; !3933]
+* Misc. bug fixes and cleanups [Sebastian, Leonidas, Florian, Jonas,
+ ClarityStorm, Alessandro, Marco, Adrian, Carlos; !3922, !3925, !3931, !3927,
+ !3932, !3924, !3937, !3940, !3942, !3946, !3943, !3950, !3708, !3917, !3971]
+
+Contributors:
+ Leonidas Adaktylos, Alessandro Bono, Michael Catanzaro, ClarityStorm,
+ Carlos Garnacho, Balló György, Raghuveer Kasaraneni, Sebastian Keller,
+ Antoine Lassagne, Florian Müllner, Marco Trevisan (Treviño), Adrian Vovk,
+ Jonas Ådahl
+
+Translators:
+ Antonio Marin [ro]
+
+48.6
+====
+* Fix key focus on choice list on login screen [Marco; !3849]
+* Fix animation glitch when cancelling overview search [Noam; !3888]
+* Also send activation token for notifications without app [Marco; !3891]
+* Update keyboard indicator on modifier-only layout switches [Carlos; !3895]
+* Improve accessibility of screenshot UI [Lukáš; !3908]
+* Improve Hindi bolnagri input with on-screen keyboard [Mike; !3911]
+* Do not expire notifications that are about to show [Marco; !3905]
+* Misc. bug fixes and cleanups [SimonMaracine, Daniel, Marco; !3894, !3892,
+ !3907, !3904]
+
+Contributors:
+ Mike FABIAN, Carlos Garnacho, Noam Raz, SimonMaracine,
+ Marco Trevisan (Treviño), Lukáš Tyrychtr, Daniel van Vugt
+
+Translators:
+ Abduqadir Abliz [ug]
+
+48.5
+====
+* Fix connecting to WPA(2) Enterprise networks [Mitchell; !3834]
+* Improve order in which extensions are enabled/disabled [Kyrill; !3835]
+* Account for scaling when setting cursor location from ibus [Takao; !3729]
+* Do not reset the unlock prompt on every tap [Marco; !3852]
+* Improve legacy tray icon support [Marco; !3818]
+* Fix misplaced background menu [Jonas; !3863]
+* Fix layout of app search results in RTL locales [Khalid; !3851]
+* Fix notification banners sometimes getting stuck [everyx; !3861]
+* Fixed crashes [Johannes, Daniel, Jonas, Alessandro; !3839, !3809, !3872]
+* Plugged leak [Sebastian; !3854]
+* Misc. bug fixes and cleanups [Michael, Marco, Philip, Jonas; !3813, !3846,
+ !3853, !3220, !3850, !3855, !3869]
+
+Contributors:
+ Khalid Abu Shawarib, Alessandro Astone, Mitchell Augustin, Michael Catanzaro,
+ Jonas Dreßler, everyx, Takao Fujiwara, Sebastian Keller, Johannes Maibaum,
+ Marco Trevisan (Treviño), Daniel van Vugt, Philip Withnall, Kyrill Zorin,
+ Jonas Ådahl
+
+Translators:
+ Cheng-Chia Tseng [zh_TW], Philipp Kiemle [de], Aefgh Threenine [th],
+ Jiri Grönroos [fi]
+
48.4
====
* Fix taking interactive screenshots via D-Bus [Florian; !3803]
diff -Nru gnome-shell-48.4/README.md gnome-shell-48.7/README.md
--- gnome-shell-48.4/README.md 2025-08-03 10:53:34.000000000 +0000
+++ gnome-shell-48.7/README.md 2025-11-24 14:16:08.000000000 +0000
@@ -53,7 +53,7 @@
## Feature requests
-gnome-shell is a core compoment of the GNOME desktop experience.
+gnome-shell is a core component of the GNOME desktop experience.
As such, any changes in behavior or appearance only happen in
accordance with the [GNOME design team][design-team].
diff -Nru gnome-shell-48.4/data/dbus-interfaces/org.gnome.Shell.PortalHelper.xml gnome-shell-48.7/data/dbus-interfaces/org.gnome.Shell.PortalHelper.xml
--- gnome-shell-48.4/data/dbus-interfaces/org.gnome.Shell.PortalHelper.xml 2025-08-03 10:53:34.000000000 +0000
+++ gnome-shell-48.7/data/dbus-interfaces/org.gnome.Shell.PortalHelper.xml 2025-11-24 14:16:08.000000000 +0000
@@ -11,7 +11,7 @@
-
+
diff -Nru gnome-shell-48.4/data/gnome-shell-osk-layouts.gresource.xml gnome-shell-48.7/data/gnome-shell-osk-layouts.gresource.xml
--- gnome-shell-48.4/data/gnome-shell-osk-layouts.gresource.xml 2025-08-03 10:53:34.000000000 +0000
+++ gnome-shell-48.7/data/gnome-shell-osk-layouts.gresource.xml 2025-11-24 14:16:08.000000000 +0000
@@ -4,6 +4,7 @@
am.json
ara.json
at.json
+ at-extended.json
be.json
bg.json
by.json
@@ -12,6 +13,7 @@
ch+fr.json
cz.json
de.json
+ de-extended.json
digits.json
dk.json
ee.json
diff -Nru gnome-shell-48.4/data/osk-layouts/at-extended.json gnome-shell-48.7/data/osk-layouts/at-extended.json
--- gnome-shell-48.4/data/osk-layouts/at-extended.json 1970-01-01 00:00:00.000000000 +0000
+++ gnome-shell-48.7/data/osk-layouts/at-extended.json 2025-11-24 14:16:08.000000000 +0000
@@ -0,0 +1,1038 @@
+{
+ "levels": [
+ {
+ "level": "default",
+ "mode": "default",
+ "rows": [
+ [
+ {
+ "keyval": "0xff09",
+ "label": "Tab",
+ "width": 1
+ },
+ {
+ "strings": [
+ "q"
+ ]
+ },
+ {
+ "strings": [
+ "w"
+ ]
+ },
+ {
+ "strings": [
+ "e",
+ "é",
+ "è",
+ "ê",
+ "ë",
+ "ė"
+ ]
+ },
+ {
+ "strings": [
+ "r"
+ ]
+ },
+ {
+ "strings": [
+ "t"
+ ]
+ },
+ {
+ "strings": [
+ "z"
+ ]
+ },
+ {
+ "strings": [
+ "u",
+ "ü",
+ "û",
+ "ù",
+ "ú",
+ "ū"
+ ]
+ },
+ {
+ "strings": [
+ "i"
+ ]
+ },
+ {
+ "strings": [
+ "o",
+ "ö",
+ "ô",
+ "ò",
+ "ó",
+ "õ",
+ "œ",
+ "ø",
+ "ō"
+ ]
+ },
+ {
+ "strings": [
+ "p"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "osk-delete-symbolic",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "osk-caps-lock-symbolic",
+ "level": "shift",
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "a",
+ "ä",
+ "â",
+ "à",
+ "á",
+ "æ",
+ "ã",
+ "å",
+ "ā"
+ ]
+ },
+ {
+ "strings": [
+ "s",
+ "ß",
+ "ś",
+ "š"
+ ]
+ },
+ {
+ "strings": [
+ "d"
+ ]
+ },
+ {
+ "strings": [
+ "f"
+ ]
+ },
+ {
+ "strings": [
+ "g"
+ ]
+ },
+ {
+ "strings": [
+ "h"
+ ]
+ },
+ {
+ "strings": [
+ "j"
+ ]
+ },
+ {
+ "strings": [
+ "k"
+ ]
+ },
+ {
+ "strings": [
+ "l"
+ ]
+ },
+ {
+ "iconName": "osk-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "osk-shift-symbolic",
+ "level": "shift",
+ "width": 2
+ },
+ {
+ "strings": [
+ "y"
+ ]
+ },
+ {
+ "strings": [
+ "x"
+ ]
+ },
+ {
+ "strings": [
+ "c"
+ ]
+ },
+ {
+ "strings": [
+ "v"
+ ]
+ },
+ {
+ "strings": [
+ "b"
+ ]
+ },
+ {
+ "strings": [
+ "n",
+ "ñ",
+ "ń"
+ ]
+ },
+ {
+ "strings": [
+ "m"
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ },
+ {
+ "iconName": "go-up-symbolic",
+ "keyval": "0xff52"
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "osk-shift-symbolic",
+ "level": "shift",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "modifier",
+ "keyval": "0xffe3",
+ "label": "Ctrl"
+ },
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": "opt"
+ },
+ {
+ "action": "modifier",
+ "keyval": "0xffe9",
+ "label": "Alt"
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 4
+ },
+ {
+ "action": "emoji",
+ "iconName": "osk-emoji-picker-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "osk-layout-symbolic"
+ },
+ {
+ "iconName": "go-previous-symbolic",
+ "keyval": "0xff51"
+ },
+ {
+ "iconName": "go-down-symbolic",
+ "keyval": "0xff54"
+ },
+ {
+ "iconName": "go-next-symbolic",
+ "keyval": "0xff53"
+ },
+ {
+ "action": "hide",
+ "iconName": "osk-hide-symbolic"
+ }
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ {
+ "keyval": "0xff09",
+ "label": "Tab",
+ "width": 1
+ },
+ {
+ "strings": [
+ "Q"
+ ]
+ },
+ {
+ "strings": [
+ "W"
+ ]
+ },
+ {
+ "strings": [
+ "E",
+ "É",
+ "È",
+ "Ê",
+ "Ë",
+ "Ė"
+ ]
+ },
+ {
+ "strings": [
+ "R"
+ ]
+ },
+ {
+ "strings": [
+ "T"
+ ]
+ },
+ {
+ "strings": [
+ "Z"
+ ]
+ },
+ {
+ "strings": [
+ "U",
+ "Ü",
+ "Û",
+ "Ù",
+ "Ú",
+ "Ū"
+ ]
+ },
+ {
+ "strings": [
+ "I"
+ ]
+ },
+ {
+ "strings": [
+ "O",
+ "Ö",
+ "Ô",
+ "Ò",
+ "Ó",
+ "Õ",
+ "Œ",
+ "Ø",
+ "Ō"
+ ]
+ },
+ {
+ "strings": [
+ "P"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "osk-delete-symbolic",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "osk-caps-lock-symbolic",
+ "level": "default",
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "A",
+ "Ä",
+ "Â",
+ "À",
+ "Á",
+ "Æ",
+ "Ã",
+ "Å",
+ "Ā"
+ ]
+ },
+ {
+ "strings": [
+ "S",
+ "ẞ",
+ "Ś",
+ "Š"
+ ]
+ },
+ {
+ "strings": [
+ "D"
+ ]
+ },
+ {
+ "strings": [
+ "F"
+ ]
+ },
+ {
+ "strings": [
+ "G"
+ ]
+ },
+ {
+ "strings": [
+ "H"
+ ]
+ },
+ {
+ "strings": [
+ "J"
+ ]
+ },
+ {
+ "strings": [
+ "K"
+ ]
+ },
+ {
+ "strings": [
+ "L"
+ ]
+ },
+ {
+ "iconName": "osk-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "osk-shift-symbolic",
+ "level": "default",
+ "width": 2
+ },
+ {
+ "strings": [
+ "Y"
+ ]
+ },
+ {
+ "strings": [
+ "X"
+ ]
+ },
+ {
+ "strings": [
+ "C"
+ ]
+ },
+ {
+ "strings": [
+ "V"
+ ]
+ },
+ {
+ "strings": [
+ "B"
+ ]
+ },
+ {
+ "strings": [
+ "N",
+ "Ñ",
+ "Ń"
+ ]
+ },
+ {
+ "strings": [
+ "M"
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ },
+ {
+ "iconName": "go-up-symbolic",
+ "keyval": "0xff52"
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "osk-shift-symbolic",
+ "level": "default",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "modifier",
+ "keyval": "0xffe3",
+ "label": "Ctrl"
+ },
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": "opt"
+ },
+ {
+ "action": "modifier",
+ "keyval": "0xffe9",
+ "label": "Alt"
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 4
+ },
+ {
+ "action": "emoji",
+ "iconName": "osk-emoji-picker-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "osk-layout-symbolic"
+ },
+ {
+ "iconName": "go-previous-symbolic",
+ "keyval": "0xff51"
+ },
+ {
+ "iconName": "go-down-symbolic",
+ "keyval": "0xff54"
+ },
+ {
+ "iconName": "go-next-symbolic",
+ "keyval": "0xff53"
+ },
+ {
+ "action": "hide",
+ "iconName": "osk-hide-symbolic"
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ]
+ },
+ {
+ "strings": [
+ "2",
+ "²",
+ "⅔"
+ ]
+ },
+ {
+ "strings": [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ]
+ },
+ {
+ "strings": [
+ "4",
+ "⁴"
+ ]
+ },
+ {
+ "strings": [
+ "5",
+ "⅝"
+ ]
+ },
+ {
+ "strings": [
+ "6"
+ ]
+ },
+ {
+ "strings": [
+ "7",
+ "⅞"
+ ]
+ },
+ {
+ "strings": [
+ "8"
+ ]
+ },
+ {
+ "strings": [
+ "9"
+ ]
+ },
+ {
+ "strings": [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "osk-delete-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "leftOffset": 0.5,
+ "strings": [
+ "@"
+ ]
+ },
+ {
+ "strings": [
+ "#"
+ ]
+ },
+ {
+ "strings": [
+ "€",
+ "¢",
+ "£",
+ "$",
+ "¥",
+ "₱"
+ ]
+ },
+ {
+ "strings": [
+ "%",
+ "‰"
+ ]
+ },
+ {
+ "strings": [
+ "&"
+ ]
+ },
+ {
+ "strings": [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ]
+ },
+ {
+ "strings": [
+ "+",
+ "±"
+ ]
+ },
+ {
+ "strings": [
+ "(",
+ "<",
+ "{",
+ "["
+ ]
+ },
+ {
+ "strings": [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ },
+ {
+ "iconName": "osk-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": "opt+shift",
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ]
+ },
+ {
+ "strings": [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ]
+ },
+ {
+ "strings": [
+ ":"
+ ]
+ },
+ {
+ "strings": [
+ ";"
+ ]
+ },
+ {
+ "strings": [
+ "!",
+ "¡"
+ ]
+ },
+ {
+ "strings": [
+ "?",
+ "¿"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": "opt+shift",
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": "default",
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "_"
+ ]
+ },
+ {
+ "strings": [
+ "/"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "osk-emoji-picker-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "osk-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "osk-hide-symbolic"
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "~"
+ ]
+ },
+ {
+ "strings": [
+ "`"
+ ]
+ },
+ {
+ "strings": [
+ "|"
+ ]
+ },
+ {
+ "strings": [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ]
+ },
+ {
+ "strings": [
+ "√"
+ ]
+ },
+ {
+ "strings": [
+ "Π",
+ "π"
+ ]
+ },
+ {
+ "strings": [
+ "÷"
+ ]
+ },
+ {
+ "strings": [
+ "×"
+ ]
+ },
+ {
+ "strings": [
+ "¶",
+ "§"
+ ]
+ },
+ {
+ "strings": [
+ "∆"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "osk-delete-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "leftOffset": 0.5,
+ "strings": [
+ "£"
+ ]
+ },
+ {
+ "strings": [
+ "¥"
+ ]
+ },
+ {
+ "strings": [
+ "$",
+ "¢"
+ ]
+ },
+ {
+ "strings": [
+ "¢"
+ ]
+ },
+ {
+ "strings": [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ]
+ },
+ {
+ "strings": [
+ "°",
+ "′",
+ "″"
+ ]
+ },
+ {
+ "strings": [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ]
+ },
+ {
+ "strings": [
+ "{"
+ ]
+ },
+ {
+ "strings": [
+ "}"
+ ]
+ },
+ {
+ "iconName": "osk-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": "opt",
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "\\"
+ ]
+ },
+ {
+ "strings": [
+ "©"
+ ]
+ },
+ {
+ "strings": [
+ "®"
+ ]
+ },
+ {
+ "strings": [
+ "™"
+ ]
+ },
+ {
+ "strings": [
+ "℅"
+ ]
+ },
+ {
+ "strings": [
+ "["
+ ]
+ },
+ {
+ "strings": [
+ "]"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": "opt",
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": "default",
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ]
+ },
+ {
+ "strings": [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "osk-emoji-picker-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "osk-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "osk-hide-symbolic"
+ }
+ ]
+ ]
+ }
+ ],
+ "locale": "de-AT",
+ "name": "Austrian German"
+}
diff -Nru gnome-shell-48.4/data/osk-layouts/de-extended.json gnome-shell-48.7/data/osk-layouts/de-extended.json
--- gnome-shell-48.4/data/osk-layouts/de-extended.json 1970-01-01 00:00:00.000000000 +0000
+++ gnome-shell-48.7/data/osk-layouts/de-extended.json 2025-11-24 14:16:08.000000000 +0000
@@ -0,0 +1,1038 @@
+{
+ "levels": [
+ {
+ "level": "default",
+ "mode": "default",
+ "rows": [
+ [
+ {
+ "keyval": "0xff09",
+ "label": "Tab",
+ "width": 1
+ },
+ {
+ "strings": [
+ "q"
+ ]
+ },
+ {
+ "strings": [
+ "w"
+ ]
+ },
+ {
+ "strings": [
+ "e",
+ "é",
+ "è",
+ "ê",
+ "ë",
+ "ė"
+ ]
+ },
+ {
+ "strings": [
+ "r"
+ ]
+ },
+ {
+ "strings": [
+ "t"
+ ]
+ },
+ {
+ "strings": [
+ "z"
+ ]
+ },
+ {
+ "strings": [
+ "u",
+ "ü",
+ "û",
+ "ù",
+ "ú",
+ "ū"
+ ]
+ },
+ {
+ "strings": [
+ "i"
+ ]
+ },
+ {
+ "strings": [
+ "o",
+ "ö",
+ "ô",
+ "ò",
+ "ó",
+ "õ",
+ "œ",
+ "ø",
+ "ō"
+ ]
+ },
+ {
+ "strings": [
+ "p"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "osk-delete-symbolic",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "osk-caps-lock-symbolic",
+ "level": "shift",
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "a",
+ "ä",
+ "â",
+ "à",
+ "á",
+ "æ",
+ "ã",
+ "å",
+ "ā"
+ ]
+ },
+ {
+ "strings": [
+ "s",
+ "ß",
+ "ś",
+ "š"
+ ]
+ },
+ {
+ "strings": [
+ "d"
+ ]
+ },
+ {
+ "strings": [
+ "f"
+ ]
+ },
+ {
+ "strings": [
+ "g"
+ ]
+ },
+ {
+ "strings": [
+ "h"
+ ]
+ },
+ {
+ "strings": [
+ "j"
+ ]
+ },
+ {
+ "strings": [
+ "k"
+ ]
+ },
+ {
+ "strings": [
+ "l"
+ ]
+ },
+ {
+ "iconName": "osk-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "osk-shift-symbolic",
+ "level": "shift",
+ "width": 2
+ },
+ {
+ "strings": [
+ "y"
+ ]
+ },
+ {
+ "strings": [
+ "x"
+ ]
+ },
+ {
+ "strings": [
+ "c"
+ ]
+ },
+ {
+ "strings": [
+ "v"
+ ]
+ },
+ {
+ "strings": [
+ "b"
+ ]
+ },
+ {
+ "strings": [
+ "n",
+ "ñ",
+ "ń"
+ ]
+ },
+ {
+ "strings": [
+ "m"
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ },
+ {
+ "iconName": "go-up-symbolic",
+ "keyval": "0xff52"
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "osk-shift-symbolic",
+ "level": "shift",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "modifier",
+ "keyval": "0xffe3",
+ "label": "Ctrl"
+ },
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": "opt"
+ },
+ {
+ "action": "modifier",
+ "keyval": "0xffe9",
+ "label": "Alt"
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 4
+ },
+ {
+ "action": "emoji",
+ "iconName": "osk-emoji-picker-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "osk-layout-symbolic"
+ },
+ {
+ "iconName": "go-previous-symbolic",
+ "keyval": "0xff51"
+ },
+ {
+ "iconName": "go-down-symbolic",
+ "keyval": "0xff54"
+ },
+ {
+ "iconName": "go-next-symbolic",
+ "keyval": "0xff53"
+ },
+ {
+ "action": "hide",
+ "iconName": "osk-hide-symbolic"
+ }
+ ]
+ ]
+ },
+ {
+ "level": "shift",
+ "mode": "latched",
+ "rows": [
+ [
+ {
+ "keyval": "0xff09",
+ "label": "Tab",
+ "width": 1
+ },
+ {
+ "strings": [
+ "Q"
+ ]
+ },
+ {
+ "strings": [
+ "W"
+ ]
+ },
+ {
+ "strings": [
+ "E",
+ "É",
+ "È",
+ "Ê",
+ "Ë",
+ "Ė"
+ ]
+ },
+ {
+ "strings": [
+ "R"
+ ]
+ },
+ {
+ "strings": [
+ "T"
+ ]
+ },
+ {
+ "strings": [
+ "Z"
+ ]
+ },
+ {
+ "strings": [
+ "U",
+ "Ü",
+ "Û",
+ "Ù",
+ "Ú",
+ "Ū"
+ ]
+ },
+ {
+ "strings": [
+ "I"
+ ]
+ },
+ {
+ "strings": [
+ "O",
+ "Ö",
+ "Ô",
+ "Ò",
+ "Ó",
+ "Õ",
+ "Œ",
+ "Ø",
+ "Ō"
+ ]
+ },
+ {
+ "strings": [
+ "P"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "osk-delete-symbolic",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "osk-caps-lock-symbolic",
+ "level": "default",
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "A",
+ "Ä",
+ "Â",
+ "À",
+ "Á",
+ "Æ",
+ "Ã",
+ "Å",
+ "Ā"
+ ]
+ },
+ {
+ "strings": [
+ "S",
+ "ẞ",
+ "Ś",
+ "Š"
+ ]
+ },
+ {
+ "strings": [
+ "D"
+ ]
+ },
+ {
+ "strings": [
+ "F"
+ ]
+ },
+ {
+ "strings": [
+ "G"
+ ]
+ },
+ {
+ "strings": [
+ "H"
+ ]
+ },
+ {
+ "strings": [
+ "J"
+ ]
+ },
+ {
+ "strings": [
+ "K"
+ ]
+ },
+ {
+ "strings": [
+ "L"
+ ]
+ },
+ {
+ "iconName": "osk-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2.5
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "iconName": "osk-shift-symbolic",
+ "level": "default",
+ "width": 2
+ },
+ {
+ "strings": [
+ "Y"
+ ]
+ },
+ {
+ "strings": [
+ "X"
+ ]
+ },
+ {
+ "strings": [
+ "C"
+ ]
+ },
+ {
+ "strings": [
+ "V"
+ ]
+ },
+ {
+ "strings": [
+ "B"
+ ]
+ },
+ {
+ "strings": [
+ "N",
+ "Ñ",
+ "Ń"
+ ]
+ },
+ {
+ "strings": [
+ "M"
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "#",
+ "!",
+ ",",
+ "?",
+ "-",
+ ":",
+ "'",
+ "@"
+ ]
+ },
+ {
+ "iconName": "go-up-symbolic",
+ "keyval": "0xff52"
+ },
+ {
+ "action": "levelSwitch",
+ "iconName": "osk-shift-symbolic",
+ "level": "default",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "modifier",
+ "keyval": "0xffe3",
+ "label": "Ctrl"
+ },
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": "opt"
+ },
+ {
+ "action": "modifier",
+ "keyval": "0xffe9",
+ "label": "Alt"
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 4
+ },
+ {
+ "action": "emoji",
+ "iconName": "osk-emoji-picker-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "osk-layout-symbolic"
+ },
+ {
+ "iconName": "go-previous-symbolic",
+ "keyval": "0xff51"
+ },
+ {
+ "iconName": "go-down-symbolic",
+ "keyval": "0xff54"
+ },
+ {
+ "iconName": "go-next-symbolic",
+ "keyval": "0xff53"
+ },
+ {
+ "action": "hide",
+ "iconName": "osk-hide-symbolic"
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "1",
+ "¹",
+ "½",
+ "⅓",
+ "¼",
+ "⅛"
+ ]
+ },
+ {
+ "strings": [
+ "2",
+ "²",
+ "⅔"
+ ]
+ },
+ {
+ "strings": [
+ "3",
+ "³",
+ "¾",
+ "⅜"
+ ]
+ },
+ {
+ "strings": [
+ "4",
+ "⁴"
+ ]
+ },
+ {
+ "strings": [
+ "5",
+ "⅝"
+ ]
+ },
+ {
+ "strings": [
+ "6"
+ ]
+ },
+ {
+ "strings": [
+ "7",
+ "⅞"
+ ]
+ },
+ {
+ "strings": [
+ "8"
+ ]
+ },
+ {
+ "strings": [
+ "9"
+ ]
+ },
+ {
+ "strings": [
+ "0",
+ "ⁿ",
+ "∅"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "osk-delete-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "leftOffset": 0.5,
+ "strings": [
+ "@"
+ ]
+ },
+ {
+ "strings": [
+ "#"
+ ]
+ },
+ {
+ "strings": [
+ "€",
+ "¢",
+ "£",
+ "$",
+ "¥",
+ "₱"
+ ]
+ },
+ {
+ "strings": [
+ "%",
+ "‰"
+ ]
+ },
+ {
+ "strings": [
+ "&"
+ ]
+ },
+ {
+ "strings": [
+ "-",
+ "_",
+ "–",
+ "—",
+ "·"
+ ]
+ },
+ {
+ "strings": [
+ "+",
+ "±"
+ ]
+ },
+ {
+ "strings": [
+ "(",
+ "<",
+ "{",
+ "["
+ ]
+ },
+ {
+ "strings": [
+ ")",
+ ">",
+ "}",
+ "]"
+ ]
+ },
+ {
+ "iconName": "osk-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": "opt+shift",
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "*",
+ "†",
+ "‡",
+ "★"
+ ]
+ },
+ {
+ "strings": [
+ "\"",
+ "“",
+ "”",
+ "«",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ "'",
+ "‘",
+ "’",
+ "‹",
+ "›"
+ ]
+ },
+ {
+ "strings": [
+ ":"
+ ]
+ },
+ {
+ "strings": [
+ ";"
+ ]
+ },
+ {
+ "strings": [
+ "!",
+ "¡"
+ ]
+ },
+ {
+ "strings": [
+ "?",
+ "¿"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "=/<",
+ "level": "opt+shift",
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": "default",
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "_"
+ ]
+ },
+ {
+ "strings": [
+ "/"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "osk-emoji-picker-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "osk-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "osk-hide-symbolic"
+ }
+ ]
+ ]
+ },
+ {
+ "level": "opt+shift",
+ "mode": "locked",
+ "rows": [
+ [
+ {
+ "strings": [
+ "~"
+ ]
+ },
+ {
+ "strings": [
+ "`"
+ ]
+ },
+ {
+ "strings": [
+ "|"
+ ]
+ },
+ {
+ "strings": [
+ "•",
+ "♪",
+ "♥",
+ "♠",
+ "♦",
+ "♣"
+ ]
+ },
+ {
+ "strings": [
+ "√"
+ ]
+ },
+ {
+ "strings": [
+ "Π",
+ "π"
+ ]
+ },
+ {
+ "strings": [
+ "÷"
+ ]
+ },
+ {
+ "strings": [
+ "×"
+ ]
+ },
+ {
+ "strings": [
+ "¶",
+ "§"
+ ]
+ },
+ {
+ "strings": [
+ "∆"
+ ]
+ },
+ {
+ "action": "delete",
+ "iconName": "osk-delete-symbolic",
+ "width": 1.5
+ }
+ ],
+ [
+ {
+ "leftOffset": 0.5,
+ "strings": [
+ "£"
+ ]
+ },
+ {
+ "strings": [
+ "¥"
+ ]
+ },
+ {
+ "strings": [
+ "$",
+ "¢"
+ ]
+ },
+ {
+ "strings": [
+ "¢"
+ ]
+ },
+ {
+ "strings": [
+ "^",
+ "↑",
+ "↓",
+ "←",
+ "→"
+ ]
+ },
+ {
+ "strings": [
+ "°",
+ "′",
+ "″"
+ ]
+ },
+ {
+ "strings": [
+ "=",
+ "≠",
+ "≈",
+ "∞"
+ ]
+ },
+ {
+ "strings": [
+ "{"
+ ]
+ },
+ {
+ "strings": [
+ "}"
+ ]
+ },
+ {
+ "iconName": "osk-enter-symbolic",
+ "keyval": "0xff0d",
+ "width": 2
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": "opt",
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "\\"
+ ]
+ },
+ {
+ "strings": [
+ "©"
+ ]
+ },
+ {
+ "strings": [
+ "®"
+ ]
+ },
+ {
+ "strings": [
+ "™"
+ ]
+ },
+ {
+ "strings": [
+ "℅"
+ ]
+ },
+ {
+ "strings": [
+ "["
+ ]
+ },
+ {
+ "strings": [
+ "]"
+ ]
+ },
+ {
+ "action": "levelSwitch",
+ "label": "?123",
+ "level": "opt",
+ "width": 3
+ }
+ ],
+ [
+ {
+ "action": "levelSwitch",
+ "label": "ABC",
+ "level": "default",
+ "width": 1.5
+ },
+ {
+ "strings": [
+ "<",
+ "‹",
+ "≤",
+ "«"
+ ]
+ },
+ {
+ "strings": [
+ ">",
+ "›",
+ "≥",
+ "»"
+ ]
+ },
+ {
+ "strings": [
+ " "
+ ],
+ "width": 3
+ },
+ {
+ "strings": [
+ ","
+ ]
+ },
+ {
+ "strings": [
+ ".",
+ "…"
+ ]
+ },
+ {
+ "action": "emoji",
+ "iconName": "osk-emoji-picker-symbolic"
+ },
+ {
+ "action": "languageMenu",
+ "iconName": "osk-layout-symbolic"
+ },
+ {
+ "action": "hide",
+ "iconName": "osk-hide-symbolic"
+ }
+ ]
+ ]
+ }
+ ],
+ "locale": "de",
+ "name": "German"
+}
diff -Nru gnome-shell-48.4/data/osk-layouts/in+bolnagri.json gnome-shell-48.7/data/osk-layouts/in+bolnagri.json
--- gnome-shell-48.4/data/osk-layouts/in+bolnagri.json 2025-08-03 10:53:34.000000000 +0000
+++ gnome-shell-48.7/data/osk-layouts/in+bolnagri.json 2025-11-24 14:16:08.000000000 +0000
@@ -6,28 +6,33 @@
"rows": [
[
{
+ "label": "◌ौ",
"strings": [
- "◌ौ"
+ "ौ"
]
},
{
+ "label": "◌ै",
"strings": [
- "◌ै"
+ "ै"
]
},
{
+ "label": "◌ा",
"strings": [
- "◌ा"
+ "ा"
]
},
{
+ "label": "◌ी",
"strings": [
- "◌ी"
+ "ी"
]
},
{
+ "label": "◌ू",
"strings": [
- "◌ू"
+ "ू"
]
},
{
@@ -80,28 +85,33 @@
],
[
{
+ "label": "◌ो",
"strings": [
- "◌ो"
+ "ो"
]
},
{
+ "label": "◌े",
"strings": [
- "◌े"
+ "े"
]
},
{
+ "label": "◌्",
"strings": [
- "◌्"
+ "्"
]
},
{
+ "label": "◌ि",
"strings": [
- "◌ि"
+ "ि"
]
},
{
+ "label": "◌ु",
"strings": [
- "◌ु"
+ "ु"
]
},
{
@@ -147,13 +157,15 @@
],
[
{
+ "label": "◌ॉ",
"strings": [
- "◌ॉ"
+ "ॉ"
]
},
{
+ "label": "◌ं",
"strings": [
- "◌ं"
+ "ं"
]
},
{
@@ -194,8 +206,9 @@
]
},
{
+ "label": "◌़",
"strings": [
- "◌़"
+ "़"
]
},
{
diff -Nru gnome-shell-48.4/debian/changelog gnome-shell-48.7/debian/changelog
--- gnome-shell-48.4/debian/changelog 2025-08-18 14:35:38.000000000 +0000
+++ gnome-shell-48.7/debian/changelog 2025-12-09 11:38:09.000000000 +0000
@@ -1,3 +1,150 @@
+gnome-shell (48.7-0+deb13u1) trixie; urgency=medium
+
+ * Team upload
+ * New upstream release 48.5
+ - Avoid a crash when using the Draw-On-Gnome extension, fixing a
+ regression in 48.3
+ (gnome-shell#8602 upstream)
+ - Close the captive-portal authentication dialog when full network
+ connectivity is detected
+ (gnome-shell#7790 upstream)
+ - Fix connecting to WPA Enterprise or WPA2 Enterprise networks from the
+ quick settings menu
+ (gnome-shell#8590 upstream)
+ - Disable unneeded extensions before enabling new extensions, ensuring
+ that there is never a time when two conflicting extensions are active
+ (gnome-shell!3835 upstream)
+ - Fix position of IBus candidate panel when using a scaled display
+ (gnome-shell#8424 upstream)
+ - During authentication, don't reset the authentication prompt on
+ every tap/click, only when the prompt should change from hidden to
+ visible
+ (gnome-shell!3852 upstream)
+ - Incorporate previously Debian-specific patches fixing X11 tray icon
+ handling
+ (gnome-shell!3818 upstream)
+ - Avoid a possible source of lockups in keyboard focus handling
+ (gnome-shell!3220 upstream)
+ - Fix a memory leak with custom themes
+ (gnome-shell#8509 upstream, LP: #2121786)
+ - During authentication, don't discard typeahead when changing
+ entry visibility
+ (gnome-shell!3850 upstream)
+ - Fix a crash when using a CSS-only Shell extension
+ (gnome-shell#7339 upstream, previously fixed differently by a
+ Debian-specific patch)
+ - Improve debuggability of the actor tree (gnome-shell!3863 upstream)
+ - Improve display of overview application search results in
+ right-to-left locales (Arabic/Hebrew)
+ (gnome-shell!3851 upstream)
+ - Fix a crash during searches
+ (gnome-shell#8651 upstream, LP: #2104113)
+ - Fix a race condition causing intermittent stuck notifications
+ (gnome-shell#6006 upstream)
+ - Better forward-compatibility with post-trixie GLib versions
+ (gnome-shell!3846, gnome-shell!3855 upstream)
+ - Better forward-compatibility with post-trixie mutter versions
+ (gnome-shell#4253 upstream)
+ - Documentation/comment fixes
+ - Translation updates: de, fi, th, zh_TW
+ * New upstream release 48.6
+ - During authentication, move keyboard focus to the currently-visible
+ widget, not always the text entry box
+ (gnome-shell!3849 upstream)
+ - Ensure that workspace selector reappears promptly when cancelling
+ a search in the overview (gnome-shell#7985 upstream)
+ - Warn instead of crashing if an unsupported accent colour is set,
+ for example when swapping between Ubuntu's patched gnome-shell and
+ an upstream gnome-shell (gnome-shell!3892 upstream)
+ - Always send a valid value for the reason a notification was closed
+ (gnome-shell!3907 upstream)
+ - In the UI for screenshots, if a button doesn't have any other label,
+ use its tooltip as the label for accessibility purposes
+ (gnome-shell!3908 upstream)
+ - When a notification instance is reused, don't send its activation
+ event multiple times (gnome-shell!3904 upstream)
+ - Don't emit spurious dotted circles when using the on-screen keyboard
+ in the Hindi (Bolnagri) layout (gnome-shell#8719 upstream)
+ - Remove unused argument to PopupMenu constructor
+ (gnome-shell!3894 upstream)
+ - Translation updates: ug
+ * New upstream release 48.7
+ - Revert some changes in 48.6 that could cause regressions
+ (not shown in the above summary)
+ - Ensure network icon is updated on connectivity changes
+ (gnome-shell#7357, gnome-shell#8549 upstream)
+ - In gdm, sort the available sessions by their localized name,
+ as displayed, and not by their internal IDs
+ (gnome-shell!3920 upstream)
+ - Add on-screen keyboard layouts for German (extended) and
+ German (Austria, extended)
+ (gnome-shell!3923 upstream)
+ - Avoid zombie networkmanager-openvpn-auth processes when a VPN connection
+ is stopped
+ (gnome-shell#7083 upstream)
+ - Avoid a warning on drag-and-drop when animations are disabled
+ (gnome-shell!3922 upstream)
+ - When logout, reboot or shutdown is prevented by a systemd inhibitor,
+ don't log the cancellation with a stack trace as though it was an
+ internal error
+ (gnome-shell#8749 upstream)
+ - Fix a crash when a window is closed immediately after losing on-screen
+ keyboard focus
+ (gnome-shell#8752 upstream)
+ - Fix handling of multiple gdm greeter instances
+ (gnome-shell!3942 upstream)
+ - Fix warnings and potential use-after-free when the Shell exits in
+ certain states
+ (gnome-shell!3943 upstream)
+ - Improve code clarity by using symbolic constants for SOURCE_CONTINUE,
+ SOURCE_REMOVE
+ (gnome-shell!3950 upstream)
+ - Always return a result from "later" handlers
+ (gnome-shell!3950 upstream)
+ - Align search results' provider name better
+ (gnome-shell!3951 upstream)
+ - Always register the session with GDM on startup, even if no monitor is
+ connected
+ (gnome-shell!3708 upstream)
+ - Fix misplaced separator in dash after unpinning running app
+ (gnome-shell#3966, #3799 upstream)
+ - Fix swipe gestures behaving incorrectly in RTL locales
+ (gnome-shell!3967 upstream)
+ - Fix some typos in documentation/comments
+ - Translation updates: ro
+ * Interface change: the misleadingly-named org.gnome.Shell.PortalHelper.Done
+ signal has been renamed to org.gnome.Shell.PortalHelper.StatusChanged.
+ In practice no other Debian package appears to subscribe to this signal,
+ so this shouldn't have any effect.
+
+ [ Jeremy Bícha ]
+ * Remove tray-icons patches: applied in 48.5
+ * Remove st-theme-node patch: alternative fix applied in 48.5
+
+ [ Marco Trevisan (Treviño) ]
+ * d/p/build-Define-test-dependencies.patch,
+ d/p/extensions-app-Add-test-dependency-on-generated-desktop-f.patch:
+ Add patches to fix tests' compilation dependencies
+ * debian/tests: Add autopkgtests for GNOME Shell.
+ We can just recompile gnome-shell and run the tests provided
+ by upstream.
+ * debian/tests: Run tests on the installed gnome-shell.
+ Run the autopkgtests running the upstream-provided test scripts using
+ the gnome-shell in the archive installed as it is. When in Ubuntu,
+ we are also using the Ubuntu profile.
+ * debian/salsa-ci: Enable i386 autopkgtests.
+ i386 is kinda special in desktop, so better to track potential
+ breakages.
+
+ [ Simon McVittie ]
+ * Document upstream changes in detail
+ * Rebase patch series
+ - Drop one of Marco's new test-related build system patches (see
+ above), applied in 48.5
+ * Slightly improve patch metadata
+
+ -- Simon McVittie Tue, 09 Dec 2025 11:38:09 +0000
+
gnome-shell (48.4-1~deb13u1) trixie; urgency=medium
* Team upload
diff -Nru gnome-shell-48.4/debian/patches/build-Define-test-dependencies.patch gnome-shell-48.7/debian/patches/build-Define-test-dependencies.patch
--- gnome-shell-48.4/debian/patches/build-Define-test-dependencies.patch 1970-01-01 00:00:00.000000000 +0000
+++ gnome-shell-48.7/debian/patches/build-Define-test-dependencies.patch 2025-12-09 11:38:09.000000000 +0000
@@ -0,0 +1,127 @@
+From: =?utf-8?b?Ik1hcmNvIFRyZXZpc2FuIChUcmV2acOxbyki?=
+Date: Thu, 11 Sep 2025 13:29:31 +0200
+Subject: build: Define test dependencies
+
+Ideally meson tests should just work without any pre-requisite build,
+instead, we only need a configured build folder to work, but this does
+not go as expected in gnome shell at the moment.
+
+Since tests require generated files and compiled typelibs they don't
+depend on, so just using `meson test -C build ` does not work
+as expected.
+
+So add test dependencies on test cases. We do not need to have per-test
+dependencies right now since most of them share just the same
+requirements, and this makes it easier to maintain
+
+Applied-upstream: 49.0, commit:e014efcab228812ef0751e4706d648c19add1ab1
+---
+ data/meson.build | 7 ++++---
+ src/meson.build | 4 ++--
+ src/st/meson.build | 1 +
+ tests/meson.build | 15 +++++++++++++++
+ 4 files changed, 22 insertions(+), 5 deletions(-)
+
+diff --git a/data/meson.build b/data/meson.build
+index 114dd20..76a32ca 100644
+--- a/data/meson.build
++++ b/data/meson.build
+@@ -70,11 +70,12 @@ data_resources = [
+ {'name': 'osk-layouts'},
+ {'name': 'theme', 'deps': theme_deps}
+ ]
++data_resources_targets = []
+ foreach resource : data_resources
+ name = resource.get('name')
+ deps = resource.get('deps', [])
+
+- gnome.compile_resources(
++ data_resources_targets += gnome.compile_resources(
+ 'gnome-shell-' + name,
+ 'gnome-shell-@0@.gresource.xml'.format(name),
+ source_dir: name,
+@@ -161,8 +162,8 @@ if have_systemd
+ endif
+
+ # for unit tests - gnome.compile_schemas() only looks in srcdir
+-custom_target('compile-schemas',
++compiled_schemas = custom_target('compile-schemas',
+ input: schema,
+ output: 'gschemas.compiled',
+ command: [find_program('glib-compile-schemas'), '--strict', data_builddir],
+- build_by_default: true)
++)
+diff --git a/src/meson.build b/src/meson.build
+index 9691ef8..1099204 100644
+--- a/src/meson.build
++++ b/src/meson.build
+@@ -280,7 +280,7 @@ libshell_gir = gnome.generate_gir(libshell,
+ kwargs: introspection_common,
+ )
+
+-executable('gnome-shell', 'main.c',
++gnome_shell_binary = executable('gnome-shell', 'main.c',
+ c_args: gnome_shell_cflags + typelib_cflags,
+ dependencies: gnome_shell_deps + [libshell_dep, libst_dep, mutter_dep],
+ include_directories: [conf_inc],
+@@ -300,7 +300,7 @@ if have_portal_helper
+ )
+ endif
+
+-executable('gnome-shell-perf-helper', 'shell-perf-helper.c', js_resources,
++gnome_shell_perf_helper = executable('gnome-shell-perf-helper', 'shell-perf-helper.c', js_resources,
+ dependencies: [gtk_dep, gio_dep, m_dep],
+ include_directories: [conf_inc],
+ install_dir: libexecdir,
+diff --git a/src/st/meson.build b/src/st/meson.build
+index 5279455..22be0e0 100644
+--- a/src/st/meson.build
++++ b/src/st/meson.build
+@@ -223,6 +223,7 @@ if get_option('tests') and have_x11_client
+
+ test('css-styling', test_theme,
+ suite: 'st',
++ depends: compiled_schemas,
+ workdir: meson.current_source_dir(),
+ )
+ endif
+diff --git a/tests/meson.build b/tests/meson.build
+index a12cf2f..06174c4 100644
+--- a/tests/meson.build
++++ b/tests/meson.build
+@@ -13,6 +13,15 @@ gvc_typelib_path = fs.parent(libgvc.get_variable('libgvc_gir')[1].full_path())
+ shell_typelib_path = fs.parent(libshell_gir[1].full_path())
+ st_typelib_path = fs.parent(libst_gir[1].full_path())
+
++# Shared tests dependencies.
++tests_dependencies = [
++ compiled_schemas,
++ data_resources_targets,
++ libst_gir[1],
++ libshell_gir[1],
++ libgvc_gir[1],
++]
++
+ unit_testenv = environment()
+ unit_testenv.set('GNOME_SHELL_DATADIR', data_builddir)
+ unit_testenv.append('GI_TYPELIB_PATH', gvc_typelib_path, separator: ':')
+@@ -54,6 +63,7 @@ foreach test, extra_args : unit_tests
+ 'unit/@0@.js'.format(test),
+ ],
+ suite: 'unit',
++ depends: tests_dependencies,
+ env: local_test_env,
+ protocol: 'tap',
+ workdir: meson.current_source_dir())
+@@ -101,6 +111,11 @@ foreach shell_test : shell_tests
+ options,
+ '@0@/shell/@1@.js'.format(meson.current_source_dir(), test_name),
+ ],
++ depends: [
++ gnome_shell_binary,
++ gnome_shell_perf_helper,
++ tests_dependencies,
++ ],
+ is_parallel: false,
+ env: shell_testenv,
+ )
diff -Nru gnome-shell-48.4/debian/patches/debian/Revert-tests-Fail-on-warnings-too.patch gnome-shell-48.7/debian/patches/debian/Revert-tests-Fail-on-warnings-too.patch
--- gnome-shell-48.4/debian/patches/debian/Revert-tests-Fail-on-warnings-too.patch 2025-08-18 14:35:38.000000000 +0000
+++ gnome-shell-48.7/debian/patches/debian/Revert-tests-Fail-on-warnings-too.patch 2025-12-09 11:38:09.000000000 +0000
@@ -8,10 +8,10 @@
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tests/meson.build b/tests/meson.build
-index 7a09f3b..93cf49a 100644
+index 06174c4..0b98850 100644
--- a/tests/meson.build
+++ b/tests/meson.build
-@@ -79,7 +79,7 @@ libgvc_path = fs.parent(libgvc.get_variable('libgvc').full_path())
+@@ -90,7 +90,7 @@ libgvc_path = fs.parent(libgvc.get_variable('libgvc').full_path())
background_file = join_paths(meson.current_source_dir(), 'data', 'background.png')
shell_testenv = environment()
diff -Nru gnome-shell-48.4/debian/patches/extensions-app-Add-test-dependency-on-generated-desktop-f.patch gnome-shell-48.7/debian/patches/extensions-app-Add-test-dependency-on-generated-desktop-f.patch
--- gnome-shell-48.4/debian/patches/extensions-app-Add-test-dependency-on-generated-desktop-f.patch 1970-01-01 00:00:00.000000000 +0000
+++ gnome-shell-48.7/debian/patches/extensions-app-Add-test-dependency-on-generated-desktop-f.patch 2025-12-09 11:38:09.000000000 +0000
@@ -0,0 +1,48 @@
+From: =?utf-8?b?Ik1hcmNvIFRyZXZpc2FuIChUcmV2acOxbyki?=
+Date: Thu, 11 Sep 2025 14:12:02 +0200
+Subject: extensions-app: Add test dependency on generated desktop file
+
+Applied-upstream: 49.0, commit:8e6e76a62b20430d02cea20656ab988345a9e271
+---
+ subprojects/extensions-app/data/meson.build | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/subprojects/extensions-app/data/meson.build b/subprojects/extensions-app/data/meson.build
+index 920d578..138cab5 100644
+--- a/subprojects/extensions-app/data/meson.build
++++ b/subprojects/extensions-app/data/meson.build
+@@ -18,7 +18,7 @@ gnome.compile_resources(
+ install_dir: pkgdatadir
+ )
+
+-desktop_file = app_id + '.desktop'
++desktop_id = app_id + '.desktop'
+ desktopconf = configuration_data()
+ # We substitute in bindir so it works as an autostart
+ # file when built in a non-system prefix
+@@ -26,13 +26,13 @@ desktopconf.set('bindir', bindir)
+ desktopconf.set('app_id', app_id)
+ desktopconf.set('prgname', prgname)
+
+-i18n.merge_file(
++desktop_file = i18n.merge_file(
+ input: configure_file(
+ input: base_id + '.desktop.in.in',
+- output: desktop_file + '.in',
++ output: desktop_id + '.in',
+ configuration: desktopconf
+ ),
+- output: desktop_file,
++ output: desktop_id,
+ po_dir: po_dir,
+ install: true,
+ install_dir: desktopdir,
+@@ -40,7 +40,7 @@ i18n.merge_file(
+ )
+
+ if (desktop_file_validate.found())
+- test('Validating ' + desktop_file,
++ test('Validating ' + desktop_id,
+ desktop_file_validate,
+ args: [desktop_file],
+ workdir: meson.current_build_dir()
diff -Nru gnome-shell-48.4/debian/patches/series gnome-shell-48.7/debian/patches/series
--- gnome-shell-48.4/debian/patches/series 2025-08-18 14:35:38.000000000 +0000
+++ gnome-shell-48.7/debian/patches/series 2025-12-09 11:38:09.000000000 +0000
@@ -1,13 +1,5 @@
+build-Define-test-dependencies.patch
+extensions-app-Add-test-dependency-on-generated-desktop-f.patch
debian/Revert-tests-Fail-on-warnings-too.patch
-tray-icons/build-Add-explicit-dependency-on-Xfixes.patch
-tray-icons/tray-na-xembed-Use-XShape-to-remove-input-on-socket-windo.patch
-tray-icons/shell-tray-icon-Use-available-space-when-that-s-defined.patch
-tray-icons/shell-tray-Ensure-that-only-a-child-can-be-added.patch
-tray-icons/shell-tray-icon-Trigger-a-relayout-when-the-underneath-xe.patch
-tray-icons/tray-Zero-initialize-the-event-structures-on-initializati.patch
-tray-icons/tray-na-xembed-Use-proper-indentation-style-header.patch
-tray-icons/tray-na-xembed-Destroy-socket-window-when-ending-the-embe.patch
-tray-icons/tray-na-tray-manager-Remove-outdated-comment-and-return-v.patch
shell-app-Warn-instead-of-crashing-if-disposed-before-sta.patch
-st-theme-node-Forget-properties-cache-on-stylesheet-chang.patch
debian/data-Add-im-config.desktop-to-System-folder.patch
diff -Nru gnome-shell-48.4/debian/patches/st-theme-node-Forget-properties-cache-on-stylesheet-chang.patch gnome-shell-48.7/debian/patches/st-theme-node-Forget-properties-cache-on-stylesheet-chang.patch
--- gnome-shell-48.4/debian/patches/st-theme-node-Forget-properties-cache-on-stylesheet-chang.patch 2025-08-18 14:35:38.000000000 +0000
+++ gnome-shell-48.7/debian/patches/st-theme-node-Forget-properties-cache-on-stylesheet-chang.patch 1970-01-01 00:00:00.000000000 +0000
@@ -1,89 +0,0 @@
-From: Daniel van Vugt
-Date: Thu, 28 Mar 2024 14:45:26 +0800
-Subject: st/theme-node: Forget properties cache on stylesheet change
-
-To avoid `node->properties` pointing to freed memory after each
-`st_theme_unload_stylesheet`, flush the cache that is `node->properties`.
-They will be reloaded as soon as they are required by `ensure_properties`.
-
-And yes `node->stylesheets_changed_id` already existed, but was unused.
-
-Why not just fix Croco? Croco does not use proper reference counting
-everywhere it should, and retrofitting it would be difficult due to the
-recursive nature of `CRDeclaration`.
-
-Includes commit:
-st/theme-node: Forget properties cache before unref'ing the theme
-Which the properties point into.
-
-Forwarded: https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3252
-Bug: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7339
-Bug-Ubuntu: https://bugs.launchpad.net/bugs/2069559
-Bug-Dash-to-Dock: https://github.com/micheleg/dash-to-dock/issues/2179
----
- src/st/st-theme-node-private.h | 2 +-
- src/st/st-theme-node.c | 17 +++++++++++++++--
- 2 files changed, 16 insertions(+), 3 deletions(-)
-
-diff --git a/src/st/st-theme-node-private.h b/src/st/st-theme-node-private.h
-index d95284e..2d5065f 100644
---- a/src/st/st-theme-node-private.h
-+++ b/src/st/st-theme-node-private.h
-@@ -104,7 +104,7 @@ struct _StThemeNode {
- int box_shadow_min_width;
- int box_shadow_min_height;
-
-- guint stylesheets_changed_id;
-+ gulong stylesheets_changed_id;
-
- CoglTexture *border_slices_texture;
- CoglPipeline *border_slices_pipeline;
-diff --git a/src/st/st-theme-node.c b/src/st/st-theme-node.c
-index 4e0111d..8d81693 100644
---- a/src/st/st-theme-node.c
-+++ b/src/st/st-theme-node.c
-@@ -75,6 +75,10 @@ maybe_free_properties (StThemeNode *node)
- cr_declaration_destroy (node->inline_properties);
- node->inline_properties = NULL;
- }
-+
-+ g_clear_signal_handler (&node->stylesheets_changed_id, node->theme);
-+
-+ node->properties_computed = FALSE;
- }
-
- static void
-@@ -102,6 +106,7 @@ st_theme_node_dispose (GObject *gobject)
-
- st_theme_node_paint_state_free (&node->cached_state);
-
-+ maybe_free_properties (node);
- g_clear_object (&node->theme);
-
- G_OBJECT_CLASS (st_theme_node_parent_class)->dispose (gobject);
-@@ -117,8 +122,6 @@ st_theme_node_finalize (GObject *object)
- g_strfreev (node->pseudo_classes);
- g_free (node->inline_style);
-
-- maybe_free_properties (node);
--
- g_clear_pointer (&node->font_desc, pango_font_description_free);
-
- g_clear_pointer (&node->box_shadow, st_shadow_unref);
-@@ -472,6 +475,16 @@ ensure_properties (StThemeNode *node)
- node->n_properties = properties->len;
- node->properties = (CRDeclaration **)g_ptr_array_free (properties, FALSE);
- }
-+
-+ if (!node->stylesheets_changed_id)
-+ {
-+ node->stylesheets_changed_id =
-+ g_signal_connect_object (node->theme,
-+ "custom-stylesheets-changed",
-+ G_CALLBACK (maybe_free_properties),
-+ G_OBJECT (node),
-+ G_CONNECT_SWAPPED);
-+ }
- }
- }
-
diff -Nru gnome-shell-48.4/debian/patches/tray-icons/build-Add-explicit-dependency-on-Xfixes.patch gnome-shell-48.7/debian/patches/tray-icons/build-Add-explicit-dependency-on-Xfixes.patch
--- gnome-shell-48.4/debian/patches/tray-icons/build-Add-explicit-dependency-on-Xfixes.patch 2025-08-18 14:35:38.000000000 +0000
+++ gnome-shell-48.7/debian/patches/tray-icons/build-Add-explicit-dependency-on-Xfixes.patch 1970-01-01 00:00:00.000000000 +0000
@@ -1,38 +0,0 @@
-From: =?utf-8?b?Ik1hcmNvIFRyZXZpc2FuIChUcmV2acOxbyki?=
-Date: Wed, 1 May 2024 22:33:43 +0200
-Subject: build: Add explicit dependency on Xfixes
-
-We use the xfixes extensions in tray icons but we rely on the dependency
-brought to us from other libraries as mutter but let's make it explicit
-
-Origin: https://gitlab.gnome.org/3v1n0/gnome-shell/-/commits/tray-offscreen-xwindows
-Bug-Ubuntu: https://bugs.launchpad.net/bugs/2012388
----
- meson.build | 1 +
- src/tray/meson.build | 2 +-
- 2 files changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/meson.build b/meson.build
-index ffae529..e0ac102 100644
---- a/meson.build
-+++ b/meson.build
-@@ -93,6 +93,7 @@ have_x11 = mutter_dep.get_variable('have_x11') == 'true'
- have_x11_client = mutter_dep.get_variable('have_x11_client') == 'true'
- if have_x11_client or have_x11
- x11_dep = dependency('x11')
-+ xfixes_dep = dependency('xfixes')
- endif
-
- if not have_fonts
-diff --git a/src/tray/meson.build b/src/tray/meson.build
-index 1a86bcb..2fc73f3 100644
---- a/src/tray/meson.build
-+++ b/src/tray/meson.build
-@@ -9,6 +9,6 @@ tray_sources = [
-
- libtray = static_library('tray', tray_sources,
- c_args: ['-DG_LOG_DOMAIN="notification_area"'],
-- dependencies: [mutter_dep, mtk_dep],
-+ dependencies: [mutter_dep, mtk_dep, xfixes_dep],
- include_directories: conf_inc
- )
diff -Nru gnome-shell-48.4/debian/patches/tray-icons/shell-tray-Ensure-that-only-a-child-can-be-added.patch gnome-shell-48.7/debian/patches/tray-icons/shell-tray-Ensure-that-only-a-child-can-be-added.patch
--- gnome-shell-48.4/debian/patches/tray-icons/shell-tray-Ensure-that-only-a-child-can-be-added.patch 2025-08-18 14:35:38.000000000 +0000
+++ gnome-shell-48.7/debian/patches/tray-icons/shell-tray-Ensure-that-only-a-child-can-be-added.patch 1970-01-01 00:00:00.000000000 +0000
@@ -1,22 +0,0 @@
-From: =?utf-8?b?Ik1hcmNvIFRyZXZpc2FuIChUcmV2acOxbyki?=
-Date: Wed, 1 May 2024 04:19:34 +0200
-Subject: shell-tray: Ensure that only a child can be added
-
-Origin: https://gitlab.gnome.org/3v1n0/gnome-shell/-/commits/tray-offscreen-xwindows
-Bug-Ubuntu: https://bugs.launchpad.net/bugs/2012388
----
- src/shell-tray-icon.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/src/shell-tray-icon.c b/src/shell-tray-icon.c
-index 39204bf..9b79c2b 100644
---- a/src/shell-tray-icon.c
-+++ b/src/shell-tray-icon.c
-@@ -239,6 +239,7 @@ shell_tray_icon_set_child (ShellTrayIcon *tray_icon,
- MetaDisplay *display = shell_global_get_display (shell_global_get ());
-
- g_return_if_fail (tray_icon != NULL);
-+ g_return_if_fail (tray_icon->tray_child == NULL);
- g_return_if_fail (tray_child != NULL);
-
- /* We do all this now rather than computing it on the fly later,
diff -Nru gnome-shell-48.4/debian/patches/tray-icons/shell-tray-icon-Trigger-a-relayout-when-the-underneath-xe.patch gnome-shell-48.7/debian/patches/tray-icons/shell-tray-icon-Trigger-a-relayout-when-the-underneath-xe.patch
--- gnome-shell-48.4/debian/patches/tray-icons/shell-tray-icon-Trigger-a-relayout-when-the-underneath-xe.patch 2025-08-18 14:35:38.000000000 +0000
+++ gnome-shell-48.7/debian/patches/tray-icons/shell-tray-icon-Trigger-a-relayout-when-the-underneath-xe.patch 1970-01-01 00:00:00.000000000 +0000
@@ -1,83 +0,0 @@
-From: =?utf-8?b?Ik1hcmNvIFRyZXZpc2FuIChUcmV2acOxbyki?=
-Date: Wed, 1 May 2024 04:20:42 +0200
-Subject: shell-tray-icon: Trigger a relayout when the underneath xembeded
- size changes
-
-Origin: https://gitlab.gnome.org/3v1n0/gnome-shell/-/commits/tray-offscreen-xwindows
-Bug-Ubuntu: https://bugs.launchpad.net/bugs/2012388
----
- src/shell-tray-icon.c | 4 ++++
- src/tray/na-xembed.c | 18 ++++++++++++++++++
- src/tray/na-xembed.h | 1 +
- 3 files changed, 23 insertions(+)
-
-diff --git a/src/shell-tray-icon.c b/src/shell-tray-icon.c
-index 9b79c2b..c9be146 100644
---- a/src/shell-tray-icon.c
-+++ b/src/shell-tray-icon.c
-@@ -260,6 +260,10 @@ shell_tray_icon_set_child (ShellTrayIcon *tray_icon,
- "window-created",
- G_CALLBACK (shell_tray_icon_window_created_cb),
- tray_icon);
-+
-+ g_signal_connect_object (tray_child, "reconfigured",
-+ G_CALLBACK (clutter_actor_queue_relayout),
-+ tray_icon, G_CONNECT_SWAPPED);
- }
-
- /*
-diff --git a/src/tray/na-xembed.c b/src/tray/na-xembed.c
-index d4c389c..be08d6d 100644
---- a/src/tray/na-xembed.c
-+++ b/src/tray/na-xembed.c
-@@ -91,6 +91,7 @@ G_DEFINE_TYPE_WITH_PRIVATE (NaXembed, na_xembed, G_TYPE_OBJECT)
- enum {
- PLUG_ADDED,
- PLUG_REMOVED,
-+ RECONFIGURED,
- LAST_SIGNAL
- };
-
-@@ -548,6 +549,15 @@ xembed_filter_func (MetaX11Display *x11_display,
- }
- break;
- }
-+ case ConfigureNotify:
-+ {
-+ XConfigureEvent *xce = &xevent->xconfigure;
-+
-+ if (xce->window == priv->socket_window)
-+ g_signal_emit (xembed, signals[RECONFIGURED], 0);
-+
-+ break;
-+ }
- case DestroyNotify:
- {
- XDestroyWindowEvent *xdwe = &xevent->xdestroywindow;
-@@ -742,6 +752,14 @@ na_xembed_class_init (NaXembedClass *klass)
- NULL, NULL, NULL,
- G_TYPE_NONE, 0);
-
-+ signals[RECONFIGURED] =
-+ g_signal_new ("reconfigured",
-+ G_OBJECT_CLASS_TYPE (klass),
-+ G_SIGNAL_RUN_LAST,
-+ G_STRUCT_OFFSET (NaXembedClass, reconfigured),
-+ NULL, NULL, NULL,
-+ G_TYPE_NONE, 0);
-+
- props[PROP_X11_DISPLAY] =
- g_param_spec_object ("x11-display", NULL, NULL,
- META_TYPE_X11_DISPLAY,
-diff --git a/src/tray/na-xembed.h b/src/tray/na-xembed.h
-index 271060d..801c6a6 100644
---- a/src/tray/na-xembed.h
-+++ b/src/tray/na-xembed.h
-@@ -35,6 +35,7 @@ struct _NaXembedClass
-
- void (* plug_added) (NaXembed *xembed);
- void (* plug_removed) (NaXembed *xembed);
-+ void (* reconfigured) (NaXembed *xembed);
- };
-
- MetaX11Display * na_xembed_get_x11_display (NaXembed *xembed);
diff -Nru gnome-shell-48.4/debian/patches/tray-icons/shell-tray-icon-Use-available-space-when-that-s-defined.patch gnome-shell-48.7/debian/patches/tray-icons/shell-tray-icon-Use-available-space-when-that-s-defined.patch
--- gnome-shell-48.4/debian/patches/tray-icons/shell-tray-icon-Use-available-space-when-that-s-defined.patch 2025-08-18 14:35:38.000000000 +0000
+++ gnome-shell-48.7/debian/patches/tray-icons/shell-tray-icon-Use-available-space-when-that-s-defined.patch 1970-01-01 00:00:00.000000000 +0000
@@ -1,111 +0,0 @@
-From: =?utf-8?b?Ik1hcmNvIFRyZXZpc2FuIChUcmV2acOxbyki?=
-Date: Wed, 1 May 2024 04:18:50 +0200
-Subject: shell-tray-icon: Use available space when that's defined
-
-Origin: https://gitlab.gnome.org/3v1n0/gnome-shell/-/commits/tray-offscreen-xwindows
-Bug: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7613
-Bug-Ubuntu: https://bugs.launchpad.net/bugs/2012388
----
- src/shell-tray-icon.c | 4 ++++
- src/tray/na-xembed.c | 29 +++++++++++++++++++++++++++++
- src/tray/na-xembed.h | 4 ++++
- 3 files changed, 37 insertions(+)
-
-diff --git a/src/shell-tray-icon.c b/src/shell-tray-icon.c
-index 462945e..39204bf 100644
---- a/src/shell-tray-icon.c
-+++ b/src/shell-tray-icon.c
-@@ -185,6 +185,10 @@ shell_tray_icon_allocate (ClutterActor *actor,
-
- CLUTTER_ACTOR_CLASS (shell_tray_icon_parent_class)->allocate (actor, box);
-
-+ na_xembed_set_available_size (NA_XEMBED (tray_icon->tray_child),
-+ roundf (clutter_actor_box_get_width (box)),
-+ roundf (clutter_actor_box_get_height (box)));
-+
- /* Find the actor's new coordinates in terms of the stage.
- */
- clutter_actor_get_transformed_position (actor, &wx, &wy);
-diff --git a/src/tray/na-xembed.c b/src/tray/na-xembed.c
-index 1be1e9d..d4c389c 100644
---- a/src/tray/na-xembed.c
-+++ b/src/tray/na-xembed.c
-@@ -43,6 +43,8 @@ struct _NaXembedPrivate
- int request_height;
- int current_width;
- int current_height;
-+ int available_width;
-+ int available_height;
- int resize_count;
- int xembed_version;
-
-@@ -141,6 +143,8 @@ na_xembed_end_embedding (NaXembed *xembed)
- priv->current_width = 0;
- priv->current_height = 0;
- priv->resize_count = 0;
-+ priv->available_width = -1;
-+ priv->available_height = -1;
- g_clear_handle_id (&priv->resize_id, g_source_remove);
- }
-
-@@ -186,6 +190,11 @@ na_xembed_synchronize_size (NaXembed *xembed)
- width = priv->request_width;
- height = priv->request_height;
-
-+ if (priv->available_width >= 0)
-+ width = priv->available_width;
-+ if (priv->available_height >= 0)
-+ height = priv->available_height;
-+
- XMoveResizeWindow (xdisplay,
- priv->socket_window,
- x, y,
-@@ -745,6 +754,10 @@ na_xembed_class_init (NaXembedClass *klass)
- static void
- na_xembed_init (NaXembed *xembed)
- {
-+ NaXembedPrivate *priv = na_xembed_get_instance_private (xembed);
-+
-+ priv->available_width = -1;
-+ priv->available_height = -1;
- }
-
- void
-@@ -809,6 +822,22 @@ na_xembed_get_size (NaXembed *xembed,
- *height = priv->request_height;
- }
-
-+void
-+na_xembed_set_available_size (NaXembed *xembed,
-+ int width,
-+ int height)
-+{
-+ NaXembedPrivate *priv = na_xembed_get_instance_private (xembed);
-+
-+ if (priv->available_width == width && priv->available_height == height)
-+ return;
-+
-+ priv->available_width = width;
-+ priv->available_height = height;
-+
-+ na_xembed_resize (xembed);
-+}
-+
- void
- na_xembed_get_root_position (NaXembed *xembed,
- int *x,
-diff --git a/src/tray/na-xembed.h b/src/tray/na-xembed.h
-index 4466305..271060d 100644
---- a/src/tray/na-xembed.h
-+++ b/src/tray/na-xembed.h
-@@ -58,6 +58,10 @@ void na_xembed_get_size (NaXembed *xembed,
- int *width,
- int *height);
-
-+void na_xembed_set_available_size (NaXembed *xembed,
-+ int width,
-+ int height);
-+
- void na_xembed_set_background_color (NaXembed *xembed,
- const CoglColor *color);
-
diff -Nru gnome-shell-48.4/debian/patches/tray-icons/tray-Zero-initialize-the-event-structures-on-initializati.patch gnome-shell-48.7/debian/patches/tray-icons/tray-Zero-initialize-the-event-structures-on-initializati.patch
--- gnome-shell-48.4/debian/patches/tray-icons/tray-Zero-initialize-the-event-structures-on-initializati.patch 2025-08-18 14:35:38.000000000 +0000
+++ gnome-shell-48.7/debian/patches/tray-icons/tray-Zero-initialize-the-event-structures-on-initializati.patch 1970-01-01 00:00:00.000000000 +0000
@@ -1,55 +0,0 @@
-From: =?utf-8?b?Ik1hcmNvIFRyZXZpc2FuIChUcmV2acOxbyki?=
-Date: Wed, 1 May 2024 04:22:29 +0200
-Subject: tray: Zero-initialize the event structures on initialization
-
-Origin: https://gitlab.gnome.org/3v1n0/gnome-shell/-/commits/tray-offscreen-xwindows
-Bug-Ubuntu: https://bugs.launchpad.net/bugs/2012388
----
- src/tray/na-tray-child.c | 6 +++---
- src/tray/na-xembed.c | 6 ++----
- 2 files changed, 5 insertions(+), 7 deletions(-)
-
-diff --git a/src/tray/na-tray-child.c b/src/tray/na-tray-child.c
-index 0911995..9ec6670 100644
---- a/src/tray/na-tray-child.c
-+++ b/src/tray/na-tray-child.c
-@@ -260,9 +260,9 @@ na_tray_child_emulate_event (NaTrayChild *tray_child,
- ClutterEvent *event)
- {
- MetaX11Display *x11_display;
-- XKeyEvent xkevent;
-- XButtonEvent xbevent;
-- XCrossingEvent xcevent;
-+ XKeyEvent xkevent = {0};
-+ XButtonEvent xbevent = {0};
-+ XCrossingEvent xcevent = {0};
- Display *xdisplay;
- Window xwindow, xrootwindow;
- ClutterEventType event_type = clutter_event_type (event);
-diff --git a/src/tray/na-xembed.c b/src/tray/na-xembed.c
-index be08d6d..398669c 100644
---- a/src/tray/na-xembed.c
-+++ b/src/tray/na-xembed.c
-@@ -115,9 +115,8 @@ xembed_send_message (NaXembed *xembed,
- {
- NaXembedPrivate *priv = na_xembed_get_instance_private (xembed);
- Display *xdisplay = meta_x11_display_get_xdisplay (priv->x11_display);
-- XClientMessageEvent xclient;
-+ XClientMessageEvent xclient = {0};
-
-- memset (&xclient, 0, sizeof (xclient));
- xclient.window = recipient;
- xclient.type = ClientMessage;
- xclient.message_type = priv->atom__XEMBED;
-@@ -153,10 +152,9 @@ static void
- na_xembed_send_configure_event (NaXembed *xembed)
- {
- NaXembedPrivate *priv = na_xembed_get_instance_private (xembed);
-- XConfigureEvent xconfigure;
-+ XConfigureEvent xconfigure = {0};
- Display *xdisplay = meta_x11_display_get_xdisplay (priv->x11_display);
-
-- memset (&xconfigure, 0, sizeof (xconfigure));
- xconfigure.type = ConfigureNotify;
-
- xconfigure.event = priv->plug_window;
diff -Nru gnome-shell-48.4/debian/patches/tray-icons/tray-na-tray-manager-Remove-outdated-comment-and-return-v.patch gnome-shell-48.7/debian/patches/tray-icons/tray-na-tray-manager-Remove-outdated-comment-and-return-v.patch
--- gnome-shell-48.4/debian/patches/tray-icons/tray-na-tray-manager-Remove-outdated-comment-and-return-v.patch 2025-08-18 14:35:38.000000000 +0000
+++ gnome-shell-48.7/debian/patches/tray-icons/tray-na-tray-manager-Remove-outdated-comment-and-return-v.patch 1970-01-01 00:00:00.000000000 +0000
@@ -1,33 +0,0 @@
-From: =?utf-8?b?Ik1hcmNvIFRyZXZpc2FuIChUcmV2acOxbyki?=
-Date: Wed, 1 May 2024 20:54:46 +0200
-Subject: tray/na-tray-manager: Remove outdated comment and return value
-
-Origin: https://gitlab.gnome.org/3v1n0/gnome-shell/-/commits/tray-offscreen-xwindows
-Bug-Ubuntu: https://bugs.launchpad.net/bugs/2012388
----
- src/tray/na-tray-manager.c | 5 +----
- 1 file changed, 1 insertion(+), 4 deletions(-)
-
-diff --git a/src/tray/na-tray-manager.c b/src/tray/na-tray-manager.c
-index 2d95d6a..7c630bd 100644
---- a/src/tray/na-tray-manager.c
-+++ b/src/tray/na-tray-manager.c
-@@ -244,7 +244,7 @@ na_tray_manager_new (MetaX11Display *x11_display)
- NULL);
- }
-
--static gboolean
-+static void
- na_tray_manager_plug_removed (NaTrayChild *tray_child,
- NaTrayManager *manager)
- {
-@@ -255,9 +255,6 @@ na_tray_manager_plug_removed (NaTrayChild *tray_child,
- g_hash_table_remove (manager->children,
- GINT_TO_POINTER (icon_window));
- g_signal_emit (manager, manager_signals[TRAY_ICON_REMOVED], 0, tray_child);
--
-- /* This destroys the socket. */
-- return FALSE;
- }
-
- static void
diff -Nru gnome-shell-48.4/debian/patches/tray-icons/tray-na-xembed-Destroy-socket-window-when-ending-the-embe.patch gnome-shell-48.7/debian/patches/tray-icons/tray-na-xembed-Destroy-socket-window-when-ending-the-embe.patch
--- gnome-shell-48.4/debian/patches/tray-icons/tray-na-xembed-Destroy-socket-window-when-ending-the-embe.patch 2025-08-18 14:35:38.000000000 +0000
+++ gnome-shell-48.7/debian/patches/tray-icons/tray-na-xembed-Destroy-socket-window-when-ending-the-embe.patch 1970-01-01 00:00:00.000000000 +0000
@@ -1,111 +0,0 @@
-From: =?utf-8?b?Ik1hcmNvIFRyZXZpc2FuIChUcmV2acOxbyki?=
-Date: Wed, 1 May 2024 05:56:48 +0200
-Subject: tray/na-xembed: Destroy socket window when ending the embedding
-
-Currently when embedding a tray icon is ended we are leaving the X11
-socket window around as we don't really destroy it, while we're just
-listening for its child destruction.
-
-So, when embedding is ending we need to make sure that:
- - If the plug window is still alive, move it back to its old parent
- (normally that's the root window, but we query for it, to be sure)
- - If the plug window has been already destroyed or reparented (by us or
- by something else), we've to just destroy the socket window
-
-Origin: https://gitlab.gnome.org/3v1n0/gnome-shell/-/commits/tray-offscreen-xwindows
-Bug: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7614
-Bug-Ubuntu: https://bugs.launchpad.net/bugs/2012388
----
- src/tray/na-xembed.c | 39 ++++++++++++++++++++++++++++++++++++++-
- 1 file changed, 38 insertions(+), 1 deletion(-)
-
-diff --git a/src/tray/na-xembed.c b/src/tray/na-xembed.c
-index 4ef3666..588e034 100644
---- a/src/tray/na-xembed.c
-+++ b/src/tray/na-xembed.c
-@@ -36,6 +36,7 @@ struct _NaXembedPrivate
- MetaX11Display *x11_display;
- Window socket_window;
- Window plug_window;
-+ Window old_parent;
-
- int root_x;
- int root_y;
-@@ -139,7 +140,26 @@ na_xembed_end_embedding (NaXembed *xembed)
- {
- NaXembedPrivate *priv = na_xembed_get_instance_private (xembed);
-
-+ if (priv->socket_window)
-+ {
-+ Display *xdisplay = meta_x11_display_get_xdisplay (priv->x11_display);
-+
-+ mtk_x11_error_trap_push (xdisplay);
-+
-+ if (priv->plug_window && priv->old_parent)
-+ XReparentWindow (xdisplay,
-+ priv->plug_window,
-+ priv->old_parent,
-+ 0, 0);
-+
-+ XDestroyWindow (xdisplay, priv->socket_window);
-+ priv->socket_window = None;
-+
-+ mtk_x11_error_trap_pop (xdisplay);
-+ }
-+
- priv->plug_window = None;
-+ priv->old_parent = None;
- priv->current_width = 0;
- priv->current_height = 0;
- priv->resize_count = 0;
-@@ -413,6 +433,18 @@ na_xembed_add_window (NaXembed *xembed,
- &socket_attrs);
-
- XUnmapWindow (xdisplay, priv->plug_window); /* Shouldn't actually be necessary for XEMBED, but just in case */
-+
-+ if (!priv->old_parent)
-+ {
-+ g_autofree Window *children = NULL;
-+ unsigned int n_children;
-+ Window root;
-+
-+ if (!XQueryTree (xdisplay, priv->plug_window, &root, &priv->old_parent,
-+ &children, &n_children))
-+ priv->old_parent = meta_x11_display_get_xroot (priv->x11_display);
-+ }
-+
- XReparentWindow (xdisplay,
- priv->plug_window,
- priv->socket_window,
-@@ -563,10 +595,14 @@ xembed_filter_func (MetaX11Display *x11_display,
- /* Note that we get destroy notifies both from SubstructureNotify on
- * our window and StructureNotify on socket->plug_window
- */
-+ if (priv->socket_window && xdwe->window == priv->socket_window)
-+ priv->socket_window = None;
-+
- if (priv->plug_window && (xdwe->window == priv->plug_window))
- {
- g_object_ref (xembed);
- g_signal_emit (xembed, signals[PLUG_REMOVED], 0);
-+ priv->plug_window = None;
- na_xembed_end_embedding (xembed);
- g_object_unref (xembed);
- }
-@@ -631,6 +667,7 @@ xembed_filter_func (MetaX11Display *x11_display,
- {
- g_object_ref (xembed);
- g_signal_emit (xembed, signals[PLUG_REMOVED], 0);
-+ priv->old_parent = None;
- na_xembed_end_embedding (xembed);
- g_object_unref (xembed);
- }
-@@ -696,7 +733,7 @@ na_xembed_finalize (GObject *object)
- if (priv->x11_display && priv->event_func_id)
- meta_x11_display_remove_event_func (priv->x11_display, priv->event_func_id);
-
-- if (priv->plug_window)
-+ if (priv->plug_window || priv->socket_window)
- na_xembed_end_embedding (xembed);
-
- G_OBJECT_CLASS (na_xembed_parent_class)->finalize (object);
diff -Nru gnome-shell-48.4/debian/patches/tray-icons/tray-na-xembed-Use-XShape-to-remove-input-on-socket-windo.patch gnome-shell-48.7/debian/patches/tray-icons/tray-na-xembed-Use-XShape-to-remove-input-on-socket-windo.patch
--- gnome-shell-48.4/debian/patches/tray-icons/tray-na-xembed-Use-XShape-to-remove-input-on-socket-windo.patch 2025-08-18 14:35:38.000000000 +0000
+++ gnome-shell-48.7/debian/patches/tray-icons/tray-na-xembed-Use-XShape-to-remove-input-on-socket-windo.patch 1970-01-01 00:00:00.000000000 +0000
@@ -1,90 +0,0 @@
-From: =?utf-8?b?Ik1hcmNvIFRyZXZpc2FuIChUcmV2acOxbyki?=
-Date: Wed, 1 May 2024 22:34:58 +0200
-Subject: tray/na-xembed: Use XShape to remove input on socket window
-
-We don't want this window to take any input as, a part from blocking the
-events on the shell representation itself, they may potentially make the
-plugged window to do anything with the event is processing (such as
-showing tooltips). And we don't want this since we only want to send to
-those windows only the synthetic events that we explicitly control.
-
-This was already the case before of commit ab60902058 but a similar
-approach was not replicated, leading to input events being fully
-processed from tray icons plugs.
-
-It requires adding an explicit build dependency on Xext, but this is
-something that mutter already depends on so not really a new dependency
-
-Origin: https://gitlab.gnome.org/3v1n0/gnome-shell/-/commits/tray-offscreen-xwindows
-Bug: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7613
-Bug-Ubuntu: https://bugs.launchpad.net/bugs/2012388
----
- meson.build | 1 +
- src/tray/meson.build | 2 +-
- src/tray/na-xembed.c | 15 +++++++++++++++
- 3 files changed, 17 insertions(+), 1 deletion(-)
-
-diff --git a/meson.build b/meson.build
-index e0ac102..6564149 100644
---- a/meson.build
-+++ b/meson.build
-@@ -93,6 +93,7 @@ have_x11 = mutter_dep.get_variable('have_x11') == 'true'
- have_x11_client = mutter_dep.get_variable('have_x11_client') == 'true'
- if have_x11_client or have_x11
- x11_dep = dependency('x11')
-+ xext_dep = dependency('xext')
- xfixes_dep = dependency('xfixes')
- endif
-
-diff --git a/src/tray/meson.build b/src/tray/meson.build
-index 2fc73f3..c91e940 100644
---- a/src/tray/meson.build
-+++ b/src/tray/meson.build
-@@ -9,6 +9,6 @@ tray_sources = [
-
- libtray = static_library('tray', tray_sources,
- c_args: ['-DG_LOG_DOMAIN="notification_area"'],
-- dependencies: [mutter_dep, mtk_dep, xfixes_dep],
-+ dependencies: [mutter_dep, mtk_dep, xfixes_dep, xext_dep],
- include_directories: conf_inc
- )
-diff --git a/src/tray/na-xembed.c b/src/tray/na-xembed.c
-index 75af21a..1be1e9d 100644
---- a/src/tray/na-xembed.c
-+++ b/src/tray/na-xembed.c
-@@ -24,6 +24,7 @@
- #include "na-xembed.h"
-
- #include
-+#include
- #include
- #include
- #include
-@@ -362,6 +363,7 @@ na_xembed_add_window (NaXembed *xembed,
- {
- XSetWindowAttributes socket_attrs;
- XWindowAttributes plug_attrs;
-+ int shape_major, shape_minor;
- int result;
-
- result = XGetWindowAttributes (xdisplay, priv->plug_window, &plug_attrs);
-@@ -407,6 +409,19 @@ na_xembed_add_window (NaXembed *xembed,
- priv->plug_window,
- priv->socket_window,
- 0, 0);
-+
-+ /* Set an empty input shape on the window so that the socket does not
-+ * get any input. Without this we the tray may still get events and for
-+ * example show tooltips on hover which we don't want.
-+ * This is the quickest way to achieve this, without having to deal these
-+ * windows with specific code in mutter.
-+ */
-+ if (XShapeQueryExtension (xdisplay, &shape_major, &shape_minor))
-+ {
-+ XShapeSelectInput (xdisplay, priv->socket_window, NoEventMask);
-+ XShapeCombineRectangles (xdisplay, priv->socket_window, ShapeInput,
-+ 0, 0, NULL, 0, ShapeSet, 0);
-+ }
- }
-
- priv->have_size = FALSE;
diff -Nru gnome-shell-48.4/debian/patches/tray-icons/tray-na-xembed-Use-proper-indentation-style-header.patch gnome-shell-48.7/debian/patches/tray-icons/tray-na-xembed-Use-proper-indentation-style-header.patch
--- gnome-shell-48.4/debian/patches/tray-icons/tray-na-xembed-Use-proper-indentation-style-header.patch 2025-08-18 14:35:38.000000000 +0000
+++ gnome-shell-48.7/debian/patches/tray-icons/tray-na-xembed-Use-proper-indentation-style-header.patch 1970-01-01 00:00:00.000000000 +0000
@@ -1,20 +0,0 @@
-From: =?utf-8?b?Ik1hcmNvIFRyZXZpc2FuIChUcmV2acOxbyki?=
-Date: Wed, 1 May 2024 05:54:31 +0200
-Subject: tray/na-xembed: Use proper indentation style header
-
-Origin: https://gitlab.gnome.org/3v1n0/gnome-shell/-/commits/tray-offscreen-xwindows
-Bug-Ubuntu: https://bugs.launchpad.net/bugs/2012388
----
- src/tray/na-xembed.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/tray/na-xembed.c b/src/tray/na-xembed.c
-index 398669c..4ef3666 100644
---- a/src/tray/na-xembed.c
-+++ b/src/tray/na-xembed.c
-@@ -1,4 +1,4 @@
--/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-+/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
- /* Copyright (C) 2022 Red Hat Inc.
- *
- * This library is free software; you can redistribute it and/or
diff -Nru gnome-shell-48.4/debian/salsa-ci.yml gnome-shell-48.7/debian/salsa-ci.yml
--- gnome-shell-48.4/debian/salsa-ci.yml 2025-08-18 14:35:38.000000000 +0000
+++ gnome-shell-48.7/debian/salsa-ci.yml 2025-12-09 11:38:09.000000000 +0000
@@ -1,3 +1,7 @@
---
+
+variables:
+ SALSA_CI_DISABLE_AUTOPKGTEST_I386: 0
+
include:
- https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/recipes/debian.yml
diff -Nru gnome-shell-48.4/debian/tests/build-and-test gnome-shell-48.7/debian/tests/build-and-test
--- gnome-shell-48.4/debian/tests/build-and-test 1970-01-01 00:00:00.000000000 +0000
+++ gnome-shell-48.7/debian/tests/build-and-test 2025-12-09 11:38:09.000000000 +0000
@@ -0,0 +1,19 @@
+#!/bin/sh
+
+set -e
+
+# Define cleanup function
+cleanup() {
+ exit_code=$?
+ cp -afr obj-*/meson-logs "$AUTOPKGTEST_ARTIFACTS"
+ exit $exit_code
+}
+
+trap cleanup EXIT
+
+echo "debian/rules override_dh_auto_configure "
+debian/rules override_dh_auto_configure
+
+echo "debian/rules override_dh_auto_test"
+env META_DBUS_RUNNER_DISABLE_LOGIND_PASSTHROUGH=1 \
+ debian/rules override_dh_auto_test
diff -Nru gnome-shell-48.4/debian/tests/control gnome-shell-48.7/debian/tests/control
--- gnome-shell-48.4/debian/tests/control 1970-01-01 00:00:00.000000000 +0000
+++ gnome-shell-48.7/debian/tests/control 2025-12-09 11:38:09.000000000 +0000
@@ -0,0 +1,12 @@
+Tests: build-and-test
+Depends: @builddeps@
+Restrictions: allow-stderr
+
+Tests: shell-tests
+Classes: desktop
+# FIXME: We only actually depend on fewer components, but
+# until upstream does not support properly installed tests, we need
+# to generate few tools first.
+Depends: @builddeps@,
+ gnome-shell,
+Restrictions: allow-stderr skippable
diff -Nru gnome-shell-48.4/debian/tests/shell-tests gnome-shell-48.7/debian/tests/shell-tests
--- gnome-shell-48.4/debian/tests/shell-tests 1970-01-01 00:00:00.000000000 +0000
+++ gnome-shell-48.7/debian/tests/shell-tests 2025-12-09 11:38:09.000000000 +0000
@@ -0,0 +1,60 @@
+#!/bin/bash
+# autopkgtest check: Run the to verify gnome-shell works correctly
+# (C) 2025 Canonical Ltd.
+# Author: Marco Trevisan
+
+set -eu
+
+XDG_RUNTIME_DIR="$AUTOPKGTEST_TMP/runtime-dir"
+mkdir -m 700 "$XDG_RUNTIME_DIR"
+export XDG_RUNTIME_DIR
+
+build_dir=$AUTOPKGTEST_TMP/build_dir
+meson "$build_dir" --prefix=/usr
+ninja -C "$build_dir" src/gnome-shell-perf-helper
+
+export G_DEBUG="fatal-criticals"
+export META_DBUS_RUNNER_DISABLE_LOGIND_PASSTHROUGH=1
+export G_MESSAGES_DEBUG="GNOME Shell"
+export GNOME_SHELL_BUILDDIR="$build_dir/src"
+export SHELL_BACKGROUND_IMAGE="$PWD/data/background.png"
+
+if grep -qFw ID=ubuntu /etc/os-release; then
+ export GNOME_SHELL_SESSION_MODE="user"
+else
+ export GNOME_SHELL_SESSION_MODE="ubuntu"
+fi
+
+patch -d "${GNOME_SHELL_BUILDDIR}" -p1 --merge <<"EOF"
+--- a/gnome-shell-test-tool 2025-09-12 01:59:13.539304200 +0200
++++ b/gnome-shell-test-tool 2025-09-12 01:59:40.329774473 +0200
+@@ -42,7 +42,7 @@
+ args = []
+ if wrap:
+ args += wrap.split(' ')
+- args.append(os.path.join(self_dir, 'gnome-shell'))
++ args.append('/usr/bin/gnome-shell')
+
+ args.append('--automation-script')
+ args.append(options.script)
+EOF
+
+printf "Running as: "; id
+echo "Environment:"
+env | LC_ALL=C sort -u
+
+declare -A tests
+tests[basic]=""
+tests[closeWithActiveWindows]=""
+tests[headlessStart]="--hotplug"
+tests[fittsy]=""
+
+for i in "${!tests[@]}"; do
+ echo "##### Running test $i"
+ dbus-run-session \
+ xvfb-run -a \
+ "${GNOME_SHELL_BUILDDIR}/gnome-shell-test-tool" \
+ --headless \
+ "$PWD/tests/shell/$i.js" \
+ ${tests[$i]}
+done
diff -Nru gnome-shell-48.4/js/gdm/authList.js gnome-shell-48.7/js/gdm/authList.js
--- gnome-shell-48.4/js/gdm/authList.js 2025-08-03 10:53:34.000000000 +0000
+++ gnome-shell-48.7/js/gdm/authList.js 2025-11-24 14:16:08.000000000 +0000
@@ -16,6 +16,7 @@
*/
import Clutter from 'gi://Clutter';
+import GLib from 'gi://GLib';
import GObject from 'gi://GObject';
import Meta from 'gi://Meta';
import St from 'gi://St';
@@ -114,7 +115,7 @@
const laters = global.compositor.get_laters();
laters.add(Meta.LaterType.BEFORE_REDRAW, () => {
this._moveFocusToItems();
- return false;
+ return GLib.SOURCE_REMOVE;
});
}
}
diff -Nru gnome-shell-48.4/js/gdm/authPrompt.js gnome-shell-48.7/js/gdm/authPrompt.js
--- gnome-shell-48.4/js/gdm/authPrompt.js 2025-08-03 10:53:34.000000000 +0000
+++ gnome-shell-48.7/js/gdm/authPrompt.js 2025-11-24 14:16:08.000000000 +0000
@@ -134,6 +134,7 @@
this._inactiveEntry = null;
this._userVerifier.destroy();
this._userVerifier = null;
+ this._entry = null;
}
on_key_press_event(event) {
@@ -292,15 +293,25 @@
}
_updateEntry(secret) {
+ let newEntry, inactiveEntry;
+
if (secret && this._entry !== this._passwordEntry) {
- this._mainBox.replace_child(this._entry, this._passwordEntry);
- this._entry = this._passwordEntry;
- this._inactiveEntry = this._textEntry;
+ newEntry = this._passwordEntry;
+ inactiveEntry = this._textEntry;
} else if (!secret && this._entry !== this._textEntry) {
- this._mainBox.replace_child(this._entry, this._textEntry);
- this._entry = this._textEntry;
- this._inactiveEntry = this._passwordEntry;
+ newEntry = this._textEntry;
+ inactiveEntry = this._passwordEntry;
+ }
+
+ if (newEntry) {
+ this._mainBox.replace_child(this._entry, newEntry);
+ this._entry = newEntry;
+ this._inactiveEntry = inactiveEntry;
+
+ const {text, cursorPosition, selectionBound} = inactiveEntry.clutterText;
+ this._entry.clutterText.set({text, cursorPosition, selectionBound});
}
+
this._capsLockWarningLabel.visible = secret;
}
@@ -491,6 +502,7 @@
clear() {
this._entry.text = '';
+ this._inactiveEntry.text = '';
this.stopSpinning();
this._authList.clear();
this._authList.hide();
@@ -508,13 +520,13 @@
this._authList.set({
opacity: 0,
visible: true,
- reactive: false,
});
+ this.updateSensitivity(false);
this._authList.ease({
opacity: 255,
duration: MESSAGE_FADE_OUT_ANIMATION_TIME,
transition: Clutter.AnimationMode.EASE_OUT_QUAD,
- onComplete: () => (this._authList.reactive = true),
+ onComplete: () => this.updateSensitivity(true),
});
}
@@ -581,18 +593,25 @@
}
updateSensitivity(sensitive) {
- if (this._entry.reactive === sensitive)
+ let authWidget;
+
+ if (this._authList.visible)
+ authWidget = this._authList;
+ else
+ authWidget = this._entry;
+
+ if (authWidget.reactive === sensitive)
return;
- this._entry.reactive = sensitive;
+ authWidget.reactive = sensitive;
if (sensitive) {
- this._entry.grab_key_focus();
+ authWidget.grab_key_focus();
} else {
this.grab_key_focus();
- if (this._entry === this._passwordEntry)
- this._entry.password_visible = false;
+ if (authWidget === this._passwordEntry)
+ authWidget.password_visible = false;
}
}
diff -Nru gnome-shell-48.4/js/gdm/loginDialog.js gnome-shell-48.7/js/gdm/loginDialog.js
--- gnome-shell-48.4/js/gdm/loginDialog.js 2025-08-03 10:53:34.000000000 +0000
+++ gnome-shell-48.7/js/gdm/loginDialog.js 2025-11-24 14:16:08.000000000 +0000
@@ -204,7 +204,7 @@
const laters = global.compositor.get_laters();
laters.add(Meta.LaterType.BEFORE_REDRAW, () => {
this._moveFocusToItems();
- return false;
+ return GLib.SOURCE_REMOVE;
});
}
}
@@ -384,17 +384,20 @@
_populate() {
let ids = Gdm.get_session_ids();
- ids.sort();
if (ids.length <= 1) {
this._button.hide();
return;
}
- for (let i = 0; i < ids.length; i++) {
- let [sessionName, sessionDescription_] = Gdm.get_session_name_and_description(ids[i]);
+ const sessions = ids.map(id => {
+ const [sessionName] = Gdm.get_session_name_and_description(id);
+ return {id, sessionName};
+ });
+
+ sessions.sort((a, b) => a.sessionName.localeCompare(b.sessionName));
- let id = ids[i];
+ for (const {id, sessionName} of sessions) {
let item = new PopupMenu.PopupMenuItem(sessionName);
this._menu.addMenuItem(item);
this._items.set(id, item);
diff -Nru gnome-shell-48.4/js/gdm/util.js gnome-shell-48.7/js/gdm/util.js
--- gnome-shell-48.4/js/gdm/util.js 2025-08-03 10:53:34.000000000 +0000
+++ gnome-shell-48.7/js/gdm/util.js 2025-11-24 14:16:08.000000000 +0000
@@ -8,6 +8,7 @@
import * as OVirt from './oVirt.js';
import * as Vmware from './vmware.js';
import * as Main from '../ui/main.js';
+import {logErrorUnlessCancelled} from '../misc/errorUtils.js';
import {loadInterfaceXML} from '../misc/fileUtils.js';
import * as Params from '../misc/params.js';
import * as SmartcardManager from '../misc/smartcardManager.js';
@@ -240,8 +241,7 @@
await this._handlePendingMessages();
this._userVerifier.call_answer_query(serviceName, answer, this._cancellable, null);
} catch (e) {
- if (!e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.CANCELLED))
- logError(e);
+ logErrorUnlessCancelled(e);
}
}
@@ -858,8 +858,7 @@
this._retry(serviceName);
}
} catch (e) {
- if (!e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.CANCELLED))
- logError(e);
+ logErrorUnlessCancelled(e);
}
}
diff -Nru gnome-shell-48.4/js/misc/errorUtils.js gnome-shell-48.7/js/misc/errorUtils.js
--- gnome-shell-48.4/js/misc/errorUtils.js 2025-08-03 10:53:34.000000000 +0000
+++ gnome-shell-48.7/js/misc/errorUtils.js 2025-11-24 14:16:08.000000000 +0000
@@ -1,4 +1,6 @@
// Common code for displaying errors to the user in various dialogs
+import Gio from 'gi://Gio';
+import GLib from 'gi://GLib';
function formatSyntaxErrorLocation(error) {
const {fileName = '', lineNumber = 0, columnNumber = 0} = error;
@@ -64,3 +66,26 @@
return `(could not display error: ${e})`;
}
}
+
+/**
+ * Logs a stack trace for `error` with an optional prefix, unless the error
+ * matches `Gio.IOErrorEnum.CANCELLED`.
+ *
+ * @param {Error} error - the error to log
+ * @param {string?} prefix - optional prefix for the message
+ *
+ * @returns {boolean} whether the error was logged
+ */
+export function logErrorUnlessCancelled(error, prefix) {
+ if (error instanceof GLib.Error && Gio.DBusError.is_remote_error(error)) {
+ const errorName = Gio.DBusError.get_remote_error(error);
+ Gio.DBusError.strip_remote_error(error);
+ error = Gio.DBusError.new_for_dbus_error(errorName, error.message);
+ }
+
+ if (error.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.CANCELLED))
+ return false;
+
+ logError(error, prefix);
+ return true;
+}
diff -Nru gnome-shell-48.4/js/misc/ibusManager.js gnome-shell-48.7/js/misc/ibusManager.js
--- gnome-shell-48.4/js/misc/ibusManager.js 2025-08-03 10:53:34.000000000 +0000
+++ gnome-shell-48.7/js/misc/ibusManager.js 2025-11-24 14:16:08.000000000 +0000
@@ -6,6 +6,7 @@
import * as Signals from './signals.js';
import * as BoxPointer from '../ui/boxpointer.js';
+import {logErrorUnlessCancelled} from './errorUtils.js';
import * as IBusCandidatePopup from '../ui/ibusCandidatePopup.js';
@@ -172,11 +173,8 @@
}
this._updateReadiness();
} catch (e) {
- if (e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.CANCELLED))
- return;
-
- logError(e);
- this._clear();
+ if (logErrorUnlessCancelled(e))
+ this._clear();
}
}
@@ -185,10 +183,8 @@
await this._ibus.request_name_async(IBus.SERVICE_PANEL,
IBus.BusNameFlag.REPLACE_EXISTING, -1, this._cancellable);
} catch (e) {
- if (!e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.CANCELLED)) {
- logError(e);
+ if (logErrorUnlessCancelled(e))
this._clear();
- }
return;
}
@@ -287,8 +283,7 @@
this._MAX_INPUT_SOURCE_ACTIVATION_TIME,
this._cancellable);
} catch (e) {
- if (!e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.CANCELLED))
- logError(e);
+ logErrorUnlessCancelled(e);
}
}
diff -Nru gnome-shell-48.4/js/misc/inputMethod.js gnome-shell-48.7/js/misc/inputMethod.js
--- gnome-shell-48.4/js/misc/inputMethod.js 2025-08-03 10:53:34.000000000 +0000
+++ gnome-shell-48.7/js/misc/inputMethod.js 2025-11-24 14:16:08.000000000 +0000
@@ -4,6 +4,7 @@
import GObject from 'gi://GObject';
import IBus from 'gi://IBus';
+import {logErrorUnlessCancelled} from './errorUtils.js';
import * as Keyboard from '../ui/status/keyboard.js';
import * as Main from '../ui/main.js';
@@ -75,10 +76,8 @@
this._context = await this._ibus.create_input_context_async(
'gnome-shell', -1, this._cancellable);
} catch (e) {
- if (!e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.CANCELLED)) {
- logError(e);
+ if (logErrorUnlessCancelled(e))
this._clear();
- }
return;
}
diff -Nru gnome-shell-48.4/js/misc/keyboardManager.js gnome-shell-48.7/js/misc/keyboardManager.js
--- gnome-shell-48.4/js/misc/keyboardManager.js 2025-08-03 10:53:34.000000000 +0000
+++ gnome-shell-48.7/js/misc/keyboardManager.js 2025-11-24 14:16:08.000000000 +0000
@@ -42,7 +42,7 @@
class KeyboardManager {
constructor() {
- // The XKB protocol doesn't allow for more that 4 layouts in a
+ // The XKB protocol doesn't allow for more than 4 layouts in a
// keymap. Wayland doesn't impose this limit and libxkbcommon can
// handle up to 32 layouts but since we need to support X clients
// even as a Wayland compositor, we can't bump this.
@@ -103,10 +103,10 @@
this._current = null;
this._layoutInfos = {};
- for (let i = 0; i < ids.length; ++i) {
- let [found, , , _layout, _variant] = this._xkbInfo.get_layout_info(ids[i]);
+ for (const id of ids) {
+ let [found, , , layout, variant] = this._xkbInfo.get_layout_info(id);
if (found)
- this._layoutInfos[ids[i]] = {id: ids[i], layout: _layout, variant: _variant};
+ this._layoutInfos[id] = {id, layout, variant};
}
let i = 0;
@@ -139,10 +139,10 @@
if (!found)
[, , id] = GnomeDesktop.get_input_source_from_locale(DEFAULT_LOCALE);
- let _layout, _variant;
- [found, , , _layout, _variant] = this._xkbInfo.get_layout_info(id);
+ let layout, variant;
+ [found, , , layout, variant] = this._xkbInfo.get_layout_info(id);
if (found)
- return {layout: _layout, variant: _variant};
+ return {layout, variant};
else
return {layout: DEFAULT_LAYOUT, variant: DEFAULT_VARIANT};
}
diff -Nru gnome-shell-48.4/js/misc/loginManager.js gnome-shell-48.7/js/misc/loginManager.js
--- gnome-shell-48.4/js/misc/loginManager.js 2025-08-03 10:53:34.000000000 +0000
+++ gnome-shell-48.7/js/misc/loginManager.js 2025-11-24 14:16:08.000000000 +0000
@@ -127,40 +127,24 @@
let sessionId = GLib.getenv('XDG_SESSION_ID');
if (!sessionId) {
log('Unset XDG_SESSION_ID, getCurrentSessionProxy() called outside a user session. Asking logind directly.');
- const userProxy = await this.getCurrentUserProxy();
- let [session, objectPath] = userProxy.Display;
- if (session) {
- log(`Will monitor session ${session}`);
- sessionId = session;
- } else {
- log('Failed to find "Display" session; are we the greeter?');
-
- for ([session, objectPath] of userProxy.Sessions) {
- let sessionProxy = new SystemdLoginSession(Gio.DBus.system,
- 'org.freedesktop.login1',
- objectPath);
- log(`Considering ${session}, class=${sessionProxy.Class}`);
- if (sessionProxy.Class === 'greeter') {
- log(`Yes, will monitor session ${session}`);
- sessionId = session;
- break;
- }
- }
-
- if (!sessionId) {
- log('No, failed to get session from logind.');
- return null;
- }
+ try {
+ const autoSession = await SystemdLoginSession.newAsync(
+ Gio.DBus.system, 'org.freedesktop.login1', '/org/freedesktop/login1/session/auto');
+ sessionId = autoSession.Id;
+ } catch (error) {
+ logError(error, 'Failed to get session from logind');
+ return null;
}
}
+ log(`Will monitor session ${sessionId}`);
try {
const [objectPath] = await this._proxy.GetSessionAsync(sessionId);
this._currentSession = await SystemdLoginSession.newAsync(
Gio.DBus.system, 'org.freedesktop.login1', objectPath);
return this._currentSession;
} catch (error) {
- logError(error, 'Could not get a proxy for the current session');
+ logError(error, `Could not get proxy for session ${sessionId}`);
return null;
}
}
diff -Nru gnome-shell-48.4/js/misc/parentalControlsManager.js gnome-shell-48.7/js/misc/parentalControlsManager.js
--- gnome-shell-48.4/js/misc/parentalControlsManager.js 2025-08-03 10:53:34.000000000 +0000
+++ gnome-shell-48.7/js/misc/parentalControlsManager.js 2025-11-24 14:16:08.000000000 +0000
@@ -127,7 +127,7 @@
return this._initialized;
}
- // Calculate whether the given app (a Gio.DesktopAppInfo) should be shown
+ // Calculate whether the given app (a GioUnix.DesktopAppInfo) should be shown
// on the desktop, in search results, etc. The app should be shown if:
// - The .desktop file doesn’t say it should be hidden.
// - The executable from the .desktop file’s Exec line isn’t denied in
diff -Nru gnome-shell-48.4/js/misc/systemActions.js gnome-shell-48.7/js/misc/systemActions.js
--- gnome-shell-48.4/js/misc/systemActions.js 2025-08-03 10:53:34.000000000 +0000
+++ gnome-shell-48.7/js/misc/systemActions.js 2025-11-24 14:16:08.000000000 +0000
@@ -5,6 +5,7 @@
import GLib from 'gi://GLib';
import GObject from 'gi://GObject';
+import {logErrorUnlessCancelled} from './errorUtils.js';
import * as GnomeSession from './gnomeSession.js';
import * as LoginManager from './loginManager.js';
import * as Main from '../ui/main.js';
@@ -441,21 +442,21 @@
throw new Error('The logout action is not available!');
Main.overview.hide();
- this._session.LogoutAsync(0).catch(logError);
+ this._session.LogoutAsync(0).catch(logErrorUnlessCancelled);
}
activatePowerOff() {
if (!this._actions.get(POWER_OFF_ACTION_ID).available)
throw new Error('The power-off action is not available!');
- this._session.ShutdownAsync(0).catch(logError);
+ this._session.ShutdownAsync(0).catch(logErrorUnlessCancelled);
}
activateRestart() {
if (!this._actions.get(RESTART_ACTION_ID).available)
throw new Error('The restart action is not available!');
- this._session.RebootAsync().catch(logError);
+ this._session.RebootAsync().catch(logErrorUnlessCancelled);
}
activateSuspend() {
diff -Nru gnome-shell-48.4/js/misc/timeLimitsManager.js gnome-shell-48.7/js/misc/timeLimitsManager.js
--- gnome-shell-48.4/js/misc/timeLimitsManager.js 2025-08-03 10:53:34.000000000 +0000
+++ gnome-shell-48.7/js/misc/timeLimitsManager.js 2025-11-24 14:16:08.000000000 +0000
@@ -636,8 +636,9 @@
* Get the Unix timestamp (in real seconds since the epoch) for the start of
* today and the start of tomorrow.
*
- * To avoid problems due to 24:00-01:00 not existing on leap days,
- * arbitrarily say that the day starts at 03:00.
+ * To avoid problems due to 01:00-02:00 not existing (or existing twice) on
+ * daylight savings time transition days, arbitrarily say that the day
+ * starts at 03:00.
*
* @param {number} nowSecs ‘Current’ time to calculate from.
* @returns {number}
diff -Nru gnome-shell-48.4/js/portalHelper/main.js gnome-shell-48.7/js/portalHelper/main.js
--- gnome-shell-48.4/js/portalHelper/main.js 2025-08-03 10:53:34.000000000 +0000
+++ gnome-shell-48.7/js/portalHelper/main.js 2025-11-24 14:16:08.000000000 +0000
@@ -35,7 +35,7 @@
const CONNECTIVITY_CHECK_HOST = 'nmcheck.gnome.org';
const CONNECTIVITY_CHECK_URI = `http://${CONNECTIVITY_CHECK_HOST}`;
-const CONNECTIVITY_RECHECK_RATELIMIT_TIMEOUT = 30 * GLib.USEC_PER_SEC;
+const CONNECTIVITY_RECHECK_RATELIMIT_TIMEOUT = 5 * GLib.USEC_PER_SEC;
const HelperDBusInterface = loadInterfaceXML('org.gnome.Shell.PortalHelper');
@@ -109,7 +109,7 @@
const PortalWindow = GObject.registerClass(
class PortalWindow extends Gtk.ApplicationWindow {
- _init(application, url, timestamp, doneCallback) {
+ _init(application, url, timestamp, statusChangedCallback) {
super._init({
application,
title: _('Hotspot Login'),
@@ -132,9 +132,9 @@
this._uri = GLib.Uri.parse(url, HTTP_URI_FLAGS);
this._everSeenRedirect = false;
this._originalUrl = url;
- this._doneCallback = doneCallback;
+ this._statusChangedCallback = statusChangedCallback;
this._lastRecheck = 0;
- this._recheckAtExit = false;
+ this._recheckTimeoutId = 0;
this._networkSession = WebKit.NetworkSession.new_ephemeral();
this._networkSession.set_proxy_settings(WebKit.NetworkProxyMode.NO_PROXY, null);
@@ -180,10 +180,12 @@
}
vfunc_close_request() {
- if (this._recheckAtExit)
- this._doneCallback(PortalHelperResult.RECHECK);
- else
- this._doneCallback(PortalHelperResult.CANCELLED);
+ if (this._recheckTimeoutId) {
+ this._statusChangedCallback(PortalHelperResult.RECHECK);
+ GLib.source_remove(this._recheckTimeoutId);
+ this._recheckTimeoutId = 0;
+ }
+ this._statusChangedCallback(PortalHelperResult.CANCELLED);
return false;
}
@@ -236,13 +238,16 @@
return true;
}
+ if (type !== WebKit.PolicyDecisionType.NAVIGATION_ACTION)
+ return false;
+
const uri = GLib.Uri.parse(request.get_uri(), HTTP_URI_FLAGS);
if (uri.get_host() !== this._uri.get_host() && this._originalUrlWasGnome) {
if (uri.get_host() === CONNECTIVITY_CHECK_HOST && this._everSeenRedirect) {
// Yay, we got to gnome!
decision.ignore();
- this._doneCallback(PortalHelperResult.COMPLETED);
+ this._statusChangedCallback(PortalHelperResult.COMPLETED);
return true;
} else if (uri.get_host() !== CONNECTIVITY_CHECK_HOST) {
this._everSeenRedirect = true;
@@ -254,23 +259,24 @@
// (but ratelimit the checks, we don't want to spam
// nmcheck.gnome.org for portals that have 10 or more internal
// redirects - and unfortunately they exist)
- // If we hit the rate limit, we also queue a recheck
- // when the window is closed, just in case we miss the
- // final check and don't realize we're connected
- // This should not be a problem in the cancelled logic,
- // because if the user doesn't want to start the login,
- // we should not see any redirect at all, outside this._uri
-
- let now = GLib.get_monotonic_time();
- let shouldRecheck = (now - this._lastRecheck) >
- CONNECTIVITY_RECHECK_RATELIMIT_TIMEOUT;
-
- if (shouldRecheck) {
- this._lastRecheck = now;
- this._recheckAtExit = false;
- this._doneCallback(PortalHelperResult.RECHECK);
- } else {
- this._recheckAtExit = true;
+
+ if (this._recheckTimeoutId === 0) {
+ const now = GLib.get_monotonic_time();
+ const timeSinceLastRecheck = this._lastRecheck ? now - this._lastRecheck : 0;
+
+ if (timeSinceLastRecheck > CONNECTIVITY_RECHECK_RATELIMIT_TIMEOUT || this._lastRecheck === 0) {
+ this._lastRecheck = now;
+ this._statusChangedCallback(PortalHelperResult.RECHECK);
+ } else {
+ const seconds =
+ (CONNECTIVITY_RECHECK_RATELIMIT_TIMEOUT - timeSinceLastRecheck) /
+ GLib.USEC_PER_SEC;
+ this._recheckTimeoutId = GLib.timeout_add_seconds(GLib.PRIORITY_DEFAULT, seconds, () => {
+ this._statusChangedCallback(PortalHelperResult.RECHECK);
+ this._recheckTimeoutId = 0;
+ return GLib.SOURCE_REMOVE;
+ });
+ }
}
// Update the URI, in case of chained redirects, so we still
@@ -358,7 +364,7 @@
return;
top.window = new PortalWindow(this, top.url, top.timestamp, result => {
- this._dbusImpl.emit_signal('Done', new GLib.Variant('(ou)', [top.connection, result]));
+ this._dbusImpl.emit_signal('StatusChanged', new GLib.Variant('(ou)', [top.connection, result]));
});
}
});
diff -Nru gnome-shell-48.4/js/ui/components/networkAgent.js gnome-shell-48.7/js/ui/components/networkAgent.js
--- gnome-shell-48.4/js/ui/components/networkAgent.js 2025-08-03 10:53:34.000000000 +0000
+++ gnome-shell-48.7/js/ui/components/networkAgent.js 2025-11-24 14:16:08.000000000 +0000
@@ -473,7 +473,7 @@
else
this._readStdoutOldStyle();
- this._childWatch = GLib.child_watch_add(GLib.PRIORITY_DEFAULT, pid,
+ GLib.child_watch_add(GLib.PRIORITY_DEFAULT, pid,
this._vpnChildFinished.bind(this));
this._writeConnection();
@@ -505,8 +505,6 @@
return;
this.emit('destroy');
- if (this._childWatch)
- GLib.source_remove(this._childWatch);
this._stdin.close(null);
// Stdout is closed when we finish reading from it
@@ -515,7 +513,8 @@
}
_vpnChildFinished(pid, status, _requestObj) {
- this._childWatch = 0;
+ if (this._destroyed)
+ return;
if (this._newStylePlugin) {
// For new style plugin, all work is done in the async reading functions
// Just reap the process here
diff -Nru gnome-shell-48.4/js/ui/dash.js gnome-shell-48.7/js/ui/dash.js
--- gnome-shell-48.4/js/ui/dash.js 2025-08-03 10:53:34.000000000 +0000
+++ gnome-shell-48.7/js/ui/dash.js 2025-11-24 14:16:08.000000000 +0000
@@ -267,7 +267,7 @@
const laters = global.compositor.get_laters();
laters.add(Meta.LaterType.BEFORE_REDRAW, () => {
AppFavorites.getAppFavorites().removeFavorite(id);
- return false;
+ return GLib.SOURCE_REMOVE;
});
return true;
@@ -824,7 +824,17 @@
});
this._box.add_child(this._separator);
}
- let pos = nFavorites + this._animatingPlaceholdersCount;
+ let pos = nFavorites;
+ let itemsBeforeSeparator = 0;
+ for (const item of this._box.get_children()) {
+ if (item.animatingOut)
+ pos++;
+ itemsBeforeSeparator++;
+ // Assuming only one icon is moved at a time
+ // Or else we need to track removed favorite items
+ if (itemsBeforeSeparator > nFavorites)
+ break;
+ }
if (this._dragPlaceholder)
pos++;
this._box.set_child_at_index(this._separator, pos);
@@ -981,7 +991,7 @@
appFavorites.moveFavoriteToPos(id, favPos);
else
appFavorites.addFavoriteAtPos(id, favPos);
- return false;
+ return GLib.SOURCE_REMOVE;
});
return true;
diff -Nru gnome-shell-48.4/js/ui/dnd.js gnome-shell-48.7/js/ui/dnd.js
--- gnome-shell-48.4/js/ui/dnd.js 2025-08-03 10:53:34.000000000 +0000
+++ gnome-shell-48.7/js/ui/dnd.js 2025-11-24 14:16:08.000000000 +0000
@@ -519,7 +519,7 @@
},
});
- this._dragActor.get_transition('scale-x').connect('new-frame', () => {
+ this._dragActor.get_transition('scale-x')?.connect('new-frame', () => {
this._updateActorPosition(origScale,
origDragOffsetX, origDragOffsetY, transX, transY);
});
diff -Nru gnome-shell-48.4/js/ui/extensionSystem.js gnome-shell-48.7/js/ui/extensionSystem.js
--- gnome-shell-48.4/js/ui/extensionSystem.js 2025-08-03 10:53:34.000000000 +0000
+++ gnome-shell-48.7/js/ui/extensionSystem.js 2025-11-24 14:16:08.000000000 +0000
@@ -571,16 +571,6 @@
this.emit('extension-state-changed', extension);
}
- // Find and enable all the newly enabled extensions: UUIDs found in the
- // new setting, but not in the old one.
- const extensionsToEnable = newEnabledExtensions
- .filter(uuid => !this._enabledExtensions.includes(uuid) &&
- this._extensionSupportsSessionMode(uuid));
- for (const uuid of extensionsToEnable) {
- // eslint-disable-next-line no-await-in-loop
- await this._callExtensionEnable(uuid);
- }
-
// Find and disable all the newly disabled extensions: UUIDs found in the
// old setting, but not in the new one.
const extensionsToDisable = this._extensionOrder
@@ -594,6 +584,16 @@
await this._callExtensionDisable(uuid);
}
+ // Find and enable all the newly enabled extensions: UUIDs found in the
+ // new setting, but not in the old one.
+ const extensionsToEnable = newEnabledExtensions
+ .filter(uuid => !this._enabledExtensions.includes(uuid) &&
+ this._extensionSupportsSessionMode(uuid));
+ for (const uuid of extensionsToEnable) {
+ // eslint-disable-next-line no-await-in-loop
+ await this._callExtensionEnable(uuid);
+ }
+
this._enabledExtensions = newEnabledExtensions;
}
diff -Nru gnome-shell-48.4/js/ui/ibusCandidatePopup.js gnome-shell-48.7/js/ui/ibusCandidatePopup.js
--- gnome-shell-48.4/js/ui/ibusCandidatePopup.js 2025-08-03 10:53:34.000000000 +0000
+++ gnome-shell-48.7/js/ui/ibusCandidatePopup.js 2025-11-24 14:16:08.000000000 +0000
@@ -222,11 +222,13 @@
let rect = new Mtk.Rectangle({x, y, width: w, height: h});
rect = focusWindow.protocol_to_stage_rect(rect);
const windowActor = focusWindow.get_compositor_private();
+ // IBus GtkIMModule cannot get the shell scale.
+ const scale = windowActor.get_resource_scale();
this._setDummyCursorGeometry(
- windowActor.x + rect.x,
- windowActor.y + rect.y,
- rect.width,
- rect.height);
+ windowActor.x + rect.x / scale,
+ windowActor.y + rect.y / scale,
+ rect.width / scale,
+ rect.height / scale);
});
} catch {
// Only recent IBus versions have support for this signal
diff -Nru gnome-shell-48.4/js/ui/keyboard.js gnome-shell-48.7/js/ui/keyboard.js
--- gnome-shell-48.4/js/ui/keyboard.js 2025-08-03 10:53:34.000000000 +0000
+++ gnome-shell-48.7/js/ui/keyboard.js 2025-11-24 14:16:08.000000000 +0000
@@ -1914,11 +1914,21 @@
? this._focusWindowStartY - Main.layoutManager.keyboardBox.height
: this._focusWindowStartY;
+ let unmanaged = false;
+ const winUnmanagedId = window.connect('unmanaged', () => {
+ unmanaged = true;
+ });
+
windowActor.ease({
y: finalY,
duration: KEYBOARD_ANIMATION_TIME,
mode: Clutter.AnimationMode.EASE_OUT_QUAD,
onStopped: () => {
+ window.disconnect(winUnmanagedId);
+
+ if (unmanaged)
+ return;
+
windowActor.y = finalY;
this._windowSlideAnimationComplete(window, finalY);
},
diff -Nru gnome-shell-48.4/js/ui/layout.js gnome-shell-48.7/js/ui/layout.js
--- gnome-shell-48.4/js/ui/layout.js 2025-08-03 10:53:34.000000000 +0000
+++ gnome-shell-48.7/js/ui/layout.js 2025-11-24 14:16:08.000000000 +0000
@@ -308,7 +308,7 @@
// A dummy actor that tracks the mouse or text cursor, based on the
// position and size set in setDummyCursorGeometry.
- this.dummyCursor = new St.Widget({width: 0, height: 0, opacity: 0});
+ this.dummyCursor = new St.Widget({width: 0, height: 0, opacity: 0, name: 'Dummy Cursor'});
this.uiGroup.add_child(this.dummyCursor);
const feedbackGroup = global.compositor.get_feedback_group();
diff -Nru gnome-shell-48.4/js/ui/main.js gnome-shell-48.7/js/ui/main.js
--- gnome-shell-48.4/js/ui/main.js 2025-08-03 10:53:34.000000000 +0000
+++ gnome-shell-48.7/js/ui/main.js 2025-11-24 14:16:08.000000000 +0000
@@ -1,5 +1,6 @@
import Clutter from 'gi://Clutter';
import Gio from 'gi://Gio';
+import GioUnix from 'gi://GioUnix';
import GLib from 'gi://GLib';
import GObject from 'gi://GObject';
import Meta from 'gi://Meta';
@@ -166,7 +167,7 @@
let currentDesktop = GLib.getenv('XDG_CURRENT_DESKTOP');
if (!currentDesktop || !currentDesktop.split(':').includes('GNOME'))
- Gio.DesktopAppInfo.set_desktop_env('GNOME');
+ GioUnix.DesktopAppInfo.set_desktop_env('GNOME');
sessionMode = new SessionMode.SessionMode();
sessionMode.connect('updated', _sessionUpdated);
@@ -328,6 +329,8 @@
extensionManager = new ExtensionSystem.ExtensionManager();
extensionManager.init();
+ LoginManager.registerSessionWithGDM();
+
if (sessionMode.isGreeter && screenShield) {
layoutManager.connect('startup-prepared', () => {
screenShield.showDialog();
@@ -374,8 +377,6 @@
sessionMode.currentMode !== 'initial-setup')
_handleLockScreenWarning();
- LoginManager.registerSessionWithGDM();
-
if (perfModule) {
let perfOutput = GLib.getenv('SHELL_PERF_OUTPUT');
Scripting.runPerfScript(perfModule, perfOutput);
@@ -937,7 +938,7 @@
const laters = global.compositor.get_laters();
laters.add(Meta.LaterType.BEFORE_REDRAW, () => {
_runBeforeRedrawQueue();
- return false;
+ return GLib.SOURCE_REMOVE;
});
}
}
diff -Nru gnome-shell-48.4/js/ui/messageTray.js gnome-shell-48.7/js/ui/messageTray.js
--- gnome-shell-48.4/js/ui/messageTray.js 2025-08-03 10:53:34.000000000 +0000
+++ gnome-shell-48.7/js/ui/messageTray.js 2025-11-24 14:16:08.000000000 +0000
@@ -1077,6 +1077,7 @@
} else if (this._notificationState === State.SHOWING ||
this._notificationState === State.SHOWN) {
let expired = (this._userActiveWhileNotificationShown &&
+ this._notificationState === State.SHOWN &&
this._notificationTimeoutId === 0 &&
this._notification.urgency !== Urgency.CRITICAL &&
!this._pointerInNotification) || this._notificationExpired;
@@ -1250,7 +1251,7 @@
y: -this._bannerBin.height,
duration,
mode: Clutter.AnimationMode.EASE_OUT_BACK,
- onComplete: () => {
+ onStopped: () => {
this._notificationState = State.HIDDEN;
this._hideNotificationCompleted();
this._updateState();
diff -Nru gnome-shell-48.4/js/ui/notificationDaemon.js gnome-shell-48.7/js/ui/notificationDaemon.js
--- gnome-shell-48.4/js/ui/notificationDaemon.js 2025-08-03 10:53:34.000000000 +0000
+++ gnome-shell-48.7/js/ui/notificationDaemon.js 2025-11-24 14:16:08.000000000 +0000
@@ -188,8 +188,12 @@
case MessageTray.NotificationDestroyedReason.SOURCE_CLOSED:
notificationClosedReason = NotificationClosedReason.APP_CLOSED;
break;
+ default:
+ notificationClosedReason = NotificationClosedReason.UNDEFINED;
+ break;
}
this._emitNotificationClosed(id, notificationClosedReason);
+ notification.disconnectObject(this);
});
}
@@ -207,6 +211,7 @@
acknowledged: false,
});
notification.clearActions();
+ notification.disconnectObject(this);
let hasDefaultAction = false;
@@ -225,14 +230,14 @@
}
if (hasDefaultAction) {
- notification.connect('activated', () => {
+ notification.connectObject('activated', () => {
this._emitActivationToken(source, id);
this._emitActionInvoked(id, 'default');
- });
+ }, this);
} else {
- notification.connect('activated', () => {
+ notification.connectObject('activated', () => {
source.open();
- });
+ }, this);
}
switch (hints.urgency) {
diff -Nru gnome-shell-48.4/js/ui/overviewControls.js gnome-shell-48.7/js/ui/overviewControls.js
--- gnome-shell-48.4/js/ui/overviewControls.js 2025-08-03 10:53:34.000000000 +0000
+++ gnome-shell-48.7/js/ui/overviewControls.js 2025-11-24 14:16:08.000000000 +0000
@@ -51,7 +51,8 @@
this._cachedWorkspaceBoxes = new Map();
this._postAllocationCallbacks = [];
- stateAdjustment.connect('notify::value', () => this.layout_changed());
+ stateAdjustment.connectObject('notify::value',
+ () => this.layout_changed(), this);
this._workAreaBox = new Clutter.ActorBox();
global.display.connectObject(
@@ -340,19 +341,20 @@
this._workspaceAdjustment = Main.createWorkspacesAdjustment(this);
this._stateAdjustment = new OverviewAdjustment(this);
- this._stateAdjustment.connect('notify::value', this._update.bind(this));
+ this._stateAdjustment.connectObject('notify::value',
+ () => this._update(), this);
this._searchController = new SearchController.SearchController(
this._searchEntry,
this.dash.showAppsButton);
- this._searchController.connect('notify::search-active', this._onSearchChanged.bind(this));
+ this._searchController.connectObject('notify::search-active',
+ () => this._onSearchChanged(), this);
- Main.layoutManager.connect('monitors-changed', () => {
- this._thumbnailsBox.setMonitorIndex(Main.layoutManager.primaryIndex);
- });
+ Main.layoutManager.connectObject('monitors-changed', () =>
+ this._thumbnailsBox.setMonitorIndex(Main.layoutManager.primaryIndex), this);
this._thumbnailsBox = new WorkspaceThumbnail.ThumbnailsBox(
this._workspaceAdjustment, Main.layoutManager.primaryIndex);
- this._thumbnailsBox.connect('notify::should-show', () => {
+ this._thumbnailsBox.connectObject('notify::should-show', () => {
this._thumbnailsBox.show();
this._thumbnailsBox.ease_property('expand-fraction',
this._thumbnailsBox.should_show ? 1 : 0, {
@@ -360,7 +362,7 @@
mode: Clutter.AnimationMode.EASE_OUT_QUAD,
onComplete: () => this._updateThumbnailsBox(),
});
- });
+ }, this);
this._workspacesDisplay = new WorkspacesView.WorkspacesDisplay(
this,
@@ -384,8 +386,8 @@
this.dash,
this._stateAdjustment);
- this.dash.showAppsButton.connect('notify::checked',
- this._onShowAppsButtonToggled.bind(this));
+ this.dash.showAppsButton.connectObject('notify::checked',
+ () => this._onShowAppsButtonToggled(), this);
Main.ctrlAltTabManager.addGroup(
this.appDisplay,
@@ -414,7 +416,7 @@
this._a11ySettings = new Gio.Settings({schema_id: A11Y_SCHEMA});
this._lastOverlayKeyTime = 0;
- global.display.connect('overlay-key', () => {
+ global.display.connectObject('overlay-key', () => {
if (this._a11ySettings.get_boolean('stickykeys-enable'))
return;
@@ -433,7 +435,7 @@
this._shiftState(Meta.MotionDirection.UP);
else
Main.overview.toggle();
- });
+ }, this);
// connect_after to give search controller first dibs on the event
global.stage.connect_after('key-press-event', (actor, event) => {
@@ -553,6 +555,7 @@
if (thumbnailsBoxVisible) {
this._thumbnailsBox.opacity = 0;
this._thumbnailsBox.visible = thumbnailsBoxVisible;
+ this._thumbnailsBox.expandFraction = 1.0;
}
const params = {
@@ -560,10 +563,9 @@
duration: animate ? SIDE_CONTROLS_ANIMATION_TIME : 0,
mode: Clutter.AnimationMode.EASE_OUT_QUAD,
onComplete: () => {
- this._thumbnailsBox.set({
- visible: thumbnailsBoxVisible,
- expandFraction: thumbnailsBoxVisible ? 1.0 : 0.0,
- });
+ this._thumbnailsBox.visible = thumbnailsBoxVisible;
+ if (!thumbnailsBoxVisible)
+ this._thumbnailsBox.expandFraction = 0.0;
},
};
diff -Nru gnome-shell-48.4/js/ui/panel.js gnome-shell-48.7/js/ui/panel.js
--- gnome-shell-48.4/js/ui/panel.js 2025-08-03 10:53:34.000000000 +0000
+++ gnome-shell-48.7/js/ui/panel.js 2025-11-24 14:16:08.000000000 +0000
@@ -614,7 +614,7 @@
* Insert indicator and quick settings items at
* appropriate positions
*
- * @param {PanelMenu.Button} indicator
+ * @param {SystemIndicator} indicator
* @param {number=} colSpan
*/
addExternalIndicator(indicator, colSpan = 1) {
diff -Nru gnome-shell-48.4/js/ui/panelMenu.js gnome-shell-48.7/js/ui/panelMenu.js
--- gnome-shell-48.4/js/ui/panelMenu.js 2025-08-03 10:53:34.000000000 +0000
+++ gnome-shell-48.7/js/ui/panelMenu.js 2025-11-24 14:16:08.000000000 +0000
@@ -105,7 +105,7 @@
if (dontCreateMenu)
this.menu = new PopupMenu.PopupDummyMenu(this);
else
- this.setMenu(new PopupMenu.PopupMenu(this, menuAlignment, St.Side.TOP, 0));
+ this.setMenu(new PopupMenu.PopupMenu(this, menuAlignment, St.Side.TOP));
this.connect('key-press-event',
(o, ev) => global.focus_manager.navigate_from_event(ev));
diff -Nru gnome-shell-48.4/js/ui/popupMenu.js gnome-shell-48.7/js/ui/popupMenu.js
--- gnome-shell-48.4/js/ui/popupMenu.js 2025-08-03 10:53:34.000000000 +0000
+++ gnome-shell-48.7/js/ui/popupMenu.js 2025-11-24 14:16:08.000000000 +0000
@@ -1119,6 +1119,13 @@
this.actor.get_parent().set_child_above_sibling(this.actor, null);
+ /* The position calculation expects the source actor allocation to be
+ * up to date, so queue relayout on parent to ensure it gets allocated
+ * first.
+ */
+ if (!this.sourceActor?.has_allocation())
+ this.sourceActor?.get_parent().queue_relayout();
+
this.emit('open-state-changed', true);
}
diff -Nru gnome-shell-48.4/js/ui/remoteSearch.js gnome-shell-48.7/js/ui/remoteSearch.js
--- gnome-shell-48.4/js/ui/remoteSearch.js 2025-08-03 10:53:34.000000000 +0000
+++ gnome-shell-48.7/js/ui/remoteSearch.js 2025-11-24 14:16:08.000000000 +0000
@@ -1,5 +1,6 @@
import GdkPixbuf from 'gi://GdkPixbuf';
import Gio from 'gi://Gio';
+import GioUnix from 'gi://GioUnix';
import GLib from 'gi://GLib';
import Shell from 'gi://Shell';
import St from 'gi://St';
@@ -96,7 +97,7 @@
let appInfo = null;
try {
let desktopId = keyfile.get_string(group, 'DesktopId');
- appInfo = Gio.DesktopAppInfo.new(desktopId);
+ appInfo = GioUnix.DesktopAppInfo.new(desktopId);
if (!appInfo.should_show())
return;
} catch {
diff -Nru gnome-shell-48.4/js/ui/screenShield.js gnome-shell-48.7/js/ui/screenShield.js
--- gnome-shell-48.4/js/ui/screenShield.js 2025-08-03 10:53:34.000000000 +0000
+++ gnome-shell-48.7/js/ui/screenShield.js 2025-11-24 14:16:08.000000000 +0000
@@ -340,7 +340,7 @@
_onShortLightbox(lightBox) {
if (lightBox.active)
- this._completeLockScreenShown();
+ this._setActive(true);
}
showDialog() {
@@ -499,12 +499,9 @@
if (params.fadeToBlack)
this._activateFade(this._shortLightbox, 0);
- this._completeLockScreenShown();
+ this._setActive(true);
}
- }
- _completeLockScreenShown() {
- this._setActive(true);
this.emit('lock-screen-shown');
}
diff -Nru gnome-shell-48.4/js/ui/screenshot.js gnome-shell-48.7/js/ui/screenshot.js
--- gnome-shell-48.4/js/ui/screenshot.js 2025-08-03 10:53:34.000000000 +0000
+++ gnome-shell-48.7/js/ui/screenshot.js 2025-11-24 14:16:08.000000000 +0000
@@ -65,6 +65,9 @@
else
this.close();
});
+
+ if (!this._widget.label_actor)
+ this._widget.label_actor = this;
}
open() {
diff -Nru gnome-shell-48.4/js/ui/search.js gnome-shell-48.7/js/ui/search.js
--- gnome-shell-48.4/js/ui/search.js 2025-08-03 10:53:34.000000000 +0000
+++ gnome-shell-48.7/js/ui/search.js 2025-11-24 14:16:08.000000000 +0000
@@ -397,10 +397,10 @@
vfunc_allocate(container, box) {
const width = box.get_width();
+ const ltr = container.get_text_direction() !== Clutter.TextDirection.RTL;
const childBox = new Clutter.ActorBox();
- childBox.x1 = 0;
- childBox.y1 = 0;
+ let accumulatedWidth = 0;
let first = true;
for (let child of container) {
@@ -410,20 +410,25 @@
if (first)
first = false;
else
- childBox.x1 += this._spacing;
+ accumulatedWidth += this._spacing;
const [childWidth] = child.get_preferred_width(-1);
const [childHeight] = child.get_preferred_height(-1);
- if (childBox.x1 + childWidth <= width)
+ if (ltr)
+ childBox.set_origin(accumulatedWidth, 0);
+ else
+ childBox.set_origin(width - accumulatedWidth - childWidth, 0);
+
+ accumulatedWidth += childWidth;
+
+ if (accumulatedWidth <= width)
childBox.set_size(childWidth, childHeight);
else
childBox.set_size(0, 0);
child.allocate(childBox);
child.can_focus = childBox.get_area() > 0;
-
- childBox.x1 += childWidth;
}
}
@@ -933,11 +938,14 @@
style_class: 'list-search-provider-details',
orientation: Clutter.Orientation.VERTICAL,
x_expand: true,
+ y_expand: false,
});
const nameLabel = new St.Label({
text: provider.appInfo.get_name(),
x_align: Clutter.ActorAlign.START,
+ y_align: Clutter.ActorAlign.CENTER,
+ y_expand: true,
});
this._moreLabel = new St.Label({x_align: Clutter.ActorAlign.START});
diff -Nru gnome-shell-48.4/js/ui/status/dwellClick.js gnome-shell-48.7/js/ui/status/dwellClick.js
--- gnome-shell-48.4/js/ui/status/dwellClick.js 2025-08-03 10:53:34.000000000 +0000
+++ gnome-shell-48.7/js/ui/status/dwellClick.js 2025-11-24 14:16:08.000000000 +0000
@@ -1,6 +1,5 @@
import Clutter from 'gi://Clutter';
import Gio from 'gi://Gio';
-import GLib from 'gi://GLib';
import GObject from 'gi://GObject';
import St from 'gi://St';
@@ -65,8 +64,6 @@
this.visible =
this._a11ySettings.get_boolean(KEY_DWELL_CLICK_ENABLED) &&
this._a11ySettings.get_string(KEY_DWELL_MODE) === DWELL_MODE_WINDOW;
-
- return GLib.SOURCE_REMOVE;
}
_addDwellAction(mode) {
diff -Nru gnome-shell-48.4/js/ui/status/network.js gnome-shell-48.7/js/ui/status/network.js
--- gnome-shell-48.4/js/ui/status/network.js 2025-08-03 10:53:34.000000000 +0000
+++ gnome-shell-48.7/js/ui/status/network.js 2025-11-24 14:16:08.000000000 +0000
@@ -64,8 +64,8 @@
}
function launchSettingsPanel(panel, ...args) {
- const param = new GLib.Variant('(sav)',
- [panel, args.map(s => new GLib.Variant('s', s))]);
+ const param = new GLib.Variant('av',
+ [new GLib.Variant('(sav)', [panel, args.map(s => new GLib.Variant('s', s))])]);
const app = Shell.AppSystem.get_default()
.lookup_app('org.gnome.Settings.desktop');
@@ -2015,7 +2015,7 @@
Main.panel.closeCalendar();
}
- _portalHelperDone(parameters) {
+ _portalHelperStatusChanged(parameters) {
const [path, result] = parameters;
if (result === PortalHelperResult.CANCELLED) {
@@ -2041,9 +2041,9 @@
g_interface_name: PortalHelperInfo.name,
g_interface_info: PortalHelperInfo,
});
- this._portalHelperProxy.connectSignal('Done',
+ this._portalHelperProxy.connectSignal('StatusChanged',
(proxy, emitter, params) => {
- this._portalHelperDone(params);
+ this._portalHelperStatusChanged(params);
});
try {
@@ -2193,7 +2193,6 @@
this._mainConnectionStateChanged();
}
- this._updateIcon();
this._syncConnectivity();
}
@@ -2203,12 +2202,16 @@
}
_syncConnectivity() {
+ this._updateIcon();
if (this._mainConnection == null ||
this._mainConnection.state !== NM.ActiveConnectionState.ACTIVATED) {
this._portalHandler.clear();
return;
}
+ if (Main.sessionMode.isGreeter)
+ return;
+
let isPortal = this._client.connectivity === NM.ConnectivityState.PORTAL;
// For testing, allow interpreting any value != FULL as PORTAL, because
// LIMITED (no upstream route after the default gateway) is easy to obtain
@@ -2217,12 +2220,14 @@
// (but in general we should only prompt a portal if we know there is a portal)
if (GLib.getenv('GNOME_SHELL_CONNECTIVITY_TEST') != null)
isPortal ||= this._client.connectivity < NM.ConnectivityState.FULL;
- if (!isPortal || Main.sessionMode.isGreeter)
- return;
- this._portalHandler.addConnection(
- this._mainConnection.get_id(),
- this._mainConnection.get_path());
+ if (isPortal) {
+ this._portalHandler.addConnection(
+ this._mainConnection.get_id(),
+ this._mainConnection.get_path());
+ } else {
+ this._portalHandler.clear();
+ }
}
_updateIcon() {
diff -Nru gnome-shell-48.4/js/ui/swipeTracker.js gnome-shell-48.7/js/ui/swipeTracker.js
--- gnome-shell-48.4/js/ui/swipeTracker.js 2025-08-03 10:53:34.000000000 +0000
+++ gnome-shell-48.7/js/ui/swipeTracker.js 2025-11-24 14:16:08.000000000 +0000
@@ -610,8 +610,7 @@
}
_findPreviousPoint(pos) {
- const reversedIndex = this._snapPoints.slice().reverse().findIndex(p => p <= pos);
- return this._snapPoints.length - 1 - reversedIndex;
+ return this._snapPoints.findLastIndex(p => p <= pos);
}
_findPointForProjection(pos, velocity) {
diff -Nru gnome-shell-48.4/js/ui/unlockDialog.js gnome-shell-48.7/js/ui/unlockDialog.js
--- gnome-shell-48.4/js/ui/unlockDialog.js 2025-08-03 10:53:34.000000000 +0000
+++ gnome-shell-48.7/js/ui/unlockDialog.js 2025-11-24 14:16:08.000000000 +0000
@@ -16,6 +16,7 @@
import * as SwipeTracker from './swipeTracker.js';
import {formatDateWithCFormatString} from '../misc/dateUtils.js';
import * as AuthPrompt from '../gdm/authPrompt.js';
+import {AuthPromptStatus} from '../gdm/authPrompt.js';
// The timeout before going back automatically to the lock screen (in seconds)
const IDLE_TIMEOUT = 2 * 60;
@@ -715,8 +716,15 @@
this._promptBox.add_child(this._authPrompt);
}
- this._authPrompt.reset();
- this._authPrompt.updateSensitivity(true);
+ const {verificationStatus} = this._authPrompt;
+ switch (verificationStatus) {
+ case AuthPromptStatus.NOT_VERIFYING:
+ case AuthPromptStatus.VERIFICATION_CANCELLED:
+ case AuthPromptStatus.VERIFICATION_FAILED:
+ this._authPrompt.reset();
+ this._authPrompt.updateSensitivity(
+ verificationStatus === AuthPromptStatus.NOT_VERIFYING);
+ }
}
_maybeDestroyAuthPrompt() {
diff -Nru gnome-shell-48.4/js/ui/windowManager.js gnome-shell-48.7/js/ui/windowManager.js
--- gnome-shell-48.4/js/ui/windowManager.js 2025-08-03 10:53:34.000000000 +0000
+++ gnome-shell-48.7/js/ui/windowManager.js 2025-11-24 14:16:08.000000000 +0000
@@ -233,12 +233,12 @@
if (!Meta.prefs_get_dynamic_workspaces()) {
this._checkWorkspacesId = 0;
- return false;
+ return GLib.SOURCE_REMOVE;
}
// Update workspaces only if Dynamic Workspace Management has not been paused by some other function
if (this._pauseWorkspaceCheck)
- return true;
+ return GLib.SOURCE_CONTINUE;
for (i = 0; i < this._workspaces.length; i++) {
let lastRemoved = this._workspaces[i]._lastRemovedWindow;
@@ -298,7 +298,7 @@
}
this._checkWorkspacesId = 0;
- return false;
+ return GLib.SOURCE_REMOVE;
}
keepWorkspaceAlive(workspace, duration) {
diff -Nru gnome-shell-48.4/js/ui/workspaceThumbnail.js gnome-shell-48.7/js/ui/workspaceThumbnail.js
--- gnome-shell-48.4/js/ui/workspaceThumbnail.js 2025-08-03 10:53:34.000000000 +0000
+++ gnome-shell-48.7/js/ui/workspaceThumbnail.js 2025-11-24 14:16:08.000000000 +0000
@@ -685,6 +685,7 @@
_onDestroy() {
this._destroyThumbnails();
this._unqueueUpdateStates();
+ this._clearDropPlaceholderLater();
if (this._settings)
this._settings.run_dispose();
@@ -768,6 +769,14 @@
this.queue_relayout();
}
+ _clearDropPlaceholderLater() {
+ if (!this._dropPlaceholderLater)
+ return;
+
+ global.compositor.get_laters().remove(this._dropPlaceholderLater);
+ delete this._dropPlaceholderLater;
+ }
+
_getPlaceholderTarget(index, spacing, rtl) {
const workspace = this._thumbnails[index];
@@ -1178,7 +1187,10 @@
const laters = global.compositor.get_laters();
this._updateStateId = laters.add(
- Meta.LaterType.BEFORE_REDRAW, () => this._updateStates());
+ Meta.LaterType.BEFORE_REDRAW, () => {
+ this._updateStates();
+ return GLib.SOURCE_REMOVE;
+ });
}
_unqueueUpdateStates() {
@@ -1328,10 +1340,16 @@
this._dropPlaceholder.allocate_preferred_size(
...this._dropPlaceholder.get_position());
- const laters = global.compositor.get_laters();
- laters.add(Meta.LaterType.BEFORE_REDRAW, () => {
- this._dropPlaceholder.hide();
- });
+ this._clearDropPlaceholderLater();
+ if (this._dropPlaceholder.visible) {
+ const laters = global.compositor.get_laters();
+ this._dropPlaceholderLater = laters.add(
+ Meta.LaterType.BEFORE_REDRAW, () => {
+ this._dropPlaceholder.hide();
+ delete this._dropPlaceholderLater;
+ return GLib.SOURCE_REMOVE;
+ });
+ }
}
let childBox = new Clutter.ActorBox();
@@ -1359,10 +1377,16 @@
this._dropPlaceholder.allocate(childBox);
- const laters = global.compositor.get_laters();
- laters.add(Meta.LaterType.BEFORE_REDRAW, () => {
- this._dropPlaceholder.show();
- });
+ this._clearDropPlaceholderLater();
+ if (!this._dropPlaceholder.visible) {
+ const laters = global.compositor.get_laters();
+ this._dropPlaceholderLater = laters.add(
+ Meta.LaterType.BEFORE_REDRAW, () => {
+ this._dropPlaceholder.show();
+ delete this._dropPlaceholderLater;
+ return GLib.SOURCE_REMOVE;
+ });
+ }
x += placeholderWidth + spacing;
}
diff -Nru gnome-shell-48.4/meson.build gnome-shell-48.7/meson.build
--- gnome-shell-48.4/meson.build 2025-08-03 10:53:34.000000000 +0000
+++ gnome-shell-48.7/meson.build 2025-11-24 14:16:08.000000000 +0000
@@ -1,5 +1,5 @@
project('gnome-shell', 'c',
- version: '48.4',
+ version: '48.7',
meson_version: '>= 1.3.0',
license: 'GPL-2.0-or-later',
)
@@ -93,6 +93,8 @@
have_x11_client = mutter_dep.get_variable('have_x11_client') == 'true'
if have_x11_client or have_x11
x11_dep = dependency('x11')
+ xext_dep = dependency('xext')
+ xfixes_dep = dependency('xfixes')
endif
if not have_fonts
@@ -316,10 +318,10 @@
po_dir = join_paths(meson.current_source_dir(), 'po')
+subdir('data')
subdir('js')
subdir('src')
subdir('po')
-subdir('data')
if get_option('tests') and have_x11_client
subdir('tests')
diff -Nru gnome-shell-48.4/po/de.po gnome-shell-48.7/po/de.po
--- gnome-shell-48.4/po/de.po 2025-08-03 10:53:34.000000000 +0000
+++ gnome-shell-48.7/po/de.po 2025-11-24 14:16:08.000000000 +0000
@@ -24,16 +24,16 @@
msgstr ""
"Project-Id-Version: gnome-shell master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell/issues/\n"
-"POT-Creation-Date: 2025-01-16 02:14+0000\n"
-"PO-Revision-Date: 2025-01-17 12:12+0100\n"
+"POT-Creation-Date: 2025-06-29 16:22+0000\n"
+"PO-Revision-Date: 2025-05-21 13:28+0200\n"
"Last-Translator: Philipp Kiemle \n"
-"Language-Team: German \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: Poedit 3.5\n"
+"X-Generator: Poedit 3.6\n"
"X-DamnedLies-Scope: partial\n"
#: data/50-gnome-shell-launchers.xml:6
@@ -113,31 +113,32 @@
msgstr "Ein neues Fenster der angehefteten Anwendung 9 öffnen"
#. Translators: name of the folder under ~/Pictures for screenshots.
-#: data/50-gnome-shell-screenshots.xml:6 js/ui/screenshot.js:2272
+#: data/50-gnome-shell-screenshots.xml:6 js/ui/screenshot.js:2275
msgid "Screenshots"
msgstr "Bildschirmfotos"
#: data/50-gnome-shell-screenshots.xml:9
-#: data/org.gnome.shell.gschema.xml.in:287
+#: data/org.gnome.shell.gschema.xml.in:267
msgid "Take a screenshot interactively"
msgstr "Ein Bildschirmfoto interaktiv aufnehmen"
#: data/50-gnome-shell-screenshots.xml:12
-#: data/org.gnome.shell.gschema.xml.in:299
+#: data/org.gnome.shell.gschema.xml.in:279
msgid "Take a screenshot"
msgstr "Ein Bildschirmfoto aufnehmen"
#: data/50-gnome-shell-screenshots.xml:15
-#: data/org.gnome.shell.gschema.xml.in:295
+#: data/org.gnome.shell.gschema.xml.in:275
msgid "Take a screenshot of a window"
msgstr "Ein Bildschirmfoto eines Fensters aufnehmen"
#: data/50-gnome-shell-screenshots.xml:18
-#: data/org.gnome.shell.gschema.xml.in:291
+#: data/org.gnome.shell.gschema.xml.in:271
msgid "Record a screencast interactively"
msgstr "Eine Bildschirmaufzeichnung interaktiv aufnehmen"
-#: data/50-gnome-shell-system.xml:6 js/ui/messageTray.js:1308
+#: data/50-gnome-shell-system.xml:6
+#: data/X-GNOME-Shell-System.directory.desktop.in:3 js/ui/messageTray.js:1307
msgid "System"
msgstr "System"
@@ -264,11 +265,11 @@
"deaktiviert und alle Erweiterungen werden versucht zu laden, unabhängig von "
"der Version, die die Erweiterung offiziell unterstützt."
-#: data/org.gnome.shell.gschema.xml.in:65
+#: data/org.gnome.shell.gschema.xml.in:67
msgid "List of desktop file IDs for favorite applications"
msgstr "Liste von Desktop-Dateikennungen und deren bevorzugte Anwendungen"
-#: data/org.gnome.shell.gschema.xml.in:66
+#: data/org.gnome.shell.gschema.xml.in:68
msgid ""
"The applications corresponding to these identifiers will be displayed in the "
"favorites area."
@@ -276,20 +277,20 @@
"Programme, welche auf diese Bezeichner zutreffen, werden im Favoriten-"
"Bereich angezeigt."
-#: data/org.gnome.shell.gschema.xml.in:73
+#: data/org.gnome.shell.gschema.xml.in:75
msgid "History for command (Alt-F2) dialog"
msgstr "Verlauf des Befehlsdialogs (Alt+F2)"
#. Translators: looking glass is a debugger and inspector tool, see https://gitlab.gnome.org/GNOME/gnome-shell/-/blob/main/docs/looking-glass.md
-#: data/org.gnome.shell.gschema.xml.in:78
+#: data/org.gnome.shell.gschema.xml.in:80
msgid "History for the looking glass dialog"
msgstr "Chronik des Dialogs »looking glass«"
-#: data/org.gnome.shell.gschema.xml.in:82
+#: data/org.gnome.shell.gschema.xml.in:84
msgid "Always show the “Log Out” action in the system menu"
msgstr "Immer die Aktion »Abmelden« im Systemmenü anzeigen"
-#: data/org.gnome.shell.gschema.xml.in:83
+#: data/org.gnome.shell.gschema.xml.in:85
msgid ""
"This key overrides the automatic hiding of the “Log out” action in the "
"system menu for logged-in situations where there is a single, local, non-"
@@ -300,14 +301,14 @@
"einzigen, lokalen Nicht-System-Nutzer und nur einen einzigen Sitzungstyp "
"gibt (z. B. GNOME unter Wayland)."
-#: data/org.gnome.shell.gschema.xml.in:92
+#: data/org.gnome.shell.gschema.xml.in:94
msgid ""
"Whether to remember password for mounting encrypted or remote filesystems"
msgstr ""
"Legt fest, ob Passwörter für das Einhängen verschlüsselter oder entfernter "
"Dateisysteme gespeichert werden sollen"
-#: data/org.gnome.shell.gschema.xml.in:93
+#: data/org.gnome.shell.gschema.xml.in:95
msgid ""
"The shell will request a password when an encrypted device or a remote "
"filesystem is mounted. If the password can be saved for future use a "
@@ -319,11 +320,11 @@
"Zukunft gespeichert werden kann, wird ein Ankreuzfeld »Passwort speichern« "
"angezeigt. Dieser Schlüssel setzt den Vorgabestatus für dieses Ankreuzfeld."
-#: data/org.gnome.shell.gschema.xml.in:102
+#: data/org.gnome.shell.gschema.xml.in:104
msgid "The last selected non-default power profile"
msgstr "Das zuletzt ausgewählte Nicht-Standard-Energieprofil"
-#: data/org.gnome.shell.gschema.xml.in:103
+#: data/org.gnome.shell.gschema.xml.in:105
msgid ""
"Some systems support more than two power profiles. In order to still support "
"toggling between two profiles, this key records the last selected non-"
@@ -333,12 +334,12 @@
"Umschalten zwischen zwei Profilen weiterhin möglich ist, speichert dieser "
"Schlüssel das zuletzt ausgewählte Nicht-Standardprofil."
-#: data/org.gnome.shell.gschema.xml.in:111
+#: data/org.gnome.shell.gschema.xml.in:113
msgid "The last version the “Welcome to GNOME” dialog was shown for"
msgstr ""
"Die letzte Version, für die der »Willkommen bei GNOME«-Dialog angezeigt wurde"
-#: data/org.gnome.shell.gschema.xml.in:112
+#: data/org.gnome.shell.gschema.xml.in:114
msgid ""
"This key determines for which version the “Welcome to GNOME” dialog was last "
"shown. An empty string represents the oldest possible version, and a huge "
@@ -351,11 +352,11 @@
"noch nicht existieren. Diese riesige Zahl kann dazu verwendet werden, diesen "
"Dialog praktisch zu deaktivieren."
-#: data/org.gnome.shell.gschema.xml.in:145
+#: data/org.gnome.shell.gschema.xml.in:125
msgid "Layout of the app picker"
msgstr "Ausrichtung der Anwendungsauswahl"
-#: data/org.gnome.shell.gschema.xml.in:146
+#: data/org.gnome.shell.gschema.xml.in:126
msgid ""
"Layout of the app picker. Each entry in the array is a page. Pages are "
"stored in the order they appear in GNOME Shell. Each page contains an "
@@ -368,146 +369,146 @@
"Aktuell werden die folgenden Werte innerhalb von »data« gespeichert: • "
"»position«: Die Position des Anwendungssymbols auf der Seite"
-#: data/org.gnome.shell.gschema.xml.in:165
-#: data/org.gnome.shell.gschema.xml.in:172
+#: data/org.gnome.shell.gschema.xml.in:145
+#: data/org.gnome.shell.gschema.xml.in:152
msgid "Keybinding to shift between overview states"
msgstr "Tastenkombination zum Wechseln zwischen Übersichts-Modi"
-#: data/org.gnome.shell.gschema.xml.in:166
+#: data/org.gnome.shell.gschema.xml.in:146
msgid "Keybinding to shift between session, window picker and app grid"
msgstr ""
"Tastenkombination zum Wechseln zwischen Sitzung, Fensterwähler und "
"Anwendungsraster"
-#: data/org.gnome.shell.gschema.xml.in:173
+#: data/org.gnome.shell.gschema.xml.in:153
msgid "Keybinding to shift between app grid, window picker and session"
msgstr ""
"Tastenkombination zum Wechseln zwischen Anwendungsraster, Fensterwähler und "
"Sitzung"
-#: data/org.gnome.shell.gschema.xml.in:179
+#: data/org.gnome.shell.gschema.xml.in:159
msgid "Keybinding to open the “Show Applications” view"
msgstr "Tastenkombination zum Öffnen der »Anwendungen anzeigen«-Ansicht"
-#: data/org.gnome.shell.gschema.xml.in:180
+#: data/org.gnome.shell.gschema.xml.in:160
msgid ""
"Keybinding to open the “Show Applications” view of the Activities Overview."
msgstr ""
"Tastenkombination zum Öffnen der »Anwendungen anzeigen«-Ansicht der "
"Aktivitätenübersicht."
-#: data/org.gnome.shell.gschema.xml.in:187
+#: data/org.gnome.shell.gschema.xml.in:167
msgid "Keybinding to open the overview"
msgstr "Tastenkombination zum Öffnen der Übersicht"
-#: data/org.gnome.shell.gschema.xml.in:188
+#: data/org.gnome.shell.gschema.xml.in:168
msgid "Keybinding to open the Activities Overview."
msgstr "Tastenkombination zum Öffnen der »Aktivitäten«-Übersicht."
-#: data/org.gnome.shell.gschema.xml.in:194
+#: data/org.gnome.shell.gschema.xml.in:174
msgid "Keybinding to toggle the visibility of the notification list"
msgstr ""
"Tastenkombination zum Umschalten der Sichtbarkeit der Benachrichtigungsliste"
-#: data/org.gnome.shell.gschema.xml.in:195
+#: data/org.gnome.shell.gschema.xml.in:175
msgid "Keybinding to toggle the visibility of the notification list."
msgstr ""
"Tastenkombination zum Umschalten der Sichtbarkeit der Benachrichtigungsliste."
-#: data/org.gnome.shell.gschema.xml.in:201
+#: data/org.gnome.shell.gschema.xml.in:181
msgid "Keybinding to toggle the quick settings menu"
msgstr "Tastenkombination zum Ein-/Ausblenden des Schnelleinstellungenmenüs"
-#: data/org.gnome.shell.gschema.xml.in:202
+#: data/org.gnome.shell.gschema.xml.in:182
msgid "Keybinding to toggle the quick settings menu."
msgstr "Tastenkombination zum Ein-/Ausblenden des Schnelleinstellungenmenüs."
-#: data/org.gnome.shell.gschema.xml.in:208
+#: data/org.gnome.shell.gschema.xml.in:188
msgid "Keybinding to focus the active notification"
msgstr "Tastenkombination zur Ausrichtung auf die aktiven Benachrichtigungen"
-#: data/org.gnome.shell.gschema.xml.in:209
+#: data/org.gnome.shell.gschema.xml.in:189
msgid "Keybinding to focus the active notification."
msgstr "Tastenkombination zur Ausrichtung auf die aktiven Benachrichtigungen."
-#: data/org.gnome.shell.gschema.xml.in:215
+#: data/org.gnome.shell.gschema.xml.in:195
msgid "Switch to application 1"
msgstr "Zu Anwendung 1 wechseln"
-#: data/org.gnome.shell.gschema.xml.in:219
+#: data/org.gnome.shell.gschema.xml.in:199
msgid "Switch to application 2"
msgstr "Zu Anwendung 2 wechseln"
-#: data/org.gnome.shell.gschema.xml.in:223
+#: data/org.gnome.shell.gschema.xml.in:203
msgid "Switch to application 3"
msgstr "Zu Anwendung 3 wechseln"
-#: data/org.gnome.shell.gschema.xml.in:227
+#: data/org.gnome.shell.gschema.xml.in:207
msgid "Switch to application 4"
msgstr "Zu Anwendung 4 wechseln"
-#: data/org.gnome.shell.gschema.xml.in:231
+#: data/org.gnome.shell.gschema.xml.in:211
msgid "Switch to application 5"
msgstr "Zu Anwendung 5 wechseln"
-#: data/org.gnome.shell.gschema.xml.in:235
+#: data/org.gnome.shell.gschema.xml.in:215
msgid "Switch to application 6"
msgstr "Zu Anwendung 6 wechseln"
-#: data/org.gnome.shell.gschema.xml.in:239
+#: data/org.gnome.shell.gschema.xml.in:219
msgid "Switch to application 7"
msgstr "Zu Anwendung 7 wechseln"
-#: data/org.gnome.shell.gschema.xml.in:243
+#: data/org.gnome.shell.gschema.xml.in:223
msgid "Switch to application 8"
msgstr "Zu Anwendung 8 wechseln"
-#: data/org.gnome.shell.gschema.xml.in:247
+#: data/org.gnome.shell.gschema.xml.in:227
msgid "Switch to application 9"
msgstr "Zu Anwendung 9 wechseln"
-#: data/org.gnome.shell.gschema.xml.in:251
+#: data/org.gnome.shell.gschema.xml.in:231
msgid "Open a new instance of application 1"
msgstr "Eine neue Instanz von Anwendung 1 öffnen"
-#: data/org.gnome.shell.gschema.xml.in:255
+#: data/org.gnome.shell.gschema.xml.in:235
msgid "Open a new instance of application 2"
msgstr "Eine neue Instanz von Anwendung 2 öffnen"
-#: data/org.gnome.shell.gschema.xml.in:259
+#: data/org.gnome.shell.gschema.xml.in:239
msgid "Open a new instance of application 3"
msgstr "Eine neue Instanz von Anwendung 3 öffnen"
-#: data/org.gnome.shell.gschema.xml.in:263
+#: data/org.gnome.shell.gschema.xml.in:243
msgid "Open a new instance of application 4"
msgstr "Eine neue Instanz von Anwendung 4 öffnen"
-#: data/org.gnome.shell.gschema.xml.in:267
+#: data/org.gnome.shell.gschema.xml.in:247
msgid "Open a new instance of application 5"
msgstr "Eine neue Instanz von Anwendung 5 öffnen"
-#: data/org.gnome.shell.gschema.xml.in:271
+#: data/org.gnome.shell.gschema.xml.in:251
msgid "Open a new instance of application 6"
msgstr "Eine neue Instanz von Anwendung 6 öffnen"
-#: data/org.gnome.shell.gschema.xml.in:275
+#: data/org.gnome.shell.gschema.xml.in:255
msgid "Open a new instance of application 7"
msgstr "Eine neue Instanz von Anwendung 7 öffnen"
-#: data/org.gnome.shell.gschema.xml.in:279
+#: data/org.gnome.shell.gschema.xml.in:259
msgid "Open a new instance of application 8"
msgstr "Eine neue Instanz von Anwendung 8 öffnen"
-#: data/org.gnome.shell.gschema.xml.in:283
+#: data/org.gnome.shell.gschema.xml.in:263
msgid "Open a new instance of application 9"
msgstr "Eine neue Instanz von Anwendung 9 öffnen"
-#: data/org.gnome.shell.gschema.xml.in:308
-#: data/org.gnome.shell.gschema.xml.in:335
+#: data/org.gnome.shell.gschema.xml.in:288
+#: data/org.gnome.shell.gschema.xml.in:315
msgid "Limit switcher to current workspace."
msgstr "Fensterwechsler auf aktuelle Arbeitsfläche einschränken."
-#: data/org.gnome.shell.gschema.xml.in:309
+#: data/org.gnome.shell.gschema.xml.in:289
msgid ""
"If true, only applications that have windows on the current workspace are "
"shown in the switcher. Otherwise, all applications are included."
@@ -516,21 +517,21 @@
"Fenster auf der aktuellen Arbeitsfläche haben. Andernfalls sind alle "
"Anwendungen enthalten."
-#: data/org.gnome.shell.gschema.xml.in:326
+#: data/org.gnome.shell.gschema.xml.in:306
msgid "The application icon mode."
msgstr "Der Modus der Anwendungssymbole."
-#: data/org.gnome.shell.gschema.xml.in:327
+#: data/org.gnome.shell.gschema.xml.in:307
msgid ""
"Configures how the windows are shown in the switcher. Valid possibilities "
-"are “thumbnail-only” (shows a thumbnail of the window), “app-icon-"
-"only” (shows only the application icon) or “both”."
+"are “thumbnail-only” (shows a thumbnail of the window), “app-icon-only” "
+"(shows only the application icon) or “both”."
msgstr ""
"Legt fest, wie Fenster im Fensterwechsler dargestellt werden. Mögliche Werte "
"sind »thumbnail-only« (Vorschaubilder der Fenster werden angezeigt), »app-"
"icon-only« (Nur das Anwendungssymbol wird angezeigt) oder »both« (beides)."
-#: data/org.gnome.shell.gschema.xml.in:336
+#: data/org.gnome.shell.gschema.xml.in:316
msgid ""
"If true, only windows from the current workspace are shown in the switcher. "
"Otherwise, all windows are included."
@@ -538,27 +539,27 @@
"Legt fest, ob Fenster der aktuellen Arbeitsfläche im Fensterwechsler "
"aufgeführt werden. Andernfalls sind alle Fenster enthalten."
-#: data/org.gnome.shell.gschema.xml.in:346
+#: data/org.gnome.shell.gschema.xml.in:326
msgid "Locations"
msgstr "Orte"
-#: data/org.gnome.shell.gschema.xml.in:347
+#: data/org.gnome.shell.gschema.xml.in:327
msgid "The locations to show in world clocks"
msgstr "Die von den Weltuhren anzuzeigenden Orte"
-#: data/org.gnome.shell.gschema.xml.in:357
+#: data/org.gnome.shell.gschema.xml.in:337
msgid "Automatic location"
msgstr "Automatischer Ort"
-#: data/org.gnome.shell.gschema.xml.in:358
+#: data/org.gnome.shell.gschema.xml.in:338
msgid "Whether to fetch the current location or not"
msgstr "Legt fest, ob der aktuelle Ort automatisch bestimmt werden soll"
-#: data/org.gnome.shell.gschema.xml.in:365
+#: data/org.gnome.shell.gschema.xml.in:345
msgid "Location"
msgstr "Ort"
-#: data/org.gnome.shell.gschema.xml.in:366
+#: data/org.gnome.shell.gschema.xml.in:346
msgid "The location for which to show a forecast"
msgstr "Der Ort, für den ein Wetterbericht angezeigt werden soll"
@@ -575,10 +576,8 @@
msgstr "Netzwerkanmeldung"
#: data/X-GNOME-Shell-Utilities.directory.desktop.in:3
-#, fuzzy
-#| msgid "Activities"
msgid "Utilities"
-msgstr "Aktivitäten"
+msgstr "Dienstprogramme"
#: js/dbusServices/extensions/ui/extension-error-page.ui:15
#: subprojects/extensions-app/data/ui/extensions-window.ui:275
@@ -609,28 +608,28 @@
msgid "Visit extension homepage"
msgstr "Internetseite der Erweiterung besuchen"
-#: js/gdm/authPrompt.js:155 js/gdm/loginDialog.js:466
-#: js/ui/audioDeviceSelection.js:60 js/ui/components/networkAgent.js:113
+#: js/gdm/authPrompt.js:156 js/gdm/loginDialog.js:468
+#: js/ui/audioDeviceSelection.js:60 js/ui/components/networkAgent.js:114
#: js/ui/components/polkitAgent.js:144 js/ui/endSessionDialog.js:437
#: js/ui/extensionDownloader.js:276 js/ui/shellMountOperation.js:382
#: js/ui/shellMountOperation.js:392
msgid "Cancel"
msgstr "Abbrechen"
-#: js/gdm/authPrompt.js:321 js/ui/components/networkAgent.js:213
-#: js/ui/components/networkAgent.js:233 js/ui/components/networkAgent.js:265
-#: js/ui/components/networkAgent.js:298 js/ui/components/networkAgent.js:337
-#: js/ui/components/networkAgent.js:350 js/ui/components/polkitAgent.js:286
+#: js/gdm/authPrompt.js:324 js/ui/components/networkAgent.js:214
+#: js/ui/components/networkAgent.js:234 js/ui/components/networkAgent.js:266
+#: js/ui/components/networkAgent.js:299 js/ui/components/networkAgent.js:338
+#: js/ui/components/networkAgent.js:351 js/ui/components/polkitAgent.js:286
#: js/ui/shellMountOperation.js:332
msgid "Password"
msgstr "Passwort"
-#: js/gdm/loginDialog.js:326
+#: js/gdm/loginDialog.js:328
msgid "Choose Session"
msgstr "Sitzung wählen"
#. Translators: is running for
-#: js/gdm/loginDialog.js:424
+#: js/gdm/loginDialog.js:426
#, javascript-format
msgid ""
"Remote login is not possible because a remote session is already running for "
@@ -642,7 +641,7 @@
"abmelden, oder die Abmeldung erzwingen."
#. Translators: is running for
-#: js/gdm/loginDialog.js:427
+#: js/gdm/loginDialog.js:429
#, javascript-format
msgid ""
"Login is not possible because a remote session is already running for %s. To "
@@ -653,7 +652,7 @@
"oder die Abmeldung erzwingen."
#. Translators: is running for
-#: js/gdm/loginDialog.js:430
+#: js/gdm/loginDialog.js:432
#, javascript-format
msgid ""
"Remote login is not possible because a local session is already running for "
@@ -665,7 +664,7 @@
"lokalen Sitzung abmelden, oder die Abmeldung erzwingen."
#. Translators: is running for
-#: js/gdm/loginDialog.js:433
+#: js/gdm/loginDialog.js:435
#, javascript-format
msgid ""
"Login is not possible because a session is already running for %s. To login, "
@@ -675,11 +674,11 @@
"eine Anmeldung müssen Sie sich zuerst aus der Sitzung abmelden, oder die "
"Abmeldung erzwingen."
-#: js/gdm/loginDialog.js:442
+#: js/gdm/loginDialog.js:444
msgid "Session Already Running"
msgstr "Sitzung läuft bereits"
-#: js/gdm/loginDialog.js:454
+#: js/gdm/loginDialog.js:456
msgid ""
"Force stopping will quit any running apps and processes, and could result in "
"data loss"
@@ -687,232 +686,230 @@
"Das Beenden zu erzwingen beendet laufende Anwendungen und Prozesse und "
"könnte zu Datenverlust führen"
-#: js/gdm/loginDialog.js:474
+#: js/gdm/loginDialog.js:476
msgid "Force Stop"
msgstr "Beenden erzwingen"
-#: js/gdm/loginDialog.js:542
+#: js/gdm/loginDialog.js:554
msgid "Not listed?"
msgstr "Nicht aufgeführt?"
#. Translators: this message is shown below the username entry field
#. to clue the user in on how to login to the local network realm
-#: js/gdm/loginDialog.js:1010
+#: js/gdm/loginDialog.js:1075
#, javascript-format
msgid "(e.g., user or %s)"
msgstr "(z.B. Benutzer oder %s)"
-#: js/gdm/loginDialog.js:1015 js/ui/components/networkAgent.js:257
-#: js/ui/components/networkAgent.js:292 js/ui/components/networkAgent.js:326
+#: js/gdm/loginDialog.js:1080 js/ui/components/networkAgent.js:258
+#: js/ui/components/networkAgent.js:293 js/ui/components/networkAgent.js:327
msgid "Username"
msgstr "Benutzername"
-#: js/gdm/loginDialog.js:1081
+#: js/gdm/loginDialog.js:1146
msgid "Login Attempt Timed Out"
msgstr "Der Anmeldeversuch ist abgelaufen"
-#: js/gdm/loginDialog.js:1082
+#: js/gdm/loginDialog.js:1147
msgid "Login took too long, please try again"
msgstr "Die Anmeldung dauerte zu lange, bitte versuchen Sie es erneut"
-#: js/gdm/loginDialog.js:1431
+#: js/gdm/loginDialog.js:1496
msgid "Login Window"
msgstr "Anmeldefenster"
-#: js/gdm/util.js:496
+#: js/gdm/util.js:498
msgid "Authentication error"
msgstr "Anmeldung fehlgeschlagen"
#. Translators: this message is shown below the password entry field
#. to indicate the user can swipe their finger on the fingerprint reader
-#: js/gdm/util.js:727
+#: js/gdm/util.js:729
msgid "(or swipe finger across reader)"
msgstr "(oder wischen Sie mit dem Finger über den Leser)"
#. Translators: this message is shown below the password entry field
#. to indicate the user can place their finger on the fingerprint reader instead
-#: js/gdm/util.js:732
+#: js/gdm/util.js:734
msgid "(or place finger on reader)"
msgstr "(oder legen Sie einen Finger auf den Leser)"
-#: js/misc/breakManager.js:764
+#: js/misc/breakManager.js:770
msgid "Break complete sound"
-msgstr ""
+msgstr "Ton bei abgeschlossener Pause"
-#: js/misc/breakManager.js:956
+#: js/misc/breakManager.js:980
#, javascript-format
msgid "%d second"
msgid_plural "%d seconds"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "%d Sekunde"
+msgstr[1] "%d Sekunden"
-#: js/misc/breakManager.js:962
-#, fuzzy, javascript-format
-#| msgid "%d minute ago"
-#| msgid_plural "%d minutes ago"
+#: js/misc/breakManager.js:986
+#, javascript-format
msgid "%d minute"
msgid_plural "%d minutes"
-msgstr[0] "vor %d Minute"
-msgstr[1] "vor %d Minuten"
+msgstr[0] "%d Minute"
+msgstr[1] "%d Minuten"
-#: js/misc/breakManager.js:968
-#, fuzzy, javascript-format
-#| msgid "%d hour ago"
-#| msgid_plural "%d hours ago"
+#: js/misc/breakManager.js:992
+#, javascript-format
msgid "%d hour"
msgid_plural "%d hours"
-msgstr[0] "vor %d Stunde"
-msgstr[1] "vor %d Stunden"
+msgstr[0] "%d Stunde"
+msgstr[1] "%d Stunden"
-#: js/misc/breakManager.js:974
-#, fuzzy, javascript-format
-#| msgid "%d day ago"
-#| msgid_plural "%d days ago"
+#: js/misc/breakManager.js:998
+#, javascript-format
msgid "%d day"
msgid_plural "%d days"
-msgstr[0] "vor %d Tag"
-msgstr[1] "vor %d Tagen"
+msgstr[0] "%d Tag"
+msgstr[1] "%d Tage"
#. %s will be replaced with a string that describes a time interval, such as “2 minutes”, “40 seconds” or “1 hour”
-#: js/misc/breakManager.js:1057
+#: js/misc/breakManager.js:1081
#, javascript-format
msgid "It will be time for a break in %s"
msgid_plural "It will be time for a break in %s"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "Es wird Zeit für eine Pause in %s"
+msgstr[1] "Es wird Zeit für eine Pause in %s"
-#: js/misc/breakManager.js:1065
+#: js/misc/breakManager.js:1089
msgid "Movement Break Soon"
-msgstr ""
+msgstr "Baldige Bewegungspause"
-#: js/misc/breakManager.js:1068
+#: js/misc/breakManager.js:1092
msgid "Eyesight Break Soon"
-msgstr ""
+msgstr "Baldige Augenpause"
-#: js/misc/breakManager.js:1071
+#: js/misc/breakManager.js:1095
msgid "Break Soon"
-msgstr ""
+msgstr "Baldige Pause"
-#: js/misc/breakManager.js:1115
+#: js/misc/breakManager.js:1140
msgid "Movement Break in Progress"
-msgstr ""
+msgstr "Bewegungspause läuft"
#. %s will be replaced with a string that describes a time interval, such as “2 minutes”, “40 seconds” or “1 hour”
-#: js/misc/breakManager.js:1118
+#: js/misc/breakManager.js:1143
#, javascript-format
msgid "Continue moving around for %s"
msgid_plural "Continue moving around for %s"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "Bewegen Sie sich für weitere %s"
+msgstr[1] "Bewegen Sie sich für weitere %s"
-#: js/misc/breakManager.js:1124
+#: js/misc/breakManager.js:1149
msgid "Eyesight Break in Progress"
-msgstr ""
+msgstr "Augenpause läuft"
#. %s will be replaced with a string that describes a time interval, such as “2 minutes”, “40 seconds” or “1 hour”
-#: js/misc/breakManager.js:1127
+#: js/misc/breakManager.js:1152
#, javascript-format
msgid "Continue looking away for %s"
msgid_plural "Continue looking away for %s"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "Sehen Sie für weitere %s weg"
+msgstr[1] "Sehen Sie für weitere %s weg"
-#: js/misc/breakManager.js:1133
+#: js/misc/breakManager.js:1158
msgid "Break in Progress"
-msgstr ""
+msgstr "Pause läuft"
#. %s will be replaced with a string that describes a time interval, such as “2 minutes”, “40 seconds” or “1 hour”
-#: js/misc/breakManager.js:1136
+#: js/misc/breakManager.js:1161
#, javascript-format
msgid "%s left in your break"
msgid_plural "%s left in your break"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "%s Pause verbleibend"
+msgstr[1] "%s Pause verbleibend"
-#: js/misc/breakManager.js:1175
+#: js/misc/breakManager.js:1200
msgid "Time for a Movement Break"
-msgstr ""
+msgstr "Zeit für eine Bewegungspause"
#. %s will be replaced with a string that describes a time interval, such as “2 minutes”, “40 seconds” or “1 hour”
-#: js/misc/breakManager.js:1178
+#: js/misc/breakManager.js:1203
#, javascript-format
msgid "Take a break from the device and move around for %s"
msgid_plural "Take a break from the device and move around for %s"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "Machen Sie eine Pause von Ihrem Gerät und bewegen Sie sich für %s"
+msgstr[1] "Machen Sie eine Pause von Ihrem Gerät und bewegen Sie sich für %s"
-#: js/misc/breakManager.js:1184
+#: js/misc/breakManager.js:1209
msgid "Time for an Eyesight Break"
-msgstr ""
+msgstr "Zeit für eine Augenpause"
#. %s will be replaced with a string that describes a time interval, such as “2 minutes”, “40 seconds” or “1 hour”
-#: js/misc/breakManager.js:1187
+#: js/misc/breakManager.js:1212
#, javascript-format
msgid ""
"Take a break from the screen. Look at least 6 meters away for at least %s"
msgid_plural ""
"Take a break from the screen. Look at least 6 meters away for at least %s"
msgstr[0] ""
+"Machen Sie eine Pause vom Bildschirm. Sehen Sie für mindestens %s mindestens "
+"6 Meter in die Ferne"
msgstr[1] ""
+"Machen Sie eine Pause vom Bildschirm. Sehen Sie für mindestens %s mindestens "
+"6 Meter in die Ferne"
-#: js/misc/breakManager.js:1193
+#: js/misc/breakManager.js:1218
msgid "Time for a Break"
-msgstr ""
+msgstr "Zeit für eine Pause"
#. %s will be replaced with a string that describes a time interval, such as “2 minutes”, “40 seconds” or “1 hour”
-#: js/misc/breakManager.js:1196
+#: js/misc/breakManager.js:1221
#, javascript-format
msgid "It’s time to take a break. Get away from the device for %s!"
msgid_plural "It’s time to take a break. Get away from the device for %s!"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "Es ist Zeit für eine Pause. Entfernen Sie sich für %s vom Gerät!"
+msgstr[1] "Es ist Zeit für eine Pause. Entfernen Sie sich für %s vom Gerät!"
#. %s will be replaced with a string that describes a time interval, such as “2 minutes”, “40 seconds” or “1 hour”
-#: js/misc/breakManager.js:1218
+#: js/misc/breakManager.js:1245
#, javascript-format
msgid "You were due to take a break %s ago"
msgid_plural "You were due to take a break %s ago"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "Eine Pause war vor %s fällig"
+msgstr[1] "Eine Pause war vor %s fällig"
-#: js/misc/breakManager.js:1224
+#: js/misc/breakManager.js:1251
msgid "Break Overdue"
-msgstr ""
+msgstr "Pause überfällig"
-#. %s will be replaced with a string that describes a time interval, such as “2 minutes”, “40 seconds” or “1 hour”
-#: js/misc/breakManager.js:1238
+#: js/misc/breakManager.js:1267
#, javascript-format
msgid "There is %s remaining in your break"
msgid_plural "There are %s remaining in your break"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "Es ist %s an Pause verbleibend"
+msgstr[1] "Es sind %s an Pause verbleibend"
-#: js/misc/breakManager.js:1244
+#: js/misc/breakManager.js:1273
msgid "Break Interrupted"
-msgstr ""
+msgstr "Pause unterbrochen"
-#: js/misc/breakManager.js:1315
+#. Translators: As in "Delay the break"
+#: js/misc/breakManager.js:1351
msgid "Delay"
-msgstr ""
+msgstr "Verzögerung"
-#: js/misc/breakManager.js:1336 js/ui/welcomeDialog.js:61
+#. Translators: As in "Skip the break"
+#: js/misc/breakManager.js:1373 js/ui/welcomeDialog.js:61
msgid "Skip"
msgstr "Überspringen"
-#: js/misc/breakManager.js:1357
-#, fuzzy
-#| msgid "Take Tour"
+#. Translators: As in "Take the break"
+#: js/misc/breakManager.js:1395
msgid "Take"
-msgstr "Einführung starten"
+msgstr "Nehmen"
#. Translators: This is a notification to warn the user that a
#. screen time break will start shortly.
-#: js/misc/breakManager.js:1420
+#: js/misc/breakManager.js:1458
#, javascript-format
msgid "Break in %d second"
msgid_plural "Break in %d seconds"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "Pause in %d Sekunde"
+msgstr[1] "Pause in %d Sekunden"
#. Translators: The name of the power-off action in search
#: js/misc/systemActions.js:91
@@ -1012,24 +1009,28 @@
msgid "Lock Screen Rotation"
msgstr "Bildschirmdrehung sperren"
-#: js/misc/timeLimitsManager.js:976
+#: js/misc/timeLimitsManager.js:342
+msgid "GNOME needs to save screen time data"
+msgstr "GNOME muss Bildschirmzeit-Daten speichern"
+
+#: js/misc/timeLimitsManager.js:1123
#, javascript-format
msgid "Screen Time Limit in %d Minute"
msgid_plural "Screen Time Limit in %d Minutes"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "Bildschirmzeit-Begrenzung in %d Minute"
+msgstr[1] "Bildschirmzeit-Begrenzung in %d Minuten"
-#: js/misc/timeLimitsManager.js:983
+#: js/misc/timeLimitsManager.js:1130
msgid "Your screen time limit is approaching"
-msgstr ""
+msgstr "Ihre Bildschirmzeit-Begrenzung ist bald erreicht"
-#: js/misc/timeLimitsManager.js:997
+#: js/misc/timeLimitsManager.js:1144
msgid "Screen Time Limit Reached"
-msgstr ""
+msgstr "Bildschirmzeit-Begrenzung erreicht"
-#: js/misc/timeLimitsManager.js:998
+#: js/misc/timeLimitsManager.js:1145
msgid "It’s time to stop using the device"
-msgstr ""
+msgstr "Es ist Zeit, dieses Gerät nicht mehr zu verwenden"
#: js/misc/util.js:130
msgid "Command not found"
@@ -1058,7 +1059,7 @@
msgstr[0] "vor %d Stunde"
msgstr[1] "vor %d Stunden"
-#: js/misc/dateUtils.js:85 js/ui/dateMenu.js:183
+#: js/misc/dateUtils.js:85 js/ui/dateMenu.js:184
msgid "Yesterday"
msgstr "Gestern"
@@ -1189,7 +1190,7 @@
msgid "Allow"
msgstr "Zulassen"
-#: js/ui/appDisplay.js:1767
+#: js/ui/appDisplay.js:1762
msgid "Unnamed Folder"
msgstr "Unbenannter Ordner"
@@ -1265,7 +1266,7 @@
#: js/ui/backgroundMenu.js:13
msgid "Change Background…"
-msgstr "Hintergrund ändern …"
+msgstr "Hintergrund ändern …"
#: js/ui/backgroundMenu.js:15
msgid "Display Settings"
@@ -1276,7 +1277,7 @@
msgstr "Einstellungen"
#. Translators: Enter 0-6 (Sunday-Saturday) for non-work days. Examples: "0" (Sunday) "6" (Saturday) "06" (Sunday and Saturday).
-#: js/ui/calendar.js:37
+#: js/ui/calendar.js:33
msgctxt "calendar-no-work"
msgid "06"
msgstr "06"
@@ -1286,43 +1287,43 @@
#. * NOTE: These grid abbreviations are always shown together
#. * and in order, e.g. "S M T W T F S".
#.
-#: js/ui/calendar.js:63
+#: js/ui/calendar.js:59
msgctxt "grid sunday"
msgid "S"
msgstr "S"
#. Translators: Calendar grid abbreviation for Monday
-#: js/ui/calendar.js:65
+#: js/ui/calendar.js:61
msgctxt "grid monday"
msgid "M"
msgstr "M"
#. Translators: Calendar grid abbreviation for Tuesday
-#: js/ui/calendar.js:67
+#: js/ui/calendar.js:63
msgctxt "grid tuesday"
msgid "T"
msgstr "D"
#. Translators: Calendar grid abbreviation for Wednesday
-#: js/ui/calendar.js:69
+#: js/ui/calendar.js:65
msgctxt "grid wednesday"
msgid "W"
msgstr "M"
#. Translators: Calendar grid abbreviation for Thursday
-#: js/ui/calendar.js:71
+#: js/ui/calendar.js:67
msgctxt "grid thursday"
msgid "T"
msgstr "D"
#. Translators: Calendar grid abbreviation for Friday
-#: js/ui/calendar.js:73
+#: js/ui/calendar.js:69
msgctxt "grid friday"
msgid "F"
msgstr "F"
#. Translators: Calendar grid abbreviation for Saturday
-#: js/ui/calendar.js:75
+#: js/ui/calendar.js:71
msgctxt "grid saturday"
msgid "S"
msgstr "S"
@@ -1333,7 +1334,7 @@
#. * "%OB" is the new format specifier introduced in glibc 2.27,
#. * in most cases you should not change it.
#.
-#: js/ui/calendar.js:426
+#: js/ui/calendar.js:422
msgid "%OB"
msgstr "%OB"
@@ -1346,41 +1347,41 @@
#. * in most cases you should not use the old "%B" here unless you
#. * absolutely know what you are doing.
#.
-#: js/ui/calendar.js:436
+#: js/ui/calendar.js:432
msgid "%OB %Y"
msgstr "%OB %Y"
-#: js/ui/calendar.js:498
+#: js/ui/calendar.js:494
msgid "Previous month"
msgstr "Vorheriger Monat"
-#: js/ui/calendar.js:516
+#: js/ui/calendar.js:512
msgid "Next month"
msgstr "Nächster Monat"
-#: js/ui/calendar.js:667
+#: js/ui/calendar.js:663
#, no-javascript-format
msgctxt "date day number format"
msgid "%d"
msgstr "%d"
-#: js/ui/calendar.js:726
+#: js/ui/calendar.js:722
msgid "Week %V"
msgstr "Woche %V"
-#: js/ui/calendar.js:918
+#: js/ui/calendar.js:774
msgid "No Notifications"
msgstr "Keine Benachrichtigungen"
-#: js/ui/calendar.js:974
+#: js/ui/calendar.js:832
msgid "Do Not Disturb"
msgstr "Nicht stören"
-#: js/ui/calendar.js:995
+#: js/ui/calendar.js:853
msgid "Clear"
msgstr "Leeren"
-#: js/ui/calendar.js:999
+#: js/ui/calendar.js:857
msgctxt "action"
msgid "Clear all notifications"
msgstr "Alle Benachrichtigungen entfernen"
@@ -1440,40 +1441,40 @@
msgid "Open with %s"
msgstr "Öffnen mit %s"
-#: js/ui/components/networkAgent.js:95
+#: js/ui/components/networkAgent.js:96
msgid ""
"Alternatively you can connect by pushing the “WPS” button on your router"
msgstr ""
"Alternativ können Sie sich verbinden, indem Sie den »WPS«-Knopf an Ihrem "
"Router drücken"
-#: js/ui/components/networkAgent.js:107 js/ui/status/bluetooth.js:246
+#: js/ui/components/networkAgent.js:108 js/ui/status/bluetooth.js:246
#: js/ui/status/network.js:360 js/ui/status/network.js:444
msgid "Connect"
msgstr "Verbinden"
-#: js/ui/components/networkAgent.js:222
+#: js/ui/components/networkAgent.js:223
msgid "Key"
msgstr "Schlüssel"
-#: js/ui/components/networkAgent.js:273 js/ui/components/networkAgent.js:312
+#: js/ui/components/networkAgent.js:274 js/ui/components/networkAgent.js:313
msgid "Private key password"
msgstr "Passwort für geheimen Schlüssel"
-#: js/ui/components/networkAgent.js:306
+#: js/ui/components/networkAgent.js:307
msgid "Identity"
msgstr "Identität"
-#: js/ui/components/networkAgent.js:332
+#: js/ui/components/networkAgent.js:333
msgid "Service"
msgstr "Dienst"
-#: js/ui/components/networkAgent.js:370 js/ui/components/networkAgent.js:406
-#: js/ui/components/networkAgent.js:743 js/ui/components/networkAgent.js:764
+#: js/ui/components/networkAgent.js:371 js/ui/components/networkAgent.js:407
+#: js/ui/components/networkAgent.js:745 js/ui/components/networkAgent.js:766
msgid "Authentication required"
msgstr "Anmeldung erforderlich"
-#: js/ui/components/networkAgent.js:371 js/ui/components/networkAgent.js:744
+#: js/ui/components/networkAgent.js:372 js/ui/components/networkAgent.js:746
#, javascript-format
msgid ""
"Passwords or encryption keys are required to access the wireless network “%s”"
@@ -1481,38 +1482,38 @@
"Passwörter oder Schlüssel sind erforderlich, um auf das Drahtlosnetzwerk "
"»%s« zuzugreifen"
-#: js/ui/components/networkAgent.js:375 js/ui/components/networkAgent.js:748
+#: js/ui/components/networkAgent.js:376 js/ui/components/networkAgent.js:750
msgid "Wired 802.1X authentication"
msgstr "Kabelgebundene 802.1X-Anmeldung"
-#: js/ui/components/networkAgent.js:378
+#: js/ui/components/networkAgent.js:379
msgid "Network name"
msgstr "Netzwerkname"
-#: js/ui/components/networkAgent.js:386 js/ui/components/networkAgent.js:752
+#: js/ui/components/networkAgent.js:387 js/ui/components/networkAgent.js:754
msgid "DSL authentication"
msgstr "DSL-Anmeldung"
-#: js/ui/components/networkAgent.js:393 js/ui/components/networkAgent.js:757
+#: js/ui/components/networkAgent.js:394 js/ui/components/networkAgent.js:759
msgid "PIN code required"
msgstr "PIN-Code ist erforderlich"
-#: js/ui/components/networkAgent.js:394 js/ui/components/networkAgent.js:758
+#: js/ui/components/networkAgent.js:395 js/ui/components/networkAgent.js:760
msgid "PIN code is needed for the mobile broadband device"
msgstr "Für das mobile Breitbandgerät wird ein PIN-Code benötigt"
-#: js/ui/components/networkAgent.js:396
+#: js/ui/components/networkAgent.js:397
msgid "PIN"
msgstr "PIN"
-#: js/ui/components/networkAgent.js:407 js/ui/components/networkAgent.js:749
-#: js/ui/components/networkAgent.js:753 js/ui/components/networkAgent.js:765
-#: js/ui/components/networkAgent.js:769
+#: js/ui/components/networkAgent.js:408 js/ui/components/networkAgent.js:751
+#: js/ui/components/networkAgent.js:755 js/ui/components/networkAgent.js:767
+#: js/ui/components/networkAgent.js:771
#, javascript-format
msgid "A password is required to connect to “%s”"
msgstr "Es wird ein Passwort benötigt, um sich mit »%s« zu verbinden"
-#: js/ui/components/networkAgent.js:768
+#: js/ui/components/networkAgent.js:770
msgid "VPN password"
msgstr "VPN-Passwort"
@@ -1570,29 +1571,29 @@
msgstr "%A, %e. %B %Y"
#. Translators: Shown on calendar heading when selected day occurs on current year
-#: js/ui/dateMenu.js:172
+#: js/ui/dateMenu.js:173
msgctxt "calendar heading"
msgid "%B %-d"
msgstr "%e. %B"
#. Translators: Shown on calendar heading when selected day occurs on different year
-#: js/ui/dateMenu.js:175
+#: js/ui/dateMenu.js:176
msgctxt "calendar heading"
msgid "%B %-d %Y"
msgstr "%e. %B %Y"
-#: js/ui/dateMenu.js:181
+#: js/ui/dateMenu.js:182
msgid "Today"
msgstr "Heute"
-#: js/ui/dateMenu.js:185
+#: js/ui/dateMenu.js:186
msgid "Tomorrow"
msgstr "Morgen"
#. Translators: Shown in calendar event list for all day events
#. * Keep it short, best if you can use less then 10 characters
#.
-#: js/ui/dateMenu.js:216
+#: js/ui/dateMenu.js:217
msgctxt "event list time"
msgid "All Day"
msgstr "Ganztägig"
@@ -1600,41 +1601,41 @@
#. Translators: Shown in calendar event list as the start/end of events
#. * that only show day and month
#.
-#: js/ui/dateMenu.js:238
+#: js/ui/dateMenu.js:239
msgid "%m/%d"
msgstr "%d.%m."
-#: js/ui/dateMenu.js:289
+#: js/ui/dateMenu.js:290
msgid "No Events"
msgstr "Keine Termine"
-#: js/ui/dateMenu.js:411
+#: js/ui/dateMenu.js:412
msgid "Add World Clocks…"
-msgstr "Weltuhren hinzufügen …"
+msgstr "Weltuhren hinzufügen …"
-#: js/ui/dateMenu.js:412
+#: js/ui/dateMenu.js:413
msgid "World Clocks"
msgstr "Weltuhren"
-#: js/ui/dateMenu.js:702
+#: js/ui/dateMenu.js:704
msgid "Loading…"
-msgstr "Wird geladen …"
+msgstr "Wird geladen …"
-#: js/ui/dateMenu.js:712
+#: js/ui/dateMenu.js:714
msgid "Go Online for Weather Information"
msgstr "Gehen Sie online, um Wetterinformationen beziehen zu können"
-#: js/ui/dateMenu.js:714
+#: js/ui/dateMenu.js:716
msgid "Weather Information Unavailable"
msgstr "Wetterinformationen sind nicht verfügbar"
-#: js/ui/dateMenu.js:724
+#: js/ui/dateMenu.js:726
msgid "Weather"
msgstr "Wetter"
-#: js/ui/dateMenu.js:726
+#: js/ui/dateMenu.js:728
msgid "Select Weather Location…"
-msgstr "Wetterstandort auswählen …"
+msgstr "Wetterstandort auswählen …"
#: js/ui/endSessionDialog.js:47
#, javascript-format
@@ -1895,61 +1896,61 @@
msgid "Leave Off"
msgstr "Ausgeschaltet lassen"
-#: js/ui/keyboard.js:180 js/ui/status/keyboard.js:899
+#: js/ui/keyboard.js:180 js/ui/status/keyboard.js:901
msgid "Keyboard Settings"
msgstr "Tastatureinstellungen"
-#: js/ui/lookingGlass.js:727
+#: js/ui/lookingGlass.js:742
msgid "No extensions installed"
msgstr "Keine Erweiterungen installiert"
#. Translators: argument is an extension UUID.
-#: js/ui/lookingGlass.js:788
+#: js/ui/lookingGlass.js:805
#, javascript-format
msgid "%s has not emitted any errors"
msgstr "%s hat keine Fehler ausgegeben"
-#: js/ui/lookingGlass.js:794
+#: js/ui/lookingGlass.js:811
msgid "Hide Errors"
msgstr "Fehler verbergen"
-#: js/ui/lookingGlass.js:798 js/ui/lookingGlass.js:875
+#: js/ui/lookingGlass.js:815 js/ui/lookingGlass.js:895
msgid "Show Errors"
msgstr "Fehler anzeigen"
-#: js/ui/lookingGlass.js:807
+#: js/ui/lookingGlass.js:824
msgid "Active"
msgstr "Aktiv"
-#: js/ui/lookingGlass.js:810
+#: js/ui/lookingGlass.js:827
msgid "Inactive"
msgstr "Inaktiv"
-#: js/ui/lookingGlass.js:812
+#: js/ui/lookingGlass.js:829
msgid "Error"
msgstr "Fehler"
-#: js/ui/lookingGlass.js:814
+#: js/ui/lookingGlass.js:831
msgid "Out of date"
msgstr "Veraltet"
-#: js/ui/lookingGlass.js:816
+#: js/ui/lookingGlass.js:833
msgid "Downloading"
msgstr "Herunterladen"
-#: js/ui/lookingGlass.js:818
+#: js/ui/lookingGlass.js:835
msgid "Deactivating"
msgstr "Wird deaktiviert"
-#: js/ui/lookingGlass.js:820
+#: js/ui/lookingGlass.js:837
msgid "Activating"
msgstr "Wird aktiviert"
-#: js/ui/lookingGlass.js:853
+#: js/ui/lookingGlass.js:873
msgid "View Source"
msgstr "Quelle zeigen"
-#: js/ui/lookingGlass.js:864
+#: js/ui/lookingGlass.js:884
msgid "Web Page"
msgstr "Webseite"
@@ -1984,19 +1985,19 @@
#. Translators: this is the string displayed in the header when a message
#. source doesn't have a name
-#: js/ui/messageList.js:374
+#: js/ui/messageList.js:409
msgid "Unknown App"
msgstr "Unbekannte Anwendung"
-#: js/ui/messageTray.js:326 js/ui/messageTray.js:328
+#: js/ui/messageTray.js:325 js/ui/messageTray.js:327
msgid "Notification sound"
msgstr "Benachrichtigungston"
-#: js/ui/mpris.js:198
+#: js/ui/mpris.js:144
msgid "Unknown artist"
msgstr "Unbekannter Künstler"
-#: js/ui/mpris.js:208
+#: js/ui/mpris.js:154
msgid "Unknown title"
msgstr "Unbekannter Titel"
@@ -2020,7 +2021,7 @@
#: js/ui/padOsd.js:98
msgid "New shortcut…"
-msgstr "Neue Tastenkombination …"
+msgstr "Neue Tastenkombination …"
#: js/ui/padOsd.js:151
msgid "App defined"
@@ -2042,23 +2043,23 @@
msgid "Done"
msgstr "Erledigt"
-#: js/ui/padOsd.js:726
+#: js/ui/padOsd.js:727
msgid "Edit…"
-msgstr "Bearbeiten …"
+msgstr "Bearbeiten …"
-#: js/ui/padOsd.js:773
+#: js/ui/padOsd.js:774
msgid "None"
msgstr "Keine"
-#: js/ui/padOsd.js:844
+#: js/ui/padOsd.js:845
msgid "Press a button to configure"
msgstr "Klicken Sie auf einen Knopf zum Einrichten"
-#: js/ui/padOsd.js:845
+#: js/ui/padOsd.js:846
msgid "Press Esc to exit"
msgstr "Drücken Sie Esc zum Abbrechen"
-#: js/ui/padOsd.js:848
+#: js/ui/padOsd.js:849
msgid "Press any key to exit"
msgstr "Drücken Sie eine beliebige Taste zum Beenden"
@@ -2077,7 +2078,7 @@
msgid "Top Bar"
msgstr "Obere Leiste"
-#: js/ui/quickSettings.js:185 js/ui/quickSettings.js:336
+#: js/ui/quickSettings.js:185 js/ui/quickSettings.js:340
msgid "Open menu"
msgstr "Menü öffnen"
@@ -2085,17 +2086,17 @@
msgid "Run a Command"
msgstr "Einen Befehl ausführen"
-#: js/ui/runDialog.js:76
+#: js/ui/runDialog.js:79
msgid "Press ESC to close"
msgstr "Drücken Sie Esc zum Schließen"
-#: js/ui/runDialog.js:253
+#: js/ui/runDialog.js:256
msgid "Restart is not available on Wayland"
msgstr "Neu Starten ist unter Wayland nicht verfügbar"
-#: js/ui/runDialog.js:258
+#: js/ui/runDialog.js:261
msgid "Restarting…"
-msgstr "Neustart …"
+msgstr "Neustart …"
#: js/ui/screenShield.js:233
msgid "GNOME needs to lock the screen"
@@ -2197,7 +2198,7 @@
msgstr "Bildschirmaufnahme unerwartet beendet"
#. Translators: notification source name.
-#: js/ui/screenshot.js:2083 js/ui/screenshot.js:2325
+#: js/ui/screenshot.js:2083 js/ui/screenshot.js:2330
msgid "Screenshot"
msgstr "Bildschirmfoto"
@@ -2208,40 +2209,40 @@
#. Translators: button on the screencast notification.
#. Translators: button on the screenshot notification.
-#: js/ui/screenshot.js:2098 js/ui/screenshot.js:2341
+#: js/ui/screenshot.js:2098 js/ui/screenshot.js:2346
msgid "Show in Files"
msgstr "In Dateien anzeigen"
#. Translators: this is the name of the file that the screenshot is
#. saved to. The placeholder is a timestamp, e.g. "2017-05-21 12-24-03".
-#: js/ui/screenshot.js:2285
+#: js/ui/screenshot.js:2288
#, javascript-format
msgid "Screenshot From %s"
msgstr "Bildschirmfoto vom %s"
#. Translators: notification title.
-#: js/ui/screenshot.js:2331
+#: js/ui/screenshot.js:2336
msgid "Screenshot captured"
msgstr "Bildschirmfoto aufgenommen"
#. Translators: notification body when a screenshot was captured.
-#: js/ui/screenshot.js:2333
+#: js/ui/screenshot.js:2338
msgid "You can paste the image from the clipboard."
msgstr "Sie können das Bild aus der Zwischenablage einfügen."
-#: js/ui/screenshot.js:2389 js/ui/screenshot.js:2553
+#: js/ui/screenshot.js:2397 js/ui/screenshot.js:2561
msgid "Screenshot taken"
msgstr "Bildschirmfoto aufgenommen"
-#: js/ui/search.js:829
+#: js/ui/search.js:832
msgid "Searching…"
-msgstr "Suche läuft …"
+msgstr "Suche läuft …"
-#: js/ui/search.js:831
+#: js/ui/search.js:834
msgid "No results"
msgstr "Keine Ergebnisse"
-#: js/ui/search.js:962
+#: js/ui/search.js:965
#, javascript-format
msgid "%d more"
msgid_plural "%d more"
@@ -2416,7 +2417,7 @@
msgid "High"
msgstr "Hoch"
-#: js/ui/status/backlight.js:162 js/ui/status/keyboard.js:881
+#: js/ui/status/backlight.js:162 js/ui/status/keyboard.js:883
msgid "Keyboard"
msgstr "Tastatur"
@@ -2425,35 +2426,35 @@
msgstr "Trennen"
#. Translators: %s is a device name like "MyPhone"
-#: js/ui/status/bluetooth.js:265 js/ui/status/network.js:354
+#: js/ui/status/bluetooth.js:267 js/ui/status/network.js:354
#, javascript-format
msgid "Disconnect %s"
msgstr "%s trennen"
#. Translators: %s is a device name like "MyPhone"
-#: js/ui/status/bluetooth.js:267 js/ui/status/network.js:356
+#: js/ui/status/bluetooth.js:269 js/ui/status/network.js:356
#, javascript-format
msgid "Connect to %s"
msgstr "Verbinden mit %s"
-#: js/ui/status/bluetooth.js:274 js/ui/status/bluetooth.js:276
+#: js/ui/status/bluetooth.js:276 js/ui/status/bluetooth.js:278
msgid "Bluetooth"
msgstr "Bluetooth"
-#: js/ui/status/bluetooth.js:299 js/ui/status/network.js:1909
+#: js/ui/status/bluetooth.js:301 js/ui/status/network.js:1919
msgid "Bluetooth Settings"
msgstr "Bluetooth-Einstellungen"
-#: js/ui/status/bluetooth.js:346
+#: js/ui/status/bluetooth.js:348
msgid "No available or connected devices"
msgstr "Keine verfügbaren oder verbundenen Geräte"
-#: js/ui/status/bluetooth.js:347
+#: js/ui/status/bluetooth.js:349
msgid "Turn on Bluetooth to connect to devices"
msgstr "Bluetooth einschalten, um Geräte zu verbinden"
#. Translators: This is the number of connected bluetooth devices
-#: js/ui/status/bluetooth.js:411
+#: js/ui/status/bluetooth.js:413
#, javascript-format
msgid "%d Connected"
msgid_plural "%d Connected"
@@ -2489,7 +2490,7 @@
msgid "Dwell Click"
msgstr "Verweilender Klick"
-#: js/ui/status/keyboard.js:898
+#: js/ui/status/keyboard.js:900
msgid "Show Keyboard Layout"
msgstr "Tastaturbelegung anzeigen"
@@ -2546,68 +2547,68 @@
msgid "%s Hotspot"
msgstr "Hotspot %s"
-#: js/ui/status/network.js:1435
+#: js/ui/status/network.js:1445
#, javascript-format
msgid "%d connected"
msgid_plural "%d connected"
msgstr[0] "%d verbunden"
msgstr[1] "%d verbunden"
-#: js/ui/status/network.js:1533 js/ui/status/network.js:1549
+#: js/ui/status/network.js:1543 js/ui/status/network.js:1559
msgid "VPN"
msgstr "VPN"
-#: js/ui/status/network.js:1534
+#: js/ui/status/network.js:1544
msgid "VPN Settings"
msgstr "VPN-Einstellungen"
-#: js/ui/status/network.js:1794
+#: js/ui/status/network.js:1804
msgid "Wi–Fi"
msgstr "WLAN"
-#: js/ui/status/network.js:1796
+#: js/ui/status/network.js:1806
msgid "All Networks"
msgstr "Alle Netzwerke"
-#: js/ui/status/network.js:1893
+#: js/ui/status/network.js:1903
msgid "Wired Connections"
msgstr "Kabelverbindungen"
-#: js/ui/status/network.js:1894
+#: js/ui/status/network.js:1904
msgid "Wired Settings"
msgstr "LAN-Einstellungen"
-#: js/ui/status/network.js:1908
+#: js/ui/status/network.js:1918
msgid "Bluetooth Tethers"
msgstr "Über Bluetooth geteilte Verbindungen"
#. Translators: "Tether" from "Bluetooth Tether"
-#: js/ui/status/network.js:1915
+#: js/ui/status/network.js:1925
msgid "Tether"
msgstr "Verbindung teilen"
-#: js/ui/status/network.js:1928
+#: js/ui/status/network.js:1938
msgid "Mobile Connections"
msgstr "Mobile Verbindungen"
-#: js/ui/status/network.js:1930
+#: js/ui/status/network.js:1940
msgid "Mobile Broadband Settings"
msgstr "Einstellungen der mobilen Breitbandverbindung"
#. Translators: "Mobile" from "Mobile Broadband"
-#: js/ui/status/network.js:1939
+#: js/ui/status/network.js:1949
msgid "Mobile"
msgstr "Mobil"
-#: js/ui/status/network.js:1973
+#: js/ui/status/network.js:1983
msgid "Sign Into Wi–Fi Network"
msgstr "Im Drahtlosnetzwerk anmelden"
-#: js/ui/status/network.js:2160
+#: js/ui/status/network.js:2170
msgid "Connection failed"
msgstr "Verbindung gescheitert"
-#: js/ui/status/network.js:2161
+#: js/ui/status/network.js:2171
msgid "Activation of network connection failed"
msgstr "Aktivierung der Netzwerkverbindung ist gescheitert"
@@ -2648,7 +2649,7 @@
msgid "Stop Screen Sharing"
msgstr "Bildschirmfreigabe beenden"
-#: js/ui/status/rfkill.js:99
+#: js/ui/status/rfkill.js:97
msgid "Airplane Mode"
msgstr "Flugzeugmodus"
@@ -2662,20 +2663,20 @@
#: js/ui/status/system.js:181
msgid "Restart…"
-msgstr "Neustart …"
+msgstr "Neustart …"
#: js/ui/status/system.js:186
msgid "Power Off…"
-msgstr "Ausschalten …"
+msgstr "Ausschalten …"
#: js/ui/status/system.js:193
#: subprojects/extensions-app/data/ui/extensions-window.ui:124
msgid "Log Out…"
-msgstr "Abmelden …"
+msgstr "Abmelden …"
#: js/ui/status/system.js:198
msgid "Switch User…"
-msgstr "Benutzer wechseln …"
+msgstr "Benutzer wechseln …"
#: js/ui/status/system.js:242
msgctxt "action"
@@ -2769,24 +2770,24 @@
#. Translators: This is a time format for a date in
#. long format
-#: js/ui/unlockDialog.js:378
+#: js/ui/unlockDialog.js:384
msgid "%A %B %-d"
msgstr "%A, %d. %B"
-#: js/ui/unlockDialog.js:384
+#: js/ui/unlockDialog.js:390
msgid "Swipe up to unlock"
msgstr "Nach oben wischen zum Entsperren"
-#: js/ui/unlockDialog.js:385
+#: js/ui/unlockDialog.js:391
msgid "Click or press a key to unlock"
msgstr "Durch Mausklick oder Tastendruck entsperren"
# Beschreibung des Hauptbereichs im Entsperren-Dialog (über Strg-Alt-Tab erreichtbar) - ts
-#: js/ui/unlockDialog.js:568
+#: js/ui/unlockDialog.js:576
msgid "Unlock Window"
msgstr "Entsperren-Fenster"
-#: js/ui/unlockDialog.js:577
+#: js/ui/unlockDialog.js:585
msgid "Log in as another user"
msgstr "Als anderer Benutzer anmelden"
@@ -2843,8 +2844,6 @@
#. Translators: entry in the window right click menu.
#: js/ui/windowMenu.js:28
-#, fuzzy
-#| msgid "Take Screenshot"
msgctxt "window-menu"
msgid "Take Screenshot"
msgstr "Bildschirmfoto aufnehmen"
@@ -2935,21 +2934,21 @@
msgid "Force animations to be enabled"
msgstr "Aktivierung von Animationen erzwingen"
-#: src/shell-app.c:253
+#: src/shell-app.c:267
msgctxt "program"
msgid "Unknown"
msgstr "Unbekannt"
-#: src/shell-app.c:504
+#: src/shell-app.c:518
#, c-format
msgid "Failed to launch “%s”"
msgstr "»%s« konnte nicht gestartet werden"
-#: src/shell-keyring-prompt.c:752
+#: src/shell-keyring-prompt.c:779
msgid "Passwords do not match"
msgstr "Passwörter stimmen nicht überein"
-#: src/shell-keyring-prompt.c:760
+#: src/shell-keyring-prompt.c:787
msgid "Password cannot be blank"
msgstr "Es muss ein Passwort angegeben werden"
@@ -2984,15 +2983,15 @@
"Konfigurieren der Voreinstellungen von Erweiterungen und dem Entfernen oder "
"Deaktivieren nicht gewünschter Erweiterungen."
-#: subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in:68
+#: subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in:71
msgid "Main Window"
msgstr "Hauptfenster"
-#: subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in:72
+#: subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in:75
msgid "Available Updates"
msgstr "Verfügbare Aktualisierungen"
-#: subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in:76
+#: subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in:79
msgid "Search View"
msgstr "Suchansicht"
@@ -3103,7 +3102,7 @@
#: subprojects/extensions-app/data/ui/extension-row.ui:242
msgid "_Remove…"
-msgstr "Entfe_rnen …"
+msgstr "Entfe_rnen …"
#: subprojects/extensions-app/data/ui/extensions-window.ui:6
msgid "Keyboard Shortcuts"
@@ -3164,8 +3163,8 @@
#: subprojects/extensions-app/data/ui/extensions-window.ui:265
msgid ""
-"To find and add extensions, visit extensions.gnome.org."
+"To find and add extensions, visit extensions.gnome.org."
msgstr ""
"Besuchen Sie extensions.gnome.org"
"a>, um Erweiterungen zu finden und hinzuzufügen."
@@ -3568,7 +3567,7 @@
#: subprojects/extensions-tool/src/main.c:332
msgid "[ARGS…]"
-msgstr "[ARGUMENTE …]"
+msgstr "[ARGUMENTE …]"
#: subprojects/extensions-tool/src/main.c:334
msgid "Commands:"
diff -Nru gnome-shell-48.4/po/fi.po gnome-shell-48.7/po/fi.po
--- gnome-shell-48.4/po/fi.po 2025-08-03 10:53:34.000000000 +0000
+++ gnome-shell-48.7/po/fi.po 2025-11-24 14:16:08.000000000 +0000
@@ -25,8 +25,8 @@
msgstr ""
"Project-Id-Version: gnome-shell\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell/issues/\n"
-"POT-Creation-Date: 2025-02-26 16:22+0000\n"
-"PO-Revision-Date: 2025-02-27 21:59+0200\n"
+"POT-Creation-Date: 2025-08-24 04:45+0000\n"
+"PO-Revision-Date: 2025-08-24 15:28+0300\n"
"Last-Translator: Jiri Grönroos \n"
"Language-Team: suomi \n"
"Language: fi\n"
@@ -34,7 +34,7 @@
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Poedit 3.4.4\n"
+"X-Generator: Poedit 3.6\n"
"X-DamnedLies-Scope: partial\n"
"X-Project-Style: gnome\n"
"X-POT-Import-Date: 2012-03-05 15:06:10+0000\n"
@@ -116,32 +116,28 @@
msgstr "Avaa uusi ikkuna kiinnitetystä sovelluksesta 9"
#. Translators: name of the folder under ~/Pictures for screenshots.
-#: data/50-gnome-shell-screenshots.xml:6 js/ui/screenshot.js:2272
+#: data/50-gnome-shell-screenshots.xml:6 js/ui/screenshot.js:2279
msgid "Screenshots"
msgstr "Kuvakaappaukset"
-#: data/50-gnome-shell-screenshots.xml:9
-#: data/org.gnome.shell.gschema.xml.in:267
+#: data/50-gnome-shell-screenshots.xml:9 data/org.gnome.shell.gschema.xml.in:267
msgid "Take a screenshot interactively"
msgstr "Ota kuvakaappaus vuorovaikutteisesti"
-#: data/50-gnome-shell-screenshots.xml:12
-#: data/org.gnome.shell.gschema.xml.in:279
+#: data/50-gnome-shell-screenshots.xml:12 data/org.gnome.shell.gschema.xml.in:279
msgid "Take a screenshot"
msgstr "Ota kuvakaappaus"
-#: data/50-gnome-shell-screenshots.xml:15
-#: data/org.gnome.shell.gschema.xml.in:275
+#: data/50-gnome-shell-screenshots.xml:15 data/org.gnome.shell.gschema.xml.in:275
msgid "Take a screenshot of a window"
msgstr "Ota kuvakaappaus ikkunasta"
-#: data/50-gnome-shell-screenshots.xml:18
-#: data/org.gnome.shell.gschema.xml.in:271
+#: data/50-gnome-shell-screenshots.xml:18 data/org.gnome.shell.gschema.xml.in:271
msgid "Record a screencast interactively"
msgstr "Nauhoita näyttötallennevideo vuorovaikutteisesti"
-#: data/50-gnome-shell-system.xml:6
-#: data/X-GNOME-Shell-System.directory.desktop.in:3 js/ui/messageTray.js:1307
+#: data/50-gnome-shell-system.xml:6 data/X-GNOME-Shell-System.directory.desktop.in:2
+#: js/ui/messageTray.js:1307
msgid "System"
msgstr "Järjestelmä"
@@ -165,26 +161,21 @@
msgid "Show all apps"
msgstr "Näytä kaikki sovellukset"
-#: data/org.gnome.Shell.desktop.in.in:4
+#: data/org.gnome.Shell.desktop.in.in:3
msgid "GNOME Shell"
msgstr "Gnome Shell"
-#: data/org.gnome.Shell.desktop.in.in:5
+#: data/org.gnome.Shell.desktop.in.in:4
msgid "Window management and application launching"
msgstr "Ikkunanhallinta ja sovelluksien käynnistäminen"
#: data/org.gnome.shell.gschema.xml.in:6
msgid "Enable internal tools useful for developers and testers from Alt-F2"
-msgstr ""
-"Ota käyttöön sisäiset kehittäjiä ja testaajia hyödyttävät työkalut Alt-F2:sta"
+msgstr "Ota käyttöön sisäiset kehittäjiä ja testaajia hyödyttävät työkalut Alt-F2:sta"
#: data/org.gnome.shell.gschema.xml.in:9
-msgid ""
-"Allows access to internal debugging and monitoring tools using the Alt-F2 "
-"dialog."
-msgstr ""
-"Salli pääsy sisäiseen vianselvitys- ja monitorointityökaluun Alt-F2-ikkunan "
-"kautta."
+msgid "Allows access to internal debugging and monitoring tools using the Alt-F2 dialog."
+msgstr "Salli pääsy sisäiseen vianselvitys- ja monitorointityökaluun Alt-F2-ikkunan kautta."
#: data/org.gnome.shell.gschema.xml.in:16
msgid "UUIDs of extensions to enable"
@@ -192,15 +183,14 @@
#: data/org.gnome.shell.gschema.xml.in:17
msgid ""
-"GNOME Shell extensions have a UUID property; this key lists extensions which "
-"should be loaded. Any extension that wants to be loaded needs to be in this "
-"list. You can also manipulate this list with the EnableExtension and "
-"DisableExtension D-Bus methods on org.gnome.Shell."
-msgstr ""
-"GNOMEn ikkunanhallinnan laajennuksilla on uuid-tunnisteominaisuus, ja tämä "
-"avain luettelee laajennukset, jotka ladataan. Niiden laajennosten, jotka "
-"halutaan ladata, on oltava tässä luettelossa. Tätä luetteloa voi muokata "
-"myös org.gnome.Shell-DBus-metodeilla EnableExtension ja DisableExtension."
+"GNOME Shell extensions have a UUID property; this key lists extensions which should be loaded. "
+"Any extension that wants to be loaded needs to be in this list. You can also manipulate this "
+"list with the EnableExtension and DisableExtension D-Bus methods on org.gnome.Shell."
+msgstr ""
+"GNOMEn ikkunanhallinnan laajennuksilla on uuid-tunnisteominaisuus, ja tämä avain luettelee "
+"laajennukset, jotka ladataan. Niiden laajennosten, jotka halutaan ladata, on oltava tässä "
+"luettelossa. Tätä luetteloa voi muokata myös org.gnome.Shell-DBus-metodeilla EnableExtension ja "
+"DisableExtension."
#: data/org.gnome.shell.gschema.xml.in:26
msgid "UUIDs of extensions to force disabling"
@@ -208,17 +198,15 @@
#: data/org.gnome.shell.gschema.xml.in:27
msgid ""
-"GNOME Shell extensions have a UUID property; this key lists extensions which "
-"should be disabled, even if loaded as part of the current mode. You can also "
-"manipulate this list with the EnableExtension and DisableExtension D-Bus "
-"methods on org.gnome.Shell. This key takes precedence over the “enabled-"
-"extensions” setting."
-msgstr ""
-"GNOMEn ikkunanhallinnan laajennuksilla on uuid-tunnisteominaisuus, ja tämä "
-"avain luettelee laajennukset, joiden ei pitäisi olla käytössä, vaikka ne "
-"ladattaisiin osana nykyistä tilaa. Tätä luetteloa voi muokata myös org.gnome."
-"Shell-DBus-metodeilla EnableExtension ja DisableExtension. Tämä avain on "
-"etusijalla liitännäisten käyttöönoton asetukseen nähden."
+"GNOME Shell extensions have a UUID property; this key lists extensions which should be disabled, "
+"even if loaded as part of the current mode. You can also manipulate this list with the "
+"EnableExtension and DisableExtension D-Bus methods on org.gnome.Shell. This key takes precedence "
+"over the “enabled-extensions” setting."
+msgstr ""
+"GNOMEn ikkunanhallinnan laajennuksilla on uuid-tunnisteominaisuus, ja tämä avain luettelee "
+"laajennukset, joiden ei pitäisi olla käytössä, vaikka ne ladattaisiin osana nykyistä tilaa. Tätä "
+"luetteloa voi muokata myös org.gnome.Shell-DBus-metodeilla EnableExtension ja DisableExtension. "
+"Tämä avain on etusijalla liitännäisten käyttöönoton asetukseen nähden."
#: data/org.gnome.shell.gschema.xml.in:37
msgid "Disable user extensions"
@@ -226,11 +214,10 @@
#: data/org.gnome.shell.gschema.xml.in:38
msgid ""
-"Disable all extensions the user has enabled without affecting the “enabled-"
-"extension” setting."
+"Disable all extensions the user has enabled without affecting the “enabled-extension” setting."
msgstr ""
-"Poista käytöstä kaikki käyttäjän käyttöönottamat laajennukset vaikuttamatta "
-"“enabled-extension”-asetukseen."
+"Poista käytöstä kaikki käyttäjän käyttöönottamat laajennukset vaikuttamatta “enabled-extension”-"
+"asetukseen."
#: data/org.gnome.shell.gschema.xml.in:45
msgid "Allow extension installation"
@@ -238,11 +225,10 @@
#: data/org.gnome.shell.gschema.xml.in:46
msgid ""
-"Allow users to install extensions in their home folder. If disabled, the "
-"InstallRemoteExtension D-Bus method will fail, and extensions are only "
-"loaded from system directories on startup. It does not affect extensions "
-"that are already loaded, so a change only takes full effect on the next "
-"login."
+"Allow users to install extensions in their home folder. If disabled, the InstallRemoteExtension "
+"D-Bus method will fail, and extensions are only loaded from system directories on startup. It "
+"does not affect extensions that are already loaded, so a change only takes full effect on the "
+"next login."
msgstr ""
#: data/org.gnome.shell.gschema.xml.in:56
@@ -251,14 +237,13 @@
#: data/org.gnome.shell.gschema.xml.in:57
msgid ""
-"GNOME Shell will only load extensions that claim to support the current "
-"running version. Enabling this option will disable this check and try to "
-"load all extensions regardless of the versions they claim to support."
-msgstr ""
-"Gnome Shell lataa vain ne laajennukset, jotka väittävät tukevan käytössä "
-"olevaa Shell-versiota. Tämä valinta poistaa tarkistuksen käytöstä ja yrittää "
-"ladata kaikki laajennukset siitä huolimatta, mitä versiota laajennukset "
-"väittävät tukevansa."
+"GNOME Shell will only load extensions that claim to support the current running version. "
+"Enabling this option will disable this check and try to load all extensions regardless of the "
+"versions they claim to support."
+msgstr ""
+"Gnome Shell lataa vain ne laajennukset, jotka väittävät tukevan käytössä olevaa Shell-versiota. "
+"Tämä valinta poistaa tarkistuksen käytöstä ja yrittää ladata kaikki laajennukset siitä "
+"huolimatta, mitä versiota laajennukset väittävät tukevansa."
#: data/org.gnome.shell.gschema.xml.in:67
msgid "List of desktop file IDs for favorite applications"
@@ -266,8 +251,7 @@
#: data/org.gnome.shell.gschema.xml.in:68
msgid ""
-"The applications corresponding to these identifiers will be displayed in the "
-"favorites area."
+"The applications corresponding to these identifiers will be displayed in the favorites area."
msgstr "Näitä tunnisteita vastaavat sovellukset näytetään suosikkien alueella."
#: data/org.gnome.shell.gschema.xml.in:75
@@ -286,34 +270,29 @@
#: data/org.gnome.shell.gschema.xml.in:85
#, fuzzy
#| msgid ""
-#| "This key overrides the automatic hiding of the “Log out” menu item in "
-#| "single-user, single-session situations."
+#| "This key overrides the automatic hiding of the “Log out” menu item in single-user, single-"
+#| "session situations."
msgid ""
-"This key overrides the automatic hiding of the “Log out” action in the "
-"system menu for logged-in situations where there is a single, local, non-"
-"system user and only a single available session type (e.g. GNOME on Wayland)."
+"This key overrides the automatic hiding of the “Log out” action in the system menu for logged-in "
+"situations where there is a single, local, non-system user and only a single available session "
+"type (e.g. GNOME on Wayland)."
msgstr ""
-"Tämä avain ohittaa “Kirjaudu ulos”-valikkokohdan automaattisen piilotuksen "
-"\"yksi käyttäjä, yksi istunto\"-tilanteissa."
+"Tämä avain ohittaa “Kirjaudu ulos”-valikkokohdan automaattisen piilotuksen \"yksi käyttäjä, yksi "
+"istunto\"-tilanteissa."
#: data/org.gnome.shell.gschema.xml.in:94
-msgid ""
-"Whether to remember password for mounting encrypted or remote filesystems"
-msgstr ""
-"Muistetaanko salattujen tai etätiedostojärjestelmien liittämiseen tarvittava "
-"salasana"
+msgid "Whether to remember password for mounting encrypted or remote filesystems"
+msgstr "Muistetaanko salattujen tai etätiedostojärjestelmien liittämiseen tarvittava salasana"
#: data/org.gnome.shell.gschema.xml.in:95
msgid ""
-"The shell will request a password when an encrypted device or a remote "
-"filesystem is mounted. If the password can be saved for future use a "
-"“Remember Password” checkbox will be present. This key sets the default "
-"state of the checkbox."
-msgstr ""
-"Shell pyytää salasanaa, kun salattu laite tai etätiedostojärjestelmä "
-"liitetään. Jos salasana voidaan tallentaa tulevaa käyttöä varten, “Muista "
-"salasana”-valintaruutu näytetään. Tämä avain asettaa valintaruudun "
-"oletustilan."
+"The shell will request a password when an encrypted device or a remote filesystem is mounted. If "
+"the password can be saved for future use a “Remember Password” checkbox will be present. This "
+"key sets the default state of the checkbox."
+msgstr ""
+"Shell pyytää salasanaa, kun salattu laite tai etätiedostojärjestelmä liitetään. Jos salasana "
+"voidaan tallentaa tulevaa käyttöä varten, “Muista salasana”-valintaruutu näytetään. Tämä avain "
+"asettaa valintaruudun oletustilan."
#: data/org.gnome.shell.gschema.xml.in:104
msgid "The last selected non-default power profile"
@@ -321,9 +300,8 @@
#: data/org.gnome.shell.gschema.xml.in:105
msgid ""
-"Some systems support more than two power profiles. In order to still support "
-"toggling between two profiles, this key records the last selected non-"
-"default profile."
+"Some systems support more than two power profiles. In order to still support toggling between "
+"two profiles, this key records the last selected non-default profile."
msgstr ""
#: data/org.gnome.shell.gschema.xml.in:113
@@ -332,10 +310,9 @@
#: data/org.gnome.shell.gschema.xml.in:114
msgid ""
-"This key determines for which version the “Welcome to GNOME” dialog was last "
-"shown. An empty string represents the oldest possible version, and a huge "
-"number will represent versions that do not exist yet. This huge number can "
-"be used to effectively disable the dialog."
+"This key determines for which version the “Welcome to GNOME” dialog was last shown. An empty "
+"string represents the oldest possible version, and a huge number will represent versions that do "
+"not exist yet. This huge number can be used to effectively disable the dialog."
msgstr ""
#: data/org.gnome.shell.gschema.xml.in:125
@@ -344,38 +321,31 @@
#: data/org.gnome.shell.gschema.xml.in:126
msgid ""
-"Layout of the app picker. Each entry in the array is a page. Pages are "
-"stored in the order they appear in GNOME Shell. Each page contains an "
-"“application id” → 'data' pair. Currently, the following values are stored "
-"as 'data': • “position”: the position of the application icon in the page"
+"Layout of the app picker. Each entry in the array is a page. Pages are stored in the order they "
+"appear in GNOME Shell. Each page contains an “application id” → 'data' pair. Currently, the "
+"following values are stored as 'data': • “position”: the position of the application icon in the "
+"page"
msgstr ""
-#: data/org.gnome.shell.gschema.xml.in:145
-#: data/org.gnome.shell.gschema.xml.in:152
+#: data/org.gnome.shell.gschema.xml.in:145 data/org.gnome.shell.gschema.xml.in:152
msgid "Keybinding to shift between overview states"
msgstr "Yleisnäkymän avaukseen käytettävä pikanäppäin"
#: data/org.gnome.shell.gschema.xml.in:146
msgid "Keybinding to shift between session, window picker and app grid"
-msgstr ""
-"Istunnon, ikkunavalitsimen ja sovellusruudukon välillä vaihtoon käytettävä "
-"pikanäppäin"
+msgstr "Istunnon, ikkunavalitsimen ja sovellusruudukon välillä vaihtoon käytettävä pikanäppäin"
#: data/org.gnome.shell.gschema.xml.in:153
msgid "Keybinding to shift between app grid, window picker and session"
-msgstr ""
-"Sovellusruudukon, ikkunavalitsimen ja istunnon välillä vaihtoon käytettävä "
-"pikanäppäin"
+msgstr "Sovellusruudukon, ikkunavalitsimen ja istunnon välillä vaihtoon käytettävä pikanäppäin"
#: data/org.gnome.shell.gschema.xml.in:159
msgid "Keybinding to open the “Show Applications” view"
msgstr "Näytä sovellukset -näkymän avaukseen käytettävä pikanäppäin"
#: data/org.gnome.shell.gschema.xml.in:160
-msgid ""
-"Keybinding to open the “Show Applications” view of the Activities Overview."
-msgstr ""
-"Yleisnäkymän Näytä sovellukset -näkymän avaukseen käytettävä pikanäppäin."
+msgid "Keybinding to open the “Show Applications” view of the Activities Overview."
+msgstr "Yleisnäkymän Näytä sovellukset -näkymän avaukseen käytettävä pikanäppäin."
#: data/org.gnome.shell.gschema.xml.in:167
msgid "Keybinding to open the overview"
@@ -481,19 +451,17 @@
msgid "Open a new instance of application 9"
msgstr "Avaa uusi instanssi sovelluksesta 9"
-#: data/org.gnome.shell.gschema.xml.in:288
-#: data/org.gnome.shell.gschema.xml.in:315
+#: data/org.gnome.shell.gschema.xml.in:288 data/org.gnome.shell.gschema.xml.in:315
msgid "Limit switcher to current workspace."
msgstr "Rajoita vaihtaja nykyiseen työtilaan."
#: data/org.gnome.shell.gschema.xml.in:289
msgid ""
-"If true, only applications that have windows on the current workspace are "
-"shown in the switcher. Otherwise, all applications are included."
+"If true, only applications that have windows on the current workspace are shown in the switcher. "
+"Otherwise, all applications are included."
msgstr ""
-"Jos tosi, näytetään vaihtajassa vain niiden sovellusten ikkunat, jotka "
-"sijaitsevat nykyisessä työtilassa. Muussa tapauksessa kaikki sovellukset "
-"sisällytetään."
+"Jos tosi, näytetään vaihtajassa vain niiden sovellusten ikkunat, jotka sijaitsevat nykyisessä "
+"työtilassa. Muussa tapauksessa kaikki sovellukset sisällytetään."
#: data/org.gnome.shell.gschema.xml.in:306
msgid "The application icon mode."
@@ -501,21 +469,20 @@
#: data/org.gnome.shell.gschema.xml.in:307
msgid ""
-"Configures how the windows are shown in the switcher. Valid possibilities "
-"are “thumbnail-only” (shows a thumbnail of the window), “app-icon-only” "
-"(shows only the application icon) or “both”."
-msgstr ""
-"Määrittää kuinka ikkunat näytetään ikkunavaihtimessa. Mahdolliset arvot ovat "
-"'thumbnail-only' (näyttää ikkunan pienoiskuvan), 'app-icon-only' (näyttää "
-"vain sovelluksen kuvakkeen) tai 'both'(molemmat)."
+"Configures how the windows are shown in the switcher. Valid possibilities are “thumbnail-only” "
+"(shows a thumbnail of the window), “app-icon-only” (shows only the application icon) or “both”."
+msgstr ""
+"Määrittää kuinka ikkunat näytetään ikkunavaihtimessa. Mahdolliset arvot ovat 'thumbnail-only' "
+"(näyttää ikkunan pienoiskuvan), 'app-icon-only' (näyttää vain sovelluksen kuvakkeen) tai "
+"'both'(molemmat)."
#: data/org.gnome.shell.gschema.xml.in:316
msgid ""
-"If true, only windows from the current workspace are shown in the switcher. "
-"Otherwise, all windows are included."
+"If true, only windows from the current workspace are shown in the switcher. Otherwise, all "
+"windows are included."
msgstr ""
-"Jos tosi,vain nykyisessä työtilassa olevat ikkunat näytetään vaihtajassa. "
-"Muussa tapauksessa kaikki ikkunat näytetään."
+"Jos tosi,vain nykyisessä työtilassa olevat ikkunat näytetään vaihtajassa. Muussa tapauksessa "
+"kaikki ikkunat näytetään."
#: data/org.gnome.shell.gschema.xml.in:326
msgid "Locations"
@@ -542,56 +509,54 @@
msgstr "Sijainti jonka ennuste näytetään"
#. Keep in sync with subprojects/extensions-app
-#: data/org.gnome.Shell.Extensions.desktop.in.in:5
+#: data/org.gnome.Shell.Extensions.desktop.in.in:4
#: subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in:5
-#: subprojects/extensions-app/data/org.gnome.Extensions.desktop.in.in:4
+#: subprojects/extensions-app/data/org.gnome.Extensions.desktop.in.in:3
#: subprojects/extensions-app/data/ui/extensions-window.ui:57
msgid "Extensions"
msgstr "Laajennukset"
-#: data/org.gnome.Shell.PortalHelper.desktop.in.in:3
+#: data/org.gnome.Shell.PortalHelper.desktop.in.in:2
msgid "Network Login"
msgstr "Verkkokirjautuminen"
-#: data/X-GNOME-Shell-Utilities.directory.desktop.in:3
+#: data/X-GNOME-Shell-Utilities.directory.desktop.in:2
msgid "Utilities"
msgstr "Apuohjelmat"
-#: js/dbusServices/extensions/ui/extension-error-page.ui:15
+#: js/dbusServices/extensions/ui/extension-error-page.ui:12
#: subprojects/extensions-app/data/ui/extensions-window.ui:275
msgid "Something’s gone wrong"
msgstr "Jokin meni pieleen"
-#: js/dbusServices/extensions/ui/extension-error-page.ui:23
+#: js/dbusServices/extensions/ui/extension-error-page.ui:20
msgid ""
-"We’re very sorry, but there’s been a problem: the settings for this "
-"extension can’t be displayed. We recommend that you report the issue to the "
-"extension authors."
+"We’re very sorry, but there’s been a problem: the settings for this extension can’t be "
+"displayed. We recommend that you report the issue to the extension authors."
msgstr ""
-"Ongelma havaittu: tämän laajennuksen asetuksia ei voi näyttää. Suosittelemme "
-"ilmoittamaan ongelmasta laajennuksen tekijälle."
+"Ongelma havaittu: tämän laajennuksen asetuksia ei voi näyttää. Suosittelemme ilmoittamaan "
+"ongelmasta laajennuksen tekijälle."
-#: js/dbusServices/extensions/ui/extension-error-page.ui:48
+#: js/dbusServices/extensions/ui/extension-error-page.ui:45
msgid "Technical Details"
msgstr "Tekniset tiedot"
-#: js/dbusServices/extensions/ui/extension-error-page.ui:90
+#: js/dbusServices/extensions/ui/extension-error-page.ui:87
msgid "Homepage"
msgstr "Verkkosivu"
-#: js/dbusServices/extensions/ui/extension-error-page.ui:91
+#: js/dbusServices/extensions/ui/extension-error-page.ui:88
msgid "Visit extension homepage"
msgstr "Käy laajennuksen verkkosivulla"
-#: js/gdm/authPrompt.js:155 js/gdm/loginDialog.js:468
-#: js/ui/audioDeviceSelection.js:60 js/ui/components/networkAgent.js:114
-#: js/ui/components/polkitAgent.js:144 js/ui/endSessionDialog.js:437
-#: js/ui/extensionDownloader.js:276 js/ui/shellMountOperation.js:382
+#: js/gdm/authPrompt.js:156 js/gdm/loginDialog.js:465 js/ui/audioDeviceSelection.js:60
+#: js/ui/components/networkAgent.js:114 js/ui/components/polkitAgent.js:144
+#: js/ui/endSessionDialog.js:437 js/ui/extensionDownloader.js:276 js/ui/shellMountOperation.js:382
#: js/ui/shellMountOperation.js:392
msgid "Cancel"
msgstr "Peru"
-#: js/gdm/authPrompt.js:323 js/ui/components/networkAgent.js:214
+#: js/gdm/authPrompt.js:324 js/ui/components/networkAgent.js:214
#: js/ui/components/networkAgent.js:234 js/ui/components/networkAgent.js:266
#: js/ui/components/networkAgent.js:299 js/ui/components/networkAgent.js:338
#: js/ui/components/networkAgent.js:351 js/ui/components/polkitAgent.js:286
@@ -599,97 +564,90 @@
msgid "Password"
msgstr "Salasana"
-#: js/gdm/loginDialog.js:328
+#: js/gdm/loginDialog.js:326
msgid "Choose Session"
msgstr "Valitse istunto"
#. Translators: is running for
-#: js/gdm/loginDialog.js:426
+#: js/gdm/loginDialog.js:423
#, javascript-format
msgid ""
-"Remote login is not possible because a remote session is already running for "
-"%s. To login remotely, you must log out from the remote session or force "
-"stop it."
-msgstr ""
-"Etäkirjautuminen ei ole mahdollista, koska käyttäjällä %s on jo etäistunto. "
-"Kirjautuaksesi etäältä sinun tulee ensin kirjautua ulos etäistunnosta tai "
-"pakottaa istunnon lopettaminen."
+"Remote login is not possible because a remote session is already running for %s. To login "
+"remotely, you must log out from the remote session or force stop it."
+msgstr ""
+"Etäkirjautuminen ei ole mahdollista, koska käyttäjällä %s on jo etäistunto. Kirjautuaksesi "
+"etäältä sinun tulee ensin kirjautua ulos etäistunnosta tai pakottaa istunnon lopettaminen."
#. Translators: is running for
-#: js/gdm/loginDialog.js:429
+#: js/gdm/loginDialog.js:426
#, javascript-format
msgid ""
-"Login is not possible because a remote session is already running for %s. To "
-"login, you must log out from the remote session or force stop it."
+"Login is not possible because a remote session is already running for %s. To login, you must log "
+"out from the remote session or force stop it."
msgstr ""
-"Kirjautuminen ei ole mahdollista, koska käyttäjällä %s on jo etäistunto. "
-"Kirjautuaksesi sinun tulee ensin kirjautua ulos etäistunnosta tai pakottaa "
-"istunnon lopettaminen."
+"Kirjautuminen ei ole mahdollista, koska käyttäjällä %s on jo etäistunto. Kirjautuaksesi sinun "
+"tulee ensin kirjautua ulos etäistunnosta tai pakottaa istunnon lopettaminen."
#. Translators: is running for
-#: js/gdm/loginDialog.js:432
+#: js/gdm/loginDialog.js:429
#, javascript-format
msgid ""
-"Remote login is not possible because a local session is already running for "
-"%s. To login remotely, you must log out from the local session or force stop "
-"it."
-msgstr ""
-"Etäkirjautuminen ei ole mahdollista, koska käyttäjällä %s on jo paikallinen "
-"istunto. Kirjautuaksesi etäältä sinun tulee ensin kirjautua ulos "
-"paikallisesta istunnosta tai pakottaa istunnon lopettaminen."
+"Remote login is not possible because a local session is already running for %s. To login "
+"remotely, you must log out from the local session or force stop it."
+msgstr ""
+"Etäkirjautuminen ei ole mahdollista, koska käyttäjällä %s on jo paikallinen istunto. "
+"Kirjautuaksesi etäältä sinun tulee ensin kirjautua ulos paikallisesta istunnosta tai pakottaa "
+"istunnon lopettaminen."
#. Translators: is running for
-#: js/gdm/loginDialog.js:435
+#: js/gdm/loginDialog.js:432
#, javascript-format
msgid ""
-"Login is not possible because a session is already running for %s. To login, "
-"you must log out from the session or force stop it."
+"Login is not possible because a session is already running for %s. To login, you must log out "
+"from the session or force stop it."
msgstr ""
-"Kirjautuminen ei ole mahdollista, koska käyttäjällä %s on jo istunto. "
-"Kirjautuaksesi sinun tulee ensin kirjautua ulos istunnosta tai pakottaa "
-"istunnon lopettaminen."
+"Kirjautuminen ei ole mahdollista, koska käyttäjällä %s on jo istunto. Kirjautuaksesi sinun tulee "
+"ensin kirjautua ulos istunnosta tai pakottaa istunnon lopettaminen."
-#: js/gdm/loginDialog.js:444
+#: js/gdm/loginDialog.js:441
msgid "Session Already Running"
msgstr "Istunto on jo käynnissä"
-#: js/gdm/loginDialog.js:456
-msgid ""
-"Force stopping will quit any running apps and processes, and could result in "
-"data loss"
+#: js/gdm/loginDialog.js:453
+msgid "Force stopping will quit any running apps and processes, and could result in data loss"
msgstr ""
-"Pakolla lopettaminen lopettaa kaikki käynnissä olevat sovellukset ja "
-"prosessit, ja se saattaa johtaa tietojen katoamiseen"
+"Pakolla lopettaminen lopettaa kaikki käynnissä olevat sovellukset ja prosessit, ja se saattaa "
+"johtaa tietojen katoamiseen"
-#: js/gdm/loginDialog.js:476
+#: js/gdm/loginDialog.js:473
msgid "Force Stop"
msgstr "Pakota lopetus"
-#: js/gdm/loginDialog.js:554
+#: js/gdm/loginDialog.js:551
msgid "Not listed?"
msgstr "Ei luettelossa?"
#. Translators: this message is shown below the username entry field
#. to clue the user in on how to login to the local network realm
-#: js/gdm/loginDialog.js:1071
+#: js/gdm/loginDialog.js:1072
#, javascript-format
msgid "(e.g., user or %s)"
msgstr "(esim. käyttäjä tai %s)"
-#: js/gdm/loginDialog.js:1076 js/ui/components/networkAgent.js:258
+#: js/gdm/loginDialog.js:1077 js/ui/components/networkAgent.js:258
#: js/ui/components/networkAgent.js:293 js/ui/components/networkAgent.js:327
msgid "Username"
msgstr "Käyttäjätunnus"
-#: js/gdm/loginDialog.js:1142
+#: js/gdm/loginDialog.js:1143
msgid "Login Attempt Timed Out"
msgstr "Kirjautumisyritys aikakatkaistiin"
-#: js/gdm/loginDialog.js:1143
+#: js/gdm/loginDialog.js:1144
msgid "Login took too long, please try again"
msgstr "Kirjautuminen kesti liian kauan, yritä uudelleen"
-#: js/gdm/loginDialog.js:1492
+#: js/gdm/loginDialog.js:1493
msgid "Login Window"
msgstr "Kirjautumisikkuna"
@@ -709,32 +667,32 @@
msgid "(or place finger on reader)"
msgstr "(tai aseta sormi sormenjälkilukijaan)"
-#: js/misc/breakManager.js:764
+#: js/misc/breakManager.js:770
msgid "Break complete sound"
msgstr "Suoritetun tauon ääni"
-#: js/misc/breakManager.js:956
+#: js/misc/breakManager.js:980
#, javascript-format
msgid "%d second"
msgid_plural "%d seconds"
msgstr[0] "%d sekunti"
msgstr[1] "%d sekuntia"
-#: js/misc/breakManager.js:962
+#: js/misc/breakManager.js:986
#, javascript-format
msgid "%d minute"
msgid_plural "%d minutes"
msgstr[0] "%d minuutti"
msgstr[1] "%d minuuttia"
-#: js/misc/breakManager.js:968
+#: js/misc/breakManager.js:992
#, javascript-format
msgid "%d hour"
msgid_plural "%d hours"
msgstr[0] "%d tunti"
msgstr[1] "%d tuntia"
-#: js/misc/breakManager.js:974
+#: js/misc/breakManager.js:998
#, javascript-format
msgid "%d day"
msgid_plural "%d days"
@@ -742,95 +700,91 @@
msgstr[1] "%d päivää"
#. %s will be replaced with a string that describes a time interval, such as “2 minutes”, “40 seconds” or “1 hour”
-#: js/misc/breakManager.js:1057
+#: js/misc/breakManager.js:1081
#, javascript-format
msgid "It will be time for a break in %s"
msgid_plural "It will be time for a break in %s"
msgstr[0] "Taukoon aikaa %s"
msgstr[1] "It will be time for a break in %s"
-#: js/misc/breakManager.js:1065
+#: js/misc/breakManager.js:1089
msgid "Movement Break Soon"
msgstr "Liikuntatauko pian"
-#: js/misc/breakManager.js:1068
+#: js/misc/breakManager.js:1092
msgid "Eyesight Break Soon"
msgstr "Katselutauko pian"
-#: js/misc/breakManager.js:1071
+#: js/misc/breakManager.js:1095
msgid "Break Soon"
msgstr "Tauko pian"
-#: js/misc/breakManager.js:1115
+#: js/misc/breakManager.js:1140
msgid "Movement Break in Progress"
msgstr "Liikuntatauko meneillään"
#. %s will be replaced with a string that describes a time interval, such as “2 minutes”, “40 seconds” or “1 hour”
-#: js/misc/breakManager.js:1118
+#: js/misc/breakManager.js:1143
#, javascript-format
msgid "Continue moving around for %s"
msgid_plural "Continue moving around for %s"
msgstr[0] "Jatka liikkumista vielä %s"
msgstr[1] "Jatka liikkumista vielä %s"
-#: js/misc/breakManager.js:1124
+#: js/misc/breakManager.js:1149
msgid "Eyesight Break in Progress"
msgstr "Katselutauko meneillään"
#. %s will be replaced with a string that describes a time interval, such as “2 minutes”, “40 seconds” or “1 hour”
-#: js/misc/breakManager.js:1127
+#: js/misc/breakManager.js:1152
#, javascript-format
msgid "Continue looking away for %s"
msgid_plural "Continue looking away for %s"
msgstr[0] "Katsele muualle kuin näyttöön vielä %s"
msgstr[1] "Katsele muualle kuin näyttöön vielä %s"
-#: js/misc/breakManager.js:1133
+#: js/misc/breakManager.js:1158
msgid "Break in Progress"
msgstr "Tauko meneillään"
#. %s will be replaced with a string that describes a time interval, such as “2 minutes”, “40 seconds” or “1 hour”
-#: js/misc/breakManager.js:1136
+#: js/misc/breakManager.js:1161
#, javascript-format
msgid "%s left in your break"
msgid_plural "%s left in your break"
msgstr[0] "%s jäljellä taukoa"
msgstr[1] "%s jäljellä taukoa"
-#: js/misc/breakManager.js:1175
+#: js/misc/breakManager.js:1200
msgid "Time for a Movement Break"
msgstr "Liikuntatauon aika"
#. %s will be replaced with a string that describes a time interval, such as “2 minutes”, “40 seconds” or “1 hour”
-#: js/misc/breakManager.js:1178
+#: js/misc/breakManager.js:1203
#, javascript-format
msgid "Take a break from the device and move around for %s"
msgid_plural "Take a break from the device and move around for %s"
msgstr[0] "Pidä taukoa laitteelta ja liiku %s"
msgstr[1] "Pidä taukoa laitteelta ja liiku %s"
-#: js/misc/breakManager.js:1184
+#: js/misc/breakManager.js:1209
msgid "Time for an Eyesight Break"
msgstr "Katselutauon aika"
#. %s will be replaced with a string that describes a time interval, such as “2 minutes”, “40 seconds” or “1 hour”
-#: js/misc/breakManager.js:1187
+#: js/misc/breakManager.js:1212
#, javascript-format
-msgid ""
-"Take a break from the screen. Look at least 6 meters away for at least %s"
-msgid_plural ""
-"Take a break from the screen. Look at least 6 meters away for at least %s"
-msgstr[0] ""
-"Pidä tauko näytön katselulta. Katso vähintään kuuden metrin päähän %s"
-msgstr[1] ""
-"Pidä tauko näytön katselulta. Katso vähintään kuuden metrin päähän %s"
+msgid "Take a break from the screen. Look at least 6 meters away for at least %s"
+msgid_plural "Take a break from the screen. Look at least 6 meters away for at least %s"
+msgstr[0] "Pidä tauko näytön katselulta. Katso vähintään kuuden metrin päähän %s"
+msgstr[1] "Pidä tauko näytön katselulta. Katso vähintään kuuden metrin päähän %s"
-#: js/misc/breakManager.js:1193
+#: js/misc/breakManager.js:1218
msgid "Time for a Break"
msgstr "Tauon aika"
#. %s will be replaced with a string that describes a time interval, such as “2 minutes”, “40 seconds” or “1 hour”
-#: js/misc/breakManager.js:1196
+#: js/misc/breakManager.js:1221
#, javascript-format
msgid "It’s time to take a break. Get away from the device for %s!"
msgid_plural "It’s time to take a break. Get away from the device for %s!"
@@ -838,44 +792,46 @@
msgstr[1] "It’s time to take a break. Get away from the device for %s!"
#. %s will be replaced with a string that describes a time interval, such as “2 minutes”, “40 seconds” or “1 hour”
-#: js/misc/breakManager.js:1218
+#: js/misc/breakManager.js:1245
#, javascript-format
msgid "You were due to take a break %s ago"
msgid_plural "You were due to take a break %s ago"
msgstr[0] "Tauon pitäminen myöhästyi %s"
msgstr[1] "Tauon pitäminen myöhästyi %s"
-#: js/misc/breakManager.js:1224
+#: js/misc/breakManager.js:1251
msgid "Break Overdue"
msgstr "Tauko myöhässä"
-#. %s will be replaced with a string that describes a time interval, such as “2 minutes”, “40 seconds” or “1 hour”
-#: js/misc/breakManager.js:1238
+#: js/misc/breakManager.js:1267
#, javascript-format
msgid "There is %s remaining in your break"
msgid_plural "There are %s remaining in your break"
msgstr[0] "Taukoa jäljellä %s"
msgstr[1] "Taukoa jäljellä %s"
-#: js/misc/breakManager.js:1244
+#: js/misc/breakManager.js:1273
msgid "Break Interrupted"
msgstr "Tauko keskeytetty"
-#: js/misc/breakManager.js:1315
+#. Translators: As in "Delay the break"
+#: js/misc/breakManager.js:1351
msgid "Delay"
msgstr "Viive"
-#: js/misc/breakManager.js:1336 js/ui/welcomeDialog.js:61
+#. Translators: As in "Skip the break"
+#: js/misc/breakManager.js:1373 js/ui/welcomeDialog.js:61
msgid "Skip"
msgstr "Ohita"
-#: js/misc/breakManager.js:1357
+#. Translators: As in "Take the break"
+#: js/misc/breakManager.js:1395
msgid "Take"
msgstr "Pidä"
#. Translators: This is a notification to warn the user that a
#. screen time break will start shortly.
-#: js/misc/breakManager.js:1420
+#: js/misc/breakManager.js:1458
#, javascript-format
msgid "Break in %d second"
msgid_plural "Break in %d seconds"
@@ -952,8 +908,7 @@
#: js/misc/systemActions.js:141
msgid "lock orientation;unlock orientation;screen;rotation"
msgstr ""
-"lock orientation;unlock orientation;screen;rotation;lukitse kierto;lukitse "
-"suunta;suunta;kääntö"
+"lock orientation;unlock orientation;screen;rotation;lukitse kierto;lukitse suunta;suunta;kääntö"
#. Translators: The name of the screenshot UI action in search
#: js/misc/systemActions.js:146
@@ -964,9 +919,7 @@
#. Translators: A list of keywords that match the screenshot UI action, separated by semicolons
#: js/misc/systemActions.js:149
msgid "screenshot;screencast;snip;capture;record"
-msgstr ""
-"screenshot;screencast;snip;capture;record;kuvakaappaus;näyttökaappaus;"
-"näyttövideo;nauhoita"
+msgstr "screenshot;screencast;snip;capture;record;kuvakaappaus;näyttökaappaus;näyttövideo;nauhoita"
#: js/misc/systemActions.js:249
msgctxt "search-result"
@@ -978,22 +931,26 @@
msgid "Lock Screen Rotation"
msgstr "Lukitse näytön kierto"
-#: js/misc/timeLimitsManager.js:1043
+#: js/misc/timeLimitsManager.js:342
+msgid "GNOME needs to save screen time data"
+msgstr "Gnomen täytyy tallentaa tietoja näytön käytön kestosta"
+
+#: js/misc/timeLimitsManager.js:1123
#, javascript-format
msgid "Screen Time Limit in %d Minute"
msgid_plural "Screen Time Limit in %d Minutes"
msgstr[0] "Ruutuaika loppuu %d minuutin päästä"
msgstr[1] "Ruutuaika loppuu %d minuutin päästä"
-#: js/misc/timeLimitsManager.js:1050
+#: js/misc/timeLimitsManager.js:1130
msgid "Your screen time limit is approaching"
msgstr "Ruutuaika loppuu pian"
-#: js/misc/timeLimitsManager.js:1064
+#: js/misc/timeLimitsManager.js:1144
msgid "Screen Time Limit Reached"
msgstr "Ruutuaika loppui"
-#: js/misc/timeLimitsManager.js:1065
+#: js/misc/timeLimitsManager.js:1145
msgid "It’s time to stop using the device"
msgstr "Aika lopettaa laitteen käyttäminen"
@@ -1024,7 +981,7 @@
msgstr[0] "%d tunti sitten"
msgstr[1] "%d tuntia sitten"
-#: js/misc/dateUtils.js:85 js/ui/dateMenu.js:183
+#: js/misc/dateUtils.js:85 js/ui/dateMenu.js:184
msgid "Yesterday"
msgstr "Eilen"
@@ -1134,11 +1091,11 @@
#: js/portalHelper/main.js:104
msgid ""
-"Your connection to this hotspot login is not secure. Passwords or other "
-"information you enter on this page can be viewed by people nearby."
+"Your connection to this hotspot login is not secure. Passwords or other information you enter on "
+"this page can be viewed by people nearby."
msgstr ""
-"Yhteytesi tukiaseman kirjautumissivuun ei ole salattu. Salasanat ja muut "
-"välittämäsi tiedot voivat olla muiden ihmisten nähtävissä."
+"Yhteytesi tukiaseman kirjautumissivuun ei ole salattu. Salasanat ja muut välittämäsi tiedot "
+"voivat olla muiden ihmisten nähtävissä."
#: js/portalHelper/main.js:115
msgid "Hotspot Login"
@@ -1354,12 +1311,8 @@
msgstr "“%s” ei vastaa"
#: js/ui/closeDialog.js:43
-msgid ""
-"You may choose to wait a short while for it to continue or force the app to "
-"quit entirely"
-msgstr ""
-"Voit odottaa hetken sovelluksen jatkamista tai pakottaa sovelluksen "
-"lopetuksen"
+msgid "You may choose to wait a short while for it to continue or force the app to quit entirely"
+msgstr "Voit odottaa hetken sovelluksen jatkamista tai pakottaa sovelluksen lopetuksen"
#: js/ui/closeDialog.js:71
msgid "Force Quit"
@@ -1401,13 +1354,11 @@
msgstr "Avaa käyttäen sovellusta %s"
#: js/ui/components/networkAgent.js:96
-msgid ""
-"Alternatively you can connect by pushing the “WPS” button on your router"
-msgstr ""
-"Vaihtoehtoisesti voit yhdistää painamalla reitittimesi “WPS”-painiketta"
+msgid "Alternatively you can connect by pushing the “WPS” button on your router"
+msgstr "Vaihtoehtoisesti voit yhdistää painamalla reitittimesi “WPS”-painiketta"
-#: js/ui/components/networkAgent.js:108 js/ui/status/bluetooth.js:246
-#: js/ui/status/network.js:360 js/ui/status/network.js:444
+#: js/ui/components/networkAgent.js:108 js/ui/status/bluetooth.js:246 js/ui/status/network.js:360
+#: js/ui/status/network.js:444
msgid "Connect"
msgstr "Yhdistä"
@@ -1434,8 +1385,7 @@
#: js/ui/components/networkAgent.js:372 js/ui/components/networkAgent.js:746
#, javascript-format
-msgid ""
-"Passwords or encryption keys are required to access the wireless network “%s”"
+msgid "Passwords or encryption keys are required to access the wireless network “%s”"
msgstr "Langaton verkko “%s” vaatii salasanan tai salausavaimia"
#: js/ui/components/networkAgent.js:376 js/ui/components/networkAgent.js:750
@@ -1525,29 +1475,29 @@
msgstr "%A, %e. %Bta %Y"
#. Translators: Shown on calendar heading when selected day occurs on current year
-#: js/ui/dateMenu.js:172
+#: js/ui/dateMenu.js:173
msgctxt "calendar heading"
msgid "%B %-d"
msgstr "%e. %Bta"
#. Translators: Shown on calendar heading when selected day occurs on different year
-#: js/ui/dateMenu.js:175
+#: js/ui/dateMenu.js:176
msgctxt "calendar heading"
msgid "%B %-d %Y"
msgstr "%e. %Bta %Y"
-#: js/ui/dateMenu.js:181
+#: js/ui/dateMenu.js:182
msgid "Today"
msgstr "Tänään"
-#: js/ui/dateMenu.js:185
+#: js/ui/dateMenu.js:186
msgid "Tomorrow"
msgstr "Huomenna"
#. Translators: Shown in calendar event list for all day events
#. * Keep it short, best if you can use less then 10 characters
#.
-#: js/ui/dateMenu.js:216
+#: js/ui/dateMenu.js:217
msgctxt "event list time"
msgid "All Day"
msgstr "Koko päivä"
@@ -1555,39 +1505,39 @@
#. Translators: Shown in calendar event list as the start/end of events
#. * that only show day and month
#.
-#: js/ui/dateMenu.js:238
+#: js/ui/dateMenu.js:239
msgid "%m/%d"
msgstr ""
-#: js/ui/dateMenu.js:289
+#: js/ui/dateMenu.js:290
msgid "No Events"
msgstr "Ei tapahtumia"
-#: js/ui/dateMenu.js:411
+#: js/ui/dateMenu.js:412
msgid "Add World Clocks…"
msgstr "Lisää maailmankelloja…"
-#: js/ui/dateMenu.js:412
+#: js/ui/dateMenu.js:413
msgid "World Clocks"
msgstr "Maailmankellot"
-#: js/ui/dateMenu.js:702
+#: js/ui/dateMenu.js:704
msgid "Loading…"
msgstr "Ladataan…"
-#: js/ui/dateMenu.js:712
+#: js/ui/dateMenu.js:714
msgid "Go Online for Weather Information"
msgstr "Yhdistä verkkoon saadaksesi säätietoja"
-#: js/ui/dateMenu.js:714
+#: js/ui/dateMenu.js:716
msgid "Weather Information Unavailable"
msgstr "Säätiedot eivät ole juuri nyt saatavilla"
-#: js/ui/dateMenu.js:724
+#: js/ui/dateMenu.js:726
msgid "Weather"
msgstr "Sää"
-#: js/ui/dateMenu.js:726
+#: js/ui/dateMenu.js:728
msgid "Select Weather Location…"
msgstr "Valitse sään sijainti…"
@@ -1662,10 +1612,8 @@
#, javascript-format
msgid "The system will restart automatically in %d second"
msgid_plural "The system will restart automatically in %d seconds"
-msgstr[0] ""
-"Järjestelmä käynnistyy automaattisesti uudelleen %d sekunnin kuluttua"
-msgstr[1] ""
-"Järjestelmä käynnistyy automaattisesti uudelleen %d sekunnin kuluttua"
+msgstr[0] "Järjestelmä käynnistyy automaattisesti uudelleen %d sekunnin kuluttua"
+msgstr[1] "Järjestelmä käynnistyy automaattisesti uudelleen %d sekunnin kuluttua"
#: js/ui/endSessionDialog.js:101
msgctxt "button"
@@ -1680,14 +1628,11 @@
#: js/ui/endSessionDialog.js:112
#, javascript-format
msgid "The system will automatically restart and install updates in %d second"
-msgid_plural ""
-"The system will automatically restart and install updates in %d seconds"
+msgid_plural "The system will automatically restart and install updates in %d seconds"
msgstr[0] ""
-"Järjestelmä käynnistyy automaattisesti uudelleen ja asentaa päivitykset %d "
-"sekunnin kuluttua"
+"Järjestelmä käynnistyy automaattisesti uudelleen ja asentaa päivitykset %d sekunnin kuluttua"
msgstr[1] ""
-"Järjestelmä käynnistyy automaattisesti uudelleen ja asentaa päivitykset %d "
-"sekunnin kuluttua"
+"Järjestelmä käynnistyy automaattisesti uudelleen ja asentaa päivitykset %d sekunnin kuluttua"
#: js/ui/endSessionDialog.js:119 js/ui/endSessionDialog.js:140
msgctxt "button"
@@ -1715,18 +1660,15 @@
#: js/ui/endSessionDialog.js:134
#, javascript-format
msgid ""
-"%s %s will be installed after restart. Upgrade installation can take a long "
-"time: ensure that you have backed up and that the computer is plugged in."
+"%s %s will be installed after restart. Upgrade installation can take a long time: ensure that "
+"you have backed up and that the computer is plugged in."
msgstr ""
-"%s %s asennetaan uudelleenkäynnistyksen jälkeen. Versiopäivityksen asennus "
-"voi kestää kauan: varmista varmuuskopioidesi ajantasaisuus ja toimivuus. "
-"Kiinnitä kone myös verkkovirtaan."
+"%s %s asennetaan uudelleenkäynnistyksen jälkeen. Versiopäivityksen asennus voi kestää kauan: "
+"varmista varmuuskopioidesi ajantasaisuus ja toimivuus. Kiinnitä kone myös verkkovirtaan."
#: js/ui/endSessionDialog.js:283
msgid "Low battery power: please plug in before installing updates"
-msgstr ""
-"Laitteen akkuvirta vähissä: kiinnitä verkkovirtaan ennen päivitysten "
-"asennusta"
+msgstr "Laitteen akkuvirta vähissä: kiinnitä verkkovirtaan ennen päivitysten asennusta"
#: js/ui/endSessionDialog.js:292
msgid "Some applications are busy or have unsaved work"
@@ -1804,12 +1746,11 @@
#: js/ui/kbdA11yDialog.js:36
msgid ""
-"You just held down the Shift key for 8 seconds. This is the shortcut for the "
-"Slow Keys feature, which affects the way your keyboard works."
+"You just held down the Shift key for 8 seconds. This is the shortcut for the Slow Keys feature, "
+"which affects the way your keyboard works."
msgstr ""
-"Pidit juuri Shift-näppäintä pohjassa kahdeksan sekuntia. Se toimii "
-"pikanäppäimenä hitaiden näppäinten ominaisuudelle, joka taasen vaikuttaa "
-"näppäimistön toimintatapaan."
+"Pidit juuri Shift-näppäintä pohjassa kahdeksan sekuntia. Se toimii pikanäppäimenä hitaiden "
+"näppäinten ominaisuudelle, joka taasen vaikuttaa näppäimistön toimintatapaan."
#: js/ui/kbdA11yDialog.js:42
msgid "Sticky Keys Turned On"
@@ -1821,22 +1762,20 @@
#: js/ui/kbdA11yDialog.js:45
msgid ""
-"You just pressed the Shift key 5 times in a row. This is the shortcut for "
-"the Sticky Keys feature, which affects the way your keyboard works."
+"You just pressed the Shift key 5 times in a row. This is the shortcut for the Sticky Keys "
+"feature, which affects the way your keyboard works."
msgstr ""
-"Painoit juuri Shift-näppäintä viisi kertaa peräkkäin. Se toimii "
-"pikanäppäimenä pohjaan jäävien näppäinten ominaisuudelle, joka taasen "
-"vaikuttaa näppäimistön toimintatapaan."
+"Painoit juuri Shift-näppäintä viisi kertaa peräkkäin. Se toimii pikanäppäimenä pohjaan jäävien "
+"näppäinten ominaisuudelle, joka taasen vaikuttaa näppäimistön toimintatapaan."
#: js/ui/kbdA11yDialog.js:47
msgid ""
-"You just pressed two keys at once, or pressed the Shift key 5 times in a "
-"row. This turns off the Sticky Keys feature, which affects the way your "
-"keyboard works."
-msgstr ""
-"Painoit juuri kahta näppäintä samanaikaisesti, tai painoit Shift-näppäintä "
-"viisi kertaa peräkkäin. Tämä kytkee pohjaan jäävien näppäinten ominaisuuden "
-"pois käytöstä, joka taasen vaikuttaa näppäimistön toimintatapaan."
+"You just pressed two keys at once, or pressed the Shift key 5 times in a row. This turns off the "
+"Sticky Keys feature, which affects the way your keyboard works."
+msgstr ""
+"Painoit juuri kahta näppäintä samanaikaisesti, tai painoit Shift-näppäintä viisi kertaa "
+"peräkkäin. Tämä kytkee pohjaan jäävien näppäinten ominaisuuden pois käytöstä, joka taasen "
+"vaikuttaa näppäimistön toimintatapaan."
#: js/ui/kbdA11yDialog.js:57
msgid "Leave On"
@@ -1926,11 +1865,11 @@
#: js/ui/main.js:367
msgid ""
-"Running a session as a privileged user should be avoided for security "
-"reasons. If possible, you should log in as a normal user."
+"Running a session as a privileged user should be avoided for security reasons. If possible, you "
+"should log in as a normal user."
msgstr ""
-"Istunnon suorittamista etuoikeutettuna käyttäjänä tulisi välttää "
-"tietoturvasyistä. Jos mahdollista, kirjaudu tavallisena käyttäjänä."
+"Istunnon suorittamista etuoikeutettuna käyttäjänä tulisi välttää tietoturvasyistä. Jos "
+"mahdollista, kirjaudu tavallisena käyttäjänä."
#: js/ui/main.js:415
msgid "Screen Lock disabled"
@@ -2043,15 +1982,15 @@
msgid "Run a Command"
msgstr "Suorita komento"
-#: js/ui/runDialog.js:76
+#: js/ui/runDialog.js:79
msgid "Press ESC to close"
msgstr "Paina ESC poistuaksesi"
-#: js/ui/runDialog.js:253
+#: js/ui/runDialog.js:256
msgid "Restart is not available on Wayland"
msgstr "Uudelleenkäynnistys ei ole käytettävissä Waylandilla"
-#: js/ui/runDialog.js:258
+#: js/ui/runDialog.js:261
msgid "Restarting…"
msgstr "Käynnistetään uudelleen…"
@@ -2111,79 +2050,79 @@
#. Translators: this is the folder where recorded
#. screencasts are stored.
-#: js/ui/screenshot.js:1994
+#: js/ui/screenshot.js:1998
msgid "Screencasts"
msgstr "Näyttötallennevideot"
#. Translators: this is a filename used for screencast
#. * recording, where "%d" and "%t" date and time, e.g.
#. * "Screencast From 07-17-2013 10:00:46 PM"
-#: js/ui/screenshot.js:1999
+#: js/ui/screenshot.js:2003
#, no-c-format
msgid "Screencast From %d %t"
msgstr "Näyttötallennevideo - %d %t"
#. Translators: notification title.
-#: js/ui/screenshot.js:2045
+#: js/ui/screenshot.js:2049
msgid "Screencast recorded"
msgstr "Näyttötallennevideo otettu"
#. Translators: notification title.
-#: js/ui/screenshot.js:2058
+#: js/ui/screenshot.js:2062
msgid "Screencast failed to start"
msgstr "Näyttötallennevideon käynnistäminen epäonnistui"
#. Translators: notification title.
-#: js/ui/screenshot.js:2064
+#: js/ui/screenshot.js:2068
msgid "Screencast ended: Out of disk space"
msgstr "Näyttötallennevideo päättyi: levytila loppui"
#. We can encourage user to try again on service crashes since the
#. recorder will auto-blocklist the pipeline that crashed.
#. Translators: notification title.
-#: js/ui/screenshot.js:2070
+#: js/ui/screenshot.js:2074
msgid "Screencast ended unexpectedly, please try again"
msgstr "Näyttötallennevideo päättyi odottamatta, yritä uudelleen"
#. Translators: notification title.
-#: js/ui/screenshot.js:2073
+#: js/ui/screenshot.js:2077
msgid "Screencast ended unexpectedly"
msgstr "Näyttötallennevideo päättyi odottamatta"
#. Translators: notification source name.
-#: js/ui/screenshot.js:2083 js/ui/screenshot.js:2327
+#: js/ui/screenshot.js:2087 js/ui/screenshot.js:2334
msgid "Screenshot"
msgstr "Kuvakaappaus"
#. Translators: notification body when a screencast was recorded.
-#: js/ui/screenshot.js:2090
+#: js/ui/screenshot.js:2094
msgid "Click here to view the video."
msgstr "Napsauta tästä katsoaksesi videon."
#. Translators: button on the screencast notification.
#. Translators: button on the screenshot notification.
-#: js/ui/screenshot.js:2098 js/ui/screenshot.js:2343
+#: js/ui/screenshot.js:2102 js/ui/screenshot.js:2350
msgid "Show in Files"
msgstr "Näytä tiedostohallinnassa"
#. Translators: this is the name of the file that the screenshot is
#. saved to. The placeholder is a timestamp, e.g. "2017-05-21 12-24-03".
-#: js/ui/screenshot.js:2285
+#: js/ui/screenshot.js:2292
#, javascript-format
msgid "Screenshot From %s"
msgstr "Kuvakaappaus - %s"
#. Translators: notification title.
-#: js/ui/screenshot.js:2333
+#: js/ui/screenshot.js:2340
msgid "Screenshot captured"
msgstr "Kuvakaappaus otettu"
#. Translators: notification body when a screenshot was captured.
-#: js/ui/screenshot.js:2335
+#: js/ui/screenshot.js:2342
msgid "You can paste the image from the clipboard."
msgstr "Voit liittää kuvan leikepöydältä."
-#: js/ui/screenshot.js:2391 js/ui/screenshot.js:2555
+#: js/ui/screenshot.js:2401 js/ui/screenshot.js:2565
msgid "Screenshot taken"
msgstr "Kuvakaappaus otettu"
@@ -2202,8 +2141,7 @@
msgstr[0] "%d lisää"
msgstr[1] "%d lisää"
-#: js/ui/searchController.js:87
-#: subprojects/extensions-app/data/ui/extensions-window.ui:73
+#: js/ui/searchController.js:87 subprojects/extensions-app/data/ui/extensions-window.ui:73
msgid "Search"
msgstr "Haku"
@@ -2242,17 +2180,13 @@
#. Translators: %s is the Disks application
#: js/ui/shellMountOperation.js:300
#, javascript-format
-msgid ""
-"To unlock a volume that uses keyfiles, use the %s utility instead"
+msgid "To unlock a volume that uses keyfiles, use the %s utility instead"
msgstr "Avataksesi avaintiedostoja käyttävän taltion, käytä %s"
#: js/ui/shellMountOperation.js:304
-msgid ""
-"You need an external utility like Disks to unlock a volume that uses "
-"keyfiles"
+msgid "You need an external utility like Disks to unlock a volume that uses keyfiles"
msgstr ""
-"Tarvitset erillisen sovelluksen, kuten Levyt, avataksesi "
-"avaintiedostoja käyttävän taltion"
+"Tarvitset erillisen sovelluksen, kuten Levyt, avataksesi avaintiedostoja käyttävän taltion"
#: js/ui/shellMountOperation.js:312
msgid "PIM Number"
@@ -2377,35 +2311,35 @@
msgstr "Katkaise yhteys"
#. Translators: %s is a device name like "MyPhone"
-#: js/ui/status/bluetooth.js:265 js/ui/status/network.js:354
+#: js/ui/status/bluetooth.js:267 js/ui/status/network.js:354
#, javascript-format
msgid "Disconnect %s"
msgstr "Katkaise yhteys kohteeseen %s"
#. Translators: %s is a device name like "MyPhone"
-#: js/ui/status/bluetooth.js:267 js/ui/status/network.js:356
+#: js/ui/status/bluetooth.js:269 js/ui/status/network.js:356
#, javascript-format
msgid "Connect to %s"
msgstr "Yhdistä kohteeseen %s"
-#: js/ui/status/bluetooth.js:274 js/ui/status/bluetooth.js:276
+#: js/ui/status/bluetooth.js:276 js/ui/status/bluetooth.js:278
msgid "Bluetooth"
msgstr "Bluetooth"
-#: js/ui/status/bluetooth.js:299 js/ui/status/network.js:1909
+#: js/ui/status/bluetooth.js:301 js/ui/status/network.js:1920
msgid "Bluetooth Settings"
msgstr "Bluetooth-asetukset"
-#: js/ui/status/bluetooth.js:346
+#: js/ui/status/bluetooth.js:348
msgid "No available or connected devices"
msgstr "Ei käytettävissä olevia tai yhdistettyjä laitteita"
-#: js/ui/status/bluetooth.js:347
+#: js/ui/status/bluetooth.js:349
msgid "Turn on Bluetooth to connect to devices"
msgstr "Kytke Bluetooth päälle yhdistääksesi laitteisiin"
#. Translators: This is the number of connected bluetooth devices
-#: js/ui/status/bluetooth.js:411
+#: js/ui/status/bluetooth.js:413
#, javascript-format
msgid "%d Connected"
msgid_plural "%d Connected"
@@ -2456,9 +2390,7 @@
#: js/ui/status/location.js:349
msgid "Location access can be changed at any time from the privacy settings"
-msgstr ""
-"Sijaintitiedon käyttöoikeuksia voi muuttaa milloin tahansa "
-"yksityisyysasetuksista"
+msgstr "Sijaintitiedon käyttöoikeuksia voi muuttaa milloin tahansa yksityisyysasetuksista"
#: js/ui/status/location.js:357
msgid "Deny Access"
@@ -2472,93 +2404,93 @@
msgid ""
msgstr ""
-#: js/ui/status/network.js:1059
+#: js/ui/status/network.js:1060
msgid "Secure"
msgstr "Turvallinen"
-#: js/ui/status/network.js:1059
+#: js/ui/status/network.js:1060
msgid "Not secure"
msgstr "Ei turvallinen"
-#: js/ui/status/network.js:1060
+#: js/ui/status/network.js:1061
#, javascript-format
msgid "Signal strength %s%%"
msgstr "Signaalin vahvuus %s%%"
#. translators: The first placeholder is the network name, the second and indication whether it is secure, and the last the signal strength indication
-#: js/ui/status/network.js:1062
+#: js/ui/status/network.js:1063
#, javascript-format
msgid "%s, %s, %s"
msgstr "%s, %s, %s"
#. Translators: %s is a network identifier
-#: js/ui/status/network.js:1164
+#: js/ui/status/network.js:1165
#, javascript-format
msgid "%s Hotspot"
msgstr "%s - Yhteyspiste"
-#: js/ui/status/network.js:1435
+#: js/ui/status/network.js:1446
#, javascript-format
msgid "%d connected"
msgid_plural "%d connected"
msgstr[0] "%d yhdistetty"
msgstr[1] "%d yhdistetty"
-#: js/ui/status/network.js:1533 js/ui/status/network.js:1549
+#: js/ui/status/network.js:1544 js/ui/status/network.js:1560
msgid "VPN"
msgstr "VPN"
-#: js/ui/status/network.js:1534
+#: js/ui/status/network.js:1545
msgid "VPN Settings"
msgstr "VPN-asetukset"
-#: js/ui/status/network.js:1794
+#: js/ui/status/network.js:1805
msgid "Wi–Fi"
msgstr "Wi-Fi"
-#: js/ui/status/network.js:1796
+#: js/ui/status/network.js:1807
msgid "All Networks"
msgstr "Kaikki verkot"
-#: js/ui/status/network.js:1893
+#: js/ui/status/network.js:1904
msgid "Wired Connections"
msgstr "Kiinteät yhteydet"
-#: js/ui/status/network.js:1894
+#: js/ui/status/network.js:1905
msgid "Wired Settings"
msgstr "Kiinteän yhteyden asetukset"
-#: js/ui/status/network.js:1908
+#: js/ui/status/network.js:1919
msgid "Bluetooth Tethers"
msgstr "Bluetoothilla jaetut yhteydet"
#. Translators: "Tether" from "Bluetooth Tether"
-#: js/ui/status/network.js:1915
+#: js/ui/status/network.js:1926
msgid "Tether"
msgstr "Tether"
-#: js/ui/status/network.js:1928
+#: js/ui/status/network.js:1939
msgid "Mobile Connections"
msgstr "Mobiiliyhteydet"
-#: js/ui/status/network.js:1930
+#: js/ui/status/network.js:1941
msgid "Mobile Broadband Settings"
msgstr "Mobiililaajakaistan asetukset"
#. Translators: "Mobile" from "Mobile Broadband"
-#: js/ui/status/network.js:1939
+#: js/ui/status/network.js:1950
msgid "Mobile"
msgstr "Mobiili"
-#: js/ui/status/network.js:1973
+#: js/ui/status/network.js:1984
msgid "Sign Into Wi–Fi Network"
msgstr "Kirjaudu Wi–Fi-verkkoon"
-#: js/ui/status/network.js:2160
+#: js/ui/status/network.js:2171
msgid "Connection failed"
msgstr "Yhteys epäonnistui"
-#: js/ui/status/network.js:2161
+#: js/ui/status/network.js:2172
msgid "Activation of network connection failed"
msgstr "Verkkoyhteyden aktivointi epäonnistui"
@@ -2597,7 +2529,7 @@
msgid "Stop Screen Sharing"
msgstr "Lopeta näytön jakaminen"
-#: js/ui/status/rfkill.js:99
+#: js/ui/status/rfkill.js:97
msgid "Airplane Mode"
msgstr "Lentokonetila"
@@ -2617,8 +2549,7 @@
msgid "Power Off…"
msgstr "Sammuta…"
-#: js/ui/status/system.js:193
-#: subprojects/extensions-app/data/ui/extensions-window.ui:124
+#: js/ui/status/system.js:193 subprojects/extensions-app/data/ui/extensions-window.ui:124
msgid "Log Out…"
msgstr "Kirjaudu ulos…"
@@ -2631,32 +2562,31 @@
msgid "Lock Screen"
msgstr "Lukitse näyttö"
-#: js/ui/status/thunderbolt.js:308
+#: js/ui/status/thunderbolt.js:311
msgid "Unknown Thunderbolt device"
msgstr "Tuntematon Thunderbolt-laite"
-#: js/ui/status/thunderbolt.js:309
+#: js/ui/status/thunderbolt.js:312
msgid ""
-"New device has been detected while you were away. Please disconnect and "
-"reconnect the device to start using it."
+"New device has been detected while you were away. Please disconnect and reconnect the device to "
+"start using it."
msgstr ""
-"Uusi laite havaittiin, kun olit pois. Katkaise laitteen yhteys ja yhdistä se "
-"uudelleen, jotta voit aloittaa sen käyttämisen."
+"Uusi laite havaittiin, kun olit pois. Katkaise laitteen yhteys ja yhdistä se uudelleen, jotta "
+"voit aloittaa sen käyttämisen."
-#: js/ui/status/thunderbolt.js:312
+#: js/ui/status/thunderbolt.js:315
msgid "Unauthorized Thunderbolt device"
msgstr "Thunderbolt-laite ilman valtuutusta"
-#: js/ui/status/thunderbolt.js:313
-msgid ""
-"New device has been detected and needs to be authorized by an administrator"
+#: js/ui/status/thunderbolt.js:316
+msgid "New device has been detected and needs to be authorized by an administrator"
msgstr "Uusi laite on havaittu. Se tulee valtuuttaa ylläpitäjän toimesta"
-#: js/ui/status/thunderbolt.js:319
+#: js/ui/status/thunderbolt.js:322
msgid "Thunderbolt authorization error"
msgstr "Thunderbolt-valtuutusvirhe"
-#: js/ui/status/thunderbolt.js:320
+#: js/ui/status/thunderbolt.js:323
#, javascript-format
msgid "Could not authorize the Thunderbolt device: %s"
msgstr "Thunderbolt-laitetta ei voitu valtuuttaa: %s"
@@ -2917,56 +2847,53 @@
#: subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in:52
msgid ""
-"GNOME Extensions handles updating extensions, configuring extension "
-"preferences and removing or disabling unwanted extensions."
+"GNOME Extensions handles updating extensions, configuring extension preferences and removing or "
+"disabling unwanted extensions."
msgstr ""
-"Gnomen laajennussovellus Laajennukset käsittelee laajennusten päivitykset, "
-"niiden asetukset ja sen avulla voi poistaa laajennuksia käytöstä tai "
-"kokonaan järjestelmästä."
+"Gnomen laajennussovellus Laajennukset käsittelee laajennusten päivitykset, niiden asetukset ja "
+"sen avulla voi poistaa laajennuksia käytöstä tai kokonaan järjestelmästä."
-#: subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in:69
+#: subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in:72
msgid "Main Window"
msgstr "Pääikkuna"
-#: subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in:73
+#: subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in:76
msgid "Available Updates"
msgstr "Saatavilla olevat päivitykset"
-#: subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in:77
+#: subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in:80
msgid "Search View"
msgstr "Hakunäkymä"
-#: subprojects/extensions-app/data/org.gnome.Extensions.desktop.in.in:7
+#: subprojects/extensions-app/data/org.gnome.Extensions.desktop.in.in:6
msgid "Configure GNOME Shell Extensions"
msgstr "Hallitse Gnome Shell -laajennuksia"
#: subprojects/extensions-app/js/extensionManager.js:237
#, javascript-format
msgid ""
-"The installed version of this extension (%s) is incompatible with the "
-"current version of GNOME (%s). The extension has been disabled."
+"The installed version of this extension (%s) is incompatible with the current version of GNOME "
+"(%s). The extension has been disabled."
msgstr ""
-"Asennettu versio laajennuksesta (%s) ei ole yhteensopiva nykyisen Gnome-"
-"version (%s) kanssa. Tämä laajennus on poistettu käytöstä."
+"Asennettu versio laajennuksesta (%s) ei ole yhteensopiva nykyisen Gnome-version (%s) kanssa. "
+"Tämä laajennus on poistettu käytöstä."
#: subprojects/extensions-app/js/extensionManager.js:238
#, javascript-format
msgid ""
-"The installed version of this extension is incompatible with the current "
-"version of GNOME (%s). The extension has been disabled."
+"The installed version of this extension is incompatible with the current version of GNOME (%s). "
+"The extension has been disabled."
msgstr ""
-"Tämän laajennuksen asennettu versio ei ole yhteensopiva nykyisen Gnome-"
-"version (%s) kanssa. Tämä laajennus on poistettu käytöstä."
+"Tämän laajennuksen asennettu versio ei ole yhteensopiva nykyisen Gnome-version (%s) kanssa. Tämä "
+"laajennus on poistettu käytöstä."
#: subprojects/extensions-app/js/extensionManager.js:242
msgid ""
-"An error has occurred in this extension. This could cause issues elsewhere "
-"in the system. It is recommended to turn the extension off until the error "
-"is resolved."
-msgstr ""
-"Tässä laajennuksessa tapahtui virhe. Tämä saattaa aiheuttaa ongelmia muualla "
-"järjestelmässä. On suositeltavaa poistaa tämä laajennus käytöstä, kunnes "
-"virhe on selvitetty."
+"An error has occurred in this extension. This could cause issues elsewhere in the system. It is "
+"recommended to turn the extension off until the error is resolved."
+msgstr ""
+"Tässä laajennuksessa tapahtui virhe. Tämä saattaa aiheuttaa ongelmia muualla järjestelmässä. On "
+"suositeltavaa poistaa tämä laajennus käytöstä, kunnes virhe on selvitetty."
#. translators: Details for an extension error
#: subprojects/extensions-app/js/extensionManager.js:248
@@ -2985,11 +2912,10 @@
#: subprojects/extensions-app/js/extensionsWindow.js:114
msgid ""
-"If you remove the extension, you need to return to download it if you want "
-"to enable it again"
+"If you remove the extension, you need to return to download it if you want to enable it again"
msgstr ""
-"Ota huomioon jos poistat laajennuksen; sinun tulee palata ja ladata se "
-"uudelleen, jos haluat sen uudelleen käyttöön"
+"Ota huomioon jos poistat laajennuksen; sinun tulee palata ja ladata se uudelleen, jos haluat sen "
+"uudelleen käyttöön"
#: subprojects/extensions-app/js/extensionsWindow.js:117
msgid "_Cancel"
@@ -3019,11 +2945,9 @@
msgstr "Päivityksen tiedot"
#: subprojects/extensions-app/data/ui/extension-row.ui:68
-msgid ""
-"A new version of this extension is ready and will be loaded on next login."
+msgid "A new version of this extension is ready and will be loaded on next login."
msgstr ""
-"Uusi versio tästä laajennuksessa on valmis ja se ladataan seuraavan kerran, "
-"kun kirjaudut sisään."
+"Uusi versio tästä laajennuksessa on valmis ja se ladataan seuraavan kerran, kun kirjaudut sisään."
#: subprojects/extensions-app/data/ui/extension-row.ui:100
msgid "Extension Details"
@@ -3067,11 +2991,11 @@
#: subprojects/extensions-app/data/ui/extensions-window.ui:151
msgid ""
-"Extensions can cause performance and stability issues. It is recommended to "
-"disable all extensions if you experience problems with your system."
+"Extensions can cause performance and stability issues. It is recommended to disable all "
+"extensions if you experience problems with your system."
msgstr ""
-"Laajennukset voivat aiheuttaa suorituskyky- tai vakausongelmia. Poista "
-"kaikki laajennukset käytöstä, jos kohtaat ongelmia järjestelmän kanssa."
+"Laajennukset voivat aiheuttaa suorituskyky- tai vakausongelmia. Poista kaikki laajennukset "
+"käytöstä, jos kohtaat ongelmia järjestelmän kanssa."
#: subprojects/extensions-app/data/ui/extensions-window.ui:178
msgid "User Extensions"
@@ -3099,19 +3023,19 @@
#: subprojects/extensions-app/data/ui/extensions-window.ui:265
msgid ""
-"To find and add extensions, visit extensions.gnome.org."
+"To find and add extensions, visit extensions.gnome.org"
+"a>."
msgstr ""
-"Etsi ja asenna laajennuksia osoitteessa extensions.gnome.org."
+"Etsi ja asenna laajennuksia osoitteessa extensions.gnome.org."
#: subprojects/extensions-app/data/ui/extensions-window.ui:276
msgid ""
-"We’re very sorry, but it was not possible to get the list of installed "
-"extensions. Make sure you are logged into GNOME and try again."
+"We’re very sorry, but it was not possible to get the list of installed extensions. Make sure you "
+"are logged into GNOME and try again."
msgstr ""
-"Valitettavasti asennettujen laajennusten listaa ei voitu muodostaa. Varmista "
-"että olet kirjautunut Gnomeen ja yritä uudelleen."
+"Valitettavasti asennettujen laajennusten listaa ei voitu muodostaa. Varmista että olet "
+"kirjautunut Gnomeen ja yritä uudelleen."
#: subprojects/extensions-app/data/ui/help-overlay.ui:9
msgctxt "shortcut window"
@@ -3153,8 +3077,7 @@
"Nimen tulisi olla erittäin lyhyt, mieluiten kuvaava, merkkijono.\n"
"Esimerkkejä: %s"
-#: subprojects/extensions-tool/src/command-create.c:382
-#: subprojects/extensions-tool/src/main.c:243
+#: subprojects/extensions-tool/src/command-create.c:382 subprojects/extensions-tool/src/main.c:243
msgid "Name"
msgstr "Nimi"
@@ -3167,20 +3090,17 @@
"Kuvaus on yhden lauseen selvitys laajennuksen käyttötarkoituksesta.\n"
"Esimerkkejä: %s"
-#: subprojects/extensions-tool/src/command-create.c:402
-#: subprojects/extensions-tool/src/main.c:246
+#: subprojects/extensions-tool/src/command-create.c:402 subprojects/extensions-tool/src/main.c:246
msgid "Description"
msgstr "Kuvaus"
#: subprojects/extensions-tool/src/command-create.c:416
msgid ""
"UUID is a globally-unique identifier for your extension.\n"
-"This should be in the format of an email address (clicktofocus@janedoe."
-"example.com)\n"
+"This should be in the format of an email address (clicktofocus@janedoe.example.com)\n"
msgstr ""
"UUID on yksilöllinen tunniste laajennukselle.\n"
-"Tämän tulee olla sähköpostiosoitteen muodossa (clicktofocus@janedoe.example."
-"com)\n"
+"Tämän tulee olla sähköpostiosoitteen muodossa (clicktofocus@janedoe.example.com)\n"
#: subprojects/extensions-tool/src/command-create.c:443
msgid "Choose one of the available templates:\n"
@@ -3290,13 +3210,11 @@
msgstr "Ota laajennus käyttöön"
#: subprojects/extensions-tool/src/command-info.c:50
-#: subprojects/extensions-tool/src/command-list.c:66
-#: subprojects/extensions-tool/src/main.c:150
+#: subprojects/extensions-tool/src/command-list.c:66 subprojects/extensions-tool/src/main.c:150
msgid "Failed to connect to GNOME Shell\n"
msgstr "Gnome Shelliin yhdistäminen epäonnistui\n"
-#: subprojects/extensions-tool/src/command-info.c:59
-#: subprojects/extensions-tool/src/main.c:159
+#: subprojects/extensions-tool/src/command-info.c:59 subprojects/extensions-tool/src/main.c:159
#, c-format
msgid "Extension “%s” doesn't exist\n"
msgstr "Laajennusta “%s” ei ole olemassa\n"
@@ -3457,8 +3375,7 @@
msgid "Original author"
msgstr "Alkuperäinen tekijä"
-#: subprojects/extensions-tool/src/main.c:261
-#: subprojects/extensions-tool/src/main.c:263
+#: subprojects/extensions-tool/src/main.c:261 subprojects/extensions-tool/src/main.c:263
#: subprojects/extensions-tool/src/main.c:265
msgid "Version"
msgstr "Versio"
@@ -3483,8 +3400,7 @@
msgid "“version” takes no arguments"
msgstr "“version” ei kelpuuta argumentteja"
-#: subprojects/extensions-tool/src/main.c:311
-#: subprojects/extensions-tool/src/main.c:331
+#: subprojects/extensions-tool/src/main.c:311 subprojects/extensions-tool/src/main.c:331
msgid "Usage:"
msgstr "Käyttö:"
@@ -3492,8 +3408,7 @@
msgid "Print version information and exit."
msgstr "Tulosta versiotiedot ja poistu."
-#: subprojects/extensions-tool/src/main.c:329
-#: subprojects/extensions-tool/src/main.c:332
+#: subprojects/extensions-tool/src/main.c:329 subprojects/extensions-tool/src/main.c:332
msgid "COMMAND"
msgstr "KOMENTO"
@@ -3529,8 +3444,7 @@
msgid "List extensions"
msgstr "Listaa laajennukset"
-#: subprojects/extensions-tool/src/main.c:342
-#: subprojects/extensions-tool/src/main.c:343
+#: subprojects/extensions-tool/src/main.c:342 subprojects/extensions-tool/src/main.c:343
msgid "Show extension info"
msgstr "Näytä laajennuksen tiedot"
@@ -3555,27 +3469,27 @@
msgid "Use “%s” to get detailed help.\n"
msgstr "Suorita “%s” nähdäksesi yksityiskohtaisia ohjeita.\n"
-#: subprojects/extensions-tool/src/templates/00-plain.desktop.in:4
+#: subprojects/extensions-tool/src/templates/00-plain.desktop.in:3
msgid "Plain"
msgstr "Yksinkertainen"
-#: subprojects/extensions-tool/src/templates/00-plain.desktop.in:5
+#: subprojects/extensions-tool/src/templates/00-plain.desktop.in:4
msgid "An empty extension"
msgstr "Tyhjä laajennus"
-#: subprojects/extensions-tool/src/templates/indicator.desktop.in:4
+#: subprojects/extensions-tool/src/templates/indicator.desktop.in:3
msgid "Indicator"
msgstr "Ilmaisin"
-#: subprojects/extensions-tool/src/templates/indicator.desktop.in:5
+#: subprojects/extensions-tool/src/templates/indicator.desktop.in:4
msgid "Add an icon to the top bar"
msgstr "Lisää kuvake yläpalkkiin"
-#: subprojects/extensions-tool/src/templates/quick-settings.desktop.in:4
+#: subprojects/extensions-tool/src/templates/quick-settings.desktop.in:3
msgid "Quick Settings Item"
msgstr "Pika-asetusten kohde"
-#: subprojects/extensions-tool/src/templates/quick-settings.desktop.in:5
+#: subprojects/extensions-tool/src/templates/quick-settings.desktop.in:4
msgid "Add an item to quick settings"
msgstr "Lisää kohde pika-asetuksiin"
@@ -3615,8 +3529,7 @@
#, javascript-format
#~ msgid "Try to login again to start a session for user %s."
-#~ msgstr ""
-#~ "Yritä kirjautua uudelleen aloittaaksesi uuden istunnon käyttäjänä %s."
+#~ msgstr "Yritä kirjautua uudelleen aloittaaksesi uuden istunnon käyttäjänä %s."
#, javascript-format
#~ msgid "%s is now known as %s"
@@ -3671,10 +3584,8 @@
#~ msgid "Attach modal dialog to the parent window"
#~ msgstr "Kiinnitä modaali-ikkuna isäntäikkunaan"
-#~ msgid ""
-#~ "This key overrides the key in org.gnome.mutter when running GNOME Shell."
-#~ msgstr ""
-#~ "Tämä avain syrjäyttää avaimen org.gnome.mutter Gnome Shelliä käyttäessä."
+#~ msgid "This key overrides the key in org.gnome.mutter when running GNOME Shell."
+#~ msgstr "Tämä avain syrjäyttää avaimen org.gnome.mutter Gnome Shelliä käyttäessä."
#~ msgid "Enable edge tiling when dropping windows on screen edges"
#~ msgstr "Käytä reunakiinnitystä tiputtaessa ikkunoita näytön reunoille"
@@ -3686,9 +3597,7 @@
#~ msgstr "Työtilat ainoastaan ensisijaisella näytöllä"
#~ msgid "Delay focus changes in mouse mode until the pointer stops moving"
-#~ msgstr ""
-#~ "Viivästytä kohdistuksen vaihtumista hiiritilassa, kunnes osoitin lopettaa "
-#~ "liikkumisen"
+#~ msgstr "Viivästytä kohdistuksen vaihtumista hiiritilassa, kunnes osoitin lopettaa liikkumisen"
#~ msgid "Region & Language Settings"
#~ msgstr "Kielen & alueen asetukset"
@@ -3874,13 +3783,11 @@
#~ msgstr "Varoitus"
#~ msgid ""
-#~ "Extensions can cause system issues, including performance problems. If "
-#~ "you encounter problems with your system, it is recommended to disable all "
-#~ "extensions."
+#~ "Extensions can cause system issues, including performance problems. If you encounter problems "
+#~ "with your system, it is recommended to disable all extensions."
#~ msgstr ""
-#~ "Laajennukset voivat aiheuttaa ongelmia järjestelmässä, myös "
-#~ "suorituskykyyn. Jos kohtaat ongelmia järjestelmän kanssa, on "
-#~ "suositeltavaa poistaa kaikki laajennukset käytöstä."
+#~ "Laajennukset voivat aiheuttaa ongelmia järjestelmässä, myös suorituskykyyn. Jos kohtaat "
+#~ "ongelmia järjestelmän kanssa, on suositeltavaa poistaa kaikki laajennukset käytöstä."
#~ msgid "Failed to connect to GNOME Shell"
#~ msgstr "Gnome Shelliin yhdistäminen epäonnistui"
@@ -3888,12 +3795,9 @@
#~ msgid "Enable introspection API"
#~ msgstr "Käytä introspektiivistä API:a"
-#~ msgid ""
-#~ "Enables a D-Bus API that allows to introspect the application state of "
-#~ "the shell."
+#~ msgid "Enables a D-Bus API that allows to introspect the application state of the shell."
#~ msgstr ""
-#~ "Ottaa käyttöön D-Bus-rajapinnan, joka mahdollistaa shellin sovellustilan "
-#~ "itsetutkiskelun."
+#~ "Ottaa käyttöön D-Bus-rajapinnan, joka mahdollistaa shellin sovellustilan itsetutkiskelun."
#~ msgid "Minimize"
#~ msgstr "Pienennä"
@@ -4198,8 +4102,7 @@
#~ msgid "This account is already connected to the server"
#~ msgstr "Tämä tili on jo yhteydessä palvelimeen"
-#~ msgid ""
-#~ "Connection has been replaced by a new connection using the same resource"
+#~ msgid "Connection has been replaced by a new connection using the same resource"
#~ msgstr "Yhteys on korvattu uudella samaa resurssia käyttävällä yhteydellä"
#~ msgid "The account already exists on the server"
@@ -4211,16 +4114,13 @@
#~ msgid "Certificate has been revoked"
#~ msgstr "Varmenne on kumottu"
-#~ msgid ""
-#~ "Certificate uses an insecure cipher algorithm or is cryptographically weak"
+#~ msgid "Certificate uses an insecure cipher algorithm or is cryptographically weak"
#~ msgstr "Varmenne käyttää turvatonta salausmenetelmää"
#~ msgid ""
-#~ "The length of the server certificate, or the depth of the server "
-#~ "certificate chain, exceed the limits imposed by the cryptography library"
-#~ msgstr ""
-#~ "Palvelinvarmenne tai palvelinvarmenneketju on liian pitkä "
-#~ "salauskirjastolle"
+#~ "The length of the server certificate, or the depth of the server certificate chain, exceed "
+#~ "the limits imposed by the cryptography library"
+#~ msgstr "Palvelinvarmenne tai palvelinvarmenneketju on liian pitkä salauskirjastolle"
#~ msgid "Internal error"
#~ msgstr "Sisäinen virhe"
@@ -4252,12 +4152,9 @@
#~ msgid "Arrangement of buttons on the titlebar"
#~ msgstr "Painikkeiden järjestys otsikkopalkissa"
-#~ msgid ""
-#~ "This key overrides the key in org.gnome.desktop.wm.preferences when "
-#~ "running GNOME Shell."
+#~ msgid "This key overrides the key in org.gnome.desktop.wm.preferences when running GNOME Shell."
#~ msgstr ""
-#~ "Tämä avain syrjäyttää avaimen org.gnome.desktop.wm.preferences Gnome "
-#~ "Shelliä käyttäessä."
+#~ "Tämä avain syrjäyttää avaimen org.gnome.desktop.wm.preferences Gnome Shelliä käyttäessä."
#~ msgid "Select an extension to configure using the combobox above."
#~ msgstr "Valitse muokattava laajennus alta."
@@ -4295,8 +4192,7 @@
#~ msgid "Pairing confirmation for %s"
#~ msgstr "Paritusvahvistus kohteelle %s"
-#~ msgid ""
-#~ "Please confirm whether the Passkey '%06d' matches the one on the device."
+#~ msgid "Please confirm whether the Passkey '%06d' matches the one on the device."
#~ msgstr "Vahvista, täsmääkö koodi \"%06d\" laitteen koodin kanssa."
#~ msgid "Does not match"
@@ -4336,75 +4232,66 @@
#~ msgstr "Kerätäänkö sovellusten käytöstä tilastoja"
#~ msgid ""
-#~ "The shell normally monitors active applications in order to present the "
-#~ "most used ones (e.g. in launchers). While this data will be kept private, "
-#~ "you may want to disable this for privacy reasons. Please note that doing "
-#~ "so won't remove already saved data."
+#~ "The shell normally monitors active applications in order to present the most used ones (e.g. "
+#~ "in launchers). While this data will be kept private, you may want to disable this for privacy "
+#~ "reasons. Please note that doing so won't remove already saved data."
#~ msgstr ""
-#~ "Ikkunanhallinta seuraa normaalisti aktiivisia sovelluksia, jotta eniten "
-#~ "käytetyt voidaan esittää (esim. käynnistimissä). Vaikka nämä tiedot "
-#~ "pysyvät yksityisinä, voit silti haluta ottaa ominaisuuden pois käytöstä "
-#~ "yksityisyyden vuoksi. Huomaa että pois kytkeminen ei poista aiemmin "
-#~ "tallennettuja tietoja."
+#~ "Ikkunanhallinta seuraa normaalisti aktiivisia sovelluksia, jotta eniten käytetyt voidaan "
+#~ "esittää (esim. käynnistimissä). Vaikka nämä tiedot pysyvät yksityisinä, voit silti haluta "
+#~ "ottaa ominaisuuden pois käytöstä yksityisyyden vuoksi. Huomaa että pois kytkeminen ei poista "
+#~ "aiemmin tallennettuja tietoja."
#~ msgid "Keybinding to toggle the screen recorder"
-#~ msgstr ""
-#~ "Kuvakaappausvideon nauhoitukseen/lopetukseen tarkoitettu pikanäppäin"
+#~ msgstr "Kuvakaappausvideon nauhoitukseen/lopetukseen tarkoitettu pikanäppäin"
#~ msgid "Keybinding to start/stop the builtin screen recorder."
-#~ msgstr ""
-#~ "Kuvakaappausvideon nauhoitukseen/lopetukseen tarkoitettu pikanäppäin."
+#~ msgstr "Kuvakaappausvideon nauhoitukseen/lopetukseen tarkoitettu pikanäppäin."
#~ msgid "Framerate used for recording screencasts."
#~ msgstr "Kuvakaappausvideoiden kuvataajuus."
#~ msgid ""
-#~ "The framerate of the resulting screencast recordered by GNOME Shell's "
-#~ "screencast recorder in frames-per-second."
+#~ "The framerate of the resulting screencast recordered by GNOME Shell's screencast recorder in "
+#~ "frames-per-second."
#~ msgstr ""
-#~ "Nauhoituksesta tuloksena saatavan kuvakaappausvideon kuvataajuus kun "
-#~ "käytössä on GNOMEn ikkunanhallinnan nauhoitin, kuvaa per sekunti."
+#~ "Nauhoituksesta tuloksena saatavan kuvakaappausvideon kuvataajuus kun käytössä on GNOMEn "
+#~ "ikkunanhallinnan nauhoitin, kuvaa per sekunti."
#~ msgid "The gstreamer pipeline used to encode the screencast"
#~ msgstr "Gstreamer-liukuhihna jolla kuvakaappausvideot pakataan"
#, fuzzy
#~ msgid ""
-#~ "Sets the GStreamer pipeline used to encode recordings. It follows the "
-#~ "syntax used for gst-launch. The pipeline should have an unconnected sink "
-#~ "pad where the recorded video is recorded. It will normally have a "
-#~ "unconnected source pad; output from that pad will be written into the "
-#~ "output file. However the pipeline can also take care of its own output - "
-#~ "this might be used to send the output to an icecast server via shout2send "
-#~ "or similar. When unset or set to an empty value, the default pipeline "
-#~ "will be used. This is currently 'vp8enc min_quantizer=13 max_quantizer=13 "
-#~ "cpu-used=5 deadline=1000000 threads=%T ! queue ! webmmux' and records to "
-#~ "WEBM using the VP8 codec. %T is used as a placeholder for a guess at the "
+#~ "Sets the GStreamer pipeline used to encode recordings. It follows the syntax used for gst-"
+#~ "launch. The pipeline should have an unconnected sink pad where the recorded video is "
+#~ "recorded. It will normally have a unconnected source pad; output from that pad will be "
+#~ "written into the output file. However the pipeline can also take care of its own output - "
+#~ "this might be used to send the output to an icecast server via shout2send or similar. When "
+#~ "unset or set to an empty value, the default pipeline will be used. This is currently 'vp8enc "
+#~ "min_quantizer=13 max_quantizer=13 cpu-used=5 deadline=1000000 threads=%T ! queue ! webmmux' "
+#~ "and records to WEBM using the VP8 codec. %T is used as a placeholder for a guess at the "
#~ "optimal thread count on the system."
#~ msgstr ""
-#~ "Asettaa GStreamer-liukuhihnan, jota käytetään nauhoitusten pakkaamiseen. "
-#~ "Asetus noudattaa gst-launch-komennon syntaksia. Liukuhihnalla tulee olla "
-#~ "yhdistämätön viemärialusta, jonne nauhoitettu video syötetään. "
-#~ "Normaalisti sillä on yhdistämätön lähde, jonka tuloste kirjoitetaan "
-#~ "tulostetiedostoon. Liukuhihna voi kuitenkin huolehtia itse tulosteesta - "
-#~ "tätä voidaan käyttää vaikkapa lähettämään tuloste Icecast-palvelimelle "
-#~ "shout2send- tai vastaavalla komponentilla. Jos tätä ei aseteta tai arvona "
-#~ "on tyhjää, käytetään oletusliukuhihnaa. Oletusliukuhihna on tällä "
-#~ "hetkellä ”videorate ! vp8enc quality=10 speed=2 threads=%T ! queue ! "
-#~ "webmmux” ja nauhoittaa WEBM-muotoon VP8-koodekilla. %T korvautuu "
-#~ "arvauksella parhaan suorituskyvyn antavasta säiemäärästä järjestelmässä."
+#~ "Asettaa GStreamer-liukuhihnan, jota käytetään nauhoitusten pakkaamiseen. Asetus noudattaa gst-"
+#~ "launch-komennon syntaksia. Liukuhihnalla tulee olla yhdistämätön viemärialusta, jonne "
+#~ "nauhoitettu video syötetään. Normaalisti sillä on yhdistämätön lähde, jonka tuloste "
+#~ "kirjoitetaan tulostetiedostoon. Liukuhihna voi kuitenkin huolehtia itse tulosteesta - tätä "
+#~ "voidaan käyttää vaikkapa lähettämään tuloste Icecast-palvelimelle shout2send- tai vastaavalla "
+#~ "komponentilla. Jos tätä ei aseteta tai arvona on tyhjää, käytetään oletusliukuhihnaa. "
+#~ "Oletusliukuhihna on tällä hetkellä ”videorate ! vp8enc quality=10 speed=2 threads=%T ! "
+#~ "queue ! webmmux” ja nauhoittaa WEBM-muotoon VP8-koodekilla. %T korvautuu arvauksella parhaan "
+#~ "suorituskyvyn antavasta säiemäärästä järjestelmässä."
#~ msgid "File extension used for storing the screencast"
#~ msgstr "Tiedostopääte kuvakaappausvideoiden tallentamiseen"
#~ msgid ""
-#~ "The filename for recorded screencasts will be a unique filename based on "
-#~ "the current date, and use this extension. It should be changed when "
-#~ "recording to a different container format."
+#~ "The filename for recorded screencasts will be a unique filename based on the current date, "
+#~ "and use this extension. It should be changed when recording to a different container format."
#~ msgstr ""
-#~ "Nauhoitetuille kuvakaappausvideoille valitaan yksikäsitteinen "
-#~ "tiedostonimi nykyisen päivämäärän ja tämän tiedostopäätteen mukaisesti. "
-#~ "Tiedostopääte tulisi vaihtaa mikäli nauhoitetaan eri tallennusmuotoon."
+#~ "Nauhoitetuille kuvakaappausvideoille valitaan yksikäsitteinen tiedostonimi nykyisen "
+#~ "päivämäärän ja tämän tiedostopäätteen mukaisesti. Tiedostopääte tulisi vaihtaa mikäli "
+#~ "nauhoitetaan eri tallennusmuotoon."
#~| msgid "Session..."
#~ msgid "Session…"
@@ -4416,24 +4303,22 @@
#~ msgid "Click Log Out to quit these applications and log out of the system."
#~ msgstr ""
-#~ "Napsauta Kirjaudu ulos poistuaksesi näistä sovelluksista ja "
-#~ "kirjautuaksesi ulos järjestelmästä."
+#~ "Napsauta Kirjaudu ulos poistuaksesi näistä sovelluksista ja kirjautuaksesi ulos "
+#~ "järjestelmästä."
#~ msgid "Logging out of the system."
#~ msgstr "Kirjaudutaan ulos järjestelmästä."
#~ msgid "Click Power Off to quit these applications and power off the system."
-#~ msgstr ""
-#~ "Napsauta Sammuta poistuaksesi näistä sovelluksista ja sammuttaaksesi "
-#~ "järjestelmän."
+#~ msgstr "Napsauta Sammuta poistuaksesi näistä sovelluksista ja sammuttaaksesi järjestelmän."
#~ msgid "Powering off the system."
#~ msgstr "Sammutetaan järjestelmää"
#~ msgid "Click Restart to quit these applications and restart the system."
#~ msgstr ""
-#~ "Napsauta Käynnistä uudelleen poistuaksesi näistä sovelluksista ja "
-#~ "käynnistääksesi järjestelmän uudelleen."
+#~ "Napsauta Käynnistä uudelleen poistuaksesi näistä sovelluksista ja käynnistääksesi "
+#~ "järjestelmän uudelleen."
#~ msgid "Restarting the system."
#~ msgstr "Käynnistetään järjestelmää uudelleen."
@@ -4555,18 +4440,14 @@
#~ msgstr "Pikaviestitilaksi asetetaan ”kiireinen”"
#~ msgid ""
-#~ "Notifications are now disabled, including chat messages. Your online "
-#~ "status has been adjusted to let others know that you might not see their "
-#~ "messages."
+#~ "Notifications are now disabled, including chat messages. Your online status has been adjusted "
+#~ "to let others know that you might not see their messages."
#~ msgstr ""
-#~ "Ilmoitukset, kuten keskusteluviestit, ovat nyt poissa käytöstä. "
-#~ "Pikaviestitilaasi on muutettu, jotta muut tietävät, että et ehkä näe "
-#~ "heidän viestejään."
+#~ "Ilmoitukset, kuten keskusteluviestit, ovat nyt poissa käytöstä. Pikaviestitilaasi on "
+#~ "muutettu, jotta muut tietävät, että et ehkä näe heidän viestejään."
#~ msgid "Shutting down might cause them to lose unsaved work."
-#~ msgstr ""
-#~ "Sammuttaminen saattaa aiheuttaa muiden käyttäjien menettävän "
-#~ "tallentamattomia tietoja."
+#~ msgstr "Sammuttaminen saattaa aiheuttaa muiden käyttäjien menettävän tallentamattomia tietoja."
#~ msgctxt "title"
#~ msgid "Sign In"
diff -Nru gnome-shell-48.4/po/ro.po gnome-shell-48.7/po/ro.po
--- gnome-shell-48.4/po/ro.po 2025-08-03 10:53:34.000000000 +0000
+++ gnome-shell-48.7/po/ro.po 2025-11-24 14:16:08.000000000 +0000
@@ -12,8 +12,8 @@
msgstr ""
"Project-Id-Version: gnome-shell master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell/issues/\n"
-"POT-Creation-Date: 2025-05-16 14:19+0000\n"
-"PO-Revision-Date: 2025-05-20 11:50+0200\n"
+"POT-Creation-Date: 2025-10-24 11:52+0000\n"
+"PO-Revision-Date: 2025-11-11 14:43+0100\n"
"Last-Translator: Antonio Marin \n"
"Language-Team: Romanian \n"
"Language: ro\n"
@@ -105,7 +105,7 @@
# Instantaneu=Imagine sau fotografie obținută printr-o expunere foarte scurtă. Captură=Totalitatea bunurilor materiale capturate de la inamic.
#. Translators: name of the folder under ~/Pictures for screenshots.
-#: data/50-gnome-shell-screenshots.xml:6 js/ui/screenshot.js:2275
+#: data/50-gnome-shell-screenshots.xml:6 js/ui/screenshot.js:2282
msgid "Screenshots"
msgstr "Instantanee"
@@ -130,7 +130,7 @@
msgstr "Fă o înregistrare de ecran în mod interactiv"
#: data/50-gnome-shell-system.xml:6
-#: data/X-GNOME-Shell-System.directory.desktop.in:3 js/ui/messageTray.js:1307
+#: data/X-GNOME-Shell-System.directory.desktop.in:2 js/ui/messageTray.js:1308
msgid "System"
msgstr "Sistem"
@@ -154,11 +154,11 @@
msgid "Show all apps"
msgstr "Arată toate aplicațiile"
-#: data/org.gnome.Shell.desktop.in.in:4
+#: data/org.gnome.Shell.desktop.in.in:3
msgid "GNOME Shell"
msgstr "Interfața GNOME"
-#: data/org.gnome.Shell.desktop.in.in:5
+#: data/org.gnome.Shell.desktop.in.in:4
msgid "Window management and application launching"
msgstr "Administrare de ferestre și lansare de aplicații"
@@ -285,10 +285,10 @@
"system menu for logged-in situations where there is a single, local, non-"
"system user and only a single available session type (e.g. GNOME on Wayland)."
msgstr ""
-"Această cheie suprascrie ascunderea automată a acțiunii „Termină sesiunea” "
-"în opțiunile sistemului pentru situațiile când este autentificat, unde "
-"există doar un singur utilizator, local, care nu face parte din sistem și "
-"doar un singur tip de sesiune disponibil (adică GNOME pe Wayland)."
+"Această cheie blochează ascunderea automată a acțiunii „Termină sesiunea” "
+"din opțiunile sistemului pentru situațiile în care este autentificat un "
+"singur utilizator local (uman), care nu face parte din sistem, și este "
+"disponibil un singur tip de sesiune (adică GNOME pe Wayland)."
#: data/org.gnome.shell.gschema.xml.in:94
msgid ""
@@ -552,27 +552,27 @@
msgstr "Localitatea pentru care să se arate o prognoză"
#. Keep in sync with subprojects/extensions-app
-#: data/org.gnome.Shell.Extensions.desktop.in.in:5
+#: data/org.gnome.Shell.Extensions.desktop.in.in:4
#: subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in:5
-#: subprojects/extensions-app/data/org.gnome.Extensions.desktop.in.in:4
+#: subprojects/extensions-app/data/org.gnome.Extensions.desktop.in.in:3
#: subprojects/extensions-app/data/ui/extensions-window.ui:57
msgid "Extensions"
msgstr "Extensii"
-#: data/org.gnome.Shell.PortalHelper.desktop.in.in:3
+#: data/org.gnome.Shell.PortalHelper.desktop.in.in:2
msgid "Network Login"
msgstr "Acces la rețea"
-#: data/X-GNOME-Shell-Utilities.directory.desktop.in:3
+#: data/X-GNOME-Shell-Utilities.directory.desktop.in:2
msgid "Utilities"
msgstr "Utilități"
-#: js/dbusServices/extensions/ui/extension-error-page.ui:15
+#: js/dbusServices/extensions/ui/extension-error-page.ui:12
#: subprojects/extensions-app/data/ui/extensions-window.ui:275
msgid "Something’s gone wrong"
msgstr "Ceva nu a funcționat cum trebuie"
-#: js/dbusServices/extensions/ui/extension-error-page.ui:23
+#: js/dbusServices/extensions/ui/extension-error-page.ui:20
msgid ""
"We’re very sorry, but there’s been a problem: the settings for this "
"extension can’t be displayed. We recommend that you report the issue to the "
@@ -581,19 +581,19 @@
"A apărut o problemă: opțiunile pentru această extensie nu pot fi afișate. Se "
"recomandă raportarea problemei autorilor extensiei."
-#: js/dbusServices/extensions/ui/extension-error-page.ui:48
+#: js/dbusServices/extensions/ui/extension-error-page.ui:45
msgid "Technical Details"
msgstr "Detalii tehnice"
-#: js/dbusServices/extensions/ui/extension-error-page.ui:90
+#: js/dbusServices/extensions/ui/extension-error-page.ui:87
msgid "Homepage"
msgstr "Pagina principală"
-#: js/dbusServices/extensions/ui/extension-error-page.ui:91
+#: js/dbusServices/extensions/ui/extension-error-page.ui:88
msgid "Visit extension homepage"
msgstr "Vizitează pagina principală a extensiei"
-#: js/gdm/authPrompt.js:155 js/gdm/loginDialog.js:468
+#: js/gdm/authPrompt.js:157 js/gdm/loginDialog.js:465
#: js/ui/audioDeviceSelection.js:60 js/ui/components/networkAgent.js:114
#: js/ui/components/polkitAgent.js:144 js/ui/endSessionDialog.js:437
#: js/ui/extensionDownloader.js:276 js/ui/shellMountOperation.js:382
@@ -601,7 +601,7 @@
msgid "Cancel"
msgstr "Anulează"
-#: js/gdm/authPrompt.js:323 js/ui/components/networkAgent.js:214
+#: js/gdm/authPrompt.js:335 js/ui/components/networkAgent.js:214
#: js/ui/components/networkAgent.js:234 js/ui/components/networkAgent.js:266
#: js/ui/components/networkAgent.js:299 js/ui/components/networkAgent.js:338
#: js/ui/components/networkAgent.js:351 js/ui/components/polkitAgent.js:286
@@ -609,12 +609,12 @@
msgid "Password"
msgstr "Parola"
-#: js/gdm/loginDialog.js:328
+#: js/gdm/loginDialog.js:326
msgid "Choose Session"
msgstr "Alege o sesiune"
#. Translators: is running for
-#: js/gdm/loginDialog.js:426
+#: js/gdm/loginDialog.js:423
#, javascript-format
msgid ""
"Remote login is not possible because a remote session is already running for "
@@ -626,7 +626,7 @@
"trebuie terminată sesiunea de la distanță sau forțată să se oprească."
#. Translators: is running for
-#: js/gdm/loginDialog.js:429
+#: js/gdm/loginDialog.js:426
#, javascript-format
msgid ""
"Login is not possible because a remote session is already running for %s. To "
@@ -637,7 +637,7 @@
"la distanță sau forțată să se oprească."
#. Translators: is running for
-#: js/gdm/loginDialog.js:432
+#: js/gdm/loginDialog.js:429
#, javascript-format
msgid ""
"Remote login is not possible because a local session is already running for "
@@ -649,7 +649,7 @@
"sesiunea locală sau forțată să se oprească."
#. Translators: is running for
-#: js/gdm/loginDialog.js:435
+#: js/gdm/loginDialog.js:432
#, javascript-format
msgid ""
"Login is not possible because a session is already running for %s. To login, "
@@ -659,11 +659,11 @@
"%s. Pentru autentificare, trebuie terminată sesiunea sau forțată să se "
"oprească."
-#: js/gdm/loginDialog.js:444
+#: js/gdm/loginDialog.js:441
msgid "Session Already Running"
msgstr "Sesiune activă"
-#: js/gdm/loginDialog.js:456
+#: js/gdm/loginDialog.js:453
msgid ""
"Force stopping will quit any running apps and processes, and could result in "
"data loss"
@@ -671,35 +671,35 @@
"Oprirea forțată va închide toate aplicațiile active și poate duce la "
"pierderi de date"
-#: js/gdm/loginDialog.js:476
+#: js/gdm/loginDialog.js:473
msgid "Force Stop"
msgstr "Forțează oprirea"
-#: js/gdm/loginDialog.js:554
+#: js/gdm/loginDialog.js:551
msgid "Not listed?"
msgstr "Nu este în listă?"
#. Translators: this message is shown below the username entry field
#. to clue the user in on how to login to the local network realm
-#: js/gdm/loginDialog.js:1075
+#: js/gdm/loginDialog.js:1072
#, javascript-format
msgid "(e.g., user or %s)"
msgstr "(utilizator sau %s)"
-#: js/gdm/loginDialog.js:1080 js/ui/components/networkAgent.js:258
+#: js/gdm/loginDialog.js:1077 js/ui/components/networkAgent.js:258
#: js/ui/components/networkAgent.js:293 js/ui/components/networkAgent.js:327
msgid "Username"
msgstr "Nume de utilizator"
-#: js/gdm/loginDialog.js:1146
+#: js/gdm/loginDialog.js:1143
msgid "Login Attempt Timed Out"
msgstr "Încercarea de autentificare a expirat"
-#: js/gdm/loginDialog.js:1147
+#: js/gdm/loginDialog.js:1144
msgid "Login took too long, please try again"
msgstr "Autentificarea a durat prea mult, încearcă din nou"
-#: js/gdm/loginDialog.js:1496
+#: js/gdm/loginDialog.js:1493
msgid "Login Window"
msgstr "Fereastră de autentificare"
@@ -875,7 +875,6 @@
msgid "Break Overdue"
msgstr "Trebuia să iei o pauză"
-#. %s will be replaced with a string that describes a time interval, such as “2 minutes”, “40 seconds” or “1 hour”
#: js/misc/breakManager.js:1267
#, javascript-format
msgid "There is %s remaining in your break"
@@ -888,21 +887,24 @@
msgid "Break Interrupted"
msgstr "Pauză întreruptă"
-#: js/misc/breakManager.js:1350
+#. Translators: As in "Delay the break"
+#: js/misc/breakManager.js:1351
msgid "Delay"
msgstr "Întârziere"
-#: js/misc/breakManager.js:1371 js/ui/welcomeDialog.js:61
+#. Translators: As in "Skip the break"
+#: js/misc/breakManager.js:1373 js/ui/welcomeDialog.js:61
msgid "Skip"
msgstr "Omite"
-#: js/misc/breakManager.js:1392
+#. Translators: As in "Take the break"
+#: js/misc/breakManager.js:1395
msgid "Take"
msgstr "Începe"
#. Translators: This is a notification to warn the user that a
#. screen time break will start shortly.
-#: js/misc/breakManager.js:1455
+#: js/misc/breakManager.js:1458
#, javascript-format
msgid "Break in %d second"
msgid_plural "Break in %d seconds"
@@ -1006,12 +1008,12 @@
msgid "Lock Screen Rotation"
msgstr "Blochează rotația ecranului"
-#: js/misc/timeLimitsManager.js:338
+#: js/misc/timeLimitsManager.js:342
msgid "GNOME needs to save screen time data"
msgstr ""
"GNOME trebuie să înregistreze datele privind timpul de utilizare a ecranului"
-#: js/misc/timeLimitsManager.js:1102
+#: js/misc/timeLimitsManager.js:1124
#, javascript-format
msgid "Screen Time Limit in %d Minute"
msgid_plural "Screen Time Limit in %d Minutes"
@@ -1019,15 +1021,15 @@
msgstr[1] "Limită de utilizare a ecranului peste %d minute"
msgstr[2] "Limită de utilizare a ecranului peste %d de minute"
-#: js/misc/timeLimitsManager.js:1109
+#: js/misc/timeLimitsManager.js:1131
msgid "Your screen time limit is approaching"
msgstr "Limita de utilizare a ecranului se apropie"
-#: js/misc/timeLimitsManager.js:1123
+#: js/misc/timeLimitsManager.js:1145
msgid "Screen Time Limit Reached"
msgstr "Limita de utilizare a ecranului a fost atinsă"
-#: js/misc/timeLimitsManager.js:1124
+#: js/misc/timeLimitsManager.js:1146
msgid "It’s time to stop using the device"
msgstr "Este timpul să nu mai folosești aparatul"
@@ -1060,7 +1062,7 @@
msgstr[1] "acum %d ore"
msgstr[2] "acum %d de ore"
-#: js/misc/dateUtils.js:85 js/ui/dateMenu.js:183
+#: js/misc/dateUtils.js:85 js/ui/dateMenu.js:184
msgid "Yesterday"
msgstr "Ieri"
@@ -1121,7 +1123,7 @@
#: js/misc/dateUtils.js:173
#, no-c-format
msgid "%B %-d, %H∶%M"
-msgstr "%e %B, %H∶%M"
+msgstr "%-e %B, %H∶%M"
#. Translators: this is the month name, day number, year
#. number followed by a time string in 24h format.
@@ -1129,7 +1131,7 @@
#: js/misc/dateUtils.js:179
#, no-c-format
msgid "%B %-d %Y, %H∶%M"
-msgstr "%e %B %Y, %H∶%M"
+msgstr "%-e %B %Y, %H∶%M"
#. Show only the time if date is on today
#. eslint-disable-line no-lonely-if
@@ -1158,7 +1160,7 @@
#: js/misc/dateUtils.js:202
#, no-c-format
msgid "%B %-d, %l∶%M %p"
-msgstr "%e %B, %l∶%M %p"
+msgstr "%-e %B, %l∶%M %p"
#. Translators: this is the month name, day number, year
#. number followed by a time string in 12h format.
@@ -1166,7 +1168,7 @@
#: js/misc/dateUtils.js:208
#, no-c-format
msgid "%B %-d %Y, %l∶%M %p"
-msgstr "%e %B %Y, %l∶%M %p"
+msgstr "%-e %B %Y, %l∶%M %p"
#: js/portalHelper/main.js:98
msgid "Your connection seems to be secure"
@@ -1208,7 +1210,7 @@
msgid "%s has been unpinned from the dash."
msgstr "%s a fost desprins din Preferate."
-#: js/ui/appFavorites.js:208 js/ui/main.js:309
+#: js/ui/appFavorites.js:208 js/ui/main.js:310
msgid "Undo"
msgstr "Anulează"
@@ -1271,7 +1273,7 @@
#: js/ui/backgroundMenu.js:15
msgid "Display Settings"
-msgstr "Opțiuni afișaj"
+msgstr "Opțiuni ecran"
#: js/ui/backgroundMenu.js:16
msgid "Settings"
@@ -1553,7 +1555,7 @@
#.
#: js/ui/dateMenu.js:99
msgid "%B %-d %Y"
-msgstr "%B %-d %Y"
+msgstr "%-e %B %Y"
#. Translators: This is the accessible name of the date button shown
#. * below the time in the shell; it should combine the weekday and the
@@ -1561,32 +1563,32 @@
#.
#: js/ui/dateMenu.js:106
msgid "%A %B %e %Y"
-msgstr "%A %B %e %Y"
+msgstr "%A %-e %B %Y"
#. Translators: Shown on calendar heading when selected day occurs on current year
-#: js/ui/dateMenu.js:172
+#: js/ui/dateMenu.js:173
msgctxt "calendar heading"
msgid "%B %-d"
-msgstr "%B %-d"
+msgstr "%-e %B"
#. Translators: Shown on calendar heading when selected day occurs on different year
-#: js/ui/dateMenu.js:175
+#: js/ui/dateMenu.js:176
msgctxt "calendar heading"
msgid "%B %-d %Y"
-msgstr "%B %-d %Y"
+msgstr "%-e %B %Y"
-#: js/ui/dateMenu.js:181
+#: js/ui/dateMenu.js:182
msgid "Today"
msgstr "Astăzi"
-#: js/ui/dateMenu.js:185
+#: js/ui/dateMenu.js:186
msgid "Tomorrow"
msgstr "Mâine"
#. Translators: Shown in calendar event list for all day events
#. * Keep it short, best if you can use less then 10 characters
#.
-#: js/ui/dateMenu.js:216
+#: js/ui/dateMenu.js:217
msgctxt "event list time"
msgid "All Day"
msgstr "Toată ziua"
@@ -1594,39 +1596,39 @@
#. Translators: Shown in calendar event list as the start/end of events
#. * that only show day and month
#.
-#: js/ui/dateMenu.js:238
+#: js/ui/dateMenu.js:239
msgid "%m/%d"
-msgstr "%m/%d"
+msgstr "%d/%m"
-#: js/ui/dateMenu.js:289
+#: js/ui/dateMenu.js:290
msgid "No Events"
msgstr "Nu există evenimente"
-#: js/ui/dateMenu.js:411
+#: js/ui/dateMenu.js:412
msgid "Add World Clocks…"
msgstr "Adaugă un fus orar…"
-#: js/ui/dateMenu.js:412
+#: js/ui/dateMenu.js:413
msgid "World Clocks"
msgstr "Fusuri orare"
-#: js/ui/dateMenu.js:702
+#: js/ui/dateMenu.js:704
msgid "Loading…"
msgstr "Se încarcă…"
-#: js/ui/dateMenu.js:712
+#: js/ui/dateMenu.js:714
msgid "Go Online for Weather Information"
msgstr "Este nevoie de conectare la internet pentru informații despre vreme"
-#: js/ui/dateMenu.js:714
+#: js/ui/dateMenu.js:716
msgid "Weather Information Unavailable"
msgstr "Informațiile despre vreme nu sunt disponibile"
-#: js/ui/dateMenu.js:724
+#: js/ui/dateMenu.js:726
msgid "Weather"
msgstr "Vremea"
-#: js/ui/dateMenu.js:726
+#: js/ui/dateMenu.js:728
msgid "Select Weather Location…"
msgstr "Alege o localitate…"
@@ -1645,17 +1647,17 @@
#, javascript-format
msgid "%s will be logged out automatically in %d second"
msgid_plural "%s will be logged out automatically in %d seconds"
-msgstr[0] "%s va fi scos automat din sesiune după %d secundă"
-msgstr[1] "%s va fi scos automat din sesiune după %d secunde"
-msgstr[2] "%s va fi scos automat din sesiune după %d de secunde"
+msgstr[0] "%s va fi deconectat automat după %d secundă"
+msgstr[1] "%s va fi deconectat automat după %d secunde"
+msgstr[2] "%s va fi deconectat automat după %d de secunde"
#: js/ui/endSessionDialog.js:57
#, javascript-format
msgid "You will be logged out automatically in %d second"
msgid_plural "You will be logged out automatically in %d seconds"
-msgstr[0] "Vei fi scos automat din sesiune după %d secundă"
-msgstr[1] "Vei fi scos automat din sesiune după %d secunde"
-msgstr[2] "Vei fi scos automat din sesiune după %d de secunde"
+msgstr[0] "Vei fi deconectat automat după %d secundă"
+msgstr[1] "Vei fi deconectat automat după %d secunde"
+msgstr[2] "Vei fi deconectat automat după %d de secunde"
#: js/ui/endSessionDialog.js:64
msgctxt "button"
@@ -1895,7 +1897,7 @@
msgid "Leave Off"
msgstr "Lasă oprit"
-#: js/ui/keyboard.js:180 js/ui/status/keyboard.js:901
+#: js/ui/keyboard.js:180 js/ui/status/keyboard.js:908
msgid "Keyboard Settings"
msgstr "Opțiuni tastatură"
@@ -1953,19 +1955,19 @@
msgid "Web Page"
msgstr "Pagina Web"
-#: js/ui/main.js:305
+#: js/ui/main.js:306
msgid "System was put in unsafe mode"
msgstr "Sistemul a fost pus în modul nesigur"
-#: js/ui/main.js:306
+#: js/ui/main.js:307
msgid "Apps now have unrestricted access"
msgstr "Aplicațiile au acum acces nerestricționat"
-#: js/ui/main.js:366
+#: js/ui/main.js:367
msgid "Logged in as a privileged user"
msgstr "Autentificat ca utilizator privilegiat"
-#: js/ui/main.js:367
+#: js/ui/main.js:368
msgid ""
"Running a session as a privileged user should be avoided for security "
"reasons. If possible, you should log in as a normal user."
@@ -1974,11 +1976,11 @@
"motive de securitate. Dacă este posibil, autentificarea ar trebui făcută ca "
"utilizator normal."
-#: js/ui/main.js:415
+#: js/ui/main.js:416
msgid "Screen Lock disabled"
msgstr "Blocarea ecranului este dezactivată"
-#: js/ui/main.js:416
+#: js/ui/main.js:417
msgid "Screen Locking requires the GNOME display manager"
msgstr "Blocarea ecranului are nevoie de administratorul de afișaj GNOME"
@@ -2085,15 +2087,15 @@
msgid "Run a Command"
msgstr "Execută o comandă"
-#: js/ui/runDialog.js:76
+#: js/ui/runDialog.js:79
msgid "Press ESC to close"
msgstr "Apasă ESC pentru a închide"
-#: js/ui/runDialog.js:253
+#: js/ui/runDialog.js:256
msgid "Restart is not available on Wayland"
msgstr "Repornirea nu este disponibilă în Wayland"
-#: js/ui/runDialog.js:258
+#: js/ui/runDialog.js:261
msgid "Restarting…"
msgstr "Se repornește…"
@@ -2109,135 +2111,135 @@
msgid "Lock was blocked by an app"
msgstr "Blocarea a fost împiedicată de o aplicație"
-#: js/ui/screenshot.js:1250
+#: js/ui/screenshot.js:1253
msgid "Selection"
msgstr "Zonă"
-#: js/ui/screenshot.js:1260
+#: js/ui/screenshot.js:1263
msgid "Area Selection"
msgstr "Alege zona"
-#: js/ui/screenshot.js:1265
+#: js/ui/screenshot.js:1268
msgid "Screen"
msgstr "Ecran"
-#: js/ui/screenshot.js:1275
+#: js/ui/screenshot.js:1278
msgid "Screen Selection"
msgstr "Alege ecranul"
-#: js/ui/screenshot.js:1280
+#: js/ui/screenshot.js:1283
msgid "Window"
msgstr "Fereastră"
-#: js/ui/screenshot.js:1290
+#: js/ui/screenshot.js:1293
msgid "Window Selection"
msgstr "Alege fereastra"
-#: js/ui/screenshot.js:1315 js/ui/status/system.js:111
+#: js/ui/screenshot.js:1318 js/ui/status/system.js:111
msgid "Take Screenshot"
msgstr "Fă un instantaneu"
-#: js/ui/screenshot.js:1331
+#: js/ui/screenshot.js:1334
msgid "Record Screen"
msgstr "Înregistrează ecranul"
#. Translators: since this string refers to an action,
#. it needs to be phrased as a verb.
-#: js/ui/screenshot.js:1348
+#: js/ui/screenshot.js:1351
msgid "Capture"
msgstr "Apasă"
-#: js/ui/screenshot.js:1370
+#: js/ui/screenshot.js:1373
msgid "Show Pointer"
msgstr "Arată indicatorul"
#. Translators: this is the folder where recorded
#. screencasts are stored.
-#: js/ui/screenshot.js:1994
+#: js/ui/screenshot.js:2001
msgid "Screencasts"
msgstr "Înregistrări de ecran"
#. Translators: this is a filename used for screencast
#. * recording, where "%d" and "%t" date and time, e.g.
#. * "Screencast From 07-17-2013 10:00:46 PM"
-#: js/ui/screenshot.js:1999
+#: js/ui/screenshot.js:2006
#, no-c-format
msgid "Screencast From %d %t"
msgstr "ÎnregistrareDeEcranDin%d-%m-%Y_%H:%M:%S"
#. Translators: notification title.
-#: js/ui/screenshot.js:2045
+#: js/ui/screenshot.js:2052
msgid "Screencast recorded"
msgstr "Înregistrare de ecran efectuată"
#. Translators: notification title.
-#: js/ui/screenshot.js:2058
+#: js/ui/screenshot.js:2065
msgid "Screencast failed to start"
msgstr "Înregistrarea ecranului nu a putut începe"
#. Translators: notification title.
-#: js/ui/screenshot.js:2064
+#: js/ui/screenshot.js:2071
msgid "Screencast ended: Out of disk space"
msgstr "Înregistrarea ecranului s-a terminat: nu mai există spațiu pe disc"
#. We can encourage user to try again on service crashes since the
#. recorder will auto-blocklist the pipeline that crashed.
#. Translators: notification title.
-#: js/ui/screenshot.js:2070
+#: js/ui/screenshot.js:2077
msgid "Screencast ended unexpectedly, please try again"
msgstr "Înregistrarea ecranului s-a terminat neașteptat, încearcă din nou"
#. Translators: notification title.
-#: js/ui/screenshot.js:2073
+#: js/ui/screenshot.js:2080
msgid "Screencast ended unexpectedly"
msgstr "Înregistrarea de ecran s-a terminat neașteptat"
#. Translators: notification source name.
-#: js/ui/screenshot.js:2083 js/ui/screenshot.js:2330
+#: js/ui/screenshot.js:2090 js/ui/screenshot.js:2337
msgid "Screenshot"
msgstr "Instantaneu"
#. Translators: notification body when a screencast was recorded.
-#: js/ui/screenshot.js:2090
+#: js/ui/screenshot.js:2097
msgid "Click here to view the video."
msgstr "Clic aici pentru a vedea înregistrarea."
#. Translators: button on the screencast notification.
#. Translators: button on the screenshot notification.
-#: js/ui/screenshot.js:2098 js/ui/screenshot.js:2346
+#: js/ui/screenshot.js:2105 js/ui/screenshot.js:2353
msgid "Show in Files"
msgstr "Arată în Fișiere"
#. Translators: this is the name of the file that the screenshot is
#. saved to. The placeholder is a timestamp, e.g. "2017-05-21 12-24-03".
-#: js/ui/screenshot.js:2288
+#: js/ui/screenshot.js:2295
#, javascript-format
msgid "Screenshot From %s"
msgstr "Instantaneu din %s"
#. Translators: notification title.
-#: js/ui/screenshot.js:2336
+#: js/ui/screenshot.js:2343
msgid "Screenshot captured"
msgstr "Instantaneu de ecran efectuat"
#. Translators: notification body when a screenshot was captured.
-#: js/ui/screenshot.js:2338
+#: js/ui/screenshot.js:2345
msgid "You can paste the image from the clipboard."
msgstr "Imaginea copiată poate fi lipită."
-#: js/ui/screenshot.js:2397 js/ui/screenshot.js:2561
+#: js/ui/screenshot.js:2404 js/ui/screenshot.js:2568
msgid "Screenshot taken"
msgstr "Instantaneu de ecran efectuat"
-#: js/ui/search.js:832
+#: js/ui/search.js:837
msgid "Searching…"
msgstr "Se caută…"
-#: js/ui/search.js:834
+#: js/ui/search.js:839
msgid "No results"
msgstr "Niciun rezultat"
-#: js/ui/search.js:965
+#: js/ui/search.js:970
#, javascript-format
msgid "%d more"
msgid_plural "%d more"
@@ -2414,7 +2416,7 @@
msgid "High"
msgstr "Ridicată"
-#: js/ui/status/backlight.js:162 js/ui/status/keyboard.js:883
+#: js/ui/status/backlight.js:162 js/ui/status/keyboard.js:890
msgid "Keyboard"
msgstr "Tastatură"
@@ -2438,7 +2440,7 @@
msgid "Bluetooth"
msgstr "Bluetooth"
-#: js/ui/status/bluetooth.js:301 js/ui/status/network.js:1909
+#: js/ui/status/bluetooth.js:301 js/ui/status/network.js:1920
msgid "Bluetooth Settings"
msgstr "Opțiuni Bluetooth"
@@ -2487,7 +2489,7 @@
msgid "Dwell Click"
msgstr "Clic prelungit"
-#: js/ui/status/keyboard.js:900
+#: js/ui/status/keyboard.js:907
msgid "Show Keyboard Layout"
msgstr "Afișează aranjamentul tastaturii"
@@ -2518,32 +2520,32 @@
msgid ""
msgstr ""
-#: js/ui/status/network.js:1059
+#: js/ui/status/network.js:1060
msgid "Secure"
msgstr "Sigur"
-#: js/ui/status/network.js:1059
+#: js/ui/status/network.js:1060
msgid "Not secure"
msgstr "Nu este sigur"
-#: js/ui/status/network.js:1060
+#: js/ui/status/network.js:1061
#, javascript-format
msgid "Signal strength %s%%"
msgstr "Putere semnal %s%%"
#. translators: The first placeholder is the network name, the second and indication whether it is secure, and the last the signal strength indication
-#: js/ui/status/network.js:1062
+#: js/ui/status/network.js:1063
#, javascript-format
msgid "%s, %s, %s"
msgstr "%s, %s, %s"
#. Translators: %s is a network identifier
-#: js/ui/status/network.js:1164
+#: js/ui/status/network.js:1165
#, javascript-format
msgid "%s Hotspot"
msgstr "Punct de acces %s"
-#: js/ui/status/network.js:1435
+#: js/ui/status/network.js:1446
#, javascript-format
msgid "%d connected"
msgid_plural "%d connected"
@@ -2551,61 +2553,61 @@
msgstr[1] "%d conectate"
msgstr[2] "%d conectate"
-#: js/ui/status/network.js:1533 js/ui/status/network.js:1549
+#: js/ui/status/network.js:1544 js/ui/status/network.js:1560
msgid "VPN"
msgstr "VPN"
-#: js/ui/status/network.js:1534
+#: js/ui/status/network.js:1545
msgid "VPN Settings"
msgstr "Opțiuni VPN"
-#: js/ui/status/network.js:1794
+#: js/ui/status/network.js:1805
msgid "Wi–Fi"
msgstr "Wi-Fi"
-#: js/ui/status/network.js:1796
+#: js/ui/status/network.js:1807
msgid "All Networks"
msgstr "Toate rețelele"
-#: js/ui/status/network.js:1893
+#: js/ui/status/network.js:1904
msgid "Wired Connections"
msgstr "Conexiuni prin cablu"
-#: js/ui/status/network.js:1894
+#: js/ui/status/network.js:1905
msgid "Wired Settings"
msgstr "Opțiuni Conexiuni prin cablu"
-#: js/ui/status/network.js:1908
+#: js/ui/status/network.js:1919
msgid "Bluetooth Tethers"
msgstr "Conexiuni Bluetooth"
#. Translators: "Tether" from "Bluetooth Tether"
-#: js/ui/status/network.js:1915
+#: js/ui/status/network.js:1926
msgid "Tether"
msgstr "Conexiune"
-#: js/ui/status/network.js:1928
+#: js/ui/status/network.js:1939
msgid "Mobile Connections"
msgstr "Conexiune mobilă"
-#: js/ui/status/network.js:1930
+#: js/ui/status/network.js:1941
msgid "Mobile Broadband Settings"
msgstr "Opțiuni Conexiune mobilă"
#. Translators: "Mobile" from "Mobile Broadband"
-#: js/ui/status/network.js:1939
+#: js/ui/status/network.js:1950
msgid "Mobile"
msgstr "Mobil"
-#: js/ui/status/network.js:1973
+#: js/ui/status/network.js:1984
msgid "Sign Into Wi–Fi Network"
msgstr "Conectare la o rețea Wi-Fi"
-#: js/ui/status/network.js:2160
+#: js/ui/status/network.js:2171
msgid "Connection failed"
msgstr "Conectare nereușită"
-#: js/ui/status/network.js:2161
+#: js/ui/status/network.js:2172
msgid "Activation of network connection failed"
msgstr "Nu s-a reușit conectarea la rețea"
@@ -2644,7 +2646,7 @@
msgid "Stop Screen Sharing"
msgstr "Oprește distribuirea ecranului"
-#: js/ui/status/rfkill.js:99
+#: js/ui/status/rfkill.js:97
msgid "Airplane Mode"
msgstr "Mod avion"
@@ -2678,11 +2680,11 @@
msgid "Lock Screen"
msgstr "Blochează ecranul"
-#: js/ui/status/thunderbolt.js:308
+#: js/ui/status/thunderbolt.js:311
msgid "Unknown Thunderbolt device"
msgstr "Dispozitiv Thunderbolt necunoscut"
-#: js/ui/status/thunderbolt.js:309
+#: js/ui/status/thunderbolt.js:312
msgid ""
"New device has been detected while you were away. Please disconnect and "
"reconnect the device to start using it."
@@ -2690,21 +2692,21 @@
"Un nou dispozitiv a fost detectat în absența ta. Pentru a fi utilizat, "
"dispozitivul trebuie deconectat și reconectat."
-#: js/ui/status/thunderbolt.js:312
+#: js/ui/status/thunderbolt.js:315
msgid "Unauthorized Thunderbolt device"
msgstr "Dispozitiv Thunderbolt neautorizat"
-#: js/ui/status/thunderbolt.js:313
+#: js/ui/status/thunderbolt.js:316
msgid ""
"New device has been detected and needs to be authorized by an administrator"
msgstr ""
"Un nou dispozitiv a fost detectat și trebuie autorizat de un administrator"
-#: js/ui/status/thunderbolt.js:319
+#: js/ui/status/thunderbolt.js:322
msgid "Thunderbolt authorization error"
msgstr "Eroare de autorizare Thunderbolt"
-#: js/ui/status/thunderbolt.js:320
+#: js/ui/status/thunderbolt.js:323
#, javascript-format
msgid "Could not authorize the Thunderbolt device: %s"
msgstr "Nu s-a putut autoriza dispozitivul Thunderbolt: %s"
@@ -2763,23 +2765,23 @@
#. Translators: This is a time format for a date in
#. long format
-#: js/ui/unlockDialog.js:384
+#: js/ui/unlockDialog.js:385
msgid "%A %B %-d"
-msgstr "%A %B %-d"
+msgstr "%A %-e %B"
-#: js/ui/unlockDialog.js:390
+#: js/ui/unlockDialog.js:391
msgid "Swipe up to unlock"
msgstr "Trage în sus pentru a debloca"
-#: js/ui/unlockDialog.js:391
+#: js/ui/unlockDialog.js:392
msgid "Click or press a key to unlock"
msgstr "Apasă o tastă pentru a debloca"
-#: js/ui/unlockDialog.js:576
+#: js/ui/unlockDialog.js:577
msgid "Unlock Window"
msgstr "Deblochează fereastră"
-#: js/ui/unlockDialog.js:585
+#: js/ui/unlockDialog.js:586
msgid "Log in as another user"
msgstr "Intră în sesiune ca utilizator diferit"
@@ -2973,19 +2975,19 @@
"Exensii GNOME gestionează actualizarea extensiilor, configurarea "
"preferințelor extensiei și eliminarea sau dezactivarea extensiilor nedorite."
-#: subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in:69
+#: subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in:74
msgid "Main Window"
msgstr "Fereastra principală"
-#: subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in:73
+#: subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in:78
msgid "Available Updates"
msgstr "Actualizări disponibile"
-#: subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in:77
+#: subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in:82
msgid "Search View"
msgstr "Vizualizarea căutării"
-#: subprojects/extensions-app/data/org.gnome.Extensions.desktop.in.in:7
+#: subprojects/extensions-app/data/org.gnome.Extensions.desktop.in.in:6
msgid "Configure GNOME Shell Extensions"
msgstr "Configurează extensiile interfeței GNOME"
@@ -3228,6 +3230,7 @@
msgstr "Descriere"
#: subprojects/extensions-tool/src/command-create.c:416
+#, c-format
msgid ""
"UUID is a globally-unique identifier for your extension.\n"
"This should be in the format of an email address "
@@ -3238,12 +3241,13 @@
"(clicktofocus@janedoe.example.com)\n"
#: subprojects/extensions-tool/src/command-create.c:443
+#, c-format
msgid "Choose one of the available templates:\n"
-msgstr "Alege unul din șabloanele existente:\n"
+msgstr "Alege unul dintre modelele existente:\n"
#: subprojects/extensions-tool/src/command-create.c:457
msgid "Template"
-msgstr "Șablon"
+msgstr "Model"
#: subprojects/extensions-tool/src/command-create.c:515
msgid "The unique identifier of the new extension"
@@ -3285,19 +3289,19 @@
#: subprojects/extensions-tool/src/command-create.c:534
msgid "TEMPLATE"
-msgstr "ȘABLON"
+msgstr "MODEL"
#: subprojects/extensions-tool/src/command-create.c:535
msgid "The template to use for the new extension"
-msgstr "Șablonul de utilizat pentru extensia nouă"
+msgstr "Modelul de utilizat pentru extensia nouă"
#: subprojects/extensions-tool/src/command-create.c:538
msgid "Include prefs.js template"
-msgstr "Include șablonul prefs.js"
+msgstr "Include modelul prefs.js"
#: subprojects/extensions-tool/src/command-create.c:544
msgid "Enter extension information interactively"
-msgstr "Introdu informațiile extensiei interactiv"
+msgstr "Introdu interactiv informațiile extensiei"
#: subprojects/extensions-tool/src/command-create.c:552
msgid "Create a new extension"
@@ -3347,6 +3351,7 @@
#: subprojects/extensions-tool/src/command-info.c:50
#: subprojects/extensions-tool/src/command-list.c:66
#: subprojects/extensions-tool/src/main.c:150
+#, c-format
msgid "Failed to connect to GNOME Shell\n"
msgstr "Nu s-a putut conecta la interfața GNOME\n"
@@ -3484,6 +3489,7 @@
msgstr "Restabilește o extensie"
#: subprojects/extensions-tool/src/command-uninstall.c:49
+#, c-format
msgid "Cannot uninstall system extensions\n"
msgstr "Nu se pot dezinstala extensiile de sistem\n"
@@ -3610,27 +3616,27 @@
msgid "Use “%s” to get detailed help.\n"
msgstr "Folosește „%s” pentru a obține ajutor detaliat.\n"
-#: subprojects/extensions-tool/src/templates/00-plain.desktop.in:4
+#: subprojects/extensions-tool/src/templates/00-plain.desktop.in:3
msgid "Plain"
msgstr "Simplu"
-#: subprojects/extensions-tool/src/templates/00-plain.desktop.in:5
+#: subprojects/extensions-tool/src/templates/00-plain.desktop.in:4
msgid "An empty extension"
msgstr "O extensie goală"
-#: subprojects/extensions-tool/src/templates/indicator.desktop.in:4
+#: subprojects/extensions-tool/src/templates/indicator.desktop.in:3
msgid "Indicator"
msgstr "Indicator"
-#: subprojects/extensions-tool/src/templates/indicator.desktop.in:5
+#: subprojects/extensions-tool/src/templates/indicator.desktop.in:4
msgid "Add an icon to the top bar"
msgstr "Adaugă un simbol în bara de sus"
-#: subprojects/extensions-tool/src/templates/quick-settings.desktop.in:4
+#: subprojects/extensions-tool/src/templates/quick-settings.desktop.in:3
msgid "Quick Settings Item"
msgstr "Element Schimbări rapide"
-#: subprojects/extensions-tool/src/templates/quick-settings.desktop.in:5
+#: subprojects/extensions-tool/src/templates/quick-settings.desktop.in:4
msgid "Add an item to quick settings"
msgstr "Adaugă un element la schimbările rapide"
diff -Nru gnome-shell-48.4/po/th.po gnome-shell-48.7/po/th.po
--- gnome-shell-48.4/po/th.po 2025-08-03 10:53:34.000000000 +0000
+++ gnome-shell-48.7/po/th.po 2025-11-24 14:16:08.000000000 +0000
@@ -10,8 +10,8 @@
msgstr ""
"Project-Id-Version: gnome-shell master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell/issues/\n"
-"POT-Creation-Date: 2025-07-03 10:59+0000\n"
-"PO-Revision-Date: 2025-07-03 18:56+0700\n"
+"POT-Creation-Date: 2025-08-20 09:34+0000\n"
+"PO-Revision-Date: 2025-08-24 11:42+0700\n"
"Last-Translator: Atirut Wattanamongkol \n"
"Language-Team: Thai \n"
"Language: th\n"
@@ -19,7 +19,7 @@
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Poedit 3.6\n"
+"X-Generator: Poedit 3.7\n"
"X-DL-Lang: th\n"
"X-DL-Module: gnome-shell\n"
"X-DL-Branch: main\n"
@@ -103,7 +103,7 @@
msgstr "เปิดหน้าต่างใหม่ของแอปที่ปักหมุดตัวที่ 9"
#. Translators: name of the folder under ~/Pictures for screenshots.
-#: data/50-gnome-shell-screenshots.xml:6 js/ui/screenshot.js:2275
+#: data/50-gnome-shell-screenshots.xml:6 js/ui/screenshot.js:2279
msgid "Screenshots"
msgstr "ภาพหน้าจอ"
@@ -123,7 +123,7 @@
msgid "Record a screencast interactively"
msgstr "อัดภาพถ่ายทอดหน้าจอแบบอินเทอร์แอคทีฟ"
-#: data/50-gnome-shell-system.xml:6 data/X-GNOME-Shell-System.directory.desktop.in:3
+#: data/50-gnome-shell-system.xml:6 data/X-GNOME-Shell-System.directory.desktop.in:2
#: js/ui/messageTray.js:1307
msgid "System"
msgstr "ระบบ"
@@ -148,11 +148,11 @@
msgid "Show all apps"
msgstr "แสดงแอปทั้งหมด"
-#: data/org.gnome.Shell.desktop.in.in:4
+#: data/org.gnome.Shell.desktop.in.in:3
msgid "GNOME Shell"
msgstr "GNOME Shell"
-#: data/org.gnome.Shell.desktop.in.in:5
+#: data/org.gnome.Shell.desktop.in.in:4
msgid "Window management and application launching"
msgstr "การจัดการหน้าต่างและการเรียกใช้แอปพลิเคชัน"
@@ -162,7 +162,7 @@
#: data/org.gnome.shell.gschema.xml.in:9
msgid "Allows access to internal debugging and monitoring tools using the Alt-F2 dialog."
-msgstr "เปิดให้เข้าถึงเครื่องมือภายในสำหรับดีบั๊กและเฝ้าสังเกต ซึ่งเรียกผ่านกล่องโต้ตอบ Alt-F2"
+msgstr "เปิดให้เข้าถึงเครื่องมือภายในสำหรับดีบักและเฝ้าสังเกต ซึ่งเรียกผ่านกล่องโต้ตอบ Alt-F2"
#: data/org.gnome.shell.gschema.xml.in:16
msgid "UUIDs of extensions to enable"
@@ -174,7 +174,7 @@
"extension that wants to be loaded needs to be in this list. You can also manipulate this list with "
"the EnableExtension and DisableExtension D-Bus methods on org.gnome.Shell."
msgstr ""
-"ส่วนขยายต่างๆ ของ GNOME Shell จะมี UUID ประจำตัว คีย์นี้จะเก็บรายชื่อของส่วนขยายที่จะโหลดใช้ ส่วนขยายใดๆ "
+"ส่วนขยายต่าง ๆ ของ GNOME Shell จะมี UUID ประจำตัว คีย์นี้จะเก็บรายชื่อของส่วนขยายที่จะโหลดใช้ ส่วนขยายใด ๆ "
"ที่ต้องการให้โหลดจะต้องอยู่ในรายชื่อนี้ คุณยังสามารถจัดการรายชื่อนี้ผ่านเมธอด EnableExtension และ DisableExtension ของ "
"DBus ที่หัวข้อ org.gnome.Shell ได้"
@@ -189,7 +189,7 @@
"EnableExtension and DisableExtension D-Bus methods on org.gnome.Shell. This key takes precedence "
"over the “enabled-extensions” setting."
msgstr ""
-"ส่วนขยายต่างๆ ของ GNOME Shell จะมี UUID ประจำตัว คีย์นี้จะเก็บรายชื่อของส่วนขยายที่จะปิดใช้ "
+"ส่วนขยายต่าง ๆ ของ GNOME Shell จะมี UUID ประจำตัว คีย์นี้จะเก็บรายชื่อของส่วนขยายที่จะปิดใช้ "
"ถึงแม้ว่าจะถูกโหลดเป็นส่วนหนึ่งของโหมดปัจจุบันก็ตาม คุณสามารถจัดการรายชื่อนี้ผ่านเมธอด EnableExtension และ "
"DisableExtension ของ DBus ที่หัวข้อ org.gnome.Shell ได้ คีย์นี้จะมีลำดับความสำคัญที่สูงกว่าการตั้งค่า “enabled-"
"extensions”"
@@ -235,11 +235,11 @@
#: data/org.gnome.shell.gschema.xml.in:68
msgid "The applications corresponding to these identifiers will be displayed in the favorites area."
-msgstr "โปรแกรมที่แทนด้วยไฟล์เดสก์ท็อปเหล่านี้จะถูกแสดงในบริเวณแอปพลิเคชันโปรด"
+msgstr "แอปพลิเคชันที่แทนด้วยไฟล์เดสก์ท็อปเหล่านี้จะถูกแสดงในบริเวณแอปพลิเคชันโปรด"
#: data/org.gnome.shell.gschema.xml.in:75
msgid "History for command (Alt-F2) dialog"
-msgstr "ประวัติคำสั่งของกล่องโต้ตอบเรียกโปรแกรม (Alt-F2)"
+msgstr "ประวัติคำสั่งของกล่องโต้ตอบเรียกแอปพลิเคชัน (Alt-F2)"
#. Translators: looking glass is a debugger and inspector tool, see https://gitlab.gnome.org/GNOME/gnome-shell/-/blob/main/docs/looking-glass.md
#: data/org.gnome.shell.gschema.xml.in:80
@@ -248,7 +248,7 @@
#: data/org.gnome.shell.gschema.xml.in:84
msgid "Always show the “Log Out” action in the system menu"
-msgstr "แสดงรายการ “ออกจากระบบ” ในเมนูระบบเสมอ"
+msgstr "แสดงคำสั่ง “ออกจากระบบ” ในเมนูระบบเสมอ"
#: data/org.gnome.shell.gschema.xml.in:85
msgid ""
@@ -492,27 +492,27 @@
msgstr "ตำแหน่งที่ตั้งที่ต้องการให้แสดงข้อมูลพยากรณ์"
#. Keep in sync with subprojects/extensions-app
-#: data/org.gnome.Shell.Extensions.desktop.in.in:5
+#: data/org.gnome.Shell.Extensions.desktop.in.in:4
#: subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in:5
-#: subprojects/extensions-app/data/org.gnome.Extensions.desktop.in.in:4
+#: subprojects/extensions-app/data/org.gnome.Extensions.desktop.in.in:3
#: subprojects/extensions-app/data/ui/extensions-window.ui:57
msgid "Extensions"
msgstr "ส่วนขยาย"
-#: data/org.gnome.Shell.PortalHelper.desktop.in.in:3
+#: data/org.gnome.Shell.PortalHelper.desktop.in.in:2
msgid "Network Login"
msgstr "เข้าระบบเครือข่าย"
-#: data/X-GNOME-Shell-Utilities.directory.desktop.in:3
+#: data/X-GNOME-Shell-Utilities.directory.desktop.in:2
msgid "Utilities"
msgstr "อรรถประโยชน์"
-#: js/dbusServices/extensions/ui/extension-error-page.ui:15
+#: js/dbusServices/extensions/ui/extension-error-page.ui:12
#: subprojects/extensions-app/data/ui/extensions-window.ui:275
msgid "Something’s gone wrong"
msgstr "มีบางอย่างผิดปกติ"
-#: js/dbusServices/extensions/ui/extension-error-page.ui:23
+#: js/dbusServices/extensions/ui/extension-error-page.ui:20
msgid ""
"We’re very sorry, but there’s been a problem: the settings for this extension can’t be displayed. "
"We recommend that you report the issue to the extension authors."
@@ -520,19 +520,19 @@
"เราขออภัยอย่างที่สุด แต่มีปัญหาเกิดขึ้นคือ ไม่สามารถแสดงผลการตั้งค่าสำหรับส่วนขยายนี้ได้ "
"เราขอแนะนำให้คุณรายงานปัญหานั้นแก่ผู้จัดทำส่วนขยาย"
-#: js/dbusServices/extensions/ui/extension-error-page.ui:48
+#: js/dbusServices/extensions/ui/extension-error-page.ui:45
msgid "Technical Details"
msgstr "รายละเอียดทางเทคนิค"
-#: js/dbusServices/extensions/ui/extension-error-page.ui:90
+#: js/dbusServices/extensions/ui/extension-error-page.ui:87
msgid "Homepage"
msgstr "หน้าแรก"
-#: js/dbusServices/extensions/ui/extension-error-page.ui:91
+#: js/dbusServices/extensions/ui/extension-error-page.ui:88
msgid "Visit extension homepage"
msgstr "เยี่ยมชมหน้าแรกของส่วนขยาย"
-#: js/gdm/authPrompt.js:156 js/gdm/loginDialog.js:468 js/ui/audioDeviceSelection.js:60
+#: js/gdm/authPrompt.js:156 js/gdm/loginDialog.js:465 js/ui/audioDeviceSelection.js:60
#: js/ui/components/networkAgent.js:114 js/ui/components/polkitAgent.js:144
#: js/ui/endSessionDialog.js:437 js/ui/extensionDownloader.js:276 js/ui/shellMountOperation.js:382
#: js/ui/shellMountOperation.js:392
@@ -546,12 +546,12 @@
msgid "Password"
msgstr "รหัสผ่าน"
-#: js/gdm/loginDialog.js:328
+#: js/gdm/loginDialog.js:326
msgid "Choose Session"
msgstr "เลือกเซสชัน"
#. Translators: is running for
-#: js/gdm/loginDialog.js:426
+#: js/gdm/loginDialog.js:423
#, javascript-format
msgid ""
"Remote login is not possible because a remote session is already running for %s. To login remotely, "
@@ -561,7 +561,7 @@
"คุณจะต้องออกจากเซสชันระยะไกลหรือบังคับหยุดเซสชันดังกล่าว"
#. Translators: is running for
-#: js/gdm/loginDialog.js:429
+#: js/gdm/loginDialog.js:426
#, javascript-format
msgid ""
"Login is not possible because a remote session is already running for %s. To login, you must log "
@@ -571,7 +571,7 @@
"คุณจะต้องออกจากเซสชันระยะไกลหรือบังคับหยุดเซสชันดังกล่าว"
#. Translators: is running for
-#: js/gdm/loginDialog.js:432
+#: js/gdm/loginDialog.js:429
#, javascript-format
msgid ""
"Remote login is not possible because a local session is already running for %s. To login remotely, "
@@ -581,7 +581,7 @@
"หากต้องการเข้าสู่ระบบจากระยะไกล คุณต้องออกจากเซสชันภายในเครื่องหรือบังคับหยุดเซสชันดังกล่าว"
#. Translators: is running for
-#: js/gdm/loginDialog.js:435
+#: js/gdm/loginDialog.js:432
#, javascript-format
msgid ""
"Login is not possible because a session is already running for %s. To login, you must log out from "
@@ -590,43 +590,43 @@
"ไม่สามารถเข้าสู่ระบบได้เนื่องจากเซสชันกำลังทำงานอยู่แล้วสำหรับ %s หากต้องการเข้าสู่ระบบ "
"คุณต้องออกจากเซสชันหรือบังคับหยุดเซสชันดังกล่าว"
-#: js/gdm/loginDialog.js:444
+#: js/gdm/loginDialog.js:441
msgid "Session Already Running"
msgstr "เซสชันกำลังทำงานอยู่"
-#: js/gdm/loginDialog.js:456
+#: js/gdm/loginDialog.js:453
msgid "Force stopping will quit any running apps and processes, and could result in data loss"
msgstr "การบังคับหยุดจะปิดแอปและโปรเซสที่ทำงานอยู่ และอาจส่งผลให้ข้อมูลสูญหายได้"
-#: js/gdm/loginDialog.js:476
+#: js/gdm/loginDialog.js:473
msgid "Force Stop"
msgstr "บังคับให้หยุด"
-#: js/gdm/loginDialog.js:554
+#: js/gdm/loginDialog.js:551
msgid "Not listed?"
msgstr "ไม่มีชื่อของคุณงั้นหรือ?"
#. Translators: this message is shown below the username entry field
#. to clue the user in on how to login to the local network realm
-#: js/gdm/loginDialog.js:1075
+#: js/gdm/loginDialog.js:1072
#, javascript-format
msgid "(e.g., user or %s)"
msgstr "(เช่น ผู้ใช้ หรือ %s)"
-#: js/gdm/loginDialog.js:1080 js/ui/components/networkAgent.js:258
+#: js/gdm/loginDialog.js:1077 js/ui/components/networkAgent.js:258
#: js/ui/components/networkAgent.js:293 js/ui/components/networkAgent.js:327
msgid "Username"
msgstr "ชื่อผู้ใช้"
-#: js/gdm/loginDialog.js:1146
+#: js/gdm/loginDialog.js:1143
msgid "Login Attempt Timed Out"
msgstr "หมดเวลาการพยายามเข้าสู่ระบบ"
-#: js/gdm/loginDialog.js:1147
+#: js/gdm/loginDialog.js:1144
msgid "Login took too long, please try again"
msgstr "การเข้าสู่ระบบใช้เวลานานเกินไป กรุณาลองใหม่อีกครั้ง"
-#: js/gdm/loginDialog.js:1496
+#: js/gdm/loginDialog.js:1493
msgid "Login Window"
msgstr "หน้าต่างเข้าสู่ระบบ"
@@ -648,149 +648,142 @@
#: js/misc/breakManager.js:770
msgid "Break complete sound"
-msgstr ""
+msgstr "เสียงเมื่อครบเวลาพัก"
#: js/misc/breakManager.js:980
-#, fuzzy, javascript-format
-#| msgid "Show seco_nds"
+#, javascript-format
msgid "%d second"
msgid_plural "%d seconds"
-msgstr[0] "แสดง_วินาที"
+msgstr[0] "%d วินาที"
#: js/misc/breakManager.js:986
-#, fuzzy, javascript-format
-#| msgid "%d minute ago"
-#| msgid_plural "%d minutes ago"
+#, javascript-format
msgid "%d minute"
msgid_plural "%d minutes"
-msgstr[0] "%d นาทีก่อน"
+msgstr[0] "%d นาที"
#: js/misc/breakManager.js:992
-#, fuzzy, javascript-format
-#| msgid "%d hour ago"
-#| msgid_plural "%d hours ago"
+#, javascript-format
msgid "%d hour"
msgid_plural "%d hours"
-msgstr[0] "%d ชั่วโมงก่อน"
+msgstr[0] "%d ชั่วโมง"
#: js/misc/breakManager.js:998
-#, fuzzy, javascript-format
-#| msgid "%d day ago"
-#| msgid_plural "%d days ago"
+#, javascript-format
msgid "%d day"
msgid_plural "%d days"
-msgstr[0] "%d วันก่อน"
+msgstr[0] "%d วัน"
#. %s will be replaced with a string that describes a time interval, such as “2 minutes”, “40 seconds” or “1 hour”
#: js/misc/breakManager.js:1081
#, javascript-format
msgid "It will be time for a break in %s"
msgid_plural "It will be time for a break in %s"
-msgstr[0] ""
+msgstr[0] "จะถึงเวลาพักในอีก %s"
#: js/misc/breakManager.js:1089
msgid "Movement Break Soon"
-msgstr ""
+msgstr "ใกล้ถึงเวลาพักขยับร่างกายแล้ว"
#: js/misc/breakManager.js:1092
msgid "Eyesight Break Soon"
-msgstr ""
+msgstr "ใกล้ถึงเวลาพักสายตาแล้ว"
#: js/misc/breakManager.js:1095
msgid "Break Soon"
-msgstr ""
+msgstr "ใกล้ถึงเวลาพักแล้ว"
#: js/misc/breakManager.js:1140
msgid "Movement Break in Progress"
-msgstr ""
+msgstr "อยู่ในเวลาพักขยับร่างกาย"
#. %s will be replaced with a string that describes a time interval, such as “2 minutes”, “40 seconds” or “1 hour”
#: js/misc/breakManager.js:1143
#, javascript-format
msgid "Continue moving around for %s"
msgid_plural "Continue moving around for %s"
-msgstr[0] ""
+msgstr[0] "ขยับร่างกายต่ออีก %s"
#: js/misc/breakManager.js:1149
msgid "Eyesight Break in Progress"
-msgstr ""
+msgstr "อยู่ในเวลาพักสายตา"
#. %s will be replaced with a string that describes a time interval, such as “2 minutes”, “40 seconds” or “1 hour”
#: js/misc/breakManager.js:1152
#, javascript-format
msgid "Continue looking away for %s"
msgid_plural "Continue looking away for %s"
-msgstr[0] ""
+msgstr[0] "มองไปทางอื่นต่ออีก %s"
#: js/misc/breakManager.js:1158
msgid "Break in Progress"
-msgstr ""
+msgstr "อยู่ในเวลาอีก"
#. %s will be replaced with a string that describes a time interval, such as “2 minutes”, “40 seconds” or “1 hour”
#: js/misc/breakManager.js:1161
#, javascript-format
msgid "%s left in your break"
msgid_plural "%s left in your break"
-msgstr[0] ""
+msgstr[0] "เวลาพักของคุณเหลืออีก %s"
#: js/misc/breakManager.js:1200
msgid "Time for a Movement Break"
-msgstr ""
+msgstr "ได้เวลาพักขยับร่างกายแล้ว"
#. %s will be replaced with a string that describes a time interval, such as “2 minutes”, “40 seconds” or “1 hour”
#: js/misc/breakManager.js:1203
#, javascript-format
msgid "Take a break from the device and move around for %s"
msgid_plural "Take a break from the device and move around for %s"
-msgstr[0] ""
+msgstr[0] "โปรดหยุดใช้อุปกรณ์ แล้วขยับร่างกายเป็นเวลา %s"
#: js/misc/breakManager.js:1209
msgid "Time for an Eyesight Break"
-msgstr ""
+msgstr "ได้เวลาพักสายตาแล้ว"
#. %s will be replaced with a string that describes a time interval, such as “2 minutes”, “40 seconds” or “1 hour”
#: js/misc/breakManager.js:1212
#, javascript-format
msgid "Take a break from the screen. Look at least 6 meters away for at least %s"
msgid_plural "Take a break from the screen. Look at least 6 meters away for at least %s"
-msgstr[0] ""
+msgstr[0] "โปรดพักสายตาจากหน้าจอของคุณ แล้วมองไปทางอื่นอย่างน้อย 6 เมตร เป็นเวลาอย่างน้อย %s"
#: js/misc/breakManager.js:1218
msgid "Time for a Break"
-msgstr ""
+msgstr "ได้เวลาพักแล้ว"
#. %s will be replaced with a string that describes a time interval, such as “2 minutes”, “40 seconds” or “1 hour”
#: js/misc/breakManager.js:1221
#, javascript-format
msgid "It’s time to take a break. Get away from the device for %s!"
msgid_plural "It’s time to take a break. Get away from the device for %s!"
-msgstr[0] ""
+msgstr[0] "ตอนนี้ถึงเวลาพักแล้ว โปรดออกห่างจากอุปกรณ์เป็นเวลา %s!"
#. %s will be replaced with a string that describes a time interval, such as “2 minutes”, “40 seconds” or “1 hour”
#: js/misc/breakManager.js:1245
#, javascript-format
msgid "You were due to take a break %s ago"
msgid_plural "You were due to take a break %s ago"
-msgstr[0] ""
+msgstr[0] "คุณถึงเวลาพักแล้วตั้งแต่เมื่อ %sก่อน"
#: js/misc/breakManager.js:1251
msgid "Break Overdue"
-msgstr ""
+msgstr "เลยเวลาพักที่กำหนดแล้ว"
#: js/misc/breakManager.js:1267
#, javascript-format
msgid "There is %s remaining in your break"
msgid_plural "There are %s remaining in your break"
-msgstr[0] ""
+msgstr[0] "คุณยังเหลือเวลาพักที่กำหนดไว้อีก %s"
#: js/misc/breakManager.js:1273
msgid "Break Interrupted"
-msgstr ""
+msgstr "เวลาพักถูกขัดจังหวะ"
#. Translators: As in "Delay the break"
#: js/misc/breakManager.js:1351
msgid "Delay"
-msgstr ""
+msgstr "หน่วงเวลา"
#. Translators: As in "Skip the break"
#: js/misc/breakManager.js:1373 js/ui/welcomeDialog.js:61
@@ -799,10 +792,8 @@
#. Translators: As in "Take the break"
#: js/misc/breakManager.js:1395
-#, fuzzy
-#| msgid "Take Tour"
msgid "Take"
-msgstr "เริ่มทัวร์"
+msgstr "พัก"
#. Translators: This is a notification to warn the user that a
#. screen time break will start shortly.
@@ -810,7 +801,7 @@
#, javascript-format
msgid "Break in %d second"
msgid_plural "Break in %d seconds"
-msgstr[0] ""
+msgstr[0] "เตรียมพักในอีก %d วินาที"
#. Translators: The name of the power-off action in search
#: js/misc/systemActions.js:91
@@ -905,28 +896,26 @@
msgstr "ล็อกการหมุนหน้าจอ"
#: js/misc/timeLimitsManager.js:342
-#, fuzzy
-#| msgid "GNOME needs to lock the screen"
msgid "GNOME needs to save screen time data"
-msgstr "GNOME จำเป็นต้องล็อกหน้าจอ"
+msgstr "GNOME จำเป็นต้องบันทึกข้อมูลเวลาหน้าจอ"
#: js/misc/timeLimitsManager.js:1123
#, javascript-format
msgid "Screen Time Limit in %d Minute"
msgid_plural "Screen Time Limit in %d Minutes"
-msgstr[0] ""
+msgstr[0] "จะถึงขีดจำกัดเวลาหน้าจอใน %d นาที"
#: js/misc/timeLimitsManager.js:1130
msgid "Your screen time limit is approaching"
-msgstr ""
+msgstr "ใกล้ถึงขีดจำกัดเวลาหน้าจอของคุณแล้ว"
#: js/misc/timeLimitsManager.js:1144
msgid "Screen Time Limit Reached"
-msgstr ""
+msgstr "ถึงขีดจำกัดเวลาหน้าจอแล้ว"
#: js/misc/timeLimitsManager.js:1145
msgid "It’s time to stop using the device"
-msgstr ""
+msgstr "ถึงเวลาหยุดใช้อุปกรณ์แล้ว"
#: js/misc/util.js:130
msgid "Command not found"
@@ -1061,11 +1050,11 @@
msgid ""
"Your connection to this hotspot login is not secure. Passwords or other information you enter on "
"this page can be viewed by people nearby."
-msgstr "การเชื่อมต่อของคุณกับระบบล็อกอินฮอตสปอตนี้ไม่ปลอดภัย รหัสผ่านหรือข้อมูลอื่น ๆ ที่คุณป้อนในหน้านี้อาจถูกบุคคลใกล้เคียงดูได้"
+msgstr "การเชื่อมต่อของคุณกับหน้าเข้าสู่ระบบฮอตสปอตนี้ไม่ปลอดภัย รหัสผ่านหรือข้อมูลอื่น ๆ ที่คุณป้อนในหน้านี้อาจถูกบุคคลใกล้เคียงดูได้"
#: js/portalHelper/main.js:115
msgid "Hotspot Login"
-msgstr "เข้าสู่ระบบฮอตสปอต"
+msgstr "หน้าเข้าสู่ระบบฮอตสปอต"
#. No support for non-modal system dialogs, so ignore the option
#. let modal = options['modal'] || true;
@@ -1093,7 +1082,7 @@
#: js/ui/appFavorites.js:208 js/ui/main.js:309
msgid "Undo"
-msgstr "เรียกคืน"
+msgstr "เลิกทำ"
#. Translators: This is the heading of a list of open windows
#: js/ui/appMenu.js:49
@@ -1122,11 +1111,11 @@
#: js/ui/appMenu.js:178
msgid "Launch using Integrated Graphics Card"
-msgstr "เปิดตัวโดยใช้กราฟิกการ์ดในตัว"
+msgstr "เรียกใช้งานโดยใช้กราฟิกการ์ดในตัว"
#: js/ui/appMenu.js:179
msgid "Launch using Discrete Graphics Card"
-msgstr "เปิดตัวโดยใช้การ์ดจอแยก"
+msgstr "เรียกใช้งานโดยใช้กราฟิกการ์ดแยก"
#: js/ui/audioDeviceSelection.js:46
msgid "Select Audio Device"
@@ -1150,15 +1139,15 @@
#: js/ui/backgroundMenu.js:13
msgid "Change Background…"
-msgstr "เปลี่ยนภาพพื้นหลัง"
+msgstr "เปลี่ยนภาพพื้นหลัง…"
#: js/ui/backgroundMenu.js:15
msgid "Display Settings"
-msgstr "ตั้งค่าการแสดงผล"
+msgstr "การตั้งค่าการแสดงผล"
#: js/ui/backgroundMenu.js:16
msgid "Settings"
-msgstr "ตั้งค่า"
+msgstr "การตั้งค่า"
#. Translators: Enter 0-6 (Sunday-Saturday) for non-work days. Examples: "0" (Sunday) "6" (Saturday) "06" (Sunday and Saturday).
#: js/ui/calendar.js:33
@@ -1302,7 +1291,7 @@
#: js/ui/components/automountManager.js:209
msgid "The installed udisks version does not support the PIM setting"
-msgstr "เวอร์ชัน udisks ที่ติดตั้งไม่รองรับการตั้งค่า PIM"
+msgstr "udisks รุ่นที่ติดตั้งไม่รองรับการตั้งค่า PIM"
#. Translators: %s is the name of a partition on a external drive
#: js/ui/components/autorunManager.js:189
@@ -1415,7 +1404,7 @@
#: js/ui/dash.js:204 js/ui/dash.js:250
msgid "Show Apps"
-msgstr "แสดงแอปต่างๆ"
+msgstr "แสดงแอปต่าง ๆ"
#. Translators: this is the name of the dock/favorites area on
#. the bottom of the overview
@@ -1635,7 +1624,7 @@
#: js/ui/endSessionDialog.js:297
msgid "Other users are logged in"
-msgstr "ผู้ใช้รายอื่นใช้ระบบอยู่"
+msgstr "ผู้ใช้คนอื่นเข้าระบบอยู่"
#: js/ui/endSessionDialog.js:467
msgctxt "button"
@@ -1707,8 +1696,7 @@
msgid ""
"You just held down the Shift key for 8 seconds. This is the shortcut for the Slow Keys feature, "
"which affects the way your keyboard works."
-msgstr ""
-"คุณได้กดแป้น Shift ค้างไว้เป็นเวลา 8 วินาที นี่คือปุ่มลัดสำหรับคุณสมบัติ \"พิมพ์แบบช้า\" ซึ่งจะมีผลกับวิธีที่แป้นพิมพ์ของคุณทำงาน"
+msgstr "คุณได้กดแป้น Shift ค้างไว้เป็นเวลา 8 วินาที นี่คือปุ่มลัดสำหรับคุณลักษณะพิมพ์แบบช้า ซึ่งจะมีผลกับการทำงานของแป้นพิมพ์"
#: js/ui/kbdA11yDialog.js:42
msgid "Sticky Keys Turned On"
@@ -1722,16 +1710,15 @@
msgid ""
"You just pressed the Shift key 5 times in a row. This is the shortcut for the Sticky Keys feature, "
"which affects the way your keyboard works."
-msgstr ""
-"คุณได้กดแป้น Shift ติดต่อกันเป็นจำนวน 5 ครั้ง นี่คือปุ่มลัดสำหรับคุณสมบัติ “ค้างปุ่มกด” ซึ่งจะมีผลกับวิธีที่แป้นพิมพ์ของคุณทำงาน"
+msgstr "คุณได้กดแป้น Shift ติดต่อกันเป็นจำนวน 5 ครั้ง นี่คือปุ่มลัดสำหรับคุณลักษณะค้างปุ่มกด ซึ่งจะมีผลกับการทำงานของแป้นพิมพ์"
#: js/ui/kbdA11yDialog.js:47
msgid ""
"You just pressed two keys at once, or pressed the Shift key 5 times in a row. This turns off the "
"Sticky Keys feature, which affects the way your keyboard works."
msgstr ""
-"คุณได้กดแป้นสองแป้นพร้อมกันทีเดียว หรือกดแป้น Shift ติดต่อกันเป็นจำนวน 5 ครั้ง นี่เป็นการปิดคุณสมบัติ “ค้างปุ่มกด” "
-"ซึ่งจะมีผลกับวิธีที่แป้นพิมพ์ของคุณทำงาน"
+"คุณได้กดแป้นสองแป้นพร้อมกันทีเดียว หรือกดแป้น Shift ติดต่อกันเป็นจำนวน 5 ครั้ง นี่เป็นการปิดคุณลักษณะค้างปุ่มกด "
+"ซึ่งจะมีผลกับการทำงานของแป้นพิมพ์"
#: js/ui/kbdA11yDialog.js:57
msgid "Leave On"
@@ -1813,18 +1800,18 @@
#: js/ui/main.js:306
msgid "Apps now have unrestricted access"
-msgstr "ขณะนี้แอปจะมีสิทธิเข้าถึงต่างๆ แบบไม่จำกัด"
+msgstr "ตอนนี้แอปจะมีสิทธิเข้าถึงต่าง ๆ แบบไม่จำกัด"
#: js/ui/main.js:366
msgid "Logged in as a privileged user"
-msgstr "เข้าระบบในนามผู้ใช้สิทธิพิเศษอยู่"
+msgstr "เข้าสู่ระบบในฐานะผู้ใช้สิทธิพิเศษอยู่"
#: js/ui/main.js:367
msgid ""
"Running a session as a privileged user should be avoided for security reasons. If possible, you "
"should log in as a normal user."
msgstr ""
-"การเรียกใช้เซสชันในนามผู้ใช้สิทธิพิเศษควรหลีกเลี่ยงด้วยเหตุผลด้านความปลอดภัย ถ้าเป็นไปได้ คุณควรจะเข้าระบบในนามผู้ใช้ปกติ"
+"คุณควรหลีกเลี่ยงการเรียกใช้เซสชันในฐานะผู้ใช้สิทธิพิเศษเพื่อความปลอดภัยของระบบ ถ้าเป็นไปได้ ควรเข้าสู่ระบบในฐานะผู้ใช้ปกติ"
#: js/ui/main.js:415
msgid "Screen Lock disabled"
@@ -1832,7 +1819,7 @@
#: js/ui/main.js:416
msgid "Screen Locking requires the GNOME display manager"
-msgstr "การล็อกหน้าจอต้องการ GNOME display manager"
+msgstr "การล็อกหน้าจอต้องการตัวจัดการดิสเพลย์ GNOME"
#. Translators: this is the string displayed in the header when a message
#. source doesn't have a name
@@ -2005,79 +1992,79 @@
#. Translators: this is the folder where recorded
#. screencasts are stored.
-#: js/ui/screenshot.js:1994
+#: js/ui/screenshot.js:1998
msgid "Screencasts"
msgstr "บันทึกหน้าจอ"
#. Translators: this is a filename used for screencast
#. * recording, where "%d" and "%t" date and time, e.g.
#. * "Screencast From 07-17-2013 10:00:46 PM"
-#: js/ui/screenshot.js:1999
+#: js/ui/screenshot.js:2003
#, no-c-format
msgid "Screencast From %d %t"
msgstr "บันทึกหน้าจอจาก %d %t"
#. Translators: notification title.
-#: js/ui/screenshot.js:2045
+#: js/ui/screenshot.js:2049
msgid "Screencast recorded"
msgstr "บันทึกหน้าจอแล้ว"
#. Translators: notification title.
-#: js/ui/screenshot.js:2058
+#: js/ui/screenshot.js:2062
msgid "Screencast failed to start"
msgstr "ไม่สามารถเริ่มการบันทึกหน้าจอได้"
#. Translators: notification title.
-#: js/ui/screenshot.js:2064
+#: js/ui/screenshot.js:2068
msgid "Screencast ended: Out of disk space"
-msgstr "สิ้นสุดการบันทึกหน้าจอ: หมดพื้นที่บนดิสก์"
+msgstr "การบันทึกหน้าจอสิ้นสุด: เนื้อที่ดิสก์หมดแล้ว"
#. We can encourage user to try again on service crashes since the
#. recorder will auto-blocklist the pipeline that crashed.
#. Translators: notification title.
-#: js/ui/screenshot.js:2070
+#: js/ui/screenshot.js:2074
msgid "Screencast ended unexpectedly, please try again"
-msgstr "การบันทึกหน้าจอสิ้นสุดอย่างไม่คาดคิด กรุณาลองอีกครั้ง"
+msgstr "การบันทึกหน้าจอสิ้นสุดอย่างไม่คาดคิด โปรดลองอีกครั้ง"
#. Translators: notification title.
-#: js/ui/screenshot.js:2073
+#: js/ui/screenshot.js:2077
msgid "Screencast ended unexpectedly"
msgstr "การบันทึกหน้าจอสิ้นสุดอย่างไม่คาดคิด"
#. Translators: notification source name.
-#: js/ui/screenshot.js:2083 js/ui/screenshot.js:2330
+#: js/ui/screenshot.js:2087 js/ui/screenshot.js:2334
msgid "Screenshot"
msgstr "ภาพหน้าจอ"
#. Translators: notification body when a screencast was recorded.
-#: js/ui/screenshot.js:2090
+#: js/ui/screenshot.js:2094
msgid "Click here to view the video."
msgstr "คลิกที่นี่เพื่อดูวิดีโอ"
#. Translators: button on the screencast notification.
#. Translators: button on the screenshot notification.
-#: js/ui/screenshot.js:2098 js/ui/screenshot.js:2346
+#: js/ui/screenshot.js:2102 js/ui/screenshot.js:2350
msgid "Show in Files"
msgstr "แสดงในไฟล์"
#. Translators: this is the name of the file that the screenshot is
#. saved to. The placeholder is a timestamp, e.g. "2017-05-21 12-24-03".
-#: js/ui/screenshot.js:2288
+#: js/ui/screenshot.js:2292
#, javascript-format
msgid "Screenshot From %s"
msgstr "ภาพหน้าจอจาก %s"
#. Translators: notification title.
-#: js/ui/screenshot.js:2336
+#: js/ui/screenshot.js:2340
msgid "Screenshot captured"
msgstr "จับภาพหน้าจอแล้ว"
#. Translators: notification body when a screenshot was captured.
-#: js/ui/screenshot.js:2338
+#: js/ui/screenshot.js:2342
msgid "You can paste the image from the clipboard."
msgstr "คุณสามารถวางรูปภาพจากคลิปบอร์ดได้"
-#: js/ui/screenshot.js:2397 js/ui/screenshot.js:2561
+#: js/ui/screenshot.js:2401 js/ui/screenshot.js:2565
msgid "Screenshot taken"
msgstr "ถ่ายภาพหน้าจอแล้ว"
@@ -2278,7 +2265,7 @@
msgid "Bluetooth"
msgstr "บลูทูธ"
-#: js/ui/status/bluetooth.js:301 js/ui/status/network.js:1919
+#: js/ui/status/bluetooth.js:301 js/ui/status/network.js:1920
msgid "Bluetooth Settings"
msgstr "ตั้งค่าบลูทูธ"
@@ -2288,7 +2275,7 @@
#: js/ui/status/bluetooth.js:349
msgid "Turn on Bluetooth to connect to devices"
-msgstr "เปิดบลูทูธเพื่อเชื่อมต่อกับอุปกรณ์ต่างๆ"
+msgstr "เปิดบลูทูธเพื่อเชื่อมต่อกับอุปกรณ์ต่าง ๆ"
#. Translators: This is the number of connected bluetooth devices
#: js/ui/status/bluetooth.js:413
@@ -2355,92 +2342,92 @@
msgid ""
msgstr "<ไม่ทราบ>"
-#: js/ui/status/network.js:1059
+#: js/ui/status/network.js:1060
msgid "Secure"
msgstr "ปลอดภัย"
-#: js/ui/status/network.js:1059
+#: js/ui/status/network.js:1060
msgid "Not secure"
msgstr "ไม่ปลอดภัย"
-#: js/ui/status/network.js:1060
+#: js/ui/status/network.js:1061
#, javascript-format
msgid "Signal strength %s%%"
msgstr "ความแรงสัญญาณ %s%%"
#. translators: The first placeholder is the network name, the second and indication whether it is secure, and the last the signal strength indication
-#: js/ui/status/network.js:1062
+#: js/ui/status/network.js:1063
#, javascript-format
msgid "%s, %s, %s"
msgstr "%s, %s, %s"
#. Translators: %s is a network identifier
-#: js/ui/status/network.js:1164
+#: js/ui/status/network.js:1165
#, javascript-format
msgid "%s Hotspot"
msgstr "ฮอตสปอต %s"
-#: js/ui/status/network.js:1445
+#: js/ui/status/network.js:1446
#, javascript-format
msgid "%d connected"
msgid_plural "%d connected"
msgstr[0] "เชื่อมต่ออยู่ %d"
-#: js/ui/status/network.js:1543 js/ui/status/network.js:1559
+#: js/ui/status/network.js:1544 js/ui/status/network.js:1560
msgid "VPN"
msgstr "VPN"
-#: js/ui/status/network.js:1544
+#: js/ui/status/network.js:1545
msgid "VPN Settings"
msgstr "ตั้งค่า VPN"
-#: js/ui/status/network.js:1804
+#: js/ui/status/network.js:1805
msgid "Wi–Fi"
msgstr "Wi–Fi"
-#: js/ui/status/network.js:1806
+#: js/ui/status/network.js:1807
msgid "All Networks"
msgstr "เครือข่ายทั้งหมด"
-#: js/ui/status/network.js:1903
+#: js/ui/status/network.js:1904
msgid "Wired Connections"
msgstr "การเชื่อมต่อแบบมีสาย"
-#: js/ui/status/network.js:1904
+#: js/ui/status/network.js:1905
msgid "Wired Settings"
msgstr "ตั้งค่าการเชื่อมต่อแบบมีสาย"
-#: js/ui/status/network.js:1918
+#: js/ui/status/network.js:1919
msgid "Bluetooth Tethers"
msgstr "การเชื่อมโยงบลูทูธ"
#. Translators: "Tether" from "Bluetooth Tether"
-#: js/ui/status/network.js:1925
+#: js/ui/status/network.js:1926
msgid "Tether"
msgstr "การเชื่อมโยง"
-#: js/ui/status/network.js:1938
+#: js/ui/status/network.js:1939
msgid "Mobile Connections"
msgstr "การเชื่อมต่อมือถือ"
-#: js/ui/status/network.js:1940
+#: js/ui/status/network.js:1941
msgid "Mobile Broadband Settings"
msgstr "ตั้งค่าบรอดแบนด์บนมือถือ"
#. Translators: "Mobile" from "Mobile Broadband"
-#: js/ui/status/network.js:1949
+#: js/ui/status/network.js:1950
msgid "Mobile"
msgstr "มือถือ"
-#: js/ui/status/network.js:1983
+#: js/ui/status/network.js:1984
msgid "Sign Into Wi–Fi Network"
msgstr "ลงชื่อเข้าใช้เครือข่าย Wi-Fi"
-#: js/ui/status/network.js:2170
+#: js/ui/status/network.js:2171
msgid "Connection failed"
msgstr "เชื่อมต่อไม่สำเร็จ"
-#: js/ui/status/network.js:2171
+#: js/ui/status/network.js:2172
msgid "Activation of network connection failed"
msgstr "เปิดใช้การเชื่อมต่อไม่สำเร็จ"
@@ -2512,29 +2499,29 @@
msgid "Lock Screen"
msgstr "ล็อกหน้าจอ"
-#: js/ui/status/thunderbolt.js:308
+#: js/ui/status/thunderbolt.js:311
msgid "Unknown Thunderbolt device"
msgstr "ไม่รู้จักอุปกรณ์ Thunderbolt"
-#: js/ui/status/thunderbolt.js:309
+#: js/ui/status/thunderbolt.js:312
msgid ""
"New device has been detected while you were away. Please disconnect and reconnect the device to "
"start using it."
msgstr "ตรวจพบอุปกรณ์ใหม่ขณะที่คุณไม่อยู่ โปรดตัดการเชื่อมต่ออุปกรณ์แล้วเชื่อมต่อใหม่เพื่อเริ่มใช้งาน"
-#: js/ui/status/thunderbolt.js:312
+#: js/ui/status/thunderbolt.js:315
msgid "Unauthorized Thunderbolt device"
msgstr "ไม่ได้อนุญาตอุปกรณ์ Thunderbolt"
-#: js/ui/status/thunderbolt.js:313
+#: js/ui/status/thunderbolt.js:316
msgid "New device has been detected and needs to be authorized by an administrator"
msgstr "ตรวจพบอุปกรณ์ใหม่และจำเป็นต้องผ่านการอนุญาตจากผู้ดูแลระบบ"
-#: js/ui/status/thunderbolt.js:319
+#: js/ui/status/thunderbolt.js:322
msgid "Thunderbolt authorization error"
msgstr "การอนุญาต Thunderbolt ผิดพลาด"
-#: js/ui/status/thunderbolt.js:320
+#: js/ui/status/thunderbolt.js:323
#, javascript-format
msgid "Could not authorize the Thunderbolt device: %s"
msgstr "ไม่สามารถอนุญาตอุปกรณ์ Thunderbolt: %s"
@@ -2611,7 +2598,7 @@
#: js/ui/unlockDialog.js:585
msgid "Log in as another user"
-msgstr "เข้าสู่ระบบในนามผู้ใช้อื่น"
+msgstr "เข้าสู่ระบบในฐานะผู้ใช้อื่น"
#: js/ui/welcomeDialog.js:47
#, javascript-format
@@ -2625,7 +2612,7 @@
#: js/ui/welcomeDialog.js:52
msgid "If you want to learn your way around, check out the tour"
-msgstr "หากต้องการเรียนรู้วิธีใช้งาน โปรดดูทัวร์"
+msgstr "ถ้าต้องการเรียนรู้วิธีใช้งาน โปรดดูทัวร์"
#: js/ui/welcomeDialog.js:66
msgid "Take Tour"
@@ -2643,7 +2630,7 @@
#: js/ui/windowManager.js:78
msgid "Revert Settings"
-msgstr "คืนค่าเดิม"
+msgstr "คืนการตั้งค่าเดิม"
#: js/ui/windowManager.js:83
msgid "Keep Changes"
@@ -2738,11 +2725,11 @@
#: src/main.c:518
msgid "Mode used by GDM for login screen"
-msgstr "โหมดสำหรับให้ GDM เรียกใช้ในหน้าจอเข้าระบบ"
+msgstr "โหมดสำหรับให้ GDM เรียกใช้ในหน้าจอเข้าสู่ระบบ"
#: src/main.c:524
msgid "Use a specific mode, e.g. “gdm” for login screen"
-msgstr "ใช้โหมดเฉพาะ เช่น “gdm” สำหรับหน้าจอเข้าระบบ"
+msgstr "ใช้โหมดเฉพาะ เช่น “gdm” สำหรับหน้าจอเข้าสู่ระบบ"
#: src/main.c:530
msgid "List possible modes"
@@ -2760,7 +2747,7 @@
#: src/shell-app.c:518
#, c-format
msgid "Failed to launch “%s”"
-msgstr "เรียก “%s” ไม่สำเร็จ"
+msgstr "เรียกใช้งาน “%s” ไม่สำเร็จ"
#: src/shell-keyring-prompt.c:779
msgid "Passwords do not match"
@@ -2785,33 +2772,33 @@
#: subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in:6
msgid "Manage your GNOME Extensions"
-msgstr "จัดการส่วนขยายต่างๆ ของ GNOME ของคุณ"
+msgstr "จัดการส่วนขยายสำหรับ GNOME ของคุณ"
#. developer_name tag deprecated with Appstream 1.0
#: subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in:20
msgid "The GNOME Project"
-msgstr "The GNOME Project"
+msgstr "โครงการ GNOME"
#: subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in:52
msgid ""
"GNOME Extensions handles updating extensions, configuring extension preferences and removing or "
"disabling unwanted extensions."
msgstr ""
-"ส่วนขยายของ GNOME จัดการกับการอัปเดตส่วนขยาย การกำหนดค่าปรับแต่งส่วนขยายและการลบหรือปิดใช้งานส่วนขยายที่ไม่ต้องการ"
+"ส่วนขยายสำหรับ GNOME จัดการกับการอัปเดตส่วนขยาย การกำหนดค่าปรับแต่งส่วนขยายและการลบหรือปิดใช้งานส่วนขยายที่ไม่ต้องการ"
-#: subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in:71
+#: subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in:72
msgid "Main Window"
msgstr "หน้าต่างหลัก"
-#: subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in:75
+#: subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in:76
msgid "Available Updates"
-msgstr "อัปเดตที่มีอยู่"
+msgstr "รายการอัปเดตที่มีอยู่"
-#: subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in:79
+#: subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in:80
msgid "Search View"
msgstr "มุมมองค้นหา"
-#: subprojects/extensions-app/data/org.gnome.Extensions.desktop.in.in:7
+#: subprojects/extensions-app/data/org.gnome.Extensions.desktop.in.in:6
msgid "Configure GNOME Shell Extensions"
msgstr "กำหนดค่าส่วนขยายของ GNOME Shell"
@@ -2834,7 +2821,7 @@
"An error has occurred in this extension. This could cause issues elsewhere in the system. It is "
"recommended to turn the extension off until the error is resolved."
msgstr ""
-"มีข้อผิดพลาดเกิดขึ้นในส่วนขยายนี้ ข้อผิดพลาดนี้อาจทำให้เกิดปัญหาในจุดอื่นๆ ในระบบ "
+"มีข้อผิดพลาดเกิดขึ้นในส่วนขยายนี้ ข้อผิดพลาดนี้อาจทำให้เกิดปัญหาในจุดอื่น ๆ ในระบบ "
"ขอแนะนำให้ปิดส่วนขยายจนกว่าจะแก้ไขข้อผิดพลาดได้แล้ว"
#. translators: Details for an extension error
@@ -2854,7 +2841,7 @@
#: subprojects/extensions-app/js/extensionsWindow.js:114
msgid "If you remove the extension, you need to return to download it if you want to enable it again"
-msgstr "หากคุณลบส่วนขยายออก คุณจะต้องกลับไปดาวน์โหลดใหม่หากต้องการเปิดใช้อีกครั้ง"
+msgstr "ถ้าคุณลบส่วนขยายออก คุณจะต้องกลับไปดาวน์โหลดใหม่หากต้องการเปิดใช้อีกครั้ง"
#: subprojects/extensions-app/js/extensionsWindow.js:117
msgid "_Cancel"
@@ -3270,178 +3257,167 @@
#: subprojects/extensions-tool/src/command-prefs.c:47
#, c-format
msgid "Extension “%s” doesn't have preferences\n"
-msgstr ""
+msgstr "ส่วนขยาย “%s” ไม่มีค่าปรับแต่ง\n"
#: subprojects/extensions-tool/src/command-prefs.c:62
#, c-format
msgid "Failed to open prefs for extension “%s”: %s\n"
-msgstr ""
+msgstr "เปิดค่าปรับแต่งสำหรับส่วนขยาย “%s” ไม่สำเร็จ: %s\n"
#: subprojects/extensions-tool/src/command-prefs.c:87
-#, fuzzy
msgid "Opens extension preferences"
-msgstr "ปรับแต่งส่วนขยายของเชลล์ GNOME"
+msgstr "เปิดค่าปรับแต่งส่วนขยาย"
#: subprojects/extensions-tool/src/command-reset.c:58
msgid "Reset an extension"
-msgstr ""
+msgstr "ตั้งค่าส่วนขยายใหม่"
#: subprojects/extensions-tool/src/command-uninstall.c:49
msgid "Cannot uninstall system extensions\n"
-msgstr ""
+msgstr "ไม่สามารถถอนการติดตั้งส่วนขยายระบบได้\n"
#: subprojects/extensions-tool/src/command-uninstall.c:64
-#, fuzzy, c-format
+#, c-format
msgid "Failed to uninstall “%s”\n"
-msgstr "เลิกเมานท์ '%s' ไม่สำเร็จ"
+msgstr "ถอนการติดตั้ง “%s” ไม่สำเร็จ\n"
#: subprojects/extensions-tool/src/command-uninstall.c:86
msgid "Uninstall an extension"
-msgstr ""
+msgstr "ถอนการติดตั้งส่วนขยาย"
#: subprojects/extensions-tool/src/main.c:76
msgid "Do not print error messages"
-msgstr ""
+msgstr "ไม่ต้องพิมพ์ข้อความแสดงข้อผิดพลาด"
#: subprojects/extensions-tool/src/main.c:249
msgid "Path"
-msgstr ""
+msgstr "พาธ"
#: subprojects/extensions-tool/src/main.c:252
msgid "URL"
-msgstr ""
+msgstr "URL"
#: subprojects/extensions-tool/src/main.c:255
msgid "Original author"
-msgstr ""
+msgstr "ผู้จัดทำดั้งเดิม"
#: subprojects/extensions-tool/src/main.c:261 subprojects/extensions-tool/src/main.c:263
#: subprojects/extensions-tool/src/main.c:265
-#, fuzzy
msgid "Version"
-msgstr "ส่วนขยาย"
+msgstr "รุ่น"
#: subprojects/extensions-tool/src/main.c:268
msgid "Enabled"
-msgstr "เปิดใช้งาน"
+msgstr "เปิดใช้งานอยู่"
#: subprojects/extensions-tool/src/main.c:268
msgid "Yes"
-msgstr ""
+msgstr "ใช่"
#: subprojects/extensions-tool/src/main.c:268
msgid "No"
-msgstr ""
+msgstr "ไม่"
#: subprojects/extensions-tool/src/main.c:271
msgid "State"
-msgstr ""
+msgstr "สถานะ"
#: subprojects/extensions-tool/src/main.c:309
msgid "“version” takes no arguments"
-msgstr ""
+msgstr "“version” ไม่ได้ใช้อาร์กิวเมนต์ใด"
#: subprojects/extensions-tool/src/main.c:311 subprojects/extensions-tool/src/main.c:331
msgid "Usage:"
-msgstr ""
+msgstr "วิธีใช้:"
#: subprojects/extensions-tool/src/main.c:314
msgid "Print version information and exit."
-msgstr ""
+msgstr "พิมพ์ข้อมูลรุ่นแล้วออก"
#: subprojects/extensions-tool/src/main.c:329 subprojects/extensions-tool/src/main.c:332
msgid "COMMAND"
-msgstr ""
+msgstr "COMMAND"
#: subprojects/extensions-tool/src/main.c:332
msgid "[ARGS…]"
-msgstr ""
+msgstr "[ARGS…]"
#: subprojects/extensions-tool/src/main.c:334
msgid "Commands:"
-msgstr ""
+msgstr "คำสั่ง:"
#: subprojects/extensions-tool/src/main.c:335
-#, fuzzy
msgid "Print help"
-msgstr "แสดงเลขรุ่น"
+msgstr "พิมพ์วิธีใช้"
#: subprojects/extensions-tool/src/main.c:337
-#, fuzzy
msgid "Enable extension"
-msgstr "ส่วนขยาย"
+msgstr "เปิดใช้ส่วนขยาย"
#: subprojects/extensions-tool/src/main.c:338
-#, fuzzy
msgid "Disable extension"
-msgstr "ส่วนขยาย"
+msgstr "ปิดใช้ส่วนขยาย"
#: subprojects/extensions-tool/src/main.c:339
-#, fuzzy
msgid "Reset extension"
-msgstr "ส่วนขยาย"
+msgstr "ตั้งค่าส่วนขยายใหม่"
#: subprojects/extensions-tool/src/main.c:340
msgid "Uninstall extension"
-msgstr ""
+msgstr "ถอนการติดตั้งส่วนขยาย"
#: subprojects/extensions-tool/src/main.c:341
-#, fuzzy
msgid "List extensions"
-msgstr "ส่วนขยาย"
+msgstr "แสดงรายชื่อส่วนขยาย"
#: subprojects/extensions-tool/src/main.c:342 subprojects/extensions-tool/src/main.c:343
-#, fuzzy
msgid "Show extension info"
-msgstr "ไม่มีส่วนขยายติดตั้งอยู่"
+msgstr "แสดงข้อมูลส่วนขยาย"
#: subprojects/extensions-tool/src/main.c:344
-#, fuzzy
msgid "Open extension preferences"
-msgstr "ปรับแต่งส่วนขยายของเชลล์ GNOME"
+msgstr "เปิดค่าปรับแต่งส่วนขยาย"
#: subprojects/extensions-tool/src/main.c:345
-#, fuzzy
msgid "Create extension"
-msgstr "ส่วนขยาย"
+msgstr "สร้างส่วนขยาย"
#: subprojects/extensions-tool/src/main.c:346
-#, fuzzy
msgid "Package extension"
-msgstr "ส่วนขยาย"
+msgstr "ทำแพคเกจส่วนขยาย"
#: subprojects/extensions-tool/src/main.c:347
msgid "Install extension bundle"
-msgstr ""
+msgstr "ติดตั้งบันเดิลส่วนขยาย"
#: subprojects/extensions-tool/src/main.c:349
#, c-format
msgid "Use “%s” to get detailed help.\n"
-msgstr ""
+msgstr "ใช้คำสั่ง “%s” เพื่อดูวิธีใช้แบบละเอียด\n"
-#: subprojects/extensions-tool/src/templates/00-plain.desktop.in:4
+#: subprojects/extensions-tool/src/templates/00-plain.desktop.in:3
msgid "Plain"
-msgstr ""
+msgstr "ธรรมดา"
-#: subprojects/extensions-tool/src/templates/00-plain.desktop.in:5
+#: subprojects/extensions-tool/src/templates/00-plain.desktop.in:4
msgid "An empty extension"
-msgstr ""
+msgstr "ส่วนขยายว่างเปล่า"
-#: subprojects/extensions-tool/src/templates/indicator.desktop.in:4
+#: subprojects/extensions-tool/src/templates/indicator.desktop.in:3
msgid "Indicator"
-msgstr ""
+msgstr "ตัวชี้บอก"
-#: subprojects/extensions-tool/src/templates/indicator.desktop.in:5
+#: subprojects/extensions-tool/src/templates/indicator.desktop.in:4
msgid "Add an icon to the top bar"
-msgstr ""
+msgstr "เพิ่มไอคอนลงในแถบด้านบน"
-#: subprojects/extensions-tool/src/templates/quick-settings.desktop.in:4
+#: subprojects/extensions-tool/src/templates/quick-settings.desktop.in:3
msgid "Quick Settings Item"
-msgstr "รายการตั้งค่าด่วน"
+msgstr "รายการการตั้งค่าด่วน"
-#: subprojects/extensions-tool/src/templates/quick-settings.desktop.in:5
+#: subprojects/extensions-tool/src/templates/quick-settings.desktop.in:4
msgid "Add an item to quick settings"
-msgstr "เพิ่มรายการลงในส่วนตั้งค่าด่วน"
+msgstr "เพิ่มรายการลงในส่วนการตั้งค่าด่วน"
#. translators:
#. * The device has been disabled
@@ -3455,7 +3431,7 @@
#, c-format
msgid "%u Output"
msgid_plural "%u Outputs"
-msgstr[0] "ช่องเสียงออก %u ช่อง"
+msgstr[0] "เอาต์พุต %u ช่อง"
#. translators:
#. * The number of sound inputs on a particular device
@@ -3463,7 +3439,7 @@
#, c-format
msgid "%u Input"
msgid_plural "%u Inputs"
-msgstr[0] "ช่องเสียงเข้า %u ช่อง"
+msgstr[0] "อินพุต %u ช่อง"
#: subprojects/gvc/gvc-mixer-control.c:2872
msgid "System Sounds"
diff -Nru gnome-shell-48.4/po/ug.po gnome-shell-48.7/po/ug.po
--- gnome-shell-48.4/po/ug.po 2025-08-03 10:53:34.000000000 +0000
+++ gnome-shell-48.7/po/ug.po 2025-11-24 14:16:08.000000000 +0000
@@ -10,699 +10,1277 @@
msgid ""
msgstr ""
"Project-Id-Version: gnome-shell\n"
-"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell&keywords=I18N+L10N&component=general\n"
-"POT-Creation-Date: 2013-03-04 08:38+0000\n"
-"PO-Revision-Date: 2013-03-07 21:01+0900\n"
-"Last-Translator: Gheyret Kenji \n"
+"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell/issues/\n"
+"POT-Creation-Date: 2025-05-05 17:52+0000\n"
+"PO-Revision-Date: 2025-09-17 13:01-0400\n"
+"Last-Translator: Abduqadir Abliz \n"
"Language-Team: Uyghur Computer Science Association \n"
"Language: ug\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: Poedit 3.7\n"
-#: ../data/50-gnome-shell-screenshot.xml.in.h:1
+#: data/50-gnome-shell-launchers.xml:6
+msgid "Launchers"
+msgstr "قوزغاتقۇچ"
+
+#: data/50-gnome-shell-launchers.xml:10
+msgid "Activate pinned app 1"
+msgstr "مىخلانغان 1-ئەپنى ئاكتىپلايدۇ"
+
+#: data/50-gnome-shell-launchers.xml:14
+msgid "Activate pinned app 2"
+msgstr "مىخلانغان 2-ئەپنى ئاكتىپلايدۇ"
+
+#: data/50-gnome-shell-launchers.xml:18
+msgid "Activate pinned app 3"
+msgstr "مىخلانغان 3-ئەپنى ئاكتىپلايدۇ"
+
+#: data/50-gnome-shell-launchers.xml:22
+msgid "Activate pinned app 4"
+msgstr "مىخلانغان 4-ئەپنى ئاكتىپلايدۇ"
+
+#: data/50-gnome-shell-launchers.xml:26
+msgid "Activate pinned app 5"
+msgstr "مىخلانغان 5-ئەپنى ئاكتىپلايدۇ"
+
+#: data/50-gnome-shell-launchers.xml:30
+msgid "Activate pinned app 6"
+msgstr "مىخلانغان 6-ئەپنى ئاكتىپلايدۇ"
+
+#: data/50-gnome-shell-launchers.xml:34
+msgid "Activate pinned app 7"
+msgstr "مىخلانغان 7-ئەپنى ئاكتىپلايدۇ"
+
+#: data/50-gnome-shell-launchers.xml:38
+msgid "Activate pinned app 8"
+msgstr "مىخلانغان 8-ئەپنى ئاكتىپلايدۇ"
+
+#: data/50-gnome-shell-launchers.xml:42
+msgid "Activate pinned app 9"
+msgstr "مىخلانغان 9-ئەپنى ئاكتىپلايدۇ"
+
+#: data/50-gnome-shell-launchers.xml:46
+msgid "Open new window of pinned app 1"
+msgstr "مىخلانغان 1-ئەپنىڭ يېڭى كۆزنىكىنى ئاچىدۇ"
+
+#: data/50-gnome-shell-launchers.xml:50
+msgid "Open new window of pinned app 2"
+msgstr "مىخلانغان 2-ئەپنىڭ يېڭى كۆزنىكىنى ئاچىدۇ"
+
+#: data/50-gnome-shell-launchers.xml:54
+msgid "Open new window of pinned app 3"
+msgstr "مىخلانغان 3-ئەپنىڭ يېڭى كۆزنىكىنى ئاچىدۇ"
+
+#: data/50-gnome-shell-launchers.xml:58
+msgid "Open new window of pinned app 4"
+msgstr "مىخلانغان 4-ئەپنىڭ يېڭى كۆزنىكىنى ئاچىدۇ"
+
+#: data/50-gnome-shell-launchers.xml:62
+msgid "Open new window of pinned app 5"
+msgstr "مىخلانغان 5-ئەپنىڭ يېڭى كۆزنىكىنى ئاچىدۇ"
+
+#: data/50-gnome-shell-launchers.xml:66
+msgid "Open new window of pinned app 6"
+msgstr "مىخلانغان 6-ئەپنىڭ يېڭى كۆزنىكىنى ئاچىدۇ"
+
+#: data/50-gnome-shell-launchers.xml:70
+msgid "Open new window of pinned app 7"
+msgstr "مىخلانغان 7-ئەپنىڭ يېڭى كۆزنىكىنى ئاچىدۇ"
+
+#: data/50-gnome-shell-launchers.xml:74
+msgid "Open new window of pinned app 8"
+msgstr "مىخلانغان 8-ئەپنىڭ يېڭى كۆزنىكىنى ئاچىدۇ"
+
+#: data/50-gnome-shell-launchers.xml:78
+msgid "Open new window of pinned app 9"
+msgstr "مىخلانغان 9-ئەپنىڭ يېڭى كۆزنىكىنى ئاچىدۇ"
+
+#. Translators: name of the folder under ~/Pictures for screenshots.
+#: data/50-gnome-shell-screenshots.xml:6 js/ui/screenshot.js:2275
msgid "Screenshots"
msgstr "ئېكران كۆرۈنۈشى"
-#: ../data/50-gnome-shell-screenshot.xml.in.h:2
-msgid "Record a screencast"
-msgstr "ئېكراننى سۈرەتكە ئېلىش"
+#: data/50-gnome-shell-screenshots.xml:9 data/org.gnome.shell.gschema.xml.in:267
+msgid "Take a screenshot interactively"
+msgstr "تەسىرلىشىشچان ھالدا ئېكران كەسمىسىنى تۇتىدۇ"
+
+#: data/50-gnome-shell-screenshots.xml:12 data/org.gnome.shell.gschema.xml.in:279
+msgid "Take a screenshot"
+msgstr "ئېكران كەسمىسىنى تۇتىدۇ"
+
+#: data/50-gnome-shell-screenshots.xml:15 data/org.gnome.shell.gschema.xml.in:275
+msgid "Take a screenshot of a window"
+msgstr "كۆزنەكنىڭ ئېكران كەسمىسىنى تۇتىدۇ"
+
+#: data/50-gnome-shell-screenshots.xml:18 data/org.gnome.shell.gschema.xml.in:271
+msgid "Record a screencast interactively"
+msgstr "تەسىرلىشىشچان ھالدا ئېكران كەسمىسىنى سىنغا خاتىرىلەيدۇ"
-#: ../data/50-gnome-shell-system.xml.in.h:1
+#: data/50-gnome-shell-system.xml:6 data/X-GNOME-Shell-System.directory.desktop.in:3 js/ui/messageTray.js:1307
msgid "System"
msgstr "سىستېما"
-#: ../data/50-gnome-shell-system.xml.in.h:2
-msgid "Show the message tray"
-msgstr "ئۇچۇر قوندىقىنى كۆرسىتىش"
+#: data/50-gnome-shell-system.xml:9
+msgid "Show the notification list"
+msgstr "ئۇقتۇرۇش تىزىمىنى كۆرسىتىدۇ"
+
+#: data/50-gnome-shell-system.xml:12
+msgid "Open the quick settings menu"
+msgstr "تېز تەڭشەك تىزىملىكىنى ئاچىدۇ"
-#: ../data/50-gnome-shell-system.xml.in.h:3
+#: data/50-gnome-shell-system.xml:15
msgid "Focus the active notification"
-msgstr "ئاكتىپ ئۇقتۇرۇشقا فوكۇسلىنىش"
+msgstr "ئاكتىپ ئۇقتۇرۇشقا فوكۇسلىنىدۇ"
-#: ../data/50-gnome-shell-system.xml.in.h:4
-msgid "Show all applications"
-msgstr "بارلىق پروگراممىنى كۆرسىتىش"
+#: data/50-gnome-shell-system.xml:18
+msgid "Show the overview"
+msgstr "ئىخچام كۆرۈنۈشنى كۆرسەت"
-#: ../data/50-gnome-shell-system.xml.in.h:5
-msgid "Open the application menu"
-msgstr "پروگرامما تىزىملىكىنى كۆرسىتىش"
+#: data/50-gnome-shell-system.xml:21
+msgid "Show all apps"
+msgstr "ھەممە پىروگراممىنى كۆرسەت"
-#: ../data/gnome-shell.desktop.in.in.h:1
+#: data/org.gnome.Shell.desktop.in.in:4
msgid "GNOME Shell"
-msgstr "گىنوم Shell"
+msgstr "GNOME Shell"
-#: ../data/gnome-shell.desktop.in.in.h:2
+#: data/org.gnome.Shell.desktop.in.in:5
msgid "Window management and application launching"
-msgstr "كۆزنەك باشقۇرۇش ۋە پروگرامما ئىجرا قىلىش پروگراممىسى"
-
-#: ../data/gnome-shell-extension-prefs.desktop.in.in.h:1
-#: ../js/extensionPrefs/main.js:153
-msgid "GNOME Shell Extension Preferences"
-msgstr "گىنوم Shell كېڭەيتمىسىنىڭ مايىللىقى"
-
-#: ../data/gnome-shell-extension-prefs.desktop.in.in.h:2
-msgid "Configure GNOME Shell Extensions"
-msgstr "گىنوم Shell كېڭەيتمىسىنى سەپلەش"
+msgstr "كۆزنەك باشقۇرۇش ۋە پىروگرامما ئىجرا قىلىش پىروگراممىسى"
-#: ../data/org.gnome.shell.gschema.xml.in.in.h:1
+#: data/org.gnome.shell.gschema.xml.in:6
msgid "Enable internal tools useful for developers and testers from Alt-F2"
-msgstr "ئىچكى قورال قوزغىتىلسا ئىجادكارلار ۋە سىنىغۇچىلارنىڭ Alt-F2 ئارقىلىق كىرىشىگە قۇلايلىق"
+msgstr "ئىچكى قورال قوزغىتىلسا ئىجادكارلار ۋە سىنىغۇچىلارنىڭ Alt-F2 ئارقىلىق كىرىشىگە قولايلىق"
-#: ../data/org.gnome.shell.gschema.xml.in.in.h:2
-msgid ""
-"Allows access to internal debugging and monitoring tools using the Alt-F2 "
-"dialog."
+#: data/org.gnome.shell.gschema.xml.in:9
+msgid "Allows access to internal debugging and monitoring tools using the Alt-F2 dialog."
msgstr "ئىچكى سازلاش ۋە كۆزىتىش قورالىنى زىيارەت قىلىشتا Alt-F2 ئىشلىتىشكە ئىجازەت."
-#: ../data/org.gnome.shell.gschema.xml.in.in.h:3
-msgid "Uuids of extensions to enable"
-msgstr "ئىناۋەتلىك قىلىدىغان كېڭەيتىلمىنىڭ Uuids سى"
-
-#: ../data/org.gnome.shell.gschema.xml.in.in.h:4
-msgid ""
-"GNOME Shell extensions have a uuid property; this key lists extensions which "
-"should be loaded. Any extension that wants to be loaded needs to be in this "
-"list. You can also manipulate this list with the EnableExtension and "
-"DisableExtension DBus methods on org.gnome.Shell."
-msgstr "گىنوم Shell كېڭەيتىلمىسىنىڭ uuid خاسلىقى بولىدۇ. بۇ ئاچقۇچتا ئىناۋەتلىك قىلىنىدىغان كېڭەيتىلمىلەرنىڭ تىزىمى بار. ئوقۇلىدىغان كېڭەيتىلمىلەر چوقۇم مۇشۇ تىزىمدا بولۇشى كېرەك. بۇ تىزىمنى org.gnome.Shell دىكى DBus نىڭ EnableExtension ۋە DisableExtension دېگەن فۇنكسىيىلىرى(methods) ئارقىلىق باشقۇرغىلى بولىدۇ."
-
-#: ../data/org.gnome.shell.gschema.xml.in.in.h:5
-msgid "Whether to collect stats about applications usage"
-msgstr "پروگراممىنىڭ ئىشلىتىلىشى ھەققىدىكى ستاتىستىكىنى توپلامدۇ يوق"
-
-#: ../data/org.gnome.shell.gschema.xml.in.in.h:6
-msgid ""
-"The shell normally monitors active applications in order to present the most "
-"used ones (e.g. in launchers). While this data will be kept private, you may "
-"want to disable this for privacy reasons. Please note that doing so won't "
-"remove already saved data."
-msgstr "چاپان (shell) ئادەتتىكى ئەھۋالدا كۆپ ئىشلىتىلىدىغان ئاكتىپ پروگراممىلار(مەسىلەن، ئىجرا قىلىنىۋاتقان)نى كۆزىتىدۇ. گەرچە بۇ سانلىق مەلۇماتلار مەخپىي ساقلانسىمۇ، شەخسىي سىر سەۋەبىدىن بۇنى چەكلىشىڭىز مۇمكىن. دىققەت بۇنداق قىلغاندا ئاللىبۇرۇن ساقلانغان سانلىق مەلۇماتلار چىقىرىۋېتىلمەيدۇ."
+#: data/org.gnome.shell.gschema.xml.in:16
+msgid "UUIDs of extensions to enable"
+msgstr "ئىناۋەتلىك قىلىدىغان كېڭەيتىلمىنىڭ UUID سى"
+
+#: data/org.gnome.shell.gschema.xml.in:17
+msgid "GNOME Shell extensions have a UUID property; this key lists extensions which should be loaded. Any extension that wants to be loaded needs to be in this list. You can also manipulate this list with the EnableExtension and DisableExtension D-Bus methods on org.gnome.Shell."
+msgstr "GNOME Shell كېڭەيتىلمىسىنىڭ UUID خاسلىقى بولىدۇ. بۇ ئاچقۇچتا ئىناۋەتلىك قىلىنىدىغان كېڭەيتىلمىلەرنىڭ تىزىمى بار. ئوقۇلىدىغان كېڭەيتىلمىلەر چوقۇم مۇشۇ تىزىمدا بولۇشى كېرەك. بۇ تىزىمنى org.gnome.Shell دىكى D-Bus نىڭ EnableExtension ۋە DisableExtension دېگەن فۇنكسىيەلىرى (methods) ئارقىلىق باشقۇرغىلى بولىدۇ."
+
+#: data/org.gnome.shell.gschema.xml.in:26
+msgid "UUIDs of extensions to force disabling"
+msgstr "مەجبۇرىي چەكلىنىدىغان كېڭەيتىلمىنىڭ UUID سى"
+
+#: data/org.gnome.shell.gschema.xml.in:27
+msgid "GNOME Shell extensions have a UUID property; this key lists extensions which should be disabled, even if loaded as part of the current mode. You can also manipulate this list with the EnableExtension and DisableExtension D-Bus methods on org.gnome.Shell. This key takes precedence over the “enabled-extensions” setting."
+msgstr "GNOME Shell كېڭەيتىلمىسىنىڭ UUID خاسلىقى بولىدۇ. بۇ ئاچقۇچتا چەكلىنىدىغان كېڭەيتىلمىلەرنىڭ تىزىمى بار ھەتتا نۆۋەتتىكى ھالەتنىڭ بۆلىكى سۈپىتىدە يۈكلەنگەن تەقدىردىمۇ. ئوقۇلىدىغان كېڭەيتىلمىلەر چوقۇم مۇشۇ تىزىمدا بولۇشى كېرەك. بۇ تىزىمنى org.gnome.Shell دىكى D-Bus نىڭ EnableExtension ۋە DisableExtension دېگەن فۇنكسىيەلىرى (methods) ئارقىلىق باشقۇرغىلى بولىدۇ. بۇ ئاچقۇچ «enabled-extensions» تەڭشىكىنىڭ ئالدىدا تۇرىدۇ."
+
+#: data/org.gnome.shell.gschema.xml.in:37
+msgid "Disable user extensions"
+msgstr "ئىشلەتكۈچى كېڭەيتىلمىسىنى چەكلە"
+
+#: data/org.gnome.shell.gschema.xml.in:38
+msgid "Disable all extensions the user has enabled without affecting the “enabled-extension” setting."
+msgstr "«قوزغىتىلغان كېڭەيتىلمە» تەڭشىكىگە تەسىر كۆرسەتمىگەن ھالدا ئىشلەتكۈچى قوزغاتقان بارلىق كېڭەيتىلمىلەرنى چەكلەيدۇ."
+
+#: data/org.gnome.shell.gschema.xml.in:45
+msgid "Allow extension installation"
+msgstr "كېڭەيتىلمە ئورنىتىشقا يول قويىدۇ"
+
+#: data/org.gnome.shell.gschema.xml.in:46
+msgid "Allow users to install extensions in their home folder. If disabled, the InstallRemoteExtension D-Bus method will fail, and extensions are only loaded from system directories on startup. It does not affect extensions that are already loaded, so a change only takes full effect on the next login."
+msgstr "ئىشلەتكۈچىنىڭ باش قىسقۇچىغا كېڭەيتىلمە ئورنىتىشىغا يول قويىدۇ. ئەگەر چەكلەنسە، InstallRemoteExtension نىڭ D-Bus ئۇسۇلى مەغلۇپ بولىدۇ، قوزغىتىلغاندا كېڭەيتىلمىنى پەقەت سىستېما مۇندەرىجىسىدىن يۈكلىيەلەيدۇ. بۇ تاللانما يۈكلەنگەن كېڭەيتىلمىگە تەسىر كۆرسەتمەيدۇ شۇڭا ئۆزگىرىش كېيىنكى قېتىم تىزىمغا كىرگەندە ئاندىن تولۇق كۈچكە ئىگە بولىدۇ."
+
+#: data/org.gnome.shell.gschema.xml.in:56
+msgid "Disables the validation of extension version compatibility"
+msgstr "كېڭەيتىلمە نەشرىنىڭ ماسلىشىشچانلىقىنى دەلىللەشنى چەكلەيدۇ"
+
+#: data/org.gnome.shell.gschema.xml.in:57
+msgid "GNOME Shell will only load extensions that claim to support the current running version. Enabling this option will disable this check and try to load all extensions regardless of the versions they claim to support."
+msgstr "GNOME Shell پەقەت نۆۋەتتە ئىجرا قىلىنىۋاتقان نەشرىدە قوللايدىغانلىقى جاكارلانغان كېڭەيتىلمىنىلا يۈكلەيدۇ. بۇ تاللانما قوزغىتىلسا مەزكۇر تەكشۈرۈش چەكلىنىدۇ ۋە بارلىق كېڭەيتىلمىنى يۈكلەشنى سىنايدۇ، قوللايدىغانلىقى جاكارلانغان نەشرىگە پەرۋا قىلمايدۇ."
-#: ../data/org.gnome.shell.gschema.xml.in.in.h:7
+#: data/org.gnome.shell.gschema.xml.in:67
msgid "List of desktop file IDs for favorite applications"
-msgstr "ئامراق پروگراممىلارنىڭ ئۈستەلئۈستى ھۆججەت ID تىزىمى"
+msgstr "ئامراق پىروگراممىلارنىڭ ئۈستەلئۈستى ھۆججەت كىملىك تىزىمى"
-#: ../data/org.gnome.shell.gschema.xml.in.in.h:8
-msgid ""
-"The applications corresponding to these identifiers will be displayed in the "
-"favorites area."
-msgstr "مۇناسىپ پروگرامما بەلگىسى يىغقۇچ رايونىدا كۆرسىتىلىدۇ."
-
-#: ../data/org.gnome.shell.gschema.xml.in.in.h:9
-msgid "List of categories that should be displayed as folders"
-msgstr "قىسقۇچ سۈپىتىدە كۆرسىتىلىدىغان كاتېگورىيەلەرنىڭ تىزىمى"
-
-#: ../data/org.gnome.shell.gschema.xml.in.in.h:10
-msgid ""
-"Each category name in this list will be represented as folder in the "
-"application view, rather than being displayed inline in the main view."
-msgstr "پروگرامما كۆرۈنۈشىدە ھەر بىر كاتېگورىيە ئاتى قىسقۇچ سۈپىتىدە ئىپادىلىنىدۇ، ئاساسىي كۆرۈنۈشتە كۆرسىتىلمەيدۇ."
+#: data/org.gnome.shell.gschema.xml.in:68
+msgid "The applications corresponding to these identifiers will be displayed in the favorites area."
+msgstr "مۇناسىپ پىروگرامما بەلگىسى يىغقۇچ رايونىدا كۆرسىتىلىدۇ."
-#: ../data/org.gnome.shell.gschema.xml.in.in.h:11
+#: data/org.gnome.shell.gschema.xml.in:75
msgid "History for command (Alt-F2) dialog"
msgstr "بۇيرۇق (Alt-F2) سۆزلەشكۈنىڭ تارىخى"
-#: ../data/org.gnome.shell.gschema.xml.in.in.h:12
+#. Translators: looking glass is a debugger and inspector tool, see https://gitlab.gnome.org/GNOME/gnome-shell/-/blob/main/docs/looking-glass.md
+#: data/org.gnome.shell.gschema.xml.in:80
msgid "History for the looking glass dialog"
msgstr "looking glass سۆزلەشكۈنىڭ تارىخى"
-#: ../data/org.gnome.shell.gschema.xml.in.in.h:13
-msgid ""
-"Internally used to store the last IM presence explicitly set by the user. "
-"The value here is from the TpConnectionPresenceType enumeration."
-msgstr "ئىشلەتكۈچى تەرىپىدىن روشەن بەلگىلەنگەن ئەڭ يېڭى IM ھالىتى ساقلاش ئۈچۈن ئىچكى قىسىمدا ئىشلىتىلىدۇ. بۇ TpConnectionPresenceType نىڭ قىممىتى بولىدۇ."
-
-#: ../data/org.gnome.shell.gschema.xml.in.in.h:14
-msgid ""
-"Internally used to store the last session presence status for the user. The "
-"value here is from the GsmPresenceStatus enumeration."
-msgstr "ئىشلەتكۈچىنىڭ ئەڭ يېڭى ھالىتى ساقلاش ئۈچۈن ئىچكى قىسىمدا ئىشلىتىلىدۇ. بۇ GsmPresenceStatus نىڭ قىممىتى بولىدۇ."
-
-#: ../data/org.gnome.shell.gschema.xml.in.in.h:15
-msgid "Always show the 'Log out' menuitem in the user menu."
-msgstr "ئىشلەتكۈچى تىزىملىكىدە ھەمىشە ‹چىق› تىزىملىكىنى كۆرسىتىدۇ."
-
-#: ../data/org.gnome.shell.gschema.xml.in.in.h:16
-msgid ""
-"This key overrides the automatic hiding of the 'Log out' menuitem in single-"
-"user, single-session situations."
-msgstr "مەزكۇر ئاچقۇچ يەككە ئىشلەتكۈچى، يەككە ئەڭگىمە ھالىتىدە ‹چىق› دېگەن تىزىملىكنى قاپلىۋېتىدۇ."
-
-#: ../data/org.gnome.shell.gschema.xml.in.in.h:17
-msgid ""
-"Whether to remember password for mounting encrypted or remote filesystems"
-msgstr "شىفىرلانغان ياكى يىراقتىكى ھۆججەت سىستېمىسىنى ئېگەرلەشتە ئىمنى ئەستە تۇتسۇنمۇ"
-
-#: ../data/org.gnome.shell.gschema.xml.in.in.h:18
-msgid ""
-"The shell will request a password when an encrypted device or a remote "
-"filesystem is mounted. If the password can be saved for future use a "
-"'Remember Password' checkbox will be present. This key sets the default "
-"state of the checkbox."
-msgstr "شىفىرلانغان ياكى يىراقتىكى ھۆججەت سىستېمىسىنى ئېگەرلەيدىغان ۋاقىتتا مەزكۇر shell ئىم تەلەپ قىلىدۇ. ئەگەر ‹ئىمنى ئەستە تۇت› دېگىنى تاللانسا، كېيىنلىك ئۈچۈن ئىمنى ساقلاپ قويىدۇ. بۇ ئاچقۇچ checkbox نىڭ كۆڭۈلدىكى ھالىتىنى بەلگىلەيدۇ."
-
-#: ../data/org.gnome.shell.gschema.xml.in.in.h:19
-msgid "Show the week date in the calendar"
-msgstr "يىلنامىدە ھەپتىنى كۆرسەتسۇن"
-
-#: ../data/org.gnome.shell.gschema.xml.in.in.h:20
-msgid "If true, display the ISO week date in the calendar."
-msgstr "ئەگەر راست(true) بولسا يىلنامىدىكى ISO ھەپتە چېسلانى كۆرسىتىدۇ."
-
-#: ../data/org.gnome.shell.gschema.xml.in.in.h:21
-msgid "Keybinding to open the application menu"
-msgstr "پروگرامما تىزىملىكىنى ئاچىدىغان كۇنۇپكا بىرىكمىسى"
-
-#: ../data/org.gnome.shell.gschema.xml.in.in.h:22
-msgid "Keybinding to open the application menu."
-msgstr "پروگرامما تىزىملىكىنى ئاچىدىغان كۇنۇپكا بىرىكمىسى."
-
-#: ../data/org.gnome.shell.gschema.xml.in.in.h:23
-msgid "Keybinding to open the \"Show Applications\" view"
-msgstr "«پروگراممىلارنى كۆرسەت» كۆرۈنۈشىنى ئاچىدىغان كۇنۇپكا بىرىكمىسى"
-
-#: ../data/org.gnome.shell.gschema.xml.in.in.h:24
-msgid ""
-"Keybinding to open the \"Show Applications\" view of the Activities Overview."
-msgstr "پائالىيەتلەر كۆرۈنۈشىدە «پروگراممىلارنى كۆرسەت» كۆرۈنۈشىنى ئاچىدىغان كۇنۇپكا بىرىكمىسى."
-
-#: ../data/org.gnome.shell.gschema.xml.in.in.h:25
-msgid "Keybinding to toggle the visibility of the message tray"
-msgstr "ئۇچۇر قوندىقىنى كۆرسىتىش-كۆرسەتمەسلىكنى ئالماشتۇرىدىغان كۇنۇپكا بىرىكمىسى"
-
-#: ../data/org.gnome.shell.gschema.xml.in.in.h:26
-msgid "Keybinding to toggle the visibility of the message tray."
-msgstr "ئۇچۇر قوندىقىنى كۆرسىتىش-كۆرسەتمەسلىكنى ئالماشتۇرىدىغان كۇنۇپكا بىرىكمىسى."
+#: data/org.gnome.shell.gschema.xml.in:84
+msgid "Always show the “Log Out” action in the system menu"
+msgstr "سىستېما تىزىملىكىدە ھەمىشە «تىزىمدىن چىق» مەشغۇلاتىنى كۆرسىتىدۇ"
+
+#: data/org.gnome.shell.gschema.xml.in:85
+msgid "This key overrides the automatic hiding of the “Log out” action in the system menu for logged-in situations where there is a single, local, non-system user and only a single available session type (e.g. GNOME on Wayland)."
+msgstr "سىستېما تىزىملىكىدىكى «تىزىمدىن چىق» مەشغۇلاتى پەقەت يەككە، يەرلىك، غەيرى سىستېما ئىشلەتكۈچىسى ۋە پەقەت يەككە ئىشلىتىلىشچان ئەڭگىمە تۈرى بار (مەسىلەن GNOME on Wayland). تىزىمغا كىرىش ھالىتىدە ئۆزلۈكىدىن يوشۇرىدۇ، مەزكۇر تەڭشەك بۇ مەشغۇلاتنى قاپلايدۇ."
+
+#: data/org.gnome.shell.gschema.xml.in:94
+msgid "Whether to remember password for mounting encrypted or remote filesystems"
+msgstr "شىفىرلانغان ياكى يىراقتىكى ھۆججەت سىستېمىسىنى ئېگەرلەشتە ئىمنى ئەستە تۇتامدۇ يوق"
+
+#: data/org.gnome.shell.gschema.xml.in:95
+msgid "The shell will request a password when an encrypted device or a remote filesystem is mounted. If the password can be saved for future use a “Remember Password” checkbox will be present. This key sets the default state of the checkbox."
+msgstr "شىفىرلانغان ياكى يىراقتىكى ھۆججەت سىستېمىسىنى ئېگەرلەيدىغان ۋاقىتتا مەزكۇر shell ئىم تەلەپ قىلىدۇ. ئەگەر «ئىمنى ئەستە تۇت» تاللانسا، كېيىنلىك ئۈچۈن ئىمنى ساقلاپ قويىدۇ. بۇ ئاچقۇچ كۆپ تاللاش قۇتىسىنىڭ كۆڭۈلدىكى ھالىتىنى بەلگىلەيدۇ."
+
+#: data/org.gnome.shell.gschema.xml.in:104
+msgid "The last selected non-default power profile"
+msgstr "ئاخىرقى قېتىم تاللىغان غەيرى كۆڭۈلدىكى توك مەنبە سەپلىمە ھۆججىتى"
+
+#: data/org.gnome.shell.gschema.xml.in:105
+msgid "Some systems support more than two power profiles. In order to still support toggling between two profiles, this key records the last selected non-default profile."
+msgstr "بەزى سىستېما ئىككىدىن كۆپ توك مەنبە سەپلىمە ھۆججىتىنى قوللايدۇ. ئىككى سەپلىمە ھۆججەت ئارىسىدا ئالماشتۇرۇشنى قوللاش ئۈچۈن، بۇ ئاچقۇچ ئاخىرقى قېتىم تاللانغان غەيرى كۆڭۈلدىكى سەپلىمە ھۆججەتنى خاتىرىلەيدۇ."
+
+#: data/org.gnome.shell.gschema.xml.in:113
+msgid "The last version the “Welcome to GNOME” dialog was shown for"
+msgstr "ئالدىنقى قېتىم «GNOME غا خۇش كەپسىز» سۆزلەشكۈنى كۆرسەتكەندىكى ماس نەشرى"
+
+#: data/org.gnome.shell.gschema.xml.in:114
+msgid "This key determines for which version the “Welcome to GNOME” dialog was last shown. An empty string represents the oldest possible version, and a huge number will represent versions that do not exist yet. This huge number can be used to effectively disable the dialog."
+msgstr "بۇ ئاچقۇچ ئالدىنقى قېتىم «GNOME غا خۇش كەپسىز» سۆزلەشكۈنى كۆرسەتكەندىكى ماس نەشرىنى جەزملەيدۇ. ئەگەر ھەرپ تىزىقى بوش بولسا كۆڭۈلدىكى ئەھۋالدا ئەڭ كونا نەشرىگە ماس كېلىدۇ، ناھايىتى چوڭ سان تېخى مەۋجۇت بولمىغان نەشرىگە ۋەكىللىك قىلىدۇ. چوڭ سان بۇ سۆزلەشكۈنى چەكلەشكە ئىشلىتىلىدۇ."
+
+#: data/org.gnome.shell.gschema.xml.in:125
+msgid "Layout of the app picker"
+msgstr "ئەپ تاللىغۇچنىڭ جايلىشىشى"
+
+#: data/org.gnome.shell.gschema.xml.in:126
+msgid "Layout of the app picker. Each entry in the array is a page. Pages are stored in the order they appear in GNOME Shell. Each page contains an “application id” → 'data' pair. Currently, the following values are stored as 'data': • “position”: the position of the application icon in the page"
+msgstr "ئەپ تاللىغۇچنىڭ جايلىشىشى. سانلار قاتارىدىكى ھەر بىر تۈر بىر بەت. بەت GNOME Shell دە كۆرسىتىدىغان تەرتىپتە تىزىلىدۇ. ھەر بىر بەتتە «پىروگرامما كىملىكى» ← «سانلىق مەلۇمات» جۈپىنى ئۆز ئىچىگە ئالىدۇ. نۆۋەتتە، تۆۋەندىكى قىممەت «سانلىق مەلۇمات»:•«ئورۇن»: پىروگرامما سىنبەلگىسىنىڭ بەتتىكى ئورنى"
+
+#: data/org.gnome.shell.gschema.xml.in:145 data/org.gnome.shell.gschema.xml.in:152
+msgid "Keybinding to shift between overview states"
+msgstr "ئىخچام كۆرۈنۈش ھالىتى ئارىسىدا ئالماشتۇرىدىغان كۇنۇپكا بىرىكمىسى"
+
+#: data/org.gnome.shell.gschema.xml.in:146
+msgid "Keybinding to shift between session, window picker and app grid"
+msgstr "ئەڭگىمە، كۆزنەك تاللىغۇچ ۋە پىروگرامما تورى ئارىسىدا ئالماشتۇرىدىغان كۇنۇپكا بىرىكمىسى"
+
+#: data/org.gnome.shell.gschema.xml.in:153
+msgid "Keybinding to shift between app grid, window picker and session"
+msgstr "پىروگرامما تورى، كۆزنەك تاللىغۇچ ۋە ئەڭگىمە ئارىسىدا ئالماشتۇرىدىغان كۇنۇپكا بىرىكمىسى"
+
+#: data/org.gnome.shell.gschema.xml.in:159
+msgid "Keybinding to open the “Show Applications” view"
+msgstr "«پىروگراممىنى كۆرسەت» كۆرۈنۈشىنى ئاچىدىغان كۇنۇپكا بىرىكمىسى"
+
+#: data/org.gnome.shell.gschema.xml.in:160
+msgid "Keybinding to open the “Show Applications” view of the Activities Overview."
+msgstr "پائالىيەت ئىخچام كۆرۈنۈشىدە «پىروگراممىنى كۆرسەت» كۆرۈنۈشىنى ئاچىدىغان كۇنۇپكا بىرىكمىسى."
+
+#: data/org.gnome.shell.gschema.xml.in:167
+msgid "Keybinding to open the overview"
+msgstr "ئىخچام كۆرۈنۈشنى ئاچىدىغان كۇنۇپكا بىرىكمىسى"
+
+#: data/org.gnome.shell.gschema.xml.in:168
+msgid "Keybinding to open the Activities Overview."
+msgstr "پائالىيەت ئىخچام كۆرۈنۈشنى ئاچىدىغان كۇنۇپكا بىرىكمىسى."
+
+#: data/org.gnome.shell.gschema.xml.in:174
+msgid "Keybinding to toggle the visibility of the notification list"
+msgstr "ئۇقتۇرۇش تىزىمىنىڭ كۆرۈنۈشچانلىقىنى ئالماشتۇرىدىغان كۇنۇپكا بىرىكمىسى"
+
+#: data/org.gnome.shell.gschema.xml.in:175
+msgid "Keybinding to toggle the visibility of the notification list."
+msgstr "ئۇقتۇرۇش تىزىمىنىڭ كۆرۈنۈشچانلىقىنى ئالماشتۇرىدىغان كۇنۇپكا بىرىكمىسى."
+
+#: data/org.gnome.shell.gschema.xml.in:181
+msgid "Keybinding to toggle the quick settings menu"
+msgstr "تېز تەڭشەك تىزىملىكىنى ئالماشتۇرىدىغان كۇنۇپكا بىرىكمىسى"
+
+#: data/org.gnome.shell.gschema.xml.in:182
+msgid "Keybinding to toggle the quick settings menu."
+msgstr "تېز تەڭشەك تىزىملىكىنى ئالماشتۇرىدىغان كۇنۇپكا بىرىكمىسى."
-#: ../data/org.gnome.shell.gschema.xml.in.in.h:27
+#: data/org.gnome.shell.gschema.xml.in:188
msgid "Keybinding to focus the active notification"
msgstr "ئاكتىپ ئۇقتۇرۇشنى كۆرسىتىدىغان كۇنۇپكا بىرىكمىسى"
-#: ../data/org.gnome.shell.gschema.xml.in.in.h:28
+#: data/org.gnome.shell.gschema.xml.in:189
msgid "Keybinding to focus the active notification."
msgstr "ئاكتىپ ئۇقتۇرۇشنى كۆرسىتىدىغان كۇنۇپكا بىرىكمىسى."
-#: ../data/org.gnome.shell.gschema.xml.in.in.h:29
-msgid "Keybinding to toggle the screen recorder"
-msgstr "ئېكراننى سۈرەتكە ئالغۇنى باشلايدىغان/توختىتىدىغان كۇنۇپكا بىرىكمىسى"
-
-#: ../data/org.gnome.shell.gschema.xml.in.in.h:30
-msgid "Keybinding to start/stop the builtin screen recorder."
-msgstr "سىڭدۈرۈۋېتىلگەن ئېكراننى سۈرەتكە ئالغۇنى باشلايدىغان/توختىتىدىغان كۇنۇپكا بىرىكمىسى."
-
-#: ../data/org.gnome.shell.gschema.xml.in.in.h:31
-msgid "Which keyboard to use"
-msgstr "ئىشلەتمەكچى بولغان كۇنۇپكا تاختىسى"
-
-#: ../data/org.gnome.shell.gschema.xml.in.in.h:32
-msgid "The type of keyboard to use."
-msgstr "ئىشلەتمەكچى بولغان كۇنۇپكا تاختىسى."
-
-#: ../data/org.gnome.shell.gschema.xml.in.in.h:33
-msgid "Framerate used for recording screencasts."
-msgstr "ئېكران كۆرۈنۈشى (screencasts) خاتىرىلەشتە ئىشلىتىلىدىغان كاندۇك تېزلىكى."
+#: data/org.gnome.shell.gschema.xml.in:195
+msgid "Switch to application 1"
+msgstr "1-پىروگراممىغا ئالماشتۇرىدۇ"
+
+#: data/org.gnome.shell.gschema.xml.in:199
+msgid "Switch to application 2"
+msgstr "2-پىروگراممىغا ئالماشتۇرىدۇ"
+
+#: data/org.gnome.shell.gschema.xml.in:203
+msgid "Switch to application 3"
+msgstr "3-پىروگراممىغا ئالماشتۇرىدۇ"
+
+#: data/org.gnome.shell.gschema.xml.in:207
+msgid "Switch to application 4"
+msgstr "4-پىروگراممىغا ئالماشتۇرىدۇ"
+
+#: data/org.gnome.shell.gschema.xml.in:211
+msgid "Switch to application 5"
+msgstr "5-پىروگراممىغا ئالماشتۇرىدۇ"
+
+#: data/org.gnome.shell.gschema.xml.in:215
+msgid "Switch to application 6"
+msgstr "6-پىروگراممىغا ئالماشتۇرىدۇ"
+
+#: data/org.gnome.shell.gschema.xml.in:219
+msgid "Switch to application 7"
+msgstr "7-پىروگراممىغا ئالماشتۇرىدۇ"
+
+#: data/org.gnome.shell.gschema.xml.in:223
+msgid "Switch to application 8"
+msgstr "8-پىروگراممىغا ئالماشتۇرىدۇ"
+
+#: data/org.gnome.shell.gschema.xml.in:227
+msgid "Switch to application 9"
+msgstr "9-پىروگراممىغا ئالماشتۇرىدۇ"
+
+#: data/org.gnome.shell.gschema.xml.in:231
+msgid "Open a new instance of application 1"
+msgstr "1-پىروگراممىنىڭ يېڭى مىسالىنى ئاچىدۇ"
+
+#: data/org.gnome.shell.gschema.xml.in:235
+msgid "Open a new instance of application 2"
+msgstr "2-پىروگراممىنىڭ يېڭى مىسالىنى ئاچىدۇ"
+
+#: data/org.gnome.shell.gschema.xml.in:239
+msgid "Open a new instance of application 3"
+msgstr "3-پىروگراممىنىڭ يېڭى مىسالىنى ئاچىدۇ"
+
+#: data/org.gnome.shell.gschema.xml.in:243
+msgid "Open a new instance of application 4"
+msgstr "4-پىروگراممىنىڭ يېڭى مىسالىنى ئاچىدۇ"
+
+#: data/org.gnome.shell.gschema.xml.in:247
+msgid "Open a new instance of application 5"
+msgstr "5-پىروگراممىنىڭ يېڭى مىسالىنى ئاچىدۇ"
+
+#: data/org.gnome.shell.gschema.xml.in:251
+msgid "Open a new instance of application 6"
+msgstr "6-پىروگراممىنىڭ يېڭى مىسالىنى ئاچىدۇ"
+
+#: data/org.gnome.shell.gschema.xml.in:255
+msgid "Open a new instance of application 7"
+msgstr "7-پىروگراممىنىڭ يېڭى مىسالىنى ئاچىدۇ"
+
+#: data/org.gnome.shell.gschema.xml.in:259
+msgid "Open a new instance of application 8"
+msgstr "8-پىروگراممىنىڭ يېڭى مىسالىنى ئاچىدۇ"
+
+#: data/org.gnome.shell.gschema.xml.in:263
+msgid "Open a new instance of application 9"
+msgstr "9-پىروگراممىنىڭ يېڭى مىسالىنى ئاچىدۇ"
+
+#: data/org.gnome.shell.gschema.xml.in:288 data/org.gnome.shell.gschema.xml.in:315
+msgid "Limit switcher to current workspace."
+msgstr "پەقەت نۆۋەتتىكى خىزمەت رايونىدىلا ئالماشتۇرىدۇ."
+
+#: data/org.gnome.shell.gschema.xml.in:289
+msgid "If true, only applications that have windows on the current workspace are shown in the switcher. Otherwise, all applications are included."
+msgstr "ئەگەر true بولسا، ئالماشتۇرغۇچ پەقەت نۆۋەتتىكى خىزمەت بوشلۇقىدا كۆزنىكى بار پىروگراممىنىلا كۆرسىتىدۇ. ئۇنداق بولمىسا، ھەممە پىروگراممىنى ئۆز ئىچىگە ئالىدۇ."
-#: ../data/org.gnome.shell.gschema.xml.in.in.h:34
-msgid ""
-"The framerate of the resulting screencast recordered by GNOME Shell's "
-"screencast recorder in frames-per-second."
-msgstr "گىنوم Shell ئېكران خاتىرىلىگۈچ ھەر سېكۇنتتا خاتىرىلەيدىغان ئېكران كۆرۈنۈشى كاندۇك سۈرىتى(ھەر سېكۇنتتىكى كاندۇك سانى)."
-
-#: ../data/org.gnome.shell.gschema.xml.in.in.h:35
-msgid "The gstreamer pipeline used to encode the screencast"
-msgstr "ئېكران كۆرۈنۈشىنى كودلاشتا ئىشلىتىلىدىغان gstreamer ئاقما لىنىيىسى"
-
-#: ../data/org.gnome.shell.gschema.xml.in.in.h:37
-#, no-c-format
-msgid ""
-"Sets the GStreamer pipeline used to encode recordings. It follows the syntax "
-"used for gst-launch. The pipeline should have an unconnected sink pad where "
-"the recorded video is recorded. It will normally have a unconnected source "
-"pad; output from that pad will be written into the output file. However the "
-"pipeline can also take care of its own output - this might be used to send "
-"the output to an icecast server via shout2send or similar. When unset or set "
-"to an empty value, the default pipeline will be used. This is currently "
-"'vp8enc min_quantizer=13 max_quantizer=13 cpu-used=5 deadline=1000000 "
-"threads=%T ! queue ! webmmux' and records to WEBM using the VP8 codec. %T is "
-"used as a placeholder for a guess at the optimal thread count on the system."
-msgstr ""
-
-#: ../data/org.gnome.shell.gschema.xml.in.in.h:38
-msgid "File extension used for storing the screencast"
-msgstr "ئېكران كۆرۈنۈشى (screencasts) ساقلاشتا ئىشلىتىلىدىغان ھۆججەتنىڭ كېڭەيتىلگەن ئاتى"
-
-#: ../data/org.gnome.shell.gschema.xml.in.in.h:39
-msgid ""
-"The filename for recorded screencasts will be a unique filename based on the "
-"current date, and use this extension. It should be changed when recording to "
-"a different container format."
-msgstr "خاتىرىلەنگەن ئېكراننىڭ ھۆججەت ئاتى نۆۋەتتىكى چېسلا ئاساسىدا بىردىنبىر بولۇپ بۇ كېڭەيتىلگەن ئاتىنى ئىشلىتىدۇ. ئۇ ئۆزگەرسە ئوخشاش بولمىغان قاچا فورماتىدا خاتىرىلەيدۇ."
-
-#: ../data/org.gnome.shell.gschema.xml.in.in.h:40
+#: data/org.gnome.shell.gschema.xml.in:306
msgid "The application icon mode."
-msgstr "پروگرامما سىنبەلگە ھالىتى."
+msgstr "پىروگرامما سىنبەلگە ھالىتى."
-#: ../data/org.gnome.shell.gschema.xml.in.in.h:41
-msgid ""
-"Configures how the windows are shown in the switcher. Valid possibilities "
-"are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-"
-"only' (shows only the application icon) or 'both'."
-msgstr "ئالماشتۇرغۇچتا پروگراممىلارنىڭ قانداق كۆرسىتىلىدىغانلىقىنى سەپلەيدۇ. قىممەتلەر: ‹thumbnail-only›(پەقەت كۆزنەكنىڭ كىچىك سۈرىتىنىلا كۆرسىتىدۇ)،‹app-icon-only›(پروگراممىنىڭ سىنبەلگىسىنىلا كۆرسىتىدۇ) ۋە ‹ئىككىلىسى›"
-
-#: ../data/org.gnome.shell.gschema.xml.in.in.h:42
-msgid "Attach modal dialog to the parent window"
-msgstr "ئاتا كۆزنەككە modal سۆزلەشكۈنى قات"
-
-#: ../data/org.gnome.shell.gschema.xml.in.in.h:43
-msgid ""
-"This key overrides the key in org.gnome.mutter when running GNOME Shell."
-msgstr "گىنوم Shell ئىجرا بولۇۋاتقاندا مەزكۇر ئاچقۇچ org.gnome.mutter نىڭ ئىچىدىكى ئاچقۇچنى قاپلىۋېتىدۇ."
-
-#: ../data/org.gnome.shell.gschema.xml.in.in.h:44
-msgid "Arrangement of buttons on the titlebar"
-msgstr "ماۋزۇ بالدىقىدىكى توپچىلارنىڭ ئورۇنلاشتۇرۇلۇشى"
-
-#: ../data/org.gnome.shell.gschema.xml.in.in.h:45
-msgid ""
-"This key overrides the key in org.gnome.desktop.wm.preferences when running "
-"GNOME Shell."
-msgstr "گىنوم Shell ئىجرا بولۇۋاتقاندا مەزكۇر ئاچقۇچ org.gnome.desktop.wm.preferences نىڭ ئىچىدىكى ئاچقۇچنى قاپلىۋېتىدۇ."
-
-#: ../data/org.gnome.shell.gschema.xml.in.in.h:46
-msgid "Enable edge tiling when dropping windows on screen edges"
-msgstr ""
+#: data/org.gnome.shell.gschema.xml.in:307
+msgid "Configures how the windows are shown in the switcher. Valid possibilities are “thumbnail-only” (shows a thumbnail of the window), “app-icon-only” (shows only the application icon) or “both”."
+msgstr "ئالماشتۇرغۇچتا پىروگراممىنىڭ قانداق كۆرسىتىلىدىغانلىقىنى سەپلەيدۇ. ئىناۋەتلىك قىممەت: «thumbnail-only» (پەقەت كۆزنەكنىڭ كىچىك سۈرىتىنىلا كۆرسىتىدۇ)، «app-icon-only» (پىروگراممىنىڭ سىنبەلگىسىنىلا كۆرسىتىدۇ) ياكى «ئىككىلىسى»."
+
+#: data/org.gnome.shell.gschema.xml.in:316
+msgid "If true, only windows from the current workspace are shown in the switcher. Otherwise, all windows are included."
+msgstr "ئەگەر true بولسا، ئالماشتۇرغۇچ پەقەت نۆۋەتتىكى خىزمەت بوشلۇقىدىكى كۆزنەكنىلا كۆرسىتىدۇ. ئۇنداق بولمىسا، ھەممە كۆزنەكنى ئۆز ئىچىگە ئالىدۇ."
+
+#: data/org.gnome.shell.gschema.xml.in:326
+msgid "Locations"
+msgstr "ئورنى"
+
+#: data/org.gnome.shell.gschema.xml.in:327
+msgid "The locations to show in world clocks"
+msgstr "دۇنيا سائىتىدە كۆرۈنىدىغان ئورنى"
+
+#: data/org.gnome.shell.gschema.xml.in:337
+msgid "Automatic location"
+msgstr "ئاپتوماتىك ئورنى"
+
+#: data/org.gnome.shell.gschema.xml.in:338
+msgid "Whether to fetch the current location or not"
+msgstr "نۆۋەتتىكى ئورۇن ئۇچۇرىغا ئېرىشەمدۇ يوق"
+
+#: data/org.gnome.shell.gschema.xml.in:345
+msgid "Location"
+msgstr "ئورنى"
+
+#: data/org.gnome.shell.gschema.xml.in:346
+msgid "The location for which to show a forecast"
+msgstr "ھاۋا رايى مەلۇماتىنى كۆرسىتىدىغان ئورۇن"
+
+#. Keep in sync with subprojects/extensions-app
+#: data/org.gnome.Shell.Extensions.desktop.in.in:5 subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in:5 subprojects/extensions-app/data/org.gnome.Extensions.desktop.in.in:4 subprojects/extensions-app/data/ui/extensions-window.ui:57
+msgid "Extensions"
+msgstr "كېڭەيتىلمە"
-#: ../data/org.gnome.shell.gschema.xml.in.in.h:47
-msgid "Workspaces are managed dynamically"
-msgstr "خىزمەت رايونلىرى جانلىق باشقۇرۇلسۇن"
+#: data/org.gnome.Shell.PortalHelper.desktop.in.in:3
+msgid "Network Login"
+msgstr "توردىن تىزىمغا كىرىش"
+
+#: data/X-GNOME-Shell-Utilities.directory.desktop.in:3
+msgid "Utilities"
+msgstr "قورال"
+
+#: js/dbusServices/extensions/ui/extension-error-page.ui:15 subprojects/extensions-app/data/ui/extensions-window.ui:275
+msgid "Something’s gone wrong"
+msgstr "چاتاق چىقتى"
+
+#: js/dbusServices/extensions/ui/extension-error-page.ui:23
+msgid "We’re very sorry, but there’s been a problem: the settings for this extension can’t be displayed. We recommend that you report the issue to the extension authors."
+msgstr "كەچۈرۈڭ، مەسىلە كۆرۈلدى: بۇ كېڭەيتىلمىنىڭ تەڭشىكىنى كۆرسىتەلمەيدۇ. مەسىلىنى كېڭەيتىلمە يازغۇچىغا مەلۇم قىلىشىڭىزنى تەۋسىيە قىلىمىز."
+
+#: js/dbusServices/extensions/ui/extension-error-page.ui:48
+msgid "Technical Details"
+msgstr "تېخنىكىلىق تەپسىلات"
+
+#: js/dbusServices/extensions/ui/extension-error-page.ui:90
+msgid "Homepage"
+msgstr "باش بەت"
+
+#: js/dbusServices/extensions/ui/extension-error-page.ui:91
+msgid "Visit extension homepage"
+msgstr "كېڭەيتىلمە باش بېتىنى زىيارەت قىلىدۇ"
-#: ../data/org.gnome.shell.gschema.xml.in.in.h:48
-msgid "Workspaces only on primary monitor"
-msgstr "ئاساسىي كۆزەتكۈچتىكى خىزمەت رايونلىرىلا"
+#: js/gdm/authPrompt.js:155 js/gdm/loginDialog.js:468 js/ui/audioDeviceSelection.js:60 js/ui/components/networkAgent.js:114 js/ui/components/polkitAgent.js:144 js/ui/endSessionDialog.js:437 js/ui/extensionDownloader.js:276 js/ui/shellMountOperation.js:382 js/ui/shellMountOperation.js:392
+msgid "Cancel"
+msgstr "ۋاز كەچ"
-#: ../js/extensionPrefs/main.js:125
-#, c-format
-msgid "There was an error loading the preferences dialog for %s:"
-msgstr "%s نىڭ خاسلىق سۆزلەشكۈسىنى ئوقۇشتا خاتالىق كۆرۈلدى:"
+#: js/gdm/authPrompt.js:323 js/ui/components/networkAgent.js:214 js/ui/components/networkAgent.js:234 js/ui/components/networkAgent.js:266 js/ui/components/networkAgent.js:299 js/ui/components/networkAgent.js:338 js/ui/components/networkAgent.js:351 js/ui/components/polkitAgent.js:286 js/ui/shellMountOperation.js:332
+msgid "Password"
+msgstr "ئىم"
-#: ../js/extensionPrefs/main.js:165
-msgid "Extension"
-msgstr "كېڭەيتىلمە"
+#: js/gdm/loginDialog.js:328
+msgid "Choose Session"
+msgstr "ئەڭگىمە تاللىنىدۇ"
+
+#. Translators: is running for
+#: js/gdm/loginDialog.js:426
+#, javascript-format
+msgid "Remote login is not possible because a remote session is already running for %s. To login remotely, you must log out from the remote session or force stop it."
+msgstr "يىراقتىن تىزىمغا كىرىشنى ئىشلەتكىلى بولمايدۇ چۈنكى %s ئۈچۈن يىراقتىكى ئەڭگىمە ئىجرا قىلىنىۋاتىدۇ. يىراقتىن تىزىمغا كىرىشتە، چوقۇم يىراقتىكى ئەڭگىمەدىن تىزىمدىن چىقىڭ ياكى ئۇنى مەجبۇرىي توختىتىڭ."
+
+#. Translators: is running for
+#: js/gdm/loginDialog.js:429
+#, javascript-format
+msgid "Login is not possible because a remote session is already running for %s. To login, you must log out from the remote session or force stop it."
+msgstr "تىزىمغا كىرىشنى ئىشلەتكىلى بولمايدۇ چۈنكى %s ئۈچۈن يىراقتىكى ئەڭگىمە ئىجرا قىلىنىۋاتىدۇ. تىزىمغا كىرىشتە، چوقۇم يىراقتىكى ئەڭگىمەدىن تىزىمدىن چىقىڭ ياكى ئۇنى مەجبۇرىي توختىتىڭ."
+
+#. Translators: is running for
+#: js/gdm/loginDialog.js:432
+#, javascript-format
+msgid "Remote login is not possible because a local session is already running for %s. To login remotely, you must log out from the local session or force stop it."
+msgstr "يىراقتىن تىزىمغا كىرىشنى ئىشلەتكىلى بولمايدۇ چۈنكى %s ئۈچۈن يەرلىك ئەڭگىمە ئىجرا قىلىنىۋاتىدۇ. يىراقتىن تىزىمغا كىرىشتە، چوقۇم يەرلىك ئەڭگىمەدىن تىزىمدىن چىقىڭ ياكى ئۇنى مەجبۇرىي توختىتىڭ."
+
+#. Translators: is running for
+#: js/gdm/loginDialog.js:435
+#, javascript-format
+msgid "Login is not possible because a session is already running for %s. To login, you must log out from the session or force stop it."
+msgstr "تىزىمغا كىرىشنى ئىشلەتكىلى بولمايدۇ چۈنكى %s ئۈچۈن ئەڭگىمە ئىجرا قىلىنىۋاتىدۇ. تىزىمغا كىرىشتە، چوقۇم ئەڭگىمەدىن تىزىمدىن چىقىڭ ياكى ئۇنى مەجبۇرىي توختىتىڭ."
+
+#: js/gdm/loginDialog.js:444
+msgid "Session Already Running"
+msgstr "ئەڭگىمە ئىجرا قىلىنىۋاتىدۇ"
+
+#: js/gdm/loginDialog.js:456
+msgid "Force stopping will quit any running apps and processes, and could result in data loss"
+msgstr "مەجبۇرىي توختىتىش ئىجرا قىلىنىۋاتقان ھەر قانداق پىروگرامما ۋە جەرياننى چېكىندۈرىدۇ ۋە سانلىق مەلۇمات يوقىلىشىنى كەلتۈرۈپ چىقىرىشى مۇمكىن"
+
+#: js/gdm/loginDialog.js:476
+msgid "Force Stop"
+msgstr "مەجبۇرىي توختات"
-#: ../js/extensionPrefs/main.js:189
-msgid "Select an extension to configure using the combobox above."
-msgstr "يۇقىرىدىكى combobox دىن سەپلەيدىغان كېڭەيتىلمىنى تاللاڭ."
-
-#: ../js/gdm/loginDialog.js:405
-msgid "Session…"
-msgstr "ئەڭگىمە…"
-
-#. translators: this message is shown below the user list on the
-#. login screen. It can be activated to reveal an entry for
-#. manually entering the username.
-#: ../js/gdm/loginDialog.js:629
+#: js/gdm/loginDialog.js:554
msgid "Not listed?"
msgstr "تىزىمدا يوقمۇ؟"
-#: ../js/gdm/loginDialog.js:783 ../js/ui/components/networkAgent.js:137
-#: ../js/ui/components/polkitAgent.js:162 ../js/ui/endSessionDialog.js:375
-#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
-#: ../js/ui/status/bluetooth.js:415 ../js/ui/unlockDialog.js:126
-#: ../js/ui/userMenu.js:934
-msgid "Cancel"
-msgstr "ئەمەلدىن قالدۇر"
-
-#: ../js/gdm/loginDialog.js:799
-msgctxt "button"
-msgid "Sign In"
-msgstr "كىر"
+#. Translators: this message is shown below the username entry field
+#. to clue the user in on how to login to the local network realm
+#: js/gdm/loginDialog.js:1075
+#, javascript-format
+msgid "(e.g., user or %s)"
+msgstr "(مەسىلەن، ئىشلەتكۈچى ياكى %s)"
-#: ../js/gdm/loginDialog.js:799
-msgid "Next"
-msgstr "كېيىنكى"
-
-#. TTLS and PEAP are actually much more complicated, but this complication
-#. is not visible here since we only care about phase2 authentication
-#. (and don't even care of which one)
-#: ../js/gdm/loginDialog.js:904 ../js/ui/components/networkAgent.js:260
-#: ../js/ui/components/networkAgent.js:278
-msgid "Username: "
-msgstr "ئىشلەتكۈچى ئاتى: "
+#: js/gdm/loginDialog.js:1080 js/ui/components/networkAgent.js:258 js/ui/components/networkAgent.js:293 js/ui/components/networkAgent.js:327
+msgid "Username"
+msgstr "ئىشلەتكۈچى ئاتى"
+
+#: js/gdm/loginDialog.js:1146
+msgid "Login Attempt Timed Out"
+msgstr "تىزىمغا كىرىش ۋاقتى توشتى"
+
+#: js/gdm/loginDialog.js:1147
+msgid "Login took too long, please try again"
+msgstr "تىزىمغا كىرىشكە بەك ئۇزۇن ۋاقىت كەتتى، قايتا سىناڭ"
-#: ../js/gdm/loginDialog.js:1157
+#: js/gdm/loginDialog.js:1496
msgid "Login Window"
msgstr "كىرىش كۆزنىكى"
-#. Translators: accessible name of the power menu in the login screen
-#: ../js/gdm/powerMenu.js:36
-msgid "Power"
-msgstr "توك مەنبە"
+#: js/gdm/util.js:498
+msgid "Authentication error"
+msgstr "كىملىك دەلىللەش خاتالىقى"
-#: ../js/gdm/powerMenu.js:93 ../js/ui/userMenu.js:695 ../js/ui/userMenu.js:699
-#: ../js/ui/userMenu.js:815
-msgid "Suspend"
-msgstr "توڭلات"
+#. Translators: this message is shown below the password entry field
+#. to indicate the user can swipe their finger on the fingerprint reader
+#: js/gdm/util.js:729
+msgid "(or swipe finger across reader)"
+msgstr "(ياكى بارمىقىڭىزنى ئوقۇغۇچقا سىيرىڭ)"
-#: ../js/gdm/powerMenu.js:98
+#. Translators: this message is shown below the password entry field
+#. to indicate the user can place their finger on the fingerprint reader instead
+#: js/gdm/util.js:734
+msgid "(or place finger on reader)"
+msgstr "(ياكى بارمىقىڭىزنى ئوقۇغۇچقا قويۇڭ)"
+
+#: js/misc/breakManager.js:770
+msgid "Break complete sound"
+msgstr "دەم ئېلىش تامام ئاۋازى"
+
+#: js/misc/breakManager.js:980
+#, javascript-format
+msgid "%d second"
+msgid_plural "%d seconds"
+msgstr[0] "%d سېكۇنت"
+
+#: js/misc/breakManager.js:986
+#, javascript-format
+msgid "%d minute"
+msgid_plural "%d minutes"
+msgstr[0] "%d مىنۇت"
+
+#: js/misc/breakManager.js:992
+#, javascript-format
+msgid "%d hour"
+msgid_plural "%d hours"
+msgstr[0] "%d سائەت"
+
+#: js/misc/breakManager.js:998
+#, javascript-format
+msgid "%d day"
+msgid_plural "%d days"
+msgstr[0] "%d كۈن"
+
+#. %s will be replaced with a string that describes a time interval, such as “2 minutes”, “40 seconds” or “1 hour”
+#: js/misc/breakManager.js:1081
+#, javascript-format
+msgid "It will be time for a break in %s"
+msgid_plural "It will be time for a break in %s"
+msgstr[0] "دەم ئېلىشقا %s قالدى"
+
+#: js/misc/breakManager.js:1089
+msgid "Movement Break Soon"
+msgstr "ھەرىكەت پات يېقىندا ئارام ئالىدۇ"
+
+#: js/misc/breakManager.js:1092
+msgid "Eyesight Break Soon"
+msgstr "كۆز پات يېقىندا ئارام ئالىدۇ"
+
+#: js/misc/breakManager.js:1095
+msgid "Break Soon"
+msgstr "پات يېقىندا ئارام ئالىدۇ"
+
+#: js/misc/breakManager.js:1140
+msgid "Movement Break in Progress"
+msgstr "ھەرىكەتلىنىپ ئارام ئېلىۋاتىدۇ"
+
+#. %s will be replaced with a string that describes a time interval, such as “2 minutes”, “40 seconds” or “1 hour”
+#: js/misc/breakManager.js:1143
+#, javascript-format
+msgid "Continue moving around for %s"
+msgid_plural "Continue moving around for %s"
+msgstr[0] "ئەتراپتىكى ھەرىكەتنى %s داۋاملاشتۇرىدۇ"
+
+#: js/misc/breakManager.js:1149
+msgid "Eyesight Break in Progress"
+msgstr "كۆزنى ئارام ئالدۇرۇۋاتىدۇ"
+
+#. %s will be replaced with a string that describes a time interval, such as “2 minutes”, “40 seconds” or “1 hour”
+#: js/misc/breakManager.js:1152
+#, javascript-format
+msgid "Continue looking away for %s"
+msgid_plural "Continue looking away for %s"
+msgstr[0] "كۆزنى %s ئارام ئالدۇرىدۇ"
+
+#: js/misc/breakManager.js:1158
+msgid "Break in Progress"
+msgstr "ئارام ئېلىۋاتىدۇ"
+
+#. %s will be replaced with a string that describes a time interval, such as “2 minutes”, “40 seconds” or “1 hour”
+#: js/misc/breakManager.js:1161
+#, javascript-format
+msgid "%s left in your break"
+msgid_plural "%s left in your break"
+msgstr[0] "ئارام ئېلىش %s قالدى"
+
+#: js/misc/breakManager.js:1200
+msgid "Time for a Movement Break"
+msgstr "ھەرىكەتلىنىپ ئارام ئېلىش ۋاقتى"
+
+#. %s will be replaced with a string that describes a time interval, such as “2 minutes”, “40 seconds” or “1 hour”
+#: js/misc/breakManager.js:1203
+#, javascript-format
+msgid "Take a break from the device and move around for %s"
+msgid_plural "Take a break from the device and move around for %s"
+msgstr[0] "ئۈسكۈنىدىن ئايرىلىپ ئارام ئېلىپ ئەتراپتا %s ھەرىكەتلىنىڭ"
+
+#: js/misc/breakManager.js:1209
+msgid "Time for an Eyesight Break"
+msgstr "كۆزنى ئارام ئالدۇرۇش ۋاقتى"
+
+#. %s will be replaced with a string that describes a time interval, such as “2 minutes”, “40 seconds” or “1 hour”
+#: js/misc/breakManager.js:1212
+#, javascript-format
+msgid "Take a break from the screen. Look at least 6 meters away for at least %s"
+msgid_plural "Take a break from the screen. Look at least 6 meters away for at least %s"
+msgstr[0] "ئېكراندىن ئايرىلىپ ئارام ئېلىڭ. ھېچ بولمىغاندا 6 مېتىر يىراقلىققا كەم دېگەندە %s قاراڭ"
+
+#: js/misc/breakManager.js:1218
+msgid "Time for a Break"
+msgstr "ئارام ئېلىش ۋاقتى بولدى"
+
+#. %s will be replaced with a string that describes a time interval, such as “2 minutes”, “40 seconds” or “1 hour”
+#: js/misc/breakManager.js:1221
+#, javascript-format
+msgid "It’s time to take a break. Get away from the device for %s!"
+msgid_plural "It’s time to take a break. Get away from the device for %s!"
+msgstr[0] "ئارام ئېلىش ۋاقتى بولدى. ئۈسكۈنىدىن %s ئايرىلىڭ!"
+
+#. %s will be replaced with a string that describes a time interval, such as “2 minutes”, “40 seconds” or “1 hour”
+#: js/misc/breakManager.js:1245
+#, javascript-format
+msgid "You were due to take a break %s ago"
+msgid_plural "You were due to take a break %s ago"
+msgstr[0] "سىز %s ئىلگىرى ئارام ئېلىشىڭىز كېرەك ئىدى"
+
+#: js/misc/breakManager.js:1251
+msgid "Break Overdue"
+msgstr "ئارام ئېلىش ۋاقتى ئۆتۈپ كەتتى"
+
+#. %s will be replaced with a string that describes a time interval, such as “2 minutes”, “40 seconds” or “1 hour”
+#: js/misc/breakManager.js:1267
+#, javascript-format
+msgid "There is %s remaining in your break"
+msgid_plural "There are %s remaining in your break"
+msgstr[0] "ئارام ئېلىش ۋاقتىڭىزدىن %s قالدى"
+
+#: js/misc/breakManager.js:1273
+msgid "Break Interrupted"
+msgstr "ئارام ئېلىش توختىتىلدى"
+
+#: js/misc/breakManager.js:1350
+msgid "Delay"
+msgstr "كېچىكتۈر"
+
+#: js/misc/breakManager.js:1371 js/ui/welcomeDialog.js:61
+msgid "Skip"
+msgstr "ئۆتكۈزۈۋەت"
+
+#: js/misc/breakManager.js:1392
+msgid "Take"
+msgstr "ئارام ئال"
+
+#. Translators: This is a notification to warn the user that a
+#. screen time break will start shortly.
+#: js/misc/breakManager.js:1455
+#, javascript-format
+msgid "Break in %d second"
+msgid_plural "Break in %d seconds"
+msgstr[0] "%d تىن كېيىن ئارام ئالىدۇ"
+
+#. Translators: The name of the power-off action in search
+#: js/misc/systemActions.js:91
+msgctxt "search-result"
+msgid "Power Off"
+msgstr "توكنى ئۈز"
+
+#. Translators: A list of keywords that match the power-off action, separated by semicolons
+#: js/misc/systemActions.js:94
+msgid "power off;poweroff;shutdown;halt;stop"
+msgstr "power off;poweroff;shutdown;halt;stop؛توكنى ئۈز؛ئۇخلات؛توختا"
+
+#. Translators: The name of the restart action in search
+#: js/misc/systemActions.js:99
+msgctxt "search-result"
msgid "Restart"
msgstr "قايتا قوزغات"
-#: ../js/gdm/powerMenu.js:103 ../js/ui/userMenu.js:697
-#: ../js/ui/userMenu.js:699 ../js/ui/userMenu.js:814 ../js/ui/userMenu.js:938
-msgid "Power Off"
-msgstr "توكنى ئۈز"
+#. Translators: A list of keywords that match the restart action, separated by semicolons
+#: js/misc/systemActions.js:102
+msgid "reboot;restart;"
+msgstr "reboot;restart;قايتا قوزغات؛قايتا باشلا؛"
+
+#. Translators: The name of the lock screen action in search
+#: js/misc/systemActions.js:107
+msgctxt "search-result"
+msgid "Lock Screen"
+msgstr "ئېكراننى قۇلۇپلا"
+
+#. Translators: A list of keywords that match the lock screen action, separated by semicolons
+#: js/misc/systemActions.js:110
+msgid "lock screen"
+msgstr "ئېكرانى قۇلۇپلاش"
+
+#. Translators: The name of the logout action in search
+#: js/misc/systemActions.js:115
+msgctxt "search-result"
+msgid "Log Out"
+msgstr "تىزىمدىن چىق"
-#: ../js/gdm/util.js:182
-msgid "Authentication error"
-msgstr "كىملىك دەلىللەش خاتالىقى"
+#. Translators: A list of keywords that match the logout action, separated by semicolons
+#: js/misc/systemActions.js:118
+msgid "logout;log out;sign off"
+msgstr "logout;log out;sign off؛تىزىمدىن چىق؛چېكىن"
+
+#. Translators: The name of the suspend action in search
+#: js/misc/systemActions.js:123
+msgctxt "search-result"
+msgid "Suspend"
+msgstr "توڭلات"
-#. Translators: this message is shown below the password entry field
-#. to indicate the user can swipe their finger instead
-#: ../js/gdm/util.js:299
-msgid "(or swipe finger)"
-msgstr "(ياكى بارمىقىڭىزنى سىيرىڭ)"
+#. Translators: A list of keywords that match the suspend action, separated by semicolons
+#: js/misc/systemActions.js:126
+msgid "suspend;sleep"
+msgstr "توڭلات؛ئۇخلات؛suspend;sleep"
+
+#. Translators: The name of the switch user action in search
+#: js/misc/systemActions.js:131
+msgctxt "search-result"
+msgid "Switch User"
+msgstr "ئىشلەتكۈچى ئالماشتۇر"
-#: ../js/gdm/util.js:324
-#, c-format
-msgid "(e.g., user or %s)"
-msgstr "(مەسىلەن، ئىشلەتكۈچى ياكى %s)"
+#. Translators: A list of keywords that match the switch user action, separated by semicolons
+#: js/misc/systemActions.js:134
+msgid "switch user"
+msgstr "ئىشلەتكۈچى ئالماشتۇر؛switch user"
+
+#. Translators: A list of keywords that match the lock orientation action, separated by semicolons
+#: js/misc/systemActions.js:141
+msgid "lock orientation;unlock orientation;screen;rotation"
+msgstr "lock orientation;unlock orientation;screen;rotation؛قۇلۇپلاش يۆنىلىشى؛قۇلۇپ ئېچىش يۆنىلىشى؛ئېكران؛ئايلاندۇر"
+
+#. Translators: The name of the screenshot UI action in search
+#: js/misc/systemActions.js:146
+msgctxt "search-result"
+msgid "Take a Screenshot"
+msgstr "ئېكران كەسمىسى تۇت"
+
+#. Translators: A list of keywords that match the screenshot UI action, separated by semicolons
+#: js/misc/systemActions.js:149
+msgid "screenshot;screencast;snip;capture;record"
+msgstr "screenshot;screencast;snip;capture;record؛ئېكران كەسمىسى؛ئېكران كۆرۈنۈشى؛ئېكران خاتىرىلەش؛خاتىرىلەش"
+
+#: js/misc/systemActions.js:249
+msgctxt "search-result"
+msgid "Unlock Screen Rotation"
+msgstr "ئېكران ئايلاندۇرۇش قۇلۇپىنى ئاچ"
+
+#: js/misc/systemActions.js:250
+msgctxt "search-result"
+msgid "Lock Screen Rotation"
+msgstr "ئېكران ئايلاندۇرۇشنى قۇلۇپلا"
+
+#: js/misc/timeLimitsManager.js:342
+msgid "GNOME needs to save screen time data"
+msgstr "GNOME ئېكران ۋاقىت سانلىق مەلۇماتىنى ساقلاشقا ئېھتىياجلىق"
+
+#: js/misc/timeLimitsManager.js:1116
+#, javascript-format
+msgid "Screen Time Limit in %d Minute"
+msgid_plural "Screen Time Limit in %d Minutes"
+msgstr[0] "ئېكران ۋاقىت چەكلىمىسى %d قوزغىلىدۇ"
+
+#: js/misc/timeLimitsManager.js:1123
+msgid "Your screen time limit is approaching"
+msgstr "ئېكران ۋاقىت چەكلىمىڭىز يېقىنلىشىۋاتىدۇ"
+
+#: js/misc/timeLimitsManager.js:1137
+msgid "Screen Time Limit Reached"
+msgstr "ئېكران ۋاقىت چەكلىمىسىگە يەتتى"
+
+#: js/misc/timeLimitsManager.js:1138
+msgid "It’s time to stop using the device"
+msgstr "ئۈسكۈنە ئىشلىتىشنى توختىتىش ۋاقتى بولدى"
-#: ../js/misc/util.js:94
+#: js/misc/util.js:130
msgid "Command not found"
msgstr "بۇيرۇق تېپىلمىدى"
-#. Replace "Error invoking GLib.shell_parse_argv: " with
-#. something nicer
-#: ../js/misc/util.js:127
-msgid "Could not parse command:"
-msgstr "بۇيرۇقنى تەھلىل قىلالمىدى:"
-
-#: ../js/misc/util.js:135
-#, c-format
-msgid "Execution of '%s' failed:"
-msgstr "‹%s› ئىجرا قىلىش مەغلۇپ بولدى:"
-
-#: ../js/ui/appDisplay.js:348
-msgid "Frequent"
-msgstr "دائىم"
-
-#: ../js/ui/appDisplay.js:355
-msgid "All"
-msgstr "ھەممىسى"
+#: js/misc/util.js:168
+#, javascript-format
+msgid "Execution of “%s” failed:"
+msgstr "«%s» نى ئىجرا قىلالمىدى:"
+
+#: js/misc/dateUtils.js:69
+msgid "Just now"
+msgstr "ھازىر"
+
+#: js/misc/dateUtils.js:72
+#, javascript-format
+msgid "%d minute ago"
+msgid_plural "%d minutes ago"
+msgstr[0] "%d مىنۇت ئىلگىرى"
+
+#: js/misc/dateUtils.js:79
+#, javascript-format
+msgid "%d hour ago"
+msgid_plural "%d hours ago"
+msgstr[0] "%d سائەت ئىلگىرى"
+
+#: js/misc/dateUtils.js:85 js/ui/dateMenu.js:183
+msgid "Yesterday"
+msgstr "تۈنۈگۈن"
+
+#: js/misc/dateUtils.js:88
+#, javascript-format
+msgid "%d day ago"
+msgid_plural "%d days ago"
+msgstr[0] "%d كۈن ئىلگىرى"
+
+#: js/misc/dateUtils.js:95
+#, javascript-format
+msgid "%d week ago"
+msgid_plural "%d weeks ago"
+msgstr[0] "%d ھەپتە ئىلگىرى"
+
+#: js/misc/dateUtils.js:102
+#, javascript-format
+msgid "%d month ago"
+msgid_plural "%d months ago"
+msgstr[0] "%d ئاي ئىلگىرى"
+
+#: js/misc/dateUtils.js:108
+#, javascript-format
+msgid "%d year ago"
+msgid_plural "%d years ago"
+msgstr[0] "%d ئاي ئىلگىرى"
+
+#. Translators: Time in 24h format
+#: js/misc/dateUtils.js:155
+msgid "%H∶%M"
+msgstr "%H:%M"
+
+#. Translators: this is the word "Yesterday" followed by a
+#. time string in 24h format. i.e. "Yesterday, 14:30"
+#: js/misc/dateUtils.js:161
+#, no-c-format
+msgid "Yesterday, %H∶%M"
+msgstr "تۈنۈگۈن، %H∶%M"
+
+#. Translators: this is the week day name followed by a time
+#. string in 24h format. i.e. "Monday, 14:30"
+#: js/misc/dateUtils.js:167
+#, no-c-format
+msgid "%A, %H∶%M"
+msgstr "%A, %H∶%M"
+
+#. Translators: this is the month name and day number
+#. followed by a time string in 24h format.
+#. i.e. "May 25, 14:30"
+#: js/misc/dateUtils.js:173
+#, no-c-format
+msgid "%B %-d, %H∶%M"
+msgstr "%-m-ئاينىڭ %-d-كۈنى، %H∶%M"
+
+#. Translators: this is the month name, day number, year
+#. number followed by a time string in 24h format.
+#. i.e. "May 25 2012, 14:30"
+#: js/misc/dateUtils.js:179
+#, no-c-format
+msgid "%B %-d %Y, %H∶%M"
+msgstr "%Y-يىلى %-m-ئاينىڭ %-d-كۈنى، %H∶%M"
+
+#. Show only the time if date is on today
+#. eslint-disable-line no-lonely-if
+#. Translators: Time in 12h format
+#: js/misc/dateUtils.js:184
+msgid "%l∶%M %p"
+msgstr "%l∶%M %p"
+
+#. Translators: this is the word "Yesterday" followed by a
+#. time string in 12h format. i.e. "Yesterday, 2:30 pm"
+#: js/misc/dateUtils.js:190
+#, no-c-format
+msgid "Yesterday, %l∶%M %p"
+msgstr "تۈنۈگۈن، %l∶%M %p"
-#: ../js/ui/appDisplay.js:913
+#. Translators: this is the week day name followed by a time
+#. string in 12h format. i.e. "Monday, 2:30 pm"
+#: js/misc/dateUtils.js:196
+#, no-c-format
+msgid "%A, %l∶%M %p"
+msgstr "%A, %l∶%M %p"
+
+#. Translators: this is the month name and day number
+#. followed by a time string in 12h format.
+#. i.e. "May 25, 2:30 pm"
+#: js/misc/dateUtils.js:202
+#, no-c-format
+msgid "%B %-d, %l∶%M %p"
+msgstr "%-m-ئاينىڭ %-d-كۈنى، %p %-l∶%M"
+
+#. Translators: this is the month name, day number, year
+#. number followed by a time string in 12h format.
+#. i.e. "May 25 2012, 2:30 pm"
+#: js/misc/dateUtils.js:208
+#, no-c-format
+msgid "%B %-d %Y, %l∶%M %p"
+msgstr "%Y-يىلى %-m-ئاينىڭ %-d-كۈنى، %p %-l∶%M"
+
+#: js/portalHelper/main.js:98
+msgid "Your connection seems to be secure"
+msgstr "باغلىنىشىڭىز بىخەتەردەك قىلىدۇ"
+
+#: js/portalHelper/main.js:104
+msgid "Your connection to this hotspot login is not secure. Passwords or other information you enter on this page can be viewed by people nearby."
+msgstr "بۇ قىزىق نۇقتىدا تىزىمغا كىرىدىغان باغلىنىشىڭىز بىخەتەر ئەمەس. سىز بۇ بەتتە كىرگۈزگەن ئىم ياكى باشقا ئۇچۇرنى سىزگە يېقىن جايدىكى كىشىلەر كۆرەلەيدۇ."
+
+#: js/portalHelper/main.js:115
+msgid "Hotspot Login"
+msgstr "قىزىق نۇقتا تىزىمغا كىر"
+
+#. No support for non-modal system dialogs, so ignore the option
+#. let modal = options['modal'] || true;
+#: js/ui/accessDialog.js:51 js/ui/inhibitShortcutsDialog.js:92
+msgid "Deny"
+msgstr "رەت قىل"
+
+#: js/ui/accessDialog.js:52 js/ui/inhibitShortcutsDialog.js:101
+msgid "Allow"
+msgstr "يول قوي"
+
+#: js/ui/appDisplay.js:1762
+msgid "Unnamed Folder"
+msgstr "ئاتسىز قىسقۇچ"
+
+#: js/ui/appFavorites.js:163
+#, javascript-format
+msgid "%s has been pinned to the dash."
+msgstr "%s تېز تاختىغا مىخلاندى."
+
+#: js/ui/appFavorites.js:194
+#, javascript-format
+msgid "%s has been unpinned from the dash."
+msgstr "%s تېز تاختىدىن قومۇرۇلدى."
+
+#: js/ui/appFavorites.js:208 js/ui/main.js:309
+msgid "Undo"
+msgstr "يېنىۋال"
+
+#. Translators: This is the heading of a list of open windows
+#: js/ui/appMenu.js:49
+msgid "Open Windows"
+msgstr "كۆزنەك ئاچ"
+
+#: js/ui/appMenu.js:57
msgid "New Window"
msgstr "يېڭى كۆزنەك"
-#: ../js/ui/appDisplay.js:916 ../js/ui/dash.js:284
-msgid "Remove from Favorites"
-msgstr "يىغقۇچتىن چىقىرىۋەت"
+#: js/ui/appMenu.js:84
+msgid "App Details"
+msgstr "پىروگرامما تەپسىلاتى"
-#: ../js/ui/appDisplay.js:917
-msgid "Add to Favorites"
-msgstr "يىغقۇچقا قوش"
+#: js/ui/appMenu.js:100
+msgid "Quit"
+msgstr "چېكىن"
-#: ../js/ui/appFavorites.js:87
-#, c-format
-msgid "%s has been added to your favorites."
-msgstr "%s يىغقۇچىڭىزغا قوشۇلدى."
+#: js/ui/appMenu.js:160 js/ui/dash.js:248
+msgid "Unpin"
+msgstr "قومۇر"
-#: ../js/ui/appFavorites.js:121
-#, c-format
-msgid "%s has been removed from your favorites."
-msgstr "%s يىغقۇچىڭىزدىن چىقىرىۋېتىلىدۇ."
+#: js/ui/appMenu.js:161
+msgid "Pin to Dash"
+msgstr "تاختىغا مىخلا"
-#: ../js/ui/backgroundMenu.js:19 ../js/ui/userMenu.js:788
-msgid "Settings"
-msgstr "تەڭشەكلەر"
+#: js/ui/appMenu.js:178
+msgid "Launch using Integrated Graphics Card"
+msgstr "توپلاشتۇرۇلغان كۆرسىتىش كارتىسىدا قوزغىتىدۇ"
+
+#: js/ui/appMenu.js:179
+msgid "Launch using Discrete Graphics Card"
+msgstr "مۇستەقىل كۆرسىتىش كارتىسىدا قوزغىتىدۇ"
+
+#: js/ui/audioDeviceSelection.js:46
+msgid "Select Audio Device"
+msgstr "ئاۋاز ئۈسكۈنىسى تاللىنىدۇ"
+
+#: js/ui/audioDeviceSelection.js:67 js/ui/status/volume.js:81
+msgid "Sound Settings"
+msgstr "ئاۋاز تەڭشىكى"
+
+#: js/ui/audioDeviceSelection.js:75
+msgid "Headphones"
+msgstr "تىڭشىغۇچ"
+
+#: js/ui/audioDeviceSelection.js:77
+msgid "Headset"
+msgstr "مىكروفونلۇق تىڭشىغۇچ"
-#: ../js/ui/backgroundMenu.js:21
+#: js/ui/audioDeviceSelection.js:79 js/ui/status/volume.js:366
+msgid "Microphone"
+msgstr "مىكروفون"
+
+#: js/ui/backgroundMenu.js:13
msgid "Change Background…"
-msgstr "تەگلىكنى ئۆزگەرتىش…"
+msgstr "تەگلىكنى ئۆزگەرت…"
-#. Translators: Shown in calendar event list for all day events
-#. * Keep it short, best if you can use less then 10 characters
-#.
-#: ../js/ui/calendar.js:62
-msgctxt "event list time"
-msgid "All Day"
-msgstr "كۈن بويى"
+#: js/ui/backgroundMenu.js:15
+msgid "Display Settings"
+msgstr "كۆرسىتىش تەڭشەك"
-#. Translators: Shown in calendar event list, if 24h format,
-#. \u2236 is a ratio character, similar to :
-#: ../js/ui/calendar.js:68
-msgctxt "event list time"
-msgid "%H\\u2236%M"
-msgstr "%H\\u2236%M"
+#: js/ui/backgroundMenu.js:16
+msgid "Settings"
+msgstr "تەڭشەك"
-#. Transators: Shown in calendar event list, if 12h format,
-#. \u2236 is a ratio character, similar to : and \u2009 is
-#. a thin space
-#: ../js/ui/calendar.js:77
-msgctxt "event list time"
-msgid "%l\\u2236%M\\u2009%p"
-msgstr "%l\\u2236%M\\u2009%p"
+#. Translators: Enter 0-6 (Sunday-Saturday) for non-work days. Examples: "0" (Sunday) "6" (Saturday) "06" (Sunday and Saturday).
+#: js/ui/calendar.js:33
+msgctxt "calendar-no-work"
+msgid "06"
+msgstr "06"
#. Translators: Calendar grid abbreviation for Sunday.
#. *
#. * NOTE: These grid abbreviations are always shown together
#. * and in order, e.g. "S M T W T F S".
#.
-#: ../js/ui/calendar.js:108
+#: js/ui/calendar.js:59
msgctxt "grid sunday"
msgid "S"
msgstr "ي"
#. Translators: Calendar grid abbreviation for Monday
-#: ../js/ui/calendar.js:110
+#: js/ui/calendar.js:61
msgctxt "grid monday"
msgid "M"
msgstr "د"
#. Translators: Calendar grid abbreviation for Tuesday
-#: ../js/ui/calendar.js:112
+#: js/ui/calendar.js:63
msgctxt "grid tuesday"
msgid "T"
msgstr "س"
#. Translators: Calendar grid abbreviation for Wednesday
-#: ../js/ui/calendar.js:114
+#: js/ui/calendar.js:65
msgctxt "grid wednesday"
msgid "W"
msgstr "چ"
#. Translators: Calendar grid abbreviation for Thursday
-#: ../js/ui/calendar.js:116
+#: js/ui/calendar.js:67
msgctxt "grid thursday"
msgid "T"
msgstr "پ"
#. Translators: Calendar grid abbreviation for Friday
-#: ../js/ui/calendar.js:118
+#: js/ui/calendar.js:69
msgctxt "grid friday"
msgid "F"
msgstr "ج"
#. Translators: Calendar grid abbreviation for Saturday
-#: ../js/ui/calendar.js:120
+#: js/ui/calendar.js:71
msgctxt "grid saturday"
msgid "S"
msgstr "ش"
-#. Translators: Event list abbreviation for Sunday.
#. *
-#. * NOTE: These list abbreviations are normally not shown together
-#. * so they need to be unique (e.g. Tuesday and Thursday cannot
-#. * both be 'T').
+#. * Translators: The header displaying just the month name
+#. * standalone, when this is a month of the current year.
+#. * "%OB" is the new format specifier introduced in glibc 2.27,
+#. * in most cases you should not change it.
#.
-#: ../js/ui/calendar.js:133
-msgctxt "list sunday"
-msgid "Su"
-msgstr "ي"
-
-#. Translators: Event list abbreviation for Monday
-#: ../js/ui/calendar.js:135
-msgctxt "list monday"
-msgid "M"
-msgstr "د"
-
-#. Translators: Event list abbreviation for Tuesday
-#: ../js/ui/calendar.js:137
-msgctxt "list tuesday"
-msgid "T"
-msgstr "س"
-
-#. Translators: Event list abbreviation for Wednesday
-#: ../js/ui/calendar.js:139
-msgctxt "list wednesday"
-msgid "W"
-msgstr "چ"
-
-#. Translators: Event list abbreviation for Thursday
-#: ../js/ui/calendar.js:141
-msgctxt "list thursday"
-msgid "Th"
-msgstr "پ"
-
-#. Translators: Event list abbreviation for Friday
-#: ../js/ui/calendar.js:143
-msgctxt "list friday"
-msgid "F"
-msgstr "ج"
-
-#. Translators: Event list abbreviation for Saturday
-#: ../js/ui/calendar.js:145
-msgctxt "list saturday"
-msgid "S"
-msgstr "ش"
-
-#. Translators: Text to show if there are no events
-#: ../js/ui/calendar.js:692
-msgid "Nothing Scheduled"
-msgstr "ھېچنېمە پىلانلانمىدى"
-
-#. Translators: Shown on calendar heading when selected day occurs on current year
-#: ../js/ui/calendar.js:708
-msgctxt "calendar heading"
-msgid "%A, %B %d"
-msgstr "%A، %B %d"
-
-#. Translators: Shown on calendar heading when selected day occurs on different year
-#: ../js/ui/calendar.js:711
-msgctxt "calendar heading"
-msgid "%A, %B %d, %Y"
-msgstr "%A، %B %d، %Y"
-
-#: ../js/ui/calendar.js:721
-msgid "Today"
-msgstr "بۈگۈن"
-
-#: ../js/ui/calendar.js:725
-msgid "Tomorrow"
-msgstr "ئەتە"
+#: js/ui/calendar.js:422
+msgid "%OB"
+msgstr "%OB"
-#: ../js/ui/calendar.js:736
-msgid "This week"
-msgstr "بۇ ھەپتە"
-
-#: ../js/ui/calendar.js:744
-msgid "Next week"
-msgstr "كېيىنكى ھەپتە"
+#. *
+#. * Translators: The header displaying the month name and the year
+#. * number, when this is a month of a different year. You can
+#. * reorder the format specifiers or add other modifications
+#. * according to the requirements of your language.
+#. * "%OB" is the new format specifier introduced in glibc 2.27,
+#. * in most cases you should not use the old "%B" here unless you
+#. * absolutely know what you are doing.
+#.
+#: js/ui/calendar.js:432
+msgid "%OB %Y"
+msgstr "%OB %Y"
+
+#: js/ui/calendar.js:494
+msgid "Previous month"
+msgstr "ئالدىنقى ئاي"
+
+#: js/ui/calendar.js:512
+msgid "Next month"
+msgstr "كېيىنكى ئاي"
+
+#: js/ui/calendar.js:663
+#, no-javascript-format
+msgctxt "date day number format"
+msgid "%d"
+msgstr "%d"
+
+#: js/ui/calendar.js:722
+msgid "Week %V"
+msgstr "%V-ھەپتە"
+
+#: js/ui/calendar.js:774
+msgid "No Notifications"
+msgstr "ئۇقتۇرۇش يوق"
+
+#: js/ui/calendar.js:832
+msgid "Do Not Disturb"
+msgstr "دەخلى قىلماڭ"
+
+#: js/ui/calendar.js:853
+msgid "Clear"
+msgstr "تازىلا"
+
+#: js/ui/calendar.js:857
+msgctxt "action"
+msgid "Clear all notifications"
+msgstr "بارلىق ئۇقتۇرۇشلارنى تازىلا"
+
+#. Translators: %s is an application name
+#: js/ui/closeDialog.js:42
+#, javascript-format
+msgid "“%s” Is Not Responding"
+msgstr "«%s» دا ئىنكاس يوق"
+
+#: js/ui/closeDialog.js:43
+msgid "You may choose to wait a short while for it to continue or force the app to quit entirely"
+msgstr "داۋاملاشتۇرۇش ئۈچۈن كۈتۈشنى ياكى پىروگراممىنى تولۇق ئاخىرلاشتۇرۇش ئۈچۈن مەجبۇرىي چېكىندۈرۈشنى تاللىسىڭىز بولىدۇ"
+
+#: js/ui/closeDialog.js:71
+msgid "Force Quit"
+msgstr "مەجبۇرىي چېكىن"
+
+#: js/ui/closeDialog.js:76
+msgid "Wait"
+msgstr "كۈت"
-#: ../js/ui/components/automountManager.js:90
+#: js/ui/components/automountManager.js:82
msgid "External drive connected"
-msgstr "سىرتقى دىسكا ئۇلاندى."
+msgstr "سىرتقى دىسكا ئۇلاندى"
-#: ../js/ui/components/automountManager.js:101
+#: js/ui/components/automountManager.js:94
msgid "External drive disconnected"
-msgstr "سىرتقى دىسكا ئۈزۈلدى."
+msgstr "سىرتقى دىسكا ئۈزۈلدى"
-#: ../js/ui/components/autorunManager.js:294
-msgid "Removable Devices"
-msgstr "چىقىرىۋېتىشكە بولىدىغان ئۈسكۈنىلەر"
+#: js/ui/components/automountManager.js:208
+msgid "Unable to unlock volume"
+msgstr "دىسكا قۇلۇپىنى ئاچالمايدۇ"
+
+#: js/ui/components/automountManager.js:209
+msgid "The installed udisks version does not support the PIM setting"
+msgstr "ئورنىتىلغان udisks نەشرى PIM تەڭشىكىنى قوللىمايدۇ"
+
+#. Translators: %s is the name of a partition on a external drive
+#: js/ui/components/autorunManager.js:189
+#, javascript-format
+msgid "“%s” connected"
+msgstr "«%s» باغلاندى"
+
+#: js/ui/components/autorunManager.js:190
+msgid "Disk can now be used"
+msgstr "ھازىر دىسكىنى ئىشلەتكىلى بولىدۇ"
-#: ../js/ui/components/autorunManager.js:593
-#, c-format
+#: js/ui/components/autorunManager.js:202
+#, javascript-format
msgid "Open with %s"
msgstr "%s دا ئاچ"
-#: ../js/ui/components/autorunManager.js:619
-msgid "Eject"
-msgstr "چىقار"
-
-#: ../js/ui/components/keyring.js:82 ../js/ui/components/polkitAgent.js:268
-msgid "Password:"
-msgstr "ئىم:"
-
-#: ../js/ui/components/keyring.js:101
-msgid "Type again:"
-msgstr "قايتا كىرگۈزۈڭ:"
+#: js/ui/components/networkAgent.js:96
+msgid "Alternatively you can connect by pushing the “WPS” button on your router"
+msgstr "ئۇنىڭدىن باشقا يېتەكلىگۈچتىكى «WPS» توپچىنى بېسىپ باغلىيالايسىز"
-#: ../js/ui/components/networkAgent.js:132
+#: js/ui/components/networkAgent.js:108 js/ui/status/bluetooth.js:246 js/ui/status/network.js:360 js/ui/status/network.js:444
msgid "Connect"
msgstr "باغلان"
-#. Cisco LEAP
-#: ../js/ui/components/networkAgent.js:223
-#: ../js/ui/components/networkAgent.js:235
-#: ../js/ui/components/networkAgent.js:262
-#: ../js/ui/components/networkAgent.js:282
-#: ../js/ui/components/networkAgent.js:292
-msgid "Password: "
-msgstr "ئىم: "
-
-#. static WEP
-#: ../js/ui/components/networkAgent.js:228
-msgid "Key: "
-msgstr "شىفىرلىق ئاچقۇچ: "
-
-#: ../js/ui/components/networkAgent.js:266
-msgid "Identity: "
-msgstr "كىملىك: "
-
-#: ../js/ui/components/networkAgent.js:268
-msgid "Private key password: "
-msgstr "شەخسىي ئاچقۇچ ئىمى: "
-
-#: ../js/ui/components/networkAgent.js:280
-msgid "Service: "
-msgstr "مۇلازىمەت: "
-
-#: ../js/ui/components/networkAgent.js:309
-msgid "Authentication required by wireless network"
-msgstr "سىمسىز تور كىملىك تەكشۈرۈشكە ئېھتىياجلىق"
+#: js/ui/components/networkAgent.js:223
+msgid "Key"
+msgstr "ئاچقۇچ"
+
+#: js/ui/components/networkAgent.js:274 js/ui/components/networkAgent.js:313
+msgid "Private key password"
+msgstr "شەخسىي ئاچقۇچ ئىم"
+
+#: js/ui/components/networkAgent.js:307
+msgid "Identity"
+msgstr "كىملىك"
+
+#: js/ui/components/networkAgent.js:333
+msgid "Service"
+msgstr "مۇلازىمەت"
-#: ../js/ui/components/networkAgent.js:310
-#, c-format
-msgid ""
-"Passwords or encryption keys are required to access the wireless network "
-"'%s'."
-msgstr "سىمسىز تور ‹%s› نى زىيارەت قىلماق ئۈچۈن ئىم ياكى شىفىرلاش ئاچقۇچلىرى كېرەكلىك."
+#: js/ui/components/networkAgent.js:371 js/ui/components/networkAgent.js:407 js/ui/components/networkAgent.js:745 js/ui/components/networkAgent.js:766
+msgid "Authentication required"
+msgstr "كىملىك دەلىللەش زۆرۈر"
+
+#: js/ui/components/networkAgent.js:372 js/ui/components/networkAgent.js:746
+#, javascript-format
+msgid "Passwords or encryption keys are required to access the wireless network “%s”"
+msgstr "سىمسىز تور «%s» نى زىيارەت قىلماق ئۈچۈن ئىم ياكى شىفىرلاش ئاچقۇچلىرى كېرەكلىك"
-#: ../js/ui/components/networkAgent.js:314
+#: js/ui/components/networkAgent.js:376 js/ui/components/networkAgent.js:750
msgid "Wired 802.1X authentication"
msgstr "سىملىق 802.1X گۇۋاھنامە"
-#: ../js/ui/components/networkAgent.js:316
-msgid "Network name: "
-msgstr "تور ئاتى: "
+#: js/ui/components/networkAgent.js:379
+msgid "Network name"
+msgstr "تور ئىسمى"
-#: ../js/ui/components/networkAgent.js:321
+#: js/ui/components/networkAgent.js:387 js/ui/components/networkAgent.js:754
msgid "DSL authentication"
msgstr "DSL دەلىللەش"
-#: ../js/ui/components/networkAgent.js:328
+#: js/ui/components/networkAgent.js:394 js/ui/components/networkAgent.js:759
msgid "PIN code required"
msgstr "PIN كودى ئېھتىياجلىق"
-#: ../js/ui/components/networkAgent.js:329
+#: js/ui/components/networkAgent.js:395 js/ui/components/networkAgent.js:760
msgid "PIN code is needed for the mobile broadband device"
msgstr "كۆچمە كەڭ بەلۋاغ ئۈسكۈنىسى ئۈچۈن PIN كودى كېرەك"
-#: ../js/ui/components/networkAgent.js:330
-msgid "PIN: "
-msgstr "PIN: "
-
-#: ../js/ui/components/networkAgent.js:336
-msgid "Mobile broadband network password"
-msgstr "كۆچمە كەڭ بەلۋاغ تور ئىمى"
-
-#: ../js/ui/components/networkAgent.js:337
-#, c-format
-msgid "A password is required to connect to '%s'."
-msgstr "‹%s› كە باغلىنىش ئۈچۈن بىر ئىمغا ئېھتىياجلىق."
+#: js/ui/components/networkAgent.js:397
+msgid "PIN"
+msgstr "PIN"
+
+#: js/ui/components/networkAgent.js:408 js/ui/components/networkAgent.js:751 js/ui/components/networkAgent.js:755 js/ui/components/networkAgent.js:767 js/ui/components/networkAgent.js:771
+#, javascript-format
+msgid "A password is required to connect to “%s”"
+msgstr "«%s» غا باغلىنىش ئۈچۈن بىر ئىمغا ئېھتىياجلىق."
+
+#: js/ui/components/networkAgent.js:770
+msgid "VPN password"
+msgstr "VPN ئىم"
-#: ../js/ui/components/polkitAgent.js:55
+#: js/ui/components/polkitAgent.js:44
msgid "Authentication Required"
msgstr "كىملىك دەلىللەش زۆرۈر"
-#: ../js/ui/components/polkitAgent.js:93
+#: js/ui/components/polkitAgent.js:84
msgid "Administrator"
msgstr "باشقۇرغۇچى"
-#: ../js/ui/components/polkitAgent.js:165
+#: js/ui/components/polkitAgent.js:149
msgid "Authenticate"
msgstr "كىملىك دەلىللەش"
@@ -710,1093 +1288,1984 @@
#. * requested authentication was not gained; this can happen
#. * because of an authentication error (like invalid password),
#. * for instance.
-#: ../js/ui/components/polkitAgent.js:256 ../js/ui/shellMountOperation.js:383
-msgid "Sorry, that didn't work. Please try again."
-msgstr "كەچۈرۈڭ، خىزمەت قىلالمايدۇ. قايتا سىناڭ."
-
-#. Translators: this is a filename used for screencast recording
-#: ../js/ui/components/recorder.js:48
-#, no-c-format
-msgid "Screencast from %d %t"
-msgstr "بۇ %d %t نىڭ ئېكران كۆرۈنۈشى"
-
-#. FIXME: We don't have a 'chat room' icon (bgo #653737) use
-#. system-users for now as Empathy does.
-#: ../js/ui/components/telepathyClient.js:238
-msgid "Invitation"
-msgstr "تەكلىپ"
-
-#. We got the TpContact
-#: ../js/ui/components/telepathyClient.js:298
-msgid "Call"
-msgstr "چاقىر"
-
-#. We got the TpContact
-#: ../js/ui/components/telepathyClient.js:314
-msgid "File Transfer"
-msgstr "ھۆججەت يوللاش"
-
-#: ../js/ui/components/telepathyClient.js:418
-msgid "Chat"
-msgstr "سۆھبەت"
-
-#: ../js/ui/components/telepathyClient.js:480
-msgid "Unmute"
-msgstr "ئاۋازلىق"
+#: js/ui/components/polkitAgent.js:263 js/ui/shellMountOperation.js:415
+msgid "Sorry, that didn’t work. Please try again."
+msgstr "كەچۈرۈڭ، ئىشلىمىدى. قايتا سىناڭ."
-#: ../js/ui/components/telepathyClient.js:480
-msgid "Mute"
-msgstr "ئۈنسىز"
-
-#. Translators: this is the word "Yesterday" followed by a time string. i.e. "Yesterday, 14:30"
-#: ../js/ui/components/telepathyClient.js:942
-#, no-c-format
-msgid "Yesterday, %H:%M"
-msgstr "تۈنۈگۈن، %H:%M"
-
-#. Translators: this is the week day name followed by a time string. i.e. "Monday, 14:30
-#: ../js/ui/components/telepathyClient.js:948
-#, no-c-format
-msgid "%A, %H:%M"
-msgstr "%A، %H:%M"
+#: js/ui/ctrlAltTab.js:23 js/ui/overviewControls.js:404
+msgid "Windows"
+msgstr "كۆزنەك"
-#. Translators: this is the month name and day number followed by a time string. i.e. "May 25, 14:30"
-#: ../js/ui/components/telepathyClient.js:953
-#, no-c-format
-msgid "%B %d, %H:%M"
-msgstr "%B %d، %H:%M"
+#: js/ui/dash.js:204 js/ui/dash.js:250
+msgid "Show Apps"
+msgstr "پىروگرامما كۆرسەت"
-#. Translators: this is the month name, day number, year number followed by a time string. i.e. "May 25 2012, 14:30"
-#: ../js/ui/components/telepathyClient.js:957
-#, no-c-format
-msgid "%B %d %Y, %H:%M "
-msgstr "%B %d %Y، %H:%M "
+#. Translators: this is the name of the dock/favorites area on
+#. the bottom of the overview
+#: js/ui/dash.js:408
+msgid "Dash"
+msgstr "سىزىقچە"
-#. Translators: this is the other person changing their old IM name to their new
-#. IM name.
-#: ../js/ui/components/telepathyClient.js:985
-#, c-format
-msgid "%s is now known as %s"
-msgstr "%s نى ھازىر %s دەپ قارايدۇ"
-
-#. translators: argument is a room name like
-#. * room@jabber.org for example.
-#: ../js/ui/components/telepathyClient.js:1088
-#, c-format
-msgid "Invitation to %s"
-msgstr "%s غا تەكلىپ"
-
-#. translators: first argument is the name of a contact and the second
-#. * one the name of a room. "Alice is inviting you to join room@jabber.org
-#. * for example.
-#: ../js/ui/components/telepathyClient.js:1096
-#, c-format
-msgid "%s is inviting you to join %s"
-msgstr "%s سىزنى %s غا قاتنىشىشنى تەكلىپ قىلىۋاتىدۇ"
-
-#: ../js/ui/components/telepathyClient.js:1098
-#: ../js/ui/components/telepathyClient.js:1137
-#: ../js/ui/components/telepathyClient.js:1177
-#: ../js/ui/components/telepathyClient.js:1240
-msgid "Decline"
-msgstr "قوشۇلما"
-
-#: ../js/ui/components/telepathyClient.js:1099
-#: ../js/ui/components/telepathyClient.js:1178
-#: ../js/ui/components/telepathyClient.js:1241
-msgid "Accept"
-msgstr "قوشۇل"
-
-#. translators: argument is a contact name like Alice for example.
-#: ../js/ui/components/telepathyClient.js:1129
-#, c-format
-msgid "Video call from %s"
-msgstr "%s دىن كەلگەن سىن چاقىرىقى"
-
-#. translators: argument is a contact name like Alice for example.
-#: ../js/ui/components/telepathyClient.js:1132
-#, c-format
-msgid "Call from %s"
-msgstr "«%s» دىن كەلگەن تېلېفون"
-
-#. translators: this is a button label (verb), not a noun
-#: ../js/ui/components/telepathyClient.js:1139
-msgid "Answer"
-msgstr "جاۋاب"
-
-#. To translators: The first parameter is
-#. * the contact's alias and the second one is the
-#. * file name. The string will be something
-#. * like: "Alice is sending you test.ogg"
+#. Translators: This is the date format to use when the calendar popup is
+#. * shown - it is shown just below the time in the top bar (e.g.,
+#. * "Tue 9:29 AM"). The string itself should become a full date, e.g.,
+#. * "February 17 2015".
#.
-#: ../js/ui/components/telepathyClient.js:1171
-#, c-format
-msgid "%s is sending you %s"
-msgstr "%s سىزگە %s نى ئەۋەتتى"
-
-#. To translators: The parameter is the contact's alias
-#: ../js/ui/components/telepathyClient.js:1206
-#, c-format
-msgid "%s would like permission to see when you are online"
-msgstr "%s سىزنى توردا بار چېغىڭىزدا كۆرۈشكە ئىجازەت سوراۋاتىدۇ"
-
-#: ../js/ui/components/telepathyClient.js:1298
-msgid "Network error"
-msgstr "تور خاتالىقى"
-
-#: ../js/ui/components/telepathyClient.js:1300
-msgid "Authentication failed"
-msgstr "كىملىك دەلىللەش مەغلۇپ بولدى"
-
-#: ../js/ui/components/telepathyClient.js:1302
-msgid "Encryption error"
-msgstr "شىفىرلاش خاتالىقى"
-
-#: ../js/ui/components/telepathyClient.js:1304
-msgid "Certificate not provided"
-msgstr "گۇۋاھنامە تەمىنلەنمىگەن"
-
-#: ../js/ui/components/telepathyClient.js:1306
-msgid "Certificate untrusted"
-msgstr "گۇۋاھنامە ئىشەنچسىز"
-
-#: ../js/ui/components/telepathyClient.js:1308
-msgid "Certificate expired"
-msgstr "گۇۋاھنامىنىڭ ۋاقتى ئوتكەن"
-
-#: ../js/ui/components/telepathyClient.js:1310
-msgid "Certificate not activated"
-msgstr "گۇۋاھنامە ئاكتىپ ئەمەس"
-
-#: ../js/ui/components/telepathyClient.js:1312
-msgid "Certificate hostname mismatch"
-msgstr "گۇۋاھنامە كومپيۇتېرىنىڭ ئاتى ماسلاشمىدى"
-
-#: ../js/ui/components/telepathyClient.js:1314
-msgid "Certificate fingerprint mismatch"
-msgstr "گۇۋاھنامىنىڭ بارماق ئىزى ماسلاشمىدى"
-
-#: ../js/ui/components/telepathyClient.js:1316
-msgid "Certificate self-signed"
-msgstr "گۇۋاھنامىنىڭ ئۆزىنىڭ ئىمزاسى"
-
-#: ../js/ui/components/telepathyClient.js:1318
-msgid "Status is set to offline"
-msgstr "ھالەت توردا يوق قىلىپ بەلگىلەندى"
-
-#: ../js/ui/components/telepathyClient.js:1320
-msgid "Encryption is not available"
-msgstr "شىفىرلاشنى ئىشلەتكىلى بولمايدۇ"
-
-#: ../js/ui/components/telepathyClient.js:1322
-msgid "Certificate is invalid"
-msgstr "گۇۋاھنامە ئىناۋەتسىز"
-
-#: ../js/ui/components/telepathyClient.js:1324
-msgid "Connection has been refused"
-msgstr "باغلىنىش رەت قىلىندى"
-
-#: ../js/ui/components/telepathyClient.js:1326
-msgid "Connection can't be established"
-msgstr "باغلانغىلى بولمىدى"
-
-#: ../js/ui/components/telepathyClient.js:1328
-msgid "Connection has been lost"
-msgstr "باغلىنىش ئۈزۈلدى"
-
-#: ../js/ui/components/telepathyClient.js:1330
-msgid "This account is already connected to the server"
-msgstr "بۇ ھېسابات ئاللىقاچان مۇلازىمېتىرغا باغلانغان"
-
-#: ../js/ui/components/telepathyClient.js:1332
-msgid ""
-"Connection has been replaced by a new connection using the same resource"
-msgstr "ئوخشاش مەنبە ئىشلەتكەن باغلىنىش ئەسلىدىكىنىڭ ئورنىنى ئىگىلىدى"
-
-#: ../js/ui/components/telepathyClient.js:1334
-msgid "The account already exists on the server"
-msgstr "مۇلازىمېتىردا بۇ ھېسابات ئاللىقاچان بار"
-
-#: ../js/ui/components/telepathyClient.js:1336
-msgid "Server is currently too busy to handle the connection"
-msgstr "مۇلازىمېتىر بەكلا ئالدىراش بولغاچقا بۇ باغلىنىشنى بىر تەرەپ قىلالمايدۇ"
-
-#: ../js/ui/components/telepathyClient.js:1338
-msgid "Certificate has been revoked"
-msgstr "گۇۋاھنامە ئىناۋەتسىز قىلىنغان"
-
-#: ../js/ui/components/telepathyClient.js:1340
-msgid ""
-"Certificate uses an insecure cipher algorithm or is cryptographically weak"
-msgstr "گۇۋاھنامە خەتەرلىك شىفىرلاش ئالگورىزىمىنى ئىشلەتكەن ياكى شىفىرلىنىشى ئاجىز"
+#: js/ui/dateMenu.js:99
+msgid "%B %-d %Y"
+msgstr "%Y-يىلى %-m-ئاينىڭ %-d-كۈنى"
+
+#. Translators: This is the accessible name of the date button shown
+#. * below the time in the shell; it should combine the weekday and the
+#. * date, e.g. "Tuesday February 17 2015".
+#.
+#: js/ui/dateMenu.js:106
+msgid "%A %B %e %Y"
+msgstr "%Y-يىلى %-m-ئاينىڭ %-d-كۈنى %A"
-#: ../js/ui/components/telepathyClient.js:1342
-msgid ""
-"The length of the server certificate, or the depth of the server certificate "
-"chain, exceed the limits imposed by the cryptography library"
-msgstr "مۇلازىمېتىر گۇۋاھنامىسىنىڭ ئۇزۇنلۇقى ياكى مۇلازىمېتىر گۇۋاھنامىسىنىڭ زەنجىرىنىڭ چوڭقۇرلۇقى شىفىرلاش فۇنكسىيە ئامبىرىدا بەلگىلەنگەن ئۇزۇنلۇقتىن ئېشىپ كەتتى"
-
-#: ../js/ui/components/telepathyClient.js:1344
-msgid "Internal error"
-msgstr "ئىچكى خاتالىق"
-
-#. translators: argument is the account name, like
-#. * name@jabber.org for example.
-#: ../js/ui/components/telepathyClient.js:1354
-#, c-format
-msgid "Unable to connect to %s"
-msgstr "%s غا باغلانغىلى بولمىدى"
-
-#: ../js/ui/components/telepathyClient.js:1359
-msgid "View account"
-msgstr "ھېساباتنى كۆرۈش"
-
-#: ../js/ui/components/telepathyClient.js:1398
-msgid "Unknown reason"
-msgstr "نامەلۇم سەۋەب"
+#. Translators: Shown on calendar heading when selected day occurs on current year
+#: js/ui/dateMenu.js:172
+msgctxt "calendar heading"
+msgid "%B %-d"
+msgstr "%m-ئاينىڭ %d-كۈنى"
-#: ../js/ui/ctrlAltTab.js:29 ../js/ui/viewSelector.js:96
-msgid "Windows"
-msgstr "كۆزنەكلەر"
+#. Translators: Shown on calendar heading when selected day occurs on different year
+#: js/ui/dateMenu.js:175
+msgctxt "calendar heading"
+msgid "%B %-d %Y"
+msgstr "%Y-يىلى %-m-ئاينىڭ %-d-كۈنى"
-#: ../js/ui/dash.js:248 ../js/ui/dash.js:286
-msgid "Show Applications"
-msgstr "پروگراممىلارنى كۆرسىتىدۇ"
+#: js/ui/dateMenu.js:181
+msgid "Today"
+msgstr "بۈگۈن"
-#. Translators: this is the name of the dock/favorites area on
-#. the left of the overview
-#: ../js/ui/dash.js:435
-msgid "Dash"
-msgstr "سىزىقچە"
+#: js/ui/dateMenu.js:185
+msgid "Tomorrow"
+msgstr "ئەتە"
-#: ../js/ui/dateMenu.js:91
-msgid "Open Calendar"
-msgstr "يىلنامىلەرنى ئېچىش"
-
-#: ../js/ui/dateMenu.js:96
-msgid "Open Clocks"
-msgstr "سائەتلەرنى ئېچىش"
-
-#: ../js/ui/dateMenu.js:105
-msgid "Date & Time Settings"
-msgstr "چېسلا ۋە ۋاقىت تەڭشىكى"
+#. Translators: Shown in calendar event list for all day events
+#. * Keep it short, best if you can use less then 10 characters
+#.
+#: js/ui/dateMenu.js:216
+msgctxt "event list time"
+msgid "All Day"
+msgstr "پۈتۈن كۈن"
-#. Translators: This is the date format to use when the calendar popup is
-#. * shown - it is shown just below the time in the shell (e.g. "Tue 9:29 AM").
+#. Translators: Shown in calendar event list as the start/end of events
+#. * that only show day and month
#.
-#: ../js/ui/dateMenu.js:205
-msgid "%A %B %e, %Y"
-msgstr "%A %B %e، %Y"
+#: js/ui/dateMenu.js:238
+msgid "%m/%d"
+msgstr "%m/%d"
+
+#: js/ui/dateMenu.js:289
+msgid "No Events"
+msgstr "پائالىيەت يوق"
+
+#: js/ui/dateMenu.js:411
+msgid "Add World Clocks…"
+msgstr "دۇنيا سائىتى قوش…"
+
+#: js/ui/dateMenu.js:412
+msgid "World Clocks"
+msgstr "دۇنيا سائىتى"
+
+#: js/ui/dateMenu.js:702
+msgid "Loading…"
+msgstr "يۈكلەۋاتىدۇ…"
+
+#: js/ui/dateMenu.js:712
+msgid "Go Online for Weather Information"
+msgstr "ھاۋا رايى ئۇچۇرى ئۈچۈن تورغا باغلىنىڭ"
+
+#: js/ui/dateMenu.js:714
+msgid "Weather Information Unavailable"
+msgstr "ھاۋا رايى ئۇچۇرىنى ئىشلەتكىلى بولمايدۇ"
+
+#: js/ui/dateMenu.js:724
+msgid "Weather"
+msgstr "ھاۋا رايى"
+
+#: js/ui/dateMenu.js:726
+msgid "Select Weather Location…"
+msgstr "ھاۋا رايى ئورنى تاللىنىدۇ…"
-#: ../js/ui/endSessionDialog.js:63
-#, c-format
+#: js/ui/endSessionDialog.js:47
+#, javascript-format
msgctxt "title"
msgid "Log Out %s"
-msgstr "%s دىن چىقىش"
+msgstr "%s دىن چىق"
-#: ../js/ui/endSessionDialog.js:64
+#: js/ui/endSessionDialog.js:48
msgctxt "title"
msgid "Log Out"
-msgstr "تىزىمدىن چىقىش"
+msgstr "تىزىمدىن چىق"
-#: ../js/ui/endSessionDialog.js:65
-msgid "Click Log Out to quit these applications and log out of the system."
-msgstr "تىزىمدىن چىقىش (Log Out) نى بېسىپ پروگراممىدىن چېكىنىش ۋە سىستېما تىزىمىدىن چىقىش."
+#: js/ui/endSessionDialog.js:51
+#, javascript-format
+msgid "%s will be logged out automatically in %d second"
+msgid_plural "%s will be logged out automatically in %d seconds"
+msgstr[0] "%s يەنە %d سېكۇنتتىن كېيىن ئۆزلۈكىدىن تىزىمدىن چىقىدۇ"
+
+#: js/ui/endSessionDialog.js:57
+#, javascript-format
+msgid "You will be logged out automatically in %d second"
+msgid_plural "You will be logged out automatically in %d seconds"
+msgstr[0] "يەنە %d سېكۇنتتىن كېيىن ئۆزلۈكىدىن تىزىمدىن چىقىسىز"
-#: ../js/ui/endSessionDialog.js:67
-#, c-format
-msgid "%s will be logged out automatically in %d second."
-msgid_plural "%s will be logged out automatically in %d seconds."
-msgstr[0] "ئىشلەتكۈچى %s يەنە %d سېكۇنتتىن كېيىن ئاپتوماتىك چىقىپ كېتىدۇ."
-
-#: ../js/ui/endSessionDialog.js:72
-#, c-format
-msgid "You will be logged out automatically in %d second."
-msgid_plural "You will be logged out automatically in %d seconds."
-msgstr[0] "سىز يەنە %d سېكۇنتتىن كېيىن ئاپتوماتىك چىقىپ كېتىسىز."
-
-#: ../js/ui/endSessionDialog.js:76
-msgid "Logging out of the system."
-msgstr "سىستېما تىزىمدىن چىقىۋاتىدۇ"
-
-#: ../js/ui/endSessionDialog.js:78
+#: js/ui/endSessionDialog.js:64
msgctxt "button"
msgid "Log Out"
-msgstr "تىزىمدىن چىقىش"
+msgstr "تىزىمدىن چىق"
-#: ../js/ui/endSessionDialog.js:83
+#: js/ui/endSessionDialog.js:70 js/ui/status/system.js:174
msgctxt "title"
msgid "Power Off"
msgstr "توكنى ئۈز"
-#: ../js/ui/endSessionDialog.js:84
-msgid "Click Power Off to quit these applications and power off the system."
-msgstr "تۈكنى ئۈز چېكىلسە قوللىنىشچان پروگراممىلاردىن چېكىنىپ سىستېمىنى تاقايدۇ."
+#: js/ui/endSessionDialog.js:71
+msgctxt "title"
+msgid "Install Updates & Power Off"
+msgstr "يېڭىلانمىنى ئورنىتىپ توكنى ئۈز"
-#: ../js/ui/endSessionDialog.js:86
-#, c-format
-msgid "The system will power off automatically in %d second."
-msgid_plural "The system will power off automatically in %d seconds."
-msgstr[0] "سىستېمىنىڭ توكى يەنە %d سېكۇنتتىن كېيىن ئاپتوماتىك ئۈزۈلىدۇ."
+#: js/ui/endSessionDialog.js:74
+#, javascript-format
+msgid "The system will power off automatically in %d second"
+msgid_plural "The system will power off automatically in %d seconds"
+msgstr[0] "سىستېمىنىڭ توكى يەنە %d سېكۇنتتىن كېيىن ئاپتوماتىك ئۈزۈلىدۇ"
+
+#: js/ui/endSessionDialog.js:78 js/ui/endSessionDialog.js:97
+msgctxt "checkbox"
+msgid "Install pending software updates"
+msgstr "كۈتۈۋاتقان يۇمشاق دېتال يېڭىلانمىنى ئورنات"
-#: ../js/ui/endSessionDialog.js:90
-msgid "Powering off the system."
-msgstr "سىستېمىنى تاقاۋاتىدۇ."
+#: js/ui/endSessionDialog.js:82
+msgctxt "button"
+msgid "Power Off"
+msgstr "توكنى ئۈز"
-#: ../js/ui/endSessionDialog.js:92 ../js/ui/endSessionDialog.js:109
+#: js/ui/endSessionDialog.js:89
+msgctxt "title"
+msgid "Restart"
+msgstr "قايتا قوزغات"
+
+#: js/ui/endSessionDialog.js:90
+msgctxt "title"
+msgid "Install Updates & Restart"
+msgstr "يېڭىلانمىلارنى ئورنىتىپ قايتا قوزغات"
+
+#: js/ui/endSessionDialog.js:93
+#, javascript-format
+msgid "The system will restart automatically in %d second"
+msgid_plural "The system will restart automatically in %d seconds"
+msgstr[0] "سىستېما يەنە %d سېكۇنتتىن كېيىن ئاپتوماتىك قايتا قوزغىلىدۇ"
+
+#: js/ui/endSessionDialog.js:101
msgctxt "button"
msgid "Restart"
msgstr "قايتا قوزغات"
-#: ../js/ui/endSessionDialog.js:94
+#: js/ui/endSessionDialog.js:109
+msgctxt "title"
+msgid "Restart & Install Updates"
+msgstr "قايتا قوزغات ۋە يېڭىلانما ئورنات"
+
+#: js/ui/endSessionDialog.js:112
+#, javascript-format
+msgid "The system will automatically restart and install updates in %d second"
+msgid_plural "The system will automatically restart and install updates in %d seconds"
+msgstr[0] "سىستېما يەنە %d سېكۇنتتىن كېيىن ئۆزلۈكىدىن قايتا قوزغىلىپ ۋە يېڭىلانما ئورنىتىدۇ"
+
+#: js/ui/endSessionDialog.js:119 js/ui/endSessionDialog.js:140
msgctxt "button"
-msgid "Power Off"
-msgstr "توكنى ئۈز"
+msgid "Restart & Install"
+msgstr "قايتا قوزغات ۋە ئورنات"
+
+#: js/ui/endSessionDialog.js:121
+msgctxt "button"
+msgid "Install & Power Off"
+msgstr "ئورنات ۋە توكنى ئۈز"
-#: ../js/ui/endSessionDialog.js:100
+#: js/ui/endSessionDialog.js:122
+msgctxt "checkbox"
+msgid "Power off after updates are installed"
+msgstr "يېڭىلانما ئورنىتىلغاندىن كېيىن توكنى ئۈزىدۇ"
+
+#: js/ui/endSessionDialog.js:129
msgctxt "title"
-msgid "Restart"
-msgstr "قايتا قوزغات"
+msgid "Restart & Install Upgrade"
+msgstr "قايتا قوزغات ۋە يۈكسەلتىشنى ئورنات"
-#: ../js/ui/endSessionDialog.js:101
-msgid "Click Restart to quit these applications and restart the system."
-msgstr "قايتا قوزغات (restart) چېكىلسە پروگراممىدىن چېكىنىپ ۋە سىستېمىنى قايتا قوزغىتىدۇ."
+#. Translators: This is the text displayed for system upgrades in the
+#. shut down dialog. First %s gets replaced with the distro name and
+#. second %s with the distro version to upgrade to
+#: js/ui/endSessionDialog.js:134
+#, javascript-format
+msgid "%s %s will be installed after restart. Upgrade installation can take a long time: ensure that you have backed up and that the computer is plugged in."
+msgstr "قايتا قوزغىتىلغاندىن كېيىن %s %s ئورنىتىدۇ. يۈكسەلتىپ ئورنىتىشقا ئۇزۇن ۋاقىت كېتىدۇ: زاپاسلاپ ۋە كومپيۇتېرنى توكقا چاتقانلىقىڭىزنى جەزملەڭ."
+
+#: js/ui/endSessionDialog.js:283
+msgid "Low battery power: please plug in before installing updates"
+msgstr "توكدان توكى ئاز: يېڭىلانمىنى ئورنىتىشتىن ئىلگىرى توكقا چېتىڭ"
+
+#: js/ui/endSessionDialog.js:292
+msgid "Some applications are busy or have unsaved work"
+msgstr "بەزى پىروگرامما ئالدىراش ياكى ساقلىمىغان ئىشلىرى بار"
+
+#: js/ui/endSessionDialog.js:297
+msgid "Other users are logged in"
+msgstr "باشقا ئىشلەتكۈچى تىزىمغا كىرگەن"
-#: ../js/ui/endSessionDialog.js:103
-#, c-format
-msgid "The system will restart automatically in %d second."
-msgid_plural "The system will restart automatically in %d seconds."
-msgstr[0] "سىستېما يەنە %d سېكۇنتتىن كېيىن ئاپتوماتىك قايتا قوزغىلىدۇ."
+#: js/ui/endSessionDialog.js:467
+msgctxt "button"
+msgid "Boot Options"
+msgstr "قوزغىتىش تاللانمىسى"
+
+#. Translators: Remote here refers to a remote session, like a ssh login
+#: js/ui/endSessionDialog.js:672
+#, javascript-format
+msgid "%s (remote)"
+msgstr "%s (يىراق)"
-#: ../js/ui/endSessionDialog.js:107
-msgid "Restarting the system."
-msgstr "سىستېما قايتا قوزغىلىۋاتىدۇ."
+#. Translators: Console here refers to a tty like a VT console
+#: js/ui/endSessionDialog.js:675
+#, javascript-format
+msgid "%s (console)"
+msgstr "%s (تىزگىن كۆزنەك)"
-#: ../js/ui/extensionDownloader.js:199
+#: js/ui/extensionDownloader.js:280
msgid "Install"
msgstr "ئورنات"
-#: ../js/ui/extensionDownloader.js:204
-#, c-format
-msgid "Download and install '%s' from extensions.gnome.org?"
-msgstr "مەنبە extensions.gnome.org دىن ‹%s› نى چۈشۈرۈپ ئورنىتامسىز؟"
+#: js/ui/extensionDownloader.js:286
+msgid "Install Extension"
+msgstr "كېڭەيتىلمە ئورنات"
+
+#: js/ui/extensionDownloader.js:287
+#, javascript-format
+msgid "Download and install “%s” from extensions.gnome.org?"
+msgstr "مەنبە extensions.gnome.org دىن «%s» نى چۈشۈرۈپ ئورنىتامسىز؟"
+
+#: js/ui/extensionSystem.js:354
+msgid "Extension Updates Available"
+msgstr "كېڭەيتىلمە يېڭىلانمىسى بار"
+
+#: js/ui/extensionSystem.js:355
+msgid "Extension updates are ready to be installed"
+msgstr "كېڭەيتىلمە يېڭىلانمىسى ئورنىتىشقا تەييار"
+
+#: js/ui/inhibitShortcutsDialog.js:70
+msgid "Allow inhibiting shortcuts"
+msgstr "تېزلەتمىنى چەكلەشكە يول قويىدۇ"
+
+#. Translators: %s is an application name like "Settings"
+#: js/ui/inhibitShortcutsDialog.js:73
+#, javascript-format
+msgid "The app %s wants to inhibit shortcuts"
+msgstr "پىروگرامما %s تېزلەتمىنى چەكلىمەكچى"
+
+#: js/ui/inhibitShortcutsDialog.js:74
+msgid "An app wants to inhibit shortcuts"
+msgstr "بىر پىروگرامما تېزلەتمىنى چەكلىمەكچى"
+
+#. Translators: %s is a keyboard shortcut like "Super+x"
+#: js/ui/inhibitShortcutsDialog.js:81
+#, javascript-format
+msgid "You can restore shortcuts by pressing %s"
+msgstr "سىز %s نى بېسىپ تېزلەتمىنى ئەسلىگە كەلتۈرەلەيسىز"
+
+#: js/ui/kbdA11yDialog.js:34
+msgid "Slow Keys Turned On"
+msgstr "ئاستا كۇنۇپكا ئېچىلدى"
+
+#: js/ui/kbdA11yDialog.js:35
+msgid "Slow Keys Turned Off"
+msgstr "ئاستا كۇنۇپكا تاقالدى"
+
+#: js/ui/kbdA11yDialog.js:36
+msgid "You just held down the Shift key for 8 seconds. This is the shortcut for the Slow Keys feature, which affects the way your keyboard works."
+msgstr "سىز Shift كۇنۇپكىسىنى 8 سېكۇنت بېسىپ تۇردىڭىز. بۇ كېچىكتۈرۈش كۇنۇپكا ئىقتىدارىنىڭ تېزلەتمىسى، بۇ ھەرپتاختىڭىزنىڭ خىزمەت ئۇسۇلىغا تەسىر كۆرسىتىدۇ."
+
+#: js/ui/kbdA11yDialog.js:42
+msgid "Sticky Keys Turned On"
+msgstr "يېپىشقاق كۇنۇپكا ئېچىلدى"
+
+#: js/ui/kbdA11yDialog.js:43
+msgid "Sticky Keys Turned Off"
+msgstr "يېپىشقاق كۇنۇپكا تاقالدى"
+
+#: js/ui/kbdA11yDialog.js:45
+msgid "You just pressed the Shift key 5 times in a row. This is the shortcut for the Sticky Keys feature, which affects the way your keyboard works."
+msgstr "سىز بايا Shift كۇنۇپكىسىنى 5 قېتىم باستىڭىز. بۇ يېپىشقاق كۇنۇپكىنىڭ تېزلەتمە كۇنۇپكىسى. بۇ ھەرپتاختىڭىزنىڭ خىزمەت ئۇسۇلىغا تەسىر كۆرسىتىدۇ."
+
+#: js/ui/kbdA11yDialog.js:47
+msgid "You just pressed two keys at once, or pressed the Shift key 5 times in a row. This turns off the Sticky Keys feature, which affects the way your keyboard works."
+msgstr "سىز بايا بىرلا ۋاقىتتا ئىككى كۇنۇپكا باستىڭىز ياكى Shift كۇنۇپكىسىنى 5 قېتىم باستىڭىز. بۇ يېپىشقاق كۇنۇپكىنىڭ تېزلەتمە كۇنۇپكىسى. بۇ ھەرپتاختىڭىزنىڭ خىزمەت ئۇسۇلىغا تەسىر كۆرسىتىدۇ."
+
+#: js/ui/kbdA11yDialog.js:57
+msgid "Leave On"
+msgstr "ئايرىل"
-#: ../js/ui/keyboard.js:619 ../js/ui/status/keyboard.js:314
-#: ../js/ui/status/power.js:211
-msgid "Keyboard"
-msgstr "ھەرپتاختا"
+#: js/ui/kbdA11yDialog.js:57
+msgid "Turn On"
+msgstr "ئاچ"
-#: ../js/ui/lookingGlass.js:693
+#: js/ui/kbdA11yDialog.js:67 js/ui/status/network.js:455
+msgid "Turn Off"
+msgstr "تاقا"
+
+#: js/ui/kbdA11yDialog.js:67
+msgid "Leave Off"
+msgstr "توختا"
+
+#: js/ui/keyboard.js:180 js/ui/status/keyboard.js:901
+msgid "Keyboard Settings"
+msgstr "ھەرپتاختا تەڭشەك"
+
+#: js/ui/lookingGlass.js:742
msgid "No extensions installed"
msgstr "ھېچقانداق كېڭەيتىلمە ئورنىتىلمىغان"
#. Translators: argument is an extension UUID.
-#: ../js/ui/lookingGlass.js:747
-#, c-format
-msgid "%s has not emitted any errors."
-msgstr "%s نىڭدا ھېچقانداق خاتالىق يۈز بەرمىدى."
+#: js/ui/lookingGlass.js:805
+#, javascript-format
+msgid "%s has not emitted any errors"
+msgstr "%s دا ھېچقانداق خاتالىق يۈز بەرمىدى"
-#: ../js/ui/lookingGlass.js:753
+#: js/ui/lookingGlass.js:811
msgid "Hide Errors"
msgstr "خاتالىقلارنى يوشۇر"
-#: ../js/ui/lookingGlass.js:757 ../js/ui/lookingGlass.js:817
+#: js/ui/lookingGlass.js:815 js/ui/lookingGlass.js:895
msgid "Show Errors"
msgstr "خاتالىقلارنى كۆرسەت"
-#: ../js/ui/lookingGlass.js:766
-msgid "Enabled"
-msgstr "ئىناۋەتلىك قىلىنغان"
+#: js/ui/lookingGlass.js:824
+msgid "Active"
+msgstr "ئاكتىپ"
+
+#: js/ui/lookingGlass.js:827
+msgid "Inactive"
+msgstr "ئاكتىپسىز"
-#. translators:
-#. * The device has been disabled
-#: ../js/ui/lookingGlass.js:769 ../src/gvc/gvc-mixer-control.c:1830
-msgid "Disabled"
-msgstr "ئىناۋەتسىز قىلىنغان"
-
-#: ../js/ui/lookingGlass.js:771
+#: js/ui/lookingGlass.js:829
msgid "Error"
msgstr "خاتالىق"
-#: ../js/ui/lookingGlass.js:773
+#: js/ui/lookingGlass.js:831
msgid "Out of date"
msgstr "ۋاقتى ئۆتۈپ كەتكەن"
-#: ../js/ui/lookingGlass.js:775
+#: js/ui/lookingGlass.js:833
msgid "Downloading"
msgstr "چۈشۈرۈۋاتىدۇ"
-#: ../js/ui/lookingGlass.js:799
+#: js/ui/lookingGlass.js:835
+msgid "Deactivating"
+msgstr "ئاكتىپسىزلاۋاتىدۇ"
+
+#: js/ui/lookingGlass.js:837
+msgid "Activating"
+msgstr "ئاكتىپلاۋاتىدۇ"
+
+#: js/ui/lookingGlass.js:873
msgid "View Source"
msgstr "مەنبەنى كۆرسەت"
-#: ../js/ui/lookingGlass.js:808
+#: js/ui/lookingGlass.js:884
msgid "Web Page"
-msgstr "توربەت"
-
-#: ../js/ui/messageTray.js:1182
-msgid "Open"
-msgstr "ئاچ"
+msgstr "تور بەت"
-#: ../js/ui/messageTray.js:1189
-msgid "Remove"
-msgstr "چىقىرىۋەت"
-
-#: ../js/ui/messageTray.js:1501
-msgid "Clear Messages"
-msgstr "ئۇچۇرنى تازىلا"
-
-#: ../js/ui/messageTray.js:1528
-msgid "Notification Settings"
-msgstr "ئۇقتۇرۇش تەڭشىكى"
-
-#: ../js/ui/messageTray.js:1707
-msgid "No Messages"
-msgstr "ئۇچۇر يوق"
-
-#: ../js/ui/messageTray.js:1787
-msgid "Message Tray"
-msgstr "ئۇچۇر قوندىقى"
-
-#: ../js/ui/messageTray.js:2864
-msgid "System Information"
-msgstr "سىستېما ئۇچۇرى"
-
-#: ../js/ui/notificationDaemon.js:629 ../src/shell-app.c:374
-msgctxt "program"
-msgid "Unknown"
-msgstr "نامەلۇم"
-
-#: ../js/ui/overviewControls.js:460 ../js/ui/screenShield.js:153
-#, c-format
-msgid "%d new message"
-msgid_plural "%d new messages"
-msgstr[0] "%d دانە ئۇچۇر"
-
-#: ../js/ui/overview.js:82
-msgid "Undo"
-msgstr "يېنىۋال"
-
-#: ../js/ui/overview.js:129
-msgid "Overview"
-msgstr "قىسقىچە بايان"
+#: js/ui/main.js:305
+msgid "System was put in unsafe mode"
+msgstr "سىستېما خەتەرلىك ھالەتكە كىرگۈزۈلگەن"
+
+#: js/ui/main.js:306
+msgid "Apps now have unrestricted access"
+msgstr "ھازىر ئەپ چەكلىمىسىز زىيارەت قىلالايدۇ"
+
+#: js/ui/main.js:366
+msgid "Logged in as a privileged user"
+msgstr "ئىمتىيازلىق ئىشلەتكۈچى سۈپىتىدە تىزىمغا كىردى"
+
+#: js/ui/main.js:367
+msgid "Running a session as a privileged user should be avoided for security reasons. If possible, you should log in as a normal user."
+msgstr "بىخەتەرلىك سەۋەبىدىن ئىمتىيازلىق ئىشلەتكۈچى سۈپىتىدە ئەڭگىمە ئىجرا قىلىش رەت قىلىنىشى كېرەك. ئەگەر مۇمكىن بولسا، ئادەتتىكى ئىشلەتكۈچى سۈپىتىدە تىزىمغا كىرىشىڭىز كېرەك."
+
+#: js/ui/main.js:415
+msgid "Screen Lock disabled"
+msgstr "ئېكران قۇلۇپى چەكلەنگەن"
+
+#: js/ui/main.js:416
+msgid "Screen Locking requires the GNOME display manager"
+msgstr "ئېكران قۇلۇپلاشقا GNOME كۆرسىتىش باشقۇرغۇچ زۆرۈر"
+
+#. Translators: this is the string displayed in the header when a message
+#. source doesn't have a name
+#: js/ui/messageList.js:409
+msgid "Unknown App"
+msgstr "يوچۇن ئەپ"
+
+#: js/ui/messageTray.js:325 js/ui/messageTray.js:327
+msgid "Notification sound"
+msgstr "ئۇقتۇرۇش ئاۋازى"
+
+#: js/ui/mpris.js:144
+msgid "Unknown artist"
+msgstr "يوچۇن سەنئەتكار"
+
+#: js/ui/mpris.js:154
+msgid "Unknown title"
+msgstr "يوچۇن ماۋزۇ"
#. Translators: this is the text displayed
#. in the search entry when no search is
#. active; it should not exceed ~30
#. characters.
-#: ../js/ui/overview.js:284
-msgid "Type to search…"
-msgstr "ئىزدەيدىغاننى كىرگۈزۈڭ.…"
+#: js/ui/overviewControls.js:328
+msgid "Type to search"
+msgstr "كىرگۈزگەننى ئىزدەيدۇ"
+
+#: js/ui/overviewControls.js:392
+msgid "Apps"
+msgstr "ئەپ"
+
+#. Translators: This is the main view to select
+#. activities. See also note for "Activities" string.
+#: js/ui/overview.js:33
+msgid "Overview"
+msgstr "ئىخچام كۆرۈنۈش"
-#: ../js/ui/panel.js:613
-msgid "Quit"
-msgstr "ئاخىرلاشتۇر"
+#: js/ui/padOsd.js:98
+msgid "New shortcut…"
+msgstr "يېڭى تېزلەتمە…"
+
+#: js/ui/padOsd.js:151
+msgid "App defined"
+msgstr "ئەپ بەلگىلىگەن"
+
+#: js/ui/padOsd.js:152
+msgid "Show on-screen help"
+msgstr "ئېكران ئۈستى ياردىمىنى كۆرسەت"
+
+#: js/ui/padOsd.js:153
+msgid "Switch monitor"
+msgstr "كۆزەتكۈچ ئالماشتۇر"
+
+#: js/ui/padOsd.js:154
+msgid "Assign keystroke"
+msgstr "كۇنۇپكا بېسىش تەقسىملەيدۇ"
+
+#: js/ui/padOsd.js:223
+msgid "Done"
+msgstr "تامام"
+
+#: js/ui/padOsd.js:727
+msgid "Edit…"
+msgstr "تەھرىر…"
+
+#: js/ui/padOsd.js:774
+msgid "None"
+msgstr "يوق"
+
+#: js/ui/padOsd.js:845
+msgid "Press a button to configure"
+msgstr "سەپلەشتە توپچە بېسىلىدۇ"
+
+#: js/ui/padOsd.js:846
+msgid "Press Esc to exit"
+msgstr "Esc بېسىلسا چېكىن"
+
+#: js/ui/padOsd.js:849
+msgid "Press any key to exit"
+msgstr "خالىغان كۇنۇپكا بېسىلسا چېكىنىدۇ"
#. Translators: If there is no suitable word for "Activities"
#. in your language, you can use the word for "Overview".
-#: ../js/ui/panel.js:642
+#: js/ui/panel.js:423
msgid "Activities"
-msgstr "پائالىيەتلەر"
+msgstr "پائالىيەت"
+
+#: js/ui/panel.js:504
+msgctxt "System menu in the top bar"
+msgid "System"
+msgstr "سىستېما"
-#: ../js/ui/panel.js:983
+#: js/ui/panel.js:678
msgid "Top Bar"
-msgstr "ئۈستى بالداق"
+msgstr "چوققا بالداق"
-#. Translators: this MUST be either "toggle-switch-us"
-#. (for toggle switches containing the English words
-#. "ON" and "OFF") or "toggle-switch-intl" (for toggle
-#. switches containing "◯" and "|"). Other values will
-#. simply result in invisible toggle switches.
-#: ../js/ui/popupMenu.js:727
-msgid "toggle-switch-us"
-msgstr "toggle-switch-us"
-
-#: ../js/ui/runDialog.js:205
-msgid "Enter a Command"
-msgstr "بۇيرۇق كىرگۈزۈڭ"
+#: js/ui/quickSettings.js:185 js/ui/quickSettings.js:340
+msgid "Open menu"
+msgstr "تىزىملىك ئاچ"
-#: ../js/ui/runDialog.js:241
-msgid "Close"
-msgstr "ياپ"
+#: js/ui/runDialog.js:61
+msgid "Run a Command"
+msgstr "بۇيرۇق ئىجرا قىل"
-#. Translators: This is a time format for a date in
-#. long format
-#: ../js/ui/screenShield.js:90
-msgid "%A, %B %d"
-msgstr "%A، %B %d"
+#: js/ui/runDialog.js:77
+msgid "Press ESC to close"
+msgstr "Esc بېسىلسا ياپ"
-#: ../js/ui/screenShield.js:155
-#, c-format
-msgid "%d new notification"
-msgid_plural "%d new notifications"
-msgstr[0] "%d دانە ئۇقتۇرۇش"
+#: js/ui/runDialog.js:254
+msgid "Restart is not available on Wayland"
+msgstr "Wayland دە قايتا قوزغاتنى ئىشلەتكىلى بولمايدۇ"
-#: ../js/ui/screenShield.js:442 ../js/ui/userMenu.js:806
-msgid "Lock"
-msgstr "قۇلۇپلا"
+#: js/ui/runDialog.js:259
+msgid "Restarting…"
+msgstr "قايتا قوزغىلىۋاتىدۇ…"
-#: ../js/ui/screenShield.js:639
+#: js/ui/screenShield.js:233
msgid "GNOME needs to lock the screen"
-msgstr "گىنوم ئېكراننى قۇلۇپلىشى زۆرۈر"
+msgstr "GNOME ئېكراننى قۇلۇپلىشى زۆرۈر"
-#. We could not become modal, so we can't activate the
-#. screenshield. The user is probably very upset at this
-#. point, but any application using global grabs is broken
-#. Just tell him to stop using this app
-#.
-#. XXX: another option is to kick the user into the gdm login
-#. screen, where we're not affected by grabs
-#: ../js/ui/screenShield.js:758 ../js/ui/screenShield.js:1169
+#: js/ui/screenShield.js:274 js/ui/screenShield.js:667
msgid "Unable to lock"
msgstr "قۇلۇپلىغىلى بولمىدى"
-#: ../js/ui/screenShield.js:759 ../js/ui/screenShield.js:1170
-msgid "Lock was blocked by an application"
-msgstr "بىر پروگرامما قۇلۇپلاشنى توسۇپ قويغان"
+#: js/ui/screenShield.js:275 js/ui/screenShield.js:668
+msgid "Lock was blocked by an app"
+msgstr "بىر پىروگرامما قۇلۇپلاشنى توسۇپ قويغان"
+
+#: js/ui/screenshot.js:1250
+msgid "Selection"
+msgstr "تاللاش"
+
+#: js/ui/screenshot.js:1260
+msgid "Area Selection"
+msgstr "دائىرە تاللاش"
+
+#: js/ui/screenshot.js:1265
+msgid "Screen"
+msgstr "ئېكران"
+
+#: js/ui/screenshot.js:1275
+msgid "Screen Selection"
+msgstr "ئېكران تاللاش"
+
+#: js/ui/screenshot.js:1280
+msgid "Window"
+msgstr "كۆزنەك"
+
+#: js/ui/screenshot.js:1290
+msgid "Window Selection"
+msgstr "كۆزنەك تاللاش"
+
+#: js/ui/screenshot.js:1315 js/ui/status/system.js:111
+msgid "Take Screenshot"
+msgstr "ئېكران كۆرۈنۈشى تۇت"
+
+#: js/ui/screenshot.js:1331
+msgid "Record Screen"
+msgstr "ئېكراننى خاتىرىلەيدۇ"
+
+#. Translators: since this string refers to an action,
+#. it needs to be phrased as a verb.
+#: js/ui/screenshot.js:1348
+msgid "Capture"
+msgstr "تۇت"
+
+#: js/ui/screenshot.js:1370
+msgid "Show Pointer"
+msgstr "نىشانلىغۇچنى كۆرسەت"
+
+#. Translators: this is the folder where recorded
+#. screencasts are stored.
+#: js/ui/screenshot.js:1994
+msgid "Screencasts"
+msgstr "ئېكران سىنى"
+
+#. Translators: this is a filename used for screencast
+#. * recording, where "%d" and "%t" date and time, e.g.
+#. * "Screencast From 07-17-2013 10:00:46 PM"
+#: js/ui/screenshot.js:1999
+#, no-c-format
+msgid "Screencast From %d %t"
+msgstr "بۇ %d %t نىڭ ئېكران سىنى"
+
+#. Translators: notification title.
+#: js/ui/screenshot.js:2045
+msgid "Screencast recorded"
+msgstr "ئېكران سىنى خاتىرىلەندى"
+
+#. Translators: notification title.
+#: js/ui/screenshot.js:2058
+msgid "Screencast failed to start"
+msgstr "ئېكران سىننى قوزغىتالمىدى"
+
+#. Translators: notification title.
+#: js/ui/screenshot.js:2064
+msgid "Screencast ended: Out of disk space"
+msgstr "ئېكران سىن خاتىرىلەش ئاخىرلاشتى: دىسكا بوشلۇقى يېتىشمىدى"
+
+#. We can encourage user to try again on service crashes since the
+#. recorder will auto-blocklist the pipeline that crashed.
+#. Translators: notification title.
+#: js/ui/screenshot.js:2070
+msgid "Screencast ended unexpectedly, please try again"
+msgstr "ئېكران سىن خاتىرىلەش تاسادىپىي ئاخىرلاشتى، قايتا سىناڭ"
+
+#. Translators: notification title.
+#: js/ui/screenshot.js:2073
+msgid "Screencast ended unexpectedly"
+msgstr "ئېكران سىن خاتىرىلەش تاسادىپىي ئاخىرلاشتى"
+
+#. Translators: notification source name.
+#: js/ui/screenshot.js:2083 js/ui/screenshot.js:2330
+msgid "Screenshot"
+msgstr "ئېكران كۆرۈنۈشى"
+
+#. Translators: notification body when a screencast was recorded.
+#: js/ui/screenshot.js:2090
+msgid "Click here to view the video."
+msgstr "سىن كۆرۈشتە بۇ جاي چېكىلىدۇ."
+
+#. Translators: button on the screencast notification.
+#. Translators: button on the screenshot notification.
+#: js/ui/screenshot.js:2098 js/ui/screenshot.js:2346
+msgid "Show in Files"
+msgstr "ھۆججەتتە كۆرسەت"
+
+#. Translators: this is the name of the file that the screenshot is
+#. saved to. The placeholder is a timestamp, e.g. "2017-05-21 12-24-03".
+#: js/ui/screenshot.js:2288
+#, javascript-format
+msgid "Screenshot From %s"
+msgstr "%s دىن ئېكران كەسمىسى تۇت"
+
+#. Translators: notification title.
+#: js/ui/screenshot.js:2336
+msgid "Screenshot captured"
+msgstr "ئېكران كەسمىسى تۇتتى"
+
+#. Translators: notification body when a screenshot was captured.
+#: js/ui/screenshot.js:2338
+msgid "You can paste the image from the clipboard."
+msgstr "سۈرەتنى چاپلاش تاختىسىدىن چاپلىيالايسىز."
+
+#: js/ui/screenshot.js:2397 js/ui/screenshot.js:2561
+msgid "Screenshot taken"
+msgstr "ئېكران كۆرۈنۈشى تۇتۇلدى"
-#: ../js/ui/searchDisplay.js:431
+#: js/ui/search.js:832
msgid "Searching…"
msgstr "ئىزدەۋاتىدۇ…"
-#: ../js/ui/searchDisplay.js:475
-msgid "No results."
-msgstr "نەتىجە يوق."
+#: js/ui/search.js:834
+msgid "No results"
+msgstr "نەتىجە يوق"
+
+#: js/ui/search.js:965
+#, javascript-format
+msgid "%d more"
+msgid_plural "%d more"
+msgstr[0] "%d تېخىمۇ كۆپ"
-#: ../js/ui/shellEntry.js:29
+#: js/ui/searchController.js:87 subprojects/extensions-app/data/ui/extensions-window.ui:73
+msgid "Search"
+msgstr "ئىزدە"
+
+#: js/ui/shellEntry.js:21
msgid "Copy"
msgstr "كۆچۈر"
-#: ../js/ui/shellEntry.js:34
+#: js/ui/shellEntry.js:26
msgid "Paste"
msgstr "چاپلا"
-#: ../js/ui/shellEntry.js:105
+#: js/ui/shellEntry.js:78
msgid "Show Text"
msgstr "تېكىست كۆرسەت"
-#: ../js/ui/shellEntry.js:107
+#: js/ui/shellEntry.js:80
msgid "Hide Text"
msgstr "تېكىستنى يوشۇر"
-#: ../js/ui/shellMountOperation.js:370
-msgid "Password"
-msgstr "ئىم"
+#: js/ui/shellEntry.js:174
+msgid "Caps lock is on"
+msgstr "Caps Lock ئوچۇق"
+
+#: js/ui/shellMountOperation.js:286
+msgid "Hidden Volume"
+msgstr "يوشۇرۇن دىسكا"
+
+#: js/ui/shellMountOperation.js:289
+msgid "Windows System Volume"
+msgstr "Windows سىستېما دىسكىسى"
+
+#: js/ui/shellMountOperation.js:292
+msgid "Uses Keyfiles"
+msgstr "شىفىرلىق ئاچقۇچ ھۆججىتى ئىشلىتىدۇ"
+
+#. Translators: %s is the Disks application
+#: js/ui/shellMountOperation.js:300
+#, javascript-format
+msgid "To unlock a volume that uses keyfiles, use the %s utility instead"
+msgstr "شىفىرلىق ئاچقۇچ ھۆججىتى ئىشلەتكەن دىسكا قۇلۇپىنى ئېچىشتا، %s قورالى قورالى ئىشلىتىلىدۇ"
+
+#: js/ui/shellMountOperation.js:304
+msgid "You need an external utility like Disks to unlock a volume that uses keyfiles"
+msgstr "شىفىرلىق ئاچقۇچ ھۆججىتى ئىشلەتكەن دىسكا قۇلۇپىنى ئېچىشتا دىسكا غا ئوخشاش سىرتقى قورال پىروگراممىنى ئىشلىتىڭ"
+
+#: js/ui/shellMountOperation.js:312
+msgid "PIM Number"
+msgstr "PIM نومۇرى"
-#: ../js/ui/shellMountOperation.js:391
+#: js/ui/shellMountOperation.js:371
msgid "Remember Password"
-msgstr "ئىمنى ئەستە تۇتۇش"
+msgstr "ئىمنى ئەستە تۇت"
-#: ../js/ui/shellMountOperation.js:403 ../js/ui/unlockDialog.js:140
+#: js/ui/shellMountOperation.js:386
msgid "Unlock"
-msgstr "قۇلۇپسىزلا"
+msgstr "قۇلۇپ ئاچ"
+
+#. Translators: %s is the Disks application
+#: js/ui/shellMountOperation.js:400
+#, javascript-format
+msgid "Open %s"
+msgstr "%s نى ئاچ"
+
+#: js/ui/shellMountOperation.js:436
+msgid "The PIM must be a number or empty"
+msgstr "PIM چوقۇم سان ياكى بوش بولىدۇ"
-#: ../js/ui/status/accessibility.js:36
+#: js/ui/status/accessibility.js:34
msgid "Accessibility"
msgstr "ياردەم ئىقتىدارى"
-#: ../js/ui/status/accessibility.js:41
+#: js/ui/status/accessibility.js:44
+msgid "High Contrast"
+msgstr "يۇقىرى سېلىشتۇرما"
+
+#: js/ui/status/accessibility.js:47
msgid "Zoom"
-msgstr "كېڭەيت-تارايت"
+msgstr "يېقىن يىراق"
-#: ../js/ui/status/accessibility.js:48
+#: js/ui/status/accessibility.js:54
msgid "Screen Reader"
msgstr "ئېكران ئوقۇغۇچ"
-#: ../js/ui/status/accessibility.js:52
+#: js/ui/status/accessibility.js:58
msgid "Screen Keyboard"
msgstr "ئېكران ھەرپتاختىسى"
-#: ../js/ui/status/accessibility.js:56
+#: js/ui/status/accessibility.js:62
msgid "Visual Alerts"
msgstr "كۆرۈنمە ئاگاھلاندۇرۇش"
-#: ../js/ui/status/accessibility.js:59
+#: js/ui/status/accessibility.js:66
msgid "Sticky Keys"
-msgstr "يېپىشقاق كۇنۇپكىلار"
+msgstr "يېپىشقاق كۇنۇپكا"
-#: ../js/ui/status/accessibility.js:62
+#: js/ui/status/accessibility.js:70
msgid "Slow Keys"
-msgstr "ئاستا كۇنۇپكىلار"
+msgstr "ئاستا كۇنۇپكا"
-#: ../js/ui/status/accessibility.js:65
+#: js/ui/status/accessibility.js:74
msgid "Bounce Keys"
-msgstr "سەكرىمە كۇنۇپكىلار"
+msgstr "سەكرىمە كۇنۇپكا"
-#: ../js/ui/status/accessibility.js:68
+#: js/ui/status/accessibility.js:78
msgid "Mouse Keys"
-msgstr "چاشقىنەك كۇنۇپكىلىرى"
-
-#: ../js/ui/status/accessibility.js:72
-msgid "Universal Access Settings"
-msgstr "ئۇنىۋېرسال زىيارەت تەڭشىكى"
+msgstr "چاشقىنەك كۇنۇپكىسى"
-#: ../js/ui/status/accessibility.js:129
-msgid "High Contrast"
-msgstr "يۇقىرى ئاق-قارىلىقى"
+#: js/ui/status/accessibility.js:83
+msgid "Accessibility Settings"
+msgstr "قولايلىق تەڭشىكى"
-#: ../js/ui/status/accessibility.js:178
+#: js/ui/status/accessibility.js:123
msgid "Large Text"
msgstr "چوڭ تېكىست"
-#: ../js/ui/status/bluetooth.js:28 ../js/ui/status/bluetooth.js:32
-#: ../js/ui/status/bluetooth.js:289 ../js/ui/status/bluetooth.js:321
-#: ../js/ui/status/bluetooth.js:357 ../js/ui/status/bluetooth.js:388
-#: ../js/ui/status/network.js:826
+#: js/ui/status/autoRotate.js:14
+msgid "Auto Rotate"
+msgstr "ئۆزلۈكىدىن ئايلاندۇر"
+
+#: js/ui/status/backgroundApps.js:156
+msgctxt "title"
+msgid "Background Apps"
+msgstr "ئارقا سۇپا پىروگراممىسى"
+
+#: js/ui/status/backgroundApps.js:171
+msgid "Apps known to be running without a window"
+msgstr "كۆزنەكسىز ئىجرا قىلىنىدىغان تونۇش ئەپ"
+
+#: js/ui/status/backgroundApps.js:182
+msgid "App Settings"
+msgstr "ئەپ تەڭشىكى"
+
+#: js/ui/status/backgroundApps.js:239
+msgid "No Background Apps"
+msgstr "ئارقا سۇپا پىروگراممىسى يوق"
+
+#: js/ui/status/backgroundApps.js:241
+#, javascript-format
+msgid "%d Background App"
+msgid_plural "%d Background Apps"
+msgstr[0] "%d ئارقا سۇپا ئەپ"
+
+#: js/ui/status/backlight.js:39
+msgid "Keyboard Brightness"
+msgstr "ھەرپتاختا يورۇقلۇقى"
+
+#: js/ui/status/backlight.js:87
+msgid "Off"
+msgstr "تاقا"
+
+#: js/ui/status/backlight.js:88
+msgid "Low"
+msgstr "تۆۋەن"
+
+#: js/ui/status/backlight.js:89
+msgid "High"
+msgstr "يۇقىرى"
+
+#: js/ui/status/backlight.js:162 js/ui/status/keyboard.js:883
+msgid "Keyboard"
+msgstr "ھەرپتاختا"
+
+#: js/ui/status/bluetooth.js:246 js/ui/status/network.js:360
+msgid "Disconnect"
+msgstr "ئۈز"
+
+#. Translators: %s is a device name like "MyPhone"
+#: js/ui/status/bluetooth.js:267 js/ui/status/network.js:354
+#, javascript-format
+msgid "Disconnect %s"
+msgstr "%s نى ئۈز"
+
+#. Translators: %s is a device name like "MyPhone"
+#: js/ui/status/bluetooth.js:269 js/ui/status/network.js:356
+#, javascript-format
+msgid "Connect to %s"
+msgstr "%s غا باغلىنىدۇ"
+
+#: js/ui/status/bluetooth.js:276 js/ui/status/bluetooth.js:278
msgid "Bluetooth"
msgstr "كۆكچىش"
-#: ../js/ui/status/bluetooth.js:45
-msgid "Visibility"
-msgstr "كۆرۈشچانلىقى"
-
-#: ../js/ui/status/bluetooth.js:59
-msgid "Send Files to Device…"
-msgstr "ھۆججەتلەرنى ئۈسكۈنىگە ئەۋەتىش…"
-
-#: ../js/ui/status/bluetooth.js:60
-msgid "Set Up a New Device…"
-msgstr "يېڭى ئۈسكۈنە ئورنىتىش…"
-
-#: ../js/ui/status/bluetooth.js:84
+#: js/ui/status/bluetooth.js:301 js/ui/status/network.js:1909
msgid "Bluetooth Settings"
msgstr "كۆكچىش تەڭشىكى"
-#. TRANSLATORS: this means that bluetooth was disabled by hardware rfkill
-#: ../js/ui/status/bluetooth.js:104 ../js/ui/status/network.js:178
-msgid "hardware disabled"
-msgstr "قاتتىق دېتال ئىناۋەتسىز قىلىنغان"
-
-#: ../js/ui/status/bluetooth.js:197
-msgid "Connection"
-msgstr "باغلىنىش"
-
-#: ../js/ui/status/bluetooth.js:208 ../js/ui/status/network.js:460
-msgid "disconnecting..."
-msgstr "ئۈزۈۋاتىدۇ…"
-
-#: ../js/ui/status/bluetooth.js:221 ../js/ui/status/network.js:466
-#: ../js/ui/status/network.js:1546
-msgid "connecting..."
-msgstr "باغلىنىۋاتىدۇ…"
-
-#: ../js/ui/status/bluetooth.js:239
-msgid "Send Files…"
-msgstr "ھۆججەت يوللاش…"
+#: js/ui/status/bluetooth.js:348
+msgid "No available or connected devices"
+msgstr "ئىشلىتىلىشچان ياكى ئۇلانغان ئۈسكۈنە يوق"
+
+#: js/ui/status/bluetooth.js:349
+msgid "Turn on Bluetooth to connect to devices"
+msgstr "ئۈسكۈنىگە باغلىنىشتا كۆكچىش ئاچ"
+
+#. Translators: This is the number of connected bluetooth devices
+#: js/ui/status/bluetooth.js:413
+#, javascript-format
+msgid "%d Connected"
+msgid_plural "%d Connected"
+msgstr[0] "%d باغلاندى"
+
+#: js/ui/status/brightness.js:32
+msgid "Brightness"
+msgstr "يورۇقلۇق"
+
+#: js/ui/status/darkMode.js:12
+msgid "Dark Style"
+msgstr "قاراڭغۇ ئۇسلۇب"
+
+#: js/ui/status/dwellClick.js:15
+msgid "Single Click"
+msgstr "تاق چەك"
+
+#: js/ui/status/dwellClick.js:20
+msgid "Double Click"
+msgstr "قوش چېكىش"
+
+#: js/ui/status/dwellClick.js:25
+msgid "Drag"
+msgstr "سۆرەش"
+
+#: js/ui/status/dwellClick.js:30
+msgid "Secondary Click"
+msgstr "ئىككىنچى چېكىش"
+
+#: js/ui/status/dwellClick.js:39
+msgid "Dwell Click"
+msgstr "لەيلىتىپ چېكىش"
-#: ../js/ui/status/bluetooth.js:246
-msgid "Keyboard Settings"
-msgstr "ھەرپتاختا تەڭشەكلىرى"
+#: js/ui/status/keyboard.js:900
+msgid "Show Keyboard Layout"
+msgstr "ھەرپتاختا ئورۇنلاشتۇرۇشنى كۆرسەت"
-#: ../js/ui/status/bluetooth.js:249
-msgid "Mouse Settings"
-msgstr "چاشقىنەك تەڭشەكلىرى"
+#: js/ui/status/location.js:337
+msgid "Allow location access"
+msgstr "ئورۇن ئۇچۇرىغا ئېرىشىشكە يول قويىدۇ"
+
+#. Translators: %s is an application name
+#: js/ui/status/location.js:339
+#, javascript-format
+msgid "The app %s wants to access your location"
+msgstr "بۇ %s ئورۇن ئۇچۇرىڭىزنى زىيارەت قىلماقچى"
+
+#: js/ui/status/location.js:349
+msgid "Location access can be changed at any time from the privacy settings"
+msgstr "ئورۇن ئۇچۇرىنى زىيارەت قىلىش ئىجازىتىنى خالىغان ۋاقىتتا شەخسىيەت تەڭشىكىدىن ئۆزگەرتكىلى بولىدۇ"
+
+#: js/ui/status/location.js:357
+msgid "Deny Access"
+msgstr "زىيارەتنى رەت قىل"
+
+#: js/ui/status/location.js:362
+msgid "Grant Access"
+msgstr "زىيارەتكە يول قوي"
-#: ../js/ui/status/bluetooth.js:254 ../js/ui/status/volume.js:316
-msgid "Sound Settings"
-msgstr "ئاۋاز تەڭشەكلىرى"
+#: js/ui/status/network.js:62
+msgid ""
+msgstr "<يوچۇن>"
+
+#: js/ui/status/network.js:1059
+msgid "Secure"
+msgstr "بىخەتەر"
+
+#: js/ui/status/network.js:1059
+msgid "Not secure"
+msgstr "بىخەتەر ئەمەس"
+
+#: js/ui/status/network.js:1060
+#, javascript-format
+msgid "Signal strength %s%%"
+msgstr "سىگنال كۈچلۈكلۈكى %s%%"
+
+#. translators: The first placeholder is the network name, the second and indication whether it is secure, and the last the signal strength indication
+#: js/ui/status/network.js:1062
+#, javascript-format
+msgid "%s, %s, %s"
+msgstr "%s, %s, %s"
+
+#. Translators: %s is a network identifier
+#: js/ui/status/network.js:1164
+#, javascript-format
+msgid "%s Hotspot"
+msgstr "%s قىزىق نۇقتا"
+
+#: js/ui/status/network.js:1435
+#, javascript-format
+msgid "%d connected"
+msgid_plural "%d connected"
+msgstr[0] "%d باغلاندى"
+
+#: js/ui/status/network.js:1533 js/ui/status/network.js:1549
+msgid "VPN"
+msgstr "VPN"
+
+#: js/ui/status/network.js:1534
+msgid "VPN Settings"
+msgstr "VPN تەڭشەك"
+
+#: js/ui/status/network.js:1794
+msgid "Wi–Fi"
+msgstr "Wi–Fi"
+
+#: js/ui/status/network.js:1796
+msgid "All Networks"
+msgstr "بارلىق تور"
+
+#: js/ui/status/network.js:1893
+msgid "Wired Connections"
+msgstr "سىملىق باغلىنىش"
+
+#: js/ui/status/network.js:1894
+msgid "Wired Settings"
+msgstr "سىملىق تەڭشەك"
+
+#: js/ui/status/network.js:1908
+msgid "Bluetooth Tethers"
+msgstr "كۆكچىش ھەمبەھىر"
+
+#. Translators: "Tether" from "Bluetooth Tether"
+#: js/ui/status/network.js:1915
+msgid "Tether"
+msgstr "تور ھەمبەھىر"
+
+#: js/ui/status/network.js:1928
+msgid "Mobile Connections"
+msgstr "كۆچمە ئۈسكۈنە باغلىنىش"
+
+#: js/ui/status/network.js:1930
+msgid "Mobile Broadband Settings"
+msgstr "كۆچمە كەڭ بەلباغ تەڭشىكى"
+
+#. Translators: "Mobile" from "Mobile Broadband"
+#: js/ui/status/network.js:1939
+msgid "Mobile"
+msgstr "كۆچمە ئۈسكۈنە"
+
+#: js/ui/status/network.js:1973
+msgid "Sign Into Wi–Fi Network"
+msgstr "Wi-Fi تورىغا تىزىمغا كىر"
+
+#: js/ui/status/network.js:2160
+msgid "Connection failed"
+msgstr "باغلىنالمىدى"
+
+#: js/ui/status/network.js:2161
+msgid "Activation of network connection failed"
+msgstr "تور باغلىنىشىنى ئاكتىپلىيالمىدى"
+
+#: js/ui/status/nightLight.js:19
+msgid "Night Light"
+msgstr "كېچە چىرىغى"
+
+#: js/ui/status/powerProfiles.js:19
+msgctxt "Power profile"
+msgid "Performance"
+msgstr "ئۈنۈم"
+
+#: js/ui/status/powerProfiles.js:24
+msgctxt "Power profile"
+msgid "Balanced"
+msgstr "تەڭپۇڭ"
+
+#: js/ui/status/powerProfiles.js:29
+msgctxt "Power profile"
+msgid "Power Saver"
+msgstr "توك تېجىگۈچ"
+
+#: js/ui/status/powerProfiles.js:39 js/ui/status/powerProfiles.js:69
+msgid "Power Mode"
+msgstr "توك مەنبە ھالىتى"
+
+#: js/ui/status/powerProfiles.js:71
+msgid "Power Settings"
+msgstr "توك مەنبە تەڭشىكى"
+
+#: js/ui/status/remoteAccess.js:74
+msgid "Stop Screencast"
+msgstr "ئېكران سىن خاتىرىلەشنى توختات"
+
+#: js/ui/status/remoteAccess.js:144
+msgid "Stop Screen Sharing"
+msgstr "ئېكراننى ھەمبەھىرنى توختات"
+
+#: js/ui/status/rfkill.js:99
+msgid "Airplane Mode"
+msgstr "ئايروپىلان ھالىتى"
+
+#: js/ui/status/system.js:168
+msgid "Power Off Menu"
+msgstr "توكنى ئۈز توپچە"
+
+#: js/ui/status/system.js:176
+msgid "Suspend"
+msgstr "توڭلات"
+
+#: js/ui/status/system.js:181
+msgid "Restart…"
+msgstr "قايتا قوزغات..."
+
+#: js/ui/status/system.js:186
+msgid "Power Off…"
+msgstr "توكنى ئۈز…"
+
+#: js/ui/status/system.js:193 subprojects/extensions-app/data/ui/extensions-window.ui:124
+msgid "Log Out…"
+msgstr "تىزىمدىن چىق..."
+
+#: js/ui/status/system.js:198
+msgid "Switch User…"
+msgstr "ئىشلەتكۈچى ئالماشتۇر…"
+
+#: js/ui/status/system.js:242
+msgctxt "action"
+msgid "Lock Screen"
+msgstr "ئېكراننى قۇلۇپلا"
+
+#: js/ui/status/thunderbolt.js:308
+msgid "Unknown Thunderbolt device"
+msgstr "يوچۇن چاقماق ئۈسكۈنە"
+
+#: js/ui/status/thunderbolt.js:309
+msgid "New device has been detected while you were away. Please disconnect and reconnect the device to start using it."
+msgstr "سىز ئايرىلغاندىن كېيىن يېڭى ئۈسكۈنە بايقالدى. ئۇنى ئىشلىتىش ئۈچۈن ئۈسكۈنىنى ئۈزۈپ قايتا باغلاڭ."
+
+#: js/ui/status/thunderbolt.js:312
+msgid "Unauthorized Thunderbolt device"
+msgstr "دەلىللەنمىگەن چاقماق ئۈسكۈنە"
+
+#: js/ui/status/thunderbolt.js:313
+msgid "New device has been detected and needs to be authorized by an administrator"
+msgstr "يېڭى ئۈسكۈنە بايقالدى ۋە باشقۇرغۇچى دەلىللىشى كېرەك"
+
+#: js/ui/status/thunderbolt.js:319
+msgid "Thunderbolt authorization error"
+msgstr "چاقماق ئۈسكۈنە دەلىللەش خاتالىقى"
+
+#: js/ui/status/thunderbolt.js:320
+#, javascript-format
+msgid "Could not authorize the Thunderbolt device: %s"
+msgstr "چاقماق ئۈسكۈنىنى دەلىللىيەلمەيدۇ: %s"
+
+#: js/ui/status/volume.js:218
+msgid "Volume changed"
+msgstr "ئاۋاز مىقدارى ئۆزگەردى"
+
+#: js/ui/status/volume.js:231
+msgid "Unmute"
+msgstr "ئۈنلۈك"
+
+#: js/ui/status/volume.js:231
+msgid "Mute"
+msgstr "ئۈنسىز"
+
+#: js/ui/status/volume.js:293
+msgid "Volume"
+msgstr "ئاۋاز مىقدارى"
+
+#: js/ui/status/volume.js:309
+msgid "Sound Output"
+msgstr "ئاۋاز چىقىرىش"
+
+#: js/ui/status/volume.js:384
+msgid "Sound Input"
+msgstr "ئاۋاز كىرگۈزۈش"
+
+#. Translators: this is for display mirroring i.e. cloning.
+#. * Try to keep it under around 15 characters.
+#.
+#: js/ui/switchMonitor.js:20
+msgid "Mirror"
+msgstr "تەسۋىر"
+
+#. Translators: this is for the desktop spanning displays.
+#. * Try to keep it under around 15 characters.
+#.
+#: js/ui/switchMonitor.js:29
+msgid "Join Displays"
+msgstr "كۆرسەتكۈچنى جىپىسلا"
+
+#. Translators: this is for using only external displays.
+#. * Try to keep it under around 15 characters.
+#.
+#: js/ui/switchMonitor.js:39
+msgid "External Only"
+msgstr "سىرتىدىكىلا"
+
+#. Translators: this is for using only the laptop display.
+#. * Try to keep it under around 15 characters.
+#.
+#: js/ui/switchMonitor.js:47
+msgid "Built-in Only"
+msgstr "ئىچىدىكىلا"
+
+#. Translators: This is a time format for a date in
+#. long format
+#: js/ui/unlockDialog.js:384
+msgid "%A %B %-d"
+msgstr "%m-ئاينىڭ %d-كۈنى %A"
+
+#: js/ui/unlockDialog.js:390
+msgid "Swipe up to unlock"
+msgstr "ئۈستىگە سىيرىلسا قۇلۇپ ئاچىدۇ"
+
+#: js/ui/unlockDialog.js:391
+msgid "Click or press a key to unlock"
+msgstr "قۇلۇپ ئېچىشتا كۇنۇپكا بېسىلىدۇ ياكى چېكىلىدۇ"
+
+#: js/ui/unlockDialog.js:576
+msgid "Unlock Window"
+msgstr "كۆزنەكنى قۇلۇپلا"
-#: ../js/ui/status/bluetooth.js:322
+#: js/ui/unlockDialog.js:585
+msgid "Log in as another user"
+msgstr "باشقا ئىشلەتكۈچى سۈپىتىدە كىر"
+
+#: js/ui/welcomeDialog.js:47
+#, javascript-format
+msgid "GNOME %s"
+msgstr "GNOME %s"
+
+#: js/ui/welcomeDialog.js:51
+#, javascript-format
+msgid "Welcome to %s"
+msgstr " %sغا خۇش كەپسىز"
+
+#: js/ui/welcomeDialog.js:52
+msgid "If you want to learn your way around, check out the tour"
+msgstr "ئەگەر ئىشلىتىش ئۇسۇلىنى ئۆگەنمەكچى بولسىڭىز، يېتەكچىگە ئەگىشىڭ"
+
+#: js/ui/welcomeDialog.js:66
+msgid "Take Tour"
+msgstr "ساياھەت يېتەكچى"
+
+#: js/ui/windowAttentionHandler.js:18
+#, javascript-format
+msgid "“%s” is ready"
+msgstr "«%s» تەييار"
+
+#. Translators: This string should be shorter than 30 characters
+#: js/ui/windowManager.js:68
+msgid "Keep these display settings?"
+msgstr "بۇ كۆرسىتىش تەڭشىكىنى ساقلاپ قالامدۇ؟"
+
+#: js/ui/windowManager.js:78
+msgid "Revert Settings"
+msgstr "تەڭشەكنى ئەسلىگە كەلتۈر"
+
+#: js/ui/windowManager.js:83
+msgid "Keep Changes"
+msgstr "ئۆزگەرتىشنى ساقلاپ قال"
+
+#: js/ui/windowManager.js:103
+#, javascript-format
+msgid "Settings changes will revert in %d second"
+msgid_plural "Settings changes will revert in %d seconds"
+msgstr[0] "تەڭشەك ئۆزگەرتىش %d سېكۇنتتا ئەسلىگە كەلتۈرۈلىدۇ"
+
+#. Translators: This represents the size of a window. The first number is
+#. * the width of the window and the second is the height.
+#: js/ui/windowManager.js:500
+#, javascript-format
+msgid "%d × %d"
+msgstr "%d × %d"
+
+#. Translators: entry in the window right click menu.
+#: js/ui/windowMenu.js:28
+msgctxt "window-menu"
+msgid "Take Screenshot"
+msgstr "ئېكران كۆرۈنۈشى تۇت"
+
+#: js/ui/windowMenu.js:40
+msgid "Hide"
+msgstr "يوشۇر"
+
+#: js/ui/windowMenu.js:47
+msgid "Restore"
+msgstr "ئەسلىگە كەلتۈر"
+
+#: js/ui/windowMenu.js:51
+msgid "Maximize"
+msgstr "چوڭايت"
+
+#: js/ui/windowMenu.js:58
+msgid "Move"
+msgstr "يۆتكە"
+
+#: js/ui/windowMenu.js:78
+msgid "Resize"
+msgstr "چوڭلۇقىنى ئۆزگەرت"
+
+#: js/ui/windowMenu.js:98
+msgid "Always on Top"
+msgstr "ھەمىشە چوققىدا"
+
+#: js/ui/windowMenu.js:117
+msgid "Always on Visible Workspace"
+msgstr "ھەمىشە كۆرۈنۈشچان خىزمەت بوشلۇقىدا"
+
+#: js/ui/windowMenu.js:131
+msgid "Move to Workspace Left"
+msgstr "سولدىكى خىزمەت بوشلۇقىغا يۆتكە"
+
+#: js/ui/windowMenu.js:137
+msgid "Move to Workspace Right"
+msgstr "ئوڭدىكى خىزمەت بوشلۇقىغا يۆتكە"
+
+#: js/ui/windowMenu.js:143
+msgid "Move to Workspace Up"
+msgstr "ئۈستىدىكى خىزمەت بوشلۇقىغا يۆتكە"
+
+#: js/ui/windowMenu.js:149
+msgid "Move to Workspace Down"
+msgstr "ئاستىدىكى خىزمەت بوشلۇقىغا يۆتكە"
+
+#: js/ui/windowMenu.js:167
+msgid "Move to Monitor Up"
+msgstr "ئۈستىدىكى كۆرسەتكۈچكە يۆتكە"
+
+#: js/ui/windowMenu.js:176
+msgid "Move to Monitor Down"
+msgstr "ئاستىدىكى كۆرسەتكۈچكە يۆتكە"
+
+#: js/ui/windowMenu.js:185
+msgid "Move to Monitor Left"
+msgstr "سولدىكى كۆرسەتكۈچكە يۆتكە"
+
+#: js/ui/windowMenu.js:194
+msgid "Move to Monitor Right"
+msgstr "ئوڭدىكى كۆرسەتكۈچكە يۆتكە"
+
+#: js/ui/windowMenu.js:202
+msgid "Close"
+msgstr "ياپ"
+
+#: src/main.c:512 subprojects/extensions-tool/src/main.c:336
+msgid "Print version"
+msgstr "نەشرىنى باس"
+
+#: src/main.c:518
+msgid "Mode used by GDM for login screen"
+msgstr "كىرىش ئېكرانىدا GDM ئىشلىتىدىغان ئۇسۇل"
+
+#: src/main.c:524
+msgid "Use a specific mode, e.g. “gdm” for login screen"
+msgstr "بەلگىلەنگەن ئۇسۇلنى ئىشلىتىدۇ، مەسىلەن، تىزىمغا كىرىش ئېكرانىغا ئىشلىتىدىغان «gdm»"
+
+#: src/main.c:530
+msgid "List possible modes"
+msgstr "بارلىق ئۇسۇلنى تىزىپ كۆرسەت"
+
+#: src/main.c:536
+msgid "Force animations to be enabled"
+msgstr "جانلاندۇرۇمنى مەجبۇرىي قوزغات"
+
+#: src/shell-app.c:267
+msgctxt "program"
+msgid "Unknown"
+msgstr "يوچۇن"
+
+#: src/shell-app.c:518
#, c-format
-msgid "Authorization request from %s"
-msgstr "‹%s› تىن كەلگەن دەلىللەش ئىلتىماسى"
+msgid "Failed to launch “%s”"
+msgstr "«%s» نى قوزغىتالمىدى"
+
+#: src/shell-keyring-prompt.c:779
+msgid "Passwords do not match"
+msgstr "ئىم ماس كەلمىدى"
+
+#: src/shell-keyring-prompt.c:787
+msgid "Password cannot be blank"
+msgstr "ئىم قۇرۇق بولسا بولمايدۇ"
-#: ../js/ui/status/bluetooth.js:328
+#: src/shell-polkit-authentication-agent.c:344
+msgid "Authentication dialog was dismissed by the user"
+msgstr "كىملىك دەلىللەش سۆزلەشكۈنى ئىشلەتكۈچى تاقىدى"
+
+#: src/st/st-icon-theme.c:1859
#, c-format
-msgid "Device %s wants access to the service '%s'"
-msgstr "ئۈسكۈنە %s مۇلازىمەت ‹%s› نى زىيارەت قىلماقچى"
+msgid "Icon '%s' not present in theme %s"
+msgstr "%2$s ئۆرنەكتە «%1$s» سىنبەلگە كۆرۈنمىدى"
-#: ../js/ui/status/bluetooth.js:330
-msgid "Always grant access"
-msgstr "ھەمىشە زىيارەتكە رۇخسەت"
+#: src/st/st-icon-theme.c:3452 src/st/st-icon-theme.c:3755
+msgid "Failed to load icon"
+msgstr "سىنبەلگە يۈكلىيەلمىدى"
-#: ../js/ui/status/bluetooth.js:331
-msgid "Grant this time only"
-msgstr "بۇ قېتىمغىلا رۇخسەت"
+#: subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in:6
+msgid "Manage your GNOME Extensions"
+msgstr "Gnome كېڭەيتىلمىڭىزنى باشقۇرىدۇ"
-#: ../js/ui/status/bluetooth.js:332
-msgid "Reject"
-msgstr "رەت قىل"
+#. developer_name tag deprecated with Appstream 1.0
+#: subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in:20
+msgid "The GNOME Project"
+msgstr "GNOME قۇرۇلۇشى"
+
+#: subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in:52
+msgid "GNOME Extensions handles updating extensions, configuring extension preferences and removing or disabling unwanted extensions."
+msgstr "GNOME كېڭەيتىلمىسى كېڭەيتىلمە يېڭىلاش، كېڭەيتىلمە مايىللىقىنى سەپلەش ۋە لازىمى يوق كېڭەيتىلمىنى چىقىرىۋېتىش ياكى چەكلىشىنى بىر تەرەپ قىلىدۇ."
+
+#: subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in:69
+msgid "Main Window"
+msgstr "ئاساسىي كۆزنەك"
-#. Translators: argument is the device short name
-#: ../js/ui/status/bluetooth.js:359
+#: subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in:73
+msgid "Available Updates"
+msgstr "ئىشلىتىلىشچان يېڭىلانما"
+
+#: subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in:77
+msgid "Search View"
+msgstr "ئىزدەش كۆرۈنۈشى"
+
+#: subprojects/extensions-app/data/org.gnome.Extensions.desktop.in.in:7
+msgid "Configure GNOME Shell Extensions"
+msgstr "GNOME Shell كېڭەيتىلمىسىنى سەپلەيدۇ"
+
+#: subprojects/extensions-app/js/extensionManager.js:237
+#, javascript-format
+msgid "The installed version of this extension (%s) is incompatible with the current version of GNOME (%s). The extension has been disabled."
+msgstr "بۇ كېڭەيتىلمە (%s) نىڭ ئورنىتىلغان نەشرى بىلەن نۆۋەتتىكى GNOME (%s) نەشرى ماسلاشمايدۇ. كېڭەيتىلمە چەكلەنگەن."
+
+#: subprojects/extensions-app/js/extensionManager.js:238
+#, javascript-format
+msgid "The installed version of this extension is incompatible with the current version of GNOME (%s). The extension has been disabled."
+msgstr "بۇ كېڭەيتىلمىنىڭ ئورنىتىلغان نەشرى بىلەن نۆۋەتتىكى GNOME (%s) نەشرى ماسلاشمايدۇ. كېڭەيتىلمە چەكلەنگەن."
+
+#: subprojects/extensions-app/js/extensionManager.js:242
+msgid "An error has occurred in this extension. This could cause issues elsewhere in the system. It is recommended to turn the extension off until the error is resolved."
+msgstr "بۇ كېڭەيتىلمىدە خاتالىق كۆرۈلدى. بۇ سىستېمىنىڭ باشقا بۆلەكلىرىدە مەسىلە كەلتۈرۈپ چىقىرىشى مۇمكىن. مەسىلە ھەل قىلىنىشتىن ئىلگىرى كېڭەيتىلمىنى چەكلەش تەۋسىيە قىلىنىدۇ."
+
+#. translators: Details for an extension error
+#: subprojects/extensions-app/js/extensionManager.js:248
+msgid "Error details:"
+msgstr "خاتالىق تەپسىلاتى:"
+
+#: subprojects/extensions-app/js/extensionRow.js:82
+#, javascript-format
+msgid "Version %s"
+msgstr "نەشر %s"
+
+#: subprojects/extensions-app/js/extensionsWindow.js:113
+#, javascript-format
+msgid "Remove “%s”?"
+msgstr "«%s» نى چىقىرىۋېتەمدۇ؟"
+
+#: subprojects/extensions-app/js/extensionsWindow.js:114
+msgid "If you remove the extension, you need to return to download it if you want to enable it again"
+msgstr "ئەگەر كېڭەيتىلمىنى چىقىرىۋەتسىڭىز، ئۇنى قايتا قوزغاتماقچى بولسىڭىز يەنە قايتا چۈشۈرۈشىڭىز كېرەك"
+
+#: subprojects/extensions-app/js/extensionsWindow.js:117
+msgid "_Cancel"
+msgstr "ۋاز كەچ(_C)"
+
+#: subprojects/extensions-app/js/extensionsWindow.js:118
+msgid "_Remove"
+msgstr "چىقىرىۋەت(_R)"
+
+#: subprojects/extensions-app/js/extensionsWindow.js:158
+msgid "translator-credits"
+msgstr ""
+"تەرجىمان تۆھپىسى\n"
+" Gheyret Kenji \n"
+"ئابدۇقادىر ئابلىز "
+
+#: subprojects/extensions-app/js/extensionsWindow.js:203
+#, javascript-format
+msgid "%d extension will be updated on next login."
+msgid_plural "%d extensions will be updated on next login."
+msgstr[0] "كېيىنكى قېتىم تىزىمغا كىرگەندە %d كېڭەيتىلمە يېڭىلىنىدۇ."
+
+#: subprojects/extensions-app/data/ui/extension-row.ui:13
+msgid "Error Details"
+msgstr "خاتالىق تەپسىلاتى"
+
+#: subprojects/extensions-app/data/ui/extension-row.ui:51
+msgid "Updates Details"
+msgstr "يېڭىلاش تەپسىلاتى"
+
+#: subprojects/extensions-app/data/ui/extension-row.ui:68
+msgid "A new version of this extension is ready and will be loaded on next login."
+msgstr "بۇ كېڭەيتىلمىنىڭ يېڭى نەشرى تەييار، كېيىنكى قېتىم تىزىمغا كىرگەندە يۈكلىنىدۇ."
+
+#: subprojects/extensions-app/data/ui/extension-row.ui:100
+msgid "Extension Details"
+msgstr "كېڭەيتىلمە تەپسىلاتى"
+
+#: subprojects/extensions-app/data/ui/extension-row.ui:188
+msgid "_Website"
+msgstr "تور بېكەت(_W)"
+
+#: subprojects/extensions-app/data/ui/extension-row.ui:215
+msgid "_Settings"
+msgstr "تەڭشەك(_S)"
+
+#: subprojects/extensions-app/data/ui/extension-row.ui:242
+msgid "_Remove…"
+msgstr "چىقىرىۋەت(_R)…"
+
+#: subprojects/extensions-app/data/ui/extensions-window.ui:6
+msgid "Keyboard Shortcuts"
+msgstr "ھەرپتاختا تېزلەتمىسى"
+
+#: subprojects/extensions-app/data/ui/extensions-window.ui:10
+msgid "About Extensions"
+msgstr "كېڭەيتىلمە ھەققىدە"
+
+#: subprojects/extensions-app/data/ui/extensions-window.ui:64
+msgid "Main Menu"
+msgstr "ئاساسىي تىزىملىك"
+
+#: subprojects/extensions-app/data/ui/extensions-window.ui:106
+msgid "Search extensions"
+msgstr "ئىزدەش كېڭەيتىلمىسى"
+
+#: subprojects/extensions-app/data/ui/extensions-window.ui:134
+msgid "_Extensions"
+msgstr "كېڭەيتىلمە(_E)"
+
+#: subprojects/extensions-app/data/ui/extensions-window.ui:139
+msgid "More Information"
+msgstr "تېخىمۇ كۆپ ئۇچۇر"
+
+#: subprojects/extensions-app/data/ui/extensions-window.ui:151
+msgid "Extensions can cause performance and stability issues. It is recommended to disable all extensions if you experience problems with your system."
+msgstr "كېڭەيتىلمە ئۈنۈم ۋە مۇقىملىق مەسىلىسىنى پەيدا قىلىشى مۇمكىن. ئەگەر سىستېمىڭىز مەسىلىگە يولۇقسا بارلىق كېڭەيتىلمىنى چەكلەش تەۋسىيە قىلىنىدۇ."
+
+#: subprojects/extensions-app/data/ui/extensions-window.ui:178
+msgid "User Extensions"
+msgstr "ئىشلەتكۈچى كېڭەيتىلمىسى"
+
+#: subprojects/extensions-app/data/ui/extensions-window.ui:198
+msgid "System Extensions"
+msgstr "سىستېما كېڭەيتىلمىسى"
+
+#: subprojects/extensions-app/data/ui/extensions-window.ui:233
+msgid "Search Results"
+msgstr "ئىزدەش نەتىجىسى"
+
+#: subprojects/extensions-app/data/ui/extensions-window.ui:252
+msgid "No Results Found"
+msgstr "ھېچقانداق نەتىجە تېپىلمىدى"
+
+#: subprojects/extensions-app/data/ui/extensions-window.ui:253
+msgid "Try a different search"
+msgstr "باشقا بىر پەرقلىق ئىزدەشنى سىناڭ"
+
+#: subprojects/extensions-app/data/ui/extensions-window.ui:264
+msgid "No Installed Extensions"
+msgstr "ئورنىتىلغان كېڭەيتىلمە يوق"
+
+#: subprojects/extensions-app/data/ui/extensions-window.ui:265
+msgid "To find and add extensions, visit extensions.gnome.org."
+msgstr "كېڭەيتىلمە ئىزدەش ۋە قوشۇشتا، extensions.gnome.org نى زىيارەت قىلىڭ."
+
+#: subprojects/extensions-app/data/ui/extensions-window.ui:276
+msgid "We’re very sorry, but it was not possible to get the list of installed extensions. Make sure you are logged into GNOME and try again."
+msgstr "كەچۈرۈم سورايمىز، ئورنىتىلغان كېڭەيتىلمە تىزىملىكىگە ئېرىشەلمىدۇق. GNOME غا تىزىمغا كىرگەنلىكىڭىزنى جەزملەپ ئاندىن قايتا سىناڭ."
+
+#: subprojects/extensions-app/data/ui/help-overlay.ui:9
+msgctxt "shortcut window"
+msgid "General"
+msgstr "ئادەتتىكى"
+
+#: subprojects/extensions-app/data/ui/help-overlay.ui:12
+msgctxt "shortcut window"
+msgid "Open Menu"
+msgstr "تىزىملىك ئاچ"
+
+#: subprojects/extensions-app/data/ui/help-overlay.ui:18
+msgctxt "shortcut window"
+msgid "Toggle Search"
+msgstr "ئىزدەشنى ئالماشتۇر"
+
+#: subprojects/extensions-app/data/ui/help-overlay.ui:24
+msgctxt "shortcut window"
+msgid "Show Shortcuts"
+msgstr "تېزلەتمىنى كۆرسەت"
+
+#: subprojects/extensions-app/data/ui/help-overlay.ui:30
+msgctxt "shortcut window"
+msgid "Quit"
+msgstr "چېكىن"
+
+#. Translators: a file path to an extension directory
+#: subprojects/extensions-tool/src/command-create.c:284
#, c-format
-msgid "Pairing confirmation for %s"
-msgstr "%s نىڭ جەزملىشىنى جۈپلەشتۈرۈۋاتىدۇ"
+msgid "The new extension was successfully created in %s.\n"
+msgstr "يېڭى كېڭەيتىلمە %s غا مۇۋەپپەقىيەتلىك قۇرۇلدى.\n"
-#: ../js/ui/status/bluetooth.js:365 ../js/ui/status/bluetooth.js:396
+#: subprojects/extensions-tool/src/command-create.c:376
#, c-format
-msgid "Device %s wants to pair with this computer"
-msgstr "ئۈسكۈنە‹%s› كومپيۇتېر بىلەن جۈپلەنمەكچى"
+msgid ""
+"Name should be a very short (ideally descriptive) string.\n"
+"Examples are: %s"
+msgstr ""
+"ئىسىم ئىنتايىن قىسقا (ئەڭ ياخشىسى تەسۋىرلەش شەكلىدىكى) ھەرپ تىزىقى بولۇشى كېرەك.\n"
+"مەسىلەن: %s"
+
+#: subprojects/extensions-tool/src/command-create.c:382 subprojects/extensions-tool/src/main.c:243
+msgid "Name"
+msgstr "ئاتى"
-#: ../js/ui/status/bluetooth.js:366
+#: subprojects/extensions-tool/src/command-create.c:396
#, c-format
-msgid "Please confirm whether the PIN '%06d' matches the one on the device."
-msgstr "ئۈسكۈنە ئۈستىدىكى بىلەن PIN ‹%06d› ماسلىشامدۇ جەزملەڭ."
+msgid ""
+"Description is a single-sentence explanation of what your extension does.\n"
+"Examples are: %s"
+msgstr ""
+"چۈشەندۈرۈش كېڭەيتىلمىنىڭ نېمە ئىش قىلىدىغانلىقى ھەققىدىكى بىر جۈملە چۈشەندۈرۈشى.\n"
+"مەسىلەن: %s"
-#. Translators: this is the verb, not the noun
-#: ../js/ui/status/bluetooth.js:369
-msgid "Matches"
-msgstr "ماسلاشتى"
+#: subprojects/extensions-tool/src/command-create.c:402 subprojects/extensions-tool/src/main.c:246
+msgid "Description"
+msgstr "چۈشەندۈرۈش"
-#: ../js/ui/status/bluetooth.js:370
-msgid "Does not match"
-msgstr "ماسلاشمىدى"
+#: subprojects/extensions-tool/src/command-create.c:416
+msgid ""
+"UUID is a globally-unique identifier for your extension.\n"
+"This should be in the format of an email address (clicktofocus@janedoe.example.com)\n"
+msgstr ""
+"UUID كېڭەيتىلمىڭىزنىڭ دۇنيا مىقياسىدىكى بىردىنبىر پەرقلەندۈرگۈچىسى.\n"
+"بۇ ئېلخەت ئادرېسى پىچىمىدا بولۇشى كېرەك (clicktofocus@janedoe.example.com)\n"
-#: ../js/ui/status/bluetooth.js:389
-#, c-format
-msgid "Pairing request for %s"
-msgstr "%s دىن كەلگەن جۈپلەش ئىلتىماسى"
+#: subprojects/extensions-tool/src/command-create.c:443
+msgid "Choose one of the available templates:\n"
+msgstr "ئىشلىتىلىشچان قېلىپتىن بىرى تاللىنىدۇ:\n"
-#: ../js/ui/status/bluetooth.js:397
-msgid "Please enter the PIN mentioned on the device."
-msgstr "ئۈسكۈنىسىدە يوللىغان PIN نومۇرىنى كىرگۈزۈڭ."
+#: subprojects/extensions-tool/src/command-create.c:457
+msgid "Template"
+msgstr "قېلىپ"
-#: ../js/ui/status/bluetooth.js:414
-msgid "OK"
-msgstr "تامام"
+#: subprojects/extensions-tool/src/command-create.c:515
+msgid "The unique identifier of the new extension"
+msgstr "يېڭى كېڭەيتىلمىنىڭ بىردىنبىر پەرقلەندۈرگۈچىسى"
-#: ../js/ui/status/keyboard.js:368
-msgid "Show Keyboard Layout"
-msgstr "ھەرپ تاختا ئورۇنلاشتۇرۇشىنى كۆرسىتىش"
+#: subprojects/extensions-tool/src/command-create.c:518
+msgid "NAME"
+msgstr "ئاتى"
-#: ../js/ui/status/keyboard.js:373
-msgid "Region & Language Settings"
-msgstr "رايون ۋە تىل تەڭشىكى"
+#: subprojects/extensions-tool/src/command-create.c:519
+msgid "The user-visible name of the new extension"
+msgstr "يېڭى كېڭەيتىلمىنىڭ ئىشلەتكۈچىگە كۆرۈنىدىغان ئاتى"
-#: ../js/ui/status/lockScreenMenu.js:43
-msgid "Volume, network, battery"
-msgstr "ئاۋاز مىقدارى، تور، توكدان"
+#: subprojects/extensions-tool/src/command-create.c:521
+msgid "DESCRIPTION"
+msgstr "چۈشەندۈرۈش"
-#: ../js/ui/status/network.js:104
-msgid ""
-msgstr "<نامەلۇم>"
+#: subprojects/extensions-tool/src/command-create.c:523
+msgid "A short description of what the extension does"
+msgstr "كېڭەيتىلمىنىڭ نېمە ئىش قىلىدىغانلىقى ھەققىدىكى قىسقا چۈشەندۈرۈش"
-#. Translators: this indicates that wireless or wwan is disabled by hardware killswitch
-#: ../js/ui/status/network.js:200
-msgid "disabled"
-msgstr "چەكلەنگەن"
+#: subprojects/extensions-tool/src/command-create.c:525 subprojects/extensions-tool/src/command-pack.c:455
+msgid "DOMAIN"
+msgstr "دائىرە"
-#. Translators: this is for network devices that are physically present but are not
-#. under NetworkManager's control (and thus cannot be used in the menu)
-#: ../js/ui/status/network.js:458
-msgid "unmanaged"
-msgstr "باشقۇرۇلمىغان"
-
-#. Translators: this is for network connections that require some kind of key or password
-#: ../js/ui/status/network.js:469 ../js/ui/status/network.js:1549
-msgid "authentication required"
-msgstr "كىملىك دەلىللەش زۆرۈر"
+#: subprojects/extensions-tool/src/command-create.c:527
+msgid "The gettext domain used by the extension"
+msgstr "كېڭەيتىلمە ئىشلىتىدىغان gettext دائىرە"
-#. Translators: this is for devices that require some kind of firmware or kernel
-#. module, which is missing
-#: ../js/ui/status/network.js:479
-msgid "firmware missing"
-msgstr "مۇقىم دېتال كەم"
-
-#. Translators: this is for wired network devices that are physically disconnected
-#: ../js/ui/status/network.js:486
-msgid "cable unplugged"
-msgstr "كابېل چېتىلمىدى"
-
-#. Translators: this is for a network device that cannot be activated (for example it
-#. is disabled by rfkill, or it has no coverage
-#: ../js/ui/status/network.js:491
-msgid "unavailable"
-msgstr "ئىشلەتكىلى بولمايدۇ"
-
-#: ../js/ui/status/network.js:493 ../js/ui/status/network.js:1551
-msgid "connection failed"
-msgstr "باغلىنىش مەغلۇپ بولدى"
-
-#: ../js/ui/status/network.js:552 ../js/ui/status/network.js:1435
-#: ../js/ui/status/network.js:1627
-msgid "More…"
-msgstr "تېخىمۇ كۆپ…"
-
-#. TRANSLATORS: this is the indication that a connection for another logged in user is active,
-#. and we cannot access its settings (including the name)
-#: ../js/ui/status/network.js:588 ../js/ui/status/network.js:1365
-msgid "Connected (private)"
-msgstr "باغلاندى (شەخسىي)"
-
-#: ../js/ui/status/network.js:667
-msgid "Wired"
-msgstr "سىملىق"
-
-#: ../js/ui/status/network.js:668
-msgid "Auto Ethernet"
-msgstr "ئاپتوماتىك Ethernet"
-
-#: ../js/ui/status/network.js:695
-msgid "Mobile broadband"
-msgstr "كۆچمە كەڭ بەلۋاغ"
-
-#: ../js/ui/status/network.js:728
-msgid "Auto broadband"
-msgstr "ئاپتوماتىك كۆچمە كەڭ بەلۋاغ"
-
-#: ../js/ui/status/network.js:731
-msgid "Auto dial-up"
-msgstr "ئاپتوماتىك نومۇر بۇرا"
-
-#. TRANSLATORS: this the automatic wireless connection name (including the network name)
-#: ../js/ui/status/network.js:861 ../js/ui/status/network.js:1382
-#, c-format
-msgid "Auto %s"
-msgstr "ئاپتوماتىك %s"
-
-#: ../js/ui/status/network.js:863
-msgid "Auto bluetooth"
-msgstr "ئاپتوماتىك كۆكچىش"
-
-#: ../js/ui/status/network.js:1384
-msgid "Auto wireless"
-msgstr "ئاپتوماتىك سىمسىز تور"
-
-#: ../js/ui/status/network.js:1729
-msgid "Enable networking"
-msgstr "تور ئۇلاشنى قوزغات"
-
-#: ../js/ui/status/network.js:1771
-msgid "Wi-Fi"
-msgstr "Wi-Fi"
-
-#: ../js/ui/status/network.js:1790
-msgid "Network Settings"
-msgstr "تور تەڭشەكلىرى"
-
-#: ../js/ui/status/network.js:1807
-msgid "Network Manager"
-msgstr "تور باشقۇرغۇچ"
+#: subprojects/extensions-tool/src/command-create.c:529 subprojects/extensions-tool/src/command-pack.c:448
+msgid "SCHEMA"
+msgstr "لايىھە"
-#: ../js/ui/status/network.js:1897
-msgid "Connection failed"
-msgstr "باغلىنىش مەغلۇپ بولدى"
+#: subprojects/extensions-tool/src/command-create.c:531
+msgid "The GSettings schema used by the extension"
+msgstr "كېڭەيتىلمە ئىشلەتكەن GSettings لايىھەسى"
-#: ../js/ui/status/network.js:1898
-msgid "Activation of network connection failed"
-msgstr "تور باغلىنىشىنى ئاكتىپلاش مەغلۇپ بولدى"
+#: subprojects/extensions-tool/src/command-create.c:534
+msgid "TEMPLATE"
+msgstr "قېلىپ"
-#: ../js/ui/status/network.js:2276
-msgid "Networking is disabled"
-msgstr "تورغا باغلىنىش چەكلەنگەن"
+#: subprojects/extensions-tool/src/command-create.c:535
+msgid "The template to use for the new extension"
+msgstr "يېڭى كېڭەيتىلمە ئىشلىتىدىغان قېلىپ"
-#: ../js/ui/status/power.js:55
-msgid "Battery"
-msgstr "توكدان"
+#: subprojects/extensions-tool/src/command-create.c:538
+msgid "Include prefs.js template"
+msgstr "«prefs.js» قېلىپىنى ئۆز ئىچىگە ئالىدۇ"
-#: ../js/ui/status/power.js:81
-msgid "Power Settings"
-msgstr "توك مەنبە تەڭشىكى"
+#: subprojects/extensions-tool/src/command-create.c:544
+msgid "Enter extension information interactively"
+msgstr "كېڭەيتىلمە ئۇچۇرى تەسىرلىشىشچان ھالدا كىرگۈزۈلىدۇ"
-#. 0 is reported when UPower does not have enough data
-#. to estimate battery life
-#: ../js/ui/status/power.js:99
-msgid "Estimating…"
-msgstr "مۆلچەرلەۋاتىدۇ…"
+#: subprojects/extensions-tool/src/command-create.c:552
+msgid "Create a new extension"
+msgstr "يېڭى كېڭەيتىلمە قۇر"
-#: ../js/ui/status/power.js:106
-#, c-format
-msgid "%d hour remaining"
-msgid_plural "%d hours remaining"
-msgstr[0] "%d سائەت قالدى"
+#: subprojects/extensions-tool/src/command-create.c:570 subprojects/extensions-tool/src/command-list.c:190
+msgid "Unknown arguments"
+msgstr "يوچۇن ئۆزگەرگۈچى"
+
+#: subprojects/extensions-tool/src/command-create.c:595
+msgid "UUID, name and description are required"
+msgstr "UUID، ئات ۋە چۈشەندۈرۈش زۆرۈر"
-#. TRANSLATORS: this is a time string, as in "%d hours %d minutes remaining"
-#: ../js/ui/status/power.js:109
+#: subprojects/extensions-tool/src/command-disable.c:62 subprojects/extensions-tool/src/command-enable.c:62
#, c-format
-msgid "%d %s %d %s remaining"
-msgstr "%d %s %d %s قالدى"
+msgid "Extension “%s” does not exist\n"
+msgstr "كېڭەيتىلمە «%s» مەۋجۇت ئەمەس\n"
-#: ../js/ui/status/power.js:111
-msgid "hour"
-msgid_plural "hours"
-msgstr[0] "سائەت"
+#: subprojects/extensions-tool/src/command-disable.c:98
+msgid "Disable an extension"
+msgstr "كېڭەيتىلمىنى چەكلە"
-#: ../js/ui/status/power.js:111
-msgid "minute"
-msgid_plural "minutes"
-msgstr[0] "مىنۇت"
+#: subprojects/extensions-tool/src/command-disable.c:116 subprojects/extensions-tool/src/command-enable.c:116 subprojects/extensions-tool/src/command-info.c:103 subprojects/extensions-tool/src/command-prefs.c:105 subprojects/extensions-tool/src/command-reset.c:76 subprojects/extensions-tool/src/command-uninstall.c:104
+msgid "No UUID given"
+msgstr "ھېچقانداق UUID بېرىلمىگەن"
-#: ../js/ui/status/power.js:114
-#, c-format
-msgid "%d minute remaining"
-msgid_plural "%d minutes remaining"
-msgstr[0] "%d مىنۇت قالدى"
+#: subprojects/extensions-tool/src/command-disable.c:121 subprojects/extensions-tool/src/command-enable.c:121 subprojects/extensions-tool/src/command-info.c:108 subprojects/extensions-tool/src/command-prefs.c:110 subprojects/extensions-tool/src/command-reset.c:81 subprojects/extensions-tool/src/command-uninstall.c:109
+msgid "More than one UUID given"
+msgstr "بىردىن ئارتۇق UUID بېرىلگەن"
-#: ../js/ui/status/power.js:117 ../js/ui/status/power.js:191
+#: subprojects/extensions-tool/src/command-enable.c:98
+msgid "Enable an extension"
+msgstr "كېڭەيتىلمىنى قوزغات"
+
+#: subprojects/extensions-tool/src/command-info.c:50 subprojects/extensions-tool/src/command-list.c:66 subprojects/extensions-tool/src/main.c:150
+msgid "Failed to connect to GNOME Shell\n"
+msgstr "GNOME Shell گە باغلىنالمىدى\n"
+
+#: subprojects/extensions-tool/src/command-info.c:59 subprojects/extensions-tool/src/main.c:159
#, c-format
-msgctxt "percent of battery remaining"
-msgid "%d%%"
-msgstr "%d%%"
+msgid "Extension “%s” doesn't exist\n"
+msgstr "كېڭەيتىلمە «%s» مەۋجۇت ئەمەس\n"
-#: ../js/ui/status/power.js:201
-msgid "AC Adapter"
-msgstr "ئۆزگىرىشچان توك ماسلاشتۇرغۇچ"
+#: subprojects/extensions-tool/src/command-info.c:85
+msgid "Show extensions info"
+msgstr "كېڭەيتىلمە ئۇچۇرىنى كۆرسەت"
-#: ../js/ui/status/power.js:203
-msgid "Laptop Battery"
-msgstr "يان كومپيۇتېر توكدانى"
+#: subprojects/extensions-tool/src/command-install.c:190
+msgid "Overwrite an existing extension"
+msgstr "مەۋجۇت كېڭەيتىلمىنى قاپلا"
-#: ../js/ui/status/power.js:205
-msgid "UPS"
-msgstr "UPS"
+#: subprojects/extensions-tool/src/command-install.c:192
+msgid "EXTENSION_BUNDLE"
+msgstr "كېڭەيتىلمە بوغچىسى"
-#: ../js/ui/status/power.js:207
-msgid "Monitor"
-msgstr "ئېكران"
+#: subprojects/extensions-tool/src/command-install.c:201
+msgid "Install an extension bundle"
+msgstr "كېڭەيتىلمە بوغچىسىنى ئورنات"
-#: ../js/ui/status/power.js:209
-msgid "Mouse"
-msgstr "چاشقىنەك"
-
-#: ../js/ui/status/power.js:213
-msgid "PDA"
-msgstr "PDA"
-
-#: ../js/ui/status/power.js:215
-msgid "Cell Phone"
-msgstr "يانفون"
-
-#: ../js/ui/status/power.js:217
-msgid "Media Player"
-msgstr "ۋاسىتە قويغۇ"
-
-#: ../js/ui/status/power.js:219
-msgid "Tablet"
-msgstr "سەزگۈر تاختا"
-
-#: ../js/ui/status/power.js:221
-msgid "Computer"
-msgstr "كومپيۇتېر"
+#: subprojects/extensions-tool/src/command-install.c:219
+msgid "No extension bundle specified"
+msgstr "كېڭەيتىلمە بوغچىسى بەلگىلەنمىگەن"
-#: ../js/ui/status/power.js:223
-msgctxt "device"
-msgid "Unknown"
-msgstr "نامەلۇم"
+#: subprojects/extensions-tool/src/command-install.c:225
+msgid "More than one extension bundle specified"
+msgstr "بىردىن كۆپ كېڭەيتىلمە بوغچىسى بەلگىلەنگەن"
-#: ../js/ui/status/volume.js:124
-msgid "Volume changed"
-msgstr "ئاۋاز مىقدارى ئۆزگەردى"
+#: subprojects/extensions-tool/src/command-list.c:140
+msgid "Show user-installed extensions"
+msgstr "ئىشلەتكۈچى ئورناتقان كېڭەيتىلمىنى كۆرسىتىدۇ"
-#. Translators: This is the label for audio volume
-#: ../js/ui/status/volume.js:249 ../js/ui/status/volume.js:297
-msgid "Volume"
-msgstr "ئاۋاز مىقدارى"
+#: subprojects/extensions-tool/src/command-list.c:143
+msgid "Show system-installed extensions"
+msgstr "سىستېما ئورناتقان كېڭەيتىلمىنى كۆرسىتىدۇ"
-#: ../js/ui/status/volume.js:258
-msgid "Microphone"
-msgstr "مىكروفون"
+#: subprojects/extensions-tool/src/command-list.c:146
+msgid "Show enabled extensions"
+msgstr "قوزغىتىلغان كېڭەيتىلمىنى كۆرسەت"
-#: ../js/ui/unlockDialog.js:151
-msgid "Log in as another user"
-msgstr "باشقا ئىشلەتكۈچى سۈپىتىدە كىر"
+#: subprojects/extensions-tool/src/command-list.c:149
+msgid "Show disabled extensions"
+msgstr "چەكلەنگەن كېڭەيتىلمىنى كۆرسەت"
-#: ../js/ui/unlockDialog.js:177
-msgid "Unlock Window"
-msgstr "كۆزنەكنى قۇلۇپلا"
+#: subprojects/extensions-tool/src/command-list.c:152
+msgid "Show extensions in active state"
+msgstr "ئاكتىپ ھالەتتىكى كېڭەيتىلمىنى كۆرسەت"
-#: ../js/ui/userMenu.js:193
-msgid "Available"
-msgstr "ئىشلەتكىلى بولىدۇ"
-
-#: ../js/ui/userMenu.js:196
-msgid "Busy"
-msgstr "ئالدىراش"
-
-#: ../js/ui/userMenu.js:199
-msgid "Invisible"
-msgstr "يوشۇرۇن"
+#: subprojects/extensions-tool/src/command-list.c:155
+msgid "Show extensions in inactive state"
+msgstr "ئاكتىپسىز ھالەتتىكى كېڭەيتىلمىنى كۆرسەت"
-#: ../js/ui/userMenu.js:202
-msgid "Away"
-msgstr "يوق"
+#: subprojects/extensions-tool/src/command-list.c:158
+msgid "Show extensions with preferences"
+msgstr "مايىللىق تەڭشىكى بار كېڭەيتىلمىنى كۆرسەت"
-#: ../js/ui/userMenu.js:205
-msgid "Idle"
-msgstr "بىكار"
-
-#: ../js/ui/userMenu.js:208
-msgid "Offline"
-msgstr "توردا يوق"
-
-#: ../js/ui/userMenu.js:780
-msgid "Notifications"
-msgstr "ئۇقتۇرۇشلار"
+#: subprojects/extensions-tool/src/command-list.c:161
+msgid "Show extensions with updates"
+msgstr "يېڭىلانمىسى بار كېڭەيتىلمىنى كۆرسەت"
-#: ../js/ui/userMenu.js:796
-msgid "Switch User"
-msgstr "ئىشلەتكۈچى ئالماشتۇرۇش"
+#: subprojects/extensions-tool/src/command-list.c:164
+msgid "Print extension details"
+msgstr "كېڭەيتىلمە تەپسىلاتىنى باس"
-#: ../js/ui/userMenu.js:801
-msgid "Log Out"
-msgstr "تىزىمدىن چىقىش"
+#: subprojects/extensions-tool/src/command-list.c:172
+msgid "List installed extensions"
+msgstr "ئورنىتىلغان كېڭەيتىلمە تىزىمىنى كۆرسىتىدۇ"
-#: ../js/ui/userMenu.js:821
-msgid "Install Updates & Restart"
-msgstr "يېڭىلانمىلارنى ئورنىتىپ قايتا قوزغات"
+#: subprojects/extensions-tool/src/command-pack.c:444
+msgid "FILE"
+msgstr "ھۆججەت"
-#: ../js/ui/userMenu.js:839
-msgid "Your chat status will be set to busy"
-msgstr "سىزنىڭ سۆھبەت ھالىتىڭىز ئالدىراش قىلىنىدۇ"
+#: subprojects/extensions-tool/src/command-pack.c:445
+msgid "Additional source to include in the bundle"
+msgstr "كېڭەيتىلمە بوغچىسىدا بولۇشى كېرەكلىك قوشۇمچە مەنبە"
-#: ../js/ui/userMenu.js:840
-msgid ""
-"Notifications are now disabled, including chat messages. Your online status "
-"has been adjusted to let others know that you might not see their messages."
-msgstr ""
+#: subprojects/extensions-tool/src/command-pack.c:449
+msgid "A GSettings schema that should be included"
+msgstr "بولۇشى كېرەكلىك GSettings لايىھەسى"
+
+#: subprojects/extensions-tool/src/command-pack.c:451 subprojects/extensions-tool/src/command-pack.c:462
+msgid "DIRECTORY"
+msgstr "DIRECTORY"
+
+#: subprojects/extensions-tool/src/command-pack.c:453
+msgid "The directory where translations are found"
+msgstr "تەرجىمە ئىزدەيدىغان مۇندەرىجە"
-#: ../js/ui/userMenu.js:886
-msgid "Other users are logged in."
-msgstr "باشقا ئىشلەتكۈچىلەر كىردى:"
-
-#: ../js/ui/userMenu.js:891
-msgid "Shutting down might cause them to lose unsaved work."
-msgstr "تاقالسا ساقلانمىغان خىزمەتلەر يوقىلىشى مۇمكىن."
+#: subprojects/extensions-tool/src/command-pack.c:457
+msgid "The gettext domain to use for translations"
+msgstr "تەرجىمىگە ئىشلىتىدىغان gettext دائىرە"
-#: ../js/ui/userMenu.js:918
+#: subprojects/extensions-tool/src/command-pack.c:460
+msgid "Overwrite an existing pack"
+msgstr "مەۋجۇت كېڭەيتىلمە بوغچىسىنى قاپلا"
+
+#: subprojects/extensions-tool/src/command-pack.c:464
+msgid "The directory where the pack should be created"
+msgstr "بوغچا قۇرۇشقا تېگىشلىك مۇندەرىجە"
+
+#: subprojects/extensions-tool/src/command-pack.c:466
+msgid "SOURCE_DIRECTORY"
+msgstr "مەنبە مۇندەرىجە"
+
+#: subprojects/extensions-tool/src/command-pack.c:475
+msgid "Create an extension bundle"
+msgstr "كېڭەيتىلمە بوغچىسى قۇر"
+
+#: subprojects/extensions-tool/src/command-pack.c:495
+msgid "More than one source directory specified"
+msgstr "بىردىن كۆپ مەنبە مۇندەرىجە بەلگىلەنگەن"
+
+#: subprojects/extensions-tool/src/command-prefs.c:47
#, c-format
-msgid "%s (remote)"
-msgstr "%s (يىراق)"
+msgid "Extension “%s” doesn't have preferences\n"
+msgstr "كېڭەيتىلمە «%s» نىڭ مايىللىق تەڭشىكى يوق\n"
-#: ../js/ui/userMenu.js:920
+#: subprojects/extensions-tool/src/command-prefs.c:62
#, c-format
-msgid "%s (console)"
-msgstr "%s (تىزگىن كۆزنەك)"
+msgid "Failed to open prefs for extension “%s”: %s\n"
+msgstr "كېڭەيتىلمە «%s» نىڭ مايىللىق تەڭشىكىنى ئاچالمىدى: %s\n"
-#: ../js/ui/viewSelector.js:100
-msgid "Applications"
-msgstr "پروگراممىلار"
+#: subprojects/extensions-tool/src/command-prefs.c:87
+msgid "Opens extension preferences"
+msgstr "كېڭەيتىلمە مايىللىقىنى ئاچىدۇ"
-#: ../js/ui/viewSelector.js:104
-msgid "Search"
-msgstr "ئىزدە"
+#: subprojects/extensions-tool/src/command-reset.c:58
+msgid "Reset an extension"
+msgstr "كېڭەيتىلمىنى ئەسلىگە قايتۇر"
-#: ../js/ui/wanda.js:92
-#, c-format
-msgid ""
-"Sorry, no wisdom for you today:\n"
-"%s"
-msgstr "كەچۈرۈڭ، سىزگە بۈگۈن ھېكمەتلىك سۆز يوق:\n"
-"%s"
+#: subprojects/extensions-tool/src/command-uninstall.c:49
+msgid "Cannot uninstall system extensions\n"
+msgstr "سىستېما كېڭەيتىلمىسىنى ئۆچۈرەلمەيدۇ\n"
-#: ../js/ui/wanda.js:96
+#: subprojects/extensions-tool/src/command-uninstall.c:64
#, c-format
-msgid "%s the Oracle says"
-msgstr "خەۋەرچى مۇنداق دەيدۇ %s"
+msgid "Failed to uninstall “%s”\n"
+msgstr "«%s» نى ئۆچۈرەلمىدى\n"
+
+#: subprojects/extensions-tool/src/command-uninstall.c:86
+msgid "Uninstall an extension"
+msgstr "كېڭەيتىلمىنى ئۆچۈر"
+
+#: subprojects/extensions-tool/src/main.c:76
+msgid "Do not print error messages"
+msgstr "خاتالىق ئۇچۇرىنى باسما"
+
+#: subprojects/extensions-tool/src/main.c:249
+msgid "Path"
+msgstr "يول"
+
+#: subprojects/extensions-tool/src/main.c:252
+msgid "URL"
+msgstr "تور ئادرېس"
+
+#: subprojects/extensions-tool/src/main.c:255
+msgid "Original author"
+msgstr "ئەسلى يازغۇچى"
+
+#: subprojects/extensions-tool/src/main.c:261 subprojects/extensions-tool/src/main.c:263 subprojects/extensions-tool/src/main.c:265
+msgid "Version"
+msgstr "نەشرى"
+
+#: subprojects/extensions-tool/src/main.c:268
+msgid "Enabled"
+msgstr "قوزغىتىلغان"
+
+#: subprojects/extensions-tool/src/main.c:268
+msgid "Yes"
+msgstr "ھەئە"
+
+#: subprojects/extensions-tool/src/main.c:268
+msgid "No"
+msgstr "ياق"
+
+#: subprojects/extensions-tool/src/main.c:271
+msgid "State"
+msgstr "ھالەت"
+
+#: subprojects/extensions-tool/src/main.c:309
+msgid "“version” takes no arguments"
+msgstr "«version» نىڭ ئۆزگەرگۈچىسى يوق"
+
+#: subprojects/extensions-tool/src/main.c:311 subprojects/extensions-tool/src/main.c:331
+msgid "Usage:"
+msgstr "ئىشلىتىش ئۇسۇلى:"
+
+#: subprojects/extensions-tool/src/main.c:314
+msgid "Print version information and exit."
+msgstr "نەشر ئۇچۇرىنى بېسىپ چېكىنىدۇ."
+
+#: subprojects/extensions-tool/src/main.c:329 subprojects/extensions-tool/src/main.c:332
+msgid "COMMAND"
+msgstr "بۇيرۇق"
+
+#: subprojects/extensions-tool/src/main.c:332
+msgid "[ARGS…]"
+msgstr "[ئۆزگەرگۈچى…]"
+
+#: subprojects/extensions-tool/src/main.c:334
+msgid "Commands:"
+msgstr "بۇيرۇق:"
+
+#: subprojects/extensions-tool/src/main.c:335
+msgid "Print help"
+msgstr "ياردەمنى باس"
+
+#: subprojects/extensions-tool/src/main.c:337
+msgid "Enable extension"
+msgstr "كېڭەيتىلمىنى قوزغات"
+
+#: subprojects/extensions-tool/src/main.c:338
+msgid "Disable extension"
+msgstr "كېڭەيتىلمىنى چەكلە"
+
+#: subprojects/extensions-tool/src/main.c:339
+msgid "Reset extension"
+msgstr "كېڭەيتىلمىنى ئەسلىگە قايتۇر"
-#: ../js/ui/windowAttentionHandler.js:19
+#: subprojects/extensions-tool/src/main.c:340
+msgid "Uninstall extension"
+msgstr "كېڭەيتىلمىنى ئۆچۈر"
+
+#: subprojects/extensions-tool/src/main.c:341
+msgid "List extensions"
+msgstr "كېڭەيتىلمە تىزىمىنى كۆرسەت"
+
+#: subprojects/extensions-tool/src/main.c:342 subprojects/extensions-tool/src/main.c:343
+msgid "Show extension info"
+msgstr "كېڭەيتىلمە ئۇچۇرىنى كۆرسەت"
+
+#: subprojects/extensions-tool/src/main.c:344
+msgid "Open extension preferences"
+msgstr "كېڭەيتىلمە مايىللىقىنى ئاچ"
+
+#: subprojects/extensions-tool/src/main.c:345
+msgid "Create extension"
+msgstr "كېڭەيتىلمە قۇر"
+
+#: subprojects/extensions-tool/src/main.c:346
+msgid "Package extension"
+msgstr "كېڭەيتىلمىنى بوغچىلا"
+
+#: subprojects/extensions-tool/src/main.c:347
+msgid "Install extension bundle"
+msgstr "كېڭەيتىلمە بوغچىسىنى ئورنات"
+
+#: subprojects/extensions-tool/src/main.c:349
#, c-format
-msgid "'%s' is ready"
-msgstr "‹%s› تەييار"
+msgid "Use “%s” to get detailed help.\n"
+msgstr "«%s» ئارقىلىق تەپسىلىي ياردەمگە ئېرىشىدۇ.\n"
+
+#: subprojects/extensions-tool/src/templates/00-plain.desktop.in:4
+msgid "Plain"
+msgstr "ئادەتتىكى"
+
+#: subprojects/extensions-tool/src/templates/00-plain.desktop.in:5
+msgid "An empty extension"
+msgstr "بوش كېڭەيتىلمە"
+
+#: subprojects/extensions-tool/src/templates/indicator.desktop.in:4
+msgid "Indicator"
+msgstr "كۆرسەتكۈچ"
+
+#: subprojects/extensions-tool/src/templates/indicator.desktop.in:5
+msgid "Add an icon to the top bar"
+msgstr "چوققا بالداققا سىنبەلگە قوش"
+
+#: subprojects/extensions-tool/src/templates/quick-settings.desktop.in:4
+msgid "Quick Settings Item"
+msgstr "تېز تەڭشەك تۈرى"
-#: ../src/calendar-server/evolution-calendar.desktop.in.in.h:1
-msgid "Evolution Calendar"
-msgstr "Evolution يىلنامىسى"
+#: subprojects/extensions-tool/src/templates/quick-settings.desktop.in:5
+msgid "Add an item to quick settings"
+msgstr "تېز تەڭشەككە تۈر قوش"
+
+#. translators:
+#. * The device has been disabled
+#: subprojects/gvc/gvc-mixer-control.c:1872
+msgid "Disabled"
+msgstr "چەكلەنگەن"
#. translators:
#. * The number of sound outputs on a particular device
-#: ../src/gvc/gvc-mixer-control.c:1837
+#: subprojects/gvc/gvc-mixer-control.c:1879
#, c-format
msgid "%u Output"
msgid_plural "%u Outputs"
@@ -1804,48 +3273,581 @@
#. translators:
#. * The number of sound inputs on a particular device
-#: ../src/gvc/gvc-mixer-control.c:1847
+#: subprojects/gvc/gvc-mixer-control.c:1889
#, c-format
msgid "%u Input"
msgid_plural "%u Inputs"
msgstr[0] "%u كىرگۈزۈلمە"
-#: ../src/gvc/gvc-mixer-control.c:2371
+#: subprojects/gvc/gvc-mixer-control.c:2872
msgid "System Sounds"
msgstr "سىستېما ئاۋازى"
-#: ../src/main.c:347
-msgid "Print version"
-msgstr "نەشرىنى باس"
+#~ msgid "Show the message tray"
+#~ msgstr "ئۇچۇر قوندىقىنى كۆرسىتىش"
-#: ../src/main.c:353
-msgid "Mode used by GDM for login screen"
-msgstr "كىرىش ئېكرانىدا GDM ئىشلىتىدىغان ئۇسۇل"
+#~ msgid "Whether to collect stats about applications usage"
+#~ msgstr "پروگراممىنىڭ ئىشلىتىلىشى ھەققىدىكى ستاتىستىكىنى توپلامدۇ يوق"
-#: ../src/main.c:359
-msgid "Use a specific mode, e.g. \"gdm\" for login screen"
-msgstr "كۆرسىتىلگەن ئۇسۇلنى ئىشلەتسۇن، مەسىلەن: كىرىش ئېكرانى ئۈچۈن «gdm» دېگەندەك"
+#~ msgid "The shell normally monitors active applications in order to present the most used ones (e.g. in launchers). While this data will be kept private, you may want to disable this for privacy reasons. Please note that doing so won't remove already saved data."
+#~ msgstr "چاپان (shell) ئادەتتىكى ئەھۋالدا كۆپ ئىشلىتىلىدىغان ئاكتىپ پروگراممىلار(مەسىلەن، ئىجرا قىلىنىۋاتقان)نى كۆزىتىدۇ. گەرچە بۇ سانلىق مەلۇماتلار مەخپىي ساقلانسىمۇ، شەخسىي سىر سەۋەبىدىن بۇنى چەكلىشىڭىز مۇمكىن. دىققەت بۇنداق قىلغاندا ئاللىبۇرۇن ساقلانغان سانلىق مەلۇماتلار چىقىرىۋېتىلمەيدۇ."
-#: ../src/main.c:365
-msgid "List possible modes"
-msgstr "بارلىق ئۇسۇللارنى تىزىپ كۆرسەت"
+#~ msgid "List of categories that should be displayed as folders"
+#~ msgstr "قىسقۇچ سۈپىتىدە كۆرسىتىلىدىغان كاتېگورىيەلەرنىڭ تىزىمى"
+
+#~ msgid "Each category name in this list will be represented as folder in the application view, rather than being displayed inline in the main view."
+#~ msgstr "پروگرامما كۆرۈنۈشىدە ھەر بىر كاتېگورىيە ئاتى قىسقۇچ سۈپىتىدە ئىپادىلىنىدۇ، ئاساسىي كۆرۈنۈشتە كۆرسىتىلمەيدۇ."
+
+#~ msgid "Internally used to store the last IM presence explicitly set by the user. The value here is from the TpConnectionPresenceType enumeration."
+#~ msgstr "ئىشلەتكۈچى تەرىپىدىن روشەن بەلگىلەنگەن ئەڭ يېڭى IM ھالىتى ساقلاش ئۈچۈن ئىچكى قىسىمدا ئىشلىتىلىدۇ. بۇ TpConnectionPresenceType نىڭ قىممىتى بولىدۇ."
+
+#~ msgid "Internally used to store the last session presence status for the user. The value here is from the GsmPresenceStatus enumeration."
+#~ msgstr "ئىشلەتكۈچىنىڭ ئەڭ يېڭى ھالىتى ساقلاش ئۈچۈن ئىچكى قىسىمدا ئىشلىتىلىدۇ. بۇ GsmPresenceStatus نىڭ قىممىتى بولىدۇ."
+
+#~ msgid "This key overrides the automatic hiding of the 'Log out' menuitem in single-user, single-session situations."
+#~ msgstr "مەزكۇر ئاچقۇچ يەككە ئىشلەتكۈچى، يەككە ئەڭگىمە ھالىتىدە ‹چىق› دېگەن تىزىملىكنى قاپلىۋېتىدۇ."
+
+#~ msgid "Show the week date in the calendar"
+#~ msgstr "يىلنامىدە ھەپتىنى كۆرسەتسۇن"
+
+#~ msgid "If true, display the ISO week date in the calendar."
+#~ msgstr "ئەگەر راست(true) بولسا يىلنامىدىكى ISO ھەپتە چېسلانى كۆرسىتىدۇ."
+
+#~ msgid "Keybinding to toggle the screen recorder"
+#~ msgstr "ئېكراننى سۈرەتكە ئالغۇنى باشلايدىغان/توختىتىدىغان كۇنۇپكا بىرىكمىسى"
+
+#~ msgid "Keybinding to start/stop the builtin screen recorder."
+#~ msgstr "سىڭدۈرۈۋېتىلگەن ئېكراننى سۈرەتكە ئالغۇنى باشلايدىغان/توختىتىدىغان كۇنۇپكا بىرىكمىسى."
+
+#~ msgid "Which keyboard to use"
+#~ msgstr "ئىشلەتمەكچى بولغان كۇنۇپكا تاختىسى"
+
+#~ msgid "The type of keyboard to use."
+#~ msgstr "ئىشلەتمەكچى بولغان كۇنۇپكا تاختىسى."
+
+#~ msgid "Framerate used for recording screencasts."
+#~ msgstr "ئېكران كۆرۈنۈشى (screencasts) خاتىرىلەشتە ئىشلىتىلىدىغان كاندۇك تېزلىكى."
+
+#~ msgid "The framerate of the resulting screencast recordered by GNOME Shell's screencast recorder in frames-per-second."
+#~ msgstr "گىنوم Shell ئېكران خاتىرىلىگۈچ ھەر سېكۇنتتا خاتىرىلەيدىغان ئېكران كۆرۈنۈشى كاندۇك سۈرىتى(ھەر سېكۇنتتىكى كاندۇك سانى)."
+
+#~ msgid "The gstreamer pipeline used to encode the screencast"
+#~ msgstr "ئېكران كۆرۈنۈشىنى كودلاشتا ئىشلىتىلىدىغان gstreamer ئاقما لىنىيىسى"
+
+#~ msgid "File extension used for storing the screencast"
+#~ msgstr "ئېكران كۆرۈنۈشى (screencasts) ساقلاشتا ئىشلىتىلىدىغان ھۆججەتنىڭ كېڭەيتىلگەن ئاتى"
+
+#~ msgid "The filename for recorded screencasts will be a unique filename based on the current date, and use this extension. It should be changed when recording to a different container format."
+#~ msgstr "خاتىرىلەنگەن ئېكراننىڭ ھۆججەت ئاتى نۆۋەتتىكى چېسلا ئاساسىدا بىردىنبىر بولۇپ بۇ كېڭەيتىلگەن ئاتىنى ئىشلىتىدۇ. ئۇ ئۆزگەرسە ئوخشاش بولمىغان قاچا فورماتىدا خاتىرىلەيدۇ."
+
+#~ msgid "Attach modal dialog to the parent window"
+#~ msgstr "ئاتا كۆزنەككە modal سۆزلەشكۈنى قات"
+
+#~ msgid "This key overrides the key in org.gnome.mutter when running GNOME Shell."
+#~ msgstr "گىنوم Shell ئىجرا بولۇۋاتقاندا مەزكۇر ئاچقۇچ org.gnome.mutter نىڭ ئىچىدىكى ئاچقۇچنى قاپلىۋېتىدۇ."
+
+#~ msgid "Arrangement of buttons on the titlebar"
+#~ msgstr "ماۋزۇ بالدىقىدىكى توپچىلارنىڭ ئورۇنلاشتۇرۇلۇشى"
+
+#~ msgid "This key overrides the key in org.gnome.desktop.wm.preferences when running GNOME Shell."
+#~ msgstr "گىنوم Shell ئىجرا بولۇۋاتقاندا مەزكۇر ئاچقۇچ org.gnome.desktop.wm.preferences نىڭ ئىچىدىكى ئاچقۇچنى قاپلىۋېتىدۇ."
+
+#~ msgid "Workspaces are managed dynamically"
+#~ msgstr "خىزمەت رايونلىرى جانلىق باشقۇرۇلسۇن"
+
+#~ msgid "Workspaces only on primary monitor"
+#~ msgstr "ئاساسىي كۆزەتكۈچتىكى خىزمەت رايونلىرىلا"
-#: ../src/shell-app.c:622
#, c-format
-msgid "Failed to launch '%s'"
-msgstr "‹%s› نى قوزغىتالمىدى"
+#~ msgid "There was an error loading the preferences dialog for %s:"
+#~ msgstr "%s نىڭ خاسلىق سۆزلەشكۈسىنى ئوقۇشتا خاتالىق كۆرۈلدى:"
-#: ../src/shell-keyring-prompt.c:708
-msgid "Passwords do not match."
-msgstr "ئىم ماس كەلمىدى."
+#~ msgid "Select an extension to configure using the combobox above."
+#~ msgstr "يۇقىرىدىكى combobox دىن سەپلەيدىغان كېڭەيتىلمىنى تاللاڭ."
-#: ../src/shell-keyring-prompt.c:716
-msgid "Password cannot be blank"
-msgstr "ئىم قۇرۇق بولسا بولمايدۇ"
+#~ msgid "Session…"
+#~ msgstr "ئەڭگىمە…"
-#: ../src/shell-polkit-authentication-agent.c:343
-msgid "Authentication dialog was dismissed by the user"
-msgstr "كىملىك دەلىللەش سۆزلەشكۈنى ئىشلەتكۈچى تاقىدى"
+#~ msgctxt "button"
+#~ msgid "Sign In"
+#~ msgstr "كىر"
+
+#~ msgid "Next"
+#~ msgstr "كېيىنكى"
+
+#~ msgid "Could not parse command:"
+#~ msgstr "بۇيرۇقنى تەھلىل قىلالمىدى:"
+
+#~ msgid "Frequent"
+#~ msgstr "دائىم"
+
+#~ msgid "All"
+#~ msgstr "ھەممىسى"
+
+#~ msgid "Remove from Favorites"
+#~ msgstr "يىغقۇچتىن چىقىرىۋەت"
+
+#~ msgid "Add to Favorites"
+#~ msgstr "يىغقۇچقا قوش"
+
+#~ msgctxt "event list time"
+#~ msgid "%H\\u2236%M"
+#~ msgstr "%H\\u2236%M"
+
+#~ msgctxt "event list time"
+#~ msgid "%l\\u2236%M\\u2009%p"
+#~ msgstr "%l\\u2236%M\\u2009%p"
+
+#~ msgctxt "list sunday"
+#~ msgid "Su"
+#~ msgstr "ي"
+
+#~ msgctxt "list monday"
+#~ msgid "M"
+#~ msgstr "د"
+
+#~ msgctxt "list tuesday"
+#~ msgid "T"
+#~ msgstr "س"
+
+#~ msgctxt "list wednesday"
+#~ msgid "W"
+#~ msgstr "چ"
+
+#~ msgctxt "list thursday"
+#~ msgid "Th"
+#~ msgstr "پ"
+
+#~ msgctxt "list friday"
+#~ msgid "F"
+#~ msgstr "ج"
+
+#~ msgctxt "list saturday"
+#~ msgid "S"
+#~ msgstr "ش"
+
+#~ msgid "Nothing Scheduled"
+#~ msgstr "ھېچنېمە پىلانلانمىدى"
+
+#~ msgid "This week"
+#~ msgstr "بۇ ھەپتە"
+
+#~ msgid "Next week"
+#~ msgstr "كېيىنكى ھەپتە"
+
+#~ msgid "Removable Devices"
+#~ msgstr "چىقىرىۋېتىشكە بولىدىغان ئۈسكۈنىلەر"
+
+#~ msgid "Eject"
+#~ msgstr "چىقار"
+
+#~ msgid "Password:"
+#~ msgstr "ئىم:"
+
+#~ msgid "Type again:"
+#~ msgstr "قايتا كىرگۈزۈڭ:"
+
+#~ msgid "Password: "
+#~ msgstr "ئىم: "
+
+#~ msgid "Authentication required by wireless network"
+#~ msgstr "سىمسىز تور كىملىك تەكشۈرۈشكە ئېھتىياجلىق"
+
+#~ msgid "Mobile broadband network password"
+#~ msgstr "كۆچمە كەڭ بەلۋاغ تور ئىمى"
+
+#~ msgid "Invitation"
+#~ msgstr "تەكلىپ"
+
+#~ msgid "Call"
+#~ msgstr "چاقىر"
+
+#~ msgid "File Transfer"
+#~ msgstr "ھۆججەت يوللاش"
+
+#~ msgid "Chat"
+#~ msgstr "سۆھبەت"
+
+#, no-c-format
+#~ msgid "%A, %H:%M"
+#~ msgstr "%A، %H:%M"
+
+#, no-c-format
+#~ msgid "%B %d, %H:%M"
+#~ msgstr "%B %d، %H:%M"
+
+#, no-c-format
+#~ msgid "%B %d %Y, %H:%M "
+#~ msgstr "%B %d %Y، %H:%M "
+
+#, c-format
+#~ msgid "%s is now known as %s"
+#~ msgstr "%s نى ھازىر %s دەپ قارايدۇ"
+
+#, c-format
+#~ msgid "Invitation to %s"
+#~ msgstr "%s غا تەكلىپ"
+
+#, c-format
+#~ msgid "%s is inviting you to join %s"
+#~ msgstr "%s سىزنى %s غا قاتنىشىشنى تەكلىپ قىلىۋاتىدۇ"
+
+#~ msgid "Decline"
+#~ msgstr "قوشۇلما"
+
+#~ msgid "Accept"
+#~ msgstr "قوشۇل"
+
+#, c-format
+#~ msgid "Video call from %s"
+#~ msgstr "%s دىن كەلگەن سىن چاقىرىقى"
+
+#, c-format
+#~ msgid "Call from %s"
+#~ msgstr "«%s» دىن كەلگەن تېلېفون"
+
+#~ msgid "Answer"
+#~ msgstr "جاۋاب"
+
+#, c-format
+#~ msgid "%s is sending you %s"
+#~ msgstr "%s سىزگە %s نى ئەۋەتتى"
+
+#, c-format
+#~ msgid "%s would like permission to see when you are online"
+#~ msgstr "%s سىزنى توردا بار چېغىڭىزدا كۆرۈشكە ئىجازەت سوراۋاتىدۇ"
+
+#~ msgid "Authentication failed"
+#~ msgstr "كىملىك دەلىللەش مەغلۇپ بولدى"
+
+#~ msgid "Encryption error"
+#~ msgstr "شىفىرلاش خاتالىقى"
+
+#~ msgid "Certificate not provided"
+#~ msgstr "گۇۋاھنامە تەمىنلەنمىگەن"
+
+#~ msgid "Certificate untrusted"
+#~ msgstr "گۇۋاھنامە ئىشەنچسىز"
+
+#~ msgid "Certificate expired"
+#~ msgstr "گۇۋاھنامىنىڭ ۋاقتى ئوتكەن"
+
+#~ msgid "Certificate not activated"
+#~ msgstr "گۇۋاھنامە ئاكتىپ ئەمەس"
+
+#~ msgid "Certificate hostname mismatch"
+#~ msgstr "گۇۋاھنامە كومپيۇتېرىنىڭ ئاتى ماسلاشمىدى"
+
+#~ msgid "Certificate fingerprint mismatch"
+#~ msgstr "گۇۋاھنامىنىڭ بارماق ئىزى ماسلاشمىدى"
+
+#~ msgid "Certificate self-signed"
+#~ msgstr "گۇۋاھنامىنىڭ ئۆزىنىڭ ئىمزاسى"
+
+#~ msgid "Status is set to offline"
+#~ msgstr "ھالەت توردا يوق قىلىپ بەلگىلەندى"
+
+#~ msgid "Certificate is invalid"
+#~ msgstr "گۇۋاھنامە ئىناۋەتسىز"
+
+#~ msgid "Connection has been refused"
+#~ msgstr "باغلىنىش رەت قىلىندى"
+
+#~ msgid "Connection can't be established"
+#~ msgstr "باغلانغىلى بولمىدى"
+
+#~ msgid "Connection has been lost"
+#~ msgstr "باغلىنىش ئۈزۈلدى"
+
+#~ msgid "This account is already connected to the server"
+#~ msgstr "بۇ ھېسابات ئاللىقاچان مۇلازىمېتىرغا باغلانغان"
+
+#~ msgid "Connection has been replaced by a new connection using the same resource"
+#~ msgstr "ئوخشاش مەنبە ئىشلەتكەن باغلىنىش ئەسلىدىكىنىڭ ئورنىنى ئىگىلىدى"
+
+#~ msgid "The account already exists on the server"
+#~ msgstr "مۇلازىمېتىردا بۇ ھېسابات ئاللىقاچان بار"
+
+#~ msgid "Server is currently too busy to handle the connection"
+#~ msgstr "مۇلازىمېتىر بەكلا ئالدىراش بولغاچقا بۇ باغلىنىشنى بىر تەرەپ قىلالمايدۇ"
+
+#~ msgid "Certificate has been revoked"
+#~ msgstr "گۇۋاھنامە ئىناۋەتسىز قىلىنغان"
+
+#~ msgid "Certificate uses an insecure cipher algorithm or is cryptographically weak"
+#~ msgstr "گۇۋاھنامە خەتەرلىك شىفىرلاش ئالگورىزىمىنى ئىشلەتكەن ياكى شىفىرلىنىشى ئاجىز"
+
+#~ msgid "The length of the server certificate, or the depth of the server certificate chain, exceed the limits imposed by the cryptography library"
+#~ msgstr "مۇلازىمېتىر گۇۋاھنامىسىنىڭ ئۇزۇنلۇقى ياكى مۇلازىمېتىر گۇۋاھنامىسىنىڭ زەنجىرىنىڭ چوڭقۇرلۇقى شىفىرلاش فۇنكسىيە ئامبىرىدا بەلگىلەنگەن ئۇزۇنلۇقتىن ئېشىپ كەتتى"
+
+#~ msgid "Internal error"
+#~ msgstr "ئىچكى خاتالىق"
+
+#~ msgid "View account"
+#~ msgstr "ھېساباتنى كۆرۈش"
+
+#~ msgid "Date & Time Settings"
+#~ msgstr "چېسلا ۋە ۋاقىت تەڭشىكى"
+
+#~ msgid "Click Log Out to quit these applications and log out of the system."
+#~ msgstr "تىزىمدىن چىقىش (Log Out) نى بېسىپ پروگراممىدىن چېكىنىش ۋە سىستېما تىزىمىدىن چىقىش."
+
+#~ msgid "Logging out of the system."
+#~ msgstr "سىستېما تىزىمدىن چىقىۋاتىدۇ"
+
+#~ msgid "Click Power Off to quit these applications and power off the system."
+#~ msgstr "تۈكنى ئۈز چېكىلسە قوللىنىشچان پروگراممىلاردىن چېكىنىپ سىستېمىنى تاقايدۇ."
+
+#~ msgid "Powering off the system."
+#~ msgstr "سىستېمىنى تاقاۋاتىدۇ."
+
+#~ msgid "Click Restart to quit these applications and restart the system."
+#~ msgstr "قايتا قوزغات (restart) چېكىلسە پروگراممىدىن چېكىنىپ ۋە سىستېمىنى قايتا قوزغىتىدۇ."
+
+#~ msgid "Restarting the system."
+#~ msgstr "سىستېما قايتا قوزغىلىۋاتىدۇ."
+
+#~ msgid "Open"
+#~ msgstr "ئاچ"
+
+#~ msgid "Clear Messages"
+#~ msgstr "ئۇچۇرنى تازىلا"
+
+#~ msgid "Notification Settings"
+#~ msgstr "ئۇقتۇرۇش تەڭشىكى"
+
+#~ msgid "No Messages"
+#~ msgstr "ئۇچۇر يوق"
+
+#~ msgid "Message Tray"
+#~ msgstr "ئۇچۇر قوندىقى"
+
+#, c-format
+#~ msgid "%d new message"
+#~ msgid_plural "%d new messages"
+#~ msgstr[0] "%d دانە ئۇچۇر"
+
+#~ msgid "toggle-switch-us"
+#~ msgstr "toggle-switch-us"
+
+#~ msgid "Lock"
+#~ msgstr "قۇلۇپلا"
+
+#~ msgid "Universal Access Settings"
+#~ msgstr "ئۇنىۋېرسال زىيارەت تەڭشىكى"
+
+#~ msgid "Visibility"
+#~ msgstr "كۆرۈشچانلىقى"
+
+#~ msgid "Set Up a New Device…"
+#~ msgstr "يېڭى ئۈسكۈنە ئورنىتىش…"
+
+#~ msgid "hardware disabled"
+#~ msgstr "قاتتىق دېتال ئىناۋەتسىز قىلىنغان"
+
+#~ msgid "connecting..."
+#~ msgstr "باغلىنىۋاتىدۇ…"
+
+#, c-format
+#~ msgid "Authorization request from %s"
+#~ msgstr "‹%s› تىن كەلگەن دەلىللەش ئىلتىماسى"
+
+#, c-format
+#~ msgid "Device %s wants access to the service '%s'"
+#~ msgstr "ئۈسكۈنە %s مۇلازىمەت ‹%s› نى زىيارەت قىلماقچى"
+
+#~ msgid "Grant this time only"
+#~ msgstr "بۇ قېتىمغىلا رۇخسەت"
+
+#~ msgid "Reject"
+#~ msgstr "رەت قىل"
+
+#, c-format
+#~ msgid "Pairing confirmation for %s"
+#~ msgstr "%s نىڭ جەزملىشىنى جۈپلەشتۈرۈۋاتىدۇ"
+
+#, c-format
+#~ msgid "Device %s wants to pair with this computer"
+#~ msgstr "ئۈسكۈنە‹%s› كومپيۇتېر بىلەن جۈپلەنمەكچى"
+
+#, c-format
+#~ msgid "Please confirm whether the PIN '%06d' matches the one on the device."
+#~ msgstr "ئۈسكۈنە ئۈستىدىكى بىلەن PIN ‹%06d› ماسلىشامدۇ جەزملەڭ."
+
+#~ msgid "Matches"
+#~ msgstr "ماسلاشتى"
+
+#~ msgid "Does not match"
+#~ msgstr "ماسلاشمىدى"
+
+#, c-format
+#~ msgid "Pairing request for %s"
+#~ msgstr "%s دىن كەلگەن جۈپلەش ئىلتىماسى"
+
+#~ msgid "Please enter the PIN mentioned on the device."
+#~ msgstr "ئۈسكۈنىسىدە يوللىغان PIN نومۇرىنى كىرگۈزۈڭ."
+
+#~ msgid "OK"
+#~ msgstr "تامام"
+
+#~ msgid "Region & Language Settings"
+#~ msgstr "رايون ۋە تىل تەڭشىكى"
+
+#~ msgid "Volume, network, battery"
+#~ msgstr "ئاۋاز مىقدارى، تور، توكدان"
+
+#~ msgid "disabled"
+#~ msgstr "چەكلەنگەن"
+
+#~ msgid "unmanaged"
+#~ msgstr "باشقۇرۇلمىغان"
+
+#~ msgid "firmware missing"
+#~ msgstr "مۇقىم دېتال كەم"
+
+#~ msgid "cable unplugged"
+#~ msgstr "كابېل چېتىلمىدى"
+
+#~ msgid "unavailable"
+#~ msgstr "ئىشلەتكىلى بولمايدۇ"
+
+#~ msgid "connection failed"
+#~ msgstr "باغلىنىش مەغلۇپ بولدى"
+
+#~ msgid "More…"
+#~ msgstr "تېخىمۇ كۆپ…"
+
+#~ msgid "Connected (private)"
+#~ msgstr "باغلاندى (شەخسىي)"
+
+#~ msgid "Wired"
+#~ msgstr "سىملىق"
+
+#~ msgid "Auto Ethernet"
+#~ msgstr "ئاپتوماتىك Ethernet"
+
+#~ msgid "Auto broadband"
+#~ msgstr "ئاپتوماتىك كۆچمە كەڭ بەلۋاغ"
+
+#~ msgid "Auto dial-up"
+#~ msgstr "ئاپتوماتىك نومۇر بۇرا"
+
+#, c-format
+#~ msgid "Auto %s"
+#~ msgstr "ئاپتوماتىك %s"
+
+#~ msgid "Auto bluetooth"
+#~ msgstr "ئاپتوماتىك كۆكچىش"
+
+#~ msgid "Auto wireless"
+#~ msgstr "ئاپتوماتىك سىمسىز تور"
+
+#~ msgid "Wi-Fi"
+#~ msgstr "Wi-Fi"
+
+#~ msgid "Network Settings"
+#~ msgstr "تور تەڭشەكلىرى"
+
+#~ msgid "Network Manager"
+#~ msgstr "تور باشقۇرغۇچ"
+
+#~ msgid "Networking is disabled"
+#~ msgstr "تورغا باغلىنىش چەكلەنگەن"
+
+#~ msgid "Battery"
+#~ msgstr "توكدان"
+
+#, c-format
+#~ msgid "%d hour remaining"
+#~ msgid_plural "%d hours remaining"
+#~ msgstr[0] "%d سائەت قالدى"
+
+#, c-format
+#~ msgid "%d %s %d %s remaining"
+#~ msgstr "%d %s %d %s قالدى"
+
+#~ msgid "hour"
+#~ msgid_plural "hours"
+#~ msgstr[0] "سائەت"
+
+#~ msgid "minute"
+#~ msgid_plural "minutes"
+#~ msgstr[0] "مىنۇت"
+
+#, c-format
+#~ msgid "%d minute remaining"
+#~ msgid_plural "%d minutes remaining"
+#~ msgstr[0] "%d مىنۇت قالدى"
+
+#~ msgid "AC Adapter"
+#~ msgstr "ئۆزگىرىشچان توك ماسلاشتۇرغۇچ"
+
+#~ msgid "Laptop Battery"
+#~ msgstr "يان كومپيۇتېر توكدانى"
+
+#~ msgid "UPS"
+#~ msgstr "UPS"
+
+#~ msgid "Monitor"
+#~ msgstr "ئېكران"
+
+#~ msgid "Mouse"
+#~ msgstr "چاشقىنەك"
+
+#~ msgid "PDA"
+#~ msgstr "PDA"
+
+#~ msgid "Cell Phone"
+#~ msgstr "يانفون"
+
+#~ msgid "Media Player"
+#~ msgstr "ۋاسىتە قويغۇ"
+
+#~ msgid "Tablet"
+#~ msgstr "سەزگۈر تاختا"
+
+#~ msgid "Computer"
+#~ msgstr "كومپيۇتېر"
+
+#~ msgctxt "device"
+#~ msgid "Unknown"
+#~ msgstr "نامەلۇم"
+
+#~ msgid "Busy"
+#~ msgstr "ئالدىراش"
+
+#~ msgid "Invisible"
+#~ msgstr "يوشۇرۇن"
+
+#~ msgid "Away"
+#~ msgstr "يوق"
+
+#~ msgid "Idle"
+#~ msgstr "بىكار"
+
+#~ msgid "Your chat status will be set to busy"
+#~ msgstr "سىزنىڭ سۆھبەت ھالىتىڭىز ئالدىراش قىلىنىدۇ"
+
+#~ msgid "Shutting down might cause them to lose unsaved work."
+#~ msgstr "تاقالسا ساقلانمىغان خىزمەتلەر يوقىلىشى مۇمكىن."
+
+#~ msgid "Applications"
+#~ msgstr "پروگراممىلار"
+
+#, c-format
+#~ msgid ""
+#~ "Sorry, no wisdom for you today:\n"
+#~ "%s"
+#~ msgstr ""
+#~ "كەچۈرۈڭ، سىزگە بۈگۈن ھېكمەتلىك سۆز يوق:\n"
+#~ "%s"
+
+#, c-format
+#~ msgid "%s the Oracle says"
+#~ msgstr "خەۋەرچى مۇنداق دەيدۇ %s"
+
+#~ msgid "Evolution Calendar"
+#~ msgstr "Evolution يىلنامىسى"
#~ msgctxt "title"
#~ msgid "Sign In"
@@ -1854,9 +3856,6 @@
#~ msgid "tray"
#~ msgstr "قونداق، پەغەز"
-#~ msgid "Clear"
-#~ msgstr "تازىلا"
-
#~ msgid "More..."
#~ msgstr "تېخىمۇ كۆپ…"
@@ -1864,10 +3863,6 @@
#~ msgid "%H:%M"
#~ msgstr "%H:%M"
-#~ msgctxt "event list time"
-#~ msgid "%l:%M %p"
-#~ msgstr "%l:%M %p"
-
#~ msgid "United Kingdom"
#~ msgstr "ئەنگلىيە پادىشاھلىقى"
@@ -1880,12 +3875,8 @@
#~ msgid "Whether the users full name is shown in the user menu or not."
#~ msgstr "ئىشلەتكۈچى تىزىملىكىدە تولۇق ئاتىنى كۆرسىتەمدۇ يوق بەلگىلەيدۇ."
-#~ msgid ""
-#~ "GNOME Shell extensions have a uuid property; this key lists extensions "
-#~ "which should not be loaded."
-#~ msgstr ""
-#~ "GNOME Shell كېڭەيتىلمىسىنىڭ uuid خاسلىقى بار؛ بۇ كۇنۇپكا يۈكلەنمەيدىغان "
-#~ "كېڭەيتىلمىلەر تىزىمىنى كۆرسىتىدۇ."
+#~ msgid "GNOME Shell extensions have a uuid property; this key lists extensions which should not be loaded."
+#~ msgstr "GNOME Shell كېڭەيتىلمىسىنىڭ uuid خاسلىقى بار؛ بۇ كۇنۇپكا يۈكلەنمەيدىغان كېڭەيتىلمىلەر تىزىمىنى كۆرسىتىدۇ."
#~ msgid "If true, display date in the clock, in addition to time."
#~ msgstr "true بولسا سائەتتە ۋاقىت كۆرسەتكەندىن تاشقىرى چېسلا كۆرسىتىدۇ."
@@ -1923,27 +3914,15 @@
#~ msgid "%a %b %e, %l:%M:%S %p"
#~ msgstr "%a %b %e، %l:%M:%S %p"
-#~ msgid "%a %b %e, %l:%M %p"
-#~ msgstr "%a %b %e، %l:%M %p"
-
#~ msgid "%a %l:%M:%S %p"
#~ msgstr "%a %l:%M:%S %p"
-#~ msgid "%a %l:%M %p"
-#~ msgstr "%a %l:%M"
-
#~ msgid "RECENT ITEMS"
#~ msgstr "يېقىنقى تۈرلەر"
-#~ msgid "Failed to unmount '%s'"
-#~ msgstr "«%s» نى ئېگەرسىزلەش مەغلۇپ بولدى"
-
#~ msgid "Retry"
#~ msgstr "قايتا سىنا"
-#~ msgid "Connect to..."
-#~ msgstr "باغلىنىش…"
-
#~ msgid "PLACES & DEVICES"
#~ msgstr "ئورۇن ۋە ئۈسكۈنىلەر"
@@ -1953,9 +3932,6 @@
#~ msgid "System Settings"
#~ msgstr "سىستېما تەڭشىكى"
-#~ msgid "Lock Screen"
-#~ msgstr "ئېكراننى قۇلۇپلاش"
-
#~ msgid "Log Out..."
#~ msgstr "تىزىمدىن چىقىش…"
@@ -1974,9 +3950,6 @@
#~ msgid "Wireless"
#~ msgstr "سىمسىز"
-#~ msgid "VPN Connections"
-#~ msgstr "VPN باغلىنىشلىرى"
-
#~ msgid "You're now connected to mobile broadband connection '%s'"
#~ msgstr "ھازىر كۆچمە كەڭ بەلۋاغ '%s' غا باغلاندىڭىز"
@@ -2007,25 +3980,6 @@
#~ msgid "Less than a minute ago"
#~ msgstr "بىر مىنۇتتىنمۇ ئىلگىرى"
-#~ msgid "%d minute ago"
-#~ msgid_plural "%d minutes ago"
-#~ msgstr[0] "%d مىنۇت ئىلگىرى"
-
-#~ msgid "%d hour ago"
-#~ msgid_plural "%d hours ago"
-#~ msgstr[0] "%d سائەت ئىلگىرى"
-
-#~ msgid "%d day ago"
-#~ msgid_plural "%d days ago"
-#~ msgstr[0] "%d كۈن ئىلگىرى"
-
-#~ msgid "%d week ago"
-#~ msgid_plural "%d weeks ago"
-#~ msgstr[0] "%d ھەپتە ئىلگىرى"
-
-#~ msgid "Home Folder"
-#~ msgstr "ماكان مۇندەرىجە"
-
#~ msgid "%1$s: %2$s"
#~ msgstr "%1$s: %2$s"
@@ -2062,41 +4016,18 @@
#~ msgid "Hour format"
#~ msgstr "سائەت فورماتى"
-#~ msgid ""
-#~ "If true and format is either \"12-hour\" or \"24-hour\", display seconds "
-#~ "in time."
-#~ msgstr ""
-#~ "ئەگەر راست (true) بولسا سائەتتە ۋاقىت فورماتىنى «12 سائەت» ياكى «24 "
-#~ "سائەت» كۆرسەتكەندىن سىرت سېكۇنتنىمۇ كۆرسىتىدۇ."
+#~ msgid "If true and format is either \"12-hour\" or \"24-hour\", display seconds in time."
+#~ msgstr "ئەگەر راست (true) بولسا سائەتتە ۋاقىت فورماتىنى «12 سائەت» ياكى «24 سائەت» كۆرسەتكەندىن سىرت سېكۇنتنىمۇ كۆرسىتىدۇ."
-#~ msgid ""
-#~ "This key specifies the format used by the panel clock when the format key "
-#~ "is set to \"custom\". You can use conversion specifiers understood by "
-#~ "strftime() to obtain a specific format. See the strftime() manual for "
-#~ "more information."
-#~ msgstr ""
-#~ "format (فورمات) كۇنۇپكىسى \"custom\" (ئىختىيارى) قىلىپ تەڭشەلسە بۇ "
-#~ "كۇنۇپكا تاختا سائەت ئىشلىتىدىغان فورماتنى بەلگىلەيدۇ. سىز strftime()نىڭ "
-#~ "فورمات بەلگىسىنى ئىشلىتىپ بەلگىلەنگەن فورماتقا ئېرىشەلەيسىز. تەپسىلاتىنى "
-#~ "strftime() نىڭ قوللانمىسىدىن كۆرۈڭ."
+#~ msgid "This key specifies the format used by the panel clock when the format key is set to \"custom\". You can use conversion specifiers understood by strftime() to obtain a specific format. See the strftime() manual for more information."
+#~ msgstr "format (فورمات) كۇنۇپكىسى \"custom\" (ئىختىيارى) قىلىپ تەڭشەلسە بۇ كۇنۇپكا تاختا سائەت ئىشلىتىدىغان فورماتنى بەلگىلەيدۇ. سىز strftime()نىڭ فورمات بەلگىسىنى ئىشلىتىپ بەلگىلەنگەن فورماتقا ئېرىشەلەيسىز. تەپسىلاتىنى strftime() نىڭ قوللانمىسىدىن كۆرۈڭ."
#~ msgid ""
-#~ "This key specifies the hour format used by the panel clock. Possible "
-#~ "values are \"12-hour\", \"24-hour\", \"unix\" and \"custom\". If set to "
-#~ "\"unix\", the clock will display time in seconds since Epoch, i.e. "
-#~ "1970-01-01. If set to \"custom\", the clock will display time according "
-#~ "to the format specified in the custom_format key. Note that if set to "
-#~ "either \"unix\" or \"custom\", the show_date and show_seconds keys are "
-#~ "ignored."
+#~ "This key specifies the hour format used by the panel clock. Possible values are \"12-hour\", \"24-hour\", \"unix\" and \"custom\". If set to \"unix\", the clock will display time in seconds since Epoch, i.e. 1970-01-01. If set to \"custom\", the clock will display time according to the format specified in the custom_format key. Note that if set to either \"unix\" or \"custom\", the show_date and show_seconds keys "
+#~ "are ignored."
#~ msgstr ""
-#~ "بۇ كۇنۇپكا تاختا سائەت ئىشلەتكەن سائەت فورماتىنى بەلگىلىگەن. ئىشلەتكىلى "
-#~ "بولىدىغان قىممىتى \"12-hour\" يەنى (12 سائەت)، \"24-hour\" يەنى (24 "
-#~ "سائەت)، \"unix\" ۋە \"custom\" (ئىختىيارى). ئەگەر \"unix\" قىلىپ "
-#~ "تەڭشەلسە سائەت ئۆزلۈكىدىن يېڭى ئېرا (يەنى، 1970-01-01) دىن ئۆتكەن "
-#~ "سېكۇنتنى ئاساس قىلىدۇ. ئەگەر \"custom\" قىلىپ تەڭشەلسە سائەت "
-#~ "custom_format كۇنۇپكا قىممىتىگە ئاساسەن ۋاقىتنى كۆرسىتىدۇ. ئەگەر \"unix"
-#~ "\" ياكى \"custom\" قىلىپ تەڭشەلسە show_date ۋە show_seconds قىممىتىگە "
-#~ "پەرۋا قىلمايدۇ"
+#~ "بۇ كۇنۇپكا تاختا سائەت ئىشلەتكەن سائەت فورماتىنى بەلگىلىگەن. ئىشلەتكىلى بولىدىغان قىممىتى \"12-hour\" يەنى (12 سائەت)، \"24-hour\" يەنى (24 سائەت)، \"unix\" ۋە \"custom\" (ئىختىيارى). ئەگەر \"unix\" قىلىپ تەڭشەلسە سائەت ئۆزلۈكىدىن يېڭى ئېرا (يەنى، 1970-01-01) دىن ئۆتكەن سېكۇنتنى ئاساس قىلىدۇ. ئەگەر \"custom\" قىلىپ تەڭشەلسە سائەت custom_format كۇنۇپكا قىممىتىگە ئاساسەن ۋاقىتنى كۆرسىتىدۇ. ئەگەر \"unix\" ياكى "
+#~ "\"custom\" قىلىپ تەڭشەلسە show_date ۋە show_seconds قىممىتىگە پەرۋا قىلمايدۇ"
#~ msgid "Clip the crosshairs at the center"
#~ msgstr "نىشانلىغۇچنى ئوتتۇرىغا توغرىلا"
@@ -2104,15 +4035,10 @@
#~ msgid "Color of the crosshairs"
#~ msgstr "نىشانلىغۇچنىڭ رەڭگى"
-#~ msgid ""
-#~ "Determines the length of the vertical and horizontal lines that make up "
-#~ "the crosshairs."
-#~ msgstr ""
-#~ "نىشانلىغۇچنى ھاسىل قىلىدىغان توغرا ۋە بوي سىزىقنىڭ ئۇزۇنلۇقى بەلگىلىنىدۇ."
+#~ msgid "Determines the length of the vertical and horizontal lines that make up the crosshairs."
+#~ msgstr "نىشانلىغۇچنى ھاسىل قىلىدىغان توغرا ۋە بوي سىزىقنىڭ ئۇزۇنلۇقى بەلگىلىنىدۇ."
-#~ msgid ""
-#~ "Determines the transparency of the crosshairs, from fully opaque to fully "
-#~ "transparent."
+#~ msgid "Determines the transparency of the crosshairs, from fully opaque to fully transparent."
#~ msgstr "نىشانلىغۇچنىڭ سۈزۈكلۈكى تولۇق سۈزۈكتىن تولۇق تۇتۇققىچە بەلگىلىنىدۇ."
#~ msgid "Enable lens mode"
@@ -2140,25 +4066,18 @@
#~ msgstr "لوپا ئەينەكنى كۆرسەت ياكى يوشۇر"
#~ msgid "Show or hide the magnifier and all of its zoom regions."
-#~ msgstr ""
-#~ "لوپا ئەينەك ۋە ئۇنىڭ ھەممە چوڭايتىش دائىرىسىنى كۆرسەت ياكى يوشۇرىدۇ."
+#~ msgstr "لوپا ئەينەك ۋە ئۇنىڭ ھەممە چوڭايتىش دائىرىسىنى كۆرسەت ياكى يوشۇرىدۇ."
-#~ msgid ""
-#~ "The color of the the vertical and horizontal lines that make up the "
-#~ "crosshairs."
+#~ msgid "The color of the the vertical and horizontal lines that make up the crosshairs."
#~ msgstr "نىشانلىغۇچنى ھاسىل قىلىدىغان توغرا ۋە بوي سىزىقنىڭ رەڭگى."
-#~ msgid ""
-#~ "The power of the magnification. A value of 1.0 means no magnification. A "
-#~ "value of 2.0 doubles the size."
-#~ msgstr ""
-#~ "چوڭايتىش كۈچى. 1.0 چوڭايتمايدۇ، 2.0 چوڭلۇقىنى ھەسسىلەيدۇ دېگەن مەنىدە."
+#~ msgid "The power of the magnification. A value of 1.0 means no magnification. A value of 2.0 doubles the size."
+#~ msgstr "چوڭايتىش كۈچى. 1.0 چوڭايتمايدۇ، 2.0 چوڭلۇقىنى ھەسسىلەيدۇ دېگەن مەنىدە."
#~ msgid "Thickness of the crosshairs"
#~ msgstr "نىشانلىغۇچنىڭ قېلىنلىقى"
-#~ msgid ""
-#~ "Width of the vertical and horizontal lines that make up the crosshairs."
+#~ msgid "Width of the vertical and horizontal lines that make up the crosshairs."
#~ msgstr "نىشانلىغۇچنى ھاسىل قىلىدىغان توغرا ۋە بوي سىزىقنىڭ كەڭلىكى."
#~ msgid "Clock Format"
@@ -2167,12 +4086,6 @@
#~ msgid "Clock Preferences"
#~ msgstr "سائەت مايىللىقى"
-#~ msgid "Panel Display"
-#~ msgstr "تاختا كۆرسىتىش"
-
-#~ msgid "Show seco_nds"
-#~ msgstr "سېكۇنتنى كۆرسەت(_N)"
-
#~ msgid "_12 hour format"
#~ msgstr "_12 سائەت فورماتى"
@@ -2182,11 +4095,8 @@
#~ msgid "Preferences"
#~ msgstr "مايىللىق"
-#~ msgid ""
-#~ "Can't add a new workspace because maximum workspaces limit has been "
-#~ "reached."
-#~ msgstr ""
-#~ "يېڭى خىزمەت رايونى قوشالمايدۇ چۈنكى ئەڭ كۆپ خىزمەت رايون چېكىگە يەتتى."
+#~ msgid "Can't add a new workspace because maximum workspaces limit has been reached."
+#~ msgstr "يېڭى خىزمەت رايونى قوشالمايدۇ چۈنكى ئەڭ كۆپ خىزمەت رايون چېكىگە يەتتى."
#~ msgid "Can't remove the first workspace."
#~ msgstr "بىرىنچى خىزمەت رايونىنى چىقىرىۋەتكىلى بولمايدۇ."
@@ -2194,12 +4104,8 @@
#~ msgid "Overview workspace view mode"
#~ msgstr "خىزمەت رايون كۆرۈنۈش ھالىتى ھەققىدە قىسقىچە بايان"
-#~ msgid ""
-#~ "The selected workspace view mode in the overview. Supported values are "
-#~ "\"single\" and \"grid\"."
-#~ msgstr ""
-#~ "قىسقىچە باياندىكى تاللانغان خىزمەت رايونىنىڭ كۆرۈنۈش ھالىتى. ئىشلىتىشكە "
-#~ "بولىدىغان قىممەتلەر «يەككە» ۋە «سېتكا»"
+#~ msgid "The selected workspace view mode in the overview. Supported values are \"single\" and \"grid\"."
+#~ msgstr "قىسقىچە باياندىكى تاللانغان خىزمەت رايونىنىڭ كۆرۈنۈش ھالىتى. ئىشلىتىشكە بولىدىغان قىممەتلەر «يەككە» ۋە «سېتكا»"
#~ msgid "Drag here to add favorites"
#~ msgstr "بۇ جايغا سۆرەپ يىغقۇچقا قوش"
diff -Nru gnome-shell-48.4/po/zh_TW.po gnome-shell-48.7/po/zh_TW.po
--- gnome-shell-48.4/po/zh_TW.po 2025-08-03 10:53:34.000000000 +0000
+++ gnome-shell-48.7/po/zh_TW.po 2025-11-24 14:16:08.000000000 +0000
@@ -9,9 +9,9 @@
msgstr ""
"Project-Id-Version: gnome-shell 3.3.90\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell/issues/\n"
-"POT-Creation-Date: 2025-03-27 09:41+0000\n"
-"PO-Revision-Date: 2025-03-28 13:28+0800\n"
-"Last-Translator: Cheng-Chia Tseng \n"
+"POT-Creation-Date: 2025-08-03 18:53+0000\n"
+"PO-Revision-Date: 2025-08-06 10:47+0800\n"
+"Last-Translator: Cheng-Chia Tseng \n"
"Language-Team: Chinese (Traditional) \n"
"Language: zh_TW\n"
@@ -19,7 +19,7 @@
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Poedit 3.5\n"
+"X-Generator: Poedit 3.6\n"
#: data/50-gnome-shell-launchers.xml:6
msgid "Launchers"
@@ -98,7 +98,7 @@
msgstr "開啟自選程式 9 的新視窗"
#. Translators: name of the folder under ~/Pictures for screenshots.
-#: data/50-gnome-shell-screenshots.xml:6 js/ui/screenshot.js:2275
+#: data/50-gnome-shell-screenshots.xml:6 js/ui/screenshot.js:2279
msgid "Screenshots"
msgstr "螢幕快照"
@@ -123,7 +123,7 @@
msgstr "啟動螢幕錄影工具"
#: data/50-gnome-shell-system.xml:6
-#: data/X-GNOME-Shell-System.directory.desktop.in:3 js/ui/messageTray.js:1307
+#: data/X-GNOME-Shell-System.directory.desktop.in:2 js/ui/messageTray.js:1307
msgid "System"
msgstr "系統"
@@ -147,11 +147,11 @@
msgid "Show all apps"
msgstr "顯示所有程式"
-#: data/org.gnome.Shell.desktop.in.in:4
+#: data/org.gnome.Shell.desktop.in.in:3
msgid "GNOME Shell"
msgstr "GNOME Shell"
-#: data/org.gnome.Shell.desktop.in.in:5
+#: data/org.gnome.Shell.desktop.in.in:4
msgid "Window management and application launching"
msgstr "兼具視窗管理器與應用程式啟動器的使用者介面"
@@ -511,27 +511,27 @@
msgstr "顯示預報的位置"
#. Keep in sync with subprojects/extensions-app
-#: data/org.gnome.Shell.Extensions.desktop.in.in:5
+#: data/org.gnome.Shell.Extensions.desktop.in.in:4
#: subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in:5
-#: subprojects/extensions-app/data/org.gnome.Extensions.desktop.in.in:4
+#: subprojects/extensions-app/data/org.gnome.Extensions.desktop.in.in:3
#: subprojects/extensions-app/data/ui/extensions-window.ui:57
msgid "Extensions"
msgstr "擴充套件"
-#: data/org.gnome.Shell.PortalHelper.desktop.in.in:3
+#: data/org.gnome.Shell.PortalHelper.desktop.in.in:2
msgid "Network Login"
msgstr "網路登入"
-#: data/X-GNOME-Shell-Utilities.directory.desktop.in:3
+#: data/X-GNOME-Shell-Utilities.directory.desktop.in:2
msgid "Utilities"
msgstr "公用程式"
-#: js/dbusServices/extensions/ui/extension-error-page.ui:15
+#: js/dbusServices/extensions/ui/extension-error-page.ui:12
#: subprojects/extensions-app/data/ui/extensions-window.ui:275
msgid "Something’s gone wrong"
msgstr "有些地方出錯了"
-#: js/dbusServices/extensions/ui/extension-error-page.ui:23
+#: js/dbusServices/extensions/ui/extension-error-page.ui:20
msgid ""
"We’re very sorry, but there’s been a problem: the settings for this "
"extension can’t be displayed. We recommend that you report the issue to the "
@@ -540,19 +540,19 @@
"我們非常抱歉發生這個問題:無法顯示該擴充套件的設定畫面;建議將此問題回報給擴"
"充套件的作者。"
-#: js/dbusServices/extensions/ui/extension-error-page.ui:48
+#: js/dbusServices/extensions/ui/extension-error-page.ui:45
msgid "Technical Details"
msgstr "技術細節"
-#: js/dbusServices/extensions/ui/extension-error-page.ui:90
+#: js/dbusServices/extensions/ui/extension-error-page.ui:87
msgid "Homepage"
msgstr "首頁"
-#: js/dbusServices/extensions/ui/extension-error-page.ui:91
+#: js/dbusServices/extensions/ui/extension-error-page.ui:88
msgid "Visit extension homepage"
msgstr "造訪擴充套件首頁"
-#: js/gdm/authPrompt.js:155 js/gdm/loginDialog.js:468
+#: js/gdm/authPrompt.js:156 js/gdm/loginDialog.js:465
#: js/ui/audioDeviceSelection.js:60 js/ui/components/networkAgent.js:114
#: js/ui/components/polkitAgent.js:144 js/ui/endSessionDialog.js:437
#: js/ui/extensionDownloader.js:276 js/ui/shellMountOperation.js:382
@@ -560,7 +560,7 @@
msgid "Cancel"
msgstr "取消"
-#: js/gdm/authPrompt.js:323 js/ui/components/networkAgent.js:214
+#: js/gdm/authPrompt.js:324 js/ui/components/networkAgent.js:214
#: js/ui/components/networkAgent.js:234 js/ui/components/networkAgent.js:266
#: js/ui/components/networkAgent.js:299 js/ui/components/networkAgent.js:338
#: js/ui/components/networkAgent.js:351 js/ui/components/polkitAgent.js:286
@@ -568,12 +568,12 @@
msgid "Password"
msgstr "密碼"
-#: js/gdm/loginDialog.js:328
+#: js/gdm/loginDialog.js:326
msgid "Choose Session"
msgstr "選擇作業階段"
#. Translators: is running for
-#: js/gdm/loginDialog.js:426
+#: js/gdm/loginDialog.js:423
#, javascript-format
msgid ""
"Remote login is not possible because a remote session is already running for "
@@ -584,7 +584,7 @@
"作業階段中登出或強制停止它。"
#. Translators: is running for
-#: js/gdm/loginDialog.js:429
+#: js/gdm/loginDialog.js:426
#, javascript-format
msgid ""
"Login is not possible because a remote session is already running for %s. To "
@@ -594,7 +594,7 @@
"中登出或強制停止它。"
#. Translators: is running for
-#: js/gdm/loginDialog.js:432
+#: js/gdm/loginDialog.js:429
#, javascript-format
msgid ""
"Remote login is not possible because a local session is already running for "
@@ -605,7 +605,7 @@
"作業階段登出或強制停止它。"
#. Translators: is running for
-#: js/gdm/loginDialog.js:435
+#: js/gdm/loginDialog.js:432
#, javascript-format
msgid ""
"Login is not possible because a session is already running for %s. To login, "
@@ -614,45 +614,45 @@
"無法登入,因為 %s 的作業階段已在運行。要登入,您必須從作業階段中登出或強制停"
"止它。"
-#: js/gdm/loginDialog.js:444
+#: js/gdm/loginDialog.js:441
msgid "Session Already Running"
msgstr "作業階段已在執行中"
-#: js/gdm/loginDialog.js:456
+#: js/gdm/loginDialog.js:453
msgid ""
"Force stopping will quit any running apps and processes, and could result in "
"data loss"
msgstr "強制停止將退出任何正在運行的程式和程序,並可能導致資料遺失"
-#: js/gdm/loginDialog.js:476
+#: js/gdm/loginDialog.js:473
msgid "Force Stop"
msgstr "強制停止"
-#: js/gdm/loginDialog.js:554
+#: js/gdm/loginDialog.js:551
msgid "Not listed?"
msgstr "沒有列出來?"
#. Translators: this message is shown below the username entry field
#. to clue the user in on how to login to the local network realm
-#: js/gdm/loginDialog.js:1071
+#: js/gdm/loginDialog.js:1072
#, javascript-format
msgid "(e.g., user or %s)"
msgstr "(例如: user 或 %s)"
-#: js/gdm/loginDialog.js:1076 js/ui/components/networkAgent.js:258
+#: js/gdm/loginDialog.js:1077 js/ui/components/networkAgent.js:258
#: js/ui/components/networkAgent.js:293 js/ui/components/networkAgent.js:327
msgid "Username"
msgstr "使用者名稱"
-#: js/gdm/loginDialog.js:1142
+#: js/gdm/loginDialog.js:1143
msgid "Login Attempt Timed Out"
msgstr "登入嘗試逾時"
-#: js/gdm/loginDialog.js:1143
+#: js/gdm/loginDialog.js:1144
msgid "Login took too long, please try again"
msgstr "登入時間過長,請再試一次"
-#: js/gdm/loginDialog.js:1492
+#: js/gdm/loginDialog.js:1493
msgid "Login Window"
msgstr "登入視窗"
@@ -672,103 +672,103 @@
msgid "(or place finger on reader)"
msgstr "(或是將手指置於指紋辨識器上)"
-#: js/misc/breakManager.js:765
+#: js/misc/breakManager.js:770
msgid "Break complete sound"
msgstr "休息結束聲"
-#: js/misc/breakManager.js:982
+#: js/misc/breakManager.js:980
#, javascript-format
msgid "%d second"
msgid_plural "%d seconds"
msgstr[0] "%d 秒"
-#: js/misc/breakManager.js:988
+#: js/misc/breakManager.js:986
#, javascript-format
msgid "%d minute"
msgid_plural "%d minutes"
msgstr[0] "%d 分鐘"
-#: js/misc/breakManager.js:994
+#: js/misc/breakManager.js:992
#, javascript-format
msgid "%d hour"
msgid_plural "%d hours"
msgstr[0] "%d 小時"
-#: js/misc/breakManager.js:1000
+#: js/misc/breakManager.js:998
#, javascript-format
msgid "%d day"
msgid_plural "%d days"
msgstr[0] "%d 天"
#. %s will be replaced with a string that describes a time interval, such as “2 minutes”, “40 seconds” or “1 hour”
-#: js/misc/breakManager.js:1083
+#: js/misc/breakManager.js:1081
#, javascript-format
msgid "It will be time for a break in %s"
msgid_plural "It will be time for a break in %s"
msgstr[0] "%s 後休息"
-#: js/misc/breakManager.js:1091
+#: js/misc/breakManager.js:1089
msgid "Movement Break Soon"
msgstr "即將休息活動身體"
-#: js/misc/breakManager.js:1094
+#: js/misc/breakManager.js:1092
msgid "Eyesight Break Soon"
msgstr "即將休息保健視力"
-#: js/misc/breakManager.js:1097
+#: js/misc/breakManager.js:1095
msgid "Break Soon"
msgstr "即將休息"
-#: js/misc/breakManager.js:1141
+#: js/misc/breakManager.js:1140
msgid "Movement Break in Progress"
msgstr "休息活動身體中"
#. %s will be replaced with a string that describes a time interval, such as “2 minutes”, “40 seconds” or “1 hour”
-#: js/misc/breakManager.js:1144
+#: js/misc/breakManager.js:1143
#, javascript-format
msgid "Continue moving around for %s"
msgid_plural "Continue moving around for %s"
msgstr[0] "繼續活動身體 %s"
-#: js/misc/breakManager.js:1150
+#: js/misc/breakManager.js:1149
msgid "Eyesight Break in Progress"
msgstr "休息保健視力中"
#. %s will be replaced with a string that describes a time interval, such as “2 minutes”, “40 seconds” or “1 hour”
-#: js/misc/breakManager.js:1153
+#: js/misc/breakManager.js:1152
#, javascript-format
msgid "Continue looking away for %s"
msgid_plural "Continue looking away for %s"
msgstr[0] "繼續看看別處 %s"
-#: js/misc/breakManager.js:1159
+#: js/misc/breakManager.js:1158
msgid "Break in Progress"
msgstr "休息中"
#. %s will be replaced with a string that describes a time interval, such as “2 minutes”, “40 seconds” or “1 hour”
-#: js/misc/breakManager.js:1162
+#: js/misc/breakManager.js:1161
#, javascript-format
msgid "%s left in your break"
msgid_plural "%s left in your break"
msgstr[0] "您的休息時間還有 %s"
-#: js/misc/breakManager.js:1201
+#: js/misc/breakManager.js:1200
msgid "Time for a Movement Break"
msgstr "身體活動休息時間"
#. %s will be replaced with a string that describes a time interval, such as “2 minutes”, “40 seconds” or “1 hour”
-#: js/misc/breakManager.js:1204
+#: js/misc/breakManager.js:1203
#, javascript-format
msgid "Take a break from the device and move around for %s"
msgid_plural "Take a break from the device and move around for %s"
msgstr[0] "離開裝置休息一下,並活動身體 %s"
-#: js/misc/breakManager.js:1210
+#: js/misc/breakManager.js:1209
msgid "Time for an Eyesight Break"
msgstr "視力保健休息時間"
#. %s will be replaced with a string that describes a time interval, such as “2 minutes”, “40 seconds” or “1 hour”
-#: js/misc/breakManager.js:1213
+#: js/misc/breakManager.js:1212
#, javascript-format
msgid ""
"Take a break from the screen. Look at least 6 meters away for at least %s"
@@ -776,54 +776,56 @@
"Take a break from the screen. Look at least 6 meters away for at least %s"
msgstr[0] "離開螢幕休息一下。看至少 6 公尺外的地方,至少 %s"
-#: js/misc/breakManager.js:1219
+#: js/misc/breakManager.js:1218
msgid "Time for a Break"
msgstr "休息時間"
#. %s will be replaced with a string that describes a time interval, such as “2 minutes”, “40 seconds” or “1 hour”
-#: js/misc/breakManager.js:1222
+#: js/misc/breakManager.js:1221
#, javascript-format
msgid "It’s time to take a break. Get away from the device for %s!"
msgid_plural "It’s time to take a break. Get away from the device for %s!"
msgstr[0] "是時候該休息一下囉。請離開裝置 %s!"
#. %s will be replaced with a string that describes a time interval, such as “2 minutes”, “40 seconds” or “1 hour”
-#: js/misc/breakManager.js:1244
+#: js/misc/breakManager.js:1245
#, javascript-format
msgid "You were due to take a break %s ago"
msgid_plural "You were due to take a break %s ago"
msgstr[0] "您 %s前就該休息囉"
-#: js/misc/breakManager.js:1250
+#: js/misc/breakManager.js:1251
msgid "Break Overdue"
msgstr "超時休息"
-#. %s will be replaced with a string that describes a time interval, such as “2 minutes”, “40 seconds” or “1 hour”
-#: js/misc/breakManager.js:1264
+#: js/misc/breakManager.js:1267
#, javascript-format
msgid "There is %s remaining in your break"
msgid_plural "There are %s remaining in your break"
msgstr[0] "您的休息時間還有 %s"
-#: js/misc/breakManager.js:1270
+#: js/misc/breakManager.js:1273
msgid "Break Interrupted"
msgstr "休息中斷"
-#: js/misc/breakManager.js:1341
+#. Translators: As in "Delay the break"
+#: js/misc/breakManager.js:1351
msgid "Delay"
msgstr "延遲"
-#: js/misc/breakManager.js:1362 js/ui/welcomeDialog.js:61
+#. Translators: As in "Skip the break"
+#: js/misc/breakManager.js:1373 js/ui/welcomeDialog.js:61
msgid "Skip"
msgstr "略過"
-#: js/misc/breakManager.js:1383
+#. Translators: As in "Take the break"
+#: js/misc/breakManager.js:1395
msgid "Take"
msgstr "休息"
#. Translators: This is a notification to warn the user that a
#. screen time break will start shortly.
-#: js/misc/breakManager.js:1446
+#: js/misc/breakManager.js:1458
#, javascript-format
msgid "Break in %d second"
msgid_plural "Break in %d seconds"
@@ -924,25 +926,25 @@
msgid "Lock Screen Rotation"
msgstr "鎖定螢幕旋轉"
-#: js/misc/timeLimitsManager.js:338
+#: js/misc/timeLimitsManager.js:342
msgid "GNOME needs to save screen time data"
msgstr "GNOME 需要儲存螢幕使用時間資料"
-#: js/misc/timeLimitsManager.js:1102
+#: js/misc/timeLimitsManager.js:1123
#, javascript-format
msgid "Screen Time Limit in %d Minute"
msgid_plural "Screen Time Limit in %d Minutes"
msgstr[0] "螢幕使用時間限制還有 %d 分鐘"
-#: js/misc/timeLimitsManager.js:1109
+#: js/misc/timeLimitsManager.js:1130
msgid "Your screen time limit is approaching"
msgstr "您的螢幕使用時間限制快到囉"
-#: js/misc/timeLimitsManager.js:1123
+#: js/misc/timeLimitsManager.js:1144
msgid "Screen Time Limit Reached"
msgstr "已達螢幕使用時間限制"
-#: js/misc/timeLimitsManager.js:1124
+#: js/misc/timeLimitsManager.js:1145
msgid "It’s time to stop using the device"
msgstr "是時候該停止使用這個裝置囉"
@@ -971,7 +973,7 @@
msgid_plural "%d hours ago"
msgstr[0] "%d 小時前"
-#: js/misc/dateUtils.js:85 js/ui/dateMenu.js:183
+#: js/misc/dateUtils.js:85 js/ui/dateMenu.js:184
msgid "Yesterday"
msgstr "昨天"
@@ -1465,29 +1467,29 @@
msgstr "%Y年%-m月%-d日 %A"
#. Translators: Shown on calendar heading when selected day occurs on current year
-#: js/ui/dateMenu.js:172
+#: js/ui/dateMenu.js:173
msgctxt "calendar heading"
msgid "%B %-d"
msgstr "%-m月%-d日"
#. Translators: Shown on calendar heading when selected day occurs on different year
-#: js/ui/dateMenu.js:175
+#: js/ui/dateMenu.js:176
msgctxt "calendar heading"
msgid "%B %-d %Y"
msgstr "%Y年%-m月%-d日"
-#: js/ui/dateMenu.js:181
+#: js/ui/dateMenu.js:182
msgid "Today"
msgstr "今天"
-#: js/ui/dateMenu.js:185
+#: js/ui/dateMenu.js:186
msgid "Tomorrow"
msgstr "明天"
#. Translators: Shown in calendar event list for all day events
#. * Keep it short, best if you can use less then 10 characters
#.
-#: js/ui/dateMenu.js:216
+#: js/ui/dateMenu.js:217
msgctxt "event list time"
msgid "All Day"
msgstr "全天"
@@ -1495,39 +1497,39 @@
#. Translators: Shown in calendar event list as the start/end of events
#. * that only show day and month
#.
-#: js/ui/dateMenu.js:238
+#: js/ui/dateMenu.js:239
msgid "%m/%d"
msgstr "%m/%d"
-#: js/ui/dateMenu.js:289
+#: js/ui/dateMenu.js:290
msgid "No Events"
msgstr "沒有行程"
-#: js/ui/dateMenu.js:411
+#: js/ui/dateMenu.js:412
msgid "Add World Clocks…"
msgstr "加入世界時鐘…"
-#: js/ui/dateMenu.js:412
+#: js/ui/dateMenu.js:413
msgid "World Clocks"
msgstr "世界時鐘"
-#: js/ui/dateMenu.js:702
+#: js/ui/dateMenu.js:704
msgid "Loading…"
msgstr "正在載入…"
-#: js/ui/dateMenu.js:712
+#: js/ui/dateMenu.js:714
msgid "Go Online for Weather Information"
msgstr "連上網路取得天氣資訊"
-#: js/ui/dateMenu.js:714
+#: js/ui/dateMenu.js:716
msgid "Weather Information Unavailable"
msgstr "無法取得天氣資訊"
-#: js/ui/dateMenu.js:724
+#: js/ui/dateMenu.js:726
msgid "Weather"
msgstr "天氣"
-#: js/ui/dateMenu.js:726
+#: js/ui/dateMenu.js:728
msgid "Select Weather Location…"
msgstr "選取天氣位置…"
@@ -1621,12 +1623,12 @@
#: js/ui/endSessionDialog.js:119 js/ui/endSessionDialog.js:140
msgctxt "button"
msgid "Restart & Install"
-msgstr "重新啟動 & 安裝"
+msgstr "重新啟動並安裝"
#: js/ui/endSessionDialog.js:121
msgctxt "button"
msgid "Install & Power Off"
-msgstr "安裝 & 關機"
+msgstr "安裝並關機"
#: js/ui/endSessionDialog.js:122
msgctxt "checkbox"
@@ -1966,15 +1968,15 @@
msgid "Run a Command"
msgstr "執行命令"
-#: js/ui/runDialog.js:76
+#: js/ui/runDialog.js:79
msgid "Press ESC to close"
msgstr "按下 ESC 鍵關閉"
-#: js/ui/runDialog.js:253
+#: js/ui/runDialog.js:256
msgid "Restart is not available on Wayland"
msgstr "使用《Wayland》時無法重新啟動"
-#: js/ui/runDialog.js:258
+#: js/ui/runDialog.js:261
msgid "Restarting…"
msgstr "重新啟動…"
@@ -2034,79 +2036,79 @@
#. Translators: this is the folder where recorded
#. screencasts are stored.
-#: js/ui/screenshot.js:1994
+#: js/ui/screenshot.js:1998
msgid "Screencasts"
msgstr "螢幕錄影"
#. Translators: this is a filename used for screencast
#. * recording, where "%d" and "%t" date and time, e.g.
#. * "Screencast From 07-17-2013 10:00:46 PM"
-#: js/ui/screenshot.js:1999
+#: js/ui/screenshot.js:2003
#, no-c-format
msgid "Screencast From %d %t"
msgstr "螢幕錄影 %d %t"
#. Translators: notification title.
-#: js/ui/screenshot.js:2045
+#: js/ui/screenshot.js:2049
msgid "Screencast recorded"
msgstr "已錄製螢幕錄影"
#. Translators: notification title.
-#: js/ui/screenshot.js:2058
+#: js/ui/screenshot.js:2062
msgid "Screencast failed to start"
msgstr "螢幕錄影無法啟動"
#. Translators: notification title.
-#: js/ui/screenshot.js:2064
+#: js/ui/screenshot.js:2068
msgid "Screencast ended: Out of disk space"
msgstr "螢幕錄影中止:磁碟空間不足"
#. We can encourage user to try again on service crashes since the
#. recorder will auto-blocklist the pipeline that crashed.
#. Translators: notification title.
-#: js/ui/screenshot.js:2070
+#: js/ui/screenshot.js:2074
msgid "Screencast ended unexpectedly, please try again"
msgstr "螢幕錄影未預期的結束,請再試一次"
#. Translators: notification title.
-#: js/ui/screenshot.js:2073
+#: js/ui/screenshot.js:2077
msgid "Screencast ended unexpectedly"
msgstr "螢幕錄影未預期的結束"
#. Translators: notification source name.
-#: js/ui/screenshot.js:2083 js/ui/screenshot.js:2330
+#: js/ui/screenshot.js:2087 js/ui/screenshot.js:2334
msgid "Screenshot"
msgstr "螢幕快照"
#. Translators: notification body when a screencast was recorded.
-#: js/ui/screenshot.js:2090
+#: js/ui/screenshot.js:2094
msgid "Click here to view the video."
msgstr "點擊此處檢視影片。"
#. Translators: button on the screencast notification.
#. Translators: button on the screenshot notification.
-#: js/ui/screenshot.js:2098 js/ui/screenshot.js:2346
+#: js/ui/screenshot.js:2102 js/ui/screenshot.js:2350
msgid "Show in Files"
msgstr "使用《檔案》開啟"
#. Translators: this is the name of the file that the screenshot is
#. saved to. The placeholder is a timestamp, e.g. "2017-05-21 12-24-03".
-#: js/ui/screenshot.js:2288
+#: js/ui/screenshot.js:2292
#, javascript-format
msgid "Screenshot From %s"
msgstr "螢幕快照 %s"
#. Translators: notification title.
-#: js/ui/screenshot.js:2336
+#: js/ui/screenshot.js:2340
msgid "Screenshot captured"
msgstr "已擷取螢幕畫面"
#. Translators: notification body when a screenshot was captured.
-#: js/ui/screenshot.js:2338
+#: js/ui/screenshot.js:2342
msgid "You can paste the image from the clipboard."
msgstr "您可以自剪貼簿中貼上螢幕快照。"
-#: js/ui/screenshot.js:2397 js/ui/screenshot.js:2561
+#: js/ui/screenshot.js:2401 js/ui/screenshot.js:2565
msgid "Screenshot taken"
msgstr "已擷取螢幕畫面"
@@ -2311,7 +2313,7 @@
msgid "Bluetooth"
msgstr "藍牙"
-#: js/ui/status/bluetooth.js:301 js/ui/status/network.js:1909
+#: js/ui/status/bluetooth.js:301 js/ui/status/network.js:1920
msgid "Bluetooth Settings"
msgstr "藍牙設定值"
@@ -2388,92 +2390,92 @@
msgid ""
msgstr "<未知>"
-#: js/ui/status/network.js:1059
+#: js/ui/status/network.js:1060
msgid "Secure"
msgstr "安全"
-#: js/ui/status/network.js:1059
+#: js/ui/status/network.js:1060
msgid "Not secure"
msgstr "不安全"
-#: js/ui/status/network.js:1060
+#: js/ui/status/network.js:1061
#, javascript-format
msgid "Signal strength %s%%"
msgstr "訊號強度 %s%%"
#. translators: The first placeholder is the network name, the second and indication whether it is secure, and the last the signal strength indication
-#: js/ui/status/network.js:1062
+#: js/ui/status/network.js:1063
#, javascript-format
msgid "%s, %s, %s"
msgstr "%s,%s,%s"
#. Translators: %s is a network identifier
-#: js/ui/status/network.js:1164
+#: js/ui/status/network.js:1165
#, javascript-format
msgid "%s Hotspot"
msgstr "%s熱點"
-#: js/ui/status/network.js:1435
+#: js/ui/status/network.js:1446
#, javascript-format
msgid "%d connected"
msgid_plural "%d connected"
msgstr[0] "已連線 %d 個"
-#: js/ui/status/network.js:1533 js/ui/status/network.js:1549
+#: js/ui/status/network.js:1544 js/ui/status/network.js:1560
msgid "VPN"
msgstr "VPN 網路"
-#: js/ui/status/network.js:1534
+#: js/ui/status/network.js:1545
msgid "VPN Settings"
msgstr "VPN 設定值"
-#: js/ui/status/network.js:1794
+#: js/ui/status/network.js:1805
msgid "Wi–Fi"
msgstr "Wi–Fi"
-#: js/ui/status/network.js:1796
+#: js/ui/status/network.js:1807
msgid "All Networks"
msgstr "所有的網路"
-#: js/ui/status/network.js:1893
+#: js/ui/status/network.js:1904
msgid "Wired Connections"
msgstr "有線網路連線"
-#: js/ui/status/network.js:1894
+#: js/ui/status/network.js:1905
msgid "Wired Settings"
msgstr "有線網路設定值"
-#: js/ui/status/network.js:1908
+#: js/ui/status/network.js:1919
msgid "Bluetooth Tethers"
msgstr "藍牙分享網路"
#. Translators: "Tether" from "Bluetooth Tether"
-#: js/ui/status/network.js:1915
+#: js/ui/status/network.js:1926
msgid "Tether"
msgstr "分享網路"
-#: js/ui/status/network.js:1928
+#: js/ui/status/network.js:1939
msgid "Mobile Connections"
msgstr "行動網路連線"
-#: js/ui/status/network.js:1930
+#: js/ui/status/network.js:1941
msgid "Mobile Broadband Settings"
msgstr "行動寬頻設定值"
#. Translators: "Mobile" from "Mobile Broadband"
-#: js/ui/status/network.js:1939
+#: js/ui/status/network.js:1950
msgid "Mobile"
msgstr "行動網路"
-#: js/ui/status/network.js:1973
+#: js/ui/status/network.js:1984
msgid "Sign Into Wi–Fi Network"
msgstr "登入 Wi-Fi 網路"
-#: js/ui/status/network.js:2160
+#: js/ui/status/network.js:2171
msgid "Connection failed"
msgstr "連線失敗"
-#: js/ui/status/network.js:2161
+#: js/ui/status/network.js:2172
msgid "Activation of network connection failed"
msgstr "啟動網路連線失敗"
@@ -2512,7 +2514,7 @@
msgid "Stop Screen Sharing"
msgstr "停止螢幕分享"
-#: js/ui/status/rfkill.js:99
+#: js/ui/status/rfkill.js:97
msgid "Airplane Mode"
msgstr "飛航模式"
@@ -2546,30 +2548,30 @@
msgid "Lock Screen"
msgstr "鎖定螢幕"
-#: js/ui/status/thunderbolt.js:308
+#: js/ui/status/thunderbolt.js:311
msgid "Unknown Thunderbolt device"
msgstr "未知的 Thunderbolt 裝置"
-#: js/ui/status/thunderbolt.js:309
+#: js/ui/status/thunderbolt.js:312
msgid ""
"New device has been detected while you were away. Please disconnect and "
"reconnect the device to start using it."
msgstr "您離開後有偵測到新裝置。請中斷並重新連接該裝置便能開始使用。"
-#: js/ui/status/thunderbolt.js:312
+#: js/ui/status/thunderbolt.js:315
msgid "Unauthorized Thunderbolt device"
msgstr "未經授權的 Thunderbolt 裝置"
-#: js/ui/status/thunderbolt.js:313
+#: js/ui/status/thunderbolt.js:316
msgid ""
"New device has been detected and needs to be authorized by an administrator"
msgstr "偵測到新裝置,需由系統管理員授權"
-#: js/ui/status/thunderbolt.js:319
+#: js/ui/status/thunderbolt.js:322
msgid "Thunderbolt authorization error"
msgstr "Thunderbolt 授權錯誤"
-#: js/ui/status/thunderbolt.js:320
+#: js/ui/status/thunderbolt.js:323
#, javascript-format
msgid "Could not authorize the Thunderbolt device: %s"
msgstr "無法授權該 Thunderbolt 裝置:%s"
@@ -2835,19 +2837,19 @@
"《GNOME 擴充套件》能管理擴充套件更新、調整擴充套件偏好設定、移除或停用不想用"
"的擴充套件等。"
-#: subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in:68
+#: subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in:72
msgid "Main Window"
msgstr "主視窗"
-#: subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in:72
+#: subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in:76
msgid "Available Updates"
msgstr "可用的更新"
-#: subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in:76
+#: subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in:80
msgid "Search View"
msgstr "搜尋檢視"
-#: subprojects/extensions-app/data/org.gnome.Extensions.desktop.in.in:7
+#: subprojects/extensions-app/data/org.gnome.Extensions.desktop.in.in:6
msgid "Configure GNOME Shell Extensions"
msgstr "設定《GNOME Shell》的擴充套件"
@@ -3006,11 +3008,11 @@
#: subprojects/extensions-app/data/ui/extensions-window.ui:265
msgid ""
-"To find and add extensions, visit extensions.gnome.org."
+"To find and add extensions, visit extensions.gnome.org."
msgstr ""
-"要尋找並加入擴充套件,可以造訪 extensions.gnome.org。"
+"要尋找並加入擴充套件,可以造訪 extensions.gnome.org。"
#: subprojects/extensions-app/data/ui/extensions-window.ui:276
msgid ""
@@ -3082,8 +3084,8 @@
#: subprojects/extensions-tool/src/command-create.c:416
msgid ""
"UUID is a globally-unique identifier for your extension.\n"
-"This should be in the format of an email address (clicktofocus@janedoe."
-"example.com)\n"
+"This should be in the format of an email address "
+"(clicktofocus@janedoe.example.com)\n"
msgstr ""
"UUID 是您擴充套件的全域唯一識別碼。\n"
"格式應該要像電子信箱位址 (clicktofocus@janedoe.example.com)\n"
@@ -3461,27 +3463,27 @@
msgid "Use “%s” to get detailed help.\n"
msgstr "使用「%s」以取得詳細說明。\n"
-#: subprojects/extensions-tool/src/templates/00-plain.desktop.in:4
+#: subprojects/extensions-tool/src/templates/00-plain.desktop.in:3
msgid "Plain"
msgstr "空白"
-#: subprojects/extensions-tool/src/templates/00-plain.desktop.in:5
+#: subprojects/extensions-tool/src/templates/00-plain.desktop.in:4
msgid "An empty extension"
msgstr "空白的擴充套件"
-#: subprojects/extensions-tool/src/templates/indicator.desktop.in:4
+#: subprojects/extensions-tool/src/templates/indicator.desktop.in:3
msgid "Indicator"
msgstr "指示器"
-#: subprojects/extensions-tool/src/templates/indicator.desktop.in:5
+#: subprojects/extensions-tool/src/templates/indicator.desktop.in:4
msgid "Add an icon to the top bar"
msgstr "在頂端列加入一個圖示"
-#: subprojects/extensions-tool/src/templates/quick-settings.desktop.in:4
+#: subprojects/extensions-tool/src/templates/quick-settings.desktop.in:3
msgid "Quick Settings Item"
msgstr "快速設定項目"
-#: subprojects/extensions-tool/src/templates/quick-settings.desktop.in:5
+#: subprojects/extensions-tool/src/templates/quick-settings.desktop.in:4
msgid "Add an item to quick settings"
msgstr "將項目加入快速設定"
diff -Nru gnome-shell-48.4/src/meson.build gnome-shell-48.7/src/meson.build
--- gnome-shell-48.4/src/meson.build 2025-08-03 10:53:34.000000000 +0000
+++ gnome-shell-48.7/src/meson.build 2025-11-24 14:16:08.000000000 +0000
@@ -257,6 +257,7 @@
'Clutter-@0@'.format(mutter_api_version),
'Meta-@0@'.format(mutter_api_version),
'Gcr-4',
+ 'GioUnix-2.0',
'PolkitAgent-1.0',
'GdkPixbuf-2.0'
]
diff -Nru gnome-shell-48.4/src/shell-tray-icon.c gnome-shell-48.7/src/shell-tray-icon.c
--- gnome-shell-48.4/src/shell-tray-icon.c 2025-08-03 10:53:34.000000000 +0000
+++ gnome-shell-48.7/src/shell-tray-icon.c 2025-11-24 14:16:08.000000000 +0000
@@ -185,6 +185,10 @@
CLUTTER_ACTOR_CLASS (shell_tray_icon_parent_class)->allocate (actor, box);
+ na_xembed_set_available_size (NA_XEMBED (tray_icon->tray_child),
+ roundf (clutter_actor_box_get_width (box)),
+ roundf (clutter_actor_box_get_height (box)));
+
/* Find the actor's new coordinates in terms of the stage.
*/
clutter_actor_get_transformed_position (actor, &wx, &wy);
@@ -235,6 +239,7 @@
MetaDisplay *display = shell_global_get_display (shell_global_get ());
g_return_if_fail (tray_icon != NULL);
+ g_return_if_fail (tray_icon->tray_child == NULL);
g_return_if_fail (tray_child != NULL);
/* We do all this now rather than computing it on the fly later,
@@ -255,6 +260,10 @@
"window-created",
G_CALLBACK (shell_tray_icon_window_created_cb),
tray_icon);
+
+ g_signal_connect_object (tray_child, "reconfigured",
+ G_CALLBACK (clutter_actor_queue_relayout),
+ tray_icon, G_CONNECT_SWAPPED);
}
/*
diff -Nru gnome-shell-48.4/src/st/st-entry.c gnome-shell-48.7/src/st/st-entry.c
--- gnome-shell-48.4/src/st/st-entry.c 2025-08-03 10:53:34.000000000 +0000
+++ gnome-shell-48.7/src/st/st-entry.c 2025-11-24 14:16:08.000000000 +0000
@@ -1646,6 +1646,9 @@
accessible = clutter_actor_get_accessible (priv->entry);
entry_accessible = ST_ENTRY_ACCESSIBLE (atk_object_get_parent (accessible));
+ if (accessible == NULL || entry_accessible == NULL)
+ return;
+
if (entry_accessible->current_hint != NULL)
{
atk_object_remove_relationship (accessible,
@@ -1684,6 +1687,9 @@
accessible = clutter_actor_get_accessible (priv->entry);
entry_accessible = ST_ENTRY_ACCESSIBLE (atk_object_get_parent (accessible));
+ if (accessible == NULL || entry_accessible == NULL)
+ return;
+
if (entry_accessible->current_label != NULL)
{
atk_object_remove_relationship (accessible,
diff -Nru gnome-shell-48.4/src/st/st-focus-manager.c gnome-shell-48.7/src/st/st-focus-manager.c
--- gnome-shell-48.4/src/st/st-focus-manager.c 2025-08-03 10:53:34.000000000 +0000
+++ gnome-shell-48.7/src/st/st-focus-manager.c 2025-11-24 14:16:08.000000000 +0000
@@ -113,7 +113,7 @@
if (!focused)
return FALSE;
- for (group = focused; group != stage; group = clutter_actor_get_parent (group))
+ for (group = focused; group != NULL; group = clutter_actor_get_parent (group))
{
if (g_hash_table_lookup (manager->groups, group))
{
diff -Nru gnome-shell-48.4/src/st/st-private.c gnome-shell-48.7/src/st/st-private.c
--- gnome-shell-48.4/src/st/st-private.c 2025-08-03 10:53:34.000000000 +0000
+++ gnome-shell-48.7/src/st/st-private.c 2025-11-24 14:16:08.000000000 +0000
@@ -604,7 +604,7 @@
shadow_pipeline = _st_create_shadow_pipeline (shadow_spec,
paint_context,
- g_steal_pointer (&buffer),
+ buffer,
resource_scale);
}
diff -Nru gnome-shell-48.4/src/st/st-spinner-content.c gnome-shell-48.7/src/st/st-spinner-content.c
--- gnome-shell-48.4/src/st/st-spinner-content.c 2025-08-03 10:53:34.000000000 +0000
+++ gnome-shell-48.7/src/st/st-spinner-content.c 2025-11-24 14:16:08.000000000 +0000
@@ -131,7 +131,7 @@
clutter_timeline_set_repeat_count (spinner->timeline, -1);
clutter_timeline_set_progress_mode (spinner->timeline, CLUTTER_LINEAR);
- g_signal_connect (spinner->timeline, "new-frame", G_CALLBACK (new_frame_cb), spinner);
+ g_signal_connect_object (spinner->timeline, "new-frame", G_CALLBACK (new_frame_cb), spinner, 0);
if (clutter_actor_is_mapped (actor))
clutter_timeline_start (spinner->timeline);
diff -Nru gnome-shell-48.4/src/st/st-theme-context.c gnome-shell-48.7/src/st/st-theme-context.c
--- gnome-shell-48.4/src/st/st-theme-context.c 2025-08-03 10:53:34.000000000 +0000
+++ gnome-shell-48.7/src/st/st-theme-context.c 2025-11-24 14:16:08.000000000 +0000
@@ -290,7 +290,9 @@
break;
default:
- g_assert_not_reached ();
+ g_warning ("Unsupported accent color: %d", accent_color);
+ cogl_color_from_string (&context->accent_color, ACCENT_COLOR_BLUE);
+ break;
}
cogl_color_from_string (&context->accent_fg_color, ACCENT_FG_COLOR);
@@ -311,11 +313,24 @@
st_theme_context_changed (StThemeContext *context)
{
StThemeNode *old_root = context->root_node;
+ g_autoptr (GPtrArray) old_nodes = NULL;
+
context->root_node = NULL;
- g_hash_table_remove_all (context->nodes);
+ old_nodes = g_hash_table_steal_all_keys (context->nodes);
g_signal_emit (context, signals[CHANGED], 0);
+ /* Force a run of the dispose() vfuncs of theme nodes so that their references
+ * into the theme CSS data get cleared. While theme nodes might outlive this
+ * function (in case buggy user code is holding a reference to them), the theme
+ * CSS data definitely gets freed after this function returns.
+ *
+ * Note that we can't do this before emitting ::changed because during the
+ * signal emission, StWidget needs to access the theme nodes (and therefore the
+ * theme CSS data) for its old/new theme node comparisons.
+ */
+ g_ptr_array_foreach (old_nodes, (GFunc) g_object_run_dispose, NULL);
+
if (old_root)
g_object_unref (old_root);
}
@@ -599,4 +614,4 @@
g_return_val_if_fail (ST_IS_THEME_CONTEXT (context), -1);
return clutter_backend_get_resolution (context->clutter_backend);
-}
\ No newline at end of file
+}
diff -Nru gnome-shell-48.4/src/st/st-theme-node-private.h gnome-shell-48.7/src/st/st-theme-node-private.h
--- gnome-shell-48.4/src/st/st-theme-node-private.h 2025-08-03 10:53:34.000000000 +0000
+++ gnome-shell-48.7/src/st/st-theme-node-private.h 2025-11-24 14:16:08.000000000 +0000
@@ -104,8 +104,6 @@
int box_shadow_min_width;
int box_shadow_min_height;
- guint stylesheets_changed_id;
-
CoglTexture *border_slices_texture;
CoglPipeline *border_slices_pipeline;
CoglTexture *background_texture;
diff -Nru gnome-shell-48.4/src/st/st-theme-node.c gnome-shell-48.7/src/st/st-theme-node.c
--- gnome-shell-48.4/src/st/st-theme-node.c 2025-08-03 10:53:34.000000000 +0000
+++ gnome-shell-48.7/src/st/st-theme-node.c 2025-11-24 14:16:08.000000000 +0000
@@ -102,6 +102,7 @@
st_theme_node_paint_state_free (&node->cached_state);
+ maybe_free_properties (node);
g_clear_object (&node->theme);
G_OBJECT_CLASS (st_theme_node_parent_class)->dispose (gobject);
@@ -117,8 +118,6 @@
g_strfreev (node->pseudo_classes);
g_free (node->inline_style);
- maybe_free_properties (node);
-
g_clear_pointer (&node->font_desc, pango_font_description_free);
g_clear_pointer (&node->box_shadow, st_shadow_unref);
diff -Nru gnome-shell-48.4/src/st/st-widget.c gnome-shell-48.7/src/st/st-widget.c
--- gnome-shell-48.4/src/st/st-widget.c 2025-08-03 10:53:34.000000000 +0000
+++ gnome-shell-48.7/src/st/st-widget.c 2025-11-24 14:16:08.000000000 +0000
@@ -126,8 +126,15 @@
G_DEFINE_TYPE_WITH_PRIVATE (StWidget, st_widget, CLUTTER_TYPE_ACTOR);
#define ST_WIDGET_PRIVATE(w) ((StWidgetPrivate *)st_widget_get_instance_private (w))
-static void st_widget_recompute_style (StWidget *widget,
- StThemeNode *old_theme_node);
+typedef enum {
+ STYLE_CHANGE_FLAGS_NONE = 0,
+ STYLE_CHANGE_FLAGS_NO_TRANSITIONS = 1 << 0,
+} StyleChangeFlags;
+
+static void st_widget_recompute_style (StWidget *widget,
+ StThemeNode *old_theme_node,
+ StyleChangeFlags flags);
+
static gboolean st_widget_real_navigate_focus (StWidget *widget,
ClutterActor *from,
StDirectionType direction);
@@ -482,7 +489,12 @@
}
static void
-notify_children_of_style_change (ClutterActor *self)
+st_widget_style_changed_internal (StWidget *widget,
+ StyleChangeFlags flags);
+
+static void
+notify_children_of_style_change (ClutterActor *self,
+ StyleChangeFlags flags)
{
ClutterActorIter iter;
ClutterActor *actor;
@@ -491,9 +503,9 @@
while (clutter_actor_iter_next (&iter, &actor))
{
if (ST_IS_WIDGET (actor))
- st_widget_style_changed (ST_WIDGET (actor));
+ st_widget_style_changed_internal (ST_WIDGET (actor), flags);
else
- notify_children_of_style_change (actor);
+ notify_children_of_style_change (actor, flags);
}
}
@@ -503,8 +515,9 @@
clutter_actor_queue_redraw ((ClutterActor *) self);
}
-void
-st_widget_style_changed (StWidget *widget)
+static void
+st_widget_style_changed_internal (StWidget *widget,
+ StyleChangeFlags flags)
{
StWidgetPrivate *priv = st_widget_get_instance_private (widget);
StThemeNode *old_theme_node = NULL;
@@ -518,22 +531,28 @@
/* update the style only if we are mapped */
if (clutter_actor_is_mapped (CLUTTER_ACTOR (widget)))
- st_widget_recompute_style (widget, old_theme_node);
+ st_widget_recompute_style (widget, old_theme_node, flags);
/* Descend through all children. If the actor is not mapped,
* children will clear their theme node without recomputing style.
*/
- notify_children_of_style_change (CLUTTER_ACTOR (widget));
+ notify_children_of_style_change (CLUTTER_ACTOR (widget), flags);
if (old_theme_node)
g_object_unref (old_theme_node);
}
+void
+st_widget_style_changed (StWidget *widget)
+{
+ st_widget_style_changed_internal (widget, STYLE_CHANGE_FLAGS_NONE);
+}
+
static void
on_theme_context_changed (StThemeContext *context,
ClutterStage *stage)
{
- notify_children_of_style_change (CLUTTER_ACTOR (stage));
+ notify_children_of_style_change (CLUTTER_ACTOR (stage), STYLE_CHANGE_FLAGS_NO_TRANSITIONS);
}
static StThemeNode *
@@ -1632,8 +1651,9 @@
}
static void
-st_widget_recompute_style (StWidget *widget,
- StThemeNode *old_theme_node)
+st_widget_recompute_style (StWidget *widget,
+ StThemeNode *old_theme_node,
+ StyleChangeFlags flags)
{
StWidgetPrivate *priv = st_widget_get_instance_private (widget);
StThemeNode *new_theme_node = st_widget_get_theme_node (widget);
@@ -1655,7 +1675,9 @@
if (!geometry_equal)
clutter_actor_queue_relayout ((ClutterActor *) widget);
- transition_duration = st_theme_node_get_transition_duration (new_theme_node);
+ transition_duration = (flags & STYLE_CHANGE_FLAGS_NO_TRANSITIONS) != 0
+ ? 0
+ : st_theme_node_get_transition_duration (new_theme_node);
paint_equal = st_theme_node_paint_equal (old_theme_node, new_theme_node);
@@ -1730,8 +1752,8 @@
if (priv->is_style_dirty)
{
- st_widget_recompute_style (widget, NULL);
- notify_children_of_style_change (CLUTTER_ACTOR (widget));
+ st_widget_recompute_style (widget, NULL, STYLE_CHANGE_FLAGS_NONE);
+ notify_children_of_style_change (CLUTTER_ACTOR (widget), STYLE_CHANGE_FLAGS_NONE);
}
}
diff -Nru gnome-shell-48.4/src/tray/meson.build gnome-shell-48.7/src/tray/meson.build
--- gnome-shell-48.4/src/tray/meson.build 2025-08-03 10:53:34.000000000 +0000
+++ gnome-shell-48.7/src/tray/meson.build 2025-11-24 14:16:08.000000000 +0000
@@ -9,6 +9,6 @@
libtray = static_library('tray', tray_sources,
c_args: ['-DG_LOG_DOMAIN="notification_area"'],
- dependencies: [mutter_dep, mtk_dep],
+ dependencies: [mutter_dep, mtk_dep, xfixes_dep, xext_dep],
include_directories: conf_inc
)
diff -Nru gnome-shell-48.4/src/tray/na-tray-child.c gnome-shell-48.7/src/tray/na-tray-child.c
--- gnome-shell-48.4/src/tray/na-tray-child.c 2025-08-03 10:53:34.000000000 +0000
+++ gnome-shell-48.7/src/tray/na-tray-child.c 2025-11-24 14:16:08.000000000 +0000
@@ -260,9 +260,9 @@
ClutterEvent *event)
{
MetaX11Display *x11_display;
- XKeyEvent xkevent;
- XButtonEvent xbevent;
- XCrossingEvent xcevent;
+ XKeyEvent xkevent = {0};
+ XButtonEvent xbevent = {0};
+ XCrossingEvent xcevent = {0};
Display *xdisplay;
Window xwindow, xrootwindow;
ClutterEventType event_type = clutter_event_type (event);
diff -Nru gnome-shell-48.4/src/tray/na-tray-manager.c gnome-shell-48.7/src/tray/na-tray-manager.c
--- gnome-shell-48.4/src/tray/na-tray-manager.c 2025-08-03 10:53:34.000000000 +0000
+++ gnome-shell-48.7/src/tray/na-tray-manager.c 2025-11-24 14:16:08.000000000 +0000
@@ -244,7 +244,7 @@
NULL);
}
-static gboolean
+static void
na_tray_manager_plug_removed (NaTrayChild *tray_child,
NaTrayManager *manager)
{
@@ -255,9 +255,6 @@
g_hash_table_remove (manager->children,
GINT_TO_POINTER (icon_window));
g_signal_emit (manager, manager_signals[TRAY_ICON_REMOVED], 0, tray_child);
-
- /* This destroys the socket. */
- return FALSE;
}
static void
diff -Nru gnome-shell-48.4/src/tray/na-xembed.c gnome-shell-48.7/src/tray/na-xembed.c
--- gnome-shell-48.4/src/tray/na-xembed.c 2025-08-03 10:53:34.000000000 +0000
+++ gnome-shell-48.7/src/tray/na-xembed.c 2025-11-24 14:16:08.000000000 +0000
@@ -1,4 +1,4 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
+/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
/* Copyright (C) 2022 Red Hat Inc.
*
* This library is free software; you can redistribute it and/or
@@ -24,6 +24,7 @@
#include "na-xembed.h"
#include
+#include
#include
#include
#include
@@ -35,6 +36,7 @@
MetaX11Display *x11_display;
Window socket_window;
Window plug_window;
+ Window old_parent;
int root_x;
int root_y;
@@ -42,6 +44,8 @@
int request_height;
int current_width;
int current_height;
+ int available_width;
+ int available_height;
int resize_count;
int xembed_version;
@@ -88,6 +92,7 @@
enum {
PLUG_ADDED,
PLUG_REMOVED,
+ RECONFIGURED,
LAST_SIGNAL
};
@@ -111,9 +116,8 @@
{
NaXembedPrivate *priv = na_xembed_get_instance_private (xembed);
Display *xdisplay = meta_x11_display_get_xdisplay (priv->x11_display);
- XClientMessageEvent xclient;
+ XClientMessageEvent xclient = {0};
- memset (&xclient, 0, sizeof (xclient));
xclient.window = recipient;
xclient.type = ClientMessage;
xclient.message_type = priv->atom__XEMBED;
@@ -136,10 +140,31 @@
{
NaXembedPrivate *priv = na_xembed_get_instance_private (xembed);
+ if (priv->socket_window)
+ {
+ Display *xdisplay = meta_x11_display_get_xdisplay (priv->x11_display);
+
+ mtk_x11_error_trap_push (xdisplay);
+
+ if (priv->plug_window && priv->old_parent)
+ XReparentWindow (xdisplay,
+ priv->plug_window,
+ priv->old_parent,
+ 0, 0);
+
+ XDestroyWindow (xdisplay, priv->socket_window);
+ priv->socket_window = None;
+
+ mtk_x11_error_trap_pop (xdisplay);
+ }
+
priv->plug_window = None;
+ priv->old_parent = None;
priv->current_width = 0;
priv->current_height = 0;
priv->resize_count = 0;
+ priv->available_width = -1;
+ priv->available_height = -1;
g_clear_handle_id (&priv->resize_id, g_source_remove);
}
@@ -147,10 +172,9 @@
na_xembed_send_configure_event (NaXembed *xembed)
{
NaXembedPrivate *priv = na_xembed_get_instance_private (xembed);
- XConfigureEvent xconfigure;
+ XConfigureEvent xconfigure = {0};
Display *xdisplay = meta_x11_display_get_xdisplay (priv->x11_display);
- memset (&xconfigure, 0, sizeof (xconfigure));
xconfigure.type = ConfigureNotify;
xconfigure.event = priv->plug_window;
@@ -185,6 +209,11 @@
width = priv->request_width;
height = priv->request_height;
+ if (priv->available_width >= 0)
+ width = priv->available_width;
+ if (priv->available_height >= 0)
+ height = priv->available_height;
+
XMoveResizeWindow (xdisplay,
priv->socket_window,
x, y,
@@ -362,6 +391,7 @@
{
XSetWindowAttributes socket_attrs;
XWindowAttributes plug_attrs;
+ int shape_major, shape_minor;
int result;
result = XGetWindowAttributes (xdisplay, priv->plug_window, &plug_attrs);
@@ -403,10 +433,35 @@
&socket_attrs);
XUnmapWindow (xdisplay, priv->plug_window); /* Shouldn't actually be necessary for XEMBED, but just in case */
+
+ if (!priv->old_parent)
+ {
+ g_autofree Window *children = NULL;
+ unsigned int n_children;
+ Window root;
+
+ if (!XQueryTree (xdisplay, priv->plug_window, &root, &priv->old_parent,
+ &children, &n_children))
+ priv->old_parent = meta_x11_display_get_xroot (priv->x11_display);
+ }
+
XReparentWindow (xdisplay,
priv->plug_window,
priv->socket_window,
0, 0);
+
+ /* Set an empty input shape on the window so that the socket does not
+ * get any input. Without this the tray may still get events and - for
+ * instance - show tooltips on hover which we don't want.
+ * This is the quickest way to achieve this, without having to deal these
+ * windows with specific code in mutter.
+ */
+ if (XShapeQueryExtension (xdisplay, &shape_major, &shape_minor))
+ {
+ XShapeSelectInput (xdisplay, priv->socket_window, NoEventMask);
+ XShapeCombineRectangles (xdisplay, priv->socket_window, ShapeInput,
+ 0, 0, NULL, 0, ShapeSet, 0);
+ }
}
priv->have_size = FALSE;
@@ -524,6 +579,15 @@
}
break;
}
+ case ConfigureNotify:
+ {
+ XConfigureEvent *xce = &xevent->xconfigure;
+
+ if (xce->window == priv->socket_window)
+ g_signal_emit (xembed, signals[RECONFIGURED], 0);
+
+ break;
+ }
case DestroyNotify:
{
XDestroyWindowEvent *xdwe = &xevent->xdestroywindow;
@@ -531,10 +595,14 @@
/* Note that we get destroy notifies both from SubstructureNotify on
* our window and StructureNotify on socket->plug_window
*/
+ if (priv->socket_window && xdwe->window == priv->socket_window)
+ priv->socket_window = None;
+
if (priv->plug_window && (xdwe->window == priv->plug_window))
{
g_object_ref (xembed);
g_signal_emit (xembed, signals[PLUG_REMOVED], 0);
+ priv->plug_window = None;
na_xembed_end_embedding (xembed);
g_object_unref (xembed);
}
@@ -599,6 +667,7 @@
{
g_object_ref (xembed);
g_signal_emit (xembed, signals[PLUG_REMOVED], 0);
+ priv->old_parent = None;
na_xembed_end_embedding (xembed);
g_object_unref (xembed);
}
@@ -664,7 +733,7 @@
if (priv->x11_display && priv->event_func_id)
meta_x11_display_remove_event_func (priv->x11_display, priv->event_func_id);
- if (priv->plug_window)
+ if (priv->plug_window || priv->socket_window)
na_xembed_end_embedding (xembed);
G_OBJECT_CLASS (na_xembed_parent_class)->finalize (object);
@@ -718,6 +787,14 @@
NULL, NULL, NULL,
G_TYPE_NONE, 0);
+ signals[RECONFIGURED] =
+ g_signal_new ("reconfigured",
+ G_OBJECT_CLASS_TYPE (klass),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (NaXembedClass, reconfigured),
+ NULL, NULL, NULL,
+ G_TYPE_NONE, 0);
+
props[PROP_X11_DISPLAY] =
g_param_spec_object ("x11-display", NULL, NULL,
META_TYPE_X11_DISPLAY,
@@ -730,6 +807,10 @@
static void
na_xembed_init (NaXembed *xembed)
{
+ NaXembedPrivate *priv = na_xembed_get_instance_private (xembed);
+
+ priv->available_width = -1;
+ priv->available_height = -1;
}
void
@@ -795,6 +876,22 @@
}
void
+na_xembed_set_available_size (NaXembed *xembed,
+ int width,
+ int height)
+{
+ NaXembedPrivate *priv = na_xembed_get_instance_private (xembed);
+
+ if (priv->available_width == width && priv->available_height == height)
+ return;
+
+ priv->available_width = width;
+ priv->available_height = height;
+
+ na_xembed_resize (xembed);
+}
+
+void
na_xembed_get_root_position (NaXembed *xembed,
int *x,
int *y)
diff -Nru gnome-shell-48.4/src/tray/na-xembed.h gnome-shell-48.7/src/tray/na-xembed.h
--- gnome-shell-48.4/src/tray/na-xembed.h 2025-08-03 10:53:34.000000000 +0000
+++ gnome-shell-48.7/src/tray/na-xembed.h 2025-11-24 14:16:08.000000000 +0000
@@ -35,6 +35,7 @@
void (* plug_added) (NaXembed *xembed);
void (* plug_removed) (NaXembed *xembed);
+ void (* reconfigured) (NaXembed *xembed);
};
MetaX11Display * na_xembed_get_x11_display (NaXembed *xembed);
@@ -58,7 +59,11 @@
int *width,
int *height);
+void na_xembed_set_available_size (NaXembed *xembed,
+ int width,
+ int height);
+
void na_xembed_set_background_color (NaXembed *xembed,
const CoglColor *color);
-G_END_DECLS
\ No newline at end of file
+G_END_DECLS
diff -Nru gnome-shell-48.4/subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in gnome-shell-48.7/subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in
--- gnome-shell-48.4/subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in 2025-08-03 10:53:34.000000000 +0000
+++ gnome-shell-48.7/subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in 2025-11-24 14:16:08.000000000 +0000
@@ -55,6 +55,9 @@
+
+
+
diff -Nru gnome-shell-48.4/subprojects/extensions-app/meson.build gnome-shell-48.7/subprojects/extensions-app/meson.build
--- gnome-shell-48.4/subprojects/extensions-app/meson.build 2025-08-03 10:53:34.000000000 +0000
+++ gnome-shell-48.7/subprojects/extensions-app/meson.build 2025-11-24 14:16:08.000000000 +0000
@@ -1,5 +1,5 @@
project('gnome-extensions-app',
- version: '48.4',
+ version: '48.7',
meson_version: '>= 0.58.0',
license: 'GPL-2.0-or-later',
)
diff -Nru gnome-shell-48.4/subprojects/extensions-app/subprojects/shew/meson.build gnome-shell-48.7/subprojects/extensions-app/subprojects/shew/meson.build
--- gnome-shell-48.4/subprojects/extensions-app/subprojects/shew/meson.build 2025-08-03 10:53:34.000000000 +0000
+++ gnome-shell-48.7/subprojects/extensions-app/subprojects/shew/meson.build 2025-11-24 14:16:08.000000000 +0000
@@ -1,5 +1,5 @@
project('shew', 'c',
- version: '48.4',
+ version: '48.7',
meson_version: '>= 0.58.0',
license: 'LGPL-2.1-or-later',
)
diff -Nru gnome-shell-48.4/subprojects/extensions-tool/meson.build gnome-shell-48.7/subprojects/extensions-tool/meson.build
--- gnome-shell-48.4/subprojects/extensions-tool/meson.build 2025-08-03 10:53:34.000000000 +0000
+++ gnome-shell-48.7/subprojects/extensions-tool/meson.build 2025-11-24 14:16:08.000000000 +0000
@@ -1,5 +1,5 @@
project('gnome-extensions-tool', 'c',
- version: '48.4',
+ version: '48.7',
meson_version: '>= 0.58.0',
license: 'GPL-2.0-or-later',
)
diff -Nru gnome-shell-48.4/subprojects/shew/meson.build gnome-shell-48.7/subprojects/shew/meson.build
--- gnome-shell-48.4/subprojects/shew/meson.build 2025-08-03 10:53:34.000000000 +0000
+++ gnome-shell-48.7/subprojects/shew/meson.build 2025-11-24 14:16:08.000000000 +0000
@@ -1,5 +1,5 @@
project('shew', 'c',
- version: '48.4',
+ version: '48.7',
meson_version: '>= 0.58.0',
license: 'LGPL-2.1-or-later',
)
diff -Nru gnome-shell-48.4/tests/meson.build gnome-shell-48.7/tests/meson.build
--- gnome-shell-48.4/tests/meson.build 2025-08-03 10:53:34.000000000 +0000
+++ gnome-shell-48.7/tests/meson.build 2025-11-24 14:16:08.000000000 +0000
@@ -21,6 +21,7 @@
unit_tests = {
'breakManager': {},
+ 'errorUtils': {},
'extensionUtils': {},
'highlighter': {},
'injectionManager': {},
diff -Nru gnome-shell-48.4/tests/unit/errorUtils.js gnome-shell-48.7/tests/unit/errorUtils.js
--- gnome-shell-48.4/tests/unit/errorUtils.js 1970-01-01 00:00:00.000000000 +0000
+++ gnome-shell-48.7/tests/unit/errorUtils.js 2025-11-24 14:16:08.000000000 +0000
@@ -0,0 +1,49 @@
+import GLib from 'gi://GLib';
+import Gio from 'gi://Gio';
+
+import {logErrorUnlessCancelled} from 'resource:///org/gnome/shell/misc/errorUtils.js';
+
+describe('logErrorUnlessCancelled()', () => {
+ let spy;
+
+ beforeEach(() => {
+ spy = spyOn(globalThis, 'logError');
+ });
+
+ it('logs regular errors', () => {
+ const e = new Error('Test error');
+ expect(logErrorUnlessCancelled(e)).toBeTrue();
+ expect(spy).toHaveBeenCalled();
+ });
+
+ it('logs GErrors', () => {
+ const e = GLib.Error.new_literal(
+ Gio.IOErrorEnum, Gio.IOErrorEnum.FAILED, 'Failed');
+ expect(logErrorUnlessCancelled(e)).toBeTrue();
+ expect(spy).toHaveBeenCalled();
+ });
+
+ it('does not log CANCELLED errors', () => {
+ const e = GLib.Error.new_literal(
+ Gio.IOErrorEnum, Gio.IOErrorEnum.CANCELLED, 'Cancelled');
+ expect(logErrorUnlessCancelled(e)).toBeFalse();
+ expect(spy).not.toHaveBeenCalled();
+ });
+
+ it('handles remote errors', () => {
+ function createDBusError(code, message) {
+ const e = GLib.Error.new_literal(
+ Gio.IOErrorEnum, code, message);
+ return Gio.DBusError.new_for_dbus_error(
+ Gio.DBusError.encode_gerror(e), message);
+ }
+
+ let e = createDBusError(Gio.IOErrorEnum.CANCELLED, 'Cancelled');
+ expect(logErrorUnlessCancelled(e)).toBeFalse();
+ expect(spy).not.toHaveBeenCalled();
+
+ e = createDBusError(Gio.IOErrorEnum.FAILED, 'Failed');
+ expect(logErrorUnlessCancelled(e)).toBeTrue();
+ expect(spy).toHaveBeenCalled();
+ });
+});