Compare commits

..

61 Commits

Author SHA1 Message Date
4a23ddffa8 messageList: Give focus to next message on delete
When the user deletes a message using the keyboard, set the keyboard
focus to the next message, or to the list container itself, so it
remains possible to navigate using the keyboard.

Fixes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/502
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2053>
2021-12-01 10:19:54 +00:00
b37fa61eb0 calendar-server: Calculate event end according to spec if missing
The ical specification allows events to omit an end, which for dates
means the end is start + 1 day and for date times it is equal to the
start.

Fixes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/4753
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2023>
2021-11-30 02:13:24 +00:00
72a6450017 calendar-server: Remove the all-day property of events
The way it is currently calculated is broken for days with DST changes
or leap seconds and it is not needed anymore anyway. This will also make
the fix in the following commit simpler.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2023>
2021-11-30 02:13:24 +00:00
d8efce0ffd dateMenu: Ignore the allDay property of an event
Given the correct end date this code would be able to determine this
correctly itself and doesn't need to rely on that property. And events
without correct end dates are currently not shown anyway. This prepares
for removing the allDay property entirely.

This also fixes events going from 13:00 the current day to 01:00 not
showing "...". It also fixes multi-day events wrongly detected as
all-day events by the calendar-server showing up as "All day", despite
only covering 1 hour of the day.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2023>
2021-11-30 02:13:24 +00:00
2250653673 calendar: Fix inclusion of zero-length events
Events with a date time (not just a date) where the end time is missing
or matching the start time were considered to not overlap the selected
interval if they were happening on the start time of the interval. This
was causing such zero-length events to be omitted from the calendar if
they were starting at 0:00.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2023>
2021-11-30 02:13:24 +00:00
9604778343 calendar: Start ranges at 0:00 and iterate in whole days
Using a starting time other than 0:00 will prevent events before the
chosen starting time from showing up for that range. This was causing
events before 12:00 to be missing in the shell calendar on the first day
of a range.

Fix this by always starting at 0:00 and then incrementing by days rather
than a time value that depending on DST or leap seconds may or may not
correspond to a day.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2023>
2021-11-30 02:13:24 +00:00
2fffe91488 dateMenu: Use intervals with non-inclusive ends for date ranges
The ical events, we are comparing these intervals to use the first point
in time after the end of the event as their end time, while the code in
gnome-shell was using the last point in time within the range. This was
causing multi-day events ranging from 0:00 to 0:00 to have a trailing
"..." shown on the last day.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2023>
2021-11-30 02:13:24 +00:00
5eddcd3cf2 Update Portuguese translation 2021-11-27 15:42:46 +00:00
c218bb16e2 Update Ukrainian translation 2021-11-26 21:36:23 +00:00
1d9d3d2a12 Update Croatian translation 2021-11-26 18:04:13 +00:00
aba0d0bb1b main: Warn when unsafe mode is toggled
MetaContext:unsafe-mode was added as a debugging tool to temporarily
remove restrictions on privileged APIs. But as it turns out, there
are now extensions that toggle the property permanently. Right now
none of them are malicious (as far as I can see), but it's still a
bad idea and should be discouraged.

Do this with a notification that warns the user when unsafe mode is
enabled non-interactively (i.e. via looking glass), and hopefully
also clarifies what the weird lock icon in the top bar is about.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/4798

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2050>
2021-11-26 16:14:39 +00:00
254b0ca2ad windowManager: Set up unfullscreen/app-switch gestures in the capture phase
Use the new API to specify the gesture phase.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1992>
2021-11-24 22:33:18 +00:00
748fe074c4 swipeTracker: Set up TouchSwipeGesture in the capture phase
Use the new API to specify the gesture phase.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1992>
2021-11-24 22:33:18 +00:00
919c4cf3d5 Update Friulian translation 2021-11-22 11:06:48 +00:00
7d895874b6 layout: Removed unused method
Commit a6b4d4945 removed the only caller in 2013(!)

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2034>
2021-11-21 20:46:20 +00:00
550b1b2970 Updated Lithuanian translation 2021-11-21 21:43:20 +02:00
fc77f2e1e0 Update Persian translation 2021-11-20 08:58:41 +00:00
242dea15f1 Update Occitan translation 2021-11-18 20:15:41 +00:00
826083d763 appDisplay: Remove unused animate() implementations
Usages were removed in gnome-shell!1593

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2041>
2021-11-17 10:31:42 +00:00
f8f37e0161 modalDialog: Consistently return correct boolean for open() in ModalDialogs
Previously these calls either ignored the return from super.open() or
implicitely returned false.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2038>
2021-11-17 10:24:47 +00:00
75e57749f0 keyring: Fix incorrect reference to the label instead of string
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2036>
2021-11-17 10:19:08 +00:00
01a23b0553 calendar: Use boolean operations instead of bitwise operators
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2039>
2021-11-17 10:13:44 +00:00
34bf17ad27 magnifier: Remove call to dropped Clutter::get_default_frame_rate()
Clutter::get_default_frame_rate() has been removed in mutter!2002, but
it is still being used here. Given that this was basically hardcoded to
60 in mutter with the only way of changing this being an obscure
environment variable, just use that value here directly. This avoids a
crash when starting gnome-shell with the magnifier enabled.

Fixes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/4761
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2025>
2021-11-16 23:34:38 +00:00
ff60137da2 Updated Spanish translation 2021-11-16 15:48:18 +01:00
c3f5aa6c5c Update Hebrew translation 2021-11-11 22:27:18 +00:00
795312b8d5 environment: Require gnome-desktop 3.0
Pretty much the exact same case of 9ce6756235.

libgnome-desktop saw a major version bump, and we have to
stick with 3.0 for a while.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2030>
2021-11-11 16:20:39 -03:00
9ce6756235 environment: Require GnomeBluetooth 1.0
libgnome-bluetooth will start to offer a 2.0 library version
depending on GTK4. Given that GNOME Shell already depends on
GTK3, it cannot use this next version of gnome-bluetooth. And
since GJS will automatically try and use the latest version
available of any library, Shell must specify it wants 1.0
explicitly.

Add a required GnomeBluetooth version number when importing it
for the status indicator.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2015>
2021-11-11 19:13:40 +00:00
fd45a6c9d2 Update Croatian translation
(cherry picked from commit ed7153bcbbf29c698226009af6f0df347386609d)
2021-11-11 09:45:33 +00:00
cd46f2f65a Update Italian translation 2021-11-09 08:16:59 +00:00
34b6cd0bea magnifier: Disable desaturation effect when not in use
The desaturation effect was always enabled, regardless of the specified
factor. This was causing the magnifier to always hit offscreen
rendering, even when not necessary. Additionally offscreen rendering is
currently also causing glitches in MetaWindowGroup which this helps to
avoid in some cases.

Related: https://gitlab.gnome.org/GNOME/mutter/-/issues/1678
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2026>
2021-11-08 15:39:34 +00:00
48f8aec676 theme: Provide :checked state for buttons
Fixes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/4757

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2027>
2021-11-08 14:23:53 +01:00
66016755c9 Update Portuguese translation 2021-11-07 22:35:21 +00:00
f61cd690ad Update Occitan translation 2021-11-07 19:31:19 +00:00
2523d7b4a9 Update Friulian translation 2021-11-07 16:50:29 +00:00
a8c6c1cdd3 Update French translation
(cherry picked from commit 4f2b7300a160e96e66b3b16179d9fb3df3378433)
2021-11-07 14:53:27 +00:00
86ab9b9d7a Update Slovak translation
(cherry picked from commit cc566201b71e86b0a70f722fd155ed5481c5831b)
2021-11-06 14:10:59 +00:00
db4906bb8a Update Polish translation 2021-11-06 14:27:27 +01:00
2e275cca25 shellMountOperation: Remove unused volume monitor
It seems to have never been used since 6b5f9a647a, the commit that
introduced it.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2021>
2021-11-03 22:13:00 +00:00
b518f2b6af Update German translation
(cherry picked from commit 03a3ce062a)
2021-11-03 20:33:59 +00:00
50abd018f4 Update Indonesian translation
(cherry picked from commit 0512d1fff4)
2021-11-03 10:04:31 +00:00
8a62b2a24d Update Brazilian Portuguese translation
(cherry picked from commit ba32dcc16b)
2021-11-03 01:19:57 +00:00
4f5db4371f Update Swedish translation
(cherry picked from commit edcee44c72)
2021-11-02 21:05:28 +00:00
4d4d3cdf9b Update Ukrainian translation
(cherry picked from commit f8cdac49c6)
2021-11-02 16:32:00 +00:00
0177560952 inputMethod: Do not reset invisible preedit on focus_out
If the preedit is in invisible state, the last preedit string that
was sent around is already null, so there is no need to clear the preedit
in that case.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2011>
2021-11-01 17:02:50 +00:00
047691b0d3 inputMethod: Do not communicate preedit text change on reset
This is now done in the ClutterInputFocus for us, since
https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1940. There
is no need to duplicate this call, and it happens to cause undesired
scrolling to content in some cases when this reset happens during
a change in the IM focused client state.

Fixes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/4647
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2011>
2021-11-01 17:02:50 +00:00
286cfdc6d4 inputMethod: Equate empty preedit string to null
If we get '' from the IM as the preedit string, it is pretty safe
to handle it as "no preedit" altogether.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2011>
2021-11-01 17:02:50 +00:00
b93342f72e dbusServices/extensions: Only allow one dialog at a time
Showing multiple preference dialogs at the same time (for instance
by repeated `gnome-extensions prefs` calls) may or may not work as
expected, depending on whether any of the dialogs is modal or not
(read: opened via the Extensions app).

The easiest way to address this is to disallow more than a single
dialog at the time. It's arguably also the more predictable behavior,
and means extensions don't have to deal with inconsistent state
caused by multiple dialogs.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/4564

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2013>
2021-10-30 21:50:47 +00:00
4d2b008966 dbusServices/extensions: Fix shutdown after showing prefs
GTK4 relies entirely on refcounting for cleanup (that is,
there is no longer a destroy() method that forces a dispose
run regardless of the refcount).

Unfortunately that makes cleanup harder in (some) language
bindings, where an object may be kept alive implicitly by
closures etc.

Address this by releasing the hold count when the window
is closed rather than when it is destroyed.

This isn't the most elegant, but it ensure that the service
doesn't get stuck if an extension doesn't carefully clean
up everything in its prefs widget.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/4564

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2013>
2021-10-30 21:50:47 +00:00
09ed1c533c extensions-tool/prefs: Log D-Bus errors
We currently ignore any error that may occur when calling the
OpenExtensionPrefs D-Bus method. Right now such an error is highly
unlikely, given that we already checked that we are running under
gnome-shell and the extension in question exists and has prefs.

We'll soon make sure that only one dialog is shown at any time,
which is an error that we can realistically expect, so handle that
properly.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/4564

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2013>
2021-10-30 21:50:47 +00:00
79f448958b extensions-tool: Add missing newline
Unlike g_warning() and friends, g_printerr() does not append
a trailing newline.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/4564

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2013>
2021-10-30 21:50:47 +00:00
bc32a52108 shell/app: Don't move all workspace windows to their startup workspace
Windows from some applications, such as guake, are created as showing on
all workspaces. When these windows are put on the workspaces via
set_workspace_state() during construction, the first time the window is
added to a workspace in the loop triggers the shell app tracker which
then tries to move the window to its startup workspace. This makes the
window unsticky which triggers another set_workspace_state() which
tries to remove the window from all workspaces, but currently it is only
on the first one and then adds it to the startup workspace. Once that is
finished, the first set_workspace_state() continues adding the window
to the remaining workspaces, despite the window now no longer having
on_all_workspaces set to true.

When the window is now unmanaged, the window according to its internal
state is only found on the startup workspace, so it will only be removed
from that. This causes the assertion to fail that checks that the window
is no longer present on any workspace after this.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/4720

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2014>
2021-10-30 13:21:17 +02:00
ff4ff66498 Revert "st: Only use clutter_actor_invalidate_paint_volume() if the API exists"
Since we are past the 40 API change hurdle, it is safe to revert this
commit.

This reverts commit 1cefd589da.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2010>
2021-10-27 19:51:27 +02:00
69c66b0946 Update Persian translation
(cherry picked from commit 025588b89a)
2021-10-25 20:42:38 +00:00
1d2c85d1b7 Update Latvian translation
(cherry picked from commit ce2ae0642f)
2021-10-25 17:56:55 +00:00
cc5cc0d653 environment: Apply autoReverse/repeatCount to all transitions
Like the old Tweener API, ease() allows to transition multiple
properties at once. If autoReverse or repeatCount are specified,
they should apply to all transitions, but right now we only set
them for the first one.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2007>
2021-10-21 19:52:33 +02:00
e7a90d98ae Update Kabyle translation
(cherry picked from commit 8c5d552cc2)
2021-10-16 14:35:26 +00:00
d7b1264897 sessionMode: Drop allowExtensions property
Now that we allow extensions at the lock screens, extensions
are allowed for every session mode gnome-shell would typically
change to at runtime.

This means there's little advantage to having an allowExtensions
property in the session mode definition.

This commit simplifies the code a bit by dropping the property.

Third party session modes can still lock down extensions through
gsettings if they need to.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1967>
2021-10-14 18:40:53 +00:00
2bf31dc49f sessionMode: Allow extensions at the login and unlock screens
Now extensions can specify which session modes they work in,
but specifying the login screen or unlock screen session modes in
an extensions metadata still won't work, because those session
modes disallow extensions.

This commit fixes that.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1967>
2021-10-14 18:40:53 +00:00
242cff7abf extensionSystem: Allow extensions to run on the login screen
At the moment it's not realy possible to extend the login screen to do
things it doesn't have built-in support for. This means in order
to support niche use cases, those cases have to change the main
code base. For instance, oVirt and Vmware deployments want to be able
to automaticaly log in guest VMs when a user pre-authenticates through a
console on a management host. To support those use cases, we added
code to the login screen directly, even though most machines will never
be associated with oVirt or Vmware management hosts.

We also get requests from e.g. government users that need certain features
at the login screen that wouldn't get used much outside of government
deployments. For instance, we've gotten requests that a machine contains
prominently displays that it has "Top Secret" information.

All of these use cases seem like they would better handled via
extensions that could be installed in the specific deployments. The
problem is extensions only run in the user session, and get
disabled at the login screen automatically.

This commit changes that. Now extensions can specify in their metadata
via a new sessionModes property, which modes that want to run in. For
backward compatibility, if an extension doesn't specify which session
modes it works in, its assumed the extension only works in the user
session.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1967>
2021-10-14 18:40:53 +00:00
7e5ee2c282 extensionSystem: Get rid of _enabled boolean optimization
At the moment a session mode either allows extensions or it doesn't.
If it allows extensions, then the entire available list of
configured extensions get enabled as soon as the session mode is
entered.

Since enabling or disabling extensions is an all or nothing situation,
the code tracks whether extensions are already enabled when entering
the session mode, and if so, avoids iterating through the extension list
needlessly. It does this using a boolean named _enabled.

In the future, the extensions themselves will be given some say on
whether or not they should be enabled in a given session mode. This
means, the configured extension list may contain extensions that
shouldn't be enabled for a given session mode, and the _enabled boolean
will no longer be appropriated.

This commit drops the _enabled boolean optimization.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1967>
2021-10-14 18:40:53 +00:00
7bde02c1cf Post-branch mutter API bump
Since the CI pipeline now runs `meson dist` which includes a test
for an up-to-date NEWS entry, post-branch/release version bumps
have become unwieldy.

It's still useful to increase the API version right after branching
though, so return to bumping it manually and do so now.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2005>
2021-10-14 19:01:41 +02:00
78 changed files with 2343 additions and 5179 deletions

24
NEWS
View File

@ -1,27 +1,3 @@
41.1
====
* Fix icon updates while hidden [Marco; !1983]
* Fix erratic scrolling in GTK apps [Christian, Carlos; !1993, #4647]
* Fix GTK color picker support [Florian; !1990]
* Fix sound-file support in notifications [Florian; !1991]
* Fix high-contrast switches [Florian; !2000]
* Only allow one extension prefs dialog at a time [Florian; #4564]
* Fixed crashes [Ray, Sebastian; !2004, !2014]
* Misc. bug fixes and cleanups [Jonas, Florian, Jakub, Carlos; !1985, !1998,
!1996, !1979, !2007, !2010]
Contributors:
Marco Trevisan (Treviño), Carlos Garnacho, Christian Hergert,
Sebastian Keller, Florian Müllner, Jakub Steiner, Ray Strode, Jonas Ådahl
Translators:
Марко Костић [sr], Ngọc Quân Trần [vi], Emin Tufan Çetin [tr],
Yaron Shahrabani [he], Sveinn í Felli [is], Goran Vidović [hr],
Marek Černocký [cs], Selyan Slimane AMIRI [kab], Rūdolfs Mazurs [lv],
eshagh shahidani [fa], Yuri Chornoivan [uk], Matej Urbančič [sl],
Anders Jonsson [sv], Rafael Fontenelle [pt_BR], Kukuh Syafaat [id],
Hugo Carvalho [pt], Aleksandr Melman [ru], Christian Kirbach [de]
41.0 41.0
==== ====

View File

@ -6,7 +6,7 @@
<arg type="b" name="force_reload" direction="in"/> <arg type="b" name="force_reload" direction="in"/>
</method> </method>
<signal name="EventsAddedOrUpdated"> <signal name="EventsAddedOrUpdated">
<arg type="a(ssbxxa{sv})" name="events" direction="out"/> <arg type="a(ssxxa{sv})" name="events" direction="out"/>
</signal> </signal>
<signal name="EventsRemoved"> <signal name="EventsRemoved">
<arg type="as" name="ids" direction="out"/> <arg type="as" name="ids" direction="out"/>

View File

@ -230,14 +230,6 @@
<default>["&lt;Super&gt;9"]</default> <default>["&lt;Super&gt;9"]</default>
<summary>Switch to application 9</summary> <summary>Switch to application 9</summary>
</key> </key>
<key name="switch-realm" type="as">
<default>["&lt;Primary&gt;Tab"]</default>
<summary>Open Realm Switcher</summary>
</key>
<key name="switch-realm-backward" type="as">
<default>["&lt;Shift&gt;&lt;Primary&gt;Tab"]</default>
<summary>Open Realm Switcher Backwards</summary>
</key>
</schema> </schema>
<schema id="org.gnome.shell.app-switcher" <schema id="org.gnome.shell.app-switcher"

View File

@ -116,7 +116,7 @@ stage {
&:focus { @include button(focus);} &:focus { @include button(focus);}
&:hover { @include button(hover);} &:hover { @include button(hover);}
&:insensitive { @include button(insensitive);} &:insensitive { @include button(insensitive);}
&:active { @include button(active);} &:active, &:checked { @include button(active);}
} }
// buttons in dialogs // buttons in dialogs

View File

@ -49,5 +49,3 @@
// Lock / login screens // Lock / login screens
@import 'widgets/login-dialog'; @import 'widgets/login-dialog';
@import 'widgets/screen-shield'; @import 'widgets/screen-shield';
@import 'widgets/realms';

View File

@ -1,17 +0,0 @@
.realm-switch-label {
font-size: 36px;
font-weight: bold;
color: #ffffff;
background-color: rgba(10, 10, 10, 0.7);
border-radius: 5px;
padding: .5em;
}
.realm-frame-label {
font-size: 12pt;
font-weight: bold;
}
.realm-config-icon {
color: #8e8e80;
}

View File

@ -29,7 +29,6 @@ theme_sources = files([
'gnome-shell-sass/widgets/_overview.scss', 'gnome-shell-sass/widgets/_overview.scss',
'gnome-shell-sass/widgets/_panel.scss', 'gnome-shell-sass/widgets/_panel.scss',
'gnome-shell-sass/widgets/_popovers.scss', 'gnome-shell-sass/widgets/_popovers.scss',
'gnome-shell-sass/widgets/_realms.scss',
'gnome-shell-sass/widgets/_screen-shield.scss', 'gnome-shell-sass/widgets/_screen-shield.scss',
'gnome-shell-sass/widgets/_scrollbars.scss', 'gnome-shell-sass/widgets/_scrollbars.scss',
'gnome-shell-sass/widgets/_search-entry.scss', 'gnome-shell-sass/widgets/_search-entry.scss',

View File

@ -27,7 +27,7 @@ foreach service, dir : dbus_services
serviceconf = configuration_data() serviceconf = configuration_data()
serviceconf.set('service', service) serviceconf.set('service', service)
serviceconf.set('gjs', gjs) serviceconf.set('gjs', gjs.path())
serviceconf.set('pkgdatadir', pkgdatadir) serviceconf.set('pkgdatadir', pkgdatadir)
configure_file( configure_file(

View File

@ -142,12 +142,5 @@
<file>ui/status/remoteAccess.js</file> <file>ui/status/remoteAccess.js</file>
<file>ui/status/system.js</file> <file>ui/status/system.js</file>
<file>ui/status/thunderbolt.js</file> <file>ui/status/thunderbolt.js</file>
<file>ui/realms/realmIndicator.js</file>
<file>ui/realms/realmManager.js</file>
<file>ui/realms/realmSearchProvider.js</file>
<file>ui/realms/realmSwitcher.js</file>
<file>ui/realms/realmWindowFrame.js</file>
<file>ui/realms/realmWindowMenu.js</file>
</gresource> </gresource>
</gresources> </gresources>

View File

@ -76,10 +76,12 @@ class AccessDialog extends ModalDialog.ModalDialog {
} }
open() { open() {
super.open(); if (!super.open())
return false;
let connection = this._invocation.get_connection(); let connection = this._invocation.get_connection();
this._requestExported = this._request.export(connection, this._handle); this._requestExported = this._request.export(connection, this._handle);
return true;
} }
CloseAsync(invocation, _params) { CloseAsync(invocation, _params) {

View File

@ -919,43 +919,6 @@ var BaseAppView = GObject.registerClass({
} }
} }
animate(animationDirection, onComplete) {
if (onComplete) {
let animationDoneId = this._grid.connect('animation-done', () => {
this._grid.disconnect(animationDoneId);
onComplete();
});
}
this._clearAnimateLater();
this._grid.opacity = 255;
if (animationDirection == IconGrid.AnimationDirection.IN) {
const doSpringAnimationLater = laterType => {
this._animateLaterId = Meta.later_add(laterType,
() => {
this._animateLaterId = 0;
this._doSpringAnimation(animationDirection);
return GLib.SOURCE_REMOVE;
});
};
if (this._viewIsReady) {
this._grid.opacity = 0;
doSpringAnimationLater(Meta.LaterType.IDLE);
} else {
this._viewLoadedHandlerId = this.connect('view-loaded',
() => {
this._clearAnimateLater();
this._grid.opacity = 255;
doSpringAnimationLater(Meta.LaterType.BEFORE_REDRAW);
});
}
} else {
this._doSpringAnimation(animationDirection);
}
}
_getDropTarget(x, y, source) { _getDropTarget(x, y, source) {
const { currentPage } = this._grid; const { currentPage } = this._grid;
@ -1656,24 +1619,6 @@ class AppDisplay extends BaseAppView {
return appIcons; return appIcons;
} }
// Overridden from BaseAppView
animate(animationDirection, onComplete) {
this._scrollView.reactive = false;
this._swipeTracker.enabled = false;
let completionFunc = () => {
this._scrollView.reactive = true;
this._swipeTracker.enabled = this.mapped;
if (onComplete)
onComplete();
};
if (animationDirection == IconGrid.AnimationDirection.OUT &&
this._displayingDialog && this._currentDialog)
this._currentDialog.popdown();
else
super.animate(animationDirection, completionFunc);
}
animateSwitch(animationDirection) { animateSwitch(animationDirection) {
super.animateSwitch(animationDirection); super.animateSwitch(animationDirection);
@ -2277,11 +2222,6 @@ class FolderView extends BaseAppView {
return aPosition - bPosition; return aPosition - bPosition;
} }
// Overridden from BaseAppView
animate(animationDirection) {
this._grid.animatePulse(animationDirection);
}
createFolderIcon(size) { createFolderIcon(size) {
const layout = new Clutter.GridLayout({ const layout = new Clutter.GridLayout({
row_homogeneous: true, row_homogeneous: true,

View File

@ -12,7 +12,6 @@ const Util = imports.misc.util;
const { loadInterfaceXML } = imports.misc.fileUtils; const { loadInterfaceXML } = imports.misc.fileUtils;
var MSECS_IN_DAY = 24 * 60 * 60 * 1000;
var SHOW_WEEKDATE_KEY = 'show-weekdate'; var SHOW_WEEKDATE_KEY = 'show-weekdate';
var MESSAGE_ICON_SIZE = -1; // pick up from CSS var MESSAGE_ICON_SIZE = -1; // pick up from CSS
@ -47,11 +46,8 @@ function _getBeginningOfDay(date) {
} }
function _getEndOfDay(date) { function _getEndOfDay(date) {
let ret = new Date(date.getTime()); const ret = _getBeginningOfDay(date);
ret.setHours(23); ret.setDate(ret.getDate() + 1);
ret.setMinutes(59);
ret.setSeconds(59);
ret.setMilliseconds(999);
return ret; return ret;
} }
@ -82,12 +78,11 @@ function _getCalendarDayAbbreviation(dayNumber) {
// Abstraction for an appointment/event in a calendar // Abstraction for an appointment/event in a calendar
var CalendarEvent = class CalendarEvent { var CalendarEvent = class CalendarEvent {
constructor(id, date, end, summary, allDay) { constructor(id, date, end, summary) {
this.id = id; this.id = id;
this.date = date; this.date = date;
this.end = end; this.end = end;
this.summary = summary; this.summary = summary;
this.allDay = allDay;
} }
}; };
@ -175,13 +170,26 @@ function _datesEqual(a, b) {
return true; return true;
} }
function _dateIntervalsOverlap(a0, a1, b0, b1) { /**
if (a1 <= b0) * Checks whether an event overlaps a given interval
return false; *
else if (b1 <= a0) * @param {Date} e0 Beginning of the event
return false; * @param {Date} e1 End of the event
else * @param {Date} i0 Beginning of the interval
* @param {Date} i1 End of the interval
* @returns {boolean} Whether there was an overlap
*/
function _eventOverlapsInterval(e0, e1, i0, i1) {
// This also ensures zero-length events are included
if (e0 >= i0 && e1 < i1)
return true; return true;
if (e1 <= i0)
return false;
if (i1 <= e0)
return false;
return true;
} }
// an implementation that reads data from a session bus service // an implementation that reads data from a session bus service
@ -279,10 +287,10 @@ class DBusEventSource extends EventSourceBase {
let changed = false; let changed = false;
for (let n = 0; n < appointments.length; n++) { for (let n = 0; n < appointments.length; n++) {
const [id, summary, allDay, startTime, endTime] = appointments[n]; const [id, summary, startTime, endTime] = appointments[n];
const date = new Date(startTime * 1000); const date = new Date(startTime * 1000);
const end = new Date(endTime * 1000); const end = new Date(endTime * 1000);
let event = new CalendarEvent(id, date, end, summary, allDay); let event = new CalendarEvent(id, date, end, summary);
this._events.set(event.id, event); this._events.set(event.id, event);
changed = true; changed = true;
@ -297,7 +305,7 @@ class DBusEventSource extends EventSourceBase {
let changed = false; let changed = false;
for (const id of ids) for (const id of ids)
changed |= this._events.delete(id); changed = changed || this._events.delete(id);
if (changed) if (changed)
this.emit('changed'); this.emit('changed');
@ -310,7 +318,7 @@ class DBusEventSource extends EventSourceBase {
let changed = false; let changed = false;
for (const id of this._events.keys()) { for (const id of this._events.keys()) {
if (id.startsWith(sourceUid)) if (id.startsWith(sourceUid))
changed |= this._events.delete(id); changed = changed || this._events.delete(id);
} }
if (changed) if (changed)
@ -347,7 +355,7 @@ class DBusEventSource extends EventSourceBase {
*_getFilteredEvents(begin, end) { *_getFilteredEvents(begin, end) {
for (const event of this._events.values()) { for (const event of this._events.values()) {
if (_dateIntervalsOverlap(event.date, event.end, begin, end)) if (_eventOverlapsInterval(event.date, event.end, begin, end))
yield event; yield event;
} }
} }
@ -501,7 +509,7 @@ var Calendar = GObject.registerClass({
else else
col = offsetCols + (7 + iter.getDay() - this._weekStart) % 7; col = offsetCols + (7 + iter.getDay() - this._weekStart) % 7;
layout.attach(label, col, 1, 1, 1); layout.attach(label, col, 1, 1, 1);
iter.setTime(iter.getTime() + MSECS_IN_DAY); iter.setDate(iter.getDate() + 1);
} }
// All the children after this are days, and get removed when we update the calendar // All the children after this are days, and get removed when we update the calendar
@ -602,10 +610,8 @@ var Calendar = GObject.registerClass({
// Actually computing the number of weeks is complex, but we know that the // Actually computing the number of weeks is complex, but we know that the
// problematic categories (2 and 4) always start on week start, and that // problematic categories (2 and 4) always start on week start, and that
// all months at the end have 6 weeks. // all months at the end have 6 weeks.
let beginDate = new Date(this._selectedDate); let beginDate = new Date(
beginDate.setDate(1); this._selectedDate.getFullYear(), this._selectedDate.getMonth(), 1);
beginDate.setSeconds(0);
beginDate.setHours(12);
this._calendarBegin = new Date(beginDate); this._calendarBegin = new Date(beginDate);
this._markedAsToday = now; this._markedAsToday = now;
@ -614,7 +620,7 @@ var Calendar = GObject.registerClass({
let startsOnWeekStart = daysToWeekStart == 0; let startsOnWeekStart = daysToWeekStart == 0;
let weekPadding = startsOnWeekStart ? 7 : 0; let weekPadding = startsOnWeekStart ? 7 : 0;
beginDate.setTime(beginDate.getTime() - (weekPadding + daysToWeekStart) * MSECS_IN_DAY); beginDate.setDate(beginDate.getDate() - (weekPadding + daysToWeekStart));
let layout = this.layout_manager; let layout = this.layout_manager;
let iter = new Date(beginDate); let iter = new Date(beginDate);
@ -685,7 +691,7 @@ var Calendar = GObject.registerClass({
layout.attach(label, rtl ? 7 : 0, row, 1, 1); layout.attach(label, rtl ? 7 : 0, row, 1, 1);
} }
iter.setTime(iter.getTime() + MSECS_IN_DAY); iter.setDate(iter.getDate() + 1);
if (iter.getDay() == this._weekStart) if (iter.getDay() == this._weekStart)
row++; row++;

View File

@ -76,7 +76,7 @@ class KeyringDialog extends ModalDialog.ModalDialog {
warning.opacity = this.prompt.warning_visible ? 255 : 0; warning.opacity = this.prompt.warning_visible ? 255 : 0;
}); });
this.prompt.connect('notify::warning', () => { this.prompt.connect('notify::warning', () => {
if (this._passwordEntry && warning !== '') if (this._passwordEntry && this.prompt.warning !== '')
Util.wiggle(this._passwordEntry); Util.wiggle(this._passwordEntry);
}); });
warningBox.add_child(warning); warningBox.add_child(warning);

View File

@ -127,9 +127,10 @@ class EventsSection extends St.Button {
} }
setDate(date) { setDate(date) {
const day = [date.getFullYear(), date.getMonth(), date.getDate()]; this._startDate =
this._startDate = new Date(...day); new Date(date.getFullYear(), date.getMonth(), date.getDate());
this._endDate = new Date(...day, 23, 59, 59, 999); this._endDate =
new Date(date.getFullYear(), date.getMonth(), date.getDate() + 1);
this._updateTitle(); this._updateTitle();
this._reloadEvents(); this._reloadEvents();
@ -156,11 +157,11 @@ class EventsSection extends St.Button {
const timeSpanDay = GLib.TIME_SPAN_DAY / 1000; const timeSpanDay = GLib.TIME_SPAN_DAY / 1000;
const now = new Date(); const now = new Date();
if (this._startDate <= now && now <= this._endDate) if (this._startDate <= now && now < this._endDate)
this._title.text = _('Today'); this._title.text = _('Today');
else if (this._endDate < now && now - this._endDate < timeSpanDay) else if (this._endDate <= now && now - this._endDate < timeSpanDay)
this._title.text = _('Yesterday'); this._title.text = _('Yesterday');
else if (this._startDate > now && this._startDate - now < timeSpanDay) else if (this._startDate > now && this._startDate - now <= timeSpanDay)
this._title.text = _('Tomorrow'); this._title.text = _('Tomorrow');
else if (this._startDate.getFullYear() === now.getFullYear()) else if (this._startDate.getFullYear() === now.getFullYear())
this._title.text = this._startDate.toLocaleFormat(sameYearFormat); this._title.text = this._startDate.toLocaleFormat(sameYearFormat);
@ -169,8 +170,8 @@ class EventsSection extends St.Button {
} }
_formatEventTime(event) { _formatEventTime(event) {
const allDay = event.allDay || const allDay =
(event.date <= this._startDate && event.end >= this._endDate); event.date <= this._startDate && event.end >= this._endDate;
let title; let title;
if (allDay) { if (allDay) {
@ -184,13 +185,13 @@ class EventsSection extends St.Button {
} }
const rtl = Clutter.get_default_text_direction() === Clutter.TextDirection.RTL; const rtl = Clutter.get_default_text_direction() === Clutter.TextDirection.RTL;
if (event.date < this._startDate && !event.allDay) { if (event.date < this._startDate) {
if (rtl) if (rtl)
title = '%s%s'.format(title, ELLIPSIS_CHAR); title = '%s%s'.format(title, ELLIPSIS_CHAR);
else else
title = '%s%s'.format(ELLIPSIS_CHAR, title); title = '%s%s'.format(ELLIPSIS_CHAR, title);
} }
if (event.end > this._endDate && !event.allDay) { if (event.end > this._endDate) {
if (rtl) if (rtl)
title = '%s%s'.format(ELLIPSIS_CHAR, title); title = '%s%s'.format(ELLIPSIS_CHAR, title);
else else

View File

@ -6,6 +6,8 @@ const Config = imports.misc.config;
imports.gi.versions.Clutter = Config.LIBMUTTER_API_VERSION; imports.gi.versions.Clutter = Config.LIBMUTTER_API_VERSION;
imports.gi.versions.Gio = '2.0'; imports.gi.versions.Gio = '2.0';
imports.gi.versions.GdkPixbuf = '2.0'; imports.gi.versions.GdkPixbuf = '2.0';
imports.gi.versions.GnomeBluetooth = '1.0';
imports.gi.versions.GnomeDesktop = '3.0';
imports.gi.versions.Gtk = '3.0'; imports.gi.versions.Gtk = '3.0';
imports.gi.versions.Soup = '3.0'; imports.gi.versions.Soup = '3.0';
imports.gi.versions.TelepathyGLib = '0.12'; imports.gi.versions.TelepathyGLib = '0.12';

View File

@ -22,7 +22,6 @@ const UPDATE_CHECK_TIMEOUT = 24 * 60 * 60; // 1 day in seconds
var ExtensionManager = class { var ExtensionManager = class {
constructor() { constructor() {
this._initialized = false; this._initialized = false;
this._enabled = false;
this._updateNotified = false; this._updateNotified = false;
this._extensions = new Map(); this._extensions = new Map();
@ -74,6 +73,21 @@ var ExtensionManager = class {
return [...this._extensions.keys()]; return [...this._extensions.keys()];
} }
_extensionSupportsSessionMode(uuid) {
const extension = this.lookup(uuid);
if (!extension)
return false;
if (extension.sessionModes.includes(Main.sessionMode.currentMode))
return true;
if (extension.sessionModes.includes(Main.sessionMode.parentMode))
return true;
return false;
}
_callExtensionDisable(uuid) { _callExtensionDisable(uuid) {
let extension = this.lookup(uuid); let extension = this.lookup(uuid);
if (!extension) if (!extension)
@ -133,7 +147,7 @@ var ExtensionManager = class {
} }
_callExtensionEnable(uuid) { _callExtensionEnable(uuid) {
if (!Main.sessionMode.allowExtensions) if (!this._extensionSupportsSessionMode(uuid))
return; return;
let extension = this.lookup(uuid); let extension = this.lookup(uuid);
@ -315,6 +329,7 @@ var ExtensionManager = class {
hasPrefs: dir.get_child('prefs.js').query_exists(null), hasPrefs: dir.get_child('prefs.js').query_exists(null),
hasUpdate: false, hasUpdate: false,
canChange: false, canChange: false,
sessionModes: meta['session-modes'] ? meta['session-modes'] : ['user'],
}; };
this._extensions.set(uuid, extension); this._extensions.set(uuid, extension);
@ -399,7 +414,7 @@ var ExtensionManager = class {
} }
_callExtensionInit(uuid) { _callExtensionInit(uuid) {
if (!Main.sessionMode.allowExtensions) if (!this._extensionSupportsSessionMode(uuid))
return false; return false;
let extension = this.lookup(uuid); let extension = this.lookup(uuid);
@ -488,13 +503,15 @@ var ExtensionManager = class {
// Find and enable all the newly enabled extensions: UUIDs found in the // Find and enable all the newly enabled extensions: UUIDs found in the
// new setting, but not in the old one. // new setting, but not in the old one.
newEnabledExtensions newEnabledExtensions
.filter(uuid => !this._enabledExtensions.includes(uuid)) .filter(uuid => !this._enabledExtensions.includes(uuid) &&
this._extensionSupportsSessionMode(uuid))
.forEach(uuid => this._callExtensionEnable(uuid)); .forEach(uuid => this._callExtensionEnable(uuid));
// Find and disable all the newly disabled extensions: UUIDs found in the // Find and disable all the newly disabled extensions: UUIDs found in the
// old setting, but not in the new one. // old setting, but not in the new one.
this._extensionOrder this._extensionOrder
.filter(uuid => !newEnabledExtensions.includes(uuid)) .filter(uuid => !newEnabledExtensions.includes(uuid) ||
!this._extensionSupportsSessionMode(uuid))
.reverse().forEach(uuid => this._callExtensionDisable(uuid)); .reverse().forEach(uuid => this._callExtensionDisable(uuid));
this._enabledExtensions = newEnabledExtensions; this._enabledExtensions = newEnabledExtensions;
@ -589,9 +606,6 @@ var ExtensionManager = class {
} }
_enableAllExtensions() { _enableAllExtensions() {
if (this._enabled)
return;
if (!this._initialized) { if (!this._initialized) {
this._loadExtensions(); this._loadExtensions();
this._initialized = true; this._initialized = true;
@ -600,34 +614,20 @@ var ExtensionManager = class {
this._callExtensionEnable(uuid); this._callExtensionEnable(uuid);
}); });
} }
this._enabled = true;
} }
_disableAllExtensions() { _disableAllExtensions() {
if (!this._enabled)
return;
if (this._initialized) { if (this._initialized) {
this._extensionOrder.slice().reverse().forEach(uuid => { this._extensionOrder.slice().reverse().forEach(uuid => {
this._callExtensionDisable(uuid); this._callExtensionDisable(uuid);
}); });
} }
this._enabled = false;
} }
_sessionUpdated() { _sessionUpdated() {
// For now sessionMode.allowExtensions controls extensions from both the // Take care of added or removed sessionMode extensions
// 'enabled-extensions' preference and the sessionMode.enabledExtensions this._onEnabledExtensionsChanged();
// property; it might make sense to make enabledExtensions independent this._enableAllExtensions();
// from allowExtensions in the future
if (Main.sessionMode.allowExtensions) {
// Take care of added or removed sessionMode extensions
this._onEnabledExtensionsChanged();
this._enableAllExtensions();
} else {
this._disableAllExtensions();
}
} }
}; };
Signals.addSignalMethods(ExtensionManager.prototype); Signals.addSignalMethods(ExtensionManager.prototype);

View File

@ -934,13 +934,6 @@ var LayoutManager = GObject.registerClass({
} }
} }
_getWindowActorsForWorkspace(workspace) {
return global.get_window_actors().filter(actor => {
let win = actor.meta_window;
return win.located_on_workspace(workspace);
});
}
_updateFullscreen() { _updateFullscreen() {
this._updateVisibility(); this._updateVisibility();
this._queueUpdateRegions(); this._queueUpdateRegions();
@ -974,6 +967,9 @@ var LayoutManager = GObject.registerClass({
for (i = 0; i < this._trackedActors.length; i++) { for (i = 0; i < this._trackedActors.length; i++) {
let actorData = this._trackedActors[i]; let actorData = this._trackedActors[i];
if (!actorData.actor.get_paint_visibility())
continue;
if (!(actorData.affectsInputRegion && wantsInputRegion) && !actorData.affectsStruts) if (!(actorData.affectsInputRegion && wantsInputRegion) && !actorData.affectsStruts)
continue; continue;
@ -984,7 +980,7 @@ var LayoutManager = GObject.registerClass({
w = Math.round(w); w = Math.round(w);
h = Math.round(h); h = Math.round(h);
if (actorData.affectsInputRegion && wantsInputRegion && actorData.actor.get_paint_visibility()) if (actorData.affectsInputRegion && wantsInputRegion)
rects.push(new Meta.Rectangle({ x, y, width: w, height: h })); rects.push(new Meta.Rectangle({ x, y, width: w, height: h }));
let monitor = null; let monitor = null;

View File

@ -200,7 +200,7 @@ var Magnifier = class Magnifier {
*/ */
startTrackingMouse() { startTrackingMouse() {
if (!this._pointerWatch) { if (!this._pointerWatch) {
let interval = 1000 / Clutter.get_default_frame_rate(); let interval = 1000 / 60;
this._pointerWatch = PointerWatcher.getPointerWatcher().addWatch(interval, this.scrollToMousePos.bind(this)); this._pointerWatch = PointerWatcher.getPointerWatcher().addWatch(interval, this.scrollToMousePos.bind(this));
} }
} }
@ -1898,6 +1898,7 @@ var MagShaderEffects = class MagShaderEffects {
this._colorDesaturation = new Clutter.DesaturateEffect(); this._colorDesaturation = new Clutter.DesaturateEffect();
this._inverse.set_enabled(false); this._inverse.set_enabled(false);
this._brightnessContrast.set_enabled(false); this._brightnessContrast.set_enabled(false);
this._colorDesaturation.set_enabled(false);
this._magView = uiGroupClone; this._magView = uiGroupClone;
this._magView.add_effect(this._inverse); this._magView.add_effect(this._inverse);
@ -1930,6 +1931,7 @@ var MagShaderEffects = class MagShaderEffects {
setColorSaturation(factor) { setColorSaturation(factor) {
this._colorDesaturation.set_factor(1.0 - factor); this._colorDesaturation.set_factor(1.0 - factor);
this._colorDesaturation.set_enabled(factor !== 1.0);
} }
/** /**

View File

@ -49,7 +49,6 @@ const PointerA11yTimeout = imports.ui.pointerA11yTimeout;
const ParentalControlsManager = imports.misc.parentalControlsManager; const ParentalControlsManager = imports.misc.parentalControlsManager;
const Config = imports.misc.config; const Config = imports.misc.config;
const Util = imports.misc.util; const Util = imports.misc.util;
const RealmManager = imports.ui.realms.realmManager;
const WELCOME_DIALOG_LAST_SHOWN_VERSION = 'welcome-dialog-last-shown-version'; const WELCOME_DIALOG_LAST_SHOWN_VERSION = 'welcome-dialog-last-shown-version';
// Make sure to mention the point release, otherwise it will show every time // Make sure to mention the point release, otherwise it will show every time
@ -92,7 +91,6 @@ var kbdA11yDialog = null;
var inputMethod = null; var inputMethod = null;
var introspectService = null; var introspectService = null;
var locatePointer = null; var locatePointer = null;
var realmManager = null;
let _startDate; let _startDate;
let _defaultCssStylesheet = null; let _defaultCssStylesheet = null;
let _cssStylesheet = null; let _cssStylesheet = null;
@ -249,6 +247,23 @@ function _initializeUI() {
global.display.connect('gl-video-memory-purged', loadTheme); global.display.connect('gl-video-memory-purged', loadTheme);
global.context.connect('notify::unsafe-mode', () => {
if (!global.context.unsafe_mode)
return; // we're safe
if (lookingGlass?.isOpen)
return; // assume user action
const source = new MessageTray.SystemNotificationSource();
messageTray.add(source);
const notification = new MessageTray.Notification(source,
_('System was put in unsafe mode'),
_('Applications now have unrestricted access'));
notification.addAction(_('Undo'),
() => (global.context.unsafe_mode = false));
notification.setTransient(true);
source.showNotification(notification);
});
// Provide the bus object for gnome-session to // Provide the bus object for gnome-session to
// initiate logouts. // initiate logouts.
EndSessionDialog.init(); EndSessionDialog.init();
@ -266,8 +281,6 @@ function _initializeUI() {
extensionManager = new ExtensionSystem.ExtensionManager(); extensionManager = new ExtensionSystem.ExtensionManager();
extensionManager.init(); extensionManager.init();
realmManager = new RealmManager.RealmManager();
if (sessionMode.isGreeter && screenShield) { if (sessionMode.isGreeter && screenShield) {
layoutManager.connect('startup-prepared', () => { layoutManager.connect('startup-prepared', () => {
screenShield.showDialog(); screenShield.showDialog();

View File

@ -663,12 +663,24 @@ var MessageListSection = GObject.registerClass({
} }
removeMessage(message, animate) { removeMessage(message, animate) {
if (!this._messages.includes(message)) const messages = this._messages;
if (!messages.includes(message))
throw new Error(`Impossible to remove untracked message`); throw new Error(`Impossible to remove untracked message`);
let listItem = message.get_parent(); let listItem = message.get_parent();
listItem._connectionsIds.forEach(id => message.disconnect(id)); listItem._connectionsIds.forEach(id => message.disconnect(id));
let nextMessage = null;
if (message.has_key_focus()) {
const index = messages.indexOf(message);
nextMessage =
messages[index + 1] ||
messages[index - 1] ||
this._list;
}
if (animate) { if (animate) {
listItem.ease({ listItem.ease({
scale_x: 0, scale_x: 0,
@ -677,10 +689,12 @@ var MessageListSection = GObject.registerClass({
mode: Clutter.AnimationMode.EASE_OUT_QUAD, mode: Clutter.AnimationMode.EASE_OUT_QUAD,
onComplete: () => { onComplete: () => {
listItem.destroy(); listItem.destroy();
nextMessage?.grab_key_focus();
}, },
}); });
} else { } else {
listItem.destroy(); listItem.destroy();
nextMessage?.grab_key_focus();
} }
} }

View File

@ -251,7 +251,7 @@ var Overview = class {
DND.addDragMonitor(this._dragMonitor); DND.addDragMonitor(this._dragMonitor);
// Remember the workspace we started from // Remember the workspace we started from
let workspaceManager = global.workspace_manager; let workspaceManager = global.workspace_manager;
this._lastActiveWorkspaceIndex = workspaceManager.get_active_workspace_id(); this._lastActiveWorkspaceIndex = workspaceManager.get_active_workspace_index();
} }
_onDragEnd(time) { _onDragEnd(time) {

View File

@ -342,8 +342,6 @@ class ControlsManager extends St.Widget {
workspaceManager.connect('notify::n-workspaces', workspaceManager.connect('notify::n-workspaces',
this._updateAdjustment.bind(this)); this._updateAdjustment.bind(this));
this._contextSwitchedId = workspaceManager.connect('context-switched', this._updateAdjustment.bind(this));
this._searchController = new SearchController.SearchController( this._searchController = new SearchController.SearchController(
this._searchEntry, this._searchEntry,
this.dash.showAppsButton); this.dash.showAppsButton);
@ -655,7 +653,6 @@ class ControlsManager extends St.Widget {
_onDestroy() { _onDestroy() {
global.workspace_manager.disconnect(this._nWorkspacesNotifyId); global.workspace_manager.disconnect(this._nWorkspacesNotifyId);
global.workspace_manager.disconnect(this._contextSwitchedId);
} }
_updateAdjustment() { _updateAdjustment() {

View File

@ -1,37 +0,0 @@
const { Clutter, GObject, Shell, St } = imports.gi;
const PanelMenu = imports.ui.panelMenu;
var RealmPanelIndicator = GObject.registerClass(
class RealmPanelIndicator extends PanelMenu.Button {
_init() {
super._init(0.5, "Current Realm");
this._label = new St.Label({
style_class: 'current-realm-label',
y_align: Clutter.ActorAlign.CENTER
});
this.add_child(this._label);
this.update();
}
clear() {
this._label.set_text('');
}
update() {
let realm_name = '';
const realms = Shell.Realms.get_default();
let current = realms.current_realm;
if (current) {
realm_name = current.realm_name;
this._label.set_text(`realm-${realm_name}`);
}
if (realm_name.length > 0) {
this._label.set_text(`realm-${realm_name}`);
} else {
this._label.set_text('');
}
}
});

View File

@ -1,59 +0,0 @@
const { Clutter, Gio, Meta, Shell, St } = imports.gi;
const Main = imports.ui.main;
const RealmIndicator = imports.ui.realms.realmIndicator;
const RealmSwitcher = imports.ui.realms.realmSwitcher;
const Lightbox = imports.ui.lightbox;
const RealmSearchProvider = imports.ui.realms.realmSearchProvider;
const RealmWindowFrame = imports.ui.realms.realmWindowFrame;
var RealmManager = class {
constructor() {
this._realmIndicator = new RealmIndicator.RealmPanelIndicator();
Main.panel.addToStatusArea('RealmIndicator', this._realmIndicator);
this._switchAction = Main.wm.addKeybinding('switch-realm',
new Gio.Settings({ schema_id: "org.gnome.shell.keybindings"}),
Meta.KeyBindingFlags.NONE,
Shell.ActionMode.NORMAL,
this._switchRealms.bind(this));
this._switchActionBackward = Main.wm.addKeybinding('switch-realm-backward',
new Gio.Settings({ schema_id: "org.gnome.shell.keybindings"}),
Meta.KeyBindingFlags.IS_REVERSED,
Shell.ActionMode.NORMAL,
this._switchRealms.bind(this));
const realms = Shell.Realms.get_default();
realms.connect('realm-context-switched', () => {
Main.overview.dash._queueRedisplay();
this._realmIndicator.update();
});
this._switchAnimation = new RealmSwitcher.ContextSwitchAnimationController(this._realmIndicator);
if (Main.overview._overview) {
this._searchResults = Main.overview._overview.controls._searchController._searchResults;
this._searchProvider = new RealmSearchProvider.RealmSearchProvider();
this._searchProvider.createResultDisplay(this._searchResults);
this._searchResults._registerProvider(this._searchProvider);
} else {
log("Not creating search provider because Main.overview._overview does not exist");
}
this._frameManager = new RealmWindowFrame.WindowFrameManager();
}
animateSwitch(from, to, onComplete) {
this._switchAnimation.animateSwitch(from, to, onComplete);
}
_switchRealms(display, window, binding) {
let popup = new RealmSwitcher.SwitchRealmPopup(this._switchAction, this._switchActionBackward);
if (!popup.show(binding.is_reversed(), binding.get_name(), binding.get_mask()))
popup.fadeAndDestroy();
}
};

View File

@ -1,326 +0,0 @@
const { Clutter, GObject, Pango, Shell, St } = imports.gi;
const Search = imports.ui.search;
const Main = imports.ui.main;
const Util = imports.misc.util;
// Based on ProviderInfo in search.js
var RealmProviderInfo = GObject.registerClass(
class RealmProviderInfo extends St.Button {
_init() {
super._init({
style_class: 'search-provider-icon',
reactive: false,
can_focus: false,
accessible_name: "Realms",
track_hover: false,
y_align: Clutter.ActorAlign.START,
});
this._content = new St.BoxLayout({ vertical: false,
style_class: 'list-search-provider-content' });
this.set_child(this._content);
let icon = new St.Icon({ icon_size: this.PROVIDER_ICON_SIZE,
icon_name: 'computer' });
let detailsBox = new St.BoxLayout({ style_class: 'list-search-provider-details',
vertical: true,
x_expand: true });
let nameLabel = new St.Label({
text: "Realms",
x_align: Clutter.ActorAlign.START
});
this._moreLabel = new St.Label({ x_align: Clutter.ActorAlign.START });
detailsBox.add_actor(nameLabel);
detailsBox.add_actor(this._moreLabel);
this._content.add_actor(icon);
this._content.add_actor(detailsBox);
}
get PROVIDER_ICON_SIZE() {
return 48;
}
setMoreCount(count) {
this._moreLabel.text = ngettext("%d more", "%d more", count).format(count);
this._moreLabel.visible = count > 0;
}
});
var MAX_LIST_SEARCH_RESULTS_ROWS = 10;
// Based on ListSearchResult in search.js
var RealmSearchResult = GObject.registerClass(
class ListSearchResult extends Search.SearchResult {
_init(provider, metaInfo, resultsView) {
super._init(provider, metaInfo, resultsView);
this.style_class = 'list-search-result';
let content = new St.BoxLayout({
style_class: 'list-search-result-content',
vertical: false,
x_align: Clutter.ActorAlign.FILL,
x_expand: true,
y_expand: true,
});
this.set_child(content);
this._termsChangedId = 0;
let titleBox = new St.BoxLayout({
style_class: 'list-search-result-title',
y_align: Clutter.ActorAlign.CENTER,
});
content.add_child(titleBox);
// An icon for, or thumbnail of, content
let icon = this.metaInfo['createIcon'](this.ICON_SIZE);
if (icon)
titleBox.add(icon);
let title = new St.Label({
text: this.metaInfo['name'],
y_align: Clutter.ActorAlign.CENTER,
});
titleBox.add_child(title);
this.label_actor = title;
if (this.metaInfo['description']) {
this._descriptionLabel = new St.Label({
style_class: 'list-search-result-description',
x_expand: true,
x_align: Clutter.ActorAlign.START,
y_align: Clutter.ActorAlign.CENTER,
});
this._descriptionLabel.clutter_text.ellipsize = Pango.EllipsizeMode.NONE;
content.add_child(this._descriptionLabel);
this._termsChangedId =
this._resultsView.connect('terms-changed',
this._highlightTerms.bind(this));
this._highlightTerms();
}
let id = this.metaInfo['id'];
if (id != ':new:') {
this.configButton = new St.Button({
style_class: 'button',
track_hover: true,
can_focus: true,
child: new St.Icon({
style_class: 'realm-config-icon',
icon_name: 'emblem-system-symbolic',
icon_size: 24,
}),
});
this.configButton.connect('clicked', () => {
Main.overview.toggle();
Util.spawn(['/usr/libexec/realm-config-ui', id]);
});
content.add_child(this.configButton);
}
this.connect('destroy', this._onDestroy.bind(this));
}
get ICON_SIZE() {
return 24;
}
_highlightTerms() {
let markup = this._resultsView.highlightTerms(this.metaInfo['description'].split('\n')[0]);
this._descriptionLabel.clutter_text.set_markup(markup);
}
_onDestroy() {
if (this._termsChangedId)
this._resultsView.disconnect(this._termsChangedId);
this._termsChangedId = 0;
}
});
// Based on ListSearchResults in search.js
var RealmSearchResults = GObject.registerClass(
class RealmSearchResults extends Search.SearchResultsBase {
_init(provider, resultsView) {
super._init(provider, resultsView);
this._container = new St.BoxLayout({ style_class: 'search-section-content' });
this.providerInfo = new RealmProviderInfo();
this.providerInfo.connect('key-focus-in', this._keyFocusIn.bind(this));
this.providerInfo.connect('clicked', () => {
Main.overview.toggle();
});
this._container.add_child(this.providerInfo);
this._content = new St.BoxLayout({
style_class: 'list-search-results',
vertical: true,
x_expand: true,
});
this._container.add_child(this._content);
this._resultDisplayBin.set_child(this._container);
}
_setMoreCount(count) {
this.providerInfo.setMoreCount(count);
}
_getMaxDisplayedResults() {
return MAX_LIST_SEARCH_RESULTS_ROWS;
}
_clearResultDisplay() {
this._content.remove_all_children();
}
_createResultDisplay(meta) {
return super._createResultDisplay(meta) ||
new RealmSearchResult(this.provider, meta, this._resultsView);
}
_addItem(display) {
this._content.add_actor(display);
}
getFirstResult() {
if (this._content.get_n_children() > 0)
return this._content.get_child_at_index(0);
else
return null;
}
});
var RealmSearchProvider = class RealmSearchProvider {
constructor() {
this._shellRealms = Shell.Realms.get_default();
this.id = 'realms';
this.isRemoteProvider = false;
this.canLaunchSearch = false;
this.display = null;
}
createResultDisplay(resultsView) {
this.display = new RealmSearchResults(this, resultsView);
this.display.connect('notify::focus-child', resultsView._focusChildChanged.bind(resultsView));
this.display.hide();
resultsView._content.add(this.display);
}
createIcon(size, realm) {
if (realm.is_running()) {
return new St.Icon({ icon_name: 'emblem-synchronizing', icon_size: size });
} else {
return new St.Icon({ icon_name: 'exaile', icon_size: size });
}
}
createRealmMeta(realm) {
let id = realm.get_realm_name();
let description = '';
if (realm.is_running()) {
description = `Set realm-${id} as current realm`;
} else {
description = `Start realm-${id}`;
}
return {
id: id,
name: `realm-${id}`,
description: description,
createIcon: size => {
return this.createIcon(size, realm);
},
};
}
createNewRealmMeta() {
return {
id: ':new:',
name: 'New Realm',
description: 'Create a new realm',
createIcon: size => {
return new St.Icon({
icon_name: 'computer',
icon_size: size,
});
}
}
}
getResultMetas (ids, callback) {
let metas = [];
for (let id of ids) {
if (id == ":new:") {
metas.push(this.createNewRealmMeta());
} else {
let realm = this._shellRealms.realm_by_name(id);
if (realm && !realm.is_current()) {
metas.push(this.createRealmMeta(realm));
} else {
log(`No realm found for ${id}`);
}
}
}
callback(metas);
}
activateResult (resultId, _terms) {
if (resultId == ':new:') {
Main.overview.toggle();
Util.spawn(['/usr/libexec/realm-config-ui', '--new']);
return;
}
let realm = this._shellRealms.realm_by_name(resultId);
if (realm) {
realm.set_current();
} else {
log(`No realm found for ${resultId}`);
}
}
filterResults(results, maxNumber) {
return results.slice(0, maxNumber)
}
getInitialResultSet(terms, callback, _cancellable) {
let realms = this._shellRealms.get_all_realms();
let matches = [];
if (terms.length == 1 && "new".startsWith(terms[0])) {
matches.push(":new:");
}
for (let realm of realms) {
if (!realm.is_current()) {
let name = realm.get_realm_name();
if (terms.every(t => name.indexOf(t) != -1)) {
matches.push(name);
}
}
}
callback(matches);
}
getSubsearchResultSet(previousResults, terms, callback, cancellable) {
this.getInitialResultSet(terms, callback, cancellable)
}
}

View File

@ -1,325 +0,0 @@
const { Clutter, GObject, Meta, Shell, St } = imports.gi;
const Background = imports.ui.background;
const SwitcherPopup = imports.ui.switcherPopup;
const Layout = imports.ui.layout;
const Main = imports.ui.main;
const WINDOW_ANIMATION_TIME = 2000;
var APP_ICON_SIZE = 96;
var RealmItem = GObject.registerClass(
class RealmItem extends St.BoxLayout {
_init(realm, workspace_group) {
super._init({ vertical: true });
this.realm = realm;
this.add_child(workspace_group);
this.label = new St.Label({
text: `realm-${this.realm.realm_name}`,
x_align: Clutter.ActorAlign.CENTER,
});
this.add_child(this.label);
}
activate() {
this.realm.set_current();
}
});
function getRealmItems() {
const monitor = Main.layoutManager.primaryMonitor;
const realms = Shell.Realms.get_default();
let realm_list = realms.get_running_realms();
let items = [];
realm_list.forEach(realm => {
let ws = realm.get_active_workspace();
if (ws) {
let size = 256; // default thumbnail size
let scale = Math.min(1.0, size / monitor.width, size / monitor.height);
let wsgroup = new WorkspaceGroup(ws, monitor, scale);
items.push(new RealmItem(realm, wsgroup));
}
});
return items;
}
var SwitchRealmList = GObject.registerClass(
class SwitchRealmList extends SwitcherPopup.SwitcherList {
_init(items) {
super._init(false);
items.forEach(item => {
this.addItem(item, item.label);
});
}
});
var SwitchRealmPopup = GObject.registerClass(
class SwitchRealmPopup extends SwitcherPopup.SwitcherPopup {
_init(action, actionBackward) {
super._init();
this._action = action;
this._actionBackward = actionBackward;
this._items = getRealmItems();
this._switcherList = new SwitchRealmList(this._items);
}
_keyPressHandler(keysym, action) {
if (action == this._action)
this._select(this._next());
else if (action == this._actionBackward)
this._select(this._previous());
else if (keysym == Clutter.KEY_Left)
this._select(this._previous());
else if (keysym == Clutter.KEY_Right)
this._select(this._next());
else
return Clutter.EVENT_PROPAGATE;
return Clutter.EVENT_STOP;
}
_finish() {
super._finish();
this._items[this._selectedIndex].activate();
}
});
const WorkspaceGroup = GObject.registerClass(
class WorkspaceGroup extends Clutter.Actor {
_init(workspace, monitor, scale = 1.0) {
super._init();
this._workspace = workspace;
this._monitor = monitor;
this._scale = scale;
this._windowRecords = [];
this.width = monitor.width * scale;
this.height = monitor.height * scale;
this._background = new Meta.BackgroundGroup({
width: this.width * this._scale,
height: this.height * this._scale,
});
this.add_actor(this._background);
this._bgManager = new Background.BackgroundManager({
container: this._background,
monitorIndex: this._monitor.index,
controlPosition: false,
});
this.clip_to_allocation = true;
this._createWindows();
this.connect('destroy', this._onDestroy.bind(this));
this._restackedId = global.display.connect('restacked', this._syncStacking.bind(this));
}
get workspace() {
return this._workspace;
}
_shouldShowWindow(window) {
if (!window.showing_on_its_workspace())
return false;
const geometry = global.display.get_monitor_geometry(this._monitor.index);
const [intersects] = window.get_frame_rect().intersect(geometry);
if (!intersects)
return false;
const isSticky = window.is_on_all_workspaces();
return !isSticky && window.located_on_workspace(this._workspace);
}
_syncStacking() {
const windowActors = global.get_window_actors().filter(w =>
this._shouldShowWindow(w.meta_window));
let lastRecord;
for (const windowActor of windowActors) {
const record = this._windowRecords.find(r => r.windowActor === windowActor);
this.set_child_above_sibling(record.clone, lastRecord ? lastRecord.clone : this._background);
lastRecord = record;
}
}
_createWindows() {
const windowActors = global.get_window_actors().filter(w =>
this._shouldShowWindow(w.meta_window));
for (const windowActor of windowActors) {
let [width,height] = windowActor.get_size();
const clone = new Clutter.Clone({
source: windowActor,
width: width * this._scale,
height: height * this._scale,
x: (windowActor.x - this._monitor.x) * this._scale,
y: (windowActor.y - this._monitor.y) * this._scale,
});
this.add_child(clone);
const record = {windowActor, clone };
record.windowDestroyId = windowActor.connect('destroy', () => {
clone.destroy();
this._windowRecords.splice(this._windowRecords.indexOf(record), 1);
});
this._windowRecords.push(record);
}
}
_removeWindows() {
for (const record of this._windowRecords) {
record.windowActor.disconnect(record.windowDestroyId);
record.clone.destroy();
}
this._windowRecords = [];
}
_onDestroy() {
global.display.disconnect(this._restackedId);
this._removeWindows();
this._bgManager.destroy();
}
});
const MonitorGroup = GObject.registerClass({
Properties: {
'progress': GObject.ParamSpec.double(
'progress', 'progress', 'progress',
GObject.ParamFlags.READWRITE,
-Infinity, Infinity, 0),
},
}, class MonitorGroup extends St.Widget {
_init(monitor, fromIndex, toIndex) {
super._init({
clip_to_allocation: true,
style_class: 'workspace-animation',
});
this._monitor = monitor;
const constraint = new Layout.MonitorConstraint({ index: monitor.index });
this.add_constraint(constraint);
this._container = new Clutter.Actor();
this.add_child(this._container);
this._progress = 0;
this._fadeOut = true;
this._workspaceGroups = [];
this._blackBackground = new Clutter.Actor();
this._blackBackground.width = monitor.width;
this._blackBackground.height = monitor.height;
let [_res, color] = Clutter.Color.from_string("#000000ff");
this._blackBackground.background_color = color;
this.addWorkspaceByIndex(toIndex, monitor);
// add opaque black actor
this._container.add_child(this._blackBackground);
this.addWorkspaceByIndex(fromIndex, monitor);
// tween 'from' WorkspaceGroup opacity from 255 to 0 fading workspace to black background
// tween 'block' actor opacity from 255 to 0 revealing 'to' WorkspaceGroup
}
addWorkspaceByIndex(idx, monitor) {
const workspaceManager = global.workspace_manager;
const ws = workspaceManager.get_workspace_by_index(idx);
if (ws) {
const fullscreen = ws.list_windows().some(w => w.get_monitor() === monitor.index && w.is_fullscreen());
const group = new WorkspaceGroup(ws, monitor);
this._workspaceGroups.push(group);
this._container.add_child(group);
}
}
get progress() {
return this._progress;
}
// Interpolate opacity from 0 (full opaque) to 50 (full transparent)
calculateOpacity(progress) {
return 255 - (255 * (progress / 50.0));
}
set progress(p) {
const fromGroup = this._workspaceGroups[this._workspaceGroups.length - 1];
this._progress = p;
// 0 - 50
if (p < 50) {
this._blackBackground.opacity = 255;
fromGroup.opacity = this.calculateOpacity(p);
} else if (p < 100) {
if (this._fadeOut) {
this._fadeOut = false;
}
fromGroup.opacity = 0;
this._blackBackground.opacity = this.calculateOpacity(p - 50);
} else {
fromGroup.opacity = 0;
this._blackBackground.opacity = 0;
}
}
});
var ContextSwitchAnimationController = class {
constructor(indicator) {
this._switchData = null;
this._indicator = indicator;
}
_prepareContextSwitch(fromIdx, toIdx) {
if (this._switchData) {
this._switchData.monitors[0].remove_all_transitions();
this._finishContextSwitch(this._switchData);
}
const switchData = {};
this._switchData = switchData;
switchData.monitors = [];
switchData.inProgress = false;
const monitor = Main.layoutManager.primaryMonitor;
const group = new MonitorGroup(monitor, fromIdx, toIdx);
Main.uiGroup.insert_child_above(group, global.window_group);
switchData.monitors.push(group);
Meta.disable_unredirect_for_display(global.display);
}
_finishContextSwitch(switchData) {
Meta.enable_unredirect_for_display(global.display);
this._indicator.update();
this._switchData = null;
switchData.monitors.forEach(m => m.destroy());
if (switchData.onComplete) {
switchData.onComplete();
}
}
animateSwitch(fromIdx, toIdx, onComplete) {
this._prepareContextSwitch(fromIdx, toIdx);
this._switchData.inProgress = true;
this._switchData.onComplete = onComplete;
const params = {
duration: WINDOW_ANIMATION_TIME,
mode: Clutter.AnimationMode.EASE_IN_OUT_QUAD,
};
params.onComplete = () => {
this._finishContextSwitch(this._switchData);
};
this._indicator.clear();
this._switchData.monitors[0].ease_property('progress', 100, params);
}
}

View File

@ -1,323 +0,0 @@
const { Clutter, Cogl, GObject, Meta, Shell, St } = imports.gi;
var WindowFrameManager = class WindowFrameManager {
constructor() {
this._realms = Shell.Realms.get_default();
let frames = this._realms.window_frames();
this._frame_effects = [];
global.window_manager.connect('map', this._handleWindowMap.bind(this));
global.workspace_manager.connect('context-window-moved', this._onContextWindowMoved.bind(this));
global.workspace_manager.connect('context-removed', this._onContextRemoved.bind(this));
frames.connect('realm-frame-colors-changed', this._onFrameColorsChanged.bind(this));
this.trackWindows();
}
_onContextWindowMoved(workspaceManager, window) {
let actor = window.get_compositor_private();
if (actor) {
this.handleWindow(actor);
}
return Clutter.EVENT_PROPAGATE;
}
_handleWindowMap(shellwm, actor) {
this.handleWindow(actor);
return Clutter.EVENT_PROPAGATE;
}
_onContextRemoved(workspaceManager, id) {
this.trackWindows();
}
_onFrameColorsChanged(realms) {
this.trackWindows();
}
trackWindows() {
var actors = global.get_window_actors();
actors.forEach(a => this.handleWindow(a));
}
handleWindow(actor) {
let win = actor.metaWindow;
let win_id = win.get_stable_sequence();
let effect = this._frame_effects[win_id];
let frames = this._realms.window_frames();
if (frames.has_frame(win) && frames.is_frame_enabled(win)) {
let color = frames.color_for_window(win);
if (effect) {
effect.setColor(color);
} else {
let label = frames.label_for_window(win);
effect = new RealmFrameEffect(actor, color, label);
this._frame_effects[win_id] = effect;
}
} else if (effect) {
effect.removeEffect(actor);
this._frame_effects[win_id] = null;
}
}
}
var RealmFrameEffect = GObject.registerClass(
class RealmFrameEffect extends Clutter.Effect {
_init(actor, color, label_text) {
super._init();
this._frame_width = 2;
this._pipeline = null;
this._color = color;
this._label_on_top = true;
this._label = null;
this._label_text = label_text;
if (label_text) {
this._updateLabel(actor.metaWindow);
}
this._sizeChangedId = actor.metaWindow.connect('size-changed', window => {
this._updateLabel(window);
});
actor.add_effect(this);
}
removeEffect(actor) {
if (this._label) {
actor.remove_child(this._label);
this._label = null;
}
if (this._sizeChangedId) {
let win = actor.metaWindow;
win.disconnect(this._sizeChangedId);
this._sizeChangedId = 0;
}
actor.remove_effect(this);
}
_createLabel(actor, label_text) {
let label = new St.Label({
style_class: 'realm-frame-label',
z_position: 1.0,
});
label.set_text(' '+label_text+' ');
actor.add_child(label);
return label;
}
_updateLabel(window) {
if (!this._label_text) {
return;
}
if (window.is_fullscreen()) {
if (this._label) {
let actor = window.get_compositor_private();
actor.remove_child(this._label);
this._label = null;
}
} else if (!this._label) {
let actor = window.get_compositor_private();
this._label = this._createLabel(actor, this._label_text);
}
if (this._label) {
this._updateLabelPosition(window);
this._updateLabelColor();
}
}
_updateLabelPosition(window) {
if (!this._label_height) {
// If we scale the text, the reported size of the label will not be the value we need so
// save the initial value.
this._label_height = this._label.get_height();
}
let maximized = window.is_fullscreen() === true || // Fullscreen
[Meta.MaximizeFlags.BOTH, Meta.MaximizeFlags.VERTICAL].includes(window.get_maximized()); // Maximized
this._label_on_top = !maximized;
let frame_rect = window.get_frame_rect();
let buffer_rect = window.get_buffer_rect();
let offsetX = frame_rect.x - buffer_rect.x;
let offsetY = frame_rect.y - buffer_rect.y;
if (window.get_client_type() === Meta.WindowClientType.WAYLAND) {
let scaleFactor = St.ThemeContext.get_for_stage(global.stage).scale_factor;
if (scaleFactor !== 1) {
offsetX = offsetX / scaleFactor;
this._label.set_style(`font-size: ${12 / scaleFactor}pt;`);
}
offsetX -= 1;
offsetY -= 4;
}
// If label is on top and there is enough space above title bar move position up by label height
if (this._label_on_top && this._label_height <= offsetY) {
offsetY -= this._label_height;
} else if (maximized) {
offsetX = 0;
offsetY = 0;
}
this._label.set_position(offsetX, offsetY);
}
_updateLabelColor() {
let fg = new Clutter.Color({
red: 0,
green: 0,
blue: 0,
alpha: 96,
});
let bg = this._color.copy();
if (this._label_on_top) {
bg.alpha = 100;
} else {
bg.alpha = 200;
}
let clutter_text = this._label.get_clutter_text();
clutter_text.set_color(fg);
clutter_text.set_background_color(bg);
}
setColor(color) {
if (this._color && this._color.equal(color)) {
return;
}
this._color = color;
this.setPipelineColor();
if (this._label) {
this._updateLabelColor();
}
}
setPipelineColor() {
if (!this._color || !this._pipeline) {
return;
}
let s = this._color.to_string();
let cogl_color = new Cogl.Color();
cogl_color.init_from_4ub(this._color.red, this._color.green, this._color.blue, 0xc4);
this._pipeline.set_color(cogl_color);
}
_calculate_frame_box(window, allocation) {
let frame_rect = window.get_frame_rect();
let buffer_rect = window.get_buffer_rect();
let offsetX = frame_rect.x - buffer_rect.x;
let offsetY = frame_rect.y - buffer_rect.y;
let top = offsetY - 3;
let bottom = offsetY - 1;
let left = offsetX - 3;
let right = offsetX - 1;
let wayland = window.get_client_type() == Meta.WindowClientType.WAYLAND;
if (wayland) {
bottom += 4;
}
let fw = this._frame_width;
switch (window.get_maximized()) {
case Meta.MaximizeFlags.BOTH:
top += fw;
right += fw;
bottom += fw - (wayland ? 5 : 0);
left += fw;
break;
case Meta.MaximizeFlags.HORIZONTAL:
right += fw;
left += fw;
break;
case Meta.MaximizeFlags.VERTICAL:
top += fw;
bottom += fw;
break;
}
if (window.is_fullscreen()) {
top += 3;
right += 2;
bottom -= (wayland ? 3 : 0);
left += 3;
}
if (!wayland && !window.decorated && !window.is_fullscreen() && (window.get_maximized() !== Meta.MaximizeFlags.BOTH)) {
bottom += 4;
}
let x = left;
let y = top + fw;
let w = allocation.get_width() - (right + left);
let h = allocation.get_height() - (bottom + top + fw);
return [x, y, w, h];
}
draw_rect(node, x, y, width, height) {
const box = new Clutter.ActorBox();
box.set_origin(x, y);
box.set_size(width, height);
node.add_rectangle(box);
}
draw_hline(node, x, y, width, width_factor = 1) {
this.draw_rect(node, x, y, width, this._frame_width * width_factor);
}
draw_vline(node, x, y, height, width_factor = 1) {
this.draw_rect(node, x, y, this._frame_width * width_factor, height);
}
vfunc_paint_node(node, ctx) {
let actor = this.get_actor();
const actorNode = new Clutter.ActorNode(actor, -1);
node.add_child(actorNode);
if (!this._pipeline) {
let framebuffer = ctx.get_framebuffer();
let coglContext = framebuffer.get_context();
this._pipeline = new Cogl.Pipeline(coglContext);
this.setPipelineColor();
}
const pipelineNode = new Clutter.PipelineNode(this._pipeline);
pipelineNode.set_name('Realm Frame');
node.add_child(pipelineNode);
let [x, y, width, height] = this._calculate_frame_box(actor.metaWindow, actor.get_allocation_box());
// Top
this.draw_hline(pipelineNode, x, y, width, 2);
// Right
this.draw_vline(pipelineNode, x + width, y, height);
// Bottom
this.draw_hline(pipelineNode, x, y + height, width);
// Left
this.draw_vline(pipelineNode, x, y, height);
}
});

View File

@ -1,133 +0,0 @@
const { Shell, GObject } = imports.gi;
const PopupMenu = imports.ui.popupMenu;
function _windowAppId(window) {
const tracker = Shell.WindowTracker.get_default();
const app = tracker.get_window_app(window);
if (app) {
return app.get_id();
} else {
log(`No app found for window ${window.get_description()}`)
return null;
}
}
function windowMenuDebugString(window) {
const id = _windowAppId(window);
const realm_name = windowRealmName(window);
if (!realm_name) {
return id;
} else if (window.is_on_foreign_workspace_context()) {
return `${id} [${realm_name}]`;
} else {
return `${id} (${realm_name})`;
}
}
function _createMoveWindowItem(label, realm_name, window) {
let item = new PopupMenu.PopupMenuItem(label);
item.connect('activate', () => {
let realms = Shell.Realms.get_default();
let realm = realms.realm_by_name(realm_name);
if (realm) {
realm.move_window_to_context(window);
}
});
return item;
}
// Return name of the realm the application this window belongs to is running in.
function windowRealmName(window) {
const realms = Shell.Realms.get_default();
if (realms.is_citadel_window(window)) {
return "Citadel"
}
let realm = realms.realm_by_window(window);
if (realm) {
return realm.realm_name;
} else {
return null;
}
}
// Return name of realm the context this window is currently located on belongs to
function windowContextRealmName(window) {
if (window.on_all_workspaces) {
return windowRealmName(window);
}
let ws = window.get_workspace();
if (!ws) {
return null;
}
const realms = Shell.Realms.get_default();
let realm = realms.realm_by_context_id(ws.get_context_id());
if (realm) {
return realm.realm_name;
} else {
return null;
}
}
function enableFrameItem(window) {
const realms = Shell.Realms.get_default();
const frames = realms.window_frames();
if (!frames.has_frame(window)) {
return null;
}
let enabled = frames.is_frame_enabled(window);
let item = new PopupMenu.PopupMenuItem("Display colored window frame");
if (enabled) {
item.setOrnament(PopupMenu.Ornament.CHECK);
}
item.connect('activate', () => {
let realms = Shell.Realms.get_default();
const frames = realms.window_frames();
frames.set_frame_enabled(window, !enabled);
});
return item;
}
function realmWindowMenu(window) {
const realm_name = windowContextRealmName(window);
if (!realm_name) {
return null;
}
const realms = Shell.Realms.get_default();
let other_realms = [];
let running_realms = realms.get_running_realms();
running_realms.forEach(realm => {
if (realm.realm_name != realm_name) {
other_realms.push(realm.realm_name);
}
});
if (other_realms.length == 0) {
return null;
} else if (other_realms.length == 1) {
let name = other_realms[0];
return _createMoveWindowItem(`Move to realm-${name}`, name, window);
}
let subMenu = new PopupMenu.PopupSubMenuMenuItem('Move to Realm...', true);
other_realms.forEach(name => {
let item = _createMoveWindowItem(`realm-${name}`, name, window);
subMenu.menu.addMenuItem(item);
});
return subMenu;
}

View File

@ -249,8 +249,8 @@ class RunDialog extends ModalDialog.ModalDialog {
this._commandError = false; this._commandError = false;
if (this._lockdownSettings.get_boolean(DISABLE_COMMAND_LINE_KEY)) if (this._lockdownSettings.get_boolean(DISABLE_COMMAND_LINE_KEY))
return; return false;
super.open(); return super.open();
} }
}); });

View File

@ -20,7 +20,6 @@ const _modes = {
showCalendarEvents: false, showCalendarEvents: false,
showWelcomeDialog: false, showWelcomeDialog: false,
allowSettings: false, allowSettings: false,
allowExtensions: false,
allowScreencast: false, allowScreencast: false,
enabledExtensions: [], enabledExtensions: [],
hasRunDialog: false, hasRunDialog: false,
@ -71,10 +70,9 @@ const _modes = {
'user': { 'user': {
hasOverview: true, hasOverview: true,
showCalendarEvents: false, showCalendarEvents: true,
showWelcomeDialog: true, showWelcomeDialog: true,
allowSettings: true, allowSettings: true,
allowExtensions: true,
allowScreencast: true, allowScreencast: true,
hasRunDialog: true, hasRunDialog: true,
hasWorkspaces: true, hasWorkspaces: true,

View File

@ -542,7 +542,6 @@ var GnomeShellMountOpHandler = class {
Gio.BusNameOwnerFlags.REPLACE, null, null); Gio.BusNameOwnerFlags.REPLACE, null, null);
this._dialog = null; this._dialog = null;
this._volumeMonitor = Gio.VolumeMonitor.get();
this._ensureEmptyRequest(); this._ensureEmptyRequest();
} }

View File

@ -113,7 +113,7 @@ class Indicator extends PanelMenu.SystemIndicator {
bindFlags); bindFlags);
this._sessionSubMenu = new PopupMenu.PopupSubMenuMenuItem( this._sessionSubMenu = new PopupMenu.PopupSubMenuMenuItem(
_('Power Off'), true); _('Power Off / Log Out'), true);
this._sessionSubMenu.icon.icon_name = 'system-shutdown-symbolic'; this._sessionSubMenu.icon.icon_name = 'system-shutdown-symbolic';
item = new PopupMenu.PopupMenuItem(_('Suspend')); item = new PopupMenu.PopupMenuItem(_('Suspend'));

View File

@ -493,7 +493,7 @@ var SwipeTracker = GObject.registerClass({
this.bind_property('orientation', this._touchGesture, 'orientation', this.bind_property('orientation', this._touchGesture, 'orientation',
GObject.BindingFlags.SYNC_CREATE); GObject.BindingFlags.SYNC_CREATE);
this.bind_property('distance', this._touchGesture, 'distance', 0); this.bind_property('distance', this._touchGesture, 'distance', 0);
global.stage.add_action(this._touchGesture); global.stage.add_action_full('swipe', Clutter.EventPhase.CAPTURE, this._touchGesture);
if (params.allowDrag) { if (params.allowDrag) {
this._dragGesture = new TouchSwipeGesture(allowedModes, 1, this._dragGesture = new TouchSwipeGesture(allowedModes, 1,

View File

@ -676,16 +676,14 @@ var UnlockDialog = GObject.registerClass({
} }
_ensureAuthPrompt() { _ensureAuthPrompt() {
if (this._authPrompt) if (!this._authPrompt) {
return; this._authPrompt = new AuthPrompt.AuthPrompt(this._gdmClient,
AuthPrompt.AuthPromptMode.UNLOCK_ONLY);
this._authPrompt = new AuthPrompt.AuthPrompt(this._gdmClient, this._authPrompt.connect('failed', this._fail.bind(this));
AuthPrompt.AuthPromptMode.UNLOCK_ONLY); this._authPrompt.connect('cancelled', this._fail.bind(this));
this._authPrompt.connect('failed', this._fail.bind(this)); this._authPrompt.connect('reset', this._onReset.bind(this));
this._authPrompt.connect('cancelled', this._fail.bind(this)); this._promptBox.add_child(this._authPrompt);
this._authPrompt.connect('reset', this._onReset.bind(this)); }
this._promptBox.add_child(this._authPrompt);
this._authPrompt.reset(); this._authPrompt.reset();
this._authPrompt.updateSensitivity(true); this._authPrompt.updateSensitivity(true);
@ -872,7 +870,11 @@ var UnlockDialog = GObject.registerClass({
} }
finish(onComplete) { finish(onComplete) {
this._ensureAuthPrompt(); if (!this._authPrompt) {
onComplete();
return;
}
this._authPrompt.finish(onComplete); this._authPrompt.finish(onComplete);
} }

View File

@ -26,9 +26,9 @@ class WelcomeDialog extends ModalDialog.ModalDialog {
open() { open() {
if (!this._tourAppInfo) if (!this._tourAppInfo)
return; return false;
super.open(); return super.open();
} }
_buildLayout() { _buildLayout() {

View File

@ -198,8 +198,6 @@ var WorkspaceTracker = class {
workspaceManager.connect('workspaces-reordered', () => { workspaceManager.connect('workspaces-reordered', () => {
this._workspaces.sort((a, b) => a.index() - b.index()); this._workspaces.sort((a, b) => a.index() - b.index());
}); });
workspaceManager.connect('context-switched',
this._workspaceContextSwitched.bind(this));
global.window_manager.connect('switch-workspace', global.window_manager.connect('switch-workspace',
this._queueCheckWorkspaces.bind(this)); this._queueCheckWorkspaces.bind(this));
@ -255,8 +253,6 @@ var WorkspaceTracker = class {
emptyWorkspaces[index] = false; emptyWorkspaces[index] = false;
} }
let current_context_id = workspaceManager.active_context_id();
let windows = global.get_window_actors(); let windows = global.get_window_actors();
for (i = 0; i < windows.length; i++) { for (i = 0; i < windows.length; i++) {
let actor = windows[i]; let actor = windows[i];
@ -265,12 +261,7 @@ var WorkspaceTracker = class {
if (win.is_on_all_workspaces()) if (win.is_on_all_workspaces())
continue; continue;
let workspace = win.get_workspace(); let workspaceIndex = win.get_workspace().index();
if (workspace.get_context_id() != current_context_id)
continue;
let workspaceIndex = workspace.index();
emptyWorkspaces[workspaceIndex] = false; emptyWorkspaces[workspaceIndex] = false;
} }
@ -348,28 +339,6 @@ var WorkspaceTracker = class {
this._checkWorkspacesId = Meta.later_add(Meta.LaterType.BEFORE_REDRAW, this._checkWorkspaces.bind(this)); this._checkWorkspacesId = Meta.later_add(Meta.LaterType.BEFORE_REDRAW, this._checkWorkspaces.bind(this));
} }
_workspaceContextSwitched() {
let workspaceManager = global.workspace_manager;
let numWorkspaces = workspaceManager.n_workspaces;
this._workspaces.forEach(workspace => {
workspace.disconnect(workspace._windowAddedId);
workspace.disconnect(workspace._windowRemovedId);
});
this._workspaces = [];
for (let w = 0; w < numWorkspaces; w++) {
let workspace = workspaceManager.get_workspace_by_index(w);
workspace._windowAddedId = workspace.connect('window-added', this._queueCheckWorkspaces.bind(this));
workspace._windowRemovedId = workspace.connect('window-removed', this._windowRemoved.bind(this));
this._workspaces[w] = workspace;
}
this._queueCheckWorkspaces();
return false;
}
_nWorkspacesChanged() { _nWorkspacesChanged() {
let workspaceManager = global.workspace_manager; let workspaceManager = global.workspace_manager;
let oldNumWorkspaces = this._workspaces.length; let oldNumWorkspaces = this._workspaces.length;
@ -967,7 +936,7 @@ var WindowManager = class {
let appSwitchAction = new AppSwitchAction(); let appSwitchAction = new AppSwitchAction();
appSwitchAction.connect('activated', this._switchApp.bind(this)); appSwitchAction.connect('activated', this._switchApp.bind(this));
global.stage.add_action(appSwitchAction); global.stage.add_action_full('app-switch', Clutter.EventPhase.CAPTURE, appSwitchAction);
let mode = Shell.ActionMode.ALL & ~Shell.ActionMode.LOCK_SCREEN; let mode = Shell.ActionMode.ALL & ~Shell.ActionMode.LOCK_SCREEN;
let topDragAction = new EdgeDragAction.EdgeDragAction(St.Side.TOP, mode); let topDragAction = new EdgeDragAction.EdgeDragAction(St.Side.TOP, mode);
@ -985,7 +954,7 @@ var WindowManager = class {
global.display.connect('notify::focus-window', updateUnfullscreenGesture); global.display.connect('notify::focus-window', updateUnfullscreenGesture);
global.display.connect('in-fullscreen-changed', updateUnfullscreenGesture); global.display.connect('in-fullscreen-changed', updateUnfullscreenGesture);
global.stage.add_action(topDragAction); global.stage.add_action_full('unfullscreen', Clutter.EventPhase.CAPTURE, topDragAction);
this._workspaceAnimation = this._workspaceAnimation =
new WorkspaceAnimation.WorkspaceAnimationController(); new WorkspaceAnimation.WorkspaceAnimationController();
@ -1672,14 +1641,6 @@ var WindowManager = class {
this._switchInProgress = true; this._switchInProgress = true;
if (direction == Meta.MotionDirection.CONTEXT_SWITCH) {
Main.realmManager.animateSwitch(from, to, () => {
this._shellwm.completed_switch_workspace();
this._switchInProgress = false;
});
return;
}
this._workspaceAnimation.animateSwitch(from, to, direction, () => { this._workspaceAnimation.animateSwitch(from, to, direction, () => {
this._shellwm.completed_switch_workspace(); this._shellwm.completed_switch_workspace();
this._switchInProgress = false; this._switchInProgress = false;

View File

@ -1,12 +1,11 @@
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -* // -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*
/* exported WindowMenuManager */ /* exported WindowMenuManager */
const { GLib, Meta, Shell, St } = imports.gi; const { GLib, Meta, St } = imports.gi;
const BoxPointer = imports.ui.boxpointer; const BoxPointer = imports.ui.boxpointer;
const Main = imports.ui.main; const Main = imports.ui.main;
const PopupMenu = imports.ui.popupMenu; const PopupMenu = imports.ui.popupMenu;
const RealmWindowMenu = imports.ui.realms.realmWindowMenu;
var WindowMenu = class extends PopupMenu.PopupMenu { var WindowMenu = class extends PopupMenu.PopupMenu {
constructor(window, sourceActor) { constructor(window, sourceActor) {
@ -25,23 +24,6 @@ var WindowMenu = class extends PopupMenu.PopupMenu {
let item; let item;
let s = RealmWindowMenu.windowMenuDebugString(window);
this.addMenuItem(new PopupMenu.PopupSeparatorMenuItem(s));
item = RealmWindowMenu.enableFrameItem(window);
if (item) {
this.addMenuItem(item);
}
if (!window.is_on_all_workspaces()) {
let realmSubmenu = RealmWindowMenu.realmWindowMenu(window);
if (realmSubmenu) {
this.addMenuItem(realmSubmenu);
}
}
this.addMenuItem(new PopupMenu.PopupSeparatorMenuItem());
item = this.addAction(_('Hide'), () => { item = this.addAction(_('Hide'), () => {
window.minimize(); window.minimize();
}); });

View File

@ -122,10 +122,6 @@ class WorkspacesView extends WorkspacesViewBase {
this._updateWorkspacesId = this._updateWorkspacesId =
workspaceManager.connect('notify::n-workspaces', workspaceManager.connect('notify::n-workspaces',
this._updateWorkspaces.bind(this)); this._updateWorkspaces.bind(this));
this._contextSwitchedId =
workspaceManager.connect('context-switched',
this._refreshWorkspaces.bind(this));
this._reorderWorkspacesId = this._reorderWorkspacesId =
workspaceManager.connect('workspaces-reordered', () => { workspaceManager.connect('workspaces-reordered', () => {
this._workspaces.sort((a, b) => { this._workspaces.sort((a, b) => {
@ -454,13 +450,6 @@ class WorkspacesView extends WorkspacesViewBase {
} }
} }
_refreshWorkspaces() {
for (let ws = this._workspaces.pop(); ws; ws = this._workspaces.pop()) {
ws.destroy();
}
this._updateWorkspaces();
}
_updateWorkspaces() { _updateWorkspaces() {
let workspaceManager = global.workspace_manager; let workspaceManager = global.workspace_manager;
let newNumWorkspaces = workspaceManager.n_workspaces; let newNumWorkspaces = workspaceManager.n_workspaces;
@ -510,7 +499,6 @@ class WorkspacesView extends WorkspacesViewBase {
global.window_manager.disconnect(this._switchWorkspaceNotifyId); global.window_manager.disconnect(this._switchWorkspaceNotifyId);
let workspaceManager = global.workspace_manager; let workspaceManager = global.workspace_manager;
workspaceManager.disconnect(this._updateWorkspacesId); workspaceManager.disconnect(this._updateWorkspacesId);
workspaceManager.disconnect(this._contextSwitchedId);
workspaceManager.disconnect(this._reorderWorkspacesId); workspaceManager.disconnect(this._reorderWorkspacesId);
} }

View File

@ -1,5 +1,5 @@
project('gnome-shell', 'c', project('gnome-shell', 'c',
version: '41.1', version: '41.0',
meson_version: '>= 0.53.0', meson_version: '>= 0.53.0',
license: 'GPLv2+' license: 'GPLv2+'
) )
@ -8,10 +8,9 @@ split_version = meson.project_version().split('.')
# We depend on a specific version of the libmutter API. The mutter variants of # We depend on a specific version of the libmutter API. The mutter variants of
# the Cogl and Clutter libraries also use this API version. # the Cogl and Clutter libraries also use this API version.
# The API version is increased automatically each development cycle, # The API version is increased each development cycle,
# starting with 0 in 3.23.x # starting with 0 in 3.23.x
api_version = split_version[0].to_int() - 32 mutter_api_version = '10'
mutter_api_version = '@0@'.format(api_version)
clutter_pc = 'mutter-clutter-' + mutter_api_version clutter_pc = 'mutter-clutter-' + mutter_api_version
cogl_pc = 'mutter-cogl-' + mutter_api_version cogl_pc = 'mutter-cogl-' + mutter_api_version
@ -19,8 +18,8 @@ cogl_pango_pc = 'mutter-cogl-pango-' + mutter_api_version
libmutter_pc = 'libmutter-' + mutter_api_version libmutter_pc = 'libmutter-' + mutter_api_version
libmutter_test_pc = 'libmutter-test-' + mutter_api_version libmutter_test_pc = 'libmutter-test-' + mutter_api_version
#ecal_req = '>= 3.33.1' ecal_req = '>= 3.33.1'
#eds_req = '>= 3.33.1' eds_req = '>= 3.33.1'
gcr_req = '>= 3.7.5' gcr_req = '>= 3.7.5'
gio_req = '>= 2.56.0' gio_req = '>= 2.56.0'
gi_req = '>= 1.49.1' gi_req = '>= 1.49.1'
@ -72,8 +71,8 @@ else
endif endif
atk_bridge_dep = dependency('atk-bridge-2.0') atk_bridge_dep = dependency('atk-bridge-2.0')
#ecal_dep = dependency('libecal-2.0', version: ecal_req) ecal_dep = dependency('libecal-2.0', version: ecal_req)
#eds_dep = dependency('libedataserver-1.2', version: eds_req) eds_dep = dependency('libedataserver-1.2', version: eds_req)
gcr_dep = dependency('gcr-base-3', version: gcr_req) gcr_dep = dependency('gcr-base-3', version: gcr_req)
gdk_x11_dep = dependency('gdk-x11-3.0') gdk_x11_dep = dependency('gdk-x11-3.0')
gdk_pixbuf_dep = dependency('gdk-pixbuf-2.0') gdk_pixbuf_dep = dependency('gdk-pixbuf-2.0')
@ -139,7 +138,7 @@ endif
mutter_typelibdir = mutter_dep.get_pkgconfig_variable('typelibdir') mutter_typelibdir = mutter_dep.get_pkgconfig_variable('typelibdir')
python = find_program('python3') python = find_program('python3')
gjs = '/usr/bin/gjs' gjs = find_program('gjs')
cc = meson.get_compiler('c') cc = meson.get_compiler('c')

280
po/es.po
View File

@ -9,7 +9,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: gnome-shell.master\n" "Project-Id-Version: gnome-shell.master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell/issues\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell/issues\n"
"POT-Creation-Date: 2021-08-17 23:56+0000\n" "POT-Creation-Date: 2021-11-13 20:24+0000\n"
"PO-Revision-Date: 2021-08-25 16:54+0200\n" "PO-Revision-Date: 2021-08-25 16:54+0200\n"
"Last-Translator: Daniel Mustieles <daniel.mustieles@gmail.com>\n" "Last-Translator: Daniel Mustieles <daniel.mustieles@gmail.com>\n"
"Language-Team: Spanish - Spain <gnome-es-list@gnome.org>\n" "Language-Team: Spanish - Spain <gnome-es-list@gnome.org>\n"
@ -257,23 +257,11 @@ msgstr ""
"posible y un número muy grande representará una versión que todavía no " "posible y un número muy grande representará una versión que todavía no "
"existe. Este número muy grande se puede usar para desactivar el diálogo." "existe. Este número muy grande se puede usar para desactivar el diálogo."
#: data/org.gnome.shell.gschema.xml.in:109 #: data/org.gnome.shell.gschema.xml.in:133
msgid "Enable introspection API"
msgstr "Activar la introspección de API"
#: data/org.gnome.shell.gschema.xml.in:110
msgid ""
"Enables a D-Bus API that allows to introspect the application state of the "
"shell."
msgstr ""
"Activa una API de D-Bus que permite la introspección del estado de la "
"aplicación de la shell."
#: data/org.gnome.shell.gschema.xml.in:141
msgid "Layout of the app picker" msgid "Layout of the app picker"
msgstr "Distribución del selector de aplicaciones" msgstr "Distribución del selector de aplicaciones"
#: data/org.gnome.shell.gschema.xml.in:142 #: data/org.gnome.shell.gschema.xml.in:134
msgid "" msgid ""
"Layout of the app picker. Each entry in the array is a page. Pages are " "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 " "stored in the order they appear in GNOME Shell. Each page contains an "
@ -286,112 +274,112 @@ msgstr ""
"guardan los siguientes valores como 'data': • “position”:la posición del " "guardan los siguientes valores como 'data': • “position”:la posición del "
"icono de la aplicación en la página" "icono de la aplicación en la página"
#: data/org.gnome.shell.gschema.xml.in:157 #: data/org.gnome.shell.gschema.xml.in:149
msgid "Keybinding to open the application menu" msgid "Keybinding to open the application menu"
msgstr "Asociación de teclas para abrir el menú de la aplicación" msgstr "Asociación de teclas para abrir el menú de la aplicación"
#: data/org.gnome.shell.gschema.xml.in:158 #: data/org.gnome.shell.gschema.xml.in:150
msgid "Keybinding to open the application menu." msgid "Keybinding to open the application menu."
msgstr "Asociación de teclas para abrir el menú de la aplicación." msgstr "Asociación de teclas para abrir el menú de la aplicación."
#: data/org.gnome.shell.gschema.xml.in:164 #: data/org.gnome.shell.gschema.xml.in:156
#: data/org.gnome.shell.gschema.xml.in:171 #: data/org.gnome.shell.gschema.xml.in:163
msgid "Keybinding to shift between overview states" msgid "Keybinding to shift between overview states"
msgstr "Asociación de teclas para cambiar entre estados de la vista general" msgstr "Asociación de teclas para cambiar entre estados de la vista general"
#: data/org.gnome.shell.gschema.xml.in:165 #: data/org.gnome.shell.gschema.xml.in:157
msgid "Keybinding to shift between session, window picker and app grid" msgid "Keybinding to shift between session, window picker and app grid"
msgstr "" msgstr ""
"Asociación de teclas para cambiar entre sesión, selector de ventanas y " "Asociación de teclas para cambiar entre sesión, selector de ventanas y "
"cuadrícula de aplicaciones" "cuadrícula de aplicaciones"
#: data/org.gnome.shell.gschema.xml.in:172 #: data/org.gnome.shell.gschema.xml.in:164
msgid "Keybinding to shift between app grid, window picker and session" msgid "Keybinding to shift between app grid, window picker and session"
msgstr "" msgstr ""
"Asociación de teclas para cambiar entre cuadrícula de aplicaciones, selector " "Asociación de teclas para cambiar entre cuadrícula de aplicaciones, selector "
"de ventanas y sesión" "de ventanas y sesión"
#: data/org.gnome.shell.gschema.xml.in:178 #: data/org.gnome.shell.gschema.xml.in:170
msgid "Keybinding to open the “Show Applications” view" msgid "Keybinding to open the “Show Applications” view"
msgstr "Asociación de teclas para la vista «Mostrar aplicaciones»" msgstr "Asociación de teclas para la vista «Mostrar aplicaciones»"
#: data/org.gnome.shell.gschema.xml.in:179 #: data/org.gnome.shell.gschema.xml.in:171
msgid "" msgid ""
"Keybinding to open the “Show Applications” view of the Activities Overview." "Keybinding to open the “Show Applications” view of the Activities Overview."
msgstr "" msgstr ""
"Asociación de teclas para abrir la vista «Mostrar aplicaciones» de la vista " "Asociación de teclas para abrir la vista «Mostrar aplicaciones» de la vista "
"de actividades." "de actividades."
#: data/org.gnome.shell.gschema.xml.in:186 #: data/org.gnome.shell.gschema.xml.in:178
msgid "Keybinding to open the overview" msgid "Keybinding to open the overview"
msgstr "Asociación de teclas para la vista general" msgstr "Asociación de teclas para la vista general"
#: data/org.gnome.shell.gschema.xml.in:187 #: data/org.gnome.shell.gschema.xml.in:179
msgid "Keybinding to open the Activities Overview." msgid "Keybinding to open the Activities Overview."
msgstr "Asociación de teclas para abrir la Vista de actividades." msgstr "Asociación de teclas para abrir la Vista de actividades."
#: data/org.gnome.shell.gschema.xml.in:193 #: data/org.gnome.shell.gschema.xml.in:185
msgid "Keybinding to toggle the visibility of the notification list" msgid "Keybinding to toggle the visibility of the notification list"
msgstr "" msgstr ""
"Asociación de teclas para cambiar la visibilidad de la lista de " "Asociación de teclas para cambiar la visibilidad de la lista de "
"notificaciones" "notificaciones"
#: data/org.gnome.shell.gschema.xml.in:194 #: data/org.gnome.shell.gschema.xml.in:186
msgid "Keybinding to toggle the visibility of the notification list." msgid "Keybinding to toggle the visibility of the notification list."
msgstr "" msgstr ""
"Asociación de teclas para cambiar la visibilidad de la lista de " "Asociación de teclas para cambiar la visibilidad de la lista de "
"notificaciones." "notificaciones."
#: data/org.gnome.shell.gschema.xml.in:200 #: data/org.gnome.shell.gschema.xml.in:192
msgid "Keybinding to focus the active notification" msgid "Keybinding to focus the active notification"
msgstr "Asociación de teclas para dar el foco a la notificación activa" msgstr "Asociación de teclas para dar el foco a la notificación activa"
#: data/org.gnome.shell.gschema.xml.in:201 #: data/org.gnome.shell.gschema.xml.in:193
msgid "Keybinding to focus the active notification." msgid "Keybinding to focus the active notification."
msgstr "Asociación de teclas para dar el foco a la notificación activa." msgstr "Asociación de teclas para dar el foco a la notificación activa."
#: data/org.gnome.shell.gschema.xml.in:207 #: data/org.gnome.shell.gschema.xml.in:199
msgid "Switch to application 1" msgid "Switch to application 1"
msgstr "Cambiar a la aplicación 1" msgstr "Cambiar a la aplicación 1"
#: data/org.gnome.shell.gschema.xml.in:211 #: data/org.gnome.shell.gschema.xml.in:203
msgid "Switch to application 2" msgid "Switch to application 2"
msgstr "Cambiar a la aplicación 2" msgstr "Cambiar a la aplicación 2"
#: data/org.gnome.shell.gschema.xml.in:215 #: data/org.gnome.shell.gschema.xml.in:207
msgid "Switch to application 3" msgid "Switch to application 3"
msgstr "Cambiar a la aplicación 3" msgstr "Cambiar a la aplicación 3"
#: data/org.gnome.shell.gschema.xml.in:219 #: data/org.gnome.shell.gschema.xml.in:211
msgid "Switch to application 4" msgid "Switch to application 4"
msgstr "Cambiar a la aplicación 4" msgstr "Cambiar a la aplicación 4"
#: data/org.gnome.shell.gschema.xml.in:223 #: data/org.gnome.shell.gschema.xml.in:215
msgid "Switch to application 5" msgid "Switch to application 5"
msgstr "Cambiar a la aplicación 5" msgstr "Cambiar a la aplicación 5"
#: data/org.gnome.shell.gschema.xml.in:227 #: data/org.gnome.shell.gschema.xml.in:219
msgid "Switch to application 6" msgid "Switch to application 6"
msgstr "Cambiar a la aplicación 6" msgstr "Cambiar a la aplicación 6"
#: data/org.gnome.shell.gschema.xml.in:231 #: data/org.gnome.shell.gschema.xml.in:223
msgid "Switch to application 7" msgid "Switch to application 7"
msgstr "Cambiar a la aplicación 7" msgstr "Cambiar a la aplicación 7"
#: data/org.gnome.shell.gschema.xml.in:235 #: data/org.gnome.shell.gschema.xml.in:227
msgid "Switch to application 8" msgid "Switch to application 8"
msgstr "Cambiar a la aplicación 8" msgstr "Cambiar a la aplicación 8"
#: data/org.gnome.shell.gschema.xml.in:239 #: data/org.gnome.shell.gschema.xml.in:231
msgid "Switch to application 9" msgid "Switch to application 9"
msgstr "Cambiar a la aplicación 9" msgstr "Cambiar a la aplicación 9"
#: data/org.gnome.shell.gschema.xml.in:248 #: data/org.gnome.shell.gschema.xml.in:240
#: data/org.gnome.shell.gschema.xml.in:275 #: data/org.gnome.shell.gschema.xml.in:267
msgid "Limit switcher to current workspace." msgid "Limit switcher to current workspace."
msgstr "Limitar el intercambiador al área de trabajo actual." msgstr "Limitar el intercambiador al área de trabajo actual."
#: data/org.gnome.shell.gschema.xml.in:249 #: data/org.gnome.shell.gschema.xml.in:241
msgid "" msgid ""
"If true, only applications that have windows on the current workspace are " "If true, only applications that have windows on the current workspace are "
"shown in the switcher. Otherwise, all applications are included." "shown in the switcher. Otherwise, all applications are included."
@ -400,11 +388,11 @@ msgstr ""
"trabajo actual se muestran en el selector. Si no, se incluyen todas las " "trabajo actual se muestran en el selector. Si no, se incluyen todas las "
"aplicaciones." "aplicaciones."
#: data/org.gnome.shell.gschema.xml.in:266 #: data/org.gnome.shell.gschema.xml.in:258
msgid "The application icon mode." msgid "The application icon mode."
msgstr "El modo de icono de la aplicación." msgstr "El modo de icono de la aplicación."
#: data/org.gnome.shell.gschema.xml.in:267 #: data/org.gnome.shell.gschema.xml.in:259
msgid "" msgid ""
"Configures how the windows are shown in the switcher. Valid possibilities " "Configures how the windows are shown in the switcher. Valid possibilities "
"are “thumbnail-only” (shows a thumbnail of the window), “app-icon-" "are “thumbnail-only” (shows a thumbnail of the window), “app-icon-"
@ -414,7 +402,7 @@ msgstr ""
"son «thumbnail-only» (muestra una miniatura de la ventana), «app-icon-" "son «thumbnail-only» (muestra una miniatura de la ventana), «app-icon-"
"only» (sólo muestra el icono de la aplicación) «both»." "only» (sólo muestra el icono de la aplicación) «both»."
#: data/org.gnome.shell.gschema.xml.in:276 #: data/org.gnome.shell.gschema.xml.in:268
msgid "" msgid ""
"If true, only windows from the current workspace are shown in the switcher. " "If true, only windows from the current workspace are shown in the switcher. "
"Otherwise, all windows are included." "Otherwise, all windows are included."
@ -422,59 +410,59 @@ msgstr ""
"Si es cierto, sólo se muestran en el selector las ventanas del área de " "Si es cierto, sólo se muestran en el selector las ventanas del área de "
"trabajo actual. Si no, se incluyen todas las ventanas." "trabajo actual. Si no, se incluyen todas las ventanas."
#: data/org.gnome.shell.gschema.xml.in:286 #: data/org.gnome.shell.gschema.xml.in:278
msgid "Locations" msgid "Locations"
msgstr "Ubicaciones" msgstr "Ubicaciones"
#: data/org.gnome.shell.gschema.xml.in:287 #: data/org.gnome.shell.gschema.xml.in:279
msgid "The locations to show in world clocks" msgid "The locations to show in world clocks"
msgstr "Las ubicaciones que mostrar en los relojes del mundo" msgstr "Las ubicaciones que mostrar en los relojes del mundo"
#: data/org.gnome.shell.gschema.xml.in:297 #: data/org.gnome.shell.gschema.xml.in:289
msgid "Automatic location" msgid "Automatic location"
msgstr "Ubicación automática" msgstr "Ubicación automática"
#: data/org.gnome.shell.gschema.xml.in:298 #: data/org.gnome.shell.gschema.xml.in:290
msgid "Whether to fetch the current location or not" msgid "Whether to fetch the current location or not"
msgstr "Indica si se debe o no obtener la ubicación actual" msgstr "Indica si se debe o no obtener la ubicación actual"
#: data/org.gnome.shell.gschema.xml.in:305 #: data/org.gnome.shell.gschema.xml.in:297
msgid "Location" msgid "Location"
msgstr "Ubicación" msgstr "Ubicación"
#: data/org.gnome.shell.gschema.xml.in:306 #: data/org.gnome.shell.gschema.xml.in:298
msgid "The location for which to show a forecast" msgid "The location for which to show a forecast"
msgstr "La ubicación para la que mostrar la predicción" msgstr "La ubicación para la que mostrar la predicción"
#: data/org.gnome.shell.gschema.xml.in:318 #: data/org.gnome.shell.gschema.xml.in:310
msgid "Attach modal dialog to the parent window" msgid "Attach modal dialog to the parent window"
msgstr "Acoplar un diálogo modal a la ventana padre" msgstr "Acoplar un diálogo modal a la ventana padre"
#: data/org.gnome.shell.gschema.xml.in:319 #: data/org.gnome.shell.gschema.xml.in:311
#: data/org.gnome.shell.gschema.xml.in:320
#: data/org.gnome.shell.gschema.xml.in:328 #: data/org.gnome.shell.gschema.xml.in:328
#: data/org.gnome.shell.gschema.xml.in:336 #: data/org.gnome.shell.gschema.xml.in:336
#: data/org.gnome.shell.gschema.xml.in:344 #: data/org.gnome.shell.gschema.xml.in:344
#: data/org.gnome.shell.gschema.xml.in:352
msgid "" msgid ""
"This key overrides the key in org.gnome.mutter when running GNOME Shell." "This key overrides the key in org.gnome.mutter when running GNOME Shell."
msgstr "" msgstr ""
"Esta clave sobrescribe la clave en org.gnome.mutter al ejecutar GNOME Shell." "Esta clave sobrescribe la clave en org.gnome.mutter al ejecutar GNOME Shell."
#: data/org.gnome.shell.gschema.xml.in:327 #: data/org.gnome.shell.gschema.xml.in:319
msgid "Enable edge tiling when dropping windows on screen edges" msgid "Enable edge tiling when dropping windows on screen edges"
msgstr "" msgstr ""
"Activar el mosaico en los bordes al arrastrar ventanas a los bordes de la " "Activar el mosaico en los bordes al arrastrar ventanas a los bordes de la "
"ventana" "ventana"
#: data/org.gnome.shell.gschema.xml.in:335 #: data/org.gnome.shell.gschema.xml.in:327
msgid "Workspaces are managed dynamically" msgid "Workspaces are managed dynamically"
msgstr "Las áreas de trabajo se gestionan dinámicamente" msgstr "Las áreas de trabajo se gestionan dinámicamente"
#: data/org.gnome.shell.gschema.xml.in:343 #: data/org.gnome.shell.gschema.xml.in:335
msgid "Workspaces only on primary monitor" msgid "Workspaces only on primary monitor"
msgstr "Áreas de trabajo solo en la pantalla principal" msgstr "Áreas de trabajo solo en la pantalla principal"
#: data/org.gnome.shell.gschema.xml.in:351 #: data/org.gnome.shell.gschema.xml.in:343
msgid "Delay focus changes in mouse mode until the pointer stops moving" msgid "Delay focus changes in mouse mode until the pointer stops moving"
msgstr "" msgstr ""
"Retardo al cambiar el foco del ratón hasta que el puntero deja de moverse" "Retardo al cambiar el foco del ratón hasta que el puntero deja de moverse"
@ -510,18 +498,18 @@ msgid "Visit extension homepage"
msgstr "Visitar la página web de la extensión" msgstr "Visitar la página web de la extensión"
#: js/gdm/authPrompt.js:141 js/ui/audioDeviceSelection.js:61 #: js/gdm/authPrompt.js:141 js/ui/audioDeviceSelection.js:61
#: js/ui/components/networkAgent.js:111 js/ui/components/polkitAgent.js:138 #: js/ui/components/networkAgent.js:110 js/ui/components/polkitAgent.js:138
#: js/ui/endSessionDialog.js:438 js/ui/extensionDownloader.js:190 #: js/ui/endSessionDialog.js:438 js/ui/extensionDownloader.js:228
#: js/ui/shellMountOperation.js:376 js/ui/shellMountOperation.js:386 #: js/ui/shellMountOperation.js:376 js/ui/shellMountOperation.js:386
#: js/ui/status/network.js:978 subprojects/extensions-app/js/main.js:183 #: js/ui/status/network.js:978 subprojects/extensions-app/js/main.js:183
msgid "Cancel" msgid "Cancel"
msgstr "Cancelar" msgstr "Cancelar"
#. Cisco LEAP #. Cisco LEAP
#: js/gdm/authPrompt.js:285 js/ui/components/networkAgent.js:210 #: js/gdm/authPrompt.js:285 js/ui/components/networkAgent.js:209
#: js/ui/components/networkAgent.js:226 js/ui/components/networkAgent.js:250 #: js/ui/components/networkAgent.js:225 js/ui/components/networkAgent.js:249
#: js/ui/components/networkAgent.js:271 js/ui/components/networkAgent.js:291 #: js/ui/components/networkAgent.js:270 js/ui/components/networkAgent.js:290
#: js/ui/components/networkAgent.js:301 js/ui/components/polkitAgent.js:275 #: js/ui/components/networkAgent.js:300 js/ui/components/polkitAgent.js:275
#: js/ui/shellMountOperation.js:326 #: js/ui/shellMountOperation.js:326
msgid "Password" msgid "Password"
msgstr "Contraseña" msgstr "Contraseña"
@ -544,8 +532,8 @@ msgstr "(ej., usuario o %s)"
#. TTLS and PEAP are actually much more complicated, but this complication #. TTLS and PEAP are actually much more complicated, but this complication
#. is not visible here since we only care about phase2 authentication #. is not visible here since we only care about phase2 authentication
#. (and don't even care of which one) #. (and don't even care of which one)
#: js/gdm/loginDialog.js:926 js/ui/components/networkAgent.js:246 #: js/gdm/loginDialog.js:926 js/ui/components/networkAgent.js:245
#: js/ui/components/networkAgent.js:269 js/ui/components/networkAgent.js:287 #: js/ui/components/networkAgent.js:268 js/ui/components/networkAgent.js:286
msgid "Username" msgid "Username"
msgstr "Nombre de usuario" msgstr "Nombre de usuario"
@ -650,65 +638,65 @@ msgctxt "search-result"
msgid "Lock Screen Rotation" msgid "Lock Screen Rotation"
msgstr "Bloquear la rotación de la pantalla" msgstr "Bloquear la rotación de la pantalla"
#: js/misc/util.js:120 #: js/misc/util.js:121
msgid "Command not found" msgid "Command not found"
msgstr "Comando no encontrado" msgstr "Comando no encontrado"
#. Replace "Error invoking GLib.shell_parse_argv: " with #. Replace "Error invoking GLib.shell_parse_argv: " with
#. something nicer #. something nicer
#: js/misc/util.js:156 #: js/misc/util.js:157
msgid "Could not parse command:" msgid "Could not parse command:"
msgstr "No se pudo analizar el comando:" msgstr "No se pudo analizar el comando:"
#: js/misc/util.js:164 #: js/misc/util.js:165
#, javascript-format #, javascript-format
msgid "Execution of “%s” failed:" msgid "Execution of “%s” failed:"
msgstr "Falló la ejecución de «%s»:" msgstr "Falló la ejecución de «%s»:"
#: js/misc/util.js:181 #: js/misc/util.js:182
msgid "Just now" msgid "Just now"
msgstr "Ahora mismo" msgstr "Ahora mismo"
#: js/misc/util.js:183 #: js/misc/util.js:184
#, javascript-format #, javascript-format
msgid "%d minute ago" msgid "%d minute ago"
msgid_plural "%d minutes ago" msgid_plural "%d minutes ago"
msgstr[0] "Hace %d minuto" msgstr[0] "Hace %d minuto"
msgstr[1] "Hace %d minutos" msgstr[1] "Hace %d minutos"
#: js/misc/util.js:187 #: js/misc/util.js:188
#, javascript-format #, javascript-format
msgid "%d hour ago" msgid "%d hour ago"
msgid_plural "%d hours ago" msgid_plural "%d hours ago"
msgstr[0] "Hace %d hora" msgstr[0] "Hace %d hora"
msgstr[1] "Hace %d horas" msgstr[1] "Hace %d horas"
#: js/misc/util.js:191 js/ui/dateMenu.js:162 #: js/misc/util.js:192 js/ui/dateMenu.js:162
msgid "Yesterday" msgid "Yesterday"
msgstr "Ayer" msgstr "Ayer"
#: js/misc/util.js:193 #: js/misc/util.js:194
#, javascript-format #, javascript-format
msgid "%d day ago" msgid "%d day ago"
msgid_plural "%d days ago" msgid_plural "%d days ago"
msgstr[0] "Hace %d día" msgstr[0] "Hace %d día"
msgstr[1] "Hace %d días" msgstr[1] "Hace %d días"
#: js/misc/util.js:197 #: js/misc/util.js:198
#, javascript-format #, javascript-format
msgid "%d week ago" msgid "%d week ago"
msgid_plural "%d weeks ago" msgid_plural "%d weeks ago"
msgstr[0] "Hace %d semana" msgstr[0] "Hace %d semana"
msgstr[1] "Hace %d semanas" msgstr[1] "Hace %d semanas"
#: js/misc/util.js:201 #: js/misc/util.js:202
#, javascript-format #, javascript-format
msgid "%d month ago" msgid "%d month ago"
msgid_plural "%d months ago" msgid_plural "%d months ago"
msgstr[0] "Hace %d mes" msgstr[0] "Hace %d mes"
msgstr[1] "Hace %d meses" msgstr[1] "Hace %d meses"
#: js/misc/util.js:204 #: js/misc/util.js:205
#, javascript-format #, javascript-format
msgid "%d year ago" msgid "%d year ago"
msgid_plural "%d years ago" msgid_plural "%d years ago"
@ -716,20 +704,20 @@ msgstr[0] "Hace %d año"
msgstr[1] "Hace %d años" msgstr[1] "Hace %d años"
#. Translators: Time in 24h format #. Translators: Time in 24h format
#: js/misc/util.js:237 #: js/misc/util.js:238
msgid "%H%M" msgid "%H%M"
msgstr "%H%M" msgstr "%H%M"
#. Translators: this is the word "Yesterday" followed by a #. Translators: this is the word "Yesterday" followed by a
#. time string in 24h format. i.e. "Yesterday, 14:30" #. time string in 24h format. i.e. "Yesterday, 14:30"
#: js/misc/util.js:243 #: js/misc/util.js:244
#, no-c-format #, no-c-format
msgid "Yesterday, %H%M" msgid "Yesterday, %H%M"
msgstr "Ayer, %H%M" msgstr "Ayer, %H%M"
#. Translators: this is the week day name followed by a time #. Translators: this is the week day name followed by a time
#. string in 24h format. i.e. "Monday, 14:30" #. string in 24h format. i.e. "Monday, 14:30"
#: js/misc/util.js:249 #: js/misc/util.js:250
#, no-c-format #, no-c-format
msgid "%A, %H%M" msgid "%A, %H%M"
msgstr "%A, %H%M" msgstr "%A, %H%M"
@ -737,7 +725,7 @@ msgstr "%A, %H%M"
#. Translators: this is the month name and day number #. Translators: this is the month name and day number
#. followed by a time string in 24h format. #. followed by a time string in 24h format.
#. i.e. "May 25, 14:30" #. i.e. "May 25, 14:30"
#: js/misc/util.js:255 #: js/misc/util.js:256
#, no-c-format #, no-c-format
msgid "%B %-d, %H%M" msgid "%B %-d, %H%M"
msgstr "%d de %B, %H%M" msgstr "%d de %B, %H%M"
@ -745,7 +733,7 @@ msgstr "%d de %B, %H%M"
#. Translators: this is the month name, day number, year #. Translators: this is the month name, day number, year
#. number followed by a time string in 24h format. #. number followed by a time string in 24h format.
#. i.e. "May 25 2012, 14:30" #. i.e. "May 25 2012, 14:30"
#: js/misc/util.js:261 #: js/misc/util.js:262
#, no-c-format #, no-c-format
msgid "%B %-d %Y, %H%M" msgid "%B %-d %Y, %H%M"
msgstr "%d de %B de %Y, %H%M" msgstr "%d de %B de %Y, %H%M"
@ -753,20 +741,20 @@ msgstr "%d de %B de %Y, %H%M"
#. Show only the time if date is on today #. Show only the time if date is on today
#. eslint-disable-line no-lonely-if #. eslint-disable-line no-lonely-if
#. Translators: Time in 12h format #. Translators: Time in 12h format
#: js/misc/util.js:266 #: js/misc/util.js:267
msgid "%l%M %p" msgid "%l%M %p"
msgstr "%l%M %p" msgstr "%l%M %p"
#. Translators: this is the word "Yesterday" followed by a #. Translators: this is the word "Yesterday" followed by a
#. time string in 12h format. i.e. "Yesterday, 2:30 pm" #. time string in 12h format. i.e. "Yesterday, 2:30 pm"
#: js/misc/util.js:272 #: js/misc/util.js:273
#, no-c-format #, no-c-format
msgid "Yesterday, %l%M %p" msgid "Yesterday, %l%M %p"
msgstr "Ayer a las %l%M %p" msgstr "Ayer a las %l%M %p"
#. Translators: this is the week day name followed by a time #. Translators: this is the week day name followed by a time
#. string in 12h format. i.e. "Monday, 2:30 pm" #. string in 12h format. i.e. "Monday, 2:30 pm"
#: js/misc/util.js:278 #: js/misc/util.js:279
#, no-c-format #, no-c-format
msgid "%A, %l%M %p" msgid "%A, %l%M %p"
msgstr "%A, %l%M %p" msgstr "%A, %l%M %p"
@ -774,7 +762,7 @@ msgstr "%A, %l%M %p"
#. Translators: this is the month name and day number #. Translators: this is the month name and day number
#. followed by a time string in 12h format. #. followed by a time string in 12h format.
#. i.e. "May 25, 2:30 pm" #. i.e. "May 25, 2:30 pm"
#: js/misc/util.js:284 #: js/misc/util.js:285
#, no-c-format #, no-c-format
msgid "%B %-d, %l%M %p" msgid "%B %-d, %l%M %p"
msgstr "%d de %B, %l%M %p" msgstr "%d de %B, %l%M %p"
@ -782,17 +770,17 @@ msgstr "%d de %B, %l%M %p"
#. Translators: this is the month name, day number, year #. Translators: this is the month name, day number, year
#. number followed by a time string in 12h format. #. number followed by a time string in 12h format.
#. i.e. "May 25 2012, 2:30 pm" #. i.e. "May 25 2012, 2:30 pm"
#: js/misc/util.js:290 #: js/misc/util.js:291
#, no-c-format #, no-c-format
msgid "%B %-d %Y, %l%M %p" msgid "%B %-d %Y, %l%M %p"
msgstr "%d de %B de %Y, %l%M %p" msgstr "%d de %B de %Y, %l%M %p"
#. TRANSLATORS: this is the title of the wifi captive portal login window #. TRANSLATORS: this is the title of the wifi captive portal login window
#: js/portalHelper/main.js:42 #: js/portalHelper/main.js:49
msgid "Hotspot Login" msgid "Hotspot Login"
msgstr "Inicio de sesión en el punto de acceso" msgstr "Inicio de sesión en el punto de acceso"
#: js/portalHelper/main.js:88 #: js/portalHelper/main.js:95
msgid "" msgid ""
"Your connection to this hotspot login is not secure. Passwords or other " "Your connection to this hotspot login is not secure. Passwords or other "
"information you enter on this page can be viewed by people nearby." "information you enter on this page can be viewed by people nearby."
@ -1037,39 +1025,39 @@ msgstr "La versión de udisks instalada no soporta la configuración PIM"
msgid "Open with %s" msgid "Open with %s"
msgstr "Abrir con %s" msgstr "Abrir con %s"
#: js/ui/components/networkAgent.js:93 #: js/ui/components/networkAgent.js:92
msgid "" msgid ""
"Alternatively you can connect by pushing the “WPS” button on your router." "Alternatively you can connect by pushing the “WPS” button on your router."
msgstr "" msgstr ""
"Alternativamente puede conectarse pulsando el botón «WPS» de su router." "Alternativamente puede conectarse pulsando el botón «WPS» de su router."
#: js/ui/components/networkAgent.js:105 js/ui/status/network.js:258 #: js/ui/components/networkAgent.js:104 js/ui/status/network.js:258
#: js/ui/status/network.js:349 js/ui/status/network.js:981 #: js/ui/status/network.js:349 js/ui/status/network.js:981
msgid "Connect" msgid "Connect"
msgstr "Conectar" msgstr "Conectar"
#: js/ui/components/networkAgent.js:216 #: js/ui/components/networkAgent.js:215
msgid "Key" msgid "Key"
msgstr "Clave" msgstr "Clave"
#: js/ui/components/networkAgent.js:254 js/ui/components/networkAgent.js:277 #: js/ui/components/networkAgent.js:253 js/ui/components/networkAgent.js:276
msgid "Private key password" msgid "Private key password"
msgstr "Contraseña de la clave privada" msgstr "Contraseña de la clave privada"
#: js/ui/components/networkAgent.js:275 #: js/ui/components/networkAgent.js:274
msgid "Identity" msgid "Identity"
msgstr "Identidad" msgstr "Identidad"
#: js/ui/components/networkAgent.js:289 #: js/ui/components/networkAgent.js:288
msgid "Service" msgid "Service"
msgstr "Servicio" msgstr "Servicio"
#: js/ui/components/networkAgent.js:318 js/ui/components/networkAgent.js:346 #: js/ui/components/networkAgent.js:317 js/ui/components/networkAgent.js:345
#: js/ui/components/networkAgent.js:679 js/ui/components/networkAgent.js:700 #: js/ui/components/networkAgent.js:679 js/ui/components/networkAgent.js:700
msgid "Authentication required" msgid "Authentication required"
msgstr "Autenticación requerida" msgstr "Autenticación requerida"
#: js/ui/components/networkAgent.js:319 js/ui/components/networkAgent.js:680 #: js/ui/components/networkAgent.js:318 js/ui/components/networkAgent.js:680
#, javascript-format #, javascript-format
msgid "" msgid ""
"Passwords or encryption keys are required to access the wireless network " "Passwords or encryption keys are required to access the wireless network "
@ -1078,31 +1066,31 @@ msgstr ""
"Se necesitan contraseñas o claves de cifrado para acceder a la red " "Se necesitan contraseñas o claves de cifrado para acceder a la red "
"inalámbrica «%s»." "inalámbrica «%s»."
#: js/ui/components/networkAgent.js:323 js/ui/components/networkAgent.js:684 #: js/ui/components/networkAgent.js:322 js/ui/components/networkAgent.js:684
msgid "Wired 802.1X authentication" msgid "Wired 802.1X authentication"
msgstr "Autenticación 802.1X cableada" msgstr "Autenticación 802.1X cableada"
#: js/ui/components/networkAgent.js:325 #: js/ui/components/networkAgent.js:324
msgid "Network name" msgid "Network name"
msgstr "Nombre de la red" msgstr "Nombre de la red"
#: js/ui/components/networkAgent.js:330 js/ui/components/networkAgent.js:688 #: js/ui/components/networkAgent.js:329 js/ui/components/networkAgent.js:688
msgid "DSL authentication" msgid "DSL authentication"
msgstr "Autenticación DSL" msgstr "Autenticación DSL"
#: js/ui/components/networkAgent.js:337 js/ui/components/networkAgent.js:693 #: js/ui/components/networkAgent.js:336 js/ui/components/networkAgent.js:693
msgid "PIN code required" msgid "PIN code required"
msgstr "Código PIN requerido" msgstr "Código PIN requerido"
#: js/ui/components/networkAgent.js:338 js/ui/components/networkAgent.js:694 #: js/ui/components/networkAgent.js:337 js/ui/components/networkAgent.js:694
msgid "PIN code is needed for the mobile broadband device" msgid "PIN code is needed for the mobile broadband device"
msgstr "Se necesita un código PIN para el dispositivo de banda ancha móvil" msgstr "Se necesita un código PIN para el dispositivo de banda ancha móvil"
#: js/ui/components/networkAgent.js:339 #: js/ui/components/networkAgent.js:338
msgid "PIN" msgid "PIN"
msgstr "PIN" msgstr "PIN"
#: js/ui/components/networkAgent.js:347 js/ui/components/networkAgent.js:685 #: js/ui/components/networkAgent.js:346 js/ui/components/networkAgent.js:685
#: js/ui/components/networkAgent.js:689 js/ui/components/networkAgent.js:701 #: js/ui/components/networkAgent.js:689 js/ui/components/networkAgent.js:701
#: js/ui/components/networkAgent.js:705 #: js/ui/components/networkAgent.js:705
#, javascript-format #, javascript-format
@ -1394,24 +1382,24 @@ msgstr "%s (remoto)"
msgid "%s (console)" msgid "%s (console)"
msgstr "%s (consola)" msgstr "%s (consola)"
#: js/ui/extensionDownloader.js:194 #: js/ui/extensionDownloader.js:232
msgid "Install" msgid "Install"
msgstr "Instalar" msgstr "Instalar"
#: js/ui/extensionDownloader.js:200 #: js/ui/extensionDownloader.js:238
msgid "Install Extension" msgid "Install Extension"
msgstr "Instalar extensión" msgstr "Instalar extensión"
#: js/ui/extensionDownloader.js:201 #: js/ui/extensionDownloader.js:239
#, javascript-format #, javascript-format
msgid "Download and install “%s” from extensions.gnome.org?" msgid "Download and install “%s” from extensions.gnome.org?"
msgstr "¿Descargar e instalar «%s» desde extensions.gnome.org?" msgstr "¿Descargar e instalar «%s» desde extensions.gnome.org?"
#: js/ui/extensionSystem.js:253 #: js/ui/extensionSystem.js:266
msgid "Extension Updates Available" msgid "Extension Updates Available"
msgstr "Actualizaciones de extensiones disponibles" msgstr "Actualizaciones de extensiones disponibles"
#: js/ui/extensionSystem.js:254 #: js/ui/extensionSystem.js:267
msgid "Extension updates are ready to be installed." msgid "Extension updates are ready to be installed."
msgstr "Las actualizaciones de las extensiones están listas para instalarse." msgstr "Las actualizaciones de las extensiones están listas para instalarse."
@ -1456,8 +1444,8 @@ msgid ""
"You just held down the Shift key for 8 seconds. This is the shortcut for the " "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." "Slow Keys feature, which affects the way your keyboard works."
msgstr "" msgstr ""
"Acaba de pulsar la tecla «Mayúsculas» durante 8 segundos. Ésta es la " "Acaba de pulsar la tecla «Mayúsculas» durante 8 segundos. Ésto es el "
"combinación de teclas para la característica «Teclas lentas», que afecta la " "atajo del teclado para la característica «Teclas lentas», que afecta la "
"forma en que funciona el teclado." "forma en que funciona el teclado."
#: js/ui/kbdA11yDialog.js:40 #: js/ui/kbdA11yDialog.js:40
@ -1508,7 +1496,7 @@ msgstr "Apagar"
msgid "Leave Off" msgid "Leave Off"
msgstr "Dejar apagado" msgstr "Dejar apagado"
#: js/ui/keyboard.js:227 #: js/ui/keyboard.js:226
msgid "Region & Language Settings" msgid "Region & Language Settings"
msgstr "Configuración de región e idioma" msgstr "Configuración de región e idioma"
@ -1561,11 +1549,11 @@ msgstr "Ver fuente"
msgid "Web Page" msgid "Web Page"
msgstr "Página web" msgstr "Página web"
#: js/ui/main.js:294 #: js/ui/main.js:290
msgid "Logged in as a privileged user" msgid "Logged in as a privileged user"
msgstr "Sesión iniciada como usuario con privilegios" msgstr "Sesión iniciada como usuario con privilegios"
#: js/ui/main.js:295 #: js/ui/main.js:291
msgid "" msgid ""
"Running a session as a privileged user should be avoided for security " "Running a session as a privileged user should be avoided for security "
"reasons. If possible, you should log in as a normal user." "reasons. If possible, you should log in as a normal user."
@ -1573,15 +1561,15 @@ msgstr ""
"Se debe evitar ejecutar una sesión como usuario con privilegios por motivos " "Se debe evitar ejecutar una sesión como usuario con privilegios por motivos "
"de seguridad. Si es posible, inicie sesión como un usuario normal." "de seguridad. Si es posible, inicie sesión como un usuario normal."
#: js/ui/main.js:344 #: js/ui/main.js:340
msgid "Screen Lock disabled" msgid "Screen Lock disabled"
msgstr "Pantalla de bloqueo desactivada" msgstr "Pantalla de bloqueo desactivada"
#: js/ui/main.js:345 #: js/ui/main.js:341
msgid "Screen Locking requires the GNOME display manager." msgid "Screen Locking requires the GNOME display manager."
msgstr "La pantalla de bloqueo necesita el gestor de pantallas de GNOME." msgstr "La pantalla de bloqueo necesita el gestor de pantallas de GNOME."
#: js/ui/messageTray.js:1440 #: js/ui/messageTray.js:1443
msgid "System Information" msgid "System Information"
msgstr "Información del sistema" msgstr "Información del sistema"
@ -1615,47 +1603,47 @@ msgstr "Deshacer"
msgid "Overview" msgid "Overview"
msgstr "Vista general" msgstr "Vista general"
#: js/ui/padOsd.js:96 #: js/ui/padOsd.js:95
msgid "New shortcut…" msgid "New shortcut…"
msgstr "Atajo nuevo…" msgstr "Atajo nuevo…"
#: js/ui/padOsd.js:143 #: js/ui/padOsd.js:142
msgid "Application defined" msgid "Application defined"
msgstr "Aplicación definida" msgstr "Aplicación definida"
#: js/ui/padOsd.js:144 #: js/ui/padOsd.js:143
msgid "Show on-screen help" msgid "Show on-screen help"
msgstr "Mostrar la ayuda en pantalla" msgstr "Mostrar la ayuda en pantalla"
#: js/ui/padOsd.js:145 #: js/ui/padOsd.js:144
msgid "Switch monitor" msgid "Switch monitor"
msgstr "Cambiar monitor" msgstr "Cambiar monitor"
#: js/ui/padOsd.js:146 #: js/ui/padOsd.js:145
msgid "Assign keystroke" msgid "Assign keystroke"
msgstr "Asignar pulsación" msgstr "Asignar pulsación"
#: js/ui/padOsd.js:212 #: js/ui/padOsd.js:211
msgid "Done" msgid "Done"
msgstr "Hecho" msgstr "Hecho"
#: js/ui/padOsd.js:718 #: js/ui/padOsd.js:716
msgid "Edit…" msgid "Edit…"
msgstr "Editar…" msgstr "Editar…"
#: js/ui/padOsd.js:760 js/ui/padOsd.js:877 #: js/ui/padOsd.js:758 js/ui/padOsd.js:875
msgid "None" msgid "None"
msgstr "Nada" msgstr "Nada"
#: js/ui/padOsd.js:831 #: js/ui/padOsd.js:829
msgid "Press a button to configure" msgid "Press a button to configure"
msgstr "Pulse un botón para configurar" msgstr "Pulse un botón para configurar"
#: js/ui/padOsd.js:832 #: js/ui/padOsd.js:830
msgid "Press Esc to exit" msgid "Press Esc to exit"
msgstr "Pulse Esc para salir" msgstr "Pulse Esc para salir"
#: js/ui/padOsd.js:835 #: js/ui/padOsd.js:833
msgid "Press any key to exit" msgid "Press any key to exit"
msgstr "Pulse cualquier tecla para salir" msgstr "Pulse cualquier tecla para salir"
@ -1665,12 +1653,12 @@ msgstr "Pulse cualquier tecla para salir"
msgid "Activities" msgid "Activities"
msgstr "Actividades" msgstr "Actividades"
#: js/ui/panel.js:542 #: js/ui/panel.js:556
msgctxt "System menu in the top bar" msgctxt "System menu in the top bar"
msgid "System" msgid "System"
msgstr "Sistema" msgstr "Sistema"
#: js/ui/panel.js:658 #: js/ui/panel.js:674
msgid "Top Bar" msgid "Top Bar"
msgstr "Barra superior" msgstr "Barra superior"
@ -1709,7 +1697,7 @@ msgstr "No se pudo bloquear"
msgid "Lock was blocked by an application" msgid "Lock was blocked by an application"
msgstr "Una aplicación impidió el bloqueo" msgstr "Una aplicación impidió el bloqueo"
#: js/ui/screenshot.js:141 #: js/ui/screenshot.js:155
msgid "Screenshot taken" msgid "Screenshot taken"
msgstr "Captura de pantalla realizada" msgstr "Captura de pantalla realizada"
@ -2408,13 +2396,10 @@ msgid "%d × %d"
msgstr "%d × %d" msgstr "%d × %d"
#: js/ui/windowMenu.js:27 #: js/ui/windowMenu.js:27
#| msgid "Hide Text"
msgid "Hide" msgid "Hide"
msgstr "Ocultar" msgstr "Ocultar"
#: js/ui/windowMenu.js:34 #: js/ui/windowMenu.js:34
#| msgctxt "search-result"
#| msgid "Restart"
msgid "Restore" msgid "Restore"
msgstr "Restaurar" msgstr "Restaurar"
@ -2771,6 +2756,7 @@ msgstr "Se necesita el UUID, el nombre y la descripción"
#: subprojects/extensions-tool/src/command-enable.c:46 #: subprojects/extensions-tool/src/command-enable.c:46
#: subprojects/extensions-tool/src/command-info.c:50 #: subprojects/extensions-tool/src/command-info.c:50
#: subprojects/extensions-tool/src/command-list.c:64 #: subprojects/extensions-tool/src/command-list.c:64
#: subprojects/extensions-tool/src/main.c:146
msgid "Failed to connect to GNOME Shell\n" msgid "Failed to connect to GNOME Shell\n"
msgstr "Falló al conectar a GNOME Shell\n" msgstr "Falló al conectar a GNOME Shell\n"
@ -2787,7 +2773,7 @@ msgstr "Desactivar una extensión"
#: subprojects/extensions-tool/src/command-disable.c:119 #: subprojects/extensions-tool/src/command-disable.c:119
#: subprojects/extensions-tool/src/command-enable.c:119 #: subprojects/extensions-tool/src/command-enable.c:119
#: subprojects/extensions-tool/src/command-info.c:103 #: subprojects/extensions-tool/src/command-info.c:103
#: subprojects/extensions-tool/src/command-prefs.c:97 #: subprojects/extensions-tool/src/command-prefs.c:105
#: subprojects/extensions-tool/src/command-reset.c:76 #: subprojects/extensions-tool/src/command-reset.c:76
#: subprojects/extensions-tool/src/command-uninstall.c:104 #: subprojects/extensions-tool/src/command-uninstall.c:104
msgid "No UUID given" msgid "No UUID given"
@ -2796,7 +2782,7 @@ msgstr "No se ha especificado el UUID"
#: subprojects/extensions-tool/src/command-disable.c:124 #: subprojects/extensions-tool/src/command-disable.c:124
#: subprojects/extensions-tool/src/command-enable.c:124 #: subprojects/extensions-tool/src/command-enable.c:124
#: subprojects/extensions-tool/src/command-info.c:108 #: subprojects/extensions-tool/src/command-info.c:108
#: subprojects/extensions-tool/src/command-prefs.c:102 #: subprojects/extensions-tool/src/command-prefs.c:110
#: subprojects/extensions-tool/src/command-reset.c:81 #: subprojects/extensions-tool/src/command-reset.c:81
#: subprojects/extensions-tool/src/command-uninstall.c:109 #: subprojects/extensions-tool/src/command-uninstall.c:109
msgid "More than one UUID given" msgid "More than one UUID given"
@ -2926,7 +2912,12 @@ msgstr "Se ha especificado más de una carpeta fuente"
msgid "Extension “%s” doesn't have preferences\n" msgid "Extension “%s” doesn't have preferences\n"
msgstr "La extensión «%s» no tiene opciones\n" msgstr "La extensión «%s» no tiene opciones\n"
#: subprojects/extensions-tool/src/command-prefs.c:79 #: subprojects/extensions-tool/src/command-prefs.c:62
#, c-format
msgid "Failed to open prefs for extension “%s”: %s\n"
msgstr ""
#: subprojects/extensions-tool/src/command-prefs.c:87
msgid "Opens extension preferences" msgid "Opens extension preferences"
msgstr "abre las preferencias de la extensión" msgstr "abre las preferencias de la extensión"
@ -2951,10 +2942,6 @@ msgstr "Desinstalar una extensión"
msgid "Do not print error messages" msgid "Do not print error messages"
msgstr "No mostrar mensajes de errores" msgstr "No mostrar mensajes de errores"
#: subprojects/extensions-tool/src/main.c:146
msgid "Failed to connect to GNOME Shell"
msgstr "Falló al conectar a GNOME Shell"
#: subprojects/extensions-tool/src/main.c:244 #: subprojects/extensions-tool/src/main.c:244
msgid "Path" msgid "Path"
msgstr "Ruta" msgstr "Ruta"
@ -3085,6 +3072,19 @@ msgstr[1] "%u entradas"
msgid "System Sounds" msgid "System Sounds"
msgstr "Sonidos del sistema" msgstr "Sonidos del sistema"
#~ msgid "Enable introspection API"
#~ msgstr "Activar la introspección de API"
#~ msgid ""
#~ "Enables a D-Bus API that allows to introspect the application state of "
#~ "the shell."
#~ msgstr ""
#~ "Activa una API de D-Bus que permite la introspección del estado de la "
#~ "aplicación de la shell."
#~ msgid "Failed to connect to GNOME Shell"
#~ msgstr "Falló al conectar a GNOME Shell"
#~ msgid "Minimize" #~ msgid "Minimize"
#~ msgstr "Minimizar" #~ msgstr "Minimizar"

537
po/fa.po
View File

@ -9,9 +9,9 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: gnome-shell master\n" "Project-Id-Version: gnome-shell master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell/issues\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell/issues\n"
"POT-Creation-Date: 2021-09-09 03:40+0000\n" "POT-Creation-Date: 2021-11-17 10:36+0000\n"
"PO-Revision-Date: 2021-10-21 19:49+0330\n" "PO-Revision-Date: 2021-11-19 15:48+0330\n"
"Last-Translator: eshagh <eshagh094@gmail.com>\n" "Last-Translator: MohammadSaleh Kamyab <mskf1383@protonmail.com>\n"
"Language-Team: Persian <>\n" "Language-Team: Persian <>\n"
"Language: fa\n" "Language: fa\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
@ -19,7 +19,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n!=1);\n" "Plural-Forms: nplurals=2; plural=(n!=1);\n"
"X-Poedit-SourceCharset: utf-8\n" "X-Poedit-SourceCharset: utf-8\n"
"X-Generator: Poedit 3.0\n" "X-Generator: Poedit 2.4.2\n"
#: data/50-gnome-shell-launchers.xml:6 #: data/50-gnome-shell-launchers.xml:6
msgid "Launchers" msgid "Launchers"
@ -98,7 +98,8 @@ 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:9 #: data/org.gnome.shell.gschema.xml.in:9
msgid "Allows access to internal debugging and monitoring tools using the Alt-F2 dialog." 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 #: data/org.gnome.shell.gschema.xml.in:16
@ -107,13 +108,15 @@ msgstr "شناسه‌های یکتای افزونه‌ها برای به کار
#: data/org.gnome.shell.gschema.xml.in:17 #: data/org.gnome.shell.gschema.xml.in:17
msgid "" msgid ""
"GNOME Shell extensions have a UUID property; this key lists extensions which should be loaded. Any extension that " "GNOME Shell extensions have a UUID property; this key lists extensions which should "
"wants to be loaded needs to be in this list. You can also manipulate this list with the EnableExtension and " "be loaded. Any extension that wants to be loaded needs to be in this list. You can "
"DisableExtension D-Bus methods on org.gnome.Shell." "also manipulate this list with the EnableExtension and DisableExtension D-Bus "
"methods on org.gnome.Shell."
msgstr "" msgstr ""
"افزونه‌های گنوم‌شل مشخصهٔ UUID دارند؛ این کلید، افزونه‌هایی که باید بار شوند را فهرست می‌کند. هر افزونه‌ای که می‌خواهد بار " "افزونه‌های گنوم‌شل مشخصهٔ UUID دارند؛ این کلید، افزونه‌هایی که باید بار شوند را فهرست "
"شود، باید در این فهرست باشد. شما همچنین می‌توانید این فهرست را از طریق EnableExtension و DisableExtension (روش‌های D-" "می‌کند. هر افزونه‌ای که می‌خواهد بار شود، باید در این فهرست باشد. شما همچنین می‌توانید "
"Bus) در org.gnome.Shell نیز بسازید." "این فهرست را از طریق EnableExtension و DisableExtension (روش‌های D-Bus) در org.gnome."
"Shell نیز بسازید."
#: data/org.gnome.shell.gschema.xml.in:26 #: data/org.gnome.shell.gschema.xml.in:26
msgid "UUIDs of extensions to force disabling" msgid "UUIDs of extensions to force disabling"
@ -121,21 +124,27 @@ msgstr "شناسه‌های یکتای افزونه‌ها برای از کار
#: data/org.gnome.shell.gschema.xml.in:27 #: data/org.gnome.shell.gschema.xml.in:27
msgid "" msgid ""
"GNOME Shell extensions have a UUID property; this key lists extensions which should be disabled, even if loaded as " "GNOME Shell extensions have a UUID property; this key lists extensions which should "
"part of the current mode. You can also manipulate this list with the EnableExtension and DisableExtension D-Bus " "be disabled, even if loaded as part of the current mode. You can also manipulate "
"methods on org.gnome.Shell. This key takes precedence over the “enabled-extensions” setting." "this list with the EnableExtension and DisableExtension D-Bus methods on org.gnome."
"Shell. This key takes precedence over the “enabled-extensions” setting."
msgstr "" msgstr ""
"افزونه‌های پوستهٔ گنوم شل شناسه‌ای یکتا دارند؛ این کلید، افزونه‌هایی که باید غیرفعّال شوند را فهرست می‌کند، حتا اگر به عنوان " "افزونه‌های پوستهٔ گنوم شل شناسه‌ای یکتا دارند؛ این کلید، افزونه‌هایی که باید غیرفعّال "
"بخشی از حالت فعلی بار شده باشند. می‌توانید این فهرست را از طریق روش‌های دی‌باس EnableExtension و DisableExtension در org." "شوند را فهرست می‌کند، حتا اگر به عنوان بخشی از حالت فعلی بار شده باشند. می‌توانید این "
"gnome.Shell نیز تغییر دهید." "فهرست را از طریق روش‌های دی‌باس EnableExtension و DisableExtension در org.gnome.Shell "
"نیز تغییر دهید."
#: data/org.gnome.shell.gschema.xml.in:37 #: data/org.gnome.shell.gschema.xml.in:37
msgid "Disable user extensions" msgid "Disable user extensions"
msgstr "از کار انداختن افزونه‌های کاربر" msgstr "از کار انداختن افزونه‌های کاربر"
#: data/org.gnome.shell.gschema.xml.in:38 #: data/org.gnome.shell.gschema.xml.in:38
msgid "Disable all extensions the user has enabled without affecting the “enabled-extension” setting." msgid ""
msgstr "از کار انداختن تمام افزونه‌هایی که کاربر به کار انداخته، بدون اثر روی تنظیمات «افزونهٔ فعّال»." "Disable all extensions the user has enabled without affecting the “enabled-"
"extension” setting."
msgstr ""
"از کار انداختن تمام افزونه‌هایی که کاربر به کار انداخته، بدون اثر روی تنظیمات "
"«افزونهٔ فعّال»."
#: data/org.gnome.shell.gschema.xml.in:45 #: data/org.gnome.shell.gschema.xml.in:45
msgid "Disables the validation of extension version compatibility" msgid "Disables the validation of extension version compatibility"
@ -143,18 +152,22 @@ msgstr "از کار انداختن بررسی سازگاری نسخهٔ افزو
#: data/org.gnome.shell.gschema.xml.in:46 #: data/org.gnome.shell.gschema.xml.in:46
msgid "" msgid ""
"GNOME Shell will only load extensions that claim to support the current running version. Enabling this option will " "GNOME Shell will only load extensions that claim to support the current running "
"disable this check and try to load all extensions regardless of the versions they claim to support." "version. Enabling this option will disable this check and try to load all "
"extensions regardless of the versions they claim to support."
msgstr "" msgstr ""
"پوستهٔ گنوم تنها نگارش‌هایی از افزونه‌ها را که ادّعا می‌کنند از نگارش درحال اجرا پشتیبانی می‌کند، بار می‌کند. به کار اندازی " "پوستهٔ گنوم تنها نگارش‌هایی از افزونه‌ها را که ادّعا می‌کنند از نگارش درحال اجرا "
"این گزینه، بررسی این مورد را از کار انداخته و سعی می‌کند تمام افزونه‌ها، بدون درنظر گرفتن سازگاری آنها بار شوند." "پشتیبانی می‌کند، بار می‌کند. به کار اندازی این گزینه، بررسی این مورد را از کار "
"انداخته و سعی می‌کند تمام افزونه‌ها، بدون درنظر گرفتن سازگاری آنها بار شوند."
#: data/org.gnome.shell.gschema.xml.in:54 #: data/org.gnome.shell.gschema.xml.in:54
msgid "List of desktop file IDs for favorite applications" msgid "List of desktop file IDs for favorite applications"
msgstr "فهرست شناسه‌های پروندهٔ میزکار برای برنامه‌های مورد علاقه" msgstr "فهرست شناسه‌های پروندهٔ میزکار برای برنامه‌های مورد علاقه"
#: data/org.gnome.shell.gschema.xml.in:55 #: data/org.gnome.shell.gschema.xml.in:55
msgid "The applications corresponding to these identifiers will be displayed in the favorites area." msgid ""
"The applications corresponding to these identifiers will be displayed in the "
"favorites area."
msgstr "برنامه‌های مشابه این شناسه‌ها در قسمت مورد علاقه‌ها نمایش داده می‌شود." msgstr "برنامه‌های مشابه این شناسه‌ها در قسمت مورد علاقه‌ها نمایش داده می‌شود."
#: data/org.gnome.shell.gschema.xml.in:62 #: data/org.gnome.shell.gschema.xml.in:62
@ -171,21 +184,27 @@ msgid "Always show the “Log out” menu item in the user menu."
msgstr "نمایش همیشگی «خروج» در فهرست کاربر." msgstr "نمایش همیشگی «خروج» در فهرست کاربر."
#: data/org.gnome.shell.gschema.xml.in:72 #: data/org.gnome.shell.gschema.xml.in:72
msgid "This key overrides the automatic hiding of the “Log out” menu item in single-user, single-session situations." msgid ""
msgstr "این کلید، نهفتن خودکار «خروج» در فهرست را در حالت‌های تک‌کاربر، تک‌نشست بازنویسی می‌کند." "This key overrides the automatic hiding of the “Log out” menu item in single-user, "
"single-session situations."
msgstr ""
"این کلید، نهفتن خودکار «خروج» در فهرست را در حالت‌های تک‌کاربر، تک‌نشست بازنویسی می‌کند."
#: data/org.gnome.shell.gschema.xml.in:79 #: data/org.gnome.shell.gschema.xml.in:79
msgid "Whether to remember password for mounting encrypted or remote filesystems" msgid "Whether to remember password for mounting encrypted or remote filesystems"
msgstr "اینکه آیا گذرواژه برای سوارکردن سامانه‌های پروندهٔ رمزنگاری شده و یا دوردست به‌خاطر سپرده شود یا خیر" msgstr ""
"اینکه آیا گذرواژه برای سوارکردن سامانه‌های پروندهٔ رمزنگاری شده و یا دوردست به‌خاطر "
"سپرده شود یا خیر"
#: data/org.gnome.shell.gschema.xml.in:80 #: data/org.gnome.shell.gschema.xml.in:80
msgid "" msgid ""
"The shell will request a password when an encrypted device or a remote filesystem is mounted. If the password can be " "The shell will request a password when an encrypted device or a remote filesystem "
"saved for future use a “Remember Password” checkbox will be present. This key sets the default state of the checkbox." "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 "" msgstr ""
"هنگامی که دستگاهی رمزنگاری شده یا سامانه‌پرونده‌ای دوردست سوار می‌شود، پوسته درخواست گذرواژه می‌کند. اگر گذرواژه را بتوان " "هنگامی که دستگاهی رمزنگاری شده یا سامانه‌پرونده‌ای دوردست سوار می‌شود، پوسته درخواست "
"برای استفادهٔ آینده ذخیره کرد، گزینهٔ «به‌خاطر سپردن گذرواژه» موجود خواهد بود. این کلید، حالت پیش‌گزیدهٔ این گزینه را تنظیم " "گذرواژه می‌کند. اگر گذرواژه را بتوان برای استفادهٔ آینده ذخیره کرد، گزینهٔ «به‌خاطر "
"می‌کند." "سپردن گذرواژه» موجود خواهد بود. این کلید، حالت پیش‌گزیدهٔ این گزینه را تنظیم می‌کند."
#: data/org.gnome.shell.gschema.xml.in:89 #: data/org.gnome.shell.gschema.xml.in:89
msgid "Whether the default Bluetooth adapter had set up devices associated to it" msgid "Whether the default Bluetooth adapter had set up devices associated to it"
@ -193,12 +212,12 @@ msgstr "اینکه آداپتور بلوتوث پیش‌گزیده دستگاه
#: data/org.gnome.shell.gschema.xml.in:90 #: data/org.gnome.shell.gschema.xml.in:90
msgid "" msgid ""
"The shell will only show a Bluetooth menu item if a Bluetooth adapter is powered, or if there were devices set up " "The shell will only show a Bluetooth menu item if a Bluetooth adapter is powered, "
"associated with the default adapter. This will be reset if the default adapter is ever seen not to have devices " "or if there were devices set up associated with the default adapter. This will be "
"associated to it." "reset if the default adapter is ever seen not to have devices associated to it."
msgstr "" msgstr ""
"پوسته تنها زمانی فهرست بلوتوث را نمایش می‌دهد که آداپتور بلوتوث روشن باشد، یا دستگاه‌هایی به گونه‌ای تنظیم شده باشند که " "پوسته تنها زمانی فهرست بلوتوث را نمایش می‌دهد که آداپتور بلوتوث روشن باشد، یا "
"به آداپتور پیش‌گزیده متّصل شوند." "دستگاه‌هایی به گونه‌ای تنظیم شده باشند که به آداپتور پیش‌گزیده متّصل شوند."
#: data/org.gnome.shell.gschema.xml.in:99 #: data/org.gnome.shell.gschema.xml.in:99
msgid "The last version the “Welcome to GNOME” dialog was shown for" msgid "The last version the “Welcome to GNOME” dialog was shown for"
@ -206,13 +225,15 @@ msgstr "آخرین نگارش گفت‌وگوی «به گنوم خوش آمدی
#: data/org.gnome.shell.gschema.xml.in:100 #: data/org.gnome.shell.gschema.xml.in:100
msgid "" msgid ""
"This key determines for which version the “Welcome to GNOME” dialog was last shown. An empty string represents the " "This key determines for which version the “Welcome to GNOME” dialog was last shown. "
"oldest possible version, and a huge number will represent versions that do not exist yet. This huge number can be used " "An empty string represents the oldest possible version, and a huge number will "
"to effectively disable the dialog." "represent versions that do not exist yet. This huge number can be used to "
"effectively disable the dialog."
msgstr "" msgstr ""
"این کلید مشخّص می‌کند گفت‌وگوی «به گنوم خوش آمدید»، برای کدام نگارش نشان داده شده. یک رشتهٔ خالی، نمایانگر قدیمی‌ترین نگارش " "این کلید مشخّص می‌کند گفت‌وگوی «به گنوم خوش آمدید»، برای کدام نگارش نشان داده شده. یک "
"ممکن بوده و یه عدد بزرگ، نمایانگر نگارش‌هاییست که هنوز وجود ندارند. این عدد بزرگ می‌تواند برای از کار انداختن مؤثّر " "رشتهٔ خالی، نمایانگر قدیمی‌ترین نگارش ممکن بوده و یه عدد بزرگ، نمایانگر نگارش‌هاییست "
"گفت‌وگو استفاده شود." "که هنوز وجود ندارند. این عدد بزرگ می‌تواند برای از کار انداختن مؤثّر گفت‌وگو استفاده "
"شود."
#: data/org.gnome.shell.gschema.xml.in:133 #: data/org.gnome.shell.gschema.xml.in:133
msgid "Layout of the app picker" msgid "Layout of the app picker"
@ -220,13 +241,15 @@ msgstr "چینش گزینشگر کاره"
#: data/org.gnome.shell.gschema.xml.in:134 #: data/org.gnome.shell.gschema.xml.in:134
msgid "" 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. " "Layout of the app picker. Each entry in the array is a page. Pages are stored in "
"Each page contains an “application id” → 'data' pair. Currently, the following values are stored as 'data': • " "the order they appear in GNOME Shell. Each page contains an “application id” → "
"“position”: the position of the application icon in the page" "'data' pair. Currently, the following values are stored as 'data': • “position”: "
"the position of the application icon in the page"
msgstr "" msgstr ""
"چینش گزینشگر کاره. هر ورودی در آرایه، یک صفحه است. صفحه‌ها به ترتیبی که در پوستهٔ گنوم ظاهر می‌شوند، ذخیره می‌شوند. هر " "چینش گزینشگر کاره. هر ورودی در آرایه، یک صفحه است. صفحه‌ها به ترتیبی که در پوستهٔ "
"صفحه دارای یک جفت «شناسهٔ برنامه» ← «داده» است. درحال حاضر، مقدارهای زیر به عنوان «داده»: • «موقعیت»: موقعیت نقشک " "گنوم ظاهر می‌شوند، ذخیره می‌شوند. هر صفحه دارای یک جفت «شناسهٔ برنامه» ← «داده» است. "
"برنامه در صفحه ذخیره شده‌اند" "درحال حاضر، مقدارهای زیر به عنوان «داده»: • «موقعیت»: موقعیت نقشک برنامه در صفحه "
"ذخیره شده‌اند"
#: data/org.gnome.shell.gschema.xml.in:149 #: data/org.gnome.shell.gschema.xml.in:149
msgid "Keybinding to open the application menu" msgid "Keybinding to open the application menu"
@ -322,11 +345,11 @@ msgstr "محدود کردن تعویض‌گر به فضای‌کاری فعلی.
#: data/org.gnome.shell.gschema.xml.in:241 #: data/org.gnome.shell.gschema.xml.in:241
msgid "" msgid ""
"If true, only applications that have windows on the current workspace are shown in the switcher. Otherwise, all " "If true, only applications that have windows on the current workspace are shown in "
"applications are included." "the switcher. Otherwise, all applications are included."
msgstr "" msgstr ""
"اگر درست باشد، تنها برنامه‌هایی که در فضای‌کاری فعلی پنجره دارند در تعویض‌گر نشان داده می‌شوند. در غیر این صورت، تمام " "اگر درست باشد، تنها برنامه‌هایی که در فضای‌کاری فعلی پنجره دارند در تعویض‌گر نشان داده "
"برنامه‌ها نشان داده می‌شوند." "می‌شوند. در غیر این صورت، تمام برنامه‌ها نشان داده می‌شوند."
#: data/org.gnome.shell.gschema.xml.in:258 #: data/org.gnome.shell.gschema.xml.in:258
msgid "The application icon mode." msgid "The application icon mode."
@ -334,16 +357,21 @@ msgstr "حالت شمایلی برنامه."
#: data/org.gnome.shell.gschema.xml.in:259 #: data/org.gnome.shell.gschema.xml.in:259
msgid "" msgid ""
"Configures how the windows are shown in the switcher. Valid possibilities are “thumbnail-only” (shows a thumbnail of " "Configures how the windows are shown in the switcher. Valid possibilities are "
"the window), “app-icon-only” (shows only the application icon) or “both”." "“thumbnail-only” (shows a thumbnail of the window), “app-icon-only” (shows only the "
"application icon) or “both”."
msgstr "" msgstr ""
"نحوه نمایش پنجره‌ها را در تعویضگر پیکربندی می‌کند. مقدارهای ممکن عبارتند از «thumbnail-only» (نمایش تصویر بندانگشتی از " "نحوه نمایش پنجره‌ها را در تعویضگر پیکربندی می‌کند. مقدارهای ممکن عبارتند از "
"پنجره)، «app-icon-only» (نمایش تنها شمایل برنامه) یا «both» (هر دو)." "«thumbnail-only» (نمایش تصویر بندانگشتی از پنجره)، «app-icon-only» (نمایش تنها "
"شمایل برنامه) یا «both» (هر دو)."
#: data/org.gnome.shell.gschema.xml.in:268 #: data/org.gnome.shell.gschema.xml.in:268
msgid "If true, only windows from the current workspace are shown in the switcher. Otherwise, all windows are included." msgid ""
"If true, only windows from the current workspace are shown in the switcher. "
"Otherwise, all windows are included."
msgstr "" msgstr ""
"اگر درست باشد، تنها پنجره‌های فضای‌کاری فعلی در تعویض‌گر نمایش داده می‌شود. در غیر این صورت، تمام پنجره‌ها اضافه می‌شوند." "اگر درست باشد، تنها پنجره‌های فضای‌کاری فعلی در تعویض‌گر نمایش داده می‌شود. در غیر این "
"صورت، تمام پنجره‌ها اضافه می‌شوند."
#: data/org.gnome.shell.gschema.xml.in:278 #: data/org.gnome.shell.gschema.xml.in:278
msgid "Locations" msgid "Locations"
@ -393,23 +421,25 @@ msgstr "فضاهای کاری تنها در صفحه‌نمایش اصلی"
#: data/org.gnome.shell.gschema.xml.in:343 #: data/org.gnome.shell.gschema.xml.in:343
msgid "Delay focus changes in mouse mode until the pointer stops moving" msgid "Delay focus changes in mouse mode until the pointer stops moving"
msgstr "به تأخیر انداختن تغییر تمرکز در حالت موشی تا زمانی که نشانگر از حرکت باز ایستد" msgstr ""
"به تأخیر انداختن تغییر تمرکز در حالت موشی تا زمانی که نشانگر از حرکت باز ایستد"
#: data/org.gnome.Shell.PortalHelper.desktop.in.in:3 #: data/org.gnome.Shell.PortalHelper.desktop.in.in:3
msgid "Network Login" msgid "Network Login"
msgstr "ورود شبکه‌ای" msgstr "ورود شبکه‌ای"
#: js/dbusServices/extensions/ui/extension-prefs-dialog.ui:28 subprojects/extensions-app/data/ui/extensions-window.ui:241 #: js/dbusServices/extensions/ui/extension-prefs-dialog.ui:28
#: subprojects/extensions-app/data/ui/extensions-window.ui:241
msgid "Somethings gone wrong" msgid "Somethings gone wrong"
msgstr "اشتباهی صورت گرفت" msgstr "اشتباهی صورت گرفت"
#: js/dbusServices/extensions/ui/extension-prefs-dialog.ui:39 #: js/dbusServices/extensions/ui/extension-prefs-dialog.ui:39
msgid "" msgid ""
"Were very sorry, but theres been a problem: the settings for this extension cant be displayed. We recommend that " "Were very sorry, but theres been a problem: the settings for this extension cant "
"you report the issue to the extension authors." "be displayed. We recommend that you report the issue to the extension authors."
msgstr "" msgstr ""
"متأسفیم، ولی مشکلی وجود داشت: تنظیمات این افزونه نمی‌تواند نشان داده شوند. توصیه می‌کنیم مشکل را به نگارندهٔ افزونه گزارش " "متأسفیم، ولی مشکلی وجود داشت: تنظیمات این افزونه نمی‌تواند نشان داده شوند. توصیه "
"دهید." "می‌کنیم مشکل را به نگارندهٔ افزونه گزارش دهید."
#: js/dbusServices/extensions/ui/extension-prefs-dialog.ui:64 #: js/dbusServices/extensions/ui/extension-prefs-dialog.ui:64
msgid "Technical Details" msgid "Technical Details"
@ -423,17 +453,20 @@ msgstr "صفحهٔ خانگی"
msgid "Visit extension homepage" msgid "Visit extension homepage"
msgstr "مشاهدهٔ صفحهٔ خانگی افزونه" msgstr "مشاهدهٔ صفحهٔ خانگی افزونه"
#: js/gdm/authPrompt.js:141 js/ui/audioDeviceSelection.js:61 js/ui/components/networkAgent.js:110 #: js/gdm/authPrompt.js:141 js/ui/audioDeviceSelection.js:61
#: js/ui/components/polkitAgent.js:138 js/ui/endSessionDialog.js:438 js/ui/extensionDownloader.js:228 #: js/ui/components/networkAgent.js:110 js/ui/components/polkitAgent.js:138
#: js/ui/shellMountOperation.js:376 js/ui/shellMountOperation.js:386 js/ui/status/network.js:978 #: js/ui/endSessionDialog.js:438 js/ui/extensionDownloader.js:228
#: subprojects/extensions-app/js/main.js:183 #: js/ui/shellMountOperation.js:376 js/ui/shellMountOperation.js:386
#: js/ui/status/network.js:978 subprojects/extensions-app/js/main.js:183
msgid "Cancel" msgid "Cancel"
msgstr "لغو" msgstr "لغو"
#. Cisco LEAP #. Cisco LEAP
#: js/gdm/authPrompt.js:285 js/ui/components/networkAgent.js:209 js/ui/components/networkAgent.js:225 #: js/gdm/authPrompt.js:285 js/ui/components/networkAgent.js:209
#: js/ui/components/networkAgent.js:249 js/ui/components/networkAgent.js:270 js/ui/components/networkAgent.js:290 #: js/ui/components/networkAgent.js:225 js/ui/components/networkAgent.js:249
#: js/ui/components/networkAgent.js:300 js/ui/components/polkitAgent.js:275 js/ui/shellMountOperation.js:326 #: js/ui/components/networkAgent.js:270 js/ui/components/networkAgent.js:290
#: js/ui/components/networkAgent.js:300 js/ui/components/polkitAgent.js:275
#: js/ui/shellMountOperation.js:326
msgid "Password" msgid "Password"
msgstr "گذرواژه" msgstr "گذرواژه"
@ -455,8 +488,8 @@ msgstr "(برای مثال، کاربر یا %s)"
#. TTLS and PEAP are actually much more complicated, but this complication #. TTLS and PEAP are actually much more complicated, but this complication
#. is not visible here since we only care about phase2 authentication #. is not visible here since we only care about phase2 authentication
#. (and don't even care of which one) #. (and don't even care of which one)
#: js/gdm/loginDialog.js:926 js/ui/components/networkAgent.js:245 js/ui/components/networkAgent.js:268 #: js/gdm/loginDialog.js:926 js/ui/components/networkAgent.js:245
#: js/ui/components/networkAgent.js:286 #: js/ui/components/networkAgent.js:268 js/ui/components/networkAgent.js:286
msgid "Username" msgid "Username"
msgstr "نام‌کاربری" msgstr "نام‌کاربری"
@ -715,11 +748,11 @@ msgstr "ورود به نقطهٔ داغ"
#: js/portalHelper/main.js:95 #: js/portalHelper/main.js:95
msgid "" msgid ""
"Your connection to this hotspot login is not secure. Passwords or other information you enter on this page can be " "Your connection to this hotspot login is not secure. Passwords or other information "
"viewed by people nearby." "you enter on this page can be viewed by people nearby."
msgstr "" msgstr ""
"اتّصال شما به این ورود نقطهٔ داغ امن نیست. گذرواژه‌ها یا دیگر اطّلاعاتی که در این صفحه وارد می‌کنید، می‌تواند توسّط افراد " "اتّصال شما به این ورود نقطهٔ داغ امن نیست. گذرواژه‌ها یا دیگر اطّلاعاتی که در این صفحه "
"اطراف دیده شود." "وارد می‌کنید، می‌تواند توسّط افراد اطراف دیده شود."
#. No support for non-modal system dialogs, so ignore the option #. No support for non-modal system dialogs, so ignore the option
#. let modal = options['modal'] || true; #. let modal = options['modal'] || true;
@ -731,7 +764,7 @@ msgstr "رد دسترسی"
msgid "Grant Access" msgid "Grant Access"
msgstr "پذیرفتن دسترسی" msgstr "پذیرفتن دسترسی"
#: js/ui/appDisplay.js:1846 #: js/ui/appDisplay.js:1791
msgid "Unnamed Folder" msgid "Unnamed Folder"
msgstr "پوشهٔ بی‌نام" msgstr "پوشهٔ بی‌نام"
@ -922,8 +955,12 @@ msgid "“%s” is not responding."
msgstr "«%s» پاسخگو نیست." msgstr "«%s» پاسخگو نیست."
#: js/ui/closeDialog.js:43 #: js/ui/closeDialog.js:43
msgid "You may choose to wait a short while for it to continue or force the application to quit entirely." msgid ""
msgstr "ممکن است بخواهید مدت کوتاهی منتظر مانده تا ادامه دهد یا برنامه را مجبور به خروج کامل کنید." "You may choose to wait a short while for it to continue or force the application to "
"quit entirely."
msgstr ""
"ممکن است بخواهید مدت کوتاهی منتظر مانده تا ادامه دهد یا برنامه را مجبور به خروج "
"کامل کنید."
#: js/ui/closeDialog.js:70 #: js/ui/closeDialog.js:70
msgid "Force Quit" msgid "Force Quit"
@ -958,8 +995,8 @@ msgstr "گشودن با %s"
msgid "Alternatively you can connect by pushing the “WPS” button on your router." msgid "Alternatively you can connect by pushing the “WPS” button on your router."
msgstr "به عنوان جایگزین می‌توانید با فشردن دکمهٔ WPS روی مسیریابتان، وصل شوید." msgstr "به عنوان جایگزین می‌توانید با فشردن دکمهٔ WPS روی مسیریابتان، وصل شوید."
#: js/ui/components/networkAgent.js:104 js/ui/status/network.js:258 js/ui/status/network.js:349 #: js/ui/components/networkAgent.js:104 js/ui/status/network.js:258
#: js/ui/status/network.js:981 #: js/ui/status/network.js:349 js/ui/status/network.js:981
msgid "Connect" msgid "Connect"
msgstr "اتّصال" msgstr "اتّصال"
@ -979,8 +1016,8 @@ msgstr "شناسه"
msgid "Service" msgid "Service"
msgstr "خدمت" msgstr "خدمت"
#: js/ui/components/networkAgent.js:317 js/ui/components/networkAgent.js:345 js/ui/components/networkAgent.js:679 #: js/ui/components/networkAgent.js:317 js/ui/components/networkAgent.js:345
#: js/ui/components/networkAgent.js:700 #: js/ui/components/networkAgent.js:679 js/ui/components/networkAgent.js:700
msgid "Authentication required" msgid "Authentication required"
msgstr "نیاز به تأیید هویت است" msgstr "نیاز به تأیید هویت است"
@ -1013,8 +1050,9 @@ msgstr "رمز پین برای دستگاه پهن‌باند همراه لاز
msgid "PIN" msgid "PIN"
msgstr "پین" msgstr "پین"
#: js/ui/components/networkAgent.js:346 js/ui/components/networkAgent.js:685 js/ui/components/networkAgent.js:689 #: js/ui/components/networkAgent.js:346 js/ui/components/networkAgent.js:685
#: js/ui/components/networkAgent.js:701 js/ui/components/networkAgent.js:705 #: js/ui/components/networkAgent.js:689 js/ui/components/networkAgent.js:701
#: js/ui/components/networkAgent.js:705
#, javascript-format #, javascript-format
msgid "A password is required to connect to “%s”." msgid "A password is required to connect to “%s”."
msgstr "برای اتّصال به «%s» گذرواژه لازم است." msgstr "برای اتّصال به «%s» گذرواژه لازم است."
@ -1233,9 +1271,14 @@ msgstr "راه‌اندازی دوباره و نصب به‌روز رسانی‌
#: js/ui/endSessionDialog.js:104 #: js/ui/endSessionDialog.js:104
#, javascript-format #, javascript-format
msgid "The system will automatically restart and install updates in %d second." 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 ""
msgstr[0] "سامانه پس از %Id ثانیه به طور خودکار دوباره راه‌اندازی می‌شود و به‌روز رسانی‌ها را نصب می‌کند." "The system will automatically restart and install updates in %d seconds."
msgstr[1] "سامانه پس از %Id ثانیه به طور خودکار دوبارها راه‌اندازی می‌شود و به‌روز رسانی‌ها را نصب می‌کند." msgstr[0] ""
"سامانه پس از %Id ثانیه به طور خودکار دوباره راه‌اندازی می‌شود و به‌روز رسانی‌ها را نصب "
"می‌کند."
msgstr[1] ""
"سامانه پس از %Id ثانیه به طور خودکار دوبارها راه‌اندازی می‌شود و به‌روز رسانی‌ها را نصب "
"می‌کند."
#: js/ui/endSessionDialog.js:111 js/ui/endSessionDialog.js:132 #: js/ui/endSessionDialog.js:111 js/ui/endSessionDialog.js:132
msgctxt "button" msgctxt "button"
@ -1263,11 +1306,11 @@ msgstr "راه‌اندازی دوباره و نصب ارتقا"
#: js/ui/endSessionDialog.js:126 #: js/ui/endSessionDialog.js:126
#, javascript-format #, javascript-format
msgid "" msgid ""
"%s %s will be installed after restart. Upgrade installation can take a long time: ensure that you have backed up and " "%s %s will be installed after restart. Upgrade installation can take a long time: "
"that the computer is plugged in." "ensure that you have backed up and that the computer is plugged in."
msgstr "" msgstr ""
"پس از راه‌اندازی دوباره %s %s نصب خواهد شد. نصب ارتقا ممکن است زمان زیادی طول بکشد: مطمئن شوید که پشتیبان دارید و " "پس از راه‌اندازی دوباره %s %s نصب خواهد شد. نصب ارتقا ممکن است زمان زیادی طول بکشد: "
"رایانه به برق وصل است." "مطمئن شوید که پشتیبان دارید و رایانه به برق وصل است."
#: js/ui/endSessionDialog.js:284 #: js/ui/endSessionDialog.js:284
msgid "Low battery power: please plug in before installing updates." msgid "Low battery power: please plug in before installing updates."
@ -1311,11 +1354,11 @@ msgstr "نصب افزونه"
msgid "Download and install “%s” from extensions.gnome.org?" msgid "Download and install “%s” from extensions.gnome.org?"
msgstr "بارگیری و نصب «%s» از extensions.gnome.org؟" msgstr "بارگیری و نصب «%s» از extensions.gnome.org؟"
#: js/ui/extensionSystem.js:252 #: js/ui/extensionSystem.js:266
msgid "Extension Updates Available" msgid "Extension Updates Available"
msgstr "به‌روز رسانی‌های افزونه موجودند" msgstr "به‌روز رسانی‌های افزونه موجودند"
#: js/ui/extensionSystem.js:253 #: js/ui/extensionSystem.js:267
msgid "Extension updates are ready to be installed." msgid "Extension updates are ready to be installed."
msgstr "به‌روز رسانی‌های افزونه‌ها آمادهٔ نصبند." msgstr "به‌روز رسانی‌های افزونه‌ها آمادهٔ نصبند."
@ -1357,10 +1400,11 @@ msgstr "کلیدهای آهسته خاموش شدند"
#: js/ui/kbdA11yDialog.js:34 #: js/ui/kbdA11yDialog.js:34
msgid "" msgid ""
"You just held down the Shift key for 8 seconds. This is the shortcut for the Slow Keys feature, which affects the way " "You just held down the Shift key for 8 seconds. This is the shortcut for the Slow "
"your keyboard works." "Keys feature, which affects the way your keyboard works."
msgstr "" msgstr ""
"دکمهٔ تبدیل را ۸ ثانیه نگه داشتید. این میان‌بری برای ویژگی دکمه‌های آهسته است که بر نحوهٔ کار صفحه‌کلیدتان اثر می‌گذارد." "دکمهٔ تبدیل را ۸ ثانیه نگه داشتید. این میان‌بری برای ویژگی دکمه‌های آهسته است که بر "
"نحوهٔ کار صفحه‌کلیدتان اثر می‌گذارد."
#: js/ui/kbdA11yDialog.js:40 #: js/ui/kbdA11yDialog.js:40
msgid "Sticky Keys Turned On" msgid "Sticky Keys Turned On"
@ -1372,30 +1416,33 @@ msgstr "کلیدهای چسبان خاموش شدند"
#: js/ui/kbdA11yDialog.js:43 #: js/ui/kbdA11yDialog.js:43
msgid "" msgid ""
"You just pressed the Shift key 5 times in a row. This is the shortcut for the Sticky Keys feature, which affects the " "You just pressed the Shift key 5 times in a row. This is the shortcut for the "
"way your keyboard works." "Sticky Keys feature, which affects the way your keyboard works."
msgstr "" msgstr ""
"کلید تبدیل را ۵ بار پشت سر هم زدید. این میان‌بری برای ویژگی کلید‌های چسبان است که بر نحوهٔ کار صفحه‌کلیدتان اثر می‌گذارد." "کلید تبدیل را ۵ بار پشت سر هم زدید. این میان‌بری برای ویژگی کلید‌های چسبان است که بر "
"نحوهٔ کار صفحه‌کلیدتان اثر می‌گذارد."
#: js/ui/kbdA11yDialog.js:45 #: js/ui/kbdA11yDialog.js:45
msgid "" 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, " "You just pressed two keys at once, or pressed the Shift key 5 times in a row. This "
"which affects the way your keyboard works." "turns off the Sticky Keys feature, which affects the way your keyboard works."
msgstr "" msgstr ""
"دو کلید را هم‌زمان فشرده یا کلید تبدیل را ۵ بار پشت سر هم زدید. این میان‌بری برای ویژگی کلید‌های چسبان است که بر نحوهٔ کار " "دو کلید را هم‌زمان فشرده یا کلید تبدیل را ۵ بار پشت سر هم زدید. این میان‌بری برای "
"صفحه‌کلیدتان اثر می‌گذارد." "ویژگی کلید‌های چسبان است که بر نحوهٔ کار صفحه‌کلیدتان اثر می‌گذارد."
#: js/ui/kbdA11yDialog.js:54 #: js/ui/kbdA11yDialog.js:54
msgid "Leave On" msgid "Leave On"
msgstr "روشن گذاشتن" msgstr "روشن گذاشتن"
#: js/ui/kbdA11yDialog.js:54 js/ui/status/bluetooth.js:156 js/ui/status/network.js:1377 #: js/ui/kbdA11yDialog.js:54 js/ui/status/bluetooth.js:156
#: js/ui/status/network.js:1377
msgid "Turn On" msgid "Turn On"
msgstr "روشن کردن" msgstr "روشن کردن"
#: js/ui/kbdA11yDialog.js:62 js/ui/status/bluetooth.js:156 js/ui/status/network.js:166 js/ui/status/network.js:350 #: js/ui/kbdA11yDialog.js:62 js/ui/status/bluetooth.js:156 js/ui/status/network.js:166
#: js/ui/status/network.js:1377 js/ui/status/network.js:1489 js/ui/status/nightLight.js:41 js/ui/status/rfkill.js:81 #: js/ui/status/network.js:350 js/ui/status/network.js:1377
#: js/ui/status/rfkill.js:110 #: js/ui/status/network.js:1489 js/ui/status/nightLight.js:41
#: js/ui/status/rfkill.js:81 js/ui/status/rfkill.js:110
msgid "Turn Off" msgid "Turn Off"
msgstr "خاموش کردن" msgstr "خاموش کردن"
@ -1461,10 +1508,11 @@ msgstr "واردشده به عنوان کاربری ممتاز"
#: js/ui/main.js:291 #: js/ui/main.js:291
msgid "" msgid ""
"Running a session as a privileged user should be avoided for security reasons. If possible, you should log in as a " "Running a session as a privileged user should be avoided for security reasons. If "
"normal user." "possible, you should log in as a normal user."
msgstr "" msgstr ""
"به دلایل امنیتی باید از اجرای یک نشست به عنوان کاربری ممتاز خودداری کرد. در صورت امکان، با کاربری عادی وارد شوید." "به دلایل امنیتی باید از اجرای یک نشست به عنوان کاربری ممتاز خودداری کرد. در صورت "
"امکان، با کاربری عادی وارد شوید."
#: js/ui/main.js:340 #: js/ui/main.js:340
msgid "Screen Lock disabled" msgid "Screen Lock disabled"
@ -1661,7 +1709,9 @@ msgstr "از پرونده‌های کلید استفاده می‌کند"
#: js/ui/shellMountOperation.js:298 #: js/ui/shellMountOperation.js:298
#, javascript-format #, javascript-format
msgid "To unlock a volume that uses keyfiles, use the <i>%s</i> utility instead." msgid "To unlock a volume that uses keyfiles, use the <i>%s</i> utility instead."
msgstr "برای قفل‌گشایی حجمی که از پرونده‌های کلید استفاده می‌کند، از ابزار <i>%s</i> استفاده کنید." msgstr ""
"برای قفل‌گشایی حجمی که از پرونده‌های کلید استفاده می‌کند، از ابزار <i>%s</i> استفاده "
"کنید."
#: js/ui/shellMountOperation.js:306 #: js/ui/shellMountOperation.js:306
msgid "PIM Number" msgid "PIM Number"
@ -2162,8 +2212,12 @@ msgid "Unknown Thunderbolt device"
msgstr "افزارهٔ تاندربولت ناشناخته" msgstr "افزارهٔ تاندربولت ناشناخته"
#: js/ui/status/thunderbolt.js:325 #: js/ui/status/thunderbolt.js:325
msgid "New device has been detected while you were away. Please disconnect and reconnect the device to start using it." msgid ""
msgstr "هنگام نبودنتان، افزارهٔ جدید شناسایی شد. لطفاً برای شروع به استفاده از آن، قطعش کرده و دوباره وصل کنید." "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:328 #: js/ui/status/thunderbolt.js:328
msgid "Unauthorized Thunderbolt device" msgid "Unauthorized Thunderbolt device"
@ -2403,7 +2457,8 @@ msgid "Authentication dialog was dismissed by the user"
msgstr "محاوره تأیید هویت از طرف کاربر رد شد" msgstr "محاوره تأیید هویت از طرف کاربر رد شد"
#: subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.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/js/main.js:217 #: subprojects/extensions-app/data/org.gnome.Extensions.desktop.in.in:4
#: subprojects/extensions-app/js/main.js:217
#: subprojects/extensions-app/data/ui/extensions-window.ui:56 #: subprojects/extensions-app/data/ui/extensions-window.ui:56
msgid "Extensions" msgid "Extensions"
msgstr "افزونه‌ها" msgstr "افزونه‌ها"
@ -2419,9 +2474,11 @@ msgstr "پروژهٔ گنوم"
#: subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in:36 #: subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in:36
msgid "" msgid ""
"GNOME Extensions handles updating extensions, configuring extension preferences and removing or disabling unwanted " "GNOME Extensions handles updating extensions, configuring extension preferences and "
"extensions." "removing or disabling unwanted extensions."
msgstr "افزونه‌های گنوم؛ به‌روز رسانی، پیکربندی، برداشتن یا از کار انداختن افزونه‌ها را مدیریت می‌کند." msgstr ""
"افزونه‌های گنوم؛ به‌روز رسانی، پیکربندی، برداشتن یا از کار انداختن افزونه‌ها را مدیریت "
"می‌کند."
#: subprojects/extensions-app/data/org.gnome.Extensions.desktop.in.in:7 #: subprojects/extensions-app/data/org.gnome.Extensions.desktop.in.in:7
msgid "Configure GNOME Shell Extensions" msgid "Configure GNOME Shell Extensions"
@ -2437,7 +2494,9 @@ msgid "Remove “%s”?"
msgstr "برداشتن «%s»؟" msgstr "برداشتن «%s»؟"
#: subprojects/extensions-app/js/main.js:180 #: subprojects/extensions-app/js/main.js:180
msgid "If you remove the extension, you need to return to download it if you want to enable it again" 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/main.js:184 #: subprojects/extensions-app/js/main.js:184
@ -2465,12 +2524,14 @@ msgstr "افزونه با نگارش جاری گنوم ناسازگار است"
msgid "The extension had an error" msgid "The extension had an error"
msgstr "افزونه خطایی داشت" msgstr "افزونه خطایی داشت"
#: subprojects/extensions-app/data/ui/extension-row.ui:83 subprojects/extensions-tool/src/command-create.c:322 #: subprojects/extensions-app/data/ui/extension-row.ui:83
#: subprojects/extensions-tool/src/command-create.c:322
#: subprojects/extensions-tool/src/main.c:241 #: subprojects/extensions-tool/src/main.c:241
msgid "Description" msgid "Description"
msgstr "شرح" msgstr "شرح"
#: subprojects/extensions-app/data/ui/extension-row.ui:104 subprojects/extensions-tool/src/main.c:253 #: subprojects/extensions-app/data/ui/extension-row.ui:104
#: subprojects/extensions-tool/src/main.c:253
msgid "Version" msgid "Version"
msgstr "نگارش" msgstr "نگارش"
@ -2495,8 +2556,12 @@ msgid "About Extensions"
msgstr "دربارهٔ افزونه‌ها" msgstr "دربارهٔ افزونه‌ها"
#: subprojects/extensions-app/data/ui/extensions-window.ui:27 #: subprojects/extensions-app/data/ui/extensions-window.ui:27
msgid "To find and add extensions, visit <a href=\"https://extensions.gnome.org\">extensions.gnome.org</a>." msgid ""
msgstr "برای یافتن و افزودن افزونه‌ها، <a href=\"https://extensions.gnome.org\">پایگاه افزونه‌های گنوم</a> را ببینید." "To find and add extensions, visit <a href=\"https://extensions.gnome.org"
"\">extensions.gnome.org</a>."
msgstr ""
"برای یافتن و افزودن افزونه‌ها، <a href=\"https://extensions.gnome.org\">پایگاه "
"افزونه‌های گنوم</a> را ببینید."
#: subprojects/extensions-app/data/ui/extensions-window.ui:34 #: subprojects/extensions-app/data/ui/extensions-window.ui:34
msgid "Warning" msgid "Warning"
@ -2504,11 +2569,11 @@ msgstr "هشدار"
#: subprojects/extensions-app/data/ui/extensions-window.ui:44 #: subprojects/extensions-app/data/ui/extensions-window.ui:44
msgid "" msgid ""
"Extensions can cause system issues, including performance problems. If you encounter problems with your system, it is " "Extensions can cause system issues, including performance problems. If you "
"recommended to disable all extensions." "encounter problems with your system, it is recommended to disable all extensions."
msgstr "" msgstr ""
"افزونه‌ها می‌توانند موجب اشکال‌های سامانه‌ای مانند مشکلات اجرایی شوند. اگر با مشکلاتی روی سامانه‌تان مواجه شدید، پیشنهاد " "افزونه‌ها می‌توانند موجب اشکال‌های سامانه‌ای مانند مشکلات اجرایی شوند. اگر با مشکلاتی "
"می‌شود تمام افزونه‌ها را از کار بندازید." "روی سامانه‌تان مواجه شدید، پیشنهاد می‌شود تمام افزونه‌ها را از کار بندازید."
#: subprojects/extensions-app/data/ui/extensions-window.ui:150 #: subprojects/extensions-app/data/ui/extensions-window.ui:150
msgid "Manually Installed" msgid "Manually Installed"
@ -2524,9 +2589,11 @@ msgstr "هیچ افزونه‌ای نصب نشده"
#: subprojects/extensions-app/data/ui/extensions-window.ui:252 #: subprojects/extensions-app/data/ui/extensions-window.ui:252
msgid "" msgid ""
"Were very sorry, but it was not possible to get the list of installed extensions. Make sure you are logged into GNOME " "Were very sorry, but it was not possible to get the list of installed extensions. "
"and try again." "Make sure you are logged into GNOME and try again."
msgstr "متأسفیم، ولی امکان گرفتن فهرست افزونه‌های نصب‌شده نبود. مطمئن شوید که به گنوم وارد شده‌اید و دوباره تلاش کنید." msgstr ""
"متأسفیم، ولی امکان گرفتن فهرست افزونه‌های نصب‌شده نبود. مطمئن شوید که به گنوم وارد "
"شده‌اید و دوباره تلاش کنید."
#: subprojects/extensions-app/data/ui/extensions-window.ui:288 #: subprojects/extensions-app/data/ui/extensions-window.ui:288
msgid "Extension Updates Ready" msgid "Extension Updates Ready"
@ -2551,7 +2618,8 @@ msgstr ""
"نام باید رشته‌ای بسیار کوتاه و توصیفی باشد.\n" "نام باید رشته‌ای بسیار کوتاه و توصیفی باشد.\n"
"مانند: %s" "مانند: %s"
#: subprojects/extensions-tool/src/command-create.c:302 subprojects/extensions-tool/src/main.c:238 #: subprojects/extensions-tool/src/command-create.c:302
#: subprojects/extensions-tool/src/main.c:238
msgid "Name" msgid "Name"
msgstr "نام" msgstr "نام"
@ -2567,7 +2635,8 @@ msgstr ""
#: subprojects/extensions-tool/src/command-create.c:336 #: subprojects/extensions-tool/src/command-create.c:336
msgid "" msgid ""
"UUID is a globally-unique identifier for your extension.\n" "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 "" msgstr ""
"شناسهٔ یکتا، شناسهٔ بی‌تکراری برای افزونه‌تان است.\n" "شناسهٔ یکتا، شناسهٔ بی‌تکراری برای افزونه‌تان است.\n"
"این شناسه باید در قالب یک نشانی رایانامه باشد (clicktofocus@janedoe.example.com)\n" "این شناسه باید در قالب یک نشانی رایانامه باشد (clicktofocus@janedoe.example.com)\n"
@ -2616,7 +2685,8 @@ msgstr "اطّلاعات افزونه را به صورت تعاملی وارد
msgid "Create a new extension" msgid "Create a new extension"
msgstr "ایجاد افزونه‌ای جدید" msgstr "ایجاد افزونه‌ای جدید"
#: subprojects/extensions-tool/src/command-create.c:476 subprojects/extensions-tool/src/command-list.c:172 #: subprojects/extensions-tool/src/command-create.c:476
#: subprojects/extensions-tool/src/command-list.c:172
msgid "Unknown arguments" msgid "Unknown arguments"
msgstr "آرگومان ناشناخته" msgstr "آرگومان ناشناخته"
@ -2624,12 +2694,16 @@ msgstr "آرگومان ناشناخته"
msgid "UUID, name and description are required" msgid "UUID, name and description are required"
msgstr "شناسهٔ یکتا، نام و شرح مورد نیازند" msgstr "شناسهٔ یکتا، نام و شرح مورد نیازند"
#: subprojects/extensions-tool/src/command-disable.c:46 subprojects/extensions-tool/src/command-enable.c:46 #: subprojects/extensions-tool/src/command-disable.c:46
#: subprojects/extensions-tool/src/command-info.c:50 subprojects/extensions-tool/src/command-list.c:64 #: subprojects/extensions-tool/src/command-enable.c:46
#: subprojects/extensions-tool/src/command-info.c:50
#: subprojects/extensions-tool/src/command-list.c:64
#: subprojects/extensions-tool/src/main.c:146
msgid "Failed to connect to GNOME Shell\n" msgid "Failed to connect to GNOME Shell\n"
msgstr "شکست در وصل شدن به پوستهٔ گنوم\n" msgstr "شکست در وصل شدن به پوستهٔ گنوم\n"
#: subprojects/extensions-tool/src/command-disable.c:53 subprojects/extensions-tool/src/command-enable.c:53 #: subprojects/extensions-tool/src/command-disable.c:53
#: subprojects/extensions-tool/src/command-enable.c:53
#, c-format #, c-format
msgid "Extension “%s” does not exist\n" msgid "Extension “%s” does not exist\n"
msgstr "افزونهٔ «%s» وجود ندارد\n" msgstr "افزونهٔ «%s» وجود ندارد\n"
@ -2638,15 +2712,21 @@ msgstr "افزونهٔ «%s» وجود ندارد\n"
msgid "Disable an extension" msgid "Disable an extension"
msgstr "از کار انداختن یک افزونه" msgstr "از کار انداختن یک افزونه"
#: subprojects/extensions-tool/src/command-disable.c:119 subprojects/extensions-tool/src/command-enable.c:119 #: subprojects/extensions-tool/src/command-disable.c:119
#: subprojects/extensions-tool/src/command-info.c:103 subprojects/extensions-tool/src/command-prefs.c:97 #: subprojects/extensions-tool/src/command-enable.c:119
#: subprojects/extensions-tool/src/command-reset.c:76 subprojects/extensions-tool/src/command-uninstall.c:104 #: 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" msgid "No UUID given"
msgstr "هیچ شناسهٔ یکتایی داده نشده" msgstr "هیچ شناسهٔ یکتایی داده نشده"
#: subprojects/extensions-tool/src/command-disable.c:124 subprojects/extensions-tool/src/command-enable.c:124 #: subprojects/extensions-tool/src/command-disable.c:124
#: subprojects/extensions-tool/src/command-info.c:108 subprojects/extensions-tool/src/command-prefs.c:102 #: subprojects/extensions-tool/src/command-enable.c:124
#: subprojects/extensions-tool/src/command-reset.c:81 subprojects/extensions-tool/src/command-uninstall.c:109 #: 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" msgid "More than one UUID given"
msgstr "بیش از یک شناسهٔ یکتا داده شده" msgstr "بیش از یک شناسهٔ یکتا داده شده"
@ -2654,7 +2734,8 @@ msgstr "بیش از یک شناسهٔ یکتا داده شده"
msgid "Enable an extension" msgid "Enable an extension"
msgstr "به کار انداختن یک افزونه" msgstr "به کار انداختن یک افزونه"
#: subprojects/extensions-tool/src/command-info.c:59 subprojects/extensions-tool/src/main.c:155 #: subprojects/extensions-tool/src/command-info.c:59
#: subprojects/extensions-tool/src/main.c:155
#, c-format #, c-format
msgid "Extension “%s” doesn't exist\n" msgid "Extension “%s” doesn't exist\n"
msgstr "افزونهٔ «%s» وجود ندارد\n" msgstr "افزونهٔ «%s» وجود ندارد\n"
@ -2731,7 +2812,8 @@ msgstr "SCHEMA"
msgid "A GSettings schema that should be included" msgid "A GSettings schema that should be included"
msgstr "یک شمای Gsettings که باید شامل شود" msgstr "یک شمای Gsettings که باید شامل شود"
#: subprojects/extensions-tool/src/command-pack.c:457 subprojects/extensions-tool/src/command-pack.c:468 #: subprojects/extensions-tool/src/command-pack.c:457
#: subprojects/extensions-tool/src/command-pack.c:468
msgid "DIRECTORY" msgid "DIRECTORY"
msgstr "DIRECTORY" msgstr "DIRECTORY"
@ -2772,7 +2854,12 @@ msgstr "بیش از یک شاخهٔ منبع مشخّص شده است"
msgid "Extension “%s” doesn't have preferences\n" msgid "Extension “%s” doesn't have preferences\n"
msgstr "افزونهٔ «%s» ترجیحات ندارد\n" msgstr "افزونهٔ «%s» ترجیحات ندارد\n"
#: subprojects/extensions-tool/src/command-prefs.c:79 #: subprojects/extensions-tool/src/command-prefs.c:62
#, c-format
msgid "Failed to open prefs for extension “%s”: %s\n"
msgstr "شکست در گشودن ترجیحات برای افزونهٔ «%s»: %s\n"
#: subprojects/extensions-tool/src/command-prefs.c:87
msgid "Opens extension preferences" msgid "Opens extension preferences"
msgstr "ترجیحات افزونه را می‌گشاید" msgstr "ترجیحات افزونه را می‌گشاید"
@ -2797,10 +2884,6 @@ msgstr "حذف نصب یک افزونه"
msgid "Do not print error messages" msgid "Do not print error messages"
msgstr "چاپ نکردن پیام‌های خطا" msgstr "چاپ نکردن پیام‌های خطا"
#: subprojects/extensions-tool/src/main.c:146
msgid "Failed to connect to GNOME Shell"
msgstr "شکست در وصل شدن به پوستهٔ گنوم"
#: subprojects/extensions-tool/src/main.c:244 #: subprojects/extensions-tool/src/main.c:244
msgid "Path" msgid "Path"
msgstr "مسیر" msgstr "مسیر"
@ -2821,7 +2904,8 @@ msgstr "وضعیت"
msgid "“version” takes no arguments" msgid "“version” takes no arguments"
msgstr "«version» آرگومانی نمی‌گیرد" msgstr "«version» آرگومانی نمی‌گیرد"
#: subprojects/extensions-tool/src/main.c:292 subprojects/extensions-tool/src/main.c:312 #: subprojects/extensions-tool/src/main.c:292
#: subprojects/extensions-tool/src/main.c:312
msgid "Usage:" msgid "Usage:"
msgstr "استفاده:" msgstr "استفاده:"
@ -2829,7 +2913,8 @@ msgstr "استفاده:"
msgid "Print version information and exit." msgid "Print version information and exit."
msgstr "چاپ اطّلاعات نگارش و خروج." msgstr "چاپ اطّلاعات نگارش و خروج."
#: subprojects/extensions-tool/src/main.c:310 subprojects/extensions-tool/src/main.c:313 #: subprojects/extensions-tool/src/main.c:310
#: subprojects/extensions-tool/src/main.c:313
msgid "COMMAND" msgid "COMMAND"
msgstr "COMMAND" msgstr "COMMAND"
@ -2865,7 +2950,8 @@ msgstr "حذف نصب افزونه"
msgid "List extensions" msgid "List extensions"
msgstr "فهرست افزونه‌ها" msgstr "فهرست افزونه‌ها"
#: subprojects/extensions-tool/src/main.c:323 subprojects/extensions-tool/src/main.c:324 #: subprojects/extensions-tool/src/main.c:323
#: subprojects/extensions-tool/src/main.c:324
msgid "Show extension info" msgid "Show extension info"
msgstr "نمایش اطّلاعات افزونه" msgstr "نمایش اطّلاعات افزونه"
@ -2928,11 +3014,17 @@ msgstr[1] "%Iu ورودی"
msgid "System Sounds" msgid "System Sounds"
msgstr "صداهای سامانه" msgstr "صداهای سامانه"
#~ msgid "Failed to connect to GNOME Shell"
#~ msgstr "شکست در وصل شدن به پوستهٔ گنوم"
#~ msgid "Enable introspection API" #~ msgid "Enable introspection API"
#~ msgstr "به کار انداختن رابط برنامه‌نویسی درون‌نگر" #~ msgstr "به کار انداختن رابط برنامه‌نویسی درون‌نگر"
#~ msgid "Enables a D-Bus API that allows to introspect the application state of the shell." #~ msgid ""
#~ msgstr "رابط برنامه‌‌نویسی دی‌باسی را به کار می‌اندازد که اجازهٔ درون‌نگری وضعیت برنامهٔ پوسته را می‌دهد." #~ "Enables a D-Bus API that allows to introspect the application state of the shell."
#~ msgstr ""
#~ "رابط برنامه‌‌نویسی دی‌باسی را به کار می‌اندازد که اجازهٔ درون‌نگری وضعیت برنامهٔ پوسته "
#~ "را می‌دهد."
#~ msgid "Minimize" #~ msgid "Minimize"
#~ msgstr "کمینه کردن" #~ msgstr "کمینه کردن"
@ -3022,8 +3114,11 @@ msgstr "صداهای سامانه"
#~ msgid "Orientation Lock" #~ msgid "Orientation Lock"
#~ msgstr "قفل جهت" #~ msgstr "قفل جهت"
#~ msgid "Keybinding that pauses and resumes all running tweens, for debugging purposes" #~ msgid ""
#~ msgstr "کلیدهای مقید برای مکث کردن و اجرا کردن تمام دوغلوهای در حال اجرا، برای مصارف رفع اشکال" #~ "Keybinding that pauses and resumes all running tweens, for debugging purposes"
#~ msgstr ""
#~ "کلیدهای مقید برای مکث کردن و اجرا کردن تمام دوغلوهای در حال اجرا، برای مصارف رفع "
#~ "اشکال"
#~ msgid "Which keyboard to use" #~ msgid "Which keyboard to use"
#~ msgstr "استفاده از کدام صفحه‌کلید" #~ msgstr "استفاده از کدام صفحه‌کلید"
@ -3266,13 +3361,15 @@ msgstr "صداهای سامانه"
#~ msgstr "گواهینامه لغو شده است" #~ msgstr "گواهینامه لغو شده است"
#~ msgid "Certificate uses an insecure cipher algorithm or is cryptographically weak" #~ msgid "Certificate uses an insecure cipher algorithm or is cryptographically weak"
#~ msgstr "گواهینامه از الگوریتم رمزی نامطمئنی استفاده می‌کند یا از نظر cryptography ضعیف است" #~ msgstr ""
#~ "گواهینامه از الگوریتم رمزی نامطمئنی استفاده می‌کند یا از نظر cryptography ضعیف است"
#~ msgid "" #~ msgid ""
#~ "The length of the server certificate, or the depth of the server certificate chain, exceed the limits imposed by " #~ "The length of the server certificate, or the depth of the server certificate "
#~ "the cryptography library" #~ "chain, exceed the limits imposed by the cryptography library"
#~ msgstr "" #~ msgstr ""
#~ "اندازه گواهینامه کارگزار، یا عمق حلقه‌ی گواهینامه کارگزار، از محدودیت اعمال شده توسط کتابخانه cryptography تجاوز کرد" #~ "اندازه گواهینامه کارگزار، یا عمق حلقه‌ی گواهینامه کارگزار، از محدودیت اعمال شده "
#~ "توسط کتابخانه cryptography تجاوز کرد"
#~ msgid "Internal error" #~ msgid "Internal error"
#~ msgstr "خطای داخلی" #~ msgstr "خطای داخلی"
@ -3319,17 +3416,21 @@ msgstr "صداهای سامانه"
#~ msgstr "فهرست دسته‌هایی که باید به شکل پوشه نمایش داده شوند" #~ msgstr "فهرست دسته‌هایی که باید به شکل پوشه نمایش داده شوند"
#~ msgid "" #~ msgid ""
#~ "Each category name in this list will be represented as folder in the application view, rather than being displayed " #~ "Each category name in this list will be represented as folder in the application "
#~ "inline in the main view." #~ "view, rather than being displayed inline in the main view."
#~ msgstr "" #~ msgstr ""
#~ "هر نام دسته در این فهرست، بجای اینکه پشت سر هم در نمای اصلی نمایش داده شود، به‌عنوان پوشه در نمای برنامه‌ها نشان داده " #~ "هر نام دسته در این فهرست، بجای اینکه پشت سر هم در نمای اصلی نمایش داده شود، "
#~ "می‌شود." #~ "به‌عنوان پوشه در نمای برنامه‌ها نشان داده می‌شود."
#~ msgid "Arrangement of buttons on the titlebar" #~ msgid "Arrangement of buttons on the titlebar"
#~ msgstr "چیدمان دکمه‌ها در نوار عنوان" #~ msgstr "چیدمان دکمه‌ها در نوار عنوان"
#~ msgid "This key overrides the key in org.gnome.desktop.wm.preferences when running GNOME Shell." #~ msgid ""
#~ msgstr "این کلید، کلید org.gnome.desktop.wm.preferences را در زمان اجرای گنوم‌شل بازنویسی می‌کند." #~ "This key overrides the key in org.gnome.desktop.wm.preferences when running "
#~ "GNOME Shell."
#~ msgstr ""
#~ "این کلید، کلید org.gnome.desktop.wm.preferences را در زمان اجرای گنوم‌شل بازنویسی "
#~ "می‌کند."
#~ msgid "Select an extension to configure using the combobox above." #~ msgid "Select an extension to configure using the combobox above."
#~ msgstr "با استفاده از جعبه‌ی بالا یک افزونه برای پیکربندی انتخاب کنید." #~ msgstr "با استفاده از جعبه‌ی بالا یک افزونه برای پیکربندی انتخاب کنید."
@ -3365,7 +3466,9 @@ msgstr "صداهای سامانه"
#~ msgstr "تایید جهت جفت‌شدن با %s" #~ msgstr "تایید جهت جفت‌شدن با %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 "لطفا تایید کنید که آیا کلید عبور مربوط به «%I06d» با همتای آن در دستگاه مطابقت دارد یا خیر." #~ msgstr ""
#~ "لطفا تایید کنید که آیا کلید عبور مربوط به «%I06d» با همتای آن در دستگاه مطابقت "
#~ "دارد یا خیر."
#~ msgid "Does not match" #~ msgid "Does not match"
#~ msgstr "منطبق نیست" #~ msgstr "منطبق نیست"
@ -3399,27 +3502,29 @@ msgstr "صداهای سامانه"
#~ msgstr "اینکه اطلاعات برنامه‌ها درباره‌ی میزان استفاده از منابع جمع‌آوری شود یا خیر" #~ msgstr "اینکه اطلاعات برنامه‌ها درباره‌ی میزان استفاده از منابع جمع‌آوری شود یا خیر"
#~ msgid "" #~ msgid ""
#~ "The shell normally monitors active applications in order to present the most used ones (e.g. in launchers). While " #~ "The shell normally monitors active applications in order to present the most "
#~ "this data will be kept private, you may want to disable this for privacy reasons. Please note that doing so won't " #~ "used ones (e.g. in launchers). While this data will be kept private, you may "
#~ "remove already saved data." #~ "want to disable this for privacy reasons. Please note that doing so won't remove "
#~ "already saved data."
#~ msgstr "" #~ msgstr ""
#~ "پوسته گنوم در حالت عادی برنامه‌های فعال را جهت ارائه برنامه‌های بیشتر استفاده شده پایش می کند. (برای مثال در اجرا " #~ "پوسته گنوم در حالت عادی برنامه‌های فعال را جهت ارائه برنامه‌های بیشتر استفاده شده "
#~ "کننده‌ها). با اینکه که این اطلاعات به صورت خصوصی نگاه‌داری می‌شود، ممکن است شما بخواهید این امکان را به دلایل امنیتی " #~ "پایش می کند. (برای مثال در اجرا کننده‌ها). با اینکه که این اطلاعات به صورت خصوصی "
#~ "غیرفعال کنید. لطفا توجه کنید این کار باعث پاک شدن اطلاعاتی که تاکنون ذخیره شده‌اند نمی‌شود." #~ "نگاه‌داری می‌شود، ممکن است شما بخواهید این امکان را به دلایل امنیتی غیرفعال کنید. "
#~ "لطفا توجه کنید این کار باعث پاک شدن اطلاعاتی که تاکنون ذخیره شده‌اند نمی‌شود."
#~ msgid "" #~ msgid ""
#~ "Internally used to store the last IM presence explicitly set by the user. The value here is from the " #~ "Internally used to store the last IM presence explicitly set by the user. The "
#~ "TpConnectionPresenceType enumeration." #~ "value here is from the TpConnectionPresenceType enumeration."
#~ msgstr "" #~ msgstr ""
#~ "به‌طور داخلی جهت ذخیره‌ی آخرین وضعیتِ حاضرِ ثبت شده‌ی توسط کاربر استفاده می‌شود. مقدار اینجا از محل محاسبه‌ی " #~ "به‌طور داخلی جهت ذخیره‌ی آخرین وضعیتِ حاضرِ ثبت شده‌ی توسط کاربر استفاده می‌شود. مقدار "
#~ "TpConnectionPresenceType است." #~ "اینجا از محل محاسبه‌ی TpConnectionPresenceType است."
#~ msgid "" #~ msgid ""
#~ "Internally used to store the last session presence status for the user. The value here is from the " #~ "Internally used to store the last session presence status for the user. The "
#~ "GsmPresenceStatus enumeration." #~ "value here is from the GsmPresenceStatus enumeration."
#~ msgstr "" #~ msgstr ""
#~ "به‌طور داخلی برای ذخیره آخرین نشستی که کاربر در آن وضعیت حاضر داشته است استفاده می‌شود. مقدار اینجا از محاسبه " #~ "به‌طور داخلی برای ذخیره آخرین نشستی که کاربر در آن وضعیت حاضر داشته است استفاده "
#~ "GsmPresenceStatus است." #~ "می‌شود. مقدار اینجا از محاسبه GsmPresenceStatus است."
#~ msgid "Keybinding to toggle the screen recorder" #~ msgid "Keybinding to toggle the screen recorder"
#~ msgstr "کلید مقید برای تغییر وضعیت ضبط کننده‌ی صفحه" #~ msgstr "کلید مقید برای تغییر وضعیت ضبط کننده‌ی صفحه"
@ -3431,38 +3536,49 @@ msgstr "صداهای سامانه"
#~ msgstr "سرعت فریم استفاده شده در تصویربرداری از صفحه‌نمایش." #~ msgstr "سرعت فریم استفاده شده در تصویربرداری از صفحه‌نمایش."
#~ msgid "" #~ 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 "
#~ msgstr "سرعت فریم حاصل از تصویربرداری از صفحه نمایش با استفاده از ضبط کننده نمایشگر پوسته‌ی گنوم بر اساس فریم بر ثانیه" #~ "recorder in frames-per-second."
#~ msgstr ""
#~ "سرعت فریم حاصل از تصویربرداری از صفحه نمایش با استفاده از ضبط کننده نمایشگر "
#~ "پوسته‌ی گنوم بر اساس فریم بر ثانیه"
#~ msgid "The gstreamer pipeline used to encode the screencast" #~ msgid "The gstreamer pipeline used to encode the screencast"
#~ msgstr "مجرای ارتباطی gstreamer برای کدگذاری تصویربرداری از صفحه نمایش" #~ msgstr "مجرای ارتباطی gstreamer برای کدگذاری تصویربرداری از صفحه نمایش"
#~ msgid "" #~ msgid ""
#~ "Sets the GStreamer pipeline used to encode recordings. It follows the syntax used for gst-launch. The pipeline " #~ "Sets the GStreamer pipeline used to encode recordings. It follows the syntax "
#~ "should have an unconnected sink pad where the recorded video is recorded. It will normally have a unconnected " #~ "used for gst-launch. The pipeline should have an unconnected sink pad where the "
#~ "source pad; output from that pad will be written into the output file. However the pipeline can also take care of " #~ "recorded video is recorded. It will normally have a unconnected source pad; "
#~ "its own output - this might be used to send the output to an icecast server via shout2send or similar. When unset " #~ "output from that pad will be written into the output file. However the pipeline "
#~ "or set to an empty value, the default pipeline will be used. This is currently 'vp8enc min_quantizer=13 " #~ "can also take care of its own output - this might be used to send the output to "
#~ "max_quantizer=13 cpu-used=5 deadline=1000000 threads=%T ! queue ! webmmux' and records to WEBM using the VP8 codec. " #~ "an icecast server via shout2send or similar. When unset or set to an empty "
#~ "%T is used as a placeholder for a guess at the optimal thread count on the system." #~ "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 "" #~ msgstr ""
#~ "Sets the GStreamer pipeline used to encode recordings. It follows the syntax used for gst-launch. The pipeline " #~ "Sets the GStreamer pipeline used to encode recordings. It follows the syntax "
#~ "should have an unconnected sink pad where the recorded video is recorded. It will normally have a unconnected " #~ "used for gst-launch. The pipeline should have an unconnected sink pad where the "
#~ "source pad; output from that pad will be written into the output file. However the pipeline can also take care of " #~ "recorded video is recorded. It will normally have a unconnected source pad; "
#~ "its own output - this might be used to send the output to an icecast server via shout2send or similar. When unset " #~ "output from that pad will be written into the output file. However the pipeline "
#~ "or set to an empty value, the default pipeline will be used. This is currently 'vp8enc min_quantizer=13 " #~ "can also take care of its own output - this might be used to send the output to "
#~ "max_quantizer=13 cpu-used=5 deadline=1000000 threads=%T ! queue ! webmmux' and records to WEBM using the VP8 codec. " #~ "an icecast server via shout2send or similar. When unset or set to an empty "
#~ "%T is used as a placeholder for a guess at the optimal thread count on the system." #~ "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."
#~ msgid "File extension used for storing the screencast" #~ msgid "File extension used for storing the screencast"
#~ msgstr "پسوند پرونده‌ی قابل استفاده برای ذخیره تصویربرداری از صفحه‌نمایش" #~ msgstr "پسوند پرونده‌ی قابل استفاده برای ذخیره تصویربرداری از صفحه‌نمایش"
#~ msgid "" #~ msgid ""
#~ "The filename for recorded screencasts will be a unique filename based on the current date, and use this extension. " #~ "The filename for recorded screencasts will be a unique filename based on the "
#~ "It should be changed when recording to a different container format." #~ "current date, and use this extension. It should be changed when recording to a "
#~ "different container format."
#~ msgstr "" #~ msgstr ""
#~ "نام پرونده‌ی ضبط شده برای تصویربرداری از صفحه‌نمایش یکتا و براساس تاریخ جاری خواهد بود و از این افزونه استفاده خواهد " #~ "نام پرونده‌ی ضبط شده برای تصویربرداری از صفحه‌نمایش یکتا و براساس تاریخ جاری خواهد "
#~ "کرد. اگر در زمان ضبط از قالب دیگری استفاده کنید باید تغییر کند." #~ "بود و از این افزونه استفاده خواهد کرد. اگر در زمان ضبط از قالب دیگری استفاده "
#~ "کنید باید تغییر کند."
#~| msgid "Session..." #~| msgid "Session..."
#~ msgid "Session…" #~ msgid "Session…"
@ -3483,7 +3599,8 @@ msgstr "صداهای سامانه"
#~ msgstr "ویدئو صفحه‌نمایش %Id %t" #~ msgstr "ویدئو صفحه‌نمایش %Id %t"
#~ msgid "Click Log Out to quit these applications and log out of the system." #~ msgid "Click Log Out to quit these applications and log out of the system."
#~ msgstr "بر روی خروج از سیستم کلیک کنید تا از این برنامه‌ها خارج و از سیستم خارج شوید." #~ msgstr ""
#~ "بر روی خروج از سیستم کلیک کنید تا از این برنامه‌ها خارج و از سیستم خارج شوید."
#~ msgid "Logging out of the system." #~ msgid "Logging out of the system."
#~ msgstr "درحال خروج از سیستم." #~ msgstr "درحال خروج از سیستم."
@ -3495,7 +3612,9 @@ msgstr "صداهای سامانه"
#~ msgstr "درحال خاموش کردن سیستم." #~ msgstr "درحال خاموش کردن سیستم."
#~ msgid "Click Restart to quit these applications and restart the system." #~ msgid "Click Restart to quit these applications and restart the system."
#~ msgstr "بر روی راه‌اندازی مجدد کلیک کنید تا از این برنامه‌ها خارج و سیستم مجددا راه‌اندازی گردد." #~ msgstr ""
#~ "بر روی راه‌اندازی مجدد کلیک کنید تا از این برنامه‌ها خارج و سیستم مجددا راه‌اندازی "
#~ "گردد."
#~ msgid "Restarting the system." #~ msgid "Restarting the system."
#~ msgstr "درحال راه‌اندازی مجدد سیستم." #~ msgstr "درحال راه‌اندازی مجدد سیستم."
@ -3623,11 +3742,11 @@ msgstr "صداهای سامانه"
#~ msgstr "وضعیت گپ شما «مشغول» تنظیم می‌شود" #~ msgstr "وضعیت گپ شما «مشغول» تنظیم می‌شود"
#~ msgid "" #~ msgid ""
#~ "Notifications are now disabled, including chat messages. Your online status has been adjusted to let others know " #~ "Notifications are now disabled, including chat messages. Your online status has "
#~ "that you might not see their messages." #~ "been adjusted to let others know that you might not see their messages."
#~ msgstr "" #~ msgstr ""
#~ "هم‌اکنون اعلان‌ها، از جمله پیام‌های گپ، غیرفعال هستند. وضعیتِ برخطِ شما به گونه‌ای تنظیم شده است که به دیگران نشان دهد " #~ "هم‌اکنون اعلان‌ها، از جمله پیام‌های گپ، غیرفعال هستند. وضعیتِ برخطِ شما به گونه‌ای "
#~ "ممکن است شما پیام‌هایشان را نبینید." #~ "تنظیم شده است که به دیگران نشان دهد ممکن است شما پیام‌هایشان را نبینید."
#~ msgid "Shutting down might cause them to lose unsaved work." #~ msgid "Shutting down might cause them to lose unsaved work."
#~ msgstr "خاموش‌کردن ممکن است باعث شود که کارهای ذخیره نشده خود را از دست بدهند." #~ msgstr "خاموش‌کردن ممکن است باعث شود که کارهای ذخیره نشده خود را از دست بدهند."

287
po/fr.po
View File

@ -23,8 +23,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: gnome-shell master fr\n" "Project-Id-Version: gnome-shell master fr\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell/issues\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell/issues\n"
"POT-Creation-Date: 2021-08-17 23:56+0000\n" "POT-Creation-Date: 2021-11-03 01:20+0000\n"
"PO-Revision-Date: 2021-08-30 19:11+0200\n" "PO-Revision-Date: 2021-11-03 10:00+0100\n"
"Last-Translator: Charles Monzat <charles.monzat@free.fr>\n" "Last-Translator: Charles Monzat <charles.monzat@free.fr>\n"
"Language-Team: GNOME French Team <gnomefr@traduc.org>\n" "Language-Team: GNOME French Team <gnomefr@traduc.org>\n"
"Language: fr\n" "Language: fr\n"
@ -39,47 +39,38 @@ msgid "Launchers"
msgstr "Lanceurs" msgstr "Lanceurs"
#: data/50-gnome-shell-launchers.xml:10 #: data/50-gnome-shell-launchers.xml:10
#| msgid "Switch to application 1"
msgid "Activate favorite application 1" msgid "Activate favorite application 1"
msgstr "Activer lapplication favorite 1" msgstr "Activer lapplication favorite 1"
#: data/50-gnome-shell-launchers.xml:14 #: data/50-gnome-shell-launchers.xml:14
#| msgid "Switch to application 2"
msgid "Activate favorite application 2" msgid "Activate favorite application 2"
msgstr "Activer lapplication favorite 2" msgstr "Activer lapplication favorite 2"
#: data/50-gnome-shell-launchers.xml:18 #: data/50-gnome-shell-launchers.xml:18
#| msgid "Switch to application 3"
msgid "Activate favorite application 3" msgid "Activate favorite application 3"
msgstr "Activer lapplication favorite 3" msgstr "Activer lapplication favorite 3"
#: data/50-gnome-shell-launchers.xml:22 #: data/50-gnome-shell-launchers.xml:22
#| msgid "Switch to application 4"
msgid "Activate favorite application 4" msgid "Activate favorite application 4"
msgstr "Activer lapplication favorite 4" msgstr "Activer lapplication favorite 4"
#: data/50-gnome-shell-launchers.xml:26 #: data/50-gnome-shell-launchers.xml:26
#| msgid "Switch to application 5"
msgid "Activate favorite application 5" msgid "Activate favorite application 5"
msgstr "Activer lapplication favorite 5" msgstr "Activer lapplication favorite 5"
#: data/50-gnome-shell-launchers.xml:30 #: data/50-gnome-shell-launchers.xml:30
#| msgid "Switch to application 6"
msgid "Activate favorite application 6" msgid "Activate favorite application 6"
msgstr "Activer lapplication favorite 6" msgstr "Activer lapplication favorite 6"
#: data/50-gnome-shell-launchers.xml:34 #: data/50-gnome-shell-launchers.xml:34
#| msgid "Switch to application 7"
msgid "Activate favorite application 7" msgid "Activate favorite application 7"
msgstr "Activer lapplication favorite 7" msgstr "Activer lapplication favorite 7"
#: data/50-gnome-shell-launchers.xml:38 #: data/50-gnome-shell-launchers.xml:38
#| msgid "Switch to application 8"
msgid "Activate favorite application 8" msgid "Activate favorite application 8"
msgstr "Activer lapplication favorite 8" msgstr "Activer lapplication favorite 8"
#: data/50-gnome-shell-launchers.xml:42 #: data/50-gnome-shell-launchers.xml:42
#| msgid "Switch to application 9"
msgid "Activate favorite application 9" msgid "Activate favorite application 9"
msgstr "Activer lapplication favorite 9" msgstr "Activer lapplication favorite 9"
@ -282,22 +273,11 @@ msgstr ""
"un nombre très élevé représentera des versions qui nexistent pas encore. Ce " "un nombre très élevé représentera des versions qui nexistent pas encore. Ce "
"nombre très élevé peut être utilisé pour désactiver le dialogue." "nombre très élevé peut être utilisé pour désactiver le dialogue."
#: data/org.gnome.shell.gschema.xml.in:109 #: data/org.gnome.shell.gschema.xml.in:133
msgid "Enable introspection API"
msgstr "Activer lAPI dintrospection"
#: data/org.gnome.shell.gschema.xml.in:110
msgid ""
"Enables a D-Bus API that allows to introspect the application state of the "
"shell."
msgstr ""
"Active lAPI D-Bus, qui permet dintrospecter létat dapplication du shell."
#: data/org.gnome.shell.gschema.xml.in:141
msgid "Layout of the app picker" msgid "Layout of the app picker"
msgstr "Disposition du sélecteur dapplications" msgstr "Disposition du sélecteur dapplications"
#: data/org.gnome.shell.gschema.xml.in:142 #: data/org.gnome.shell.gschema.xml.in:134
msgid "" msgid ""
"Layout of the app picker. Each entry in the array is a page. Pages are " "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 " "stored in the order they appear in GNOME Shell. Each page contains an "
@ -311,114 +291,114 @@ msgstr ""
"stockées comme « données » : • « position » : la position de licône de " "stockées comme « données » : • « position » : la position de licône de "
"lapplication sur la page" "lapplication sur la page"
#: data/org.gnome.shell.gschema.xml.in:157 #: data/org.gnome.shell.gschema.xml.in:149
msgid "Keybinding to open the application menu" msgid "Keybinding to open the application menu"
msgstr "Combinaison de touches pour ouvrir le menu de lapplication" msgstr "Combinaison de touches pour ouvrir le menu de lapplication"
#: data/org.gnome.shell.gschema.xml.in:158 #: data/org.gnome.shell.gschema.xml.in:150
msgid "Keybinding to open the application menu." msgid "Keybinding to open the application menu."
msgstr "Combinaison de touches pour ouvrir le menu de lapplication." msgstr "Combinaison de touches pour ouvrir le menu de lapplication."
#: data/org.gnome.shell.gschema.xml.in:164 #: data/org.gnome.shell.gschema.xml.in:156
#: data/org.gnome.shell.gschema.xml.in:171 #: data/org.gnome.shell.gschema.xml.in:163
msgid "Keybinding to shift between overview states" msgid "Keybinding to shift between overview states"
msgstr "" msgstr ""
"Combinaison de touches pour basculer entre les états de la vue densemble" "Combinaison de touches pour basculer entre les états de la vue densemble"
#: data/org.gnome.shell.gschema.xml.in:165 #: data/org.gnome.shell.gschema.xml.in:157
msgid "Keybinding to shift between session, window picker and app grid" msgid "Keybinding to shift between session, window picker and app grid"
msgstr "" msgstr ""
"Combinaison de touches pour basculer entre la session, le sélecteur de " "Combinaison de touches pour basculer entre la session, le sélecteur de "
"fenêtre et la grille des applications" "fenêtre et la grille des applications"
#: data/org.gnome.shell.gschema.xml.in:172 #: data/org.gnome.shell.gschema.xml.in:164
msgid "Keybinding to shift between app grid, window picker and session" msgid "Keybinding to shift between app grid, window picker and session"
msgstr "" msgstr ""
"Combinaison de touches pour basculer entre la grille des applications, le " "Combinaison de touches pour basculer entre la grille des applications, le "
"sélecteur de fenêtre et la session" "sélecteur de fenêtre et la session"
#: data/org.gnome.shell.gschema.xml.in:178 #: data/org.gnome.shell.gschema.xml.in:170
msgid "Keybinding to open the “Show Applications” view" msgid "Keybinding to open the “Show Applications” view"
msgstr "" msgstr ""
"Combinaison de touches pour ouvrir la vue « Afficher les applications »" "Combinaison de touches pour ouvrir la vue « Afficher les applications »"
#: data/org.gnome.shell.gschema.xml.in:179 #: data/org.gnome.shell.gschema.xml.in:171
msgid "" msgid ""
"Keybinding to open the “Show Applications” view of the Activities Overview." "Keybinding to open the “Show Applications” view of the Activities Overview."
msgstr "" msgstr ""
"Combinaison de touches pour ouvrir la vue « Afficher les applications » de " "Combinaison de touches pour ouvrir la vue « Afficher les applications » de "
"la vue densemble des activités." "la vue densemble des activités."
#: data/org.gnome.shell.gschema.xml.in:186 #: data/org.gnome.shell.gschema.xml.in:178
msgid "Keybinding to open the overview" msgid "Keybinding to open the overview"
msgstr "Combinaison de touches pour ouvrir la vue densemble" msgstr "Combinaison de touches pour ouvrir la vue densemble"
#: data/org.gnome.shell.gschema.xml.in:187 #: data/org.gnome.shell.gschema.xml.in:179
msgid "Keybinding to open the Activities Overview." msgid "Keybinding to open the Activities Overview."
msgstr "Combinaison de touches pour ouvrir la vue densemble des activités." msgstr "Combinaison de touches pour ouvrir la vue densemble des activités."
#: data/org.gnome.shell.gschema.xml.in:193 #: data/org.gnome.shell.gschema.xml.in:185
msgid "Keybinding to toggle the visibility of the notification list" msgid "Keybinding to toggle the visibility of the notification list"
msgstr "" msgstr ""
"Combinaison de touches pour inverser la visibilité de la liste des " "Combinaison de touches pour inverser la visibilité de la liste des "
"notifications" "notifications"
#: data/org.gnome.shell.gschema.xml.in:194 #: data/org.gnome.shell.gschema.xml.in:186
msgid "Keybinding to toggle the visibility of the notification list." msgid "Keybinding to toggle the visibility of the notification list."
msgstr "" msgstr ""
"Combinaison de touches pour inverser la visibilité de la liste des " "Combinaison de touches pour inverser la visibilité de la liste des "
"notifications." "notifications."
#: data/org.gnome.shell.gschema.xml.in:200 #: data/org.gnome.shell.gschema.xml.in:192
msgid "Keybinding to focus the active notification" msgid "Keybinding to focus the active notification"
msgstr "Combinaison de touches pour donner le focus à la notification active" msgstr "Combinaison de touches pour donner le focus à la notification active"
#: data/org.gnome.shell.gschema.xml.in:201 #: data/org.gnome.shell.gschema.xml.in:193
msgid "Keybinding to focus the active notification." msgid "Keybinding to focus the active notification."
msgstr "Combinaison de touches pour donner le focus à la notification active." msgstr "Combinaison de touches pour donner le focus à la notification active."
#: data/org.gnome.shell.gschema.xml.in:207 #: data/org.gnome.shell.gschema.xml.in:199
msgid "Switch to application 1" msgid "Switch to application 1"
msgstr "Passer à lapplication 1" msgstr "Passer à lapplication 1"
#: data/org.gnome.shell.gschema.xml.in:211 #: data/org.gnome.shell.gschema.xml.in:203
msgid "Switch to application 2" msgid "Switch to application 2"
msgstr "Passer à lapplication 2" msgstr "Passer à lapplication 2"
#: data/org.gnome.shell.gschema.xml.in:215 #: data/org.gnome.shell.gschema.xml.in:207
msgid "Switch to application 3" msgid "Switch to application 3"
msgstr "Passer à lapplication 3" msgstr "Passer à lapplication 3"
#: data/org.gnome.shell.gschema.xml.in:219 #: data/org.gnome.shell.gschema.xml.in:211
msgid "Switch to application 4" msgid "Switch to application 4"
msgstr "Passer à lapplication 4" msgstr "Passer à lapplication 4"
#: data/org.gnome.shell.gschema.xml.in:223 #: data/org.gnome.shell.gschema.xml.in:215
msgid "Switch to application 5" msgid "Switch to application 5"
msgstr "Passer à lapplication 5" msgstr "Passer à lapplication 5"
#: data/org.gnome.shell.gschema.xml.in:227 #: data/org.gnome.shell.gschema.xml.in:219
msgid "Switch to application 6" msgid "Switch to application 6"
msgstr "Passer à lapplication 6" msgstr "Passer à lapplication 6"
#: data/org.gnome.shell.gschema.xml.in:231 #: data/org.gnome.shell.gschema.xml.in:223
msgid "Switch to application 7" msgid "Switch to application 7"
msgstr "Passer à lapplication 7" msgstr "Passer à lapplication 7"
#: data/org.gnome.shell.gschema.xml.in:235 #: data/org.gnome.shell.gschema.xml.in:227
msgid "Switch to application 8" msgid "Switch to application 8"
msgstr "Passer à lapplication 8" msgstr "Passer à lapplication 8"
#: data/org.gnome.shell.gschema.xml.in:239 #: data/org.gnome.shell.gschema.xml.in:231
msgid "Switch to application 9" msgid "Switch to application 9"
msgstr "Passer à lapplication 9" msgstr "Passer à lapplication 9"
#: data/org.gnome.shell.gschema.xml.in:248 #: data/org.gnome.shell.gschema.xml.in:240
#: data/org.gnome.shell.gschema.xml.in:275 #: data/org.gnome.shell.gschema.xml.in:267
msgid "Limit switcher to current workspace." msgid "Limit switcher to current workspace."
msgstr "Limite le sélecteur de fenêtres à lespace de travail actuel." msgstr "Limite le sélecteur de fenêtres à lespace de travail actuel."
#: data/org.gnome.shell.gschema.xml.in:249 #: data/org.gnome.shell.gschema.xml.in:241
msgid "" msgid ""
"If true, only applications that have windows on the current workspace are " "If true, only applications that have windows on the current workspace are "
"shown in the switcher. Otherwise, all applications are included." "shown in the switcher. Otherwise, all applications are included."
@ -427,11 +407,11 @@ msgstr ""
"travail actuel sont affichées dans le sélecteur. Sinon, toutes les " "travail actuel sont affichées dans le sélecteur. Sinon, toutes les "
"applications y sont incluses." "applications y sont incluses."
#: data/org.gnome.shell.gschema.xml.in:266 #: data/org.gnome.shell.gschema.xml.in:258
msgid "The application icon mode." msgid "The application icon mode."
msgstr "Le type dicône des applications." msgstr "Le type dicône des applications."
#: data/org.gnome.shell.gschema.xml.in:267 #: data/org.gnome.shell.gschema.xml.in:259
msgid "" msgid ""
"Configures how the windows are shown in the switcher. Valid possibilities " "Configures how the windows are shown in the switcher. Valid possibilities "
"are “thumbnail-only” (shows a thumbnail of the window), “app-icon-" "are “thumbnail-only” (shows a thumbnail of the window), “app-icon-"
@ -442,7 +422,7 @@ msgstr ""
"fenêtre), « app-icon-only » (affiche uniquement licône de lapplication), " "fenêtre), « app-icon-only » (affiche uniquement licône de lapplication), "
"ou « both » (affiche les deux)." "ou « both » (affiche les deux)."
#: data/org.gnome.shell.gschema.xml.in:276 #: data/org.gnome.shell.gschema.xml.in:268
msgid "" msgid ""
"If true, only windows from the current workspace are shown in the switcher. " "If true, only windows from the current workspace are shown in the switcher. "
"Otherwise, all windows are included." "Otherwise, all windows are included."
@ -450,58 +430,58 @@ msgstr ""
"Si vrai, seules les fenêtres de lespace de travail actuel sont affichées " "Si vrai, seules les fenêtres de lespace de travail actuel sont affichées "
"dans le sélecteur. Sinon, toutes les fenêtres y sont incluses." "dans le sélecteur. Sinon, toutes les fenêtres y sont incluses."
#: data/org.gnome.shell.gschema.xml.in:286 #: data/org.gnome.shell.gschema.xml.in:278
msgid "Locations" msgid "Locations"
msgstr "Emplacements" msgstr "Emplacements"
#: data/org.gnome.shell.gschema.xml.in:287 #: data/org.gnome.shell.gschema.xml.in:279
msgid "The locations to show in world clocks" msgid "The locations to show in world clocks"
msgstr "Les emplacements à afficher dans les horloges mondiales" msgstr "Les emplacements à afficher dans les horloges mondiales"
#: data/org.gnome.shell.gschema.xml.in:297 #: data/org.gnome.shell.gschema.xml.in:289
msgid "Automatic location" msgid "Automatic location"
msgstr "Emplacement automatique" msgstr "Emplacement automatique"
#: data/org.gnome.shell.gschema.xml.in:298 #: data/org.gnome.shell.gschema.xml.in:290
msgid "Whether to fetch the current location or not" msgid "Whether to fetch the current location or not"
msgstr "Indique sil faut récupérer lemplacement actuel ou non" msgstr "Indique sil faut récupérer lemplacement actuel ou non"
#: data/org.gnome.shell.gschema.xml.in:305 #: data/org.gnome.shell.gschema.xml.in:297
msgid "Location" msgid "Location"
msgstr "Emplacement" msgstr "Emplacement"
#: data/org.gnome.shell.gschema.xml.in:306 #: data/org.gnome.shell.gschema.xml.in:298
msgid "The location for which to show a forecast" msgid "The location for which to show a forecast"
msgstr "Lemplacement pour lequel afficher les prévisions" msgstr "Lemplacement pour lequel afficher les prévisions"
#: data/org.gnome.shell.gschema.xml.in:318 #: data/org.gnome.shell.gschema.xml.in:310
msgid "Attach modal dialog to the parent window" msgid "Attach modal dialog to the parent window"
msgstr "Attacher les dialogues modaux à leur fenêtre parente" msgstr "Attacher les dialogues modaux à leur fenêtre parente"
#: data/org.gnome.shell.gschema.xml.in:319 #: data/org.gnome.shell.gschema.xml.in:311
#: data/org.gnome.shell.gschema.xml.in:320
#: data/org.gnome.shell.gschema.xml.in:328 #: data/org.gnome.shell.gschema.xml.in:328
#: data/org.gnome.shell.gschema.xml.in:336 #: data/org.gnome.shell.gschema.xml.in:336
#: data/org.gnome.shell.gschema.xml.in:344 #: data/org.gnome.shell.gschema.xml.in:344
#: data/org.gnome.shell.gschema.xml.in:352
msgid "" msgid ""
"This key overrides the key in org.gnome.mutter when running GNOME Shell." "This key overrides the key in org.gnome.mutter when running GNOME Shell."
msgstr "" msgstr ""
"Cette clé prend le pas sur la clé dans org.gnome.mutter lorsque Shell de " "Cette clé prend le pas sur la clé dans org.gnome.mutter lorsque Shell de "
"GNOME est lancé." "GNOME est lancé."
#: data/org.gnome.shell.gschema.xml.in:327 #: data/org.gnome.shell.gschema.xml.in:319
msgid "Enable edge tiling when dropping windows on screen edges" msgid "Enable edge tiling when dropping windows on screen edges"
msgstr "Activer lempilage des fenêtres déposées sur les bords de lécran" msgstr "Activer lempilage des fenêtres déposées sur les bords de lécran"
#: data/org.gnome.shell.gschema.xml.in:335 #: data/org.gnome.shell.gschema.xml.in:327
msgid "Workspaces are managed dynamically" msgid "Workspaces are managed dynamically"
msgstr "Les espaces de travail sont gérés dynamiquement" msgstr "Les espaces de travail sont gérés dynamiquement"
#: data/org.gnome.shell.gschema.xml.in:343 #: data/org.gnome.shell.gschema.xml.in:335
msgid "Workspaces only on primary monitor" msgid "Workspaces only on primary monitor"
msgstr "Les espaces de travail sont uniquement sur lécran principal" msgstr "Les espaces de travail sont uniquement sur lécran principal"
#: data/org.gnome.shell.gschema.xml.in:351 #: data/org.gnome.shell.gschema.xml.in:343
msgid "Delay focus changes in mouse mode until the pointer stops moving" msgid "Delay focus changes in mouse mode until the pointer stops moving"
msgstr "" msgstr ""
"Retarder les changements de focus en mode souris jusquà ce que le pointeur " "Retarder les changements de focus en mode souris jusquà ce que le pointeur "
@ -539,18 +519,18 @@ msgid "Visit extension homepage"
msgstr "Visiter le site Web de lextension" msgstr "Visiter le site Web de lextension"
#: js/gdm/authPrompt.js:141 js/ui/audioDeviceSelection.js:61 #: js/gdm/authPrompt.js:141 js/ui/audioDeviceSelection.js:61
#: js/ui/components/networkAgent.js:111 js/ui/components/polkitAgent.js:138 #: js/ui/components/networkAgent.js:110 js/ui/components/polkitAgent.js:138
#: js/ui/endSessionDialog.js:438 js/ui/extensionDownloader.js:190 #: js/ui/endSessionDialog.js:438 js/ui/extensionDownloader.js:228
#: js/ui/shellMountOperation.js:376 js/ui/shellMountOperation.js:386 #: js/ui/shellMountOperation.js:376 js/ui/shellMountOperation.js:386
#: js/ui/status/network.js:978 subprojects/extensions-app/js/main.js:183 #: js/ui/status/network.js:978 subprojects/extensions-app/js/main.js:183
msgid "Cancel" msgid "Cancel"
msgstr "Annuler" msgstr "Annuler"
#. Cisco LEAP #. Cisco LEAP
#: js/gdm/authPrompt.js:285 js/ui/components/networkAgent.js:210 #: js/gdm/authPrompt.js:285 js/ui/components/networkAgent.js:209
#: js/ui/components/networkAgent.js:226 js/ui/components/networkAgent.js:250 #: js/ui/components/networkAgent.js:225 js/ui/components/networkAgent.js:249
#: js/ui/components/networkAgent.js:271 js/ui/components/networkAgent.js:291 #: js/ui/components/networkAgent.js:270 js/ui/components/networkAgent.js:290
#: js/ui/components/networkAgent.js:301 js/ui/components/polkitAgent.js:275 #: js/ui/components/networkAgent.js:300 js/ui/components/polkitAgent.js:275
#: js/ui/shellMountOperation.js:326 #: js/ui/shellMountOperation.js:326
msgid "Password" msgid "Password"
msgstr "Mot de passe" msgstr "Mot de passe"
@ -573,8 +553,8 @@ msgstr "(par ex. utilisateur ou %s)"
#. TTLS and PEAP are actually much more complicated, but this complication #. TTLS and PEAP are actually much more complicated, but this complication
#. is not visible here since we only care about phase2 authentication #. is not visible here since we only care about phase2 authentication
#. (and don't even care of which one) #. (and don't even care of which one)
#: js/gdm/loginDialog.js:926 js/ui/components/networkAgent.js:246 #: js/gdm/loginDialog.js:926 js/ui/components/networkAgent.js:245
#: js/ui/components/networkAgent.js:269 js/ui/components/networkAgent.js:287 #: js/ui/components/networkAgent.js:268 js/ui/components/networkAgent.js:286
msgid "Username" msgid "Username"
msgstr "Nom dutilisateur" msgstr "Nom dutilisateur"
@ -679,65 +659,65 @@ msgctxt "search-result"
msgid "Lock Screen Rotation" msgid "Lock Screen Rotation"
msgstr "Verrouiller la rotation de lécran" msgstr "Verrouiller la rotation de lécran"
#: js/misc/util.js:120 #: js/misc/util.js:121
msgid "Command not found" msgid "Command not found"
msgstr "Commande non trouvée" msgstr "Commande non trouvée"
#. Replace "Error invoking GLib.shell_parse_argv: " with #. Replace "Error invoking GLib.shell_parse_argv: " with
#. something nicer #. something nicer
#: js/misc/util.js:156 #: js/misc/util.js:157
msgid "Could not parse command:" msgid "Could not parse command:"
msgstr "Impossible danalyser la commande :" msgstr "Impossible danalyser la commande :"
#: js/misc/util.js:164 #: js/misc/util.js:165
#, javascript-format #, javascript-format
msgid "Execution of “%s” failed:" msgid "Execution of “%s” failed:"
msgstr "Exécution de « %s » impossible :" msgstr "Exécution de « %s » impossible :"
#: js/misc/util.js:181 #: js/misc/util.js:182
msgid "Just now" msgid "Just now"
msgstr "À linstant" msgstr "À linstant"
#: js/misc/util.js:183 #: js/misc/util.js:184
#, javascript-format #, javascript-format
msgid "%d minute ago" msgid "%d minute ago"
msgid_plural "%d minutes ago" msgid_plural "%d minutes ago"
msgstr[0] "Il y a %d minute" msgstr[0] "Il y a %d minute"
msgstr[1] "Il y a %d minutes" msgstr[1] "Il y a %d minutes"
#: js/misc/util.js:187 #: js/misc/util.js:188
#, javascript-format #, javascript-format
msgid "%d hour ago" msgid "%d hour ago"
msgid_plural "%d hours ago" msgid_plural "%d hours ago"
msgstr[0] "Il y a %d heure" msgstr[0] "Il y a %d heure"
msgstr[1] "Il y a %d heures" msgstr[1] "Il y a %d heures"
#: js/misc/util.js:191 js/ui/dateMenu.js:162 #: js/misc/util.js:192 js/ui/dateMenu.js:162
msgid "Yesterday" msgid "Yesterday"
msgstr "Hier" msgstr "Hier"
#: js/misc/util.js:193 #: js/misc/util.js:194
#, javascript-format #, javascript-format
msgid "%d day ago" msgid "%d day ago"
msgid_plural "%d days ago" msgid_plural "%d days ago"
msgstr[0] "Il y a %d jour" msgstr[0] "Il y a %d jour"
msgstr[1] "Il y a %d jours" msgstr[1] "Il y a %d jours"
#: js/misc/util.js:197 #: js/misc/util.js:198
#, javascript-format #, javascript-format
msgid "%d week ago" msgid "%d week ago"
msgid_plural "%d weeks ago" msgid_plural "%d weeks ago"
msgstr[0] "Il y a %d semaine" msgstr[0] "Il y a %d semaine"
msgstr[1] "Il y a %d semaines" msgstr[1] "Il y a %d semaines"
#: js/misc/util.js:201 #: js/misc/util.js:202
#, javascript-format #, javascript-format
msgid "%d month ago" msgid "%d month ago"
msgid_plural "%d months ago" msgid_plural "%d months ago"
msgstr[0] "Il y a %d mois" msgstr[0] "Il y a %d mois"
msgstr[1] "Il y a %d mois" msgstr[1] "Il y a %d mois"
#: js/misc/util.js:204 #: js/misc/util.js:205
#, javascript-format #, javascript-format
msgid "%d year ago" msgid "%d year ago"
msgid_plural "%d years ago" msgid_plural "%d years ago"
@ -745,20 +725,20 @@ msgstr[0] "Il y a %d an"
msgstr[1] "Il y a %d ans" msgstr[1] "Il y a %d ans"
#. Translators: Time in 24h format #. Translators: Time in 24h format
#: js/misc/util.js:237 #: js/misc/util.js:238
msgid "%H%M" msgid "%H%M"
msgstr "%H%M" msgstr "%H%M"
#. Translators: this is the word "Yesterday" followed by a #. Translators: this is the word "Yesterday" followed by a
#. time string in 24h format. i.e. "Yesterday, 14:30" #. time string in 24h format. i.e. "Yesterday, 14:30"
#: js/misc/util.js:243 #: js/misc/util.js:244
#, no-c-format #, no-c-format
msgid "Yesterday, %H%M" msgid "Yesterday, %H%M"
msgstr "Hier, %H%M" msgstr "Hier, %H%M"
#. Translators: this is the week day name followed by a time #. Translators: this is the week day name followed by a time
#. string in 24h format. i.e. "Monday, 14:30" #. string in 24h format. i.e. "Monday, 14:30"
#: js/misc/util.js:249 #: js/misc/util.js:250
#, no-c-format #, no-c-format
msgid "%A, %H%M" msgid "%A, %H%M"
msgstr "%A, %H%M" msgstr "%A, %H%M"
@ -766,7 +746,7 @@ msgstr "%A, %H%M"
#. Translators: this is the month name and day number #. Translators: this is the month name and day number
#. followed by a time string in 24h format. #. followed by a time string in 24h format.
#. i.e. "May 25, 14:30" #. i.e. "May 25, 14:30"
#: js/misc/util.js:255 #: js/misc/util.js:256
#, no-c-format #, no-c-format
msgid "%B %-d, %H%M" msgid "%B %-d, %H%M"
msgstr "%-d %B, %H%M" msgstr "%-d %B, %H%M"
@ -774,7 +754,7 @@ msgstr "%-d %B, %H%M"
#. Translators: this is the month name, day number, year #. Translators: this is the month name, day number, year
#. number followed by a time string in 24h format. #. number followed by a time string in 24h format.
#. i.e. "May 25 2012, 14:30" #. i.e. "May 25 2012, 14:30"
#: js/misc/util.js:261 #: js/misc/util.js:262
#, no-c-format #, no-c-format
msgid "%B %-d %Y, %H%M" msgid "%B %-d %Y, %H%M"
msgstr "%-d %B %Y, %H%M" msgstr "%-d %B %Y, %H%M"
@ -782,20 +762,20 @@ msgstr "%-d %B %Y, %H%M"
#. Show only the time if date is on today #. Show only the time if date is on today
#. eslint-disable-line no-lonely-if #. eslint-disable-line no-lonely-if
#. Translators: Time in 12h format #. Translators: Time in 12h format
#: js/misc/util.js:266 #: js/misc/util.js:267
msgid "%l%M %p" msgid "%l%M %p"
msgstr "%l%M %p" msgstr "%l%M %p"
#. Translators: this is the word "Yesterday" followed by a #. Translators: this is the word "Yesterday" followed by a
#. time string in 12h format. i.e. "Yesterday, 2:30 pm" #. time string in 12h format. i.e. "Yesterday, 2:30 pm"
#: js/misc/util.js:272 #: js/misc/util.js:273
#, no-c-format #, no-c-format
msgid "Yesterday, %l%M %p" msgid "Yesterday, %l%M %p"
msgstr "Hier, %l%M %p" msgstr "Hier, %l%M %p"
#. Translators: this is the week day name followed by a time #. Translators: this is the week day name followed by a time
#. string in 12h format. i.e. "Monday, 2:30 pm" #. string in 12h format. i.e. "Monday, 2:30 pm"
#: js/misc/util.js:278 #: js/misc/util.js:279
#, no-c-format #, no-c-format
msgid "%A, %l%M %p" msgid "%A, %l%M %p"
msgstr "%A, %l%M %p" msgstr "%A, %l%M %p"
@ -803,7 +783,7 @@ msgstr "%A, %l%M %p"
#. Translators: this is the month name and day number #. Translators: this is the month name and day number
#. followed by a time string in 12h format. #. followed by a time string in 12h format.
#. i.e. "May 25, 2:30 pm" #. i.e. "May 25, 2:30 pm"
#: js/misc/util.js:284 #: js/misc/util.js:285
#, no-c-format #, no-c-format
msgid "%B %-d, %l%M %p" msgid "%B %-d, %l%M %p"
msgstr "%-d %B, %l%M %p" msgstr "%-d %B, %l%M %p"
@ -811,17 +791,17 @@ msgstr "%-d %B, %l%M %p"
#. Translators: this is the month name, day number, year #. Translators: this is the month name, day number, year
#. number followed by a time string in 12h format. #. number followed by a time string in 12h format.
#. i.e. "May 25 2012, 2:30 pm" #. i.e. "May 25 2012, 2:30 pm"
#: js/misc/util.js:290 #: js/misc/util.js:291
#, no-c-format #, no-c-format
msgid "%B %-d %Y, %l%M %p" msgid "%B %-d %Y, %l%M %p"
msgstr "%-d %B %Y, %l%M %p" msgstr "%-d %B %Y, %l%M %p"
#. TRANSLATORS: this is the title of the wifi captive portal login window #. TRANSLATORS: this is the title of the wifi captive portal login window
#: js/portalHelper/main.js:42 #: js/portalHelper/main.js:49
msgid "Hotspot Login" msgid "Hotspot Login"
msgstr "Identification du point daccès" msgstr "Identification du point daccès"
#: js/portalHelper/main.js:88 #: js/portalHelper/main.js:95
msgid "" msgid ""
"Your connection to this hotspot login is not secure. Passwords or other " "Your connection to this hotspot login is not secure. Passwords or other "
"information you enter on this page can be viewed by people nearby." "information you enter on this page can be viewed by people nearby."
@ -1067,40 +1047,40 @@ msgstr "La version installée de udisks ne gère pas le réglage PIM"
msgid "Open with %s" msgid "Open with %s"
msgstr "Ouvrir avec %s" msgstr "Ouvrir avec %s"
#: js/ui/components/networkAgent.js:93 #: js/ui/components/networkAgent.js:92
msgid "" msgid ""
"Alternatively you can connect by pushing the “WPS” button on your router." "Alternatively you can connect by pushing the “WPS” button on your router."
msgstr "" msgstr ""
"Vous pouvez également vous connecter en appuyant sur le bouton « WPS » sur " "Vous pouvez également vous connecter en appuyant sur le bouton « WPS » sur "
"votre routeur." "votre routeur."
#: js/ui/components/networkAgent.js:105 js/ui/status/network.js:258 #: js/ui/components/networkAgent.js:104 js/ui/status/network.js:258
#: js/ui/status/network.js:349 js/ui/status/network.js:981 #: js/ui/status/network.js:349 js/ui/status/network.js:981
msgid "Connect" msgid "Connect"
msgstr "Se connecter" msgstr "Se connecter"
#: js/ui/components/networkAgent.js:216 #: js/ui/components/networkAgent.js:215
msgid "Key" msgid "Key"
msgstr "Clé" msgstr "Clé"
#: js/ui/components/networkAgent.js:254 js/ui/components/networkAgent.js:277 #: js/ui/components/networkAgent.js:253 js/ui/components/networkAgent.js:276
msgid "Private key password" msgid "Private key password"
msgstr "Mot de passe de la clé privée" msgstr "Mot de passe de la clé privée"
#: js/ui/components/networkAgent.js:275 #: js/ui/components/networkAgent.js:274
msgid "Identity" msgid "Identity"
msgstr "Identité" msgstr "Identité"
#: js/ui/components/networkAgent.js:289 #: js/ui/components/networkAgent.js:288
msgid "Service" msgid "Service"
msgstr "Service" msgstr "Service"
#: js/ui/components/networkAgent.js:318 js/ui/components/networkAgent.js:346 #: js/ui/components/networkAgent.js:317 js/ui/components/networkAgent.js:345
#: js/ui/components/networkAgent.js:679 js/ui/components/networkAgent.js:700 #: js/ui/components/networkAgent.js:679 js/ui/components/networkAgent.js:700
msgid "Authentication required" msgid "Authentication required"
msgstr "Authentification nécessaire" msgstr "Authentification nécessaire"
#: js/ui/components/networkAgent.js:319 js/ui/components/networkAgent.js:680 #: js/ui/components/networkAgent.js:318 js/ui/components/networkAgent.js:680
#, javascript-format #, javascript-format
msgid "" msgid ""
"Passwords or encryption keys are required to access the wireless network " "Passwords or encryption keys are required to access the wireless network "
@ -1109,31 +1089,31 @@ msgstr ""
"Il faut un mot de passe ou une clé de chiffrement pour accéder au réseau " "Il faut un mot de passe ou une clé de chiffrement pour accéder au réseau "
"sans fil « %s »." "sans fil « %s »."
#: js/ui/components/networkAgent.js:323 js/ui/components/networkAgent.js:684 #: js/ui/components/networkAgent.js:322 js/ui/components/networkAgent.js:684
msgid "Wired 802.1X authentication" msgid "Wired 802.1X authentication"
msgstr "Authentification filaire 802.1X" msgstr "Authentification filaire 802.1X"
#: js/ui/components/networkAgent.js:325 #: js/ui/components/networkAgent.js:324
msgid "Network name" msgid "Network name"
msgstr "Nom du réseau" msgstr "Nom du réseau"
#: js/ui/components/networkAgent.js:330 js/ui/components/networkAgent.js:688 #: js/ui/components/networkAgent.js:329 js/ui/components/networkAgent.js:688
msgid "DSL authentication" msgid "DSL authentication"
msgstr "Authentification DSL" msgstr "Authentification DSL"
#: js/ui/components/networkAgent.js:337 js/ui/components/networkAgent.js:693 #: js/ui/components/networkAgent.js:336 js/ui/components/networkAgent.js:693
msgid "PIN code required" msgid "PIN code required"
msgstr "Code PIN requis" msgstr "Code PIN requis"
#: js/ui/components/networkAgent.js:338 js/ui/components/networkAgent.js:694 #: js/ui/components/networkAgent.js:337 js/ui/components/networkAgent.js:694
msgid "PIN code is needed for the mobile broadband device" msgid "PIN code is needed for the mobile broadband device"
msgstr "Un code PIN est nécessaire pour les connexions mobiles" msgstr "Un code PIN est nécessaire pour les connexions mobiles"
#: js/ui/components/networkAgent.js:339 #: js/ui/components/networkAgent.js:338
msgid "PIN" msgid "PIN"
msgstr "PIN" msgstr "PIN"
#: js/ui/components/networkAgent.js:347 js/ui/components/networkAgent.js:685 #: js/ui/components/networkAgent.js:346 js/ui/components/networkAgent.js:685
#: js/ui/components/networkAgent.js:689 js/ui/components/networkAgent.js:701 #: js/ui/components/networkAgent.js:689 js/ui/components/networkAgent.js:701
#: js/ui/components/networkAgent.js:705 #: js/ui/components/networkAgent.js:705
#, javascript-format #, javascript-format
@ -1461,24 +1441,24 @@ msgstr "%s (distant)"
msgid "%s (console)" msgid "%s (console)"
msgstr "%s (console)" msgstr "%s (console)"
#: js/ui/extensionDownloader.js:194 #: js/ui/extensionDownloader.js:232
msgid "Install" msgid "Install"
msgstr "Installer" msgstr "Installer"
#: js/ui/extensionDownloader.js:200 #: js/ui/extensionDownloader.js:238
msgid "Install Extension" msgid "Install Extension"
msgstr "Installer lextension" msgstr "Installer lextension"
#: js/ui/extensionDownloader.js:201 #: js/ui/extensionDownloader.js:239
#, javascript-format #, javascript-format
msgid "Download and install “%s” from extensions.gnome.org?" msgid "Download and install “%s” from extensions.gnome.org?"
msgstr "Télécharger et installer « %s » à partir de extensions.gnome.org ?" msgstr "Télécharger et installer « %s » à partir de extensions.gnome.org ?"
#: js/ui/extensionSystem.js:253 #: js/ui/extensionSystem.js:252
msgid "Extension Updates Available" msgid "Extension Updates Available"
msgstr "Mises à jour dextensions disponibles" msgstr "Mises à jour dextensions disponibles"
#: js/ui/extensionSystem.js:254 #: js/ui/extensionSystem.js:253
msgid "Extension updates are ready to be installed." msgid "Extension updates are ready to be installed."
msgstr "Des mises à jour dextensions sont prêtes à être installées." msgstr "Des mises à jour dextensions sont prêtes à être installées."
@ -1575,7 +1555,7 @@ msgstr "Éteindre"
msgid "Leave Off" msgid "Leave Off"
msgstr "Laisser éteint" msgstr "Laisser éteint"
#: js/ui/keyboard.js:227 #: js/ui/keyboard.js:226
msgid "Region & Language Settings" msgid "Region & Language Settings"
msgstr "Paramètres de langue et région" msgstr "Paramètres de langue et région"
@ -1628,11 +1608,11 @@ msgstr "Afficher la source"
msgid "Web Page" msgid "Web Page"
msgstr "Page Web" msgstr "Page Web"
#: js/ui/main.js:294 #: js/ui/main.js:290
msgid "Logged in as a privileged user" msgid "Logged in as a privileged user"
msgstr "Connecté en tant quutilisateur privilégié" msgstr "Connecté en tant quutilisateur privilégié"
#: js/ui/main.js:295 #: js/ui/main.js:291
msgid "" msgid ""
"Running a session as a privileged user should be avoided for security " "Running a session as a privileged user should be avoided for security "
"reasons. If possible, you should log in as a normal user." "reasons. If possible, you should log in as a normal user."
@ -1641,16 +1621,16 @@ msgstr ""
"des raisons de sécurité. Si possible, connectez-vous comme utilisateur " "des raisons de sécurité. Si possible, connectez-vous comme utilisateur "
"normal." "normal."
#: js/ui/main.js:344 #: js/ui/main.js:340
msgid "Screen Lock disabled" msgid "Screen Lock disabled"
msgstr "Verrouillage décran désactivé" msgstr "Verrouillage décran désactivé"
#: js/ui/main.js:345 #: js/ui/main.js:341
msgid "Screen Locking requires the GNOME display manager." msgid "Screen Locking requires the GNOME display manager."
msgstr "" msgstr ""
"Le verrouillage de lécran nécessite le gestionnaire daffichage GNOME." "Le verrouillage de lécran nécessite le gestionnaire daffichage GNOME."
#: js/ui/messageTray.js:1440 #: js/ui/messageTray.js:1443
msgid "System Information" msgid "System Information"
msgstr "Informations du système" msgstr "Informations du système"
@ -1684,47 +1664,47 @@ msgstr "Annuler"
msgid "Overview" msgid "Overview"
msgstr "Vue densemble" msgstr "Vue densemble"
#: js/ui/padOsd.js:96 #: js/ui/padOsd.js:95
msgid "New shortcut…" msgid "New shortcut…"
msgstr "Nouveau raccourci…" msgstr "Nouveau raccourci…"
#: js/ui/padOsd.js:143 #: js/ui/padOsd.js:142
msgid "Application defined" msgid "Application defined"
msgstr "Applications définies" msgstr "Applications définies"
#: js/ui/padOsd.js:144 #: js/ui/padOsd.js:143
msgid "Show on-screen help" msgid "Show on-screen help"
msgstr "Afficher laide à lécran" msgstr "Afficher laide à lécran"
#: js/ui/padOsd.js:145 #: js/ui/padOsd.js:144
msgid "Switch monitor" msgid "Switch monitor"
msgstr "Changer décran" msgstr "Changer décran"
#: js/ui/padOsd.js:146 #: js/ui/padOsd.js:145
msgid "Assign keystroke" msgid "Assign keystroke"
msgstr "Associer une touche" msgstr "Associer une touche"
#: js/ui/padOsd.js:212 #: js/ui/padOsd.js:211
msgid "Done" msgid "Done"
msgstr "Terminé" msgstr "Terminé"
#: js/ui/padOsd.js:718 #: js/ui/padOsd.js:716
msgid "Edit…" msgid "Edit…"
msgstr "Édition…" msgstr "Édition…"
#: js/ui/padOsd.js:760 js/ui/padOsd.js:877 #: js/ui/padOsd.js:758 js/ui/padOsd.js:875
msgid "None" msgid "None"
msgstr "Aucun" msgstr "Aucun"
#: js/ui/padOsd.js:831 #: js/ui/padOsd.js:829
msgid "Press a button to configure" msgid "Press a button to configure"
msgstr "Appuyez sur un bouton pour le configurer" msgstr "Appuyez sur un bouton pour le configurer"
#: js/ui/padOsd.js:832 #: js/ui/padOsd.js:830
msgid "Press Esc to exit" msgid "Press Esc to exit"
msgstr "Appuyez sur Échap pour quitter" msgstr "Appuyez sur Échap pour quitter"
#: js/ui/padOsd.js:835 #: js/ui/padOsd.js:833
msgid "Press any key to exit" msgid "Press any key to exit"
msgstr "Appuyez sur une touche pour quitter" msgstr "Appuyez sur une touche pour quitter"
@ -1734,12 +1714,12 @@ msgstr "Appuyez sur une touche pour quitter"
msgid "Activities" msgid "Activities"
msgstr "Activités" msgstr "Activités"
#: js/ui/panel.js:542 #: js/ui/panel.js:556
msgctxt "System menu in the top bar" msgctxt "System menu in the top bar"
msgid "System" msgid "System"
msgstr "Système" msgstr "Système"
#: js/ui/panel.js:658 #: js/ui/panel.js:674
msgid "Top Bar" msgid "Top Bar"
msgstr "Barre supérieure" msgstr "Barre supérieure"
@ -1778,7 +1758,7 @@ msgstr "Impossible de verrouiller"
msgid "Lock was blocked by an application" msgid "Lock was blocked by an application"
msgstr "Le verrouillage a été bloqué par une application" msgstr "Le verrouillage a été bloqué par une application"
#: js/ui/screenshot.js:141 #: js/ui/screenshot.js:155
msgid "Screenshot taken" msgid "Screenshot taken"
msgstr "Capture décran effectuée" msgstr "Capture décran effectuée"
@ -2284,7 +2264,6 @@ msgid "Balanced"
msgstr "Équilibré" msgstr "Équilibré"
#: js/ui/status/powerProfiles.js:21 #: js/ui/status/powerProfiles.js:21
#| msgid "Power Settings"
msgctxt "Power profile" msgctxt "Power profile"
msgid "Power Saver" msgid "Power Saver"
msgstr "Économie dénergie" msgstr "Économie dénergie"
@ -2479,13 +2458,10 @@ msgid "%d × %d"
msgstr "%d × %d" msgstr "%d × %d"
#: js/ui/windowMenu.js:27 #: js/ui/windowMenu.js:27
#| msgid "Hide Text"
msgid "Hide" msgid "Hide"
msgstr "Masquer" msgstr "Masquer"
#: js/ui/windowMenu.js:34 #: js/ui/windowMenu.js:34
#| msgctxt "search-result"
#| msgid "Restart"
msgid "Restore" msgid "Restore"
msgstr "Restaurer" msgstr "Restaurer"
@ -2857,6 +2833,7 @@ msgstr "Les champs UUID, nom et description sont obligatoires"
#: subprojects/extensions-tool/src/command-enable.c:46 #: subprojects/extensions-tool/src/command-enable.c:46
#: subprojects/extensions-tool/src/command-info.c:50 #: subprojects/extensions-tool/src/command-info.c:50
#: subprojects/extensions-tool/src/command-list.c:64 #: subprojects/extensions-tool/src/command-list.c:64
#: subprojects/extensions-tool/src/main.c:146
msgid "Failed to connect to GNOME Shell\n" msgid "Failed to connect to GNOME Shell\n"
msgstr "Erreur lors de la connexion à Shell de GNOME\n" msgstr "Erreur lors de la connexion à Shell de GNOME\n"
@ -2873,7 +2850,7 @@ msgstr "Désactiver une extension"
#: subprojects/extensions-tool/src/command-disable.c:119 #: subprojects/extensions-tool/src/command-disable.c:119
#: subprojects/extensions-tool/src/command-enable.c:119 #: subprojects/extensions-tool/src/command-enable.c:119
#: subprojects/extensions-tool/src/command-info.c:103 #: subprojects/extensions-tool/src/command-info.c:103
#: subprojects/extensions-tool/src/command-prefs.c:97 #: subprojects/extensions-tool/src/command-prefs.c:105
#: subprojects/extensions-tool/src/command-reset.c:76 #: subprojects/extensions-tool/src/command-reset.c:76
#: subprojects/extensions-tool/src/command-uninstall.c:104 #: subprojects/extensions-tool/src/command-uninstall.c:104
msgid "No UUID given" msgid "No UUID given"
@ -2882,7 +2859,7 @@ msgstr "Aucun UUID indiqué"
#: subprojects/extensions-tool/src/command-disable.c:124 #: subprojects/extensions-tool/src/command-disable.c:124
#: subprojects/extensions-tool/src/command-enable.c:124 #: subprojects/extensions-tool/src/command-enable.c:124
#: subprojects/extensions-tool/src/command-info.c:108 #: subprojects/extensions-tool/src/command-info.c:108
#: subprojects/extensions-tool/src/command-prefs.c:102 #: subprojects/extensions-tool/src/command-prefs.c:110
#: subprojects/extensions-tool/src/command-reset.c:81 #: subprojects/extensions-tool/src/command-reset.c:81
#: subprojects/extensions-tool/src/command-uninstall.c:109 #: subprojects/extensions-tool/src/command-uninstall.c:109
msgid "More than one UUID given" msgid "More than one UUID given"
@ -3012,7 +2989,12 @@ msgstr "Plus dun répertoire source indiqué"
msgid "Extension “%s” doesn't have preferences\n" msgid "Extension “%s” doesn't have preferences\n"
msgstr "Lextension « %s » na pas de préférences\n" msgstr "Lextension « %s » na pas de préférences\n"
#: subprojects/extensions-tool/src/command-prefs.c:79 #: subprojects/extensions-tool/src/command-prefs.c:62
#, c-format
msgid "Failed to open prefs for extension “%s”: %s\n"
msgstr "Impossible douvrir les préférences de lextension « %s » : %s\n"
#: subprojects/extensions-tool/src/command-prefs.c:87
msgid "Opens extension preferences" msgid "Opens extension preferences"
msgstr "Ouvre les préférences de lextension" msgstr "Ouvre les préférences de lextension"
@ -3037,10 +3019,6 @@ msgstr "Désinstaller une extension"
msgid "Do not print error messages" msgid "Do not print error messages"
msgstr "Ne pas afficher les messages derreur" msgstr "Ne pas afficher les messages derreur"
#: subprojects/extensions-tool/src/main.c:146
msgid "Failed to connect to GNOME Shell"
msgstr "Impossible de se connecter à Shell de GNOME"
#: subprojects/extensions-tool/src/main.c:244 #: subprojects/extensions-tool/src/main.c:244
msgid "Path" msgid "Path"
msgstr "Chemin" msgstr "Chemin"
@ -3171,6 +3149,19 @@ msgstr[1] "%u entrées"
msgid "System Sounds" msgid "System Sounds"
msgstr "Sons système" msgstr "Sons système"
#~ msgid "Enable introspection API"
#~ msgstr "Activer lAPI dintrospection"
#~ msgid ""
#~ "Enables a D-Bus API that allows to introspect the application state of "
#~ "the shell."
#~ msgstr ""
#~ "Active lAPI D-Bus, qui permet dintrospecter létat dapplication du "
#~ "shell."
#~ msgid "Failed to connect to GNOME Shell"
#~ msgstr "Impossible de se connecter à Shell de GNOME"
#~ msgid "Minimize" #~ msgid "Minimize"
#~ msgstr "Minimiser" #~ msgstr "Minimiser"

476
po/fur.po

File diff suppressed because it is too large Load Diff

View File

@ -9,8 +9,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: gnome-shell master\n" "Project-Id-Version: gnome-shell master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell/issues\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell/issues\n"
"POT-Creation-Date: 2021-09-23 14:20+0000\n" "POT-Creation-Date: 2021-11-06 13:28+0000\n"
"PO-Revision-Date: 2021-09-27 11:13+0300\n" "PO-Revision-Date: 2021-11-12 00:26+0200\n"
"Last-Translator: Yaron Shahrabani <sh.yaron@gmail.com>\n" "Last-Translator: Yaron Shahrabani <sh.yaron@gmail.com>\n"
"Language-Team: Hebrew <yoseforb@gmail.com>\n" "Language-Team: Hebrew <yoseforb@gmail.com>\n"
"Language: he\n" "Language: he\n"
@ -1387,11 +1387,11 @@ msgstr "התקנת הרחבות"
msgid "Download and install “%s” from extensions.gnome.org?" msgid "Download and install “%s” from extensions.gnome.org?"
msgstr "הורדה והתקנה של „%s” מ־extensions.gnome.org?" msgstr "הורדה והתקנה של „%s” מ־extensions.gnome.org?"
#: js/ui/extensionSystem.js:252 #: js/ui/extensionSystem.js:266
msgid "Extension Updates Available" msgid "Extension Updates Available"
msgstr "עדכוני הרחבות זמינים" msgstr "עדכוני הרחבות זמינים"
#: js/ui/extensionSystem.js:253 #: js/ui/extensionSystem.js:267
msgid "Extension updates are ready to be installed." msgid "Extension updates are ready to be installed."
msgstr "עדכוני הרחבות מוכנים להתקנה." msgstr "עדכוני הרחבות מוכנים להתקנה."
@ -2747,6 +2747,7 @@ msgstr "UUID, name and description are required"
#: subprojects/extensions-tool/src/command-enable.c:46 #: subprojects/extensions-tool/src/command-enable.c:46
#: subprojects/extensions-tool/src/command-info.c:50 #: subprojects/extensions-tool/src/command-info.c:50
#: subprojects/extensions-tool/src/command-list.c:64 #: subprojects/extensions-tool/src/command-list.c:64
#: subprojects/extensions-tool/src/main.c:146
msgid "Failed to connect to GNOME Shell\n" msgid "Failed to connect to GNOME Shell\n"
msgstr "Failed to connect to GNOME Shell\n" msgstr "Failed to connect to GNOME Shell\n"
@ -2763,7 +2764,7 @@ msgstr "Disable an extension"
#: subprojects/extensions-tool/src/command-disable.c:119 #: subprojects/extensions-tool/src/command-disable.c:119
#: subprojects/extensions-tool/src/command-enable.c:119 #: subprojects/extensions-tool/src/command-enable.c:119
#: subprojects/extensions-tool/src/command-info.c:103 #: subprojects/extensions-tool/src/command-info.c:103
#: subprojects/extensions-tool/src/command-prefs.c:97 #: subprojects/extensions-tool/src/command-prefs.c:105
#: subprojects/extensions-tool/src/command-reset.c:76 #: subprojects/extensions-tool/src/command-reset.c:76
#: subprojects/extensions-tool/src/command-uninstall.c:104 #: subprojects/extensions-tool/src/command-uninstall.c:104
msgid "No UUID given" msgid "No UUID given"
@ -2772,7 +2773,7 @@ msgstr "No UUID given"
#: subprojects/extensions-tool/src/command-disable.c:124 #: subprojects/extensions-tool/src/command-disable.c:124
#: subprojects/extensions-tool/src/command-enable.c:124 #: subprojects/extensions-tool/src/command-enable.c:124
#: subprojects/extensions-tool/src/command-info.c:108 #: subprojects/extensions-tool/src/command-info.c:108
#: subprojects/extensions-tool/src/command-prefs.c:102 #: subprojects/extensions-tool/src/command-prefs.c:110
#: subprojects/extensions-tool/src/command-reset.c:81 #: subprojects/extensions-tool/src/command-reset.c:81
#: subprojects/extensions-tool/src/command-uninstall.c:109 #: subprojects/extensions-tool/src/command-uninstall.c:109
msgid "More than one UUID given" msgid "More than one UUID given"
@ -2842,7 +2843,7 @@ msgstr "Print extension details"
#: subprojects/extensions-tool/src/command-list.c:154 #: subprojects/extensions-tool/src/command-list.c:154
msgid "List installed extensions" msgid "List installed extensions"
msgstr "List installed extensions" msgstr "הצגת ההרחבות המותקנות"
#: subprojects/extensions-tool/src/command-pack.c:450 #: subprojects/extensions-tool/src/command-pack.c:450
msgid "FILE" msgid "FILE"
@ -2895,14 +2896,19 @@ msgstr "Create an extension bundle"
#: subprojects/extensions-tool/src/command-pack.c:501 #: subprojects/extensions-tool/src/command-pack.c:501
msgid "More than one source directory specified" msgid "More than one source directory specified"
msgstr "More than one source directory specified" msgstr "צוינה יותר מתיקיית מקור אחת"
#: subprojects/extensions-tool/src/command-prefs.c:47 #: subprojects/extensions-tool/src/command-prefs.c:47
#, c-format #, c-format
msgid "Extension “%s” doesn't have preferences\n" msgid "Extension “%s” doesn't have preferences\n"
msgstr "Extension “%s” doesn't have preferences\n" msgstr "להרחבה „%s” אין העדפות\n"
#: subprojects/extensions-tool/src/command-prefs.c:79 #: subprojects/extensions-tool/src/command-prefs.c:62
#, c-format
msgid "Failed to open prefs for extension “%s”: %s\n"
msgstr "פתיחת ההעדפות של ההרחבה „%s” נכשלה: %s\n"
#: subprojects/extensions-tool/src/command-prefs.c:87
msgid "Opens extension preferences" msgid "Opens extension preferences"
msgstr "Opens extension preferences" msgstr "Opens extension preferences"
@ -2927,10 +2933,6 @@ msgstr "Uninstall an extension"
msgid "Do not print error messages" msgid "Do not print error messages"
msgstr "Do not print error messages" msgstr "Do not print error messages"
#: subprojects/extensions-tool/src/main.c:146
msgid "Failed to connect to GNOME Shell"
msgstr "Failed to connect to GNOME Shell"
#: subprojects/extensions-tool/src/main.c:244 #: subprojects/extensions-tool/src/main.c:244
msgid "Path" msgid "Path"
msgstr "Path" msgstr "Path"
@ -3065,6 +3067,9 @@ msgstr[3] "%u ערוצי קלט"
msgid "System Sounds" msgid "System Sounds"
msgstr "צלילי מערכת" msgstr "צלילי מערכת"
#~ msgid "Failed to connect to GNOME Shell"
#~ msgstr "Failed to connect to GNOME Shell"
#~ msgid "Enable introspection API" #~ msgid "Enable introspection API"
#~ msgstr "Enable introspection API" #~ msgstr "Enable introspection API"

View File

@ -7,8 +7,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: gnome-shell master\n" "Project-Id-Version: gnome-shell master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell/issues\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell/issues\n"
"POT-Creation-Date: 2021-09-23 14:20+0000\n" "POT-Creation-Date: 2021-11-26 16:19+0000\n"
"PO-Revision-Date: 2021-10-06 19:07+0200\n" "PO-Revision-Date: 2021-11-26 19:03+0100\n"
"Last-Translator: gogo <trebelnik2@gmail.com>\n" "Last-Translator: gogo <trebelnik2@gmail.com>\n"
"Language-Team: Croatian <hr@li.org>\n" "Language-Team: Croatian <hr@li.org>\n"
"Language: hr\n" "Language: hr\n"
@ -17,7 +17,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
"X-Generator: Poedit 3.0\n" "X-Generator: Poedit 2.3\n"
#: data/50-gnome-shell-launchers.xml:6 #: data/50-gnome-shell-launchers.xml:6
msgid "Launchers" msgid "Launchers"
@ -794,7 +794,7 @@ msgstr "Zabrani pristup"
msgid "Grant Access" msgid "Grant Access"
msgstr "Dopusti pristup" msgstr "Dopusti pristup"
#: js/ui/appDisplay.js:1846 #: js/ui/appDisplay.js:1791
msgid "Unnamed Folder" msgid "Unnamed Folder"
msgstr "Neimenovana mapa" msgstr "Neimenovana mapa"
@ -1398,11 +1398,11 @@ msgstr "Instaliraj proširenje"
msgid "Download and install “%s” from extensions.gnome.org?" msgid "Download and install “%s” from extensions.gnome.org?"
msgstr "Preuzmi i instaliraj “%s” sa extensions.gnome.org?" msgstr "Preuzmi i instaliraj “%s” sa extensions.gnome.org?"
#: js/ui/extensionSystem.js:252 #: js/ui/extensionSystem.js:266
msgid "Extension Updates Available" msgid "Extension Updates Available"
msgstr "Nadopuna proširenja je dostupna" msgstr "Nadopuna proširenja je dostupna"
#: js/ui/extensionSystem.js:253 #: js/ui/extensionSystem.js:267
msgid "Extension updates are ready to be installed." msgid "Extension updates are ready to be installed."
msgstr "Nadopune proširenja su spremne za instalaciju." msgstr "Nadopune proširenja su spremne za instalaciju."
@ -1550,11 +1550,23 @@ msgstr "Pogledaj izvor"
msgid "Web Page" msgid "Web Page"
msgstr "Web stranica" msgstr "Web stranica"
#: js/ui/main.js:290 #: js/ui/main.js:259
msgid "System was put in unsafe mode"
msgstr "Sustav je stavljen u nesiguran način rada"
#: js/ui/main.js:260
msgid "Applications now have unrestricted access"
msgstr "Aplikacije sada imaju neograničen pristup"
#: js/ui/main.js:261 js/ui/overview.js:58
msgid "Undo"
msgstr "Poništi"
#: js/ui/main.js:307
msgid "Logged in as a privileged user" msgid "Logged in as a privileged user"
msgstr "Prijavljeni ste kao administratorski korisnik" msgstr "Prijavljeni ste kao administratorski korisnik"
#: js/ui/main.js:291 #: js/ui/main.js:308
msgid "" msgid ""
"Running a session as a privileged user should be avoided for security " "Running a session as a privileged user should be avoided for security "
"reasons. If possible, you should log in as a normal user." "reasons. If possible, you should log in as a normal user."
@ -1563,11 +1575,11 @@ msgstr ""
"izbjegavati iz sigurnosnih razloga. Ako je moguće, trebate se prijaviti kao " "izbjegavati iz sigurnosnih razloga. Ako je moguće, trebate se prijaviti kao "
"normalan korisnik." "normalan korisnik."
#: js/ui/main.js:340 #: js/ui/main.js:357
msgid "Screen Lock disabled" msgid "Screen Lock disabled"
msgstr "Zaključavanje zaslona je onemogućeno" msgstr "Zaključavanje zaslona je onemogućeno"
#: js/ui/main.js:341 #: js/ui/main.js:358
msgid "Screen Locking requires the GNOME display manager." msgid "Screen Locking requires the GNOME display manager."
msgstr "Zaključavanje zaslona zahtijeva GNOME upravitelja zaslona." msgstr "Zaključavanje zaslona zahtijeva GNOME upravitelja zaslona."
@ -1595,10 +1607,6 @@ msgstr "Upiši za pretragu"
msgid "Applications" msgid "Applications"
msgstr "Aplikacije" msgstr "Aplikacije"
#: js/ui/overview.js:58
msgid "Undo"
msgstr "Poništi"
#. Translators: This is the main view to select #. Translators: This is the main view to select
#. activities. See also note for "Activities" string. #. activities. See also note for "Activities" string.
#: js/ui/overview.js:71 #: js/ui/overview.js:71
@ -2768,6 +2776,7 @@ msgstr "UUID, naziv i opis su potrebni"
#: subprojects/extensions-tool/src/command-enable.c:46 #: subprojects/extensions-tool/src/command-enable.c:46
#: subprojects/extensions-tool/src/command-info.c:50 #: subprojects/extensions-tool/src/command-info.c:50
#: subprojects/extensions-tool/src/command-list.c:64 #: subprojects/extensions-tool/src/command-list.c:64
#: subprojects/extensions-tool/src/main.c:146
msgid "Failed to connect to GNOME Shell\n" msgid "Failed to connect to GNOME Shell\n"
msgstr "Neuspjelo povezivanje s GNOME ljuskom\n" msgstr "Neuspjelo povezivanje s GNOME ljuskom\n"
@ -2784,7 +2793,7 @@ msgstr "Onemogući proširenje"
#: subprojects/extensions-tool/src/command-disable.c:119 #: subprojects/extensions-tool/src/command-disable.c:119
#: subprojects/extensions-tool/src/command-enable.c:119 #: subprojects/extensions-tool/src/command-enable.c:119
#: subprojects/extensions-tool/src/command-info.c:103 #: subprojects/extensions-tool/src/command-info.c:103
#: subprojects/extensions-tool/src/command-prefs.c:97 #: subprojects/extensions-tool/src/command-prefs.c:105
#: subprojects/extensions-tool/src/command-reset.c:76 #: subprojects/extensions-tool/src/command-reset.c:76
#: subprojects/extensions-tool/src/command-uninstall.c:104 #: subprojects/extensions-tool/src/command-uninstall.c:104
msgid "No UUID given" msgid "No UUID given"
@ -2793,7 +2802,7 @@ msgstr "UUID nije naveden"
#: subprojects/extensions-tool/src/command-disable.c:124 #: subprojects/extensions-tool/src/command-disable.c:124
#: subprojects/extensions-tool/src/command-enable.c:124 #: subprojects/extensions-tool/src/command-enable.c:124
#: subprojects/extensions-tool/src/command-info.c:108 #: subprojects/extensions-tool/src/command-info.c:108
#: subprojects/extensions-tool/src/command-prefs.c:102 #: subprojects/extensions-tool/src/command-prefs.c:110
#: subprojects/extensions-tool/src/command-reset.c:81 #: subprojects/extensions-tool/src/command-reset.c:81
#: subprojects/extensions-tool/src/command-uninstall.c:109 #: subprojects/extensions-tool/src/command-uninstall.c:109
msgid "More than one UUID given" msgid "More than one UUID given"
@ -2923,7 +2932,12 @@ msgstr "Određeno je više od jedne izvorne mape"
msgid "Extension “%s” doesn't have preferences\n" msgid "Extension “%s” doesn't have preferences\n"
msgstr "Proširenje “%s” ne sadrži osobitosti\n" msgstr "Proširenje “%s” ne sadrži osobitosti\n"
#: subprojects/extensions-tool/src/command-prefs.c:79 #: subprojects/extensions-tool/src/command-prefs.c:62
#, c-format
msgid "Failed to open prefs for extension “%s”: %s\n"
msgstr "Neuspjelo otvaranje osobitosti za proširenje “%s”: %s\n"
#: subprojects/extensions-tool/src/command-prefs.c:87
msgid "Opens extension preferences" msgid "Opens extension preferences"
msgstr "Otvara osobitosti proširenja" msgstr "Otvara osobitosti proširenja"
@ -2948,10 +2962,6 @@ msgstr "Ukloni proširenje"
msgid "Do not print error messages" msgid "Do not print error messages"
msgstr "Ne ispisuj poruke greške" msgstr "Ne ispisuj poruke greške"
#: subprojects/extensions-tool/src/main.c:146
msgid "Failed to connect to GNOME Shell"
msgstr "Neuspjelo povezivanje s GNOME ljuskom"
#: subprojects/extensions-tool/src/main.c:244 #: subprojects/extensions-tool/src/main.c:244
msgid "Path" msgid "Path"
msgstr "Putanja" msgstr "Putanja"
@ -3084,6 +3094,9 @@ msgstr[2] "%u ulaza"
msgid "System Sounds" msgid "System Sounds"
msgstr "Zvukovi sustava" msgstr "Zvukovi sustava"
#~ msgid "Failed to connect to GNOME Shell"
#~ msgstr "Neuspjelo povezivanje s GNOME ljuskom"
#~ msgid "Enable introspection API" #~ msgid "Enable introspection API"
#~ msgstr "Omogući API samoispitivanja" #~ msgstr "Omogući API samoispitivanja"

669
po/it.po

File diff suppressed because it is too large Load Diff

286
po/lt.po
View File

@ -10,8 +10,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: gnome-shell master\n" "Project-Id-Version: gnome-shell master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell/issues\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell/issues\n"
"POT-Creation-Date: 2021-08-17 23:56+0000\n" "POT-Creation-Date: 2021-11-13 17:10+0000\n"
"PO-Revision-Date: 2021-09-01 23:06+0300\n" "PO-Revision-Date: 2021-11-21 21:42+0200\n"
"Last-Translator: Aurimas Černius <aurisc4@gmail.com>\n" "Last-Translator: Aurimas Černius <aurisc4@gmail.com>\n"
"Language-Team: Lietuvių <gnome-lt@lists.akl.lt>\n" "Language-Team: Lietuvių <gnome-lt@lists.akl.lt>\n"
"Language: lt\n" "Language: lt\n"
@ -28,47 +28,38 @@ msgid "Launchers"
msgstr "Paleidikliai" msgstr "Paleidikliai"
#: data/50-gnome-shell-launchers.xml:10 #: data/50-gnome-shell-launchers.xml:10
#| msgid "Switch to application 1"
msgid "Activate favorite application 1" msgid "Activate favorite application 1"
msgstr "Paleisti mėgiamą programą 1" msgstr "Paleisti mėgiamą programą 1"
#: data/50-gnome-shell-launchers.xml:14 #: data/50-gnome-shell-launchers.xml:14
#| msgid "Switch to application 2"
msgid "Activate favorite application 2" msgid "Activate favorite application 2"
msgstr "Paleisti mėgiamą programą 2" msgstr "Paleisti mėgiamą programą 2"
#: data/50-gnome-shell-launchers.xml:18 #: data/50-gnome-shell-launchers.xml:18
#| msgid "Switch to application 3"
msgid "Activate favorite application 3" msgid "Activate favorite application 3"
msgstr "Paleisti mėgiamą programą 3" msgstr "Paleisti mėgiamą programą 3"
#: data/50-gnome-shell-launchers.xml:22 #: data/50-gnome-shell-launchers.xml:22
#| msgid "Switch to application 4"
msgid "Activate favorite application 4" msgid "Activate favorite application 4"
msgstr "Paleisti mėgiamą programą 4" msgstr "Paleisti mėgiamą programą 4"
#: data/50-gnome-shell-launchers.xml:26 #: data/50-gnome-shell-launchers.xml:26
#| msgid "Switch to application 5"
msgid "Activate favorite application 5" msgid "Activate favorite application 5"
msgstr "Paleisti mėgiamą programą 5" msgstr "Paleisti mėgiamą programą 5"
#: data/50-gnome-shell-launchers.xml:30 #: data/50-gnome-shell-launchers.xml:30
#| msgid "Switch to application 6"
msgid "Activate favorite application 6" msgid "Activate favorite application 6"
msgstr "Paleisti mėgiamą programą 6" msgstr "Paleisti mėgiamą programą 6"
#: data/50-gnome-shell-launchers.xml:34 #: data/50-gnome-shell-launchers.xml:34
#| msgid "Switch to application 7"
msgid "Activate favorite application 7" msgid "Activate favorite application 7"
msgstr "Paleisti mėgiamą programą 7" msgstr "Paleisti mėgiamą programą 7"
#: data/50-gnome-shell-launchers.xml:38 #: data/50-gnome-shell-launchers.xml:38
#| msgid "Switch to application 8"
msgid "Activate favorite application 8" msgid "Activate favorite application 8"
msgstr "Paleisti mėgiamą programą 8" msgstr "Paleisti mėgiamą programą 8"
#: data/50-gnome-shell-launchers.xml:42 #: data/50-gnome-shell-launchers.xml:42
#| msgid "Switch to application 9"
msgid "Activate favorite application 9" msgid "Activate favorite application 9"
msgstr "Paleisti mėgiamą programą 9" msgstr "Paleisti mėgiamą programą 9"
@ -265,22 +256,11 @@ msgstr ""
"versiją, o milžiniški skaičiai reiškia versijas, kurių dar nėra. Todėl " "versiją, o milžiniški skaičiai reiškia versijas, kurių dar nėra. Todėl "
"milžiniškus skaičius galima naudoti šio dialogo išjungimui." "milžiniškus skaičius galima naudoti šio dialogo išjungimui."
#: data/org.gnome.shell.gschema.xml.in:109 #: data/org.gnome.shell.gschema.xml.in:133
msgid "Enable introspection API"
msgstr "Įjungti nagrinėjimo sąsają"
#: data/org.gnome.shell.gschema.xml.in:110
msgid ""
"Enables a D-Bus API that allows to introspect the application state of the "
"shell."
msgstr ""
"Įjungia D-Bus sąsają, kuri leidžia nagrinėti apvalkalo programos būseną."
#: data/org.gnome.shell.gschema.xml.in:141
msgid "Layout of the app picker" msgid "Layout of the app picker"
msgstr "Programų pasirinkimo išdėstymas" msgstr "Programų pasirinkimo išdėstymas"
#: data/org.gnome.shell.gschema.xml.in:142 #: data/org.gnome.shell.gschema.xml.in:134
msgid "" msgid ""
"Layout of the app picker. Each entry in the array is a page. Pages are " "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 " "stored in the order they appear in GNOME Shell. Each page contains an "
@ -293,108 +273,108 @@ msgstr ""
"vertės yra įrašomos kaip „duomenys“: • “position”: programos piktogramos " "vertės yra įrašomos kaip „duomenys“: • “position”: programos piktogramos "
"padėtis puslapyje" "padėtis puslapyje"
#: data/org.gnome.shell.gschema.xml.in:157 #: data/org.gnome.shell.gschema.xml.in:149
msgid "Keybinding to open the application menu" msgid "Keybinding to open the application menu"
msgstr "Klavišų susiejimas, kuriuo atveriamas programų meniu" msgstr "Klavišų susiejimas, kuriuo atveriamas programų meniu"
#: data/org.gnome.shell.gschema.xml.in:158 #: data/org.gnome.shell.gschema.xml.in:150
msgid "Keybinding to open the application menu." msgid "Keybinding to open the application menu."
msgstr "Klavišų susiejimas, kuriuo atveriamas programų meniu." msgstr "Klavišų susiejimas, kuriuo atveriamas programų meniu."
#: data/org.gnome.shell.gschema.xml.in:164 #: data/org.gnome.shell.gschema.xml.in:156
#: data/org.gnome.shell.gschema.xml.in:171 #: data/org.gnome.shell.gschema.xml.in:163
msgid "Keybinding to shift between overview states" msgid "Keybinding to shift between overview states"
msgstr "Klavišų susiejimas apžvalgos būsenų keitimui" msgstr "Klavišų susiejimas apžvalgos būsenų keitimui"
#: data/org.gnome.shell.gschema.xml.in:165 #: data/org.gnome.shell.gschema.xml.in:157
msgid "Keybinding to shift between session, window picker and app grid" msgid "Keybinding to shift between session, window picker and app grid"
msgstr "" msgstr ""
"Klavišų susiejimas perėjimui tarp seanso, langų pasirinkimo ir programų " "Klavišų susiejimas perėjimui tarp seanso, langų pasirinkimo ir programų "
"tinklelio" "tinklelio"
#: data/org.gnome.shell.gschema.xml.in:172 #: data/org.gnome.shell.gschema.xml.in:164
msgid "Keybinding to shift between app grid, window picker and session" msgid "Keybinding to shift between app grid, window picker and session"
msgstr "" msgstr ""
"Klavišų susiejimas perėjimui tarp programų tinklelio, langų pasirinkimo bei " "Klavišų susiejimas perėjimui tarp programų tinklelio, langų pasirinkimo bei "
"seanso." "seanso."
#: data/org.gnome.shell.gschema.xml.in:178 #: data/org.gnome.shell.gschema.xml.in:170
msgid "Keybinding to open the “Show Applications” view" msgid "Keybinding to open the “Show Applications” view"
msgstr "Klavišų susiejimas, kuriuo atveriamas rodinys „rodyti programas“" msgstr "Klavišų susiejimas, kuriuo atveriamas rodinys „rodyti programas“"
#: data/org.gnome.shell.gschema.xml.in:179 #: data/org.gnome.shell.gschema.xml.in:171
msgid "" msgid ""
"Keybinding to open the “Show Applications” view of the Activities Overview." "Keybinding to open the “Show Applications” view of the Activities Overview."
msgstr "" msgstr ""
"Klavišų susiejimas, kuriuo atveriamas rodinys „rodyti programas“ veiklų " "Klavišų susiejimas, kuriuo atveriamas rodinys „rodyti programas“ veiklų "
"apžvalgoje." "apžvalgoje."
#: data/org.gnome.shell.gschema.xml.in:186 #: data/org.gnome.shell.gschema.xml.in:178
msgid "Keybinding to open the overview" msgid "Keybinding to open the overview"
msgstr "Klavišų susiejimas, kuriuo atveriama apžvalga" msgstr "Klavišų susiejimas, kuriuo atveriama apžvalga"
#: data/org.gnome.shell.gschema.xml.in:187 #: data/org.gnome.shell.gschema.xml.in:179
msgid "Keybinding to open the Activities Overview." msgid "Keybinding to open the Activities Overview."
msgstr "Klavišų susiejimas, kuriuo atveriama veiklų apžvalga." msgstr "Klavišų susiejimas, kuriuo atveriama veiklų apžvalga."
#: data/org.gnome.shell.gschema.xml.in:193 #: data/org.gnome.shell.gschema.xml.in:185
msgid "Keybinding to toggle the visibility of the notification list" msgid "Keybinding to toggle the visibility of the notification list"
msgstr "Klavišų susiejimas pranešimų juostos matomumui perjungti" msgstr "Klavišų susiejimas pranešimų juostos matomumui perjungti"
#: data/org.gnome.shell.gschema.xml.in:194 #: data/org.gnome.shell.gschema.xml.in:186
msgid "Keybinding to toggle the visibility of the notification list." msgid "Keybinding to toggle the visibility of the notification list."
msgstr "Klavišų susiejimas pranešimų juostos matomumui perjungti." msgstr "Klavišų susiejimas pranešimų juostos matomumui perjungti."
#: data/org.gnome.shell.gschema.xml.in:200 #: data/org.gnome.shell.gschema.xml.in:192
msgid "Keybinding to focus the active notification" msgid "Keybinding to focus the active notification"
msgstr "Klavišų susiejimas, kuriuo fokusuojamas aktyvus pranešimas" msgstr "Klavišų susiejimas, kuriuo fokusuojamas aktyvus pranešimas"
#: data/org.gnome.shell.gschema.xml.in:201 #: data/org.gnome.shell.gschema.xml.in:193
msgid "Keybinding to focus the active notification." msgid "Keybinding to focus the active notification."
msgstr "Klavišų susiejimas, kuriuo fokusuojamas aktyvus pranešimas." msgstr "Klavišų susiejimas, kuriuo fokusuojamas aktyvus pranešimas."
#: data/org.gnome.shell.gschema.xml.in:207 #: data/org.gnome.shell.gschema.xml.in:199
msgid "Switch to application 1" msgid "Switch to application 1"
msgstr "Pereiti į programą 1" msgstr "Pereiti į programą 1"
#: data/org.gnome.shell.gschema.xml.in:211 #: data/org.gnome.shell.gschema.xml.in:203
msgid "Switch to application 2" msgid "Switch to application 2"
msgstr "Pereiti į programą 2" msgstr "Pereiti į programą 2"
#: data/org.gnome.shell.gschema.xml.in:215 #: data/org.gnome.shell.gschema.xml.in:207
msgid "Switch to application 3" msgid "Switch to application 3"
msgstr "Pereiti į programą 3" msgstr "Pereiti į programą 3"
#: data/org.gnome.shell.gschema.xml.in:219 #: data/org.gnome.shell.gschema.xml.in:211
msgid "Switch to application 4" msgid "Switch to application 4"
msgstr "Pereiti į programą 4" msgstr "Pereiti į programą 4"
#: data/org.gnome.shell.gschema.xml.in:223 #: data/org.gnome.shell.gschema.xml.in:215
msgid "Switch to application 5" msgid "Switch to application 5"
msgstr "Pereiti į programą 5" msgstr "Pereiti į programą 5"
#: data/org.gnome.shell.gschema.xml.in:227 #: data/org.gnome.shell.gschema.xml.in:219
msgid "Switch to application 6" msgid "Switch to application 6"
msgstr "Pereiti į programą 6" msgstr "Pereiti į programą 6"
#: data/org.gnome.shell.gschema.xml.in:231 #: data/org.gnome.shell.gschema.xml.in:223
msgid "Switch to application 7" msgid "Switch to application 7"
msgstr "Pereiti į programą 7" msgstr "Pereiti į programą 7"
#: data/org.gnome.shell.gschema.xml.in:235 #: data/org.gnome.shell.gschema.xml.in:227
msgid "Switch to application 8" msgid "Switch to application 8"
msgstr "Pereiti į programą 8" msgstr "Pereiti į programą 8"
#: data/org.gnome.shell.gschema.xml.in:239 #: data/org.gnome.shell.gschema.xml.in:231
msgid "Switch to application 9" msgid "Switch to application 9"
msgstr "Pereiti į programą 9" msgstr "Pereiti į programą 9"
#: data/org.gnome.shell.gschema.xml.in:248 #: data/org.gnome.shell.gschema.xml.in:240
#: data/org.gnome.shell.gschema.xml.in:275 #: data/org.gnome.shell.gschema.xml.in:267
msgid "Limit switcher to current workspace." msgid "Limit switcher to current workspace."
msgstr "Apriboti perjungėją dabartine darbo sritimi." msgstr "Apriboti perjungėją dabartine darbo sritimi."
#: data/org.gnome.shell.gschema.xml.in:249 #: data/org.gnome.shell.gschema.xml.in:241
msgid "" msgid ""
"If true, only applications that have windows on the current workspace are " "If true, only applications that have windows on the current workspace are "
"shown in the switcher. Otherwise, all applications are included." "shown in the switcher. Otherwise, all applications are included."
@ -402,11 +382,11 @@ msgstr ""
"Jei teigiama, perjungimo lange bus rodomos tik programos, turinčios langų " "Jei teigiama, perjungimo lange bus rodomos tik programos, turinčios langų "
"dabartinėje darbo srityje. Priešingu atveju įtraukiamos visos programos." "dabartinėje darbo srityje. Priešingu atveju įtraukiamos visos programos."
#: data/org.gnome.shell.gschema.xml.in:266 #: data/org.gnome.shell.gschema.xml.in:258
msgid "The application icon mode." msgid "The application icon mode."
msgstr "Programos piktogramos veiksena." msgstr "Programos piktogramos veiksena."
#: data/org.gnome.shell.gschema.xml.in:267 #: data/org.gnome.shell.gschema.xml.in:259
msgid "" msgid ""
"Configures how the windows are shown in the switcher. Valid possibilities " "Configures how the windows are shown in the switcher. Valid possibilities "
"are “thumbnail-only” (shows a thumbnail of the window), “app-icon-" "are “thumbnail-only” (shows a thumbnail of the window), “app-icon-"
@ -416,7 +396,7 @@ msgstr ""
"„thumbnail-only“ (rodo lango miniatiūrą), „app-icon-only“ (rodo tik " "„thumbnail-only“ (rodo lango miniatiūrą), „app-icon-only“ (rodo tik "
"programos piktogramą) arba „both“ (abu)." "programos piktogramą) arba „both“ (abu)."
#: data/org.gnome.shell.gschema.xml.in:276 #: data/org.gnome.shell.gschema.xml.in:268
msgid "" msgid ""
"If true, only windows from the current workspace are shown in the switcher. " "If true, only windows from the current workspace are shown in the switcher. "
"Otherwise, all windows are included." "Otherwise, all windows are included."
@ -424,56 +404,56 @@ msgstr ""
"Jei teigiama, perjungimo lange rodomi tik langai iš dabartinės darbo " "Jei teigiama, perjungimo lange rodomi tik langai iš dabartinės darbo "
"srities. Priešingu atveju įtraukiami visi langai." "srities. Priešingu atveju įtraukiami visi langai."
#: data/org.gnome.shell.gschema.xml.in:286 #: data/org.gnome.shell.gschema.xml.in:278
msgid "Locations" msgid "Locations"
msgstr "Vietos" msgstr "Vietos"
#: data/org.gnome.shell.gschema.xml.in:287 #: data/org.gnome.shell.gschema.xml.in:279
msgid "The locations to show in world clocks" msgid "The locations to show in world clocks"
msgstr "Vietos, kurias rodyti pasaulio laikrodžiuose" msgstr "Vietos, kurias rodyti pasaulio laikrodžiuose"
#: data/org.gnome.shell.gschema.xml.in:297 #: data/org.gnome.shell.gschema.xml.in:289
msgid "Automatic location" msgid "Automatic location"
msgstr "Automatinė vieta" msgstr "Automatinė vieta"
#: data/org.gnome.shell.gschema.xml.in:298 #: data/org.gnome.shell.gschema.xml.in:290
msgid "Whether to fetch the current location or not" msgid "Whether to fetch the current location or not"
msgstr "Ar gauti dabartinę vietą" msgstr "Ar gauti dabartinę vietą"
#: data/org.gnome.shell.gschema.xml.in:305 #: data/org.gnome.shell.gschema.xml.in:297
msgid "Location" msgid "Location"
msgstr "Vieta" msgstr "Vieta"
#: data/org.gnome.shell.gschema.xml.in:306 #: data/org.gnome.shell.gschema.xml.in:298
msgid "The location for which to show a forecast" msgid "The location for which to show a forecast"
msgstr "Vieta, kuriai rodyti prognozę" msgstr "Vieta, kuriai rodyti prognozę"
#: data/org.gnome.shell.gschema.xml.in:318 #: data/org.gnome.shell.gschema.xml.in:310
msgid "Attach modal dialog to the parent window" msgid "Attach modal dialog to the parent window"
msgstr "Prikabinti modalinį dialogą prie tėvinio lango" msgstr "Prikabinti modalinį dialogą prie tėvinio lango"
#: data/org.gnome.shell.gschema.xml.in:319 #: data/org.gnome.shell.gschema.xml.in:311
#: data/org.gnome.shell.gschema.xml.in:320
#: data/org.gnome.shell.gschema.xml.in:328 #: data/org.gnome.shell.gschema.xml.in:328
#: data/org.gnome.shell.gschema.xml.in:336 #: data/org.gnome.shell.gschema.xml.in:336
#: data/org.gnome.shell.gschema.xml.in:344 #: data/org.gnome.shell.gschema.xml.in:344
#: data/org.gnome.shell.gschema.xml.in:352
msgid "" msgid ""
"This key overrides the key in org.gnome.mutter when running GNOME Shell." "This key overrides the key in org.gnome.mutter when running GNOME Shell."
msgstr "Šis raktas perrašo org.gnome.mutter raktą, kai vykdoma GNOME Shell." msgstr "Šis raktas perrašo org.gnome.mutter raktą, kai vykdoma GNOME Shell."
#: data/org.gnome.shell.gschema.xml.in:327 #: data/org.gnome.shell.gschema.xml.in:319
msgid "Enable edge tiling when dropping windows on screen edges" msgid "Enable edge tiling when dropping windows on screen edges"
msgstr "Įjungti kraštų išplėtimą, kai langai numetami ekrano kraštuose" msgstr "Įjungti kraštų išplėtimą, kai langai numetami ekrano kraštuose"
#: data/org.gnome.shell.gschema.xml.in:335 #: data/org.gnome.shell.gschema.xml.in:327
msgid "Workspaces are managed dynamically" msgid "Workspaces are managed dynamically"
msgstr "Darbo sritys yra tvarkomos dinamiškai" msgstr "Darbo sritys yra tvarkomos dinamiškai"
#: data/org.gnome.shell.gschema.xml.in:343 #: data/org.gnome.shell.gschema.xml.in:335
msgid "Workspaces only on primary monitor" msgid "Workspaces only on primary monitor"
msgstr "Darbo sritys tik pagrindiniame monitoriuje" msgstr "Darbo sritys tik pagrindiniame monitoriuje"
#: data/org.gnome.shell.gschema.xml.in:351 #: data/org.gnome.shell.gschema.xml.in:343
msgid "Delay focus changes in mouse mode until the pointer stops moving" msgid "Delay focus changes in mouse mode until the pointer stops moving"
msgstr "Atidėti fokuso pakeitimus pelei iki žymiklis nustos judėti" msgstr "Atidėti fokuso pakeitimus pelei iki žymiklis nustos judėti"
@ -508,18 +488,18 @@ msgid "Visit extension homepage"
msgstr "Aplankyti plėtinio namų tinklalapį" msgstr "Aplankyti plėtinio namų tinklalapį"
#: js/gdm/authPrompt.js:141 js/ui/audioDeviceSelection.js:61 #: js/gdm/authPrompt.js:141 js/ui/audioDeviceSelection.js:61
#: js/ui/components/networkAgent.js:111 js/ui/components/polkitAgent.js:138 #: js/ui/components/networkAgent.js:110 js/ui/components/polkitAgent.js:138
#: js/ui/endSessionDialog.js:438 js/ui/extensionDownloader.js:190 #: js/ui/endSessionDialog.js:438 js/ui/extensionDownloader.js:228
#: js/ui/shellMountOperation.js:376 js/ui/shellMountOperation.js:386 #: js/ui/shellMountOperation.js:376 js/ui/shellMountOperation.js:386
#: js/ui/status/network.js:978 subprojects/extensions-app/js/main.js:183 #: js/ui/status/network.js:978 subprojects/extensions-app/js/main.js:183
msgid "Cancel" msgid "Cancel"
msgstr "Atsisakyti" msgstr "Atsisakyti"
#. Cisco LEAP #. Cisco LEAP
#: js/gdm/authPrompt.js:285 js/ui/components/networkAgent.js:210 #: js/gdm/authPrompt.js:285 js/ui/components/networkAgent.js:209
#: js/ui/components/networkAgent.js:226 js/ui/components/networkAgent.js:250 #: js/ui/components/networkAgent.js:225 js/ui/components/networkAgent.js:249
#: js/ui/components/networkAgent.js:271 js/ui/components/networkAgent.js:291 #: js/ui/components/networkAgent.js:270 js/ui/components/networkAgent.js:290
#: js/ui/components/networkAgent.js:301 js/ui/components/polkitAgent.js:275 #: js/ui/components/networkAgent.js:300 js/ui/components/polkitAgent.js:275
#: js/ui/shellMountOperation.js:326 #: js/ui/shellMountOperation.js:326
msgid "Password" msgid "Password"
msgstr "Slaptažodis" msgstr "Slaptažodis"
@ -542,8 +522,8 @@ msgstr "(pvz., naudotojas arba %s)"
#. TTLS and PEAP are actually much more complicated, but this complication #. TTLS and PEAP are actually much more complicated, but this complication
#. is not visible here since we only care about phase2 authentication #. is not visible here since we only care about phase2 authentication
#. (and don't even care of which one) #. (and don't even care of which one)
#: js/gdm/loginDialog.js:926 js/ui/components/networkAgent.js:246 #: js/gdm/loginDialog.js:926 js/ui/components/networkAgent.js:245
#: js/ui/components/networkAgent.js:269 js/ui/components/networkAgent.js:287 #: js/ui/components/networkAgent.js:268 js/ui/components/networkAgent.js:286
msgid "Username" msgid "Username"
msgstr "Naudotojo vardas" msgstr "Naudotojo vardas"
@ -648,26 +628,26 @@ msgctxt "search-result"
msgid "Lock Screen Rotation" msgid "Lock Screen Rotation"
msgstr "Užrakinti ekrano orientaciją" msgstr "Užrakinti ekrano orientaciją"
#: js/misc/util.js:120 #: js/misc/util.js:121
msgid "Command not found" msgid "Command not found"
msgstr "Komanda nerasta" msgstr "Komanda nerasta"
#. Replace "Error invoking GLib.shell_parse_argv: " with #. Replace "Error invoking GLib.shell_parse_argv: " with
#. something nicer #. something nicer
#: js/misc/util.js:156 #: js/misc/util.js:157
msgid "Could not parse command:" msgid "Could not parse command:"
msgstr "Nepavyko perskaityti komandos:" msgstr "Nepavyko perskaityti komandos:"
#: js/misc/util.js:164 #: js/misc/util.js:165
#, javascript-format #, javascript-format
msgid "Execution of “%s” failed:" msgid "Execution of “%s” failed:"
msgstr "Nepavyko įvykdyti „%s“:" msgstr "Nepavyko įvykdyti „%s“:"
#: js/misc/util.js:181 #: js/misc/util.js:182
msgid "Just now" msgid "Just now"
msgstr "Ką tik" msgstr "Ką tik"
#: js/misc/util.js:183 #: js/misc/util.js:184
#, javascript-format #, javascript-format
msgid "%d minute ago" msgid "%d minute ago"
msgid_plural "%d minutes ago" msgid_plural "%d minutes ago"
@ -675,7 +655,7 @@ msgstr[0] "Prieš %d minutę"
msgstr[1] "Prieš %d minutes" msgstr[1] "Prieš %d minutes"
msgstr[2] "Prieš %d minučių" msgstr[2] "Prieš %d minučių"
#: js/misc/util.js:187 #: js/misc/util.js:188
#, javascript-format #, javascript-format
msgid "%d hour ago" msgid "%d hour ago"
msgid_plural "%d hours ago" msgid_plural "%d hours ago"
@ -683,11 +663,11 @@ msgstr[0] "Prieš %d valandą"
msgstr[1] "Prieš %d valandas" msgstr[1] "Prieš %d valandas"
msgstr[2] "Prieš %d valandų" msgstr[2] "Prieš %d valandų"
#: js/misc/util.js:191 js/ui/dateMenu.js:162 #: js/misc/util.js:192 js/ui/dateMenu.js:162
msgid "Yesterday" msgid "Yesterday"
msgstr "Vakar" msgstr "Vakar"
#: js/misc/util.js:193 #: js/misc/util.js:194
#, javascript-format #, javascript-format
msgid "%d day ago" msgid "%d day ago"
msgid_plural "%d days ago" msgid_plural "%d days ago"
@ -695,7 +675,7 @@ msgstr[0] "Prieš %d dieną"
msgstr[1] "Prieš %d dienas" msgstr[1] "Prieš %d dienas"
msgstr[2] "Prieš %d dienų" msgstr[2] "Prieš %d dienų"
#: js/misc/util.js:197 #: js/misc/util.js:198
#, javascript-format #, javascript-format
msgid "%d week ago" msgid "%d week ago"
msgid_plural "%d weeks ago" msgid_plural "%d weeks ago"
@ -703,7 +683,7 @@ msgstr[0] "Prieš %d savaitę"
msgstr[1] "Prieš %d savaites" msgstr[1] "Prieš %d savaites"
msgstr[2] "Prieš %d savaičių" msgstr[2] "Prieš %d savaičių"
#: js/misc/util.js:201 #: js/misc/util.js:202
#, javascript-format #, javascript-format
msgid "%d month ago" msgid "%d month ago"
msgid_plural "%d months ago" msgid_plural "%d months ago"
@ -711,7 +691,7 @@ msgstr[0] "Prieš %d mėnesį"
msgstr[1] "Prieš %d mėnesius" msgstr[1] "Prieš %d mėnesius"
msgstr[2] "Prieš %d mėnesių" msgstr[2] "Prieš %d mėnesių"
#: js/misc/util.js:204 #: js/misc/util.js:205
#, javascript-format #, javascript-format
msgid "%d year ago" msgid "%d year ago"
msgid_plural "%d years ago" msgid_plural "%d years ago"
@ -720,20 +700,20 @@ msgstr[1] "Prieš %d metus"
msgstr[2] "Prieš %d metų" msgstr[2] "Prieš %d metų"
#. Translators: Time in 24h format #. Translators: Time in 24h format
#: js/misc/util.js:237 #: js/misc/util.js:238
msgid "%H%M" msgid "%H%M"
msgstr "%H%M" msgstr "%H%M"
#. Translators: this is the word "Yesterday" followed by a #. Translators: this is the word "Yesterday" followed by a
#. time string in 24h format. i.e. "Yesterday, 14:30" #. time string in 24h format. i.e. "Yesterday, 14:30"
#: js/misc/util.js:243 #: js/misc/util.js:244
#, no-c-format #, no-c-format
msgid "Yesterday, %H%M" msgid "Yesterday, %H%M"
msgstr "Vakar, %H:%M" msgstr "Vakar, %H:%M"
#. Translators: this is the week day name followed by a time #. Translators: this is the week day name followed by a time
#. string in 24h format. i.e. "Monday, 14:30" #. string in 24h format. i.e. "Monday, 14:30"
#: js/misc/util.js:249 #: js/misc/util.js:250
#, no-c-format #, no-c-format
msgid "%A, %H%M" msgid "%A, %H%M"
msgstr "%A, %H%M" msgstr "%A, %H%M"
@ -741,7 +721,7 @@ msgstr "%A, %H%M"
#. Translators: this is the month name and day number #. Translators: this is the month name and day number
#. followed by a time string in 24h format. #. followed by a time string in 24h format.
#. i.e. "May 25, 14:30" #. i.e. "May 25, 14:30"
#: js/misc/util.js:255 #: js/misc/util.js:256
#, no-c-format #, no-c-format
msgid "%B %-d, %H%M" msgid "%B %-d, %H%M"
msgstr "%B %-d, %H%M" msgstr "%B %-d, %H%M"
@ -749,7 +729,7 @@ msgstr "%B %-d, %H%M"
#. Translators: this is the month name, day number, year #. Translators: this is the month name, day number, year
#. number followed by a time string in 24h format. #. number followed by a time string in 24h format.
#. i.e. "May 25 2012, 14:30" #. i.e. "May 25 2012, 14:30"
#: js/misc/util.js:261 #: js/misc/util.js:262
#, no-c-format #, no-c-format
msgid "%B %-d %Y, %H%M" msgid "%B %-d %Y, %H%M"
msgstr "%Y %m %-d, %H%M" msgstr "%Y %m %-d, %H%M"
@ -757,20 +737,20 @@ msgstr "%Y %m %-d, %H%M"
#. Show only the time if date is on today #. Show only the time if date is on today
#. eslint-disable-line no-lonely-if #. eslint-disable-line no-lonely-if
#. Translators: Time in 12h format #. Translators: Time in 12h format
#: js/misc/util.js:266 #: js/misc/util.js:267
msgid "%l%M %p" msgid "%l%M %p"
msgstr "%l%M %p" msgstr "%l%M %p"
#. Translators: this is the word "Yesterday" followed by a #. Translators: this is the word "Yesterday" followed by a
#. time string in 12h format. i.e. "Yesterday, 2:30 pm" #. time string in 12h format. i.e. "Yesterday, 2:30 pm"
#: js/misc/util.js:272 #: js/misc/util.js:273
#, no-c-format #, no-c-format
msgid "Yesterday, %l%M %p" msgid "Yesterday, %l%M %p"
msgstr "Vakar, %l%M %p" msgstr "Vakar, %l%M %p"
#. Translators: this is the week day name followed by a time #. Translators: this is the week day name followed by a time
#. string in 12h format. i.e. "Monday, 2:30 pm" #. string in 12h format. i.e. "Monday, 2:30 pm"
#: js/misc/util.js:278 #: js/misc/util.js:279
#, no-c-format #, no-c-format
msgid "%A, %l%M %p" msgid "%A, %l%M %p"
msgstr "%A, %l%M %p" msgstr "%A, %l%M %p"
@ -778,7 +758,7 @@ msgstr "%A, %l%M %p"
#. Translators: this is the month name and day number #. Translators: this is the month name and day number
#. followed by a time string in 12h format. #. followed by a time string in 12h format.
#. i.e. "May 25, 2:30 pm" #. i.e. "May 25, 2:30 pm"
#: js/misc/util.js:284 #: js/misc/util.js:285
#, no-c-format #, no-c-format
msgid "%B %-d, %l%M %p" msgid "%B %-d, %l%M %p"
msgstr "%B %-d, %l%M %p" msgstr "%B %-d, %l%M %p"
@ -786,17 +766,17 @@ msgstr "%B %-d, %l%M %p"
#. Translators: this is the month name, day number, year #. Translators: this is the month name, day number, year
#. number followed by a time string in 12h format. #. number followed by a time string in 12h format.
#. i.e. "May 25 2012, 2:30 pm" #. i.e. "May 25 2012, 2:30 pm"
#: js/misc/util.js:290 #: js/misc/util.js:291
#, no-c-format #, no-c-format
msgid "%B %-d %Y, %l%M %p" msgid "%B %-d %Y, %l%M %p"
msgstr "%Y %m %-d, %l%M %p" msgstr "%Y %m %-d, %l%M %p"
#. TRANSLATORS: this is the title of the wifi captive portal login window #. TRANSLATORS: this is the title of the wifi captive portal login window
#: js/portalHelper/main.js:42 #: js/portalHelper/main.js:49
msgid "Hotspot Login" msgid "Hotspot Login"
msgstr "Prisijungimas prie prieigos taško" msgstr "Prisijungimas prie prieigos taško"
#: js/portalHelper/main.js:88 #: js/portalHelper/main.js:95
msgid "" msgid ""
"Your connection to this hotspot login is not secure. Passwords or other " "Your connection to this hotspot login is not secure. Passwords or other "
"information you enter on this page can be viewed by people nearby." "information you enter on this page can be viewed by people nearby."
@ -1041,39 +1021,39 @@ msgstr "Įdiegta udisks versija nepalaiko PIM nustatymo"
msgid "Open with %s" msgid "Open with %s"
msgstr "Atverti su %s" msgstr "Atverti su %s"
#: js/ui/components/networkAgent.js:93 #: js/ui/components/networkAgent.js:92
msgid "" msgid ""
"Alternatively you can connect by pushing the “WPS” button on your router." "Alternatively you can connect by pushing the “WPS” button on your router."
msgstr "" msgstr ""
"Taip pat galite prisijungti paspausdami „WPS“ mygtuką savo maršrutizatoriuje." "Taip pat galite prisijungti paspausdami „WPS“ mygtuką savo maršrutizatoriuje."
#: js/ui/components/networkAgent.js:105 js/ui/status/network.js:258 #: js/ui/components/networkAgent.js:104 js/ui/status/network.js:258
#: js/ui/status/network.js:349 js/ui/status/network.js:981 #: js/ui/status/network.js:349 js/ui/status/network.js:981
msgid "Connect" msgid "Connect"
msgstr "Prisijungti" msgstr "Prisijungti"
#: js/ui/components/networkAgent.js:216 #: js/ui/components/networkAgent.js:215
msgid "Key" msgid "Key"
msgstr "Raktas" msgstr "Raktas"
#: js/ui/components/networkAgent.js:254 js/ui/components/networkAgent.js:277 #: js/ui/components/networkAgent.js:253 js/ui/components/networkAgent.js:276
msgid "Private key password" msgid "Private key password"
msgstr "Privataus rakto slaptažodis" msgstr "Privataus rakto slaptažodis"
#: js/ui/components/networkAgent.js:275 #: js/ui/components/networkAgent.js:274
msgid "Identity" msgid "Identity"
msgstr "Tapatybė" msgstr "Tapatybė"
#: js/ui/components/networkAgent.js:289 #: js/ui/components/networkAgent.js:288
msgid "Service" msgid "Service"
msgstr "Tarnyba" msgstr "Tarnyba"
#: js/ui/components/networkAgent.js:318 js/ui/components/networkAgent.js:346 #: js/ui/components/networkAgent.js:317 js/ui/components/networkAgent.js:345
#: js/ui/components/networkAgent.js:679 js/ui/components/networkAgent.js:700 #: js/ui/components/networkAgent.js:679 js/ui/components/networkAgent.js:700
msgid "Authentication required" msgid "Authentication required"
msgstr "Reikia patvirtinti tapatybę" msgstr "Reikia patvirtinti tapatybę"
#: js/ui/components/networkAgent.js:319 js/ui/components/networkAgent.js:680 #: js/ui/components/networkAgent.js:318 js/ui/components/networkAgent.js:680
#, javascript-format #, javascript-format
msgid "" msgid ""
"Passwords or encryption keys are required to access the wireless network " "Passwords or encryption keys are required to access the wireless network "
@ -1082,31 +1062,31 @@ msgstr ""
"Slaptažodžiai arba šifravimo raktai yra būtini priėjimui prie belaidžio " "Slaptažodžiai arba šifravimo raktai yra būtini priėjimui prie belaidžio "
"tinklo „%s“." "tinklo „%s“."
#: js/ui/components/networkAgent.js:323 js/ui/components/networkAgent.js:684 #: js/ui/components/networkAgent.js:322 js/ui/components/networkAgent.js:684
msgid "Wired 802.1X authentication" msgid "Wired 802.1X authentication"
msgstr "Laidinis 802.1X tapatybės patvirtinimas" msgstr "Laidinis 802.1X tapatybės patvirtinimas"
#: js/ui/components/networkAgent.js:325 #: js/ui/components/networkAgent.js:324
msgid "Network name" msgid "Network name"
msgstr "Tinklo vardas" msgstr "Tinklo vardas"
#: js/ui/components/networkAgent.js:330 js/ui/components/networkAgent.js:688 #: js/ui/components/networkAgent.js:329 js/ui/components/networkAgent.js:688
msgid "DSL authentication" msgid "DSL authentication"
msgstr "DSL tapatybės patvirtinimas" msgstr "DSL tapatybės patvirtinimas"
#: js/ui/components/networkAgent.js:337 js/ui/components/networkAgent.js:693 #: js/ui/components/networkAgent.js:336 js/ui/components/networkAgent.js:693
msgid "PIN code required" msgid "PIN code required"
msgstr "Reikalingas PIN kodas" msgstr "Reikalingas PIN kodas"
#: js/ui/components/networkAgent.js:338 js/ui/components/networkAgent.js:694 #: js/ui/components/networkAgent.js:337 js/ui/components/networkAgent.js:694
msgid "PIN code is needed for the mobile broadband device" msgid "PIN code is needed for the mobile broadband device"
msgstr "Reikalingas PIN kodas mobiliajam plačiajuosčiam įrenginiui" msgstr "Reikalingas PIN kodas mobiliajam plačiajuosčiam įrenginiui"
#: js/ui/components/networkAgent.js:339 #: js/ui/components/networkAgent.js:338
msgid "PIN" msgid "PIN"
msgstr "PIN" msgstr "PIN"
#: js/ui/components/networkAgent.js:347 js/ui/components/networkAgent.js:685 #: js/ui/components/networkAgent.js:346 js/ui/components/networkAgent.js:685
#: js/ui/components/networkAgent.js:689 js/ui/components/networkAgent.js:701 #: js/ui/components/networkAgent.js:689 js/ui/components/networkAgent.js:701
#: js/ui/components/networkAgent.js:705 #: js/ui/components/networkAgent.js:705
#, javascript-format #, javascript-format
@ -1403,24 +1383,24 @@ msgstr "%s (nutolęs)"
msgid "%s (console)" msgid "%s (console)"
msgstr "%s (komandų eilutė)" msgstr "%s (komandų eilutė)"
#: js/ui/extensionDownloader.js:194 #: js/ui/extensionDownloader.js:232
msgid "Install" msgid "Install"
msgstr "Įdiegti" msgstr "Įdiegti"
#: js/ui/extensionDownloader.js:200 #: js/ui/extensionDownloader.js:238
msgid "Install Extension" msgid "Install Extension"
msgstr "Išdiegti plėtinį" msgstr "Išdiegti plėtinį"
#: js/ui/extensionDownloader.js:201 #: js/ui/extensionDownloader.js:239
#, javascript-format #, javascript-format
msgid "Download and install “%s” from extensions.gnome.org?" msgid "Download and install “%s” from extensions.gnome.org?"
msgstr "Parsiųsti ir įdiegti „%s“ iš extensions.gnome.org?" msgstr "Parsiųsti ir įdiegti „%s“ iš extensions.gnome.org?"
#: js/ui/extensionSystem.js:253 #: js/ui/extensionSystem.js:252
msgid "Extension Updates Available" msgid "Extension Updates Available"
msgstr "Yra plėtinių atnaujinimų" msgstr "Yra plėtinių atnaujinimų"
#: js/ui/extensionSystem.js:254 #: js/ui/extensionSystem.js:253
msgid "Extension updates are ready to be installed." msgid "Extension updates are ready to be installed."
msgstr "Plėtinių atnaujinimai paruošti diegimui." msgstr "Plėtinių atnaujinimai paruošti diegimui."
@ -1515,7 +1495,7 @@ msgstr "Išjungti"
msgid "Leave Off" msgid "Leave Off"
msgstr "Palikti išjungtą" msgstr "Palikti išjungtą"
#: js/ui/keyboard.js:227 #: js/ui/keyboard.js:226
msgid "Region & Language Settings" msgid "Region & Language Settings"
msgstr "Regiono ir kalbos nustatymai" msgstr "Regiono ir kalbos nustatymai"
@ -1568,11 +1548,11 @@ msgstr "Žiūrėti šaltinį"
msgid "Web Page" msgid "Web Page"
msgstr "Tinklalapis" msgstr "Tinklalapis"
#: js/ui/main.js:294 #: js/ui/main.js:290
msgid "Logged in as a privileged user" msgid "Logged in as a privileged user"
msgstr "Prisijungta privilegijuotu naudotoju" msgstr "Prisijungta privilegijuotu naudotoju"
#: js/ui/main.js:295 #: js/ui/main.js:291
msgid "" msgid ""
"Running a session as a privileged user should be avoided for security " "Running a session as a privileged user should be avoided for security "
"reasons. If possible, you should log in as a normal user." "reasons. If possible, you should log in as a normal user."
@ -1580,15 +1560,15 @@ msgstr ""
"Saugumo sumetimais turėtų būti vengiama vykdyti seansus privilegijuotais " "Saugumo sumetimais turėtų būti vengiama vykdyti seansus privilegijuotais "
"naudotojais. Jei įmanoma, turėtumėt visada prisjungti normaliu naudotoju." "naudotojais. Jei įmanoma, turėtumėt visada prisjungti normaliu naudotoju."
#: js/ui/main.js:344 #: js/ui/main.js:340
msgid "Screen Lock disabled" msgid "Screen Lock disabled"
msgstr "Ekrano užraktas išjungtas" msgstr "Ekrano užraktas išjungtas"
#: js/ui/main.js:345 #: js/ui/main.js:341
msgid "Screen Locking requires the GNOME display manager." msgid "Screen Locking requires the GNOME display manager."
msgstr "Ekrano užrakinimas reikalaujas GNOME vaizduoklio valdyklės." msgstr "Ekrano užrakinimas reikalaujas GNOME vaizduoklio valdyklės."
#: js/ui/messageTray.js:1440 #: js/ui/messageTray.js:1443
msgid "System Information" msgid "System Information"
msgstr "Sistemos informacija" msgstr "Sistemos informacija"
@ -1622,47 +1602,47 @@ msgstr "Atšaukti"
msgid "Overview" msgid "Overview"
msgstr "Apžvalga" msgstr "Apžvalga"
#: js/ui/padOsd.js:96 #: js/ui/padOsd.js:95
msgid "New shortcut…" msgid "New shortcut…"
msgstr "Naujas trumpinys…" msgstr "Naujas trumpinys…"
#: js/ui/padOsd.js:143 #: js/ui/padOsd.js:142
msgid "Application defined" msgid "Application defined"
msgstr "Programos nustatytas" msgstr "Programos nustatytas"
#: js/ui/padOsd.js:144 #: js/ui/padOsd.js:143
msgid "Show on-screen help" msgid "Show on-screen help"
msgstr "Rodyti pagalbą ekrane" msgstr "Rodyti pagalbą ekrane"
#: js/ui/padOsd.js:145 #: js/ui/padOsd.js:144
msgid "Switch monitor" msgid "Switch monitor"
msgstr "Keisti monitorių" msgstr "Keisti monitorių"
#: js/ui/padOsd.js:146 #: js/ui/padOsd.js:145
msgid "Assign keystroke" msgid "Assign keystroke"
msgstr "Priskirti klavišų kombinaciją" msgstr "Priskirti klavišų kombinaciją"
#: js/ui/padOsd.js:212 #: js/ui/padOsd.js:211
msgid "Done" msgid "Done"
msgstr "Atlikta" msgstr "Atlikta"
#: js/ui/padOsd.js:718 #: js/ui/padOsd.js:716
msgid "Edit…" msgid "Edit…"
msgstr "Keisti…" msgstr "Keisti…"
#: js/ui/padOsd.js:760 js/ui/padOsd.js:877 #: js/ui/padOsd.js:758 js/ui/padOsd.js:875
msgid "None" msgid "None"
msgstr "Nėra" msgstr "Nėra"
#: js/ui/padOsd.js:831 #: js/ui/padOsd.js:829
msgid "Press a button to configure" msgid "Press a button to configure"
msgstr "Spauskite mygtuką konfigūravimui" msgstr "Spauskite mygtuką konfigūravimui"
#: js/ui/padOsd.js:832 #: js/ui/padOsd.js:830
msgid "Press Esc to exit" msgid "Press Esc to exit"
msgstr "Spauskit Esc išėjimui" msgstr "Spauskit Esc išėjimui"
#: js/ui/padOsd.js:835 #: js/ui/padOsd.js:833
msgid "Press any key to exit" msgid "Press any key to exit"
msgstr "Išėjimui spauskite bet kurį klavišą" msgstr "Išėjimui spauskite bet kurį klavišą"
@ -1672,12 +1652,12 @@ msgstr "Išėjimui spauskite bet kurį klavišą"
msgid "Activities" msgid "Activities"
msgstr "Apžvalga" msgstr "Apžvalga"
#: js/ui/panel.js:542 #: js/ui/panel.js:556
msgctxt "System menu in the top bar" msgctxt "System menu in the top bar"
msgid "System" msgid "System"
msgstr "Sistema" msgstr "Sistema"
#: js/ui/panel.js:658 #: js/ui/panel.js:674
msgid "Top Bar" msgid "Top Bar"
msgstr "Viršutinė juosta" msgstr "Viršutinė juosta"
@ -1716,7 +1696,7 @@ msgstr "Nepavyksta užrakinti"
msgid "Lock was blocked by an application" msgid "Lock was blocked by an application"
msgstr "Programa užblokavo užrakinimą" msgstr "Programa užblokavo užrakinimą"
#: js/ui/screenshot.js:141 #: js/ui/screenshot.js:155
msgid "Screenshot taken" msgid "Screenshot taken"
msgstr "Ekrano nuotrauka padaryta" msgstr "Ekrano nuotrauka padaryta"
@ -2225,7 +2205,6 @@ msgid "Balanced"
msgstr "Balansuotas" msgstr "Balansuotas"
#: js/ui/status/powerProfiles.js:21 #: js/ui/status/powerProfiles.js:21
#| msgid "Power Settings"
msgctxt "Power profile" msgctxt "Power profile"
msgid "Power Saver" msgid "Power Saver"
msgstr "Taupantis energiją" msgstr "Taupantis energiją"
@ -2419,13 +2398,10 @@ msgid "%d × %d"
msgstr "%d × %d" msgstr "%d × %d"
#: js/ui/windowMenu.js:27 #: js/ui/windowMenu.js:27
#| msgid "Hide Text"
msgid "Hide" msgid "Hide"
msgstr "Slėpti" msgstr "Slėpti"
#: js/ui/windowMenu.js:34 #: js/ui/windowMenu.js:34
#| msgctxt "search-result"
#| msgid "Restart"
msgid "Restore" msgid "Restore"
msgstr "Atstatyti" msgstr "Atstatyti"
@ -2778,6 +2754,7 @@ msgstr "UUID, pavadinimas ir aprašymas yra būtini"
#: subprojects/extensions-tool/src/command-enable.c:46 #: subprojects/extensions-tool/src/command-enable.c:46
#: subprojects/extensions-tool/src/command-info.c:50 #: subprojects/extensions-tool/src/command-info.c:50
#: subprojects/extensions-tool/src/command-list.c:64 #: subprojects/extensions-tool/src/command-list.c:64
#: subprojects/extensions-tool/src/main.c:146
msgid "Failed to connect to GNOME Shell\n" msgid "Failed to connect to GNOME Shell\n"
msgstr "Nepavyko prisijungti prie GNOME apvalkalo\n" msgstr "Nepavyko prisijungti prie GNOME apvalkalo\n"
@ -2794,7 +2771,7 @@ msgstr "Išjungti plėtinį"
#: subprojects/extensions-tool/src/command-disable.c:119 #: subprojects/extensions-tool/src/command-disable.c:119
#: subprojects/extensions-tool/src/command-enable.c:119 #: subprojects/extensions-tool/src/command-enable.c:119
#: subprojects/extensions-tool/src/command-info.c:103 #: subprojects/extensions-tool/src/command-info.c:103
#: subprojects/extensions-tool/src/command-prefs.c:97 #: subprojects/extensions-tool/src/command-prefs.c:105
#: subprojects/extensions-tool/src/command-reset.c:76 #: subprojects/extensions-tool/src/command-reset.c:76
#: subprojects/extensions-tool/src/command-uninstall.c:104 #: subprojects/extensions-tool/src/command-uninstall.c:104
msgid "No UUID given" msgid "No UUID given"
@ -2803,7 +2780,7 @@ msgstr "Nenurodytas UUID"
#: subprojects/extensions-tool/src/command-disable.c:124 #: subprojects/extensions-tool/src/command-disable.c:124
#: subprojects/extensions-tool/src/command-enable.c:124 #: subprojects/extensions-tool/src/command-enable.c:124
#: subprojects/extensions-tool/src/command-info.c:108 #: subprojects/extensions-tool/src/command-info.c:108
#: subprojects/extensions-tool/src/command-prefs.c:102 #: subprojects/extensions-tool/src/command-prefs.c:110
#: subprojects/extensions-tool/src/command-reset.c:81 #: subprojects/extensions-tool/src/command-reset.c:81
#: subprojects/extensions-tool/src/command-uninstall.c:109 #: subprojects/extensions-tool/src/command-uninstall.c:109
msgid "More than one UUID given" msgid "More than one UUID given"
@ -2933,7 +2910,12 @@ msgstr "Nurodytas daugiau nei vienas kodo aplankas"
msgid "Extension “%s” doesn't have preferences\n" msgid "Extension “%s” doesn't have preferences\n"
msgstr "Plėtinys „%s“ neturi nustatymų\n" msgstr "Plėtinys „%s“ neturi nustatymų\n"
#: subprojects/extensions-tool/src/command-prefs.c:79 #: subprojects/extensions-tool/src/command-prefs.c:62
#, c-format
msgid "Failed to open prefs for extension “%s”: %s\n"
msgstr "Nepavyko atverti nuostatų plėtinio „%s“: %s\n"
#: subprojects/extensions-tool/src/command-prefs.c:87
msgid "Opens extension preferences" msgid "Opens extension preferences"
msgstr "Atveria plėtinio nuostatas" msgstr "Atveria plėtinio nuostatas"
@ -2958,10 +2940,6 @@ msgstr "Išdiegti plėtinį"
msgid "Do not print error messages" msgid "Do not print error messages"
msgstr "Nespausdinti klaidų pranešimų" msgstr "Nespausdinti klaidų pranešimų"
#: subprojects/extensions-tool/src/main.c:146
msgid "Failed to connect to GNOME Shell"
msgstr "Nepavyko prisijungti prie GNOME apvalkalo"
#: subprojects/extensions-tool/src/main.c:244 #: subprojects/extensions-tool/src/main.c:244
msgid "Path" msgid "Path"
msgstr "Kelias" msgstr "Kelias"
@ -3094,6 +3072,18 @@ msgstr[2] "%u įvesčių"
msgid "System Sounds" msgid "System Sounds"
msgstr "Sistemos garsai" msgstr "Sistemos garsai"
#~ msgid "Enable introspection API"
#~ msgstr "Įjungti nagrinėjimo sąsają"
#~ msgid ""
#~ "Enables a D-Bus API that allows to introspect the application state of "
#~ "the shell."
#~ msgstr ""
#~ "Įjungia D-Bus sąsają, kuri leidžia nagrinėti apvalkalo programos būseną."
#~ msgid "Failed to connect to GNOME Shell"
#~ msgstr "Nepavyko prisijungti prie GNOME apvalkalo"
#~ msgid "Minimize" #~ msgid "Minimize"
#~ msgstr "Sumažinti" #~ msgstr "Sumažinti"

View File

@ -7,8 +7,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: gnome-shell master oc\n" "Project-Id-Version: gnome-shell master oc\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell/issues\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell/issues\n"
"POT-Creation-Date: 2021-09-09 03:40+0000\n" "POT-Creation-Date: 2021-11-13 20:24+0000\n"
"PO-Revision-Date: 2021-08-18 11:11+0200\n" "PO-Revision-Date: 2021-11-07 20:30+0100\n"
"Last-Translator: Quentin PAGÈS\n" "Last-Translator: Quentin PAGÈS\n"
"Language-Team: Tot En Òc\n" "Language-Team: Tot En Òc\n"
"Language: oc\n" "Language: oc\n"
@ -191,14 +191,14 @@ msgstr "Istoric de la bóstia de dialòg d'inspeccion"
#: data/org.gnome.shell.gschema.xml.in:71 #: data/org.gnome.shell.gschema.xml.in:71
msgid "Always show the “Log out” menu item in the user menu." msgid "Always show the “Log out” menu item in the user menu."
msgstr "Totjorn afichar lelement « Se desconnectar » dins lo menú utilizaire." msgstr "Totjorn afichar lelement «Se desconnectar» dins lo menú utilizaire."
#: data/org.gnome.shell.gschema.xml.in:72 #: data/org.gnome.shell.gschema.xml.in:72
msgid "" msgid ""
"This key overrides the automatic hiding of the “Log out” menu item in single-" "This key overrides the automatic hiding of the “Log out” menu item in single-"
"user, single-session situations." "user, single-session situations."
msgstr "" msgstr ""
"Aquesta clau aficha lelement « Se desconnectar » del menú utilizaire " "Aquesta clau aficha lelement «Se desconnectar» del menú utilizaire "
"normalament amagat automaticament dins lo cas duna session o dun " "normalament amagat automaticament dins lo cas duna session o dun "
"utilizaire unic." "utilizaire unic."
@ -218,7 +218,7 @@ msgid ""
msgstr "" msgstr ""
"Lo shell demandarà un senhal al montatge dun periferic chifrat o dun " "Lo shell demandarà un senhal al montatge dun periferic chifrat o dun "
"sistèma de fichièrs distant. Se lo senhal pòt èsser enregistrat per una " "sistèma de fichièrs distant. Se lo senhal pòt èsser enregistrat per una "
"utilizacion ulteriora, una casa de marcar « Se remembrar del senhal » serà " "utilizacion ulteriora, una casa de marcar «Se remembrar del senhal» serà "
"presenta. Aquesta clau determina lestat per defaut d'aquesta casa de marcar." "presenta. Aquesta clau determina lestat per defaut d'aquesta casa de marcar."
#: data/org.gnome.shell.gschema.xml.in:89 #: data/org.gnome.shell.gschema.xml.in:89
@ -241,7 +241,7 @@ msgstr ""
#: data/org.gnome.shell.gschema.xml.in:99 #: data/org.gnome.shell.gschema.xml.in:99
msgid "The last version the “Welcome to GNOME” dialog was shown for" msgid "The last version the “Welcome to GNOME” dialog was shown for"
msgstr "" msgstr ""
"La darrièra version de la fenèstra de « Benvenguda a GNOME » èra mostrada per" "La darrièra version de la fenèstra de «Benvenguda a GNOME» èra mostrada per"
#: data/org.gnome.shell.gschema.xml.in:100 #: data/org.gnome.shell.gschema.xml.in:100
msgid "" msgid ""
@ -250,7 +250,7 @@ msgid ""
"number will represent versions that do not exist yet. This huge number can " "number will represent versions that do not exist yet. This huge number can "
"be used to effectively disable the dialog." "be used to effectively disable the dialog."
msgstr "" msgstr ""
"Aquesta clau determina la version de la fenèstra « la Benvenguda de GNOME » " "Aquesta clau determina la version de la fenèstra «Benvenguda de GNOME» "
"darrièrament afichada. Una cadena de tèxt voida indica la version mai " "darrièrament afichada. Una cadena de tèxt voida indica la version mai "
"anciana possibla, e un grand nombre representa una version qu'existís pas " "anciana possibla, e un grand nombre representa una version qu'existís pas "
"encara. Un grand nombre pòt servir a desactivar dun biais efectiu la " "encara. Un grand nombre pòt servir a desactivar dun biais efectiu la "
@ -301,13 +301,13 @@ msgstr ""
#: data/org.gnome.shell.gschema.xml.in:170 #: data/org.gnome.shell.gschema.xml.in:170
msgid "Keybinding to open the “Show Applications” view" msgid "Keybinding to open the “Show Applications” view"
msgstr "Combinason de tòcas per dobrir la vista « Afichar las aplicacions »" msgstr "Combinason de tòcas per dobrir la vista «Afichar las aplicacions»"
#: data/org.gnome.shell.gschema.xml.in:171 #: data/org.gnome.shell.gschema.xml.in:171
msgid "" msgid ""
"Keybinding to open the “Show Applications” view of the Activities Overview." "Keybinding to open the “Show Applications” view of the Activities Overview."
msgstr "" msgstr ""
"Combinason de tòcas per dobrir la vista « Afichar las aplicacions » de la " "Combinason de tòcas per dobrir la vista «Afichar las aplicacions» de la "
"vista densemble de las activitats." "vista densemble de las activitats."
#: data/org.gnome.shell.gschema.xml.in:178 #: data/org.gnome.shell.gschema.xml.in:178
@ -399,9 +399,9 @@ msgid ""
"only” (shows only the application icon) or “both”." "only” (shows only the application icon) or “both”."
msgstr "" msgstr ""
"Configura lo biais que las fenèstras son afichadas dins lo selector. Las " "Configura lo biais que las fenèstras son afichadas dins lo selector. Las "
"causidas possiblas son « thumbnail-only » (aficha una miniatura de la " "causidas possiblas son «thumbnail-only» (aficha una miniatura de la "
"fenèstra), « app-icon-only » (aficha unicament licòna de laplicacion), o « " "fenèstra), «app-icon-only» (aficha unicament licòna de laplicacion), o «"
"both » (aficha los dos)." "both» (aficha los dos)."
#: data/org.gnome.shell.gschema.xml.in:268 #: data/org.gnome.shell.gschema.xml.in:268
msgid "" msgid ""
@ -522,7 +522,7 @@ msgstr "Causir una session"
#: js/gdm/loginDialog.js:456 #: js/gdm/loginDialog.js:456
msgid "Not listed?" msgid "Not listed?"
msgstr "Absent de la lista ?" msgstr "Absent de la lista?"
#. Translators: this message is shown below the username entry field #. Translators: this message is shown below the username entry field
#. to clue the user in on how to login to the local network realm #. to clue the user in on how to login to the local network realm
@ -653,7 +653,7 @@ msgstr "Impossible d'analisar la comanda :"
#: js/misc/util.js:165 #: js/misc/util.js:165
#, javascript-format #, javascript-format
msgid "Execution of “%s” failed:" msgid "Execution of “%s” failed:"
msgstr "Execucion de « %s » impossibla :" msgstr "Execucion de «%s» impossibla:"
#: js/misc/util.js:182 #: js/misc/util.js:182
msgid "Just now" msgid "Just now"
@ -989,7 +989,7 @@ msgstr "Escafar"
#: js/ui/closeDialog.js:42 #: js/ui/closeDialog.js:42
#, javascript-format #, javascript-format
msgid "“%s” is not responding." msgid "“%s” is not responding."
msgstr "« %s » respond pas." msgstr "«%s» respond pas."
#: js/ui/closeDialog.js:43 #: js/ui/closeDialog.js:43
msgid "" msgid ""
@ -1064,7 +1064,7 @@ msgid ""
"Passwords or encryption keys are required to access the wireless network " "Passwords or encryption keys are required to access the wireless network "
"“%s”." "“%s”."
msgstr "" msgstr ""
"Cal un senhal o una clau de chiframent per accedir a la ret sens fial « %s »." "Cal un senhal o una clau de chiframent per accedir a la ret sens fial «%s»."
#: js/ui/components/networkAgent.js:322 js/ui/components/networkAgent.js:684 #: js/ui/components/networkAgent.js:322 js/ui/components/networkAgent.js:684
msgid "Wired 802.1X authentication" msgid "Wired 802.1X authentication"
@ -1095,7 +1095,7 @@ msgstr "PIN"
#: js/ui/components/networkAgent.js:705 #: js/ui/components/networkAgent.js:705
#, javascript-format #, javascript-format
msgid "A password is required to connect to “%s”." msgid "A password is required to connect to “%s”."
msgstr "Un senhal es requesit per se connectar a « %s »." msgstr "Un senhal es requesit per se connectar a «%s»."
#: js/ui/components/networkAgent.js:668 js/ui/status/network.js:1789 #: js/ui/components/networkAgent.js:668 js/ui/status/network.js:1789
msgid "Network Manager" msgid "Network Manager"
@ -1433,13 +1433,13 @@ msgstr "Installar lextension"
#: js/ui/extensionDownloader.js:239 #: js/ui/extensionDownloader.js:239
#, javascript-format #, javascript-format
msgid "Download and install “%s” from extensions.gnome.org?" msgid "Download and install “%s” from extensions.gnome.org?"
msgstr "Telecargar e installar « %s » a partir de extensions.gnome.org ?" msgstr "Telecargar e installar «%s» a partir de extensions.gnome.org?"
#: js/ui/extensionSystem.js:252 #: js/ui/extensionSystem.js:266
msgid "Extension Updates Available" msgid "Extension Updates Available"
msgstr "Mesas a jorn extension disponiblas" msgstr "Mesas a jorn extension disponiblas"
#: js/ui/extensionSystem.js:253 #: js/ui/extensionSystem.js:267
msgid "Extension updates are ready to be installed." msgid "Extension updates are ready to be installed."
msgstr "Mesas a jorn per lextension prèstas per installacion." msgstr "Mesas a jorn per lextension prèstas per installacion."
@ -2404,7 +2404,7 @@ msgstr "Far la visita"
#: js/ui/windowAttentionHandler.js:20 #: js/ui/windowAttentionHandler.js:20
#, javascript-format #, javascript-format
msgid "“%s” is ready" msgid "“%s” is ready"
msgstr "« %s » es prèst" msgstr "«%s» es prèst"
#. Translators: This string should be shorter than 30 characters #. Translators: This string should be shorter than 30 characters
#: js/ui/windowManager.js:63 #: js/ui/windowManager.js:63
@ -2518,7 +2518,7 @@ msgstr "Mòde utilizat per GDM per l'ecran de connexion"
#: src/main.c:431 #: src/main.c:431
msgid "Use a specific mode, e.g. “gdm” for login screen" msgid "Use a specific mode, e.g. “gdm” for login screen"
msgstr "Utilizar un mòde particular, per ex. « gdm » per lecran de connexion" msgstr "Utilizar un mòde particular, per ex. «gdm» per lecran de connexion"
#: src/main.c:437 #: src/main.c:437
msgid "List possible modes" msgid "List possible modes"
@ -2532,7 +2532,7 @@ msgstr "Desconegut"
#: src/shell-app.c:549 #: src/shell-app.c:549
#, c-format #, c-format
msgid "Failed to launch “%s”" msgid "Failed to launch “%s”"
msgstr "Impossible d'aviar « %s »" msgstr "Impossible d'aviar «%s»"
#: src/shell-keyring-prompt.c:731 #: src/shell-keyring-prompt.c:731
msgid "Passwords do not match." msgid "Passwords do not match."
@ -2583,7 +2583,7 @@ msgstr "Cap de correspondéncia pas trobada"
#: subprojects/extensions-app/js/main.js:179 #: subprojects/extensions-app/js/main.js:179
#, javascript-format #, javascript-format
msgid "Remove “%s”?" msgid "Remove “%s”?"
msgstr "Suprimir « %s » ?" msgstr "Suprimir «%s » ?"
#: subprojects/extensions-app/js/main.js:180 #: subprojects/extensions-app/js/main.js:180
msgid "" msgid ""
@ -2794,6 +2794,7 @@ msgstr "Los camps UUIS, nom e descripcion son obligatòris"
#: subprojects/extensions-tool/src/command-enable.c:46 #: subprojects/extensions-tool/src/command-enable.c:46
#: subprojects/extensions-tool/src/command-info.c:50 #: subprojects/extensions-tool/src/command-info.c:50
#: subprojects/extensions-tool/src/command-list.c:64 #: subprojects/extensions-tool/src/command-list.c:64
#: subprojects/extensions-tool/src/main.c:146
msgid "Failed to connect to GNOME Shell\n" msgid "Failed to connect to GNOME Shell\n"
msgstr "Error en se connectant a Shell de GNOME\n" msgstr "Error en se connectant a Shell de GNOME\n"
@ -2810,7 +2811,7 @@ msgstr "Desactivar una extension"
#: subprojects/extensions-tool/src/command-disable.c:119 #: subprojects/extensions-tool/src/command-disable.c:119
#: subprojects/extensions-tool/src/command-enable.c:119 #: subprojects/extensions-tool/src/command-enable.c:119
#: subprojects/extensions-tool/src/command-info.c:103 #: subprojects/extensions-tool/src/command-info.c:103
#: subprojects/extensions-tool/src/command-prefs.c:97 #: subprojects/extensions-tool/src/command-prefs.c:105
#: subprojects/extensions-tool/src/command-reset.c:76 #: subprojects/extensions-tool/src/command-reset.c:76
#: subprojects/extensions-tool/src/command-uninstall.c:104 #: subprojects/extensions-tool/src/command-uninstall.c:104
msgid "No UUID given" msgid "No UUID given"
@ -2819,7 +2820,7 @@ msgstr "Cap dUUID pas indicat"
#: subprojects/extensions-tool/src/command-disable.c:124 #: subprojects/extensions-tool/src/command-disable.c:124
#: subprojects/extensions-tool/src/command-enable.c:124 #: subprojects/extensions-tool/src/command-enable.c:124
#: subprojects/extensions-tool/src/command-info.c:108 #: subprojects/extensions-tool/src/command-info.c:108
#: subprojects/extensions-tool/src/command-prefs.c:102 #: subprojects/extensions-tool/src/command-prefs.c:110
#: subprojects/extensions-tool/src/command-reset.c:81 #: subprojects/extensions-tool/src/command-reset.c:81
#: subprojects/extensions-tool/src/command-uninstall.c:109 #: subprojects/extensions-tool/src/command-uninstall.c:109
msgid "More than one UUID given" msgid "More than one UUID given"
@ -2949,7 +2950,12 @@ msgstr "Mai dun repertòri font indicat"
msgid "Extension “%s” doesn't have preferences\n" msgid "Extension “%s” doesn't have preferences\n"
msgstr "Lextension « %s » a pas de preferéncias\n" msgstr "Lextension « %s » a pas de preferéncias\n"
#: subprojects/extensions-tool/src/command-prefs.c:79 #: subprojects/extensions-tool/src/command-prefs.c:62
#, c-format
msgid "Failed to open prefs for extension “%s”: %s\n"
msgstr "Dobertura impossibla de las preferéncias per l'extension « %s»: %s\n"
#: subprojects/extensions-tool/src/command-prefs.c:87
msgid "Opens extension preferences" msgid "Opens extension preferences"
msgstr "Dobrís las preferéncias de las extensions" msgstr "Dobrís las preferéncias de las extensions"
@ -2974,10 +2980,6 @@ msgstr "Desinstallar una extension"
msgid "Do not print error messages" msgid "Do not print error messages"
msgstr "Afichar pas los messatges d'error" msgstr "Afichar pas los messatges d'error"
#: subprojects/extensions-tool/src/main.c:146
msgid "Failed to connect to GNOME Shell"
msgstr "Error en se connectant a Shell de GNOME"
#: subprojects/extensions-tool/src/main.c:244 #: subprojects/extensions-tool/src/main.c:244
msgid "Path" msgid "Path"
msgstr "Camin" msgstr "Camin"
@ -2996,7 +2998,7 @@ msgstr "Estat"
#: subprojects/extensions-tool/src/main.c:290 #: subprojects/extensions-tool/src/main.c:290
msgid "“version” takes no arguments" msgid "“version” takes no arguments"
msgstr "« version » accèpta pas cap de paramètre" msgstr "«version» accèpta pas cap de paramètre"
#: subprojects/extensions-tool/src/main.c:292 #: subprojects/extensions-tool/src/main.c:292
#: subprojects/extensions-tool/src/main.c:312 #: subprojects/extensions-tool/src/main.c:312
@ -3018,7 +3020,7 @@ msgstr "[PARAMS...]"
#: subprojects/extensions-tool/src/main.c:315 #: subprojects/extensions-tool/src/main.c:315
msgid "Commands:" msgid "Commands:"
msgstr "Comandas :" msgstr "Comandas:"
#: subprojects/extensions-tool/src/main.c:316 #: subprojects/extensions-tool/src/main.c:316
msgid "Print help" msgid "Print help"
@ -3108,6 +3110,9 @@ msgstr[1] "%u entradas"
msgid "System Sounds" msgid "System Sounds"
msgstr "Sons sistèma" msgstr "Sons sistèma"
#~ msgid "Failed to connect to GNOME Shell"
#~ msgstr "Error en se connectant a Shell de GNOME"
#~ msgid "Enable introspection API" #~ msgid "Enable introspection API"
#~ msgstr "Activar lAPI dintrospeccion" #~ msgstr "Activar lAPI dintrospeccion"

View File

@ -10,8 +10,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: gnome-shell\n" "Project-Id-Version: gnome-shell\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell/issues\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell/issues\n"
"POT-Creation-Date: 2021-09-03 21:44+0000\n" "POT-Creation-Date: 2021-11-04 17:29+0000\n"
"PO-Revision-Date: 2021-09-11 15:48+0200\n" "PO-Revision-Date: 2021-11-06 14:25+0100\n"
"Last-Translator: Piotr Drąg <piotrdrag@gmail.com>\n" "Last-Translator: Piotr Drąg <piotrdrag@gmail.com>\n"
"Language-Team: Polish <community-poland@mozilla.org>\n" "Language-Team: Polish <community-poland@mozilla.org>\n"
"Language: pl\n" "Language: pl\n"
@ -2771,6 +2771,7 @@ msgstr "UUID, nazwa i opis są wymagane"
#: subprojects/extensions-tool/src/command-enable.c:46 #: subprojects/extensions-tool/src/command-enable.c:46
#: subprojects/extensions-tool/src/command-info.c:50 #: subprojects/extensions-tool/src/command-info.c:50
#: subprojects/extensions-tool/src/command-list.c:64 #: subprojects/extensions-tool/src/command-list.c:64
#: subprojects/extensions-tool/src/main.c:146
msgid "Failed to connect to GNOME Shell\n" msgid "Failed to connect to GNOME Shell\n"
msgstr "Połączenie z powłoką GNOME się nie powiodło\n" msgstr "Połączenie z powłoką GNOME się nie powiodło\n"
@ -2787,7 +2788,7 @@ msgstr "Wyłącza rozszerzenie"
#: subprojects/extensions-tool/src/command-disable.c:119 #: subprojects/extensions-tool/src/command-disable.c:119
#: subprojects/extensions-tool/src/command-enable.c:119 #: subprojects/extensions-tool/src/command-enable.c:119
#: subprojects/extensions-tool/src/command-info.c:103 #: subprojects/extensions-tool/src/command-info.c:103
#: subprojects/extensions-tool/src/command-prefs.c:97 #: subprojects/extensions-tool/src/command-prefs.c:105
#: subprojects/extensions-tool/src/command-reset.c:76 #: subprojects/extensions-tool/src/command-reset.c:76
#: subprojects/extensions-tool/src/command-uninstall.c:104 #: subprojects/extensions-tool/src/command-uninstall.c:104
msgid "No UUID given" msgid "No UUID given"
@ -2796,7 +2797,7 @@ msgstr "Nie podano UUID"
#: subprojects/extensions-tool/src/command-disable.c:124 #: subprojects/extensions-tool/src/command-disable.c:124
#: subprojects/extensions-tool/src/command-enable.c:124 #: subprojects/extensions-tool/src/command-enable.c:124
#: subprojects/extensions-tool/src/command-info.c:108 #: subprojects/extensions-tool/src/command-info.c:108
#: subprojects/extensions-tool/src/command-prefs.c:102 #: subprojects/extensions-tool/src/command-prefs.c:110
#: subprojects/extensions-tool/src/command-reset.c:81 #: subprojects/extensions-tool/src/command-reset.c:81
#: subprojects/extensions-tool/src/command-uninstall.c:109 #: subprojects/extensions-tool/src/command-uninstall.c:109
msgid "More than one UUID given" msgid "More than one UUID given"
@ -2926,7 +2927,12 @@ msgstr "Podano więcej niż jeden katalog źródłowy"
msgid "Extension “%s” doesn't have preferences\n" msgid "Extension “%s” doesn't have preferences\n"
msgstr "Rozszerzenie „%s” nie ma preferencji\n" msgstr "Rozszerzenie „%s” nie ma preferencji\n"
#: subprojects/extensions-tool/src/command-prefs.c:79 #: subprojects/extensions-tool/src/command-prefs.c:62
#, c-format
msgid "Failed to open prefs for extension “%s”: %s\n"
msgstr "Otwarcie preferencji rozszerzenia „%s” się nie powiodło: %s\n"
#: subprojects/extensions-tool/src/command-prefs.c:87
msgid "Opens extension preferences" msgid "Opens extension preferences"
msgstr "Otwiera preferencje rozszerzenia" msgstr "Otwiera preferencje rozszerzenia"
@ -2951,10 +2957,6 @@ msgstr "Odinstalowuje rozszerzenie"
msgid "Do not print error messages" msgid "Do not print error messages"
msgstr "Bez wyświetlania komunikatów o błędach" msgstr "Bez wyświetlania komunikatów o błędach"
#: subprojects/extensions-tool/src/main.c:146
msgid "Failed to connect to GNOME Shell"
msgstr "Połączenie z powłoką GNOME się nie powiodło"
#: subprojects/extensions-tool/src/main.c:244 #: subprojects/extensions-tool/src/main.c:244
msgid "Path" msgid "Path"
msgstr "Ścieżka" msgstr "Ścieżka"

View File

@ -16,8 +16,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: 3.14\n" "Project-Id-Version: 3.14\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell/issues\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell/issues\n"
"POT-Creation-Date: 2021-11-03 10:04+0000\n" "POT-Creation-Date: 2021-11-26 16:19+0000\n"
"PO-Revision-Date: 2021-11-03 11:49+0000\n" "PO-Revision-Date: 2021-11-27 15:42+0000\n"
"Last-Translator: Hugo Carvalho <hugokarvalho@hotmail.com>\n" "Last-Translator: Hugo Carvalho <hugokarvalho@hotmail.com>\n"
"Language-Team: Português <https://l10n.gnome.org/teams/pt/>\n" "Language-Team: Português <https://l10n.gnome.org/teams/pt/>\n"
"Language: pt\n" "Language: pt\n"
@ -802,7 +802,7 @@ msgstr "Negar acesso"
msgid "Grant Access" msgid "Grant Access"
msgstr "Conceder acesso" msgstr "Conceder acesso"
#: js/ui/appDisplay.js:1846 #: js/ui/appDisplay.js:1791
msgid "Unnamed Folder" msgid "Unnamed Folder"
msgstr "Pasta sem nome" msgstr "Pasta sem nome"
@ -1398,11 +1398,11 @@ msgstr "Instalar extensão"
msgid "Download and install “%s” from extensions.gnome.org?" msgid "Download and install “%s” from extensions.gnome.org?"
msgstr "Transferir e instalar \"%s\" a partir de extensions.gnome.org?" msgstr "Transferir e instalar \"%s\" a partir de extensions.gnome.org?"
#: js/ui/extensionSystem.js:252 #: js/ui/extensionSystem.js:266
msgid "Extension Updates Available" msgid "Extension Updates Available"
msgstr "Há atualizações de extensões disponíveis" msgstr "Há atualizações de extensões disponíveis"
#: js/ui/extensionSystem.js:253 #: js/ui/extensionSystem.js:267
msgid "Extension updates are ready to be installed." msgid "Extension updates are ready to be installed."
msgstr "As atualizações de extensões estão prontas para serem instaladas." msgstr "As atualizações de extensões estão prontas para serem instaladas."
@ -1551,11 +1551,23 @@ msgstr "Ver fonte"
msgid "Web Page" msgid "Web Page"
msgstr "Página Web" msgstr "Página Web"
#: js/ui/main.js:290 #: js/ui/main.js:259
msgid "System was put in unsafe mode"
msgstr "O sistema foi colocado em modo inseguro"
#: js/ui/main.js:260
msgid "Applications now have unrestricted access"
msgstr "As aplicações têm agora acesso sem restrições"
#: js/ui/main.js:261 js/ui/overview.js:58
msgid "Undo"
msgstr "Desfazer"
#: js/ui/main.js:307
msgid "Logged in as a privileged user" msgid "Logged in as a privileged user"
msgstr "Em sessão como utilizador privilegiado" msgstr "Em sessão como utilizador privilegiado"
#: js/ui/main.js:291 #: js/ui/main.js:308
msgid "" msgid ""
"Running a session as a privileged user should be avoided for security " "Running a session as a privileged user should be avoided for security "
"reasons. If possible, you should log in as a normal user." "reasons. If possible, you should log in as a normal user."
@ -1563,11 +1575,11 @@ msgstr ""
"Executar uma sessão como utilizador privilegiado deve ser evitado por " "Executar uma sessão como utilizador privilegiado deve ser evitado por "
"motivos de segurança. Se possível, aceder como utilizador normal." "motivos de segurança. Se possível, aceder como utilizador normal."
#: js/ui/main.js:340 #: js/ui/main.js:357
msgid "Screen Lock disabled" msgid "Screen Lock disabled"
msgstr "Bloqueio de ecrã desligado" msgstr "Bloqueio de ecrã desligado"
#: js/ui/main.js:341 #: js/ui/main.js:358
msgid "Screen Locking requires the GNOME display manager." msgid "Screen Locking requires the GNOME display manager."
msgstr "O bloqueio de ecrã requer o gestor de exibição do GNOME." msgstr "O bloqueio de ecrã requer o gestor de exibição do GNOME."
@ -1595,10 +1607,6 @@ msgstr "Escreva para pesquisar"
msgid "Applications" msgid "Applications"
msgstr "Aplicações" msgstr "Aplicações"
#: js/ui/overview.js:58
msgid "Undo"
msgstr "Desfazer"
#. Translators: This is the main view to select #. Translators: This is the main view to select
#. activities. See also note for "Activities" string. #. activities. See also note for "Activities" string.
#: js/ui/overview.js:71 #: js/ui/overview.js:71
@ -2919,7 +2927,7 @@ msgstr "Criar um pacote de extensões"
#: subprojects/extensions-tool/src/command-pack.c:501 #: subprojects/extensions-tool/src/command-pack.c:501
msgid "More than one source directory specified" msgid "More than one source directory specified"
msgstr "Mais do que um diretório de origem especificado" msgstr "Especificado mais do que um diretório origem"
#: subprojects/extensions-tool/src/command-prefs.c:47 #: subprojects/extensions-tool/src/command-prefs.c:47
#, c-format #, c-format
@ -2929,7 +2937,7 @@ msgstr "A extensão “%s” não tem preferências\n"
#: subprojects/extensions-tool/src/command-prefs.c:62 #: subprojects/extensions-tool/src/command-prefs.c:62
#, c-format #, c-format
msgid "Failed to open prefs for extension “%s”: %s\n" msgid "Failed to open prefs for extension “%s”: %s\n"
msgstr "Falha ao abrir prefs para extensão \"%s\": %s\n" msgstr "Falha ao abrir prefs para a extensão \"%s\": %s\n"
#: subprojects/extensions-tool/src/command-prefs.c:87 #: subprojects/extensions-tool/src/command-prefs.c:87
msgid "Opens extension preferences" msgid "Opens extension preferences"
@ -3084,7 +3092,7 @@ msgstr[1] "%u entradas"
#: subprojects/gvc/gvc-mixer-control.c:2867 #: subprojects/gvc/gvc-mixer-control.c:2867
msgid "System Sounds" msgid "System Sounds"
msgstr "Sons do sistema" msgstr "Sons de sistema"
#~ msgid "Enable introspection API" #~ msgid "Enable introspection API"
#~ msgstr "Ativar API de introspecção" #~ msgstr "Ativar API de introspecção"

463
po/ru.po
View File

@ -15,28 +15,22 @@
# Stas Solovey <whats_up@tut.by>, 2011, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020. # Stas Solovey <whats_up@tut.by>, 2011, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020.
# Ivan Molodetskikh <yalterz@gmail.com>, 2020. # Ivan Molodetskikh <yalterz@gmail.com>, 2020.
# Konstantin Nezhbert <zhbert@yandex.ru>, 2021. # Konstantin Nezhbert <zhbert@yandex.ru>, 2021.
# Melman <Alexmelman88@gmail.com>, 2021.
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: gnome-shell\n" "Project-Id-Version: gnome-shell\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell/issues\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell/issues\n"
"POT-Creation-Date: 2021-11-03 10:04+0000\n" "POT-Creation-Date: 2021-08-17 23:56+0000\n"
"PO-Revision-Date: 2021-11-03 14:58+0300\n" "PO-Revision-Date: 2021-08-19 08:44+0300\n"
"Last-Translator: Melman <Alexmelman88@gmail.com>\n" "Last-Translator: Alexey Rubtsov <rushills@gmail.com>\n"
"Language-Team: Russian <gnome-cyr@gnome.org>\n" "Language-Team: Russian <gnome-cyr@gnome.org>\n"
"Language: ru\n" "Language: ru\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
"X-Generator: Gtranslator 40.0\n" "X-Generator: Poedit 3.0\n"
"X-DL-Team: ru\n"
"X-DL-Module: gnome-shell\n"
"X-DL-Branch: gnome-41\n"
"X-DL-Domain: po\n"
"X-DL-State: None\n"
# Запуск приложений, как другой вариант # Запуск приложений, как другой вариант
#: data/50-gnome-shell-launchers.xml:6 #: data/50-gnome-shell-launchers.xml:6
@ -269,11 +263,23 @@ msgstr ""
"существуют. Это большое число может быть использовано для эффективного " "существуют. Это большое число может быть использовано для эффективного "
"отключения диалога." "отключения диалога."
#: data/org.gnome.shell.gschema.xml.in:133 #: data/org.gnome.shell.gschema.xml.in:109
msgid "Enable introspection API"
msgstr "Включить API самоанализа"
#: data/org.gnome.shell.gschema.xml.in:110
msgid ""
"Enables a D-Bus API that allows to introspect the application state of the "
"shell."
msgstr ""
"Включает D-Bus API, который позволяет анализировать состояние приложения "
"gnome shell."
#: data/org.gnome.shell.gschema.xml.in:141
msgid "Layout of the app picker" msgid "Layout of the app picker"
msgstr "Макет меню выбора приложений" msgstr "Макет меню выбора приложений"
#: data/org.gnome.shell.gschema.xml.in:134 #: data/org.gnome.shell.gschema.xml.in:142
msgid "" msgid ""
"Layout of the app picker. Each entry in the array is a page. Pages are " "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 " "stored in the order they appear in GNOME Shell. Each page contains an "
@ -286,107 +292,107 @@ msgstr ""
"настоящее время в качестве “data” хранятся следующие значения: • \"position" "настоящее время в качестве “data” хранятся следующие значения: • \"position"
"\" - положение значка приложения на странице" "\" - положение значка приложения на странице"
#: data/org.gnome.shell.gschema.xml.in:149 #: data/org.gnome.shell.gschema.xml.in:157
msgid "Keybinding to open the application menu" msgid "Keybinding to open the application menu"
msgstr "Комбинация клавиш для открытия меню приложения" msgstr "Комбинация клавиш для открытия меню приложения"
#: data/org.gnome.shell.gschema.xml.in:150 #: data/org.gnome.shell.gschema.xml.in:158
msgid "Keybinding to open the application menu." msgid "Keybinding to open the application menu."
msgstr "Комбинация клавиш для открытия меню приложения." msgstr "Комбинация клавиш для открытия меню приложения."
#: data/org.gnome.shell.gschema.xml.in:156 #: data/org.gnome.shell.gschema.xml.in:164
#: data/org.gnome.shell.gschema.xml.in:163 #: data/org.gnome.shell.gschema.xml.in:171
msgid "Keybinding to shift between overview states" msgid "Keybinding to shift between overview states"
msgstr "Сочетание клавиш для переключения между состояниями обзора" msgstr "Сочетание клавиш для переключения между состояниями обзора"
#: data/org.gnome.shell.gschema.xml.in:157 #: data/org.gnome.shell.gschema.xml.in:165
msgid "Keybinding to shift between session, window picker and app grid" msgid "Keybinding to shift between session, window picker and app grid"
msgstr "" msgstr ""
"Сочетание клавиш для переключения между сеансом, меню выбора окон и сеткой " "Сочетание клавиш для переключения между сеансом, меню выбора окон и сеткой "
"приложений" "приложений"
#: data/org.gnome.shell.gschema.xml.in:164 #: data/org.gnome.shell.gschema.xml.in:172
msgid "Keybinding to shift between app grid, window picker and session" msgid "Keybinding to shift between app grid, window picker and session"
msgstr "" msgstr ""
"Сочетание клавиш для переключения между сеткой приложений, меню выбора окон " "Сочетание клавиш для переключения между сеткой приложений, меню выбора окон "
"и сеансом" "и сеансом"
#: data/org.gnome.shell.gschema.xml.in:170 #: data/org.gnome.shell.gschema.xml.in:178
msgid "Keybinding to open the “Show Applications” view" msgid "Keybinding to open the “Show Applications” view"
msgstr "Комбинация клавиш для перехода в режим просмотра приложений" msgstr "Комбинация клавиш для перехода в режим просмотра приложений"
#: data/org.gnome.shell.gschema.xml.in:171 #: data/org.gnome.shell.gschema.xml.in:179
msgid "" msgid ""
"Keybinding to open the “Show Applications” view of the Activities Overview." "Keybinding to open the “Show Applications” view of the Activities Overview."
msgstr "" msgstr ""
"Комбинация клавиш для перехода в режим просмотра приложений в меню «Обзор»." "Комбинация клавиш для перехода в режим просмотра приложений в меню «Обзор»."
#: data/org.gnome.shell.gschema.xml.in:178 #: data/org.gnome.shell.gschema.xml.in:186
msgid "Keybinding to open the overview" msgid "Keybinding to open the overview"
msgstr "Комбинация клавиш для перехода в режим обзора" msgstr "Комбинация клавиш для перехода в режим обзора"
#: data/org.gnome.shell.gschema.xml.in:179 #: data/org.gnome.shell.gschema.xml.in:187
msgid "Keybinding to open the Activities Overview." msgid "Keybinding to open the Activities Overview."
msgstr "Комбинация клавиш для перехода в режим обзора." msgstr "Комбинация клавиш для перехода в режим обзора."
#: data/org.gnome.shell.gschema.xml.in:185 #: data/org.gnome.shell.gschema.xml.in:193
msgid "Keybinding to toggle the visibility of the notification list" msgid "Keybinding to toggle the visibility of the notification list"
msgstr "Комбинация клавиш для отображения или скрытия списка уведомлений" msgstr "Комбинация клавиш для отображения или скрытия списка уведомлений"
#: data/org.gnome.shell.gschema.xml.in:186 #: data/org.gnome.shell.gschema.xml.in:194
msgid "Keybinding to toggle the visibility of the notification list." msgid "Keybinding to toggle the visibility of the notification list."
msgstr "Комбинация клавиш для отображения или скрытия списка уведомлений." msgstr "Комбинация клавиш для отображения или скрытия списка уведомлений."
#: data/org.gnome.shell.gschema.xml.in:192 #: data/org.gnome.shell.gschema.xml.in:200
msgid "Keybinding to focus the active notification" msgid "Keybinding to focus the active notification"
msgstr "Комбинация клавиш для перевода фокуса на текущее уведомление" msgstr "Комбинация клавиш для перевода фокуса на текущее уведомление"
#: data/org.gnome.shell.gschema.xml.in:193 #: data/org.gnome.shell.gschema.xml.in:201
msgid "Keybinding to focus the active notification." msgid "Keybinding to focus the active notification."
msgstr "Комбинация клавиш для перевода фокуса на текущее уведомление." msgstr "Комбинация клавиш для перевода фокуса на текущее уведомление."
#: data/org.gnome.shell.gschema.xml.in:199 #: data/org.gnome.shell.gschema.xml.in:207
msgid "Switch to application 1" msgid "Switch to application 1"
msgstr "Переключиться на приложение 1" msgstr "Переключиться на приложение 1"
#: data/org.gnome.shell.gschema.xml.in:203 #: data/org.gnome.shell.gschema.xml.in:211
msgid "Switch to application 2" msgid "Switch to application 2"
msgstr "Переключиться на приложение 2" msgstr "Переключиться на приложение 2"
#: data/org.gnome.shell.gschema.xml.in:207 #: data/org.gnome.shell.gschema.xml.in:215
msgid "Switch to application 3" msgid "Switch to application 3"
msgstr "Переключиться на приложение 3" msgstr "Переключиться на приложение 3"
#: data/org.gnome.shell.gschema.xml.in:211 #: data/org.gnome.shell.gschema.xml.in:219
msgid "Switch to application 4" msgid "Switch to application 4"
msgstr "Переключиться на приложение 4" msgstr "Переключиться на приложение 4"
#: data/org.gnome.shell.gschema.xml.in:215 #: data/org.gnome.shell.gschema.xml.in:223
msgid "Switch to application 5" msgid "Switch to application 5"
msgstr "Переключиться на приложение 5" msgstr "Переключиться на приложение 5"
#: data/org.gnome.shell.gschema.xml.in:219 #: data/org.gnome.shell.gschema.xml.in:227
msgid "Switch to application 6" msgid "Switch to application 6"
msgstr "Переключиться на приложение 6" msgstr "Переключиться на приложение 6"
#: data/org.gnome.shell.gschema.xml.in:223 #: data/org.gnome.shell.gschema.xml.in:231
msgid "Switch to application 7" msgid "Switch to application 7"
msgstr "Переключиться на приложение 7" msgstr "Переключиться на приложение 7"
#: data/org.gnome.shell.gschema.xml.in:227 #: data/org.gnome.shell.gschema.xml.in:235
msgid "Switch to application 8" msgid "Switch to application 8"
msgstr "Переключиться на приложение 8" msgstr "Переключиться на приложение 8"
#: data/org.gnome.shell.gschema.xml.in:231 #: data/org.gnome.shell.gschema.xml.in:239
msgid "Switch to application 9" msgid "Switch to application 9"
msgstr "Переключиться на приложение 9" msgstr "Переключиться на приложение 9"
#: data/org.gnome.shell.gschema.xml.in:240 #: data/org.gnome.shell.gschema.xml.in:248
#: data/org.gnome.shell.gschema.xml.in:267 #: data/org.gnome.shell.gschema.xml.in:275
msgid "Limit switcher to current workspace." msgid "Limit switcher to current workspace."
msgstr "Ограничить переключатель текущим рабочим местом." msgstr "Ограничить переключатель текущим рабочим местом."
#: data/org.gnome.shell.gschema.xml.in:241 #: data/org.gnome.shell.gschema.xml.in:249
msgid "" msgid ""
"If true, only applications that have windows on the current workspace are " "If true, only applications that have windows on the current workspace are "
"shown in the switcher. Otherwise, all applications are included." "shown in the switcher. Otherwise, all applications are included."
@ -395,11 +401,11 @@ msgstr ""
"чьи окна находятся на текущем рабочем месте. Иначе все приложения будут " "чьи окна находятся на текущем рабочем месте. Иначе все приложения будут "
"включены." "включены."
#: data/org.gnome.shell.gschema.xml.in:258 #: data/org.gnome.shell.gschema.xml.in:266
msgid "The application icon mode." msgid "The application icon mode."
msgstr "Режим значка приложения." msgstr "Режим значка приложения."
#: data/org.gnome.shell.gschema.xml.in:259 #: data/org.gnome.shell.gschema.xml.in:267
msgid "" msgid ""
"Configures how the windows are shown in the switcher. Valid possibilities " "Configures how the windows are shown in the switcher. Valid possibilities "
"are “thumbnail-only” (shows a thumbnail of the window), “app-icon-" "are “thumbnail-only” (shows a thumbnail of the window), “app-icon-"
@ -409,7 +415,7 @@ msgstr ""
"«thumbnail-only» (показывать миниатюру окна), «app-icon-only» (показывать " "«thumbnail-only» (показывать миниатюру окна), «app-icon-only» (показывать "
"только значок приложения), «both» (показывать миниатюру и значок)." "только значок приложения), «both» (показывать миниатюру и значок)."
#: data/org.gnome.shell.gschema.xml.in:268 #: data/org.gnome.shell.gschema.xml.in:276
msgid "" msgid ""
"If true, only windows from the current workspace are shown in the switcher. " "If true, only windows from the current workspace are shown in the switcher. "
"Otherwise, all windows are included." "Otherwise, all windows are included."
@ -417,59 +423,59 @@ msgstr ""
"Если выбрано, то в переключателе будут показываться только окна из текущего " "Если выбрано, то в переключателе будут показываться только окна из текущего "
"рабочего места. Иначе все окна будут включены." "рабочего места. Иначе все окна будут включены."
#: data/org.gnome.shell.gschema.xml.in:278 #: data/org.gnome.shell.gschema.xml.in:286
msgid "Locations" msgid "Locations"
msgstr "Местоположения" msgstr "Местоположения"
#: data/org.gnome.shell.gschema.xml.in:279 #: data/org.gnome.shell.gschema.xml.in:287
msgid "The locations to show in world clocks" msgid "The locations to show in world clocks"
msgstr "Местоположения для отображения в мировых часах" msgstr "Местоположения для отображения в мировых часах"
#: data/org.gnome.shell.gschema.xml.in:289 #: data/org.gnome.shell.gschema.xml.in:297
msgid "Automatic location" msgid "Automatic location"
msgstr "Автоматическое местоположение" msgstr "Автоматическое местоположение"
#: data/org.gnome.shell.gschema.xml.in:290 #: data/org.gnome.shell.gschema.xml.in:298
msgid "Whether to fetch the current location or not" msgid "Whether to fetch the current location or not"
msgstr "Определяет получать местоположение или нет" msgstr "Определяет получать местоположение или нет"
#: data/org.gnome.shell.gschema.xml.in:297 #: data/org.gnome.shell.gschema.xml.in:305
msgid "Location" msgid "Location"
msgstr "Местоположение" msgstr "Местоположение"
#: data/org.gnome.shell.gschema.xml.in:298 #: data/org.gnome.shell.gschema.xml.in:306
msgid "The location for which to show a forecast" msgid "The location for which to show a forecast"
msgstr "Местоположение для которого отображается прогноз погоды" msgstr "Местоположение для которого отображается прогноз погоды"
#: data/org.gnome.shell.gschema.xml.in:310 #: data/org.gnome.shell.gschema.xml.in:318
msgid "Attach modal dialog to the parent window" msgid "Attach modal dialog to the parent window"
msgstr "Прикреплять модальное диалоговое окно к родительскому окну" msgstr "Прикреплять модальное диалоговое окно к родительскому окну"
#: data/org.gnome.shell.gschema.xml.in:311 #: data/org.gnome.shell.gschema.xml.in:319
#: data/org.gnome.shell.gschema.xml.in:320
#: data/org.gnome.shell.gschema.xml.in:328 #: data/org.gnome.shell.gschema.xml.in:328
#: data/org.gnome.shell.gschema.xml.in:336 #: data/org.gnome.shell.gschema.xml.in:336
#: data/org.gnome.shell.gschema.xml.in:344 #: data/org.gnome.shell.gschema.xml.in:344
#: data/org.gnome.shell.gschema.xml.in:352
msgid "" msgid ""
"This key overrides the key in org.gnome.mutter when running GNOME Shell." "This key overrides the key in org.gnome.mutter when running GNOME Shell."
msgstr "" msgstr ""
"Этот ключ переопределяет ключ в org.gnome.mutter при запуске GNOME Shell." "Этот ключ переопределяет ключ в org.gnome.mutter при запуске GNOME Shell."
#: data/org.gnome.shell.gschema.xml.in:319 #: data/org.gnome.shell.gschema.xml.in:327
msgid "Enable edge tiling when dropping windows on screen edges" msgid "Enable edge tiling when dropping windows on screen edges"
msgstr "" msgstr ""
"Включить автоматическое изменение размеров окон при перемещении окон к краям " "Включить автоматическое изменение размеров окон при перемещении окон к краям "
"экрана" "экрана"
#: data/org.gnome.shell.gschema.xml.in:327 #: data/org.gnome.shell.gschema.xml.in:335
msgid "Workspaces are managed dynamically" msgid "Workspaces are managed dynamically"
msgstr "Рабочие места управляются динамически" msgstr "Рабочие места управляются динамически"
#: data/org.gnome.shell.gschema.xml.in:335 #: data/org.gnome.shell.gschema.xml.in:343
msgid "Workspaces only on primary monitor" msgid "Workspaces only on primary monitor"
msgstr "Рабочие места только на основном мониторе" msgstr "Рабочие места только на основном мониторе"
#: data/org.gnome.shell.gschema.xml.in:343 #: data/org.gnome.shell.gschema.xml.in:351
msgid "Delay focus changes in mouse mode until the pointer stops moving" msgid "Delay focus changes in mouse mode until the pointer stops moving"
msgstr "Задержка изменения фокуса в режиме мыши после остановки указателя" msgstr "Задержка изменения фокуса в режиме мыши после остановки указателя"
@ -504,18 +510,18 @@ msgid "Visit extension homepage"
msgstr "Посетить домашнюю страницу расширения" msgstr "Посетить домашнюю страницу расширения"
#: js/gdm/authPrompt.js:141 js/ui/audioDeviceSelection.js:61 #: js/gdm/authPrompt.js:141 js/ui/audioDeviceSelection.js:61
#: js/ui/components/networkAgent.js:110 js/ui/components/polkitAgent.js:138 #: js/ui/components/networkAgent.js:111 js/ui/components/polkitAgent.js:138
#: js/ui/endSessionDialog.js:438 js/ui/extensionDownloader.js:228 #: js/ui/endSessionDialog.js:438 js/ui/extensionDownloader.js:190
#: js/ui/shellMountOperation.js:376 js/ui/shellMountOperation.js:386 #: js/ui/shellMountOperation.js:376 js/ui/shellMountOperation.js:386
#: js/ui/status/network.js:978 subprojects/extensions-app/js/main.js:183 #: js/ui/status/network.js:978 subprojects/extensions-app/js/main.js:183
msgid "Cancel" msgid "Cancel"
msgstr "Отмена" msgstr "Отмена"
#. Cisco LEAP #. Cisco LEAP
#: js/gdm/authPrompt.js:285 js/ui/components/networkAgent.js:209 #: js/gdm/authPrompt.js:285 js/ui/components/networkAgent.js:210
#: js/ui/components/networkAgent.js:225 js/ui/components/networkAgent.js:249 #: js/ui/components/networkAgent.js:226 js/ui/components/networkAgent.js:250
#: js/ui/components/networkAgent.js:270 js/ui/components/networkAgent.js:290 #: js/ui/components/networkAgent.js:271 js/ui/components/networkAgent.js:291
#: js/ui/components/networkAgent.js:300 js/ui/components/polkitAgent.js:275 #: js/ui/components/networkAgent.js:301 js/ui/components/polkitAgent.js:275
#: js/ui/shellMountOperation.js:326 #: js/ui/shellMountOperation.js:326
msgid "Password" msgid "Password"
msgstr "Пароль" msgstr "Пароль"
@ -538,8 +544,8 @@ msgstr "(например, пользователь или %s)"
#. TTLS and PEAP are actually much more complicated, but this complication #. TTLS and PEAP are actually much more complicated, but this complication
#. is not visible here since we only care about phase2 authentication #. is not visible here since we only care about phase2 authentication
#. (and don't even care of which one) #. (and don't even care of which one)
#: js/gdm/loginDialog.js:926 js/ui/components/networkAgent.js:245 #: js/gdm/loginDialog.js:926 js/ui/components/networkAgent.js:246
#: js/ui/components/networkAgent.js:268 js/ui/components/networkAgent.js:286 #: js/ui/components/networkAgent.js:269 js/ui/components/networkAgent.js:287
msgid "Username" msgid "Username"
msgstr "Имя пользователя" msgstr "Имя пользователя"
@ -644,26 +650,26 @@ msgctxt "search-result"
msgid "Lock Screen Rotation" msgid "Lock Screen Rotation"
msgstr "Заблокировать ориентацию экрана" msgstr "Заблокировать ориентацию экрана"
#: js/misc/util.js:121 #: js/misc/util.js:120
msgid "Command not found" msgid "Command not found"
msgstr "Команда не найдена" msgstr "Команда не найдена"
#. Replace "Error invoking GLib.shell_parse_argv: " with #. Replace "Error invoking GLib.shell_parse_argv: " with
#. something nicer #. something nicer
#: js/misc/util.js:157 #: js/misc/util.js:156
msgid "Could not parse command:" msgid "Could not parse command:"
msgstr "Не удалось разобрать команду:" msgstr "Не удалось разобрать команду:"
#: js/misc/util.js:165 #: js/misc/util.js:164
#, javascript-format #, javascript-format
msgid "Execution of “%s” failed:" msgid "Execution of “%s” failed:"
msgstr "Не удалось выполнить «%s»:" msgstr "Не удалось выполнить «%s»:"
#: js/misc/util.js:182 #: js/misc/util.js:181
msgid "Just now" msgid "Just now"
msgstr "Прямо сейчас" msgstr "Прямо сейчас"
#: js/misc/util.js:184 #: js/misc/util.js:183
#, javascript-format #, javascript-format
msgid "%d minute ago" msgid "%d minute ago"
msgid_plural "%d minutes ago" msgid_plural "%d minutes ago"
@ -671,7 +677,7 @@ msgstr[0] "%d минута назад"
msgstr[1] "%d минуты назад" msgstr[1] "%d минуты назад"
msgstr[2] "%d минут назад" msgstr[2] "%d минут назад"
#: js/misc/util.js:188 #: js/misc/util.js:187
#, javascript-format #, javascript-format
msgid "%d hour ago" msgid "%d hour ago"
msgid_plural "%d hours ago" msgid_plural "%d hours ago"
@ -679,11 +685,11 @@ msgstr[0] "%d час назад"
msgstr[1] "%d часа назад" msgstr[1] "%d часа назад"
msgstr[2] "%d часов назад" msgstr[2] "%d часов назад"
#: js/misc/util.js:192 js/ui/dateMenu.js:162 #: js/misc/util.js:191 js/ui/dateMenu.js:162
msgid "Yesterday" msgid "Yesterday"
msgstr "Вчера" msgstr "Вчера"
#: js/misc/util.js:194 #: js/misc/util.js:193
#, javascript-format #, javascript-format
msgid "%d day ago" msgid "%d day ago"
msgid_plural "%d days ago" msgid_plural "%d days ago"
@ -691,7 +697,7 @@ msgstr[0] "%d день назад"
msgstr[1] "%d дня назад" msgstr[1] "%d дня назад"
msgstr[2] "%d дней назад" msgstr[2] "%d дней назад"
#: js/misc/util.js:198 #: js/misc/util.js:197
#, javascript-format #, javascript-format
msgid "%d week ago" msgid "%d week ago"
msgid_plural "%d weeks ago" msgid_plural "%d weeks ago"
@ -699,7 +705,7 @@ msgstr[0] "%d неделя назад"
msgstr[1] "%d недели назад" msgstr[1] "%d недели назад"
msgstr[2] "%d недель назад" msgstr[2] "%d недель назад"
#: js/misc/util.js:202 #: js/misc/util.js:201
#, javascript-format #, javascript-format
msgid "%d month ago" msgid "%d month ago"
msgid_plural "%d months ago" msgid_plural "%d months ago"
@ -707,7 +713,7 @@ msgstr[0] "%d месяц назад"
msgstr[1] "%d месяца назад" msgstr[1] "%d месяца назад"
msgstr[2] "%d месяцев назад" msgstr[2] "%d месяцев назад"
#: js/misc/util.js:205 #: js/misc/util.js:204
#, javascript-format #, javascript-format
msgid "%d year ago" msgid "%d year ago"
msgid_plural "%d years ago" msgid_plural "%d years ago"
@ -716,20 +722,20 @@ msgstr[1] "%d года назад"
msgstr[2] "%d лет назад" msgstr[2] "%d лет назад"
#. Translators: Time in 24h format #. Translators: Time in 24h format
#: js/misc/util.js:238 #: js/misc/util.js:237
msgid "%H%M" msgid "%H%M"
msgstr "%H%M" msgstr "%H%M"
#. Translators: this is the word "Yesterday" followed by a #. Translators: this is the word "Yesterday" followed by a
#. time string in 24h format. i.e. "Yesterday, 14:30" #. time string in 24h format. i.e. "Yesterday, 14:30"
#: js/misc/util.js:244 #: js/misc/util.js:243
#, no-c-format #, no-c-format
msgid "Yesterday, %H%M" msgid "Yesterday, %H%M"
msgstr "Вчера, %H%M" msgstr "Вчера, %H%M"
#. Translators: this is the week day name followed by a time #. Translators: this is the week day name followed by a time
#. string in 24h format. i.e. "Monday, 14:30" #. string in 24h format. i.e. "Monday, 14:30"
#: js/misc/util.js:250 #: js/misc/util.js:249
#, no-c-format #, no-c-format
msgid "%A, %H%M" msgid "%A, %H%M"
msgstr "%A, %H%M" msgstr "%A, %H%M"
@ -737,7 +743,7 @@ msgstr "%A, %H%M"
#. Translators: this is the month name and day number #. Translators: this is the month name and day number
#. followed by a time string in 24h format. #. followed by a time string in 24h format.
#. i.e. "May 25, 14:30" #. i.e. "May 25, 14:30"
#: js/misc/util.js:256 #: js/misc/util.js:255
#, no-c-format #, no-c-format
msgid "%B %-d, %H%M" msgid "%B %-d, %H%M"
msgstr "%-d %B, %H%M" msgstr "%-d %B, %H%M"
@ -745,7 +751,7 @@ msgstr "%-d %B, %H%M"
#. Translators: this is the month name, day number, year #. Translators: this is the month name, day number, year
#. number followed by a time string in 24h format. #. number followed by a time string in 24h format.
#. i.e. "May 25 2012, 14:30" #. i.e. "May 25 2012, 14:30"
#: js/misc/util.js:262 #: js/misc/util.js:261
#, no-c-format #, no-c-format
msgid "%B %-d %Y, %H%M" msgid "%B %-d %Y, %H%M"
msgstr "%-d %B %Y, %H%M" msgstr "%-d %B %Y, %H%M"
@ -753,20 +759,20 @@ msgstr "%-d %B %Y, %H%M"
#. Show only the time if date is on today #. Show only the time if date is on today
#. eslint-disable-line no-lonely-if #. eslint-disable-line no-lonely-if
#. Translators: Time in 12h format #. Translators: Time in 12h format
#: js/misc/util.js:267 #: js/misc/util.js:266
msgid "%l%M %p" msgid "%l%M %p"
msgstr "%-l%M%p" msgstr "%-l%M%p"
#. Translators: this is the word "Yesterday" followed by a #. Translators: this is the word "Yesterday" followed by a
#. time string in 12h format. i.e. "Yesterday, 2:30 pm" #. time string in 12h format. i.e. "Yesterday, 2:30 pm"
#: js/misc/util.js:273 #: js/misc/util.js:272
#, no-c-format #, no-c-format
msgid "Yesterday, %l%M %p" msgid "Yesterday, %l%M %p"
msgstr "Вчера, %-l%M%p" msgstr "Вчера, %-l%M%p"
#. Translators: this is the week day name followed by a time #. Translators: this is the week day name followed by a time
#. string in 12h format. i.e. "Monday, 2:30 pm" #. string in 12h format. i.e. "Monday, 2:30 pm"
#: js/misc/util.js:279 #: js/misc/util.js:278
#, no-c-format #, no-c-format
msgid "%A, %l%M %p" msgid "%A, %l%M %p"
msgstr "%A, %-l%M%p" msgstr "%A, %-l%M%p"
@ -774,7 +780,7 @@ msgstr "%A, %-l%M%p"
#. Translators: this is the month name and day number #. Translators: this is the month name and day number
#. followed by a time string in 12h format. #. followed by a time string in 12h format.
#. i.e. "May 25, 2:30 pm" #. i.e. "May 25, 2:30 pm"
#: js/misc/util.js:285 #: js/misc/util.js:284
#, no-c-format #, no-c-format
msgid "%B %-d, %l%M %p" msgid "%B %-d, %l%M %p"
msgstr "%-d %B, %l%M %p" msgstr "%-d %B, %l%M %p"
@ -783,17 +789,17 @@ msgstr "%-d %B, %l%M %p"
#. Translators: this is the month name, day number, year #. Translators: this is the month name, day number, year
#. number followed by a time string in 12h format. #. number followed by a time string in 12h format.
#. i.e. "May 25 2012, 2:30 pm" #. i.e. "May 25 2012, 2:30 pm"
#: js/misc/util.js:291 #: js/misc/util.js:290
#, no-c-format #, no-c-format
msgid "%B %-d %Y, %l%M %p" msgid "%B %-d %Y, %l%M %p"
msgstr "%-d %B %Y, %l%M %p" msgstr "%-d %B %Y, %l%M %p"
#. TRANSLATORS: this is the title of the wifi captive portal login window #. TRANSLATORS: this is the title of the wifi captive portal login window
#: js/portalHelper/main.js:49 #: js/portalHelper/main.js:42
msgid "Hotspot Login" msgid "Hotspot Login"
msgstr "Авторизация в точке доступа" msgstr "Авторизация в точке доступа"
#: js/portalHelper/main.js:95 #: js/portalHelper/main.js:88
msgid "" msgid ""
"Your connection to this hotspot login is not secure. Passwords or other " "Your connection to this hotspot login is not secure. Passwords or other "
"information you enter on this page can be viewed by people nearby." "information you enter on this page can be viewed by people nearby."
@ -1039,40 +1045,40 @@ msgstr "Установленная версия udisks не поддержива
msgid "Open with %s" msgid "Open with %s"
msgstr "Открыть с помощью %s" msgstr "Открыть с помощью %s"
#: js/ui/components/networkAgent.js:92 #: js/ui/components/networkAgent.js:93
msgid "" msgid ""
"Alternatively you can connect by pushing the “WPS” button on your router." "Alternatively you can connect by pushing the “WPS” button on your router."
msgstr "" msgstr ""
"В качестве альтернативы вы можете подключиться, нажав кнопку «WPS» на вашем " "В качестве альтернативы вы можете подключиться, нажав кнопку «WPS» на вашем "
"маршрутизаторе." "маршрутизаторе."
#: js/ui/components/networkAgent.js:104 js/ui/status/network.js:258 #: js/ui/components/networkAgent.js:105 js/ui/status/network.js:258
#: js/ui/status/network.js:349 js/ui/status/network.js:981 #: js/ui/status/network.js:349 js/ui/status/network.js:981
msgid "Connect" msgid "Connect"
msgstr "Соединиться" msgstr "Соединиться"
#: js/ui/components/networkAgent.js:215 #: js/ui/components/networkAgent.js:216
msgid "Key" msgid "Key"
msgstr "Ключ" msgstr "Ключ"
#: js/ui/components/networkAgent.js:253 js/ui/components/networkAgent.js:276 #: js/ui/components/networkAgent.js:254 js/ui/components/networkAgent.js:277
msgid "Private key password" msgid "Private key password"
msgstr "Пароль личного ключа" msgstr "Пароль личного ключа"
#: js/ui/components/networkAgent.js:274 #: js/ui/components/networkAgent.js:275
msgid "Identity" msgid "Identity"
msgstr "Идентичность" msgstr "Идентичность"
#: js/ui/components/networkAgent.js:288 #: js/ui/components/networkAgent.js:289
msgid "Service" msgid "Service"
msgstr "Служба" msgstr "Служба"
#: js/ui/components/networkAgent.js:317 js/ui/components/networkAgent.js:345 #: js/ui/components/networkAgent.js:318 js/ui/components/networkAgent.js:346
#: js/ui/components/networkAgent.js:679 js/ui/components/networkAgent.js:700 #: js/ui/components/networkAgent.js:679 js/ui/components/networkAgent.js:700
msgid "Authentication required" msgid "Authentication required"
msgstr "Требуется подтверждение подлинности" msgstr "Требуется подтверждение подлинности"
#: js/ui/components/networkAgent.js:318 js/ui/components/networkAgent.js:680 #: js/ui/components/networkAgent.js:319 js/ui/components/networkAgent.js:680
#, javascript-format #, javascript-format
msgid "" msgid ""
"Passwords or encryption keys are required to access the wireless network " "Passwords or encryption keys are required to access the wireless network "
@ -1080,31 +1086,31 @@ msgid ""
msgstr "" msgstr ""
"Для доступа к беспроводной сети «%s» требуется пароль или ключ шифрования." "Для доступа к беспроводной сети «%s» требуется пароль или ключ шифрования."
#: js/ui/components/networkAgent.js:322 js/ui/components/networkAgent.js:684 #: js/ui/components/networkAgent.js:323 js/ui/components/networkAgent.js:684
msgid "Wired 802.1X authentication" msgid "Wired 802.1X authentication"
msgstr "Аутентификация Wired 802.1X" msgstr "Аутентификация Wired 802.1X"
#: js/ui/components/networkAgent.js:324 #: js/ui/components/networkAgent.js:325
msgid "Network name" msgid "Network name"
msgstr "Название сети" msgstr "Название сети"
#: js/ui/components/networkAgent.js:329 js/ui/components/networkAgent.js:688 #: js/ui/components/networkAgent.js:330 js/ui/components/networkAgent.js:688
msgid "DSL authentication" msgid "DSL authentication"
msgstr "Аутентификация DSL" msgstr "Аутентификация DSL"
#: js/ui/components/networkAgent.js:336 js/ui/components/networkAgent.js:693 #: js/ui/components/networkAgent.js:337 js/ui/components/networkAgent.js:693
msgid "PIN code required" msgid "PIN code required"
msgstr "Требуется PIN-код" msgstr "Требуется PIN-код"
#: js/ui/components/networkAgent.js:337 js/ui/components/networkAgent.js:694 #: js/ui/components/networkAgent.js:338 js/ui/components/networkAgent.js:694
msgid "PIN code is needed for the mobile broadband device" msgid "PIN code is needed for the mobile broadband device"
msgstr "Для устройства мобильной связи требуется PIN-код" msgstr "Для устройства мобильной связи требуется PIN-код"
#: js/ui/components/networkAgent.js:338 #: js/ui/components/networkAgent.js:339
msgid "PIN" msgid "PIN"
msgstr "PIN" msgstr "PIN"
#: js/ui/components/networkAgent.js:346 js/ui/components/networkAgent.js:685 #: js/ui/components/networkAgent.js:347 js/ui/components/networkAgent.js:685
#: js/ui/components/networkAgent.js:689 js/ui/components/networkAgent.js:701 #: js/ui/components/networkAgent.js:689 js/ui/components/networkAgent.js:701
#: js/ui/components/networkAgent.js:705 #: js/ui/components/networkAgent.js:705
#, javascript-format #, javascript-format
@ -1403,24 +1409,24 @@ msgstr "%s (удалённый)"
msgid "%s (console)" msgid "%s (console)"
msgstr "%s (консоль)" msgstr "%s (консоль)"
#: js/ui/extensionDownloader.js:232 #: js/ui/extensionDownloader.js:194
msgid "Install" msgid "Install"
msgstr "Установить" msgstr "Установить"
#: js/ui/extensionDownloader.js:238 #: js/ui/extensionDownloader.js:200
msgid "Install Extension" msgid "Install Extension"
msgstr "Установить расширение" msgstr "Установить расширение"
#: js/ui/extensionDownloader.js:239 #: js/ui/extensionDownloader.js:201
#, javascript-format #, javascript-format
msgid "Download and install “%s” from extensions.gnome.org?" msgid "Download and install “%s” from extensions.gnome.org?"
msgstr "Загрузить и установить расширение «%s» из extensions.gnome.org?" msgstr "Загрузить и установить расширение «%s» из extensions.gnome.org?"
#: js/ui/extensionSystem.js:252 #: js/ui/extensionSystem.js:253
msgid "Extension Updates Available" msgid "Extension Updates Available"
msgstr "Доступны обновления расширений" msgstr "Доступны обновления расширений"
#: js/ui/extensionSystem.js:253 #: js/ui/extensionSystem.js:254
msgid "Extension updates are ready to be installed." msgid "Extension updates are ready to be installed."
msgstr "Обновления расширений готовы к установке." msgstr "Обновления расширений готовы к установке."
@ -1517,7 +1523,7 @@ msgstr "Выключить"
msgid "Leave Off" msgid "Leave Off"
msgstr "Оставить выключенными" msgstr "Оставить выключенными"
#: js/ui/keyboard.js:226 #: js/ui/keyboard.js:227
msgid "Region & Language Settings" msgid "Region & Language Settings"
msgstr "Настройки языка и региона" msgstr "Настройки языка и региона"
@ -1570,11 +1576,11 @@ msgstr "Показать код"
msgid "Web Page" msgid "Web Page"
msgstr "Веб-страница" msgstr "Веб-страница"
#: js/ui/main.js:290 #: js/ui/main.js:294
msgid "Logged in as a privileged user" msgid "Logged in as a privileged user"
msgstr "Авторизован как привилегированный пользователь" msgstr "Авторизован как привилегированный пользователь"
#: js/ui/main.js:291 #: js/ui/main.js:295
msgid "" msgid ""
"Running a session as a privileged user should be avoided for security " "Running a session as a privileged user should be avoided for security "
"reasons. If possible, you should log in as a normal user." "reasons. If possible, you should log in as a normal user."
@ -1583,15 +1589,15 @@ msgstr ""
"привилегированного пользователя. Если это возможно, вам следует войти от " "привилегированного пользователя. Если это возможно, вам следует войти от "
"имени обычного пользователя." "имени обычного пользователя."
#: js/ui/main.js:340 #: js/ui/main.js:344
msgid "Screen Lock disabled" msgid "Screen Lock disabled"
msgstr "Блокировка экрана отключена" msgstr "Блокировка экрана отключена"
#: js/ui/main.js:341 #: js/ui/main.js:345
msgid "Screen Locking requires the GNOME display manager." msgid "Screen Locking requires the GNOME display manager."
msgstr "Для блокировки экрана требуется GNOME display manager." msgstr "Для блокировки экрана требуется GNOME display manager."
#: js/ui/messageTray.js:1443 #: js/ui/messageTray.js:1440
msgid "System Information" msgid "System Information"
msgstr "Системная информация" msgstr "Системная информация"
@ -1625,47 +1631,47 @@ msgstr "Отменить"
msgid "Overview" msgid "Overview"
msgstr "Обзор" msgstr "Обзор"
#: js/ui/padOsd.js:95 #: js/ui/padOsd.js:96
msgid "New shortcut…" msgid "New shortcut…"
msgstr "Создать комбинацию клавиш…" msgstr "Создать комбинацию клавиш…"
#: js/ui/padOsd.js:142 #: js/ui/padOsd.js:143
msgid "Application defined" msgid "Application defined"
msgstr "Определено приложением" msgstr "Определено приложением"
#: js/ui/padOsd.js:143 #: js/ui/padOsd.js:144
msgid "Show on-screen help" msgid "Show on-screen help"
msgstr "Показывать экранную справку" msgstr "Показывать экранную справку"
#: js/ui/padOsd.js:144 #: js/ui/padOsd.js:145
msgid "Switch monitor" msgid "Switch monitor"
msgstr "Переключить монитор" msgstr "Переключить монитор"
#: js/ui/padOsd.js:145 #: js/ui/padOsd.js:146
msgid "Assign keystroke" msgid "Assign keystroke"
msgstr "Назначение клавишь" msgstr "Назначение клавишь"
#: js/ui/padOsd.js:211 #: js/ui/padOsd.js:212
msgid "Done" msgid "Done"
msgstr "Готово" msgstr "Готово"
#: js/ui/padOsd.js:716 #: js/ui/padOsd.js:718
msgid "Edit…" msgid "Edit…"
msgstr "Правка…" msgstr "Правка…"
#: js/ui/padOsd.js:758 js/ui/padOsd.js:875 #: js/ui/padOsd.js:760 js/ui/padOsd.js:877
msgid "None" msgid "None"
msgstr "Нет" msgstr "Нет"
#: js/ui/padOsd.js:829 #: js/ui/padOsd.js:831
msgid "Press a button to configure" msgid "Press a button to configure"
msgstr "Нажмите кнопку для настройки" msgstr "Нажмите кнопку для настройки"
#: js/ui/padOsd.js:830 #: js/ui/padOsd.js:832
msgid "Press Esc to exit" msgid "Press Esc to exit"
msgstr "Нажмите Esc для выхода" msgstr "Нажмите Esc для выхода"
#: js/ui/padOsd.js:833 #: js/ui/padOsd.js:835
msgid "Press any key to exit" msgid "Press any key to exit"
msgstr "Нажмите любую клавишу для выхода" msgstr "Нажмите любую клавишу для выхода"
@ -1675,12 +1681,12 @@ msgstr "Нажмите любую клавишу для выхода"
msgid "Activities" msgid "Activities"
msgstr "Обзор" msgstr "Обзор"
#: js/ui/panel.js:556 #: js/ui/panel.js:542
msgctxt "System menu in the top bar" msgctxt "System menu in the top bar"
msgid "System" msgid "System"
msgstr "Система" msgstr "Система"
#: js/ui/panel.js:674 #: js/ui/panel.js:658
msgid "Top Bar" msgid "Top Bar"
msgstr "Верхняя панель" msgstr "Верхняя панель"
@ -1719,7 +1725,7 @@ msgstr "Не удалось заблокировать"
msgid "Lock was blocked by an application" msgid "Lock was blocked by an application"
msgstr "Блокировке помешало приложение" msgstr "Блокировке помешало приложение"
#: js/ui/screenshot.js:155 #: js/ui/screenshot.js:141
msgid "Screenshot taken" msgid "Screenshot taken"
msgstr "Сделан снимок экрана" msgstr "Сделан снимок экрана"
@ -2826,7 +2832,6 @@ msgstr "Необходимо указать UUID, имя и описание"
#: subprojects/extensions-tool/src/command-enable.c:46 #: subprojects/extensions-tool/src/command-enable.c:46
#: subprojects/extensions-tool/src/command-info.c:50 #: subprojects/extensions-tool/src/command-info.c:50
#: subprojects/extensions-tool/src/command-list.c:64 #: subprojects/extensions-tool/src/command-list.c:64
#: subprojects/extensions-tool/src/main.c:146
msgid "Failed to connect to GNOME Shell\n" msgid "Failed to connect to GNOME Shell\n"
msgstr "Невозможно подключиться к GNOME Shell\n" msgstr "Невозможно подключиться к GNOME Shell\n"
@ -2843,7 +2848,7 @@ msgstr "Выключить расширение"
#: subprojects/extensions-tool/src/command-disable.c:119 #: subprojects/extensions-tool/src/command-disable.c:119
#: subprojects/extensions-tool/src/command-enable.c:119 #: subprojects/extensions-tool/src/command-enable.c:119
#: subprojects/extensions-tool/src/command-info.c:103 #: subprojects/extensions-tool/src/command-info.c:103
#: subprojects/extensions-tool/src/command-prefs.c:105 #: subprojects/extensions-tool/src/command-prefs.c:97
#: subprojects/extensions-tool/src/command-reset.c:76 #: subprojects/extensions-tool/src/command-reset.c:76
#: subprojects/extensions-tool/src/command-uninstall.c:104 #: subprojects/extensions-tool/src/command-uninstall.c:104
msgid "No UUID given" msgid "No UUID given"
@ -2852,7 +2857,7 @@ msgstr "UUID не указан"
#: subprojects/extensions-tool/src/command-disable.c:124 #: subprojects/extensions-tool/src/command-disable.c:124
#: subprojects/extensions-tool/src/command-enable.c:124 #: subprojects/extensions-tool/src/command-enable.c:124
#: subprojects/extensions-tool/src/command-info.c:108 #: subprojects/extensions-tool/src/command-info.c:108
#: subprojects/extensions-tool/src/command-prefs.c:110 #: subprojects/extensions-tool/src/command-prefs.c:102
#: subprojects/extensions-tool/src/command-reset.c:81 #: subprojects/extensions-tool/src/command-reset.c:81
#: subprojects/extensions-tool/src/command-uninstall.c:109 #: subprojects/extensions-tool/src/command-uninstall.c:109
msgid "More than one UUID given" msgid "More than one UUID given"
@ -2982,12 +2987,7 @@ msgstr "Указано больше одной исходной директор
msgid "Extension “%s” doesn't have preferences\n" msgid "Extension “%s” doesn't have preferences\n"
msgstr "Расширение «%s» не имеет настроек\n" msgstr "Расширение «%s» не имеет настроек\n"
#: subprojects/extensions-tool/src/command-prefs.c:62 #: subprojects/extensions-tool/src/command-prefs.c:79
#, c-format
msgid "Failed to open prefs for extension “%s”: %s\n"
msgstr "Не удалось открыть настройки для расширения \"%s\": %s\n"
#: subprojects/extensions-tool/src/command-prefs.c:87
msgid "Opens extension preferences" msgid "Opens extension preferences"
msgstr "Открыть параметры расширения" msgstr "Открыть параметры расширения"
@ -3012,6 +3012,10 @@ msgstr "Удалить расширение"
msgid "Do not print error messages" msgid "Do not print error messages"
msgstr "Не показывать сообщения об ошибках" msgstr "Не показывать сообщения об ошибках"
#: subprojects/extensions-tool/src/main.c:146
msgid "Failed to connect to GNOME Shell"
msgstr "Невозможно подключиться к GNOME Shell"
#: subprojects/extensions-tool/src/main.c:244 #: subprojects/extensions-tool/src/main.c:244
msgid "Path" msgid "Path"
msgstr "Путь" msgstr "Путь"
@ -3144,3 +3148,192 @@ msgstr[2] "%u входов"
msgid "System Sounds" msgid "System Sounds"
msgstr "Системные звуки" msgstr "Системные звуки"
#~ msgid "Minimize"
#~ msgstr "Свернуть"
#~ msgid "Unmaximize"
#~ msgstr "Вернуть прежний размер"
#~ msgid "App Picker View"
#~ msgstr "Экран выбора приложений"
#~ msgid "Index of the currently selected view in the application picker."
#~ msgstr "Индекс текущего выбранного экрана приложений."
#~ msgid "Frequently used applications will appear here"
#~ msgstr "Здесь появляются часто используемые приложения"
#~ msgid "Frequent"
#~ msgstr "Популярные"
#~ msgid "All"
#~ msgstr "Все"
#~ msgctxt "calendar heading"
#~ msgid "%A, %B %-d"
#~ msgstr "%A, %-d %B"
#~ msgctxt "calendar heading"
#~ msgid "%A, %B %-d, %Y"
#~ msgstr "%A, %-d %B %Y"
#~ msgid "Copy Error"
#~ msgstr "Скопировать ошибку"
#~ msgid "Off"
#~ msgstr "Выключено"
#~ msgid "On"
#~ msgstr "Включено"
# tweens — что-то типа анимации
#~ msgid ""
#~ "Keybinding that pauses and resumes all running tweens, for debugging "
#~ "purposes"
#~ msgstr ""
#~ "Комбинация клавиш, которая приостанавливает и возобновляет все запущенные "
#~ "анимации (для отладки)"
#~ msgid "Which keyboard to use"
#~ msgstr "Какую клавиатуру использовать"
#~ msgid "The type of keyboard to use."
#~ msgstr "Тип используемой клавиатуры."
#~ msgid "network-workgroup"
#~ msgstr "network-workgroup"
#~ msgid "Browse in Software"
#~ msgstr "Просмотреть в Центре приложений"
#~ msgid "Next"
#~ msgstr "Далее"
#~ msgctxt "button"
#~ msgid "Sign In"
#~ 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 "toggle-switch-us"
#~ msgstr "toggle-switch-intl"
#~ msgid "%A, %B %d"
#~ msgstr "%A, %-d %B"
#~ msgid "%d new message"
#~ msgid_plural "%d new messages"
#~ msgstr[0] "%d новое сообщение"
#~ msgstr[1] "%d новых сообщения"
#~ msgstr[2] "%d новых сообщений"
#~ msgid "%d new notification"
#~ msgid_plural "%d new notifications"
#~ msgstr[0] "%d новое уведомление"
#~ msgstr[1] "%d новых уведомления"
#~ msgstr[2] "%d новых уведомлений"
#~ msgid "Account Settings"
#~ msgstr "Параметры учётных записей"
#~ msgid "Orientation Lock"
#~ msgstr "Заблокировать ориентацию"
#~ msgid "evolution"
#~ msgstr "evolution"
#~ msgid "There was an error loading the preferences dialog for %s:"
#~ msgstr "Возникла ошибка загрузки диалогового окна параметров для %s:"
#~ msgid "%s all day."
#~ msgstr "%s весь день."
#~ msgid "%s, then %s later."
#~ msgstr "%s, затем позднее %s."
#~ msgid "%s, then %s, followed by %s later."
#~ msgstr "%s, затем %s, позже %s."
#~ msgid "Feels like %s."
#~ msgstr "Ощущается как %s."
#~ msgctxt "search-result"
#~ msgid "Power off"
#~ msgstr "Выключение"
#~ msgctxt "search-result"
#~ msgid "Log out"
#~ msgstr "Завершение сеанса"
#~ msgctxt "search-result"
#~ msgid "Switch user"
#~ msgstr "Смена пользователя"
#~ msgid "Hide tray"
#~ msgstr "Скрыть лоток"
#~ msgid "Status Icons"
#~ msgstr "Значки состояния"
#~ msgid "Web Authentication Redirect"
#~ msgstr "Перенаправление для проверки подлинности"
#~ msgid "Events"
#~ msgstr "События"
#~ msgid "Notifications"
#~ msgstr "Уведомления"
#~ msgid "Clear section"
#~ msgstr "Очистить секцию"
#~ msgid "Media"
#~ msgstr "Медиа"
#~ msgid "Not In Use"
#~ msgstr "Не используется"
#~ msgid "%d x %d"
#~ msgstr "%d x %d"
#~ msgid "Show the week date in the calendar"
#~ msgstr "Показывать в календаре нумерацию недель"
#~ msgid "If true, display the ISO week date in the calendar."
#~ msgstr ""
#~ "Если включено, календарь будет показывать нумерацию недель в формате ISO."
#~ msgid "Use as Internet connection"
#~ msgstr "Использовать как Интернет-соединение"
#~ msgid "%s is requesting access to your location."
#~ msgstr "%s запрашивает доступ к вашему положению."
#~ msgid "GNOME Shell (wayland compositor)"
#~ msgstr "GNOME Shell (компоновщик wayland)"
#~ msgid "%d Connected Device"
#~ msgid_plural "%d Connected Devices"
#~ msgstr[0] "Подключено %d устройство"
#~ msgstr[1] "Подключено %d устройства"
#~ msgstr[2] "Подключено %d устройств"
# Источник Бесперебойного Питания
#~ msgid "UPS"
#~ msgstr "ИБП"
#~ msgid "Battery"
#~ msgstr "Батарея"

275
po/sk.po
View File

@ -11,8 +11,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: gnome-shell\n" "Project-Id-Version: gnome-shell\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell/issues\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell/issues\n"
"POT-Creation-Date: 2021-08-17 23:56+0000\n" "POT-Creation-Date: 2021-11-06 13:27+0000\n"
"PO-Revision-Date: 2021-08-31 15:49+0200\n" "PO-Revision-Date: 2021-11-06 15:10+0100\n"
"Last-Translator: Dušan Kazik <prescott66@gmail.com>\n" "Last-Translator: Dušan Kazik <prescott66@gmail.com>\n"
"Language-Team: Slovak <kde-i18n-doc@kde.org>\n" "Language-Team: Slovak <kde-i18n-doc@kde.org>\n"
"Language: sk\n" "Language: sk\n"
@ -268,23 +268,11 @@ msgstr ""
"veľké číslo bude predstavovať verzie, ktoré zatiaľ neexistujú. Toto veľké " "veľké číslo bude predstavovať verzie, ktoré zatiaľ neexistujú. Toto veľké "
"číslo je možné použiť na efektívne deaktivovanie dialógového okna." "číslo je možné použiť na efektívne deaktivovanie dialógového okna."
#: data/org.gnome.shell.gschema.xml.in:109 #: data/org.gnome.shell.gschema.xml.in:133
msgid "Enable introspection API"
msgstr "Povoliť sebapozorovacie API"
#: data/org.gnome.shell.gschema.xml.in:110
msgid ""
"Enables a D-Bus API that allows to introspect the application state of the "
"shell."
msgstr ""
"Povolí D-Bus API, ktoré umožní sebapozorovanie stavu aplikácie prostredia "
"shell."
#: data/org.gnome.shell.gschema.xml.in:141
msgid "Layout of the app picker" msgid "Layout of the app picker"
msgstr "Rozloženie nástroja na výber aplikácie" msgstr "Rozloženie nástroja na výber aplikácie"
#: data/org.gnome.shell.gschema.xml.in:142 #: data/org.gnome.shell.gschema.xml.in:134
msgid "" msgid ""
"Layout of the app picker. Each entry in the array is a page. Pages are " "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 " "stored in the order they appear in GNOME Shell. Each page contains an "
@ -297,119 +285,119 @@ msgstr ""
"sú nasledovné hodnoty uložené ako „údaje“: • “„pozícia“: pozícia ikony " "sú nasledovné hodnoty uložené ako „údaje“: • “„pozícia“: pozícia ikony "
"aplikácie na stránke." "aplikácie na stránke."
#: data/org.gnome.shell.gschema.xml.in:157 #: data/org.gnome.shell.gschema.xml.in:149
msgid "Keybinding to open the application menu" msgid "Keybinding to open the application menu"
msgstr "Klávesová skratka na otvorenie ponuky aplikácií" msgstr "Klávesová skratka na otvorenie ponuky aplikácií"
#: data/org.gnome.shell.gschema.xml.in:158 #: data/org.gnome.shell.gschema.xml.in:150
msgid "Keybinding to open the application menu." msgid "Keybinding to open the application menu."
msgstr "Klávesová skratka na otvorenie ponuky aplikácií." msgstr "Klávesová skratka na otvorenie ponuky aplikácií."
#: data/org.gnome.shell.gschema.xml.in:164 #: data/org.gnome.shell.gschema.xml.in:156
#: data/org.gnome.shell.gschema.xml.in:171 #: data/org.gnome.shell.gschema.xml.in:163
msgid "Keybinding to shift between overview states" msgid "Keybinding to shift between overview states"
msgstr "Kombinácia kláves na prepínanie medzi stavmi prehľadu" msgstr "Kombinácia kláves na prepínanie medzi stavmi prehľadu"
#: data/org.gnome.shell.gschema.xml.in:165 #: data/org.gnome.shell.gschema.xml.in:157
msgid "Keybinding to shift between session, window picker and app grid" msgid "Keybinding to shift between session, window picker and app grid"
msgstr "" msgstr ""
"Klávesová skratka na prepínanie medzi sedením, výberom okna a mriežkou " "Klávesová skratka na prepínanie medzi sedením, výberom okna a mriežkou "
"aplikácií" "aplikácií"
#: data/org.gnome.shell.gschema.xml.in:172 #: data/org.gnome.shell.gschema.xml.in:164
msgid "Keybinding to shift between app grid, window picker and session" msgid "Keybinding to shift between app grid, window picker and session"
msgstr "" msgstr ""
"Klávesová skratka slúži na prepínanie medzi mriežkou aplikácií, výberom okna " "Klávesová skratka slúži na prepínanie medzi mriežkou aplikácií, výberom okna "
"a sedením" "a sedením"
#: data/org.gnome.shell.gschema.xml.in:178 #: data/org.gnome.shell.gschema.xml.in:170
msgid "Keybinding to open the “Show Applications” view" msgid "Keybinding to open the “Show Applications” view"
msgstr "Klávesová skratka na otvorenie pohľadu „Zobraziť aplikácie“" msgstr "Klávesová skratka na otvorenie pohľadu „Zobraziť aplikácie“"
#: data/org.gnome.shell.gschema.xml.in:179 #: data/org.gnome.shell.gschema.xml.in:171
msgid "" msgid ""
"Keybinding to open the “Show Applications” view of the Activities Overview." "Keybinding to open the “Show Applications” view of the Activities Overview."
msgstr "" msgstr ""
"Klávesová skratka na otvorenie pohľadu „Zobraziť aplikácie“ v prehľade " "Klávesová skratka na otvorenie pohľadu „Zobraziť aplikácie“ v prehľade "
"aktivít." "aktivít."
#: data/org.gnome.shell.gschema.xml.in:186 #: data/org.gnome.shell.gschema.xml.in:178
msgid "Keybinding to open the overview" msgid "Keybinding to open the overview"
msgstr "Klávesová skratka na otvorenie prehľadu" msgstr "Klávesová skratka na otvorenie prehľadu"
#: data/org.gnome.shell.gschema.xml.in:187 #: data/org.gnome.shell.gschema.xml.in:179
msgid "Keybinding to open the Activities Overview." msgid "Keybinding to open the Activities Overview."
msgstr "Klávesová skratka na otvorenie prehľadu aktivít." msgstr "Klávesová skratka na otvorenie prehľadu aktivít."
#: data/org.gnome.shell.gschema.xml.in:193 #: data/org.gnome.shell.gschema.xml.in:185
msgid "Keybinding to toggle the visibility of the notification list" msgid "Keybinding to toggle the visibility of the notification list"
msgstr "Klávesová skratka na prepnutie viditeľnosti zoznamu s oznámeniami" msgstr "Klávesová skratka na prepnutie viditeľnosti zoznamu s oznámeniami"
#: data/org.gnome.shell.gschema.xml.in:194 #: data/org.gnome.shell.gschema.xml.in:186
msgid "Keybinding to toggle the visibility of the notification list." msgid "Keybinding to toggle the visibility of the notification list."
msgstr "Klávesová skratka na prepnutie viditeľnosti zoznamu s oznámeniami." msgstr "Klávesová skratka na prepnutie viditeľnosti zoznamu s oznámeniami."
#: data/org.gnome.shell.gschema.xml.in:200 #: data/org.gnome.shell.gschema.xml.in:192
msgid "Keybinding to focus the active notification" msgid "Keybinding to focus the active notification"
msgstr "Klávesová skratka na zameranie aktívnych oznámení" msgstr "Klávesová skratka na zameranie aktívnych oznámení"
#: data/org.gnome.shell.gschema.xml.in:201 #: data/org.gnome.shell.gschema.xml.in:193
msgid "Keybinding to focus the active notification." msgid "Keybinding to focus the active notification."
msgstr "Klávesová skratka, s ktorou sa zamerá na aktívne oznámenia." msgstr "Klávesová skratka, s ktorou sa zamerá na aktívne oznámenia."
# tooltip # tooltip
#: data/org.gnome.shell.gschema.xml.in:207 #: data/org.gnome.shell.gschema.xml.in:199
msgid "Switch to application 1" msgid "Switch to application 1"
msgstr "Prepnúť na aplikáciu č. 1" msgstr "Prepnúť na aplikáciu č. 1"
# tooltip # tooltip
#: data/org.gnome.shell.gschema.xml.in:211 #: data/org.gnome.shell.gschema.xml.in:203
msgid "Switch to application 2" msgid "Switch to application 2"
msgstr "Prepnúť na aplikáciu č. 2" msgstr "Prepnúť na aplikáciu č. 2"
# tooltip # tooltip
#: data/org.gnome.shell.gschema.xml.in:215 #: data/org.gnome.shell.gschema.xml.in:207
msgid "Switch to application 3" msgid "Switch to application 3"
msgstr "Prepnúť na aplikáciu č. 3" msgstr "Prepnúť na aplikáciu č. 3"
# tooltip # tooltip
#: data/org.gnome.shell.gschema.xml.in:219 #: data/org.gnome.shell.gschema.xml.in:211
msgid "Switch to application 4" msgid "Switch to application 4"
msgstr "Prepnúť na aplikáciu č. 4" msgstr "Prepnúť na aplikáciu č. 4"
# tooltip # tooltip
#: data/org.gnome.shell.gschema.xml.in:223 #: data/org.gnome.shell.gschema.xml.in:215
msgid "Switch to application 5" msgid "Switch to application 5"
msgstr "Prepnúť na aplikáciu č. 5" msgstr "Prepnúť na aplikáciu č. 5"
# tooltip # tooltip
#: data/org.gnome.shell.gschema.xml.in:227 #: data/org.gnome.shell.gschema.xml.in:219
msgid "Switch to application 6" msgid "Switch to application 6"
msgstr "Prepnúť na aplikáciu č. 6" msgstr "Prepnúť na aplikáciu č. 6"
# tooltip # tooltip
#: data/org.gnome.shell.gschema.xml.in:231 #: data/org.gnome.shell.gschema.xml.in:223
msgid "Switch to application 7" msgid "Switch to application 7"
msgstr "Prepnúť na aplikáciu č. 7" msgstr "Prepnúť na aplikáciu č. 7"
# tooltip # tooltip
#: data/org.gnome.shell.gschema.xml.in:235 #: data/org.gnome.shell.gschema.xml.in:227
msgid "Switch to application 8" msgid "Switch to application 8"
msgstr "Prepnúť na aplikáciu č. 8" msgstr "Prepnúť na aplikáciu č. 8"
# tooltip # tooltip
#: data/org.gnome.shell.gschema.xml.in:239 #: data/org.gnome.shell.gschema.xml.in:231
msgid "Switch to application 9" msgid "Switch to application 9"
msgstr "Prepnúť na aplikáciu č. 9" msgstr "Prepnúť na aplikáciu č. 9"
# summary # summary
#: data/org.gnome.shell.gschema.xml.in:248 #: data/org.gnome.shell.gschema.xml.in:240
#: data/org.gnome.shell.gschema.xml.in:275 #: data/org.gnome.shell.gschema.xml.in:267
msgid "Limit switcher to current workspace." msgid "Limit switcher to current workspace."
msgstr "Obmedziť prepínač na aktuálny pracovný priestor." msgstr "Obmedziť prepínač na aktuálny pracovný priestor."
# desc # desc
#: data/org.gnome.shell.gschema.xml.in:249 #: data/org.gnome.shell.gschema.xml.in:241
msgid "" msgid ""
"If true, only applications that have windows on the current workspace are " "If true, only applications that have windows on the current workspace are "
"shown in the switcher. Otherwise, all applications are included." "shown in the switcher. Otherwise, all applications are included."
@ -417,11 +405,11 @@ msgstr ""
"Ak je true, iba aplikácie, ktoré majú okná na aktuálnom pracovnom priestore " "Ak je true, iba aplikácie, ktoré majú okná na aktuálnom pracovnom priestore "
"budú zobrazené v prepínači. Inak budú zahrnuté všetky aplikácie." "budú zobrazené v prepínači. Inak budú zahrnuté všetky aplikácie."
#: data/org.gnome.shell.gschema.xml.in:266 #: data/org.gnome.shell.gschema.xml.in:258
msgid "The application icon mode." msgid "The application icon mode."
msgstr "Režim ikonizácie aplikácií." msgstr "Režim ikonizácie aplikácií."
#: data/org.gnome.shell.gschema.xml.in:267 #: data/org.gnome.shell.gschema.xml.in:259
msgid "" msgid ""
"Configures how the windows are shown in the switcher. Valid possibilities " "Configures how the windows are shown in the switcher. Valid possibilities "
"are “thumbnail-only” (shows a thumbnail of the window), “app-icon-" "are “thumbnail-only” (shows a thumbnail of the window), “app-icon-"
@ -432,7 +420,7 @@ msgstr ""
"ikonu aplikácie) alebo „both“ (zobrazí oboje)." "ikonu aplikácie) alebo „both“ (zobrazí oboje)."
# desc # desc
#: data/org.gnome.shell.gschema.xml.in:276 #: data/org.gnome.shell.gschema.xml.in:268
msgid "" msgid ""
"If true, only windows from the current workspace are shown in the switcher. " "If true, only windows from the current workspace are shown in the switcher. "
"Otherwise, all windows are included." "Otherwise, all windows are included."
@ -440,59 +428,59 @@ msgstr ""
"Ak je true, iba okná z aktuálneho pracovného priestoru budú zobrazené v " "Ak je true, iba okná z aktuálneho pracovného priestoru budú zobrazené v "
"prepínači. Inak budú zahrnuté všetky okná." "prepínači. Inak budú zahrnuté všetky okná."
#: data/org.gnome.shell.gschema.xml.in:286 #: data/org.gnome.shell.gschema.xml.in:278
msgid "Locations" msgid "Locations"
msgstr "Umiestnenia" msgstr "Umiestnenia"
#: data/org.gnome.shell.gschema.xml.in:287 #: data/org.gnome.shell.gschema.xml.in:279
msgid "The locations to show in world clocks" msgid "The locations to show in world clocks"
msgstr "Zobrazené umiestnenia v svetových časoch" msgstr "Zobrazené umiestnenia v svetových časoch"
#: data/org.gnome.shell.gschema.xml.in:297 #: data/org.gnome.shell.gschema.xml.in:289
msgid "Automatic location" msgid "Automatic location"
msgstr "Automatické umiestnenie" msgstr "Automatické umiestnenie"
#: data/org.gnome.shell.gschema.xml.in:298 #: data/org.gnome.shell.gschema.xml.in:290
msgid "Whether to fetch the current location or not" msgid "Whether to fetch the current location or not"
msgstr "Určuje, či sa má získať aktuálne umiestnenie alebo nie" msgstr "Určuje, či sa má získať aktuálne umiestnenie alebo nie"
#: data/org.gnome.shell.gschema.xml.in:305 #: data/org.gnome.shell.gschema.xml.in:297
msgid "Location" msgid "Location"
msgstr "Umiestnenie" msgstr "Umiestnenie"
#: data/org.gnome.shell.gschema.xml.in:306 #: data/org.gnome.shell.gschema.xml.in:298
msgid "The location for which to show a forecast" msgid "The location for which to show a forecast"
msgstr "Umiestnenie, pre ktoré zobraziť predpoveď" msgstr "Umiestnenie, pre ktoré zobraziť predpoveď"
#: data/org.gnome.shell.gschema.xml.in:318 #: data/org.gnome.shell.gschema.xml.in:310
msgid "Attach modal dialog to the parent window" msgid "Attach modal dialog to the parent window"
msgstr "Pripojiť modálne dialógové okno k rodičovskému oknu" msgstr "Pripojiť modálne dialógové okno k rodičovskému oknu"
#: data/org.gnome.shell.gschema.xml.in:319 #: data/org.gnome.shell.gschema.xml.in:311
#: data/org.gnome.shell.gschema.xml.in:320
#: data/org.gnome.shell.gschema.xml.in:328 #: data/org.gnome.shell.gschema.xml.in:328
#: data/org.gnome.shell.gschema.xml.in:336 #: data/org.gnome.shell.gschema.xml.in:336
#: data/org.gnome.shell.gschema.xml.in:344 #: data/org.gnome.shell.gschema.xml.in:344
#: data/org.gnome.shell.gschema.xml.in:352
msgid "" msgid ""
"This key overrides the key in org.gnome.mutter when running GNOME Shell." "This key overrides the key in org.gnome.mutter when running GNOME Shell."
msgstr "" msgstr ""
"Tento kľúč preváži kľúč v org.gnome.mutter po spustení Shellu prostredia " "Tento kľúč preváži kľúč v org.gnome.mutter po spustení Shellu prostredia "
"GNOME." "GNOME."
#: data/org.gnome.shell.gschema.xml.in:327 #: data/org.gnome.shell.gschema.xml.in:319
msgid "Enable edge tiling when dropping windows on screen edges" msgid "Enable edge tiling when dropping windows on screen edges"
msgstr "Povoliť natiahnutie k okraju pri pustení okien na okrajoch obrazovky" msgstr "Povoliť natiahnutie k okraju pri pustení okien na okrajoch obrazovky"
#: data/org.gnome.shell.gschema.xml.in:335 #: data/org.gnome.shell.gschema.xml.in:327
msgid "Workspaces are managed dynamically" msgid "Workspaces are managed dynamically"
msgstr "Pracovné priestory sú spravované dynamicky" msgstr "Pracovné priestory sú spravované dynamicky"
#: data/org.gnome.shell.gschema.xml.in:343 #: data/org.gnome.shell.gschema.xml.in:335
msgid "Workspaces only on primary monitor" msgid "Workspaces only on primary monitor"
msgstr "Pracovné priestory sú iba na primárnom monitore" msgstr "Pracovné priestory sú iba na primárnom monitore"
# summary # summary
#: data/org.gnome.shell.gschema.xml.in:351 #: data/org.gnome.shell.gschema.xml.in:343
msgid "Delay focus changes in mouse mode until the pointer stops moving" msgid "Delay focus changes in mouse mode until the pointer stops moving"
msgstr "" msgstr ""
"Oneskoriť pohyb zamerania v režime myši, až kým sa ukazovateľ nezastaví" "Oneskoriť pohyb zamerania v režime myši, až kým sa ukazovateľ nezastaví"
@ -528,18 +516,18 @@ msgid "Visit extension homepage"
msgstr "Navštíviť domovskú stránku rozšírenia" msgstr "Navštíviť domovskú stránku rozšírenia"
#: js/gdm/authPrompt.js:141 js/ui/audioDeviceSelection.js:61 #: js/gdm/authPrompt.js:141 js/ui/audioDeviceSelection.js:61
#: js/ui/components/networkAgent.js:111 js/ui/components/polkitAgent.js:138 #: js/ui/components/networkAgent.js:110 js/ui/components/polkitAgent.js:138
#: js/ui/endSessionDialog.js:438 js/ui/extensionDownloader.js:190 #: js/ui/endSessionDialog.js:438 js/ui/extensionDownloader.js:228
#: js/ui/shellMountOperation.js:376 js/ui/shellMountOperation.js:386 #: js/ui/shellMountOperation.js:376 js/ui/shellMountOperation.js:386
#: js/ui/status/network.js:978 subprojects/extensions-app/js/main.js:183 #: js/ui/status/network.js:978 subprojects/extensions-app/js/main.js:183
msgid "Cancel" msgid "Cancel"
msgstr "Zrušiť" msgstr "Zrušiť"
#. Cisco LEAP #. Cisco LEAP
#: js/gdm/authPrompt.js:285 js/ui/components/networkAgent.js:210 #: js/gdm/authPrompt.js:285 js/ui/components/networkAgent.js:209
#: js/ui/components/networkAgent.js:226 js/ui/components/networkAgent.js:250 #: js/ui/components/networkAgent.js:225 js/ui/components/networkAgent.js:249
#: js/ui/components/networkAgent.js:271 js/ui/components/networkAgent.js:291 #: js/ui/components/networkAgent.js:270 js/ui/components/networkAgent.js:290
#: js/ui/components/networkAgent.js:301 js/ui/components/polkitAgent.js:275 #: js/ui/components/networkAgent.js:300 js/ui/components/polkitAgent.js:275
#: js/ui/shellMountOperation.js:326 #: js/ui/shellMountOperation.js:326
msgid "Password" msgid "Password"
msgstr "Heslo" msgstr "Heslo"
@ -564,8 +552,8 @@ msgstr "(napr., používateľ alebo %s)"
#. TTLS and PEAP are actually much more complicated, but this complication #. TTLS and PEAP are actually much more complicated, but this complication
#. is not visible here since we only care about phase2 authentication #. is not visible here since we only care about phase2 authentication
#. (and don't even care of which one) #. (and don't even care of which one)
#: js/gdm/loginDialog.js:926 js/ui/components/networkAgent.js:246 #: js/gdm/loginDialog.js:926 js/ui/components/networkAgent.js:245
#: js/ui/components/networkAgent.js:269 js/ui/components/networkAgent.js:287 #: js/ui/components/networkAgent.js:268 js/ui/components/networkAgent.js:286
msgid "Username" msgid "Username"
msgstr "Používateľské meno" msgstr "Používateľské meno"
@ -673,26 +661,26 @@ msgctxt "search-result"
msgid "Lock Screen Rotation" msgid "Lock Screen Rotation"
msgstr "Uzamknúť otočenie obrazovky" msgstr "Uzamknúť otočenie obrazovky"
#: js/misc/util.js:120 #: js/misc/util.js:121
msgid "Command not found" msgid "Command not found"
msgstr "Príkaz nebol nájdený" msgstr "Príkaz nebol nájdený"
#. Replace "Error invoking GLib.shell_parse_argv: " with #. Replace "Error invoking GLib.shell_parse_argv: " with
#. something nicer #. something nicer
#: js/misc/util.js:156 #: js/misc/util.js:157
msgid "Could not parse command:" msgid "Could not parse command:"
msgstr "Nepodarilo sa analyzovať príkaz:" msgstr "Nepodarilo sa analyzovať príkaz:"
#: js/misc/util.js:164 #: js/misc/util.js:165
#, javascript-format #, javascript-format
msgid "Execution of “%s” failed:" msgid "Execution of “%s” failed:"
msgstr "Spustenie „%s“ zlyhalo:" msgstr "Spustenie „%s“ zlyhalo:"
#: js/misc/util.js:181 #: js/misc/util.js:182
msgid "Just now" msgid "Just now"
msgstr "Práve teraz" msgstr "Práve teraz"
#: js/misc/util.js:183 #: js/misc/util.js:184
#, javascript-format #, javascript-format
msgid "%d minute ago" msgid "%d minute ago"
msgid_plural "%d minutes ago" msgid_plural "%d minutes ago"
@ -700,7 +688,7 @@ msgstr[0] "Pred %d minútami"
msgstr[1] "Pred %d minútou" msgstr[1] "Pred %d minútou"
msgstr[2] "Pred %d minútami" msgstr[2] "Pred %d minútami"
#: js/misc/util.js:187 #: js/misc/util.js:188
#, javascript-format #, javascript-format
msgid "%d hour ago" msgid "%d hour ago"
msgid_plural "%d hours ago" msgid_plural "%d hours ago"
@ -708,11 +696,11 @@ msgstr[0] "Pred %d hodinami"
msgstr[1] "Pred %d hodinou" msgstr[1] "Pred %d hodinou"
msgstr[2] "Pred %d hodinami" msgstr[2] "Pred %d hodinami"
#: js/misc/util.js:191 js/ui/dateMenu.js:162 #: js/misc/util.js:192 js/ui/dateMenu.js:162
msgid "Yesterday" msgid "Yesterday"
msgstr "Včera" msgstr "Včera"
#: js/misc/util.js:193 #: js/misc/util.js:194
#, javascript-format #, javascript-format
msgid "%d day ago" msgid "%d day ago"
msgid_plural "%d days ago" msgid_plural "%d days ago"
@ -720,7 +708,7 @@ msgstr[0] "Pred %d dňami"
msgstr[1] "Pred %d dňom" msgstr[1] "Pred %d dňom"
msgstr[2] "Pred %d dňami" msgstr[2] "Pred %d dňami"
#: js/misc/util.js:197 #: js/misc/util.js:198
#, javascript-format #, javascript-format
msgid "%d week ago" msgid "%d week ago"
msgid_plural "%d weeks ago" msgid_plural "%d weeks ago"
@ -728,7 +716,7 @@ msgstr[0] "Pred %d týždňami"
msgstr[1] "Pred %d týždňom" msgstr[1] "Pred %d týždňom"
msgstr[2] "Pred %d týždňami" msgstr[2] "Pred %d týždňami"
#: js/misc/util.js:201 #: js/misc/util.js:202
#, javascript-format #, javascript-format
msgid "%d month ago" msgid "%d month ago"
msgid_plural "%d months ago" msgid_plural "%d months ago"
@ -736,7 +724,7 @@ msgstr[0] "Pred %d mesiacmi"
msgstr[1] "Pred %d mesiacom" msgstr[1] "Pred %d mesiacom"
msgstr[2] "Pred %d mesiacmi" msgstr[2] "Pred %d mesiacmi"
#: js/misc/util.js:204 #: js/misc/util.js:205
#, javascript-format #, javascript-format
msgid "%d year ago" msgid "%d year ago"
msgid_plural "%d years ago" msgid_plural "%d years ago"
@ -745,20 +733,20 @@ msgstr[1] "Pred %d rokom"
msgstr[2] "Pred %d rokmi" msgstr[2] "Pred %d rokmi"
#. Translators: Time in 24h format #. Translators: Time in 24h format
#: js/misc/util.js:237 #: js/misc/util.js:238
msgid "%H%M" msgid "%H%M"
msgstr "%H:%M" msgstr "%H:%M"
#. Translators: this is the word "Yesterday" followed by a #. Translators: this is the word "Yesterday" followed by a
#. time string in 24h format. i.e. "Yesterday, 14:30" #. time string in 24h format. i.e. "Yesterday, 14:30"
#: js/misc/util.js:243 #: js/misc/util.js:244
#, no-c-format #, no-c-format
msgid "Yesterday, %H%M" msgid "Yesterday, %H%M"
msgstr "Včera o %H:%M" msgstr "Včera o %H:%M"
#. Translators: this is the week day name followed by a time #. Translators: this is the week day name followed by a time
#. string in 24h format. i.e. "Monday, 14:30" #. string in 24h format. i.e. "Monday, 14:30"
#: js/misc/util.js:249 #: js/misc/util.js:250
#, no-c-format #, no-c-format
msgid "%A, %H%M" msgid "%A, %H%M"
msgstr "%A, %H:%M" msgstr "%A, %H:%M"
@ -766,7 +754,7 @@ msgstr "%A, %H:%M"
#. Translators: this is the month name and day number #. Translators: this is the month name and day number
#. followed by a time string in 24h format. #. followed by a time string in 24h format.
#. i.e. "May 25, 14:30" #. i.e. "May 25, 14:30"
#: js/misc/util.js:255 #: js/misc/util.js:256
#, no-c-format #, no-c-format
msgid "%B %-d, %H%M" msgid "%B %-d, %H%M"
msgstr "%d. %B, %H:%M" msgstr "%d. %B, %H:%M"
@ -774,7 +762,7 @@ msgstr "%d. %B, %H:%M"
#. Translators: this is the month name, day number, year #. Translators: this is the month name, day number, year
#. number followed by a time string in 24h format. #. number followed by a time string in 24h format.
#. i.e. "May 25 2012, 14:30" #. i.e. "May 25 2012, 14:30"
#: js/misc/util.js:261 #: js/misc/util.js:262
#, no-c-format #, no-c-format
msgid "%B %-d %Y, %H%M" msgid "%B %-d %Y, %H%M"
msgstr "%d. %B %Y, %H:%M" msgstr "%d. %B %Y, %H:%M"
@ -782,13 +770,13 @@ msgstr "%d. %B %Y, %H:%M"
#. Show only the time if date is on today #. Show only the time if date is on today
#. eslint-disable-line no-lonely-if #. eslint-disable-line no-lonely-if
#. Translators: Time in 12h format #. Translators: Time in 12h format
#: js/misc/util.js:266 #: js/misc/util.js:267
msgid "%l%M %p" msgid "%l%M %p"
msgstr "%l:%M %p" msgstr "%l:%M %p"
#. Translators: this is the word "Yesterday" followed by a #. Translators: this is the word "Yesterday" followed by a
#. time string in 12h format. i.e. "Yesterday, 2:30 pm" #. time string in 12h format. i.e. "Yesterday, 2:30 pm"
#: js/misc/util.js:272 #: js/misc/util.js:273
#, no-c-format #, no-c-format
msgid "Yesterday, %l%M %p" msgid "Yesterday, %l%M %p"
msgstr "Včera, %l:%M %p" msgstr "Včera, %l:%M %p"
@ -798,7 +786,7 @@ msgstr "Včera, %l:%M %p"
# v ostatnych retazcoch je pouzite %e, tak to bude asi OK # v ostatnych retazcoch je pouzite %e, tak to bude asi OK
#. Translators: this is the week day name followed by a time #. Translators: this is the week day name followed by a time
#. string in 12h format. i.e. "Monday, 2:30 pm" #. string in 12h format. i.e. "Monday, 2:30 pm"
#: js/misc/util.js:278 #: js/misc/util.js:279
#, no-c-format #, no-c-format
msgid "%A, %l%M %p" msgid "%A, %l%M %p"
msgstr "%A, %l:%M %p" msgstr "%A, %l:%M %p"
@ -806,7 +794,7 @@ msgstr "%A, %l:%M %p"
#. Translators: this is the month name and day number #. Translators: this is the month name and day number
#. followed by a time string in 12h format. #. followed by a time string in 12h format.
#. i.e. "May 25, 2:30 pm" #. i.e. "May 25, 2:30 pm"
#: js/misc/util.js:284 #: js/misc/util.js:285
#, no-c-format #, no-c-format
msgid "%B %-d, %l%M %p" msgid "%B %-d, %l%M %p"
msgstr "%d. %B, %l:%M %p" msgstr "%d. %B, %l:%M %p"
@ -814,17 +802,17 @@ msgstr "%d. %B, %l:%M %p"
#. Translators: this is the month name, day number, year #. Translators: this is the month name, day number, year
#. number followed by a time string in 12h format. #. number followed by a time string in 12h format.
#. i.e. "May 25 2012, 2:30 pm" #. i.e. "May 25 2012, 2:30 pm"
#: js/misc/util.js:290 #: js/misc/util.js:291
#, no-c-format #, no-c-format
msgid "%B %-d %Y, %l%M %p" msgid "%B %-d %Y, %l%M %p"
msgstr "%d. %B %Y, %l:%M %p" msgstr "%d. %B %Y, %l:%M %p"
#. TRANSLATORS: this is the title of the wifi captive portal login window #. TRANSLATORS: this is the title of the wifi captive portal login window
#: js/portalHelper/main.js:42 #: js/portalHelper/main.js:49
msgid "Hotspot Login" msgid "Hotspot Login"
msgstr "Prihlásenie do aktívneho bodu" msgstr "Prihlásenie do aktívneho bodu"
#: js/portalHelper/main.js:88 #: js/portalHelper/main.js:95
msgid "" msgid ""
"Your connection to this hotspot login is not secure. Passwords or other " "Your connection to this hotspot login is not secure. Passwords or other "
"information you enter on this page can be viewed by people nearby." "information you enter on this page can be viewed by people nearby."
@ -1074,39 +1062,39 @@ msgstr "Nainštalovaná verzia programu udisks nepodporuje nastavenie PIM"
msgid "Open with %s" msgid "Open with %s"
msgstr "Otvoriť pomocou aplikácie %s" msgstr "Otvoriť pomocou aplikácie %s"
#: js/ui/components/networkAgent.js:93 #: js/ui/components/networkAgent.js:92
msgid "" msgid ""
"Alternatively you can connect by pushing the “WPS” button on your router." "Alternatively you can connect by pushing the “WPS” button on your router."
msgstr "" msgstr ""
"Pripojiť sa môžete taktiež stlačením tlačidla „WPS“ na vašom smerovači." "Pripojiť sa môžete taktiež stlačením tlačidla „WPS“ na vašom smerovači."
#: js/ui/components/networkAgent.js:105 js/ui/status/network.js:258 #: js/ui/components/networkAgent.js:104 js/ui/status/network.js:258
#: js/ui/status/network.js:349 js/ui/status/network.js:981 #: js/ui/status/network.js:349 js/ui/status/network.js:981
msgid "Connect" msgid "Connect"
msgstr "Pripojiť" msgstr "Pripojiť"
#: js/ui/components/networkAgent.js:216 #: js/ui/components/networkAgent.js:215
msgid "Key" msgid "Key"
msgstr "Kľúč" msgstr "Kľúč"
#: js/ui/components/networkAgent.js:254 js/ui/components/networkAgent.js:277 #: js/ui/components/networkAgent.js:253 js/ui/components/networkAgent.js:276
msgid "Private key password" msgid "Private key password"
msgstr "Heslo k súkromnému kľúču" msgstr "Heslo k súkromnému kľúču"
#: js/ui/components/networkAgent.js:275 #: js/ui/components/networkAgent.js:274
msgid "Identity" msgid "Identity"
msgstr "Identita" msgstr "Identita"
#: js/ui/components/networkAgent.js:289 #: js/ui/components/networkAgent.js:288
msgid "Service" msgid "Service"
msgstr "Služba" msgstr "Služba"
#: js/ui/components/networkAgent.js:318 js/ui/components/networkAgent.js:346 #: js/ui/components/networkAgent.js:317 js/ui/components/networkAgent.js:345
#: js/ui/components/networkAgent.js:679 js/ui/components/networkAgent.js:700 #: js/ui/components/networkAgent.js:679 js/ui/components/networkAgent.js:700
msgid "Authentication required" msgid "Authentication required"
msgstr "Požaduje sa overenie totožnosti" msgstr "Požaduje sa overenie totožnosti"
#: js/ui/components/networkAgent.js:319 js/ui/components/networkAgent.js:680 #: js/ui/components/networkAgent.js:318 js/ui/components/networkAgent.js:680
#, javascript-format #, javascript-format
msgid "" msgid ""
"Passwords or encryption keys are required to access the wireless network " "Passwords or encryption keys are required to access the wireless network "
@ -1115,31 +1103,31 @@ msgstr ""
"Na prístup do bezdrôtovej siete „%s“ sú vyžadované heslá alebo šifrovacie " "Na prístup do bezdrôtovej siete „%s“ sú vyžadované heslá alebo šifrovacie "
"kľúče." "kľúče."
#: js/ui/components/networkAgent.js:323 js/ui/components/networkAgent.js:684 #: js/ui/components/networkAgent.js:322 js/ui/components/networkAgent.js:684
msgid "Wired 802.1X authentication" msgid "Wired 802.1X authentication"
msgstr "Overenie totožnosti k drôtovej sieti 802.1X" msgstr "Overenie totožnosti k drôtovej sieti 802.1X"
#: js/ui/components/networkAgent.js:325 #: js/ui/components/networkAgent.js:324
msgid "Network name" msgid "Network name"
msgstr "Názov siete" msgstr "Názov siete"
#: js/ui/components/networkAgent.js:330 js/ui/components/networkAgent.js:688 #: js/ui/components/networkAgent.js:329 js/ui/components/networkAgent.js:688
msgid "DSL authentication" msgid "DSL authentication"
msgstr "Overenie totožnosti k DSL" msgstr "Overenie totožnosti k DSL"
#: js/ui/components/networkAgent.js:337 js/ui/components/networkAgent.js:693 #: js/ui/components/networkAgent.js:336 js/ui/components/networkAgent.js:693
msgid "PIN code required" msgid "PIN code required"
msgstr "Požaduje sa kód PIN" msgstr "Požaduje sa kód PIN"
#: js/ui/components/networkAgent.js:338 js/ui/components/networkAgent.js:694 #: js/ui/components/networkAgent.js:337 js/ui/components/networkAgent.js:694
msgid "PIN code is needed for the mobile broadband device" msgid "PIN code is needed for the mobile broadband device"
msgstr "Pre zariadenie mobilnej širokopásmovej siete je potrebný kód PIN" msgstr "Pre zariadenie mobilnej širokopásmovej siete je potrebný kód PIN"
#: js/ui/components/networkAgent.js:339 #: js/ui/components/networkAgent.js:338
msgid "PIN" msgid "PIN"
msgstr "PIN" msgstr "PIN"
#: js/ui/components/networkAgent.js:347 js/ui/components/networkAgent.js:685 #: js/ui/components/networkAgent.js:346 js/ui/components/networkAgent.js:685
#: js/ui/components/networkAgent.js:689 js/ui/components/networkAgent.js:701 #: js/ui/components/networkAgent.js:689 js/ui/components/networkAgent.js:701
#: js/ui/components/networkAgent.js:705 #: js/ui/components/networkAgent.js:705
#, javascript-format #, javascript-format
@ -1437,25 +1425,25 @@ msgstr "%s (vzdialená relácia)"
msgid "%s (console)" msgid "%s (console)"
msgstr "%s (konzola)" msgstr "%s (konzola)"
#: js/ui/extensionDownloader.js:194 #: js/ui/extensionDownloader.js:232
msgid "Install" msgid "Install"
msgstr "Inštalovať" msgstr "Inštalovať"
# dialog title # dialog title
#: js/ui/extensionDownloader.js:200 #: js/ui/extensionDownloader.js:238
msgid "Install Extension" msgid "Install Extension"
msgstr "Inštalácia rozšírenia" msgstr "Inštalácia rozšírenia"
#: js/ui/extensionDownloader.js:201 #: js/ui/extensionDownloader.js:239
#, javascript-format #, javascript-format
msgid "Download and install “%s” from extensions.gnome.org?" msgid "Download and install “%s” from extensions.gnome.org?"
msgstr "Prevziať a nainštalovať rozšírenie „%s“ z extensions.gnome.org?" msgstr "Prevziať a nainštalovať rozšírenie „%s“ z extensions.gnome.org?"
#: js/ui/extensionSystem.js:253 #: js/ui/extensionSystem.js:252
msgid "Extension Updates Available" msgid "Extension Updates Available"
msgstr "Sú dostupné aktualizácie rozšírení" msgstr "Sú dostupné aktualizácie rozšírení"
#: js/ui/extensionSystem.js:254 #: js/ui/extensionSystem.js:253
msgid "Extension updates are ready to be installed." msgid "Extension updates are ready to be installed."
msgstr "Aktualizácie rozšírení sú pripravené na inštaláciu." msgstr "Aktualizácie rozšírení sú pripravené na inštaláciu."
@ -1555,7 +1543,7 @@ msgstr "Vypnúť"
msgid "Leave Off" msgid "Leave Off"
msgstr "Ponechať vypnuté" msgstr "Ponechať vypnuté"
#: js/ui/keyboard.js:227 #: js/ui/keyboard.js:226
msgid "Region & Language Settings" msgid "Region & Language Settings"
msgstr "Nastavenia oblasti a jazyka" msgstr "Nastavenia oblasti a jazyka"
@ -1609,11 +1597,11 @@ msgstr "Zobraziť zdroj"
msgid "Web Page" msgid "Web Page"
msgstr "Webová stránka" msgstr "Webová stránka"
#: js/ui/main.js:294 #: js/ui/main.js:290
msgid "Logged in as a privileged user" msgid "Logged in as a privileged user"
msgstr "Prihlásený ako privilegovaný používateľ" msgstr "Prihlásený ako privilegovaný používateľ"
#: js/ui/main.js:295 #: js/ui/main.js:291
msgid "" msgid ""
"Running a session as a privileged user should be avoided for security " "Running a session as a privileged user should be avoided for security "
"reasons. If possible, you should log in as a normal user." "reasons. If possible, you should log in as a normal user."
@ -1622,15 +1610,15 @@ msgstr ""
"bezpečnostných dôvodov zabrániť. Ak je to možné, mali by ste sa prihlásiť " "bezpečnostných dôvodov zabrániť. Ak je to možné, mali by ste sa prihlásiť "
"ako normálny používateľ." "ako normálny používateľ."
#: js/ui/main.js:344 #: js/ui/main.js:340
msgid "Screen Lock disabled" msgid "Screen Lock disabled"
msgstr "Uzamknutie obrazovky je zakázané" msgstr "Uzamknutie obrazovky je zakázané"
#: js/ui/main.js:345 #: js/ui/main.js:341
msgid "Screen Locking requires the GNOME display manager." msgid "Screen Locking requires the GNOME display manager."
msgstr "Uzamykanie obrazovky vyžaduje správcu displejov prostredia GNOME." msgstr "Uzamykanie obrazovky vyžaduje správcu displejov prostredia GNOME."
#: js/ui/messageTray.js:1440 #: js/ui/messageTray.js:1443
msgid "System Information" msgid "System Information"
msgstr "Informácie o systéme" msgstr "Informácie o systéme"
@ -1665,47 +1653,47 @@ msgstr "Vrátiť"
msgid "Overview" msgid "Overview"
msgstr "Prehľad" msgstr "Prehľad"
#: js/ui/padOsd.js:96 #: js/ui/padOsd.js:95
msgid "New shortcut…" msgid "New shortcut…"
msgstr "Nová skratka…" msgstr "Nová skratka…"
#: js/ui/padOsd.js:143 #: js/ui/padOsd.js:142
msgid "Application defined" msgid "Application defined"
msgstr "Definované aplikáciou" msgstr "Definované aplikáciou"
#: js/ui/padOsd.js:144 #: js/ui/padOsd.js:143
msgid "Show on-screen help" msgid "Show on-screen help"
msgstr "Zobraziť pomocníka na obrazovke" msgstr "Zobraziť pomocníka na obrazovke"
#: js/ui/padOsd.js:145 #: js/ui/padOsd.js:144
msgid "Switch monitor" msgid "Switch monitor"
msgstr "Prepnúť monitor" msgstr "Prepnúť monitor"
#: js/ui/padOsd.js:146 #: js/ui/padOsd.js:145
msgid "Assign keystroke" msgid "Assign keystroke"
msgstr "Priradiť klávesu" msgstr "Priradiť klávesu"
#: js/ui/padOsd.js:212 #: js/ui/padOsd.js:211
msgid "Done" msgid "Done"
msgstr "Dokončiť" msgstr "Dokončiť"
#: js/ui/padOsd.js:718 #: js/ui/padOsd.js:716
msgid "Edit…" msgid "Edit…"
msgstr "Upraviť…" msgstr "Upraviť…"
#: js/ui/padOsd.js:760 js/ui/padOsd.js:877 #: js/ui/padOsd.js:758 js/ui/padOsd.js:875
msgid "None" msgid "None"
msgstr "Žiadne" msgstr "Žiadne"
#: js/ui/padOsd.js:831 #: js/ui/padOsd.js:829
msgid "Press a button to configure" msgid "Press a button to configure"
msgstr "Stlačte kláves na spustenie konfigurácie" msgstr "Stlačte kláves na spustenie konfigurácie"
#: js/ui/padOsd.js:832 #: js/ui/padOsd.js:830
msgid "Press Esc to exit" msgid "Press Esc to exit"
msgstr "Stlačte kláves Esc na skončenie" msgstr "Stlačte kláves Esc na skončenie"
#: js/ui/padOsd.js:835 #: js/ui/padOsd.js:833
msgid "Press any key to exit" msgid "Press any key to exit"
msgstr "Stlačte akýkoľvek kláves na skončenie" msgstr "Stlačte akýkoľvek kláves na skončenie"
@ -1715,12 +1703,12 @@ msgstr "Stlačte akýkoľvek kláves na skončenie"
msgid "Activities" msgid "Activities"
msgstr "Aktivity" msgstr "Aktivity"
#: js/ui/panel.js:542 #: js/ui/panel.js:556
msgctxt "System menu in the top bar" msgctxt "System menu in the top bar"
msgid "System" msgid "System"
msgstr "Systém" msgstr "Systém"
#: js/ui/panel.js:658 #: js/ui/panel.js:674
msgid "Top Bar" msgid "Top Bar"
msgstr "Horná lišta" msgstr "Horná lišta"
@ -1760,7 +1748,7 @@ msgstr "Nepodarilo sa uzamknúť obrazovku"
msgid "Lock was blocked by an application" msgid "Lock was blocked by an application"
msgstr "Uzamknutie bolo zablokované aplikáciou" msgstr "Uzamknutie bolo zablokované aplikáciou"
#: js/ui/screenshot.js:141 #: js/ui/screenshot.js:155
msgid "Screenshot taken" msgid "Screenshot taken"
msgstr "Snímka obrazovky bola zachytená" msgstr "Snímka obrazovky bola zachytená"
@ -2831,6 +2819,7 @@ msgstr "Vlastnosť UUID, názov a popis sú povinné"
#: subprojects/extensions-tool/src/command-enable.c:46 #: subprojects/extensions-tool/src/command-enable.c:46
#: subprojects/extensions-tool/src/command-info.c:50 #: subprojects/extensions-tool/src/command-info.c:50
#: subprojects/extensions-tool/src/command-list.c:64 #: subprojects/extensions-tool/src/command-list.c:64
#: subprojects/extensions-tool/src/main.c:146
msgid "Failed to connect to GNOME Shell\n" msgid "Failed to connect to GNOME Shell\n"
msgstr "Zlyhalo pripojenie k Shellu prostredia GNOME\n" msgstr "Zlyhalo pripojenie k Shellu prostredia GNOME\n"
@ -2848,7 +2837,7 @@ msgstr "Zakázať rozšírenie"
#: subprojects/extensions-tool/src/command-disable.c:119 #: subprojects/extensions-tool/src/command-disable.c:119
#: subprojects/extensions-tool/src/command-enable.c:119 #: subprojects/extensions-tool/src/command-enable.c:119
#: subprojects/extensions-tool/src/command-info.c:103 #: subprojects/extensions-tool/src/command-info.c:103
#: subprojects/extensions-tool/src/command-prefs.c:97 #: subprojects/extensions-tool/src/command-prefs.c:105
#: subprojects/extensions-tool/src/command-reset.c:76 #: subprojects/extensions-tool/src/command-reset.c:76
#: subprojects/extensions-tool/src/command-uninstall.c:104 #: subprojects/extensions-tool/src/command-uninstall.c:104
msgid "No UUID given" msgid "No UUID given"
@ -2857,7 +2846,7 @@ msgstr "Nebol zadaný žiadny identifikátor UUID"
#: subprojects/extensions-tool/src/command-disable.c:124 #: subprojects/extensions-tool/src/command-disable.c:124
#: subprojects/extensions-tool/src/command-enable.c:124 #: subprojects/extensions-tool/src/command-enable.c:124
#: subprojects/extensions-tool/src/command-info.c:108 #: subprojects/extensions-tool/src/command-info.c:108
#: subprojects/extensions-tool/src/command-prefs.c:102 #: subprojects/extensions-tool/src/command-prefs.c:110
#: subprojects/extensions-tool/src/command-reset.c:81 #: subprojects/extensions-tool/src/command-reset.c:81
#: subprojects/extensions-tool/src/command-uninstall.c:109 #: subprojects/extensions-tool/src/command-uninstall.c:109
msgid "More than one UUID given" msgid "More than one UUID given"
@ -2990,7 +2979,12 @@ msgstr "Bol určený viac ako jeden zdrojový adresár"
msgid "Extension “%s” doesn't have preferences\n" msgid "Extension “%s” doesn't have preferences\n"
msgstr "Rozšírenie „%s“ neobsahuje predvoľby\n" msgstr "Rozšírenie „%s“ neobsahuje predvoľby\n"
#: subprojects/extensions-tool/src/command-prefs.c:79 #: subprojects/extensions-tool/src/command-prefs.c:62
#, c-format
msgid "Failed to open prefs for extension “%s”: %s\n"
msgstr "Zlyhalo otvorenie predvolieb rozšírenia „%s“: %s\n"
#: subprojects/extensions-tool/src/command-prefs.c:87
msgid "Opens extension preferences" msgid "Opens extension preferences"
msgstr "Otvorí predvoľby rozšírenia" msgstr "Otvorí predvoľby rozšírenia"
@ -3018,10 +3012,6 @@ msgstr "Odinštalovať rozšírenie"
msgid "Do not print error messages" msgid "Do not print error messages"
msgstr "Nevypíše chybové správy" msgstr "Nevypíše chybové správy"
#: subprojects/extensions-tool/src/main.c:146
msgid "Failed to connect to GNOME Shell"
msgstr "Zlyhalo pripojenie k Shellu prostredia GNOME"
#: subprojects/extensions-tool/src/main.c:244 #: subprojects/extensions-tool/src/main.c:244
msgid "Path" msgid "Path"
msgstr "Cesta" msgstr "Cesta"
@ -3159,6 +3149,19 @@ msgstr[2] "%u vstupov"
msgid "System Sounds" msgid "System Sounds"
msgstr "Systémové zvuky" msgstr "Systémové zvuky"
#~ msgid "Enable introspection API"
#~ msgstr "Povoliť sebapozorovacie API"
#~ msgid ""
#~ "Enables a D-Bus API that allows to introspect the application state of "
#~ "the shell."
#~ msgstr ""
#~ "Povolí D-Bus API, ktoré umožní sebapozorovanie stavu aplikácie prostredia "
#~ "shell."
#~ msgid "Failed to connect to GNOME Shell"
#~ msgstr "Zlyhalo pripojenie k Shellu prostredia GNOME"
#~ msgid "Minimize" #~ msgid "Minimize"
#~ msgstr "Minimalizovať" #~ msgstr "Minimalizovať"

267
po/sl.po
View File

@ -8,8 +8,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: gnome-shell master\n" "Project-Id-Version: gnome-shell master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell/issues\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell/issues\n"
"POT-Creation-Date: 2021-11-02 16:32+0000\n" "POT-Creation-Date: 2021-08-29 17:33+0000\n"
"PO-Revision-Date: 2021-11-02 17:49+0100\n" "PO-Revision-Date: 2021-08-30 21:12+0200\n"
"Last-Translator: Matej Urbančič <mateju@src.gnome.org>\n" "Last-Translator: Matej Urbančič <mateju@src.gnome.org>\n"
"Language-Team: Slovenian GNOME Translation Team <gnome-si@googlegroups.com>\n" "Language-Team: Slovenian GNOME Translation Team <gnome-si@googlegroups.com>\n"
"Language: sl\n" "Language: sl\n"
@ -19,7 +19,7 @@ msgstr ""
"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n" "Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n"
"%100==4 ? 3 : 0);\n" "%100==4 ? 3 : 0);\n"
"X-Poedit-SourceCharset: utf-8\n" "X-Poedit-SourceCharset: utf-8\n"
"X-Generator: Poedit 3.0\n" "X-Generator: Poedit 2.4.2\n"
#: data/50-gnome-shell-launchers.xml:6 #: data/50-gnome-shell-launchers.xml:6
msgid "Launchers" msgid "Launchers"
@ -251,11 +251,21 @@ msgstr ""
"različico in velike številke različice, ki še ne obstajajo. S temi velikimi " "različico in velike številke različice, ki še ne obstajajo. S temi velikimi "
"vrednostmi je mogoče preprečiti prikaz tega okna." "vrednostmi je mogoče preprečiti prikaz tega okna."
#: data/org.gnome.shell.gschema.xml.in:133 #: data/org.gnome.shell.gschema.xml.in:109
msgid "Enable introspection API"
msgstr "Omogoči API nadzora"
#: data/org.gnome.shell.gschema.xml.in:110
msgid ""
"Enables a D-Bus API that allows to introspect the application state of the "
"shell."
msgstr "Omogoči API sistema D-Bus, ki mogoča nadzor stanja programa lupine."
#: data/org.gnome.shell.gschema.xml.in:141
msgid "Layout of the app picker" msgid "Layout of the app picker"
msgstr "Pogled izbirnika programov" msgstr "Pogled izbirnika programov"
#: data/org.gnome.shell.gschema.xml.in:134 #: data/org.gnome.shell.gschema.xml.in:142
msgid "" msgid ""
"Layout of the app picker. Each entry in the array is a page. Pages are " "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 " "stored in the order they appear in GNOME Shell. Each page contains an "
@ -267,105 +277,105 @@ msgstr ""
"»ID programa« → »podatki«. Trenutno so kot podatki shranjeni:: • »položaj«: " "»ID programa« → »podatki«. Trenutno so kot podatki shranjeni:: • »položaj«: "
"položaj ikone programa na strani" "položaj ikone programa na strani"
#: data/org.gnome.shell.gschema.xml.in:149 #: data/org.gnome.shell.gschema.xml.in:157
msgid "Keybinding to open the application menu" msgid "Keybinding to open the application menu"
msgstr "Tipkovna bližnjica, ki odpre meni programov" msgstr "Tipkovna bližnjica, ki odpre meni programov"
#: data/org.gnome.shell.gschema.xml.in:150 #: data/org.gnome.shell.gschema.xml.in:158
msgid "Keybinding to open the application menu." msgid "Keybinding to open the application menu."
msgstr "Tipkovna bližnjica, ki odpre meni programov." msgstr "Tipkovna bližnjica, ki odpre meni programov."
#: data/org.gnome.shell.gschema.xml.in:156 #: data/org.gnome.shell.gschema.xml.in:164
#: data/org.gnome.shell.gschema.xml.in:163 #: data/org.gnome.shell.gschema.xml.in:171
msgid "Keybinding to shift between overview states" msgid "Keybinding to shift between overview states"
msgstr "Tipkovna bližnjica za preklop med stanji pregleda" msgstr "Tipkovna bližnjica za preklop med stanji pregleda"
#: data/org.gnome.shell.gschema.xml.in:157 #: data/org.gnome.shell.gschema.xml.in:165
msgid "Keybinding to shift between session, window picker and app grid" msgid "Keybinding to shift between session, window picker and app grid"
msgstr "" msgstr ""
"Tipkovna bližnjica za preklop med sejo, izbirniki oken in programsko mrežo" "Tipkovna bližnjica za preklop med sejo, izbirniki oken in programsko mrežo"
#: data/org.gnome.shell.gschema.xml.in:164 #: data/org.gnome.shell.gschema.xml.in:172
msgid "Keybinding to shift between app grid, window picker and session" msgid "Keybinding to shift between app grid, window picker and session"
msgstr "" msgstr ""
"Tipkovna bližnjica za preklop med programsko mrežo, izbirniki oken in sejo" "Tipkovna bližnjica za preklop med programsko mrežo, izbirniki oken in sejo"
#: data/org.gnome.shell.gschema.xml.in:170 #: data/org.gnome.shell.gschema.xml.in:178
msgid "Keybinding to open the “Show Applications” view" msgid "Keybinding to open the “Show Applications” view"
msgstr "Tipkovna bližnjica, ki odpre pogled »Pokaži programe«" msgstr "Tipkovna bližnjica, ki odpre pogled »Pokaži programe«"
#: data/org.gnome.shell.gschema.xml.in:171 #: data/org.gnome.shell.gschema.xml.in:179
msgid "" msgid ""
"Keybinding to open the “Show Applications” view of the Activities Overview." "Keybinding to open the “Show Applications” view of the Activities Overview."
msgstr "" msgstr ""
"Tipkovna bližnjica, ki odpre pogled »Pokaži programe« v pregledu dejavnosti." "Tipkovna bližnjica, ki odpre pogled »Pokaži programe« v pregledu dejavnosti."
#: data/org.gnome.shell.gschema.xml.in:178 #: data/org.gnome.shell.gschema.xml.in:186
msgid "Keybinding to open the overview" msgid "Keybinding to open the overview"
msgstr "Tipkovna bližnjica, ki odpre pogled pregleda" msgstr "Tipkovna bližnjica, ki odpre pogled pregleda"
#: data/org.gnome.shell.gschema.xml.in:179 #: data/org.gnome.shell.gschema.xml.in:187
msgid "Keybinding to open the Activities Overview." msgid "Keybinding to open the Activities Overview."
msgstr "Tipkovna bližnjica, ki odpre pogled pregleda dejavnosti." msgstr "Tipkovna bližnjica, ki odpre pogled pregleda dejavnosti."
#: data/org.gnome.shell.gschema.xml.in:185 #: data/org.gnome.shell.gschema.xml.in:193
msgid "Keybinding to toggle the visibility of the notification list" msgid "Keybinding to toggle the visibility of the notification list"
msgstr "Tipkovna bližnjica za preklop vidnosti seznama obvestil" msgstr "Tipkovna bližnjica za preklop vidnosti seznama obvestil"
#: data/org.gnome.shell.gschema.xml.in:186 #: data/org.gnome.shell.gschema.xml.in:194
msgid "Keybinding to toggle the visibility of the notification list." msgid "Keybinding to toggle the visibility of the notification list."
msgstr "Tipkovna bližnjica za preklop vidnosti seznama obvestil." msgstr "Tipkovna bližnjica za preklop vidnosti seznama obvestil."
#: data/org.gnome.shell.gschema.xml.in:192 #: data/org.gnome.shell.gschema.xml.in:200
msgid "Keybinding to focus the active notification" msgid "Keybinding to focus the active notification"
msgstr "Tipkovna bližnjica za prikaz dejavnega obvestila" msgstr "Tipkovna bližnjica za prikaz dejavnega obvestila"
#: data/org.gnome.shell.gschema.xml.in:193 #: data/org.gnome.shell.gschema.xml.in:201
msgid "Keybinding to focus the active notification." msgid "Keybinding to focus the active notification."
msgstr "Tipkovna bližnjica za prikaz dejavnega obvestila." msgstr "Tipkovna bližnjica za prikaz dejavnega obvestila."
#: data/org.gnome.shell.gschema.xml.in:199 #: data/org.gnome.shell.gschema.xml.in:207
msgid "Switch to application 1" msgid "Switch to application 1"
msgstr "Preklopi na program 1" msgstr "Preklopi na program 1"
#: data/org.gnome.shell.gschema.xml.in:203 #: data/org.gnome.shell.gschema.xml.in:211
msgid "Switch to application 2" msgid "Switch to application 2"
msgstr "Preklopi na program 2" msgstr "Preklopi na program 2"
#: data/org.gnome.shell.gschema.xml.in:207 #: data/org.gnome.shell.gschema.xml.in:215
msgid "Switch to application 3" msgid "Switch to application 3"
msgstr "Preklopi na program 3" msgstr "Preklopi na program 3"
#: data/org.gnome.shell.gschema.xml.in:211 #: data/org.gnome.shell.gschema.xml.in:219
msgid "Switch to application 4" msgid "Switch to application 4"
msgstr "Preklopi na program 4" msgstr "Preklopi na program 4"
#: data/org.gnome.shell.gschema.xml.in:215 #: data/org.gnome.shell.gschema.xml.in:223
msgid "Switch to application 5" msgid "Switch to application 5"
msgstr "Preklopi na program 5" msgstr "Preklopi na program 5"
#: data/org.gnome.shell.gschema.xml.in:219 #: data/org.gnome.shell.gschema.xml.in:227
msgid "Switch to application 6" msgid "Switch to application 6"
msgstr "Preklopi na program 6" msgstr "Preklopi na program 6"
#: data/org.gnome.shell.gschema.xml.in:223 #: data/org.gnome.shell.gschema.xml.in:231
msgid "Switch to application 7" msgid "Switch to application 7"
msgstr "Preklopi na program 7" msgstr "Preklopi na program 7"
#: data/org.gnome.shell.gschema.xml.in:227 #: data/org.gnome.shell.gschema.xml.in:235
msgid "Switch to application 8" msgid "Switch to application 8"
msgstr "Preklopi na program 8" msgstr "Preklopi na program 8"
#: data/org.gnome.shell.gschema.xml.in:231 #: data/org.gnome.shell.gschema.xml.in:239
msgid "Switch to application 9" msgid "Switch to application 9"
msgstr "Preklopi na program 9" msgstr "Preklopi na program 9"
#: data/org.gnome.shell.gschema.xml.in:240 #: data/org.gnome.shell.gschema.xml.in:248
#: data/org.gnome.shell.gschema.xml.in:267 #: data/org.gnome.shell.gschema.xml.in:275
msgid "Limit switcher to current workspace." msgid "Limit switcher to current workspace."
msgstr "Omeji preklopnik na trenutno delovno površino." msgstr "Omeji preklopnik na trenutno delovno površino."
#: data/org.gnome.shell.gschema.xml.in:241 #: data/org.gnome.shell.gschema.xml.in:249
msgid "" msgid ""
"If true, only applications that have windows on the current workspace are " "If true, only applications that have windows on the current workspace are "
"shown in the switcher. Otherwise, all applications are included." "shown in the switcher. Otherwise, all applications are included."
@ -374,11 +384,11 @@ msgstr ""
"v izbrani delovni površini v preklopniku. V nasprotnem primeru so prikazana " "v izbrani delovni površini v preklopniku. V nasprotnem primeru so prikazana "
"vsa okna." "vsa okna."
#: data/org.gnome.shell.gschema.xml.in:258 #: data/org.gnome.shell.gschema.xml.in:266
msgid "The application icon mode." msgid "The application icon mode."
msgstr "Ikonski način programa." msgstr "Ikonski način programa."
#: data/org.gnome.shell.gschema.xml.in:259 #: data/org.gnome.shell.gschema.xml.in:267
msgid "" msgid ""
"Configures how the windows are shown in the switcher. Valid possibilities " "Configures how the windows are shown in the switcher. Valid possibilities "
"are “thumbnail-only” (shows a thumbnail of the window), “app-icon-" "are “thumbnail-only” (shows a thumbnail of the window), “app-icon-"
@ -388,7 +398,7 @@ msgstr ""
"sličice»« (pokaže le sličice oken), »le ikona« (pokaže ikono programa) in pa " "sličice»« (pokaže le sličice oken), »le ikona« (pokaže ikono programa) in pa "
"možnost »oboje«." "možnost »oboje«."
#: data/org.gnome.shell.gschema.xml.in:268 #: data/org.gnome.shell.gschema.xml.in:276
msgid "" msgid ""
"If true, only windows from the current workspace are shown in the switcher. " "If true, only windows from the current workspace are shown in the switcher. "
"Otherwise, all windows are included." "Otherwise, all windows are included."
@ -396,57 +406,57 @@ msgstr ""
"Izbrana možnost določa, da bodo v trenutnem pogledu prikazana le okna v " "Izbrana možnost določa, da bodo v trenutnem pogledu prikazana le okna v "
"preklopniku. V nasprotnem primeru so prikazana vsa okna." "preklopniku. V nasprotnem primeru so prikazana vsa okna."
#: data/org.gnome.shell.gschema.xml.in:278 #: data/org.gnome.shell.gschema.xml.in:286
msgid "Locations" msgid "Locations"
msgstr "Mesta" msgstr "Mesta"
#: data/org.gnome.shell.gschema.xml.in:279 #: data/org.gnome.shell.gschema.xml.in:287
msgid "The locations to show in world clocks" msgid "The locations to show in world clocks"
msgstr "Mesta, za katere naj bodo prikazani svetovni časi" msgstr "Mesta, za katere naj bodo prikazani svetovni časi"
#: data/org.gnome.shell.gschema.xml.in:289 #: data/org.gnome.shell.gschema.xml.in:297
msgid "Automatic location" msgid "Automatic location"
msgstr "Samodejno določanje mesta" msgstr "Samodejno določanje mesta"
#: data/org.gnome.shell.gschema.xml.in:290 #: data/org.gnome.shell.gschema.xml.in:298
msgid "Whether to fetch the current location or not" msgid "Whether to fetch the current location or not"
msgstr "Ali naj program pridobi trenutno mesto ali ne" msgstr "Ali naj program pridobi trenutno mesto ali ne"
#: data/org.gnome.shell.gschema.xml.in:297 #: data/org.gnome.shell.gschema.xml.in:305
msgid "Location" msgid "Location"
msgstr "Trenutno mesto" msgstr "Trenutno mesto"
#: data/org.gnome.shell.gschema.xml.in:298 #: data/org.gnome.shell.gschema.xml.in:306
msgid "The location for which to show a forecast" msgid "The location for which to show a forecast"
msgstr "Mesto, za katero naj bo pokazana napoved" msgstr "Mesto, za katero naj bo pokazana napoved"
#: data/org.gnome.shell.gschema.xml.in:310 #: data/org.gnome.shell.gschema.xml.in:318
msgid "Attach modal dialog to the parent window" msgid "Attach modal dialog to the parent window"
msgstr "Pripni modalno pogovorno okno na glavno okno" msgstr "Pripni modalno pogovorno okno na glavno okno"
#: data/org.gnome.shell.gschema.xml.in:311 #: data/org.gnome.shell.gschema.xml.in:319
#: data/org.gnome.shell.gschema.xml.in:320
#: data/org.gnome.shell.gschema.xml.in:328 #: data/org.gnome.shell.gschema.xml.in:328
#: data/org.gnome.shell.gschema.xml.in:336 #: data/org.gnome.shell.gschema.xml.in:336
#: data/org.gnome.shell.gschema.xml.in:344 #: data/org.gnome.shell.gschema.xml.in:344
#: data/org.gnome.shell.gschema.xml.in:352
msgid "" msgid ""
"This key overrides the key in org.gnome.mutter when running GNOME Shell." "This key overrides the key in org.gnome.mutter when running GNOME Shell."
msgstr "" msgstr ""
"Ključ prepiše vrednost v org.gnome.mutter med zaganjanjem lupine GNOME." "Ključ prepiše vrednost v org.gnome.mutter med zaganjanjem lupine GNOME."
#: data/org.gnome.shell.gschema.xml.in:319 #: data/org.gnome.shell.gschema.xml.in:327
msgid "Enable edge tiling when dropping windows on screen edges" msgid "Enable edge tiling when dropping windows on screen edges"
msgstr "Omogoči utripanje črte med spuščanjem okna na robove zaslona" msgstr "Omogoči utripanje črte med spuščanjem okna na robove zaslona"
#: data/org.gnome.shell.gschema.xml.in:327 #: data/org.gnome.shell.gschema.xml.in:335
msgid "Workspaces are managed dynamically" msgid "Workspaces are managed dynamically"
msgstr "Delovne površine se obravnavajo dinamično" msgstr "Delovne površine se obravnavajo dinamično"
#: data/org.gnome.shell.gschema.xml.in:335 #: data/org.gnome.shell.gschema.xml.in:343
msgid "Workspaces only on primary monitor" msgid "Workspaces only on primary monitor"
msgstr "Delovne površine so le na osnovnem zaslonu" msgstr "Delovne površine so le na osnovnem zaslonu"
#: data/org.gnome.shell.gschema.xml.in:343 #: data/org.gnome.shell.gschema.xml.in:351
msgid "Delay focus changes in mouse mode until the pointer stops moving" msgid "Delay focus changes in mouse mode until the pointer stops moving"
msgstr "" msgstr ""
"Zamik žarišča se v načinu miške spreminja, dokler se kazalnik ne neha " "Zamik žarišča se v načinu miške spreminja, dokler se kazalnik ne neha "
@ -483,18 +493,18 @@ msgid "Visit extension homepage"
msgstr "Odpri spletno stran razširitev" msgstr "Odpri spletno stran razširitev"
#: js/gdm/authPrompt.js:141 js/ui/audioDeviceSelection.js:61 #: js/gdm/authPrompt.js:141 js/ui/audioDeviceSelection.js:61
#: js/ui/components/networkAgent.js:110 js/ui/components/polkitAgent.js:138 #: js/ui/components/networkAgent.js:111 js/ui/components/polkitAgent.js:138
#: js/ui/endSessionDialog.js:438 js/ui/extensionDownloader.js:228 #: js/ui/endSessionDialog.js:438 js/ui/extensionDownloader.js:230
#: js/ui/shellMountOperation.js:376 js/ui/shellMountOperation.js:386 #: js/ui/shellMountOperation.js:376 js/ui/shellMountOperation.js:386
#: js/ui/status/network.js:978 subprojects/extensions-app/js/main.js:183 #: js/ui/status/network.js:978 subprojects/extensions-app/js/main.js:183
msgid "Cancel" msgid "Cancel"
msgstr "Prekliči" msgstr "Prekliči"
#. Cisco LEAP #. Cisco LEAP
#: js/gdm/authPrompt.js:285 js/ui/components/networkAgent.js:209 #: js/gdm/authPrompt.js:285 js/ui/components/networkAgent.js:210
#: js/ui/components/networkAgent.js:225 js/ui/components/networkAgent.js:249 #: js/ui/components/networkAgent.js:226 js/ui/components/networkAgent.js:250
#: js/ui/components/networkAgent.js:270 js/ui/components/networkAgent.js:290 #: js/ui/components/networkAgent.js:271 js/ui/components/networkAgent.js:291
#: js/ui/components/networkAgent.js:300 js/ui/components/polkitAgent.js:275 #: js/ui/components/networkAgent.js:301 js/ui/components/polkitAgent.js:275
#: js/ui/shellMountOperation.js:326 #: js/ui/shellMountOperation.js:326
msgid "Password" msgid "Password"
msgstr "Geslo" msgstr "Geslo"
@ -517,8 +527,8 @@ msgstr "(na primer, uporabnika ali %s)"
#. TTLS and PEAP are actually much more complicated, but this complication #. TTLS and PEAP are actually much more complicated, but this complication
#. is not visible here since we only care about phase2 authentication #. is not visible here since we only care about phase2 authentication
#. (and don't even care of which one) #. (and don't even care of which one)
#: js/gdm/loginDialog.js:926 js/ui/components/networkAgent.js:245 #: js/gdm/loginDialog.js:926 js/ui/components/networkAgent.js:246
#: js/ui/components/networkAgent.js:268 js/ui/components/networkAgent.js:286 #: js/ui/components/networkAgent.js:269 js/ui/components/networkAgent.js:287
msgid "Username" msgid "Username"
msgstr "Uporabniško ime" msgstr "Uporabniško ime"
@ -624,26 +634,26 @@ msgctxt "search-result"
msgid "Lock Screen Rotation" msgid "Lock Screen Rotation"
msgstr "Vrtenje zaklepanja zaslona" msgstr "Vrtenje zaklepanja zaslona"
#: js/misc/util.js:121 #: js/misc/util.js:120
msgid "Command not found" msgid "Command not found"
msgstr "Ukaz ni mogoče najti" msgstr "Ukaz ni mogoče najti"
#. Replace "Error invoking GLib.shell_parse_argv: " with #. Replace "Error invoking GLib.shell_parse_argv: " with
#. something nicer #. something nicer
#: js/misc/util.js:157 #: js/misc/util.js:156
msgid "Could not parse command:" msgid "Could not parse command:"
msgstr "Ukaza ni mogoče razčleniti:" msgstr "Ukaza ni mogoče razčleniti:"
#: js/misc/util.js:165 #: js/misc/util.js:164
#, javascript-format #, javascript-format
msgid "Execution of “%s” failed:" msgid "Execution of “%s” failed:"
msgstr "Izvedba »%s« je spodletela:" msgstr "Izvedba »%s« je spodletela:"
#: js/misc/util.js:182 #: js/misc/util.js:181
msgid "Just now" msgid "Just now"
msgstr "Ravnokar" msgstr "Ravnokar"
#: js/misc/util.js:184 #: js/misc/util.js:183
#, javascript-format #, javascript-format
msgid "%d minute ago" msgid "%d minute ago"
msgid_plural "%d minutes ago" msgid_plural "%d minutes ago"
@ -652,7 +662,7 @@ msgstr[1] "Pred %d minuto"
msgstr[2] "Pred %d minutama" msgstr[2] "Pred %d minutama"
msgstr[3] "Pred %d minutami" msgstr[3] "Pred %d minutami"
#: js/misc/util.js:188 #: js/misc/util.js:187
#, javascript-format #, javascript-format
msgid "%d hour ago" msgid "%d hour ago"
msgid_plural "%d hours ago" msgid_plural "%d hours ago"
@ -661,11 +671,11 @@ msgstr[1] "Pred %d uro"
msgstr[2] "Pred %d urama" msgstr[2] "Pred %d urama"
msgstr[3] "Pred %d urami" msgstr[3] "Pred %d urami"
#: js/misc/util.js:192 js/ui/dateMenu.js:162 #: js/misc/util.js:191 js/ui/dateMenu.js:162
msgid "Yesterday" msgid "Yesterday"
msgstr "Včeraj" msgstr "Včeraj"
#: js/misc/util.js:194 #: js/misc/util.js:193
#, javascript-format #, javascript-format
msgid "%d day ago" msgid "%d day ago"
msgid_plural "%d days ago" msgid_plural "%d days ago"
@ -674,7 +684,7 @@ msgstr[1] "Pred %d dnevom"
msgstr[2] "Pred %d dnevoma" msgstr[2] "Pred %d dnevoma"
msgstr[3] "Pred %d dnevi" msgstr[3] "Pred %d dnevi"
#: js/misc/util.js:198 #: js/misc/util.js:197
#, javascript-format #, javascript-format
msgid "%d week ago" msgid "%d week ago"
msgid_plural "%d weeks ago" msgid_plural "%d weeks ago"
@ -683,7 +693,7 @@ msgstr[1] "Pred %d tednom"
msgstr[2] "Pred %d tednoma" msgstr[2] "Pred %d tednoma"
msgstr[3] "Pred %d tedni" msgstr[3] "Pred %d tedni"
#: js/misc/util.js:202 #: js/misc/util.js:201
#, javascript-format #, javascript-format
msgid "%d month ago" msgid "%d month ago"
msgid_plural "%d months ago" msgid_plural "%d months ago"
@ -692,7 +702,7 @@ msgstr[1] "Pred %d mesecem"
msgstr[2] "Pred %d mesecema" msgstr[2] "Pred %d mesecema"
msgstr[3] "Pred %d meseci" msgstr[3] "Pred %d meseci"
#: js/misc/util.js:205 #: js/misc/util.js:204
#, javascript-format #, javascript-format
msgid "%d year ago" msgid "%d year ago"
msgid_plural "%d years ago" msgid_plural "%d years ago"
@ -702,20 +712,20 @@ msgstr[2] "Pred %d letoma"
msgstr[3] "Pred %d leti" msgstr[3] "Pred %d leti"
#. Translators: Time in 24h format #. Translators: Time in 24h format
#: js/misc/util.js:238 #: js/misc/util.js:237
msgid "%H%M" msgid "%H%M"
msgstr "%H%M" msgstr "%H%M"
#. Translators: this is the word "Yesterday" followed by a #. Translators: this is the word "Yesterday" followed by a
#. time string in 24h format. i.e. "Yesterday, 14:30" #. time string in 24h format. i.e. "Yesterday, 14:30"
#: js/misc/util.js:244 #: js/misc/util.js:243
#, no-c-format #, no-c-format
msgid "Yesterday, %H%M" msgid "Yesterday, %H%M"
msgstr "Včeraj, %H:%M" msgstr "Včeraj, %H:%M"
#. Translators: this is the week day name followed by a time #. Translators: this is the week day name followed by a time
#. string in 24h format. i.e. "Monday, 14:30" #. string in 24h format. i.e. "Monday, 14:30"
#: js/misc/util.js:250 #: js/misc/util.js:249
#, no-c-format #, no-c-format
msgid "%A, %H%M" msgid "%A, %H%M"
msgstr "%A, %H%M" msgstr "%A, %H%M"
@ -723,7 +733,7 @@ msgstr "%A, %H%M"
#. Translators: this is the month name and day number #. Translators: this is the month name and day number
#. followed by a time string in 24h format. #. followed by a time string in 24h format.
#. i.e. "May 25, 14:30" #. i.e. "May 25, 14:30"
#: js/misc/util.js:256 #: js/misc/util.js:255
#, no-c-format #, no-c-format
msgid "%B %-d, %H%M" msgid "%B %-d, %H%M"
msgstr "%d %B, %H%M" msgstr "%d %B, %H%M"
@ -731,7 +741,7 @@ msgstr "%d %B, %H%M"
#. Translators: this is the month name, day number, year #. Translators: this is the month name, day number, year
#. number followed by a time string in 24h format. #. number followed by a time string in 24h format.
#. i.e. "May 25 2012, 14:30" #. i.e. "May 25 2012, 14:30"
#: js/misc/util.js:262 #: js/misc/util.js:261
#, no-c-format #, no-c-format
msgid "%B %-d %Y, %H%M" msgid "%B %-d %Y, %H%M"
msgstr "%d. %B %Y, %H%M" msgstr "%d. %B %Y, %H%M"
@ -739,20 +749,20 @@ msgstr "%d. %B %Y, %H%M"
#. Show only the time if date is on today #. Show only the time if date is on today
#. eslint-disable-line no-lonely-if #. eslint-disable-line no-lonely-if
#. Translators: Time in 12h format #. Translators: Time in 12h format
#: js/misc/util.js:267 #: js/misc/util.js:266
msgid "%l%M %p" msgid "%l%M %p"
msgstr "%l%M %p" msgstr "%l%M %p"
#. Translators: this is the word "Yesterday" followed by a #. Translators: this is the word "Yesterday" followed by a
#. time string in 12h format. i.e. "Yesterday, 2:30 pm" #. time string in 12h format. i.e. "Yesterday, 2:30 pm"
#: js/misc/util.js:273 #: js/misc/util.js:272
#, no-c-format #, no-c-format
msgid "Yesterday, %l%M %p" msgid "Yesterday, %l%M %p"
msgstr "Včeraj, %l%M %p" msgstr "Včeraj, %l%M %p"
#. Translators: this is the week day name followed by a time #. Translators: this is the week day name followed by a time
#. string in 12h format. i.e. "Monday, 2:30 pm" #. string in 12h format. i.e. "Monday, 2:30 pm"
#: js/misc/util.js:279 #: js/misc/util.js:278
#, no-c-format #, no-c-format
msgid "%A, %l%M %p" msgid "%A, %l%M %p"
msgstr "%A, %l%M %p" msgstr "%A, %l%M %p"
@ -760,7 +770,7 @@ msgstr "%A, %l%M %p"
#. Translators: this is the month name and day number #. Translators: this is the month name and day number
#. followed by a time string in 12h format. #. followed by a time string in 12h format.
#. i.e. "May 25, 2:30 pm" #. i.e. "May 25, 2:30 pm"
#: js/misc/util.js:285 #: js/misc/util.js:284
#, no-c-format #, no-c-format
msgid "%B %-d, %l%M %p" msgid "%B %-d, %l%M %p"
msgstr "%d. %B, %l%M %p" msgstr "%d. %B, %l%M %p"
@ -768,7 +778,7 @@ msgstr "%d. %B, %l%M %p"
#. Translators: this is the month name, day number, year #. Translators: this is the month name, day number, year
#. number followed by a time string in 12h format. #. number followed by a time string in 12h format.
#. i.e. "May 25 2012, 2:30 pm" #. i.e. "May 25 2012, 2:30 pm"
#: js/misc/util.js:291 #: js/misc/util.js:290
#, no-c-format #, no-c-format
msgid "%B %-d %Y, %l%M %p" msgid "%B %-d %Y, %l%M %p"
msgstr "%d. %B %Y, %l%M %p" msgstr "%d. %B %Y, %l%M %p"
@ -1023,38 +1033,38 @@ msgstr "Nameščena različica udisks ne podpira nastavitev PIM"
msgid "Open with %s" msgid "Open with %s"
msgstr "Odpri s programom %s" msgstr "Odpri s programom %s"
#: js/ui/components/networkAgent.js:92 #: js/ui/components/networkAgent.js:93
msgid "" msgid ""
"Alternatively you can connect by pushing the “WPS” button on your router." "Alternatively you can connect by pushing the “WPS” button on your router."
msgstr "Vzpostavitev povezave je mogoča tudi z gumbom »WPS« na usmerjevalniku." msgstr "Vzpostavitev povezave je mogoča tudi z gumbom »WPS« na usmerjevalniku."
#: js/ui/components/networkAgent.js:104 js/ui/status/network.js:258 #: js/ui/components/networkAgent.js:105 js/ui/status/network.js:258
#: js/ui/status/network.js:349 js/ui/status/network.js:981 #: js/ui/status/network.js:349 js/ui/status/network.js:981
msgid "Connect" msgid "Connect"
msgstr "Poveži" msgstr "Poveži"
#: js/ui/components/networkAgent.js:215 #: js/ui/components/networkAgent.js:216
msgid "Key" msgid "Key"
msgstr "Ključ" msgstr "Ključ"
#: js/ui/components/networkAgent.js:253 js/ui/components/networkAgent.js:276 #: js/ui/components/networkAgent.js:254 js/ui/components/networkAgent.js:277
msgid "Private key password" msgid "Private key password"
msgstr "Geslo zasebnega ključa" msgstr "Geslo zasebnega ključa"
#: js/ui/components/networkAgent.js:274 #: js/ui/components/networkAgent.js:275
msgid "Identity" msgid "Identity"
msgstr "Istovetnost" msgstr "Istovetnost"
#: js/ui/components/networkAgent.js:288 #: js/ui/components/networkAgent.js:289
msgid "Service" msgid "Service"
msgstr "Storitev" msgstr "Storitev"
#: js/ui/components/networkAgent.js:317 js/ui/components/networkAgent.js:345 #: js/ui/components/networkAgent.js:318 js/ui/components/networkAgent.js:346
#: js/ui/components/networkAgent.js:679 js/ui/components/networkAgent.js:700 #: js/ui/components/networkAgent.js:679 js/ui/components/networkAgent.js:700
msgid "Authentication required" msgid "Authentication required"
msgstr "Zahtevana je overitev" msgstr "Zahtevana je overitev"
#: js/ui/components/networkAgent.js:318 js/ui/components/networkAgent.js:680 #: js/ui/components/networkAgent.js:319 js/ui/components/networkAgent.js:680
#, javascript-format #, javascript-format
msgid "" msgid ""
"Passwords or encryption keys are required to access the wireless network " "Passwords or encryption keys are required to access the wireless network "
@ -1063,31 +1073,31 @@ msgstr ""
"Za povezavo v brezžično omrežje »%s« je zahtevano geslo oziroma šifrirni " "Za povezavo v brezžično omrežje »%s« je zahtevano geslo oziroma šifrirni "
"ključ." "ključ."
#: js/ui/components/networkAgent.js:322 js/ui/components/networkAgent.js:684 #: js/ui/components/networkAgent.js:323 js/ui/components/networkAgent.js:684
msgid "Wired 802.1X authentication" msgid "Wired 802.1X authentication"
msgstr "Žična overitev 802.1X" msgstr "Žična overitev 802.1X"
#: js/ui/components/networkAgent.js:324 #: js/ui/components/networkAgent.js:325
msgid "Network name" msgid "Network name"
msgstr "Naziv omrežja" msgstr "Naziv omrežja"
#: js/ui/components/networkAgent.js:329 js/ui/components/networkAgent.js:688 #: js/ui/components/networkAgent.js:330 js/ui/components/networkAgent.js:688
msgid "DSL authentication" msgid "DSL authentication"
msgstr "Overitev DSL" msgstr "Overitev DSL"
#: js/ui/components/networkAgent.js:336 js/ui/components/networkAgent.js:693 #: js/ui/components/networkAgent.js:337 js/ui/components/networkAgent.js:693
msgid "PIN code required" msgid "PIN code required"
msgstr "Zahtevana koda PIN" msgstr "Zahtevana koda PIN"
#: js/ui/components/networkAgent.js:337 js/ui/components/networkAgent.js:694 #: js/ui/components/networkAgent.js:338 js/ui/components/networkAgent.js:694
msgid "PIN code is needed for the mobile broadband device" msgid "PIN code is needed for the mobile broadband device"
msgstr "Za napravo mobilnega širokopasovnega dostopa je zahtevana koda PIN." msgstr "Za napravo mobilnega širokopasovnega dostopa je zahtevana koda PIN."
#: js/ui/components/networkAgent.js:338 #: js/ui/components/networkAgent.js:339
msgid "PIN" msgid "PIN"
msgstr "Koda PIN" msgstr "Koda PIN"
#: js/ui/components/networkAgent.js:346 js/ui/components/networkAgent.js:685 #: js/ui/components/networkAgent.js:347 js/ui/components/networkAgent.js:685
#: js/ui/components/networkAgent.js:689 js/ui/components/networkAgent.js:701 #: js/ui/components/networkAgent.js:689 js/ui/components/networkAgent.js:701
#: js/ui/components/networkAgent.js:705 #: js/ui/components/networkAgent.js:705
#, javascript-format #, javascript-format
@ -1391,24 +1401,24 @@ msgstr "%s (oddaljeno)"
msgid "%s (console)" msgid "%s (console)"
msgstr "%s (konzola)" msgstr "%s (konzola)"
#: js/ui/extensionDownloader.js:232 #: js/ui/extensionDownloader.js:234
msgid "Install" msgid "Install"
msgstr "Namesti" msgstr "Namesti"
#: js/ui/extensionDownloader.js:238 #: js/ui/extensionDownloader.js:240
msgid "Install Extension" msgid "Install Extension"
msgstr "Namesti razširitev" msgstr "Namesti razširitev"
#: js/ui/extensionDownloader.js:239 #: js/ui/extensionDownloader.js:241
#, javascript-format #, javascript-format
msgid "Download and install “%s” from extensions.gnome.org?" msgid "Download and install “%s” from extensions.gnome.org?"
msgstr "Ali želite prejeti in namestiti »%s« prek extensions.gnome.org?" msgstr "Ali želite prejeti in namestiti »%s« prek extensions.gnome.org?"
#: js/ui/extensionSystem.js:252 #: js/ui/extensionSystem.js:253
msgid "Extension Updates Available" msgid "Extension Updates Available"
msgstr "Na voljo so posodobitve razširitev" msgstr "Na voljo so posodobitve razširitev"
#: js/ui/extensionSystem.js:253 #: js/ui/extensionSystem.js:254
msgid "Extension updates are ready to be installed." msgid "Extension updates are ready to be installed."
msgstr "Posodobitve razširitev so pripravljene na namestitev." msgstr "Posodobitve razširitev so pripravljene na namestitev."
@ -1503,7 +1513,7 @@ msgstr "Onemogoči"
msgid "Leave Off" msgid "Leave Off"
msgstr "Pusti onemogočeno" msgstr "Pusti onemogočeno"
#: js/ui/keyboard.js:226 #: js/ui/keyboard.js:227
msgid "Region & Language Settings" msgid "Region & Language Settings"
msgstr "Nastavitve območja in jezika" msgstr "Nastavitve območja in jezika"
@ -1556,11 +1566,11 @@ msgstr "Poglej vir"
msgid "Web Page" msgid "Web Page"
msgstr "Spletna stran" msgstr "Spletna stran"
#: js/ui/main.js:290 #: js/ui/main.js:294
msgid "Logged in as a privileged user" msgid "Logged in as a privileged user"
msgstr "Zaznana je prijava s skrbniškimi dovoljenji" msgstr "Zaznana je prijava s skrbniškimi dovoljenji"
#: js/ui/main.js:291 #: js/ui/main.js:295
msgid "" msgid ""
"Running a session as a privileged user should be avoided for security " "Running a session as a privileged user should be avoided for security "
"reasons. If possible, you should log in as a normal user." "reasons. If possible, you should log in as a normal user."
@ -1568,11 +1578,11 @@ msgstr ""
"Zagona seje s skrbniškim računom se je treba iz varnostnih razlogov " "Zagona seje s skrbniškim računom se je treba iz varnostnih razlogov "
"izogibati. Priporočljivo je uporabljati običajen uporabniški račun." "izogibati. Priporočljivo je uporabljati običajen uporabniški račun."
#: js/ui/main.js:340 #: js/ui/main.js:344
msgid "Screen Lock disabled" msgid "Screen Lock disabled"
msgstr "Zaklep zaslona je onemogočen" msgstr "Zaklep zaslona je onemogočen"
#: js/ui/main.js:341 #: js/ui/main.js:345
msgid "Screen Locking requires the GNOME display manager." msgid "Screen Locking requires the GNOME display manager."
msgstr "" msgstr ""
"Zaklepanje zaslona zahteva namestitev upravljalnika zaslona za okolje GNOME." "Zaklepanje zaslona zahteva namestitev upravljalnika zaslona za okolje GNOME."
@ -1611,47 +1621,47 @@ msgstr "Razveljavi"
msgid "Overview" msgid "Overview"
msgstr "Pregled" msgstr "Pregled"
#: js/ui/padOsd.js:95 #: js/ui/padOsd.js:96
msgid "New shortcut…" msgid "New shortcut…"
msgstr "Nova bližnjica …" msgstr "Nova bližnjica …"
#: js/ui/padOsd.js:142 #: js/ui/padOsd.js:143
msgid "Application defined" msgid "Application defined"
msgstr "Program je določen" msgstr "Program je določen"
#: js/ui/padOsd.js:143 #: js/ui/padOsd.js:144
msgid "Show on-screen help" msgid "Show on-screen help"
msgstr "Pokaži zaslonsko pomoč" msgstr "Pokaži zaslonsko pomoč"
#: js/ui/padOsd.js:144 #: js/ui/padOsd.js:145
msgid "Switch monitor" msgid "Switch monitor"
msgstr "Nadzornik preklopa" msgstr "Nadzornik preklopa"
#: js/ui/padOsd.js:145 #: js/ui/padOsd.js:146
msgid "Assign keystroke" msgid "Assign keystroke"
msgstr "Dodeli tipkovno bližnjico" msgstr "Dodeli tipkovno bližnjico"
#: js/ui/padOsd.js:211 #: js/ui/padOsd.js:212
msgid "Done" msgid "Done"
msgstr "Končano" msgstr "Končano"
#: js/ui/padOsd.js:716 #: js/ui/padOsd.js:718
msgid "Edit…" msgid "Edit…"
msgstr "Uredi …" msgstr "Uredi …"
#: js/ui/padOsd.js:758 js/ui/padOsd.js:875 #: js/ui/padOsd.js:760 js/ui/padOsd.js:877
msgid "None" msgid "None"
msgstr "Brez" msgstr "Brez"
#: js/ui/padOsd.js:829 #: js/ui/padOsd.js:831
msgid "Press a button to configure" msgid "Press a button to configure"
msgstr "Pritisnite gumb za nastavitev" msgstr "Pritisnite gumb za nastavitev"
#: js/ui/padOsd.js:830 #: js/ui/padOsd.js:832
msgid "Press Esc to exit" msgid "Press Esc to exit"
msgstr "Pritisnite tipko Esc za končanje" msgstr "Pritisnite tipko Esc za končanje"
#: js/ui/padOsd.js:833 #: js/ui/padOsd.js:835
msgid "Press any key to exit" msgid "Press any key to exit"
msgstr "Pritisnite katerokoli tipko za končanje" msgstr "Pritisnite katerokoli tipko za končanje"
@ -1661,12 +1671,12 @@ msgstr "Pritisnite katerokoli tipko za končanje"
msgid "Activities" msgid "Activities"
msgstr "Dejavnosti" msgstr "Dejavnosti"
#: js/ui/panel.js:556 #: js/ui/panel.js:542
msgctxt "System menu in the top bar" msgctxt "System menu in the top bar"
msgid "System" msgid "System"
msgstr "Sistem" msgstr "Sistem"
#: js/ui/panel.js:674 #: js/ui/panel.js:658
msgid "Top Bar" msgid "Top Bar"
msgstr "Vrhnja vrstica" msgstr "Vrhnja vrstica"
@ -1705,7 +1715,7 @@ msgstr "Zaklep ni mogoč"
msgid "Lock was blocked by an application" msgid "Lock was blocked by an application"
msgstr "Zaklep je preprečil program" msgstr "Zaklep je preprečil program"
#: js/ui/screenshot.js:155 #: js/ui/screenshot.js:141
msgid "Screenshot taken" msgid "Screenshot taken"
msgstr "Zaslonska slika je zajeta" msgstr "Zaslonska slika je zajeta"
@ -2771,7 +2781,6 @@ msgstr "Zahtevani so določilo UUID, ime in opis"
#: subprojects/extensions-tool/src/command-enable.c:46 #: subprojects/extensions-tool/src/command-enable.c:46
#: subprojects/extensions-tool/src/command-info.c:50 #: subprojects/extensions-tool/src/command-info.c:50
#: subprojects/extensions-tool/src/command-list.c:64 #: subprojects/extensions-tool/src/command-list.c:64
#: subprojects/extensions-tool/src/main.c:146
msgid "Failed to connect to GNOME Shell\n" msgid "Failed to connect to GNOME Shell\n"
msgstr "Povezava z Lupino GNOME je spodletela\n" msgstr "Povezava z Lupino GNOME je spodletela\n"
@ -2788,7 +2797,7 @@ msgstr "Onemogoči razširitev"
#: subprojects/extensions-tool/src/command-disable.c:119 #: subprojects/extensions-tool/src/command-disable.c:119
#: subprojects/extensions-tool/src/command-enable.c:119 #: subprojects/extensions-tool/src/command-enable.c:119
#: subprojects/extensions-tool/src/command-info.c:103 #: subprojects/extensions-tool/src/command-info.c:103
#: subprojects/extensions-tool/src/command-prefs.c:105 #: subprojects/extensions-tool/src/command-prefs.c:97
#: subprojects/extensions-tool/src/command-reset.c:76 #: subprojects/extensions-tool/src/command-reset.c:76
#: subprojects/extensions-tool/src/command-uninstall.c:104 #: subprojects/extensions-tool/src/command-uninstall.c:104
msgid "No UUID given" msgid "No UUID given"
@ -2797,7 +2806,7 @@ msgstr "Ni podanega UUID"
#: subprojects/extensions-tool/src/command-disable.c:124 #: subprojects/extensions-tool/src/command-disable.c:124
#: subprojects/extensions-tool/src/command-enable.c:124 #: subprojects/extensions-tool/src/command-enable.c:124
#: subprojects/extensions-tool/src/command-info.c:108 #: subprojects/extensions-tool/src/command-info.c:108
#: subprojects/extensions-tool/src/command-prefs.c:110 #: subprojects/extensions-tool/src/command-prefs.c:102
#: subprojects/extensions-tool/src/command-reset.c:81 #: subprojects/extensions-tool/src/command-reset.c:81
#: subprojects/extensions-tool/src/command-uninstall.c:109 #: subprojects/extensions-tool/src/command-uninstall.c:109
msgid "More than one UUID given" msgid "More than one UUID given"
@ -2927,12 +2936,7 @@ msgstr "Določena je več kot ena izvorna mapa"
msgid "Extension “%s” doesn't have preferences\n" msgid "Extension “%s” doesn't have preferences\n"
msgstr "Razširitev »%s« nima posebnih nastavitev\n" msgstr "Razširitev »%s« nima posebnih nastavitev\n"
#: subprojects/extensions-tool/src/command-prefs.c:62 #: subprojects/extensions-tool/src/command-prefs.c:79
#, c-format
msgid "Failed to open prefs for extension “%s”: %s\n"
msgstr "Odpiranje lastnosti razširitve »%s« je spodletelo: %s\n"
#: subprojects/extensions-tool/src/command-prefs.c:87
msgid "Opens extension preferences" msgid "Opens extension preferences"
msgstr "Odpre možnosti razširitve" msgstr "Odpre možnosti razširitve"
@ -2957,6 +2961,10 @@ msgstr "Odstrani razširitev"
msgid "Do not print error messages" msgid "Do not print error messages"
msgstr "Ne izpisuj sporočil o napakah" msgstr "Ne izpisuj sporočil o napakah"
#: subprojects/extensions-tool/src/main.c:146
msgid "Failed to connect to GNOME Shell"
msgstr "Povezava z Lupino GNOME je spodletela"
#: subprojects/extensions-tool/src/main.c:244 #: subprojects/extensions-tool/src/main.c:244
msgid "Path" msgid "Path"
msgstr "Pot" msgstr "Pot"
@ -3091,17 +3099,6 @@ msgstr[3] "%u dovodi naprave"
msgid "System Sounds" msgid "System Sounds"
msgstr "Sistemski zvoki" msgstr "Sistemski zvoki"
#~ msgid "Enable introspection API"
#~ msgstr "Omogoči API nadzora"
#~ msgid ""
#~ "Enables a D-Bus API that allows to introspect the application state of "
#~ "the shell."
#~ msgstr "Omogoči API sistema D-Bus, ki mogoča nadzor stanja programa lupine."
#~ msgid "Failed to connect to GNOME Shell"
#~ msgstr "Povezava z Lupino GNOME je spodletela"
#~ msgid "Minimize" #~ msgid "Minimize"
#~ msgstr "Skrči" #~ msgstr "Skrči"

View File

@ -10,8 +10,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: gnome-shell master\n" "Project-Id-Version: gnome-shell master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell/issues\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell/issues\n"
"POT-Creation-Date: 2021-11-02 15:41+0000\n" "POT-Creation-Date: 2021-11-26 16:19+0000\n"
"PO-Revision-Date: 2021-11-02 18:31+0200\n" "PO-Revision-Date: 2021-11-26 23:35+0200\n"
"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n" "Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
"Language-Team: Ukrainian <kde-i18n-uk@kde.org>\n" "Language-Team: Ukrainian <kde-i18n-uk@kde.org>\n"
"Language: uk\n" "Language: uk\n"
@ -798,7 +798,7 @@ msgstr "Заборонити доступ"
msgid "Grant Access" msgid "Grant Access"
msgstr "Надати доступ" msgstr "Надати доступ"
#: js/ui/appDisplay.js:1846 #: js/ui/appDisplay.js:1791
msgid "Unnamed Folder" msgid "Unnamed Folder"
msgstr "Неназвана тека" msgstr "Неназвана тека"
@ -1402,11 +1402,11 @@ msgstr "Встановити розширення"
msgid "Download and install “%s” from extensions.gnome.org?" msgid "Download and install “%s” from extensions.gnome.org?"
msgstr "Звантажити і встановити «%s» з extensions.gnome.org?" msgstr "Звантажити і встановити «%s» з extensions.gnome.org?"
#: js/ui/extensionSystem.js:252 #: js/ui/extensionSystem.js:266
msgid "Extension Updates Available" msgid "Extension Updates Available"
msgstr "Випущено оновлення розширень" msgstr "Випущено оновлення розширень"
#: js/ui/extensionSystem.js:253 #: js/ui/extensionSystem.js:267
msgid "Extension updates are ready to be installed." msgid "Extension updates are ready to be installed."
msgstr "Приготовано до встановлення оновлення розширень." msgstr "Приготовано до встановлення оновлення розширень."
@ -1553,11 +1553,25 @@ msgstr "Переглянути джерело"
msgid "Web Page" msgid "Web Page"
msgstr "Веб-сторінка" msgstr "Веб-сторінка"
#: js/ui/main.js:290 #: js/ui/main.js:259
msgid "System was put in unsafe mode"
msgstr ""
"Систему переведено у небезпечний режим"
#: js/ui/main.js:260
msgid "Applications now have unrestricted access"
msgstr ""
"Тепер програми мають необмежений доступ до даних"
#: js/ui/main.js:261 js/ui/overview.js:58
msgid "Undo"
msgstr "Повернути"
#: js/ui/main.js:307
msgid "Logged in as a privileged user" msgid "Logged in as a privileged user"
msgstr "Увійшов як наділений користувач" msgstr "Увійшов як наділений користувач"
#: js/ui/main.js:291 #: js/ui/main.js:308
msgid "" msgid ""
"Running a session as a privileged user should be avoided for security " "Running a session as a privileged user should be avoided for security "
"reasons. If possible, you should log in as a normal user." "reasons. If possible, you should log in as a normal user."
@ -1565,11 +1579,11 @@ msgstr ""
"З міркувань безпеки слід уникати сеансів з наділеними правами. Користуйтесь " "З міркувань безпеки слід уникати сеансів з наділеними правами. Користуйтесь "
"звичайним сеансом." "звичайним сеансом."
#: js/ui/main.js:340 #: js/ui/main.js:357
msgid "Screen Lock disabled" msgid "Screen Lock disabled"
msgstr "Блокування екрана вимкнено" msgstr "Блокування екрана вимкнено"
#: js/ui/main.js:341 #: js/ui/main.js:358
msgid "Screen Locking requires the GNOME display manager." msgid "Screen Locking requires the GNOME display manager."
msgstr "Блокування екрана потребує керування входом GNOME." msgstr "Блокування екрана потребує керування входом GNOME."
@ -1597,10 +1611,6 @@ msgstr "Введіть текст для пошуку"
msgid "Applications" msgid "Applications"
msgstr "Програми" msgstr "Програми"
#: js/ui/overview.js:58
msgid "Undo"
msgstr "Повернути"
#. Translators: This is the main view to select #. Translators: This is the main view to select
#. activities. See also note for "Activities" string. #. activities. See also note for "Activities" string.
#: js/ui/overview.js:71 #: js/ui/overview.js:71
@ -2929,8 +2939,7 @@ msgstr "У розширення «%s» немає налаштувань\n"
#: subprojects/extensions-tool/src/command-prefs.c:62 #: subprojects/extensions-tool/src/command-prefs.c:62
#, c-format #, c-format
msgid "Failed to open prefs for extension “%s”: %s\n" msgid "Failed to open prefs for extension “%s”: %s\n"
msgstr "" msgstr "Не вдалося відкрити налаштування для розширення «%s»: %s\n"
"Не вдалося відкрити налаштування для розширення «%s»: %s\n"
#: subprojects/extensions-tool/src/command-prefs.c:87 #: subprojects/extensions-tool/src/command-prefs.c:87
msgid "Opens extension preferences" msgid "Opens extension preferences"

View File

@ -52,7 +52,7 @@ static const gchar introspection_xml[] =
" <arg type='b' name='force_reload' direction='in'/>" " <arg type='b' name='force_reload' direction='in'/>"
" </method>" " </method>"
" <signal name='EventsAddedOrUpdated'>" " <signal name='EventsAddedOrUpdated'>"
" <arg type='a(ssbxxa{sv})' name='events' direction='out'/>" " <arg type='a(ssxxa{sv})' name='events' direction='out'/>"
" </signal>" " </signal>"
" <signal name='EventsRemoved'>" " <signal name='EventsRemoved'>"
" <arg type='as' name='ids' direction='out'/>" " <arg type='as' name='ids' direction='out'/>"
@ -110,25 +110,25 @@ typedef struct
gchar *summary; gchar *summary;
time_t start_time; time_t start_time;
time_t end_time; time_t end_time;
guint is_all_day : 1;
} CalendarAppointment; } CalendarAppointment;
static time_t static gboolean
get_time_from_property (ECalClient *cal, get_time_from_property (ECalClient *cal,
ICalComponent *icomp, ICalComponent *icomp,
ICalPropertyKind prop_kind, ICalPropertyKind prop_kind,
ICalTime * (* get_prop_func) (ICalProperty *prop), ICalTime * (* get_prop_func) (ICalProperty *prop),
ICalTimezone *default_zone) ICalTimezone *default_zone,
ICalTime **out_itt,
ICalTimezone **out_timezone)
{ {
ICalProperty *prop; ICalProperty *prop;
ICalTime *itt; ICalTime *itt;
ICalParameter *param; ICalParameter *param;
ICalTimezone *timezone = NULL; ICalTimezone *timezone = NULL;
time_t retval;
prop = i_cal_component_get_first_property (icomp, prop_kind); prop = i_cal_component_get_first_property (icomp, prop_kind);
if (!prop) if (!prop)
return 0; return FALSE;
itt = get_prop_func (prop); itt = get_prop_func (prop);
@ -142,13 +142,13 @@ get_time_from_property (ECalClient *cal,
i_cal_time_set_timezone (itt, timezone); i_cal_time_set_timezone (itt, timezone);
retval = i_cal_time_as_timet_with_zone (itt, timezone);
g_clear_object (&param); g_clear_object (&param);
g_clear_object (&prop); g_clear_object (&prop);
g_clear_object (&itt);
return retval; *out_itt = itt;
*out_timezone = timezone;
return TRUE;
} }
static inline time_t static inline time_t
@ -156,11 +156,26 @@ get_ical_start_time (ECalClient *cal,
ICalComponent *icomp, ICalComponent *icomp,
ICalTimezone *default_zone) ICalTimezone *default_zone)
{ {
return get_time_from_property (cal, ICalTime *itt;
icomp, ICalTimezone *timezone;
I_CAL_DTSTART_PROPERTY, time_t retval;
i_cal_property_get_dtstart,
default_zone); if (!get_time_from_property (cal,
icomp,
I_CAL_DTSTART_PROPERTY,
i_cal_property_get_dtstart,
default_zone,
&itt,
&timezone))
{
return 0;
}
retval = i_cal_time_as_timet_with_zone (itt, timezone);
g_clear_object (&itt);
return retval;
} }
static inline time_t static inline time_t
@ -168,54 +183,36 @@ get_ical_end_time (ECalClient *cal,
ICalComponent *icomp, ICalComponent *icomp,
ICalTimezone *default_zone) ICalTimezone *default_zone)
{ {
return get_time_from_property (cal, ICalTime *itt;
icomp, ICalTimezone *timezone;
I_CAL_DTEND_PROPERTY, time_t retval;
i_cal_property_get_dtend,
default_zone);
}
static gboolean if (!get_time_from_property (cal,
get_ical_is_all_day (ECalClient *cal, icomp,
ICalComponent *icomp, I_CAL_DTEND_PROPERTY,
time_t start_time, i_cal_property_get_dtend,
ICalTimezone *default_zone) default_zone,
{ &itt,
ICalProperty *prop; &timezone))
ICalDuration *duration;
ICalTime *dtstart;
struct tm *start_tm;
time_t end_time;
gboolean retval;
dtstart = i_cal_component_get_dtstart (icomp);
if (dtstart && i_cal_time_is_date (dtstart))
{ {
g_clear_object (&dtstart); if (!get_time_from_property (cal,
return TRUE; icomp,
I_CAL_DTSTART_PROPERTY,
i_cal_property_get_dtstart,
default_zone,
&itt,
&timezone))
{
return 0;
}
if (i_cal_time_is_date (itt))
i_cal_time_adjust (itt, 1, 0, 0, 0);
} }
g_clear_object (&dtstart); retval = i_cal_time_as_timet_with_zone (itt, timezone);
start_tm = gmtime (&start_time); g_clear_object (&itt);
if (start_tm->tm_sec != 0 ||
start_tm->tm_min != 0 ||
start_tm->tm_hour != 0)
return FALSE;
if ((end_time = get_ical_end_time (cal, icomp, default_zone)))
return (end_time - start_time) % 86400 == 0;
prop = i_cal_component_get_first_property (icomp, I_CAL_DURATION_PROPERTY);
if (!prop)
return FALSE;
duration = i_cal_property_get_duration (prop);
retval = duration && (i_cal_duration_as_int (duration) % 86400) == 0;
g_clear_object (&duration);
g_clear_object (&prop);
return retval; return retval;
} }
@ -241,10 +238,6 @@ calendar_appointment_new (ECalClient *cal,
appt->summary = g_strdup (i_cal_component_get_summary (ical)); appt->summary = g_strdup (i_cal_component_get_summary (ical));
appt->start_time = get_ical_start_time (cal, ical, default_zone); appt->start_time = get_ical_start_time (cal, ical, default_zone);
appt->end_time = get_ical_end_time (cal, ical, default_zone); appt->end_time = get_ical_end_time (cal, ical, default_zone);
appt->is_all_day = get_ical_is_all_day (cal,
ical,
appt->start_time,
default_zone);
e_cal_component_id_free (id); e_cal_component_id_free (id);
@ -361,7 +354,7 @@ app_notify_events_added (App *app)
/* The a{sv} is used as an escape hatch in case we want to provide more /* The a{sv} is used as an escape hatch in case we want to provide more
* information in the future without breaking ABI * information in the future without breaking ABI
*/ */
g_variant_builder_init (&builder, G_VARIANT_TYPE ("a(ssbxxa{sv})")); g_variant_builder_init (&builder, G_VARIANT_TYPE ("a(ssxxa{sv})"));
for (link = events; link; link = g_slist_next (link)) for (link = events; link; link = g_slist_next (link))
{ {
CalendarAppointment *appt = link->data; CalendarAppointment *appt = link->data;
@ -375,10 +368,9 @@ app_notify_events_added (App *app)
{ {
g_variant_builder_init (&extras_builder, G_VARIANT_TYPE ("a{sv}")); g_variant_builder_init (&extras_builder, G_VARIANT_TYPE ("a{sv}"));
g_variant_builder_add (&builder, g_variant_builder_add (&builder,
"(ssbxxa{sv})", "(ssxxa{sv})",
appt->id, appt->id,
appt->summary != NULL ? appt->summary : "", appt->summary != NULL ? appt->summary : "",
(gboolean) appt->is_all_day,
(gint64) start_time, (gint64) start_time,
(gint64) end_time, (gint64) end_time,
&extras_builder); &extras_builder);
@ -390,7 +382,7 @@ app_notify_events_added (App *app)
"/org/gnome/Shell/CalendarServer", "/org/gnome/Shell/CalendarServer",
"org.gnome.Shell.CalendarServer", "org.gnome.Shell.CalendarServer",
"EventsAddedOrUpdated", "EventsAddedOrUpdated",
g_variant_new ("(a(ssbxxa{sv}))", &builder), g_variant_new ("(a(ssxxa{sv}))", &builder),
NULL); NULL);
g_variant_builder_clear (&builder); g_variant_builder_clear (&builder);

View File

@ -1,4 +1,4 @@
#!/usr/bin/env python3 #!@PYTHON@
# -*- mode: Python; indent-tabs-mode: nil; -*- # -*- mode: Python; indent-tabs-mode: nil; -*-
import subprocess import subprocess

View File

@ -1,4 +1,4 @@
#!/usr/bin/env python3 #!@PYTHON@
# -*- mode: Python; indent-tabs-mode: nil; -*- # -*- mode: Python; indent-tabs-mode: nil; -*-
import datetime import datetime

View File

@ -46,7 +46,6 @@
#include "shell-global-private.h" #include "shell-global-private.h"
#include "shell-perf-log.h" #include "shell-perf-log.h"
#include "shell-wm-private.h" #include "shell-wm-private.h"
#include "shell-realms.h"
#define GNOME_TYPE_SHELL_PLUGIN (gnome_shell_plugin_get_type ()) #define GNOME_TYPE_SHELL_PLUGIN (gnome_shell_plugin_get_type ())
G_DECLARE_FINAL_TYPE (GnomeShellPlugin, gnome_shell_plugin, G_DECLARE_FINAL_TYPE (GnomeShellPlugin, gnome_shell_plugin,
@ -215,20 +214,6 @@ gnome_shell_plugin_destroy (MetaPlugin *plugin,
actor); actor);
} }
static void
ensure_switched_context_current(guint ctx_id) {
ShellRealms *realms = shell_realms_get_default();
ShellRealmItem *realm = shell_realms_realm_by_context_id(realms, ctx_id);
if (!realm) {
g_warning ("No realm found for ctx_id = %d in context switch", ctx_id);
return;
}
if (!shell_realm_item_is_current(realm)) {
shell_realm_item_set_current(realm);
}
}
static void static void
gnome_shell_plugin_switch_workspace (MetaPlugin *plugin, gnome_shell_plugin_switch_workspace (MetaPlugin *plugin,
gint from, gint from,
@ -236,10 +221,6 @@ gnome_shell_plugin_switch_workspace (MetaPlugin *plugin,
MetaMotionDirection direction) MetaMotionDirection direction)
{ {
_shell_wm_switch_workspace (get_shell_wm(), from, to, direction); _shell_wm_switch_workspace (get_shell_wm(), from, to, direction);
if (direction == META_MOTION_CONTEXT_SWITCH) {
ensure_switched_context_current((guint) (to >> 16));
}
} }
static void static void

View File

@ -1,7 +1,7 @@
service_data = configuration_data() service_data = configuration_data()
service_data.set('libexecdir', libexecdir) service_data.set('libexecdir', libexecdir)
#subdir('calendar-server') subdir('calendar-server')
subdir('hotplug-sniffer') subdir('hotplug-sniffer')
subdir('st') subdir('st')
subdir('tray') subdir('tray')
@ -125,7 +125,6 @@ libshell_private_headers = [
'shell-app-cache-private.h', 'shell-app-cache-private.h',
'shell-app-system-private.h', 'shell-app-system-private.h',
'shell-global-private.h', 'shell-global-private.h',
'shell-realms-private.h',
'shell-window-tracker-private.h', 'shell-window-tracker-private.h',
'shell-wm-private.h' 'shell-wm-private.h'
] ]
@ -148,14 +147,6 @@ libshell_sources = [
'shell-perf-log.c', 'shell-perf-log.c',
'shell-polkit-authentication-agent.c', 'shell-polkit-authentication-agent.c',
'shell-polkit-authentication-agent.h', 'shell-polkit-authentication-agent.h',
'shell-realm-item.c',
'shell-realm-item.h',
'shell-realms-window-frames.c',
'shell-realms-window-frames.h',
'shell-realms.c',
'shell-realms.h',
'shell-realm-tracker.c',
'shell-realm-tracker.h',
'shell-screenshot.c', 'shell-screenshot.c',
'shell-secure-text-buffer.c', 'shell-secure-text-buffer.c',
'shell-secure-text-buffer.h', 'shell-secure-text-buffer.h',

View File

@ -23,7 +23,7 @@
* Shell is running. * Shell is running.
*/ */
#define DEFAULT_TIMEOUT_SECONDS 2 #define DEFAULT_TIMEOUT_SECONDS 5
struct _ShellAppCache struct _ShellAppCache
{ {

View File

@ -12,7 +12,6 @@
#include "shell-app-cache-private.h" #include "shell-app-cache-private.h"
#include "shell-app-private.h" #include "shell-app-private.h"
#include "shell-window-tracker-private.h" #include "shell-window-tracker-private.h"
#include "shell-realms.h"
#include "shell-app-system-private.h" #include "shell-app-system-private.h"
#include "shell-global.h" #include "shell-global.h"
#include "shell-util.h" #include "shell-util.h"
@ -92,110 +91,6 @@ static void shell_app_system_class_init(ShellAppSystemClass *klass)
G_TYPE_NONE, 0); G_TYPE_NONE, 0);
} }
/*
* Applications belonging to realms have a prefix added to the filenames
* of their desktop files indicating the name of the realm. For example
* in a realm called 'main' the desktop file 'org.gnome.Terminal.desktop'
* is renamed to 'realm-main.org.gnome.Terminal.desktop'.
*
* This has the effect of creating a separate application ID for instances
* of the same application in multiple realms.
*/
static const char *
realm_name_from_application_id (const char *id)
{
gchar **split = NULL;
const char *result = NULL;
if (!g_str_has_prefix (id, "realm-")) {
return NULL;
}
split = g_strsplit(id, ".", 2);
if (split[0]) {
g_assert_true (g_str_has_prefix (split[0], "realm-"));
result = g_strdup(split[0] + 6);
}
g_strfreev (split);
return result;
}
char *
current_realm_name (gboolean name_only)
{
gchar *link = NULL;
gchar *p = NULL;
gchar *realm = NULL;
link = g_file_read_link ("/run/citadel/realms/current/current.realm", NULL);
if (link) {
p = g_strrstr(link, "/realm-");
if (p) {
/* skip slash character */
p++;
if (name_only) {
/* skip 'realm-' */
p += 6;
}
realm = g_strdup(p);
}
g_free (link);
}
return realm;
}
static gboolean
is_current_realm_app (const char *id, const char *current_realm)
{
return !g_str_has_prefix (id, "realm-") || g_str_has_prefix (id, current_realm);
}
static void
refresh_installed_apps (ShellAppSystem *self)
{
const GList *l;
GAppInfo *app;
const char *app_id;
char *current_realm;
ShellAppSystemPrivate *priv = self->priv;
g_list_free_full (g_steal_pointer (&priv->installed_apps), g_object_unref);
l = shell_app_cache_get_all (shell_app_cache_get_default ());
current_realm = current_realm_name (FALSE);
while (l) {
app = l->data;
app_id = g_app_info_get_id (app);
if (is_current_realm_app (app_id, current_realm)) {
priv->installed_apps = g_list_prepend (priv->installed_apps, g_object_ref (app));
}
l = l->next;
}
priv->installed_apps = g_list_reverse (priv->installed_apps);
g_free (current_realm);
}
static char *
realm_wm_class (const char *wmclass, const char *realm_name)
{
if (realm_name) {
return g_strdup_printf ("realm-%s.%s", realm_name, wmclass);
} else {
return g_strdup (wmclass);
}
}
static void static void
scan_startup_wm_class_to_id (ShellAppSystem *self) scan_startup_wm_class_to_id (ShellAppSystem *self)
{ {
@ -211,7 +106,6 @@ scan_startup_wm_class_to_id (ShellAppSystem *self)
{ {
GAppInfo *info = l->data; GAppInfo *info = l->data;
const char *startup_wm_class, *id, *old_id; const char *startup_wm_class, *id, *old_id;
char *realm_wmclass;
id = g_app_info_get_id (info); id = g_app_info_get_id (info);
startup_wm_class = g_desktop_app_info_get_startup_wm_class (G_DESKTOP_APP_INFO (info)); startup_wm_class = g_desktop_app_info_get_startup_wm_class (G_DESKTOP_APP_INFO (info));
@ -219,17 +113,12 @@ scan_startup_wm_class_to_id (ShellAppSystem *self)
if (startup_wm_class == NULL) if (startup_wm_class == NULL)
continue; continue;
realm_wmclass = realm_wm_class (startup_wm_class, realm_name_from_application_id (id));
/* In case multiple .desktop files set the same StartupWMClass, prefer /* In case multiple .desktop files set the same StartupWMClass, prefer
* the one where ID and StartupWMClass match */ * the one where ID and StartupWMClass match */
old_id = g_hash_table_lookup (priv->startup_wm_class_to_id, realm_wmclass); old_id = g_hash_table_lookup (priv->startup_wm_class_to_id, startup_wm_class);
if (old_id == NULL || strcmp (id, startup_wm_class) == 0) { if (old_id == NULL || strcmp (id, startup_wm_class) == 0)
g_hash_table_insert (priv->startup_wm_class_to_id, g_hash_table_insert (priv->startup_wm_class_to_id,
g_strdup (realm_wmclass), g_strdup (id)); g_strdup (startup_wm_class), g_strdup (id));
}
g_free (realm_wmclass);
} }
} }
@ -458,19 +347,15 @@ shell_app_system_lookup_heuristic_basename (ShellAppSystem *system,
*/ */
ShellApp * ShellApp *
shell_app_system_lookup_desktop_wmclass (ShellAppSystem *system, shell_app_system_lookup_desktop_wmclass (ShellAppSystem *system,
const char *wmclass, const char *wmclass)
const char *realm_name)
{ {
char *canonicalized; char *canonicalized;
char *desktop_file; char *desktop_file;
char *classname;
ShellApp *app; ShellApp *app;
if (wmclass == NULL) if (wmclass == NULL)
return NULL; return NULL;
classname = realm_wm_class (wmclass, realm_name);
/* First try without changing the case (this handles /* First try without changing the case (this handles
org.example.Foo.Bar.desktop applications) org.example.Foo.Bar.desktop applications)
@ -478,16 +363,14 @@ shell_app_system_lookup_desktop_wmclass (ShellAppSystem *system,
the WM_CLASS to Org.example.Foo.Bar, but it also the WM_CLASS to Org.example.Foo.Bar, but it also
sets the instance part to org.example.Foo.Bar, so we're ok sets the instance part to org.example.Foo.Bar, so we're ok
*/ */
desktop_file = g_strconcat (classname, ".desktop", NULL); desktop_file = g_strconcat (wmclass, ".desktop", NULL);
app = shell_app_system_lookup_heuristic_basename (system, desktop_file); app = shell_app_system_lookup_heuristic_basename (system, desktop_file);
g_free (desktop_file); g_free (desktop_file);
if (app) { if (app)
g_free (classname);
return app; return app;
}
canonicalized = g_ascii_strdown (classname, -1); canonicalized = g_ascii_strdown (wmclass, -1);
/* This handles "Fedora Eclipse", probably others. /* This handles "Fedora Eclipse", probably others.
* Note g_strdelimit is modify-in-place. */ * Note g_strdelimit is modify-in-place. */
@ -499,7 +382,6 @@ shell_app_system_lookup_desktop_wmclass (ShellAppSystem *system,
g_free (canonicalized); g_free (canonicalized);
g_free (desktop_file); g_free (desktop_file);
g_free (classname);
return app; return app;
} }
@ -516,20 +398,14 @@ shell_app_system_lookup_desktop_wmclass (ShellAppSystem *system,
*/ */
ShellApp * ShellApp *
shell_app_system_lookup_startup_wmclass (ShellAppSystem *system, shell_app_system_lookup_startup_wmclass (ShellAppSystem *system,
const char *wmclass, const char *wmclass)
const char *realm_name)
{ {
const char *id; const char *id;
char *classname;
if (wmclass == NULL) if (wmclass == NULL)
return NULL; return NULL;
classname = realm_wm_class (wmclass, realm_name); id = g_hash_table_lookup (system->priv->startup_wm_class_to_id, wmclass);
id = g_hash_table_lookup (system->priv->startup_wm_class_to_id, classname);
g_free (classname);
if (id == NULL) if (id == NULL)
return NULL; return NULL;
@ -559,29 +435,6 @@ _shell_app_system_notify_app_state_changed (ShellAppSystem *self,
g_signal_emit (self, signals[APP_STATE_CHANGED], 0, app); g_signal_emit (self, signals[APP_STATE_CHANGED], 0, app);
} }
static gboolean
is_current_realm_context_app(ShellApp *app)
{
ShellRealms *realms = shell_realms_get_default();
ShellRealmItem *item = shell_realms_current_realm (realms);
guint id = (item) ? shell_realm_item_get_context_id (item) : 0;
GSList *iter = shell_app_get_windows (app);
while (iter) {
MetaWindow *window = iter->data;
if (meta_window_is_on_all_workspaces (window)) {
return true;
}
MetaWorkspace *workspace = meta_window_get_workspace (window);
if (meta_workspace_get_context_id (workspace) == id) {
return true;
}
iter = iter->next;
}
return false;
}
/** /**
* shell_app_system_get_running: * shell_app_system_get_running:
* @self: A #ShellAppSystem * @self: A #ShellAppSystem
@ -605,9 +458,7 @@ shell_app_system_get_running (ShellAppSystem *self)
{ {
ShellApp *app = key; ShellApp *app = key;
if (is_current_realm_context_app (app)) { ret = g_slist_prepend (ret, app);
ret = g_slist_prepend (ret, app);
}
} }
ret = g_slist_sort (ret, (GCompareFunc)shell_app_compare); ret = g_slist_sort (ret, (GCompareFunc)shell_app_compare);
@ -631,16 +482,12 @@ shell_app_system_search (const char *search_string)
{ {
char ***results = g_desktop_app_info_search (search_string); char ***results = g_desktop_app_info_search (search_string);
char ***groups, **ids; char ***groups, **ids;
char *current_realm;
current_realm = current_realm_name (FALSE);
for (groups = results; *groups; groups++) for (groups = results; *groups; groups++)
for (ids = *groups; *ids; ids++) for (ids = *groups; *ids; ids++)
if (!g_utf8_validate (*ids, -1, NULL) || !is_current_realm_app (*ids, current_realm)) if (!g_utf8_validate (*ids, -1, NULL))
**ids = '\0'; **ids = '\0';
g_free (current_realm);
return results; return results;
} }
@ -657,7 +504,5 @@ shell_app_system_search (const char *search_string)
GList * GList *
shell_app_system_get_installed (ShellAppSystem *self) shell_app_system_get_installed (ShellAppSystem *self)
{ {
ShellAppSystemPrivate *priv = self->priv; return shell_app_cache_get_all (shell_app_cache_get_default ());
refresh_installed_apps (self);
return priv->installed_apps;
} }

View File

@ -20,11 +20,9 @@ ShellApp *shell_app_system_lookup_heuristic_basename (ShellAppSystem *
const char *id); const char *id);
ShellApp *shell_app_system_lookup_startup_wmclass (ShellAppSystem *system, ShellApp *shell_app_system_lookup_startup_wmclass (ShellAppSystem *system,
const char *wmclass, const char *wmclass);
const char *realm_name);
ShellApp *shell_app_system_lookup_desktop_wmclass (ShellAppSystem *system, ShellApp *shell_app_system_lookup_desktop_wmclass (ShellAppSystem *system,
const char *wmclass, const char *wmclass);
const char *realm_name);
GSList *shell_app_system_get_running (ShellAppSystem *self); GSList *shell_app_system_get_running (ShellAppSystem *self);
char ***shell_app_system_search (const char *search_string); char ***shell_app_system_search (const char *search_string);

View File

@ -44,7 +44,6 @@
#include "shell-util.h" #include "shell-util.h"
#include "st.h" #include "st.h"
#include "switcheroo-control.h" #include "switcheroo-control.h"
#include "shell-realm-tracker.h"
static ShellGlobal *the_object = NULL; static ShellGlobal *the_object = NULL;
@ -1069,8 +1068,6 @@ _shell_global_set_plugin (ShellGlobal *global,
global->focus_manager = st_focus_manager_get_for_stage (global->stage); global->focus_manager = st_focus_manager_get_for_stage (global->stage);
update_scaling_factor (global, settings); update_scaling_factor (global, settings);
shell_realm_tracker_start ();
} }
GjsContext * GjsContext *

View File

@ -1,396 +0,0 @@
#include "shell-global.h"
#include "shell-realm-item.h"
#include "shell-realm-tracker.h"
#include <meta/meta-workspace-manager.h>
#include <meta/display.h>
struct _ShellRealmItem {
GObject parent;
char *realm_name;
char *description;
char *namespace;
MetaWorkspaceContext *context;
guint8 status;
gboolean tagged;
gboolean disposed;
};
G_DEFINE_TYPE (ShellRealmItem, shell_realm_item, G_TYPE_OBJECT);
enum {
PROP_0,
PROP_ITEM_REALM_NAME,
PROP_ITEM_DESCRIPTION,
PROP_ITEM_NAMESPACE
};
#define REALM_STATUS_RUNNING 1
#define REALM_STATUS_CURRENT 2
#define REALM_STATUS_SYSTEM 4
static void
shell_realm_item_init(ShellRealmItem *item)
{
}
ShellRealmItem *
shell_realm_item_new (const char *realm_name, const char *description, const char *namespace, guint8 status)
{
ShellRealmItem *item = g_object_new (SHELL_TYPE_REALM_ITEM, NULL);
item->realm_name = g_strdup (realm_name);
item->description = g_strdup (description);
item->namespace = g_strdup (namespace);
item->status = status;
item->context = NULL;
item->tagged = FALSE;
item->disposed = FALSE;
return item;
}
void
shell_realm_item_acquire_context (ShellRealmItem *item)
{
if (item->context || item->disposed || shell_realm_item_is_system (item)) {
return;
}
if (!item->namespace || !shell_realm_item_is_running (item)) {
g_warning ("ShellRealmItem: Cannot acquire workspace context for realm '%s' because not running or no namespace", item->realm_name);
return;
}
MetaDisplay *display = shell_global_get_display (shell_global_get());
MetaWorkspaceManager *workspace_manager = meta_display_get_workspace_manager (display);
item->context = meta_workspace_manager_context_for_namespace (workspace_manager, item->namespace);
}
/**
* shell_realm_item_get_realm_name:
* @item: A #ShellRealmItem instance
*
* Returns: The name of the realm for this #ShellRealmItem
*/
const char *
shell_realm_item_get_realm_name (ShellRealmItem *item)
{
return item->realm_name;
}
/**
* shell_realm_item_get_description:
* @item: A #ShellRealmItem instance
*
* Returns: The description field for this realm or an empty string if no description is set
*/
const char *
shell_realm_item_get_description (ShellRealmItem *item)
{
if (item->description)
return item->description;
else
return "";
}
/**
* shell_realm_item_get_namespace:
* @item: A #ShellRealmItem instance
*
* Returns: The namespace field for this realm or an empty string if no namespace is set
*/
const char *
shell_realm_item_get_namespace (ShellRealmItem *item)
{
if (item->namespace)
return item->namespace;
else
return "";
}
/**
* shell_realm_item_get_context_id:
* @item: A #ShellRealmItem instance
*
* Returns: The context id for the #MetaWorkspaceContext of this realm or 0 if
* no context exists.
*/
guint
shell_realm_item_get_context_id (ShellRealmItem *item)
{
if (shell_realm_item_is_running (item) && !item->context) {
shell_realm_item_acquire_context (item);
}
if (item->context) {
return meta_workspace_context_id (item->context);
} else {
return 0;
}
}
/**
* shell_realm_item_get_active_workspace:
* @item: A #ShellRealmItem
*
* Returns: (transfer none): The current workspace for the context
* belonging to this item.
*/
MetaWorkspace *
shell_realm_item_get_active_workspace (ShellRealmItem *item)
{
if (shell_realm_item_is_running (item) && !item->context) {
shell_realm_item_acquire_context (item);
}
if (item->context) {
return meta_workspace_context_get_active_workspace (item->context);
} else {
return NULL;
}
}
/**
* shell_realm_item_activate_context:
* @item: A #ShellRealmItem instance for a running realm
*
* If a #MetaWorkspaceContext is associated with this realm
* set it as the active workspace context.
*/
void
shell_realm_item_activate_context (ShellRealmItem *item)
{
shell_realm_item_acquire_context (item);
if (item->context) {
meta_workspace_context_activate (item->context);
}
}
/**
* shell_realm_item_set_current:
* @item: A #ShellRealmItem instance for a running realm
*
* Sends a DBUS request to change the current realm to this realm. This does not immediately
* influence any local state in GNOME shell. Once the realms daemon has changed the current realm
* it will emit a signal and the processing of that signal will update the local state.
*/
void
shell_realm_item_set_current (ShellRealmItem *item) {
ShellRealmTracker *tracker = shell_realm_tracker_get_default();
if (item && item->realm_name) {
shell_realm_tracker_call_set_current (tracker, item->realm_name);
}
}
/**
* shell_realm_item_move_window_to_context:
* @item: A #ShellRealmItem instance for a running realm
* @window: A #MetaWindow for some window
*
* Move window to the currently active workspace in the #MetaWorkspaceContext for
* this realm.
*/
void
shell_realm_item_move_window_to_context (ShellRealmItem *item, MetaWindow *window)
{
shell_realm_item_acquire_context (item);
if (item->context) {
meta_workspace_context_move_window_to_context (item->context, window);
} else {
g_warning ("ShellRealmItem: Attempted to move window to realm '%s' which has no workspace context", item->realm_name);
}
}
static gboolean
is_flag_set(guint8 status, guchar flag)
{
return ((status & flag) != 0) ? TRUE : FALSE;
}
static gboolean
has_status_flag (ShellRealmItem *item, guchar flag)
{
return is_flag_set (item->status, flag);
}
static void
set_status_flag (ShellRealmItem *item, guint8 flag, gboolean value)
{
if (value) {
item->status |= flag;
} else {
item->status &= ~flag;
}
}
/**
* shell_realm_item_is_current:
* @item: A #ShellRealmItem instance
*
* Returns: %TRUE if this #ShellRealmItem is the current realm
*/
gboolean
shell_realm_item_is_current (ShellRealmItem *item)
{
return has_status_flag (item, REALM_STATUS_CURRENT);
}
/**
* shell_realm_item_is_running:
* @item: A #ShellRealmItem instance
*
* Returns: %TRUE if this #ShellRealmItem is running
*/
gboolean
shell_realm_item_is_running (ShellRealmItem *item)
{
return has_status_flag (item, REALM_STATUS_RUNNING);
}
/**
* shell_realm_item_is_system:
* @item: A #ShellRealmItem instance
*
* Returns: %TRUE if this #ShellRealmItem is a system realm
*/
gboolean
shell_realm_item_is_system (ShellRealmItem *item)
{
return has_status_flag (item, REALM_STATUS_SYSTEM);
}
void shell_realm_item_set_current_flag (ShellRealmItem *item, gboolean value)
{
set_status_flag (item, REALM_STATUS_CURRENT, value);
}
void shell_realm_item_set_running_flag (ShellRealmItem *item, gboolean value)
{
set_status_flag (item, REALM_STATUS_RUNNING, value);
if (!value && item->context) {
meta_workspace_context_remove (item->context);
item->context = NULL;
}
}
void shell_realm_item_update (ShellRealmItem *item, const char *realm_name, const char *namespace, guint8 status)
{
if (g_strcmp0 (item->realm_name, realm_name)) {
g_message ("ShellRealmItem: Realm name changed from %s to %s", item->realm_name, realm_name);
g_free (item->realm_name);
item->realm_name = g_strdup (realm_name);
}
if (g_strcmp0 (item->namespace, namespace)) {
g_free(item->namespace);
item->namespace = g_strdup (namespace);
}
if (item->status != status) {
gboolean was_running = has_status_flag (item, REALM_STATUS_RUNNING);
gboolean is_running = is_flag_set (status, REALM_STATUS_RUNNING);
gboolean stopped = was_running && !is_running;
item->status = status;
if (stopped) {
meta_workspace_context_remove (item->context);
item->context = NULL;
}
}
}
void
shell_realm_item_set_tagged (ShellRealmItem *item, gboolean is_tagged)
{
item->tagged = is_tagged;
}
gboolean
shell_realm_item_is_tagged (ShellRealmItem *item)
{
return item->tagged;
}
static void shell_realm_item_get_property (GObject *gobject,
guint prop_id,
GValue *value,
GParamSpec *pspec)
{
ShellRealmItem *item = SHELL_REALM_ITEM (gobject);
switch (prop_id) {
case PROP_ITEM_REALM_NAME:
g_value_set_string (value, shell_realm_item_get_realm_name (item));
break;
case PROP_ITEM_DESCRIPTION:
g_value_set_string (value, shell_realm_item_get_description (item));
break;
case PROP_ITEM_NAMESPACE:
g_value_set_string (value, shell_realm_item_get_namespace (item));
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (gobject, prop_id, pspec);
break;
}
}
static void shell_realm_item_dispose (GObject *object)
{
ShellRealmItem *item = SHELL_REALM_ITEM (object);
if (item->context) {
meta_workspace_context_remove (item->context);
item->context = NULL;
}
item->disposed = TRUE;
G_OBJECT_CLASS(shell_realm_item_parent_class)->dispose (object);
}
static void
shell_realm_item_finalize (GObject *object)
{
ShellRealmItem *item = SHELL_REALM_ITEM (object);
g_free (item->realm_name);
g_free (item->description);
g_free (item->namespace);
G_OBJECT_CLASS(shell_realm_item_parent_class)->finalize (object);
}
static void
shell_realm_item_class_init (ShellRealmItemClass *klass)
{
GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
gobject_class->get_property = shell_realm_item_get_property;
gobject_class->dispose = shell_realm_item_dispose;
gobject_class->finalize = shell_realm_item_finalize;
g_object_class_install_property (gobject_class,
PROP_ITEM_NAMESPACE,
g_param_spec_string ("namespace",
"Context Namespace",
"PID namespace of context",
NULL,
G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
g_object_class_install_property (gobject_class,
PROP_ITEM_REALM_NAME,
g_param_spec_string ("realm-name",
"Realm Name",
"Name of realm associated with this context",
NULL,
G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
g_object_class_install_property (gobject_class,
PROP_ITEM_DESCRIPTION,
g_param_spec_string ("description",
"Realm Description",
"Optional description of realm",
NULL,
G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
}

View File

@ -1,35 +0,0 @@
#ifndef __SHELL_REALM_ITEM_H__
#define __SHELL_REALM_ITEM_H__
#include <glib-object.h>
#include <meta/window.h>
#define SHELL_TYPE_REALM_ITEM (shell_realm_item_get_type())
G_DECLARE_FINAL_TYPE (ShellRealmItem, shell_realm_item, SHELL, REALM_ITEM, GObject)
ShellRealmItem *shell_realm_item_new (const char *realm_name, const char *description, const char *namespace, guint8 status);
const char *shell_realm_item_get_realm_name (ShellRealmItem *item);
const char *shell_realm_item_get_description (ShellRealmItem *item);
const char *shell_realm_item_get_namespace (ShellRealmItem *item);
guint shell_realm_item_get_context_id (ShellRealmItem *item);
MetaWorkspace *shell_realm_item_get_active_workspace (ShellRealmItem *item);
void shell_realm_item_update (ShellRealmItem *item, const char *realm_name, const char *namespace, guint8 status);
void shell_realm_item_set_current_flag (ShellRealmItem *item, gboolean value);
void shell_realm_item_set_running_flag (ShellRealmItem *item, gboolean value);
void shell_realm_item_activate_context (ShellRealmItem *item);
void shell_realm_item_set_current (ShellRealmItem *item);
void shell_realm_item_move_window_to_context (ShellRealmItem *item, MetaWindow *window);
gboolean shell_realm_item_is_current(ShellRealmItem *item);
gboolean shell_realm_item_is_running(ShellRealmItem *item);
gboolean shell_realm_item_is_system(ShellRealmItem *item);
void shell_realm_item_set_tagged (ShellRealmItem *item, gboolean is_tagged);
gboolean shell_realm_item_is_tagged (ShellRealmItem *item);
void shell_realm_item_acquire_context (ShellRealmItem *item);
#endif //__SHELL_REALM_ITEM_H__

View File

@ -1,310 +0,0 @@
#include "shell-realm-tracker.h"
#include "shell-realms-private.h"
#define NUM_BUS_SIGNAL_IDS 5
#define REALMS_BUS_NAME "com.subgraph.realms"
#define REALMS_OBJECT_PATH "/com/subgraph/realms"
#define REALMS_MANAGER_INTERFACE "com.subgraph.realms.Manager"
struct _ShellRealmTracker {
GObject parent;
GDBusConnection *dbus;
guint realms_watch_id;
guint bus_signal_ids[NUM_BUS_SIGNAL_IDS];
gboolean destroy_in_progress;
};
G_DEFINE_TYPE (ShellRealmTracker, shell_realm_tracker, G_TYPE_OBJECT);
static void
shell_realm_tracker_init (ShellRealmTracker *tracker)
{
tracker->dbus = NULL;
tracker->realms_watch_id = 0;
tracker->destroy_in_progress = FALSE;
}
static void
shell_realm_tracker_class_init (ShellRealmTrackerClass *klass)
{
}
static void
on_realm_bus_signal(GDBusConnection *connection,
const gchar *sender_name,
const gchar *object_path,
const gchar *interface_name,
const gchar *signal_name,
GVariant *parameters,
gpointer user_data)
{
ShellRealms *realms = shell_realms_get_default();
const gchar *realm_name = NULL;
const gchar *description = NULL;
const gchar *namespace = NULL;
guint8 status = 0;
if (g_str_equal (signal_name, "RealmStarted")) {
g_variant_get (parameters, "(&s&sy)", &realm_name, &namespace, &status);
shell_realms_on_realm_started (realms, realm_name, namespace, status);
} else if (g_str_equal (signal_name, "RealmStopped")) {
g_variant_get (parameters, "(&sy)", &realm_name, &status);
shell_realms_on_realm_stopped (realms, realm_name);
} else if (g_str_equal (signal_name, "RealmRemoved")) {
g_variant_get (parameters, "(&s)", &realm_name);
shell_realms_on_realm_removed (realms, realm_name);
} else if (g_str_equal (signal_name, "RealmCurrent")) {
g_variant_get (parameters, "(&sy)", &realm_name, &status);
shell_realms_on_realm_current (realms, realm_name);
} else if (g_str_equal (signal_name, "RealmNew")) {
g_variant_get (parameters, "(&s&sy)", &realm_name, &description, status);
shell_realms_on_realm_new (realms, realm_name, description, status);
} else {
g_warning("Unexpected signal name '%s' received from realms manager DBUS", signal_name);
}
}
static void
realm_state_process_elements (ShellRealmTracker *self, GVariant *response)
{
GVariantIter *iter = NULL;
const gchar *name = NULL;
const gchar *description = NULL;
const gchar *namespace = NULL;
guchar status = 0;
ShellRealms *realms = shell_realms_get_default();
shell_realms_untag_all (realms);
g_variant_get(response, "(a(ssssy))", &iter);
// (name, desc, realmfs, namespace, status)
while (g_variant_iter_next(iter, "(&s&ss&sy)", &name, &description, NULL, &namespace, &status)) {
shell_realms_update_realm (realms, name, description, namespace, status);
}
shell_realms_remove_untagged (realms);
g_variant_iter_free(iter);
}
static void
request_realm_state_finish(GObject *object, GAsyncResult *result, gpointer data)
{
ShellRealmTracker *self = data;
GError *error = NULL;
GVariant *response = g_dbus_connection_call_finish (G_DBUS_CONNECTION(object), result, &error);
if (!response) {
if (!g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) {
g_warning("MetaRealmDbus: Error calling 'List' bus method: %s", error->message);
}
g_clear_error (&error);
return;
}
if (self->destroy_in_progress) {
g_variant_unref (response);
return;
}
realm_state_process_elements(self, response);
g_variant_unref(response);
}
static void
set_realm_current_finish (GObject *object, GAsyncResult *result, gpointer data)
{
GError *error = NULL;
GVariant *response = g_dbus_connection_call_finish (G_DBUS_CONNECTION(object), result, &error);
if (!response) {
if (!g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) {
g_warning("MetaRealmDbus: Error calling 'SetCurrent' bus method: %s", error->message);
}
g_clear_error (&error);
return;
}
g_variant_unref (response);
}
static void
call_dbus_method (ShellRealmTracker *self, const gchar *method, GVariant *parameters, GAsyncReadyCallback callback, gpointer user_data)
{
if (!self->dbus) {
g_warning("ShellRealmTracker: call_dbus_method(%s) called when no bus connection present", method);
return;
}
g_dbus_connection_call(self->dbus,
REALMS_BUS_NAME,
REALMS_OBJECT_PATH,
REALMS_MANAGER_INTERFACE,
method,
parameters,
NULL,
G_DBUS_CALL_FLAGS_NO_AUTO_START,
-1,
NULL,
callback,
user_data);
}
static void
request_realm_state(ShellRealmTracker *self)
{
call_dbus_method (self, "List", NULL, request_realm_state_finish, self);
}
void
shell_realm_tracker_call_set_current (ShellRealmTracker *self, const char *realm_name)
{
call_dbus_method (self, "SetCurrent", g_variant_new("(s)", realm_name), set_realm_current_finish, NULL);
}
static void
unsubscribe_signals (ShellRealmTracker *self)
{
for (int i = 0; i < NUM_BUS_SIGNAL_IDS; i++) {
if (self->bus_signal_ids[i]) {
if (self->dbus) {
g_dbus_connection_signal_unsubscribe(self->dbus, self->bus_signal_ids[i]);
}
self->bus_signal_ids[i] = 0;
}
}
}
static guint
bus_signal_subscribe (ShellRealmTracker *self, const gchar *signal_name)
{
g_assert(self->dbus);
return g_dbus_connection_signal_subscribe(self->dbus,
REALMS_BUS_NAME,
REALMS_MANAGER_INTERFACE,
signal_name,
REALMS_OBJECT_PATH,
NULL,
G_DBUS_SIGNAL_FLAGS_NONE,
on_realm_bus_signal,
self,
NULL);
}
static void
subscribe_bus_signals (ShellRealmTracker *self)
{
if (self->dbus) {
int idx = 0;
self->bus_signal_ids[idx++] = bus_signal_subscribe(self, "RealmStarted");
self->bus_signal_ids[idx++] = bus_signal_subscribe(self, "RealmStopped");
self->bus_signal_ids[idx++] = bus_signal_subscribe(self, "RealmCurrent");
self->bus_signal_ids[idx++] = bus_signal_subscribe(self, "RealmNew");
self->bus_signal_ids[idx++] = bus_signal_subscribe(self, "RealmRemoved");
g_assert(idx == NUM_BUS_SIGNAL_IDS);
}
}
static void
on_realm_manager_appeared (GDBusConnection *connection, const gchar *name, const gchar *name_owner, gpointer user_data)
{
ShellRealmTracker *self = user_data;
// Avoid processing spurious events while destroying 'self'
if (self->destroy_in_progress) {
return;
}
if (!self->dbus) {
self->dbus = g_object_ref(connection);
subscribe_bus_signals (self);
} else {
g_warning("Realm tracker already has a connection in on_realm_manager_appeared()");
}
request_realm_state (self);
}
static void
on_realm_manager_vanished (GDBusConnection *connection, const gchar *name, gpointer user_data)
{
ShellRealmTracker *self = user_data;
// Avoid processing spurious events while destroying 'self'
if (self->destroy_in_progress) {
return;
}
if (!connection) {
g_clear_object (&self->dbus);
}
unsubscribe_signals(self);
}
/**
* shell_realm_tracker_get_default:
*
* Return Value: (transfer none): The global #ShellRealmTracker singleton
*/
ShellRealmTracker *
shell_realm_tracker_get_default(void)
{
static ShellRealmTracker *instance;
if (instance == NULL) {
instance = g_object_new (SHELL_TYPE_REALM_TRACKER, NULL);
}
return instance;
}
void shell_realm_tracker_start ()
{
ShellRealmTracker *tracker = shell_realm_tracker_get_default();
if (tracker->realms_watch_id) {
g_warning ("ShellRealmTracker: shell_realm_tracker_start() called when already started");
return;
}
tracker->realms_watch_id = g_bus_watch_name(G_BUS_TYPE_SYSTEM,
REALMS_BUS_NAME,
G_BUS_NAME_WATCHER_FLAGS_NONE,
on_realm_manager_appeared,
on_realm_manager_vanished,
tracker,
g_free);
}
void
shell_realm_tracker_destroy(ShellRealmTracker *self)
{
if (self->dbus) {
unsubscribe_signals (self);
g_clear_object (&self->dbus);
}
// event handlers check this and will bail early in case there are
// any in queue. see docs for g_bus_unwatch_name()
self->destroy_in_progress = TRUE;
// frees 'self' in destroy notifier
g_bus_unwatch_name(self->realms_watch_id);
}

View File

@ -1,14 +0,0 @@
#ifndef __SHELL_REALM_TRACKER_H__
#define __SHELL_REALM_TRACKER_H__
#include <glib-object.h>
#define SHELL_TYPE_REALM_TRACKER (shell_realm_tracker_get_type ())
G_DECLARE_FINAL_TYPE (ShellRealmTracker, shell_realm_tracker,
SHELL, REALM_TRACKER, GObject)
ShellRealmTracker *shell_realm_tracker_get_default(void);
void shell_realm_tracker_call_set_current (ShellRealmTracker *self, const char *realm_name);
void shell_realm_tracker_start ();
#endif /* __SHELL_REALM_TRACKER_H__ */

View File

@ -1,21 +0,0 @@
#ifndef __SHELL_REALMS_PRIVATE_H__
#define __SHELL_REALMS_PRIVATE_H__
#include <glib-object.h>
#include "shell-realms.h"
#include "shell-realms-window-frames.h"
void shell_realms_untag_all (ShellRealms *realms);
void shell_realms_remove_untagged (ShellRealms *realms);
void shell_realms_update_realm (ShellRealms *realms,
const char *realm_name,
const char *description,
const char *namespace,
guint8 status);
void shell_realms_on_realm_started (ShellRealms *realms, const gchar *realm_name, const gchar *namespace, guint8 status);
void shell_realms_on_realm_current (ShellRealms *realms, const gchar *realm_name);
void shell_realms_on_realm_stopped (ShellRealms *realms, const gchar *realm_name);
void shell_realms_on_realm_removed (ShellRealms *realms, const gchar *realm_name);
void shell_realms_on_realm_new (ShellRealms *realms, const gchar *realm_name, const gchar *description, guint8 status);
#endif //__SHELL_REALMS_PRIVATE_H__

View File

@ -1,386 +0,0 @@
#include "shell-realms-window-frames.h"
#include "shell-realms.h"
#define CITADEL_SETTINGS_SCHEMA "com.subgraph.citadel"
#define FRAME_COLOR_LIST_KEY "frame-color-list"
#define REALM_FRAME_COLORS_KEY "realm-frame-colors"
#define REALM_FRAME_ALPHA 200
struct _ShellRealmsWindowFrames {
GObject parent;
GSettings *settings;
GHashTable *realm_frame_colors;
GList *default_colors;
GList *frame_disabled_windows;
};
G_DEFINE_TYPE (ShellRealmsWindowFrames, shell_realms_window_frames, G_TYPE_OBJECT);
enum {
REALM_FRAME_COLORS_CHANGED,
LAST_SIGNAL,
};
static guint shell_realms_window_frames_signals [LAST_SIGNAL] = { 0 };
static void
shell_realms_window_frames_process_color (ShellRealmsWindowFrames *frames, const char *entry)
{
GdkRGBA rgba;
gchar **split = g_strsplit (entry, ":", -1);
if (g_strv_length (split) != 2) {
g_warning("ShellRealmsWindowFrames: Unable to parse realm-frame-colors entry: %s", entry);
g_strfreev (split);
return;
}
if (!gdk_rgba_parse (&rgba, split[1])) {
g_warning("ShellRealmsWindowFrames: Failed to parse RGBA component of realm frame color entry: %s", entry);
} else {
g_hash_table_insert (frames->realm_frame_colors, g_strdup (split[0]), gdk_rgba_copy (&rgba));
}
g_strfreev (split);
}
static void
load_realm_frame_colors (ShellRealmsWindowFrames *frames)
{
guint n_entries, i;
char **entries;
entries = g_settings_get_strv (frames->settings, REALM_FRAME_COLORS_KEY);
n_entries = g_strv_length (entries);
for (i = 0; i < n_entries; i++) {
shell_realms_window_frames_process_color (frames, entries[i]);
}
g_strfreev (entries);
}
static void
on_realm_frame_colors_changed(GSettings *settings, const gchar *key, ShellRealmsWindowFrames *frames)
{
load_realm_frame_colors (frames);
g_signal_emit (frames, shell_realms_window_frames_signals[REALM_FRAME_COLORS_CHANGED], 0);
}
static void
load_default_colors (ShellRealmsWindowFrames *frames)
{
guint n_entries, i;
char **entries;
GdkRGBA rgba;
entries = g_settings_get_strv (frames->settings, FRAME_COLOR_LIST_KEY);
n_entries = g_strv_length (entries);
g_clear_list(&frames->default_colors, (GDestroyNotify) gdk_rgba_free);
for (i = 0; i < n_entries; i++) {
if (gdk_rgba_parse (&rgba, entries[i])) {
frames->default_colors = g_list_append (frames->default_colors, gdk_rgba_copy(&rgba));
}
}
g_strfreev (entries);
}
static void
on_frame_color_list_changed (GSettings *settings, const gchar *key, ShellRealmsWindowFrames *frames)
{
load_default_colors (frames);
}
static void
shell_realms_window_frames_init (ShellRealmsWindowFrames *frames)
{
frames->settings = g_settings_new (CITADEL_SETTINGS_SCHEMA);
frames->realm_frame_colors = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, (GDestroyNotify) gdk_rgba_free);
frames->default_colors = NULL;
frames->frame_disabled_windows = NULL;
g_signal_connect(frames->settings,
"changed::" FRAME_COLOR_LIST_KEY,
G_CALLBACK(on_frame_color_list_changed),
frames);
g_signal_connect(frames->settings,
"changed::" REALM_FRAME_COLORS_KEY,
G_CALLBACK(on_realm_frame_colors_changed),
frames);
load_default_colors (frames);
load_realm_frame_colors (frames);
}
static void
shell_realms_window_frames_finalize (GObject *obj)
{
ShellRealmsWindowFrames *frames = SHELL_REALMS_WINDOW_FRAMES (obj);
g_object_unref (frames->settings);
g_hash_table_destroy (frames->realm_frame_colors);
g_list_free_full (frames->default_colors, (GDestroyNotify) gdk_rgba_free);
g_list_free (frames->frame_disabled_windows);
G_OBJECT_CLASS (shell_realms_window_frames_parent_class)->finalize (obj);
}
static void
shell_realms_window_frames_class_init (ShellRealmsWindowFramesClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
object_class->finalize = shell_realms_window_frames_finalize;
shell_realms_window_frames_signals[REALM_FRAME_COLORS_CHANGED] =
g_signal_new ("realm-frame-colors-changed",
G_TYPE_FROM_CLASS(klass),
G_SIGNAL_RUN_LAST,
0,
NULL, NULL, NULL,
G_TYPE_NONE, 0);
}
static gboolean
disabled_list_contains (ShellRealmsWindowFrames *frames, guint32 window_id)
{
return g_list_find (frames->frame_disabled_windows, GUINT_TO_POINTER(window_id)) != NULL;
}
static bool
remove_from_disabled_list (ShellRealmsWindowFrames *frames, guint32 window_id)
{
if (disabled_list_contains (frames, window_id)) {
frames->frame_disabled_windows = g_list_remove (frames->frame_disabled_windows, GUINT_TO_POINTER(window_id));
g_signal_emit (frames, shell_realms_window_frames_signals[REALM_FRAME_COLORS_CHANGED], 0);
return TRUE;
}
return FALSE;
}
static bool
add_to_disabled_list (ShellRealmsWindowFrames *frames, guint32 window_id)
{
if (!disabled_list_contains (frames, window_id)) {
frames->frame_disabled_windows = g_list_append (frames->frame_disabled_windows, GUINT_TO_POINTER(window_id));
g_signal_emit (frames, shell_realms_window_frames_signals[REALM_FRAME_COLORS_CHANGED], 0);
return TRUE;
}
return FALSE;
}
static gint
color_compare(gconstpointer c1, gconstpointer c2) {
return gdk_rgba_equal (c1, c2) ? 0 : 1;
}
static GdkRGBA *
allocate_color (ShellRealmsWindowFrames *frames)
{
guint n_colors = g_list_length (frames->default_colors);
// 1) No default colors? return a built in color
if (n_colors == 0) {
GdkRGBA rgba;
gdk_rgba_parse (&rgba, "rgb(153, 193, 241)");
return gdk_rgba_copy (&rgba);
}
// 2) No default colors? Find first color on default color list that isn't used already
GList *used_colors = g_hash_table_get_values (frames->realm_frame_colors);
for (GList *iter = frames->default_colors; iter; iter = iter->next) {
GdkRGBA *rgba = iter->data;
if (!g_list_find_custom (used_colors, rgba, color_compare)) {
return rgba;
}
}
g_list_free (used_colors);
// 3) Choose a random element of the default list
guint index = (guint) g_random_int_range(0, (gint32) n_colors);
return g_list_nth_data (frames->default_colors, index);
}
static void
shell_realms_window_frames_store_colors (ShellRealmsWindowFrames *frames)
{
GHashTableIter iter;
gpointer key, value;
GPtrArray *entries = g_ptr_array_new_with_free_func(g_free);
g_hash_table_iter_init (&iter, frames->realm_frame_colors);
while (g_hash_table_iter_next(&iter, &key, &value)) {
gchar *name = key;
GdkRGBA *rgba = value;
char *rgba_str = gdk_rgba_to_string (rgba);
gchar *entry = g_strconcat (name, ":", rgba_str, NULL);
g_ptr_array_add (entries, entry);
g_free (rgba_str);
}
g_ptr_array_sort (entries, (GCompareFunc) g_strcmp0);
g_ptr_array_add (entries, NULL);
g_settings_set_strv (frames->settings, REALM_FRAME_COLORS_KEY, (const gchar * const *) entries->pdata);
g_ptr_array_unref (entries);
}
static const char *
shell_realms_window_frames_realm_name_for_window (ShellRealmsWindowFrames *frames, ShellRealms *realms, MetaWindow *window)
{
ShellRealmItem *realm = shell_realms_realm_by_window (realms, window);
if (realm) {
return shell_realm_item_get_realm_name (realm);
} else {
return NULL;
}
}
static void
on_window_unmanaged (MetaWindow *window, ShellRealmsWindowFrames *frames)
{
g_signal_handlers_disconnect_by_func (window, G_CALLBACK (on_window_unmanaged), frames);
guint32 id = meta_window_get_stable_sequence (window);
remove_from_disabled_list (frames, id);
}
static gboolean
is_ignored_window (MetaWindow *window)
{
switch (meta_window_get_window_type (window)) {
case META_WINDOW_MENU:
case META_WINDOW_TOOLTIP:
case META_WINDOW_POPUP_MENU:
case META_WINDOW_DROPDOWN_MENU:
return TRUE;
default:
return FALSE;
}
}
/**
* shell_realms_window_frames_is_frame_enabled:
* @frames: a #ShellRealmsWindowFrames instance
* @window: a #MetaWindow
*
* Return #TRUE if frame has not been disabled for this window.
*
* Returns: #TRUE if frame has not been disabled for this window.
*/
gboolean
shell_realms_window_frames_is_frame_enabled (ShellRealmsWindowFrames *frames, MetaWindow *window)
{
guint32 id = meta_window_get_stable_sequence (window);
return !disabled_list_contains (frames, id);
}
/**
* shell_realms_window_frames_has_frame:
* @frames: a #ShellRealmsWindowFrames instance
* @window: a #MetaWindow
*
* Return #TRUE if this window needs a frame.
*
* Returns: #TRUE if a frame should be drawn for this window.
*/
gboolean
shell_realms_window_frames_has_frame (ShellRealmsWindowFrames *frames, MetaWindow *window)
{
return !is_ignored_window(window) && meta_window_is_on_foreign_workspace_context (window);
}
/**
* shell_realms_window_frames_set_frame_enabled:
* @frames: a #ShellRealmsWindowFrames instance
* @window: a #MetaWindow
* @enabled: Set to #FALSE to disable drawing frame for this window
*
*/
void
shell_realms_window_frames_set_frame_enabled (ShellRealmsWindowFrames *frames, MetaWindow *window, gboolean enabled)
{
guint32 id = meta_window_get_stable_sequence (window);
if (enabled) {
if (remove_from_disabled_list (frames, id)) {
g_signal_handlers_disconnect_by_func (window, G_CALLBACK (on_window_unmanaged), frames);
}
} else if (add_to_disabled_list (frames, id)) {
g_signal_connect_object (window, "unmanaged", G_CALLBACK(on_window_unmanaged), frames, 0);
}
}
static ClutterColor *
rgba_to_clutter_color(GdkRGBA *rgba)
{
guint8 r = (guint8) (0.5 + CLAMP(rgba->red, 0.0, 1.0) * 255.0);
guint8 g = (guint8) (0.5 + CLAMP(rgba->green, 0.0, 1.0) * 255.0);
guint8 b = (guint8) (0.5 + CLAMP(rgba->blue, 0.0, 1.0) * 255.0);
return clutter_color_new (r, g, b, REALM_FRAME_ALPHA);
}
/**
* shell_realms_window_frames_color_for_window:
* @frames: a #ShellRealmsWindowFrames instance
* @window: a #MetaWindow
*
* Returns a color to use for painting window frame.
*
* Return value: (transfer full) (nullable): The frame color or %NULL if no frame should be drawn.
*/
ClutterColor *
shell_realms_window_frames_color_for_window (ShellRealmsWindowFrames *frames, MetaWindow *window)
{
if (!shell_realms_window_frames_has_frame (frames, window)) {
return NULL;
}
ShellRealms *realms = shell_realms_get_default();
const gchar *name = shell_realms_window_frames_realm_name_for_window (frames, realms, window);
GdkRGBA *rgba = g_hash_table_lookup (frames->realm_frame_colors, name);
if (!rgba) {
rgba = allocate_color (frames);
g_hash_table_insert (frames->realm_frame_colors, g_strdup(name), rgba);
shell_realms_window_frames_store_colors (frames);
}
return rgba_to_clutter_color (rgba);
}
/**
* shell_realms_window_frames_label_for_window:
* @frames: a #ShellRealmsWindowFrames instance
* @window: a #MetaWindow
*
* Return the label text for window if the window requires a frame.
*
* Return value: (transfer none) (nullable): The label text or %NULL if no label should be displayed
*/
const gchar *
shell_realms_window_frames_label_for_window (ShellRealmsWindowFrames *frames, MetaWindow *window)
{
if (!shell_realms_window_frames_has_frame (frames, window)) {
return NULL;
}
if (meta_window_get_window_type (window) != META_WINDOW_NORMAL) {
return NULL;
}
ShellRealms *realms = shell_realms_get_default();
if (shell_realms_is_citadel_window (realms, window)) {
return "Citadel";
} else {
return shell_realms_window_frames_realm_name_for_window (frames, realms, window);
}
}

View File

@ -1,17 +0,0 @@
#ifndef __SHELL_REALMS_WINDOW_FRAMES_H__
#define __SHELL_REALMS_WINDOW_FRAMES_H__
#include <glib-object.h>
#include <clutter/clutter.h>
#include <meta/window.h>
#define SHELL_TYPE_REALMS_WINDOW_FRAMES (shell_realms_window_frames_get_type())
G_DECLARE_FINAL_TYPE (ShellRealmsWindowFrames, shell_realms_window_frames, SHELL, REALMS_WINDOW_FRAMES, GObject)
gboolean shell_realms_window_frames_has_frame (ShellRealmsWindowFrames *frames, MetaWindow *window);
gboolean shell_realms_window_frames_is_frame_enabled (ShellRealmsWindowFrames *frames, MetaWindow *window);
void shell_realms_window_frames_set_frame_enabled (ShellRealmsWindowFrames *frames, MetaWindow *window, gboolean enabled);
ClutterColor *shell_realms_window_frames_color_for_window (ShellRealmsWindowFrames *frames, MetaWindow *window);
const gchar *shell_realms_window_frames_label_for_window (ShellRealmsWindowFrames *frames, MetaWindow *window);
#endif // __SHELL_REALMS_WINDOW_FRAMES_H__

View File

@ -1,460 +0,0 @@
#include <meta/display.h>
#include <meta/meta-workspace-manager.h>
#include "shell-realm-item.h"
#include "shell-realm-tracker.h"
#include "shell-realms-private.h"
#include "shell-global.h"
struct _ShellRealms {
GObject parent;
GHashTable *realms;
GList *running_realms;
ShellRealmItem *current_realm;
ShellRealmsWindowFrames *frames;
};
G_DEFINE_TYPE (ShellRealms, shell_realms, G_TYPE_OBJECT);
enum {
REALM_CONTEXT_SWITCHED,
LAST_SIGNAL,
};
enum {
PROP_0,
PROP_CURRENT_REALM,
};
static guint shell_realms_signals [LAST_SIGNAL] = { 0 };
/**
* shell_realms_current_realm:
* @realms: A #ShellRealms instance
*
* Returns: (transfer none) (nullable): The current realm as a #ShellRealmItem
* or %NULL if no realm is current.
*/
ShellRealmItem *
shell_realms_current_realm (ShellRealms *realms)
{
return realms->current_realm;
}
/**
* shell_realms_realm_by_name:
* @realms: a #ShellRealms instance
* @realm_name: The name of a realm to look up
*
* Returns: (transfer none) (nullable): A realm #ShellRealmItem or %NULL
* if name not found
*/
ShellRealmItem *
shell_realms_realm_by_name(ShellRealms *realms, const gchar *realm_name)
{
ShellRealmItem *item = g_hash_table_lookup (realms->realms, realm_name);
if (!item) {
g_warning("ShellRealms: No realm found for name '%s'", realm_name);
}
return item;
}
/**
* shell_realms_realm_by_context_id:
* @realms: a #ShellRealms instance
* @context_id: A context id to search for.
*
* Returns: (transfer none) (nullable): The realm #ShellRealmItem for the realm
* with a workspace context id matching the specified value or %NULL if no such realm is found
*/
ShellRealmItem *
shell_realms_realm_by_context_id (ShellRealms *realms, guint context_id)
{
if (context_id == 0) {
return NULL;
}
for (GList *iter = realms->running_realms; iter; iter = iter->next) {
ShellRealmItem *item = iter->data;
if (shell_realm_item_get_context_id (item) == context_id) {
return item;
}
}
return NULL;
}
/**
* shell_realms_realm_by_window:
* @realms: a #ShellRealms instance
* @window: A window to find the corresponding realm for.
*
* Returns: (transfer none) (nullable): The realm #ShellRealmItem for the realm
* the application the window belongs to is running in or %NULL if no realm is found
*/
ShellRealmItem *
shell_realms_realm_by_window (ShellRealms *realms, MetaWindow *window)
{
const char *window_ns = meta_window_namespace (window);
if (!window_ns) {
return NULL;
}
for (GList *iter = realms->running_realms; iter; iter = iter->next) {
ShellRealmItem *item = iter->data;
if (g_strcmp0 (window_ns, shell_realm_item_get_namespace (item)) == 0) {
return item;
}
}
return NULL;
}
/**
* shell_realms_is_citadel_window:
* @realms: A #ShellRealms instance
* @window: A #MetaWindow
*
* Return #TRUE if the window belongs to an application running inside of Citadel
* rather than running in a realm.
*
* Returns: If window belongs to an application running in Citadel return #True
*/
gboolean
shell_realms_is_citadel_window (ShellRealms *realms, MetaWindow *window)
{
MetaDisplay *display = shell_global_get_display (shell_global_get());
MetaWorkspaceManager *workspace_manager = meta_display_get_workspace_manager (display);
const char *mutter_ns = meta_workspace_manager_mutter_namespace (workspace_manager);
const char *window_ns = meta_window_namespace (window);
return g_strcmp0 (mutter_ns, window_ns) == 0;
}
/**
* shell_realms_get_running_realms:
* @realms: the #ShellRealms instance
*
* Returns all running realms as a list of #ShellRealmItem
*
* Returns: (transfer none) (element-type ShellRealmItem): a list of
* #ShellRealmItem for all running realms.
*
*/
GList *
shell_realms_get_running_realms (ShellRealms *realms)
{
return realms->running_realms;
}
/**
* shell_realms_get_all_realms:
* @realms: the #ShellRealms instance
*
* Returns all realms as a list of #ShellRealmItem
*
* Returns: (transfer container) (element-type ShellRealmItem): all realms as
* a list of #ShellRealmItem
*/
GList *
shell_realms_get_all_realms (ShellRealms *realms)
{
return g_hash_table_get_values (realms->realms);
}
/**
* shell_realms_window_frames:
* @realms: the #ShellRealms instance
*
* Returns the window frames manager.
*
* Returns: (transfer none): a #ShellRealmsWindowFrames instance
*/
ShellRealmsWindowFrames *
shell_realms_window_frames (ShellRealms *realms)
{
return realms->frames;
}
static gboolean
shell_realms_is_on_running_list (ShellRealms *realms, ShellRealmItem *item)
{
return (g_list_index (realms->running_realms, item) >= 0);
}
static void
shell_realms_remove_running_realm (ShellRealms *realms, ShellRealmItem *item)
{
if (!shell_realms_is_on_running_list (realms, item)) {
return;
}
realms->running_realms = g_list_remove(realms->running_realms, item);
g_object_unref (item);
}
static void
shell_realms_update_running_list_for_item (ShellRealms *realms, ShellRealmItem *item)
{
gboolean running = shell_realm_item_is_running (item);
if (running) {
if (!shell_realms_is_on_running_list (realms, item)) {
realms->running_realms = g_list_append (realms->running_realms, g_object_ref (item));
}
// If realm is current realm, make sure it's at the front of the list
if (shell_realm_item_is_current (item) && g_list_index (realms->running_realms, item) > 0) {
realms->running_realms = g_list_remove (realms->running_realms, item);
realms->running_realms = g_list_prepend (realms->running_realms, item);
}
} else {
shell_realms_remove_running_realm (realms, item);
}
}
static void
shell_realms_set_current_item (ShellRealms *realms, ShellRealmItem *item)
{
if (realms->current_realm == item) {
return;
} else if (realms->current_realm) {
shell_realm_item_set_current_flag (realms->current_realm, FALSE);
}
shell_realm_item_set_current_flag (item, TRUE);
realms->current_realm = item;
}
/*
* If a realm already exists for 'realm_name' update it with provided information, otherwise
* create a new ShellRealmItem and add it to hash table unless it is a system realm. Returns
* the existing or newly created ShellRealmItem or returns NULL if the realm is a system realm.
*/
static ShellRealmItem *
shell_realms_add_realm_item (ShellRealms *realms,
const char *realm_name,
const char *description,
const char *namespace,
guint8 status)
{
ShellRealmItem *item = g_hash_table_lookup (realms->realms, realm_name);
if (item) {
shell_realm_item_update (item, realm_name, namespace, status);
return item;
}
item = shell_realm_item_new (realm_name, description, namespace, status);
if (shell_realm_item_is_system (item)) {
g_clear_object(&item);
return NULL;
}
g_hash_table_insert (realms->realms, g_strdup (realm_name), item);
return item;
}
void
shell_realms_update_realm (ShellRealms *realms,
const char *realm_name,
const char *description,
const char *namespace,
guint8 status)
{
ShellRealmItem *item = shell_realms_add_realm_item (realms, realm_name, description, namespace, status);
// Ignore system realms
if (!item) {
return;
}
shell_realms_update_running_list_for_item (realms, item);
shell_realm_item_set_tagged (item, TRUE);
// If realm is current, make sure it has a context. This also ensures that the
// first context requested is for the current realm.
if (shell_realm_item_is_current (item)) {
shell_realms_set_current_item (realms, item);
shell_realm_item_acquire_context (item);
}
}
// When processing list of realms returned from "List" dbus method,
//
// 1) first all the existing realms are "untagged"
// 2) As each realm on list is processed it is marked as "tagged"
// 3) After processing list, realm items that are not tagged were not in list
// returned from server so remove them.
//
void
shell_realms_untag_all (ShellRealms *realms)
{
GList *item_list = g_hash_table_get_values (realms->realms);
for (GList *iter = item_list; iter; iter = iter->next) {
ShellRealmItem *item = iter->data;
shell_realm_item_set_tagged (item, FALSE);
iter = iter->next;
}
g_list_free (item_list);
}
void
shell_realms_remove_untagged (ShellRealms *realms)
{
GHashTableIter iter;
gpointer value;
g_hash_table_iter_init (&iter, realms->realms);
while (g_hash_table_iter_next (&iter, NULL, &value)) {
ShellRealmItem *item = value;
if (!shell_realm_item_is_tagged (item)) {
shell_realms_remove_running_realm (realms, item);
g_hash_table_iter_remove (&iter);
}
}
}
// Signal handlers
void
shell_realms_on_realm_started (ShellRealms *realms, const gchar *realm_name, const gchar *namespace, guint8 status)
{
ShellRealmItem *item = shell_realms_realm_by_name (realms, realm_name);
if (item) {
shell_realm_item_update (item, realm_name, namespace, status);
if (!shell_realm_item_is_system (item)) {
shell_realms_update_running_list_for_item (realms, item);
shell_realm_item_acquire_context (item);
}
}
}
void
shell_realms_on_realm_current (ShellRealms *realms, const gchar *realm_name)
{
ShellRealmItem *item = shell_realms_realm_by_name (realms, realm_name);
if (item && realms->current_realm != item) {
shell_realms_set_current_item (realms, item);
shell_realms_update_running_list_for_item (realms, item);
shell_realm_item_activate_context (item);
g_signal_emit (realms, shell_realms_signals[REALM_CONTEXT_SWITCHED], 0);
}
}
void
shell_realms_on_realm_stopped (ShellRealms *realms, const gchar *realm_name)
{
ShellRealmItem *item = shell_realms_realm_by_name (realms, realm_name);
if (item) {
shell_realm_item_set_running_flag (item, FALSE);
shell_realms_remove_running_realm (realms, item);
}
}
void
shell_realms_on_realm_removed (ShellRealms *realms, const gchar *realm_name)
{
ShellRealmItem *item = shell_realms_realm_by_name (realms, realm_name);
if (item) {
shell_realms_remove_running_realm (realms, item);
g_hash_table_remove (realms->realms, realm_name);
}
}
void
shell_realms_on_realm_new (ShellRealms *realms, const gchar *realm_name, const gchar *description, guint8 status)
{
if (!g_hash_table_contains (realms->realms, realm_name)) {
(void) shell_realms_add_realm_item (realms, realm_name, description, NULL, status);
} else {
g_warning("ShellRealms: RealmNew signal received for realm '%s' but it already exists", realm_name);
}
}
/**
* shell_realms_get_default:
*
* Return Value: (transfer none): The global #ShellRealms singleton
*/
ShellRealms *
shell_realms_get_default(void)
{
static ShellRealms *instance;
if (instance == NULL) {
instance = g_object_new (SHELL_TYPE_REALMS, NULL);
}
return instance;
}
static void
shell_realms_init(ShellRealms *realms)
{
realms->realms = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_object_unref);
realms->running_realms = NULL;
realms->current_realm = NULL;
realms->frames = g_object_new (SHELL_TYPE_REALMS_WINDOW_FRAMES, NULL);
}
static void
shell_realms_finalize (GObject *obj)
{
ShellRealms *realms = SHELL_REALMS (obj);
realms->current_realm = NULL;
g_list_free_full (realms->running_realms, g_object_unref);
g_hash_table_destroy (realms->realms);
g_object_unref (realms->frames);
realms->frames = NULL;
G_OBJECT_CLASS (shell_realms_parent_class)->finalize (obj);
}
static void
shell_realms_get_property (GObject *gobject,
guint prop_id,
GValue *value,
GParamSpec *pspec)
{
ShellRealms *realms = SHELL_REALMS (gobject);
switch (prop_id) {
case PROP_CURRENT_REALM:
if (realms->current_realm) {
g_value_set_object (value, realms->current_realm);
}
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (gobject, prop_id, pspec);
break;
}
}
static void
shell_realms_class_init (ShellRealmsClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
object_class->get_property = shell_realms_get_property;
object_class->finalize = shell_realms_finalize;
shell_realms_signals[REALM_CONTEXT_SWITCHED] =
g_signal_new ("realm-context-switched",
G_TYPE_FROM_CLASS(klass),
G_SIGNAL_RUN_LAST,
0,
NULL, NULL, NULL,
G_TYPE_NONE, 0);
g_object_class_install_property (object_class,
PROP_CURRENT_REALM,
g_param_spec_object ("current-realm",
"Current Realm",
"The currently active realm",
SHELL_TYPE_REALM_ITEM,
G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
}

View File

@ -1,26 +0,0 @@
#ifndef __SHELL_REALMS_H__
#define __SHELL_REALMS_H__
#include <glib-object.h>
#include <meta/window.h>
#include "shell-realm-item.h"
#include "shell-realms-window-frames.h"
#define SHELL_TYPE_REALMS (shell_realms_get_type())
G_DECLARE_FINAL_TYPE(ShellRealms, shell_realms, SHELL, REALMS, GObject)
ShellRealms *shell_realms_get_default(void);
ShellRealmItem *shell_realms_current_realm (ShellRealms *realms);
ShellRealmItem *shell_realms_realm_by_name(ShellRealms *realms, const gchar *realm_name);
ShellRealmItem *shell_realms_realm_by_context_id (ShellRealms *realms, guint context_id);
ShellRealmItem *shell_realms_realm_by_window (ShellRealms *realms, MetaWindow *window);
gboolean shell_realms_is_citadel_window (ShellRealms *realms, MetaWindow *window);
ShellRealmsWindowFrames *shell_realms_window_frames (ShellRealms *realms);
GList *shell_realms_get_running_realms (ShellRealms *realms);
GList *shell_realms_get_all_realms (ShellRealms *realms);
#endif //__SHELL_REALMS_H__

View File

@ -15,7 +15,6 @@
#include "shell-window-tracker-private.h" #include "shell-window-tracker-private.h"
#include "shell-app-private.h" #include "shell-app-private.h"
#include "shell-global.h" #include "shell-global.h"
#include "shell-realms.h"
#include "st.h" #include "st.h"
/* This file includes modified code from /* This file includes modified code from
@ -130,22 +129,6 @@ check_app_id_prefix (ShellApp *app,
return g_str_has_prefix (shell_app_get_id (app), prefix); return g_str_has_prefix (shell_app_get_id (app), prefix);
} }
static const char *
get_window_realm_name (MetaWindow *window) {
ShellRealms *realms = shell_realms_get_default();
if (shell_realms_is_citadel_window (realms, window)) {
return NULL;
}
ShellRealmItem *item = shell_realms_realm_by_window(realms, window);
if (item) {
return shell_realm_item_get_realm_name (item);
} else {
return NULL;
}
}
/* /*
* get_app_from_window_wmclass: * get_app_from_window_wmclass:
* *
@ -163,7 +146,6 @@ get_app_from_window_wmclass (MetaWindow *window)
const char *wm_class; const char *wm_class;
const char *wm_instance; const char *wm_instance;
const char *sandbox_id; const char *sandbox_id;
const char *realm_name;
g_autofree char *app_prefix = NULL; g_autofree char *app_prefix = NULL;
appsys = shell_app_system_get_default (); appsys = shell_app_system_get_default ();
@ -172,8 +154,6 @@ get_app_from_window_wmclass (MetaWindow *window)
if (sandbox_id) if (sandbox_id)
app_prefix = g_strdup_printf ("%s.", sandbox_id); app_prefix = g_strdup_printf ("%s.", sandbox_id);
realm_name = get_window_realm_name (window);
/* Notes on the heuristics used here: /* Notes on the heuristics used here:
much of the complexity here comes from the desire to support much of the complexity here comes from the desire to support
Chrome apps. Chrome apps.
@ -211,23 +191,23 @@ get_app_from_window_wmclass (MetaWindow *window)
/* first try a match from WM_CLASS (instance part) to StartupWMClass */ /* first try a match from WM_CLASS (instance part) to StartupWMClass */
wm_instance = meta_window_get_wm_class_instance (window); wm_instance = meta_window_get_wm_class_instance (window);
app = shell_app_system_lookup_startup_wmclass (appsys, wm_instance, realm_name); app = shell_app_system_lookup_startup_wmclass (appsys, wm_instance);
if (app != NULL && check_app_id_prefix (app, app_prefix)) if (app != NULL && check_app_id_prefix (app, app_prefix))
return g_object_ref (app); return g_object_ref (app);
/* then try a match from WM_CLASS to StartupWMClass */ /* then try a match from WM_CLASS to StartupWMClass */
wm_class = meta_window_get_wm_class (window); wm_class = meta_window_get_wm_class (window);
app = shell_app_system_lookup_startup_wmclass (appsys, wm_class, realm_name); app = shell_app_system_lookup_startup_wmclass (appsys, wm_class);
if (app != NULL && check_app_id_prefix (app, app_prefix)) if (app != NULL && check_app_id_prefix (app, app_prefix))
return g_object_ref (app); return g_object_ref (app);
/* then try a match from WM_CLASS (instance part) to .desktop */ /* then try a match from WM_CLASS (instance part) to .desktop */
app = shell_app_system_lookup_desktop_wmclass (appsys, wm_instance, realm_name); app = shell_app_system_lookup_desktop_wmclass (appsys, wm_instance);
if (app != NULL && check_app_id_prefix (app, app_prefix)) if (app != NULL && check_app_id_prefix (app, app_prefix))
return g_object_ref (app); return g_object_ref (app);
/* finally, try a match from WM_CLASS to .desktop */ /* finally, try a match from WM_CLASS to .desktop */
app = shell_app_system_lookup_desktop_wmclass (appsys, wm_class, realm_name); app = shell_app_system_lookup_desktop_wmclass (appsys, wm_class);
if (app != NULL && check_app_id_prefix (app, app_prefix)) if (app != NULL && check_app_id_prefix (app, app_prefix))
return g_object_ref (app); return g_object_ref (app);
@ -256,19 +236,7 @@ get_app_from_id (MetaWindow *window,
appsys = shell_app_system_get_default (); appsys = shell_app_system_get_default ();
const char *realm_name = NULL; desktop_file = g_strconcat (id, ".desktop", NULL);
ShellRealms *realms = shell_realms_get_default();
ShellRealmItem *item = shell_realms_realm_by_window (realms, window);
if (item) {
realm_name = shell_realm_item_get_realm_name (item);
}
if (realm_name) {
desktop_file = g_strconcat ("realm-", realm_name, ".", id, ".desktop", NULL);
} else {
desktop_file = g_strconcat (id, ".desktop", NULL);
}
app = shell_app_system_lookup_app (appsys, desktop_file); app = shell_app_system_lookup_app (appsys, desktop_file);
if (app) if (app)
return g_object_ref (app); return g_object_ref (app);

View File

@ -39,7 +39,6 @@
</description> </description>
<releases> <releases>
<release version="41.1" date="2021-11-03"/>
<release version="41.0" date="2021-09-19"/> <release version="41.0" date="2021-09-19"/>
</releases> </releases>

View File

@ -9,7 +9,7 @@ endif
launcherconf.set('prefix', prefix) launcherconf.set('prefix', prefix)
launcherconf.set('libdir', libdir) launcherconf.set('libdir', libdir)
launcherconf.set('pkgdatadir', pkgdatadir) launcherconf.set('pkgdatadir', pkgdatadir)
launcherconf.set('gjs', gjs) launcherconf.set('gjs', gjs.path())
configure_file( configure_file(
input: prgname + '.in', input: prgname + '.in',

View File

@ -1,5 +1,5 @@
project('gnome-extensions-app', project('gnome-extensions-app',
version: '41.1', version: '41.0',
meson_version: '>= 0.53.0', meson_version: '>= 0.53.0',
license: 'GPLv2+' license: 'GPLv2+'
) )
@ -44,7 +44,7 @@ localedir = join_paths(datadir, 'locale')
metainfodir = join_paths(datadir, 'metainfo') metainfodir = join_paths(datadir, 'metainfo')
servicedir = join_paths(datadir, 'dbus-1', 'services') servicedir = join_paths(datadir, 'dbus-1', 'services')
gjs = '/usr/bin/gjs' gjs = find_program('gjs')
appstream_util = find_program('appstream-util', required: false) appstream_util = find_program('appstream-util', required: false)
desktop_file_validate = find_program('desktop-file-validate', required: false) desktop_file_validate = find_program('desktop-file-validate', required: false)

View File

@ -1,5 +1,5 @@
project('gnome-extensions-tool', 'c', project('gnome-extensions-tool', 'c',
version: '41.1', version: '41.0',
meson_version: '>= 0.53.0', meson_version: '>= 0.53.0',
license: 'GPLv2+' license: 'GPLv2+'
) )

View File

@ -1,5 +1,5 @@
project('shew', 'c', project('shew', 'c',
version: '41.1', version: '41.0',
meson_version: '>= 0.53.0', meson_version: '>= 0.53.0',
license: 'LGPLv2+', license: 'LGPLv2+',
) )