Compare commits

...

36 Commits

Author SHA1 Message Date
Mario Sanchez Prada
043f042cec altTab: Close the list of thumbnails in the switcher when closing an app
This makes sure that no thumbnails list is left open and empty, since both
the app's icon and all its thumbnails will be gone once the app is closed.

https://bugzilla.gnome.org/show_bug.cgi?id=620106
2017-12-01 21:30:26 +00:00
Mario Sanchez Prada
815302b4ac altTab: Don't activate an app it the icon is no longer available
https://bugzilla.gnome.org/show_bug.cgi?id=620106
2017-12-01 21:30:17 +00:00
Mario Sanchez Prada
e608d4f26b altTab: Use arrow functions for callbacks
https://bugzilla.gnome.org/show_bug.cgi?id=620106
2017-12-01 21:29:49 +00:00
Florian Müllner
77c20e3b8e [appSwitcher] Add shortcut to quit application
Allow to quit the currently selected application by hitting Alt-q,
similar to the OS X switcher.

https://bugzilla.gnome.org/show_bug.cgi?id=620106
2017-11-30 16:58:18 +00:00
Yosef Or Boczko
ecd9fba514 Updated Hebrew tranlsation 2017-11-26 22:32:27 +02:00
Yosef Or Boczko
71585f37e4 Updated Hebrew tranlsation 2017-11-26 22:19:39 +02:00
Aurimas Černius
99e53a68b9 Updated Lithuanian translation 2017-11-25 21:53:01 +02:00
Marek Cernocky
69e22f849e Updated Czech translation 2017-11-22 10:17:51 +01:00
Jeremy Bicha
9bad2182dd systemActions: Add more keywords
https://bugzilla.gnome.org/show_bug.cgi?id=786987
2017-11-21 13:32:21 -05:00
Jeremy Bicha
32b2639052 systemActions: Use Title Case
Use Title Case for the new GNOME 3.26 System Action shortcuts,
to match basically everything else in the Activities Overview.

https://bugzilla.gnome.org/show_bug.cgi?id=786987
2017-11-21 13:29:51 -05:00
Gautier Pelloux-Prayer
35a9c3ec86 extension: log message if extension could not be installed
https://bugzilla.gnome.org/show_bug.cgi?id=776940
2017-11-21 13:15:05 -05:00
Marco Trevisan (Treviño)
a46af9edf0 status/keyboard: Reset menuItems and Label objects on change
In the current code it could happen that we've menuItems and indicatorLabels
for sources that aren't anymore around, because in case a source is removed
we don't cleanup the their container objects.
Also, we should nullify InputManager's _currentSource when sources change
or it might point to some invalid data again.

So it could happen that we try to access an invalid menuitem or label
if a source change happens mentioning a source that has been deleted.

https://bugzilla.gnome.org/show_bug.cgi?id=788931
2017-11-21 02:16:38 -05:00
Petr Kovar
9dc977e324 Update Czech translation 2017-11-19 12:36:17 +01:00
Carlos Garnacho
cdc212ff6e overview: Protect ::drag-end handlers
These end up emitting item-drag-end/window-drag-end pretty much
without checks. Given the MetaDnd object may end up emitting
::drag-leave as a result of the plugin ending its grab, this
would result on spurious emission of those events and subsequent
warnings.

For extra paranoia, the _inDrag variable has been split into
_inItemDrag/_inWindowDrag so we can't cross the streams.

https://bugzilla.gnome.org/show_bug.cgi?id=784545
2017-11-17 14:34:40 +01:00
Kjartan Maraas
c53557b4c6 Updated Norwegian bokmål translation. 2017-11-09 20:20:46 +01:00
Khaled Hosny
1af65c616a Update Arabic translation 2017-11-03 10:18:20 +02:00
Stefano Facchini
feed029ae4 panel: focus windows on Escape key press
https://bugzilla.gnome.org/show_bug.cgi?id=671121
2017-11-01 20:52:58 +01:00
Florian Müllner
93925c99b4 style: Fix left tile preview
Windows that are tiled to the left/right only use rounded corners
where they are attached to the edge, the preview should follow that.
2017-11-01 19:59:26 +01:00
Florian Müllner
e765e684c3 windowAttentionHandler: Fix typo
Gah, thanks Alessandro Bono for the quick catch ...
2017-10-26 19:54:50 +02:00
Florian Müllner
eecbd4dd42 windowAttentionHandler: Follow app policy for attention notifications
While window attention notifications are created by the shell itself
rather than applications (most likely as a result of focus stealing
prevention), users still commonly link them to the application for
which they are shown. It makes therefore sense to follow the appropriate
policy set by the user rather than showing them unconditionally.

https://bugzilla.gnome.org/show_bug.cgi?id=779974
2017-10-26 19:39:04 +02:00
Alessandro Bono
fa276a3349 theme: Restore drag effect between workspaces
When dragging a window between two workspaces a light effect used
to be present. The effect was lost probably during the theme revamp
in version 3.16.

https://bugzilla.gnome.org/show_bug.cgi?id=789103
2017-10-26 19:10:16 +02:00
Florian Müllner
100d6a7fa7 dialog: Reset initial focus on destroy
Since 0b02f757f8 we track the button that should have key focus
when the dialog is opened. However when the dialog is reused, the
button may get destroyed - clear the initial focus in that case to
allow setButton() to set a new one.

https://bugzilla.gnome.org/show_bug.cgi?id=788542
2017-10-26 18:14:52 +02:00
Hannie Dumoleyn
9537bb276b Update Dutch translation 2017-10-25 09:06:02 +00:00
Marco Trevisan (Treviño)
891bc45e36 main: use SA_NODEFER to track signals to being able to raise from alarm
After we receive one of the tracked signals, in case we get stuck inside
the gjs_dumpstack () call, we use an alarm to raise the previously emitted
signal, however without using SA_NODEFER, the raise inside the alarm handler
will be ignored.

To avoid to handle new signals caused by the handler calls, once we get the
first signal, we just ignore them all as they could only lead to dirty traces.

Also, cleaning up a bit the code, and disabling the shell log handler
in dump_gjs_stack_alarm_sigaction since this might lead to a new
gjs_dumpstack () request.

https://bugzilla.gnome.org/show_bug.cgi?id=789237
2017-10-24 14:18:45 +08:00
Marco Trevisan (Treviño)
f90b225eaa main: call gjs_dumpstack on aborts and traps and optionally on segfaults
In order to debug issues triggered by JS code we might need to
see the stack of it, this is not normally visible in static stack traces,
thus we need to call gjs_dumpstack () before dying the process.

Intercepting signals SIGABRT, SIGTRAP (needed for catching fatal glib
errors) SIGFPE and SIGIOT by default, while introducing a new
'backtrace-segfaults' flag for the SHELL_DEBUG environment variable to
do the same on SIGSEGV and SIGBUS (this is a precaution to avoid that we
corrupt the stack for automatic errors trackers).

In any case after dumping the stack we raise the signal again, in order
to make the system aware of it.

https://bugzilla.gnome.org/show_bug.cgi?id=789237
2017-10-23 05:05:51 -05:00
Marco Trevisan (Treviño)
f9569912df window-tracker: use generic meta_window_get_sandboxed_app_id
This is valid for both Flatpak's and snaps now, we can use a more generic
API then.

https://bugzilla.gnome.org/show_bug.cgi?id=789277
2017-10-21 13:37:13 -05:00
Mingcong Bai
29eefc06d7 Update zh_CN translation 2017-10-21 19:35:59 +08:00
Florian Müllner
aa0858529e network: Spawn wifi panel for further WPA enterprise configuration
Settings recently split Wi-Fi configuration from the Network panel,
so launch that instead.

https://bugzilla.gnome.org/show_bug.cgi?id=789231
2017-10-20 18:03:33 +02:00
Mario Sanchez Prada
fb3070981c bluetooth: Add missing 'BluetoothHardwareAirplaneMode' to D-Bus interface
This D-Bus property was never been added here, which caused inconsistencies
under some scenarios (e.g. coming back from suspend) if some devices were
previously paired, since _sync() would then make the bluetooth menu visible
unconditially, because of the proxied property evaluating to 'false'.

Adding this to the D-Bus interface makes sure that it's no longer undefined
and returns the right value, fixing the bug.

https://bugzilla.gnome.org/show_bug.cgi?id=789110
2017-10-17 20:16:38 +01:00
Florian Müllner
129690eed2 Bump version to 3.27.1
Update NEWS.
2017-10-17 17:47:51 +02:00
Florian Müllner
c12da66da8 popupMenu: Fix setting ImageMenuItem's icons via strings
Commit 28ca96064b added support for setting PopupImageMenuItem's icons
via GIcons as well as via strings. However as the check whether an object
implements the GIcon interface only works on GObjects, specifying an icon
name was broken. Fix that to actually allow both strings and GIcons.

https://bugzilla.gnome.org/show_bug.cgi?id=789018
2017-10-16 20:47:05 +02:00
Florian Müllner
01d8811913 gdm: Remove separate greeter universal access icon
The idea behind always showing the icon on the login screen is that
the users' needs aren't known at that point. However we can achieve
the same behavior by including the 'always-show-universal-access-status'
key in GDM's presets, so drop the special-case.

https://bugzilla.gnome.org/show_bug.cgi?id=788943
2017-10-13 16:53:54 +02:00
Fabio Tomat
e16eb55339 Update Friulian translation
(cherry picked from commit 43ec5280b4)
2017-10-11 06:35:39 +00:00
Matej Urbančič
f3f8ecff20 Updated Slovenian translation 2017-10-09 20:53:39 +02:00
Jonas Ådahl
db43c45b12 layout: Unset primary and bottom monitor when headless
We were handling being initially headless by only setting the primary
and bottom monitor if there was any primary monitor, then checking the
primary monitor reference before making calls assuming there was any
monitors.

What we didn't do was unset the primary and bottom monitor when going
headless, meaning that temporarly disconnecting a monitor while having
windows open caused an assert to be triggered due to various code paths
taking the path assuming there are valid monitors.

Unsetting both the primary and bottom monitor when going headless avoids
the code paths in the same way as they were avoided when starting
headless.

https://bugzilla.gnome.org/show_bug.cgi?id=788607
2017-10-06 20:31:14 -04:00
Xavi Ivars
fa8523db1e [l10n] Updated Catalan (Valencian) translation 2017-10-05 13:59:19 +02:00
32 changed files with 4695 additions and 2935 deletions

11
NEWS
View File

@@ -1,3 +1,14 @@
3.27.1
======
* Fix using icon-name strings with PopupImageMenuItems [Florian; #789018]
* Misc. bug fixes [Jonas, Florian; #788607, #788943]
Contributors:
Jonas Ådahl, Florian Müllner
Translations:
Xavi Ivars [ca@valencia], Matej Urbančič [sl], Fabio Tomat [fur]
3.26.1
======
* Don't detach launched apps to not break pkexec and friends [Florian; #763531]

View File

@@ -647,7 +647,7 @@ StScrollBar {
border: 1px solid #215d9c; }
.tile-preview-left.on-primary {
border-radius: 6px 6px 0 0; }
border-radius: 6px 0 0 0; }
.tile-preview-right.on-primary {
border-radius: 0 6px 0 0; }
@@ -1339,6 +1339,10 @@ StScrollBar {
border-radius: 9px 0 0 9px; }
.workspace-thumbnails:rtl {
border-radius: 0 9px 9px 0; }
.workspace-thumbnails .placeholder {
background-image: url("resource:///org/gnome/shell/theme/dash-placeholder.svg");
background-size: contain;
height: 24px; }
.workspace-thumbnail-indicator {
border: 4px solid #215d9c;

View File

@@ -647,7 +647,7 @@ StScrollBar {
border: 1px solid #215d9c; }
.tile-preview-left.on-primary {
border-radius: 6px 6px 0 0; }
border-radius: 6px 0 0 0; }
.tile-preview-right.on-primary {
border-radius: 0 6px 0 0; }
@@ -1339,6 +1339,10 @@ StScrollBar {
border-radius: 9px 0 0 9px; }
.workspace-thumbnails:rtl {
border-radius: 0 9px 9px 0; }
.workspace-thumbnails .placeholder {
background-image: url("resource:///org/gnome/shell/theme/dash-placeholder.svg");
background-size: contain;
height: 24px; }
.workspace-thumbnail-indicator {
border: 4px solid #215d9c;

View File

@@ -96,21 +96,21 @@ const SystemActions = new Lang.Class({
this._actions = new Map();
this._actions.set(POWER_OFF_ACTION_ID,
{ // Translators: The name of the power-off action in search
name: C_("search-result", "Power off"),
name: C_("search-result", "Power Off"),
iconName: 'system-shutdown-symbolic',
// Translators: A list of keywords that match the power-off action, separated by semicolons
keywords: _("power off;shutdown").split(';'),
keywords: _("power off;shutdown;reboot;restart").split(';'),
available: false });
this._actions.set(LOCK_SCREEN_ACTION_ID,
{ // Translators: The name of the lock screen action in search
name: C_("search-result", "Lock screen"),
name: C_("search-result", "Lock Screen"),
iconName: 'system-lock-screen-symbolic',
// Translators: A list of keywords that match the lock screen action, separated by semicolons
keywords: _("lock screen").split(';'),
available: false });
this._actions.set(LOGOUT_ACTION_ID,
{ // Translators: The name of the logout action in search
name: C_("search-result", "Log out"),
name: C_("search-result", "Log Out"),
iconName: 'application-exit-symbolic',
// Translators: A list of keywords that match the logout action, separated by semicolons
keywords: _("logout;sign off").split(';'),
@@ -124,17 +124,17 @@ const SystemActions = new Lang.Class({
available: false });
this._actions.set(SWITCH_USER_ACTION_ID,
{ // Translators: The name of the switch user action in search
name: C_("search-result", "Switch user"),
name: C_("search-result", "Switch User"),
iconName: 'system-switch-user-symbolic',
// Translators: A list of keywords that match the switch user action, separated by semicolons
keywords: _("switch user").split(';'),
available: false });
this._actions.set(LOCK_ORIENTATION_ACTION_ID,
{ // Translators: The name of the lock orientation action in search
name: C_("search-result", "Lock orientation"),
name: C_("search-result", "Lock Orientation"),
iconName: '',
// Translators: A list of keywords that match the lock orientation action, separated by semicolons
keywords: _("lock orientation").split(';'),
keywords: _("lock orientation;screen;rotation").split(';'),
available: false });
this._loginScreenSettings = new Gio.Settings({ schema_id: LOGIN_SCREEN_SCHEMA });

View File

@@ -156,6 +156,17 @@ var AppSwitcherPopup = new Lang.Class({
this._items[this._selectedIndex].cachedWindows.length);
},
_quitApplication: function(appIndex) {
let appIcon = this._items[appIndex];
if (!appIcon)
return;
// Make sure the list of thumbnails is hidden before quitting the
// application, not to keep an empty list of windows showing up.
this._select(appIndex, null, false);
appIcon.app.request_quit();
},
_keyPressHandler: function(keysym, action) {
if (action == Meta.KeyBindingAction.SWITCH_GROUP) {
if (!this._thumbnailsFocused)
@@ -175,6 +186,8 @@ var AppSwitcherPopup = new Lang.Class({
this._select(this._selectedIndex, this._nextWindow());
else if (keysym == Clutter.Up)
this._select(this._selectedIndex, null, true);
else if (keysym == Clutter.q)
this._quitApplication(this._selectedIndex);
else
return Clutter.EVENT_PROPAGATE;
} else {
@@ -184,6 +197,8 @@ var AppSwitcherPopup = new Lang.Class({
this._select(this._next());
else if (keysym == Clutter.Down)
this._select(this._selectedIndex, 0);
else if (keysym == Clutter.q)
this._quitApplication(this._selectedIndex);
else
return Clutter.EVENT_PROPAGATE;
}
@@ -250,11 +265,12 @@ var AppSwitcherPopup = new Lang.Class({
_finish : function(timestamp) {
let appIcon = this._items[this._selectedIndex];
if (this._currentWindow < 0)
appIcon.app.activate_window(appIcon.cachedWindows[0], timestamp);
else
Main.activateWindow(appIcon.cachedWindows[this._currentWindow], timestamp);
if (appIcon) {
if (this._currentWindow < 0)
appIcon.app.activate_window(appIcon.cachedWindows[0], timestamp);
else if (appIcon.cachedWindows[this._currentWindow])
Main.activateWindow(appIcon.cachedWindows[this._currentWindow], timestamp);
}
this.parent();
},
@@ -317,8 +333,7 @@ var AppSwitcherPopup = new Lang.Class({
} else if (this._items[this._selectedIndex].cachedWindows.length > 1 &&
!forceAppFocus) {
this._thumbnailTimeoutId = Mainloop.timeout_add (
THUMBNAIL_POPUP_TIME,
Lang.bind(this, this._timeoutPopupThumbnails));
THUMBNAIL_POPUP_TIME, () => { this._timeoutPopupThumbnails(); });
GLib.Source.set_name_by_id(this._thumbnailTimeoutId, '[gnome-shell] this._timeoutPopupThumbnails');
}
},
@@ -337,10 +352,11 @@ var AppSwitcherPopup = new Lang.Class({
{ opacity: 0,
time: THUMBNAIL_FADE_TIME,
transition: 'easeOutQuad',
onComplete: Lang.bind(this, function() {
thumbnailsActor.destroy();
this.thumbnailsVisible = false;
})
onComplete: () => {
thumbnailsActor.destroy();
this.thumbnailsVisible = false;
},
onCompleteScope: this
});
this._thumbnails = null;
this._switcherList._items[this._selectedIndex].remove_accessible_state (Atk.StateType.EXPANDED);
@@ -348,8 +364,12 @@ var AppSwitcherPopup = new Lang.Class({
_createThumbnails : function() {
this._thumbnails = new ThumbnailList (this._items[this._selectedIndex].cachedWindows);
this._thumbnails.connect('item-activated', Lang.bind(this, this._windowActivated));
this._thumbnails.connect('item-entered', Lang.bind(this, this._windowEntered));
this._thumbnails.connect('item-activated', (thumbnailList, n) => { this._windowActivated(thumbnailList, n); });
this._thumbnails.connect('item-entered', (thumbnailList, n) => { this._windowEntered(thumbnailList, n); });
this._thumbnails.actor.connect('destroy', () => {
this._thumbnails = null;
this._thumbnailsFocused = false;
});
this.actor.add_actor(this._thumbnails.actor);
@@ -362,7 +382,8 @@ var AppSwitcherPopup = new Lang.Class({
{ opacity: 255,
time: THUMBNAIL_FADE_TIME,
transition: 'easeOutQuad',
onComplete: Lang.bind(this, function () { this.thumbnailsVisible = true; })
onComplete: () => { this.thumbnailsVisible = true; },
onCompleteScope: this
});
this._switcherList._items[this._selectedIndex].add_accessible_state (Atk.StateType.EXPANDED);
@@ -389,9 +410,8 @@ var CyclerHighlight = new Lang.Class({
this.actor.add_constraint(constraint);
this.actor.connect('notify::allocation',
Lang.bind(this, this._onAllocationChanged));
this.actor.connect('destroy', Lang.bind(this, this._onDestroy));
this.actor.connect('notify::allocation', () => { this._onAllocationChanged(); });
this.actor.connect('destroy', () => { this._onDestroy(); });
},
set window(w) {
@@ -449,7 +469,7 @@ var CyclerPopup = new Lang.Class({
// We don't show an actual popup, so just provide what SwitcherPopup
// expects instead of inheriting from SwitcherList
this._switcherList = { actor: new St.Widget(),
highlight: Lang.bind(this, this._highlightItem),
highlight: (index, justOutline) => { this._highlightItem(index, justOutline); },
connect: function() {} };
},
@@ -639,12 +659,15 @@ var AppSwitcher = new Lang.Class({
this._altTabPopup = altTabPopup;
this._mouseTimeOutId = 0;
this.actor.connect('destroy', Lang.bind(this, this._onDestroy));
this.actor.connect('destroy', () => { this._onDestroy(); });
},
_onDestroy: function() {
if (this._mouseTimeOutId != 0)
Mainloop.source_remove(this._mouseTimeOutId);
for (let i = 0; i < this.icons.length; i++)
this.icons[i].app.disconnect(this.icons[i]._stateChangedId);
},
_setIconSize: function() {
@@ -719,12 +742,11 @@ var AppSwitcher = new Lang.Class({
if (this._mouseTimeOutId != 0)
Mainloop.source_remove(this._mouseTimeOutId);
if (this._altTabPopup.thumbnailsVisible) {
this._mouseTimeOutId = Mainloop.timeout_add(APP_ICON_HOVER_TIMEOUT,
Lang.bind(this, function () {
this._enterItem(index);
this._mouseTimeOutId = 0;
return GLib.SOURCE_REMOVE;
}));
this._mouseTimeOutId = Mainloop.timeout_add(APP_ICON_HOVER_TIMEOUT, () => {
this._enterItem(index);
this._mouseTimeOutId = 0;
return GLib.SOURCE_REMOVE;
});
GLib.Source.set_name_by_id(this._mouseTimeOutId, '[gnome-shell] this._enterItem');
} else
this._itemEntered(index);
@@ -767,6 +789,11 @@ var AppSwitcher = new Lang.Class({
this.icons.push(appIcon);
let item = this.addItem(appIcon.actor, appIcon.label);
appIcon._stateChangedId = appIcon.app.connect('notify::state', (app) => {
if (app.state != Shell.AppState.RUNNING)
this._removeIcon(app);
});
let n = this._arrows.length;
let arrow = new St.DrawingArea({ style_class: 'switcher-arrow' });
arrow.connect('repaint', function() { SwitcherPopup.drawArrow(arrow, St.Side.BOTTOM); });
@@ -777,7 +804,22 @@ var AppSwitcher = new Lang.Class({
arrow.hide();
else
item.add_accessible_state (Atk.StateType.EXPANDABLE);
}
},
_removeIcon: function(app) {
for (let i = 0; i < this.icons.length; i++)
if (this.icons[i].app == app) {
this.icons.splice(i, 1);
this.removeItem(i);
if (this._curApp == i)
this._curApp = SwitcherPopup.mod(i, this.icons.length);
if (this.icons.length > 0)
this.highlight(this._curApp);
else
this.actor.destroy();
return;
}
},
});
var ThumbnailList = new Lang.Class({
@@ -816,6 +858,8 @@ var ThumbnailList = new Lang.Class({
}
}
this.actor.connect('destroy', () => { this._onDestroy(); });
},
addClones : function (availHeight) {
@@ -840,12 +884,38 @@ var ThumbnailList = new Lang.Class({
let clone = _createWindowClone(mutterWindow, thumbnailSize);
this._thumbnailBins[i].set_height(binHeight);
this._thumbnailBins[i].add_actor(clone);
clone._destroyId = mutterWindow.connect('destroy', () => { this._removeThumbnail(clone); });
this._clones.push(clone);
}
// Make sure we only do this once
this._thumbnailBins = new Array();
}
},
_removeThumbnail: function(source, clone) {
for (let i = 0; i < this._clones.length; i++)
if (this._clones[i] == clone) {
this._clones.splice(i, 1);
this._windows.splice(i, 1);
this._labels.splice(i, 1);
this.removeItem(i);
if (this._clones.length > 0)
this.highlight(SwitcherPopup.mod(i, this._clones.length));
else
this.actor.destroy();
return;
}
},
_onDestroy: function() {
for (let i = 0; i < this._clones.length; i++) {
if (this._clones[i].source)
this._clones[i].source.disconnect(this._clones[i]._destroyId);
}
},
});
var WindowIcon = new Lang.Class({

View File

@@ -16,6 +16,7 @@ var Dialog = new Lang.Class({
this.connect('destroy', Lang.bind(this, this._onDestroy));
this._initialKeyFocus = null;
this._initialKeyFocusDestroyId = 0;
this._pressedKey = null;
this._buttonKeys = {};
this._createDialog();
@@ -87,6 +88,18 @@ var Dialog = new Lang.Class({
return Clutter.EVENT_PROPAGATE;
},
_setInitialKeyFocus: function(actor) {
if (this._initialKeyFocus)
this._initialKeyFocus.disconnect(this._initialKeyFocusDestroyId);
this._initialKeyFocus = actor;
this._initialKeyFocusDestroyId = actor.connect('destroy', () => {
this._initialKeyFocus = null;
this._initialKeyFocusDestroyId = 0;
});
},
get initialKeyFocus() {
return this._initialKeyFocus || this;
},
@@ -122,7 +135,7 @@ var Dialog = new Lang.Class({
button.add_style_pseudo_class('default');
if (this._initialKeyFocus == null || isDefault)
this._initialKeyFocus = button;
this._setInitialKeyFocus(button);
for (let i in keys)
this._buttonKeys[keys[i]] = buttonInfo;

View File

@@ -233,7 +233,9 @@ var InstallExtensionDialog = new Lang.Class({
let dir = Gio.File.new_for_path(GLib.build_filenamev([global.userdatadir, 'extensions', uuid]));
let invocation = this._invocation;
function errback(code, message) {
invocation.return_dbus_error('org.gnome.Shell.' + code, message ? message.toString() : '');
let msg = message ? message.toString() : '';
log('Error while installing %s: %s (%s)'.format(uuid, code, msg));
invocation.return_dbus_error('org.gnome.Shell.' + code, msg);
}
function callback() {

View File

@@ -351,6 +351,9 @@ var LayoutManager = new Lang.Class({
this._loadBackground();
this._pendingLoadBackground = false;
}
} else {
this.primaryMonitor = null;
this.bottomMonitor = null;
}
},

View File

@@ -417,7 +417,7 @@ var Overview = new Lang.Class({
beginItemDrag: function(source) {
this.emit('item-drag-begin');
this._inDrag = true;
this._inItemDrag = true;
},
cancelledItemDrag: function(source) {
@@ -425,13 +425,15 @@ var Overview = new Lang.Class({
},
endItemDrag: function(source) {
if (!this._inItemDrag)
return;
this.emit('item-drag-end');
this._inDrag = false;
this._inItemDrag = false;
},
beginWindowDrag: function(window) {
this.emit('window-drag-begin', window);
this._inDrag = true;
this._inWindowDrag = true;
},
cancelledWindowDrag: function(window) {
@@ -439,8 +441,10 @@ var Overview = new Lang.Class({
},
endWindowDrag: function(window) {
if (!this._inWindowDrag)
return;
this.emit('window-drag-end', window);
this._inDrag = false;
this._inWindowDrag = false;
},
focusSearch: function() {
@@ -484,7 +488,7 @@ var Overview = new Lang.Class({
shouldToggleByCornerOrButton: function() {
if (this.animationInProgress)
return false;
if (this._inDrag)
if (this._inItemDrag || this._inWindowDrag)
return false;
if (this._activationTime == 0 || Date.now() / 1000 - this._activationTime > OVERVIEW_ACTIVATION_TIMEOUT)
return true;

View File

@@ -763,7 +763,6 @@ const PANEL_ITEM_IMPLEMENTATIONS = {
'appMenu': AppMenuButton,
'dateMenu': imports.ui.dateMenu.DateMenuButton,
'a11y': imports.ui.status.accessibility.ATIndicator,
'a11yGreeter': imports.ui.status.accessibility.ATGreeterIndicator,
'keyboard': imports.ui.status.keyboard.InputSourceIndicator,
};
@@ -798,6 +797,7 @@ var Panel = new Lang.Class({
this.actor.connect('get-preferred-height', Lang.bind(this, this._getPreferredHeight));
this.actor.connect('allocate', Lang.bind(this, this._allocate));
this.actor.connect('button-press-event', Lang.bind(this, this._onButtonPress));
this.actor.connect('key-press-event', Lang.bind(this, this._onKeyPress));
Main.overview.connect('showing', Lang.bind(this, function () {
this.actor.add_style_pseudo_class('overview');
@@ -965,6 +965,16 @@ var Panel = new Lang.Class({
return Clutter.EVENT_STOP;
},
_onKeyPress: function(actor, event) {
let symbol = event.get_key_symbol();
if (symbol == Clutter.KEY_Escape) {
global.screen.focus_default_window(event.get_time());
return Clutter.EVENT_STOP;
}
return Clutter.EVENT_PROPAGATE;
},
_toggleMenu: function(indicator) {
if (!indicator) // menu not supported by current session mode
return;

View File

@@ -405,7 +405,7 @@ var PopupImageMenuItem = new Lang.Class({
setIcon: function(icon) {
// The 'icon' parameter can be either a Gio.Icon or a string.
if (GObject.type_is_a(icon, Gio.Icon))
if (icon instanceof GObject.Object && GObject.type_is_a(icon, Gio.Icon))
this._icon.gicon = icon;
else
this._icon.icon_name = icon;

View File

@@ -49,7 +49,7 @@ const _modes = {
panel: {
left: [],
center: ['dateMenu'],
right: ['a11yGreeter', 'keyboard', 'aggregateMenu'],
right: ['a11y', 'keyboard', 'aggregateMenu']
},
panelStyle: 'login-screen'
},

View File

@@ -212,12 +212,3 @@ var ATIndicator = new Lang.Class({
return widget;
}
});
var ATGreeterIndicator = new Lang.Class({
Name: 'ATGreeterIndicator',
Extends: ATIndicator,
// Override visibility handling to be always visible
_syncMenuVisibility: function() { },
_queueSyncMenuVisibility: function() { }
});

View File

@@ -15,6 +15,7 @@ const RfkillManagerInterface = '<node> \
<interface name="org.gnome.SettingsDaemon.Rfkill"> \
<property name="BluetoothAirplaneMode" type="b" access="readwrite" /> \
<property name="BluetoothHasAirplaneMode" type="b" access="read" /> \
<property name="BluetoothHardwareAirplaneMode" type="b" access="readwrite" /> \
</interface> \
</node>';

View File

@@ -529,6 +529,7 @@ var InputSourceManager = new Lang.Class({
let sources = this._settings.inputSources;
let nSources = sources.length;
this._currentSource = null;
this._inputSources = {};
this._ibusSources = {};
@@ -827,6 +828,9 @@ var InputSourceIndicator = new Lang.Class({
for (let i in this._indicatorLabels)
this._indicatorLabels[i].destroy();
this._menuItems = {};
this._indicatorLabels = {};
let menuIndex = 0;
for (let i in this._inputSourceManager.inputSources) {
let is = this._inputSourceManager.inputSources[i];

View File

@@ -951,7 +951,7 @@ var NMWirelessDialog = new Lang.Class({
|| (accessPoints[0]._secType == NMAccessPointSecurity.WPA_ENT)) {
// 802.1x-enabled APs require further configuration, so they're
// handled in gnome-control-center
Util.spawn(['gnome-control-center', 'network', 'connect-8021x-wifi',
Util.spawn(['gnome-control-center', 'wifi', 'connect-8021x-wifi',
this._device.get_path(), accessPoints[0].dbus_path]);
} else {
let connection = new NetworkManager.Connection();

View File

@@ -418,6 +418,11 @@ var SwitcherList = new Lang.Class({
return bbox;
},
removeItem: function(index) {
let item = this._items.splice(index, 1);
item[0].destroy();
},
_onItemClicked: function (index) {
this._itemActivated(index);
},
@@ -432,7 +437,7 @@ var SwitcherList = new Lang.Class({
},
highlight: function(index, justOutline) {
if (this._highlighted != -1) {
if (this._items[this._highlighted]) {
this._items[this._highlighted].remove_style_pseudo_class('outlined');
this._items[this._highlighted].remove_style_pseudo_class('selected');
}

View File

@@ -79,6 +79,15 @@ var Source = new Lang.Class({
this.signalIDs = [];
},
_createPolicy: function() {
if (this._app && this._app.get_app_info()) {
let id = this._app.get_id().replace(/\.desktop$/,'');
return new MessageTray.NotificationApplicationPolicy(id);
} else {
return new MessageTray.NotificationGenericPolicy();
}
},
createIcon : function(size) {
return this._app.create_icon_texture(size);
},

View File

@@ -1,5 +1,5 @@
project('gnome-shell', 'c',
version: '3.26.1',
version: '3.27.1',
meson_version: '>= 0.42.0',
license: 'GPLv2+'
)

1089
po/ar.po

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

116
po/cs.po
View File

@@ -12,8 +12,8 @@ msgstr ""
"Project-Id-Version: gnome-shell\n"
"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2017-08-22 11:17+0000\n"
"PO-Revision-Date: 2017-08-22 18:56+0200\n"
"POT-Creation-Date: 2017-11-21 18:32+0000\n"
"PO-Revision-Date: 2017-11-22 10:16+0100\n"
"Last-Translator: Marek Černocký <marek@manet.cz>\n"
"Language-Team: čeština <gnome-cs-list@gnome.org>\n"
"Language: cs\n"
@@ -399,18 +399,20 @@ msgstr "(nebo otiskněte prst)"
#. Translators: The name of the power-off action in search
#: js/misc/systemActions.js:99
msgctxt "search-result"
msgid "Power off"
msgid "Power Off"
msgstr "Vypnout"
#. Translators: A list of keywords that match the power-off action, separated by semicolons
#: js/misc/systemActions.js:102
msgid "power off;shutdown"
msgstr "vypnout;vypnutí;"
msgid "power off;shutdown;reboot;restart"
msgstr ""
"vypnout;vypnutí;restart;restartování;restartovat;reboot;znovu zavést systém;"
"zavedení systému;natažení systému;"
#. Translators: The name of the lock screen action in search
#: js/misc/systemActions.js:106
msgctxt "search-result"
msgid "Lock screen"
msgid "Lock Screen"
msgstr "Zamknout obrazovku"
#. Translators: A list of keywords that match the lock screen action, separated by semicolons
@@ -425,7 +427,7 @@ msgstr ""
#. Translators: The name of the logout action in search
#: js/misc/systemActions.js:113
msgctxt "search-result"
msgid "Log out"
msgid "Log Out"
msgstr "Odhlásit se"
#. Translators: A list of keywords that match the logout action, separated by semicolons
@@ -447,7 +449,7 @@ msgstr "uspat do paměti;režim spánku;"
#. Translators: The name of the switch user action in search
#: js/misc/systemActions.js:127
msgctxt "search-result"
msgid "Switch user"
msgid "Switch User"
msgstr "Přepnout uživatele"
#. Translators: A list of keywords that match the switch user action, separated by semicolons
@@ -458,12 +460,12 @@ msgstr "přepnout uživatele;přepnutí uživatele;"
#. Translators: The name of the lock orientation action in search
#: js/misc/systemActions.js:134
msgctxt "search-result"
msgid "Lock orientation"
msgid "Lock Orientation"
msgstr "Zamknout otočení"
#. Translators: A list of keywords that match the lock orientation action, separated by semicolons
#: js/misc/systemActions.js:137
msgid "lock orientation"
msgid "lock orientation;screen;rotation"
msgstr ""
"zamknout otočení;zamknout orientaci;uzamknout otočení;uzamknout orientaci;"
"zamčít otočení;zamčít orientaci;uzamčít otočení;uzamčít orientaci;zamknutí "
@@ -666,12 +668,12 @@ msgstr "Přidat mezi oblíbené"
msgid "Show Details"
msgstr "Zobrazit podrobnosti"
#: js/ui/appFavorites.js:140
#: js/ui/appFavorites.js:141
#, javascript-format
msgid "%s has been added to your favorites."
msgstr "%s byl přidán mezi oblíbené."
#: js/ui/appFavorites.js:174
#: js/ui/appFavorites.js:175
#, javascript-format
msgid "%s has been removed from your favorites."
msgstr "%s byl odstraněn z oblíbených."
@@ -760,51 +762,51 @@ msgctxt "grid saturday"
msgid "S"
msgstr "So"
#: js/ui/calendar.js:442
#: js/ui/calendar.js:449
msgid "Previous month"
msgstr "Předchozí měsíc"
#: js/ui/calendar.js:452
#: js/ui/calendar.js:459
msgid "Next month"
msgstr "Následující měsíc"
#: js/ui/calendar.js:605
#: js/ui/calendar.js:612
#, no-javascript-format
msgctxt "date day number format"
msgid "%d"
msgstr "%e"
#: js/ui/calendar.js:660
#: js/ui/calendar.js:667
msgid "Week %V"
msgstr "%V. týden"
#. Translators: Shown in calendar event list for all day events
#. * Keep it short, best if you can use less then 10 characters
#.
#: js/ui/calendar.js:729
#: js/ui/calendar.js:736
msgctxt "event list time"
msgid "All Day"
msgstr "Celý den"
#: js/ui/calendar.js:862
#: js/ui/calendar.js:869
msgctxt "calendar heading"
msgid "%A, %B %d"
msgstr "%A, %e. %B"
#: js/ui/calendar.js:866
#: js/ui/calendar.js:873
msgctxt "calendar heading"
msgid "%A, %B %d, %Y"
msgstr "%A, %e. %B %Y"
#: js/ui/calendar.js:1086
#: js/ui/calendar.js:1093
msgid "No Notifications"
msgstr "Nejsou žádná upozornění"
#: js/ui/calendar.js:1089
#: js/ui/calendar.js:1096
msgid "No Events"
msgstr "Nejsou žádné události"
#: js/ui/calendar.js:1117
#: js/ui/calendar.js:1124
msgid "Clear All"
msgstr "Vymazat vše"
@@ -838,7 +840,7 @@ msgstr "Externí svazek připojen"
msgid "External drive disconnected"
msgstr "Externí svazek odpojen"
#: js/ui/components/autorunManager.js:354
#: js/ui/components/autorunManager.js:358
#, javascript-format
msgid "Open with %s"
msgstr "Otevřít pomocí %s"
@@ -976,7 +978,7 @@ msgstr "Oblíbené"
#. Translators: This is the date format to use when the calendar popup is
#. * shown - it is shown just below the time in the shell (e.g. "Tue 9:29 AM").
#.
#: js/ui/dateMenu.js:75
#: js/ui/dateMenu.js:76
msgid "%B %e %Y"
msgstr "%e. %B %Y"
@@ -985,19 +987,19 @@ msgstr "%e. %B %Y"
#. * below the time in the shell; it should combine the weekday and the
#. * date, e.g. "Tuesday February 17 2015".
#.
#: js/ui/dateMenu.js:82
#: js/ui/dateMenu.js:83
msgid "%A %B %e %Y"
msgstr "%A, %e. %B %Y"
#: js/ui/dateMenu.js:144
#: js/ui/dateMenu.js:145
msgid "Add world clocks…"
msgstr "Přidat světový čas…"
#: js/ui/dateMenu.js:145
#: js/ui/dateMenu.js:146
msgid "World Clocks"
msgstr "Světové hodiny"
#: js/ui/dateMenu.js:224
#: js/ui/dateMenu.js:225
msgid "Weather"
msgstr "Počasí"
@@ -1005,7 +1007,7 @@ msgstr "Počasí"
#. libgweather for the possible condition strings. If at all
#. possible, the sentence should match the grammatical case etc. of
#. the inserted conditions.
#: js/ui/dateMenu.js:286
#: js/ui/dateMenu.js:289
#, javascript-format
msgid "%s all day."
msgstr "%s celý den."
@@ -1014,7 +1016,7 @@ msgstr "%s celý den."
#. libgweather for the possible condition strings. If at all
#. possible, the sentence should match the grammatical case etc. of
#. the inserted conditions.
#: js/ui/dateMenu.js:292
#: js/ui/dateMenu.js:295
#, javascript-format
msgid "%s, then %s later."
msgstr "%s, později %s."
@@ -1023,30 +1025,30 @@ msgstr "%s, později %s."
#. libgweather for the possible condition strings. If at all
#. possible, the sentence should match the grammatical case etc. of
#. the inserted conditions.
#: js/ui/dateMenu.js:298
#: js/ui/dateMenu.js:301
#, javascript-format
msgid "%s, then %s, followed by %s later."
msgstr "%s, pak %s a později %s."
#: js/ui/dateMenu.js:309
#: js/ui/dateMenu.js:312
msgid "Select a location…"
msgstr "Vybrat místo…"
#: js/ui/dateMenu.js:312
#: js/ui/dateMenu.js:315
msgid "Loading…"
msgstr "Načítá se…"
#. Translators: %s is a temperature with unit, e.g. "23℃"
#: js/ui/dateMenu.js:318
#: js/ui/dateMenu.js:321
#, javascript-format
msgid "Feels like %s."
msgstr "Pocitově jako %s."
#: js/ui/dateMenu.js:321
#: js/ui/dateMenu.js:324
msgid "Go online for weather information"
msgstr "Připojit se kvůli informacím o počasí"
#: js/ui/dateMenu.js:323
#: js/ui/dateMenu.js:326
msgid "Weather information is currently unavailable"
msgstr "Informace o počasí nejsou nyní dostupné"
@@ -1239,7 +1241,7 @@ msgstr "Zamítnout"
msgid "Allow"
msgstr "Umožnit"
#: js/ui/keyboard.js:738 js/ui/status/keyboard.js:782
#: js/ui/keyboard.js:738 js/ui/status/keyboard.js:783
msgid "Keyboard"
msgstr "Klávesnice"
@@ -1291,7 +1293,7 @@ msgstr "Zobrazit zdroj"
msgid "Web Page"
msgstr "Webová stránka"
#: js/ui/messageTray.js:1493
#: js/ui/messageTray.js:1494
msgid "System Information"
msgstr "Informace o systému"
@@ -1319,7 +1321,7 @@ msgstr "Přehled"
#. characters.
#: js/ui/overview.js:240
msgid "Type to search…"
msgstr "vyhledávejte psaním…"
msgstr "Vyhledávejte psaním…"
#: js/ui/padOsd.js:103
msgid "New shortcut…"
@@ -1538,16 +1540,16 @@ msgstr "Vysoký kontrast"
msgid "Large Text"
msgstr "Styl velkého textu"
#: js/ui/status/bluetooth.js:47
#: js/ui/status/bluetooth.js:48
msgid "Bluetooth"
msgstr "Bluetooth"
#: js/ui/status/bluetooth.js:56 js/ui/status/network.js:627
#: js/ui/status/bluetooth.js:57 js/ui/status/network.js:627
msgid "Bluetooth Settings"
msgstr "Nastavení Bluetooth"
#. Translators: this is the number of connected bluetooth devices
#: js/ui/status/bluetooth.js:136
#: js/ui/status/bluetooth.js:137
#, javascript-format
msgid "%d Connected"
msgid_plural "%d Connected"
@@ -1555,19 +1557,19 @@ msgstr[0] "%d připojené"
msgstr[1] "%d připojená"
msgstr[2] "%d připojených"
#: js/ui/status/bluetooth.js:138
#: js/ui/status/bluetooth.js:139
msgid "Off"
msgstr "Vypnuto"
#: js/ui/status/bluetooth.js:140
#: js/ui/status/bluetooth.js:141
msgid "On"
msgstr "Zapnuto"
#: js/ui/status/bluetooth.js:142 js/ui/status/network.js:1299
#: js/ui/status/bluetooth.js:143 js/ui/status/network.js:1299
msgid "Turn On"
msgstr "Zapnout"
#: js/ui/status/bluetooth.js:142 js/ui/status/network.js:170
#: js/ui/status/bluetooth.js:143 js/ui/status/network.js:170
#: js/ui/status/network.js:356 js/ui/status/network.js:1299
#: js/ui/status/network.js:1418 js/ui/status/nightLight.js:47
#: js/ui/status/rfkill.js:90 js/ui/status/rfkill.js:117
@@ -1578,7 +1580,7 @@ msgstr "Vypnout"
msgid "Brightness"
msgstr "Jas"
#: js/ui/status/keyboard.js:805
#: js/ui/status/keyboard.js:806
msgid "Show Keyboard Layout"
msgstr "Zobrazit rozložení klávesnice"
@@ -2064,19 +2066,19 @@ msgstr "Kalendář Evolution"
msgid "evolution"
msgstr "evolution"
#: src/main.c:380
#: src/main.c:437
msgid "Print version"
msgstr "Vypsat verzi"
#: src/main.c:386
#: src/main.c:443
msgid "Mode used by GDM for login screen"
msgstr "Režim použitý GDM pro přihlašovací obrazovku"
#: src/main.c:392
#: src/main.c:449
msgid "Use a specific mode, e.g. “gdm” for login screen"
msgstr "Použít pro přihlašovací obrazovku zadaný režim, např. „gdm“."
#: src/main.c:398
#: src/main.c:455
msgid "List possible modes"
msgstr "Vypsat možné režimy"
@@ -2125,3 +2127,15 @@ msgstr[2] "%u vstupů"
#: subprojects/gvc/gvc-mixer-control.c:2738
msgid "System Sounds"
msgstr "Systémové zvuky"
#~ msgctxt "search-result"
#~ msgid "Power off"
#~ msgstr "Vypnout"
#~ msgctxt "search-result"
#~ msgid "Log out"
#~ msgstr "Odhlásit se"
#~ msgctxt "search-result"
#~ msgid "Switch user"
#~ msgstr "Přepnout uživatele"

View File

@@ -8,8 +8,8 @@ msgstr ""
"Project-Id-Version: video-subtitles master\n"
"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2017-08-22 11:17+0000\n"
"PO-Revision-Date: 2017-08-23 17:01+0200\n"
"POT-Creation-Date: 2017-10-04 18:03+0000\n"
"PO-Revision-Date: 2017-10-11 08:34+0200\n"
"Last-Translator: Fabio Tomat <f.t.public@gmail.com>\n"
"Language-Team: Friulian <fur@li.org>\n"
"Language: fur\n"
@@ -659,12 +659,12 @@ msgstr "Zonte tai preferîts"
msgid "Show Details"
msgstr "Mostre Detais"
#: js/ui/appFavorites.js:140
#: js/ui/appFavorites.js:141
#, javascript-format
msgid "%s has been added to your favorites."
msgstr "%s al è stât zontât tai tiei preferîts."
#: js/ui/appFavorites.js:174
#: js/ui/appFavorites.js:175
#, javascript-format
msgid "%s has been removed from your favorites."
msgstr "%s al è stât gjavât dai tiei preferîts."
@@ -753,51 +753,51 @@ msgctxt "grid saturday"
msgid "S"
msgstr "S"
#: js/ui/calendar.js:442
#: js/ui/calendar.js:449
msgid "Previous month"
msgstr "Mês indaûr"
#: js/ui/calendar.js:452
#: js/ui/calendar.js:459
msgid "Next month"
msgstr "Prossim mês"
#: js/ui/calendar.js:605
#: js/ui/calendar.js:612
#, no-javascript-format
msgctxt "date day number format"
msgid "%d"
msgstr "%d"
#: js/ui/calendar.js:660
#: js/ui/calendar.js:667
msgid "Week %V"
msgstr "Setemane %V"
#. Translators: Shown in calendar event list for all day events
#. * Keep it short, best if you can use less then 10 characters
#.
#: js/ui/calendar.js:729
#: js/ui/calendar.js:736
msgctxt "event list time"
msgid "All Day"
msgstr "Dut il dì"
#: js/ui/calendar.js:862
#: js/ui/calendar.js:869
msgctxt "calendar heading"
msgid "%A, %B %d"
msgstr "%A, %d di %B"
#: js/ui/calendar.js:866
#: js/ui/calendar.js:873
msgctxt "calendar heading"
msgid "%A, %B %d, %Y"
msgstr "%A, %d di %B dal %Y"
#: js/ui/calendar.js:1086
#: js/ui/calendar.js:1093
msgid "No Notifications"
msgstr "Nissune notifiche"
#: js/ui/calendar.js:1089
#: js/ui/calendar.js:1096
msgid "No Events"
msgstr "Nissun event"
#: js/ui/calendar.js:1117
#: js/ui/calendar.js:1124
msgid "Clear All"
msgstr "Nete dut"
@@ -831,7 +831,7 @@ msgstr "Dispositîf esterni tacât"
msgid "External drive disconnected"
msgstr "Dispositîf esterni distacât"
#: js/ui/components/autorunManager.js:354
#: js/ui/components/autorunManager.js:358
#, javascript-format
msgid "Open with %s"
msgstr "Vierç cun %s"
@@ -968,7 +968,7 @@ msgstr "Dash"
#. Translators: This is the date format to use when the calendar popup is
#. * shown - it is shown just below the time in the shell (e.g. "Tue 9:29 AM").
#.
#: js/ui/dateMenu.js:75
#: js/ui/dateMenu.js:76
msgid "%B %e %Y"
msgstr "%e di %B dal %Y"
@@ -976,19 +976,19 @@ msgstr "%e di %B dal %Y"
#. * below the time in the shell; it should combine the weekday and the
#. * date, e.g. "Tuesday February 17 2015".
#.
#: js/ui/dateMenu.js:82
#: js/ui/dateMenu.js:83
msgid "%A %B %e %Y"
msgstr "%A %e di %B dal %Y"
#: js/ui/dateMenu.js:144
#: js/ui/dateMenu.js:145
msgid "Add world clocks…"
msgstr "Zonte orlois mondiâi..."
#: js/ui/dateMenu.js:145
#: js/ui/dateMenu.js:146
msgid "World Clocks"
msgstr "Orlois mondiâi"
#: js/ui/dateMenu.js:224
#: js/ui/dateMenu.js:225
msgid "Weather"
msgstr "Timp"
@@ -996,7 +996,7 @@ msgstr "Timp"
#. libgweather for the possible condition strings. If at all
#. possible, the sentence should match the grammatical case etc. of
#. the inserted conditions.
#: js/ui/dateMenu.js:286
#: js/ui/dateMenu.js:289
#, javascript-format
msgid "%s all day."
msgstr "%s dut il dì."
@@ -1005,7 +1005,7 @@ msgstr "%s dut il dì."
#. libgweather for the possible condition strings. If at all
#. possible, the sentence should match the grammatical case etc. of
#. the inserted conditions.
#: js/ui/dateMenu.js:292
#: js/ui/dateMenu.js:295
#, javascript-format
msgid "%s, then %s later."
msgstr "%s, plui tart %s."
@@ -1014,30 +1014,30 @@ msgstr "%s, plui tart %s."
#. libgweather for the possible condition strings. If at all
#. possible, the sentence should match the grammatical case etc. of
#. the inserted conditions.
#: js/ui/dateMenu.js:298
#: js/ui/dateMenu.js:301
#, javascript-format
msgid "%s, then %s, followed by %s later."
msgstr "%s, chi di un pôc %s, e plui tart %s."
#: js/ui/dateMenu.js:309
#: js/ui/dateMenu.js:312
msgid "Select a location…"
msgstr "Selezione une posizion..."
#: js/ui/dateMenu.js:312
#: js/ui/dateMenu.js:315
msgid "Loading…"
msgstr "Daûr a cjariâ..."
#. Translators: %s is a temperature with unit, e.g. "23℃"
#: js/ui/dateMenu.js:318
#: js/ui/dateMenu.js:321
#, javascript-format
msgid "Feels like %s."
msgstr "Si sint %s."
#: js/ui/dateMenu.js:321
#: js/ui/dateMenu.js:324
msgid "Go online for weather information"
msgstr "Va in rêt pes informazions sul timp"
#: js/ui/dateMenu.js:323
#: js/ui/dateMenu.js:326
msgid "Weather information is currently unavailable"
msgstr "Lis informazions sul timp al moment no son disponibilis"
@@ -1276,7 +1276,7 @@ msgstr "Viôt sorzint"
msgid "Web Page"
msgstr "Pagjine Web"
#: js/ui/messageTray.js:1493
#: js/ui/messageTray.js:1494
msgid "System Information"
msgstr "Informazion di sisteme"
@@ -1449,12 +1449,11 @@ msgstr "Nissun risultât."
# o ancjemò %d
#: js/ui/search.js:777
#, fuzzy, javascript-format
#| msgid "%d more"
#, javascript-format
msgid "%d more"
msgid_plural "%d more"
msgstr[0] "Ancjemò %d"
msgstr[1] "Ancjemò %d"
msgstr[0] "%d altri"
msgstr[1] "%d altris"
#: js/ui/shellEntry.js:25
msgid "Copy"

1618
po/he.po

File diff suppressed because it is too large Load Diff

131
po/lt.po
View File

@@ -11,8 +11,8 @@ msgstr ""
"Project-Id-Version: gnome-shell master\n"
"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2017-08-22 11:17+0000\n"
"PO-Revision-Date: 2017-08-22 23:13+0300\n"
"POT-Creation-Date: 2017-11-21 18:32+0000\n"
"PO-Revision-Date: 2017-11-25 21:52+0200\n"
"Last-Translator: Aurimas Černius <aurisc4@gmail.com>\n"
"Language-Team: Lietuvių <gnome-lt@lists.akl.lt>\n"
"Language: lt\n"
@@ -402,18 +402,21 @@ msgstr "(arba perbraukite pirštu)"
#: js/misc/systemActions.js:99
#| msgid "Power Off"
msgctxt "search-result"
msgid "Power off"
msgid "Power Off"
msgstr "Išjungti"
#. Translators: A list of keywords that match the power-off action, separated by semicolons
#: js/misc/systemActions.js:102
msgid "power off;shutdown"
msgstr "išjungti"
#| msgid "power off;shutdown"
msgid "power off;shutdown;reboot;restart"
msgstr "išjungti;perleisti;perkrauti;"
#. Translators: The name of the lock screen action in search
#: js/misc/systemActions.js:106
#| msgctxt "search-result"
#| msgid "Lock screen"
msgctxt "search-result"
msgid "Lock screen"
msgid "Lock Screen"
msgstr "Užrakinti ekraną"
#. Translators: A list of keywords that match the lock screen action, separated by semicolons
@@ -425,7 +428,7 @@ msgstr "užrakinti ekraną"
#: js/misc/systemActions.js:113
#| msgid "Log Out"
msgctxt "search-result"
msgid "Log out"
msgid "Log Out"
msgstr "Atsijungti"
#. Translators: A list of keywords that match the logout action, separated by semicolons
@@ -435,14 +438,12 @@ msgstr "atsijungti"
#. Translators: The name of the suspend action in search
#: js/misc/systemActions.js:120
#| msgid "Suspend"
msgctxt "search-result"
msgid "Suspend"
msgstr "Pristabdyti"
#. Translators: A list of keywords that match the suspend action, separated by semicolons
#: js/misc/systemActions.js:123
#| msgid "Suspend"
msgid "suspend;sleep"
msgstr "pristabdyti;užmigdyti"
@@ -450,27 +451,27 @@ msgstr "pristabdyti;užmigdyti"
#: js/misc/systemActions.js:127
#| msgid "Switch User"
msgctxt "search-result"
msgid "Switch user"
msgid "Switch User"
msgstr "Keisti naudotoją"
#. Translators: A list of keywords that match the switch user action, separated by semicolons
#: js/misc/systemActions.js:130
#| msgid "Switch User"
msgid "switch user"
msgstr "keisti naudotoją"
#. Translators: The name of the lock orientation action in search
#: js/misc/systemActions.js:134
#| msgid "Orientation Lock"
#| msgctxt "search-result"
#| msgid "Lock orientation"
msgctxt "search-result"
msgid "Lock orientation"
msgstr "Orientacijos užrakinimas"
msgid "Lock Orientation"
msgstr "Užrakinti orientaciją"
#. Translators: A list of keywords that match the lock orientation action, separated by semicolons
#: js/misc/systemActions.js:137
#| msgid "Orientation Lock"
msgid "lock orientation"
msgstr "orientacijos užrakinimas"
#| msgid "lock orientation"
msgid "lock orientation;screen;rotation"
msgstr "orientacijos užrakinimas;ekranas;pasukimas"
#: js/misc/util.js:122
msgid "Command not found"
@@ -668,12 +669,12 @@ msgstr "Pridėti prie mėgstamų"
msgid "Show Details"
msgstr "Rodyti detalią informaciją"
#: js/ui/appFavorites.js:140
#: js/ui/appFavorites.js:141
#, javascript-format
msgid "%s has been added to your favorites."
msgstr "%s pridėta prie jūsų mėgstamų."
#: js/ui/appFavorites.js:174
#: js/ui/appFavorites.js:175
#, javascript-format
msgid "%s has been removed from your favorites."
msgstr "%s pašalinta iš jūsų mėgstamų."
@@ -762,51 +763,51 @@ msgctxt "grid saturday"
msgid "S"
msgstr "Š"
#: js/ui/calendar.js:442
#: js/ui/calendar.js:449
msgid "Previous month"
msgstr "Ankstesnis mėnuo"
#: js/ui/calendar.js:452
#: js/ui/calendar.js:459
msgid "Next month"
msgstr "Kitas mėnuo"
#: js/ui/calendar.js:605
#: js/ui/calendar.js:612
#, no-javascript-format
msgctxt "date day number format"
msgid "%d"
msgstr "%d"
#: js/ui/calendar.js:660
#: js/ui/calendar.js:667
msgid "Week %V"
msgstr "Savaitė %V"
#. Translators: Shown in calendar event list for all day events
#. * Keep it short, best if you can use less then 10 characters
#.
#: js/ui/calendar.js:729
#: js/ui/calendar.js:736
msgctxt "event list time"
msgid "All Day"
msgstr "Visa diena"
#: js/ui/calendar.js:862
#: js/ui/calendar.js:869
msgctxt "calendar heading"
msgid "%A, %B %d"
msgstr "%A, %B %d d."
#: js/ui/calendar.js:866
#: js/ui/calendar.js:873
msgctxt "calendar heading"
msgid "%A, %B %d, %Y"
msgstr "%A, %Y m. %B %d d."
#: js/ui/calendar.js:1086
#: js/ui/calendar.js:1093
msgid "No Notifications"
msgstr "Nėra pranešimų"
#: js/ui/calendar.js:1089
#: js/ui/calendar.js:1096
msgid "No Events"
msgstr "Nėra įvykių"
#: js/ui/calendar.js:1117
#: js/ui/calendar.js:1124
msgid "Clear All"
msgstr "Viską išvalyti"
@@ -840,7 +841,7 @@ msgstr "Prijungta išorinė laikmena"
msgid "External drive disconnected"
msgstr "Atjungta išorinė laikmena"
#: js/ui/components/autorunManager.js:354
#: js/ui/components/autorunManager.js:358
#, javascript-format
msgid "Open with %s"
msgstr "Atverti su %s"
@@ -977,7 +978,7 @@ msgstr "Paleidimo sritis"
#. Translators: This is the date format to use when the calendar popup is
#. * shown - it is shown just below the time in the shell (e.g. "Tue 9:29 AM").
#.
#: js/ui/dateMenu.js:75
#: js/ui/dateMenu.js:76
msgid "%B %e %Y"
msgstr "%Y m. %B %d d."
@@ -985,19 +986,19 @@ msgstr "%Y m. %B %d d."
#. * below the time in the shell; it should combine the weekday and the
#. * date, e.g. "Tuesday February 17 2015".
#.
#: js/ui/dateMenu.js:82
#: js/ui/dateMenu.js:83
msgid "%A %B %e %Y"
msgstr "%A, %Y m. %B %d d."
#: js/ui/dateMenu.js:144
#: js/ui/dateMenu.js:145
msgid "Add world clocks…"
msgstr "Pridėti pasaulio laikrodžius…"
#: js/ui/dateMenu.js:145
#: js/ui/dateMenu.js:146
msgid "World Clocks"
msgstr "Pasaulio laikrodžiai"
#: js/ui/dateMenu.js:224
#: js/ui/dateMenu.js:225
msgid "Weather"
msgstr "Orai"
@@ -1005,7 +1006,7 @@ msgstr "Orai"
#. libgweather for the possible condition strings. If at all
#. possible, the sentence should match the grammatical case etc. of
#. the inserted conditions.
#: js/ui/dateMenu.js:286
#: js/ui/dateMenu.js:289
#, javascript-format
msgid "%s all day."
msgstr "%s visą dieną."
@@ -1014,7 +1015,7 @@ msgstr "%s visą dieną."
#. libgweather for the possible condition strings. If at all
#. possible, the sentence should match the grammatical case etc. of
#. the inserted conditions.
#: js/ui/dateMenu.js:292
#: js/ui/dateMenu.js:295
#, javascript-format
msgid "%s, then %s later."
msgstr "%s, o vėliau %s."
@@ -1023,30 +1024,30 @@ msgstr "%s, o vėliau %s."
#. libgweather for the possible condition strings. If at all
#. possible, the sentence should match the grammatical case etc. of
#. the inserted conditions.
#: js/ui/dateMenu.js:298
#: js/ui/dateMenu.js:301
#, javascript-format
msgid "%s, then %s, followed by %s later."
msgstr "%s, tuomet %s, o po to vėliau %s."
#: js/ui/dateMenu.js:309
#: js/ui/dateMenu.js:312
msgid "Select a location…"
msgstr "Pasirinkite vietą…"
#: js/ui/dateMenu.js:312
#: js/ui/dateMenu.js:315
msgid "Loading…"
msgstr "Įkeliama…"
#. Translators: %s is a temperature with unit, e.g. "23℃"
#: js/ui/dateMenu.js:318
#: js/ui/dateMenu.js:321
#, javascript-format
msgid "Feels like %s."
msgstr "Jaučiama kaip %s."
#: js/ui/dateMenu.js:321
#: js/ui/dateMenu.js:324
msgid "Go online for weather information"
msgstr "Prisijunkite prie tinklo orų informacijai gauti"
#: js/ui/dateMenu.js:323
#: js/ui/dateMenu.js:326
msgid "Weather information is currently unavailable"
msgstr "Orų informacija šiuo metu yra neprieinama"
@@ -1237,7 +1238,7 @@ msgstr "Neleisti"
msgid "Allow"
msgstr "Leisti"
#: js/ui/keyboard.js:738 js/ui/status/keyboard.js:782
#: js/ui/keyboard.js:738 js/ui/status/keyboard.js:783
msgid "Keyboard"
msgstr "Klaviatūra"
@@ -1289,7 +1290,7 @@ msgstr "Žiūrėti šaltinį"
msgid "Web Page"
msgstr "Tinklalapis"
#: js/ui/messageTray.js:1493
#: js/ui/messageTray.js:1494
msgid "System Information"
msgstr "Sistemos informacija"
@@ -1536,16 +1537,16 @@ msgstr "Didelis kontrastas"
msgid "Large Text"
msgstr "Didelis tekstas"
#: js/ui/status/bluetooth.js:47
#: js/ui/status/bluetooth.js:48
msgid "Bluetooth"
msgstr "Bluetooth"
#: js/ui/status/bluetooth.js:56 js/ui/status/network.js:627
#: js/ui/status/bluetooth.js:57 js/ui/status/network.js:627
msgid "Bluetooth Settings"
msgstr "Bluetooth nustatymai"
#. Translators: this is the number of connected bluetooth devices
#: js/ui/status/bluetooth.js:136
#: js/ui/status/bluetooth.js:137
#, javascript-format
msgid "%d Connected"
msgid_plural "%d Connected"
@@ -1553,19 +1554,19 @@ msgstr[0] "%d prijungtas"
msgstr[1] "%d prijungti"
msgstr[2] "%d prijungta"
#: js/ui/status/bluetooth.js:138
#: js/ui/status/bluetooth.js:139
msgid "Off"
msgstr "Išjungta"
#: js/ui/status/bluetooth.js:140
#: js/ui/status/bluetooth.js:141
msgid "On"
msgstr "Įjungta"
#: js/ui/status/bluetooth.js:142 js/ui/status/network.js:1299
#: js/ui/status/bluetooth.js:143 js/ui/status/network.js:1299
msgid "Turn On"
msgstr "Įjungti"
#: js/ui/status/bluetooth.js:142 js/ui/status/network.js:170
#: js/ui/status/bluetooth.js:143 js/ui/status/network.js:170
#: js/ui/status/network.js:356 js/ui/status/network.js:1299
#: js/ui/status/network.js:1418 js/ui/status/nightLight.js:47
#: js/ui/status/rfkill.js:90 js/ui/status/rfkill.js:117
@@ -1576,7 +1577,7 @@ msgstr "Išjungti"
msgid "Brightness"
msgstr "Ryškumas"
#: js/ui/status/keyboard.js:805
#: js/ui/status/keyboard.js:806
msgid "Show Keyboard Layout"
msgstr "Rodyti klaviatūros išdėstymą"
@@ -1912,7 +1913,6 @@ msgstr "Garsumas"
#. * Try to keep it under around 15 characters.
#.
#: js/ui/switchMonitor.js:21
#| msgid "Error"
msgid "Mirror"
msgstr "Veidrodis"
@@ -2061,19 +2061,19 @@ msgstr "Evolution kalendorius"
msgid "evolution"
msgstr "evolution"
#: src/main.c:380
#: src/main.c:437
msgid "Print version"
msgstr "Išvesti versijos numerį"
#: src/main.c:386
#: src/main.c:443
msgid "Mode used by GDM for login screen"
msgstr "Veiksena, naudojama GDM prisijungimo ekrane"
#: src/main.c:392
#: src/main.c:449
msgid "Use a specific mode, e.g. “gdm” for login screen"
msgstr "Naudoti konkrečią veikseną, pvz., „gdm“ prisijungimo ekranui"
#: src/main.c:398
#: src/main.c:455
msgid "List possible modes"
msgstr "Išvardinti galimas veiksenas"
@@ -2123,6 +2123,21 @@ msgstr[2] "%u įvesčių"
msgid "System Sounds"
msgstr "Sistemos garsai"
#~| msgid "Power Off"
#~ msgctxt "search-result"
#~ msgid "Power off"
#~ msgstr "Išjungti"
#~| msgid "Log Out"
#~ msgctxt "search-result"
#~ msgid "Log out"
#~ msgstr "Atsijungti"
#~| msgid "Switch User"
#~ msgctxt "search-result"
#~ msgid "Switch user"
#~ msgstr "Keisti naudotoją"
#~ msgid "Hide tray"
#~ msgstr "Slėpti dėklą"

583
po/nb.po

File diff suppressed because it is too large Load Diff

104
po/nl.po
View File

@@ -15,8 +15,8 @@ msgstr ""
"Project-Id-Version: gnome-shell\n"
"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-s"
"hell&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2017-08-31 02:16+0000\n"
"PO-Revision-Date: 2017-09-01 10:25+0100\n"
"POT-Creation-Date: 2017-10-21 11:40+0000\n"
"PO-Revision-Date: 2017-10-25 11:05+0100\n"
"Last-Translator: Hannie Dumoleyn <hannie@ubuntu-nl.org>\n"
"Language-Team: Dutch <gnome-nl-list@gnome.org>\n"
"Language: nl\n"
@@ -71,16 +71,16 @@ msgstr "Vensterbeheer en toepassingen starten"
#: data/org.gnome.shell.gschema.xml.in:6
msgid "Enable internal tools useful for developers and testers from Alt-F2"
msgstr ""
"Interne hulpprogramma's inschakelen die nuttig zijn voor ontwikkwlaars en"
" testers via Alt-F2"
"Interne hulpprogramma's inschakelen die nuttig zijn voor ontwikkwlaars en "
"testers via Alt-F2"
#: data/org.gnome.shell.gschema.xml.in:9
msgid ""
"Allows access to internal debugging and monitoring tools using the Alt-F2 "
"dialog."
msgstr ""
"Geeft toegang tot interne debugging- en observatieprogramma's met behulp van"
" het Alt-F2-dialoogvenster."
"Geeft toegang tot interne debugging- en observatieprogramma's met behulp van "
"het Alt-F2-dialoogvenster."
#: data/org.gnome.shell.gschema.xml.in:16
msgid "UUIDs of extensions to enable"
@@ -107,8 +107,8 @@ msgid ""
"Disable all extensions the user has enabled without affecting the “enabled-"
"extension” setting."
msgstr ""
"Schakel alle door de gebruiker ingeschakelde uitbreidingen uit, zonder de"
" instelling enabled-extension te wijzigen."
"Schakel alle door de gebruiker ingeschakelde uitbreidingen uit, zonder de "
"instelling enabled-extension te wijzigen."
#: data/org.gnome.shell.gschema.xml.in:34
msgid "Disables the validation of extension version compatibility"
@@ -122,8 +122,8 @@ msgid ""
msgstr ""
"Gnome Shell zal alleen uitbreidingen laden die aangeven de huidige versie te "
"ondersteunen. Door deze optie in te schakelen wordt deze controle "
"overgeslagen en worden alle uitbreidingen geladen, ongeacht de versies die ze"
" zouden moeten ondersteunen."
"overgeslagen en worden alle uitbreidingen geladen, ongeacht de versies die "
"ze zouden moeten ondersteunen."
#: data/org.gnome.shell.gschema.xml.in:43
msgid "List of desktop file IDs for favorite applications"
@@ -134,8 +134,8 @@ msgid ""
"The applications corresponding to these identifiers will be displayed in the "
"favorites area."
msgstr ""
"De toepassingen die aan deze identifiers voldoen worden in het"
" favorietengebied weergegeven."
"De toepassingen die aan deze identifiers voldoen worden in het "
"favorietengebied weergegeven."
#: data/org.gnome.shell.gschema.xml.in:51
msgid "App Picker View"
@@ -171,8 +171,8 @@ msgstr ""
msgid ""
"Whether to remember password for mounting encrypted or remote filesystems"
msgstr ""
"Of wachtwoorden voor versleutelde bestandssystemen of bestandssystemen op"
" afstand onthouden moeten worden"
"Of wachtwoorden voor versleutelde bestandssystemen of bestandssystemen op "
"afstand onthouden moeten worden"
#: data/org.gnome.shell.gschema.xml.in:76
msgid ""
@@ -310,8 +310,8 @@ msgstr "Deze waarde overschrijft de waarde in org.gnome.mutter in Gnome Shell."
#: data/org.gnome.shell.gschema.xml.in:206
msgid "Enable edge tiling when dropping windows on screen edges"
msgstr ""
"Vensters langs de randen positioneren bij verslepen naar de rand van het"
" scherm"
"Vensters langs de randen positioneren bij verslepen naar de rand van het "
"scherm"
#: data/org.gnome.shell.gschema.xml.in:214
msgid "Workspaces are managed dynamically"
@@ -755,51 +755,51 @@ msgctxt "grid saturday"
msgid "S"
msgstr "Z"
#: js/ui/calendar.js:442
#: js/ui/calendar.js:449
msgid "Previous month"
msgstr "Vorige maand"
#: js/ui/calendar.js:452
#: js/ui/calendar.js:459
msgid "Next month"
msgstr "Volgende maand"
#: js/ui/calendar.js:605
#: js/ui/calendar.js:612
#, no-javascript-format
msgctxt "date day number format"
msgid "%d"
msgstr "%d"
#: js/ui/calendar.js:660
#: js/ui/calendar.js:667
msgid "Week %V"
msgstr "Week %V"
#. Translators: Shown in calendar event list for all day events
#. * Keep it short, best if you can use less then 10 characters
#.
#: js/ui/calendar.js:729
#: js/ui/calendar.js:736
msgctxt "event list time"
msgid "All Day"
msgstr "Gehele dag"
#: js/ui/calendar.js:862
#: js/ui/calendar.js:869
msgctxt "calendar heading"
msgid "%A, %B %d"
msgstr "%a %d %B"
#: js/ui/calendar.js:866
#: js/ui/calendar.js:873
msgctxt "calendar heading"
msgid "%A, %B %d, %Y"
msgstr "%a %d %B %Y"
#: js/ui/calendar.js:1086
#: js/ui/calendar.js:1093
msgid "No Notifications"
msgstr "Geen notificaties"
#: js/ui/calendar.js:1089
#: js/ui/calendar.js:1096
msgid "No Events"
msgstr "Geen gebeurtenissen"
#: js/ui/calendar.js:1117
#: js/ui/calendar.js:1124
msgid "Clear All"
msgstr "Alles wissen"
@@ -814,8 +814,8 @@ msgid ""
"You may choose to wait a short while for it to continue or force the "
"application to quit entirely."
msgstr ""
"U kan even wachten tot de toepassing weer reageert, of ze dwingen"
" onmiddellijk af te sluiten."
"U kan even wachten tot de toepassing weer reageert, of ze dwingen "
"onmiddellijk af te sluiten."
#: js/ui/closeDialog.js:61
msgid "Force Quit"
@@ -833,7 +833,7 @@ msgstr "Verbinding met externe schijf gemaakt"
msgid "External drive disconnected"
msgstr "Verbinding met externe schijf verbroken"
#: js/ui/components/autorunManager.js:354
#: js/ui/components/autorunManager.js:358
#, javascript-format
msgid "Open with %s"
msgstr "Openen met %s"
@@ -972,7 +972,7 @@ msgstr "Zijbalk"
#. Translators: This is the date format to use when the calendar popup is
#. * shown - it is shown just below the time in the shell (e.g. "Tue 9:29 AM").
#.
#: js/ui/dateMenu.js:75
#: js/ui/dateMenu.js:76
msgid "%B %e %Y"
msgstr "%e %B %Y"
@@ -980,19 +980,19 @@ msgstr "%e %B %Y"
#. * below the time in the shell; it should combine the weekday and the
#. * date, e.g. "Tuesday February 17 2015".
#.
#: js/ui/dateMenu.js:82
#: js/ui/dateMenu.js:83
msgid "%A %B %e %Y"
msgstr "%A %e %B %Y"
#: js/ui/dateMenu.js:144
#: js/ui/dateMenu.js:145
msgid "Add world clocks…"
msgstr "Wereldklokken toevoegen…"
#: js/ui/dateMenu.js:145
#: js/ui/dateMenu.js:146
msgid "World Clocks"
msgstr "Wereldklokken"
#: js/ui/dateMenu.js:224
#: js/ui/dateMenu.js:225
msgid "Weather"
msgstr "Weer"
@@ -1000,7 +1000,7 @@ msgstr "Weer"
#. libgweather for the possible condition strings. If at all
#. possible, the sentence should match the grammatical case etc. of
#. the inserted conditions.
#: js/ui/dateMenu.js:286
#: js/ui/dateMenu.js:289
#, javascript-format
msgid "%s all day."
msgstr "De hele dag %s."
@@ -1009,7 +1009,7 @@ msgstr "De hele dag %s."
#. libgweather for the possible condition strings. If at all
#. possible, the sentence should match the grammatical case etc. of
#. the inserted conditions.
#: js/ui/dateMenu.js:292
#: js/ui/dateMenu.js:295
#, javascript-format
msgid "%s, then %s later."
msgstr "%s, daarna %s."
@@ -1018,30 +1018,30 @@ msgstr "%s, daarna %s."
#. libgweather for the possible condition strings. If at all
#. possible, the sentence should match the grammatical case etc. of
#. the inserted conditions.
#: js/ui/dateMenu.js:298
#: js/ui/dateMenu.js:301
#, javascript-format
msgid "%s, then %s, followed by %s later."
msgstr "%s, daarna %s, gevolgd door %s."
#: js/ui/dateMenu.js:309
#: js/ui/dateMenu.js:312
msgid "Select a location…"
msgstr "Selecteer een locatie…"
#: js/ui/dateMenu.js:312
#: js/ui/dateMenu.js:315
msgid "Loading…"
msgstr "Laden…"
#. Translators: %s is a temperature with unit, e.g. "23℃"
#: js/ui/dateMenu.js:318
#: js/ui/dateMenu.js:321
#, javascript-format
msgid "Feels like %s."
msgstr "Voelt aan als %s."
#: js/ui/dateMenu.js:321
#: js/ui/dateMenu.js:324
msgid "Go online for weather information"
msgstr "Ga online voor informatie over het weer"
#: js/ui/dateMenu.js:323
#: js/ui/dateMenu.js:326
msgid "Weather information is currently unavailable"
msgstr "Informatie over het weer is momenteel niet beschikbaar"
@@ -1278,7 +1278,7 @@ msgstr "Broncode weergeven"
msgid "Web Page"
msgstr "Webpagina"
#: js/ui/messageTray.js:1493
#: js/ui/messageTray.js:1494
msgid "System Information"
msgstr "Systeeminformatie"
@@ -1367,9 +1367,9 @@ msgctxt "System menu in the top bar"
msgid "System"
msgstr "Systeem"
#: js/ui/panel.js:812
#: js/ui/panel.js:811
msgid "Top Bar"
msgstr "Bovenbalk"
msgstr "Menubalk"
#. Translators: this MUST be either "toggle-switch-us"
#. (for toggle switches containing the English words
@@ -1522,35 +1522,35 @@ msgstr "Hoog contrast"
msgid "Large Text"
msgstr "Grote tekst"
#: js/ui/status/bluetooth.js:47
#: js/ui/status/bluetooth.js:48
msgid "Bluetooth"
msgstr "Bluetooth"
#: js/ui/status/bluetooth.js:56 js/ui/status/network.js:627
#: js/ui/status/bluetooth.js:57 js/ui/status/network.js:627
msgid "Bluetooth Settings"
msgstr "Bluetooth-instellingen"
#. Translators: this is the number of connected bluetooth devices
#: js/ui/status/bluetooth.js:136
#: js/ui/status/bluetooth.js:137
#, javascript-format
msgid "%d Connected"
msgid_plural "%d Connected"
msgstr[0] "%d verbonden apparaat"
msgstr[1] "%d verbonden apparaten"
#: js/ui/status/bluetooth.js:138
#: js/ui/status/bluetooth.js:139
msgid "Off"
msgstr "Uit"
#: js/ui/status/bluetooth.js:140
#: js/ui/status/bluetooth.js:141
msgid "On"
msgstr "Aan"
#: js/ui/status/bluetooth.js:142 js/ui/status/network.js:1299
#: js/ui/status/bluetooth.js:143 js/ui/status/network.js:1299
msgid "Turn On"
msgstr "Inschakelen"
#: js/ui/status/bluetooth.js:142 js/ui/status/network.js:170
#: js/ui/status/bluetooth.js:143 js/ui/status/network.js:170
#: js/ui/status/network.js:356 js/ui/status/network.js:1299
#: js/ui/status/network.js:1418 js/ui/status/nightLight.js:47
#: js/ui/status/rfkill.js:90 js/ui/status/rfkill.js:117

View File

@@ -363,7 +363,7 @@ msgstr "Izbor seje"
#. manually entering the username.
#: js/gdm/loginDialog.js:458
msgid "Not listed?"
msgstr "Ali je ni na seznamu?"
msgstr "Ali uporabniškeg imena ni na seznamu?"
#. Translators: this message is shown below the username entry field
#. to clue the user in on how to login to the local network realm

File diff suppressed because it is too large Load Diff

View File

@@ -38,14 +38,17 @@ extern GType gnome_shell_plugin_get_type (void);
static gboolean is_gdm_mode = FALSE;
static char *session_mode = NULL;
static int caught_signal = 0;
#define DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER 1
#define DBUS_REQUEST_NAME_REPLY_ALREADY_OWNER 4
enum {
SHELL_DEBUG_BACKTRACE_WARNINGS = 1,
SHELL_DEBUG_BACKTRACE_SEGFAULTS = 2,
};
static int _shell_debug;
static gboolean _tracked_signals[NSIG] = { 0 };
static void
shell_dbus_acquire_name (GDBusProxy *bus,
@@ -290,7 +293,8 @@ static void
shell_init_debug (const char *debug_env)
{
static const GDebugKey keys[] = {
{ "backtrace-warnings", SHELL_DEBUG_BACKTRACE_WARNINGS }
{ "backtrace-warnings", SHELL_DEBUG_BACKTRACE_WARNINGS },
{ "backtrace-segfaults", SHELL_DEBUG_BACKTRACE_SEGFAULTS },
};
_shell_debug = g_parse_debug_string (debug_env, keys,
@@ -328,6 +332,59 @@ shut_up (const char *domain,
{
}
static void
dump_gjs_stack_alarm_sigaction (int signo)
{
g_log_set_default_handler (g_log_default_handler, NULL);
g_warning ("Failed to dump Javascript stack, got stuck");
g_log_set_default_handler (default_log_handler, NULL);
raise (caught_signal);
}
static void
dump_gjs_stack_on_signal_handler (int signo)
{
struct sigaction sa = { 0 };
gsize i;
/* Ignore all the signals starting this point, a part the one we'll raise
* (which is implicitly ignored here through SA_RESETHAND), this is needed
* not to get this handler being called by other signals that we were
* tracking and that might be emitted by code called starting from now.
*/
for (i = 0; i < G_N_ELEMENTS (_tracked_signals); ++i)
{
if (_tracked_signals[i] && i != signo)
signal (i, SIG_IGN);
}
/* Waiting at least 5 seconds for the dumpstack, if it fails, we raise the error */
caught_signal = signo;
sa.sa_handler = dump_gjs_stack_alarm_sigaction;
sigemptyset (&sa.sa_mask);
sigaction (SIGALRM, &sa, NULL);
alarm (5);
gjs_dumpstack ();
alarm (0);
raise (signo);
}
static void
dump_gjs_stack_on_signal (int signo)
{
struct sigaction sa = { 0 };
sa.sa_flags = SA_RESETHAND | SA_NODEFER;
sa.sa_handler = dump_gjs_stack_on_signal_handler;
sigemptyset (&sa.sa_mask);
sigaction (signo, &sa, NULL);
_tracked_signals[signo] = TRUE;
}
static gboolean
list_modes (const char *option_name,
const char *value,
@@ -459,6 +516,17 @@ main (int argc, char **argv)
shell_prefs_init ();
dump_gjs_stack_on_signal (SIGABRT);
dump_gjs_stack_on_signal (SIGFPE);
dump_gjs_stack_on_signal (SIGIOT);
dump_gjs_stack_on_signal (SIGTRAP);
if ((_shell_debug & SHELL_DEBUG_BACKTRACE_SEGFAULTS))
{
dump_gjs_stack_on_signal (SIGBUS);
dump_gjs_stack_on_signal (SIGSEGV);
}
ecode = meta_run ();
g_debug ("Doing final cleanup");

View File

@@ -256,21 +256,21 @@ get_app_from_gapplication_id (MetaWindow *window)
}
/*
* get_app_from_flatpak_id:
* get_app_from_sandboxed_app_id:
* @window: a #MetaWindow
*
* Looks only at the given window, and attempts to determine
* an application based on its Flatpak ID. If one can't be determined,
* an application based on its Flatpak or Snap ID. If one can't be determined,
* return %NULL.
*
* Return value: (transfer full): A newly-referenced #ShellApp, or %NULL
*/
static ShellApp *
get_app_from_flatpak_id (MetaWindow *window)
get_app_from_sandboxed_app_id (MetaWindow *window)
{
const char *id;
id = meta_window_get_flatpak_id (window);
id = meta_window_get_sandboxed_app_id (window);
if (!id)
return NULL;
@@ -395,10 +395,10 @@ get_app_for_window (ShellWindowTracker *tracker,
if (meta_window_is_remote (window))
return _shell_app_new_for_window (window);
/* Check if the window was opened from within a Flatpak sandbox; if this
/* Check if the window was opened from within a sandbox; if this
* is the case, a corresponding .desktop file is guaranteed to match;
*/
result = get_app_from_flatpak_id (window);
result = get_app_from_sandboxed_app_id (window);
if (result != NULL)
return result;