Compare commits

..

29 Commits

Author SHA1 Message Date
isa
c8892e7e73 Use Super+Tab to change realms 2024-02-15 15:58:16 -05:00
isa
6f159728d3 Add bla bla 2024-02-15 15:40:37 -05:00
d85bd654a3 Don't display label on full-screen windows 2021-12-13 14:21:01 -05:00
7d08587000 Ensure that Main.overview._overview exists before accessing it. 2021-12-13 11:30:43 -05:00
c93e5e6431 Citadel changes to gnome-shell 2021-12-03 14:04:05 -05:00
Florian Müllner
a1b537eebf Bump version to 41.1
Update NEWS.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2022>
2021-11-04 14:09:52 +01:00
Florian Müllner
d3c6dd75bb Revert !1999
The changes introduce crashes, so back out until we
figure those out.

This reverts commits ceee53aa0a4 and 5d5bfe492cd81.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2022>
2021-11-04 14:08:05 +01:00
Florian Müllner
a369371519 Revert "layout: Exclude hidden actors from struts"
The change unvealed a series of mutter bugs that for most
users are worse than the issue that was fixed. So revert
the change on stable branches until the mutter side is
fixed.

This reverts commit cd1102ff30b134e45e9b5ab48318e6a4eae03416.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2022>
2021-11-03 23:50:32 +01:00
Christian Kirbach
03a3ce062a Update German translation 2021-11-03 20:33:48 +00:00
Aleksandr Melman
6456fa0df4 Update Russian translation 2021-11-03 17:53:21 +00:00
Hugo Carvalho
1ec0f01cfc Update Portuguese translation 2021-11-03 11:50:26 +00:00
Kukuh Syafaat
0512d1fff4 Update Indonesian translation 2021-11-03 10:04:19 +00:00
Rafael Fontenelle
ba32dcc16b Update Brazilian Portuguese translation 2021-11-03 01:19:46 +00:00
Anders Jonsson
edcee44c72 Update Swedish translation 2021-11-02 21:05:16 +00:00
Matej Urbančič
be32cab39b Update Slovenian translation 2021-11-02 16:54:37 +00:00
Yuri Chornoivan
f8cdac49c6 Update Ukrainian translation 2021-11-02 16:31:49 +00:00
Florian Müllner
b6b9e755c7 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>
(cherry picked from commit b93342f72e871dc8472a9e92b23b45e0e7ded282)
2021-11-02 15:39:08 +01:00
Florian Müllner
1297d8dc30 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>
(cherry picked from commit 4d2b008966266ed96325dfd2cf7ebe41902aa270)
2021-11-02 15:39:08 +01:00
Florian Müllner
fd60591bb3 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>
(cherry picked from commit 09ed1c533c2350b81e2c79f84998e8d3b4c1199a)
2021-11-02 15:39:08 +01:00
Florian Müllner
1b5ff77d02 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>
(cherry picked from commit 79f448958b5ea16bc6a1f91117ed02a889712c90)
2021-11-02 15:39:08 +01:00
Sebastian Keller
488fb46edf 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>
(cherry picked from commit bc32a5210823c40016084c1d128c3113015e08cf)
2021-11-02 15:38:54 +01:00
Carlos Garnacho
ddf03b5d94 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 1cefd589da2edca84d19b285d553e2a68cda3e37.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2010>
(cherry picked from commit ff4ff66498ec374fce5b22b8bc01b523d1304e0b)
2021-11-02 15:38:35 +01:00
Florian Müllner
fc680556f5 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>
(cherry picked from commit cc5cc0d653ccd307475921bf069773d44b34aa5e)
2021-11-02 15:38:20 +01:00
Carlos Garnacho
a2f6efa5e1 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.

(Cherry-picked from commit 01775609525b12de752a2f7ebac88baee9b041d3)
2021-11-01 18:34:57 +01:00
Carlos Garnacho
62fce73aee 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

(Cherry-picked from commit 047691b0d3471630ec80e32f371291dd2ef02419)
2021-11-01 18:34:46 +01:00
Carlos Garnacho
b1538fcb20 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.

(Cherry-picked from commit 286cfdc6d48dc4315df54d29d7d16b5198d92a56)
2021-11-01 18:34:27 +01:00
eshagh shahidani
025588b89a Update Persian translation 2021-10-25 20:42:25 +00:00
Rūdolfs Mazurs
ce2ae0642f Update Latvian translation 2021-10-25 17:56:42 +00:00
Selyan Slimane AMIRI
8c5d552cc2 Update Kabyle translation 2021-10-16 14:35:12 +00:00
79 changed files with 5180 additions and 2343 deletions

24
NEWS
View File

@ -1,3 +1,27 @@
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
==== ====

1
bla bla Normal file
View File

@ -0,0 +1 @@
bla test

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(ssxxa{sv})" name="events" direction="out"/> <arg type="a(ssbxxa{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,6 +230,14 @@
<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><![CDATA[['<Super>Tab']]]></default>
<summary>Open Realm Switcher</summary>
</key>
<key name="switch-realm-backward" type="as">
<default><![CDATA[['<Super><Shift>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, &:checked { @include button(active);} &:active { @include button(active);}
} }
// buttons in dialogs // buttons in dialogs

View File

@ -49,3 +49,5 @@
// 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

@ -0,0 +1,17 @@
.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,6 +29,7 @@ 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.path()) serviceconf.set('gjs', gjs)
serviceconf.set('pkgdatadir', pkgdatadir) serviceconf.set('pkgdatadir', pkgdatadir)
configure_file( configure_file(

View File

@ -142,5 +142,12 @@
<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,12 +76,10 @@ class AccessDialog extends ModalDialog.ModalDialog {
} }
open() { open() {
if (!super.open()) 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,6 +919,43 @@ 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;
@ -1619,6 +1656,24 @@ 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);
@ -2222,6 +2277,11 @@ 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,6 +12,7 @@ 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
@ -46,8 +47,11 @@ function _getBeginningOfDay(date) {
} }
function _getEndOfDay(date) { function _getEndOfDay(date) {
const ret = _getBeginningOfDay(date); let ret = new Date(date.getTime());
ret.setDate(ret.getDate() + 1); ret.setHours(23);
ret.setMinutes(59);
ret.setSeconds(59);
ret.setMilliseconds(999);
return ret; return ret;
} }
@ -78,11 +82,12 @@ 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) { constructor(id, date, end, summary, allDay) {
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;
} }
}; };
@ -170,26 +175,13 @@ function _datesEqual(a, b) {
return true; return true;
} }
/** function _dateIntervalsOverlap(a0, a1, b0, b1) {
* Checks whether an event overlaps a given interval if (a1 <= b0)
* return false;
* @param {Date} e0 Beginning of the event else if (b1 <= a0)
* @param {Date} e1 End of the event return false;
* @param {Date} i0 Beginning of the interval else
* @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
@ -287,10 +279,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, startTime, endTime] = appointments[n]; const [id, summary, allDay, 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); let event = new CalendarEvent(id, date, end, summary, allDay);
this._events.set(event.id, event); this._events.set(event.id, event);
changed = true; changed = true;
@ -305,7 +297,7 @@ class DBusEventSource extends EventSourceBase {
let changed = false; let changed = false;
for (const id of ids) for (const id of ids)
changed = changed || this._events.delete(id); changed |= this._events.delete(id);
if (changed) if (changed)
this.emit('changed'); this.emit('changed');
@ -318,7 +310,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 = changed || this._events.delete(id); changed |= this._events.delete(id);
} }
if (changed) if (changed)
@ -355,7 +347,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 (_eventOverlapsInterval(event.date, event.end, begin, end)) if (_dateIntervalsOverlap(event.date, event.end, begin, end))
yield event; yield event;
} }
} }
@ -509,7 +501,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.setDate(iter.getDate() + 1); iter.setTime(iter.getTime() + MSECS_IN_DAY);
} }
// 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
@ -610,8 +602,10 @@ 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( let beginDate = new Date(this._selectedDate);
this._selectedDate.getFullYear(), this._selectedDate.getMonth(), 1); beginDate.setDate(1);
beginDate.setSeconds(0);
beginDate.setHours(12);
this._calendarBegin = new Date(beginDate); this._calendarBegin = new Date(beginDate);
this._markedAsToday = now; this._markedAsToday = now;
@ -620,7 +614,7 @@ var Calendar = GObject.registerClass({
let startsOnWeekStart = daysToWeekStart == 0; let startsOnWeekStart = daysToWeekStart == 0;
let weekPadding = startsOnWeekStart ? 7 : 0; let weekPadding = startsOnWeekStart ? 7 : 0;
beginDate.setDate(beginDate.getDate() - (weekPadding + daysToWeekStart)); beginDate.setTime(beginDate.getTime() - (weekPadding + daysToWeekStart) * MSECS_IN_DAY);
let layout = this.layout_manager; let layout = this.layout_manager;
let iter = new Date(beginDate); let iter = new Date(beginDate);
@ -691,7 +685,7 @@ var Calendar = GObject.registerClass({
layout.attach(label, rtl ? 7 : 0, row, 1, 1); layout.attach(label, rtl ? 7 : 0, row, 1, 1);
} }
iter.setDate(iter.getDate() + 1); iter.setTime(iter.getTime() + MSECS_IN_DAY);
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 && this.prompt.warning !== '') if (this._passwordEntry && warning !== '')
Util.wiggle(this._passwordEntry); Util.wiggle(this._passwordEntry);
}); });
warningBox.add_child(warning); warningBox.add_child(warning);

View File

@ -127,10 +127,9 @@ class EventsSection extends St.Button {
} }
setDate(date) { setDate(date) {
this._startDate = const day = [date.getFullYear(), date.getMonth(), date.getDate()];
new Date(date.getFullYear(), date.getMonth(), date.getDate()); this._startDate = new Date(...day);
this._endDate = this._endDate = new Date(...day, 23, 59, 59, 999);
new Date(date.getFullYear(), date.getMonth(), date.getDate() + 1);
this._updateTitle(); this._updateTitle();
this._reloadEvents(); this._reloadEvents();
@ -157,11 +156,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);
@ -170,8 +169,8 @@ class EventsSection extends St.Button {
} }
_formatEventTime(event) { _formatEventTime(event) {
const allDay = const allDay = event.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) {
@ -185,13 +184,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) { if (event.date < this._startDate && !event.allDay) {
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) { if (event.end > this._endDate && !event.allDay) {
if (rtl) if (rtl)
title = '%s%s'.format(ELLIPSIS_CHAR, title); title = '%s%s'.format(ELLIPSIS_CHAR, title);
else else

View File

@ -6,8 +6,6 @@ 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,6 +22,7 @@ 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();
@ -73,21 +74,6 @@ 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)
@ -147,7 +133,7 @@ var ExtensionManager = class {
} }
_callExtensionEnable(uuid) { _callExtensionEnable(uuid) {
if (!this._extensionSupportsSessionMode(uuid)) if (!Main.sessionMode.allowExtensions)
return; return;
let extension = this.lookup(uuid); let extension = this.lookup(uuid);
@ -329,7 +315,6 @@ 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);
@ -414,7 +399,7 @@ var ExtensionManager = class {
} }
_callExtensionInit(uuid) { _callExtensionInit(uuid) {
if (!this._extensionSupportsSessionMode(uuid)) if (!Main.sessionMode.allowExtensions)
return false; return false;
let extension = this.lookup(uuid); let extension = this.lookup(uuid);
@ -503,15 +488,13 @@ 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;
@ -606,6 +589,9 @@ 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;
@ -614,20 +600,34 @@ 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() {
// Take care of added or removed sessionMode extensions // For now sessionMode.allowExtensions controls extensions from both the
this._onEnabledExtensionsChanged(); // 'enabled-extensions' preference and the sessionMode.enabledExtensions
this._enableAllExtensions(); // property; it might make sense to make enabledExtensions independent
// 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,6 +934,13 @@ 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();
@ -967,9 +974,6 @@ 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;
@ -980,7 +984,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) if (actorData.affectsInputRegion && wantsInputRegion && actorData.actor.get_paint_visibility())
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 / 60; let interval = 1000 / Clutter.get_default_frame_rate();
this._pointerWatch = PointerWatcher.getPointerWatcher().addWatch(interval, this.scrollToMousePos.bind(this)); this._pointerWatch = PointerWatcher.getPointerWatcher().addWatch(interval, this.scrollToMousePos.bind(this));
} }
} }
@ -1898,7 +1898,6 @@ 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);
@ -1931,7 +1930,6 @@ 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,6 +49,7 @@ 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
@ -91,6 +92,7 @@ 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;
@ -247,23 +249,6 @@ 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();
@ -281,6 +266,8 @@ 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,24 +663,12 @@ var MessageListSection = GObject.registerClass({
} }
removeMessage(message, animate) { removeMessage(message, animate) {
const messages = this._messages; if (!this._messages.includes(message))
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,
@ -689,12 +677,10 @@ 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_index(); this._lastActiveWorkspaceIndex = workspaceManager.get_active_workspace_id();
} }
_onDragEnd(time) { _onDragEnd(time) {

View File

@ -342,6 +342,8 @@ 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);
@ -653,6 +655,7 @@ 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

@ -0,0 +1,37 @@
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

@ -0,0 +1,59 @@
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

@ -0,0 +1,326 @@
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

@ -0,0 +1,325 @@
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

@ -0,0 +1,323 @@
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

@ -0,0 +1,133 @@
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 false; return;
return super.open(); super.open();
} }
}); });

View File

@ -20,6 +20,7 @@ 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,
@ -70,9 +71,10 @@ const _modes = {
'user': { 'user': {
hasOverview: true, hasOverview: true,
showCalendarEvents: true, showCalendarEvents: false,
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,6 +542,7 @@ 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 / Log Out'), true); _('Power Off'), 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_full('swipe', Clutter.EventPhase.CAPTURE, this._touchGesture); global.stage.add_action(this._touchGesture);
if (params.allowDrag) { if (params.allowDrag) {
this._dragGesture = new TouchSwipeGesture(allowedModes, 1, this._dragGesture = new TouchSwipeGesture(allowedModes, 1,

View File

@ -676,14 +676,16 @@ var UnlockDialog = GObject.registerClass({
} }
_ensureAuthPrompt() { _ensureAuthPrompt() {
if (!this._authPrompt) { if (this._authPrompt)
this._authPrompt = new AuthPrompt.AuthPrompt(this._gdmClient, return;
AuthPrompt.AuthPromptMode.UNLOCK_ONLY);
this._authPrompt.connect('failed', this._fail.bind(this)); this._authPrompt = new AuthPrompt.AuthPrompt(this._gdmClient,
this._authPrompt.connect('cancelled', this._fail.bind(this)); AuthPrompt.AuthPromptMode.UNLOCK_ONLY);
this._authPrompt.connect('reset', this._onReset.bind(this)); this._authPrompt.connect('failed', this._fail.bind(this));
this._promptBox.add_child(this._authPrompt); this._authPrompt.connect('cancelled', this._fail.bind(this));
} 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);
@ -870,11 +872,7 @@ var UnlockDialog = GObject.registerClass({
} }
finish(onComplete) { finish(onComplete) {
if (!this._authPrompt) { this._ensureAuthPrompt();
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 false; return;
return super.open(); super.open();
} }
_buildLayout() { _buildLayout() {

View File

@ -198,6 +198,8 @@ 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));
@ -253,6 +255,8 @@ 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];
@ -261,7 +265,12 @@ var WorkspaceTracker = class {
if (win.is_on_all_workspaces()) if (win.is_on_all_workspaces())
continue; continue;
let workspaceIndex = win.get_workspace().index(); let workspace = win.get_workspace();
if (workspace.get_context_id() != current_context_id)
continue;
let workspaceIndex = workspace.index();
emptyWorkspaces[workspaceIndex] = false; emptyWorkspaces[workspaceIndex] = false;
} }
@ -339,6 +348,28 @@ 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;
@ -936,7 +967,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_full('app-switch', Clutter.EventPhase.CAPTURE, appSwitchAction); global.stage.add_action(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);
@ -954,7 +985,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_full('unfullscreen', Clutter.EventPhase.CAPTURE, topDragAction); global.stage.add_action(topDragAction);
this._workspaceAnimation = this._workspaceAnimation =
new WorkspaceAnimation.WorkspaceAnimationController(); new WorkspaceAnimation.WorkspaceAnimationController();
@ -1641,6 +1672,14 @@ 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,11 +1,12 @@
// -*- 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, St } = imports.gi; const { GLib, Meta, Shell, 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) {
@ -24,6 +25,23 @@ 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,6 +122,10 @@ 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) => {
@ -450,6 +454,13 @@ 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;
@ -499,6 +510,7 @@ 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.0', version: '41.1',
meson_version: '>= 0.53.0', meson_version: '>= 0.53.0',
license: 'GPLv2+' license: 'GPLv2+'
) )
@ -8,9 +8,10 @@ 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 each development cycle, # The API version is increased automatically each development cycle,
# starting with 0 in 3.23.x # starting with 0 in 3.23.x
mutter_api_version = '10' api_version = split_version[0].to_int() - 32
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
@ -18,8 +19,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'
@ -71,8 +72,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')
@ -138,7 +139,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 = find_program('gjs') gjs = '/usr/bin/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-11-13 20:24+0000\n" "POT-Creation-Date: 2021-08-17 23:56+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,11 +257,23 @@ 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:133 #: data/org.gnome.shell.gschema.xml.in:109
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: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 "
@ -274,112 +286,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:149 #: data/org.gnome.shell.gschema.xml.in:157
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:150 #: data/org.gnome.shell.gschema.xml.in:158
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: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 "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: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 ""
"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: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 ""
"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: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 "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: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 ""
"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:178 #: data/org.gnome.shell.gschema.xml.in:186
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:179 #: data/org.gnome.shell.gschema.xml.in:187
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: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 ""
"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: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 ""
"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:192 #: data/org.gnome.shell.gschema.xml.in:200
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:193 #: data/org.gnome.shell.gschema.xml.in:201
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:199 #: data/org.gnome.shell.gschema.xml.in:207
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:203 #: data/org.gnome.shell.gschema.xml.in:211
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:207 #: data/org.gnome.shell.gschema.xml.in:215
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:211 #: data/org.gnome.shell.gschema.xml.in:219
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:215 #: data/org.gnome.shell.gschema.xml.in:223
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:219 #: data/org.gnome.shell.gschema.xml.in:227
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:223 #: data/org.gnome.shell.gschema.xml.in:231
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:227 #: data/org.gnome.shell.gschema.xml.in:235
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:231 #: data/org.gnome.shell.gschema.xml.in:239
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: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 "Limitar el intercambiador al área de trabajo actual." msgstr "Limitar el intercambiador al área de trabajo actual."
#: 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."
@ -388,11 +400,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:258 #: data/org.gnome.shell.gschema.xml.in:266
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: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-"
@ -402,7 +414,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: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."
@ -410,59 +422,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:278 #: data/org.gnome.shell.gschema.xml.in:286
msgid "Locations" msgid "Locations"
msgstr "Ubicaciones" msgstr "Ubicaciones"
#: 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 "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:289 #: data/org.gnome.shell.gschema.xml.in:297
msgid "Automatic location" msgid "Automatic location"
msgstr "Ubicación automática" msgstr "Ubicación automática"
#: 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 "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:297 #: data/org.gnome.shell.gschema.xml.in:305
msgid "Location" msgid "Location"
msgstr "Ubicación" msgstr "Ubicación"
#: 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 "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: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 "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: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 ""
"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: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 ""
"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:327 #: data/org.gnome.shell.gschema.xml.in:335
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:335 #: data/org.gnome.shell.gschema.xml.in:343
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: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 ""
"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"
@ -498,18 +510,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: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 "Cancelar" msgstr "Cancelar"
#. 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 "Contraseña" msgstr "Contraseña"
@ -532,8 +544,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: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 "Nombre de usuario" msgstr "Nombre de usuario"
@ -638,65 +650,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:121 #: js/misc/util.js:120
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:157 #: js/misc/util.js:156
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:165 #: js/misc/util.js:164
#, 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:182 #: js/misc/util.js:181
msgid "Just now" msgid "Just now"
msgstr "Ahora mismo" msgstr "Ahora mismo"
#: 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"
msgstr[0] "Hace %d minuto" msgstr[0] "Hace %d minuto"
msgstr[1] "Hace %d minutos" msgstr[1] "Hace %d minutos"
#: 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"
msgstr[0] "Hace %d hora" msgstr[0] "Hace %d hora"
msgstr[1] "Hace %d horas" msgstr[1] "Hace %d horas"
#: 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 "Ayer" msgstr "Ayer"
#: 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"
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: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"
msgstr[0] "Hace %d semana" msgstr[0] "Hace %d semana"
msgstr[1] "Hace %d semanas" msgstr[1] "Hace %d semanas"
#: 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"
msgstr[0] "Hace %d mes" msgstr[0] "Hace %d mes"
msgstr[1] "Hace %d meses" msgstr[1] "Hace %d meses"
#: 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"
@ -704,20 +716,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: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 "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: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"
@ -725,7 +737,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 de %B, %H%M" msgstr "%d de %B, %H%M"
@ -733,7 +745,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: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 de %B de %Y, %H%M" msgstr "%d de %B de %Y, %H%M"
@ -741,20 +753,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: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 "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: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"
@ -762,7 +774,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 de %B, %l%M %p" msgstr "%d de %B, %l%M %p"
@ -770,17 +782,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: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 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:49 #: js/portalHelper/main.js:42
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: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."
@ -1025,39 +1037,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: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 ""
"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: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 "Conectar" msgstr "Conectar"
#: js/ui/components/networkAgent.js:215 #: js/ui/components/networkAgent.js:216
msgid "Key" msgid "Key"
msgstr "Clave" msgstr "Clave"
#: 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 "Contraseña de la clave privada" msgstr "Contraseña de la clave privada"
#: js/ui/components/networkAgent.js:274 #: js/ui/components/networkAgent.js:275
msgid "Identity" msgid "Identity"
msgstr "Identidad" msgstr "Identidad"
#: js/ui/components/networkAgent.js:288 #: js/ui/components/networkAgent.js:289
msgid "Service" msgid "Service"
msgstr "Servicio" msgstr "Servicio"
#: 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 "Autenticación requerida" msgstr "Autenticación requerida"
#: 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 "
@ -1066,31 +1078,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: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 "Autenticación 802.1X cableada" msgstr "Autenticación 802.1X cableada"
#: js/ui/components/networkAgent.js:324 #: js/ui/components/networkAgent.js:325
msgid "Network name" msgid "Network name"
msgstr "Nombre de la red" msgstr "Nombre de la red"
#: 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 "Autenticación DSL" msgstr "Autenticación 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 "Código PIN requerido" msgstr "Código PIN requerido"
#: 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 "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: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
@ -1382,24 +1394,24 @@ msgstr "%s (remoto)"
msgid "%s (console)" msgid "%s (console)"
msgstr "%s (consola)" msgstr "%s (consola)"
#: js/ui/extensionDownloader.js:232 #: js/ui/extensionDownloader.js:194
msgid "Install" msgid "Install"
msgstr "Instalar" msgstr "Instalar"
#: js/ui/extensionDownloader.js:238 #: js/ui/extensionDownloader.js:200
msgid "Install Extension" msgid "Install Extension"
msgstr "Instalar extensión" msgstr "Instalar extensión"
#: 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 "¿Descargar e instalar «%s» desde extensions.gnome.org?" msgstr "¿Descargar e instalar «%s» desde extensions.gnome.org?"
#: js/ui/extensionSystem.js:266 #: js/ui/extensionSystem.js:253
msgid "Extension Updates Available" msgid "Extension Updates Available"
msgstr "Actualizaciones de extensiones disponibles" msgstr "Actualizaciones de extensiones disponibles"
#: js/ui/extensionSystem.js:267 #: js/ui/extensionSystem.js:254
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."
@ -1444,8 +1456,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. Ésto es el " "Acaba de pulsar la tecla «Mayúsculas» durante 8 segundos. Ésta es la "
"atajo del teclado para la característica «Teclas lentas», que afecta la " "combinación de teclas 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
@ -1496,7 +1508,7 @@ msgstr "Apagar"
msgid "Leave Off" msgid "Leave Off"
msgstr "Dejar apagado" msgstr "Dejar apagado"
#: js/ui/keyboard.js:226 #: js/ui/keyboard.js:227
msgid "Region & Language Settings" msgid "Region & Language Settings"
msgstr "Configuración de región e idioma" msgstr "Configuración de región e idioma"
@ -1549,11 +1561,11 @@ msgstr "Ver fuente"
msgid "Web Page" msgid "Web Page"
msgstr "Página web" msgstr "Página web"
#: 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 "Sesión iniciada como usuario con privilegios" msgstr "Sesión iniciada como usuario con privilegios"
#: 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."
@ -1561,15 +1573,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:340 #: js/ui/main.js:344
msgid "Screen Lock disabled" msgid "Screen Lock disabled"
msgstr "Pantalla de bloqueo desactivada" msgstr "Pantalla de bloqueo desactivada"
#: 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 "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:1443 #: js/ui/messageTray.js:1440
msgid "System Information" msgid "System Information"
msgstr "Información del sistema" msgstr "Información del sistema"
@ -1603,47 +1615,47 @@ msgstr "Deshacer"
msgid "Overview" msgid "Overview"
msgstr "Vista general" msgstr "Vista general"
#: js/ui/padOsd.js:95 #: js/ui/padOsd.js:96
msgid "New shortcut…" msgid "New shortcut…"
msgstr "Atajo nuevo…" msgstr "Atajo nuevo…"
#: js/ui/padOsd.js:142 #: js/ui/padOsd.js:143
msgid "Application defined" msgid "Application defined"
msgstr "Aplicación definida" msgstr "Aplicación definida"
#: js/ui/padOsd.js:143 #: js/ui/padOsd.js:144
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:144 #: js/ui/padOsd.js:145
msgid "Switch monitor" msgid "Switch monitor"
msgstr "Cambiar monitor" msgstr "Cambiar monitor"
#: js/ui/padOsd.js:145 #: js/ui/padOsd.js:146
msgid "Assign keystroke" msgid "Assign keystroke"
msgstr "Asignar pulsación" msgstr "Asignar pulsación"
#: js/ui/padOsd.js:211 #: js/ui/padOsd.js:212
msgid "Done" msgid "Done"
msgstr "Hecho" msgstr "Hecho"
#: js/ui/padOsd.js:716 #: js/ui/padOsd.js:718
msgid "Edit…" msgid "Edit…"
msgstr "Editar…" msgstr "Editar…"
#: 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 "Nada" msgstr "Nada"
#: js/ui/padOsd.js:829 #: js/ui/padOsd.js:831
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:830 #: js/ui/padOsd.js:832
msgid "Press Esc to exit" msgid "Press Esc to exit"
msgstr "Pulse Esc para salir" msgstr "Pulse Esc para salir"
#: js/ui/padOsd.js:833 #: js/ui/padOsd.js:835
msgid "Press any key to exit" msgid "Press any key to exit"
msgstr "Pulse cualquier tecla para salir" msgstr "Pulse cualquier tecla para salir"
@ -1653,12 +1665,12 @@ msgstr "Pulse cualquier tecla para salir"
msgid "Activities" msgid "Activities"
msgstr "Actividades" msgstr "Actividades"
#: 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 "Sistema" msgstr "Sistema"
#: js/ui/panel.js:674 #: js/ui/panel.js:658
msgid "Top Bar" msgid "Top Bar"
msgstr "Barra superior" msgstr "Barra superior"
@ -1697,7 +1709,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:155 #: js/ui/screenshot.js:141
msgid "Screenshot taken" msgid "Screenshot taken"
msgstr "Captura de pantalla realizada" msgstr "Captura de pantalla realizada"
@ -2396,10 +2408,13 @@ 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"
@ -2756,7 +2771,6 @@ 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"
@ -2773,7 +2787,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: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"
@ -2782,7 +2796,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: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"
@ -2912,12 +2926,7 @@ 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:62 #: subprojects/extensions-tool/src/command-prefs.c:79
#, 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"
@ -2942,6 +2951,10 @@ 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"
@ -3072,19 +3085,6 @@ 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-11-17 10:36+0000\n" "POT-Creation-Date: 2021-09-09 03:40+0000\n"
"PO-Revision-Date: 2021-11-19 15:48+0330\n" "PO-Revision-Date: 2021-10-21 19:49+0330\n"
"Last-Translator: MohammadSaleh Kamyab <mskf1383@protonmail.com>\n" "Last-Translator: eshagh <eshagh094@gmail.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 2.4.2\n" "X-Generator: Poedit 3.0\n"
#: data/50-gnome-shell-launchers.xml:6 #: data/50-gnome-shell-launchers.xml:6
msgid "Launchers" msgid "Launchers"
@ -98,8 +98,7 @@ 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 "" msgid "Allows access to internal debugging and monitoring tools using the Alt-F2 dialog."
"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
@ -108,15 +107,13 @@ 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 " "GNOME Shell extensions have a UUID property; this key lists extensions which should be loaded. Any extension that "
"be loaded. Any extension that wants to be loaded needs to be in this list. You can " "wants to be loaded needs to be in this list. You can also manipulate this list with the EnableExtension and "
"also manipulate this list with the EnableExtension and DisableExtension D-Bus " "DisableExtension D-Bus methods on org.gnome.Shell."
"methods on org.gnome.Shell."
msgstr "" msgstr ""
"افزونه‌های گنوم‌شل مشخصهٔ UUID دارند؛ این کلید، افزونه‌هایی که باید بار شوند را فهرست " "افزونه‌های گنوم‌شل مشخصهٔ UUID دارند؛ این کلید، افزونه‌هایی که باید بار شوند را فهرست می‌کند. هر افزونه‌ای که می‌خواهد بار "
"می‌کند. هر افزونه‌ای که می‌خواهد بار شود، باید در این فهرست باشد. شما همچنین می‌توانید " "شود، باید در این فهرست باشد. شما همچنین می‌توانید این فهرست را از طریق EnableExtension و DisableExtension (روش‌های D-"
"این فهرست را از طریق EnableExtension و DisableExtension (روش‌های D-Bus) در org.gnome." "Bus) در org.gnome.Shell نیز بسازید."
"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"
@ -124,27 +121,21 @@ 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 " "GNOME Shell extensions have a UUID property; this key lists extensions which should be disabled, even if loaded as "
"be disabled, even if loaded as part of the current mode. You can also manipulate " "part of the current mode. You can also manipulate this list with the EnableExtension and DisableExtension D-Bus "
"this list with the EnableExtension and DisableExtension D-Bus methods on org.gnome." "methods on org.gnome.Shell. This key takes precedence over the “enabled-extensions” setting."
"Shell. This key takes precedence over the “enabled-extensions” setting."
msgstr "" msgstr ""
"افزونه‌های پوستهٔ گنوم شل شناسه‌ای یکتا دارند؛ این کلید، افزونه‌هایی که باید غیرفعّال " "افزونه‌های پوستهٔ گنوم شل شناسه‌ای یکتا دارند؛ این کلید، افزونه‌هایی که باید غیرفعّال شوند را فهرست می‌کند، حتا اگر به عنوان "
"شوند را فهرست می‌کند، حتا اگر به عنوان بخشی از حالت فعلی بار شده باشند. می‌توانید این " "بخشی از حالت فعلی بار شده باشند. می‌توانید این فهرست را از طریق روش‌های دی‌باس EnableExtension و DisableExtension در org."
"فهرست را از طریق روش‌های دی‌باس EnableExtension و DisableExtension در org.gnome.Shell " "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 "" msgid "Disable all extensions the user has enabled without affecting the “enabled-extension” setting."
"Disable all extensions the user has enabled without affecting the “enabled-" msgstr "از کار انداختن تمام افزونه‌هایی که کاربر به کار انداخته، بدون اثر روی تنظیمات «افزونهٔ فعّال»."
"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"
@ -152,22 +143,18 @@ 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 " "GNOME Shell will only load extensions that claim to support the current running version. Enabling this option will "
"version. Enabling this option will disable this check and try to load all " "disable this check and try to load all extensions regardless of the versions they claim to support."
"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 "" msgid "The applications corresponding to these identifiers will be displayed in the favorites area."
"The applications corresponding to these identifiers will be displayed in the "
"favorites area."
msgstr "برنامه‌های مشابه این شناسه‌ها در قسمت مورد علاقه‌ها نمایش داده می‌شود." msgstr "برنامه‌های مشابه این شناسه‌ها در قسمت مورد علاقه‌ها نمایش داده می‌شود."
#: data/org.gnome.shell.gschema.xml.in:62 #: data/org.gnome.shell.gschema.xml.in:62
@ -184,27 +171,21 @@ 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 "" msgid "This key overrides the automatic hiding of the “Log out” menu item in single-user, single-session situations."
"This key overrides the automatic hiding of the “Log out” menu item in single-user, " msgstr "این کلید، نهفتن خودکار «خروج» در فهرست را در حالت‌های تک‌کاربر، تک‌نشست بازنویسی می‌کند."
"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 " "The shell will request a password when an encrypted device or a remote filesystem is mounted. If the password can be "
"is mounted. If the password can be saved for future use a “Remember Password” " "saved for future use a “Remember Password” checkbox will be present. This key sets the default state of the checkbox."
"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"
@ -212,12 +193,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, " "The shell will only show a Bluetooth menu item if a Bluetooth adapter is powered, or if there were devices set up "
"or if there were devices set up associated with the default adapter. This will be " "associated with the default adapter. This will be reset if the default adapter is ever seen not to have devices "
"reset if the default adapter is ever seen not to have devices associated to it." "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"
@ -225,15 +206,13 @@ 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. " "This key determines for which version the “Welcome to GNOME” dialog was last shown. An empty string represents the "
"An empty string represents the oldest possible version, and a huge number will " "oldest possible version, and a huge number will represent versions that do not exist yet. This huge number can be used "
"represent versions that do not exist yet. This huge number can be used to " "to effectively disable the dialog."
"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"
@ -241,15 +220,13 @@ 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 " "Layout of the app picker. Each entry in the array is a page. Pages are stored in the order they appear in GNOME Shell. "
"the order they appear in GNOME Shell. Each page contains an “application id” → " "Each page contains an “application id” → 'data' pair. Currently, the following values are stored as 'data': • "
"'data' pair. Currently, the following values are stored as 'data': • “position”: " "“position”: the position of the application icon in the page"
"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"
@ -345,11 +322,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 " "If true, only applications that have windows on the current workspace are shown in the switcher. Otherwise, all "
"the switcher. Otherwise, all applications are included." "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."
@ -357,21 +334,16 @@ 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 " "Configures how the windows are shown in the switcher. Valid possibilities are “thumbnail-only” (shows a thumbnail of "
"“thumbnail-only” (shows a thumbnail of the window), “app-icon-only” (shows only the " "the window), “app-icon-only” (shows only the application icon) or “both”."
"application icon) or “both”."
msgstr "" msgstr ""
"نحوه نمایش پنجره‌ها را در تعویضگر پیکربندی می‌کند. مقدارهای ممکن عبارتند از " "نحوه نمایش پنجره‌ها را در تعویضگر پیکربندی می‌کند. مقدارهای ممکن عبارتند از «thumbnail-only» (نمایش تصویر بندانگشتی از "
"«thumbnail-only» (نمایش تصویر بندانگشتی از پنجره)، «app-icon-only» (نمایش تنها " "پنجره)، «app-icon-only» (نمایش تنها شمایل برنامه) یا «both» (هر دو)."
"شمایل برنامه) یا «both» (هر دو)."
#: data/org.gnome.shell.gschema.xml.in:268 #: data/org.gnome.shell.gschema.xml.in:268
msgid "" msgid "If true, only windows from the current workspace are shown in the switcher. Otherwise, all windows are included."
"If true, only windows from the current workspace are shown in the switcher. "
"Otherwise, all windows are included."
msgstr "" msgstr ""
"اگر درست باشد، تنها پنجره‌های فضای‌کاری فعلی در تعویض‌گر نمایش داده می‌شود. در غیر این " "اگر درست باشد، تنها پنجره‌های فضای‌کاری فعلی در تعویض‌گر نمایش داده می‌شود. در غیر این صورت، تمام پنجره‌ها اضافه می‌شوند."
"صورت، تمام پنجره‌ها اضافه می‌شوند."
#: data/org.gnome.shell.gschema.xml.in:278 #: data/org.gnome.shell.gschema.xml.in:278
msgid "Locations" msgid "Locations"
@ -421,25 +393,23 @@ 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 #: js/dbusServices/extensions/ui/extension-prefs-dialog.ui:28 subprojects/extensions-app/data/ui/extensions-window.ui:241
#: 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 " "Were very sorry, but theres been a problem: the settings for this extension cant be displayed. We recommend that "
"be displayed. We recommend that you report the issue to the extension authors." "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"
@ -453,20 +423,17 @@ msgstr "صفحهٔ خانگی"
msgid "Visit extension homepage" 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/networkAgent.js:110 js/ui/components/polkitAgent.js:138 #: 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:228 #: js/ui/shellMountOperation.js:376 js/ui/shellMountOperation.js:386 js/ui/status/network.js:978
#: js/ui/shellMountOperation.js:376 js/ui/shellMountOperation.js:386 #: 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:209 js/ui/components/networkAgent.js:225
#: js/ui/components/networkAgent.js:225 js/ui/components/networkAgent.js:249 #: js/ui/components/networkAgent.js:249 js/ui/components/networkAgent.js:270 js/ui/components/networkAgent.js:290
#: 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
#: js/ui/components/networkAgent.js:300 js/ui/components/polkitAgent.js:275
#: js/ui/shellMountOperation.js:326
msgid "Password" msgid "Password"
msgstr "گذرواژه" msgstr "گذرواژه"
@ -488,8 +455,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:245 js/ui/components/networkAgent.js:268
#: js/ui/components/networkAgent.js:268 js/ui/components/networkAgent.js:286 #: js/ui/components/networkAgent.js:286
msgid "Username" msgid "Username"
msgstr "نام‌کاربری" msgstr "نام‌کاربری"
@ -748,11 +715,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 " "Your connection to this hotspot login is not secure. Passwords or other information you enter on this page can be "
"you enter on this page can be viewed by people nearby." "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;
@ -764,7 +731,7 @@ msgstr "رد دسترسی"
msgid "Grant Access" msgid "Grant Access"
msgstr "پذیرفتن دسترسی" msgstr "پذیرفتن دسترسی"
#: js/ui/appDisplay.js:1791 #: js/ui/appDisplay.js:1846
msgid "Unnamed Folder" msgid "Unnamed Folder"
msgstr "پوشهٔ بی‌نام" msgstr "پوشهٔ بی‌نام"
@ -955,12 +922,8 @@ msgid "“%s” is not responding."
msgstr "«%s» پاسخگو نیست." msgstr "«%s» پاسخگو نیست."
#: js/ui/closeDialog.js:43 #: js/ui/closeDialog.js:43
msgid "" msgid "You may choose to wait a short while for it to continue or force the application to quit entirely."
"You may choose to wait a short while for it to continue or force the application to " msgstr "ممکن است بخواهید مدت کوتاهی منتظر مانده تا ادامه دهد یا برنامه را مجبور به خروج کامل کنید."
"quit entirely."
msgstr ""
"ممکن است بخواهید مدت کوتاهی منتظر مانده تا ادامه دهد یا برنامه را مجبور به خروج "
"کامل کنید."
#: js/ui/closeDialog.js:70 #: js/ui/closeDialog.js:70
msgid "Force Quit" msgid "Force Quit"
@ -995,8 +958,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/components/networkAgent.js:104 js/ui/status/network.js:258 js/ui/status/network.js:349
#: js/ui/status/network.js:349 js/ui/status/network.js:981 #: js/ui/status/network.js:981
msgid "Connect" msgid "Connect"
msgstr "اتّصال" msgstr "اتّصال"
@ -1016,8 +979,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:317 js/ui/components/networkAgent.js:345 js/ui/components/networkAgent.js:679
#: js/ui/components/networkAgent.js:679 js/ui/components/networkAgent.js:700 #: js/ui/components/networkAgent.js:700
msgid "Authentication required" msgid "Authentication required"
msgstr "نیاز به تأیید هویت است" msgstr "نیاز به تأیید هویت است"
@ -1050,9 +1013,8 @@ msgstr "رمز پین برای دستگاه پهن‌باند همراه لاز
msgid "PIN" msgid "PIN"
msgstr "پین" msgstr "پین"
#: js/ui/components/networkAgent.js:346 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:689 js/ui/components/networkAgent.js:701 #: js/ui/components/networkAgent.js:701 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 "برای اتّصال به «%s» گذرواژه لازم است." msgstr "برای اتّصال به «%s» گذرواژه لازم است."
@ -1271,14 +1233,9 @@ 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 "" msgid_plural "The system will automatically restart and install updates in %d seconds."
"The system will automatically restart and install updates in %d seconds." msgstr[0] "سامانه پس از %Id ثانیه به طور خودکار دوباره راه‌اندازی می‌شود و به‌روز رسانی‌ها را نصب می‌کند."
msgstr[0] "" msgstr[1] "سامانه پس از %Id ثانیه به طور خودکار دوبارها راه‌اندازی می‌شود و به‌روز رسانی‌ها را نصب می‌کند."
"سامانه پس از %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"
@ -1306,11 +1263,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: " "%s %s will be installed after restart. Upgrade installation can take a long time: ensure that you have backed up and "
"ensure that you have backed up and that the computer is plugged in." "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."
@ -1354,11 +1311,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:266 #: js/ui/extensionSystem.js:252
msgid "Extension Updates Available" msgid "Extension Updates Available"
msgstr "به‌روز رسانی‌های افزونه موجودند" msgstr "به‌روز رسانی‌های افزونه موجودند"
#: js/ui/extensionSystem.js:267 #: js/ui/extensionSystem.js:253
msgid "Extension updates are ready to be installed." msgid "Extension updates are ready to be installed."
msgstr "به‌روز رسانی‌های افزونه‌ها آمادهٔ نصبند." msgstr "به‌روز رسانی‌های افزونه‌ها آمادهٔ نصبند."
@ -1400,11 +1357,10 @@ 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 " "You just held down the Shift key for 8 seconds. This is the shortcut for the Slow Keys feature, which affects the way "
"Keys feature, which affects the way your keyboard works." "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"
@ -1416,33 +1372,30 @@ 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 " "You just pressed the Shift key 5 times in a row. This is the shortcut for the Sticky Keys feature, which affects the "
"Sticky Keys feature, which affects the way your keyboard works." "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 " "You just pressed two keys at once, or pressed the Shift key 5 times in a row. This turns off the Sticky Keys feature, "
"turns off the Sticky Keys feature, which affects the way your keyboard works." "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/kbdA11yDialog.js:54 js/ui/status/bluetooth.js:156 js/ui/status/network.js:1377
#: 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/kbdA11yDialog.js:62 js/ui/status/bluetooth.js:156 js/ui/status/network.js:166 js/ui/status/network.js:350
#: js/ui/status/network.js:350 js/ui/status/network.js:1377 #: 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:1489 js/ui/status/nightLight.js:41 #: js/ui/status/rfkill.js:110
#: js/ui/status/rfkill.js:81 js/ui/status/rfkill.js:110
msgid "Turn Off" msgid "Turn Off"
msgstr "خاموش کردن" msgstr "خاموش کردن"
@ -1508,11 +1461,10 @@ 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 " "Running a session as a privileged user should be avoided for security reasons. If possible, you should log in as a "
"possible, you should log in as a normal user." "normal user."
msgstr "" msgstr ""
"به دلایل امنیتی باید از اجرای یک نشست به عنوان کاربری ممتاز خودداری کرد. در صورت " "به دلایل امنیتی باید از اجرای یک نشست به عنوان کاربری ممتاز خودداری کرد. در صورت امکان، با کاربری عادی وارد شوید."
"امکان، با کاربری عادی وارد شوید."
#: js/ui/main.js:340 #: js/ui/main.js:340
msgid "Screen Lock disabled" msgid "Screen Lock disabled"
@ -1709,9 +1661,7 @@ 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 "" msgstr "برای قفل‌گشایی حجمی که از پرونده‌های کلید استفاده می‌کند، از ابزار <i>%s</i> استفاده کنید."
"برای قفل‌گشایی حجمی که از پرونده‌های کلید استفاده می‌کند، از ابزار <i>%s</i> استفاده "
"کنید."
#: js/ui/shellMountOperation.js:306 #: js/ui/shellMountOperation.js:306
msgid "PIM Number" msgid "PIM Number"
@ -2212,12 +2162,8 @@ msgid "Unknown Thunderbolt device"
msgstr "افزارهٔ تاندربولت ناشناخته" msgstr "افزارهٔ تاندربولت ناشناخته"
#: js/ui/status/thunderbolt.js:325 #: js/ui/status/thunderbolt.js:325
msgid "" msgid "New device has been detected while you were away. Please disconnect and reconnect the device to start using it."
"New device has been detected while you were away. Please disconnect and reconnect " msgstr "هنگام نبودنتان، افزارهٔ جدید شناسایی شد. لطفاً برای شروع به استفاده از آن، قطعش کرده و دوباره وصل کنید."
"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"
@ -2457,8 +2403,7 @@ 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/data/org.gnome.Extensions.desktop.in.in:4 subprojects/extensions-app/js/main.js:217
#: 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 "افزونه‌ها"
@ -2474,11 +2419,9 @@ 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 " "GNOME Extensions handles updating extensions, configuring extension preferences and removing or disabling unwanted "
"removing or disabling unwanted extensions." "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"
@ -2494,9 +2437,7 @@ msgid "Remove “%s”?"
msgstr "برداشتن «%s»؟" msgstr "برداشتن «%s»؟"
#: subprojects/extensions-app/js/main.js:180 #: subprojects/extensions-app/js/main.js:180
msgid "" msgid "If you remove the extension, you need to return to download it if you want to enable it again"
"If you remove the extension, you need to return to download it if you want to "
"enable it again"
msgstr "اگر افزونه را بردارید، باید برای به کار انداختن دوباره‌اش، بارگیریش کنید" msgstr "اگر افزونه را بردارید، باید برای به کار انداختن دوباره‌اش، بارگیریش کنید"
#: subprojects/extensions-app/js/main.js:184 #: subprojects/extensions-app/js/main.js:184
@ -2524,14 +2465,12 @@ 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-app/data/ui/extension-row.ui:83 subprojects/extensions-tool/src/command-create.c:322
#: 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-app/data/ui/extension-row.ui:104 subprojects/extensions-tool/src/main.c:253
#: subprojects/extensions-tool/src/main.c:253
msgid "Version" msgid "Version"
msgstr "نگارش" msgstr "نگارش"
@ -2556,12 +2495,8 @@ msgid "About Extensions"
msgstr "دربارهٔ افزونه‌ها" msgstr "دربارهٔ افزونه‌ها"
#: subprojects/extensions-app/data/ui/extensions-window.ui:27 #: subprojects/extensions-app/data/ui/extensions-window.ui:27
msgid "" msgid "To find and add extensions, visit <a href=\"https://extensions.gnome.org\">extensions.gnome.org</a>."
"To find and add extensions, visit <a href=\"https://extensions.gnome.org" msgstr "برای یافتن و افزودن افزونه‌ها، <a href=\"https://extensions.gnome.org\">پایگاه افزونه‌های گنوم</a> را ببینید."
"\">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"
@ -2569,11 +2504,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 " "Extensions can cause system issues, including performance problems. If you encounter problems with your system, it is "
"encounter problems with your system, it is recommended to disable all extensions." "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"
@ -2589,11 +2524,9 @@ 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. " "Were very sorry, but it was not possible to get the list of installed extensions. Make sure you are logged into GNOME "
"Make sure you are logged into GNOME and try again." "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"
@ -2618,8 +2551,7 @@ msgstr ""
"نام باید رشته‌ای بسیار کوتاه و توصیفی باشد.\n" "نام باید رشته‌ای بسیار کوتاه و توصیفی باشد.\n"
"مانند: %s" "مانند: %s"
#: subprojects/extensions-tool/src/command-create.c:302 #: subprojects/extensions-tool/src/command-create.c:302 subprojects/extensions-tool/src/main.c:238
#: subprojects/extensions-tool/src/main.c:238
msgid "Name" msgid "Name"
msgstr "نام" msgstr "نام"
@ -2635,8 +2567,7 @@ 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." "This should be in the format of an email address (clicktofocus@janedoe.example.com)\n"
"com)\n"
msgstr "" msgstr ""
"شناسهٔ یکتا، شناسهٔ بی‌تکراری برای افزونه‌تان است.\n" "شناسهٔ یکتا، شناسهٔ بی‌تکراری برای افزونه‌تان است.\n"
"این شناسه باید در قالب یک نشانی رایانامه باشد (clicktofocus@janedoe.example.com)\n" "این شناسه باید در قالب یک نشانی رایانامه باشد (clicktofocus@janedoe.example.com)\n"
@ -2685,8 +2616,7 @@ 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-create.c:476 subprojects/extensions-tool/src/command-list.c:172
#: subprojects/extensions-tool/src/command-list.c:172
msgid "Unknown arguments" msgid "Unknown arguments"
msgstr "آرگومان ناشناخته" msgstr "آرگومان ناشناخته"
@ -2694,16 +2624,12 @@ 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-disable.c:46 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-list.c:64
#: 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-disable.c:53 subprojects/extensions-tool/src/command-enable.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"
@ -2712,21 +2638,15 @@ 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-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-prefs.c:97
#: subprojects/extensions-tool/src/command-info.c:103 #: subprojects/extensions-tool/src/command-reset.c:76 subprojects/extensions-tool/src/command-uninstall.c:104
#: 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-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-prefs.c:102
#: subprojects/extensions-tool/src/command-info.c:108 #: subprojects/extensions-tool/src/command-reset.c:81 subprojects/extensions-tool/src/command-uninstall.c:109
#: 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 "بیش از یک شناسهٔ یکتا داده شده"
@ -2734,8 +2654,7 @@ msgstr "بیش از یک شناسهٔ یکتا داده شده"
msgid "Enable an extension" msgid "Enable an extension"
msgstr "به کار انداختن یک افزونه" msgstr "به کار انداختن یک افزونه"
#: subprojects/extensions-tool/src/command-info.c:59 #: subprojects/extensions-tool/src/command-info.c:59 subprojects/extensions-tool/src/main.c:155
#: 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"
@ -2812,8 +2731,7 @@ 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:457 subprojects/extensions-tool/src/command-pack.c:468
#: subprojects/extensions-tool/src/command-pack.c:468
msgid "DIRECTORY" msgid "DIRECTORY"
msgstr "DIRECTORY" msgstr "DIRECTORY"
@ -2854,12 +2772,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 "ترجیحات افزونه را می‌گشاید"
@ -2884,6 +2797,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 "شکست در وصل شدن به پوستهٔ گنوم"
#: subprojects/extensions-tool/src/main.c:244 #: subprojects/extensions-tool/src/main.c:244
msgid "Path" msgid "Path"
msgstr "مسیر" msgstr "مسیر"
@ -2904,8 +2821,7 @@ 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:292 subprojects/extensions-tool/src/main.c:312
#: subprojects/extensions-tool/src/main.c:312
msgid "Usage:" msgid "Usage:"
msgstr "استفاده:" msgstr "استفاده:"
@ -2913,8 +2829,7 @@ 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:310 subprojects/extensions-tool/src/main.c:313
#: subprojects/extensions-tool/src/main.c:313
msgid "COMMAND" msgid "COMMAND"
msgstr "COMMAND" msgstr "COMMAND"
@ -2950,8 +2865,7 @@ msgstr "حذف نصب افزونه"
msgid "List extensions" msgid "List extensions"
msgstr "فهرست افزونه‌ها" msgstr "فهرست افزونه‌ها"
#: subprojects/extensions-tool/src/main.c:323 #: subprojects/extensions-tool/src/main.c:323 subprojects/extensions-tool/src/main.c:324
#: subprojects/extensions-tool/src/main.c:324
msgid "Show extension info" msgid "Show extension info"
msgstr "نمایش اطّلاعات افزونه" msgstr "نمایش اطّلاعات افزونه"
@ -3014,17 +2928,11 @@ 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 "" #~ msgid "Enables a D-Bus API that allows to introspect the application state of the shell."
#~ "Enables a D-Bus API that allows to introspect the application state of the shell." #~ msgstr "رابط برنامه‌‌نویسی دی‌باسی را به کار می‌اندازد که اجازهٔ درون‌نگری وضعیت برنامهٔ پوسته را می‌دهد."
#~ msgstr ""
#~ "رابط برنامه‌‌نویسی دی‌باسی را به کار می‌اندازد که اجازهٔ درون‌نگری وضعیت برنامهٔ پوسته "
#~ "را می‌دهد."
#~ msgid "Minimize" #~ msgid "Minimize"
#~ msgstr "کمینه کردن" #~ msgstr "کمینه کردن"
@ -3114,11 +3022,8 @@ msgstr "صداهای سامانه"
#~ msgid "Orientation Lock" #~ msgid "Orientation Lock"
#~ msgstr "قفل جهت" #~ msgstr "قفل جهت"
#~ msgid "" #~ msgid "Keybinding that pauses and resumes all running tweens, for debugging purposes"
#~ "Keybinding that pauses and resumes all running tweens, for debugging purposes" #~ msgstr "کلیدهای مقید برای مکث کردن و اجرا کردن تمام دوغلوهای در حال اجرا، برای مصارف رفع اشکال"
#~ msgstr ""
#~ "کلیدهای مقید برای مکث کردن و اجرا کردن تمام دوغلوهای در حال اجرا، برای مصارف رفع "
#~ "اشکال"
#~ msgid "Which keyboard to use" #~ msgid "Which keyboard to use"
#~ msgstr "استفاده از کدام صفحه‌کلید" #~ msgstr "استفاده از کدام صفحه‌کلید"
@ -3361,15 +3266,13 @@ 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 "" #~ msgstr "گواهینامه از الگوریتم رمزی نامطمئنی استفاده می‌کند یا از نظر cryptography ضعیف است"
#~ "گواهینامه از الگوریتم رمزی نامطمئنی استفاده می‌کند یا از نظر cryptography ضعیف است"
#~ msgid "" #~ msgid ""
#~ "The length of the server certificate, or the depth of the server certificate " #~ "The length of the server certificate, or the depth of the server certificate chain, exceed the limits imposed by "
#~ "chain, exceed the limits imposed by the cryptography library" #~ "the cryptography library"
#~ msgstr "" #~ msgstr ""
#~ "اندازه گواهینامه کارگزار، یا عمق حلقه‌ی گواهینامه کارگزار، از محدودیت اعمال شده " #~ "اندازه گواهینامه کارگزار، یا عمق حلقه‌ی گواهینامه کارگزار، از محدودیت اعمال شده توسط کتابخانه cryptography تجاوز کرد"
#~ "توسط کتابخانه cryptography تجاوز کرد"
#~ msgid "Internal error" #~ msgid "Internal error"
#~ msgstr "خطای داخلی" #~ msgstr "خطای داخلی"
@ -3416,21 +3319,17 @@ msgstr "صداهای سامانه"
#~ msgstr "فهرست دسته‌هایی که باید به شکل پوشه نمایش داده شوند" #~ msgstr "فهرست دسته‌هایی که باید به شکل پوشه نمایش داده شوند"
#~ msgid "" #~ msgid ""
#~ "Each category name in this list will be represented as folder in the application " #~ "Each category name in this list will be represented as folder in the application view, rather than being displayed "
#~ "view, rather than being displayed inline in the main view." #~ "inline in the main view."
#~ msgstr "" #~ msgstr ""
#~ "هر نام دسته در این فهرست، بجای اینکه پشت سر هم در نمای اصلی نمایش داده شود، " #~ "هر نام دسته در این فهرست، بجای اینکه پشت سر هم در نمای اصلی نمایش داده شود، به‌عنوان پوشه در نمای برنامه‌ها نشان داده "
#~ "به‌عنوان پوشه در نمای برنامه‌ها نشان داده می‌شود." #~ "می‌شود."
#~ msgid "Arrangement of buttons on the titlebar" #~ msgid "Arrangement of buttons on the titlebar"
#~ msgstr "چیدمان دکمه‌ها در نوار عنوان" #~ msgstr "چیدمان دکمه‌ها در نوار عنوان"
#~ msgid "" #~ msgid "This key overrides the key in org.gnome.desktop.wm.preferences when running GNOME Shell."
#~ "This key overrides the key in org.gnome.desktop.wm.preferences when running " #~ msgstr "این کلید، کلید org.gnome.desktop.wm.preferences را در زمان اجرای گنوم‌شل بازنویسی می‌کند."
#~ "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 "با استفاده از جعبه‌ی بالا یک افزونه برای پیکربندی انتخاب کنید."
@ -3466,9 +3365,7 @@ 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 "" #~ msgstr "لطفا تایید کنید که آیا کلید عبور مربوط به «%I06d» با همتای آن در دستگاه مطابقت دارد یا خیر."
#~ "لطفا تایید کنید که آیا کلید عبور مربوط به «%I06d» با همتای آن در دستگاه مطابقت "
#~ "دارد یا خیر."
#~ msgid "Does not match" #~ msgid "Does not match"
#~ msgstr "منطبق نیست" #~ msgstr "منطبق نیست"
@ -3502,29 +3399,27 @@ msgstr "صداهای سامانه"
#~ msgstr "اینکه اطلاعات برنامه‌ها درباره‌ی میزان استفاده از منابع جمع‌آوری شود یا خیر" #~ msgstr "اینکه اطلاعات برنامه‌ها درباره‌ی میزان استفاده از منابع جمع‌آوری شود یا خیر"
#~ msgid "" #~ msgid ""
#~ "The shell normally monitors active applications in order to present the most " #~ "The shell normally monitors active applications in order to present the most used ones (e.g. in launchers). While "
#~ "used ones (e.g. in launchers). While this data will be kept private, you may " #~ "this data will be kept private, you may want to disable this for privacy reasons. Please note that doing so won't "
#~ "want to disable this for privacy reasons. Please note that doing so won't remove " #~ "remove already saved data."
#~ "already saved data."
#~ msgstr "" #~ msgstr ""
#~ "پوسته گنوم در حالت عادی برنامه‌های فعال را جهت ارائه برنامه‌های بیشتر استفاده شده " #~ "پوسته گنوم در حالت عادی برنامه‌های فعال را جهت ارائه برنامه‌های بیشتر استفاده شده پایش می کند. (برای مثال در اجرا "
#~ "پایش می کند. (برای مثال در اجرا کننده‌ها). با اینکه که این اطلاعات به صورت خصوصی " #~ "کننده‌ها). با اینکه که این اطلاعات به صورت خصوصی نگاه‌داری می‌شود، ممکن است شما بخواهید این امکان را به دلایل امنیتی "
#~ "نگاه‌داری می‌شود، ممکن است شما بخواهید این امکان را به دلایل امنیتی غیرفعال کنید. " #~ "غیرفعال کنید. لطفا توجه کنید این کار باعث پاک شدن اطلاعاتی که تاکنون ذخیره شده‌اند نمی‌شود."
#~ "لطفا توجه کنید این کار باعث پاک شدن اطلاعاتی که تاکنون ذخیره شده‌اند نمی‌شود."
#~ msgid "" #~ msgid ""
#~ "Internally used to store the last IM presence explicitly set by the user. The " #~ "Internally used to store the last IM presence explicitly set by the user. The value here is from the "
#~ "value here is from the TpConnectionPresenceType enumeration." #~ "TpConnectionPresenceType enumeration."
#~ msgstr "" #~ msgstr ""
#~ "به‌طور داخلی جهت ذخیره‌ی آخرین وضعیتِ حاضرِ ثبت شده‌ی توسط کاربر استفاده می‌شود. مقدار " #~ "به‌طور داخلی جهت ذخیره‌ی آخرین وضعیتِ حاضرِ ثبت شده‌ی توسط کاربر استفاده می‌شود. مقدار اینجا از محل محاسبه‌ی "
#~ "اینجا از محل محاسبه‌ی TpConnectionPresenceType است." #~ "TpConnectionPresenceType است."
#~ msgid "" #~ msgid ""
#~ "Internally used to store the last session presence status for the user. The " #~ "Internally used to store the last session presence status for the user. The value here is from the "
#~ "value here is from the GsmPresenceStatus enumeration." #~ "GsmPresenceStatus enumeration."
#~ msgstr "" #~ msgstr ""
#~ "به‌طور داخلی برای ذخیره آخرین نشستی که کاربر در آن وضعیت حاضر داشته است استفاده " #~ "به‌طور داخلی برای ذخیره آخرین نشستی که کاربر در آن وضعیت حاضر داشته است استفاده می‌شود. مقدار اینجا از محاسبه "
#~ "می‌شود. مقدار اینجا از محاسبه GsmPresenceStatus است." #~ "GsmPresenceStatus است."
#~ msgid "Keybinding to toggle the screen recorder" #~ msgid "Keybinding to toggle the screen recorder"
#~ msgstr "کلید مقید برای تغییر وضعیت ضبط کننده‌ی صفحه" #~ msgstr "کلید مقید برای تغییر وضعیت ضبط کننده‌ی صفحه"
@ -3536,49 +3431,38 @@ msgstr "صداهای سامانه"
#~ msgstr "سرعت فریم استفاده شده در تصویربرداری از صفحه‌نمایش." #~ msgstr "سرعت فریم استفاده شده در تصویربرداری از صفحه‌نمایش."
#~ msgid "" #~ msgid ""
#~ "The framerate of the resulting screencast recordered by GNOME Shell's screencast " #~ "The framerate of the resulting screencast recordered by GNOME Shell's screencast recorder in frames-per-second."
#~ "recorder in frames-per-second." #~ msgstr "سرعت فریم حاصل از تصویربرداری از صفحه نمایش با استفاده از ضبط کننده نمایشگر پوسته‌ی گنوم بر اساس فریم بر ثانیه"
#~ 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 " #~ "Sets the GStreamer pipeline used to encode recordings. It follows the syntax used for gst-launch. The pipeline "
#~ "used for gst-launch. The pipeline should have an unconnected sink pad where the " #~ "should have an unconnected sink pad where the recorded video is recorded. It will normally have a unconnected "
#~ "recorded video is recorded. It will normally have a unconnected source pad; " #~ "source pad; output from that pad will be written into the output file. However the pipeline can also take care of "
#~ "output from that pad will be written into the output file. However the pipeline " #~ "its own output - this might be used to send the output to an icecast server via shout2send or similar. When unset "
#~ "can also take care of its own output - this might be used to send the output to " #~ "or set to an empty value, the default pipeline will be used. This is currently 'vp8enc min_quantizer=13 "
#~ "an icecast server via shout2send or similar. When unset or set to an empty " #~ "max_quantizer=13 cpu-used=5 deadline=1000000 threads=%T ! queue ! webmmux' and records to WEBM using the VP8 codec. "
#~ "value, the default pipeline will be used. This is currently 'vp8enc " #~ "%T is used as a placeholder for a guess at the optimal thread count on the system."
#~ "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 " #~ "Sets the GStreamer pipeline used to encode recordings. It follows the syntax used for gst-launch. The pipeline "
#~ "used for gst-launch. The pipeline should have an unconnected sink pad where the " #~ "should have an unconnected sink pad where the recorded video is recorded. It will normally have a unconnected "
#~ "recorded video is recorded. It will normally have a unconnected source pad; " #~ "source pad; output from that pad will be written into the output file. However the pipeline can also take care of "
#~ "output from that pad will be written into the output file. However the pipeline " #~ "its own output - this might be used to send the output to an icecast server via shout2send or similar. When unset "
#~ "can also take care of its own output - this might be used to send the output to " #~ "or set to an empty value, the default pipeline will be used. This is currently 'vp8enc min_quantizer=13 "
#~ "an icecast server via shout2send or similar. When unset or set to an empty " #~ "max_quantizer=13 cpu-used=5 deadline=1000000 threads=%T ! queue ! webmmux' and records to WEBM using the VP8 codec. "
#~ "value, the default pipeline will be used. This is currently 'vp8enc " #~ "%T is used as a placeholder for a guess at the optimal thread count on the system."
#~ "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 " #~ "The filename for recorded screencasts will be a unique filename based on the current date, and use this extension. "
#~ "current date, and use this extension. It should be changed when recording to a " #~ "It should be changed when recording to a different container format."
#~ "different container format."
#~ msgstr "" #~ msgstr ""
#~ "نام پرونده‌ی ضبط شده برای تصویربرداری از صفحه‌نمایش یکتا و براساس تاریخ جاری خواهد " #~ "نام پرونده‌ی ضبط شده برای تصویربرداری از صفحه‌نمایش یکتا و براساس تاریخ جاری خواهد بود و از این افزونه استفاده خواهد "
#~ "بود و از این افزونه استفاده خواهد کرد. اگر در زمان ضبط از قالب دیگری استفاده " #~ "کرد. اگر در زمان ضبط از قالب دیگری استفاده کنید باید تغییر کند."
#~ "کنید باید تغییر کند."
#~| msgid "Session..." #~| msgid "Session..."
#~ msgid "Session…" #~ msgid "Session…"
@ -3599,8 +3483,7 @@ 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 "درحال خروج از سیستم."
@ -3612,9 +3495,7 @@ 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 "درحال راه‌اندازی مجدد سیستم."
@ -3742,11 +3623,11 @@ msgstr "صداهای سامانه"
#~ msgstr "وضعیت گپ شما «مشغول» تنظیم می‌شود" #~ msgstr "وضعیت گپ شما «مشغول» تنظیم می‌شود"
#~ msgid "" #~ msgid ""
#~ "Notifications are now disabled, including chat messages. Your online status has " #~ "Notifications are now disabled, including chat messages. Your online status has been adjusted to let others know "
#~ "been adjusted to let others know that you might not see their messages." #~ "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-11-03 01:20+0000\n" "POT-Creation-Date: 2021-08-17 23:56+0000\n"
"PO-Revision-Date: 2021-11-03 10:00+0100\n" "PO-Revision-Date: 2021-08-30 19:11+0200\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,38 +39,47 @@ 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"
@ -273,11 +282,22 @@ 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:133 #: data/org.gnome.shell.gschema.xml.in:109
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: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 "
@ -291,114 +311,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:149 #: data/org.gnome.shell.gschema.xml.in:157
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:150 #: data/org.gnome.shell.gschema.xml.in:158
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: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 ""
"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: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 ""
"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: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 ""
"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: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 ""
"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: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 ""
"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:178 #: data/org.gnome.shell.gschema.xml.in:186
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:179 #: data/org.gnome.shell.gschema.xml.in:187
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: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 ""
"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: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 ""
"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:192 #: data/org.gnome.shell.gschema.xml.in:200
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:193 #: data/org.gnome.shell.gschema.xml.in:201
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:199 #: data/org.gnome.shell.gschema.xml.in:207
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:203 #: data/org.gnome.shell.gschema.xml.in:211
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:207 #: data/org.gnome.shell.gschema.xml.in:215
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:211 #: data/org.gnome.shell.gschema.xml.in:219
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:215 #: data/org.gnome.shell.gschema.xml.in:223
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:219 #: data/org.gnome.shell.gschema.xml.in:227
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:223 #: data/org.gnome.shell.gschema.xml.in:231
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:227 #: data/org.gnome.shell.gschema.xml.in:235
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:231 #: data/org.gnome.shell.gschema.xml.in:239
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: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 "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: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."
@ -407,11 +427,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:258 #: data/org.gnome.shell.gschema.xml.in:266
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: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-"
@ -422,7 +442,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: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."
@ -430,58 +450,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:278 #: data/org.gnome.shell.gschema.xml.in:286
msgid "Locations" msgid "Locations"
msgstr "Emplacements" msgstr "Emplacements"
#: 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 "Les emplacements à afficher dans les horloges mondiales" msgstr "Les emplacements à afficher dans les horloges mondiales"
#: data/org.gnome.shell.gschema.xml.in:289 #: data/org.gnome.shell.gschema.xml.in:297
msgid "Automatic location" msgid "Automatic location"
msgstr "Emplacement automatique" msgstr "Emplacement automatique"
#: 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 "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:297 #: data/org.gnome.shell.gschema.xml.in:305
msgid "Location" msgid "Location"
msgstr "Emplacement" msgstr "Emplacement"
#: 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 "Lemplacement pour lequel afficher les prévisions" msgstr "Lemplacement pour lequel afficher les prévisions"
#: 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 "Attacher les dialogues modaux à leur fenêtre parente" msgstr "Attacher les dialogues modaux à leur fenêtre parente"
#: 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 ""
"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: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 "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:327 #: data/org.gnome.shell.gschema.xml.in:335
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:335 #: data/org.gnome.shell.gschema.xml.in:343
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: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 ""
"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 "
@ -519,18 +539,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: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 "Annuler" msgstr "Annuler"
#. 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 "Mot de passe" msgstr "Mot de passe"
@ -553,8 +573,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: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 "Nom dutilisateur" msgstr "Nom dutilisateur"
@ -659,65 +679,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:121 #: js/misc/util.js:120
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:157 #: js/misc/util.js:156
msgid "Could not parse command:" msgid "Could not parse command:"
msgstr "Impossible danalyser la commande :" msgstr "Impossible danalyser la commande :"
#: 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 "Exécution de « %s » impossible :" msgstr "Exécution de « %s » impossible :"
#: js/misc/util.js:182 #: js/misc/util.js:181
msgid "Just now" msgid "Just now"
msgstr "À linstant" msgstr "À linstant"
#: 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"
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: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"
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:192 js/ui/dateMenu.js:162 #: js/misc/util.js:191 js/ui/dateMenu.js:162
msgid "Yesterday" msgid "Yesterday"
msgstr "Hier" msgstr "Hier"
#: 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"
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: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"
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: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"
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: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"
@ -725,20 +745,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: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 "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: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"
@ -746,7 +766,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"
@ -754,7 +774,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"
@ -762,20 +782,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 "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: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"
@ -783,7 +803,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"
@ -791,17 +811,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 "Identification du point daccès" msgstr "Identification du point daccès"
#: 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."
@ -1047,40 +1067,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: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 ""
"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: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 "Se connecter" msgstr "Se connecter"
#: js/ui/components/networkAgent.js:215 #: js/ui/components/networkAgent.js:216
msgid "Key" msgid "Key"
msgstr "Clé" msgstr "Clé"
#: 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 "Mot de passe de la clé privée" msgstr "Mot de passe de la clé privée"
#: js/ui/components/networkAgent.js:274 #: js/ui/components/networkAgent.js:275
msgid "Identity" msgid "Identity"
msgstr "Identité" msgstr "Identité"
#: js/ui/components/networkAgent.js:288 #: js/ui/components/networkAgent.js:289
msgid "Service" msgid "Service"
msgstr "Service" msgstr "Service"
#: 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 "Authentification nécessaire" msgstr "Authentification nécessaire"
#: 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 "
@ -1089,31 +1109,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: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 "Authentification filaire 802.1X" msgstr "Authentification filaire 802.1X"
#: js/ui/components/networkAgent.js:324 #: js/ui/components/networkAgent.js:325
msgid "Network name" msgid "Network name"
msgstr "Nom du réseau" msgstr "Nom du réseau"
#: 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 "Authentification DSL" msgstr "Authentification 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 "Code PIN requis" msgstr "Code PIN requis"
#: 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 "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: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
@ -1441,24 +1461,24 @@ msgstr "%s (distant)"
msgid "%s (console)" msgid "%s (console)"
msgstr "%s (console)" msgstr "%s (console)"
#: js/ui/extensionDownloader.js:232 #: js/ui/extensionDownloader.js:194
msgid "Install" msgid "Install"
msgstr "Installer" msgstr "Installer"
#: js/ui/extensionDownloader.js:238 #: js/ui/extensionDownloader.js:200
msgid "Install Extension" msgid "Install Extension"
msgstr "Installer lextension" msgstr "Installer lextension"
#: 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 "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:252 #: js/ui/extensionSystem.js:253
msgid "Extension Updates Available" msgid "Extension Updates Available"
msgstr "Mises à jour dextensions disponibles" msgstr "Mises à jour dextensions disponibles"
#: 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 "Des mises à jour dextensions sont prêtes à être installées." msgstr "Des mises à jour dextensions sont prêtes à être installées."
@ -1555,7 +1575,7 @@ msgstr "Éteindre"
msgid "Leave Off" msgid "Leave Off"
msgstr "Laisser éteint" msgstr "Laisser éteint"
#: js/ui/keyboard.js:226 #: js/ui/keyboard.js:227
msgid "Region & Language Settings" msgid "Region & Language Settings"
msgstr "Paramètres de langue et région" msgstr "Paramètres de langue et région"
@ -1608,11 +1628,11 @@ msgstr "Afficher la source"
msgid "Web Page" msgid "Web Page"
msgstr "Page Web" msgstr "Page Web"
#: 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 "Connecté en tant quutilisateur privilégié" msgstr "Connecté en tant quutilisateur privilégié"
#: 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."
@ -1621,16 +1641,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:340 #: js/ui/main.js:344
msgid "Screen Lock disabled" msgid "Screen Lock disabled"
msgstr "Verrouillage décran désactivé" msgstr "Verrouillage décran désactivé"
#: 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 ""
"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:1443 #: js/ui/messageTray.js:1440
msgid "System Information" msgid "System Information"
msgstr "Informations du système" msgstr "Informations du système"
@ -1664,47 +1684,47 @@ msgstr "Annuler"
msgid "Overview" msgid "Overview"
msgstr "Vue densemble" msgstr "Vue densemble"
#: js/ui/padOsd.js:95 #: js/ui/padOsd.js:96
msgid "New shortcut…" msgid "New shortcut…"
msgstr "Nouveau raccourci…" msgstr "Nouveau raccourci…"
#: js/ui/padOsd.js:142 #: js/ui/padOsd.js:143
msgid "Application defined" msgid "Application defined"
msgstr "Applications définies" msgstr "Applications définies"
#: js/ui/padOsd.js:143 #: js/ui/padOsd.js:144
msgid "Show on-screen help" msgid "Show on-screen help"
msgstr "Afficher laide à lécran" msgstr "Afficher laide à lécran"
#: js/ui/padOsd.js:144 #: js/ui/padOsd.js:145
msgid "Switch monitor" msgid "Switch monitor"
msgstr "Changer décran" msgstr "Changer décran"
#: js/ui/padOsd.js:145 #: js/ui/padOsd.js:146
msgid "Assign keystroke" msgid "Assign keystroke"
msgstr "Associer une touche" msgstr "Associer une touche"
#: js/ui/padOsd.js:211 #: js/ui/padOsd.js:212
msgid "Done" msgid "Done"
msgstr "Terminé" msgstr "Terminé"
#: js/ui/padOsd.js:716 #: js/ui/padOsd.js:718
msgid "Edit…" msgid "Edit…"
msgstr "Édition…" msgstr "Édition…"
#: 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 "Aucun" msgstr "Aucun"
#: js/ui/padOsd.js:829 #: js/ui/padOsd.js:831
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:830 #: js/ui/padOsd.js:832
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:833 #: js/ui/padOsd.js:835
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"
@ -1714,12 +1734,12 @@ msgstr "Appuyez sur une touche pour quitter"
msgid "Activities" msgid "Activities"
msgstr "Activités" msgstr "Activités"
#: 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 "Système" msgstr "Système"
#: js/ui/panel.js:674 #: js/ui/panel.js:658
msgid "Top Bar" msgid "Top Bar"
msgstr "Barre supérieure" msgstr "Barre supérieure"
@ -1758,7 +1778,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:155 #: js/ui/screenshot.js:141
msgid "Screenshot taken" msgid "Screenshot taken"
msgstr "Capture décran effectuée" msgstr "Capture décran effectuée"
@ -2264,6 +2284,7 @@ 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"
@ -2458,10 +2479,13 @@ 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"
@ -2833,7 +2857,6 @@ 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"
@ -2850,7 +2873,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: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"
@ -2859,7 +2882,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: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"
@ -2989,12 +3012,7 @@ 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:62 #: subprojects/extensions-tool/src/command-prefs.c:79
#, 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"
@ -3019,6 +3037,10 @@ 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"
@ -3149,19 +3171,6 @@ 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-11-06 13:28+0000\n" "POT-Creation-Date: 2021-09-23 14:20+0000\n"
"PO-Revision-Date: 2021-11-12 00:26+0200\n" "PO-Revision-Date: 2021-09-27 11:13+0300\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:266 #: js/ui/extensionSystem.js:252
msgid "Extension Updates Available" msgid "Extension Updates Available"
msgstr "עדכוני הרחבות זמינים" msgstr "עדכוני הרחבות זמינים"
#: js/ui/extensionSystem.js:267 #: js/ui/extensionSystem.js:253
msgid "Extension updates are ready to be installed." msgid "Extension updates are ready to be installed."
msgstr "עדכוני הרחבות מוכנים להתקנה." msgstr "עדכוני הרחבות מוכנים להתקנה."
@ -2747,7 +2747,6 @@ 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"
@ -2764,7 +2763,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: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"
@ -2773,7 +2772,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: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"
@ -2843,7 +2842,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 "הצגת ההרחבות המותקנות" msgstr "List installed extensions"
#: subprojects/extensions-tool/src/command-pack.c:450 #: subprojects/extensions-tool/src/command-pack.c:450
msgid "FILE" msgid "FILE"
@ -2896,19 +2895,14 @@ 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 "צוינה יותר מתיקיית מקור אחת" msgstr "More than one source directory specified"
#: 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 "להרחבה „%s” אין העדפות\n" msgstr "Extension “%s” doesn't have preferences\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 "Opens extension preferences" msgstr "Opens extension preferences"
@ -2933,6 +2927,10 @@ 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"
@ -3067,9 +3065,6 @@ 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-11-26 16:19+0000\n" "POT-Creation-Date: 2021-09-23 14:20+0000\n"
"PO-Revision-Date: 2021-11-26 19:03+0100\n" "PO-Revision-Date: 2021-10-06 19:07+0200\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 2.3\n" "X-Generator: Poedit 3.0\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:1791 #: js/ui/appDisplay.js:1846
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:266 #: js/ui/extensionSystem.js:252
msgid "Extension Updates Available" msgid "Extension Updates Available"
msgstr "Nadopuna proširenja je dostupna" msgstr "Nadopuna proširenja je dostupna"
#: js/ui/extensionSystem.js:267 #: js/ui/extensionSystem.js:253
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,23 +1550,11 @@ msgstr "Pogledaj izvor"
msgid "Web Page" msgid "Web Page"
msgstr "Web stranica" msgstr "Web stranica"
#: js/ui/main.js:259 #: js/ui/main.js:290
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:308 #: 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."
@ -1575,11 +1563,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:357 #: js/ui/main.js:340
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:358 #: js/ui/main.js:341
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."
@ -1607,6 +1595,10 @@ 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
@ -2776,7 +2768,6 @@ 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"
@ -2793,7 +2784,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: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"
@ -2802,7 +2793,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: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"
@ -2932,12 +2923,7 @@ 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:62 #: subprojects/extensions-tool/src/command-prefs.c:79
#, 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"
@ -2962,6 +2948,10 @@ 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"
@ -3094,9 +3084,6 @@ 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-11-13 17:10+0000\n" "POT-Creation-Date: 2021-08-17 23:56+0000\n"
"PO-Revision-Date: 2021-11-21 21:42+0200\n" "PO-Revision-Date: 2021-09-01 23:06+0300\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,38 +28,47 @@ 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"
@ -256,11 +265,22 @@ 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:133 #: data/org.gnome.shell.gschema.xml.in:109
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: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 "
@ -273,108 +293,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:149 #: data/org.gnome.shell.gschema.xml.in:157
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:150 #: data/org.gnome.shell.gschema.xml.in:158
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: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 "Klavišų susiejimas apžvalgos būsenų keitimui" msgstr "Klavišų susiejimas apžvalgos būsenų keitimui"
#: 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 ""
"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: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 ""
"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: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 "Klavišų susiejimas, kuriuo atveriamas rodinys „rodyti programas“" msgstr "Klavišų susiejimas, kuriuo atveriamas rodinys „rodyti programas“"
#: 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 ""
"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:178 #: data/org.gnome.shell.gschema.xml.in:186
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:179 #: data/org.gnome.shell.gschema.xml.in:187
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: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 "Klavišų susiejimas pranešimų juostos matomumui perjungti" msgstr "Klavišų susiejimas pranešimų juostos matomumui perjungti"
#: 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 "Klavišų susiejimas pranešimų juostos matomumui perjungti." msgstr "Klavišų susiejimas pranešimų juostos matomumui perjungti."
#: 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 "Klavišų susiejimas, kuriuo fokusuojamas aktyvus pranešimas" msgstr "Klavišų susiejimas, kuriuo fokusuojamas aktyvus pranešimas"
#: 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 "Klavišų susiejimas, kuriuo fokusuojamas aktyvus pranešimas." msgstr "Klavišų susiejimas, kuriuo fokusuojamas aktyvus pranešimas."
#: 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 "Pereiti į programą 1" msgstr "Pereiti į 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 "Pereiti į programą 2" msgstr "Pereiti į 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 "Pereiti į programą 3" msgstr "Pereiti į 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 "Pereiti į programą 4" msgstr "Pereiti į 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 "Pereiti į programą 5" msgstr "Pereiti į 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 "Pereiti į programą 6" msgstr "Pereiti į 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 "Pereiti į programą 7" msgstr "Pereiti į 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 "Pereiti į programą 8" msgstr "Pereiti į 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 "Pereiti į programą 9" msgstr "Pereiti į 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 "Apriboti perjungėją dabartine darbo sritimi." msgstr "Apriboti perjungėją dabartine darbo sritimi."
#: 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."
@ -382,11 +402,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:258 #: data/org.gnome.shell.gschema.xml.in:266
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: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-"
@ -396,7 +416,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: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."
@ -404,56 +424,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:278 #: data/org.gnome.shell.gschema.xml.in:286
msgid "Locations" msgid "Locations"
msgstr "Vietos" msgstr "Vietos"
#: 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 "Vietos, kurias rodyti pasaulio laikrodžiuose" msgstr "Vietos, kurias rodyti pasaulio laikrodžiuose"
#: data/org.gnome.shell.gschema.xml.in:289 #: data/org.gnome.shell.gschema.xml.in:297
msgid "Automatic location" msgid "Automatic location"
msgstr "Automatinė vieta" msgstr "Automatinė vieta"
#: 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 "Ar gauti dabartinę vietą" msgstr "Ar gauti dabartinę vietą"
#: data/org.gnome.shell.gschema.xml.in:297 #: data/org.gnome.shell.gschema.xml.in:305
msgid "Location" msgid "Location"
msgstr "Vieta" msgstr "Vieta"
#: 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 "Vieta, kuriai rodyti prognozę" msgstr "Vieta, kuriai rodyti prognozę"
#: 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 "Prikabinti modalinį dialogą prie tėvinio lango" msgstr "Prikabinti modalinį dialogą prie tėvinio lango"
#: 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 "Š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: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 "Į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:327 #: data/org.gnome.shell.gschema.xml.in:335
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:335 #: data/org.gnome.shell.gschema.xml.in:343
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: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 "Atidėti fokuso pakeitimus pelei iki žymiklis nustos judėti" msgstr "Atidėti fokuso pakeitimus pelei iki žymiklis nustos judėti"
@ -488,18 +508,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: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 "Atsisakyti" msgstr "Atsisakyti"
#. 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 "Slaptažodis" msgstr "Slaptažodis"
@ -522,8 +542,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: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 "Naudotojo vardas" msgstr "Naudotojo vardas"
@ -628,26 +648,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:121 #: js/misc/util.js:120
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:157 #: js/misc/util.js:156
msgid "Could not parse command:" msgid "Could not parse command:"
msgstr "Nepavyko perskaityti komandos:" msgstr "Nepavyko perskaityti komandos:"
#: 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 "Nepavyko įvykdyti „%s“:" msgstr "Nepavyko įvykdyti „%s“:"
#: js/misc/util.js:182 #: js/misc/util.js:181
msgid "Just now" msgid "Just now"
msgstr "Ką tik" msgstr "Ką tik"
#: 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"
@ -655,7 +675,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: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"
@ -663,11 +683,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:192 js/ui/dateMenu.js:162 #: js/misc/util.js:191 js/ui/dateMenu.js:162
msgid "Yesterday" msgid "Yesterday"
msgstr "Vakar" msgstr "Vakar"
#: 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"
@ -675,7 +695,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: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 +703,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: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"
@ -691,7 +711,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: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"
@ -700,20 +720,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: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 "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: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"
@ -721,7 +741,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 "%B %-d, %H%M" msgstr "%B %-d, %H%M"
@ -729,7 +749,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: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 "%Y %m %-d, %H%M" msgstr "%Y %m %-d, %H%M"
@ -737,20 +757,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: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 "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: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"
@ -758,7 +778,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 "%B %-d, %l%M %p" msgstr "%B %-d, %l%M %p"
@ -766,17 +786,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: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 "%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:49 #: js/portalHelper/main.js:42
msgid "Hotspot Login" msgid "Hotspot Login"
msgstr "Prisijungimas prie prieigos taško" msgstr "Prisijungimas prie prieigos taško"
#: 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."
@ -1021,39 +1041,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: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 ""
"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: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 "Prisijungti" msgstr "Prisijungti"
#: js/ui/components/networkAgent.js:215 #: js/ui/components/networkAgent.js:216
msgid "Key" msgid "Key"
msgstr "Raktas" msgstr "Raktas"
#: 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 "Privataus rakto slaptažodis" msgstr "Privataus rakto slaptažodis"
#: js/ui/components/networkAgent.js:274 #: js/ui/components/networkAgent.js:275
msgid "Identity" msgid "Identity"
msgstr "Tapatybė" msgstr "Tapatybė"
#: js/ui/components/networkAgent.js:288 #: js/ui/components/networkAgent.js:289
msgid "Service" msgid "Service"
msgstr "Tarnyba" msgstr "Tarnyba"
#: 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 "Reikia patvirtinti tapatybę" msgstr "Reikia patvirtinti tapatybę"
#: 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 "
@ -1062,31 +1082,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: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 "Laidinis 802.1X tapatybės patvirtinimas" msgstr "Laidinis 802.1X tapatybės patvirtinimas"
#: js/ui/components/networkAgent.js:324 #: js/ui/components/networkAgent.js:325
msgid "Network name" msgid "Network name"
msgstr "Tinklo vardas" msgstr "Tinklo vardas"
#: 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 tapatybės patvirtinimas" msgstr "DSL tapatybės patvirtinimas"
#: 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 "Reikalingas PIN kodas" msgstr "Reikalingas PIN kodas"
#: 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 "Reikalingas PIN kodas mobiliajam plačiajuosčiam įrenginiui" msgstr "Reikalingas PIN kodas mobiliajam plačiajuosčiam įrenginiui"
#: 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
@ -1383,24 +1403,24 @@ msgstr "%s (nutolęs)"
msgid "%s (console)" msgid "%s (console)"
msgstr "%s (komandų eilutė)" msgstr "%s (komandų eilutė)"
#: js/ui/extensionDownloader.js:232 #: js/ui/extensionDownloader.js:194
msgid "Install" msgid "Install"
msgstr "Įdiegti" msgstr "Įdiegti"
#: js/ui/extensionDownloader.js:238 #: js/ui/extensionDownloader.js:200
msgid "Install Extension" msgid "Install Extension"
msgstr "Išdiegti plėtinį" msgstr "Išdiegti plėtinį"
#: 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 "Parsiųsti ir įdiegti „%s“ iš extensions.gnome.org?" msgstr "Parsiųsti ir įdiegti „%s“ iš extensions.gnome.org?"
#: js/ui/extensionSystem.js:252 #: js/ui/extensionSystem.js:253
msgid "Extension Updates Available" msgid "Extension Updates Available"
msgstr "Yra plėtinių atnaujinimų" msgstr "Yra plėtinių atnaujinimų"
#: 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 "Plėtinių atnaujinimai paruošti diegimui." msgstr "Plėtinių atnaujinimai paruošti diegimui."
@ -1495,7 +1515,7 @@ msgstr "Išjungti"
msgid "Leave Off" msgid "Leave Off"
msgstr "Palikti išjungtą" msgstr "Palikti išjungtą"
#: js/ui/keyboard.js:226 #: js/ui/keyboard.js:227
msgid "Region & Language Settings" msgid "Region & Language Settings"
msgstr "Regiono ir kalbos nustatymai" msgstr "Regiono ir kalbos nustatymai"
@ -1548,11 +1568,11 @@ msgstr "Žiūrėti šaltinį"
msgid "Web Page" msgid "Web Page"
msgstr "Tinklalapis" msgstr "Tinklalapis"
#: 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 "Prisijungta privilegijuotu naudotoju" msgstr "Prisijungta privilegijuotu naudotoju"
#: 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."
@ -1560,15 +1580,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:340 #: js/ui/main.js:344
msgid "Screen Lock disabled" msgid "Screen Lock disabled"
msgstr "Ekrano užraktas išjungtas" msgstr "Ekrano užraktas išjungtas"
#: 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 "Ekrano užrakinimas reikalaujas GNOME vaizduoklio valdyklės." msgstr "Ekrano užrakinimas reikalaujas GNOME vaizduoklio valdyklės."
#: js/ui/messageTray.js:1443 #: js/ui/messageTray.js:1440
msgid "System Information" msgid "System Information"
msgstr "Sistemos informacija" msgstr "Sistemos informacija"
@ -1602,47 +1622,47 @@ msgstr "Atšaukti"
msgid "Overview" msgid "Overview"
msgstr "Apžvalga" msgstr "Apžvalga"
#: js/ui/padOsd.js:95 #: js/ui/padOsd.js:96
msgid "New shortcut…" msgid "New shortcut…"
msgstr "Naujas trumpinys…" msgstr "Naujas trumpinys…"
#: js/ui/padOsd.js:142 #: js/ui/padOsd.js:143
msgid "Application defined" msgid "Application defined"
msgstr "Programos nustatytas" msgstr "Programos nustatytas"
#: js/ui/padOsd.js:143 #: js/ui/padOsd.js:144
msgid "Show on-screen help" msgid "Show on-screen help"
msgstr "Rodyti pagalbą ekrane" msgstr "Rodyti pagalbą ekrane"
#: js/ui/padOsd.js:144 #: js/ui/padOsd.js:145
msgid "Switch monitor" msgid "Switch monitor"
msgstr "Keisti monitorių" msgstr "Keisti monitorių"
#: js/ui/padOsd.js:145 #: js/ui/padOsd.js:146
msgid "Assign keystroke" msgid "Assign keystroke"
msgstr "Priskirti klavišų kombinaciją" msgstr "Priskirti klavišų kombinaciją"
#: js/ui/padOsd.js:211 #: js/ui/padOsd.js:212
msgid "Done" msgid "Done"
msgstr "Atlikta" msgstr "Atlikta"
#: js/ui/padOsd.js:716 #: js/ui/padOsd.js:718
msgid "Edit…" msgid "Edit…"
msgstr "Keisti…" msgstr "Keisti…"
#: 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 "Nėra" msgstr "Nėra"
#: js/ui/padOsd.js:829 #: js/ui/padOsd.js:831
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:830 #: js/ui/padOsd.js:832
msgid "Press Esc to exit" msgid "Press Esc to exit"
msgstr "Spauskit Esc išėjimui" msgstr "Spauskit Esc išėjimui"
#: js/ui/padOsd.js:833 #: js/ui/padOsd.js:835
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šą"
@ -1652,12 +1672,12 @@ msgstr "Išėjimui spauskite bet kurį klavišą"
msgid "Activities" msgid "Activities"
msgstr "Apžvalga" msgstr "Apžvalga"
#: 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 "Sistema" msgstr "Sistema"
#: js/ui/panel.js:674 #: js/ui/panel.js:658
msgid "Top Bar" msgid "Top Bar"
msgstr "Viršutinė juosta" msgstr "Viršutinė juosta"
@ -1696,7 +1716,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:155 #: js/ui/screenshot.js:141
msgid "Screenshot taken" msgid "Screenshot taken"
msgstr "Ekrano nuotrauka padaryta" msgstr "Ekrano nuotrauka padaryta"
@ -2205,6 +2225,7 @@ 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ą"
@ -2398,10 +2419,13 @@ 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"
@ -2754,7 +2778,6 @@ 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"
@ -2771,7 +2794,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: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"
@ -2780,7 +2803,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: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"
@ -2910,12 +2933,7 @@ 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:62 #: subprojects/extensions-tool/src/command-prefs.c:79
#, 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"
@ -2940,6 +2958,10 @@ 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"
@ -3072,18 +3094,6 @@ 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-11-13 20:24+0000\n" "POT-Creation-Date: 2021-09-09 03:40+0000\n"
"PO-Revision-Date: 2021-11-07 20:30+0100\n" "PO-Revision-Date: 2021-08-18 11:11+0200\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 «Benvenguda de GNOME» " "Aquesta clau determina la version de la fenèstra « la 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:266 #: js/ui/extensionSystem.js:252
msgid "Extension Updates Available" msgid "Extension Updates Available"
msgstr "Mesas a jorn extension disponiblas" msgstr "Mesas a jorn extension disponiblas"
#: js/ui/extensionSystem.js:267 #: js/ui/extensionSystem.js:253
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,7 +2794,6 @@ 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"
@ -2811,7 +2810,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: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"
@ -2820,7 +2819,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: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"
@ -2950,12 +2949,7 @@ 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:62 #: subprojects/extensions-tool/src/command-prefs.c:79
#, 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"
@ -2980,6 +2974,10 @@ 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"
@ -2998,7 +2996,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
@ -3020,7 +3018,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"
@ -3110,9 +3108,6 @@ 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-11-04 17:29+0000\n" "POT-Creation-Date: 2021-09-03 21:44+0000\n"
"PO-Revision-Date: 2021-11-06 14:25+0100\n" "PO-Revision-Date: 2021-09-11 15:48+0200\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,7 +2771,6 @@ 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"
@ -2788,7 +2787,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: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 +2796,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: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 +2926,7 @@ 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:62 #: subprojects/extensions-tool/src/command-prefs.c:79
#, 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"
@ -2957,6 +2951,10 @@ 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-26 16:19+0000\n" "POT-Creation-Date: 2021-11-03 10:04+0000\n"
"PO-Revision-Date: 2021-11-27 15:42+0000\n" "PO-Revision-Date: 2021-11-03 11:49+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:1791 #: js/ui/appDisplay.js:1846
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:266 #: js/ui/extensionSystem.js:252
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:267 #: js/ui/extensionSystem.js:253
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,23 +1551,11 @@ msgstr "Ver fonte"
msgid "Web Page" msgid "Web Page"
msgstr "Página Web" msgstr "Página Web"
#: js/ui/main.js:259 #: js/ui/main.js:290
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:308 #: 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."
@ -1575,11 +1563,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:357 #: js/ui/main.js:340
msgid "Screen Lock disabled" msgid "Screen Lock disabled"
msgstr "Bloqueio de ecrã desligado" msgstr "Bloqueio de ecrã desligado"
#: js/ui/main.js:358 #: js/ui/main.js:341
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."
@ -1607,6 +1595,10 @@ 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
@ -2927,7 +2919,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 "Especificado mais do que um diretório origem" msgstr "Mais do que um diretório de origem especificado"
#: subprojects/extensions-tool/src/command-prefs.c:47 #: subprojects/extensions-tool/src/command-prefs.c:47
#, c-format #, c-format
@ -2937,7 +2929,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 a extensão \"%s\": %s\n" msgstr "Falha ao abrir prefs para 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"
@ -3092,7 +3084,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 de sistema" msgstr "Sons do 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,22 +15,28 @@
# 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-08-17 23:56+0000\n" "POT-Creation-Date: 2021-11-03 10:04+0000\n"
"PO-Revision-Date: 2021-08-19 08:44+0300\n" "PO-Revision-Date: 2021-11-03 14:58+0300\n"
"Last-Translator: Alexey Rubtsov <rushills@gmail.com>\n" "Last-Translator: Melman <Alexmelman88@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: Poedit 3.0\n" "X-Generator: Gtranslator 40.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
@ -263,23 +269,11 @@ msgstr ""
"существуют. Это большое число может быть использовано для эффективного " "существуют. Это большое число может быть использовано для эффективного "
"отключения диалога." "отключения диалога."
#: data/org.gnome.shell.gschema.xml.in:109 #: data/org.gnome.shell.gschema.xml.in:133
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: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 "
@ -292,107 +286,107 @@ msgstr ""
"настоящее время в качестве “data” хранятся следующие значения: • \"position" "настоящее время в качестве “data” хранятся следующие значения: • \"position"
"\" - положение значка приложения на странице" "\" - положение значка приложения на странице"
#: 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 "Комбинация клавиш для открытия меню приложения" msgstr "Комбинация клавиш для открытия меню приложения"
#: 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 "Комбинация клавиш для открытия меню приложения." msgstr "Комбинация клавиш для открытия меню приложения."
#: 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 "Сочетание клавиш для переключения между состояниями обзора"
#: 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 ""
"Сочетание клавиш для переключения между сеансом, меню выбора окон и сеткой " "Сочетание клавиш для переключения между сеансом, меню выбора окон и сеткой "
"приложений" "приложений"
#: 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 ""
"Сочетание клавиш для переключения между сеткой приложений, меню выбора окон " "Сочетание клавиш для переключения между сеткой приложений, меню выбора окон "
"и сеансом" "и сеансом"
#: 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 "Комбинация клавиш для перехода в режим просмотра приложений"
#: 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 ""
"Комбинация клавиш для перехода в режим просмотра приложений в меню «Обзор»." "Комбинация клавиш для перехода в режим просмотра приложений в меню «Обзор»."
#: 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 "Комбинация клавиш для перехода в режим обзора" msgstr "Комбинация клавиш для перехода в режим обзора"
#: 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 "Комбинация клавиш для перехода в режим обзора." msgstr "Комбинация клавиш для перехода в режим обзора."
#: 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 "Комбинация клавиш для отображения или скрытия списка уведомлений"
#: 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 "Комбинация клавиш для отображения или скрытия списка уведомлений."
#: 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 "Комбинация клавиш для перевода фокуса на текущее уведомление" msgstr "Комбинация клавиш для перевода фокуса на текущее уведомление"
#: 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 "Комбинация клавиш для перевода фокуса на текущее уведомление." msgstr "Комбинация клавиш для перевода фокуса на текущее уведомление."
#: 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 "Переключиться на приложение 1" msgstr "Переключиться на приложение 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 "Переключиться на приложение 2" msgstr "Переключиться на приложение 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 "Переключиться на приложение 3" msgstr "Переключиться на приложение 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 "Переключиться на приложение 4" msgstr "Переключиться на приложение 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 "Переключиться на приложение 5" msgstr "Переключиться на приложение 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 "Переключиться на приложение 6" msgstr "Переключиться на приложение 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 "Переключиться на приложение 7" msgstr "Переключиться на приложение 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 "Переключиться на приложение 8" msgstr "Переключиться на приложение 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 "Переключиться на приложение 9" msgstr "Переключиться на приложение 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 "Ограничить переключатель текущим рабочим местом." msgstr "Ограничить переключатель текущим рабочим местом."
#: 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."
@ -401,11 +395,11 @@ msgstr ""
"чьи окна находятся на текущем рабочем месте. Иначе все приложения будут " "чьи окна находятся на текущем рабочем месте. Иначе все приложения будут "
"включены." "включены."
#: 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 "Режим значка приложения." msgstr "Режим значка приложения."
#: 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-"
@ -415,7 +409,7 @@ msgstr ""
"«thumbnail-only» (показывать миниатюру окна), «app-icon-only» (показывать " "«thumbnail-only» (показывать миниатюру окна), «app-icon-only» (показывать "
"только значок приложения), «both» (показывать миниатюру и значок)." "только значок приложения), «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."
@ -423,59 +417,59 @@ msgstr ""
"Если выбрано, то в переключателе будут показываться только окна из текущего " "Если выбрано, то в переключателе будут показываться только окна из текущего "
"рабочего места. Иначе все окна будут включены." "рабочего места. Иначе все окна будут включены."
#: data/org.gnome.shell.gschema.xml.in:286 #: data/org.gnome.shell.gschema.xml.in:278
msgid "Locations" msgid "Locations"
msgstr "Местоположения" msgstr "Местоположения"
#: 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 "Местоположения для отображения в мировых часах" msgstr "Местоположения для отображения в мировых часах"
#: data/org.gnome.shell.gschema.xml.in:297 #: data/org.gnome.shell.gschema.xml.in:289
msgid "Automatic location" msgid "Automatic location"
msgstr "Автоматическое местоположение" msgstr "Автоматическое местоположение"
#: 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 "Определяет получать местоположение или нет" msgstr "Определяет получать местоположение или нет"
#: data/org.gnome.shell.gschema.xml.in:305 #: data/org.gnome.shell.gschema.xml.in:297
msgid "Location" msgid "Location"
msgstr "Местоположение" msgstr "Местоположение"
#: 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 "Местоположение для которого отображается прогноз погоды" msgstr "Местоположение для которого отображается прогноз погоды"
#: 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 "Прикреплять модальное диалоговое окно к родительскому окну" msgstr "Прикреплять модальное диалоговое окно к родительскому окну"
#: 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 ""
"Этот ключ переопределяет ключ в org.gnome.mutter при запуске GNOME Shell." "Этот ключ переопределяет ключ в org.gnome.mutter при запуске 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 ""
"Включить автоматическое изменение размеров окон при перемещении окон к краям " "Включить автоматическое изменение размеров окон при перемещении окон к краям "
"экрана" "экрана"
#: 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 "Рабочие места управляются динамически" msgstr "Рабочие места управляются динамически"
#: 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 "Рабочие места только на основном мониторе" msgstr "Рабочие места только на основном мониторе"
#: 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 "Задержка изменения фокуса в режиме мыши после остановки указателя"
@ -510,18 +504,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: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 "Отмена" msgstr "Отмена"
#. 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 "Пароль" msgstr "Пароль"
@ -544,8 +538,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: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 "Имя пользователя" msgstr "Имя пользователя"
@ -650,26 +644,26 @@ msgctxt "search-result"
msgid "Lock Screen Rotation" msgid "Lock Screen Rotation"
msgstr "Заблокировать ориентацию экрана" msgstr "Заблокировать ориентацию экрана"
#: js/misc/util.js:120 #: js/misc/util.js:121
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:156 #: js/misc/util.js:157
msgid "Could not parse command:" msgid "Could not parse command:"
msgstr "Не удалось разобрать команду:" msgstr "Не удалось разобрать команду:"
#: 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 "Не удалось выполнить «%s»:" msgstr "Не удалось выполнить «%s»:"
#: js/misc/util.js:181 #: js/misc/util.js:182
msgid "Just now" msgid "Just now"
msgstr "Прямо сейчас" msgstr "Прямо сейчас"
#: 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"
@ -677,7 +671,7 @@ msgstr[0] "%d минута назад"
msgstr[1] "%d минуты назад" msgstr[1] "%d минуты назад"
msgstr[2] "%d минут назад" msgstr[2] "%d минут назад"
#: 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"
@ -685,11 +679,11 @@ msgstr[0] "%d час назад"
msgstr[1] "%d часа назад" msgstr[1] "%d часа назад"
msgstr[2] "%d часов назад" msgstr[2] "%d часов назад"
#: 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 "Вчера" msgstr "Вчера"
#: 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"
@ -697,7 +691,7 @@ msgstr[0] "%d день назад"
msgstr[1] "%d дня назад" msgstr[1] "%d дня назад"
msgstr[2] "%d дней назад" msgstr[2] "%d дней назад"
#: 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"
@ -705,7 +699,7 @@ msgstr[0] "%d неделя назад"
msgstr[1] "%d недели назад" msgstr[1] "%d недели назад"
msgstr[2] "%d недель назад" msgstr[2] "%d недель назад"
#: 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"
@ -713,7 +707,7 @@ msgstr[0] "%d месяц назад"
msgstr[1] "%d месяца назад" msgstr[1] "%d месяца назад"
msgstr[2] "%d месяцев назад" msgstr[2] "%d месяцев назад"
#: 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"
@ -722,20 +716,20 @@ msgstr[1] "%d года назад"
msgstr[2] "%d лет назад" msgstr[2] "%d лет назад"
#. 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 "Вчера, %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: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"
@ -743,7 +737,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"
@ -751,7 +745,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"
@ -759,20 +753,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 "Вчера, %-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: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"
@ -780,7 +774,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"
@ -789,17 +783,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 "Авторизация в точке доступа" msgstr "Авторизация в точке доступа"
#: 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."
@ -1045,40 +1039,40 @@ msgstr "Установленная версия udisks не поддержива
msgid "Open with %s" msgid "Open with %s"
msgstr "Открыть с помощью %s" msgstr "Открыть с помощью %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 ""
"В качестве альтернативы вы можете подключиться, нажав кнопку «WPS» на вашем " "В качестве альтернативы вы можете подключиться, нажав кнопку «WPS» на вашем "
"маршрутизаторе." "маршрутизаторе."
#: 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 "Соединиться" msgstr "Соединиться"
#: js/ui/components/networkAgent.js:216 #: js/ui/components/networkAgent.js:215
msgid "Key" msgid "Key"
msgstr "Ключ" msgstr "Ключ"
#: 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 "Пароль личного ключа" msgstr "Пароль личного ключа"
#: js/ui/components/networkAgent.js:275 #: js/ui/components/networkAgent.js:274
msgid "Identity" msgid "Identity"
msgstr "Идентичность" msgstr "Идентичность"
#: js/ui/components/networkAgent.js:289 #: js/ui/components/networkAgent.js:288
msgid "Service" msgid "Service"
msgstr "Служба" msgstr "Служба"
#: 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 "Требуется подтверждение подлинности" msgstr "Требуется подтверждение подлинности"
#: 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 "
@ -1086,31 +1080,31 @@ msgid ""
msgstr "" msgstr ""
"Для доступа к беспроводной сети «%s» требуется пароль или ключ шифрования." "Для доступа к беспроводной сети «%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 "Аутентификация Wired 802.1X" msgstr "Аутентификация Wired 802.1X"
#: js/ui/components/networkAgent.js:325 #: js/ui/components/networkAgent.js:324
msgid "Network name" msgid "Network name"
msgstr "Название сети" msgstr "Название сети"
#: 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" msgstr "Аутентификация 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 "Требуется PIN-код" msgstr "Требуется 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 "Для устройства мобильной связи требуется PIN-код" msgstr "Для устройства мобильной связи требуется 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
@ -1409,24 +1403,24 @@ msgstr "%s (удалённый)"
msgid "%s (console)" msgid "%s (console)"
msgstr "%s (консоль)" msgstr "%s (консоль)"
#: js/ui/extensionDownloader.js:194 #: js/ui/extensionDownloader.js:232
msgid "Install" msgid "Install"
msgstr "Установить" msgstr "Установить"
#: js/ui/extensionDownloader.js:200 #: js/ui/extensionDownloader.js:238
msgid "Install Extension" msgid "Install Extension"
msgstr "Установить расширение" msgstr "Установить расширение"
#: 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 "Загрузить и установить расширение «%s» из extensions.gnome.org?" msgstr "Загрузить и установить расширение «%s» из extensions.gnome.org?"
#: js/ui/extensionSystem.js:253 #: js/ui/extensionSystem.js:252
msgid "Extension Updates Available" msgid "Extension Updates Available"
msgstr "Доступны обновления расширений" msgstr "Доступны обновления расширений"
#: 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 "Обновления расширений готовы к установке." msgstr "Обновления расширений готовы к установке."
@ -1523,7 +1517,7 @@ msgstr "Выключить"
msgid "Leave Off" msgid "Leave Off"
msgstr "Оставить выключенными" msgstr "Оставить выключенными"
#: js/ui/keyboard.js:227 #: js/ui/keyboard.js:226
msgid "Region & Language Settings" msgid "Region & Language Settings"
msgstr "Настройки языка и региона" msgstr "Настройки языка и региона"
@ -1576,11 +1570,11 @@ msgstr "Показать код"
msgid "Web Page" msgid "Web Page"
msgstr "Веб-страница" msgstr "Веб-страница"
#: 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 "Авторизован как привилегированный пользователь" msgstr "Авторизован как привилегированный пользователь"
#: 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."
@ -1589,15 +1583,15 @@ msgstr ""
"привилегированного пользователя. Если это возможно, вам следует войти от " "привилегированного пользователя. Если это возможно, вам следует войти от "
"имени обычного пользователя." "имени обычного пользователя."
#: js/ui/main.js:344 #: js/ui/main.js:340
msgid "Screen Lock disabled" msgid "Screen Lock disabled"
msgstr "Блокировка экрана отключена" msgstr "Блокировка экрана отключена"
#: 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 "Для блокировки экрана требуется GNOME display manager." msgstr "Для блокировки экрана требуется GNOME display manager."
#: js/ui/messageTray.js:1440 #: js/ui/messageTray.js:1443
msgid "System Information" msgid "System Information"
msgstr "Системная информация" msgstr "Системная информация"
@ -1631,47 +1625,47 @@ msgstr "Отменить"
msgid "Overview" msgid "Overview"
msgstr "Обзор" msgstr "Обзор"
#: js/ui/padOsd.js:96 #: js/ui/padOsd.js:95
msgid "New shortcut…" msgid "New shortcut…"
msgstr "Создать комбинацию клавиш…" msgstr "Создать комбинацию клавиш…"
#: js/ui/padOsd.js:143 #: js/ui/padOsd.js:142
msgid "Application defined" msgid "Application defined"
msgstr "Определено приложением" msgstr "Определено приложением"
#: js/ui/padOsd.js:144 #: js/ui/padOsd.js:143
msgid "Show on-screen help" msgid "Show on-screen help"
msgstr "Показывать экранную справку" msgstr "Показывать экранную справку"
#: js/ui/padOsd.js:145 #: js/ui/padOsd.js:144
msgid "Switch monitor" msgid "Switch monitor"
msgstr "Переключить монитор" msgstr "Переключить монитор"
#: js/ui/padOsd.js:146 #: js/ui/padOsd.js:145
msgid "Assign keystroke" msgid "Assign keystroke"
msgstr "Назначение клавишь" msgstr "Назначение клавишь"
#: js/ui/padOsd.js:212 #: js/ui/padOsd.js:211
msgid "Done" msgid "Done"
msgstr "Готово" msgstr "Готово"
#: js/ui/padOsd.js:718 #: js/ui/padOsd.js:716
msgid "Edit…" msgid "Edit…"
msgstr "Правка…" msgstr "Правка…"
#: 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 "Нет" msgstr "Нет"
#: js/ui/padOsd.js:831 #: js/ui/padOsd.js:829
msgid "Press a button to configure" msgid "Press a button to configure"
msgstr "Нажмите кнопку для настройки" msgstr "Нажмите кнопку для настройки"
#: js/ui/padOsd.js:832 #: js/ui/padOsd.js:830
msgid "Press Esc to exit" msgid "Press Esc to exit"
msgstr "Нажмите Esc для выхода" msgstr "Нажмите Esc для выхода"
#: js/ui/padOsd.js:835 #: js/ui/padOsd.js:833
msgid "Press any key to exit" msgid "Press any key to exit"
msgstr "Нажмите любую клавишу для выхода" msgstr "Нажмите любую клавишу для выхода"
@ -1681,12 +1675,12 @@ msgstr "Нажмите любую клавишу для выхода"
msgid "Activities" msgid "Activities"
msgstr "Обзор" msgstr "Обзор"
#: 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 "Система" msgstr "Система"
#: js/ui/panel.js:658 #: js/ui/panel.js:674
msgid "Top Bar" msgid "Top Bar"
msgstr "Верхняя панель" msgstr "Верхняя панель"
@ -1725,7 +1719,7 @@ msgstr "Не удалось заблокировать"
msgid "Lock was blocked by an application" msgid "Lock was blocked by an application"
msgstr "Блокировке помешало приложение" msgstr "Блокировке помешало приложение"
#: js/ui/screenshot.js:141 #: js/ui/screenshot.js:155
msgid "Screenshot taken" msgid "Screenshot taken"
msgstr "Сделан снимок экрана" msgstr "Сделан снимок экрана"
@ -2832,6 +2826,7 @@ 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"
@ -2848,7 +2843,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: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 +2852,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: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"
@ -2987,7 +2982,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 "Открыть параметры расширения"
@ -3012,10 +3012,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 "Невозможно подключиться к GNOME Shell"
#: subprojects/extensions-tool/src/main.c:244 #: subprojects/extensions-tool/src/main.c:244
msgid "Path" msgid "Path"
msgstr "Путь" msgstr "Путь"
@ -3148,192 +3144,3 @@ 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-11-06 13:27+0000\n" "POT-Creation-Date: 2021-08-17 23:56+0000\n"
"PO-Revision-Date: 2021-11-06 15:10+0100\n" "PO-Revision-Date: 2021-08-31 15:49+0200\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,11 +268,23 @@ 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:133 #: data/org.gnome.shell.gschema.xml.in:109
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: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 "
@ -285,119 +297,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:149 #: data/org.gnome.shell.gschema.xml.in:157
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:150 #: data/org.gnome.shell.gschema.xml.in:158
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: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 "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: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 ""
"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: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 ""
"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: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 "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: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 ""
"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:178 #: data/org.gnome.shell.gschema.xml.in:186
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:179 #: data/org.gnome.shell.gschema.xml.in:187
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: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 "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: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 "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:192 #: data/org.gnome.shell.gschema.xml.in:200
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:193 #: data/org.gnome.shell.gschema.xml.in:201
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:199 #: data/org.gnome.shell.gschema.xml.in:207
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:203 #: data/org.gnome.shell.gschema.xml.in:211
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:207 #: data/org.gnome.shell.gschema.xml.in:215
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:211 #: data/org.gnome.shell.gschema.xml.in:219
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:215 #: data/org.gnome.shell.gschema.xml.in:223
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:219 #: data/org.gnome.shell.gschema.xml.in:227
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:223 #: data/org.gnome.shell.gschema.xml.in:231
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:227 #: data/org.gnome.shell.gschema.xml.in:235
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:231 #: data/org.gnome.shell.gschema.xml.in:239
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: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 "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: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."
@ -405,11 +417,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:258 #: data/org.gnome.shell.gschema.xml.in:266
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: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-"
@ -420,7 +432,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: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."
@ -428,59 +440,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:278 #: data/org.gnome.shell.gschema.xml.in:286
msgid "Locations" msgid "Locations"
msgstr "Umiestnenia" msgstr "Umiestnenia"
#: 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 "Zobrazené umiestnenia v svetových časoch" msgstr "Zobrazené umiestnenia v svetových časoch"
#: data/org.gnome.shell.gschema.xml.in:289 #: data/org.gnome.shell.gschema.xml.in:297
msgid "Automatic location" msgid "Automatic location"
msgstr "Automatické umiestnenie" msgstr "Automatické umiestnenie"
#: 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 "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:297 #: data/org.gnome.shell.gschema.xml.in:305
msgid "Location" msgid "Location"
msgstr "Umiestnenie" msgstr "Umiestnenie"
#: 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 "Umiestnenie, pre ktoré zobraziť predpoveď" msgstr "Umiestnenie, pre ktoré zobraziť predpoveď"
#: 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 "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: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 ""
"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: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 "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:327 #: data/org.gnome.shell.gschema.xml.in:335
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:335 #: data/org.gnome.shell.gschema.xml.in:343
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: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 ""
"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í"
@ -516,18 +528,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: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 "Zrušiť" msgstr "Zruš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 "Heslo" msgstr "Heslo"
@ -552,8 +564,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: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 "Používateľské meno" msgstr "Používateľské meno"
@ -661,26 +673,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:121 #: js/misc/util.js:120
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:157 #: js/misc/util.js:156
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:165 #: js/misc/util.js:164
#, 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:182 #: js/misc/util.js:181
msgid "Just now" msgid "Just now"
msgstr "Práve teraz" msgstr "Práve teraz"
#: 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"
@ -688,7 +700,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: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"
@ -696,11 +708,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:192 js/ui/dateMenu.js:162 #: js/misc/util.js:191 js/ui/dateMenu.js:162
msgid "Yesterday" msgid "Yesterday"
msgstr "Včera" msgstr "Včera"
#: 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"
@ -708,7 +720,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: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"
@ -716,7 +728,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: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"
@ -724,7 +736,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: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"
@ -733,20 +745,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: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č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: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"
@ -754,7 +766,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"
@ -762,7 +774,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"
@ -770,13 +782,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: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čera, %l:%M %p" msgstr "Včera, %l:%M %p"
@ -786,7 +798,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: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"
@ -794,7 +806,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"
@ -802,17 +814,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 "Prihlásenie do aktívneho bodu" msgstr "Prihlásenie do aktívneho bodu"
#: 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."
@ -1062,39 +1074,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: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 ""
"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: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 "Pripojiť" msgstr "Pripojiť"
#: js/ui/components/networkAgent.js:215 #: js/ui/components/networkAgent.js:216
msgid "Key" msgid "Key"
msgstr "Kľúč" msgstr "Kľúč"
#: 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 "Heslo k súkromnému kľúču" msgstr "Heslo k súkromnému kľúču"
#: js/ui/components/networkAgent.js:274 #: js/ui/components/networkAgent.js:275
msgid "Identity" msgid "Identity"
msgstr "Identita" msgstr "Identita"
#: js/ui/components/networkAgent.js:288 #: js/ui/components/networkAgent.js:289
msgid "Service" msgid "Service"
msgstr "Služba" msgstr "Služba"
#: 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 "Požaduje sa overenie totožnosti" msgstr "Požaduje sa overenie totožnosti"
#: 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 "
@ -1103,31 +1115,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: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 "Overenie totožnosti k drôtovej sieti 802.1X" msgstr "Overenie totožnosti k drôtovej sieti 802.1X"
#: js/ui/components/networkAgent.js:324 #: js/ui/components/networkAgent.js:325
msgid "Network name" msgid "Network name"
msgstr "Názov siete" msgstr "Názov siete"
#: 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 "Overenie totožnosti k DSL" msgstr "Overenie totožnosti k 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 "Požaduje sa kód PIN" msgstr "Požaduje sa kód 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 "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: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
@ -1425,25 +1437,25 @@ msgstr "%s (vzdialená relácia)"
msgid "%s (console)" msgid "%s (console)"
msgstr "%s (konzola)" msgstr "%s (konzola)"
#: js/ui/extensionDownloader.js:232 #: js/ui/extensionDownloader.js:194
msgid "Install" msgid "Install"
msgstr "Inštalovať" msgstr "Inštalovať"
# dialog title # dialog title
#: js/ui/extensionDownloader.js:238 #: js/ui/extensionDownloader.js:200
msgid "Install Extension" msgid "Install Extension"
msgstr "Inštalácia rozšírenia" msgstr "Inštalácia rozšírenia"
#: 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 "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:252 #: js/ui/extensionSystem.js:253
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:253 #: js/ui/extensionSystem.js:254
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."
@ -1543,7 +1555,7 @@ msgstr "Vypnúť"
msgid "Leave Off" msgid "Leave Off"
msgstr "Ponechať vypnuté" msgstr "Ponechať vypnuté"
#: js/ui/keyboard.js:226 #: js/ui/keyboard.js:227
msgid "Region & Language Settings" msgid "Region & Language Settings"
msgstr "Nastavenia oblasti a jazyka" msgstr "Nastavenia oblasti a jazyka"
@ -1597,11 +1609,11 @@ msgstr "Zobraziť zdroj"
msgid "Web Page" msgid "Web Page"
msgstr "Webová stránka" msgstr "Webová stránka"
#: 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 "Prihlásený ako privilegovaný používateľ" msgstr "Prihlásený ako privilegovaný používateľ"
#: 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."
@ -1610,15 +1622,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:340 #: js/ui/main.js:344
msgid "Screen Lock disabled" msgid "Screen Lock disabled"
msgstr "Uzamknutie obrazovky je zakázané" msgstr "Uzamknutie obrazovky je zakázané"
#: 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 "Uzamykanie obrazovky vyžaduje správcu displejov prostredia GNOME." msgstr "Uzamykanie obrazovky vyžaduje správcu displejov prostredia GNOME."
#: js/ui/messageTray.js:1443 #: js/ui/messageTray.js:1440
msgid "System Information" msgid "System Information"
msgstr "Informácie o systéme" msgstr "Informácie o systéme"
@ -1653,47 +1665,47 @@ msgstr "Vrátiť"
msgid "Overview" msgid "Overview"
msgstr "Prehľad" msgstr "Prehľad"
#: js/ui/padOsd.js:95 #: js/ui/padOsd.js:96
msgid "New shortcut…" msgid "New shortcut…"
msgstr "Nová skratka…" msgstr "Nová skratka…"
#: js/ui/padOsd.js:142 #: js/ui/padOsd.js:143
msgid "Application defined" msgid "Application defined"
msgstr "Definované aplikáciou" msgstr "Definované aplikáciou"
#: js/ui/padOsd.js:143 #: js/ui/padOsd.js:144
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:144 #: js/ui/padOsd.js:145
msgid "Switch monitor" msgid "Switch monitor"
msgstr "Prepnúť monitor" msgstr "Prepnúť monitor"
#: js/ui/padOsd.js:145 #: js/ui/padOsd.js:146
msgid "Assign keystroke" msgid "Assign keystroke"
msgstr "Priradiť klávesu" msgstr "Priradiť klávesu"
#: js/ui/padOsd.js:211 #: js/ui/padOsd.js:212
msgid "Done" msgid "Done"
msgstr "Dokončiť" msgstr "Dokončiť"
#: js/ui/padOsd.js:716 #: js/ui/padOsd.js:718
msgid "Edit…" msgid "Edit…"
msgstr "Upraviť…" msgstr "Upraviť…"
#: 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 "Žiadne" msgstr "Žiadne"
#: js/ui/padOsd.js:829 #: js/ui/padOsd.js:831
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:830 #: js/ui/padOsd.js:832
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:833 #: js/ui/padOsd.js:835
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"
@ -1703,12 +1715,12 @@ msgstr "Stlačte akýkoľvek kláves na skončenie"
msgid "Activities" msgid "Activities"
msgstr "Aktivity" msgstr "Aktivity"
#: 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 "Systém" msgstr "Systém"
#: js/ui/panel.js:674 #: js/ui/panel.js:658
msgid "Top Bar" msgid "Top Bar"
msgstr "Horná lišta" msgstr "Horná lišta"
@ -1748,7 +1760,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:155 #: js/ui/screenshot.js:141
msgid "Screenshot taken" msgid "Screenshot taken"
msgstr "Snímka obrazovky bola zachytená" msgstr "Snímka obrazovky bola zachytená"
@ -2819,7 +2831,6 @@ 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"
@ -2837,7 +2848,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: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"
@ -2846,7 +2857,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: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"
@ -2979,12 +2990,7 @@ 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:62 #: subprojects/extensions-tool/src/command-prefs.c:79
#, 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"
@ -3012,6 +3018,10 @@ 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"
@ -3149,19 +3159,6 @@ 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-08-29 17:33+0000\n" "POT-Creation-Date: 2021-11-02 16:32+0000\n"
"PO-Revision-Date: 2021-08-30 21:12+0200\n" "PO-Revision-Date: 2021-11-02 17:49+0100\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 2.4.2\n" "X-Generator: Poedit 3.0\n"
#: data/50-gnome-shell-launchers.xml:6 #: data/50-gnome-shell-launchers.xml:6
msgid "Launchers" msgid "Launchers"
@ -251,21 +251,11 @@ 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:109 #: data/org.gnome.shell.gschema.xml.in:133
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: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 "
@ -277,105 +267,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:157 #: data/org.gnome.shell.gschema.xml.in:149
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:158 #: data/org.gnome.shell.gschema.xml.in:150
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: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 "Tipkovna bližnjica za preklop med stanji pregleda" msgstr "Tipkovna bližnjica za preklop med stanji pregleda"
#: 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 ""
"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: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 ""
"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: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 "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: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 ""
"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:186 #: data/org.gnome.shell.gschema.xml.in:178
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:187 #: data/org.gnome.shell.gschema.xml.in:179
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: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 "Tipkovna bližnjica za preklop vidnosti seznama obvestil" msgstr "Tipkovna bližnjica za preklop vidnosti seznama obvestil"
#: 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 "Tipkovna bližnjica za preklop vidnosti seznama obvestil." msgstr "Tipkovna bližnjica za preklop vidnosti seznama obvestil."
#: 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 "Tipkovna bližnjica za prikaz dejavnega obvestila" msgstr "Tipkovna bližnjica za prikaz dejavnega obvestila"
#: 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 "Tipkovna bližnjica za prikaz dejavnega obvestila." msgstr "Tipkovna bližnjica za prikaz dejavnega obvestila."
#: 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 "Preklopi na program 1" msgstr "Preklopi na 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 "Preklopi na program 2" msgstr "Preklopi na 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 "Preklopi na program 3" msgstr "Preklopi na 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 "Preklopi na program 4" msgstr "Preklopi na 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 "Preklopi na program 5" msgstr "Preklopi na 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 "Preklopi na program 6" msgstr "Preklopi na 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 "Preklopi na program 7" msgstr "Preklopi na 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 "Preklopi na program 8" msgstr "Preklopi na 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 "Preklopi na program 9" msgstr "Preklopi na 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 "Omeji preklopnik na trenutno delovno površino." msgstr "Omeji preklopnik na trenutno delovno površino."
#: 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."
@ -384,11 +374,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:266 #: data/org.gnome.shell.gschema.xml.in:258
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: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-"
@ -398,7 +388,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: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."
@ -406,57 +396,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:286 #: data/org.gnome.shell.gschema.xml.in:278
msgid "Locations" msgid "Locations"
msgstr "Mesta" msgstr "Mesta"
#: 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 "Mesta, za katere naj bodo prikazani svetovni časi" msgstr "Mesta, za katere naj bodo prikazani svetovni časi"
#: data/org.gnome.shell.gschema.xml.in:297 #: data/org.gnome.shell.gschema.xml.in:289
msgid "Automatic location" msgid "Automatic location"
msgstr "Samodejno določanje mesta" msgstr "Samodejno določanje mesta"
#: 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 "Ali naj program pridobi trenutno mesto ali ne" msgstr "Ali naj program pridobi trenutno mesto ali ne"
#: data/org.gnome.shell.gschema.xml.in:305 #: data/org.gnome.shell.gschema.xml.in:297
msgid "Location" msgid "Location"
msgstr "Trenutno mesto" msgstr "Trenutno mesto"
#: 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 "Mesto, za katero naj bo pokazana napoved" msgstr "Mesto, za katero naj bo pokazana napoved"
#: 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 "Pripni modalno pogovorno okno na glavno okno" msgstr "Pripni modalno pogovorno okno na glavno okno"
#: 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 ""
"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: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 "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:335 #: data/org.gnome.shell.gschema.xml.in:327
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:343 #: data/org.gnome.shell.gschema.xml.in:335
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: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 ""
"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 "
@ -493,18 +483,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: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:230 #: 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 "Prekliči" msgstr "Preklič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 "Geslo" msgstr "Geslo"
@ -527,8 +517,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: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 "Uporabniško ime" msgstr "Uporabniško ime"
@ -634,26 +624,26 @@ msgctxt "search-result"
msgid "Lock Screen Rotation" msgid "Lock Screen Rotation"
msgstr "Vrtenje zaklepanja zaslona" msgstr "Vrtenje zaklepanja zaslona"
#: js/misc/util.js:120 #: js/misc/util.js:121
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:156 #: js/misc/util.js:157
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:164 #: js/misc/util.js:165
#, 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:181 #: js/misc/util.js:182
msgid "Just now" msgid "Just now"
msgstr "Ravnokar" msgstr "Ravnokar"
#: 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"
@ -662,7 +652,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: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"
@ -671,11 +661,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:191 js/ui/dateMenu.js:162 #: js/misc/util.js:192 js/ui/dateMenu.js:162
msgid "Yesterday" msgid "Yesterday"
msgstr "Včeraj" msgstr "Včeraj"
#: 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"
@ -684,7 +674,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: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"
@ -693,7 +683,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: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"
@ -702,7 +692,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: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"
@ -712,20 +702,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: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č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: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"
@ -733,7 +723,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"
@ -741,7 +731,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"
@ -749,20 +739,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 "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: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"
@ -770,7 +760,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"
@ -778,7 +768,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: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"
@ -1033,38 +1023,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: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 "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: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 "Poveži" msgstr "Poveži"
#: js/ui/components/networkAgent.js:216 #: js/ui/components/networkAgent.js:215
msgid "Key" msgid "Key"
msgstr "Ključ" msgstr "Ključ"
#: 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 "Geslo zasebnega ključa" msgstr "Geslo zasebnega ključa"
#: js/ui/components/networkAgent.js:275 #: js/ui/components/networkAgent.js:274
msgid "Identity" msgid "Identity"
msgstr "Istovetnost" msgstr "Istovetnost"
#: js/ui/components/networkAgent.js:289 #: js/ui/components/networkAgent.js:288
msgid "Service" msgid "Service"
msgstr "Storitev" msgstr "Storitev"
#: 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 "Zahtevana je overitev" msgstr "Zahtevana je overitev"
#: 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 "
@ -1073,31 +1063,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: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 "Žična overitev 802.1X" msgstr "Žična overitev 802.1X"
#: js/ui/components/networkAgent.js:325 #: js/ui/components/networkAgent.js:324
msgid "Network name" msgid "Network name"
msgstr "Naziv omrežja" msgstr "Naziv omrežja"
#: 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 "Overitev DSL" msgstr "Overitev 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 "Zahtevana koda PIN" msgstr "Zahtevana koda 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 "Za napravo mobilnega širokopasovnega dostopa je zahtevana koda PIN." msgstr "Za napravo mobilnega širokopasovnega dostopa je zahtevana koda PIN."
#: js/ui/components/networkAgent.js:339 #: js/ui/components/networkAgent.js:338
msgid "PIN" msgid "PIN"
msgstr "Koda PIN" msgstr "Koda 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
@ -1401,24 +1391,24 @@ msgstr "%s (oddaljeno)"
msgid "%s (console)" msgid "%s (console)"
msgstr "%s (konzola)" msgstr "%s (konzola)"
#: js/ui/extensionDownloader.js:234 #: js/ui/extensionDownloader.js:232
msgid "Install" msgid "Install"
msgstr "Namesti" msgstr "Namesti"
#: js/ui/extensionDownloader.js:240 #: js/ui/extensionDownloader.js:238
msgid "Install Extension" msgid "Install Extension"
msgstr "Namesti razširitev" msgstr "Namesti razširitev"
#: js/ui/extensionDownloader.js:241 #: 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 "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:253 #: js/ui/extensionSystem.js:252
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:254 #: js/ui/extensionSystem.js:253
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."
@ -1513,7 +1503,7 @@ msgstr "Onemogoči"
msgid "Leave Off" msgid "Leave Off"
msgstr "Pusti onemogočeno" msgstr "Pusti onemogočeno"
#: js/ui/keyboard.js:227 #: js/ui/keyboard.js:226
msgid "Region & Language Settings" msgid "Region & Language Settings"
msgstr "Nastavitve območja in jezika" msgstr "Nastavitve območja in jezika"
@ -1566,11 +1556,11 @@ msgstr "Poglej vir"
msgid "Web Page" msgid "Web Page"
msgstr "Spletna stran" msgstr "Spletna stran"
#: 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 "Zaznana je prijava s skrbniškimi dovoljenji" msgstr "Zaznana je prijava s skrbniškimi dovoljenji"
#: 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."
@ -1578,11 +1568,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:344 #: js/ui/main.js:340
msgid "Screen Lock disabled" msgid "Screen Lock disabled"
msgstr "Zaklep zaslona je onemogočen" msgstr "Zaklep zaslona je onemogočen"
#: 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 ""
"Zaklepanje zaslona zahteva namestitev upravljalnika zaslona za okolje GNOME." "Zaklepanje zaslona zahteva namestitev upravljalnika zaslona za okolje GNOME."
@ -1621,47 +1611,47 @@ msgstr "Razveljavi"
msgid "Overview" msgid "Overview"
msgstr "Pregled" msgstr "Pregled"
#: js/ui/padOsd.js:96 #: js/ui/padOsd.js:95
msgid "New shortcut…" msgid "New shortcut…"
msgstr "Nova bližnjica …" msgstr "Nova bližnjica …"
#: js/ui/padOsd.js:143 #: js/ui/padOsd.js:142
msgid "Application defined" msgid "Application defined"
msgstr "Program je določen" msgstr "Program je določen"
#: js/ui/padOsd.js:144 #: js/ui/padOsd.js:143
msgid "Show on-screen help" msgid "Show on-screen help"
msgstr "Pokaži zaslonsko pomoč" msgstr "Pokaži zaslonsko pomoč"
#: js/ui/padOsd.js:145 #: js/ui/padOsd.js:144
msgid "Switch monitor" msgid "Switch monitor"
msgstr "Nadzornik preklopa" msgstr "Nadzornik preklopa"
#: js/ui/padOsd.js:146 #: js/ui/padOsd.js:145
msgid "Assign keystroke" msgid "Assign keystroke"
msgstr "Dodeli tipkovno bližnjico" msgstr "Dodeli tipkovno bližnjico"
#: js/ui/padOsd.js:212 #: js/ui/padOsd.js:211
msgid "Done" msgid "Done"
msgstr "Končano" msgstr "Končano"
#: js/ui/padOsd.js:718 #: js/ui/padOsd.js:716
msgid "Edit…" msgid "Edit…"
msgstr "Uredi …" msgstr "Uredi …"
#: 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 "Brez" msgstr "Brez"
#: js/ui/padOsd.js:831 #: js/ui/padOsd.js:829
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:832 #: js/ui/padOsd.js:830
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:835 #: js/ui/padOsd.js:833
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"
@ -1671,12 +1661,12 @@ msgstr "Pritisnite katerokoli tipko za končanje"
msgid "Activities" msgid "Activities"
msgstr "Dejavnosti" msgstr "Dejavnosti"
#: 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 "Sistem" msgstr "Sistem"
#: js/ui/panel.js:658 #: js/ui/panel.js:674
msgid "Top Bar" msgid "Top Bar"
msgstr "Vrhnja vrstica" msgstr "Vrhnja vrstica"
@ -1715,7 +1705,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:141 #: js/ui/screenshot.js:155
msgid "Screenshot taken" msgid "Screenshot taken"
msgstr "Zaslonska slika je zajeta" msgstr "Zaslonska slika je zajeta"
@ -2781,6 +2771,7 @@ 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"
@ -2797,7 +2788,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: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"
@ -2806,7 +2797,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: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"
@ -2936,7 +2927,12 @@ 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:79 #: subprojects/extensions-tool/src/command-prefs.c:62
#, 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"
@ -2961,10 +2957,6 @@ 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"
@ -3099,6 +3091,17 @@ 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-26 16:19+0000\n" "POT-Creation-Date: 2021-11-02 15:41+0000\n"
"PO-Revision-Date: 2021-11-26 23:35+0200\n" "PO-Revision-Date: 2021-11-02 18:31+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:1791 #: js/ui/appDisplay.js:1846
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:266 #: js/ui/extensionSystem.js:252
msgid "Extension Updates Available" msgid "Extension Updates Available"
msgstr "Випущено оновлення розширень" msgstr "Випущено оновлення розширень"
#: js/ui/extensionSystem.js:267 #: js/ui/extensionSystem.js:253
msgid "Extension updates are ready to be installed." msgid "Extension updates are ready to be installed."
msgstr "Приготовано до встановлення оновлення розширень." msgstr "Приготовано до встановлення оновлення розширень."
@ -1553,25 +1553,11 @@ msgstr "Переглянути джерело"
msgid "Web Page" msgid "Web Page"
msgstr "Веб-сторінка" msgstr "Веб-сторінка"
#: js/ui/main.js:259 #: js/ui/main.js:290
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:308 #: 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."
@ -1579,11 +1565,11 @@ msgstr ""
"З міркувань безпеки слід уникати сеансів з наділеними правами. Користуйтесь " "З міркувань безпеки слід уникати сеансів з наділеними правами. Користуйтесь "
"звичайним сеансом." "звичайним сеансом."
#: js/ui/main.js:357 #: js/ui/main.js:340
msgid "Screen Lock disabled" msgid "Screen Lock disabled"
msgstr "Блокування екрана вимкнено" msgstr "Блокування екрана вимкнено"
#: js/ui/main.js:358 #: js/ui/main.js:341
msgid "Screen Locking requires the GNOME display manager." msgid "Screen Locking requires the GNOME display manager."
msgstr "Блокування екрана потребує керування входом GNOME." msgstr "Блокування екрана потребує керування входом GNOME."
@ -1611,6 +1597,10 @@ 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
@ -2939,7 +2929,8 @@ 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 "Не вдалося відкрити налаштування для розширення «%s»: %s\n" msgstr ""
"Не вдалося відкрити налаштування для розширення «%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(ssxxa{sv})' name='events' direction='out'/>" " <arg type='a(ssbxxa{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 gboolean static time_t
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 FALSE; return 0;
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);
*out_itt = itt; return retval;
*out_timezone = timezone;
return TRUE;
} }
static inline time_t static inline time_t
@ -156,26 +156,11 @@ get_ical_start_time (ECalClient *cal,
ICalComponent *icomp, ICalComponent *icomp,
ICalTimezone *default_zone) ICalTimezone *default_zone)
{ {
ICalTime *itt; return get_time_from_property (cal,
ICalTimezone *timezone; icomp,
time_t retval; I_CAL_DTSTART_PROPERTY,
i_cal_property_get_dtstart,
if (!get_time_from_property (cal, default_zone);
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
@ -183,36 +168,54 @@ get_ical_end_time (ECalClient *cal,
ICalComponent *icomp, ICalComponent *icomp,
ICalTimezone *default_zone) ICalTimezone *default_zone)
{ {
ICalTime *itt; return get_time_from_property (cal,
ICalTimezone *timezone; icomp,
time_t retval; I_CAL_DTEND_PROPERTY,
i_cal_property_get_dtend,
default_zone);
}
if (!get_time_from_property (cal, static gboolean
icomp, get_ical_is_all_day (ECalClient *cal,
I_CAL_DTEND_PROPERTY, ICalComponent *icomp,
i_cal_property_get_dtend, time_t start_time,
default_zone, ICalTimezone *default_zone)
&itt, {
&timezone)) ICalProperty *prop;
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))
{ {
if (!get_time_from_property (cal, g_clear_object (&dtstart);
icomp, return TRUE;
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);
} }
retval = i_cal_time_as_timet_with_zone (itt, timezone); g_clear_object (&dtstart);
g_clear_object (&itt); start_tm = gmtime (&start_time);
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;
} }
@ -238,6 +241,10 @@ 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);
@ -354,7 +361,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(ssxxa{sv})")); g_variant_builder_init (&builder, G_VARIANT_TYPE ("a(ssbxxa{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;
@ -368,9 +375,10 @@ 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,
"(ssxxa{sv})", "(ssbxxa{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);
@ -382,7 +390,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(ssxxa{sv}))", &builder), g_variant_new ("(a(ssbxxa{sv}))", &builder),
NULL); NULL);
g_variant_builder_clear (&builder); g_variant_builder_clear (&builder);

View File

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

View File

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

View File

@ -46,6 +46,7 @@
#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,
@ -214,6 +215,20 @@ 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,
@ -221,6 +236,10 @@ 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,6 +125,7 @@ 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'
] ]
@ -147,6 +148,14 @@ 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 5 #define DEFAULT_TIMEOUT_SECONDS 2
struct _ShellAppCache struct _ShellAppCache
{ {

View File

@ -12,6 +12,7 @@
#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"
@ -91,6 +92,110 @@ 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)
{ {
@ -106,6 +211,7 @@ 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));
@ -113,12 +219,17 @@ 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, startup_wm_class); old_id = g_hash_table_lookup (priv->startup_wm_class_to_id, realm_wmclass);
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 (startup_wm_class), g_strdup (id)); g_strdup (realm_wmclass), g_strdup (id));
}
g_free (realm_wmclass);
} }
} }
@ -347,15 +458,19 @@ 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)
@ -363,14 +478,16 @@ 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 (wmclass, ".desktop", NULL); desktop_file = g_strconcat (classname, ".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 (wmclass, -1); canonicalized = g_ascii_strdown (classname, -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. */
@ -382,6 +499,7 @@ 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;
} }
@ -398,14 +516,20 @@ 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;
id = g_hash_table_lookup (system->priv->startup_wm_class_to_id, wmclass); classname = realm_wm_class (wmclass, realm_name);
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;
@ -435,6 +559,29 @@ _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
@ -458,7 +605,9 @@ shell_app_system_get_running (ShellAppSystem *self)
{ {
ShellApp *app = key; ShellApp *app = key;
ret = g_slist_prepend (ret, app); if (is_current_realm_context_app (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);
@ -482,12 +631,16 @@ 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)) if (!g_utf8_validate (*ids, -1, NULL) || !is_current_realm_app (*ids, current_realm))
**ids = '\0'; **ids = '\0';
g_free (current_realm);
return results; return results;
} }
@ -504,5 +657,7 @@ shell_app_system_search (const char *search_string)
GList * GList *
shell_app_system_get_installed (ShellAppSystem *self) shell_app_system_get_installed (ShellAppSystem *self)
{ {
return shell_app_cache_get_all (shell_app_cache_get_default ()); ShellAppSystemPrivate *priv = self->priv;
refresh_installed_apps (self);
return priv->installed_apps;
} }

View File

@ -20,9 +20,11 @@ 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,6 +44,7 @@
#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;
@ -1068,6 +1069,8 @@ _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 *

396
src/shell-realm-item.c Normal file
View File

@ -0,0 +1,396 @@
#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));
}

35
src/shell-realm-item.h Normal file
View File

@ -0,0 +1,35 @@
#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__

310
src/shell-realm-tracker.c Normal file
View File

@ -0,0 +1,310 @@
#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);
}

14
src/shell-realm-tracker.h Normal file
View File

@ -0,0 +1,14 @@
#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

@ -0,0 +1,21 @@
#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

@ -0,0 +1,386 @@
#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

@ -0,0 +1,17 @@
#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__

460
src/shell-realms.c Normal file
View File

@ -0,0 +1,460 @@
#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));
}

26
src/shell-realms.h Normal file
View File

@ -0,0 +1,26 @@
#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,6 +15,7 @@
#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
@ -129,6 +130,22 @@ 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:
* *
@ -146,6 +163,7 @@ 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 ();
@ -154,6 +172,8 @@ 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.
@ -191,23 +211,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); app = shell_app_system_lookup_startup_wmclass (appsys, wm_instance, realm_name);
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); app = shell_app_system_lookup_startup_wmclass (appsys, wm_class, realm_name);
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); app = shell_app_system_lookup_desktop_wmclass (appsys, wm_instance, realm_name);
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); app = shell_app_system_lookup_desktop_wmclass (appsys, wm_class, realm_name);
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);
@ -236,7 +256,19 @@ get_app_from_id (MetaWindow *window,
appsys = shell_app_system_get_default (); appsys = shell_app_system_get_default ();
desktop_file = g_strconcat (id, ".desktop", NULL); const char *realm_name = 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,6 +39,7 @@
</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.path()) launcherconf.set('gjs', gjs)
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.0', version: '41.1',
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 = find_program('gjs') gjs = '/usr/bin/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.0', version: '41.1',
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.0', version: '41.1',
meson_version: '>= 0.53.0', meson_version: '>= 0.53.0',
license: 'LGPLv2+', license: 'LGPLv2+',
) )