diff --git a/NEWS b/NEWS
index 4ed9e927f..f32df7509 100644
--- a/NEWS
+++ b/NEWS
@@ -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
====
diff --git a/bla bla b/bla bla
new file mode 100644
index 000000000..f4f175b14
--- /dev/null
+++ b/bla bla
@@ -0,0 +1 @@
+bla test
\ No newline at end of file
diff --git a/data/org.gnome.shell.gschema.xml.in b/data/org.gnome.shell.gschema.xml.in
index a805d5262..dd09b5dac 100644
--- a/data/org.gnome.shell.gschema.xml.in
+++ b/data/org.gnome.shell.gschema.xml.in
@@ -230,6 +230,14 @@
["<Super>9"]
Switch to application 9
+
+ Tab']]]>
+ Open Realm Switcher
+
+
+ Tab']]]>
+ Open Realm Switcher Backwards
+
{
+ this._prefsDialog = new ExtensionPrefsDialog(extension);
+ this._prefsDialog.connect('realize', () => {
let externalWindow = null;
if (parentWindow)
externalWindow = Shew.ExternalWindow.new_from_handle(parentWindow);
if (externalWindow)
- externalWindow.set_parent_of(window.get_surface());
+ externalWindow.set_parent_of(this._prefsDialog.get_surface());
});
if (options.modal)
- window.modal = options.modal.get_boolean();
+ this._prefsDialog.modal = options.modal.get_boolean();
- window.connect('destroy', () => this.release());
+ this._prefsDialog.connect('close-request', () => {
+ delete this._prefsDialog;
+ this.release();
+ return false;
+ });
this.hold();
- window.show();
+ this._prefsDialog.show();
invocation.return_value(null);
});
diff --git a/js/dbusServices/meson.build b/js/dbusServices/meson.build
index 68e8bd12d..16efaebe5 100644
--- a/js/dbusServices/meson.build
+++ b/js/dbusServices/meson.build
@@ -27,7 +27,7 @@ foreach service, dir : dbus_services
serviceconf = configuration_data()
serviceconf.set('service', service)
- serviceconf.set('gjs', gjs.path())
+ serviceconf.set('gjs', gjs)
serviceconf.set('pkgdatadir', pkgdatadir)
configure_file(
diff --git a/js/js-resources.gresource.xml b/js/js-resources.gresource.xml
index 93d5932f5..60fad6a61 100644
--- a/js/js-resources.gresource.xml
+++ b/js/js-resources.gresource.xml
@@ -142,5 +142,12 @@
ui/status/remoteAccess.js
ui/status/system.js
ui/status/thunderbolt.js
+
+ ui/realms/realmIndicator.js
+ ui/realms/realmManager.js
+ ui/realms/realmSearchProvider.js
+ ui/realms/realmSwitcher.js
+ ui/realms/realmWindowFrame.js
+ ui/realms/realmWindowMenu.js
diff --git a/js/misc/inputMethod.js b/js/misc/inputMethod.js
index 1f9eaee7a..8c3cd61ae 100644
--- a/js/misc/inputMethod.js
+++ b/js/misc/inputMethod.js
@@ -111,6 +111,8 @@ class InputMethod extends Clutter.InputMethod {
return;
let preedit = text.get_text();
+ if (preedit === '')
+ preedit = null;
if (visible)
this.set_preedit_text(preedit, pos, mode);
@@ -165,7 +167,7 @@ class InputMethod extends Clutter.InputMethod {
if (this._context)
this._context.focus_out();
- if (this._preeditStr) {
+ if (this._preeditStr && this._preeditVisible) {
// Unset any preedit text
this.set_preedit_text(null, 0, this._preeditCommitMode);
this._preeditStr = null;
@@ -184,11 +186,7 @@ class InputMethod extends Clutter.InputMethod {
this._emitRequestSurrounding();
}
- if (this._preeditStr !== null) {
- // Unset any preedit text
- this.set_preedit_text(null, 0, Clutter.PreeditResetMode.CLEAR);
- this._preeditStr = null;
- }
+ this._preeditStr = null;
}
vfunc_set_cursor_location(rect) {
diff --git a/js/ui/environment.js b/js/ui/environment.js
index ccd7dcdaa..ef53e6022 100644
--- a/js/ui/environment.js
+++ b/js/ui/environment.js
@@ -201,20 +201,23 @@ function _easeActor(actor, params) {
actor.set(params);
actor.restore_easing_state();
- let transition = animatedProps.map(p => actor.get_transition(p))
- .find(t => t !== null);
+ const transitions = animatedProps
+ .map(p => actor.get_transition(p))
+ .filter(t => t !== null);
+
+ transitions.forEach(t => t.set({ repeatCount, autoReverse }));
+
+ const [transition] = transitions;
if (transition && transition.delay)
transition.connect('started', () => prepare());
else
prepare();
- if (transition) {
- transition.set({ repeatCount, autoReverse });
+ if (transition)
transition.connect('stopped', (t, finished) => callback(finished));
- } else {
+ else
callback(true);
- }
}
function _easeActorProperty(actor, propName, target, params) {
diff --git a/js/ui/layout.js b/js/ui/layout.js
index e3c5f4975..70ece6cab 100644
--- a/js/ui/layout.js
+++ b/js/ui/layout.js
@@ -974,9 +974,6 @@ var LayoutManager = GObject.registerClass({
for (i = 0; i < this._trackedActors.length; i++) {
let actorData = this._trackedActors[i];
- if (!actorData.actor.get_paint_visibility())
- continue;
-
if (!(actorData.affectsInputRegion && wantsInputRegion) && !actorData.affectsStruts)
continue;
@@ -987,7 +984,7 @@ var LayoutManager = GObject.registerClass({
w = Math.round(w);
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 }));
let monitor = null;
diff --git a/js/ui/main.js b/js/ui/main.js
index c7bac11f2..e032b1490 100644
--- a/js/ui/main.js
+++ b/js/ui/main.js
@@ -49,6 +49,7 @@ const PointerA11yTimeout = imports.ui.pointerA11yTimeout;
const ParentalControlsManager = imports.misc.parentalControlsManager;
const Config = imports.misc.config;
const Util = imports.misc.util;
+const RealmManager = imports.ui.realms.realmManager;
const WELCOME_DIALOG_LAST_SHOWN_VERSION = 'welcome-dialog-last-shown-version';
// Make sure to mention the point release, otherwise it will show every time
@@ -91,6 +92,7 @@ var kbdA11yDialog = null;
var inputMethod = null;
var introspectService = null;
var locatePointer = null;
+var realmManager = null;
let _startDate;
let _defaultCssStylesheet = null;
let _cssStylesheet = null;
@@ -264,6 +266,8 @@ function _initializeUI() {
extensionManager = new ExtensionSystem.ExtensionManager();
extensionManager.init();
+ realmManager = new RealmManager.RealmManager();
+
if (sessionMode.isGreeter && screenShield) {
layoutManager.connect('startup-prepared', () => {
screenShield.showDialog();
diff --git a/js/ui/overview.js b/js/ui/overview.js
index 87bf835b0..12054e139 100644
--- a/js/ui/overview.js
+++ b/js/ui/overview.js
@@ -251,7 +251,7 @@ var Overview = class {
DND.addDragMonitor(this._dragMonitor);
// Remember the workspace we started from
let workspaceManager = global.workspace_manager;
- this._lastActiveWorkspaceIndex = workspaceManager.get_active_workspace_index();
+ this._lastActiveWorkspaceIndex = workspaceManager.get_active_workspace_id();
}
_onDragEnd(time) {
diff --git a/js/ui/overviewControls.js b/js/ui/overviewControls.js
index 6cbaa22ba..97780e940 100644
--- a/js/ui/overviewControls.js
+++ b/js/ui/overviewControls.js
@@ -342,6 +342,8 @@ class ControlsManager extends St.Widget {
workspaceManager.connect('notify::n-workspaces',
this._updateAdjustment.bind(this));
+ this._contextSwitchedId = workspaceManager.connect('context-switched', this._updateAdjustment.bind(this));
+
this._searchController = new SearchController.SearchController(
this._searchEntry,
this.dash.showAppsButton);
@@ -653,6 +655,7 @@ class ControlsManager extends St.Widget {
_onDestroy() {
global.workspace_manager.disconnect(this._nWorkspacesNotifyId);
+ global.workspace_manager.disconnect(this._contextSwitchedId);
}
_updateAdjustment() {
diff --git a/js/ui/realms/realmIndicator.js b/js/ui/realms/realmIndicator.js
new file mode 100644
index 000000000..d71e34689
--- /dev/null
+++ b/js/ui/realms/realmIndicator.js
@@ -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('');
+ }
+ }
+ });
diff --git a/js/ui/realms/realmManager.js b/js/ui/realms/realmManager.js
new file mode 100644
index 000000000..bb60f60fd
--- /dev/null
+++ b/js/ui/realms/realmManager.js
@@ -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();
+ }
+
+};
+
diff --git a/js/ui/realms/realmSearchProvider.js b/js/ui/realms/realmSearchProvider.js
new file mode 100644
index 000000000..00ad04d10
--- /dev/null
+++ b/js/ui/realms/realmSearchProvider.js
@@ -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)
+ }
+}
diff --git a/js/ui/realms/realmSwitcher.js b/js/ui/realms/realmSwitcher.js
new file mode 100644
index 000000000..507df000a
--- /dev/null
+++ b/js/ui/realms/realmSwitcher.js
@@ -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);
+ }
+}
diff --git a/js/ui/realms/realmWindowFrame.js b/js/ui/realms/realmWindowFrame.js
new file mode 100644
index 000000000..e200102a1
--- /dev/null
+++ b/js/ui/realms/realmWindowFrame.js
@@ -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);
+ }
+});
diff --git a/js/ui/realms/realmWindowMenu.js b/js/ui/realms/realmWindowMenu.js
new file mode 100644
index 000000000..6418724a2
--- /dev/null
+++ b/js/ui/realms/realmWindowMenu.js
@@ -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;
+}
\ No newline at end of file
diff --git a/js/ui/sessionMode.js b/js/ui/sessionMode.js
index afcd67cfd..b686efb33 100644
--- a/js/ui/sessionMode.js
+++ b/js/ui/sessionMode.js
@@ -71,7 +71,7 @@ const _modes = {
'user': {
hasOverview: true,
- showCalendarEvents: true,
+ showCalendarEvents: false,
showWelcomeDialog: true,
allowSettings: true,
allowExtensions: true,
diff --git a/js/ui/status/system.js b/js/ui/status/system.js
index 6f71109c5..b96780c88 100644
--- a/js/ui/status/system.js
+++ b/js/ui/status/system.js
@@ -113,7 +113,7 @@ class Indicator extends PanelMenu.SystemIndicator {
bindFlags);
this._sessionSubMenu = new PopupMenu.PopupSubMenuMenuItem(
- _('Power Off / Log Out'), true);
+ _('Power Off'), true);
this._sessionSubMenu.icon.icon_name = 'system-shutdown-symbolic';
item = new PopupMenu.PopupMenuItem(_('Suspend'));
diff --git a/js/ui/unlockDialog.js b/js/ui/unlockDialog.js
index 3ef6aa90f..370385abc 100644
--- a/js/ui/unlockDialog.js
+++ b/js/ui/unlockDialog.js
@@ -676,14 +676,16 @@ var UnlockDialog = GObject.registerClass({
}
_ensureAuthPrompt() {
- if (!this._authPrompt) {
- this._authPrompt = new AuthPrompt.AuthPrompt(this._gdmClient,
- AuthPrompt.AuthPromptMode.UNLOCK_ONLY);
- this._authPrompt.connect('failed', this._fail.bind(this));
- this._authPrompt.connect('cancelled', this._fail.bind(this));
- this._authPrompt.connect('reset', this._onReset.bind(this));
- this._promptBox.add_child(this._authPrompt);
- }
+ if (this._authPrompt)
+ return;
+
+ this._authPrompt = new AuthPrompt.AuthPrompt(this._gdmClient,
+ AuthPrompt.AuthPromptMode.UNLOCK_ONLY);
+ this._authPrompt.connect('failed', this._fail.bind(this));
+ 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.updateSensitivity(true);
@@ -870,11 +872,7 @@ var UnlockDialog = GObject.registerClass({
}
finish(onComplete) {
- if (!this._authPrompt) {
- onComplete();
- return;
- }
-
+ this._ensureAuthPrompt();
this._authPrompt.finish(onComplete);
}
diff --git a/js/ui/windowManager.js b/js/ui/windowManager.js
index caaecec41..a8ff7f9e3 100644
--- a/js/ui/windowManager.js
+++ b/js/ui/windowManager.js
@@ -198,6 +198,8 @@ var WorkspaceTracker = class {
workspaceManager.connect('workspaces-reordered', () => {
this._workspaces.sort((a, b) => a.index() - b.index());
});
+ workspaceManager.connect('context-switched',
+ this._workspaceContextSwitched.bind(this));
global.window_manager.connect('switch-workspace',
this._queueCheckWorkspaces.bind(this));
@@ -253,6 +255,8 @@ var WorkspaceTracker = class {
emptyWorkspaces[index] = false;
}
+ let current_context_id = workspaceManager.active_context_id();
+
let windows = global.get_window_actors();
for (i = 0; i < windows.length; i++) {
let actor = windows[i];
@@ -261,7 +265,12 @@ var WorkspaceTracker = class {
if (win.is_on_all_workspaces())
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;
}
@@ -339,6 +348,28 @@ var WorkspaceTracker = class {
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() {
let workspaceManager = global.workspace_manager;
let oldNumWorkspaces = this._workspaces.length;
@@ -1641,6 +1672,14 @@ var WindowManager = class {
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._shellwm.completed_switch_workspace();
this._switchInProgress = false;
diff --git a/js/ui/windowMenu.js b/js/ui/windowMenu.js
index 27cecdac2..60dda02d8 100644
--- a/js/ui/windowMenu.js
+++ b/js/ui/windowMenu.js
@@ -1,11 +1,12 @@
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*
/* exported WindowMenuManager */
-const { GLib, Meta, St } = imports.gi;
+const { GLib, Meta, Shell, St } = imports.gi;
const BoxPointer = imports.ui.boxpointer;
const Main = imports.ui.main;
const PopupMenu = imports.ui.popupMenu;
+const RealmWindowMenu = imports.ui.realms.realmWindowMenu;
var WindowMenu = class extends PopupMenu.PopupMenu {
constructor(window, sourceActor) {
@@ -24,6 +25,23 @@ var WindowMenu = class extends PopupMenu.PopupMenu {
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'), () => {
window.minimize();
});
diff --git a/js/ui/workspacesView.js b/js/ui/workspacesView.js
index 3761881d0..b662d054c 100644
--- a/js/ui/workspacesView.js
+++ b/js/ui/workspacesView.js
@@ -122,6 +122,10 @@ class WorkspacesView extends WorkspacesViewBase {
this._updateWorkspacesId =
workspaceManager.connect('notify::n-workspaces',
this._updateWorkspaces.bind(this));
+ this._contextSwitchedId =
+ workspaceManager.connect('context-switched',
+ this._refreshWorkspaces.bind(this));
+
this._reorderWorkspacesId =
workspaceManager.connect('workspaces-reordered', () => {
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() {
let workspaceManager = global.workspace_manager;
let newNumWorkspaces = workspaceManager.n_workspaces;
@@ -499,6 +510,7 @@ class WorkspacesView extends WorkspacesViewBase {
global.window_manager.disconnect(this._switchWorkspaceNotifyId);
let workspaceManager = global.workspace_manager;
workspaceManager.disconnect(this._updateWorkspacesId);
+ workspaceManager.disconnect(this._contextSwitchedId);
workspaceManager.disconnect(this._reorderWorkspacesId);
}
diff --git a/meson.build b/meson.build
index 0abe4cffe..1dc472959 100644
--- a/meson.build
+++ b/meson.build
@@ -1,5 +1,5 @@
project('gnome-shell', 'c',
- version: '41.0',
+ version: '41.1',
meson_version: '>= 0.53.0',
license: 'GPLv2+'
)
@@ -19,8 +19,8 @@ cogl_pango_pc = 'mutter-cogl-pango-' + mutter_api_version
libmutter_pc = 'libmutter-' + mutter_api_version
libmutter_test_pc = 'libmutter-test-' + mutter_api_version
-ecal_req = '>= 3.33.1'
-eds_req = '>= 3.33.1'
+#ecal_req = '>= 3.33.1'
+#eds_req = '>= 3.33.1'
gcr_req = '>= 3.7.5'
gio_req = '>= 2.56.0'
gi_req = '>= 1.49.1'
@@ -72,8 +72,8 @@ else
endif
atk_bridge_dep = dependency('atk-bridge-2.0')
-ecal_dep = dependency('libecal-2.0', version: ecal_req)
-eds_dep = dependency('libedataserver-1.2', version: eds_req)
+#ecal_dep = dependency('libecal-2.0', version: ecal_req)
+#eds_dep = dependency('libedataserver-1.2', version: eds_req)
gcr_dep = dependency('gcr-base-3', version: gcr_req)
gdk_x11_dep = dependency('gdk-x11-3.0')
gdk_pixbuf_dep = dependency('gdk-pixbuf-2.0')
@@ -81,7 +81,6 @@ gi_dep = dependency('gobject-introspection-1.0', version: gi_req)
gio_dep = dependency('gio-2.0', version: gio_req)
gio_unix_dep = dependency('gio-unix-2.0', version: gio_req)
gjs_dep = dependency('gjs-1.0', version: gjs_req)
-gmodule_dep = dependency('gmodule-2.0')
gtk_dep = dependency('gtk+-3.0', version: gtk_req)
libxml_dep = dependency('libxml-2.0')
clutter_dep = dependency(clutter_pc, version: mutter_req)
@@ -140,7 +139,7 @@ endif
mutter_typelibdir = mutter_dep.get_pkgconfig_variable('typelibdir')
python = find_program('python3')
-gjs = find_program('gjs')
+gjs = '/usr/bin/gjs'
cc = meson.get_compiler('c')
diff --git a/po/de.po b/po/de.po
index 04ca52938..70b835e4a 100644
--- a/po/de.po
+++ b/po/de.po
@@ -24,9 +24,9 @@ msgid ""
msgstr ""
"Project-Id-Version: gnome-shell master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell/issues\n"
-"POT-Creation-Date: 2021-08-25 14:56+0000\n"
-"PO-Revision-Date: 2021-08-29 19:32+0200\n"
-"Last-Translator: Tim Sabsch \n"
+"POT-Creation-Date: 2021-11-03 17:53+0000\n"
+"PO-Revision-Date: 2021-11-03 21:32+0100\n"
+"Last-Translator: Christian Kirbach \n"
"Language-Team: Deutsch \n"
"Language: de\n"
"MIME-Version: 1.0\n"
@@ -270,23 +270,11 @@ msgstr ""
"noch nicht existieren. Diese riesige Zahl kann dazu verwendet werden, diesen "
"Dialog praktisch zu deaktivieren."
-#: data/org.gnome.shell.gschema.xml.in:109
-msgid "Enable introspection API"
-msgstr "Introspection-API aktivieren"
-
-#: 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 ""
-"Aktiviert eine D_Bus-API, die Einblicke in den Anwendungsstatus der Shell "
-"gewährt."
-
-#: data/org.gnome.shell.gschema.xml.in:141
+#: data/org.gnome.shell.gschema.xml.in:133
msgid "Layout of the app picker"
msgstr "Ausrichtung der Anwendungsauswahl"
-#: data/org.gnome.shell.gschema.xml.in:142
+#: data/org.gnome.shell.gschema.xml.in:134
msgid ""
"Layout of the app picker. Each entry in the array is a page. Pages are "
"stored in the order they appear in GNOME Shell. Each page contains an "
@@ -299,110 +287,110 @@ msgstr ""
"Aktuell werden die folgenden Werte innerhalb von »data« gespeichert: • "
"»position«: Die Position des Anwendungssymbols auf der Seite"
-#: data/org.gnome.shell.gschema.xml.in:157
+#: data/org.gnome.shell.gschema.xml.in:149
msgid "Keybinding to open the application menu"
msgstr "Tastenkombination zum Öffnen des Anwendungsmenüs"
-#: data/org.gnome.shell.gschema.xml.in:158
+#: data/org.gnome.shell.gschema.xml.in:150
msgid "Keybinding to open the application menu."
msgstr "Tastenkombination zum Öffnen des Anwendungsmenüs."
-#: data/org.gnome.shell.gschema.xml.in:164
-#: data/org.gnome.shell.gschema.xml.in:171
+#: data/org.gnome.shell.gschema.xml.in:156
+#: data/org.gnome.shell.gschema.xml.in:163
msgid "Keybinding to shift between overview states"
msgstr "Tastenkürzel, um zwischen Übersichts-Modi zu wechseln"
-#: 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"
msgstr ""
"Tastenkürzel, um zwischen Sitzung, Fensterwähler und Anwendungsraster zu "
"wechseln"
-#: 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"
msgstr ""
"Tastenkürzel, um zwischen Anwendungsraster, Fensterwähler und Sitzung zu "
"wechseln"
-#: data/org.gnome.shell.gschema.xml.in:178
+#: data/org.gnome.shell.gschema.xml.in:170
msgid "Keybinding to open the “Show Applications” view"
msgstr "Tastenkombination zum Öffnen der »Anwendungen anzeigen«-Ansicht"
-#: data/org.gnome.shell.gschema.xml.in:179
+#: data/org.gnome.shell.gschema.xml.in:171
msgid ""
"Keybinding to open the “Show Applications” view of the Activities Overview."
msgstr ""
"Tastenkombination zum Öffnen der »Anwendungen anzeigen«-Ansicht der "
"Aktivitätenübersicht."
-#: data/org.gnome.shell.gschema.xml.in:186
+#: data/org.gnome.shell.gschema.xml.in:178
msgid "Keybinding to open the overview"
msgstr "Tastenkombination zum Öffnen der Übersicht"
-#: data/org.gnome.shell.gschema.xml.in:187
+#: data/org.gnome.shell.gschema.xml.in:179
msgid "Keybinding to open the Activities Overview."
msgstr "Tastenkombination zum Öffnen der »Aktivitäten«-Übersicht."
-#: 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"
msgstr ""
"Tastenkombination zum Umschalten der Sichtbarkeit der Benachrichtigungsliste"
-#: 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."
msgstr ""
"Tastenkombination zum Umschalten der Sichtbarkeit der Benachrichtigungsliste."
-#: data/org.gnome.shell.gschema.xml.in:200
+#: data/org.gnome.shell.gschema.xml.in:192
msgid "Keybinding to focus the active notification"
msgstr "Tastenkombination zur Ausrichtung auf die aktiven Benachrichtigungen"
-#: data/org.gnome.shell.gschema.xml.in:201
+#: data/org.gnome.shell.gschema.xml.in:193
msgid "Keybinding to focus the active notification."
msgstr "Tastenkombination zur Ausrichtung auf die aktiven Benachrichtigungen."
-#: data/org.gnome.shell.gschema.xml.in:207
+#: data/org.gnome.shell.gschema.xml.in:199
msgid "Switch to application 1"
msgstr "Zu Anwendung 1 wechseln"
-#: data/org.gnome.shell.gschema.xml.in:211
+#: data/org.gnome.shell.gschema.xml.in:203
msgid "Switch to application 2"
msgstr "Zu Anwendung 2 wechseln"
-#: data/org.gnome.shell.gschema.xml.in:215
+#: data/org.gnome.shell.gschema.xml.in:207
msgid "Switch to application 3"
msgstr "Zu Anwendung 3 wechseln"
-#: data/org.gnome.shell.gschema.xml.in:219
+#: data/org.gnome.shell.gschema.xml.in:211
msgid "Switch to application 4"
msgstr "Zu Anwendung 4 wechseln"
-#: data/org.gnome.shell.gschema.xml.in:223
+#: data/org.gnome.shell.gschema.xml.in:215
msgid "Switch to application 5"
msgstr "Zu Anwendung 5 wechseln"
-#: data/org.gnome.shell.gschema.xml.in:227
+#: data/org.gnome.shell.gschema.xml.in:219
msgid "Switch to application 6"
msgstr "Zu Anwendung 6 wechseln"
-#: data/org.gnome.shell.gschema.xml.in:231
+#: data/org.gnome.shell.gschema.xml.in:223
msgid "Switch to application 7"
msgstr "Zu Anwendung 7 wechseln"
-#: data/org.gnome.shell.gschema.xml.in:235
+#: data/org.gnome.shell.gschema.xml.in:227
msgid "Switch to application 8"
msgstr "Zu Anwendung 8 wechseln"
-#: data/org.gnome.shell.gschema.xml.in:239
+#: data/org.gnome.shell.gschema.xml.in:231
msgid "Switch to application 9"
msgstr "Zu Anwendung 9 wechseln"
-#: data/org.gnome.shell.gschema.xml.in:248
-#: data/org.gnome.shell.gschema.xml.in:275
+#: data/org.gnome.shell.gschema.xml.in:240
+#: data/org.gnome.shell.gschema.xml.in:267
msgid "Limit switcher to current workspace."
msgstr "Fensterwechsler auf aktuelle Arbeitsfläche einschränken."
-#: data/org.gnome.shell.gschema.xml.in:249
+#: data/org.gnome.shell.gschema.xml.in:241
msgid ""
"If true, only applications that have windows on the current workspace are "
"shown in the switcher. Otherwise, all applications are included."
@@ -411,11 +399,11 @@ msgstr ""
"Fenster auf der aktuellen Arbeitsfläche haben. Andernfalls sind alle "
"Anwendungen enthalten."
-#: data/org.gnome.shell.gschema.xml.in:266
+#: data/org.gnome.shell.gschema.xml.in:258
msgid "The application icon mode."
msgstr "Der Modus der Anwendungssymbole."
-#: data/org.gnome.shell.gschema.xml.in:267
+#: data/org.gnome.shell.gschema.xml.in:259
msgid ""
"Configures how the windows are shown in the switcher. Valid possibilities "
"are “thumbnail-only” (shows a thumbnail of the window), “app-icon-"
@@ -425,7 +413,7 @@ msgstr ""
"sind »thumbnail-only« (Vorschaubilder der Fenster werden angezeigt), »app-"
"icon-only« (Nur das Anwendungssymbol wird angezeigt) oder »both« (beides)."
-#: data/org.gnome.shell.gschema.xml.in:276
+#: data/org.gnome.shell.gschema.xml.in:268
msgid ""
"If true, only windows from the current workspace are shown in the switcher. "
"Otherwise, all windows are included."
@@ -433,60 +421,60 @@ msgstr ""
"Legt fest, ob Fenster der aktuellen Arbeitsfläche im Fensterwechsler "
"aufgeführt werden. Andernfalls sind alle Fenster enthalten."
-#: data/org.gnome.shell.gschema.xml.in:286
+#: data/org.gnome.shell.gschema.xml.in:278
msgid "Locations"
msgstr "Orte"
-#: data/org.gnome.shell.gschema.xml.in:287
+#: data/org.gnome.shell.gschema.xml.in:279
msgid "The locations to show in world clocks"
msgstr "Die von den Weltuhren anzuzeigenden Orte"
-#: data/org.gnome.shell.gschema.xml.in:297
+#: data/org.gnome.shell.gschema.xml.in:289
msgid "Automatic location"
msgstr "Automatischer Ort"
-#: 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"
msgstr "Legt fest, ob der aktuelle Ort automatisch bestimmt werden soll"
-#: data/org.gnome.shell.gschema.xml.in:305
+#: data/org.gnome.shell.gschema.xml.in:297
msgid "Location"
msgstr "Ort"
-#: 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"
msgstr "Der Ort, für den ein Wetterbericht angezeigt werden soll"
-#: data/org.gnome.shell.gschema.xml.in:318
+#: data/org.gnome.shell.gschema.xml.in:310
msgid "Attach modal dialog to the parent window"
msgstr "Modalen Dialog an übergeordnetes Fenster binden"
-#: 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:336
#: data/org.gnome.shell.gschema.xml.in:344
-#: data/org.gnome.shell.gschema.xml.in:352
msgid ""
"This key overrides the key in org.gnome.mutter when running GNOME Shell."
msgstr ""
"Dieser Schlüssel überschreibt den Schlüssel in org.gnome.mutter, wenn die "
"GNOME-Shell läuft."
-#: 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"
msgstr ""
"Größenanpassung einschalten, wenn ein Fenster an die Bildschirmkante "
"verschoben wird"
-#: data/org.gnome.shell.gschema.xml.in:335
+#: data/org.gnome.shell.gschema.xml.in:327
msgid "Workspaces are managed dynamically"
msgstr "Arbeitsflächen dynamisch verwalten"
-#: data/org.gnome.shell.gschema.xml.in:343
+#: data/org.gnome.shell.gschema.xml.in:335
msgid "Workspaces only on primary monitor"
msgstr "Arbeitsflächen nur auf dem primären Bildschirm"
-#: 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"
msgstr ""
"Fokuswechsel im Mausmodus verzögern, bis sich der Zeiger nicht mehr bewegt"
@@ -523,18 +511,18 @@ msgid "Visit extension homepage"
msgstr "Internetseite der Erweiterung besuchen"
#: js/gdm/authPrompt.js:141 js/ui/audioDeviceSelection.js:61
-#: js/ui/components/networkAgent.js:111 js/ui/components/polkitAgent.js:138
-#: js/ui/endSessionDialog.js:438 js/ui/extensionDownloader.js:230
+#: js/ui/components/networkAgent.js:110 js/ui/components/polkitAgent.js:138
+#: 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 subprojects/extensions-app/js/main.js:183
msgid "Cancel"
msgstr "Abbrechen"
#. Cisco LEAP
-#: js/gdm/authPrompt.js:285 js/ui/components/networkAgent.js:210
-#: js/ui/components/networkAgent.js:226 js/ui/components/networkAgent.js:250
-#: js/ui/components/networkAgent.js:271 js/ui/components/networkAgent.js:291
-#: js/ui/components/networkAgent.js:301 js/ui/components/polkitAgent.js:275
+#: js/gdm/authPrompt.js:285 js/ui/components/networkAgent.js:209
+#: js/ui/components/networkAgent.js:225 js/ui/components/networkAgent.js:249
+#: js/ui/components/networkAgent.js:270 js/ui/components/networkAgent.js:290
+#: js/ui/components/networkAgent.js:300 js/ui/components/polkitAgent.js:275
#: js/ui/shellMountOperation.js:326
msgid "Password"
msgstr "Passwort"
@@ -557,8 +545,8 @@ msgstr "(z.B. Benutzer oder %s)"
#. TTLS and PEAP are actually much more complicated, but this complication
#. is not visible here since we only care about phase2 authentication
#. (and don't even care of which one)
-#: js/gdm/loginDialog.js:926 js/ui/components/networkAgent.js:246
-#: js/ui/components/networkAgent.js:269 js/ui/components/networkAgent.js:287
+#: js/gdm/loginDialog.js:926 js/ui/components/networkAgent.js:245
+#: js/ui/components/networkAgent.js:268 js/ui/components/networkAgent.js:286
msgid "Username"
msgstr "Benutzername"
@@ -663,65 +651,65 @@ msgctxt "search-result"
msgid "Lock Screen Rotation"
msgstr "Bildschirmdrehung sperren"
-#: js/misc/util.js:120
+#: js/misc/util.js:121
msgid "Command not found"
msgstr "Befehl nicht gefunden"
#. Replace "Error invoking GLib.shell_parse_argv: " with
#. something nicer
-#: js/misc/util.js:156
+#: js/misc/util.js:157
msgid "Could not parse command:"
msgstr "Befehl konnte nicht verarbeitet werden:"
-#: js/misc/util.js:164
+#: js/misc/util.js:165
#, javascript-format
msgid "Execution of “%s” failed:"
msgstr "Ausführung von »%s« ist gescheitert:"
-#: js/misc/util.js:181
+#: js/misc/util.js:182
msgid "Just now"
msgstr "Gerade eben"
-#: js/misc/util.js:183
+#: js/misc/util.js:184
#, javascript-format
msgid "%d minute ago"
msgid_plural "%d minutes ago"
msgstr[0] "vor %d Minute"
msgstr[1] "vor %d Minuten"
-#: js/misc/util.js:187
+#: js/misc/util.js:188
#, javascript-format
msgid "%d hour ago"
msgid_plural "%d hours ago"
msgstr[0] "vor %d Stunde"
msgstr[1] "vor %d Stunden"
-#: js/misc/util.js:191 js/ui/dateMenu.js:162
+#: js/misc/util.js:192 js/ui/dateMenu.js:162
msgid "Yesterday"
msgstr "Gestern"
-#: js/misc/util.js:193
+#: js/misc/util.js:194
#, javascript-format
msgid "%d day ago"
msgid_plural "%d days ago"
msgstr[0] "vor %d Tag"
msgstr[1] "vor %d Tagen"
-#: js/misc/util.js:197
+#: js/misc/util.js:198
#, javascript-format
msgid "%d week ago"
msgid_plural "%d weeks ago"
msgstr[0] "vor %d Woche"
msgstr[1] "vor %d Wochen"
-#: js/misc/util.js:201
+#: js/misc/util.js:202
#, javascript-format
msgid "%d month ago"
msgid_plural "%d months ago"
msgstr[0] "vor %d Monat"
msgstr[1] "vor %d Monaten"
-#: js/misc/util.js:204
+#: js/misc/util.js:205
#, javascript-format
msgid "%d year ago"
msgid_plural "%d years ago"
@@ -729,20 +717,20 @@ msgstr[0] "vor %d Jahr"
msgstr[1] "vor %d Jahren"
#. Translators: Time in 24h format
-#: js/misc/util.js:237
+#: js/misc/util.js:238
msgid "%H∶%M"
msgstr "%H∶%M"
#. Translators: this is the word "Yesterday" followed by a
#. time string in 24h format. i.e. "Yesterday, 14:30"
-#: js/misc/util.js:243
+#: js/misc/util.js:244
#, no-c-format
msgid "Yesterday, %H∶%M"
msgstr "Gestern, %H:%M"
#. Translators: this is the week day name followed by a time
#. string in 24h format. i.e. "Monday, 14:30"
-#: js/misc/util.js:249
+#: js/misc/util.js:250
#, no-c-format
msgid "%A, %H∶%M"
msgstr "%A, %H∶%M"
@@ -750,7 +738,7 @@ msgstr "%A, %H∶%M"
#. Translators: this is the month name and day number
#. followed by a time string in 24h format.
#. i.e. "May 25, 14:30"
-#: js/misc/util.js:255
+#: js/misc/util.js:256
#, no-c-format
msgid "%B %-d, %H∶%M"
msgstr "%e. %B, %H∶%M"
@@ -758,7 +746,7 @@ msgstr "%e. %B, %H∶%M"
#. Translators: this is the month name, day number, year
#. number followed by a time string in 24h format.
#. i.e. "May 25 2012, 14:30"
-#: js/misc/util.js:261
+#: js/misc/util.js:262
#, no-c-format
msgid "%B %-d %Y, %H∶%M"
msgstr "%e. %B %Y, %H:%M"
@@ -766,20 +754,20 @@ msgstr "%e. %B %Y, %H:%M"
#. Show only the time if date is on today
#. eslint-disable-line no-lonely-if
#. Translators: Time in 12h format
-#: js/misc/util.js:266
+#: js/misc/util.js:267
msgid "%l∶%M %p"
msgstr "%l∶%M %p"
#. Translators: this is the word "Yesterday" followed by a
#. time string in 12h format. i.e. "Yesterday, 2:30 pm"
-#: js/misc/util.js:272
+#: js/misc/util.js:273
#, no-c-format
msgid "Yesterday, %l∶%M %p"
msgstr "Gestern, %l:%M %p"
#. Translators: this is the week day name followed by a time
#. string in 12h format. i.e. "Monday, 2:30 pm"
-#: js/misc/util.js:278
+#: js/misc/util.js:279
#, no-c-format
msgid "%A, %l∶%M %p"
msgstr "%A, %l∶%M %p"
@@ -787,7 +775,7 @@ msgstr "%A, %l∶%M %p"
#. Translators: this is the month name and day number
#. followed by a time string in 12h format.
#. i.e. "May 25, 2:30 pm"
-#: js/misc/util.js:284
+#: js/misc/util.js:285
#, no-c-format
msgid "%B %-d, %l∶%M %p"
msgstr "%e. %B, %l∶%M %p"
@@ -795,7 +783,7 @@ msgstr "%e. %B, %l∶%M %p"
#. Translators: this is the month name, day number, year
#. number followed by a time string in 12h format.
#. i.e. "May 25 2012, 2:30 pm"
-#: js/misc/util.js:290
+#: js/misc/util.js:291
#, no-c-format
msgid "%B %-d %Y, %l∶%M %p"
msgstr "%e. %B %Y, %l:%M %p"
@@ -1054,40 +1042,40 @@ msgstr ""
msgid "Open with %s"
msgstr "Öffnen mit %s"
-#: js/ui/components/networkAgent.js:93
+#: js/ui/components/networkAgent.js:92
msgid ""
"Alternatively you can connect by pushing the “WPS” button on your router."
msgstr ""
"Alternativ können Sie sich verbinden, indem Sie den »WPS«-Knopf an Ihrem "
"Router drücken."
-#: js/ui/components/networkAgent.js: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
msgid "Connect"
msgstr "Verbinden"
-#: js/ui/components/networkAgent.js:216
+#: js/ui/components/networkAgent.js:215
msgid "Key"
msgstr "Schlüssel"
-#: 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"
msgstr "Passwort für geheimen Schlüssel"
-#: js/ui/components/networkAgent.js:275
+#: js/ui/components/networkAgent.js:274
msgid "Identity"
msgstr "Identität"
-#: js/ui/components/networkAgent.js:289
+#: js/ui/components/networkAgent.js:288
msgid "Service"
msgstr "Dienst"
-#: 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
msgid "Authentication required"
msgstr "Anmeldung erforderlich"
-#: 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
msgid ""
"Passwords or encryption keys are required to access the wireless network "
@@ -1096,31 +1084,31 @@ msgstr ""
"Passwörter oder Schlüssel sind erforderlich, um auf das Drahtlosnetzwerk "
"»%s« zuzugreifen."
-#: 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"
msgstr "Kabelgebundene 802.1X-Anmeldung"
-#: js/ui/components/networkAgent.js:325
+#: js/ui/components/networkAgent.js:324
msgid "Network name"
msgstr "Netzwerkname"
-#: 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"
msgstr "DSL-Anmeldung"
-#: 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"
msgstr "PIN-Code ist erforderlich"
-#: 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"
msgstr "Für das mobile Breitbandgerät wird ein PIN-Code benötigt"
-#: js/ui/components/networkAgent.js:339
+#: js/ui/components/networkAgent.js:338
msgid "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:705
#, javascript-format
@@ -1413,24 +1401,24 @@ msgstr "%s (Entfernt)"
msgid "%s (console)"
msgstr "%s (Konsole)"
-#: js/ui/extensionDownloader.js:234
+#: js/ui/extensionDownloader.js:232
msgid "Install"
msgstr "Installieren"
-#: js/ui/extensionDownloader.js:240
+#: js/ui/extensionDownloader.js:238
msgid "Install Extension"
msgstr "Erweiterung installieren"
-#: js/ui/extensionDownloader.js:241
+#: js/ui/extensionDownloader.js:239
#, javascript-format
msgid "Download and install “%s” from extensions.gnome.org?"
msgstr "»%s« von extensions.gnome.org herunterladen und installieren?"
-#: js/ui/extensionSystem.js:253
+#: js/ui/extensionSystem.js:252
msgid "Extension Updates Available"
msgstr "Aktualisierungen für Erweiterungen verfügbar"
-#: js/ui/extensionSystem.js:254
+#: js/ui/extensionSystem.js:253
msgid "Extension updates are ready to be installed."
msgstr "Aktualisierungen für Erweiterungen stehen bereit zur Installation."
@@ -1527,7 +1515,7 @@ msgstr "Ausschalten"
msgid "Leave Off"
msgstr "Ausgeschaltet lassen"
-#: js/ui/keyboard.js:227
+#: js/ui/keyboard.js:226
msgid "Region & Language Settings"
msgstr "Regions- und Spracheinstellungen"
@@ -1580,11 +1568,11 @@ msgstr "Quelle zeigen"
msgid "Web Page"
msgstr "Webseite"
-#: js/ui/main.js:294
+#: js/ui/main.js:290
msgid "Logged in as a privileged user"
msgstr "Als privilegierter Benutzer angemeldet"
-#: js/ui/main.js:295
+#: js/ui/main.js:291
msgid ""
"Running a session as a privileged user should be avoided for security "
"reasons. If possible, you should log in as a normal user."
@@ -1593,11 +1581,11 @@ msgstr ""
"Sicherheitsgründen unterlassen werden. Falls möglich, melden Sie sich bitte "
"als normaler Benutzer an."
-#: js/ui/main.js:344
+#: js/ui/main.js:340
msgid "Screen Lock disabled"
msgstr "Bildschirmsperre deaktiviert"
-#: js/ui/main.js:345
+#: js/ui/main.js:341
msgid "Screen Locking requires the GNOME display manager."
msgstr "Die Sperrung des Bildschirms erfordert den GNOME Display-Manager."
@@ -1635,47 +1623,47 @@ msgstr "Rückgängig"
msgid "Overview"
msgstr "Übersicht"
-#: js/ui/padOsd.js:96
+#: js/ui/padOsd.js:95
msgid "New shortcut…"
msgstr "Neue Tastenkombination …"
-#: js/ui/padOsd.js:143
+#: js/ui/padOsd.js:142
msgid "Application defined"
msgstr "Anwendung festgelegt"
-#: js/ui/padOsd.js:144
+#: js/ui/padOsd.js:143
msgid "Show on-screen help"
msgstr "Bildschirmhilfe anzeigen"
-#: js/ui/padOsd.js:145
+#: js/ui/padOsd.js:144
msgid "Switch monitor"
msgstr "Bildschirm wechseln"
-#: js/ui/padOsd.js:146
+#: js/ui/padOsd.js:145
msgid "Assign keystroke"
msgstr "Tastenkombination zuweisen"
-#: js/ui/padOsd.js:212
+#: js/ui/padOsd.js:211
msgid "Done"
msgstr "Erledigt"
-#: js/ui/padOsd.js:718
+#: js/ui/padOsd.js:716
msgid "Edit…"
msgstr "Bearbeiten …"
-#: js/ui/padOsd.js:760 js/ui/padOsd.js:877
+#: js/ui/padOsd.js:758 js/ui/padOsd.js:875
msgid "None"
msgstr "Keine"
-#: js/ui/padOsd.js:831
+#: js/ui/padOsd.js:829
msgid "Press a button to configure"
msgstr "Klicken Sie auf einen Knopf zum Einrichten"
-#: js/ui/padOsd.js:832
+#: js/ui/padOsd.js:830
msgid "Press Esc to exit"
msgstr "Drücken Sie Esc zum Abbrechen"
-#: js/ui/padOsd.js:835
+#: js/ui/padOsd.js:833
msgid "Press any key to exit"
msgstr "Drücken Sie eine beliebige Taste zum Beenden"
@@ -1685,12 +1673,12 @@ msgstr "Drücken Sie eine beliebige Taste zum Beenden"
msgid "Activities"
msgstr "Aktivitäten"
-#: js/ui/panel.js:542
+#: js/ui/panel.js:556
msgctxt "System menu in the top bar"
msgid "System"
msgstr "System"
-#: js/ui/panel.js:658
+#: js/ui/panel.js:674
msgid "Top Bar"
msgstr "Obere Leiste"
@@ -1729,7 +1717,7 @@ msgstr "Sperrung fehlgeschlagen"
msgid "Lock was blocked by an application"
msgstr "Sperrung wurde von einer Anwendung blockiert"
-#: js/ui/screenshot.js:141
+#: js/ui/screenshot.js:155
msgid "Screenshot taken"
msgstr "Bildschirmfoto aufgenommen"
@@ -2802,6 +2790,7 @@ msgstr "Es werden eine UUID, ein Name und eine Beschreibung benötigt"
#: subprojects/extensions-tool/src/command-enable.c:46
#: subprojects/extensions-tool/src/command-info.c:50
#: subprojects/extensions-tool/src/command-list.c:64
+#: subprojects/extensions-tool/src/main.c:146
msgid "Failed to connect to GNOME Shell\n"
msgstr "Fehler beim Verbinden zur GNOME Shell\n"
@@ -2818,7 +2807,7 @@ msgstr "Eine Erweiterung deaktivieren"
#: subprojects/extensions-tool/src/command-disable.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-prefs.c:105
#: subprojects/extensions-tool/src/command-reset.c:76
#: subprojects/extensions-tool/src/command-uninstall.c:104
msgid "No UUID given"
@@ -2827,7 +2816,7 @@ msgstr "Keine UUID angegeben"
#: subprojects/extensions-tool/src/command-disable.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-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"
@@ -2957,7 +2946,14 @@ msgstr "Mehr als ein Quellordner angegeben"
msgid "Extension “%s” doesn't have preferences\n"
msgstr "Erweiterung »%s« hat keine Einstellungen\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 ""
+"Das Öffnen der Einstellungen für die Erweiterung »%s« ist fehlgeschlagen: "
+"%s\n"
+
+#: subprojects/extensions-tool/src/command-prefs.c:87
msgid "Opens extension preferences"
msgstr "Öffnet die Erweiterungseinstellungen"
@@ -2982,10 +2978,6 @@ msgstr "Eine Erweiterung deinstallieren"
msgid "Do not print error messages"
msgstr "Keine Fehlermeldungen ausgeben"
-#: subprojects/extensions-tool/src/main.c:146
-msgid "Failed to connect to GNOME Shell"
-msgstr "Fehler beim Verbinden zur GNOME Shell"
-
#: subprojects/extensions-tool/src/main.c:244
msgid "Path"
msgstr "Pfad"
@@ -3116,6 +3108,19 @@ msgstr[1] "%u Eingänge"
msgid "System Sounds"
msgstr "Systemklänge"
+#~ msgid "Enable introspection API"
+#~ msgstr "Introspection-API aktivieren"
+
+#~ msgid ""
+#~ "Enables a D-Bus API that allows to introspect the application state of "
+#~ "the shell."
+#~ msgstr ""
+#~ "Aktiviert eine D_Bus-API, die Einblicke in den Anwendungsstatus der Shell "
+#~ "gewährt."
+
+#~ msgid "Failed to connect to GNOME Shell"
+#~ msgstr "Fehler beim Verbinden zur GNOME Shell"
+
#~ msgid "Minimize"
#~ msgstr "Minimieren"
diff --git a/po/fa.po b/po/fa.po
index b7de87ada..d53e54f42 100644
--- a/po/fa.po
+++ b/po/fa.po
@@ -9,9 +9,9 @@ msgid ""
msgstr ""
"Project-Id-Version: gnome-shell master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell/issues\n"
-"POT-Creation-Date: 2021-08-21 11:27+0000\n"
-"PO-Revision-Date: 2021-09-03 15:16+0430\n"
-"Last-Translator: Danial Behzadi \n"
+"POT-Creation-Date: 2021-09-09 03:40+0000\n"
+"PO-Revision-Date: 2021-10-21 19:49+0330\n"
+"Last-Translator: eshagh \n"
"Language-Team: Persian <>\n"
"Language: fa\n"
"MIME-Version: 1.0\n"
@@ -27,39 +27,39 @@ msgstr "اجراگرها"
#: data/50-gnome-shell-launchers.xml:10
msgid "Activate favorite application 1"
-msgstr "فعّالسازی برنامهٔ محبوب ۱"
+msgstr "فعّالسازی برنامهٔ مورد علاقهٔ ۱"
#: data/50-gnome-shell-launchers.xml:14
msgid "Activate favorite application 2"
-msgstr "فعّالسازی برنامهٔ محبوب ۲"
+msgstr "فعّالسازی برنامهٔ مورد علاقهٔ ۲"
#: data/50-gnome-shell-launchers.xml:18
msgid "Activate favorite application 3"
-msgstr "فعّالسازی برنامهٔ محبوب ۳"
+msgstr "فعّالسازی برنامهٔ مورد علاقهٔ ۳"
#: data/50-gnome-shell-launchers.xml:22
msgid "Activate favorite application 4"
-msgstr "فعّالسازی برنامهٔ محبوب ۴"
+msgstr "فعّالسازی برنامهٔ مورد علاقهٔ ۴"
#: data/50-gnome-shell-launchers.xml:26
msgid "Activate favorite application 5"
-msgstr "فعّالسازی برنامهٔ محبوب ۵"
+msgstr "فعّالسازی برنامهٔ مورد علاقهٔ ۵"
#: data/50-gnome-shell-launchers.xml:30
msgid "Activate favorite application 6"
-msgstr "فعّالسازی برنامهٔ محبوب ۶"
+msgstr "فعّالسازی برنامهٔ مورد علاقهٔ ۶"
#: data/50-gnome-shell-launchers.xml:34
msgid "Activate favorite application 7"
-msgstr "فعّالسازی برنامهٔ محبوب ۷"
+msgstr "فعّالسازی برنامهٔ مورد علاقهٔ ۷"
#: data/50-gnome-shell-launchers.xml:38
msgid "Activate favorite application 8"
-msgstr "فعّالسازی برنامهٔ محبوب ۸"
+msgstr "فعّالسازی برنامهٔ مورد علاقهٔ ۸"
#: data/50-gnome-shell-launchers.xml:42
msgid "Activate favorite application 9"
-msgstr "فعّالسازی برنامهٔ محبوب ۹"
+msgstr "فعّالسازی برنامهٔ مورد علاقهٔ ۹"
#: data/50-gnome-shell-system.xml:6
msgid "System"
@@ -71,11 +71,11 @@ msgstr "نمایش فهرست آگاهیها"
#: data/50-gnome-shell-system.xml:12
msgid "Focus the active notification"
-msgstr "تمرکز روی آگاهی فعال"
+msgstr "تمرکز روی آگاهی فعّال"
#: data/50-gnome-shell-system.xml:15
msgid "Show the overview"
-msgstr "نمایش نمای کلی"
+msgstr "نمایش نمای کلّی"
#: data/50-gnome-shell-system.xml:18
msgid "Show all applications"
@@ -98,10 +98,8 @@ msgid "Enable internal tools useful for developers and testers from Alt-F2"
msgstr "به کار انداختن ابزارهای داخلی مفید برای توسعهدهندگان و آزمونگران از 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 ""
-"اجازه دسترسی به ابزارهای اشکالزدا و پایشگر داخلی با استفاده از محاورهٔ Alt-F2."
+msgid "Allows access to internal debugging and monitoring tools using the Alt-F2 dialog."
+msgstr "اجازه دسترسی به ابزارهای اشکالزدا و پایشگر داخلی با استفاده از محاورهٔ Alt-F2."
#: data/org.gnome.shell.gschema.xml.in:16
msgid "UUIDs of extensions to enable"
@@ -109,15 +107,13 @@ msgstr "شناسههای یکتای افزونهها برای به کار
#: data/org.gnome.shell.gschema.xml.in:17
msgid ""
-"GNOME Shell extensions have a UUID property; this key lists extensions which "
-"should be loaded. Any extension that wants to be loaded needs to be in this list. "
-"You can also manipulate this list with the EnableExtension and DisableExtension D-"
-"Bus methods on org.gnome.Shell."
+"GNOME Shell extensions have a UUID property; this key lists extensions which should be loaded. Any extension that "
+"wants to be loaded needs to be in this list. You can also manipulate this list with the EnableExtension and "
+"DisableExtension D-Bus methods on org.gnome.Shell."
msgstr ""
-"افزونههای گنومشل مشخصهٔ UUID دارند؛ این کلید، افزونههایی که باید بار شوند را فهرست "
-"میکند. هر افزونهای که میخواهد بار شود، باید در این فهرست باشد. شما همچنین "
-"میتوانید این فهرست را از طریق EnableExtension و DisableExtension (روشهای D-Bus) "
-"در org.gnome.Shell نیز بسازید."
+"افزونههای گنومشل مشخصهٔ UUID دارند؛ این کلید، افزونههایی که باید بار شوند را فهرست میکند. هر افزونهای که میخواهد بار "
+"شود، باید در این فهرست باشد. شما همچنین میتوانید این فهرست را از طریق EnableExtension و DisableExtension (روشهای D-"
+"Bus) در org.gnome.Shell نیز بسازید."
#: data/org.gnome.shell.gschema.xml.in:26
msgid "UUIDs of extensions to force disabling"
@@ -125,28 +121,21 @@ msgstr "شناسههای یکتای افزونهها برای از کار
#: data/org.gnome.shell.gschema.xml.in:27
msgid ""
-"GNOME Shell extensions have a UUID property; this key lists extensions which "
-"should be disabled, even if loaded as part of the current mode. You can also "
-"manipulate this list with the EnableExtension and DisableExtension D-Bus methods "
-"on org.gnome.Shell. This key takes precedence over the “enabled-extensions” "
-"setting."
+"GNOME Shell extensions have a UUID property; this key lists extensions which should be disabled, even if loaded as "
+"part of the current mode. You can also manipulate this list with the EnableExtension and DisableExtension D-Bus "
+"methods on org.gnome.Shell. This key takes precedence over the “enabled-extensions” setting."
msgstr ""
-"افزونههای پوستهٔ گنوم شل شناسهای یکتا دارند؛ این کلید، افزونههایی که باید غیرفعّال "
-"شوند را فهرست میکند، حتا اگر به عنوان بخشی از حالت فعلی بار شده باشند. میتوانید "
-"این فهرست را از طریق روشهای دیباس EnableExtension و DisableExtension در org.gnome."
-"Shell نیز تغییر دهید."
+"افزونههای پوستهٔ گنوم شل شناسهای یکتا دارند؛ این کلید، افزونههایی که باید غیرفعّال شوند را فهرست میکند، حتا اگر به عنوان "
+"بخشی از حالت فعلی بار شده باشند. میتوانید این فهرست را از طریق روشهای دیباس EnableExtension و DisableExtension در org."
+"gnome.Shell نیز تغییر دهید."
#: data/org.gnome.shell.gschema.xml.in:37
msgid "Disable user extensions"
msgstr "از کار انداختن افزونههای کاربر"
#: data/org.gnome.shell.gschema.xml.in:38
-msgid ""
-"Disable all extensions the user has enabled without affecting the “enabled-"
-"extension” setting."
-msgstr ""
-"از کار انداختن تمام افزونههایی که کاربر به کار انداخته، بدون اثر روی تنظیمات "
-"«افزونهٔ فعّال»."
+msgid "Disable all extensions the user has enabled without affecting the “enabled-extension” setting."
+msgstr "از کار انداختن تمام افزونههایی که کاربر به کار انداخته، بدون اثر روی تنظیمات «افزونهٔ فعّال»."
#: data/org.gnome.shell.gschema.xml.in:45
msgid "Disables the validation of extension version compatibility"
@@ -154,23 +143,19 @@ msgstr "از کار انداختن بررسی سازگاری نسخهٔ افزو
#: data/org.gnome.shell.gschema.xml.in:46
msgid ""
-"GNOME Shell will only load extensions that claim to support the current running "
-"version. Enabling this option will disable this check and try to load all "
-"extensions regardless of the versions they claim to support."
+"GNOME Shell will only load extensions that claim to support the current running version. Enabling this option will "
+"disable this check and try to load all extensions regardless of the versions they claim to support."
msgstr ""
-"پوستهٔ گنوم تنها نگارشهایی از افزونهها را که ادّعا میکنند از نگارش در حال اجرا "
-"پشتیبانی میکند، بار میکند. به کار اندازی این گزینه، بررسی این مورد را از کار "
-"انداخته و سعی میکند تمام افزونهها، بدون درنظر گرفتن سازگاری آنها بار شوند."
+"پوستهٔ گنوم تنها نگارشهایی از افزونهها را که ادّعا میکنند از نگارش درحال اجرا پشتیبانی میکند، بار میکند. به کار اندازی "
+"این گزینه، بررسی این مورد را از کار انداخته و سعی میکند تمام افزونهها، بدون درنظر گرفتن سازگاری آنها بار شوند."
#: data/org.gnome.shell.gschema.xml.in:54
msgid "List of desktop file IDs for favorite applications"
-msgstr "فهرست شناسههای پروندهٔ میرکار برای برنامههای برگزیده"
+msgstr "فهرست شناسههای پروندهٔ میزکار برای برنامههای مورد علاقه"
#: data/org.gnome.shell.gschema.xml.in:55
-msgid ""
-"The applications corresponding to these identifiers will be displayed in the "
-"favorites area."
-msgstr "برنامههای مشابه این شناسهها در قسمت مورد پسندها نمایش داده میشود."
+msgid "The applications corresponding to these identifiers will be displayed in the favorites area."
+msgstr "برنامههای مشابه این شناسهها در قسمت مورد علاقهها نمایش داده میشود."
#: data/org.gnome.shell.gschema.xml.in:62
msgid "History for command (Alt-F2) dialog"
@@ -179,48 +164,41 @@ msgstr "تاریخچهٔ فرمان برای محاورهٔ (Alt-F2)"
#. Translators: looking glass is a debugger and inspector tool, see https://wiki.gnome.org/Projects/GnomeShell/LookingGlass
#: data/org.gnome.shell.gschema.xml.in:67
msgid "History for the looking glass dialog"
-msgstr "تاریخچه برای محاورهٔ آیینه"
+msgstr "تاریخچه برای محاورهٔ آینه"
#: data/org.gnome.shell.gschema.xml.in:71
msgid "Always show the “Log out” menu item in the user menu."
msgstr "نمایش همیشگی «خروج» در فهرست کاربر."
#: data/org.gnome.shell.gschema.xml.in:72
-msgid ""
-"This key overrides the automatic hiding of the “Log out” menu item in single-"
-"user, single-session situations."
-msgstr ""
-"این کلید، نهفتن خودکار «خروج» در فهرست را در حالتهای تککاربر، تکنشست بازنویسی "
-"میکند."
+msgid "This key overrides the automatic hiding of the “Log out” menu item in single-user, single-session situations."
+msgstr "این کلید، نهفتن خودکار «خروج» در فهرست را در حالتهای تککاربر، تکنشست بازنویسی میکند."
#: data/org.gnome.shell.gschema.xml.in:79
msgid "Whether to remember password for mounting encrypted or remote filesystems"
-msgstr ""
-"اینکه آیا گذرواژه برای سوارکردن سامانههای پروندهٔ رمزنگاری شده و یا دوردست بهخاطر "
-"سپرده شود یا خیر"
+msgstr "اینکه آیا گذرواژه برای سوارکردن سامانههای پروندهٔ رمزنگاری شده و یا دوردست بهخاطر سپرده شود یا خیر"
#: data/org.gnome.shell.gschema.xml.in:80
msgid ""
-"The shell will request a password when an encrypted device or a remote filesystem "
-"is mounted. If the password can be saved for future use a “Remember Password” "
-"checkbox will be present. This key sets the default state of the checkbox."
+"The shell will request a password when an encrypted device or a remote filesystem is mounted. If the password can be "
+"saved for future use a “Remember Password” checkbox will be present. This key sets the default state of the checkbox."
msgstr ""
-"هنگامی که دستگاهی رمزنگاری شده یا سامانهپروندهای دوردست سوار میشود، پوسته درخواست "
-"گذرواژه میکند. اگر گذرواژه را بتوان برای استفادهٔ آینده ذخیره کرد، گزینهٔ «بهخاطر "
-"سپردن گذرواژه» موجود خواهد بود. این کلید، حالت پیشگزیدهٔ این گزینه را تنظیم میکند."
+"هنگامی که دستگاهی رمزنگاری شده یا سامانهپروندهای دوردست سوار میشود، پوسته درخواست گذرواژه میکند. اگر گذرواژه را بتوان "
+"برای استفادهٔ آینده ذخیره کرد، گزینهٔ «بهخاطر سپردن گذرواژه» موجود خواهد بود. این کلید، حالت پیشگزیدهٔ این گزینه را تنظیم "
+"میکند."
#: data/org.gnome.shell.gschema.xml.in:89
msgid "Whether the default Bluetooth adapter had set up devices associated to it"
-msgstr "اینکه آداپتور بلوتوث پیشفرض دستگاههایی متصل به خود دارد یا خیر"
+msgstr "اینکه آداپتور بلوتوث پیشگزیده دستگاههایی متّصل به خود دارد یا خیر"
#: data/org.gnome.shell.gschema.xml.in:90
msgid ""
-"The shell will only show a Bluetooth menu item if a Bluetooth adapter is powered, "
-"or if there were devices set up associated with the default adapter. This will be "
-"reset if the default adapter is ever seen not to have devices associated to it."
+"The shell will only show a Bluetooth menu item if a Bluetooth adapter is powered, or if there were devices set up "
+"associated with the default adapter. This will be reset if the default adapter is ever seen not to have devices "
+"associated to it."
msgstr ""
-"شل تنها زمانی فهرست بلوتوث را نمایش میدهد که آداپتور بلوتوث روشن باشد، یا "
-"دستگاههایی به گونهای تنظیم شده باشند که به آداپتور پیشفرض متصل شوند."
+"پوسته تنها زمانی فهرست بلوتوث را نمایش میدهد که آداپتور بلوتوث روشن باشد، یا دستگاههایی به گونهای تنظیم شده باشند که "
+"به آداپتور پیشگزیده متّصل شوند."
#: data/org.gnome.shell.gschema.xml.in:99
msgid "The last version the “Welcome to GNOME” dialog was shown for"
@@ -228,233 +206,210 @@ msgstr "آخرین نگارش گفتوگوی «به گنوم خوش آمدی
#: data/org.gnome.shell.gschema.xml.in:100
msgid ""
-"This key determines for which version the “Welcome to GNOME” dialog was last "
-"shown. An empty string represents the oldest possible version, and a huge number "
-"will represent versions that do not exist yet. This huge number can be used to "
-"effectively disable the dialog."
+"This key determines for which version the “Welcome to GNOME” dialog was last shown. An empty string represents the "
+"oldest possible version, and a huge number will represent versions that do not exist yet. This huge number can be used "
+"to effectively disable the dialog."
msgstr ""
-"این کلید مشخّص میکند گفتوگوی «به گنوم خوش آمدید»، برای کدام نگارش نشان داده شده. "
-"یک رشتهٔ خالی، نمایانگر قدیمیترین نگارش ممکن بوده و یه عدد بزرگ، نمایانگر "
-"نگارشهاییست که هنوز وجود ندارند. این عدد بزرگ میتواد برای از کار انداختن مؤثّر "
+"این کلید مشخّص میکند گفتوگوی «به گنوم خوش آمدید»، برای کدام نگارش نشان داده شده. یک رشتهٔ خالی، نمایانگر قدیمیترین نگارش "
+"ممکن بوده و یه عدد بزرگ، نمایانگر نگارشهاییست که هنوز وجود ندارند. این عدد بزرگ میتواند برای از کار انداختن مؤثّر "
"گفتوگو استفاده شود."
-#: data/org.gnome.shell.gschema.xml.in:109
-msgid "Enable introspection API"
-msgstr "به کار انداختن رابط برنامهنویسی دروننگر"
-
-#: 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 ""
-"رابط برنامهنویسی دیباسی را به کار میاندازد که اجازهٔ دروننگری وضعیت برنامهٔ پوسته "
-"را میدهد."
-
-#: data/org.gnome.shell.gschema.xml.in:141
+#: data/org.gnome.shell.gschema.xml.in:133
msgid "Layout of the app picker"
msgstr "چینش گزینشگر کاره"
-#: data/org.gnome.shell.gschema.xml.in:142
+#: data/org.gnome.shell.gschema.xml.in:134
msgid ""
-"Layout of the app picker. Each entry in the array is a page. Pages are stored in "
-"the order they appear in GNOME Shell. Each page contains an “application id” → "
-"'data' pair. Currently, the following values are stored as 'data': • “position”: "
-"the position of the application icon in the page"
+"Layout of the app picker. Each entry in the array is a page. Pages are stored in the order they appear in GNOME Shell. "
+"Each page contains an “application id” → 'data' pair. Currently, the following values are stored as 'data': • "
+"“position”: the position of the application icon in the page"
msgstr ""
-"چینش گزینشگر کاره. هر ورودی در آرایه، یک صفحه است. صفحهها به ترتیبی که در پوستهٔ "
-"گنوم ظاهر میشوند، ذخیره میشوند. هر صفحه دارای یک جفت «شناسهٔ برنامه» ← «داده» است. "
-"در حال حاضر، مقدارهای زیر به عنوان «داده»: • «موقعیت»: موقعیت نقشک برنامه در صفحه "
-"ذخیره شدهاند"
+"چینش گزینشگر کاره. هر ورودی در آرایه، یک صفحه است. صفحهها به ترتیبی که در پوستهٔ گنوم ظاهر میشوند، ذخیره میشوند. هر "
+"صفحه دارای یک جفت «شناسهٔ برنامه» ← «داده» است. درحال حاضر، مقدارهای زیر به عنوان «داده»: • «موقعیت»: موقعیت نقشک "
+"برنامه در صفحه ذخیره شدهاند"
-#: data/org.gnome.shell.gschema.xml.in:157
+#: data/org.gnome.shell.gschema.xml.in:149
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."
-msgstr "کلید مقید برای گشودن فهرست برنامه."
+msgstr "ترکیب کلید برای گشودن فهرست برنامه."
-#: data/org.gnome.shell.gschema.xml.in:164 data/org.gnome.shell.gschema.xml.in:171
+#: data/org.gnome.shell.gschema.xml.in:156 data/org.gnome.shell.gschema.xml.in:163
msgid "Keybinding to shift between overview states"
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"
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"
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"
-msgstr "کلید تخصیصیافته برای گشودن نمای «نمایش برنامهها»"
+msgstr "ترکیب کلید برای گشودن نمای «نمایش برنامهها»"
+
+#: data/org.gnome.shell.gschema.xml.in:171
+msgid "Keybinding to open the “Show Applications” view of the Activities Overview."
+msgstr "ترکیب کلید برای گشودن نمای «نمایش برنامهها» در نمای کلّی فعّالیتها."
+
+#: data/org.gnome.shell.gschema.xml.in:178
+msgid "Keybinding to open the overview"
+msgstr "ترکیب کلید برای گشودن نمای کلّی"
#: data/org.gnome.shell.gschema.xml.in:179
-msgid "Keybinding to open the “Show Applications” view of the Activities Overview."
-msgstr "کلید تخصیص یافته برای گشودن نمای «نمایش برنامهها» در نمایکلی فعالیتها."
+msgid "Keybinding to open the Activities Overview."
+msgstr "ترکیب کلید برای گشودن نمای کلّی فعّالیتها."
+
+#: data/org.gnome.shell.gschema.xml.in:185
+msgid "Keybinding to toggle the visibility of the notification list"
+msgstr "ترکیب کلید برای تغییر وضعیت نمایش فهرست پیامها"
#: data/org.gnome.shell.gschema.xml.in:186
-msgid "Keybinding to open the overview"
-msgstr "کلید مقید برای گشودن نمای کلی"
+msgid "Keybinding to toggle the visibility of the notification list."
+msgstr "ترکیب کلید برای تغییر وضعیت نمایش فهرست پیامها."
-#: data/org.gnome.shell.gschema.xml.in:187
-msgid "Keybinding to open the Activities Overview."
-msgstr "کلید مقید برای گشودن نمای «نمایش برنامهها»."
+#: data/org.gnome.shell.gschema.xml.in:192
+msgid "Keybinding to focus the active notification"
+msgstr "ترکیب کلید برای متمرکز کردن آگاهی فعّال"
#: data/org.gnome.shell.gschema.xml.in:193
-msgid "Keybinding to toggle the visibility of the notification list"
-msgstr "کلید مقید برای تغییر وضعیت نمایش فهرست پیامها"
-
-#: data/org.gnome.shell.gschema.xml.in:194
-msgid "Keybinding to toggle the visibility of the notification list."
-msgstr "کلید مقید برای تغییر وضعیت نمایش فهرست پیامها."
-
-#: data/org.gnome.shell.gschema.xml.in:200
-msgid "Keybinding to focus the active notification"
-msgstr "کلید مقید برای متمرکز کردن آگاهی فعال"
-
-#: data/org.gnome.shell.gschema.xml.in:201
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"
msgstr "تعویض به برنامهٔ ۱"
-#: data/org.gnome.shell.gschema.xml.in:211
+#: data/org.gnome.shell.gschema.xml.in:203
msgid "Switch to application 2"
msgstr "تعویض به برنامهٔ ۲"
-#: data/org.gnome.shell.gschema.xml.in:215
+#: data/org.gnome.shell.gschema.xml.in:207
msgid "Switch to application 3"
msgstr "تعویض به برنامهٔ ۳"
-#: data/org.gnome.shell.gschema.xml.in:219
+#: data/org.gnome.shell.gschema.xml.in:211
msgid "Switch to application 4"
msgstr "تعویض به برنامهٔ ۴"
-#: data/org.gnome.shell.gschema.xml.in:223
+#: data/org.gnome.shell.gschema.xml.in:215
msgid "Switch to application 5"
msgstr "تعویض به برنامهٔ ۵"
-#: data/org.gnome.shell.gschema.xml.in:227
+#: data/org.gnome.shell.gschema.xml.in:219
msgid "Switch to application 6"
msgstr "تعویض به برنامهٔ ۶"
-#: data/org.gnome.shell.gschema.xml.in:231
+#: data/org.gnome.shell.gschema.xml.in:223
msgid "Switch to application 7"
msgstr "تعویض به برنامهٔ ۷"
-#: data/org.gnome.shell.gschema.xml.in:235
+#: data/org.gnome.shell.gschema.xml.in:227
msgid "Switch to application 8"
msgstr "تعویض به برنامهٔ ۸"
-#: data/org.gnome.shell.gschema.xml.in:239
+#: data/org.gnome.shell.gschema.xml.in:231
msgid "Switch to application 9"
msgstr "تعویض به برنامهٔ ۹"
-#: data/org.gnome.shell.gschema.xml.in:248 data/org.gnome.shell.gschema.xml.in:275
+#: data/org.gnome.shell.gschema.xml.in:240 data/org.gnome.shell.gschema.xml.in:267
msgid "Limit switcher to current workspace."
msgstr "محدود کردن تعویضگر به فضایکاری فعلی."
-#: data/org.gnome.shell.gschema.xml.in:249
+#: data/org.gnome.shell.gschema.xml.in:241
msgid ""
-"If true, only applications that have windows on the current workspace are shown "
-"in the switcher. Otherwise, all applications are included."
+"If true, only applications that have windows on the current workspace are shown in the switcher. Otherwise, all "
+"applications are included."
msgstr ""
-"اگر درست باشد، تنها برنامههایی که در فضایکاری فعلی پنجره دارند در تعویضگر نشان "
-"داده میشوند. در غیر این صورت، تمام برنامهها نشان داده میشوند."
+"اگر درست باشد، تنها برنامههایی که در فضایکاری فعلی پنجره دارند در تعویضگر نشان داده میشوند. در غیر این صورت، تمام "
+"برنامهها نشان داده میشوند."
-#: data/org.gnome.shell.gschema.xml.in:266
+#: data/org.gnome.shell.gschema.xml.in:258
msgid "The application icon mode."
msgstr "حالت شمایلی برنامه."
-#: data/org.gnome.shell.gschema.xml.in:267
+#: data/org.gnome.shell.gschema.xml.in:259
msgid ""
-"Configures how the windows are shown in the switcher. Valid possibilities are "
-"“thumbnail-only” (shows a thumbnail of the window), “app-icon-only” (shows only "
-"the application icon) or “both”."
+"Configures how the windows are shown in the switcher. Valid possibilities are “thumbnail-only” (shows a thumbnail of "
+"the window), “app-icon-only” (shows only the application icon) or “both”."
msgstr ""
-"نحوه نمایش پنجرهها را در تعویضگر پیکربندی میکند. مقدارهای ممکن عبارتند از "
-"«thumbnail-only» (نمایش تصویر بندانگشتی از پنجره)، «app-icon-only» (نمایش تنها "
-"شمایل برنامه) یا «both» (هر دو)."
+"نحوه نمایش پنجرهها را در تعویضگر پیکربندی میکند. مقدارهای ممکن عبارتند از «thumbnail-only» (نمایش تصویر بندانگشتی از "
+"پنجره)، «app-icon-only» (نمایش تنها شمایل برنامه) یا «both» (هر دو)."
-#: data/org.gnome.shell.gschema.xml.in:276
-msgid ""
-"If true, only windows from the current workspace are shown in the switcher. "
-"Otherwise, all windows are included."
+#: data/org.gnome.shell.gschema.xml.in:268
+msgid "If true, only windows from the current workspace are shown in the switcher. Otherwise, all windows are included."
msgstr ""
-"اگر درست باشد، تنها پنجرههای فضایکاری فعلی در تعویضگر نمایش داده میشود. در غیر "
-"این صورت، تمام پنجرهها اضافه میشوند."
+"اگر درست باشد، تنها پنجرههای فضایکاری فعلی در تعویضگر نمایش داده میشود. در غیر این صورت، تمام پنجرهها اضافه میشوند."
-#: data/org.gnome.shell.gschema.xml.in:286
+#: data/org.gnome.shell.gschema.xml.in:278
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"
-msgstr "موقعیت برای نمایش در ساعتهای جهانی"
+msgstr "مکانها برای نمایش در ساعتهای جهانی"
+
+#: data/org.gnome.shell.gschema.xml.in:289
+msgid "Automatic location"
+msgstr "مکان خودکار"
+
+#: data/org.gnome.shell.gschema.xml.in:290
+msgid "Whether to fetch the current location or not"
+msgstr "این که مکان فعلی گرفته شود یا نه"
#: data/org.gnome.shell.gschema.xml.in:297
-msgid "Automatic location"
-msgstr "موقعیت خودکار"
+msgid "Location"
+msgstr "مکان"
#: data/org.gnome.shell.gschema.xml.in:298
-msgid "Whether to fetch the current location or not"
-msgstr "این که موقعیت فعلی گرفته شود یا نه"
-
-#: data/org.gnome.shell.gschema.xml.in:305
-msgid "Location"
-msgstr "موقعیت"
-
-#: data/org.gnome.shell.gschema.xml.in:306
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"
msgstr "چسباندن محاورهٔ مقید به پنجره والد"
-#: data/org.gnome.shell.gschema.xml.in:319 data/org.gnome.shell.gschema.xml.in:328
-#: data/org.gnome.shell.gschema.xml.in:336 data/org.gnome.shell.gschema.xml.in:344
-#: data/org.gnome.shell.gschema.xml.in:352
+#: 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:336
+#: data/org.gnome.shell.gschema.xml.in:344
msgid "This key overrides the key in org.gnome.mutter when running GNOME Shell."
msgstr "این کلید، کلید org.gnome.mutter را در زمان اجرای گنومشل بازنویسی میکند."
-#: 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"
msgstr "به کار انداختن کاشیکاری گوشتهها هنگام رها کردن پنجرهها در گوشههای صفحه"
-#: data/org.gnome.shell.gschema.xml.in:335
+#: data/org.gnome.shell.gschema.xml.in:327
msgid "Workspaces are managed dynamically"
msgstr "فضاهای کاری بهصورت پویا مدیریت میشوند"
-#: data/org.gnome.shell.gschema.xml.in:343
+#: data/org.gnome.shell.gschema.xml.in:335
msgid "Workspaces only on primary monitor"
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"
-msgstr ""
-"به تاخیر انداختن تغییر تمرکز در حالت موشی تا زمانی که نشانگر از حرکت باز ایستد"
+msgstr "به تأخیر انداختن تغییر تمرکز در حالت موشی تا زمانی که نشانگر از حرکت باز ایستد"
#: data/org.gnome.Shell.PortalHelper.desktop.in.in:3
msgid "Network Login"
msgstr "ورود شبکهای"
-#: js/dbusServices/extensions/ui/extension-prefs-dialog.ui:28
-#: subprojects/extensions-app/data/ui/extensions-window.ui:241
+#: js/dbusServices/extensions/ui/extension-prefs-dialog.ui:28 subprojects/extensions-app/data/ui/extensions-window.ui:241
msgid "Something’s gone wrong"
msgstr "اشتباهی صورت گرفت"
#: js/dbusServices/extensions/ui/extension-prefs-dialog.ui:39
msgid ""
-"We’re very sorry, but there’s been a problem: the settings for this extension "
-"can’t be displayed. We recommend that you report the issue to the extension "
-"authors."
+"We’re very sorry, but there’s been a problem: the settings for this extension can’t be displayed. We recommend that "
+"you report the issue to the extension authors."
msgstr ""
-"متأسّفیم، ولی مشکلی وجود داشت: تنظیمات این افزونه نمیتواند نشان داده شوند. توصیه "
-"میکنیم مشکل را به نگارندهٔ افزونه گزارش دهید."
+"متأسفیم، ولی مشکلی وجود داشت: تنظیمات این افزونه نمیتواند نشان داده شوند. توصیه میکنیم مشکل را به نگارندهٔ افزونه گزارش "
+"دهید."
#: js/dbusServices/extensions/ui/extension-prefs-dialog.ui:64
msgid "Technical Details"
@@ -468,20 +423,17 @@ msgstr "صفحهٔ خانگی"
msgid "Visit extension homepage"
msgstr "مشاهدهٔ صفحهٔ خانگی افزونه"
-#: js/gdm/authPrompt.js:141 js/ui/audioDeviceSelection.js:61
-#: js/ui/components/networkAgent.js:111 js/ui/components/polkitAgent.js:138
-#: js/ui/endSessionDialog.js:438 js/ui/extensionDownloader.js:190
-#: js/ui/shellMountOperation.js:376 js/ui/shellMountOperation.js:386
-#: js/ui/status/network.js:978 subprojects/extensions-app/js/main.js:183
+#: js/gdm/authPrompt.js:141 js/ui/audioDeviceSelection.js:61 js/ui/components/networkAgent.js:110
+#: js/ui/components/polkitAgent.js:138 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
+#: subprojects/extensions-app/js/main.js:183
msgid "Cancel"
msgstr "لغو"
#. Cisco LEAP
-#: js/gdm/authPrompt.js:285 js/ui/components/networkAgent.js:210
-#: js/ui/components/networkAgent.js:226 js/ui/components/networkAgent.js:250
-#: js/ui/components/networkAgent.js:271 js/ui/components/networkAgent.js:291
-#: js/ui/components/networkAgent.js:301 js/ui/components/polkitAgent.js:275
-#: js/ui/shellMountOperation.js:326
+#: js/gdm/authPrompt.js:285 js/ui/components/networkAgent.js:209 js/ui/components/networkAgent.js:225
+#: js/ui/components/networkAgent.js:249 js/ui/components/networkAgent.js:270 js/ui/components/networkAgent.js:290
+#: js/ui/components/networkAgent.js:300 js/ui/components/polkitAgent.js:275 js/ui/shellMountOperation.js:326
msgid "Password"
msgstr "گذرواژه"
@@ -498,13 +450,13 @@ msgstr "فهرست نشده؟"
#: js/gdm/loginDialog.js:921
#, javascript-format
msgid "(e.g., user or %s)"
-msgstr "(برای مثال, کاربر یا %s)"
+msgstr "(برای مثال، کاربر یا %s)"
#. TTLS and PEAP are actually much more complicated, but this complication
#. is not visible here since we only care about phase2 authentication
#. (and don't even care of which one)
-#: js/gdm/loginDialog.js:926 js/ui/components/networkAgent.js:246
-#: js/ui/components/networkAgent.js:269 js/ui/components/networkAgent.js:287
+#: js/gdm/loginDialog.js:926 js/ui/components/networkAgent.js:245 js/ui/components/networkAgent.js:268
+#: js/ui/components/networkAgent.js:286
msgid "Username"
msgstr "نامکاربری"
@@ -514,7 +466,7 @@ msgstr "پنجرهٔ ورود به سامانه"
#: js/gdm/util.js:430
msgid "Authentication error"
-msgstr "خطا تایید هویت"
+msgstr "خطا تأیید هویت"
#. Translators: this message is shown below the password entry field
#. to indicate the user can swipe their finger on the fingerprint reader
@@ -597,7 +549,7 @@ msgstr "تعویض کاربر"
#. Translators: A list of keywords that match the lock orientation action, separated by semicolons
#: js/misc/systemActions.js:132
msgid "lock orientation;unlock orientation;screen;rotation"
-msgstr "lock orientation;screen;rotation;قفل;جهت;چرخش;صفحه"
+msgstr "lock orientation;unlock orientation;screen;rotation;قفل;جهت;چرخش;صفحه"
#: js/misc/systemActions.js:232
msgctxt "search-result"
@@ -609,155 +561,165 @@ msgctxt "search-result"
msgid "Lock Screen Rotation"
msgstr "قفل چرخش صفحه"
-#: js/misc/util.js:120
+#: js/misc/util.js:121
msgid "Command not found"
msgstr "فرمان پیدا نشد"
#. Replace "Error invoking GLib.shell_parse_argv: " with
#. something nicer
-#: js/misc/util.js:156
+#: js/misc/util.js:157
msgid "Could not parse command:"
msgstr "عدم توانایی در تجزیه فرمان:"
-#: js/misc/util.js:164
+#: js/misc/util.js:165
#, javascript-format
msgid "Execution of “%s” failed:"
msgstr "اجرای «%s» شکست خورد:"
-#: js/misc/util.js:181
+#: js/misc/util.js:182
msgid "Just now"
msgstr "همین الآن"
-#: js/misc/util.js:183
+#: js/misc/util.js:184
#, javascript-format
msgid "%d minute ago"
msgid_plural "%d minutes ago"
msgstr[0] "%Id دقیقه پیش"
msgstr[1] "%Id دقیقه پیش"
-#: js/misc/util.js:187
+#: js/misc/util.js:188
#, javascript-format
msgid "%d hour ago"
msgid_plural "%d hours ago"
msgstr[0] "%Id ساعت پیش"
msgstr[1] "%Id ساعت پیش"
-#: js/misc/util.js:191 js/ui/dateMenu.js:162
+#: js/misc/util.js:192 js/ui/dateMenu.js:162
msgid "Yesterday"
msgstr "دیروز"
-#: js/misc/util.js:193
+#: js/misc/util.js:194
#, javascript-format
msgid "%d day ago"
msgid_plural "%d days ago"
msgstr[0] "%Id روز پیش"
msgstr[1] "%Id روز پیش"
-#: js/misc/util.js:197
+#: js/misc/util.js:198
#, javascript-format
msgid "%d week ago"
msgid_plural "%d weeks ago"
msgstr[0] "%Id هفته پیش"
msgstr[1] "%Id هفته پیش"
-#: js/misc/util.js:201
+#: js/misc/util.js:202
#, javascript-format
msgid "%d month ago"
msgid_plural "%d months ago"
msgstr[0] "%Id ماه پیش"
msgstr[1] "%Id ماه پیش"
-#: js/misc/util.js:204
+#: js/misc/util.js:205
#, javascript-format
msgid "%d year ago"
msgid_plural "%d years ago"
msgstr[0] "%Id سال پیش"
msgstr[1] "%Id سال پیش"
+# در این رشته از نویسههای ایزوله چپبهراست استفاده شده است
#. Translators: Time in 24h format
-#: js/misc/util.js:237
+#: js/misc/util.js:238
msgid "%H∶%M"
-msgstr "%OH∶%OM"
+msgstr "%OH∶%OM"
+# در این رشته از نویسههای ایزوله چپبهراست استفاده شده است
#. Translators: this is the word "Yesterday" followed by a
#. time string in 24h format. i.e. "Yesterday, 14:30"
-#: js/misc/util.js:243
+#: js/misc/util.js:244
#, no-c-format
msgid "Yesterday, %H∶%M"
-msgstr "دیروز، %OH∶%OM"
+msgstr "دیروز، %OH∶%OM"
+# در این رشته از نویسههای ایزوله چپبهراست استفاده شده است
#. Translators: this is the week day name followed by a time
#. string in 24h format. i.e. "Monday, 14:30"
-#: js/misc/util.js:249
+#: js/misc/util.js:250
#, no-c-format
msgid "%A, %H∶%M"
-msgstr "%A، %OH∶%OM"
+msgstr "%A، %OH∶%OM"
+# در این رشته از نویسههای ایزوله چپبهراست استفاده شده است
#. Translators: this is the month name and day number
#. followed by a time string in 24h format.
#. i.e. "May 25, 14:30"
-#: js/misc/util.js:255
+#: js/misc/util.js:256
#, no-c-format
msgid "%B %-d, %H∶%M"
-msgstr "%-Od %OB، %OH∶%OM"
+msgstr "%-Od %OB، %OH∶%OM"
+# در این رشته از نویسههای ایزوله چپبهراست استفاده شده است
#. Translators: this is the month name, day number, year
#. number followed by a time string in 24h format.
#. i.e. "May 25 2012, 14:30"
-#: js/misc/util.js:261
+#: js/misc/util.js:262
#, no-c-format
msgid "%B %-d %Y, %H∶%M"
-msgstr "%-Od %OB %Y، %OH∶%OM"
+msgstr "%-Od %OB %OY، %OH∶%OM"
+# در این رشته از نویسههای ایزوله چپبهراست استفاده شده است
#. Show only the time if date is on today
#. eslint-disable-line no-lonely-if
#. Translators: Time in 12h format
-#: js/misc/util.js:266
+#: js/misc/util.js:267
msgid "%l∶%M %p"
-msgstr "%Ol∶%OM %Op"
+msgstr "%Ol∶%OM %Op"
+# در این رشته از نویسههای ایزوله چپبهراست استفاده شده است
#. Translators: this is the word "Yesterday" followed by a
#. time string in 12h format. i.e. "Yesterday, 2:30 pm"
-#: js/misc/util.js:272
+#: js/misc/util.js:273
#, no-c-format
msgid "Yesterday, %l∶%M %p"
-msgstr "دیروز، %Ol∶%OM %p"
+msgstr "دیروز، %Ol∶%OM %p"
+# در این رشته از نویسههای ایزوله چپبهراست استفاده شده است
#. Translators: this is the week day name followed by a time
#. string in 12h format. i.e. "Monday, 2:30 pm"
-#: js/misc/util.js:278
+#: js/misc/util.js:279
#, no-c-format
msgid "%A, %l∶%M %p"
-msgstr "%A، %Ol∶%OM %Op"
+msgstr "%A، %Ol∶%OM %Op"
+# در این رشته از نویسههای ایزوله چپبهراست استفاده شده است
#. Translators: this is the month name and day number
#. followed by a time string in 12h format.
#. i.e. "May 25, 2:30 pm"
-#: js/misc/util.js:284
+#: js/misc/util.js:285
#, no-c-format
msgid "%B %-d, %l∶%M %p"
-msgstr "%-Od %OB، %Ol∶%OM %Op"
+msgstr "%-Od %OB، %Ol∶%OM %Op"
+# در این رشته از نویسههای ایزوله چپبهراست استفاده شده است
#. Translators: this is the month name, day number, year
#. number followed by a time string in 12h format.
#. i.e. "May 25 2012, 2:30 pm"
-#: js/misc/util.js:290
+#: js/misc/util.js:291
#, no-c-format
msgid "%B %-d %Y, %l∶%M %p"
-msgstr "%-Od %OB %Y، %Ol∶%OM %Op"
+msgstr "%-Od %OB %OY، %Ol∶%OM %Op"
#. 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"
-msgstr "ورود نقطهٔ داغ"
+msgstr "ورود به نقطهٔ داغ"
-#: js/portalHelper/main.js:88
+#: js/portalHelper/main.js:95
msgid ""
-"Your connection to this hotspot login is not secure. Passwords or other "
-"information you enter on this page can be viewed by people nearby."
+"Your connection to this hotspot login is not secure. Passwords or other information you enter on this page can be "
+"viewed by people nearby."
msgstr ""
-"اتّصال شما به این ورود نقطهٔ داغ امن نیست. گذرواژهها یا دیگر اطّلاعاتی که در این "
-"صفحه وارد میکنید، میتواند توسّط افراد اطراف دیده شود."
+"اتّصال شما به این ورود نقطهٔ داغ امن نیست. گذرواژهها یا دیگر اطّلاعاتی که در این صفحه وارد میکنید، میتواند توسّط افراد "
+"اطراف دیده شود."
#. No support for non-modal system dialogs, so ignore the option
#. let modal = options['modal'] || true;
@@ -776,12 +738,12 @@ msgstr "پوشهٔ بینام"
#: js/ui/appFavorites.js:164
#, javascript-format
msgid "%s has been added to your favorites."
-msgstr "%s به مورد پسندهایتان اضافه شد."
+msgstr "%s به مورد علاقههایتان اضافه شد."
#: js/ui/appFavorites.js:197
#, javascript-format
msgid "%s has been removed from your favorites."
-msgstr "%s از محبوبهایتان برداشته شد."
+msgstr "%s از مورد علاقههایتان برداشته شد."
#. Translators: This is the heading of a list of open windows
#: js/ui/appMenu.js:46
@@ -802,11 +764,11 @@ msgstr "خروج"
#: js/ui/appMenu.js:163 js/ui/dash.js:245
msgid "Remove from Favorites"
-msgstr "برداشتن از محبوبها"
+msgstr "برداشتن از مورد علاقهها"
#: js/ui/appMenu.js:164
msgid "Add to Favorites"
-msgstr "افزودن به مورد پسندها"
+msgstr "افزودن به مورد علاقهها"
#: js/ui/appMenu.js:181
msgid "Launch using Integrated Graphics Card"
@@ -921,7 +883,7 @@ msgstr "%OB"
#.
#: js/ui/calendar.js:402
msgid "%OB %Y"
-msgstr "%OB %Y"
+msgstr "%OB %OY"
#: js/ui/calendar.js:461
msgid "Previous month"
@@ -960,12 +922,8 @@ msgid "“%s” is not responding."
msgstr "«%s» پاسخگو نیست."
#: js/ui/closeDialog.js:43
-msgid ""
-"You may choose to wait a short while for it to continue or force the application "
-"to quit entirely."
-msgstr ""
-"ممکن است بخواهید مدت کوتاهی منتظر مانده تا ادامه دهد یا برنامه را مجبور به خروج "
-"کامل کنید."
+msgid "You may choose to wait a short while for it to continue or force the application to quit entirely."
+msgstr "ممکن است بخواهید مدت کوتاهی منتظر مانده تا ادامه دهد یا برنامه را مجبور به خروج کامل کنید."
#: js/ui/closeDialog.js:70
msgid "Force Quit"
@@ -996,72 +954,70 @@ msgstr "نگارش نصبشدهٔ udisk از تنظیمات PIM پشتیبا
msgid "Open with %s"
msgstr "گشودن با %s"
-#: js/ui/components/networkAgent.js:93
+#: js/ui/components/networkAgent.js:92
msgid "Alternatively you can connect by pushing the “WPS” button on your router."
msgstr "به عنوان جایگزین میتوانید با فشردن دکمهٔ WPS روی مسیریابتان، وصل شوید."
-#: 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/components/networkAgent.js:104 js/ui/status/network.js:258 js/ui/status/network.js:349
+#: js/ui/status/network.js:981
msgid "Connect"
msgstr "اتّصال"
-#: js/ui/components/networkAgent.js:216
+#: js/ui/components/networkAgent.js:215
msgid "Key"
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"
msgstr "گذرواژهٔ کلید خصوصی"
-#: js/ui/components/networkAgent.js:275
+#: js/ui/components/networkAgent.js:274
msgid "Identity"
msgstr "شناسه"
-#: js/ui/components/networkAgent.js:289
+#: js/ui/components/networkAgent.js:288
msgid "Service"
msgstr "خدمت"
-#: 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:317 js/ui/components/networkAgent.js:345 js/ui/components/networkAgent.js:679
+#: js/ui/components/networkAgent.js:700
msgid "Authentication required"
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
-msgid ""
-"Passwords or encryption keys are required to access the wireless network “%s”."
+msgid "Passwords or encryption keys are required to access the wireless network “%s”."
msgstr "برای دسترسی به شبکهٔ وایفای «%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"
-msgstr "تایید هویت 802.1X سیمی"
+msgstr "تأیید هویت 802.1X سیمی"
-#: js/ui/components/networkAgent.js:325
+#: js/ui/components/networkAgent.js:324
msgid "Network name"
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"
-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"
msgstr "رمز پین لازم است"
-#: 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"
msgstr "رمز پین برای دستگاه پهنباند همراه لازم است"
-#: js/ui/components/networkAgent.js:339
+#: js/ui/components/networkAgent.js:338
msgid "PIN"
msgstr "پین"
-#: 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:705
+#: 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:705
#, javascript-format
msgid "A password is required to connect to “%s”."
-msgstr "برای اتصال به «%s» گذرواژه لازم است."
+msgstr "برای اتّصال به «%s» گذرواژه لازم است."
#: js/ui/components/networkAgent.js:668 js/ui/status/network.js:1789
msgid "Network Manager"
@@ -1091,6 +1047,7 @@ msgstr "تأیید هویت"
msgid "Sorry, that didn’t work. Please try again."
msgstr "متاسفانه اثری نداشت! لطفاً دوباره تلاش کنید."
+# در این رشته از نویسه RLM استفاده شده است
#. Translators: this is the other person changing their old IM name to their new
#. IM name.
#: js/ui/components/telepathyClient.js:822
@@ -1119,7 +1076,7 @@ msgstr "دَش"
#.
#: js/ui/dateMenu.js:79
msgid "%B %-d %Y"
-msgstr "%-Od %OB %Y"
+msgstr "%-Od %OB %OY"
#. Translators: This is the accessible name of the date button shown
#. * below the time in the shell; it should combine the weekday and the
@@ -1127,7 +1084,7 @@ msgstr "%-Od %OB %Y"
#.
#: js/ui/dateMenu.js:86
msgid "%A %B %e %Y"
-msgstr "%A %Od %B %Y"
+msgstr "%A %Od %OB %OY"
#. Translators: Shown on calendar heading when selected day occurs on current year
#: js/ui/dateMenu.js:151
@@ -1139,7 +1096,7 @@ msgstr "%-Od %OB"
#: js/ui/dateMenu.js:154
msgctxt "calendar heading"
msgid "%B %-d %Y"
-msgstr "%-Od %OB %Y"
+msgstr "%-Od %OB %OY"
#: js/ui/dateMenu.js:160
msgid "Today"
@@ -1163,7 +1120,7 @@ msgstr "بدون رویداد"
#: js/ui/dateMenu.js:348
msgid "Add world clocks…"
-msgstr "اقزودن ساعتهای جهانی…"
+msgstr "افزودن ساعتهای جهانی…"
#: js/ui/dateMenu.js:349
msgid "World Clocks"
@@ -1171,7 +1128,7 @@ msgstr "ساعتهای جهانی"
#: js/ui/dateMenu.js:629
msgid "Loading…"
-msgstr "در حال بار کردن…"
+msgstr "درحال بار کردن…"
#: js/ui/dateMenu.js:639
msgid "Go online for weather information"
@@ -1179,7 +1136,7 @@ msgstr "برای اطّلاعات آبوهوا برخط شوید"
#: js/ui/dateMenu.js:641
msgid "Weather information is currently unavailable"
-msgstr "اطّلاعات آبوهو در حال حاضر موجود نیست"
+msgstr "اطّلاعات آبوهو درحال حاضر موجود نیست"
#: js/ui/dateMenu.js:651
msgid "Weather"
@@ -1187,7 +1144,7 @@ msgstr "آبوهوا"
#: js/ui/dateMenu.js:653
msgid "Select weather location…"
-msgstr "گزینش موقعیت آبوهوا…"
+msgstr "گزینش مکان آبوهوا…"
#: js/ui/endSessionDialog.js:39
#, javascript-format
@@ -1204,8 +1161,8 @@ msgstr "خروج"
#, javascript-format
msgid "%s will be logged out automatically in %d second."
msgid_plural "%s will be logged out automatically in %d seconds."
-msgstr[0] "%s به طور خودکار در مدت %Id ثانیه از سامانه خارج خواهد شد."
-msgstr[1] "%s به طور خودکار در مدت %Id ثانیه از سامانه خارج خواهد شد."
+msgstr[0] "%s به طور خودکار پس از %Id ثانیه از سامانه خارج خواهد شد."
+msgstr[1] "%s به طور خودکار پس از %Id ثانیه از سامانه خارج خواهد شد."
#: js/ui/endSessionDialog.js:49
#, javascript-format
@@ -1239,7 +1196,7 @@ msgstr[1] "سامانه پس از %Id ثانیه به طور خودکار خام
#: js/ui/endSessionDialog.js:70 js/ui/endSessionDialog.js:89
msgctxt "checkbox"
msgid "Install pending software updates"
-msgstr "نصب بهروز رسانیهایِ در انتظار"
+msgstr "نصب بهروز رسانیهای در انتظار"
#: js/ui/endSessionDialog.js:74
msgctxt "button"
@@ -1260,8 +1217,8 @@ msgstr "نصب بهروز رسانیها و شروع دوباره"
#, javascript-format
msgid "The system will restart automatically in %d second."
msgid_plural "The system will restart automatically in %d seconds."
-msgstr[0] "سامانه پس از %Id ثانیه به طور خودکار دوبارها راهاندازی میشود."
-msgstr[1] "سامانه پس از %Id ثانیه به طور خودکار دوبارها راهاندازی میشود."
+msgstr[0] "سامانه پس از %Id ثانیه به طور خودکار دوباره راهاندازی میشود."
+msgstr[1] "سامانه پس از %Id ثانیه به طور خودکار دوباره راهاندازی میشود."
#: js/ui/endSessionDialog.js:93
msgctxt "button"
@@ -1276,14 +1233,9 @@ msgstr "راهاندازی دوباره و نصب بهروز رسانی
#: js/ui/endSessionDialog.js:104
#, javascript-format
msgid "The system will automatically restart and install updates in %d second."
-msgid_plural ""
-"The system will automatically restart and install updates in %d seconds."
-msgstr[0] ""
-"سامانه پس از %Id ثانیه به طور خودکار دوبارها راهاندازی میشود و بهروز رسانییها را "
-"نصب میکند."
-msgstr[1] ""
-"سامانه پس از %Id ثانیه به طور خودکار دوبارها راهاندازی میشود و بهروز رسانییها را "
-"نصب میکند."
+msgid_plural "The system will automatically restart and install updates in %d seconds."
+msgstr[0] "سامانه پس از %Id ثانیه به طور خودکار دوباره راهاندازی میشود و بهروز رسانیها را نصب میکند."
+msgstr[1] "سامانه پس از %Id ثانیه به طور خودکار دوبارها راهاندازی میشود و بهروز رسانیها را نصب میکند."
#: js/ui/endSessionDialog.js:111 js/ui/endSessionDialog.js:132
msgctxt "button"
@@ -1311,11 +1263,11 @@ msgstr "راهاندازی دوباره و نصب ارتقا"
#: js/ui/endSessionDialog.js:126
#, javascript-format
msgid ""
-"%s %s will be installed after restart. Upgrade installation can take a long time: "
-"ensure that you have backed up and that the computer is plugged in."
+"%s %s will be installed after restart. Upgrade installation can take a long time: ensure that you have backed up and "
+"that the computer is plugged in."
msgstr ""
-"پس از راهاندازی دوباره %s %s نصب خواهد شد. نصب ارتقا ممکن است زمان زیادی طول "
-"بکشد: مطمئن شوید که پشتیبان دارید و رایانه به برق وصل است."
+"پس از راهاندازی دوباره %s %s نصب خواهد شد. نصب ارتقا ممکن است زمان زیادی طول بکشد: مطمئن شوید که پشتیبان دارید و "
+"رایانه به برق وصل است."
#: js/ui/endSessionDialog.js:284
msgid "Low battery power: please plug in before installing updates."
@@ -1346,24 +1298,24 @@ msgstr "%s (دوردست)"
msgid "%s (console)"
msgstr "%s (پایانه)"
-#: js/ui/extensionDownloader.js:194
+#: js/ui/extensionDownloader.js:232
msgid "Install"
msgstr "نصب"
-#: js/ui/extensionDownloader.js:200
+#: js/ui/extensionDownloader.js:238
msgid "Install Extension"
msgstr "نصب افزونه"
-#: js/ui/extensionDownloader.js:201
+#: js/ui/extensionDownloader.js:239
#, javascript-format
msgid "Download and install “%s” from extensions.gnome.org?"
msgstr "بارگیری و نصب «%s» از extensions.gnome.org؟"
-#: js/ui/extensionSystem.js:253
+#: js/ui/extensionSystem.js:252
msgid "Extension Updates Available"
msgstr "بهروز رسانیهای افزونه موجودند"
-#: js/ui/extensionSystem.js:254
+#: js/ui/extensionSystem.js:253
msgid "Extension updates are ready to be installed."
msgstr "بهروز رسانیهای افزونهها آمادهٔ نصبند."
@@ -1405,11 +1357,10 @@ msgstr "کلیدهای آهسته خاموش شدند"
#: js/ui/kbdA11yDialog.js:34
msgid ""
-"You just held down the Shift key for 8 seconds. This is the shortcut for the Slow "
-"Keys feature, which affects the way your keyboard works."
+"You just held down the Shift key for 8 seconds. This is the shortcut for the Slow Keys feature, which affects the way "
+"your keyboard works."
msgstr ""
-"دکمهٔ تبدیل را ۸ ثانیه نگه داشتید. این میانبری برای ویژگی دکمههای آهسته است که بر "
-"نحوهٔ کار صفحهکلیدتان اثر میگذارد."
+"دکمهٔ تبدیل را ۸ ثانیه نگه داشتید. این میانبری برای ویژگی دکمههای آهسته است که بر نحوهٔ کار صفحهکلیدتان اثر میگذارد."
#: js/ui/kbdA11yDialog.js:40
msgid "Sticky Keys Turned On"
@@ -1421,33 +1372,29 @@ msgstr "کلیدهای چسبان خاموش شدند"
#: js/ui/kbdA11yDialog.js:43
msgid ""
-"You just pressed the Shift key 5 times in a row. This is the shortcut for the "
-"Sticky Keys feature, which affects the way your keyboard works."
+"You just pressed the Shift key 5 times in a row. This is the shortcut for the Sticky Keys feature, which affects the "
+"way your keyboard works."
msgstr ""
-"کلید تبدیل را ۵ بار پشت سر هم زدید. این میانبری برای ویژگی کلیدهای چسبان است که "
-"بر نحوهٔ کار صفحهکلیدتان اثر میگذارد."
+"کلید تبدیل را ۵ بار پشت سر هم زدید. این میانبری برای ویژگی کلیدهای چسبان است که بر نحوهٔ کار صفحهکلیدتان اثر میگذارد."
#: js/ui/kbdA11yDialog.js:45
msgid ""
-"You just pressed two keys at once, or pressed the Shift key 5 times in a row. "
-"This turns off the Sticky Keys feature, which affects the way your keyboard works."
+"You just pressed two keys at once, or pressed the Shift key 5 times in a row. This turns off the Sticky Keys feature, "
+"which affects the way your keyboard works."
msgstr ""
-"دو کلید را همزمان فشرده یا کلید تبدیل را ۵ بار پشت سر هم زدید. این میانبری برای "
-"ویژگی کلیدهای چسبان است که بر نحوهٔ کار صفحهکلیدتان اثر میگذارد."
+"دو کلید را همزمان فشرده یا کلید تبدیل را ۵ بار پشت سر هم زدید. این میانبری برای ویژگی کلیدهای چسبان است که بر نحوهٔ کار "
+"صفحهکلیدتان اثر میگذارد."
#: js/ui/kbdA11yDialog.js:54
msgid "Leave On"
msgstr "روشن گذاشتن"
-#: js/ui/kbdA11yDialog.js:54 js/ui/status/bluetooth.js:156
-#: js/ui/status/network.js:1377
+#: js/ui/kbdA11yDialog.js:54 js/ui/status/bluetooth.js:156 js/ui/status/network.js:1377
msgid "Turn On"
msgstr "روشن کردن"
-#: js/ui/kbdA11yDialog.js:62 js/ui/status/bluetooth.js:156
-#: js/ui/status/network.js:166 js/ui/status/network.js:350
-#: js/ui/status/network.js:1377 js/ui/status/network.js:1489
-#: js/ui/status/nightLight.js:41 js/ui/status/rfkill.js:81
+#: 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:1377 js/ui/status/network.js:1489 js/ui/status/nightLight.js:41 js/ui/status/rfkill.js:81
#: js/ui/status/rfkill.js:110
msgid "Turn Off"
msgstr "خاموش کردن"
@@ -1456,7 +1403,7 @@ msgstr "خاموش کردن"
msgid "Leave Off"
msgstr "خاموش گذاشتن"
-#: js/ui/keyboard.js:227
+#: js/ui/keyboard.js:226
msgid "Region & Language Settings"
msgstr "تنظیمات ناحیه و زبان"
@@ -1498,7 +1445,7 @@ msgstr "قدیمی"
#: js/ui/lookingGlass.js:762
msgid "Downloading"
-msgstr "در حال بارگیری"
+msgstr "درحال بارگیری"
#: js/ui/lookingGlass.js:792
msgid "View Source"
@@ -1508,29 +1455,28 @@ msgstr "نمایش منبع"
msgid "Web Page"
msgstr "صفحهٔ وب"
-#: js/ui/main.js:294
+#: js/ui/main.js:290
msgid "Logged in as a privileged user"
msgstr "واردشده به عنوان کاربری ممتاز"
-#: js/ui/main.js:295
+#: js/ui/main.js:291
msgid ""
-"Running a session as a privileged user should be avoided for security reasons. If "
-"possible, you should log in as a normal user."
+"Running a session as a privileged user should be avoided for security reasons. If possible, you should log in as a "
+"normal user."
msgstr ""
-"به دلایل امنیتی باید از اجرای یک نشست به عنوان کاربری ممتاز خودداری کرد. در صورت "
-"امکان، با کاربری عادی وارد شوید."
+"به دلایل امنیتی باید از اجرای یک نشست به عنوان کاربری ممتاز خودداری کرد. در صورت امکان، با کاربری عادی وارد شوید."
-#: js/ui/main.js:344
+#: js/ui/main.js:340
msgid "Screen Lock disabled"
msgstr "قفل صفحه از کار افتاده"
-#: js/ui/main.js:345
+#: js/ui/main.js:341
msgid "Screen Locking requires the GNOME display manager."
msgstr "قفل صفحه نیاز به مدیر نمایش گنوم دارد."
-#: js/ui/messageTray.js:1440
+#: js/ui/messageTray.js:1443
msgid "System Information"
-msgstr "اطلاعات سامانه"
+msgstr "اطّلاعات سامانه"
#: js/ui/mpris.js:207
msgid "Unknown artist"
@@ -1560,49 +1506,49 @@ msgstr "برگردان"
#. activities. See also note for "Activities" string.
#: js/ui/overview.js:71
msgid "Overview"
-msgstr "نمایکلی"
+msgstr "نمای کلّی"
-#: js/ui/padOsd.js:96
+#: js/ui/padOsd.js:95
msgid "New shortcut…"
msgstr "میانبر جدید…"
-#: js/ui/padOsd.js:143
+#: js/ui/padOsd.js:142
msgid "Application defined"
msgstr "تعریف شده در برنامه"
-#: js/ui/padOsd.js:144
+#: js/ui/padOsd.js:143
msgid "Show on-screen help"
msgstr "نمایش راهنمای روی صفحه"
-#: js/ui/padOsd.js:145
+#: js/ui/padOsd.js:144
msgid "Switch monitor"
msgstr "تعویض نمایشگر"
-#: js/ui/padOsd.js:146
+#: js/ui/padOsd.js:145
msgid "Assign keystroke"
msgstr "تخصیص دنبالهٔ کلید"
-#: js/ui/padOsd.js:212
+#: js/ui/padOsd.js:211
msgid "Done"
msgstr "انجام شد"
-#: js/ui/padOsd.js:718
+#: js/ui/padOsd.js:716
msgid "Edit…"
msgstr "ویرایش…"
-#: js/ui/padOsd.js:760 js/ui/padOsd.js:877
+#: js/ui/padOsd.js:758 js/ui/padOsd.js:875
msgid "None"
msgstr "هیچکدام"
-#: js/ui/padOsd.js:831
+#: js/ui/padOsd.js:829
msgid "Press a button to configure"
msgstr "برای پیکربندی، کلیدی را بزنید"
-#: js/ui/padOsd.js:832
+#: js/ui/padOsd.js:830
msgid "Press Esc to exit"
-msgstr "برای خروج گریز را بزنید"
+msgstr "برای خروج، گریز را بزنید"
-#: js/ui/padOsd.js:835
+#: js/ui/padOsd.js:833
msgid "Press any key to exit"
msgstr "برای خروج، هر کلیدی را بزنید"
@@ -1612,12 +1558,12 @@ msgstr "برای خروج، هر کلیدی را بزنید"
msgid "Activities"
msgstr "فعّالیتها"
-#: js/ui/panel.js:542
+#: js/ui/panel.js:556
msgctxt "System menu in the top bar"
msgid "System"
msgstr "سامانه"
-#: js/ui/panel.js:658
+#: js/ui/panel.js:674
msgid "Top Bar"
msgstr "نوار بالا"
@@ -1627,11 +1573,11 @@ msgstr "اجرای یک فرمان"
#: js/ui/runDialog.js:73
msgid "Press ESC to close"
-msgstr "برای خروج، گریز را بزنید"
+msgstr "برای بستن، گریز را بزنید"
#: js/ui/runDialog.js:238
msgid "Restart is not available on Wayland"
-msgstr "راهاندازی دوباره در Wayland موجود نیست"
+msgstr "راهاندازی دوباره در ویلند موجود نیست"
#: js/ui/runDialog.js:243
msgid "Restarting…"
@@ -1656,7 +1602,7 @@ msgstr "نمیتوان قفل کرد"
msgid "Lock was blocked by an application"
msgstr "قفل توسط یک برنامه مسدود شده بود"
-#: js/ui/screenshot.js:141
+#: js/ui/screenshot.js:155
msgid "Screenshot taken"
msgstr "نماگرفت انجام شد"
@@ -1715,9 +1661,7 @@ msgstr "از پروندههای کلید استفاده میکند"
#: js/ui/shellMountOperation.js:298
#, javascript-format
msgid "To unlock a volume that uses keyfiles, use the %s utility instead."
-msgstr ""
-"برای قفلگشایی حجمی که از پروندههای کلید استفاده میکند، از ابزار %s استفاده "
-"کنید."
+msgstr "برای قفلگشایی حجمی که از پروندههای کلید استفاده میکند، از ابزار %s استفاده کنید."
#: js/ui/shellMountOperation.js:306
msgid "PIM Number"
@@ -1779,7 +1723,7 @@ msgstr "کلیدهای چسبان"
#: js/ui/status/accessibility.js:69
msgid "Slow Keys"
-msgstr "کلیدهای آرام"
+msgstr "کلیدهای آهسته"
#: js/ui/status/accessibility.js:72
msgid "Bounce Keys"
@@ -1855,7 +1799,7 @@ msgstr "نمایش چیدمان صفحهکلید"
#: js/ui/status/location.js:234 js/ui/status/location.js:267
msgid "Location Enabled"
-msgstr "موقعیت به کار افتاده"
+msgstr "مکان به کار افتاده"
#: js/ui/status/location.js:235 js/ui/status/location.js:268
msgid "Disable"
@@ -1867,11 +1811,11 @@ msgstr "تنظیمات محرمانگی"
#: js/ui/status/location.js:266
msgid "Location In Use"
-msgstr "موقعیت در حال استفاده است"
+msgstr "مکان درحال استفاده است"
#: js/ui/status/location.js:270
msgid "Location Disabled"
-msgstr "موقعیت از کار افتاده"
+msgstr "مکان از کار افتاده"
#: js/ui/status/location.js:271
msgid "Enable"
@@ -1879,13 +1823,13 @@ msgstr "به کار انداختن"
#: js/ui/status/location.js:398
msgid "Allow location access"
-msgstr "اجازهٔ دسترسی به موقعیت"
+msgstr "اجازهٔ دسترسی به مکان"
#. Translators: %s is an application name
#: js/ui/status/location.js:400
#, javascript-format
msgid "The app %s wants to access your location"
-msgstr "برنامهٔ %s میخواهد به موقعیتتان دسترسی داشته باشد"
+msgstr "برنامهٔ %s میخواهد به مکانتان دسترسی داشته باشد"
#: js/ui/status/location.js:410
msgid "Location access can be changed at any time from the privacy settings."
@@ -1905,7 +1849,7 @@ msgstr "%s خاموش است"
#: js/ui/status/network.js:458
#, javascript-format
msgid "%s Connected"
-msgstr "%s وصل شده"
+msgstr "%s وصلشده"
#. Translators: this is for network devices that are physically present but are not
#. under NetworkManager's control (and thus cannot be used in the menu);
@@ -1919,19 +1863,19 @@ msgstr "%s مدیریت نشده"
#: js/ui/status/network.js:466
#, javascript-format
msgid "%s Disconnecting"
-msgstr "درحال قطع ارتباط %s"
+msgstr "درحال قطع اتّصال %s"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:473 js/ui/status/network.js:1398
#, javascript-format
msgid "%s Connecting"
-msgstr "درحال اتصال %s"
+msgstr "درحال اتّصال %s"
#. Translators: this is for network connections that require some kind of key or password; %s is a network identifier
#: js/ui/status/network.js:476
#, javascript-format
msgid "%s Requires Authentication"
-msgstr "%s نیاز به تایید هویت دارد"
+msgstr "%s نیاز به تأیید هویت دارد"
#. Translators: this is for devices that require some kind of firmware or kernel
#. module, which is missing; %s is a network identifier
@@ -1951,11 +1895,11 @@ msgstr "%s در دسترس نیست"
#: js/ui/status/network.js:491
#, javascript-format
msgid "%s Connection Failed"
-msgstr "اتصال %s شکست خورد"
+msgstr "اتّصال %s شکست خورد"
#: js/ui/status/network.js:503
msgid "Wired Settings"
-msgstr "تنظیمات اتصال سیمی"
+msgstr "تنظیمات اتّصال سیمی"
#: js/ui/status/network.js:550
msgid "Mobile Broadband Settings"
@@ -2030,13 +1974,13 @@ msgstr "تنظیمات وایفای"
#: js/ui/status/network.js:1394
#, javascript-format
msgid "%s Hotspot Active"
-msgstr "%s نقطهٔ داغ فعال"
+msgstr "%s نقطهٔ داغ فعّال"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:1409
#, javascript-format
msgid "%s Not Connected"
-msgstr "%s متصل نشد"
+msgstr "%s متّصل نشد"
#: js/ui/status/network.js:1506
msgid "connecting…"
@@ -2045,11 +1989,11 @@ msgstr "درحال اتّصال…"
#. Translators: this is for network connections that require some kind of key or password
#: js/ui/status/network.js:1509
msgid "authentication required"
-msgstr "تایید هویت لازم است"
+msgstr "تأیید هویت لازم است"
#: js/ui/status/network.js:1511
msgid "connection failed"
-msgstr "اتصال شکست خورد"
+msgstr "اتّصال شکست خورد"
#: js/ui/status/network.js:1562
msgid "VPN Settings"
@@ -2090,11 +2034,11 @@ msgstr[1] "اتّصال مودم %s"
#: js/ui/status/network.js:1830
msgid "Connection failed"
-msgstr "اتصال شکست خورد"
+msgstr "اتّصال شکست خورد"
#: js/ui/status/network.js:1831
msgid "Activation of network connection failed"
-msgstr "فعاّلسازی اتّصال شبکه شکست خورد"
+msgstr "فعّالسازی اتّصال شبکه شکست خورد"
#: js/ui/status/nightLight.js:63
msgid "Night Light Disabled"
@@ -2106,7 +2050,7 @@ msgstr "نور شب روشن است"
#: js/ui/status/nightLight.js:66
msgid "Resume"
-msgstr "از سر گیری"
+msgstr "از سرگیری"
#: js/ui/status/nightLight.js:67
msgid "Disable Until Tomorrow"
@@ -2130,23 +2074,26 @@ msgstr "درحال شارژ نیست"
msgid "Estimating…"
msgstr "درحال برآورد…"
+# در این رشته از نویسههای ایزوله چپبهراست استفاده شده است
#. Translators: this is : Remaining ()
#: js/ui/status/power.js:91
#, javascript-format
msgid "%d∶%02d Remaining (%d %%)"
-msgstr "%Id∶%I02d باقیمانده (%Id٪)"
+msgstr "%Id∶%I02d باقیمانده (%Id٪)"
+# در این رشته از نویسههای ایزوله چپبهراست استفاده شده است
#. Translators: this is : Until Full ()
#: js/ui/status/power.js:97
#, javascript-format
msgid "%d∶%02d Until Full (%d %%)"
-msgstr "%Id∶%I02d تا شارژ کامل (%Id٪)"
+msgstr "%Id∶%I02d تا شارژ کامل (%Id٪)"
+# در این ترجمه از نویسههای ایزوله چپبهراست استفاده شده است
#. The icon label
#: js/ui/status/power.js:145
#, javascript-format
msgid "%d %%"
-msgstr "%Id٪"
+msgstr "%Id٪"
#: js/ui/status/powerProfiles.js:19
msgctxt "Power profile"
@@ -2215,12 +2162,8 @@ msgid "Unknown Thunderbolt device"
msgstr "افزارهٔ تاندربولت ناشناخته"
#: js/ui/status/thunderbolt.js:325
-msgid ""
-"New device has been detected while you were away. Please disconnect and reconnect "
-"the device to start using it."
-msgstr ""
-"هنگام نبودنتان، افزارهٔ جدید شناسایی شد. لطفاً برای شروع به استفاده از آن، قطعش "
-"کرده و دوباره وصل کنید."
+msgid "New device has been detected while you were away. Please disconnect and reconnect the device to start using it."
+msgstr "هنگام نبودنتان، افزارهٔ جدید شناسایی شد. لطفاً برای شروع به استفاده از آن، قطعش کرده و دوباره وصل کنید."
#: js/ui/status/thunderbolt.js:328
msgid "Unauthorized Thunderbolt device"
@@ -2241,11 +2184,11 @@ msgstr "نمیتوان افزارهٔ تاندربولت را تأیید هو
#: js/ui/status/volume.js:160
msgid "Volume changed"
-msgstr "بلندی صدا تغییر کرد"
+msgstr "حجم صدا تغییر کرد"
#: js/ui/status/volume.js:222
msgid "Volume"
-msgstr "بلندی صدا"
+msgstr "حجم صدا"
#. Translators: this is for display mirroring i.e. cloning.
#. * Try to keep it under around 15 characters.
@@ -2322,7 +2265,7 @@ msgstr "«%s» آماده است"
#. Translators: This string should be shorter than 30 characters
#: js/ui/windowManager.js:63
msgid "Keep these display settings?"
-msgstr "نگه داشتن تنظیمات تصویر؟"
+msgstr "تنظیمات نمایشگر نگهداشته شود؟"
#. Translators: this and the following message should be limited in length,
#. to avoid ellipsizing the labels.
@@ -2431,7 +2374,7 @@ msgstr "حالت استفاده شده توسط GDM برای صفحهٔ ورود
#: src/main.c:431
msgid "Use a specific mode, e.g. “gdm” for login screen"
-msgstr "استفاده از یک حالت مشخص، مثلاً gdm برای صفحهٔ ورود"
+msgstr "استفاده از یک حالت مشخص، مثلاً «gdm» برای صفحهٔ ورود"
#: src/main.c:437
msgid "List possible modes"
@@ -2457,11 +2400,10 @@ msgstr "گذرواژه نمیتواند خالی باشد"
#: src/shell-polkit-authentication-agent.c:344
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/org.gnome.Extensions.desktop.in.in:4
-#: subprojects/extensions-app/js/main.js:217
+#: subprojects/extensions-app/data/org.gnome.Extensions.desktop.in.in:4 subprojects/extensions-app/js/main.js:217
#: subprojects/extensions-app/data/ui/extensions-window.ui:56
msgid "Extensions"
msgstr "افزونهها"
@@ -2477,18 +2419,15 @@ msgstr "پروژهٔ گنوم"
#: subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in:36
msgid ""
-"GNOME Extensions handles updating extensions, configuring extension preferences "
-"and removing or disabling unwanted extensions."
-msgstr ""
-"افزونههای گنوم بهروز رسانی، پیکربندی، برداشتن یا از کار انداختن افزونهها را "
-"مدیریت میکند."
+"GNOME Extensions handles updating extensions, configuring extension preferences and removing or disabling unwanted "
+"extensions."
+msgstr "افزونههای گنوم؛ بهروز رسانی، پیکربندی، برداشتن یا از کار انداختن افزونهها را مدیریت میکند."
#: subprojects/extensions-app/data/org.gnome.Extensions.desktop.in.in:7
msgid "Configure GNOME Shell Extensions"
msgstr "پیکربندی افزونههای پوستهٔ گنوم"
-#: subprojects/extensions-app/js/main.js:142
-#: subprojects/extensions-app/js/main.js:152
+#: subprojects/extensions-app/js/main.js:142 subprojects/extensions-app/js/main.js:152
msgid "No Matches"
msgstr "بدون مطابقت"
@@ -2498,9 +2437,7 @@ msgid "Remove “%s”?"
msgstr "برداشتن «%s»؟"
#: subprojects/extensions-app/js/main.js:180
-msgid ""
-"If you remove the extension, you need to return to download it if you want to "
-"enable it again"
+msgid "If you remove the extension, you need to return to download it if you want to enable it again"
msgstr "اگر افزونه را بردارید، باید برای به کار انداختن دوبارهاش، بارگیریش کنید"
#: subprojects/extensions-app/js/main.js:184
@@ -2509,7 +2446,9 @@ msgstr "برداشتن"
#: subprojects/extensions-app/js/main.js:216
msgid "translator-credits"
-msgstr "دانیال بهزادی "
+msgstr ""
+"دانیال بهزادی \n"
+"سید اسحاق مقیم شهیدانی "
#: subprojects/extensions-app/js/main.js:344
#, javascript-format
@@ -2526,14 +2465,12 @@ msgstr "افزونه با نگارش جاری گنوم ناسازگار است"
msgid "The extension had an error"
msgstr "افزونه خطایی داشت"
-#: subprojects/extensions-app/data/ui/extension-row.ui:83
-#: subprojects/extensions-tool/src/command-create.c:322
+#: subprojects/extensions-app/data/ui/extension-row.ui:83 subprojects/extensions-tool/src/command-create.c:322
#: subprojects/extensions-tool/src/main.c:241
msgid "Description"
msgstr "شرح"
-#: subprojects/extensions-app/data/ui/extension-row.ui:104
-#: subprojects/extensions-tool/src/main.c:253
+#: subprojects/extensions-app/data/ui/extension-row.ui:104 subprojects/extensions-tool/src/main.c:253
msgid "Version"
msgstr "نگارش"
@@ -2558,12 +2495,8 @@ msgid "About Extensions"
msgstr "دربارهٔ افزونهها"
#: subprojects/extensions-app/data/ui/extensions-window.ui:27
-msgid ""
-"To find and add extensions, visit extensions.gnome.org."
-msgstr ""
-"برای یافتن و افزودن افزونهها، پایگاه "
-"افزونههای گنوم را ببینید."
+msgid "To find and add extensions, visit extensions.gnome.org."
+msgstr "برای یافتن و افزودن افزونهها، پایگاه افزونههای گنوم را ببینید."
#: subprojects/extensions-app/data/ui/extensions-window.ui:34
msgid "Warning"
@@ -2571,11 +2504,11 @@ msgstr "هشدار"
#: subprojects/extensions-app/data/ui/extensions-window.ui:44
msgid ""
-"Extensions can cause system issues, including performance problems. If you "
-"encounter problems with your system, it is recommended to disable all extensions."
+"Extensions can cause system issues, including performance problems. If you encounter problems with your system, it is "
+"recommended to disable all extensions."
msgstr ""
-"افزونهها میتوانند موجب اشکالهای سامانهای مانند مشکلات اجرایی شوند. اگر با مشکلاتی "
-"روی سامانهتان مواجه شدید، پیشنهاد ميشود تمام افزونهها را از کار بندازید."
+"افزونهها میتوانند موجب اشکالهای سامانهای مانند مشکلات اجرایی شوند. اگر با مشکلاتی روی سامانهتان مواجه شدید، پیشنهاد "
+"میشود تمام افزونهها را از کار بندازید."
#: subprojects/extensions-app/data/ui/extensions-window.ui:150
msgid "Manually Installed"
@@ -2591,11 +2524,9 @@ msgstr "هیچ افزونهای نصب نشده"
#: subprojects/extensions-app/data/ui/extensions-window.ui:252
msgid ""
-"We’re very sorry, but it was not possible to get the list of installed "
-"extensions. Make sure you are logged into GNOME and try again."
-msgstr ""
-"متأسّفیم، ولی امکان گرفتن فهرست افزونههای نصبشده نبود. مطمئن شوید که به گنوم وارد "
-"شدهاید و دوباره تلاش کنید."
+"We’re very sorry, but it was not possible to get the list of installed extensions. Make sure you are logged into GNOME "
+"and try again."
+msgstr "متأسفیم، ولی امکان گرفتن فهرست افزونههای نصبشده نبود. مطمئن شوید که به گنوم وارد شدهاید و دوباره تلاش کنید."
#: subprojects/extensions-app/data/ui/extensions-window.ui:288
msgid "Extension Updates Ready"
@@ -2620,8 +2551,7 @@ msgstr ""
"نام باید رشتهای بسیار کوتاه و توصیفی باشد.\n"
"مانند: %s"
-#: subprojects/extensions-tool/src/command-create.c:302
-#: subprojects/extensions-tool/src/main.c:238
+#: subprojects/extensions-tool/src/command-create.c:302 subprojects/extensions-tool/src/main.c:238
msgid "Name"
msgstr "نام"
@@ -2637,8 +2567,7 @@ msgstr ""
#: subprojects/extensions-tool/src/command-create.c:336
msgid ""
"UUID is a globally-unique identifier for your extension.\n"
-"This should be in the format of an email address (clicktofocus@janedoe.example."
-"com)\n"
+"This should be in the format of an email address (clicktofocus@janedoe.example.com)\n"
msgstr ""
"شناسهٔ یکتا، شناسهٔ بیتکراری برای افزونهتان است.\n"
"این شناسه باید در قالب یک نشانی رایانامه باشد (clicktofocus@janedoe.example.com)\n"
@@ -2687,8 +2616,7 @@ msgstr "اطّلاعات افزونه را به صورت تعاملی وارد
msgid "Create a new extension"
msgstr "ایجاد افزونهای جدید"
-#: subprojects/extensions-tool/src/command-create.c:476
-#: subprojects/extensions-tool/src/command-list.c:172
+#: subprojects/extensions-tool/src/command-create.c:476 subprojects/extensions-tool/src/command-list.c:172
msgid "Unknown arguments"
msgstr "آرگومان ناشناخته"
@@ -2696,38 +2624,29 @@ msgstr "آرگومان ناشناخته"
msgid "UUID, name and description are required"
msgstr "شناسهٔ یکتا، نام و شرح مورد نیازند"
-#: subprojects/extensions-tool/src/command-disable.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-disable.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
msgid "Failed to connect to GNOME Shell\n"
msgstr "شکست در وصل شدن به پوستهٔ گنوم\n"
-#: subprojects/extensions-tool/src/command-disable.c:53
-#: subprojects/extensions-tool/src/command-enable.c:53
+#: subprojects/extensions-tool/src/command-disable.c:53 subprojects/extensions-tool/src/command-enable.c:53
#, c-format
msgid "Extension “%s” does not exist\n"
-msgstr "افزونهٔ %s وجود ندارد\n"
+msgstr "افزونهٔ «%s» وجود ندارد\n"
#: subprojects/extensions-tool/src/command-disable.c:101
msgid "Disable an extension"
msgstr "از کار انداختن یک افزونه"
-#: subprojects/extensions-tool/src/command-disable.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-reset.c:76
-#: subprojects/extensions-tool/src/command-uninstall.c:104
+#: subprojects/extensions-tool/src/command-disable.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-reset.c:76 subprojects/extensions-tool/src/command-uninstall.c:104
msgid "No UUID given"
msgstr "هیچ شناسهٔ یکتایی داده نشده"
-#: subprojects/extensions-tool/src/command-disable.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-reset.c:81
-#: subprojects/extensions-tool/src/command-uninstall.c:109
+#: subprojects/extensions-tool/src/command-disable.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-reset.c:81 subprojects/extensions-tool/src/command-uninstall.c:109
msgid "More than one UUID given"
msgstr "بیش از یک شناسهٔ یکتا داده شده"
@@ -2735,11 +2654,10 @@ msgstr "بیش از یک شناسهٔ یکتا داده شده"
msgid "Enable an extension"
msgstr "به کار انداختن یک افزونه"
-#: subprojects/extensions-tool/src/command-info.c:59
-#: subprojects/extensions-tool/src/main.c:155
+#: subprojects/extensions-tool/src/command-info.c:59 subprojects/extensions-tool/src/main.c:155
#, c-format
msgid "Extension “%s” doesn't exist\n"
-msgstr "افزونهٔ %s وجود ندارد\n"
+msgstr "افزونهٔ «%s» وجود ندارد\n"
#: subprojects/extensions-tool/src/command-info.c:85
msgid "Show extensions info"
@@ -2763,7 +2681,7 @@ msgstr "هیچ دستهٔ افزونهای مشخّص نشده است"
#: subprojects/extensions-tool/src/command-install.c:208
msgid "More than one extension bundle specified"
-msgstr "بیش از یک دسته افزونه مشخّص شده"
+msgstr "بیش از یک دسته افزونه مشخّص شده است"
#: subprojects/extensions-tool/src/command-list.c:128
msgid "Show user-installed extensions"
@@ -2813,8 +2731,7 @@ msgstr "SCHEMA"
msgid "A GSettings schema that should be included"
msgstr "یک شمای Gsettings که باید شامل شود"
-#: subprojects/extensions-tool/src/command-pack.c:457
-#: subprojects/extensions-tool/src/command-pack.c:468
+#: subprojects/extensions-tool/src/command-pack.c:457 subprojects/extensions-tool/src/command-pack.c:468
msgid "DIRECTORY"
msgstr "DIRECTORY"
@@ -2848,12 +2765,12 @@ msgstr "ایجاد یک دستهٔ افزونه"
#: subprojects/extensions-tool/src/command-pack.c:501
msgid "More than one source directory specified"
-msgstr "بیش از یک شاخهٔ منبع مشخّص شده"
+msgstr "بیش از یک شاخهٔ منبع مشخّص شده است"
#: subprojects/extensions-tool/src/command-prefs.c:47
#, c-format
msgid "Extension “%s” doesn't have preferences\n"
-msgstr "افزونهٔ %s ترجیحات ندارد\n"
+msgstr "افزونهٔ «%s» ترجیحات ندارد\n"
#: subprojects/extensions-tool/src/command-prefs.c:79
msgid "Opens extension preferences"
@@ -2865,12 +2782,12 @@ msgstr "بازنشانی یک افزونه"
#: subprojects/extensions-tool/src/command-uninstall.c:49
msgid "Cannot uninstall system extensions\n"
-msgstr "نميتوان افزونههای سامانهای را حذف نصب کرد\n"
+msgstr "نمیتوان افزونههای سامانهای را حذف نصب کرد\n"
#: subprojects/extensions-tool/src/command-uninstall.c:64
#, c-format
msgid "Failed to uninstall “%s”\n"
-msgstr "شکست در حذف نصب %s\n"
+msgstr "شکست در حذف نصب «%s»\n"
#: subprojects/extensions-tool/src/command-uninstall.c:86
msgid "Uninstall an extension"
@@ -2904,8 +2821,7 @@ msgstr "وضعیت"
msgid "“version” takes no arguments"
msgstr "«version» آرگومانی نمیگیرد"
-#: subprojects/extensions-tool/src/main.c:292
-#: subprojects/extensions-tool/src/main.c:312
+#: subprojects/extensions-tool/src/main.c:292 subprojects/extensions-tool/src/main.c:312
msgid "Usage:"
msgstr "استفاده:"
@@ -2913,8 +2829,7 @@ msgstr "استفاده:"
msgid "Print version information and exit."
msgstr "چاپ اطّلاعات نگارش و خروج."
-#: subprojects/extensions-tool/src/main.c:310
-#: subprojects/extensions-tool/src/main.c:313
+#: subprojects/extensions-tool/src/main.c:310 subprojects/extensions-tool/src/main.c:313
msgid "COMMAND"
msgstr "COMMAND"
@@ -2950,8 +2865,7 @@ msgstr "حذف نصب افزونه"
msgid "List extensions"
msgstr "فهرست افزونهها"
-#: subprojects/extensions-tool/src/main.c:323
-#: subprojects/extensions-tool/src/main.c:324
+#: subprojects/extensions-tool/src/main.c:323 subprojects/extensions-tool/src/main.c:324
msgid "Show extension info"
msgstr "نمایش اطّلاعات افزونه"
@@ -2974,7 +2888,7 @@ msgstr "نصب دستهٔ افزونه"
#: subprojects/extensions-tool/src/main.c:330
#, c-format
msgid "Use “%s” to get detailed help.\n"
-msgstr "برای گرفتن راهنمای با جزییات از %s استفاده کنید.\n"
+msgstr "برای گرفتن راهنمای با جزییات از «%s» استفاده کنید.\n"
#: subprojects/extensions-tool/src/templates/00-plain.desktop.in:4
msgid "Plain"
@@ -3014,6 +2928,12 @@ msgstr[1] "%Iu ورودی"
msgid "System Sounds"
msgstr "صداهای سامانه"
+#~ msgid "Enable introspection API"
+#~ msgstr "به کار انداختن رابط برنامهنویسی دروننگر"
+
+#~ msgid "Enables a D-Bus API that allows to introspect the application state of the shell."
+#~ msgstr "رابط برنامهنویسی دیباسی را به کار میاندازد که اجازهٔ دروننگری وضعیت برنامهٔ پوسته را میدهد."
+
#~ msgid "Minimize"
#~ msgstr "کمینه کردن"
@@ -3102,11 +3022,8 @@ msgstr "صداهای سامانه"
#~ msgid "Orientation Lock"
#~ msgstr "قفل جهت"
-#~ msgid ""
-#~ "Keybinding that pauses and resumes all running tweens, for debugging purposes"
-#~ msgstr ""
-#~ "کلیدهای مقید برای مکث کردن و اجرا کردن تمام دوغلوهای در حال اجرا، برای مصارف "
-#~ "رفع اشکال"
+#~ msgid "Keybinding that pauses and resumes all running tweens, for debugging purposes"
+#~ msgstr "کلیدهای مقید برای مکث کردن و اجرا کردن تمام دوغلوهای در حال اجرا، برای مصارف رفع اشکال"
#~ msgid "Which keyboard to use"
#~ msgstr "استفاده از کدام صفحهکلید"
@@ -3348,18 +3265,14 @@ msgstr "صداهای سامانه"
#~ msgid "Certificate has been revoked"
#~ msgstr "گواهینامه لغو شده است"
-#~ msgid ""
-#~ "Certificate uses an insecure cipher algorithm or is cryptographically weak"
-#~ msgstr ""
-#~ "گواهینامه از الگوریتم رمزی نامطمئنی استفاده میکند یا از نظر cryptography ضعیف "
-#~ "است"
+#~ msgid "Certificate uses an insecure cipher algorithm or is cryptographically weak"
+#~ msgstr "گواهینامه از الگوریتم رمزی نامطمئنی استفاده میکند یا از نظر cryptography ضعیف است"
#~ msgid ""
-#~ "The length of the server certificate, or the depth of the server certificate "
-#~ "chain, exceed the limits imposed by the cryptography library"
+#~ "The length of the server certificate, or the depth of the server certificate chain, exceed the limits imposed by "
+#~ "the cryptography library"
#~ msgstr ""
-#~ "اندازه گواهینامه کارگزار، یا عمق حلقهی گواهینامه کارگزار، از محدودیت اعمال شده "
-#~ "توسط کتابخانه cryptography تجاوز کرد"
+#~ "اندازه گواهینامه کارگزار، یا عمق حلقهی گواهینامه کارگزار، از محدودیت اعمال شده توسط کتابخانه cryptography تجاوز کرد"
#~ msgid "Internal error"
#~ msgstr "خطای داخلی"
@@ -3406,21 +3319,17 @@ msgstr "صداهای سامانه"
#~ msgstr "فهرست دستههایی که باید به شکل پوشه نمایش داده شوند"
#~ msgid ""
-#~ "Each category name in this list will be represented as folder in the "
-#~ "application view, rather than being displayed inline in the main view."
+#~ "Each category name in this list will be represented as folder in the application view, rather than being displayed "
+#~ "inline in the main view."
#~ msgstr ""
-#~ "هر نام دسته در این فهرست، بجای اینکه پشت سر هم در نمای اصلی نمایش داده شود، "
-#~ "بهعنوان پوشه در نمای برنامهها نشان داده میشود."
+#~ "هر نام دسته در این فهرست، بجای اینکه پشت سر هم در نمای اصلی نمایش داده شود، بهعنوان پوشه در نمای برنامهها نشان داده "
+#~ "میشود."
#~ msgid "Arrangement of buttons on the titlebar"
#~ msgstr "چیدمان دکمهها در نوار عنوان"
-#~ msgid ""
-#~ "This key overrides the key in org.gnome.desktop.wm.preferences when running "
-#~ "GNOME Shell."
-#~ msgstr ""
-#~ "این کلید، کلید org.gnome.desktop.wm.preferences را در زمان اجرای گنومشل "
-#~ "بازنویسی میکند."
+#~ msgid "This key overrides the key in org.gnome.desktop.wm.preferences when running GNOME Shell."
+#~ msgstr "این کلید، کلید org.gnome.desktop.wm.preferences را در زمان اجرای گنومشل بازنویسی میکند."
#~ msgid "Select an extension to configure using the combobox above."
#~ msgstr "با استفاده از جعبهی بالا یک افزونه برای پیکربندی انتخاب کنید."
@@ -3456,9 +3365,7 @@ msgstr "صداهای سامانه"
#~ msgstr "تایید جهت جفتشدن با %s"
#~ msgid "Please confirm whether the Passkey '%06d' matches the one on the device."
-#~ msgstr ""
-#~ "لطفا تایید کنید که آیا کلید عبور مربوط به «%I06d» با همتای آن در دستگاه مطابقت "
-#~ "دارد یا خیر."
+#~ msgstr "لطفا تایید کنید که آیا کلید عبور مربوط به «%I06d» با همتای آن در دستگاه مطابقت دارد یا خیر."
#~ msgid "Does not match"
#~ msgstr "منطبق نیست"
@@ -3492,30 +3399,27 @@ msgstr "صداهای سامانه"
#~ msgstr "اینکه اطلاعات برنامهها دربارهی میزان استفاده از منابع جمعآوری شود یا خیر"
#~ msgid ""
-#~ "The shell normally monitors active applications in order to present the most "
-#~ "used ones (e.g. in launchers). While this data will be kept private, you may "
-#~ "want to disable this for privacy reasons. Please note that doing so won't "
+#~ "The shell normally monitors active applications in order to present the most used ones (e.g. in launchers). While "
+#~ "this data will be kept private, you may want to disable this for privacy reasons. Please note that doing so won't "
#~ "remove already saved data."
#~ msgstr ""
-#~ "پوسته گنوم در حالت عادی برنامههای فعال را جهت ارائه برنامههای بیشتر استفاده "
-#~ "شده پایش می کند. (برای مثال در اجرا کنندهها). با اینکه که این اطلاعات به صورت "
-#~ "خصوصی نگاهداری میشود، ممکن است شما بخواهید این امکان را به دلایل امنیتی "
-#~ "غیرفعال کنید. لطفا توجه کنید این کار باعث پاک شدن اطلاعاتی که تاکنون ذخیره "
-#~ "شدهاند نمیشود."
+#~ "پوسته گنوم در حالت عادی برنامههای فعال را جهت ارائه برنامههای بیشتر استفاده شده پایش می کند. (برای مثال در اجرا "
+#~ "کنندهها). با اینکه که این اطلاعات به صورت خصوصی نگاهداری میشود، ممکن است شما بخواهید این امکان را به دلایل امنیتی "
+#~ "غیرفعال کنید. لطفا توجه کنید این کار باعث پاک شدن اطلاعاتی که تاکنون ذخیره شدهاند نمیشود."
#~ msgid ""
-#~ "Internally used to store the last IM presence explicitly set by the user. The "
-#~ "value here is from the TpConnectionPresenceType enumeration."
+#~ "Internally used to store the last IM presence explicitly set by the user. The value here is from the "
+#~ "TpConnectionPresenceType enumeration."
#~ msgstr ""
-#~ "بهطور داخلی جهت ذخیرهی آخرین وضعیتِ حاضرِ ثبت شدهی توسط کاربر استفاده میشود. "
-#~ "مقدار اینجا از محل محاسبهی TpConnectionPresenceType است."
+#~ "بهطور داخلی جهت ذخیرهی آخرین وضعیتِ حاضرِ ثبت شدهی توسط کاربر استفاده میشود. مقدار اینجا از محل محاسبهی "
+#~ "TpConnectionPresenceType است."
#~ msgid ""
-#~ "Internally used to store the last session presence status for the user. The "
-#~ "value here is from the GsmPresenceStatus enumeration."
+#~ "Internally used to store the last session presence status for the user. The value here is from the "
+#~ "GsmPresenceStatus enumeration."
#~ msgstr ""
-#~ "بهطور داخلی برای ذخیره آخرین نشستی که کاربر در آن وضعیت حاضر داشته است استفاده "
-#~ "میشود. مقدار اینجا از محاسبه GsmPresenceStatus است."
+#~ "بهطور داخلی برای ذخیره آخرین نشستی که کاربر در آن وضعیت حاضر داشته است استفاده میشود. مقدار اینجا از محاسبه "
+#~ "GsmPresenceStatus است."
#~ msgid "Keybinding to toggle the screen recorder"
#~ msgstr "کلید مقید برای تغییر وضعیت ضبط کنندهی صفحه"
@@ -3527,49 +3431,38 @@ msgstr "صداهای سامانه"
#~ msgstr "سرعت فریم استفاده شده در تصویربرداری از صفحهنمایش."
#~ msgid ""
-#~ "The framerate of the resulting screencast recordered by GNOME Shell's "
-#~ "screencast recorder in frames-per-second."
-#~ msgstr ""
-#~ "سرعت فریم حاصل از تصویربرداری از صفحه نمایش با استفاده از ضبط کننده نمایشگر "
-#~ "پوستهی گنوم بر اساس فریم بر ثانیه"
+#~ "The framerate of the resulting screencast recordered by GNOME Shell's screencast recorder in frames-per-second."
+#~ msgstr "سرعت فریم حاصل از تصویربرداری از صفحه نمایش با استفاده از ضبط کننده نمایشگر پوستهی گنوم بر اساس فریم بر ثانیه"
#~ msgid "The gstreamer pipeline used to encode the screencast"
#~ msgstr "مجرای ارتباطی gstreamer برای کدگذاری تصویربرداری از صفحه نمایش"
#~ msgid ""
-#~ "Sets the GStreamer pipeline used to encode recordings. It follows the syntax "
-#~ "used for gst-launch. The pipeline should have an unconnected sink pad where "
-#~ "the recorded video is recorded. It will normally have a unconnected source "
-#~ "pad; output from that pad will be written into the output file. However the "
-#~ "pipeline can also take care of its own output - this might be used to send the "
-#~ "output to an icecast server via shout2send or similar. When unset or set to an "
-#~ "empty value, the default pipeline will be used. This is currently 'vp8enc "
-#~ "min_quantizer=13 max_quantizer=13 cpu-used=5 deadline=1000000 threads=%T ! "
-#~ "queue ! webmmux' and records to WEBM using the VP8 codec. %T is used as a "
-#~ "placeholder for a guess at the optimal thread count on the system."
+#~ "Sets the GStreamer pipeline used to encode recordings. It follows the syntax used for gst-launch. The pipeline "
+#~ "should have an unconnected sink pad where the recorded video is recorded. It will normally have a unconnected "
+#~ "source pad; output from that pad will be written into the output file. However the pipeline can also take care of "
+#~ "its own output - this might be used to send the output to an icecast server via shout2send or similar. When unset "
+#~ "or set to an empty value, the default pipeline will be used. This is currently 'vp8enc min_quantizer=13 "
+#~ "max_quantizer=13 cpu-used=5 deadline=1000000 threads=%T ! queue ! webmmux' and records to WEBM using the VP8 codec. "
+#~ "%T is used as a placeholder for a guess at the optimal thread count on the system."
#~ msgstr ""
-#~ "Sets the GStreamer pipeline used to encode recordings. It follows the syntax "
-#~ "used for gst-launch. The pipeline should have an unconnected sink pad where "
-#~ "the recorded video is recorded. It will normally have a unconnected source "
-#~ "pad; output from that pad will be written into the output file. However the "
-#~ "pipeline can also take care of its own output - this might be used to send the "
-#~ "output to an icecast server via shout2send or similar. When unset or set to an "
-#~ "empty value, the default pipeline will be used. This is currently 'vp8enc "
-#~ "min_quantizer=13 max_quantizer=13 cpu-used=5 deadline=1000000 threads=%T ! "
-#~ "queue ! webmmux' and records to WEBM using the VP8 codec. %T is used as a "
-#~ "placeholder for a guess at the optimal thread count on the system."
+#~ "Sets the GStreamer pipeline used to encode recordings. It follows the syntax used for gst-launch. The pipeline "
+#~ "should have an unconnected sink pad where the recorded video is recorded. It will normally have a unconnected "
+#~ "source pad; output from that pad will be written into the output file. However the pipeline can also take care of "
+#~ "its own output - this might be used to send the output to an icecast server via shout2send or similar. When unset "
+#~ "or set to an empty value, the default pipeline will be used. This is currently 'vp8enc min_quantizer=13 "
+#~ "max_quantizer=13 cpu-used=5 deadline=1000000 threads=%T ! queue ! webmmux' and records to WEBM using the VP8 codec. "
+#~ "%T is used as a placeholder for a guess at the optimal thread count on the system."
#~ msgid "File extension used for storing the screencast"
#~ msgstr "پسوند پروندهی قابل استفاده برای ذخیره تصویربرداری از صفحهنمایش"
#~ msgid ""
-#~ "The filename for recorded screencasts will be a unique filename based on the "
-#~ "current date, and use this extension. It should be changed when recording to a "
-#~ "different container format."
+#~ "The filename for recorded screencasts will be a unique filename based on the current date, and use this extension. "
+#~ "It should be changed when recording to a different container format."
#~ msgstr ""
-#~ "نام پروندهی ضبط شده برای تصویربرداری از صفحهنمایش یکتا و براساس تاریخ جاری "
-#~ "خواهد بود و از این افزونه استفاده خواهد کرد. اگر در زمان ضبط از قالب دیگری "
-#~ "استفاده کنید باید تغییر کند."
+#~ "نام پروندهی ضبط شده برای تصویربرداری از صفحهنمایش یکتا و براساس تاریخ جاری خواهد بود و از این افزونه استفاده خواهد "
+#~ "کرد. اگر در زمان ضبط از قالب دیگری استفاده کنید باید تغییر کند."
#~| msgid "Session..."
#~ msgid "Session…"
@@ -3590,8 +3483,7 @@ msgstr "صداهای سامانه"
#~ msgstr "ویدئو صفحهنمایش %Id %t"
#~ msgid "Click Log Out to quit these applications and log out of the system."
-#~ msgstr ""
-#~ "بر روی خروج از سیستم کلیک کنید تا از این برنامهها خارج و از سیستم خارج شوید."
+#~ msgstr "بر روی خروج از سیستم کلیک کنید تا از این برنامهها خارج و از سیستم خارج شوید."
#~ msgid "Logging out of the system."
#~ msgstr "درحال خروج از سیستم."
@@ -3603,9 +3495,7 @@ msgstr "صداهای سامانه"
#~ msgstr "درحال خاموش کردن سیستم."
#~ msgid "Click Restart to quit these applications and restart the system."
-#~ msgstr ""
-#~ "بر روی راهاندازی مجدد کلیک کنید تا از این برنامهها خارج و سیستم مجددا "
-#~ "راهاندازی گردد."
+#~ msgstr "بر روی راهاندازی مجدد کلیک کنید تا از این برنامهها خارج و سیستم مجددا راهاندازی گردد."
#~ msgid "Restarting the system."
#~ msgstr "درحال راهاندازی مجدد سیستم."
@@ -3733,11 +3623,11 @@ msgstr "صداهای سامانه"
#~ msgstr "وضعیت گپ شما «مشغول» تنظیم میشود"
#~ msgid ""
-#~ "Notifications are now disabled, including chat messages. Your online status "
-#~ "has been adjusted to let others know that you might not see their messages."
+#~ "Notifications are now disabled, including chat messages. Your online status has been adjusted to let others know "
+#~ "that you might not see their messages."
#~ msgstr ""
-#~ "هماکنون اعلانها، از جمله پیامهای گپ، غیرفعال هستند. وضعیتِ برخطِ شما به گونهای "
-#~ "تنظیم شده است که به دیگران نشان دهد ممکن است شما پیامهایشان را نبینید."
+#~ "هماکنون اعلانها، از جمله پیامهای گپ، غیرفعال هستند. وضعیتِ برخطِ شما به گونهای تنظیم شده است که به دیگران نشان دهد "
+#~ "ممکن است شما پیامهایشان را نبینید."
#~ msgid "Shutting down might cause them to lose unsaved work."
#~ msgstr "خاموشکردن ممکن است باعث شود که کارهای ذخیره نشده خود را از دست بدهند."
diff --git a/po/id.po b/po/id.po
index 74132d363..1cc12d5ed 100644
--- a/po/id.po
+++ b/po/id.po
@@ -11,8 +11,8 @@ msgid ""
msgstr ""
"Project-Id-Version: gnome-shell master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell/issues\n"
-"POT-Creation-Date: 2021-08-17 23:56+0000\n"
-"PO-Revision-Date: 2021-08-22 11:44+0700\n"
+"POT-Creation-Date: 2021-11-03 01:20+0000\n"
+"PO-Revision-Date: 2021-11-03 17:00+0700\n"
"Last-Translator: Kukuh Syafaat \n"
"Language-Team: Indonesian \n"
"Language: id\n"
@@ -257,23 +257,11 @@ msgstr ""
"sejumlah besar akan mewakili versi yang belum ada. Jumlah besar ini dapat "
"digunakan untuk secara efektif menonaktifkan dialog."
-#: data/org.gnome.shell.gschema.xml.in:109
-msgid "Enable introspection API"
-msgstr "Aktifkan API introspeksi"
-
-#: 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 ""
-"Aktifkan API D-Bus yang memungkinkan untuk mengintrospeksi status aplikasi "
-"shell."
-
-#: data/org.gnome.shell.gschema.xml.in:141
+#: data/org.gnome.shell.gschema.xml.in:133
msgid "Layout of the app picker"
msgstr "Tata letak pemilih aplikasi"
-#: data/org.gnome.shell.gschema.xml.in:142
+#: data/org.gnome.shell.gschema.xml.in:134
msgid ""
"Layout of the app picker. Each entry in the array is a page. Pages are "
"stored in the order they appear in GNOME Shell. Each page contains an "
@@ -285,108 +273,108 @@ msgstr ""
"berisi pasangan “application id” → 'data'. Saat ini, nilai berikut disimpan "
"sebagai 'data': • \"position\": posisi ikon aplikasi di halaman"
-#: data/org.gnome.shell.gschema.xml.in:157
+#: data/org.gnome.shell.gschema.xml.in:149
msgid "Keybinding to open the application menu"
msgstr "Kombinasi tombol untuk membuka menu aplikasi"
-#: data/org.gnome.shell.gschema.xml.in:158
+#: data/org.gnome.shell.gschema.xml.in:150
msgid "Keybinding to open the application menu."
msgstr "Kombinasi tombol untuk membuka menu aplikasi."
-#: data/org.gnome.shell.gschema.xml.in:164
-#: data/org.gnome.shell.gschema.xml.in:171
+#: data/org.gnome.shell.gschema.xml.in:156
+#: data/org.gnome.shell.gschema.xml.in:163
msgid "Keybinding to shift between overview states"
msgstr "Kombinasi tombol untuk beralih antara status ringkasan"
-#: 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"
msgstr ""
"Kombinasi tombol untuk beralih antara sesi, pemilih jendela, dan kisi "
"aplikasi"
-#: 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"
msgstr ""
"Kombinasi tombol untuk beralih antara kisi aplikasi, pemilih jendela, dan "
"sesi"
-#: data/org.gnome.shell.gschema.xml.in:178
+#: data/org.gnome.shell.gschema.xml.in:170
msgid "Keybinding to open the “Show Applications” view"
msgstr "Kombinasi tombol untuk membuka tilikan \"Tampilkan Aplikasi\""
-#: data/org.gnome.shell.gschema.xml.in:179
+#: data/org.gnome.shell.gschema.xml.in:171
msgid ""
"Keybinding to open the “Show Applications” view of the Activities Overview."
msgstr ""
"Kombinasi tombol untuk membuka tilikan Ringkasan Aktivitas \"Tampilkan "
"Aplikasi\"."
-#: data/org.gnome.shell.gschema.xml.in:186
+#: data/org.gnome.shell.gschema.xml.in:178
msgid "Keybinding to open the overview"
msgstr "Kombinasi tombol untuk membuka ringkasan"
-#: data/org.gnome.shell.gschema.xml.in:187
+#: data/org.gnome.shell.gschema.xml.in:179
msgid "Keybinding to open the Activities Overview."
msgstr "Kombinasi tombol untuk membuka Ringkasan Aktivitas."
-#: 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"
msgstr "Kombinasi tombol untuk kenampakan daftar pemberitahuan"
-#: 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."
msgstr "Kombinasi tombol untuk kenampakan daftar pemberitahuan."
-#: data/org.gnome.shell.gschema.xml.in:200
+#: data/org.gnome.shell.gschema.xml.in:192
msgid "Keybinding to focus the active notification"
msgstr "Kombinasi tombol untuk fokus pada pemberitahuan yang aktif"
-#: data/org.gnome.shell.gschema.xml.in:201
+#: data/org.gnome.shell.gschema.xml.in:193
msgid "Keybinding to focus the active notification."
msgstr "Kombinasi tombol untuk fokus pada pemberitahuan yang aktif."
-#: data/org.gnome.shell.gschema.xml.in:207
+#: data/org.gnome.shell.gschema.xml.in:199
msgid "Switch to application 1"
msgstr "Beralih ke aplikasi 1"
-#: data/org.gnome.shell.gschema.xml.in:211
+#: data/org.gnome.shell.gschema.xml.in:203
msgid "Switch to application 2"
msgstr "Beralih ke aplikasi 2"
-#: data/org.gnome.shell.gschema.xml.in:215
+#: data/org.gnome.shell.gschema.xml.in:207
msgid "Switch to application 3"
msgstr "Beralih ke aplikasi 3"
-#: data/org.gnome.shell.gschema.xml.in:219
+#: data/org.gnome.shell.gschema.xml.in:211
msgid "Switch to application 4"
msgstr "Beralih ke aplikasi 4"
-#: data/org.gnome.shell.gschema.xml.in:223
+#: data/org.gnome.shell.gschema.xml.in:215
msgid "Switch to application 5"
msgstr "Beralih ke aplikasi 5"
-#: data/org.gnome.shell.gschema.xml.in:227
+#: data/org.gnome.shell.gschema.xml.in:219
msgid "Switch to application 6"
msgstr "Beralih ke aplikasi 6"
-#: data/org.gnome.shell.gschema.xml.in:231
+#: data/org.gnome.shell.gschema.xml.in:223
msgid "Switch to application 7"
msgstr "Beralih ke aplikasi 7"
-#: data/org.gnome.shell.gschema.xml.in:235
+#: data/org.gnome.shell.gschema.xml.in:227
msgid "Switch to application 8"
msgstr "Beralih ke aplikasi 8"
-#: data/org.gnome.shell.gschema.xml.in:239
+#: data/org.gnome.shell.gschema.xml.in:231
msgid "Switch to application 9"
msgstr "Beralih ke aplikasi 9"
-#: data/org.gnome.shell.gschema.xml.in:248
-#: data/org.gnome.shell.gschema.xml.in:275
+#: data/org.gnome.shell.gschema.xml.in:240
+#: data/org.gnome.shell.gschema.xml.in:267
msgid "Limit switcher to current workspace."
msgstr "Batasi pengalih ke ruang kerja saat ini."
-#: data/org.gnome.shell.gschema.xml.in:249
+#: data/org.gnome.shell.gschema.xml.in:241
msgid ""
"If true, only applications that have windows on the current workspace are "
"shown in the switcher. Otherwise, all applications are included."
@@ -394,11 +382,11 @@ msgstr ""
"Bila berisi true, hanya aplikasi yang punya jendela pada ruang kerja saat "
"ini ditampilkan pada penukar. Bila tidak, semua aplikasi disertakan."
-#: data/org.gnome.shell.gschema.xml.in:266
+#: data/org.gnome.shell.gschema.xml.in:258
msgid "The application icon mode."
msgstr "Mode ikon aplikasi."
-#: data/org.gnome.shell.gschema.xml.in:267
+#: data/org.gnome.shell.gschema.xml.in:259
msgid ""
"Configures how the windows are shown in the switcher. Valid possibilities "
"are “thumbnail-only” (shows a thumbnail of the window), “app-icon-"
@@ -408,7 +396,7 @@ msgstr ""
"adalah \"thumbnail-only\" (menampilkan gambar mini dari jendela), \"app-icon-"
"only\" (hanya menampilkan ikon aplikasi), atau \"both\" (keduanya)."
-#: data/org.gnome.shell.gschema.xml.in:276
+#: data/org.gnome.shell.gschema.xml.in:268
msgid ""
"If true, only windows from the current workspace are shown in the switcher. "
"Otherwise, all windows are included."
@@ -416,59 +404,59 @@ msgstr ""
"Bila berisi true, hanya jendela dari ruang kerja saat ini ditampilkan pada "
"penukar. Bila tidak, semua jendela disertakan."
-#: data/org.gnome.shell.gschema.xml.in:286
+#: data/org.gnome.shell.gschema.xml.in:278
msgid "Locations"
msgstr "Lokasi"
-#: data/org.gnome.shell.gschema.xml.in:287
+#: data/org.gnome.shell.gschema.xml.in:279
msgid "The locations to show in world clocks"
msgstr "Lokasi untuk ditampilkan di jam dunia"
-#: data/org.gnome.shell.gschema.xml.in:297
+#: data/org.gnome.shell.gschema.xml.in:289
msgid "Automatic location"
msgstr "Lokasi otomatis"
-#: 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"
msgstr "Apakah akan mengambil lokasi saat ini atau tidak"
-#: data/org.gnome.shell.gschema.xml.in:305
+#: data/org.gnome.shell.gschema.xml.in:297
msgid "Location"
msgstr "Lokasi"
-#: 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"
msgstr "Lokasi yang menunjukkan perkiraan"
-#: data/org.gnome.shell.gschema.xml.in:318
+#: data/org.gnome.shell.gschema.xml.in:310
msgid "Attach modal dialog to the parent window"
msgstr "Mencantolkan dialog modal ke jendela induk"
-#: 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:336
#: data/org.gnome.shell.gschema.xml.in:344
-#: data/org.gnome.shell.gschema.xml.in:352
msgid ""
"This key overrides the key in org.gnome.mutter when running GNOME Shell."
msgstr ""
"Kunci ini menimpa kunci dalam org.gnome.mutter ketika menjalankan 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"
msgstr ""
"Memfungsikan pengubinan tepi ketika menjatuhkan jendela pada tepi layar"
-#: data/org.gnome.shell.gschema.xml.in:335
+#: data/org.gnome.shell.gschema.xml.in:327
msgid "Workspaces are managed dynamically"
msgstr "Ruang kerja dikelola secara dinamis"
-#: data/org.gnome.shell.gschema.xml.in:343
+#: data/org.gnome.shell.gschema.xml.in:335
msgid "Workspaces only on primary monitor"
msgstr "Ruang kerja hanya pada monitor primer"
-#: 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"
msgstr ""
"Tunda perubahan fokus dalam mode tetikus sampai penunjuk berhenti bergerak"
@@ -505,18 +493,18 @@ msgid "Visit extension homepage"
msgstr "Kunjungi halaman web ekstensi"
#: js/gdm/authPrompt.js:141 js/ui/audioDeviceSelection.js:61
-#: js/ui/components/networkAgent.js:111 js/ui/components/polkitAgent.js:138
-#: js/ui/endSessionDialog.js:438 js/ui/extensionDownloader.js:190
+#: js/ui/components/networkAgent.js:110 js/ui/components/polkitAgent.js:138
+#: 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 subprojects/extensions-app/js/main.js:183
msgid "Cancel"
msgstr "Batal"
#. Cisco LEAP
-#: js/gdm/authPrompt.js:285 js/ui/components/networkAgent.js:210
-#: js/ui/components/networkAgent.js:226 js/ui/components/networkAgent.js:250
-#: js/ui/components/networkAgent.js:271 js/ui/components/networkAgent.js:291
-#: js/ui/components/networkAgent.js:301 js/ui/components/polkitAgent.js:275
+#: js/gdm/authPrompt.js:285 js/ui/components/networkAgent.js:209
+#: js/ui/components/networkAgent.js:225 js/ui/components/networkAgent.js:249
+#: js/ui/components/networkAgent.js:270 js/ui/components/networkAgent.js:290
+#: js/ui/components/networkAgent.js:300 js/ui/components/polkitAgent.js:275
#: js/ui/shellMountOperation.js:326
msgid "Password"
msgstr "Kata Sandi"
@@ -539,8 +527,8 @@ msgstr "(cth., pengguna dari %s)"
#. TTLS and PEAP are actually much more complicated, but this complication
#. is not visible here since we only care about phase2 authentication
#. (and don't even care of which one)
-#: js/gdm/loginDialog.js:926 js/ui/components/networkAgent.js:246
-#: js/ui/components/networkAgent.js:269 js/ui/components/networkAgent.js:287
+#: js/gdm/loginDialog.js:926 js/ui/components/networkAgent.js:245
+#: js/ui/components/networkAgent.js:268 js/ui/components/networkAgent.js:286
msgid "Username"
msgstr "Nama pengguna"
@@ -645,65 +633,65 @@ msgctxt "search-result"
msgid "Lock Screen Rotation"
msgstr "Kunci Rotasi Layar"
-#: js/misc/util.js:120
+#: js/misc/util.js:121
msgid "Command not found"
msgstr "Perintah tidak ditemukan"
#. Replace "Error invoking GLib.shell_parse_argv: " with
#. something nicer
-#: js/misc/util.js:156
+#: js/misc/util.js:157
msgid "Could not parse command:"
msgstr "Tak dapat mengurai perintah:"
-#: js/misc/util.js:164
+#: js/misc/util.js:165
#, javascript-format
msgid "Execution of “%s” failed:"
msgstr "Eksekusi \"%s\" gagal:"
-#: js/misc/util.js:181
+#: js/misc/util.js:182
msgid "Just now"
msgstr "Baru saja"
-#: js/misc/util.js:183
+#: js/misc/util.js:184
#, javascript-format
msgid "%d minute ago"
msgid_plural "%d minutes ago"
msgstr[0] "%d menit yang lalu"
msgstr[1] "%d menit yang lalu"
-#: js/misc/util.js:187
+#: js/misc/util.js:188
#, javascript-format
msgid "%d hour ago"
msgid_plural "%d hours ago"
msgstr[0] "%d jam yang lalu"
msgstr[1] "%d jam yang lalu"
-#: js/misc/util.js:191 js/ui/dateMenu.js:162
+#: js/misc/util.js:192 js/ui/dateMenu.js:162
msgid "Yesterday"
msgstr "Kemarin"
-#: js/misc/util.js:193
+#: js/misc/util.js:194
#, javascript-format
msgid "%d day ago"
msgid_plural "%d days ago"
msgstr[0] "%d hari yang lalu"
msgstr[1] "%d hari yang lalu"
-#: js/misc/util.js:197
+#: js/misc/util.js:198
#, javascript-format
msgid "%d week ago"
msgid_plural "%d weeks ago"
msgstr[0] "%d minggu yang lalu"
msgstr[1] "%d minggu yang lalu"
-#: js/misc/util.js:201
+#: js/misc/util.js:202
#, javascript-format
msgid "%d month ago"
msgid_plural "%d months ago"
msgstr[0] "%d bulan yang lalu"
msgstr[1] "%d bulan yang lalu"
-#: js/misc/util.js:204
+#: js/misc/util.js:205
#, javascript-format
msgid "%d year ago"
msgid_plural "%d years ago"
@@ -711,20 +699,20 @@ msgstr[0] "%d tahun yang lalu"
msgstr[1] "%d tahun yang lalu"
#. Translators: Time in 24h format
-#: js/misc/util.js:237
+#: js/misc/util.js:238
msgid "%H∶%M"
msgstr "%H∶%M"
#. Translators: this is the word "Yesterday" followed by a
#. time string in 24h format. i.e. "Yesterday, 14:30"
-#: js/misc/util.js:243
+#: js/misc/util.js:244
#, no-c-format
msgid "Yesterday, %H∶%M"
msgstr "Kemarin, %H:%M"
#. Translators: this is the week day name followed by a time
#. string in 24h format. i.e. "Monday, 14:30"
-#: js/misc/util.js:249
+#: js/misc/util.js:250
#, no-c-format
msgid "%A, %H∶%M"
msgstr "%A, %H∶%M"
@@ -732,7 +720,7 @@ msgstr "%A, %H∶%M"
#. Translators: this is the month name and day number
#. followed by a time string in 24h format.
#. i.e. "May 25, 14:30"
-#: js/misc/util.js:255
+#: js/misc/util.js:256
#, no-c-format
msgid "%B %-d, %H∶%M"
msgstr "%d %B, %H∶%M"
@@ -740,7 +728,7 @@ msgstr "%d %B, %H∶%M"
#. Translators: this is the month name, day number, year
#. number followed by a time string in 24h format.
#. i.e. "May 25 2012, 14:30"
-#: js/misc/util.js:261
+#: js/misc/util.js:262
#, no-c-format
msgid "%B %-d %Y, %H∶%M"
msgstr "%d %B %Y, %H∶%M"
@@ -748,20 +736,20 @@ msgstr "%d %B %Y, %H∶%M"
#. Show only the time if date is on today
#. eslint-disable-line no-lonely-if
#. Translators: Time in 12h format
-#: js/misc/util.js:266
+#: js/misc/util.js:267
msgid "%l∶%M %p"
msgstr "%H∶%M"
#. Translators: this is the word "Yesterday" followed by a
#. time string in 12h format. i.e. "Yesterday, 2:30 pm"
-#: js/misc/util.js:272
+#: js/misc/util.js:273
#, no-c-format
msgid "Yesterday, %l∶%M %p"
msgstr "Kemarin, %l∶%M %p"
#. Translators: this is the week day name followed by a time
#. string in 12h format. i.e. "Monday, 2:30 pm"
-#: js/misc/util.js:278
+#: js/misc/util.js:279
#, no-c-format
msgid "%A, %l∶%M %p"
msgstr "%A, %l∶%M %p"
@@ -769,7 +757,7 @@ msgstr "%A, %l∶%M %p"
#. Translators: this is the month name and day number
#. followed by a time string in 12h format.
#. i.e. "May 25, 2:30 pm"
-#: js/misc/util.js:284
+#: js/misc/util.js:285
#, no-c-format
msgid "%B %-d, %l∶%M %p"
msgstr "%d %B, %l∶%M %p"
@@ -777,17 +765,17 @@ msgstr "%d %B, %l∶%M %p"
#. Translators: this is the month name, day number, year
#. number followed by a time string in 12h format.
#. i.e. "May 25 2012, 2:30 pm"
-#: js/misc/util.js:290
+#: js/misc/util.js:291
#, no-c-format
msgid "%B %-d %Y, %l∶%M %p"
msgstr "%d %B %Y, %l∶%M %p"
#. 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"
msgstr "Log Masuk Area Bersinyal (hotspot)"
-#: js/portalHelper/main.js:88
+#: js/portalHelper/main.js:95
msgid ""
"Your connection to this hotspot login is not secure. Passwords or other "
"information you enter on this page can be viewed by people nearby."
@@ -1033,40 +1021,40 @@ msgstr "Versi udisks yang dipasang tidak mendukung pengaturan PIM"
msgid "Open with %s"
msgstr "Buka dengan %s"
-#: js/ui/components/networkAgent.js:93
+#: js/ui/components/networkAgent.js:92
msgid ""
"Alternatively you can connect by pushing the “WPS” button on your router."
msgstr ""
"Sebagai alternatif Anda dapat terhubung dengan menekan tombol \"WPS\" pada "
"router Anda."
-#: 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
msgid "Connect"
msgstr "Sambung"
-#: js/ui/components/networkAgent.js:216
+#: js/ui/components/networkAgent.js:215
msgid "Key"
msgstr "Kunci"
-#: 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"
msgstr "Kata sandi kunci privat"
-#: js/ui/components/networkAgent.js:275
+#: js/ui/components/networkAgent.js:274
msgid "Identity"
msgstr "Identitas"
-#: js/ui/components/networkAgent.js:289
+#: js/ui/components/networkAgent.js:288
msgid "Service"
msgstr "Layanan"
-#: 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
msgid "Authentication required"
msgstr "Diperlukan autentikasi"
-#: 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
msgid ""
"Passwords or encryption keys are required to access the wireless network "
@@ -1075,31 +1063,31 @@ msgstr ""
"Kata sandi atau kunci enkripsi diperlukan untuk mengakses jaringan nirkabel "
"\"%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"
msgstr "Autentikasi 802.1X kabel"
-#: js/ui/components/networkAgent.js:325
+#: js/ui/components/networkAgent.js:324
msgid "Network name"
msgstr "Nama jaringan"
-#: 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"
msgstr "Autentikasi 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"
msgstr "Perlu kode 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"
msgstr "Kode PIN diperlukan untuk perangkat data seluler"
-#: js/ui/components/networkAgent.js:339
+#: js/ui/components/networkAgent.js:338
msgid "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:705
#, javascript-format
@@ -1390,24 +1378,24 @@ msgstr "%s (jarak jauh)"
msgid "%s (console)"
msgstr "%s (konsol)"
-#: js/ui/extensionDownloader.js:194
+#: js/ui/extensionDownloader.js:232
msgid "Install"
msgstr "Pasang"
-#: js/ui/extensionDownloader.js:200
+#: js/ui/extensionDownloader.js:238
msgid "Install Extension"
msgstr "Pasang Ekstensi"
-#: js/ui/extensionDownloader.js:201
+#: js/ui/extensionDownloader.js:239
#, javascript-format
msgid "Download and install “%s” from extensions.gnome.org?"
msgstr "Unduh dan pasang \"%s\" dari extensions.gnome.org?"
-#: js/ui/extensionSystem.js:253
+#: js/ui/extensionSystem.js:252
msgid "Extension Updates Available"
msgstr "Pemutakhiran Ekstensi Tersedia"
-#: js/ui/extensionSystem.js:254
+#: js/ui/extensionSystem.js:253
msgid "Extension updates are ready to be installed."
msgstr "Pemutakhiran ekstensi siap dipasang."
@@ -1502,7 +1490,7 @@ msgstr "Matikan"
msgid "Leave Off"
msgstr "Biarkan Mati"
-#: js/ui/keyboard.js:227
+#: js/ui/keyboard.js:226
msgid "Region & Language Settings"
msgstr "Pengaturan Wilayah & Bahasa"
@@ -1555,11 +1543,11 @@ msgstr "Tilik Sumber"
msgid "Web Page"
msgstr "Halaman Web"
-#: js/ui/main.js:294
+#: js/ui/main.js:290
msgid "Logged in as a privileged user"
msgstr "Masuk sebagai pengguna istimewa"
-#: js/ui/main.js:295
+#: js/ui/main.js:291
msgid ""
"Running a session as a privileged user should be avoided for security "
"reasons. If possible, you should log in as a normal user."
@@ -1567,15 +1555,15 @@ msgstr ""
"Menjalankan sesi sebagai pengguna istimewa harus dihindari untuk alasan "
"keamanan. Jika memungkinkan, Anda harus masuk sebagai pengguna biasa."
-#: js/ui/main.js:344
+#: js/ui/main.js:340
msgid "Screen Lock disabled"
msgstr "Kunci Layar dinonaktifkan"
-#: js/ui/main.js:345
+#: js/ui/main.js:341
msgid "Screen Locking requires the GNOME display manager."
msgstr "Penguncian Layar memerlukan manajer tampilan GNOME."
-#: js/ui/messageTray.js:1440
+#: js/ui/messageTray.js:1443
msgid "System Information"
msgstr "Informasi Sistem"
@@ -1609,47 +1597,47 @@ msgstr "Batal"
msgid "Overview"
msgstr "Gambaran"
-#: js/ui/padOsd.js:96
+#: js/ui/padOsd.js:95
msgid "New shortcut…"
msgstr "Pintasan baru…"
-#: js/ui/padOsd.js:143
+#: js/ui/padOsd.js:142
msgid "Application defined"
msgstr "Aplikasi yang didefinisikan"
-#: js/ui/padOsd.js:144
+#: js/ui/padOsd.js:143
msgid "Show on-screen help"
msgstr "Tampilkan bantuan di layar"
-#: js/ui/padOsd.js:145
+#: js/ui/padOsd.js:144
msgid "Switch monitor"
msgstr "Ganti monitor"
-#: js/ui/padOsd.js:146
+#: js/ui/padOsd.js:145
msgid "Assign keystroke"
msgstr "Tetapkan keystroke"
-#: js/ui/padOsd.js:212
+#: js/ui/padOsd.js:211
msgid "Done"
msgstr "Selesai"
-#: js/ui/padOsd.js:718
+#: js/ui/padOsd.js:716
msgid "Edit…"
msgstr "Sunting…"
-#: js/ui/padOsd.js:760 js/ui/padOsd.js:877
+#: js/ui/padOsd.js:758 js/ui/padOsd.js:875
msgid "None"
msgstr "Nihil"
-#: js/ui/padOsd.js:831
+#: js/ui/padOsd.js:829
msgid "Press a button to configure"
msgstr "Tekan tombol untuk mengkonfigurasi"
-#: js/ui/padOsd.js:832
+#: js/ui/padOsd.js:830
msgid "Press Esc to exit"
msgstr "Tekan Esc untuk keluar"
-#: js/ui/padOsd.js:835
+#: js/ui/padOsd.js:833
msgid "Press any key to exit"
msgstr "Tekan tombol apa saja untuk keluar"
@@ -1659,12 +1647,12 @@ msgstr "Tekan tombol apa saja untuk keluar"
msgid "Activities"
msgstr "Aktivitas"
-#: js/ui/panel.js:542
+#: js/ui/panel.js:556
msgctxt "System menu in the top bar"
msgid "System"
msgstr "Sistem"
-#: js/ui/panel.js:658
+#: js/ui/panel.js:674
msgid "Top Bar"
msgstr "Bar Atas"
@@ -1703,7 +1691,7 @@ msgstr "Tak bisa mengunci"
msgid "Lock was blocked by an application"
msgstr "Kunci diblokir oleh suatu aplikasi"
-#: js/ui/screenshot.js:141
+#: js/ui/screenshot.js:155
msgid "Screenshot taken"
msgstr "Cuplikan layar telah diambil"
@@ -2766,6 +2754,7 @@ msgstr "Diperlukan UUID, nama, dan deskripsi"
#: subprojects/extensions-tool/src/command-enable.c:46
#: subprojects/extensions-tool/src/command-info.c:50
#: subprojects/extensions-tool/src/command-list.c:64
+#: subprojects/extensions-tool/src/main.c:146
msgid "Failed to connect to GNOME Shell\n"
msgstr "Gagal terhubung ke GNOME Shell\n"
@@ -2782,7 +2771,7 @@ msgstr "Nonaktifkan ekstensi"
#: subprojects/extensions-tool/src/command-disable.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-prefs.c:105
#: subprojects/extensions-tool/src/command-reset.c:76
#: subprojects/extensions-tool/src/command-uninstall.c:104
msgid "No UUID given"
@@ -2791,7 +2780,7 @@ msgstr "Tidak ada UUID yang diberikan"
#: subprojects/extensions-tool/src/command-disable.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-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"
@@ -2921,7 +2910,12 @@ msgstr "Lebih dari satu direktori sumber ditentukan"
msgid "Extension “%s” doesn't have preferences\n"
msgstr "Ekstensi \"%s\" tidak memiliki preferensi\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 "Gagal membuka preferensi untuk ekstensi \"%s\": %s\n"
+
+#: subprojects/extensions-tool/src/command-prefs.c:87
msgid "Opens extension preferences"
msgstr "Buka preferensi ekstensi"
@@ -2946,10 +2940,6 @@ msgstr "Hapus ekstensi"
msgid "Do not print error messages"
msgstr "Jangan cetak pesan kesalahan"
-#: subprojects/extensions-tool/src/main.c:146
-msgid "Failed to connect to GNOME Shell"
-msgstr "Gagal terhubung ke GNOME Shell"
-
#: subprojects/extensions-tool/src/main.c:244
msgid "Path"
msgstr "Path"
@@ -3080,6 +3070,19 @@ msgstr[1] "%u Masukan"
msgid "System Sounds"
msgstr "Suara Sistem"
+#~ msgid "Enable introspection API"
+#~ msgstr "Aktifkan API introspeksi"
+
+#~ msgid ""
+#~ "Enables a D-Bus API that allows to introspect the application state of "
+#~ "the shell."
+#~ msgstr ""
+#~ "Aktifkan API D-Bus yang memungkinkan untuk mengintrospeksi status "
+#~ "aplikasi shell."
+
+#~ msgid "Failed to connect to GNOME Shell"
+#~ msgstr "Gagal terhubung ke GNOME Shell"
+
#~ msgid "Minimize"
#~ msgstr "Minimalkan"
diff --git a/po/kab.po b/po/kab.po
index 5b65e41a1..43f16701f 100644
--- a/po/kab.po
+++ b/po/kab.po
@@ -7,16 +7,56 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell/issues\n"
-"POT-Creation-Date: 2020-09-16 18:11+0000\n"
-"PO-Revision-Date: 2020-09-19 12:23+0100\n"
+"POT-Creation-Date: 2021-10-14 16:29+0000\n"
+"PO-Revision-Date: 2021-10-16 15:32+0100\n"
+"Last-Translator: Slimane Selyan Amiri \n"
+"Language-Team: \n"
"Language: kab_DZ\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-"Last-Translator: Yacine Bouklif \n"
-"Language-Team: \n"
-"X-Generator: Poedit 2.4.1\n"
+"X-Generator: Poedit 3.0\n"
+
+#: data/50-gnome-shell-launchers.xml:6
+msgid "Launchers"
+msgstr "Imsinḍen"
+
+#: data/50-gnome-shell-launchers.xml:10
+msgid "Activate favorite application 1"
+msgstr "Rmed asnas anurif 1"
+
+#: data/50-gnome-shell-launchers.xml:14
+msgid "Activate favorite application 2"
+msgstr "Rmed asnas anurif 2"
+
+#: data/50-gnome-shell-launchers.xml:18
+msgid "Activate favorite application 3"
+msgstr "Rmed asnas anurif 3"
+
+#: data/50-gnome-shell-launchers.xml:22
+msgid "Activate favorite application 4"
+msgstr "Rmed asnas anurif 4"
+
+#: data/50-gnome-shell-launchers.xml:26
+msgid "Activate favorite application 5"
+msgstr "Rmed asnas anurif 5"
+
+#: data/50-gnome-shell-launchers.xml:30
+msgid "Activate favorite application 6"
+msgstr "Rmed asnas anurif 6"
+
+#: data/50-gnome-shell-launchers.xml:34
+msgid "Activate favorite application 7"
+msgstr "Rmed asnas anurif 7"
+
+#: data/50-gnome-shell-launchers.xml:38
+msgid "Activate favorite application 8"
+msgstr "Rmed asnas anurif 8"
+
+#: data/50-gnome-shell-launchers.xml:42
+msgid "Activate favorite application 9"
+msgstr "Rmed asnas anurif 9"
#: data/50-gnome-shell-system.xml:6
msgid "System"
@@ -44,7 +84,7 @@ msgstr "Ldi umuɣ n usnas"
#: data/org.gnome.Shell.desktop.in.in:4
msgid "GNOME Shell"
-msgstr ""
+msgstr "GNOME Shell"
#: data/org.gnome.Shell.desktop.in.in:5
msgid "Window management and application launching"
@@ -87,7 +127,7 @@ msgstr ""
#: data/org.gnome.shell.gschema.xml.in:37
msgid "Disable user extensions"
-msgstr ""
+msgstr "Sens iseɣzaf n useqdac"
#: data/org.gnome.shell.gschema.xml.in:38
msgid ""
@@ -117,38 +157,30 @@ msgid ""
msgstr ""
#: data/org.gnome.shell.gschema.xml.in:62
-msgid "App Picker View"
-msgstr ""
-
-#: data/org.gnome.shell.gschema.xml.in:63
-msgid "Index of the currently selected view in the application picker."
-msgstr ""
-
-#: data/org.gnome.shell.gschema.xml.in:69
msgid "History for command (Alt-F2) dialog"
msgstr ""
#. Translators: looking glass is a debugger and inspector tool, see https://wiki.gnome.org/Projects/GnomeShell/LookingGlass
-#: data/org.gnome.shell.gschema.xml.in:74
+#: data/org.gnome.shell.gschema.xml.in:67
msgid "History for the looking glass dialog"
msgstr ""
-#: data/org.gnome.shell.gschema.xml.in:78
+#: data/org.gnome.shell.gschema.xml.in:71
msgid "Always show the “Log out” menu item in the user menu."
msgstr ""
-#: data/org.gnome.shell.gschema.xml.in:79
+#: data/org.gnome.shell.gschema.xml.in:72
msgid ""
"This key overrides the automatic hiding of the “Log out” menu item in single-"
"user, single-session situations."
msgstr ""
-#: data/org.gnome.shell.gschema.xml.in:86
+#: data/org.gnome.shell.gschema.xml.in:79
msgid ""
"Whether to remember password for mounting encrypted or remote filesystems"
msgstr ""
-#: data/org.gnome.shell.gschema.xml.in:87
+#: data/org.gnome.shell.gschema.xml.in:80
msgid ""
"The shell will request a password when an encrypted device or a remote "
"filesystem is mounted. If the password can be saved for future use a "
@@ -156,12 +188,12 @@ msgid ""
"state of the checkbox."
msgstr ""
-#: data/org.gnome.shell.gschema.xml.in:96
+#: data/org.gnome.shell.gschema.xml.in:89
msgid ""
"Whether the default Bluetooth adapter had set up devices associated to it"
msgstr ""
-#: data/org.gnome.shell.gschema.xml.in:97
+#: data/org.gnome.shell.gschema.xml.in:90
msgid ""
"The shell will only show a Bluetooth menu item if a Bluetooth adapter is "
"powered, or if there were devices set up associated with the default "
@@ -169,21 +201,23 @@ msgid ""
"devices associated to it."
msgstr ""
-#: data/org.gnome.shell.gschema.xml.in:106
-msgid "Enable introspection API"
+#: data/org.gnome.shell.gschema.xml.in:99
+msgid "The last version the “Welcome to GNOME” dialog was shown for"
msgstr ""
-#: data/org.gnome.shell.gschema.xml.in:107
+#: data/org.gnome.shell.gschema.xml.in:100
msgid ""
-"Enables a D-Bus API that allows to introspect the application state of the "
-"shell."
+"This key determines for which version the “Welcome to GNOME” dialog was last "
+"shown. An empty string represents the oldest possible version, and a huge "
+"number will represent versions that do not exist yet. This huge number can "
+"be used to effectively disable the dialog."
msgstr ""
-#: data/org.gnome.shell.gschema.xml.in:114
+#: data/org.gnome.shell.gschema.xml.in:133
msgid "Layout of the app picker"
msgstr ""
-#: data/org.gnome.shell.gschema.xml.in:115
+#: data/org.gnome.shell.gschema.xml.in:134
msgid ""
"Layout of the app picker. Each entry in the array is a page. Pages are "
"stored in the order they appear in GNOME Shell. Each page contains an "
@@ -191,220 +225,233 @@ msgid ""
"as 'data': • “position”: the position of the application icon in the page"
msgstr ""
-#: data/org.gnome.shell.gschema.xml.in:130
+#: data/org.gnome.shell.gschema.xml.in:149
msgid "Keybinding to open the application menu"
msgstr ""
-#: data/org.gnome.shell.gschema.xml.in:131
+#: data/org.gnome.shell.gschema.xml.in:150
msgid "Keybinding to open the application menu."
msgstr ""
-#: data/org.gnome.shell.gschema.xml.in:137
+#: data/org.gnome.shell.gschema.xml.in:156
+#: data/org.gnome.shell.gschema.xml.in:163
+msgid "Keybinding to shift between overview states"
+msgstr ""
+
+#: data/org.gnome.shell.gschema.xml.in:157
+msgid "Keybinding to shift between session, window picker and app grid"
+msgstr ""
+
+#: data/org.gnome.shell.gschema.xml.in:164
+msgid "Keybinding to shift between app grid, window picker and session"
+msgstr ""
+
+#: data/org.gnome.shell.gschema.xml.in:170
msgid "Keybinding to open the “Show Applications” view"
msgstr ""
-#: data/org.gnome.shell.gschema.xml.in:138
+#: data/org.gnome.shell.gschema.xml.in:171
msgid ""
"Keybinding to open the “Show Applications” view of the Activities Overview."
msgstr ""
-#: data/org.gnome.shell.gschema.xml.in:145
+#: data/org.gnome.shell.gschema.xml.in:178
msgid "Keybinding to open the overview"
msgstr ""
-#: data/org.gnome.shell.gschema.xml.in:146
+#: data/org.gnome.shell.gschema.xml.in:179
msgid "Keybinding to open the Activities Overview."
msgstr ""
-#: data/org.gnome.shell.gschema.xml.in:152
+#: data/org.gnome.shell.gschema.xml.in:185
msgid "Keybinding to toggle the visibility of the notification list"
msgstr ""
-#: data/org.gnome.shell.gschema.xml.in:153
+#: data/org.gnome.shell.gschema.xml.in:186
msgid "Keybinding to toggle the visibility of the notification list."
msgstr ""
-#: data/org.gnome.shell.gschema.xml.in:159
+#: data/org.gnome.shell.gschema.xml.in:192
msgid "Keybinding to focus the active notification"
msgstr ""
-#: data/org.gnome.shell.gschema.xml.in:160
+#: data/org.gnome.shell.gschema.xml.in:193
msgid "Keybinding to focus the active notification."
msgstr ""
-#: data/org.gnome.shell.gschema.xml.in:166
+#: data/org.gnome.shell.gschema.xml.in:199
msgid "Switch to application 1"
msgstr "Senfel s asnas 1"
-#: data/org.gnome.shell.gschema.xml.in:170
+#: data/org.gnome.shell.gschema.xml.in:203
msgid "Switch to application 2"
msgstr "Senfel s asnas 2"
-#: data/org.gnome.shell.gschema.xml.in:174
+#: data/org.gnome.shell.gschema.xml.in:207
msgid "Switch to application 3"
msgstr "Senfel s asnas 3"
-#: data/org.gnome.shell.gschema.xml.in:178
+#: data/org.gnome.shell.gschema.xml.in:211
msgid "Switch to application 4"
msgstr "Senfel s asnas 4"
-#: data/org.gnome.shell.gschema.xml.in:182
+#: data/org.gnome.shell.gschema.xml.in:215
msgid "Switch to application 5"
msgstr "Senfel s asnas 5"
-#: data/org.gnome.shell.gschema.xml.in:186
+#: data/org.gnome.shell.gschema.xml.in:219
msgid "Switch to application 6"
msgstr "Senfel s asnas 6"
-#: data/org.gnome.shell.gschema.xml.in:190
+#: data/org.gnome.shell.gschema.xml.in:223
msgid "Switch to application 7"
msgstr "Senfel s asnas 7"
-#: data/org.gnome.shell.gschema.xml.in:194
+#: data/org.gnome.shell.gschema.xml.in:227
msgid "Switch to application 8"
msgstr "Senfel s asnas 8"
-#: data/org.gnome.shell.gschema.xml.in:198
+#: data/org.gnome.shell.gschema.xml.in:231
msgid "Switch to application 9"
msgstr "Senfel s asnas 9"
-#: data/org.gnome.shell.gschema.xml.in:207
-#: data/org.gnome.shell.gschema.xml.in:234
+#: data/org.gnome.shell.gschema.xml.in:240
+#: data/org.gnome.shell.gschema.xml.in:267
msgid "Limit switcher to current workspace."
msgstr ""
-#: data/org.gnome.shell.gschema.xml.in:208
+#: data/org.gnome.shell.gschema.xml.in:241
msgid ""
"If true, only applications that have windows on the current workspace are "
"shown in the switcher. Otherwise, all applications are included."
msgstr ""
-#: data/org.gnome.shell.gschema.xml.in:225
+#: data/org.gnome.shell.gschema.xml.in:258
msgid "The application icon mode."
msgstr ""
-#: data/org.gnome.shell.gschema.xml.in:226
+#: data/org.gnome.shell.gschema.xml.in:259
msgid ""
"Configures how the windows are shown in the switcher. Valid possibilities "
"are “thumbnail-only” (shows a thumbnail of the window), “app-icon-"
"only” (shows only the application icon) or “both”."
msgstr ""
-#: data/org.gnome.shell.gschema.xml.in:235
+#: data/org.gnome.shell.gschema.xml.in:268
msgid ""
"If true, only windows from the current workspace are shown in the switcher. "
"Otherwise, all windows are included."
msgstr ""
-#: data/org.gnome.shell.gschema.xml.in:245
+#: data/org.gnome.shell.gschema.xml.in:278
msgid "Locations"
-msgstr ""
+msgstr "Idγaren"
-#: data/org.gnome.shell.gschema.xml.in:246
+#: data/org.gnome.shell.gschema.xml.in:279
msgid "The locations to show in world clocks"
msgstr ""
-#: data/org.gnome.shell.gschema.xml.in:256
+#: data/org.gnome.shell.gschema.xml.in:289
msgid "Automatic location"
-msgstr ""
+msgstr "Adeg s wudem awurman"
-#: data/org.gnome.shell.gschema.xml.in:257
+#: data/org.gnome.shell.gschema.xml.in:290
msgid "Whether to fetch the current location or not"
msgstr ""
-#: data/org.gnome.shell.gschema.xml.in:264
+#: data/org.gnome.shell.gschema.xml.in:297
msgid "Location"
msgstr "Adig"
-#: data/org.gnome.shell.gschema.xml.in:265
+#: data/org.gnome.shell.gschema.xml.in:298
msgid "The location for which to show a forecast"
msgstr ""
-#: data/org.gnome.shell.gschema.xml.in:277
+#: data/org.gnome.shell.gschema.xml.in:310
msgid "Attach modal dialog to the parent window"
msgstr ""
-#: data/org.gnome.shell.gschema.xml.in:278
-#: data/org.gnome.shell.gschema.xml.in:287
-#: data/org.gnome.shell.gschema.xml.in:295
-#: data/org.gnome.shell.gschema.xml.in:303
#: 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:336
+#: data/org.gnome.shell.gschema.xml.in:344
msgid ""
"This key overrides the key in org.gnome.mutter when running GNOME Shell."
msgstr ""
-#: data/org.gnome.shell.gschema.xml.in:286
+#: data/org.gnome.shell.gschema.xml.in:319
msgid "Enable edge tiling when dropping windows on screen edges"
msgstr ""
-#: data/org.gnome.shell.gschema.xml.in:294
+#: data/org.gnome.shell.gschema.xml.in:327
msgid "Workspaces are managed dynamically"
msgstr ""
-#: data/org.gnome.shell.gschema.xml.in:302
+#: data/org.gnome.shell.gschema.xml.in:335
msgid "Workspaces only on primary monitor"
msgstr ""
-#: data/org.gnome.shell.gschema.xml.in:310
+#: data/org.gnome.shell.gschema.xml.in:343
msgid "Delay focus changes in mouse mode until the pointer stops moving"
msgstr ""
#: data/org.gnome.Shell.PortalHelper.desktop.in.in:3
msgid "Network Login"
-msgstr ""
+msgstr "Tuqqna ɣer uẓeṭṭa"
-#: js/dbusServices/extensions/ui/extension-prefs-dialog.ui:36
-#: subprojects/extensions-app/data/ui/extensions-window.ui:224
+#: js/dbusServices/extensions/ui/extension-prefs-dialog.ui:28
+#: subprojects/extensions-app/data/ui/extensions-window.ui:241
msgid "Something’s gone wrong"
msgstr ""
-#: js/dbusServices/extensions/ui/extension-prefs-dialog.ui:48
+#: js/dbusServices/extensions/ui/extension-prefs-dialog.ui:39
msgid ""
"We’re very sorry, but there’s been a problem: the settings for this "
"extension can’t be displayed. We recommend that you report the issue to the "
"extension authors."
msgstr ""
-#: js/dbusServices/extensions/ui/extension-prefs-dialog.ui:82
+#: js/dbusServices/extensions/ui/extension-prefs-dialog.ui:64
msgid "Technical Details"
msgstr "Talqayt taiknant"
-#: js/dbusServices/extensions/ui/extension-prefs-dialog.ui:165
+#: js/dbusServices/extensions/ui/extension-prefs-dialog.ui:106
msgid "Homepage"
msgstr "Asebter agejdan"
-#: js/dbusServices/extensions/ui/extension-prefs-dialog.ui:166
+#: js/dbusServices/extensions/ui/extension-prefs-dialog.ui:107
msgid "Visit extension homepage"
msgstr "Rzu s asmel n useɣzef"
-#: js/gdm/authPrompt.js:136 js/ui/audioDeviceSelection.js:57
-#: js/ui/components/networkAgent.js:111 js/ui/components/polkitAgent.js:139
-#: js/ui/endSessionDialog.js:438 js/ui/extensionDownloader.js:183
+#: js/gdm/authPrompt.js:141 js/ui/audioDeviceSelection.js:61
+#: js/ui/components/networkAgent.js:110 js/ui/components/polkitAgent.js:138
+#: 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:940 subprojects/extensions-app/js/main.js:149
+#: js/ui/status/network.js:978 subprojects/extensions-app/js/main.js:183
msgid "Cancel"
msgstr "Sefsex"
#. Cisco LEAP
-#: js/gdm/authPrompt.js:238 js/ui/components/networkAgent.js:206
-#: js/ui/components/networkAgent.js:222 js/ui/components/networkAgent.js:246
-#: js/ui/components/networkAgent.js:267 js/ui/components/networkAgent.js:287
-#: js/ui/components/networkAgent.js:297 js/ui/components/polkitAgent.js:277
+#: js/gdm/authPrompt.js:285 js/ui/components/networkAgent.js:209
+#: js/ui/components/networkAgent.js:225 js/ui/components/networkAgent.js:249
+#: js/ui/components/networkAgent.js:270 js/ui/components/networkAgent.js:290
+#: js/ui/components/networkAgent.js:300 js/ui/components/polkitAgent.js:275
#: js/ui/shellMountOperation.js:326
msgid "Password"
msgstr "Awal ufir"
-#: js/gdm/loginDialog.js:318
+#: js/gdm/loginDialog.js:317
msgid "Choose Session"
msgstr "Fren tiɣimit"
-#: js/gdm/loginDialog.js:457
+#: js/gdm/loginDialog.js:456
msgid "Not listed?"
-msgstr ""
+msgstr "Ur d-yettwabder ara?"
#. Translators: this message is shown below the username entry field
#. to clue the user in on how to login to the local network realm
-#: js/gdm/loginDialog.js:913
+#: js/gdm/loginDialog.js:921
#, javascript-format
msgid "(e.g., user or %s)"
msgstr ""
@@ -412,26 +459,29 @@ msgstr ""
#. TTLS and PEAP are actually much more complicated, but this complication
#. is not visible here since we only care about phase2 authentication
#. (and don't even care of which one)
-#: js/gdm/loginDialog.js:918 js/ui/components/networkAgent.js:242
-#: js/ui/components/networkAgent.js:265 js/ui/components/networkAgent.js:283
+#: js/gdm/loginDialog.js:926 js/ui/components/networkAgent.js:245
+#: js/ui/components/networkAgent.js:268 js/ui/components/networkAgent.js:286
msgid "Username"
msgstr "Isem n useqdac"
-#: js/gdm/loginDialog.js:1253
+#: js/gdm/loginDialog.js:1279
msgid "Login Window"
-msgstr ""
+msgstr "Asfaylu n usesteb"
-#: js/gdm/util.js:355
+#: js/gdm/util.js:430
msgid "Authentication error"
msgstr "Tuccḍa deg usesteb"
-#. We don't show fingerprint messages directly since it's
-#. not the main auth service. Instead we use the messages
-#. as a cue to display our own message.
#. Translators: this message is shown below the password entry field
-#. to indicate the user can swipe their finger instead
-#: js/gdm/util.js:481
-msgid "(or swipe finger)"
+#. to indicate the user can swipe their finger on the fingerprint reader
+#: js/gdm/util.js:589
+msgid "(or swipe finger across reader)"
+msgstr ""
+
+#. Translators: this message is shown below the password entry field
+#. to indicate the user can place their finger on the fingerprint reader instead
+#: js/gdm/util.js:594
+msgid "(or place finger on reader)"
msgstr ""
#. Translators: The name of the power-off action in search
@@ -460,7 +510,7 @@ msgstr ""
#: js/misc/systemActions.js:98
msgctxt "search-result"
msgid "Lock Screen"
-msgstr ""
+msgstr "Sekkeṛ agdil"
#. Translators: A list of keywords that match the lock screen action, separated by semicolons
#: js/misc/systemActions.js:101
@@ -482,7 +532,7 @@ msgstr ""
#: js/misc/systemActions.js:114
msgctxt "search-result"
msgid "Suspend"
-msgstr ""
+msgstr "Ḥbes di leεḍil"
#. Translators: A list of keywords that match the suspend action, separated by semicolons
#: js/misc/systemActions.js:117
@@ -505,75 +555,75 @@ msgstr "senfel aseqdac"
msgid "lock orientation;unlock orientation;screen;rotation"
msgstr ""
-#: js/misc/systemActions.js:240
+#: js/misc/systemActions.js:232
msgctxt "search-result"
msgid "Unlock Screen Rotation"
msgstr "Serreḥ i tuzzya n ugdil"
-#: js/misc/systemActions.js:241
+#: js/misc/systemActions.js:233
msgctxt "search-result"
msgid "Lock Screen Rotation"
msgstr "Sekkeṛ tuzzya n ugdil"
-#: js/misc/util.js:120
+#: js/misc/util.js:121
msgid "Command not found"
-msgstr ""
+msgstr "Ulac taladna"
#. Replace "Error invoking GLib.shell_parse_argv: " with
#. something nicer
-#: js/misc/util.js:156
+#: js/misc/util.js:157
msgid "Could not parse command:"
msgstr ""
-#: js/misc/util.js:164
+#: js/misc/util.js:165
#, javascript-format
msgid "Execution of “%s” failed:"
msgstr ""
-#: js/misc/util.js:181
+#: js/misc/util.js:182
msgid "Just now"
msgstr "Tura kan"
-#: js/misc/util.js:183
+#: js/misc/util.js:184
#, javascript-format
msgid "%d minute ago"
msgid_plural "%d minutes ago"
msgstr[0] "%d n tsedidt aya"
msgstr[1] "%d n tsedidin aya"
-#: js/misc/util.js:187
+#: js/misc/util.js:188
#, javascript-format
msgid "%d hour ago"
msgid_plural "%d hours ago"
msgstr[0] "%d n usrag aya"
msgstr[1] "%d n yisragen aya"
-#: js/misc/util.js:191 js/ui/dateMenu.js:162
+#: js/misc/util.js:192 js/ui/dateMenu.js:162
msgid "Yesterday"
msgstr "Iḍeli"
-#: js/misc/util.js:193
+#: js/misc/util.js:194
#, javascript-format
msgid "%d day ago"
msgid_plural "%d days ago"
msgstr[0] "%d n wass aya"
msgstr[1] "%d n wussan aya"
-#: js/misc/util.js:197
+#: js/misc/util.js:198
#, javascript-format
msgid "%d week ago"
msgid_plural "%d weeks ago"
msgstr[0] "%d n imalas aya"
msgstr[1] "%d n yimalasen"
-#: js/misc/util.js:201
+#: js/misc/util.js:202
#, javascript-format
msgid "%d month ago"
msgid_plural "%d months ago"
msgstr[0] "%d n waggur aya"
msgstr[1] "%d n wagguren aya"
-#: js/misc/util.js:204
+#: js/misc/util.js:205
#, javascript-format
msgid "%d year ago"
msgid_plural "%d years ago"
@@ -581,83 +631,83 @@ msgstr[0] "%d n useggas aya"
msgstr[1] "%d n yiseggasen aya"
#. Translators: Time in 24h format
-#: js/misc/util.js:237
+#: js/misc/util.js:238
msgid "%H∶%M"
-msgstr ""
+msgstr "%H∶%M"
#. Translators: this is the word "Yesterday" followed by a
#. time string in 24h format. i.e. "Yesterday, 14:30"
-#: js/misc/util.js:243
+#: js/misc/util.js:244
#, no-c-format
msgid "Yesterday, %H∶%M"
-msgstr ""
+msgstr "Iḍelli, %H:%M"
#. Translators: this is the week day name followed by a time
#. string in 24h format. i.e. "Monday, 14:30"
-#: js/misc/util.js:249
+#: js/misc/util.js:250
#, no-c-format
msgid "%A, %H∶%M"
-msgstr ""
+msgstr "%A, %H∶%M"
#. Translators: this is the month name and day number
#. followed by a time string in 24h format.
#. i.e. "May 25, 14:30"
-#: js/misc/util.js:255
+#: js/misc/util.js:256
#, no-c-format
msgid "%B %-d, %H∶%M"
-msgstr ""
+msgstr "%B %-d, %H∶%M"
#. Translators: this is the month name, day number, year
#. number followed by a time string in 24h format.
#. i.e. "May 25 2012, 14:30"
-#: js/misc/util.js:261
+#: js/misc/util.js:262
#, no-c-format
msgid "%B %-d %Y, %H∶%M"
-msgstr ""
+msgstr "%B %-d %Y, %H∶%M"
#. Show only the time if date is on today
#. eslint-disable-line no-lonely-if
#. Translators: Time in 12h format
-#: js/misc/util.js:266
+#: js/misc/util.js:267
msgid "%l∶%M %p"
-msgstr ""
+msgstr "%l∶%M %p"
#. Translators: this is the word "Yesterday" followed by a
#. time string in 12h format. i.e. "Yesterday, 2:30 pm"
-#: js/misc/util.js:272
+#: js/misc/util.js:273
#, no-c-format
msgid "Yesterday, %l∶%M %p"
-msgstr ""
+msgstr "Iḍelli, %l:%M %p"
#. Translators: this is the week day name followed by a time
#. string in 12h format. i.e. "Monday, 2:30 pm"
-#: js/misc/util.js:278
+#: js/misc/util.js:279
#, no-c-format
msgid "%A, %l∶%M %p"
-msgstr ""
+msgstr "%A, %l∶%M %p"
#. Translators: this is the month name and day number
#. followed by a time string in 12h format.
#. i.e. "May 25, 2:30 pm"
-#: js/misc/util.js:284
+#: js/misc/util.js:285
#, no-c-format
msgid "%B %-d, %l∶%M %p"
-msgstr ""
+msgstr "%B %-d, %l∶%M %p"
#. Translators: this is the month name, day number, year
#. number followed by a time string in 12h format.
#. i.e. "May 25 2012, 2:30 pm"
-#: js/misc/util.js:290
+#: js/misc/util.js:291
#, no-c-format
msgid "%B %-d %Y, %l∶%M %p"
-msgstr ""
+msgstr "%B %-d %Y, %l∶%M %p"
#. TRANSLATORS: this is the title of the wifi captive portal login window
-#: js/portalHelper/main.js:41
+#: js/portalHelper/main.js:49
msgid "Hotspot Login"
msgstr ""
-#: js/portalHelper/main.js:87
+#: js/portalHelper/main.js:95
msgid ""
"Your connection to this hotspot login is not secure. Passwords or other "
"information you enter on this page can be viewed by people nearby."
@@ -665,47 +715,18 @@ msgstr ""
#. No support for non-modal system dialogs, so ignore the option
#. let modal = options['modal'] || true;
-#: js/ui/accessDialog.js:39 js/ui/status/location.js:369
+#: js/ui/accessDialog.js:39 js/ui/status/location.js:417
msgid "Deny Access"
msgstr "Agi adduf"
-#: js/ui/accessDialog.js:40 js/ui/status/location.js:372
+#: js/ui/accessDialog.js:40 js/ui/status/location.js:420
msgid "Grant Access"
-msgstr ""
+msgstr "Mudd tasiregt"
-#: js/ui/appDisplay.js:1310
+#: js/ui/appDisplay.js:1846
msgid "Unnamed Folder"
msgstr "Akaram war isem"
-#. Translators: This is the heading of a list of open windows
-#: js/ui/appDisplay.js:2779 js/ui/panel.js:75
-msgid "Open Windows"
-msgstr "Ldi asfaylu"
-
-#: js/ui/appDisplay.js:2798 js/ui/panel.js:82
-msgid "New Window"
-msgstr "Asfaylu amaynut"
-
-#: js/ui/appDisplay.js:2814
-msgid "Launch using Integrated Graphics Card"
-msgstr ""
-
-#: js/ui/appDisplay.js:2815
-msgid "Launch using Discrete Graphics Card"
-msgstr ""
-
-#: js/ui/appDisplay.js:2843 js/ui/dash.js:239
-msgid "Remove from Favorites"
-msgstr "Kkes seg yinurifen"
-
-#: js/ui/appDisplay.js:2849
-msgid "Add to Favorites"
-msgstr "Rnu s inurifen"
-
-#: js/ui/appDisplay.js:2859 js/ui/panel.js:93
-msgid "Show Details"
-msgstr "Sken talqayt"
-
#: js/ui/appFavorites.js:164
#, javascript-format
msgid "%s has been added to your favorites."
@@ -716,23 +737,56 @@ msgstr "%s yettwarna s inuraf-inek m."
msgid "%s has been removed from your favorites."
msgstr "%s yettwakkes s inuraf-inek m."
+#. Translators: This is the heading of a list of open windows
+#: js/ui/appMenu.js:46
+msgid "Open Windows"
+msgstr "Ldi asfaylu"
+
+#: js/ui/appMenu.js:54
+msgid "New Window"
+msgstr "Asfaylu amaynut"
+
+#: js/ui/appMenu.js:81
+msgid "Show Details"
+msgstr "Sken talqayt"
+
+#: js/ui/appMenu.js:96
+msgid "Quit"
+msgstr "Ffeɣ"
+
+#: js/ui/appMenu.js:163 js/ui/dash.js:245
+msgid "Remove from Favorites"
+msgstr "Kkes seg yinurifen"
+
+#: js/ui/appMenu.js:164
+msgid "Add to Favorites"
+msgstr "Rnu s inurifen"
+
+#: js/ui/appMenu.js:181
+msgid "Launch using Integrated Graphics Card"
+msgstr ""
+
+#: js/ui/appMenu.js:182
+msgid "Launch using Discrete Graphics Card"
+msgstr ""
+
#: js/ui/audioDeviceSelection.js:41
msgid "Select Audio Device"
msgstr "Fren ibenk ameslaw"
-#: js/ui/audioDeviceSelection.js:54
+#: js/ui/audioDeviceSelection.js:56
msgid "Sound Settings"
msgstr "Iɣewwaren n yimesli"
-#: js/ui/audioDeviceSelection.js:64
+#: js/ui/audioDeviceSelection.js:69
msgid "Headphones"
-msgstr ""
+msgstr "Isawaḍen n uqerru"
-#: js/ui/audioDeviceSelection.js:66
+#: js/ui/audioDeviceSelection.js:71
msgid "Headset"
-msgstr ""
+msgstr "Kask"
-#: js/ui/audioDeviceSelection.js:68 js/ui/status/volume.js:272
+#: js/ui/audioDeviceSelection.js:73 js/ui/status/volume.js:277
msgid "Microphone"
msgstr "Asawaḍ"
@@ -762,43 +816,43 @@ msgstr "06"
#: js/ui/calendar.js:65
msgctxt "grid sunday"
msgid "S"
-msgstr ""
+msgstr "Sed"
#. Translators: Calendar grid abbreviation for Monday
#: js/ui/calendar.js:67
msgctxt "grid monday"
msgid "M"
-msgstr ""
+msgstr "A"
#. Translators: Calendar grid abbreviation for Tuesday
#: js/ui/calendar.js:69
msgctxt "grid tuesday"
msgid "T"
-msgstr ""
+msgstr "Am"
#. Translators: Calendar grid abbreviation for Wednesday
#: js/ui/calendar.js:71
msgctxt "grid wednesday"
msgid "W"
-msgstr ""
+msgstr "M"
#. Translators: Calendar grid abbreviation for Thursday
#: js/ui/calendar.js:73
msgctxt "grid thursday"
msgid "T"
-msgstr ""
+msgstr "Am"
#. Translators: Calendar grid abbreviation for Friday
#: js/ui/calendar.js:75
msgctxt "grid friday"
msgid "F"
-msgstr ""
+msgstr "F"
#. Translators: Calendar grid abbreviation for Saturday
#: js/ui/calendar.js:77
msgctxt "grid saturday"
msgid "S"
-msgstr ""
+msgstr "Sed"
#. *
#. * Translators: The header displaying just the month name
@@ -808,7 +862,7 @@ msgstr ""
#.
#: js/ui/calendar.js:392
msgid "%OB"
-msgstr ""
+msgstr "%OB"
#. *
#. * Translators: The header displaying the month name and the year
@@ -821,7 +875,7 @@ msgstr ""
#.
#: js/ui/calendar.js:402
msgid "%OB %Y"
-msgstr ""
+msgstr "%OB %Y"
#: js/ui/calendar.js:461
msgid "Previous month"
@@ -835,7 +889,7 @@ msgstr "Aggur d-itteddun"
#, no-javascript-format
msgctxt "date day number format"
msgid "%d"
-msgstr ""
+msgstr "%d"
#: js/ui/calendar.js:682
msgid "Week %V"
@@ -849,7 +903,7 @@ msgstr "Ulac tilɣa"
msgid "Do Not Disturb"
msgstr ""
-#: js/ui/calendar.js:969
+#: js/ui/calendar.js:971
msgid "Clear"
msgstr "Sfeḍ"
@@ -873,19 +927,19 @@ msgstr "Ḥettem tuffɣa"
msgid "Wait"
msgstr "Rǧu"
-#: js/ui/components/automountManager.js:86
+#: js/ui/components/automountManager.js:85
msgid "External drive connected"
msgstr "Ibenk uffiɣ yettwaqqen"
-#: js/ui/components/automountManager.js:98
+#: js/ui/components/automountManager.js:97
msgid "External drive disconnected"
msgstr "Ibenk uffiɣ yenser"
-#: js/ui/components/automountManager.js:208
+#: js/ui/components/automountManager.js:206
msgid "Unable to unlock volume"
msgstr "Ulamek aserreḥ n ubleɣ"
-#: js/ui/components/automountManager.js:209
+#: js/ui/components/automountManager.js:207
msgid "The installed udisks version does not support the PIM setting"
msgstr ""
@@ -894,80 +948,80 @@ msgstr ""
msgid "Open with %s"
msgstr "Ldi s %s"
-#: js/ui/components/networkAgent.js:93
+#: js/ui/components/networkAgent.js:92
msgid ""
"Alternatively you can connect by pushing the “WPS” button on your router."
msgstr ""
-#: js/ui/components/networkAgent.js:105 js/ui/status/network.js:252
-#: js/ui/status/network.js:343 js/ui/status/network.js:943
+#: js/ui/components/networkAgent.js:104 js/ui/status/network.js:258
+#: js/ui/status/network.js:349 js/ui/status/network.js:981
msgid "Connect"
msgstr "Qqen"
-#: js/ui/components/networkAgent.js:212
+#: js/ui/components/networkAgent.js:215
msgid "Key"
msgstr "Tasarut"
-#: js/ui/components/networkAgent.js:250 js/ui/components/networkAgent.js:273
+#: js/ui/components/networkAgent.js:253 js/ui/components/networkAgent.js:276
msgid "Private key password"
msgstr ""
-#: js/ui/components/networkAgent.js:271
+#: js/ui/components/networkAgent.js:274
msgid "Identity"
msgstr "Tamagit"
-#: js/ui/components/networkAgent.js:285
+#: js/ui/components/networkAgent.js:288
msgid "Service"
msgstr "Ameẓlu"
-#: js/ui/components/networkAgent.js:314 js/ui/components/networkAgent.js:342
-#: js/ui/components/networkAgent.js:675 js/ui/components/networkAgent.js:696
+#: js/ui/components/networkAgent.js:317 js/ui/components/networkAgent.js:345
+#: js/ui/components/networkAgent.js:679 js/ui/components/networkAgent.js:700
msgid "Authentication required"
msgstr "Illaq usesteb"
-#: js/ui/components/networkAgent.js:315 js/ui/components/networkAgent.js:676
+#: js/ui/components/networkAgent.js:318 js/ui/components/networkAgent.js:680
#, javascript-format
msgid ""
"Passwords or encryption keys are required to access the wireless network "
"“%s”."
msgstr ""
-#: js/ui/components/networkAgent.js:319 js/ui/components/networkAgent.js:680
+#: js/ui/components/networkAgent.js:322 js/ui/components/networkAgent.js:684
msgid "Wired 802.1X authentication"
msgstr ""
-#: js/ui/components/networkAgent.js:321
+#: js/ui/components/networkAgent.js:324
msgid "Network name"
msgstr "Isem n uzeḍḍa"
-#: js/ui/components/networkAgent.js:326 js/ui/components/networkAgent.js:684
+#: js/ui/components/networkAgent.js:329 js/ui/components/networkAgent.js:688
msgid "DSL authentication"
msgstr "Asesteb DSL"
-#: js/ui/components/networkAgent.js:333 js/ui/components/networkAgent.js:689
+#: js/ui/components/networkAgent.js:336 js/ui/components/networkAgent.js:693
msgid "PIN code required"
msgstr "Tangalt PIN tettwasra"
-#: js/ui/components/networkAgent.js:334 js/ui/components/networkAgent.js:690
+#: js/ui/components/networkAgent.js:337 js/ui/components/networkAgent.js:694
msgid "PIN code is needed for the mobile broadband device"
msgstr ""
-#: js/ui/components/networkAgent.js:335
+#: js/ui/components/networkAgent.js:338
msgid "PIN"
msgstr "PIN"
-#: js/ui/components/networkAgent.js:343 js/ui/components/networkAgent.js:681
-#: js/ui/components/networkAgent.js:685 js/ui/components/networkAgent.js:697
-#: js/ui/components/networkAgent.js:701
+#: 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:705
#, javascript-format
msgid "A password is required to connect to “%s”."
msgstr "Awal n uɛeddi yettwsra i tuqqna ɣer “%s”."
-#: js/ui/components/networkAgent.js:664 js/ui/status/network.js:1718
+#: js/ui/components/networkAgent.js:668 js/ui/status/network.js:1789
msgid "Network Manager"
msgstr "Amsefrak n uzeḍḍa"
-#: js/ui/components/networkAgent.js:700
+#: js/ui/components/networkAgent.js:704
msgid "VPN password"
msgstr "Awal n uɛeddi VPN"
@@ -975,11 +1029,11 @@ msgstr "Awal n uɛeddi VPN"
msgid "Authentication Required"
msgstr "Illaq usesteb"
-#: js/ui/components/polkitAgent.js:80
+#: js/ui/components/polkitAgent.js:79
msgid "Administrator"
msgstr "Anedbal"
-#: js/ui/components/polkitAgent.js:142
+#: js/ui/components/polkitAgent.js:141
msgid "Authenticate"
msgstr "Asesteb"
@@ -987,7 +1041,7 @@ msgstr "Asesteb"
#. * requested authentication was not gained; this can happen
#. * because of an authentication error (like invalid password),
#. * for instance.
-#: js/ui/components/polkitAgent.js:254 js/ui/shellMountOperation.js:402
+#: js/ui/components/polkitAgent.js:252 js/ui/shellMountOperation.js:402
msgid "Sorry, that didn’t work. Please try again."
msgstr "Surfaɣ, ayagi ur yeddi ara. Ttxil-k m eɛreḍ tikkelt-nniḍen."
@@ -998,11 +1052,11 @@ msgstr "Surfaɣ, ayagi ur yeddi ara. Ttxil-k m eɛreḍ tikkelt-nniḍen."
msgid "%s is now known as %s"
msgstr ""
-#: js/ui/ctrlAltTab.js:21 js/ui/viewSelector.js:178
+#: js/ui/ctrlAltTab.js:21 js/ui/overviewControls.js:404
msgid "Windows"
msgstr "Isfuyla"
-#: js/ui/dash.js:200 js/ui/dash.js:241
+#: js/ui/dash.js:204 js/ui/dash.js:247
msgid "Show Applications"
msgstr "Sken isnasen"
@@ -1019,7 +1073,7 @@ msgstr ""
#.
#: js/ui/dateMenu.js:79
msgid "%B %-d %Y"
-msgstr ""
+msgstr "%B %-d %Y"
#. Translators: This is the accessible name of the date button shown
#. * below the time in the shell; it should combine the weekday and the
@@ -1027,19 +1081,19 @@ msgstr ""
#.
#: js/ui/dateMenu.js:86
msgid "%A %B %e %Y"
-msgstr ""
+msgstr "%A %B %e %Y"
#. Translators: Shown on calendar heading when selected day occurs on current year
#: js/ui/dateMenu.js:151
msgctxt "calendar heading"
msgid "%B %-d"
-msgstr ""
+msgstr "%B %-d"
#. Translators: Shown on calendar heading when selected day occurs on different year
#: js/ui/dateMenu.js:154
msgctxt "calendar heading"
msgid "%B %-d %Y"
-msgstr ""
+msgstr "%B %-d %Y"
#: js/ui/dateMenu.js:160
msgid "Today"
@@ -1055,7 +1109,7 @@ msgstr "Azekka"
#: js/ui/dateMenu.js:180
msgctxt "event list time"
msgid "All Day"
-msgstr ""
+msgstr "Meṛṛa ass"
#: js/ui/dateMenu.js:231
msgid "No Events"
@@ -1226,38 +1280,38 @@ msgstr ""
#: js/ui/endSessionDialog.js:467
msgctxt "button"
msgid "Boot Options"
-msgstr ""
+msgstr "Iɣewwaṛen n usenker"
#. Translators: Remote here refers to a remote session, like a ssh login
-#: js/ui/endSessionDialog.js:685
+#: js/ui/endSessionDialog.js:686
#, javascript-format
msgid "%s (remote)"
-msgstr ""
+msgstr "%s (anmeggag)"
#. Translators: Console here refers to a tty like a VT console
-#: js/ui/endSessionDialog.js:688
+#: js/ui/endSessionDialog.js:689
#, javascript-format
msgid "%s (console)"
-msgstr ""
+msgstr "%s (tadiwent)"
-#: js/ui/extensionDownloader.js:187
+#: js/ui/extensionDownloader.js:232
msgid "Install"
msgstr "Sebded"
-#: js/ui/extensionDownloader.js:193
+#: js/ui/extensionDownloader.js:238
msgid "Install Extension"
msgstr "Sbed aseɣzef"
-#: js/ui/extensionDownloader.js:194
+#: js/ui/extensionDownloader.js:239
#, javascript-format
msgid "Download and install “%s” from extensions.gnome.org?"
msgstr ""
-#: js/ui/extensionSystem.js:253
+#: js/ui/extensionSystem.js:252
msgid "Extension Updates Available"
msgstr ""
-#: js/ui/extensionSystem.js:254
+#: js/ui/extensionSystem.js:253
msgid "Extension updates are ready to be installed."
msgstr ""
@@ -1303,45 +1357,45 @@ msgid ""
"Slow Keys feature, which affects the way your keyboard works."
msgstr ""
-#: js/ui/kbdA11yDialog.js:41
+#: js/ui/kbdA11yDialog.js:40
msgid "Sticky Keys Turned On"
msgstr ""
-#: js/ui/kbdA11yDialog.js:42
+#: js/ui/kbdA11yDialog.js:41
msgid "Sticky Keys Turned Off"
msgstr ""
-#: js/ui/kbdA11yDialog.js:44
+#: js/ui/kbdA11yDialog.js:43
msgid ""
"You just pressed the Shift key 5 times in a row. This is the shortcut for "
"the Sticky Keys feature, which affects the way your keyboard works."
msgstr ""
-#: js/ui/kbdA11yDialog.js:46
+#: js/ui/kbdA11yDialog.js:45
msgid ""
"You just pressed two keys at once, or pressed the Shift key 5 times in a "
"row. This turns off the Sticky Keys feature, which affects the way your "
"keyboard works."
msgstr ""
-#: js/ui/kbdA11yDialog.js:55
+#: js/ui/kbdA11yDialog.js:54
msgid "Leave On"
msgstr ""
-#: js/ui/kbdA11yDialog.js:55 js/ui/status/bluetooth.js:156
-#: js/ui/status/network.js:1315
+#: js/ui/kbdA11yDialog.js:54 js/ui/status/bluetooth.js:156
+#: js/ui/status/network.js:1377
msgid "Turn On"
msgstr ""
-#: js/ui/kbdA11yDialog.js:63 js/ui/status/bluetooth.js:156
-#: js/ui/status/network.js:160 js/ui/status/network.js:344
-#: js/ui/status/network.js:1315 js/ui/status/network.js:1427
+#: 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:1377 js/ui/status/network.js:1489
#: js/ui/status/nightLight.js:41 js/ui/status/rfkill.js:81
#: js/ui/status/rfkill.js:110
msgid "Turn Off"
msgstr "Sens"
-#: js/ui/kbdA11yDialog.js:63
+#: js/ui/kbdA11yDialog.js:62
msgid "Leave Off"
msgstr ""
@@ -1349,163 +1403,163 @@ msgstr ""
msgid "Region & Language Settings"
msgstr "Iɣewwaren n tutlayt akked tmennaḍt"
-#: js/ui/lookingGlass.js:664
+#: js/ui/lookingGlass.js:676
msgid "No extensions installed"
msgstr "Ulac iseɣzaf yettwasbedden"
#. Translators: argument is an extension UUID.
-#: js/ui/lookingGlass.js:719
+#: js/ui/lookingGlass.js:734
#, javascript-format
msgid "%s has not emitted any errors."
msgstr ""
-#: js/ui/lookingGlass.js:725
+#: js/ui/lookingGlass.js:740
msgid "Hide Errors"
msgstr "Ffer tuccḍiwin"
-#: js/ui/lookingGlass.js:729 js/ui/lookingGlass.js:794
+#: js/ui/lookingGlass.js:744 js/ui/lookingGlass.js:810
msgid "Show Errors"
msgstr "Sken tuccḍiwin"
-#: js/ui/lookingGlass.js:738
+#: js/ui/lookingGlass.js:753
msgid "Enabled"
msgstr "Yermed"
#. translators:
#. * The device has been disabled
-#: js/ui/lookingGlass.js:741 subprojects/gvc/gvc-mixer-control.c:1892
+#: js/ui/lookingGlass.js:756 subprojects/gvc/gvc-mixer-control.c:1900
msgid "Disabled"
msgstr "Yensa"
-#: js/ui/lookingGlass.js:743
-#: subprojects/extensions-app/data/ui/extension-row.ui:188
+#: js/ui/lookingGlass.js:758
+#: subprojects/extensions-app/data/ui/extension-row.ui:158
msgid "Error"
msgstr "Tuccḍa"
-#: js/ui/lookingGlass.js:745
+#: js/ui/lookingGlass.js:760
msgid "Out of date"
-msgstr ""
+msgstr "Yezri"
-#: js/ui/lookingGlass.js:747
+#: js/ui/lookingGlass.js:762
msgid "Downloading"
msgstr "Asider"
-#: js/ui/lookingGlass.js:776
+#: js/ui/lookingGlass.js:792
msgid "View Source"
msgstr "Wali aɣbalu"
-#: js/ui/lookingGlass.js:785
+#: js/ui/lookingGlass.js:801
msgid "Web Page"
msgstr ""
-#: js/ui/main.js:294
+#: js/ui/main.js:290
msgid "Logged in as a privileged user"
msgstr ""
-#: js/ui/main.js:295
+#: js/ui/main.js:291
msgid ""
"Running a session as a privileged user should be avoided for security "
"reasons. If possible, you should log in as a normal user."
msgstr ""
-#: js/ui/main.js:334
+#: js/ui/main.js:340
msgid "Screen Lock disabled"
msgstr "Asekkeṛ n wegdil yensa"
-#: js/ui/main.js:335
+#: js/ui/main.js:341
msgid "Screen Locking requires the GNOME display manager."
msgstr "Asekkeṛ n wegdil yesra amsefrak n ubeqeḍ n GNOME."
-#: js/ui/messageTray.js:1476
+#: js/ui/messageTray.js:1443
msgid "System Information"
msgstr "Talɣut n unagraw"
-#: js/ui/mpris.js:203
+#: js/ui/mpris.js:207
msgid "Unknown artist"
msgstr "Anaẓur arussin"
-#: js/ui/mpris.js:213
+#: js/ui/mpris.js:217
msgid "Unknown title"
msgstr "Azwel arussin"
-#: js/ui/overview.js:74
-msgid "Undo"
-msgstr "Sefsex"
-
-#. Translators: This is the main view to select
-#. activities. See also note for "Activities" string.
-#: js/ui/overview.js:87
-msgid "Overview"
-msgstr "Agzul"
-
#. Translators: this is the text displayed
#. in the search entry when no search is
#. active; it should not exceed ~30
#. characters.
-#: js/ui/overview.js:108
+#: js/ui/overviewControls.js:313
msgid "Type to search"
msgstr "Aru iwakken ad tnadiḍ"
-#: js/ui/padOsd.js:96
+#: js/ui/overviewControls.js:392
+msgid "Applications"
+msgstr "Isnasen"
+
+#: js/ui/overview.js:58
+msgid "Undo"
+msgstr "Sefsex"
+
+#. Translators: This is the main view to select
+#. activities. See also note for "Activities" string.
+#: js/ui/overview.js:71
+msgid "Overview"
+msgstr "Agzul"
+
+#: js/ui/padOsd.js:95
msgid "New shortcut…"
msgstr "Anegzum amaynut…"
-#: js/ui/padOsd.js:143
+#: js/ui/padOsd.js:142
msgid "Application defined"
msgstr ""
-#: js/ui/padOsd.js:144
+#: js/ui/padOsd.js:143
msgid "Show on-screen help"
msgstr ""
-#: js/ui/padOsd.js:145
+#: js/ui/padOsd.js:144
msgid "Switch monitor"
msgstr ""
-#: js/ui/padOsd.js:146
+#: js/ui/padOsd.js:145
msgid "Assign keystroke"
msgstr ""
-#: js/ui/padOsd.js:212
+#: js/ui/padOsd.js:211
msgid "Done"
msgstr "Immed"
-#: js/ui/padOsd.js:732
+#: js/ui/padOsd.js:716
msgid "Edit…"
msgstr "Ẓreg…"
-#: js/ui/padOsd.js:774 js/ui/padOsd.js:891
+#: js/ui/padOsd.js:758 js/ui/padOsd.js:875
msgid "None"
msgstr "Ulac"
-#: js/ui/padOsd.js:845
+#: js/ui/padOsd.js:829
msgid "Press a button to configure"
msgstr "Ssed taqeffalt iwakken ad tsewleḍ"
-#: js/ui/padOsd.js:846
+#: js/ui/padOsd.js:830
msgid "Press Esc to exit"
msgstr "Ssed taqeffalt ESC iwakken ad teffɣeḍ"
-#: js/ui/padOsd.js:849
+#: js/ui/padOsd.js:833
msgid "Press any key to exit"
msgstr "Ssed taqeffalt menwala iwakken ad teffɣeḍ"
-#: js/ui/panel.js:107
-msgid "Quit"
-msgstr "Ffeɣ"
-
#. Translators: If there is no suitable word for "Activities"
#. in your language, you can use the word for "Overview".
-#: js/ui/panel.js:435
+#: js/ui/panel.js:271
msgid "Activities"
msgstr "Irmuden"
-#: js/ui/panel.js:714
+#: js/ui/panel.js:556
msgctxt "System menu in the top bar"
msgid "System"
msgstr "Anagraw"
-#: js/ui/panel.js:825
+#: js/ui/panel.js:674
msgid "Top Bar"
msgstr "Afeggag n ufella"
@@ -1525,7 +1579,7 @@ msgstr ""
msgid "Restarting…"
msgstr "Tulsa n tnekra…"
-#: js/ui/screenShield.js:203
+#: js/ui/screenShield.js:224
msgid "GNOME needs to lock the screen"
msgstr "GNOME yesra ad isekkeṛ agdil"
@@ -1536,29 +1590,37 @@ msgstr "GNOME yesra ad isekkeṛ agdil"
#.
#. XXX: another option is to kick the user into the gdm login
#. screen, where we're not affected by grabs
-#: js/ui/screenShield.js:244 js/ui/screenShield.js:602
+#: js/ui/screenShield.js:264 js/ui/screenShield.js:634
msgid "Unable to lock"
msgstr "Ulamek asekkeṛ"
-#: js/ui/screenShield.js:245 js/ui/screenShield.js:603
+#: js/ui/screenShield.js:265 js/ui/screenShield.js:635
msgid "Lock was blocked by an application"
msgstr ""
-#: js/ui/search.js:823
+#: js/ui/screenshot.js:155
+msgid "Screenshot taken"
+msgstr "Tuṭṭfa n ugdil tedda"
+
+#: js/ui/search.js:825
msgid "Searching…"
msgstr "Anadi…"
-#: js/ui/search.js:825
+#: js/ui/search.js:827
msgid "No results."
msgstr "Ulac igmaḍ."
-#: js/ui/search.js:951
+#: js/ui/search.js:953
#, javascript-format
msgid "%d more"
msgid_plural "%d more"
msgstr[0] ""
msgstr[1] ""
+#: js/ui/searchController.js:87
+msgid "Search"
+msgstr "Nadi"
+
#: js/ui/shellEntry.js:20
msgid "Copy"
msgstr "Nɣel"
@@ -1567,15 +1629,15 @@ msgstr "Nɣel"
msgid "Paste"
msgstr "Senteḍ"
-#: js/ui/shellEntry.js:73
+#: js/ui/shellEntry.js:77
msgid "Show Text"
msgstr "Sken aḍris"
-#: js/ui/shellEntry.js:75
+#: js/ui/shellEntry.js:79
msgid "Hide Text"
msgstr "Ffer aḍris"
-#: js/ui/shellEntry.js:162
+#: js/ui/shellEntry.js:166
msgid "Caps lock is on."
msgstr ""
@@ -1636,43 +1698,43 @@ msgstr "Ur d-nufi ara asnas %s"
msgid "Accessibility"
msgstr "Tuffart"
-#: js/ui/status/accessibility.js:50
+#: js/ui/status/accessibility.js:48
msgid "Zoom"
msgstr "Simɣur"
-#: js/ui/status/accessibility.js:57
+#: js/ui/status/accessibility.js:55
msgid "Screen Reader"
msgstr "Ameɣri n ugdil"
-#: js/ui/status/accessibility.js:61
+#: js/ui/status/accessibility.js:59
msgid "Screen Keyboard"
-msgstr ""
+msgstr "Tasarut unasiw"
-#: js/ui/status/accessibility.js:65
+#: js/ui/status/accessibility.js:63
msgid "Visual Alerts"
msgstr ""
-#: js/ui/status/accessibility.js:68
+#: js/ui/status/accessibility.js:66
msgid "Sticky Keys"
-msgstr ""
+msgstr "Tisura ineṭṭḍen"
-#: js/ui/status/accessibility.js:71
+#: js/ui/status/accessibility.js:69
msgid "Slow Keys"
-msgstr ""
+msgstr "Tisura ẓẓayen"
-#: js/ui/status/accessibility.js:74
+#: js/ui/status/accessibility.js:72
msgid "Bounce Keys"
-msgstr ""
+msgstr "Tisura i d-yettuɣalen"
-#: js/ui/status/accessibility.js:77
+#: js/ui/status/accessibility.js:75
msgid "Mouse Keys"
-msgstr ""
+msgstr "Tiqfallin n umumed"
-#: js/ui/status/accessibility.js:136
+#: js/ui/status/accessibility.js:134
msgid "High Contrast"
msgstr "Amyeẓli afellay"
-#: js/ui/status/accessibility.js:178
+#: js/ui/status/accessibility.js:176
msgid "Large Text"
msgstr "Aḍris ahrawan"
@@ -1680,7 +1742,7 @@ msgstr "Aḍris ahrawan"
msgid "Bluetooth"
msgstr "Bluetooth"
-#: js/ui/status/bluetooth.js:49 js/ui/status/network.js:619
+#: js/ui/status/bluetooth.js:49 js/ui/status/network.js:652
msgid "Bluetooth Settings"
msgstr "Iɣewwaṛen n Bluetooth"
@@ -1704,84 +1766,84 @@ msgstr "Bluetooth yermed"
msgid "Brightness"
msgstr "Tifawit"
-#: js/ui/status/dwellClick.js:13
+#: js/ui/status/dwellClick.js:12
msgid "Single Click"
msgstr "Asiti asuf"
-#: js/ui/status/dwellClick.js:18
+#: js/ui/status/dwellClick.js:17
msgid "Double Click"
msgstr "Asiti uslig"
-#: js/ui/status/dwellClick.js:23
+#: js/ui/status/dwellClick.js:22
msgid "Drag"
msgstr "Zuɣer"
-#: js/ui/status/dwellClick.js:28
+#: js/ui/status/dwellClick.js:27
msgid "Secondary Click"
msgstr "Asiti wis sin"
-#: js/ui/status/dwellClick.js:37
+#: js/ui/status/dwellClick.js:36
msgid "Dwell Click"
msgstr ""
-#: js/ui/status/keyboard.js:826
+#: js/ui/status/keyboard.js:829
msgid "Keyboard"
msgstr "Anasiw"
-#: js/ui/status/keyboard.js:848
+#: js/ui/status/keyboard.js:846
msgid "Show Keyboard Layout"
msgstr "Sken taneɣruft n unasiw"
-#: js/ui/status/location.js:65 js/ui/status/location.js:174
+#: js/ui/status/location.js:234 js/ui/status/location.js:267
msgid "Location Enabled"
msgstr ""
-#: js/ui/status/location.js:66 js/ui/status/location.js:175
+#: js/ui/status/location.js:235 js/ui/status/location.js:268
msgid "Disable"
msgstr "Assensi"
-#: js/ui/status/location.js:67
+#: js/ui/status/location.js:236
msgid "Privacy Settings"
msgstr "Iɣewwaren n tbaḍnit"
-#: js/ui/status/location.js:173
+#: js/ui/status/location.js:266
msgid "Location In Use"
msgstr ""
-#: js/ui/status/location.js:177
+#: js/ui/status/location.js:270
msgid "Location Disabled"
msgstr ""
-#: js/ui/status/location.js:178
+#: js/ui/status/location.js:271
msgid "Enable"
msgstr "Rmed"
-#: js/ui/status/location.js:350
+#: js/ui/status/location.js:398
msgid "Allow location access"
msgstr ""
#. Translators: %s is an application name
-#: js/ui/status/location.js:352
+#: js/ui/status/location.js:400
#, javascript-format
msgid "The app %s wants to access your location"
msgstr ""
-#: js/ui/status/location.js:362
+#: js/ui/status/location.js:410
msgid "Location access can be changed at any time from the privacy settings."
msgstr ""
-#: js/ui/status/network.js:71
+#: js/ui/status/network.js:72
msgid ""
-msgstr ""
+msgstr "Arussin"
#. Translators: %s is a network identifier
-#: js/ui/status/network.js:449 js/ui/status/network.js:1344
+#: js/ui/status/network.js:455 js/ui/status/network.js:1406
#, javascript-format
msgid "%s Off"
msgstr "%s yensa"
#. Translators: %s is a network identifier
-#: js/ui/status/network.js:452
+#: js/ui/status/network.js:458
#, javascript-format
msgid "%s Connected"
msgstr ""
@@ -1789,191 +1851,191 @@ msgstr ""
#. Translators: this is for network devices that are physically present but are not
#. under NetworkManager's control (and thus cannot be used in the menu);
#. %s is a network identifier
-#: js/ui/status/network.js:457
+#: js/ui/status/network.js:463
#, javascript-format
msgid "%s Unmanaged"
msgstr ""
#. Translators: %s is a network identifier
-#: js/ui/status/network.js:460
+#: js/ui/status/network.js:466
#, javascript-format
msgid "%s Disconnecting"
msgstr ""
#. Translators: %s is a network identifier
-#: js/ui/status/network.js:467 js/ui/status/network.js:1336
+#: js/ui/status/network.js:473 js/ui/status/network.js:1398
#, javascript-format
msgid "%s Connecting"
msgstr ""
#. Translators: this is for network connections that require some kind of key or password; %s is a network identifier
-#: js/ui/status/network.js:470
+#: js/ui/status/network.js:476
#, javascript-format
msgid "%s Requires Authentication"
msgstr ""
#. Translators: this is for devices that require some kind of firmware or kernel
#. module, which is missing; %s is a network identifier
-#: js/ui/status/network.js:478
+#: js/ui/status/network.js:484
#, javascript-format
msgid "Firmware Missing For %s"
msgstr ""
#. Translators: this is for a network device that cannot be activated (for example it
#. is disabled by rfkill, or it has no coverage; %s is a network identifier
-#: js/ui/status/network.js:482
+#: js/ui/status/network.js:488
#, javascript-format
msgid "%s Unavailable"
msgstr ""
#. Translators: %s is a network identifier
-#: js/ui/status/network.js:485
+#: js/ui/status/network.js:491
#, javascript-format
msgid "%s Connection Failed"
msgstr ""
-#: js/ui/status/network.js:497
+#: js/ui/status/network.js:503
msgid "Wired Settings"
msgstr ""
-#: js/ui/status/network.js:540
+#: js/ui/status/network.js:550
msgid "Mobile Broadband Settings"
msgstr ""
#. Translators: %s is a network identifier
-#: js/ui/status/network.js:586 js/ui/status/network.js:1341
+#: js/ui/status/network.js:619 js/ui/status/network.js:1403
#, javascript-format
msgid "%s Hardware Disabled"
msgstr ""
#. Translators: this is for a network device that cannot be activated
#. because it's disabled by rfkill (airplane mode); %s is a network identifier
-#: js/ui/status/network.js:590
+#: js/ui/status/network.js:623
#, javascript-format
msgid "%s Disabled"
msgstr "%s yensa"
-#: js/ui/status/network.js:631
+#: js/ui/status/network.js:664
msgid "Connect to Internet"
msgstr "Yeqqen ɣer internet"
-#: js/ui/status/network.js:835
+#: js/ui/status/network.js:873
msgid "Airplane Mode is On"
msgstr ""
-#: js/ui/status/network.js:836
+#: js/ui/status/network.js:874
msgid "Wi-Fi is disabled when airplane mode is on."
msgstr ""
-#: js/ui/status/network.js:837
+#: js/ui/status/network.js:875
msgid "Turn Off Airplane Mode"
msgstr ""
-#: js/ui/status/network.js:846
+#: js/ui/status/network.js:884
msgid "Wi-Fi is Off"
msgstr "Wi-Fi yensa"
-#: js/ui/status/network.js:847
+#: js/ui/status/network.js:885
msgid "Wi-Fi needs to be turned on in order to connect to a network."
msgstr ""
-#: js/ui/status/network.js:848
+#: js/ui/status/network.js:886
msgid "Turn On Wi-Fi"
msgstr "Sermed Wi-Fi"
-#: js/ui/status/network.js:873
+#: js/ui/status/network.js:911
msgid "Wi-Fi Networks"
msgstr "Izeḍwan n Wi-Fi"
-#: js/ui/status/network.js:875
+#: js/ui/status/network.js:913
msgid "Select a network"
msgstr "Fren azeḍḍa"
-#: js/ui/status/network.js:907
+#: js/ui/status/network.js:945
msgid "No Networks"
msgstr "Ulac izeḍwan"
-#: js/ui/status/network.js:928 js/ui/status/rfkill.js:108
+#: js/ui/status/network.js:966 js/ui/status/rfkill.js:108
msgid "Use hardware switch to turn off"
msgstr ""
-#: js/ui/status/network.js:1205
+#: js/ui/status/network.js:1267
msgid "Select Network"
msgstr "Fren azeḍḍa"
-#: js/ui/status/network.js:1211
+#: js/ui/status/network.js:1273
msgid "Wi-Fi Settings"
msgstr "Iɣewwaren n Wi-Fi"
#. Translators: %s is a network identifier
-#: js/ui/status/network.js:1332
+#: js/ui/status/network.js:1394
#, javascript-format
msgid "%s Hotspot Active"
msgstr ""
#. Translators: %s is a network identifier
-#: js/ui/status/network.js:1347
+#: js/ui/status/network.js:1409
#, javascript-format
msgid "%s Not Connected"
msgstr "%s ur yeqqin ara"
-#: js/ui/status/network.js:1444
+#: js/ui/status/network.js:1506
msgid "connecting…"
-msgstr "Ala yetteqqen…"
+msgstr "la yetteqqen…"
#. Translators: this is for network connections that require some kind of key or password
-#: js/ui/status/network.js:1447
+#: js/ui/status/network.js:1509
msgid "authentication required"
-msgstr "Illaq usesteb"
+msgstr "illaq usesteb"
-#: js/ui/status/network.js:1449
+#: js/ui/status/network.js:1511
msgid "connection failed"
msgstr "tuqqna ur teddi ara"
-#: js/ui/status/network.js:1500
+#: js/ui/status/network.js:1562
msgid "VPN Settings"
msgstr "Iɣewwaren n VPN"
-#: js/ui/status/network.js:1517
+#: js/ui/status/network.js:1579
msgid "VPN"
msgstr "VPN"
-#: js/ui/status/network.js:1527
+#: js/ui/status/network.js:1589
msgid "VPN Off"
msgstr "VPN yensa"
-#: js/ui/status/network.js:1588 js/ui/status/rfkill.js:84
+#: js/ui/status/network.js:1650 js/ui/status/rfkill.js:84
msgid "Network Settings"
msgstr "Iɣewwaren n uzeḍḍa"
-#: js/ui/status/network.js:1617
+#: js/ui/status/network.js:1678
#, javascript-format
msgid "%s Wired Connection"
msgid_plural "%s Wired Connections"
msgstr[0] ""
msgstr[1] ""
-#: js/ui/status/network.js:1621
+#: js/ui/status/network.js:1682
#, javascript-format
msgid "%s Wi-Fi Connection"
msgid_plural "%s Wi-Fi Connections"
msgstr[0] ""
msgstr[1] ""
-#: js/ui/status/network.js:1625
+#: js/ui/status/network.js:1686
#, javascript-format
msgid "%s Modem Connection"
msgid_plural "%s Modem Connections"
msgstr[0] ""
msgstr[1] ""
-#: js/ui/status/network.js:1759
+#: js/ui/status/network.js:1830
msgid "Connection failed"
msgstr "Tuqqna ur teddi ara"
-#: js/ui/status/network.js:1760
+#: js/ui/status/network.js:1831
msgid "Activation of network connection failed"
-msgstr ""
+msgstr "Azeṭṭa ur yessaweḍ ara ad yeqqen"
#: js/ui/status/nightLight.js:63
msgid "Night Light Disabled"
@@ -1991,46 +2053,62 @@ msgstr "Kemmel"
msgid "Disable Until Tomorrow"
msgstr ""
-#: js/ui/status/power.js:47
+#: js/ui/status/power.js:51 js/ui/status/powerProfiles.js:57
msgid "Power Settings"
-msgstr ""
+msgstr "Iɣewwaren usečči"
-#: js/ui/status/power.js:63
+#: js/ui/status/power.js:68
msgid "Fully Charged"
msgstr ""
-#: js/ui/status/power.js:69
+#: js/ui/status/power.js:74
msgid "Not Charging"
msgstr ""
#. 0 is reported when UPower does not have enough data
#. to estimate battery life
-#: js/ui/status/power.js:72 js/ui/status/power.js:78
+#: js/ui/status/power.js:77 js/ui/status/power.js:83
msgid "Estimating…"
msgstr ""
#. Translators: this is : Remaining ()
-#: js/ui/status/power.js:86
+#: js/ui/status/power.js:91
#, javascript-format
msgid "%d∶%02d Remaining (%d %%)"
msgstr ""
#. Translators: this is : Until Full ()
-#: js/ui/status/power.js:91
+#: js/ui/status/power.js:97
#, javascript-format
msgid "%d∶%02d Until Full (%d %%)"
msgstr ""
-#: js/ui/status/power.js:139 js/ui/status/power.js:141
+#. The icon label
+#: js/ui/status/power.js:145
#, javascript-format
msgid "%d %%"
+msgstr "%d %%"
+
+#: js/ui/status/powerProfiles.js:19
+msgctxt "Power profile"
+msgid "Performance"
+msgstr "Atwal"
+
+#: js/ui/status/powerProfiles.js:20
+msgctxt "Power profile"
+msgid "Balanced"
msgstr ""
-#: js/ui/status/remoteAccess.js:45
+#: js/ui/status/powerProfiles.js:21
+msgctxt "Power profile"
+msgid "Power Saver"
+msgstr ""
+
+#: js/ui/status/remoteAccess.js:38
msgid "Screen is Being Shared"
msgstr ""
-#: js/ui/status/remoteAccess.js:47
+#: js/ui/status/remoteAccess.js:40
msgid "Turn off"
msgstr "Sens"
@@ -2051,7 +2129,7 @@ msgstr ""
#: js/ui/status/system.js:119
msgid "Suspend"
-msgstr ""
+msgstr "Ḥbes di leεḍil"
#: js/ui/status/system.js:130
msgid "Restart…"
@@ -2069,43 +2147,43 @@ msgstr "Ffeɣ"
msgid "Switch User…"
msgstr "Senfel aseqdac…"
-#: js/ui/status/thunderbolt.js:263
+#: js/ui/status/thunderbolt.js:262
msgid "Thunderbolt"
msgstr ""
-#: js/ui/status/thunderbolt.js:325
+#: js/ui/status/thunderbolt.js:324
msgid "Unknown Thunderbolt device"
msgstr ""
-#: js/ui/status/thunderbolt.js:326
+#: js/ui/status/thunderbolt.js:325
msgid ""
"New device has been detected while you were away. Please disconnect and "
"reconnect the device to start using it."
msgstr ""
-#: js/ui/status/thunderbolt.js:329
+#: js/ui/status/thunderbolt.js:328
msgid "Unauthorized Thunderbolt device"
msgstr ""
-#: js/ui/status/thunderbolt.js:330
+#: js/ui/status/thunderbolt.js:329
msgid ""
"New device has been detected and needs to be authorized by an administrator."
msgstr ""
-#: js/ui/status/thunderbolt.js:336
+#: js/ui/status/thunderbolt.js:335
msgid "Thunderbolt authorization error"
msgstr ""
-#: js/ui/status/thunderbolt.js:337
+#: js/ui/status/thunderbolt.js:336
#, javascript-format
msgid "Could not authorize the Thunderbolt device: %s"
msgstr ""
-#: js/ui/status/volume.js:155
+#: js/ui/status/volume.js:160
msgid "Volume changed"
msgstr ""
-#: js/ui/status/volume.js:217
+#: js/ui/status/volume.js:222
msgid "Volume"
msgstr "Ableɣ"
@@ -2151,21 +2229,30 @@ msgstr ""
msgid "Click or press a key to unlock"
msgstr ""
-#: js/ui/unlockDialog.js:555
+#: js/ui/unlockDialog.js:556
msgid "Unlock Window"
msgstr ""
-#: js/ui/unlockDialog.js:564
+#: js/ui/unlockDialog.js:565
msgid "Log in as another user"
msgstr ""
-#: js/ui/viewSelector.js:182
-msgid "Applications"
-msgstr "Isnasen"
+#: js/ui/welcomeDialog.js:36
+#, javascript-format
+msgid "Welcome to GNOME %s"
+msgstr ""
-#: js/ui/viewSelector.js:186
-msgid "Search"
-msgstr "Nadi"
+#: js/ui/welcomeDialog.js:37
+msgid "If you want to learn your way around, check out the tour."
+msgstr ""
+
+#: js/ui/welcomeDialog.js:45
+msgid "No Thanks"
+msgstr "Ala tanemmirt"
+
+#: js/ui/welcomeDialog.js:50
+msgid "Take Tour"
+msgstr ""
#: js/ui/windowAttentionHandler.js:20
#, javascript-format
@@ -2173,22 +2260,22 @@ msgid "“%s” is ready"
msgstr ""
#. Translators: This string should be shorter than 30 characters
-#: js/ui/windowManager.js:60
+#: js/ui/windowManager.js:63
msgid "Keep these display settings?"
msgstr ""
#. Translators: this and the following message should be limited in length,
#. to avoid ellipsizing the labels.
#.
-#: js/ui/windowManager.js:69
+#: js/ui/windowManager.js:72
msgid "Revert Settings"
msgstr ""
-#: js/ui/windowManager.js:72
+#: js/ui/windowManager.js:75
msgid "Keep Changes"
msgstr ""
-#: js/ui/windowManager.js:91
+#: js/ui/windowManager.js:94
#, javascript-format
msgid "Settings changes will revert in %d second"
msgid_plural "Settings changes will revert in %d seconds"
@@ -2197,22 +2284,22 @@ msgstr[1] ""
#. Translators: This represents the size of a window. The first number is
#. * the width of the window and the second is the height.
-#: js/ui/windowManager.js:551
+#: js/ui/windowManager.js:550
#, javascript-format
msgid "%d × %d"
-msgstr ""
+msgstr "%d × %d"
#: js/ui/windowMenu.js:27
-msgid "Minimize"
-msgstr "Semẓi"
+msgid "Hide"
+msgstr "Ffer"
#: js/ui/windowMenu.js:34
-msgid "Unmaximize"
-msgstr ""
+msgid "Restore"
+msgstr "Err-it"
#: js/ui/windowMenu.js:38
msgid "Maximize"
-msgstr ""
+msgstr "Semɣer"
#: js/ui/windowMenu.js:45
msgid "Move"
@@ -2274,31 +2361,31 @@ msgstr "Mdel"
msgid "Evolution Calendar"
msgstr ""
-#: src/main.c:458 subprojects/extensions-tool/src/main.c:317
+#: src/main.c:419 subprojects/extensions-tool/src/main.c:317
msgid "Print version"
-msgstr ""
+msgstr "Sken lqem"
-#: src/main.c:464
+#: src/main.c:425
msgid "Mode used by GDM for login screen"
msgstr ""
-#: src/main.c:470
+#: src/main.c:431
msgid "Use a specific mode, e.g. “gdm” for login screen"
msgstr ""
-#: src/main.c:476
+#: src/main.c:437
msgid "List possible modes"
msgstr ""
-#: src/shell-app.c:268
+#: src/shell-app.c:298
msgctxt "program"
msgid "Unknown"
msgstr "Arusin"
-#: src/shell-app.c:519
+#: src/shell-app.c:549
#, c-format
msgid "Failed to launch “%s”"
-msgstr ""
+msgstr "Ur izmir ara ad yekker “%s”"
#: src/shell-keyring-prompt.c:731
msgid "Passwords do not match."
@@ -2314,13 +2401,13 @@ msgstr ""
#: subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in:5
#: subprojects/extensions-app/data/org.gnome.Extensions.desktop.in.in:4
-#: subprojects/extensions-app/js/main.js:183
-#: subprojects/extensions-app/data/ui/extensions-window.ui:61
+#: subprojects/extensions-app/js/main.js:217
+#: subprojects/extensions-app/data/ui/extensions-window.ui:56
msgid "Extensions"
msgstr "Isiɣzaf"
#: subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in:6
-#: subprojects/extensions-app/js/main.js:184
+#: subprojects/extensions-app/js/main.js:218
msgid "Manage your GNOME Extensions"
msgstr ""
@@ -2338,68 +2425,76 @@ msgstr ""
msgid "Configure GNOME Shell Extensions"
msgstr ""
-#: subprojects/extensions-app/js/main.js:145
-#, javascript-format
-msgid "Remove “%s”?"
+#: subprojects/extensions-app/js/main.js:142
+#: subprojects/extensions-app/js/main.js:152
+msgid "No Matches"
msgstr ""
-#: subprojects/extensions-app/js/main.js:146
+#: subprojects/extensions-app/js/main.js:179
+#, javascript-format
+msgid "Remove “%s”?"
+msgstr "Kkes \"%s\"?"
+
+#: subprojects/extensions-app/js/main.js:180
msgid ""
"If you remove the extension, you need to return to download it if you want "
"to enable it again"
msgstr ""
-#: subprojects/extensions-app/js/main.js:150
+#: subprojects/extensions-app/js/main.js:184
msgid "Remove"
msgstr "Kkes"
-#: subprojects/extensions-app/js/main.js:182
+#: subprojects/extensions-app/js/main.js:216
msgid "translator-credits"
msgstr ""
+"Launchpad Contributions:\n"
+" Slimane Selyan AMIRI https://launchpad.net/~slimaneamiri\n"
+" atlantis103 https://launchpad.net/~atlantis103-hotmail"
-#: subprojects/extensions-app/js/main.js:314
+#: subprojects/extensions-app/js/main.js:344
#, javascript-format
msgid "%d extension will be updated on next login."
msgid_plural "%d extensions will be updated on next login."
msgstr[0] ""
msgstr[1] ""
-#: subprojects/extensions-app/js/main.js:461
+#: subprojects/extensions-app/js/main.js:494
msgid "The extension is incompatible with the current GNOME version"
msgstr ""
-#: subprojects/extensions-app/js/main.js:464
+#: subprojects/extensions-app/js/main.js:497
msgid "The extension had an error"
msgstr ""
-#: subprojects/extensions-app/data/ui/extension-row.ui:109
-#: subprojects/extensions-tool/src/command-create.c:325
+#: subprojects/extensions-app/data/ui/extension-row.ui:83
+#: subprojects/extensions-tool/src/command-create.c:322
#: subprojects/extensions-tool/src/main.c:241
msgid "Description"
msgstr "Aglam"
-#: subprojects/extensions-app/data/ui/extension-row.ui:132
+#: subprojects/extensions-app/data/ui/extension-row.ui:104
#: subprojects/extensions-tool/src/main.c:253
msgid "Version"
msgstr "Lqem"
-#: subprojects/extensions-app/data/ui/extension-row.ui:160
+#: subprojects/extensions-app/data/ui/extension-row.ui:131
msgid "Author"
-msgstr ""
+msgstr "Auteur"
-#: subprojects/extensions-app/data/ui/extension-row.ui:216
+#: subprojects/extensions-app/data/ui/extension-row.ui:185
msgid "Website"
msgstr "Asmel Web"
-#: subprojects/extensions-app/data/ui/extension-row.ui:233
+#: subprojects/extensions-app/data/ui/extension-row.ui:201
msgid "Remove…"
msgstr ""
-#: subprojects/extensions-app/data/ui/extensions-window.ui:8
+#: subprojects/extensions-app/data/ui/extensions-window.ui:7
msgid "Help"
msgstr "Tallelt"
-#: subprojects/extensions-app/data/ui/extensions-window.ui:12
+#: subprojects/extensions-app/data/ui/extensions-window.ui:11
msgid "About Extensions"
msgstr ""
@@ -2409,125 +2504,125 @@ msgid ""
"\">extensions.gnome.org."
msgstr ""
-#: subprojects/extensions-app/data/ui/extensions-window.ui:35
+#: subprojects/extensions-app/data/ui/extensions-window.ui:34
msgid "Warning"
msgstr "Alɣu"
-#: subprojects/extensions-app/data/ui/extensions-window.ui:46
+#: subprojects/extensions-app/data/ui/extensions-window.ui:44
msgid ""
"Extensions can cause system issues, including performance problems. If you "
"encounter problems with your system, it is recommended to disable all "
"extensions."
msgstr ""
-#: subprojects/extensions-app/data/ui/extensions-window.ui:135
+#: subprojects/extensions-app/data/ui/extensions-window.ui:150
msgid "Manually Installed"
msgstr ""
-#: subprojects/extensions-app/data/ui/extensions-window.ui:159
+#: subprojects/extensions-app/data/ui/extensions-window.ui:174
msgid "Built-In"
msgstr ""
-#: subprojects/extensions-app/data/ui/extensions-window.ui:200
+#: subprojects/extensions-app/data/ui/extensions-window.ui:217
msgid "No Installed Extensions"
msgstr ""
-#: subprojects/extensions-app/data/ui/extensions-window.ui:236
+#: subprojects/extensions-app/data/ui/extensions-window.ui:252
msgid ""
"We’re very sorry, but it was not possible to get the list of installed "
"extensions. Make sure you are logged into GNOME and try again."
msgstr ""
-#: subprojects/extensions-app/data/ui/extensions-window.ui:273
+#: subprojects/extensions-app/data/ui/extensions-window.ui:288
msgid "Extension Updates Ready"
msgstr ""
-#: subprojects/extensions-app/data/ui/extensions-window.ui:289
+#: subprojects/extensions-app/data/ui/extensions-window.ui:303
msgid "Log Out…"
msgstr ""
#. Translators: a file path to an extension directory
-#: subprojects/extensions-tool/src/command-create.c:226
+#: subprojects/extensions-tool/src/command-create.c:222
#, c-format
msgid "The new extension was successfully created in %s.\n"
msgstr ""
-#: subprojects/extensions-tool/src/command-create.c:299
+#: subprojects/extensions-tool/src/command-create.c:296
#, c-format
msgid ""
"Name should be a very short (ideally descriptive) string.\n"
"Examples are: %s"
msgstr ""
-#: subprojects/extensions-tool/src/command-create.c:305
+#: subprojects/extensions-tool/src/command-create.c:302
#: subprojects/extensions-tool/src/main.c:238
msgid "Name"
msgstr "Isem"
-#: subprojects/extensions-tool/src/command-create.c:319
+#: subprojects/extensions-tool/src/command-create.c:316
#, c-format
msgid ""
"Description is a single-sentence explanation of what your extension does.\n"
"Examples are: %s"
msgstr ""
-#: subprojects/extensions-tool/src/command-create.c:339
+#: subprojects/extensions-tool/src/command-create.c:336
msgid ""
"UUID is a globally-unique identifier for your extension.\n"
"This should be in the format of an email address (clicktofocus@janedoe."
"example.com)\n"
msgstr ""
-#: subprojects/extensions-tool/src/command-create.c:366
+#: subprojects/extensions-tool/src/command-create.c:363
msgid "Choose one of the available templates:\n"
msgstr ""
-#: subprojects/extensions-tool/src/command-create.c:380
+#: subprojects/extensions-tool/src/command-create.c:377
msgid "Template"
-msgstr ""
+msgstr "Talɣa"
-#: subprojects/extensions-tool/src/command-create.c:435
+#: subprojects/extensions-tool/src/command-create.c:432
msgid "The unique identifier of the new extension"
msgstr ""
-#: subprojects/extensions-tool/src/command-create.c:438
+#: subprojects/extensions-tool/src/command-create.c:435
msgid "NAME"
msgstr "ISEM"
-#: subprojects/extensions-tool/src/command-create.c:439
+#: subprojects/extensions-tool/src/command-create.c:436
msgid "The user-visible name of the new extension"
msgstr ""
-#: subprojects/extensions-tool/src/command-create.c:441
+#: subprojects/extensions-tool/src/command-create.c:438
msgid "DESCRIPTION"
msgstr ""
-#: subprojects/extensions-tool/src/command-create.c:443
+#: subprojects/extensions-tool/src/command-create.c:440
msgid "A short description of what the extension does"
msgstr ""
-#: subprojects/extensions-tool/src/command-create.c:446
+#: subprojects/extensions-tool/src/command-create.c:443
msgid "TEMPLATE"
msgstr ""
-#: subprojects/extensions-tool/src/command-create.c:447
+#: subprojects/extensions-tool/src/command-create.c:444
msgid "The template to use for the new extension"
msgstr ""
-#: subprojects/extensions-tool/src/command-create.c:453
+#: subprojects/extensions-tool/src/command-create.c:450
msgid "Enter extension information interactively"
msgstr ""
-#: subprojects/extensions-tool/src/command-create.c:461
+#: subprojects/extensions-tool/src/command-create.c:458
msgid "Create a new extension"
msgstr ""
-#: subprojects/extensions-tool/src/command-create.c:479
+#: subprojects/extensions-tool/src/command-create.c:476
#: subprojects/extensions-tool/src/command-list.c:172
msgid "Unknown arguments"
msgstr ""
-#: subprojects/extensions-tool/src/command-create.c:504
+#: subprojects/extensions-tool/src/command-create.c:501
msgid "UUID, name and description are required"
msgstr ""
@@ -2634,7 +2729,7 @@ msgstr ""
#: subprojects/extensions-tool/src/command-pack.c:450
msgid "FILE"
-msgstr ""
+msgstr "AFAYLU"
#: subprojects/extensions-tool/src/command-pack.c:451
msgid "Additional source to include in the bundle"
@@ -2642,7 +2737,7 @@ msgstr ""
#: subprojects/extensions-tool/src/command-pack.c:454
msgid "SCHEMA"
-msgstr ""
+msgstr "AZENZIƔ"
#: subprojects/extensions-tool/src/command-pack.c:455
msgid "A GSettings schema that should be included"
@@ -2651,7 +2746,7 @@ msgstr ""
#: subprojects/extensions-tool/src/command-pack.c:457
#: subprojects/extensions-tool/src/command-pack.c:468
msgid "DIRECTORY"
-msgstr ""
+msgstr "AKARAM"
#: subprojects/extensions-tool/src/command-pack.c:459
msgid "The directory where translations are found"
@@ -2659,7 +2754,7 @@ msgstr ""
#: subprojects/extensions-tool/src/command-pack.c:461
msgid "DOMAIN"
-msgstr ""
+msgstr "TAƔULT"
#: subprojects/extensions-tool/src/command-pack.c:463
msgid "The gettext domain to use for translations"
@@ -2717,7 +2812,7 @@ msgstr ""
#: subprojects/extensions-tool/src/main.c:146
msgid "Failed to connect to GNOME Shell"
-msgstr ""
+msgstr "Tecceḍ tuqqna ɣer GNOME Shell"
#: subprojects/extensions-tool/src/main.c:244
msgid "Path"
@@ -2759,7 +2854,7 @@ msgstr ""
#: subprojects/extensions-tool/src/main.c:315
msgid "Commands:"
-msgstr ""
+msgstr "Tiludna:"
#: subprojects/extensions-tool/src/main.c:316
msgid "Print help"
@@ -2783,7 +2878,7 @@ msgstr "Kkes aseɣzef"
#: subprojects/extensions-tool/src/main.c:322
msgid "List extensions"
-msgstr ""
+msgstr "Tabdart n yisiɣzaf"
#: subprojects/extensions-tool/src/main.c:323
#: subprojects/extensions-tool/src/main.c:324
@@ -2800,7 +2895,7 @@ msgstr "Snulfu-d aseɣzef"
#: subprojects/extensions-tool/src/main.c:327
msgid "Package extension"
-msgstr ""
+msgstr "Asiɣzef n ukemmus"
#: subprojects/extensions-tool/src/main.c:328
msgid "Install extension bundle"
@@ -2821,7 +2916,7 @@ msgstr "Aseɣzef ilem"
#: subprojects/extensions-tool/src/templates/indicator.desktop.in:4
msgid "Indicator"
-msgstr ""
+msgstr "Anamal"
#: subprojects/extensions-tool/src/templates/indicator.desktop.in:5
msgid "Add an icon to the top bar"
@@ -2829,22 +2924,25 @@ msgstr "Rnu tignit di tama n ufella n ufeggag"
#. translators:
#. * The number of sound outputs on a particular device
-#: subprojects/gvc/gvc-mixer-control.c:1899
+#: subprojects/gvc/gvc-mixer-control.c:1907
#, c-format
msgid "%u Output"
msgid_plural "%u Outputs"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "%u n tuffɣa"
+msgstr[1] "%u n tuffɣiwin"
#. translators:
#. * The number of sound inputs on a particular device
-#: subprojects/gvc/gvc-mixer-control.c:1909
+#: subprojects/gvc/gvc-mixer-control.c:1917
#, c-format
msgid "%u Input"
msgid_plural "%u Inputs"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "%u n unekcum"
+msgstr[1] "%u n yinekcumen"
-#: subprojects/gvc/gvc-mixer-control.c:2766
+#: subprojects/gvc/gvc-mixer-control.c:2867
msgid "System Sounds"
msgstr "Imeslan n unagraw"
+
+#~ msgid "Minimize"
+#~ msgstr "Semẓi"
diff --git a/po/lv.po b/po/lv.po
index 8a6e4739d..6db985204 100644
--- a/po/lv.po
+++ b/po/lv.po
@@ -11,8 +11,8 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell/issues\n"
-"POT-Creation-Date: 2021-03-06 17:28+0000\n"
-"PO-Revision-Date: 2021-03-07 20:30+0200\n"
+"POT-Creation-Date: 2021-10-14 16:29+0000\n"
+"PO-Revision-Date: 2021-10-25 20:56+0300\n"
"Last-Translator: Rūdolfs Mazurs \n"
"Language-Team: Latvian \n"
"Language: lv\n"
@@ -21,7 +21,56 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 :"
" 2);\n"
-"X-Generator: Lokalize 19.12.3\n"
+"X-Generator: Lokalize 21.08.1\n"
+
+#: data/50-gnome-shell-launchers.xml:6
+msgid "Launchers"
+msgstr "Palaidēji"
+
+#: data/50-gnome-shell-launchers.xml:10
+#| msgid "Switch to application 1"
+msgid "Activate favorite application 1"
+msgstr "Aktivizēt iecienīto lietotni 1"
+
+#: data/50-gnome-shell-launchers.xml:14
+#| msgid "Switch to application 2"
+msgid "Activate favorite application 2"
+msgstr "Aktivizēt iecienīto lietotni 2"
+
+#: data/50-gnome-shell-launchers.xml:18
+#| msgid "Switch to application 3"
+msgid "Activate favorite application 3"
+msgstr "Aktivizēt iecienīto lietotni 3"
+
+#: data/50-gnome-shell-launchers.xml:22
+#| msgid "Switch to application 4"
+msgid "Activate favorite application 4"
+msgstr "Aktivizēt iecienīto lietotni 4"
+
+#: data/50-gnome-shell-launchers.xml:26
+#| msgid "Switch to application 5"
+msgid "Activate favorite application 5"
+msgstr "Aktivizēt iecienīto lietotni 5"
+
+#: data/50-gnome-shell-launchers.xml:30
+#| msgid "Switch to application 6"
+msgid "Activate favorite application 6"
+msgstr "Aktivizēt iecienīto lietotni 6"
+
+#: data/50-gnome-shell-launchers.xml:34
+#| msgid "Switch to application 7"
+msgid "Activate favorite application 7"
+msgstr "Aktivizēt iecienīto lietotni 7"
+
+#: data/50-gnome-shell-launchers.xml:38
+#| msgid "Switch to application 8"
+msgid "Activate favorite application 8"
+msgstr "Aktivizēt iecienīto lietotni 8"
+
+#: data/50-gnome-shell-launchers.xml:42
+#| msgid "Switch to application 9"
+msgid "Activate favorite application 9"
+msgstr "Aktivizēt iecienīto lietotni 9"
#: data/50-gnome-shell-system.xml:6
msgid "System"
@@ -208,26 +257,16 @@ msgid ""
"number will represent versions that do not exist yet. This huge number can "
"be used to effectively disable the dialog."
msgstr ""
-"Šī atslēga nosaka, kura versija tika parādīta dialoglodziņam “Laipni lūgti"
-" GNOME”. Tukša virkne apzīmē vecāko iespējamo versiju un milzīgs skaitlis"
-" apzīmē versiju, kas vēl neeksistē. Milzīgo skaitli var izmantot, lai"
-" praktiski izslēgtu šo dialoglodziņu."
+"Šī atslēga nosaka, kura versija tika parādīta dialoglodziņam “Laipni lūgti "
+"GNOME”. Tukša virkne apzīmē vecāko iespējamo versiju un milzīgs skaitlis "
+"apzīmē versiju, kas vēl neeksistē. Milzīgo skaitli var izmantot, lai "
+"praktiski izslēgtu šo dialoglodziņu."
-#: data/org.gnome.shell.gschema.xml.in:109
-msgid "Enable introspection API"
-msgstr "Ieslēgt introspekcijas 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 "Ieslēdz D-Bus API, kas ļauj izpētīt lietotnes stāvokli."
-
-#: data/org.gnome.shell.gschema.xml.in:141
+#: data/org.gnome.shell.gschema.xml.in:133
msgid "Layout of the app picker"
msgstr "Lietotņu izvēlētāja izkārtojums"
-#: data/org.gnome.shell.gschema.xml.in:142
+#: data/org.gnome.shell.gschema.xml.in:134
msgid ""
"Layout of the app picker. Each entry in the array is a page. Pages are "
"stored in the order they appear in GNOME Shell. Each page contains an "
@@ -239,108 +278,107 @@ msgstr ""
"“lietotnes id” → “dati” pāri. Šobrīd lietotņu ikonu vieta lapā tiek "
"saglabāta kā “dati”: • “pozīcija”"
-#: data/org.gnome.shell.gschema.xml.in:157
+#: data/org.gnome.shell.gschema.xml.in:149
msgid "Keybinding to open the application menu"
msgstr "Taustiņu sasaiste, kas atver lietotnes izvēlni"
-#: data/org.gnome.shell.gschema.xml.in:158
+#: data/org.gnome.shell.gschema.xml.in:150
msgid "Keybinding to open the application menu."
msgstr "Taustiņu sasaiste, kas atver lietotnes izvēlni."
-#: data/org.gnome.shell.gschema.xml.in:164
-#: data/org.gnome.shell.gschema.xml.in:171
-#| msgid "Keybinding to open the overview"
+#: data/org.gnome.shell.gschema.xml.in:156
+#: data/org.gnome.shell.gschema.xml.in:163
msgid "Keybinding to shift between overview states"
msgstr "Taustiņu sasaiste, lai pārslēgtos starp pārskata stāvokļiem"
-#: 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"
msgstr ""
-"Taustiņu sasaiste, lai pārslēgtos starp sesiju, logu izvēlētāju un lietotņu"
-" režģi"
+"Taustiņu sasaiste, lai pārslēgtos starp sesiju, logu izvēlētāju un lietotņu "
+"režģi"
-#: 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"
msgstr ""
-"Taustiņu sasaiste, lai pārslēgtos starp lietotņu režģi, logu izvēlētāju un"
-" sesiju"
+"Taustiņu sasaiste, lai pārslēgtos starp lietotņu režģi, logu izvēlētāju un "
+"sesiju"
-#: data/org.gnome.shell.gschema.xml.in:178
+#: data/org.gnome.shell.gschema.xml.in:170
msgid "Keybinding to open the “Show Applications” view"
msgstr "Taustiņu sasaiste, kas atver “Rādīt lietotnes” skatu"
-#: data/org.gnome.shell.gschema.xml.in:179
+#: data/org.gnome.shell.gschema.xml.in:171
msgid ""
"Keybinding to open the “Show Applications” view of the Activities Overview."
msgstr ""
"Taustiņu sasaiste, kas atver “Rādīt lietotnes” aktivitāšu pārskata skatu."
-#: data/org.gnome.shell.gschema.xml.in:186
+#: data/org.gnome.shell.gschema.xml.in:178
msgid "Keybinding to open the overview"
msgstr "Taustiņu sasaiste, kas atver pārskatu"
-#: data/org.gnome.shell.gschema.xml.in:187
+#: data/org.gnome.shell.gschema.xml.in:179
msgid "Keybinding to open the Activities Overview."
msgstr "Taustiņu sasaiste, kas atver aktivitāšu pārskatu."
-#: 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"
msgstr "Taustiņu sasaiste, kas pārslēdz paziņojumu saraksta redzamību"
-#: 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."
msgstr "Taustiņu sasaiste, kas pārslēdz paziņojumu saraksta redzamību."
-#: data/org.gnome.shell.gschema.xml.in:200
+#: data/org.gnome.shell.gschema.xml.in:192
msgid "Keybinding to focus the active notification"
msgstr "Taustiņu sasaiste, kas fokusē aktīvo paziņojumu"
-#: data/org.gnome.shell.gschema.xml.in:201
+#: data/org.gnome.shell.gschema.xml.in:193
msgid "Keybinding to focus the active notification."
msgstr "Taustiņu sasaiste, kas fokusē aktīvo paziņojumu."
-#: data/org.gnome.shell.gschema.xml.in:207
+#: data/org.gnome.shell.gschema.xml.in:199
msgid "Switch to application 1"
msgstr "Pārslēgties uz lietotni 1"
-#: data/org.gnome.shell.gschema.xml.in:211
+#: data/org.gnome.shell.gschema.xml.in:203
msgid "Switch to application 2"
msgstr "Pārslēgties uz lietotni 2"
-#: data/org.gnome.shell.gschema.xml.in:215
+#: data/org.gnome.shell.gschema.xml.in:207
msgid "Switch to application 3"
msgstr "Pārslēgties uz lietotni 3"
-#: data/org.gnome.shell.gschema.xml.in:219
+#: data/org.gnome.shell.gschema.xml.in:211
msgid "Switch to application 4"
msgstr "Pārslēgties uz lietotni 4"
-#: data/org.gnome.shell.gschema.xml.in:223
+#: data/org.gnome.shell.gschema.xml.in:215
msgid "Switch to application 5"
msgstr "Pārslēgties uz lietotni 5"
-#: data/org.gnome.shell.gschema.xml.in:227
+#: data/org.gnome.shell.gschema.xml.in:219
msgid "Switch to application 6"
msgstr "Pārslēgties uz lietotni 6"
-#: data/org.gnome.shell.gschema.xml.in:231
+#: data/org.gnome.shell.gschema.xml.in:223
msgid "Switch to application 7"
msgstr "Pārslēgties uz lietotni 7"
-#: data/org.gnome.shell.gschema.xml.in:235
+#: data/org.gnome.shell.gschema.xml.in:227
msgid "Switch to application 8"
msgstr "Pārslēgties uz lietotni 8"
-#: data/org.gnome.shell.gschema.xml.in:239
+#: data/org.gnome.shell.gschema.xml.in:231
msgid "Switch to application 9"
msgstr "Pārslēgties uz lietotni 9"
-#: data/org.gnome.shell.gschema.xml.in:248
-#: data/org.gnome.shell.gschema.xml.in:275
+#: data/org.gnome.shell.gschema.xml.in:240
+#: data/org.gnome.shell.gschema.xml.in:267
msgid "Limit switcher to current workspace."
msgstr "Ierobežot pārslēdzēju uz pašreizējo darbvietu."
-#: data/org.gnome.shell.gschema.xml.in:249
+#: data/org.gnome.shell.gschema.xml.in:241
msgid ""
"If true, only applications that have windows on the current workspace are "
"shown in the switcher. Otherwise, all applications are included."
@@ -348,11 +386,11 @@ msgstr ""
"Ja patiess, pārslēdzējā tiek rādītas tikai lietotnes, kas ir pašreizējā "
"darbvietā. Citādi tiek iekļautas visas lietotnes."
-#: data/org.gnome.shell.gschema.xml.in:266
+#: data/org.gnome.shell.gschema.xml.in:258
msgid "The application icon mode."
msgstr "Lietotnes ikonas režīms."
-#: data/org.gnome.shell.gschema.xml.in:267
+#: data/org.gnome.shell.gschema.xml.in:259
msgid ""
"Configures how the windows are shown in the switcher. Valid possibilities "
"are “thumbnail-only” (shows a thumbnail of the window), “app-icon-"
@@ -362,7 +400,7 @@ msgstr ""
"only” (rāda loga sīktēlu), “app-icon-only” (rāda tikai lietotnes ikonu) vai "
"“both” (abi)."
-#: data/org.gnome.shell.gschema.xml.in:276
+#: data/org.gnome.shell.gschema.xml.in:268
msgid ""
"If true, only windows from the current workspace are shown in the switcher. "
"Otherwise, all windows are included."
@@ -370,56 +408,56 @@ msgstr ""
"Ja patiess, pārslēdzējā tiek rādītas tikai lietotnes no pašreizējās "
"darbvietas. Citādi tiek iekļautas visas lietotnes."
-#: data/org.gnome.shell.gschema.xml.in:286
+#: data/org.gnome.shell.gschema.xml.in:278
msgid "Locations"
msgstr "Vietas"
-#: data/org.gnome.shell.gschema.xml.in:287
+#: data/org.gnome.shell.gschema.xml.in:279
msgid "The locations to show in world clocks"
msgstr "Vietas, kuras rādīt pasaules pulksteņos"
-#: data/org.gnome.shell.gschema.xml.in:297
+#: data/org.gnome.shell.gschema.xml.in:289
msgid "Automatic location"
msgstr "Automātiska atrašanās vieta"
-#: data/org.gnome.shell.gschema.xml.in:298
+#: data/org.gnome.shell.gschema.xml.in:290
msgid "Whether to fetch the current location or not"
msgstr "Vai noteikt pašreizējo atrašanās vietu"
-#: data/org.gnome.shell.gschema.xml.in:305
+#: data/org.gnome.shell.gschema.xml.in:297
msgid "Location"
msgstr "Vieta"
-#: data/org.gnome.shell.gschema.xml.in:306
+#: data/org.gnome.shell.gschema.xml.in:298
msgid "The location for which to show a forecast"
msgstr "Vieta, kurai rādīt laika prognozi"
-#: data/org.gnome.shell.gschema.xml.in:318
+#: data/org.gnome.shell.gschema.xml.in:310
msgid "Attach modal dialog to the parent window"
msgstr "Pievienot modālo dialoglodziņu vecāka logam"
-#: 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:336
#: data/org.gnome.shell.gschema.xml.in:344
-#: data/org.gnome.shell.gschema.xml.in:352
msgid ""
"This key overrides the key in org.gnome.mutter when running GNOME Shell."
msgstr "Šī atslēga pārraksta org.gnome.mutter atslēgu, darbinot GNOME čaulu."
-#: 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"
msgstr "Aktivēt logu sānisko izklāšanu, kad to nomet uz ekrāna malas"
-#: data/org.gnome.shell.gschema.xml.in:335
+#: data/org.gnome.shell.gschema.xml.in:327
msgid "Workspaces are managed dynamically"
msgstr "Darbvietas tiek pārvaldītas dinamiski"
-#: data/org.gnome.shell.gschema.xml.in:343
+#: data/org.gnome.shell.gschema.xml.in:335
msgid "Workspaces only on primary monitor"
msgstr "Darbvietas tikai uz galvenā monitora"
-#: 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"
msgstr "Peles režīmā aizkavēt fokusa izmaiņas, līdz rādītājs pārstāj kustēties"
@@ -453,19 +491,19 @@ msgstr "Mājaslapa"
msgid "Visit extension homepage"
msgstr "Apmeklēt paplašinājum mājaslapu"
-#: js/gdm/authPrompt.js:141 js/ui/audioDeviceSelection.js:58
-#: js/ui/components/networkAgent.js:111 js/ui/components/polkitAgent.js:138
-#: js/ui/endSessionDialog.js:438 js/ui/extensionDownloader.js:183
+#: js/gdm/authPrompt.js:141 js/ui/audioDeviceSelection.js:61
+#: js/ui/components/networkAgent.js:110 js/ui/components/polkitAgent.js:138
+#: 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:941 subprojects/extensions-app/js/main.js:183
+#: js/ui/status/network.js:978 subprojects/extensions-app/js/main.js:183
msgid "Cancel"
msgstr "Atcelt"
#. Cisco LEAP
-#: js/gdm/authPrompt.js:244 js/ui/components/networkAgent.js:210
-#: js/ui/components/networkAgent.js:226 js/ui/components/networkAgent.js:250
-#: js/ui/components/networkAgent.js:271 js/ui/components/networkAgent.js:291
-#: js/ui/components/networkAgent.js:301 js/ui/components/polkitAgent.js:275
+#: js/gdm/authPrompt.js:285 js/ui/components/networkAgent.js:209
+#: js/ui/components/networkAgent.js:225 js/ui/components/networkAgent.js:249
+#: js/ui/components/networkAgent.js:270 js/ui/components/networkAgent.js:290
+#: js/ui/components/networkAgent.js:300 js/ui/components/polkitAgent.js:275
#: js/ui/shellMountOperation.js:326
msgid "Password"
msgstr "Parole"
@@ -480,7 +518,7 @@ msgstr "Nav sarakstā?"
#. Translators: this message is shown below the username entry field
#. to clue the user in on how to login to the local network realm
-#: js/gdm/loginDialog.js:918
+#: js/gdm/loginDialog.js:921
#, javascript-format
msgid "(e.g., user or %s)"
msgstr "(piemēram, lietotājs vai %s)"
@@ -488,12 +526,12 @@ msgstr "(piemēram, lietotājs vai %s)"
#. TTLS and PEAP are actually much more complicated, but this complication
#. is not visible here since we only care about phase2 authentication
#. (and don't even care of which one)
-#: js/gdm/loginDialog.js:923 js/ui/components/networkAgent.js:246
-#: js/ui/components/networkAgent.js:269 js/ui/components/networkAgent.js:287
+#: js/gdm/loginDialog.js:926 js/ui/components/networkAgent.js:245
+#: js/ui/components/networkAgent.js:268 js/ui/components/networkAgent.js:286
msgid "Username"
msgstr "Lietotājvārds"
-#: js/gdm/loginDialog.js:1258
+#: js/gdm/loginDialog.js:1279
msgid "Login Window"
msgstr "Ierakstīšanās logs"
@@ -504,14 +542,12 @@ msgstr "Autentifikācijas kļūda"
#. Translators: this message is shown below the password entry field
#. to indicate the user can swipe their finger on the fingerprint reader
#: js/gdm/util.js:589
-#| msgid "(or swipe finger)"
msgid "(or swipe finger across reader)"
msgstr "(vai velciet pirkstu pāri lasītājam)"
#. Translators: this message is shown below the password entry field
#. to indicate the user can place their finger on the fingerprint reader instead
#: js/gdm/util.js:594
-#| msgid "(or swipe finger)"
msgid "(or place finger on reader)"
msgstr "(vai novietojiet pirkstu uz lasītāja)"
@@ -596,26 +632,26 @@ msgctxt "search-result"
msgid "Lock Screen Rotation"
msgstr "Noslēgt ekrāna orientāciju"
-#: js/misc/util.js:120
+#: js/misc/util.js:121
msgid "Command not found"
msgstr "Komanda nav atrasta"
#. Replace "Error invoking GLib.shell_parse_argv: " with
#. something nicer
-#: js/misc/util.js:156
+#: js/misc/util.js:157
msgid "Could not parse command:"
msgstr "Neizdevās apstrādāt komandu:"
-#: js/misc/util.js:164
+#: js/misc/util.js:165
#, javascript-format
msgid "Execution of “%s” failed:"
msgstr "“%s” izpilde neizdevās:"
-#: js/misc/util.js:181
+#: js/misc/util.js:182
msgid "Just now"
msgstr "Tikko"
-#: js/misc/util.js:183
+#: js/misc/util.js:184
#, javascript-format
msgid "%d minute ago"
msgid_plural "%d minutes ago"
@@ -623,7 +659,7 @@ msgstr[0] "Pirms %d minūtes"
msgstr[1] "Pirms %d minūtēm"
msgstr[2] "Pirms %d minūtēm"
-#: js/misc/util.js:187
+#: js/misc/util.js:188
#, javascript-format
msgid "%d hour ago"
msgid_plural "%d hours ago"
@@ -631,11 +667,11 @@ msgstr[0] "Pirms %d stundas"
msgstr[1] "Pirms %d stundām"
msgstr[2] "Pirms %d stundām"
-#: js/misc/util.js:191 js/ui/dateMenu.js:162
+#: js/misc/util.js:192 js/ui/dateMenu.js:162
msgid "Yesterday"
msgstr "Vakar"
-#: js/misc/util.js:193
+#: js/misc/util.js:194
#, javascript-format
msgid "%d day ago"
msgid_plural "%d days ago"
@@ -643,7 +679,7 @@ msgstr[0] "Pirms %d dienas"
msgstr[1] "Pirms %d dienām"
msgstr[2] "Pirms %d dienām"
-#: js/misc/util.js:197
+#: js/misc/util.js:198
#, javascript-format
msgid "%d week ago"
msgid_plural "%d weeks ago"
@@ -651,7 +687,7 @@ msgstr[0] "Pirms %d nedēļas"
msgstr[1] "Pirms %d nedēļām"
msgstr[2] "Pirms %d nedēļām"
-#: js/misc/util.js:201
+#: js/misc/util.js:202
#, javascript-format
msgid "%d month ago"
msgid_plural "%d months ago"
@@ -659,7 +695,7 @@ msgstr[0] "Pirms %d mēneša"
msgstr[1] "Pirms %d mēnešiem"
msgstr[2] "Pirms %d mēnešiem"
-#: js/misc/util.js:204
+#: js/misc/util.js:205
#, javascript-format
msgid "%d year ago"
msgid_plural "%d years ago"
@@ -668,20 +704,20 @@ msgstr[1] "Pirms %d gadiem"
msgstr[2] "Pirms %d gadiem"
#. Translators: Time in 24h format
-#: js/misc/util.js:237
+#: js/misc/util.js:238
msgid "%H∶%M"
msgstr "%H.%M"
#. Translators: this is the word "Yesterday" followed by a
#. time string in 24h format. i.e. "Yesterday, 14:30"
-#: js/misc/util.js:243
+#: js/misc/util.js:244
#, no-c-format
msgid "Yesterday, %H∶%M"
msgstr "Vakar, %H.%M"
#. Translators: this is the week day name followed by a time
#. string in 24h format. i.e. "Monday, 14:30"
-#: js/misc/util.js:249
+#: js/misc/util.js:250
#, no-c-format
msgid "%A, %H∶%M"
msgstr "%A, %H.%M"
@@ -689,7 +725,7 @@ msgstr "%A, %H.%M"
#. Translators: this is the month name and day number
#. followed by a time string in 24h format.
#. i.e. "May 25, 14:30"
-#: js/misc/util.js:255
+#: js/misc/util.js:256
#, no-c-format
msgid "%B %-d, %H∶%M"
msgstr "%-d. %B, %H.%M"
@@ -697,7 +733,7 @@ msgstr "%-d. %B, %H.%M"
#. Translators: this is the month name, day number, year
#. number followed by a time string in 24h format.
#. i.e. "May 25 2012, 14:30"
-#: js/misc/util.js:261
+#: js/misc/util.js:262
#, no-c-format
msgid "%B %-d %Y, %H∶%M"
msgstr "%-d. %B, %Y., %H.%M"
@@ -705,20 +741,20 @@ msgstr "%-d. %B, %Y., %H.%M"
#. Show only the time if date is on today
#. eslint-disable-line no-lonely-if
#. Translators: Time in 12h format
-#: js/misc/util.js:266
+#: js/misc/util.js:267
msgid "%l∶%M %p"
msgstr "%l.%M %p"
#. Translators: this is the word "Yesterday" followed by a
#. time string in 12h format. i.e. "Yesterday, 2:30 pm"
-#: js/misc/util.js:272
+#: js/misc/util.js:273
#, no-c-format
msgid "Yesterday, %l∶%M %p"
msgstr "Vakar, %l:%M %p"
#. Translators: this is the week day name followed by a time
#. string in 12h format. i.e. "Monday, 2:30 pm"
-#: js/misc/util.js:278
+#: js/misc/util.js:279
#, no-c-format
msgid "%A, %l∶%M %p"
msgstr "%A, %l.%M %p"
@@ -726,7 +762,7 @@ msgstr "%A, %l.%M %p"
#. Translators: this is the month name and day number
#. followed by a time string in 12h format.
#. i.e. "May 25, 2:30 pm"
-#: js/misc/util.js:284
+#: js/misc/util.js:285
#, no-c-format
msgid "%B %-d, %l∶%M %p"
msgstr "%-d. %B, %l.%M %p"
@@ -734,17 +770,17 @@ msgstr "%-d. %B, %l.%M %p"
#. Translators: this is the month name, day number, year
#. number followed by a time string in 12h format.
#. i.e. "May 25 2012, 2:30 pm"
-#: js/misc/util.js:290
+#: js/misc/util.js:291
#, no-c-format
msgid "%B %-d %Y, %l∶%M %p"
msgstr "%-d. %B, %Y., %l.%M %p"
#. 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"
msgstr "Tīklāja ierakstīšanās"
-#: js/portalHelper/main.js:88
+#: js/portalHelper/main.js:95
msgid ""
"Your connection to this hotspot login is not secure. Passwords or other "
"information you enter on this page can be viewed by people nearby."
@@ -754,47 +790,18 @@ msgstr ""
#. No support for non-modal system dialogs, so ignore the option
#. let modal = options['modal'] || true;
-#: js/ui/accessDialog.js:39 js/ui/status/location.js:369
+#: js/ui/accessDialog.js:39 js/ui/status/location.js:417
msgid "Deny Access"
msgstr "Liegt pieeju"
-#: js/ui/accessDialog.js:40 js/ui/status/location.js:372
+#: js/ui/accessDialog.js:40 js/ui/status/location.js:420
msgid "Grant Access"
msgstr "Piešķirt pieeju"
-#: js/ui/appDisplay.js:1815
+#: js/ui/appDisplay.js:1846
msgid "Unnamed Folder"
msgstr "Nenosaukta mape"
-#. Translators: This is the heading of a list of open windows
-#: js/ui/appDisplay.js:3392 js/ui/panel.js:33
-msgid "Open Windows"
-msgstr "Atvērt logus"
-
-#: js/ui/appDisplay.js:3411 js/ui/panel.js:40
-msgid "New Window"
-msgstr "Jauns logs"
-
-#: js/ui/appDisplay.js:3427
-msgid "Launch using Integrated Graphics Card"
-msgstr "Palaist, izmantojot integrēto grafikas karti"
-
-#: js/ui/appDisplay.js:3428
-msgid "Launch using Discrete Graphics Card"
-msgstr "Palaist, izmantojot diskrēto grafikas karti"
-
-#: js/ui/appDisplay.js:3457 js/ui/dash.js:245
-msgid "Remove from Favorites"
-msgstr "Izņemt no izlases"
-
-#: js/ui/appDisplay.js:3463
-msgid "Add to Favorites"
-msgstr "Pievienot izlasei"
-
-#: js/ui/appDisplay.js:3473 js/ui/panel.js:51
-msgid "Show Details"
-msgstr "Rādīt sīkāku informāciju"
-
#: js/ui/appFavorites.js:164
#, javascript-format
msgid "%s has been added to your favorites."
@@ -805,23 +812,56 @@ msgstr "%s ir pievienots izlasei."
msgid "%s has been removed from your favorites."
msgstr "%s ir izņemts no izlases."
+#. Translators: This is the heading of a list of open windows
+#: js/ui/appMenu.js:46
+msgid "Open Windows"
+msgstr "Atvērt logus"
+
+#: js/ui/appMenu.js:54
+msgid "New Window"
+msgstr "Jauns logs"
+
+#: js/ui/appMenu.js:81
+msgid "Show Details"
+msgstr "Rādīt sīkāku informāciju"
+
+#: js/ui/appMenu.js:96
+msgid "Quit"
+msgstr "Iziet"
+
+#: js/ui/appMenu.js:163 js/ui/dash.js:245
+msgid "Remove from Favorites"
+msgstr "Izņemt no izlases"
+
+#: js/ui/appMenu.js:164
+msgid "Add to Favorites"
+msgstr "Pievienot izlasei"
+
+#: js/ui/appMenu.js:181
+msgid "Launch using Integrated Graphics Card"
+msgstr "Palaist, izmantojot integrēto grafikas karti"
+
+#: js/ui/appMenu.js:182
+msgid "Launch using Discrete Graphics Card"
+msgstr "Palaist, izmantojot diskrēto grafikas karti"
+
#: js/ui/audioDeviceSelection.js:41
msgid "Select Audio Device"
msgstr "Izvēlieties audio ierīci"
-#: js/ui/audioDeviceSelection.js:55
+#: js/ui/audioDeviceSelection.js:56
msgid "Sound Settings"
msgstr "Skaņas Iestatījumi"
-#: js/ui/audioDeviceSelection.js:65
+#: js/ui/audioDeviceSelection.js:69
msgid "Headphones"
msgstr "Austiņas"
-#: js/ui/audioDeviceSelection.js:67
+#: js/ui/audioDeviceSelection.js:71
msgid "Headset"
msgstr "Austiņas ar mikrofonu"
-#: js/ui/audioDeviceSelection.js:69 js/ui/status/volume.js:277
+#: js/ui/audioDeviceSelection.js:73 js/ui/status/volume.js:277
msgid "Microphone"
msgstr "Mikrofons"
@@ -938,7 +978,7 @@ msgstr "Nav paziņojumu"
msgid "Do Not Disturb"
msgstr "Netraucēt"
-#: js/ui/calendar.js:969
+#: js/ui/calendar.js:971
msgid "Clear"
msgstr "Attīrīt"
@@ -985,38 +1025,38 @@ msgstr "Instalētā udisks versija neatbalsta PIM iestatījumu"
msgid "Open with %s"
msgstr "Atvērt ar %s"
-#: js/ui/components/networkAgent.js:93
+#: js/ui/components/networkAgent.js:92
msgid ""
"Alternatively you can connect by pushing the “WPS” button on your router."
msgstr "Varat arī savienoties, uz sava maršrutētāja spiežot pogu “WPS”."
-#: js/ui/components/networkAgent.js:105 js/ui/status/network.js:253
-#: js/ui/status/network.js:344 js/ui/status/network.js:944
+#: js/ui/components/networkAgent.js:104 js/ui/status/network.js:258
+#: js/ui/status/network.js:349 js/ui/status/network.js:981
msgid "Connect"
msgstr "Savienot"
-#: js/ui/components/networkAgent.js:216
+#: js/ui/components/networkAgent.js:215
msgid "Key"
msgstr "Atslēga"
-#: 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"
msgstr "Privātās atslēgas parole"
-#: js/ui/components/networkAgent.js:275
+#: js/ui/components/networkAgent.js:274
msgid "Identity"
msgstr "Identitāte"
-#: js/ui/components/networkAgent.js:289
+#: js/ui/components/networkAgent.js:288
msgid "Service"
msgstr "Serviss"
-#: 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
msgid "Authentication required"
msgstr "Nepieciešama autentifikācija"
-#: 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
msgid ""
"Passwords or encryption keys are required to access the wireless network "
@@ -1025,38 +1065,38 @@ msgstr ""
"Lai piekļūtu bezvadu tīklam “%s”, ir nepieciešamas paroles vai šifrēšanas "
"atslēgas."
-#: 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"
msgstr "Vadu 802.1X autentifikācija"
-#: js/ui/components/networkAgent.js:325
+#: js/ui/components/networkAgent.js:324
msgid "Network name"
msgstr "Tīkla nosaukums"
-#: 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"
msgstr "DSL autentifikācija"
-#: 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"
msgstr "Nepieciešams PIN kods"
-#: 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"
msgstr "Mobilā platjoslas tīkla ierīcei ir vajadzīgs PIN kods"
-#: js/ui/components/networkAgent.js:339
+#: js/ui/components/networkAgent.js:338
msgid "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:705
#, javascript-format
msgid "A password is required to connect to “%s”."
msgstr "Lai savienotos ar “%s”, ir nepieciešama parole."
-#: js/ui/components/networkAgent.js:668 js/ui/status/network.js:1718
+#: js/ui/components/networkAgent.js:668 js/ui/status/network.js:1789
msgid "Network Manager"
msgstr "Tīkla pārvaldnieks"
@@ -1091,7 +1131,7 @@ msgstr "Diemžēl tas nenostrādāja. Lūdzu, mēģiniet vēlreiz."
msgid "%s is now known as %s"
msgstr "%s tagad zināms kā %s"
-#: js/ui/ctrlAltTab.js:21 js/ui/overviewControls.js:377
+#: js/ui/ctrlAltTab.js:21 js/ui/overviewControls.js:404
msgid "Windows"
msgstr "Logi"
@@ -1349,24 +1389,24 @@ msgstr "%s (attālināts)"
msgid "%s (console)"
msgstr "%s (konsole)"
-#: js/ui/extensionDownloader.js:187
+#: js/ui/extensionDownloader.js:232
msgid "Install"
msgstr "Instalēt"
-#: js/ui/extensionDownloader.js:193
+#: js/ui/extensionDownloader.js:238
msgid "Install Extension"
msgstr "Instalēt paplašinājumu"
-#: js/ui/extensionDownloader.js:194
+#: js/ui/extensionDownloader.js:239
#, javascript-format
msgid "Download and install “%s” from extensions.gnome.org?"
msgstr "Lejupielādēt un instalēt “%s” no extensions.gnome.org?"
-#: js/ui/extensionSystem.js:253
+#: js/ui/extensionSystem.js:252
msgid "Extension Updates Available"
msgstr "Ir pieejami atjauninājumi paplašinājumiem"
-#: js/ui/extensionSystem.js:254
+#: js/ui/extensionSystem.js:253
msgid "Extension updates are ready to be installed."
msgstr "Paplašinājumu atjauninājumi ir gatavi instalēšanai."
@@ -1446,13 +1486,13 @@ msgid "Leave On"
msgstr "Atstāt ieslēgtu"
#: js/ui/kbdA11yDialog.js:54 js/ui/status/bluetooth.js:156
-#: js/ui/status/network.js:1316
+#: js/ui/status/network.js:1377
msgid "Turn On"
msgstr "Ieslēgt"
#: js/ui/kbdA11yDialog.js:62 js/ui/status/bluetooth.js:156
-#: js/ui/status/network.js:161 js/ui/status/network.js:345
-#: js/ui/status/network.js:1316 js/ui/status/network.js:1428
+#: js/ui/status/network.js:166 js/ui/status/network.js:350
+#: 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/rfkill.js:110
msgid "Turn Off"
@@ -1462,7 +1502,7 @@ msgstr "Izslēgt"
msgid "Leave Off"
msgstr "Atstāt izslēgtu"
-#: js/ui/keyboard.js:227
+#: js/ui/keyboard.js:226
msgid "Region & Language Settings"
msgstr "Vietas un valodas iestatījumi"
@@ -1515,11 +1555,11 @@ msgstr "Skatīt avotu"
msgid "Web Page"
msgstr "Tīmekļa lapa"
-#: js/ui/main.js:294
+#: js/ui/main.js:290
msgid "Logged in as a privileged user"
msgstr "Ierakstījies kā priviliģēts lietotājs"
-#: js/ui/main.js:295
+#: js/ui/main.js:291
msgid ""
"Running a session as a privileged user should be avoided for security "
"reasons. If possible, you should log in as a normal user."
@@ -1527,15 +1567,15 @@ msgstr ""
"Drošības apsvērumu dēļ nav ieteicams darbināt sesiju ar priviliģētu "
"lietotāju. Ja iespējams, jums vajadzētu ierakstīties kā parastam lietotājam."
-#: js/ui/main.js:345
+#: js/ui/main.js:340
msgid "Screen Lock disabled"
msgstr "Ekrāna bloķēšana ir izslēgta"
-#: js/ui/main.js:346
+#: js/ui/main.js:341
msgid "Screen Locking requires the GNOME display manager."
msgstr "Ekrāna bloķēšanai vajag GNOME darbvirsmas pārvaldnieku."
-#: js/ui/messageTray.js:1452
+#: js/ui/messageTray.js:1443
msgid "System Information"
msgstr "Sistēmas informācija"
@@ -1551,84 +1591,80 @@ msgstr "Nezināms nosaukums"
#. in the search entry when no search is
#. active; it should not exceed ~30
#. characters.
-#: js/ui/overviewControls.js:289
+#: js/ui/overviewControls.js:313
msgid "Type to search"
msgstr "Rakstiet, lai meklētu"
-#: js/ui/overviewControls.js:365
+#: js/ui/overviewControls.js:392
msgid "Applications"
msgstr "Lietotnes"
-#: js/ui/overview.js:69
+#: js/ui/overview.js:58
msgid "Undo"
msgstr "Atsaukt"
#. Translators: This is the main view to select
#. activities. See also note for "Activities" string.
-#: js/ui/overview.js:82
+#: js/ui/overview.js:71
msgid "Overview"
msgstr "Pārskats"
-#: js/ui/padOsd.js:96
+#: js/ui/padOsd.js:95
msgid "New shortcut…"
msgstr "Jauna saīsne…"
-#: js/ui/padOsd.js:143
+#: js/ui/padOsd.js:142
msgid "Application defined"
msgstr "Definētā lietotne"
-#: js/ui/padOsd.js:144
+#: js/ui/padOsd.js:143
msgid "Show on-screen help"
msgstr "Rādīt palīdzību uz ekrāna"
-#: js/ui/padOsd.js:145
+#: js/ui/padOsd.js:144
msgid "Switch monitor"
msgstr "Pārslēgt monitoru"
-#: js/ui/padOsd.js:146
+#: js/ui/padOsd.js:145
msgid "Assign keystroke"
msgstr "Piešķirt taustiņsitienu"
-#: js/ui/padOsd.js:212
+#: js/ui/padOsd.js:211
msgid "Done"
msgstr "Gatavs"
-#: js/ui/padOsd.js:718
+#: js/ui/padOsd.js:716
msgid "Edit…"
msgstr "Rediģēt…"
-#: js/ui/padOsd.js:760 js/ui/padOsd.js:877
+#: js/ui/padOsd.js:758 js/ui/padOsd.js:875
msgid "None"
msgstr "Nekas"
-#: js/ui/padOsd.js:831
+#: js/ui/padOsd.js:829
msgid "Press a button to configure"
msgstr "Spiediet pogu, lai konfigurētu"
-#: js/ui/padOsd.js:832
+#: js/ui/padOsd.js:830
msgid "Press Esc to exit"
msgstr "Spiediet ESC, lai izietu"
-#: js/ui/padOsd.js:835
+#: js/ui/padOsd.js:833
msgid "Press any key to exit"
msgstr "Spiediet jebkuru taustiņu, lai izietu"
-#: js/ui/panel.js:65
-msgid "Quit"
-msgstr "Iziet"
-
#. Translators: If there is no suitable word for "Activities"
#. in your language, you can use the word for "Overview".
-#: js/ui/panel.js:391
+#: js/ui/panel.js:271
msgid "Activities"
msgstr "Aktivitātes"
-#: js/ui/panel.js:662
+#: js/ui/panel.js:556
msgctxt "System menu in the top bar"
msgid "System"
msgstr "Sistēma"
-#: js/ui/panel.js:774
+#: js/ui/panel.js:674
msgid "Top Bar"
msgstr "Augšējā josla"
@@ -1648,7 +1684,7 @@ msgstr "Uz Wayland pārstartēšana nav pieejama"
msgid "Restarting…"
msgstr "Pārstartē…"
-#: js/ui/screenShield.js:211
+#: js/ui/screenShield.js:224
msgid "GNOME needs to lock the screen"
msgstr "GNOME vajag bloķēt ekrānu"
@@ -1659,28 +1695,27 @@ msgstr "GNOME vajag bloķēt ekrānu"
#.
#. XXX: another option is to kick the user into the gdm login
#. screen, where we're not affected by grabs
-#: js/ui/screenShield.js:252 js/ui/screenShield.js:620
+#: js/ui/screenShield.js:264 js/ui/screenShield.js:634
msgid "Unable to lock"
msgstr "Nevar bloķēt"
-#: js/ui/screenShield.js:253 js/ui/screenShield.js:621
+#: js/ui/screenShield.js:265 js/ui/screenShield.js:635
msgid "Lock was blocked by an application"
msgstr "Lietotne neļāva bloķēt"
-#: js/ui/screenshot.js:141
-#| msgid "Screen Reader"
+#: js/ui/screenshot.js:155
msgid "Screenshot taken"
msgstr "Ekrānattēls uzņemts"
-#: js/ui/search.js:824
+#: js/ui/search.js:825
msgid "Searching…"
msgstr "Meklē…"
-#: js/ui/search.js:826
+#: js/ui/search.js:827
msgid "No results."
msgstr "Nav rezultātu."
-#: js/ui/search.js:952
+#: js/ui/search.js:953
#, javascript-format
msgid "%d more"
msgid_plural "%d more"
@@ -1700,15 +1735,15 @@ msgstr "Kopēt"
msgid "Paste"
msgstr "Ielīmēt"
-#: js/ui/shellEntry.js:73
+#: js/ui/shellEntry.js:77
msgid "Show Text"
msgstr "Rādīt tekstu"
-#: js/ui/shellEntry.js:75
+#: js/ui/shellEntry.js:79
msgid "Hide Text"
msgstr "Slēpt tekstu"
-#: js/ui/shellEntry.js:162
+#: js/ui/shellEntry.js:166
msgid "Caps lock is on."
msgstr "Ieslēgts Caps Lock."
@@ -1815,7 +1850,7 @@ msgstr "Liels teksts"
msgid "Bluetooth"
msgstr "Bluetooth"
-#: js/ui/status/bluetooth.js:49 js/ui/status/network.js:620
+#: js/ui/status/bluetooth.js:49 js/ui/status/network.js:652
msgid "Bluetooth Settings"
msgstr "Bluetooth iestatījumi"
@@ -1860,49 +1895,49 @@ msgstr "Sekundārais klikšķis"
msgid "Dwell Click"
msgstr "Apstājas klikšķis"
-#: js/ui/status/keyboard.js:825
+#: js/ui/status/keyboard.js:829
msgid "Keyboard"
msgstr "Tastatūra"
-#: js/ui/status/keyboard.js:842
+#: js/ui/status/keyboard.js:846
msgid "Show Keyboard Layout"
msgstr "Rādīt tastatūras izkārtojumu"
-#: js/ui/status/location.js:65 js/ui/status/location.js:174
+#: js/ui/status/location.js:234 js/ui/status/location.js:267
msgid "Location Enabled"
msgstr "Atrašanās vieta ieslēgta"
-#: js/ui/status/location.js:66 js/ui/status/location.js:175
+#: js/ui/status/location.js:235 js/ui/status/location.js:268
msgid "Disable"
msgstr "Izslēgt"
-#: js/ui/status/location.js:67
+#: js/ui/status/location.js:236
msgid "Privacy Settings"
msgstr "Privātuma iestatījumi"
-#: js/ui/status/location.js:173
+#: js/ui/status/location.js:266
msgid "Location In Use"
msgstr "Atrašanās vieta tiek izmantota"
-#: js/ui/status/location.js:177
+#: js/ui/status/location.js:270
msgid "Location Disabled"
msgstr "Atrašanās vieta ir izslēgta"
-#: js/ui/status/location.js:178
+#: js/ui/status/location.js:271
msgid "Enable"
msgstr "Ieslēgt"
-#: js/ui/status/location.js:350
+#: js/ui/status/location.js:398
msgid "Allow location access"
msgstr "Atļaut piekļuvi atrašanās vietai"
#. Translators: %s is an application name
-#: js/ui/status/location.js:352
+#: js/ui/status/location.js:400
#, javascript-format
msgid "The app %s wants to access your location"
msgstr "Lietotne %s vēlas pieeju jūsu atrašanās vietai"
-#: js/ui/status/location.js:362
+#: js/ui/status/location.js:410
msgid "Location access can be changed at any time from the privacy settings."
msgstr ""
"Pieeju atrašanās vietai var mainīt jebkurā brīdī privātuma iestatījumos."
@@ -1912,13 +1947,13 @@ msgid ""
msgstr ""
#. Translators: %s is a network identifier
-#: js/ui/status/network.js:450 js/ui/status/network.js:1345
+#: js/ui/status/network.js:455 js/ui/status/network.js:1406
#, javascript-format
msgid "%s Off"
msgstr "%s ir izslēgta"
#. Translators: %s is a network identifier
-#: js/ui/status/network.js:453
+#: js/ui/status/network.js:458
#, javascript-format
msgid "%s Connected"
msgstr "%s ir savienots"
@@ -1926,164 +1961,164 @@ msgstr "%s ir savienots"
#. Translators: this is for network devices that are physically present but are not
#. under NetworkManager's control (and thus cannot be used in the menu);
#. %s is a network identifier
-#: js/ui/status/network.js:458
+#: js/ui/status/network.js:463
#, javascript-format
msgid "%s Unmanaged"
msgstr "%s nav pārvaldīts"
#. Translators: %s is a network identifier
-#: js/ui/status/network.js:461
+#: js/ui/status/network.js:466
#, javascript-format
msgid "%s Disconnecting"
msgstr "%s atvienojas"
#. Translators: %s is a network identifier
-#: js/ui/status/network.js:468 js/ui/status/network.js:1337
+#: js/ui/status/network.js:473 js/ui/status/network.js:1398
#, javascript-format
msgid "%s Connecting"
msgstr "%s savienojas"
#. Translators: this is for network connections that require some kind of key or password; %s is a network identifier
-#: js/ui/status/network.js:471
+#: js/ui/status/network.js:476
#, javascript-format
msgid "%s Requires Authentication"
msgstr "%s pieprasa autentificēšanos"
#. Translators: this is for devices that require some kind of firmware or kernel
#. module, which is missing; %s is a network identifier
-#: js/ui/status/network.js:479
+#: js/ui/status/network.js:484
#, javascript-format
msgid "Firmware Missing For %s"
msgstr "%s trūkst aparātprogrammatūras"
#. Translators: this is for a network device that cannot be activated (for example it
#. is disabled by rfkill, or it has no coverage; %s is a network identifier
-#: js/ui/status/network.js:483
+#: js/ui/status/network.js:488
#, javascript-format
msgid "%s Unavailable"
msgstr "%s nav pieejams"
#. Translators: %s is a network identifier
-#: js/ui/status/network.js:486
+#: js/ui/status/network.js:491
#, javascript-format
msgid "%s Connection Failed"
msgstr "%s neizdevās savienoties"
-#: js/ui/status/network.js:498
+#: js/ui/status/network.js:503
msgid "Wired Settings"
msgstr "Vadu tīkla iestatījumi"
-#: js/ui/status/network.js:541
+#: js/ui/status/network.js:550
msgid "Mobile Broadband Settings"
msgstr "Mobilās platjoslas iestatījumi"
#. Translators: %s is a network identifier
-#: js/ui/status/network.js:587 js/ui/status/network.js:1342
+#: js/ui/status/network.js:619 js/ui/status/network.js:1403
#, javascript-format
msgid "%s Hardware Disabled"
msgstr "%s ir izslēgts aparatūrā"
#. Translators: this is for a network device that cannot be activated
#. because it's disabled by rfkill (airplane mode); %s is a network identifier
-#: js/ui/status/network.js:591
+#: js/ui/status/network.js:623
#, javascript-format
msgid "%s Disabled"
msgstr "%s ir izslēgts"
-#: js/ui/status/network.js:632
+#: js/ui/status/network.js:664
msgid "Connect to Internet"
msgstr "Savienoties ar internetu"
-#: js/ui/status/network.js:836
+#: js/ui/status/network.js:873
msgid "Airplane Mode is On"
msgstr "Lidmašīnas režīms ir ieslēgts"
-#: js/ui/status/network.js:837
+#: js/ui/status/network.js:874
msgid "Wi-Fi is disabled when airplane mode is on."
msgstr "Wi-Fi tiek izslēgts, kad ir ieslēgts lidmašīnas režīms."
-#: js/ui/status/network.js:838
+#: js/ui/status/network.js:875
msgid "Turn Off Airplane Mode"
msgstr "Izslēgt lidmašīnas režīmu"
-#: js/ui/status/network.js:847
+#: js/ui/status/network.js:884
msgid "Wi-Fi is Off"
msgstr "Wi-Fi ir izslēgts"
-#: js/ui/status/network.js:848
+#: js/ui/status/network.js:885
msgid "Wi-Fi needs to be turned on in order to connect to a network."
msgstr "Lai savienotos ar tīklu, jāieslēdz Wi-Fi."
-#: js/ui/status/network.js:849
+#: js/ui/status/network.js:886
msgid "Turn On Wi-Fi"
msgstr "Ieslēgt Wi-Fi"
-#: js/ui/status/network.js:874
+#: js/ui/status/network.js:911
msgid "Wi-Fi Networks"
msgstr "Bezvadu tīkli"
-#: js/ui/status/network.js:876
+#: js/ui/status/network.js:913
msgid "Select a network"
msgstr "Izvēlieties tīklu"
-#: js/ui/status/network.js:908
+#: js/ui/status/network.js:945
msgid "No Networks"
msgstr "Nav tīklu"
-#: js/ui/status/network.js:929 js/ui/status/rfkill.js:108
+#: js/ui/status/network.js:966 js/ui/status/rfkill.js:108
msgid "Use hardware switch to turn off"
msgstr "Lai izslēgtu, izmantot aparatūras slēdzi"
-#: js/ui/status/network.js:1206
+#: js/ui/status/network.js:1267
msgid "Select Network"
msgstr "Izvēlieties tīklu"
-#: js/ui/status/network.js:1212
+#: js/ui/status/network.js:1273
msgid "Wi-Fi Settings"
msgstr "Wi-Fi iestatījumi"
#. Translators: %s is a network identifier
-#: js/ui/status/network.js:1333
+#: js/ui/status/network.js:1394
#, javascript-format
msgid "%s Hotspot Active"
msgstr "%s tīklājs ir aktīvs"
#. Translators: %s is a network identifier
-#: js/ui/status/network.js:1348
+#: js/ui/status/network.js:1409
#, javascript-format
msgid "%s Not Connected"
msgstr "%s nav savienots"
-#: js/ui/status/network.js:1445
+#: js/ui/status/network.js:1506
msgid "connecting…"
msgstr "savienojas…"
#. Translators: this is for network connections that require some kind of key or password
-#: js/ui/status/network.js:1448
+#: js/ui/status/network.js:1509
msgid "authentication required"
msgstr "nepieciešama autentifikācija"
-#: js/ui/status/network.js:1450
+#: js/ui/status/network.js:1511
msgid "connection failed"
msgstr "savienojums neizdevās"
-#: js/ui/status/network.js:1501
+#: js/ui/status/network.js:1562
msgid "VPN Settings"
msgstr "VPN iestatījumi"
-#: js/ui/status/network.js:1518
+#: js/ui/status/network.js:1579
msgid "VPN"
msgstr "VPN"
-#: js/ui/status/network.js:1528
+#: js/ui/status/network.js:1589
msgid "VPN Off"
msgstr "VPN ir izslēgts"
-#: js/ui/status/network.js:1589 js/ui/status/rfkill.js:84
+#: js/ui/status/network.js:1650 js/ui/status/rfkill.js:84
msgid "Network Settings"
msgstr "Tīkla iestatījumi"
-#: js/ui/status/network.js:1617
+#: js/ui/status/network.js:1678
#, javascript-format
msgid "%s Wired Connection"
msgid_plural "%s Wired Connections"
@@ -2091,7 +2126,7 @@ msgstr[0] "%s vadu savienojums"
msgstr[1] "%s vadu savienojumi"
msgstr[2] "%s vadu savienojumu"
-#: js/ui/status/network.js:1621
+#: js/ui/status/network.js:1682
#, javascript-format
msgid "%s Wi-Fi Connection"
msgid_plural "%s Wi-Fi Connections"
@@ -2099,7 +2134,7 @@ msgstr[0] "%s Wi-Fi savienojums"
msgstr[1] "%s Wi-Fi savienojumi"
msgstr[2] "%s Wi-Fi savienojumu"
-#: js/ui/status/network.js:1625
+#: js/ui/status/network.js:1686
#, javascript-format
msgid "%s Modem Connection"
msgid_plural "%s Modem Connections"
@@ -2107,11 +2142,11 @@ msgstr[0] "%s modema savienojums"
msgstr[1] "%s modema savienojumi"
msgstr[2] "%s modema savienojumu"
-#: js/ui/status/network.js:1759
+#: js/ui/status/network.js:1830
msgid "Connection failed"
msgstr "Neizdevās savienoties"
-#: js/ui/status/network.js:1760
+#: js/ui/status/network.js:1831
msgid "Activation of network connection failed"
msgstr "Neizdevās tīkla savienojuma aktivēšana"
@@ -2131,41 +2166,58 @@ msgstr "Turpināt"
msgid "Disable Until Tomorrow"
msgstr "Izslēgt līdz rītdienai"
-#: js/ui/status/power.js:47
+#: js/ui/status/power.js:51 js/ui/status/powerProfiles.js:57
msgid "Power Settings"
msgstr "Barošanas iestatījumi"
-#: js/ui/status/power.js:63
+#: js/ui/status/power.js:68
msgid "Fully Charged"
msgstr "Pilnībā uzlādēta"
-#: js/ui/status/power.js:69
+#: js/ui/status/power.js:74
msgid "Not Charging"
msgstr "Nelādējas"
#. 0 is reported when UPower does not have enough data
#. to estimate battery life
-#: js/ui/status/power.js:72 js/ui/status/power.js:78
+#: js/ui/status/power.js:77 js/ui/status/power.js:83
msgid "Estimating…"
msgstr "Novērtē…"
#. Translators: this is : Remaining ()
-#: js/ui/status/power.js:86
+#: js/ui/status/power.js:91
#, javascript-format
msgid "%d∶%02d Remaining (%d %%)"
msgstr "Atlicis %d.%02d (%d %%)"
#. Translators: this is : Until Full ()
-#: js/ui/status/power.js:91
+#: js/ui/status/power.js:97
#, javascript-format
msgid "%d∶%02d Until Full (%d %%)"
msgstr "Līdz pilnai %d.%02d (%d %%)"
-#: js/ui/status/power.js:139 js/ui/status/power.js:141
+#. The icon label
+#: js/ui/status/power.js:145
#, javascript-format
msgid "%d %%"
msgstr "%d %%"
+#: js/ui/status/powerProfiles.js:19
+msgctxt "Power profile"
+msgid "Performance"
+msgstr "Veiktspēja"
+
+#: js/ui/status/powerProfiles.js:20
+msgctxt "Power profile"
+msgid "Balanced"
+msgstr "Līdzsvarota"
+
+#: js/ui/status/powerProfiles.js:21
+#| msgid "Power Settings"
+msgctxt "Power profile"
+msgid "Power Saver"
+msgstr "Taupīga"
+
#: js/ui/status/remoteAccess.js:38
msgid "Screen is Being Shared"
msgstr "Ekrāns tiek koplietots"
@@ -2293,11 +2345,11 @@ msgstr "Velciet augšup, lai atbloķētu"
msgid "Click or press a key to unlock"
msgstr "Klikšķiniet vai nospiediet kādu taustiņu, lai atbloķētu"
-#: js/ui/unlockDialog.js:555
+#: js/ui/unlockDialog.js:556
msgid "Unlock Window"
msgstr "Atbloķēšanas logs"
-#: js/ui/unlockDialog.js:564
+#: js/ui/unlockDialog.js:565
msgid "Log in as another user"
msgstr "Ierakstīties kā citam lietotājam"
@@ -2355,11 +2407,14 @@ msgid "%d × %d"
msgstr "%d × %d"
#: js/ui/windowMenu.js:27
-msgid "Minimize"
-msgstr "Minimizēt"
+#| msgid "Hide Text"
+msgid "Hide"
+msgstr "Slēpt"
#: js/ui/windowMenu.js:34
-msgid "Unmaximize"
+#| msgctxt "search-result"
+#| msgid "Restart"
+msgid "Restore"
msgstr "Atjaunot"
#: js/ui/windowMenu.js:38
@@ -2426,28 +2481,28 @@ msgstr "Aizvērt"
msgid "Evolution Calendar"
msgstr "Evolution kalendārs"
-#: src/main.c:415 subprojects/extensions-tool/src/main.c:317
+#: src/main.c:419 subprojects/extensions-tool/src/main.c:317
msgid "Print version"
msgstr "Drukāt versiju"
-#: src/main.c:421
+#: src/main.c:425
msgid "Mode used by GDM for login screen"
msgstr "Režīms, ko izmantot GDM ierakstīšanās ekrānam"
-#: src/main.c:427
+#: src/main.c:431
msgid "Use a specific mode, e.g. “gdm” for login screen"
msgstr "Izmantot specifisku metodi, piemēram, “gdm” ierakstīšanās ekrānam"
-#: src/main.c:433
+#: src/main.c:437
msgid "List possible modes"
msgstr "Uzskaitīt iespējamos režīmus"
-#: src/shell-app.c:268
+#: src/shell-app.c:298
msgctxt "program"
msgid "Unknown"
msgstr "Nezināma"
-#: src/shell-app.c:519
+#: src/shell-app.c:549
#, c-format
msgid "Failed to launch “%s”"
msgstr "Neizdevās palaist “%s”"
@@ -2616,7 +2671,7 @@ msgid "Log Out…"
msgstr "Izrakstīties…"
#. Translators: a file path to an extension directory
-#: subprojects/extensions-tool/src/command-create.c:223
+#: subprojects/extensions-tool/src/command-create.c:222
#, c-format
msgid "The new extension was successfully created in %s.\n"
msgstr "Jaunais paplašinājumus tika veiksmīgi izveidots mapē %s.\n"
@@ -3027,6 +3082,20 @@ msgstr[2] "%u ievadkanāli"
msgid "System Sounds"
msgstr "Sistēmas skaņas"
+#~ msgid "Enable introspection API"
+#~ msgstr "Ieslēgt introspekcijas API"
+
+#~ msgid ""
+#~ "Enables a D-Bus API that allows to introspect the application state of "
+#~ "the shell."
+#~ msgstr "Ieslēdz D-Bus API, kas ļauj izpētīt lietotnes stāvokli."
+
+#~ msgid "Minimize"
+#~ msgstr "Minimizēt"
+
+#~ msgid "Unmaximize"
+#~ msgstr "Atjaunot"
+
#~ msgid "App Picker View"
#~ msgstr "Lietotņu izvēles skats"
diff --git a/po/pt.po b/po/pt.po
index 34d1f3f86..dd524a71d 100644
--- a/po/pt.po
+++ b/po/pt.po
@@ -16,8 +16,8 @@ msgid ""
msgstr ""
"Project-Id-Version: 3.14\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell/issues\n"
-"POT-Creation-Date: 2021-08-17 23:56+0000\n"
-"PO-Revision-Date: 2021-08-18 12:11+0100\n"
+"POT-Creation-Date: 2021-11-03 10:04+0000\n"
+"PO-Revision-Date: 2021-11-03 11:49+0000\n"
"Last-Translator: Hugo Carvalho \n"
"Language-Team: Português \n"
"Language: pt\n"
@@ -265,23 +265,11 @@ msgstr ""
"possível, e um número enorme representará versões que ainda não existem. "
"Este número enorme pode ser usado para efetivamente desativar a janela."
-#: data/org.gnome.shell.gschema.xml.in:109
-msgid "Enable introspection API"
-msgstr "Ativar API de introspecção"
-
-#: 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 ""
-"Ativa uma API de D-Bus que permite a introspeção do estado de aplicação da "
-"\"Shell\"."
-
-#: data/org.gnome.shell.gschema.xml.in:141
+#: data/org.gnome.shell.gschema.xml.in:133
msgid "Layout of the app picker"
msgstr "Esquema do seletor de aplicações"
-#: data/org.gnome.shell.gschema.xml.in:142
+#: data/org.gnome.shell.gschema.xml.in:134
msgid ""
"Layout of the app picker. Each entry in the array is a page. Pages are "
"stored in the order they appear in GNOME Shell. Each page contains an "
@@ -294,109 +282,109 @@ msgstr ""
"valores são armazenados como “dados”: • “posição”: a posição do ícone da "
"aplicação na página"
-#: data/org.gnome.shell.gschema.xml.in:157
+#: data/org.gnome.shell.gschema.xml.in:149
msgid "Keybinding to open the application menu"
msgstr "Atalho de teclado para abrir o menu de aplicações"
-#: data/org.gnome.shell.gschema.xml.in:158
+#: data/org.gnome.shell.gschema.xml.in:150
msgid "Keybinding to open the application menu."
msgstr "Atalho de teclado para abrir o menu de aplicações."
-#: data/org.gnome.shell.gschema.xml.in:164
-#: data/org.gnome.shell.gschema.xml.in:171
+#: data/org.gnome.shell.gschema.xml.in:156
+#: data/org.gnome.shell.gschema.xml.in:163
msgid "Keybinding to shift between overview states"
msgstr "Atalho de teclado para mudar de estado de visão geral"
-#: 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"
msgstr ""
"Atalho de teclado para mudar de sessão, seletor de janela e grelha de "
"aplicaçã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"
msgstr ""
"Atalho de teclado para mudar a grelha de aplicação, seletor de janela e "
"sessão"
-#: data/org.gnome.shell.gschema.xml.in:178
+#: data/org.gnome.shell.gschema.xml.in:170
msgid "Keybinding to open the “Show Applications” view"
msgstr "Atalho de teclado para abrir a vista \"Mostrar aplicações\""
-#: data/org.gnome.shell.gschema.xml.in:179
+#: data/org.gnome.shell.gschema.xml.in:171
msgid ""
"Keybinding to open the “Show Applications” view of the Activities Overview."
msgstr ""
"Atalho de teclado para abrir a vista \"Mostrar aplicações\" da Vista geral "
"de atividades."
-#: data/org.gnome.shell.gschema.xml.in:186
+#: data/org.gnome.shell.gschema.xml.in:178
msgid "Keybinding to open the overview"
msgstr "Atalho de teclado para abrir a vista geral"
-#: data/org.gnome.shell.gschema.xml.in:187
+#: data/org.gnome.shell.gschema.xml.in:179
msgid "Keybinding to open the Activities Overview."
msgstr "Atalho de teclado para abrir a Vista geral de atividades."
-#: 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"
msgstr "Atalho de teclado para mostrar/ocultar a lista de notificação"
-#: 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."
msgstr ""
"Atalho de teclado para alternar a visibilidade da lista de notificação."
-#: data/org.gnome.shell.gschema.xml.in:200
+#: data/org.gnome.shell.gschema.xml.in:192
msgid "Keybinding to focus the active notification"
msgstr "Atalho de teclado para focar a notificação ativa"
-#: data/org.gnome.shell.gschema.xml.in:201
+#: data/org.gnome.shell.gschema.xml.in:193
msgid "Keybinding to focus the active notification."
msgstr "Atalho de teclado para focar a notificação ativa."
-#: data/org.gnome.shell.gschema.xml.in:207
+#: data/org.gnome.shell.gschema.xml.in:199
msgid "Switch to application 1"
msgstr "Mudar para a aplicação 1"
-#: data/org.gnome.shell.gschema.xml.in:211
+#: data/org.gnome.shell.gschema.xml.in:203
msgid "Switch to application 2"
msgstr "Mudar para a aplicação 2"
-#: data/org.gnome.shell.gschema.xml.in:215
+#: data/org.gnome.shell.gschema.xml.in:207
msgid "Switch to application 3"
msgstr "Mudar para a aplicação 3"
-#: data/org.gnome.shell.gschema.xml.in:219
+#: data/org.gnome.shell.gschema.xml.in:211
msgid "Switch to application 4"
msgstr "Mudar para a aplicação 4"
-#: data/org.gnome.shell.gschema.xml.in:223
+#: data/org.gnome.shell.gschema.xml.in:215
msgid "Switch to application 5"
msgstr "Mudar para a aplicação 5"
-#: data/org.gnome.shell.gschema.xml.in:227
+#: data/org.gnome.shell.gschema.xml.in:219
msgid "Switch to application 6"
msgstr "Mudar para a aplicação 6"
-#: data/org.gnome.shell.gschema.xml.in:231
+#: data/org.gnome.shell.gschema.xml.in:223
msgid "Switch to application 7"
msgstr "Mudar para a aplicação 7"
-#: data/org.gnome.shell.gschema.xml.in:235
+#: data/org.gnome.shell.gschema.xml.in:227
msgid "Switch to application 8"
msgstr "Mudar para a aplicação 8"
-#: data/org.gnome.shell.gschema.xml.in:239
+#: data/org.gnome.shell.gschema.xml.in:231
msgid "Switch to application 9"
msgstr "Mudar para a aplicação 9"
-#: data/org.gnome.shell.gschema.xml.in:248
-#: data/org.gnome.shell.gschema.xml.in:275
+#: data/org.gnome.shell.gschema.xml.in:240
+#: data/org.gnome.shell.gschema.xml.in:267
msgid "Limit switcher to current workspace."
msgstr "Limitar a comutação à área de trabalho atual."
-#: data/org.gnome.shell.gschema.xml.in:249
+#: data/org.gnome.shell.gschema.xml.in:241
msgid ""
"If true, only applications that have windows on the current workspace are "
"shown in the switcher. Otherwise, all applications are included."
@@ -405,11 +393,11 @@ msgstr ""
"mostradas para troca. Senão, são incluídas todas as aplicações com janelas "
"abertas."
-#: data/org.gnome.shell.gschema.xml.in:266
+#: data/org.gnome.shell.gschema.xml.in:258
msgid "The application icon mode."
msgstr "O modo do ícone da aplicação."
-#: data/org.gnome.shell.gschema.xml.in:267
+#: data/org.gnome.shell.gschema.xml.in:259
msgid ""
"Configures how the windows are shown in the switcher. Valid possibilities "
"are “thumbnail-only” (shows a thumbnail of the window), “app-icon-"
@@ -419,7 +407,7 @@ msgstr ""
"\" (mostra uma miniatura da janela), \"apenas-ícone-aplicação\" (mostra só o "
"ícone da aplicação) ou \"ambas\"."
-#: data/org.gnome.shell.gschema.xml.in:276
+#: data/org.gnome.shell.gschema.xml.in:268
msgid ""
"If true, only windows from the current workspace are shown in the switcher. "
"Otherwise, all windows are included."
@@ -427,57 +415,57 @@ msgstr ""
"Se verdadeiro, só janelas da área de trabalho atual são apresentadas para "
"troca. Senão, são incluídas todas as aplicações com janelas abertas."
-#: data/org.gnome.shell.gschema.xml.in:286
+#: data/org.gnome.shell.gschema.xml.in:278
msgid "Locations"
msgstr "Localizações"
-#: data/org.gnome.shell.gschema.xml.in:287
+#: data/org.gnome.shell.gschema.xml.in:279
msgid "The locations to show in world clocks"
msgstr "As localizações a mostrar nos relógios mundiais"
-#: data/org.gnome.shell.gschema.xml.in:297
+#: data/org.gnome.shell.gschema.xml.in:289
msgid "Automatic location"
msgstr "Localização automática"
-#: data/org.gnome.shell.gschema.xml.in:298
+#: data/org.gnome.shell.gschema.xml.in:290
msgid "Whether to fetch the current location or not"
msgstr "Se deve ser obtida a localização atual ou não"
-#: data/org.gnome.shell.gschema.xml.in:305
+#: data/org.gnome.shell.gschema.xml.in:297
msgid "Location"
msgstr "Localização"
-#: 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"
msgstr "A localização para a qual deve ser mostrada uma previsão"
-#: data/org.gnome.shell.gschema.xml.in:318
+#: data/org.gnome.shell.gschema.xml.in:310
msgid "Attach modal dialog to the parent window"
msgstr "Anexar diálogo modal à janela principal"
-#: 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:336
#: data/org.gnome.shell.gschema.xml.in:344
-#: data/org.gnome.shell.gschema.xml.in:352
msgid ""
"This key overrides the key in org.gnome.mutter when running GNOME Shell."
msgstr ""
"Esta chave ignora a chave em org.gnome.mutter ao executar a interface 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"
msgstr "Ativar prender nas margens ao largar janelas junto às margens do ecrã"
-#: data/org.gnome.shell.gschema.xml.in:335
+#: data/org.gnome.shell.gschema.xml.in:327
msgid "Workspaces are managed dynamically"
msgstr "As áreas de trabalho são geridas dinamicamente"
-#: data/org.gnome.shell.gschema.xml.in:343
+#: data/org.gnome.shell.gschema.xml.in:335
msgid "Workspaces only on primary monitor"
msgstr "Áreas de trabalho só no monitor principal"
-#: data/org.gnome.shell.gschema.xml.in:351
+#: data/org.gnome.shell.gschema.xml.in:343
msgid "Delay focus changes in mouse mode until the pointer stops moving"
msgstr ""
"Atrasar alterações de foco no modo de rato até que o ponteiro pare de se "
@@ -514,18 +502,18 @@ msgid "Visit extension homepage"
msgstr "Visitar o sítio web da extensão"
#: js/gdm/authPrompt.js:141 js/ui/audioDeviceSelection.js:61
-#: js/ui/components/networkAgent.js:111 js/ui/components/polkitAgent.js:138
-#: js/ui/endSessionDialog.js:438 js/ui/extensionDownloader.js:190
+#: js/ui/components/networkAgent.js:110 js/ui/components/polkitAgent.js:138
+#: 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 subprojects/extensions-app/js/main.js:183
msgid "Cancel"
msgstr "Cancelar"
#. Cisco LEAP
-#: js/gdm/authPrompt.js:285 js/ui/components/networkAgent.js:210
-#: js/ui/components/networkAgent.js:226 js/ui/components/networkAgent.js:250
-#: js/ui/components/networkAgent.js:271 js/ui/components/networkAgent.js:291
-#: js/ui/components/networkAgent.js:301 js/ui/components/polkitAgent.js:275
+#: js/gdm/authPrompt.js:285 js/ui/components/networkAgent.js:209
+#: js/ui/components/networkAgent.js:225 js/ui/components/networkAgent.js:249
+#: js/ui/components/networkAgent.js:270 js/ui/components/networkAgent.js:290
+#: js/ui/components/networkAgent.js:300 js/ui/components/polkitAgent.js:275
#: js/ui/shellMountOperation.js:326
msgid "Password"
msgstr "Palavra-passe"
@@ -548,8 +536,8 @@ msgstr "(por ex., utilizador ou %s)"
#. TTLS and PEAP are actually much more complicated, but this complication
#. is not visible here since we only care about phase2 authentication
#. (and don't even care of which one)
-#: js/gdm/loginDialog.js:926 js/ui/components/networkAgent.js:246
-#: js/ui/components/networkAgent.js:269 js/ui/components/networkAgent.js:287
+#: js/gdm/loginDialog.js:926 js/ui/components/networkAgent.js:245
+#: js/ui/components/networkAgent.js:268 js/ui/components/networkAgent.js:286
msgid "Username"
msgstr "Utilizador"
@@ -654,65 +642,65 @@ msgctxt "search-result"
msgid "Lock Screen Rotation"
msgstr "Bloquear rotação de ecrã"
-#: js/misc/util.js:120
+#: js/misc/util.js:121
msgid "Command not found"
msgstr "Comando não encontrado"
#. Replace "Error invoking GLib.shell_parse_argv: " with
#. something nicer
-#: js/misc/util.js:156
+#: js/misc/util.js:157
msgid "Could not parse command:"
msgstr "Impossível analisar o comando:"
-#: js/misc/util.js:164
+#: js/misc/util.js:165
#, javascript-format
msgid "Execution of “%s” failed:"
msgstr "Falha ao executar “%s”:"
-#: js/misc/util.js:181
+#: js/misc/util.js:182
msgid "Just now"
msgstr "Agora mesmo"
-#: js/misc/util.js:183
+#: js/misc/util.js:184
#, javascript-format
msgid "%d minute ago"
msgid_plural "%d minutes ago"
msgstr[0] "há %d minuto atrás"
msgstr[1] "há %d minutos atrás"
-#: js/misc/util.js:187
+#: js/misc/util.js:188
#, javascript-format
msgid "%d hour ago"
msgid_plural "%d hours ago"
msgstr[0] "há %d hora atrás"
msgstr[1] "há %d horas atrás"
-#: js/misc/util.js:191 js/ui/dateMenu.js:162
+#: js/misc/util.js:192 js/ui/dateMenu.js:162
msgid "Yesterday"
msgstr "Ontem"
-#: js/misc/util.js:193
+#: js/misc/util.js:194
#, javascript-format
msgid "%d day ago"
msgid_plural "%d days ago"
msgstr[0] "há %d dia atrás"
msgstr[1] "há %d dias atrás"
-#: js/misc/util.js:197
+#: js/misc/util.js:198
#, javascript-format
msgid "%d week ago"
msgid_plural "%d weeks ago"
msgstr[0] "há %d semana atrás"
msgstr[1] "há %d semanas atrás"
-#: js/misc/util.js:201
+#: js/misc/util.js:202
#, javascript-format
msgid "%d month ago"
msgid_plural "%d months ago"
msgstr[0] "há %d mês atrás"
msgstr[1] "há %d meses atrás"
-#: js/misc/util.js:204
+#: js/misc/util.js:205
#, javascript-format
msgid "%d year ago"
msgid_plural "%d years ago"
@@ -720,20 +708,20 @@ msgstr[0] "há %d ano atrás"
msgstr[1] "há %d anos atrás"
#. Translators: Time in 24h format
-#: js/misc/util.js:237
+#: js/misc/util.js:238
msgid "%H∶%M"
msgstr "%H∶%M"
#. Translators: this is the word "Yesterday" followed by a
#. time string in 24h format. i.e. "Yesterday, 14:30"
-#: js/misc/util.js:243
+#: js/misc/util.js:244
#, no-c-format
msgid "Yesterday, %H∶%M"
msgstr "Ontem às %H∶%M"
#. Translators: this is the week day name followed by a time
#. string in 24h format. i.e. "Monday, 14:30"
-#: js/misc/util.js:249
+#: js/misc/util.js:250
#, no-c-format
msgid "%A, %H∶%M"
msgstr "%A, %H∶%M"
@@ -741,7 +729,7 @@ msgstr "%A, %H∶%M"
#. Translators: this is the month name and day number
#. followed by a time string in 24h format.
#. i.e. "May 25, 14:30"
-#: js/misc/util.js:255
+#: js/misc/util.js:256
#, no-c-format
msgid "%B %-d, %H∶%M"
msgstr "%d de %B, %H∶%M"
@@ -749,7 +737,7 @@ msgstr "%d de %B, %H∶%M"
#. Translators: this is the month name, day number, year
#. number followed by a time string in 24h format.
#. i.e. "May 25 2012, 14:30"
-#: js/misc/util.js:261
+#: js/misc/util.js:262
#, no-c-format
msgid "%B %-d %Y, %H∶%M"
msgstr "%d de %B de %Y, %H∶%M"
@@ -757,20 +745,20 @@ msgstr "%d de %B de %Y, %H∶%M"
#. Show only the time if date is on today
#. eslint-disable-line no-lonely-if
#. Translators: Time in 12h format
-#: js/misc/util.js:266
+#: js/misc/util.js:267
msgid "%l∶%M %p"
msgstr "%l∶%M %p"
#. Translators: this is the word "Yesterday" followed by a
#. time string in 12h format. i.e. "Yesterday, 2:30 pm"
-#: js/misc/util.js:272
+#: js/misc/util.js:273
#, no-c-format
msgid "Yesterday, %l∶%M %p"
msgstr "Ontem às %l∶%M %p"
#. Translators: this is the week day name followed by a time
#. string in 12h format. i.e. "Monday, 2:30 pm"
-#: js/misc/util.js:278
+#: js/misc/util.js:279
#, no-c-format
msgid "%A, %l∶%M %p"
msgstr "%A, %l∶%M %p"
@@ -778,7 +766,7 @@ msgstr "%A, %l∶%M %p"
#. Translators: this is the month name and day number
#. followed by a time string in 12h format.
#. i.e. "May 25, 2:30 pm"
-#: js/misc/util.js:284
+#: js/misc/util.js:285
#, no-c-format
msgid "%B %-d, %l∶%M %p"
msgstr "%d de %B, %l∶%M %p"
@@ -786,17 +774,17 @@ msgstr "%d de %B, %l∶%M %p"
#. Translators: this is the month name, day number, year
#. number followed by a time string in 12h format.
#. i.e. "May 25 2012, 2:30 pm"
-#: js/misc/util.js:290
+#: js/misc/util.js:291
#, no-c-format
msgid "%B %-d %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
-#: js/portalHelper/main.js:42
+#: js/portalHelper/main.js:49
msgid "Hotspot Login"
msgstr "Acesso por ponto wi-fi público"
-#: js/portalHelper/main.js:88
+#: js/portalHelper/main.js:95
msgid ""
"Your connection to this hotspot login is not secure. Passwords or other "
"information you enter on this page can be viewed by people nearby."
@@ -1041,39 +1029,39 @@ msgstr "A versão do udisks instalada não suporta a configuração do PIM"
msgid "Open with %s"
msgstr "Abrir com %s"
-#: js/ui/components/networkAgent.js:93
+#: js/ui/components/networkAgent.js:92
msgid ""
"Alternatively you can connect by pushing the “WPS” button on your router."
msgstr ""
"Alternativamente, pode ligar premindo o botão “WPS” no encaminhador (router)."
-#: js/ui/components/networkAgent.js:105 js/ui/status/network.js:258
+#: js/ui/components/networkAgent.js:104 js/ui/status/network.js:258
#: js/ui/status/network.js:349 js/ui/status/network.js:981
msgid "Connect"
msgstr "Ligar"
-#: js/ui/components/networkAgent.js:216
+#: js/ui/components/networkAgent.js:215
msgid "Key"
msgstr "Chave"
-#: 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"
msgstr "Palavra-passe da chave privada"
-#: js/ui/components/networkAgent.js:275
+#: js/ui/components/networkAgent.js:274
msgid "Identity"
msgstr "Identidade"
-#: js/ui/components/networkAgent.js:289
+#: js/ui/components/networkAgent.js:288
msgid "Service"
msgstr "Serviço"
-#: 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
msgid "Authentication required"
msgstr "Autenticação necessária"
-#: 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
msgid ""
"Passwords or encryption keys are required to access the wireless network "
@@ -1082,31 +1070,31 @@ msgstr ""
"São necessárias palavras-passe ou chaves de encriptação para aceder à rede "
"sem fios “%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"
msgstr "Autenticação para 802.1X por cabo"
-#: js/ui/components/networkAgent.js:325
+#: js/ui/components/networkAgent.js:324
msgid "Network name"
msgstr "Nome da rede"
-#: 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"
msgstr "Autenticação 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"
msgstr "Necessário código 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"
msgstr "É necessário o código PIN para o dispositivo de banda larga móvel"
-#: js/ui/components/networkAgent.js:339
+#: js/ui/components/networkAgent.js:338
msgid "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:705
#, javascript-format
@@ -1397,24 +1385,24 @@ msgstr "%s (remoto)"
msgid "%s (console)"
msgstr "%s (consola)"
-#: js/ui/extensionDownloader.js:194
+#: js/ui/extensionDownloader.js:232
msgid "Install"
msgstr "Instalar"
-#: js/ui/extensionDownloader.js:200
+#: js/ui/extensionDownloader.js:238
msgid "Install Extension"
msgstr "Instalar extensão"
-#: js/ui/extensionDownloader.js:201
+#: js/ui/extensionDownloader.js:239
#, javascript-format
msgid "Download and install “%s” from extensions.gnome.org?"
msgstr "Transferir e instalar \"%s\" a partir de extensions.gnome.org?"
-#: js/ui/extensionSystem.js:253
+#: js/ui/extensionSystem.js:252
msgid "Extension Updates Available"
msgstr "Há atualizações de extensões disponíveis"
-#: js/ui/extensionSystem.js:254
+#: js/ui/extensionSystem.js:253
msgid "Extension updates are ready to be installed."
msgstr "As atualizações de extensões estão prontas para serem instaladas."
@@ -1510,7 +1498,7 @@ msgstr "Desligar"
msgid "Leave Off"
msgstr "Deixar desativado"
-#: js/ui/keyboard.js:227
+#: js/ui/keyboard.js:226
msgid "Region & Language Settings"
msgstr "Definições de Região e Idioma"
@@ -1563,11 +1551,11 @@ msgstr "Ver fonte"
msgid "Web Page"
msgstr "Página Web"
-#: js/ui/main.js:294
+#: js/ui/main.js:290
msgid "Logged in as a privileged user"
msgstr "Em sessão como utilizador privilegiado"
-#: js/ui/main.js:295
+#: js/ui/main.js:291
msgid ""
"Running a session as a privileged user should be avoided for security "
"reasons. If possible, you should log in as a normal user."
@@ -1575,15 +1563,15 @@ msgstr ""
"Executar uma sessão como utilizador privilegiado deve ser evitado por "
"motivos de segurança. Se possível, aceder como utilizador normal."
-#: js/ui/main.js:344
+#: js/ui/main.js:340
msgid "Screen Lock disabled"
msgstr "Bloqueio de ecrã desligado"
-#: js/ui/main.js:345
+#: js/ui/main.js:341
msgid "Screen Locking requires the GNOME display manager."
msgstr "O bloqueio de ecrã requer o gestor de exibição do GNOME."
-#: js/ui/messageTray.js:1440
+#: js/ui/messageTray.js:1443
msgid "System Information"
msgstr "Informação do sistema"
@@ -1617,47 +1605,47 @@ msgstr "Desfazer"
msgid "Overview"
msgstr "Visão geral"
-#: js/ui/padOsd.js:96
+#: js/ui/padOsd.js:95
msgid "New shortcut…"
msgstr "Novo atalho…"
-#: js/ui/padOsd.js:143
+#: js/ui/padOsd.js:142
msgid "Application defined"
msgstr "Aplicação definida"
-#: js/ui/padOsd.js:144
+#: js/ui/padOsd.js:143
msgid "Show on-screen help"
msgstr "Mostrar ajuda no ecrã"
-#: js/ui/padOsd.js:145
+#: js/ui/padOsd.js:144
msgid "Switch monitor"
msgstr "Mudar de monitor"
-#: js/ui/padOsd.js:146
+#: js/ui/padOsd.js:145
msgid "Assign keystroke"
msgstr "Atribuir atalho"
-#: js/ui/padOsd.js:212
+#: js/ui/padOsd.js:211
msgid "Done"
msgstr "Concluído"
-#: js/ui/padOsd.js:718
+#: js/ui/padOsd.js:716
msgid "Edit…"
msgstr "Editar…"
-#: js/ui/padOsd.js:760 js/ui/padOsd.js:877
+#: js/ui/padOsd.js:758 js/ui/padOsd.js:875
msgid "None"
msgstr "Nenhum"
-#: js/ui/padOsd.js:831
+#: js/ui/padOsd.js:829
msgid "Press a button to configure"
msgstr "Premir um botão para configurar"
-#: js/ui/padOsd.js:832
+#: js/ui/padOsd.js:830
msgid "Press Esc to exit"
msgstr "Premir Esc para sair"
-#: js/ui/padOsd.js:835
+#: js/ui/padOsd.js:833
msgid "Press any key to exit"
msgstr "Premir qualquer tecla para sair"
@@ -1667,12 +1655,12 @@ msgstr "Premir qualquer tecla para sair"
msgid "Activities"
msgstr "Atividades"
-#: js/ui/panel.js:542
+#: js/ui/panel.js:556
msgctxt "System menu in the top bar"
msgid "System"
msgstr "Sistema"
-#: js/ui/panel.js:658
+#: js/ui/panel.js:674
msgid "Top Bar"
msgstr "Barra superior"
@@ -1711,7 +1699,7 @@ msgstr "Impossível bloquear"
msgid "Lock was blocked by an application"
msgstr "Uma aplicação impediu o bloqueio"
-#: js/ui/screenshot.js:141
+#: js/ui/screenshot.js:155
msgid "Screenshot taken"
msgstr "Captura de ecrã tirada"
@@ -2779,6 +2767,7 @@ msgstr "São necessários o UUID, o nome e a descrição"
#: subprojects/extensions-tool/src/command-enable.c:46
#: subprojects/extensions-tool/src/command-info.c:50
#: subprojects/extensions-tool/src/command-list.c:64
+#: subprojects/extensions-tool/src/main.c:146
msgid "Failed to connect to GNOME Shell\n"
msgstr "Ligar à Interface GNOME falhou\n"
@@ -2795,7 +2784,7 @@ msgstr "Desativar uma extensão"
#: subprojects/extensions-tool/src/command-disable.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-prefs.c:105
#: subprojects/extensions-tool/src/command-reset.c:76
#: subprojects/extensions-tool/src/command-uninstall.c:104
msgid "No UUID given"
@@ -2804,7 +2793,7 @@ msgstr "Nenhum UUID fornecido"
#: subprojects/extensions-tool/src/command-disable.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-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"
@@ -2930,14 +2919,19 @@ msgstr "Criar um pacote de extensões"
#: subprojects/extensions-tool/src/command-pack.c:501
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
#, c-format
msgid "Extension “%s” doesn't have preferences\n"
msgstr "A extensão “%s” não tem preferências\n"
-#: subprojects/extensions-tool/src/command-prefs.c:79
+#: subprojects/extensions-tool/src/command-prefs.c:62
+#, c-format
+msgid "Failed to open prefs for extension “%s”: %s\n"
+msgstr "Falha ao abrir prefs para extensão \"%s\": %s\n"
+
+#: subprojects/extensions-tool/src/command-prefs.c:87
msgid "Opens extension preferences"
msgstr "Abre as preferências da extensão"
@@ -2962,10 +2956,6 @@ msgstr "Desinstalar uma extensão"
msgid "Do not print error messages"
msgstr "Não mostrar mensagens de erro"
-#: subprojects/extensions-tool/src/main.c:146
-msgid "Failed to connect to GNOME Shell"
-msgstr "Ligar à Interface GNOME falhou"
-
#: subprojects/extensions-tool/src/main.c:244
msgid "Path"
msgstr "Caminho"
@@ -3094,7 +3084,20 @@ msgstr[1] "%u entradas"
#: subprojects/gvc/gvc-mixer-control.c:2867
msgid "System Sounds"
-msgstr "Sons de sistema"
+msgstr "Sons do sistema"
+
+#~ msgid "Enable introspection API"
+#~ msgstr "Ativar API de introspecção"
+
+#~ msgid ""
+#~ "Enables a D-Bus API that allows to introspect the application state of "
+#~ "the shell."
+#~ msgstr ""
+#~ "Ativa uma API de D-Bus que permite a introspeção do estado de aplicação "
+#~ "da \"Shell\"."
+
+#~ msgid "Failed to connect to GNOME Shell"
+#~ msgstr "Ligar à Interface GNOME falhou"
#~ msgid "Minimize"
#~ msgstr "Minimizar"
diff --git a/po/pt_BR.po b/po/pt_BR.po
index 99abb60c2..12851c4bf 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -24,16 +24,16 @@ msgid ""
msgstr ""
"Project-Id-Version: gnome-shell\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell/issues\n"
-"POT-Creation-Date: 2021-08-17 23:56+0000\n"
-"PO-Revision-Date: 2021-08-18 10:26-0300\n"
+"POT-Creation-Date: 2021-11-02 21:05+0000\n"
+"PO-Revision-Date: 2021-11-02 22:18-0300\n"
"Last-Translator: Rafael Fontenelle \n"
"Language-Team: Brazilian Portuguese \n"
"Language: pt_BR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n > 1)\n"
-"X-Generator: Gtranslator 40.0\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"X-Generator: Poedit 3.0\n"
"X-Project-Style: gnome\n"
#: data/50-gnome-shell-launchers.xml:6
@@ -274,23 +274,11 @@ msgstr ""
"existem. Este grande número pode ser usado para desativar efetivamente o "
"diálogo."
-#: data/org.gnome.shell.gschema.xml.in:109
-msgid "Enable introspection API"
-msgstr "Habilitar API de introspecção"
-
-#: 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 ""
-"Habilita uma API de D-Bus que permite introspectar o estado do aplicativo do "
-"shell."
-
-#: data/org.gnome.shell.gschema.xml.in:141
+#: data/org.gnome.shell.gschema.xml.in:133
msgid "Layout of the app picker"
msgstr "Layout do seletor de aplicativo"
-#: data/org.gnome.shell.gschema.xml.in:142
+#: data/org.gnome.shell.gschema.xml.in:134
msgid ""
"Layout of the app picker. Each entry in the array is a page. Pages are "
"stored in the order they appear in GNOME Shell. Each page contains an "
@@ -303,109 +291,109 @@ msgstr ""
"são armazenados como “dados”: • “posição”: a posição do ícone do aplicativo "
"na página"
-#: data/org.gnome.shell.gschema.xml.in:157
+#: data/org.gnome.shell.gschema.xml.in:149
msgid "Keybinding to open the application menu"
msgstr "Atalho de teclado para abrir um menu de aplicativo"
-#: data/org.gnome.shell.gschema.xml.in:158
+#: data/org.gnome.shell.gschema.xml.in:150
msgid "Keybinding to open the application menu."
msgstr "Atalho de teclado para abrir um menu de aplicativo."
-#: data/org.gnome.shell.gschema.xml.in:164
-#: data/org.gnome.shell.gschema.xml.in:171
+#: data/org.gnome.shell.gschema.xml.in:156
+#: data/org.gnome.shell.gschema.xml.in:163
msgid "Keybinding to shift between overview states"
msgstr "Atalho de teclado para alternar entre estados de panorama"
-#: 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"
msgstr ""
"Atalho de teclado para alternar entre sessão, seletor de janelas e a grade "
"de aplicativos"
-#: 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"
msgstr ""
"Atalho de teclado para alternar entre grade de aplicativos, seletor de "
"janelas e a sessão"
-#: data/org.gnome.shell.gschema.xml.in:178
+#: data/org.gnome.shell.gschema.xml.in:170
msgid "Keybinding to open the “Show Applications” view"
msgstr "Atalho de teclado para abrir a visualização “Mostrar aplicativos”"
-#: data/org.gnome.shell.gschema.xml.in:179
+#: data/org.gnome.shell.gschema.xml.in:171
msgid ""
"Keybinding to open the “Show Applications” view of the Activities Overview."
msgstr ""
"Atalho de teclado para abrir a visualização “Mostrar aplicativos” do "
"panorama de atividades."
-#: data/org.gnome.shell.gschema.xml.in:186
+#: data/org.gnome.shell.gschema.xml.in:178
msgid "Keybinding to open the overview"
msgstr "Atalho de teclado para abrir o panorama"
-#: data/org.gnome.shell.gschema.xml.in:187
+#: data/org.gnome.shell.gschema.xml.in:179
msgid "Keybinding to open the Activities Overview."
msgstr "Atalho de teclado para abrir o panorama de atividades."
-#: 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"
msgstr "Atalho de teclado para alternar a visibilidade da lista de notificação"
-#: 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."
msgstr ""
"Atalho de teclado para alternar a visibilidade da lista de notificação."
-#: data/org.gnome.shell.gschema.xml.in:200
+#: data/org.gnome.shell.gschema.xml.in:192
msgid "Keybinding to focus the active notification"
msgstr "Atalho de teclado para ativar a notificação ativa"
-#: data/org.gnome.shell.gschema.xml.in:201
+#: data/org.gnome.shell.gschema.xml.in:193
msgid "Keybinding to focus the active notification."
msgstr "Atalho de teclado para ativar a notificação ativa."
-#: data/org.gnome.shell.gschema.xml.in:207
+#: data/org.gnome.shell.gschema.xml.in:199
msgid "Switch to application 1"
msgstr "Alternar para o aplicativo 1"
-#: data/org.gnome.shell.gschema.xml.in:211
+#: data/org.gnome.shell.gschema.xml.in:203
msgid "Switch to application 2"
msgstr "Alternar para o aplicativo 2"
-#: data/org.gnome.shell.gschema.xml.in:215
+#: data/org.gnome.shell.gschema.xml.in:207
msgid "Switch to application 3"
msgstr "Alternar para o aplicativo 3"
-#: data/org.gnome.shell.gschema.xml.in:219
+#: data/org.gnome.shell.gschema.xml.in:211
msgid "Switch to application 4"
msgstr "Alternar para o aplicativo 4"
-#: data/org.gnome.shell.gschema.xml.in:223
+#: data/org.gnome.shell.gschema.xml.in:215
msgid "Switch to application 5"
msgstr "Alternar para o aplicativo 5"
-#: data/org.gnome.shell.gschema.xml.in:227
+#: data/org.gnome.shell.gschema.xml.in:219
msgid "Switch to application 6"
msgstr "Alternar para o aplicativo 6"
-#: data/org.gnome.shell.gschema.xml.in:231
+#: data/org.gnome.shell.gschema.xml.in:223
msgid "Switch to application 7"
msgstr "Alternar para o aplicativo 7"
-#: data/org.gnome.shell.gschema.xml.in:235
+#: data/org.gnome.shell.gschema.xml.in:227
msgid "Switch to application 8"
msgstr "Alternar para o aplicativo 8"
-#: data/org.gnome.shell.gschema.xml.in:239
+#: data/org.gnome.shell.gschema.xml.in:231
msgid "Switch to application 9"
msgstr "Alternar para o aplicativo 9"
-#: data/org.gnome.shell.gschema.xml.in:248
-#: data/org.gnome.shell.gschema.xml.in:275
+#: data/org.gnome.shell.gschema.xml.in:240
+#: data/org.gnome.shell.gschema.xml.in:267
msgid "Limit switcher to current workspace."
msgstr "Limitar o alternador ao espaço de trabalho atual."
-#: data/org.gnome.shell.gschema.xml.in:249
+#: data/org.gnome.shell.gschema.xml.in:241
msgid ""
"If true, only applications that have windows on the current workspace are "
"shown in the switcher. Otherwise, all applications are included."
@@ -414,11 +402,11 @@ msgstr ""
"janelas no espaço de trabalho atual. Caso contrário, todos os aplicativos "
"serão incluídos."
-#: data/org.gnome.shell.gschema.xml.in:266
+#: data/org.gnome.shell.gschema.xml.in:258
msgid "The application icon mode."
msgstr "O modo ícone do aplicativo."
-#: data/org.gnome.shell.gschema.xml.in:267
+#: data/org.gnome.shell.gschema.xml.in:259
msgid ""
"Configures how the windows are shown in the switcher. Valid possibilities "
"are “thumbnail-only” (shows a thumbnail of the window), “app-icon-"
@@ -428,7 +416,7 @@ msgstr ""
"válidas são “thumbnail-only” (mostra uma miniatura da janela), “app-icon-"
"only” (mostra apenas o ícone do aplicativo) ou “both”."
-#: data/org.gnome.shell.gschema.xml.in:276
+#: data/org.gnome.shell.gschema.xml.in:268
msgid ""
"If true, only windows from the current workspace are shown in the switcher. "
"Otherwise, all windows are included."
@@ -436,58 +424,58 @@ msgstr ""
"Se verdadeiro, o alternador mostrará somente as janelas do espaço de "
"trabalho atual. Caso contrário, todos as janelas serão incluídas."
-#: data/org.gnome.shell.gschema.xml.in:286
+#: data/org.gnome.shell.gschema.xml.in:278
msgid "Locations"
msgstr "Localizações"
-#: data/org.gnome.shell.gschema.xml.in:287
+#: data/org.gnome.shell.gschema.xml.in:279
msgid "The locations to show in world clocks"
msgstr "As localizações para mostrar nos relógios mundiais"
-#: data/org.gnome.shell.gschema.xml.in:297
+#: data/org.gnome.shell.gschema.xml.in:289
msgid "Automatic location"
msgstr "Localização automática"
-#: data/org.gnome.shell.gschema.xml.in:298
+#: data/org.gnome.shell.gschema.xml.in:290
msgid "Whether to fetch the current location or not"
msgstr "Se deve-se obter a localização atual ou não"
-#: data/org.gnome.shell.gschema.xml.in:305
+#: data/org.gnome.shell.gschema.xml.in:297
msgid "Location"
msgstr "Localização"
-#: 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"
msgstr "A localização para a qual deve-se mostrar uma previsão do tempo"
-#: data/org.gnome.shell.gschema.xml.in:318
+#: data/org.gnome.shell.gschema.xml.in:310
msgid "Attach modal dialog to the parent window"
msgstr "Anexar diálogo modal à janela pai"
-#: 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:336
#: data/org.gnome.shell.gschema.xml.in:344
-#: data/org.gnome.shell.gschema.xml.in:352
msgid ""
"This key overrides the key in org.gnome.mutter when running GNOME Shell."
msgstr ""
"Esta chave sobrescreve a chave em org.gnome.mutter ao executar o 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"
msgstr ""
"Habilitar contorno ladrilhado ao arrastar janelas sobre as bordas da tela"
-#: data/org.gnome.shell.gschema.xml.in:335
+#: data/org.gnome.shell.gschema.xml.in:327
msgid "Workspaces are managed dynamically"
msgstr "Espaços de trabalho são gerenciados dinamicamente"
-#: data/org.gnome.shell.gschema.xml.in:343
+#: data/org.gnome.shell.gschema.xml.in:335
msgid "Workspaces only on primary monitor"
msgstr "Espaços de trabalho apenas no monitor primário"
-#: 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"
msgstr "Atrasar foco altera o modo do mouse até o ponteiro parar de mover"
@@ -523,18 +511,18 @@ msgid "Visit extension homepage"
msgstr "Visita a página web da extensão"
#: js/gdm/authPrompt.js:141 js/ui/audioDeviceSelection.js:61
-#: js/ui/components/networkAgent.js:111 js/ui/components/polkitAgent.js:138
-#: js/ui/endSessionDialog.js:438 js/ui/extensionDownloader.js:190
+#: js/ui/components/networkAgent.js:110 js/ui/components/polkitAgent.js:138
+#: 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 subprojects/extensions-app/js/main.js:183
msgid "Cancel"
msgstr "Cancelar"
#. Cisco LEAP
-#: js/gdm/authPrompt.js:285 js/ui/components/networkAgent.js:210
-#: js/ui/components/networkAgent.js:226 js/ui/components/networkAgent.js:250
-#: js/ui/components/networkAgent.js:271 js/ui/components/networkAgent.js:291
-#: js/ui/components/networkAgent.js:301 js/ui/components/polkitAgent.js:275
+#: js/gdm/authPrompt.js:285 js/ui/components/networkAgent.js:209
+#: js/ui/components/networkAgent.js:225 js/ui/components/networkAgent.js:249
+#: js/ui/components/networkAgent.js:270 js/ui/components/networkAgent.js:290
+#: js/ui/components/networkAgent.js:300 js/ui/components/polkitAgent.js:275
#: js/ui/shellMountOperation.js:326
msgid "Password"
msgstr "Senha"
@@ -557,8 +545,8 @@ msgstr "(ex.: usuário ou %s)"
#. TTLS and PEAP are actually much more complicated, but this complication
#. is not visible here since we only care about phase2 authentication
#. (and don't even care of which one)
-#: js/gdm/loginDialog.js:926 js/ui/components/networkAgent.js:246
-#: js/ui/components/networkAgent.js:269 js/ui/components/networkAgent.js:287
+#: js/gdm/loginDialog.js:926 js/ui/components/networkAgent.js:245
+#: js/ui/components/networkAgent.js:268 js/ui/components/networkAgent.js:286
msgid "Username"
msgstr "Nome de usuário"
@@ -663,65 +651,65 @@ msgctxt "search-result"
msgid "Lock Screen Rotation"
msgstr "Bloquear rotação de tela"
-#: js/misc/util.js:120
+#: js/misc/util.js:121
msgid "Command not found"
msgstr "Comando não encontrado"
#. Replace "Error invoking GLib.shell_parse_argv: " with
#. something nicer
-#: js/misc/util.js:156
+#: js/misc/util.js:157
msgid "Could not parse command:"
msgstr "Não foi possível analisar comando:"
-#: js/misc/util.js:164
+#: js/misc/util.js:165
#, javascript-format
msgid "Execution of “%s” failed:"
msgstr "A execução de “%s” falhou:"
-#: js/misc/util.js:181
+#: js/misc/util.js:182
msgid "Just now"
msgstr "Agora mesmo"
-#: js/misc/util.js:183
+#: js/misc/util.js:184
#, javascript-format
msgid "%d minute ago"
msgid_plural "%d minutes ago"
msgstr[0] "%d minuto atrás"
msgstr[1] "%d minutos atrás"
-#: js/misc/util.js:187
+#: js/misc/util.js:188
#, javascript-format
msgid "%d hour ago"
msgid_plural "%d hours ago"
msgstr[0] "%d hora atrás"
msgstr[1] "%d horas atrás"
-#: js/misc/util.js:191 js/ui/dateMenu.js:162
+#: js/misc/util.js:192 js/ui/dateMenu.js:162
msgid "Yesterday"
msgstr "Ontem"
-#: js/misc/util.js:193
+#: js/misc/util.js:194
#, javascript-format
msgid "%d day ago"
msgid_plural "%d days ago"
msgstr[0] "%d dia atrás"
msgstr[1] "%d dias atrás"
-#: js/misc/util.js:197
+#: js/misc/util.js:198
#, javascript-format
msgid "%d week ago"
msgid_plural "%d weeks ago"
msgstr[0] "%d semana atrás"
msgstr[1] "%d semanas atrás"
-#: js/misc/util.js:201
+#: js/misc/util.js:202
#, javascript-format
msgid "%d month ago"
msgid_plural "%d months ago"
msgstr[0] "%d mês atrás"
msgstr[1] "%d meses atrás"
-#: js/misc/util.js:204
+#: js/misc/util.js:205
#, javascript-format
msgid "%d year ago"
msgid_plural "%d years ago"
@@ -729,20 +717,20 @@ msgstr[0] "%d ano atrás"
msgstr[1] "%d anos atrás"
#. Translators: Time in 24h format
-#: js/misc/util.js:237
+#: js/misc/util.js:238
msgid "%H∶%M"
msgstr "%H∶%M"
#. Translators: this is the word "Yesterday" followed by a
#. time string in 24h format. i.e. "Yesterday, 14:30"
-#: js/misc/util.js:243
+#: js/misc/util.js:244
#, no-c-format
msgid "Yesterday, %H∶%M"
msgstr "Ontem, %H∶%M"
#. Translators: this is the week day name followed by a time
#. string in 24h format. i.e. "Monday, 14:30"
-#: js/misc/util.js:249
+#: js/misc/util.js:250
#, no-c-format
msgid "%A, %H∶%M"
msgstr "%A, %H∶%M"
@@ -750,7 +738,7 @@ msgstr "%A, %H∶%M"
#. Translators: this is the month name and day number
#. followed by a time string in 24h format.
#. i.e. "May 25, 14:30"
-#: js/misc/util.js:255
+#: js/misc/util.js:256
#, no-c-format
msgid "%B %-d, %H∶%M"
msgstr "%-d de %B, %H∶%M"
@@ -758,7 +746,7 @@ msgstr "%-d de %B, %H∶%M"
#. Translators: this is the month name, day number, year
#. number followed by a time string in 24h format.
#. i.e. "May 25 2012, 14:30"
-#: js/misc/util.js:261
+#: js/misc/util.js:262
#, no-c-format
msgid "%B %-d %Y, %H∶%M"
msgstr "%-d de %B de %Y, %H∶%M"
@@ -766,20 +754,20 @@ msgstr "%-d de %B de %Y, %H∶%M"
#. Show only the time if date is on today
#. eslint-disable-line no-lonely-if
#. Translators: Time in 12h format
-#: js/misc/util.js:266
+#: js/misc/util.js:267
msgid "%l∶%M %p"
msgstr "%l∶%M %p"
#. Translators: this is the word "Yesterday" followed by a
#. time string in 12h format. i.e. "Yesterday, 2:30 pm"
-#: js/misc/util.js:272
+#: js/misc/util.js:273
#, no-c-format
msgid "Yesterday, %l∶%M %p"
msgstr "Ontem, %l∶%M %p"
#. Translators: this is the week day name followed by a time
#. string in 12h format. i.e. "Monday, 2:30 pm"
-#: js/misc/util.js:278
+#: js/misc/util.js:279
#, no-c-format
msgid "%A, %l∶%M %p"
msgstr "%A, %l∶%M %p"
@@ -787,7 +775,7 @@ msgstr "%A, %l∶%M %p"
#. Translators: this is the month name and day number
#. followed by a time string in 12h format.
#. i.e. "May 25, 2:30 pm"
-#: js/misc/util.js:284
+#: js/misc/util.js:285
#, no-c-format
msgid "%B %-d, %l∶%M %p"
msgstr "%-d de %B, %l∶%M %p"
@@ -795,17 +783,17 @@ msgstr "%-d de %B, %l∶%M %p"
#. Translators: this is the month name, day number, year
#. number followed by a time string in 12h format.
#. i.e. "May 25 2012, 2:30 pm"
-#: js/misc/util.js:290
+#: js/misc/util.js:291
#, no-c-format
msgid "%B %-d %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
-#: js/portalHelper/main.js:42
+#: js/portalHelper/main.js:49
msgid "Hotspot Login"
msgstr "Autenticação de ponto de acesso"
-#: js/portalHelper/main.js:88
+#: js/portalHelper/main.js:95
msgid ""
"Your connection to this hotspot login is not secure. Passwords or other "
"information you enter on this page can be viewed by people nearby."
@@ -1051,40 +1039,40 @@ msgstr "A versão do udisks instalado não possui suporte à configuração do P
msgid "Open with %s"
msgstr "Abrir com %s"
-#: js/ui/components/networkAgent.js:93
+#: js/ui/components/networkAgent.js:92
msgid ""
"Alternatively you can connect by pushing the “WPS” button on your router."
msgstr ""
"Alternativamente, você pode conectar pressionando o botão “WPS” em seu "
"roteador."
-#: 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
msgid "Connect"
msgstr "Conectar"
-#: js/ui/components/networkAgent.js:216
+#: js/ui/components/networkAgent.js:215
msgid "Key"
msgstr "Chave"
-#: 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"
msgstr "Senha da chave privada"
-#: js/ui/components/networkAgent.js:275
+#: js/ui/components/networkAgent.js:274
msgid "Identity"
msgstr "Identidade"
-#: js/ui/components/networkAgent.js:289
+#: js/ui/components/networkAgent.js:288
msgid "Service"
msgstr "Serviço"
-#: 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
msgid "Authentication required"
msgstr "Autenticação necessária"
-#: 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
msgid ""
"Passwords or encryption keys are required to access the wireless network "
@@ -1093,31 +1081,31 @@ msgstr ""
"Senhas ou chaves criptografadas são necessárias para acessar a rede sem fio "
"“%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"
msgstr "Autenticação 802.1X cabeada"
-#: js/ui/components/networkAgent.js:325
+#: js/ui/components/networkAgent.js:324
msgid "Network name"
msgstr "Nome da rede"
-#: 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"
msgstr "Autenticação 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"
msgstr "Código PIN requisitado"
-#: 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"
msgstr "O código PIN é necessário para o dispositivo móvel de banda larga"
-#: js/ui/components/networkAgent.js:339
+#: js/ui/components/networkAgent.js:338
msgid "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:705
#, javascript-format
@@ -1408,24 +1396,24 @@ msgstr "%s (remoto)"
msgid "%s (console)"
msgstr "%s (console)"
-#: js/ui/extensionDownloader.js:194
+#: js/ui/extensionDownloader.js:232
msgid "Install"
msgstr "Instalar"
-#: js/ui/extensionDownloader.js:200
+#: js/ui/extensionDownloader.js:238
msgid "Install Extension"
msgstr "Instalar extensão"
-#: js/ui/extensionDownloader.js:201
+#: js/ui/extensionDownloader.js:239
#, javascript-format
msgid "Download and install “%s” from extensions.gnome.org?"
msgstr "Baixar e instalar “%s” de extensions.gnome.org?"
-#: js/ui/extensionSystem.js:253
+#: js/ui/extensionSystem.js:252
msgid "Extension Updates Available"
msgstr "Atualizações de extensões disponíveis"
-#: js/ui/extensionSystem.js:254
+#: js/ui/extensionSystem.js:253
msgid "Extension updates are ready to be installed."
msgstr "Atualizações de extensões estão prontas para serem instaladas."
@@ -1522,7 +1510,7 @@ msgstr "Desligar"
msgid "Leave Off"
msgstr "Deixar desativado"
-#: js/ui/keyboard.js:227
+#: js/ui/keyboard.js:226
msgid "Region & Language Settings"
msgstr "Configurações regionais e de idioma"
@@ -1575,11 +1563,11 @@ msgstr "Ver fonte"
msgid "Web Page"
msgstr "Página web"
-#: js/ui/main.js:294
+#: js/ui/main.js:290
msgid "Logged in as a privileged user"
msgstr "Sessão aberta como um usuário privilegiado"
-#: js/ui/main.js:295
+#: js/ui/main.js:291
msgid ""
"Running a session as a privileged user should be avoided for security "
"reasons. If possible, you should log in as a normal user."
@@ -1587,15 +1575,15 @@ msgstr ""
"Usar uma sessão como um usuário privilegiado deve ser evitado por motivos de "
"segurança. Se possível, você deve abrir uma sessão como um usuário normal."
-#: js/ui/main.js:344
+#: js/ui/main.js:340
msgid "Screen Lock disabled"
msgstr "Bloqueio de tela desabilitado"
-#: js/ui/main.js:345
+#: js/ui/main.js:341
msgid "Screen Locking requires the GNOME display manager."
msgstr "O bloqueio de tela requer o gerenciador de exibição do GNOME."
-#: js/ui/messageTray.js:1440
+#: js/ui/messageTray.js:1443
msgid "System Information"
msgstr "Informações do sistema"
@@ -1629,47 +1617,47 @@ msgstr "Desfazer"
msgid "Overview"
msgstr "Panorama"
-#: js/ui/padOsd.js:96
+#: js/ui/padOsd.js:95
msgid "New shortcut…"
msgstr "Novo atalho…"
-#: js/ui/padOsd.js:143
+#: js/ui/padOsd.js:142
msgid "Application defined"
msgstr "Aplicativo definido"
-#: js/ui/padOsd.js:144
+#: js/ui/padOsd.js:143
msgid "Show on-screen help"
msgstr "Mostrar ajuda na tela"
-#: js/ui/padOsd.js:145
+#: js/ui/padOsd.js:144
msgid "Switch monitor"
msgstr "Trocar monitor"
-#: js/ui/padOsd.js:146
+#: js/ui/padOsd.js:145
msgid "Assign keystroke"
msgstr "Atribuir atalho"
-#: js/ui/padOsd.js:212
+#: js/ui/padOsd.js:211
msgid "Done"
msgstr "Concluído"
-#: js/ui/padOsd.js:718
+#: js/ui/padOsd.js:716
msgid "Edit…"
msgstr "Editar…"
-#: js/ui/padOsd.js:760 js/ui/padOsd.js:877
+#: js/ui/padOsd.js:758 js/ui/padOsd.js:875
msgid "None"
msgstr "Nenhum"
-#: js/ui/padOsd.js:831
+#: js/ui/padOsd.js:829
msgid "Press a button to configure"
msgstr "Pressione um botão para configurar"
-#: js/ui/padOsd.js:832
+#: js/ui/padOsd.js:830
msgid "Press Esc to exit"
msgstr "Pressione Esc para sair"
-#: js/ui/padOsd.js:835
+#: js/ui/padOsd.js:833
msgid "Press any key to exit"
msgstr "Pressione qualquer tecla para sair"
@@ -1679,12 +1667,12 @@ msgstr "Pressione qualquer tecla para sair"
msgid "Activities"
msgstr "Atividades"
-#: js/ui/panel.js:542
+#: js/ui/panel.js:556
msgctxt "System menu in the top bar"
msgid "System"
msgstr "Sistema"
-#: js/ui/panel.js:658
+#: js/ui/panel.js:674
msgid "Top Bar"
msgstr "Barra superior"
@@ -1723,7 +1711,7 @@ msgstr "Não foi possível bloquear"
msgid "Lock was blocked by an application"
msgstr "O bloqueio foi impedido por um aplicativo"
-#: js/ui/screenshot.js:141
+#: js/ui/screenshot.js:155
msgid "Screenshot taken"
msgstr "Captura de tela obtida"
@@ -2426,13 +2414,10 @@ msgid "%d × %d"
msgstr "%d × %d"
#: js/ui/windowMenu.js:27
-#| msgid "Hide Text"
msgid "Hide"
msgstr "Ocultar"
#: js/ui/windowMenu.js:34
-#| msgctxt "search-result"
-#| msgid "Restart"
msgid "Restore"
msgstr "Restaurar"
@@ -2786,6 +2771,7 @@ msgstr "UUID, nome e descrição são necessários"
#: subprojects/extensions-tool/src/command-enable.c:46
#: subprojects/extensions-tool/src/command-info.c:50
#: subprojects/extensions-tool/src/command-list.c:64
+#: subprojects/extensions-tool/src/main.c:146
msgid "Failed to connect to GNOME Shell\n"
msgstr "Falha ao conectar ao GNOME Shell\n"
@@ -2802,7 +2788,7 @@ msgstr "Desabilita uma extensão"
#: subprojects/extensions-tool/src/command-disable.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-prefs.c:105
#: subprojects/extensions-tool/src/command-reset.c:76
#: subprojects/extensions-tool/src/command-uninstall.c:104
msgid "No UUID given"
@@ -2811,7 +2797,7 @@ msgstr "Nenhuma UUID dado"
#: subprojects/extensions-tool/src/command-disable.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-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"
@@ -2941,7 +2927,12 @@ msgstr "Mais de um diretório fonte especificado"
msgid "Extension “%s” doesn't have preferences\n"
msgstr "A extensão “%s” não tem preferências\n"
-#: subprojects/extensions-tool/src/command-prefs.c:79
+#: subprojects/extensions-tool/src/command-prefs.c:62
+#, c-format
+msgid "Failed to open prefs for extension “%s”: %s\n"
+msgstr "Falha ao abrir as preferências para a extensão “%s”: %s\n"
+
+#: subprojects/extensions-tool/src/command-prefs.c:87
msgid "Opens extension preferences"
msgstr "Abre as preferências da extensão"
@@ -2966,10 +2957,6 @@ msgstr "Desinstala uma extensão"
msgid "Do not print error messages"
msgstr "Não exibir mensagens de erro"
-#: subprojects/extensions-tool/src/main.c:146
-msgid "Failed to connect to GNOME Shell"
-msgstr "Falha ao conectar ao GNOME Shell"
-
#: subprojects/extensions-tool/src/main.c:244
msgid "Path"
msgstr "Caminho"
@@ -3100,6 +3087,19 @@ msgstr[1] "%u entradas"
msgid "System Sounds"
msgstr "Sons do sistema"
+#~ msgid "Enable introspection API"
+#~ msgstr "Habilitar API de introspecção"
+
+#~ msgid ""
+#~ "Enables a D-Bus API that allows to introspect the application state of "
+#~ "the shell."
+#~ msgstr ""
+#~ "Habilita uma API de D-Bus que permite introspectar o estado do aplicativo "
+#~ "do shell."
+
+#~ msgid "Failed to connect to GNOME Shell"
+#~ msgstr "Falha ao conectar ao GNOME Shell"
+
#~ msgid "Minimize"
#~ msgstr "Minimizar"
diff --git a/po/ru.po b/po/ru.po
index 635c79558..93d03050d 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -15,22 +15,28 @@
# Stas Solovey , 2011, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020.
# Ivan Molodetskikh , 2020.
# Konstantin Nezhbert , 2021.
+# Melman , 2021.
#
msgid ""
msgstr ""
"Project-Id-Version: gnome-shell\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell/issues\n"
-"POT-Creation-Date: 2021-08-17 23:56+0000\n"
-"PO-Revision-Date: 2021-08-19 08:44+0300\n"
-"Last-Translator: Alexey Rubtsov \n"
+"POT-Creation-Date: 2021-11-03 10:04+0000\n"
+"PO-Revision-Date: 2021-11-03 14:58+0300\n"
+"Last-Translator: Melman \n"
"Language-Team: Russian \n"
"Language: ru\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
-"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
-"X-Generator: Poedit 3.0\n"
+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\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
@@ -263,23 +269,11 @@ msgstr ""
"существуют. Это большое число может быть использовано для эффективного "
"отключения диалога."
-#: data/org.gnome.shell.gschema.xml.in:109
-msgid "Enable introspection API"
-msgstr "Включить API самоанализа"
-
-#: data/org.gnome.shell.gschema.xml.in:110
-msgid ""
-"Enables a D-Bus API that allows to introspect the application state of the "
-"shell."
-msgstr ""
-"Включает D-Bus API, который позволяет анализировать состояние приложения "
-"gnome shell."
-
-#: data/org.gnome.shell.gschema.xml.in:141
+#: data/org.gnome.shell.gschema.xml.in:133
msgid "Layout of the app picker"
msgstr "Макет меню выбора приложений"
-#: data/org.gnome.shell.gschema.xml.in:142
+#: data/org.gnome.shell.gschema.xml.in:134
msgid ""
"Layout of the app picker. Each entry in the array is a page. Pages are "
"stored in the order they appear in GNOME Shell. Each page contains an "
@@ -292,107 +286,107 @@ msgstr ""
"настоящее время в качестве “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"
msgstr "Комбинация клавиш для открытия меню приложения"
-#: data/org.gnome.shell.gschema.xml.in:158
+#: data/org.gnome.shell.gschema.xml.in:150
msgid "Keybinding to open the application menu."
msgstr "Комбинация клавиш для открытия меню приложения."
-#: data/org.gnome.shell.gschema.xml.in:164
-#: data/org.gnome.shell.gschema.xml.in:171
+#: data/org.gnome.shell.gschema.xml.in:156
+#: data/org.gnome.shell.gschema.xml.in:163
msgid "Keybinding to shift between overview states"
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"
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"
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"
msgstr "Комбинация клавиш для перехода в режим просмотра приложений"
-#: data/org.gnome.shell.gschema.xml.in:179
+#: data/org.gnome.shell.gschema.xml.in:171
msgid ""
"Keybinding to open the “Show Applications” view of the Activities Overview."
msgstr ""
"Комбинация клавиш для перехода в режим просмотра приложений в меню «Обзор»."
-#: data/org.gnome.shell.gschema.xml.in:186
+#: data/org.gnome.shell.gschema.xml.in:178
msgid "Keybinding to open the overview"
msgstr "Комбинация клавиш для перехода в режим обзора"
-#: data/org.gnome.shell.gschema.xml.in:187
+#: data/org.gnome.shell.gschema.xml.in:179
msgid "Keybinding to open the Activities Overview."
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"
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."
msgstr "Комбинация клавиш для отображения или скрытия списка уведомлений."
-#: data/org.gnome.shell.gschema.xml.in:200
+#: data/org.gnome.shell.gschema.xml.in:192
msgid "Keybinding to focus the active notification"
msgstr "Комбинация клавиш для перевода фокуса на текущее уведомление"
-#: data/org.gnome.shell.gschema.xml.in:201
+#: data/org.gnome.shell.gschema.xml.in:193
msgid "Keybinding to focus the active notification."
msgstr "Комбинация клавиш для перевода фокуса на текущее уведомление."
-#: data/org.gnome.shell.gschema.xml.in:207
+#: data/org.gnome.shell.gschema.xml.in:199
msgid "Switch to application 1"
msgstr "Переключиться на приложение 1"
-#: data/org.gnome.shell.gschema.xml.in:211
+#: data/org.gnome.shell.gschema.xml.in:203
msgid "Switch to application 2"
msgstr "Переключиться на приложение 2"
-#: data/org.gnome.shell.gschema.xml.in:215
+#: data/org.gnome.shell.gschema.xml.in:207
msgid "Switch to application 3"
msgstr "Переключиться на приложение 3"
-#: data/org.gnome.shell.gschema.xml.in:219
+#: data/org.gnome.shell.gschema.xml.in:211
msgid "Switch to application 4"
msgstr "Переключиться на приложение 4"
-#: data/org.gnome.shell.gschema.xml.in:223
+#: data/org.gnome.shell.gschema.xml.in:215
msgid "Switch to application 5"
msgstr "Переключиться на приложение 5"
-#: data/org.gnome.shell.gschema.xml.in:227
+#: data/org.gnome.shell.gschema.xml.in:219
msgid "Switch to application 6"
msgstr "Переключиться на приложение 6"
-#: data/org.gnome.shell.gschema.xml.in:231
+#: data/org.gnome.shell.gschema.xml.in:223
msgid "Switch to application 7"
msgstr "Переключиться на приложение 7"
-#: data/org.gnome.shell.gschema.xml.in:235
+#: data/org.gnome.shell.gschema.xml.in:227
msgid "Switch to application 8"
msgstr "Переключиться на приложение 8"
-#: data/org.gnome.shell.gschema.xml.in:239
+#: data/org.gnome.shell.gschema.xml.in:231
msgid "Switch to application 9"
msgstr "Переключиться на приложение 9"
-#: data/org.gnome.shell.gschema.xml.in:248
-#: data/org.gnome.shell.gschema.xml.in:275
+#: data/org.gnome.shell.gschema.xml.in:240
+#: data/org.gnome.shell.gschema.xml.in:267
msgid "Limit switcher to current workspace."
msgstr "Ограничить переключатель текущим рабочим местом."
-#: data/org.gnome.shell.gschema.xml.in:249
+#: data/org.gnome.shell.gschema.xml.in:241
msgid ""
"If true, only applications that have windows on the current workspace are "
"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."
msgstr "Режим значка приложения."
-#: data/org.gnome.shell.gschema.xml.in:267
+#: data/org.gnome.shell.gschema.xml.in:259
msgid ""
"Configures how the windows are shown in the switcher. Valid possibilities "
"are “thumbnail-only” (shows a thumbnail of the window), “app-icon-"
@@ -415,7 +409,7 @@ msgstr ""
"«thumbnail-only» (показывать миниатюру окна), «app-icon-only» (показывать "
"только значок приложения), «both» (показывать миниатюру и значок)."
-#: data/org.gnome.shell.gschema.xml.in:276
+#: data/org.gnome.shell.gschema.xml.in:268
msgid ""
"If true, only windows from the current workspace are shown in the switcher. "
"Otherwise, all windows are included."
@@ -423,59 +417,59 @@ msgstr ""
"Если выбрано, то в переключателе будут показываться только окна из текущего "
"рабочего места. Иначе все окна будут включены."
-#: data/org.gnome.shell.gschema.xml.in:286
+#: data/org.gnome.shell.gschema.xml.in:278
msgid "Locations"
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"
msgstr "Местоположения для отображения в мировых часах"
-#: data/org.gnome.shell.gschema.xml.in:297
+#: data/org.gnome.shell.gschema.xml.in:289
msgid "Automatic location"
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"
msgstr "Определяет получать местоположение или нет"
-#: data/org.gnome.shell.gschema.xml.in:305
+#: data/org.gnome.shell.gschema.xml.in:297
msgid "Location"
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"
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"
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:336
#: data/org.gnome.shell.gschema.xml.in:344
-#: data/org.gnome.shell.gschema.xml.in:352
msgid ""
"This key overrides the key in org.gnome.mutter when running GNOME Shell."
msgstr ""
"Этот ключ переопределяет ключ в 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"
msgstr ""
"Включить автоматическое изменение размеров окон при перемещении окон к краям "
"экрана"
-#: data/org.gnome.shell.gschema.xml.in:335
+#: data/org.gnome.shell.gschema.xml.in:327
msgid "Workspaces are managed dynamically"
msgstr "Рабочие места управляются динамически"
-#: data/org.gnome.shell.gschema.xml.in:343
+#: data/org.gnome.shell.gschema.xml.in:335
msgid "Workspaces only on primary monitor"
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"
msgstr "Задержка изменения фокуса в режиме мыши после остановки указателя"
@@ -510,18 +504,18 @@ msgid "Visit extension homepage"
msgstr "Посетить домашнюю страницу расширения"
#: js/gdm/authPrompt.js:141 js/ui/audioDeviceSelection.js:61
-#: js/ui/components/networkAgent.js:111 js/ui/components/polkitAgent.js:138
-#: js/ui/endSessionDialog.js:438 js/ui/extensionDownloader.js:190
+#: js/ui/components/networkAgent.js:110 js/ui/components/polkitAgent.js:138
+#: 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 subprojects/extensions-app/js/main.js:183
msgid "Cancel"
msgstr "Отмена"
#. Cisco LEAP
-#: js/gdm/authPrompt.js:285 js/ui/components/networkAgent.js:210
-#: js/ui/components/networkAgent.js:226 js/ui/components/networkAgent.js:250
-#: js/ui/components/networkAgent.js:271 js/ui/components/networkAgent.js:291
-#: js/ui/components/networkAgent.js:301 js/ui/components/polkitAgent.js:275
+#: js/gdm/authPrompt.js:285 js/ui/components/networkAgent.js:209
+#: js/ui/components/networkAgent.js:225 js/ui/components/networkAgent.js:249
+#: js/ui/components/networkAgent.js:270 js/ui/components/networkAgent.js:290
+#: js/ui/components/networkAgent.js:300 js/ui/components/polkitAgent.js:275
#: js/ui/shellMountOperation.js:326
msgid "Password"
msgstr "Пароль"
@@ -544,8 +538,8 @@ msgstr "(например, пользователь или %s)"
#. TTLS and PEAP are actually much more complicated, but this complication
#. is not visible here since we only care about phase2 authentication
#. (and don't even care of which one)
-#: js/gdm/loginDialog.js:926 js/ui/components/networkAgent.js:246
-#: js/ui/components/networkAgent.js:269 js/ui/components/networkAgent.js:287
+#: js/gdm/loginDialog.js:926 js/ui/components/networkAgent.js:245
+#: js/ui/components/networkAgent.js:268 js/ui/components/networkAgent.js:286
msgid "Username"
msgstr "Имя пользователя"
@@ -650,26 +644,26 @@ msgctxt "search-result"
msgid "Lock Screen Rotation"
msgstr "Заблокировать ориентацию экрана"
-#: js/misc/util.js:120
+#: js/misc/util.js:121
msgid "Command not found"
msgstr "Команда не найдена"
#. Replace "Error invoking GLib.shell_parse_argv: " with
#. something nicer
-#: js/misc/util.js:156
+#: js/misc/util.js:157
msgid "Could not parse command:"
msgstr "Не удалось разобрать команду:"
-#: js/misc/util.js:164
+#: js/misc/util.js:165
#, javascript-format
msgid "Execution of “%s” failed:"
msgstr "Не удалось выполнить «%s»:"
-#: js/misc/util.js:181
+#: js/misc/util.js:182
msgid "Just now"
msgstr "Прямо сейчас"
-#: js/misc/util.js:183
+#: js/misc/util.js:184
#, javascript-format
msgid "%d minute ago"
msgid_plural "%d minutes ago"
@@ -677,7 +671,7 @@ msgstr[0] "%d минута назад"
msgstr[1] "%d минуты назад"
msgstr[2] "%d минут назад"
-#: js/misc/util.js:187
+#: js/misc/util.js:188
#, javascript-format
msgid "%d hour ago"
msgid_plural "%d hours ago"
@@ -685,11 +679,11 @@ msgstr[0] "%d час назад"
msgstr[1] "%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"
msgstr "Вчера"
-#: js/misc/util.js:193
+#: js/misc/util.js:194
#, javascript-format
msgid "%d day ago"
msgid_plural "%d days ago"
@@ -697,7 +691,7 @@ msgstr[0] "%d день назад"
msgstr[1] "%d дня назад"
msgstr[2] "%d дней назад"
-#: js/misc/util.js:197
+#: js/misc/util.js:198
#, javascript-format
msgid "%d week ago"
msgid_plural "%d weeks ago"
@@ -705,7 +699,7 @@ msgstr[0] "%d неделя назад"
msgstr[1] "%d недели назад"
msgstr[2] "%d недель назад"
-#: js/misc/util.js:201
+#: js/misc/util.js:202
#, javascript-format
msgid "%d month ago"
msgid_plural "%d months ago"
@@ -713,7 +707,7 @@ msgstr[0] "%d месяц назад"
msgstr[1] "%d месяца назад"
msgstr[2] "%d месяцев назад"
-#: js/misc/util.js:204
+#: js/misc/util.js:205
#, javascript-format
msgid "%d year ago"
msgid_plural "%d years ago"
@@ -722,20 +716,20 @@ msgstr[1] "%d года назад"
msgstr[2] "%d лет назад"
#. Translators: Time in 24h format
-#: js/misc/util.js:237
+#: js/misc/util.js:238
msgid "%H∶%M"
msgstr "%H∶%M"
#. Translators: this is the word "Yesterday" followed by a
#. time string in 24h format. i.e. "Yesterday, 14:30"
-#: js/misc/util.js:243
+#: js/misc/util.js:244
#, no-c-format
msgid "Yesterday, %H∶%M"
msgstr "Вчера, %H∶%M"
#. Translators: this is the week day name followed by a time
#. string in 24h format. i.e. "Monday, 14:30"
-#: js/misc/util.js:249
+#: js/misc/util.js:250
#, no-c-format
msgid "%A, %H∶%M"
msgstr "%A, %H∶%M"
@@ -743,7 +737,7 @@ msgstr "%A, %H∶%M"
#. Translators: this is the month name and day number
#. followed by a time string in 24h format.
#. i.e. "May 25, 14:30"
-#: js/misc/util.js:255
+#: js/misc/util.js:256
#, no-c-format
msgid "%B %-d, %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
#. number followed by a time string in 24h format.
#. i.e. "May 25 2012, 14:30"
-#: js/misc/util.js:261
+#: js/misc/util.js:262
#, no-c-format
msgid "%B %-d %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
#. eslint-disable-line no-lonely-if
#. Translators: Time in 12h format
-#: js/misc/util.js:266
+#: js/misc/util.js:267
msgid "%l∶%M %p"
msgstr "%-l∶%M %p"
#. Translators: this is the word "Yesterday" followed by a
#. time string in 12h format. i.e. "Yesterday, 2:30 pm"
-#: js/misc/util.js:272
+#: js/misc/util.js:273
#, no-c-format
msgid "Yesterday, %l∶%M %p"
msgstr "Вчера, %-l∶%M %p"
#. Translators: this is the week day name followed by a time
#. string in 12h format. i.e. "Monday, 2:30 pm"
-#: js/misc/util.js:278
+#: js/misc/util.js:279
#, no-c-format
msgid "%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
#. followed by a time string in 12h format.
#. i.e. "May 25, 2:30 pm"
-#: js/misc/util.js:284
+#: js/misc/util.js:285
#, no-c-format
msgid "%B %-d, %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
#. number followed by a time string in 12h format.
#. i.e. "May 25 2012, 2:30 pm"
-#: js/misc/util.js:290
+#: js/misc/util.js:291
#, no-c-format
msgid "%B %-d %Y, %l∶%M %p"
msgstr "%-d %B %Y, %l∶%M %p"
#. 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"
msgstr "Авторизация в точке доступа"
-#: js/portalHelper/main.js:88
+#: js/portalHelper/main.js:95
msgid ""
"Your connection to this hotspot login is not secure. Passwords or other "
"information you enter on this page can be viewed by people nearby."
@@ -1045,40 +1039,40 @@ msgstr "Установленная версия udisks не поддержива
msgid "Open with %s"
msgstr "Открыть с помощью %s"
-#: js/ui/components/networkAgent.js:93
+#: js/ui/components/networkAgent.js:92
msgid ""
"Alternatively you can connect by pushing the “WPS” button on your router."
msgstr ""
"В качестве альтернативы вы можете подключиться, нажав кнопку «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
msgid "Connect"
msgstr "Соединиться"
-#: js/ui/components/networkAgent.js:216
+#: js/ui/components/networkAgent.js:215
msgid "Key"
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"
msgstr "Пароль личного ключа"
-#: js/ui/components/networkAgent.js:275
+#: js/ui/components/networkAgent.js:274
msgid "Identity"
msgstr "Идентичность"
-#: js/ui/components/networkAgent.js:289
+#: js/ui/components/networkAgent.js:288
msgid "Service"
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
msgid "Authentication required"
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
msgid ""
"Passwords or encryption keys are required to access the wireless network "
@@ -1086,31 +1080,31 @@ msgid ""
msgstr ""
"Для доступа к беспроводной сети «%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"
msgstr "Аутентификация Wired 802.1X"
-#: js/ui/components/networkAgent.js:325
+#: js/ui/components/networkAgent.js:324
msgid "Network name"
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"
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"
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"
msgstr "Для устройства мобильной связи требуется PIN-код"
-#: js/ui/components/networkAgent.js:339
+#: js/ui/components/networkAgent.js:338
msgid "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:705
#, javascript-format
@@ -1409,24 +1403,24 @@ msgstr "%s (удалённый)"
msgid "%s (console)"
msgstr "%s (консоль)"
-#: js/ui/extensionDownloader.js:194
+#: js/ui/extensionDownloader.js:232
msgid "Install"
msgstr "Установить"
-#: js/ui/extensionDownloader.js:200
+#: js/ui/extensionDownloader.js:238
msgid "Install Extension"
msgstr "Установить расширение"
-#: js/ui/extensionDownloader.js:201
+#: js/ui/extensionDownloader.js:239
#, javascript-format
msgid "Download and install “%s” from extensions.gnome.org?"
msgstr "Загрузить и установить расширение «%s» из extensions.gnome.org?"
-#: js/ui/extensionSystem.js:253
+#: js/ui/extensionSystem.js:252
msgid "Extension Updates Available"
msgstr "Доступны обновления расширений"
-#: js/ui/extensionSystem.js:254
+#: js/ui/extensionSystem.js:253
msgid "Extension updates are ready to be installed."
msgstr "Обновления расширений готовы к установке."
@@ -1523,7 +1517,7 @@ msgstr "Выключить"
msgid "Leave Off"
msgstr "Оставить выключенными"
-#: js/ui/keyboard.js:227
+#: js/ui/keyboard.js:226
msgid "Region & Language Settings"
msgstr "Настройки языка и региона"
@@ -1576,11 +1570,11 @@ msgstr "Показать код"
msgid "Web Page"
msgstr "Веб-страница"
-#: js/ui/main.js:294
+#: js/ui/main.js:290
msgid "Logged in as a privileged user"
msgstr "Авторизован как привилегированный пользователь"
-#: js/ui/main.js:295
+#: js/ui/main.js:291
msgid ""
"Running a session as a privileged user should be avoided for security "
"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"
msgstr "Блокировка экрана отключена"
-#: js/ui/main.js:345
+#: js/ui/main.js:341
msgid "Screen Locking requires the GNOME display manager."
msgstr "Для блокировки экрана требуется GNOME display manager."
-#: js/ui/messageTray.js:1440
+#: js/ui/messageTray.js:1443
msgid "System Information"
msgstr "Системная информация"
@@ -1631,47 +1625,47 @@ msgstr "Отменить"
msgid "Overview"
msgstr "Обзор"
-#: js/ui/padOsd.js:96
+#: js/ui/padOsd.js:95
msgid "New shortcut…"
msgstr "Создать комбинацию клавиш…"
-#: js/ui/padOsd.js:143
+#: js/ui/padOsd.js:142
msgid "Application defined"
msgstr "Определено приложением"
-#: js/ui/padOsd.js:144
+#: js/ui/padOsd.js:143
msgid "Show on-screen help"
msgstr "Показывать экранную справку"
-#: js/ui/padOsd.js:145
+#: js/ui/padOsd.js:144
msgid "Switch monitor"
msgstr "Переключить монитор"
-#: js/ui/padOsd.js:146
+#: js/ui/padOsd.js:145
msgid "Assign keystroke"
msgstr "Назначение клавишь"
-#: js/ui/padOsd.js:212
+#: js/ui/padOsd.js:211
msgid "Done"
msgstr "Готово"
-#: js/ui/padOsd.js:718
+#: js/ui/padOsd.js:716
msgid "Edit…"
msgstr "Правка…"
-#: js/ui/padOsd.js:760 js/ui/padOsd.js:877
+#: js/ui/padOsd.js:758 js/ui/padOsd.js:875
msgid "None"
msgstr "Нет"
-#: js/ui/padOsd.js:831
+#: js/ui/padOsd.js:829
msgid "Press a button to configure"
msgstr "Нажмите кнопку для настройки"
-#: js/ui/padOsd.js:832
+#: js/ui/padOsd.js:830
msgid "Press Esc to exit"
msgstr "Нажмите Esc для выхода"
-#: js/ui/padOsd.js:835
+#: js/ui/padOsd.js:833
msgid "Press any key to exit"
msgstr "Нажмите любую клавишу для выхода"
@@ -1681,12 +1675,12 @@ msgstr "Нажмите любую клавишу для выхода"
msgid "Activities"
msgstr "Обзор"
-#: js/ui/panel.js:542
+#: js/ui/panel.js:556
msgctxt "System menu in the top bar"
msgid "System"
msgstr "Система"
-#: js/ui/panel.js:658
+#: js/ui/panel.js:674
msgid "Top Bar"
msgstr "Верхняя панель"
@@ -1725,7 +1719,7 @@ msgstr "Не удалось заблокировать"
msgid "Lock was blocked by an application"
msgstr "Блокировке помешало приложение"
-#: js/ui/screenshot.js:141
+#: js/ui/screenshot.js:155
msgid "Screenshot taken"
msgstr "Сделан снимок экрана"
@@ -2832,6 +2826,7 @@ msgstr "Необходимо указать UUID, имя и описание"
#: subprojects/extensions-tool/src/command-enable.c:46
#: subprojects/extensions-tool/src/command-info.c:50
#: subprojects/extensions-tool/src/command-list.c:64
+#: subprojects/extensions-tool/src/main.c:146
msgid "Failed to connect to GNOME Shell\n"
msgstr "Невозможно подключиться к GNOME Shell\n"
@@ -2848,7 +2843,7 @@ msgstr "Выключить расширение"
#: subprojects/extensions-tool/src/command-disable.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-prefs.c:105
#: subprojects/extensions-tool/src/command-reset.c:76
#: subprojects/extensions-tool/src/command-uninstall.c:104
msgid "No UUID given"
@@ -2857,7 +2852,7 @@ msgstr "UUID не указан"
#: subprojects/extensions-tool/src/command-disable.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-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"
@@ -2987,7 +2982,12 @@ msgstr "Указано больше одной исходной директор
msgid "Extension “%s” doesn't have preferences\n"
msgstr "Расширение «%s» не имеет настроек\n"
-#: subprojects/extensions-tool/src/command-prefs.c:79
+#: subprojects/extensions-tool/src/command-prefs.c:62
+#, c-format
+msgid "Failed to open prefs for extension “%s”: %s\n"
+msgstr "Не удалось открыть настройки для расширения \"%s\": %s\n"
+
+#: subprojects/extensions-tool/src/command-prefs.c:87
msgid "Opens extension preferences"
msgstr "Открыть параметры расширения"
@@ -3012,10 +3012,6 @@ msgstr "Удалить расширение"
msgid "Do not print error messages"
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
msgid "Path"
msgstr "Путь"
@@ -3148,192 +3144,3 @@ msgstr[2] "%u входов"
msgid "System Sounds"
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 "Батарея"
diff --git a/po/sl.po b/po/sl.po
index 9f7dd1bc5..432a04606 100644
--- a/po/sl.po
+++ b/po/sl.po
@@ -8,8 +8,8 @@ msgid ""
msgstr ""
"Project-Id-Version: gnome-shell master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell/issues\n"
-"POT-Creation-Date: 2021-08-29 17:33+0000\n"
-"PO-Revision-Date: 2021-08-30 21:12+0200\n"
+"POT-Creation-Date: 2021-11-02 16:32+0000\n"
+"PO-Revision-Date: 2021-11-02 17:49+0100\n"
"Last-Translator: Matej Urbančič \n"
"Language-Team: Slovenian GNOME Translation Team \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"
"%100==4 ? 3 : 0);\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
msgid "Launchers"
@@ -251,21 +251,11 @@ msgstr ""
"različico in velike številke različice, ki še ne obstajajo. S temi velikimi "
"vrednostmi je mogoče preprečiti prikaz tega okna."
-#: data/org.gnome.shell.gschema.xml.in:109
-msgid "Enable introspection API"
-msgstr "Omogoči API nadzora"
-
-#: data/org.gnome.shell.gschema.xml.in:110
-msgid ""
-"Enables a D-Bus API that allows to introspect the application state of the "
-"shell."
-msgstr "Omogoči API sistema D-Bus, ki mogoča nadzor stanja programa lupine."
-
-#: data/org.gnome.shell.gschema.xml.in:141
+#: data/org.gnome.shell.gschema.xml.in:133
msgid "Layout of the app picker"
msgstr "Pogled izbirnika programov"
-#: data/org.gnome.shell.gschema.xml.in:142
+#: data/org.gnome.shell.gschema.xml.in:134
msgid ""
"Layout of the app picker. Each entry in the array is a page. Pages are "
"stored in the order they appear in GNOME Shell. Each page contains an "
@@ -277,105 +267,105 @@ msgstr ""
"»ID programa« → »podatki«. Trenutno so kot podatki shranjeni:: • »položaj«: "
"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"
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."
msgstr "Tipkovna bližnjica, ki odpre meni programov."
-#: data/org.gnome.shell.gschema.xml.in:164
-#: data/org.gnome.shell.gschema.xml.in:171
+#: data/org.gnome.shell.gschema.xml.in:156
+#: data/org.gnome.shell.gschema.xml.in:163
msgid "Keybinding to shift between overview states"
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"
msgstr ""
"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"
msgstr ""
"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"
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 ""
"Keybinding to open the “Show Applications” view of the Activities Overview."
msgstr ""
"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"
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."
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"
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."
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"
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."
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"
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"
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"
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"
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"
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"
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"
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"
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"
msgstr "Preklopi na program 9"
-#: data/org.gnome.shell.gschema.xml.in:248
-#: data/org.gnome.shell.gschema.xml.in:275
+#: data/org.gnome.shell.gschema.xml.in:240
+#: data/org.gnome.shell.gschema.xml.in:267
msgid "Limit switcher to current workspace."
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 ""
"If true, only applications that have windows on the current workspace are "
"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 "
"vsa okna."
-#: data/org.gnome.shell.gschema.xml.in:266
+#: data/org.gnome.shell.gschema.xml.in:258
msgid "The application icon mode."
msgstr "Ikonski način programa."
-#: data/org.gnome.shell.gschema.xml.in:267
+#: data/org.gnome.shell.gschema.xml.in:259
msgid ""
"Configures how the windows are shown in the switcher. Valid possibilities "
"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 "
"možnost »oboje«."
-#: data/org.gnome.shell.gschema.xml.in:276
+#: data/org.gnome.shell.gschema.xml.in:268
msgid ""
"If true, only windows from the current workspace are shown in the switcher. "
"Otherwise, all windows are included."
@@ -406,57 +396,57 @@ msgstr ""
"Izbrana možnost določa, da bodo v trenutnem pogledu prikazana le okna v "
"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"
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"
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"
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"
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"
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"
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"
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:336
#: data/org.gnome.shell.gschema.xml.in:344
-#: data/org.gnome.shell.gschema.xml.in:352
msgid ""
"This key overrides the key in org.gnome.mutter when running GNOME Shell."
msgstr ""
"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"
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"
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"
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"
msgstr ""
"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"
#: js/gdm/authPrompt.js:141 js/ui/audioDeviceSelection.js:61
-#: js/ui/components/networkAgent.js:111 js/ui/components/polkitAgent.js:138
-#: js/ui/endSessionDialog.js:438 js/ui/extensionDownloader.js:230
+#: js/ui/components/networkAgent.js:110 js/ui/components/polkitAgent.js:138
+#: 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 subprojects/extensions-app/js/main.js:183
msgid "Cancel"
msgstr "Prekliči"
#. Cisco LEAP
-#: js/gdm/authPrompt.js:285 js/ui/components/networkAgent.js:210
-#: js/ui/components/networkAgent.js:226 js/ui/components/networkAgent.js:250
-#: js/ui/components/networkAgent.js:271 js/ui/components/networkAgent.js:291
-#: js/ui/components/networkAgent.js:301 js/ui/components/polkitAgent.js:275
+#: js/gdm/authPrompt.js:285 js/ui/components/networkAgent.js:209
+#: js/ui/components/networkAgent.js:225 js/ui/components/networkAgent.js:249
+#: js/ui/components/networkAgent.js:270 js/ui/components/networkAgent.js:290
+#: js/ui/components/networkAgent.js:300 js/ui/components/polkitAgent.js:275
#: js/ui/shellMountOperation.js:326
msgid "Password"
msgstr "Geslo"
@@ -527,8 +517,8 @@ msgstr "(na primer, uporabnika ali %s)"
#. TTLS and PEAP are actually much more complicated, but this complication
#. is not visible here since we only care about phase2 authentication
#. (and don't even care of which one)
-#: js/gdm/loginDialog.js:926 js/ui/components/networkAgent.js:246
-#: js/ui/components/networkAgent.js:269 js/ui/components/networkAgent.js:287
+#: js/gdm/loginDialog.js:926 js/ui/components/networkAgent.js:245
+#: js/ui/components/networkAgent.js:268 js/ui/components/networkAgent.js:286
msgid "Username"
msgstr "Uporabniško ime"
@@ -634,26 +624,26 @@ msgctxt "search-result"
msgid "Lock Screen Rotation"
msgstr "Vrtenje zaklepanja zaslona"
-#: js/misc/util.js:120
+#: js/misc/util.js:121
msgid "Command not found"
msgstr "Ukaz ni mogoče najti"
#. Replace "Error invoking GLib.shell_parse_argv: " with
#. something nicer
-#: js/misc/util.js:156
+#: js/misc/util.js:157
msgid "Could not parse command:"
msgstr "Ukaza ni mogoče razčleniti:"
-#: js/misc/util.js:164
+#: js/misc/util.js:165
#, javascript-format
msgid "Execution of “%s” failed:"
msgstr "Izvedba »%s« je spodletela:"
-#: js/misc/util.js:181
+#: js/misc/util.js:182
msgid "Just now"
msgstr "Ravnokar"
-#: js/misc/util.js:183
+#: js/misc/util.js:184
#, javascript-format
msgid "%d minute ago"
msgid_plural "%d minutes ago"
@@ -662,7 +652,7 @@ msgstr[1] "Pred %d minuto"
msgstr[2] "Pred %d minutama"
msgstr[3] "Pred %d minutami"
-#: js/misc/util.js:187
+#: js/misc/util.js:188
#, javascript-format
msgid "%d hour ago"
msgid_plural "%d hours ago"
@@ -671,11 +661,11 @@ msgstr[1] "Pred %d uro"
msgstr[2] "Pred %d urama"
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"
msgstr "Včeraj"
-#: js/misc/util.js:193
+#: js/misc/util.js:194
#, javascript-format
msgid "%d day ago"
msgid_plural "%d days ago"
@@ -684,7 +674,7 @@ msgstr[1] "Pred %d dnevom"
msgstr[2] "Pred %d dnevoma"
msgstr[3] "Pred %d dnevi"
-#: js/misc/util.js:197
+#: js/misc/util.js:198
#, javascript-format
msgid "%d week ago"
msgid_plural "%d weeks ago"
@@ -693,7 +683,7 @@ msgstr[1] "Pred %d tednom"
msgstr[2] "Pred %d tednoma"
msgstr[3] "Pred %d tedni"
-#: js/misc/util.js:201
+#: js/misc/util.js:202
#, javascript-format
msgid "%d month ago"
msgid_plural "%d months ago"
@@ -702,7 +692,7 @@ msgstr[1] "Pred %d mesecem"
msgstr[2] "Pred %d mesecema"
msgstr[3] "Pred %d meseci"
-#: js/misc/util.js:204
+#: js/misc/util.js:205
#, javascript-format
msgid "%d year ago"
msgid_plural "%d years ago"
@@ -712,20 +702,20 @@ msgstr[2] "Pred %d letoma"
msgstr[3] "Pred %d leti"
#. Translators: Time in 24h format
-#: js/misc/util.js:237
+#: js/misc/util.js:238
msgid "%H∶%M"
msgstr "%H∶%M"
#. Translators: this is the word "Yesterday" followed by a
#. time string in 24h format. i.e. "Yesterday, 14:30"
-#: js/misc/util.js:243
+#: js/misc/util.js:244
#, no-c-format
msgid "Yesterday, %H∶%M"
msgstr "Včeraj, %H:%M"
#. Translators: this is the week day name followed by a time
#. string in 24h format. i.e. "Monday, 14:30"
-#: js/misc/util.js:249
+#: js/misc/util.js:250
#, no-c-format
msgid "%A, %H∶%M"
msgstr "%A, %H∶%M"
@@ -733,7 +723,7 @@ msgstr "%A, %H∶%M"
#. Translators: this is the month name and day number
#. followed by a time string in 24h format.
#. i.e. "May 25, 14:30"
-#: js/misc/util.js:255
+#: js/misc/util.js:256
#, no-c-format
msgid "%B %-d, %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
#. number followed by a time string in 24h format.
#. i.e. "May 25 2012, 14:30"
-#: js/misc/util.js:261
+#: js/misc/util.js:262
#, no-c-format
msgid "%B %-d %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
#. eslint-disable-line no-lonely-if
#. Translators: Time in 12h format
-#: js/misc/util.js:266
+#: js/misc/util.js:267
msgid "%l∶%M %p"
msgstr "%l∶%M %p"
#. Translators: this is the word "Yesterday" followed by a
#. time string in 12h format. i.e. "Yesterday, 2:30 pm"
-#: js/misc/util.js:272
+#: js/misc/util.js:273
#, no-c-format
msgid "Yesterday, %l∶%M %p"
msgstr "Včeraj, %l∶%M %p"
#. Translators: this is the week day name followed by a time
#. string in 12h format. i.e. "Monday, 2:30 pm"
-#: js/misc/util.js:278
+#: js/misc/util.js:279
#, no-c-format
msgid "%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
#. followed by a time string in 12h format.
#. i.e. "May 25, 2:30 pm"
-#: js/misc/util.js:284
+#: js/misc/util.js:285
#, no-c-format
msgid "%B %-d, %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
#. number followed by a time string in 12h format.
#. i.e. "May 25 2012, 2:30 pm"
-#: js/misc/util.js:290
+#: js/misc/util.js:291
#, no-c-format
msgid "%B %-d %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"
msgstr "Odpri s programom %s"
-#: js/ui/components/networkAgent.js:93
+#: js/ui/components/networkAgent.js:92
msgid ""
"Alternatively you can connect by pushing the “WPS” button on your router."
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
msgid "Connect"
msgstr "Poveži"
-#: js/ui/components/networkAgent.js:216
+#: js/ui/components/networkAgent.js:215
msgid "Key"
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"
msgstr "Geslo zasebnega ključa"
-#: js/ui/components/networkAgent.js:275
+#: js/ui/components/networkAgent.js:274
msgid "Identity"
msgstr "Istovetnost"
-#: js/ui/components/networkAgent.js:289
+#: js/ui/components/networkAgent.js:288
msgid "Service"
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
msgid "Authentication required"
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
msgid ""
"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 "
"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"
msgstr "Žična overitev 802.1X"
-#: js/ui/components/networkAgent.js:325
+#: js/ui/components/networkAgent.js:324
msgid "Network name"
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"
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"
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"
msgstr "Za napravo mobilnega širokopasovnega dostopa je zahtevana koda PIN."
-#: js/ui/components/networkAgent.js:339
+#: js/ui/components/networkAgent.js:338
msgid "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:705
#, javascript-format
@@ -1401,24 +1391,24 @@ msgstr "%s (oddaljeno)"
msgid "%s (console)"
msgstr "%s (konzola)"
-#: js/ui/extensionDownloader.js:234
+#: js/ui/extensionDownloader.js:232
msgid "Install"
msgstr "Namesti"
-#: js/ui/extensionDownloader.js:240
+#: js/ui/extensionDownloader.js:238
msgid "Install Extension"
msgstr "Namesti razširitev"
-#: js/ui/extensionDownloader.js:241
+#: js/ui/extensionDownloader.js:239
#, javascript-format
msgid "Download and install “%s” from 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"
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."
msgstr "Posodobitve razširitev so pripravljene na namestitev."
@@ -1513,7 +1503,7 @@ msgstr "Onemogoči"
msgid "Leave Off"
msgstr "Pusti onemogočeno"
-#: js/ui/keyboard.js:227
+#: js/ui/keyboard.js:226
msgid "Region & Language Settings"
msgstr "Nastavitve območja in jezika"
@@ -1566,11 +1556,11 @@ msgstr "Poglej vir"
msgid "Web Page"
msgstr "Spletna stran"
-#: js/ui/main.js:294
+#: js/ui/main.js:290
msgid "Logged in as a privileged user"
msgstr "Zaznana je prijava s skrbniškimi dovoljenji"
-#: js/ui/main.js:295
+#: js/ui/main.js:291
msgid ""
"Running a session as a privileged user should be avoided for security "
"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 "
"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"
msgstr "Zaklep zaslona je onemogočen"
-#: js/ui/main.js:345
+#: js/ui/main.js:341
msgid "Screen Locking requires the GNOME display manager."
msgstr ""
"Zaklepanje zaslona zahteva namestitev upravljalnika zaslona za okolje GNOME."
@@ -1621,47 +1611,47 @@ msgstr "Razveljavi"
msgid "Overview"
msgstr "Pregled"
-#: js/ui/padOsd.js:96
+#: js/ui/padOsd.js:95
msgid "New shortcut…"
msgstr "Nova bližnjica …"
-#: js/ui/padOsd.js:143
+#: js/ui/padOsd.js:142
msgid "Application defined"
msgstr "Program je določen"
-#: js/ui/padOsd.js:144
+#: js/ui/padOsd.js:143
msgid "Show on-screen help"
msgstr "Pokaži zaslonsko pomoč"
-#: js/ui/padOsd.js:145
+#: js/ui/padOsd.js:144
msgid "Switch monitor"
msgstr "Nadzornik preklopa"
-#: js/ui/padOsd.js:146
+#: js/ui/padOsd.js:145
msgid "Assign keystroke"
msgstr "Dodeli tipkovno bližnjico"
-#: js/ui/padOsd.js:212
+#: js/ui/padOsd.js:211
msgid "Done"
msgstr "Končano"
-#: js/ui/padOsd.js:718
+#: js/ui/padOsd.js:716
msgid "Edit…"
msgstr "Uredi …"
-#: js/ui/padOsd.js:760 js/ui/padOsd.js:877
+#: js/ui/padOsd.js:758 js/ui/padOsd.js:875
msgid "None"
msgstr "Brez"
-#: js/ui/padOsd.js:831
+#: js/ui/padOsd.js:829
msgid "Press a button to configure"
msgstr "Pritisnite gumb za nastavitev"
-#: js/ui/padOsd.js:832
+#: js/ui/padOsd.js:830
msgid "Press Esc to exit"
msgstr "Pritisnite tipko Esc za končanje"
-#: js/ui/padOsd.js:835
+#: js/ui/padOsd.js:833
msgid "Press any key to exit"
msgstr "Pritisnite katerokoli tipko za končanje"
@@ -1671,12 +1661,12 @@ msgstr "Pritisnite katerokoli tipko za končanje"
msgid "Activities"
msgstr "Dejavnosti"
-#: js/ui/panel.js:542
+#: js/ui/panel.js:556
msgctxt "System menu in the top bar"
msgid "System"
msgstr "Sistem"
-#: js/ui/panel.js:658
+#: js/ui/panel.js:674
msgid "Top Bar"
msgstr "Vrhnja vrstica"
@@ -1715,7 +1705,7 @@ msgstr "Zaklep ni mogoč"
msgid "Lock was blocked by an application"
msgstr "Zaklep je preprečil program"
-#: js/ui/screenshot.js:141
+#: js/ui/screenshot.js:155
msgid "Screenshot taken"
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-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"
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-enable.c:119
#: 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-uninstall.c:104
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-enable.c:124
#: 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-uninstall.c:109
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"
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"
msgstr "Odpre možnosti razširitve"
@@ -2961,10 +2957,6 @@ msgstr "Odstrani razširitev"
msgid "Do not print error messages"
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
msgid "Path"
msgstr "Pot"
@@ -3099,6 +3091,17 @@ msgstr[3] "%u dovodi naprave"
msgid "System Sounds"
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"
#~ msgstr "Skrči"
diff --git a/po/sv.po b/po/sv.po
index 7919555bd..007d47ab5 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -12,9 +12,9 @@ msgid ""
msgstr ""
"Project-Id-Version: gnome-shell\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell/issues\n"
-"POT-Creation-Date: 2021-08-17 23:56+0000\n"
-"PO-Revision-Date: 2021-08-18 12:41+0200\n"
-"Last-Translator: Luna Jernberg \n"
+"POT-Creation-Date: 2021-11-02 16:54+0000\n"
+"PO-Revision-Date: 2021-11-02 22:03+0100\n"
+"Last-Translator: Anders Jonsson \n"
"Language-Team: Swedish \n"
"Language: sv\n"
"MIME-Version: 1.0\n"
@@ -254,23 +254,11 @@ msgstr ""
"ett enormt tal kommer motsvara versioner som inte finns ännu. Detta enorma "
"tal kan användas för att inaktivera dialogrutan."
-#: data/org.gnome.shell.gschema.xml.in:109
-msgid "Enable introspection API"
-msgstr "Aktivera introspektions-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 ""
-"Aktiverar ett D-Bus-API som tillåter introspektion av programtillståndet för "
-"skalet."
-
-#: data/org.gnome.shell.gschema.xml.in:141
+#: data/org.gnome.shell.gschema.xml.in:133
msgid "Layout of the app picker"
msgstr "Layout för programväljaren"
-#: data/org.gnome.shell.gschema.xml.in:142
+#: data/org.gnome.shell.gschema.xml.in:134
msgid ""
"Layout of the app picker. Each entry in the array is a page. Pages are "
"stored in the order they appear in GNOME Shell. Each page contains an "
@@ -282,104 +270,104 @@ msgstr ""
"”program-ID” → ”data”. För närvarande lagras följande värde som ”data”: • "
"”position”: positionen för programikonen på sidan"
-#: data/org.gnome.shell.gschema.xml.in:157
+#: data/org.gnome.shell.gschema.xml.in:149
msgid "Keybinding to open the application menu"
msgstr "Snabbtangent för att öppna programmenyn"
-#: data/org.gnome.shell.gschema.xml.in:158
+#: data/org.gnome.shell.gschema.xml.in:150
msgid "Keybinding to open the application menu."
msgstr "Snabbtangent för att öppna programmenyn."
-#: data/org.gnome.shell.gschema.xml.in:164
-#: data/org.gnome.shell.gschema.xml.in:171
+#: data/org.gnome.shell.gschema.xml.in:156
+#: data/org.gnome.shell.gschema.xml.in:163
msgid "Keybinding to shift between overview states"
msgstr "Snabbtangent för att växla mellan översiktstillstånd"
-#: 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"
msgstr ""
"Snabbtangent för att växla mellan session, fönsterväljare och programrutnät"
-#: 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"
msgstr ""
"Snabbtangent för att växla mellan programrutnät, fönsterväljare och session"
-#: data/org.gnome.shell.gschema.xml.in:178
+#: data/org.gnome.shell.gschema.xml.in:170
msgid "Keybinding to open the “Show Applications” view"
msgstr "Snabbtangent för att öppna ”Visa program”-vyn"
-#: data/org.gnome.shell.gschema.xml.in:179
+#: data/org.gnome.shell.gschema.xml.in:171
msgid ""
"Keybinding to open the “Show Applications” view of the Activities Overview."
msgstr "Snabbtangent för att öppna ”Visa program”-vyn i översiktsvyn."
-#: data/org.gnome.shell.gschema.xml.in:186
+#: data/org.gnome.shell.gschema.xml.in:178
msgid "Keybinding to open the overview"
msgstr "Snabbtangent för att öppna översiktsvyn"
-#: data/org.gnome.shell.gschema.xml.in:187
+#: data/org.gnome.shell.gschema.xml.in:179
msgid "Keybinding to open the Activities Overview."
msgstr "Snabbtangent för att öppna översiktsvyn."
-#: 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"
msgstr "Snabbtangent för att växla synligheten för aviseringslistan"
-#: 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."
msgstr "Snabbtangent för att växla synligheten för aviseringslistan."
-#: data/org.gnome.shell.gschema.xml.in:200
+#: data/org.gnome.shell.gschema.xml.in:192
msgid "Keybinding to focus the active notification"
msgstr "Snabbtangent för att fokusera på den aktiva aviseringen"
-#: data/org.gnome.shell.gschema.xml.in:201
+#: data/org.gnome.shell.gschema.xml.in:193
msgid "Keybinding to focus the active notification."
msgstr "Snabbtangent för att fokusera på den aktiva aviseringen."
-#: data/org.gnome.shell.gschema.xml.in:207
+#: data/org.gnome.shell.gschema.xml.in:199
msgid "Switch to application 1"
msgstr "Växla till program 1"
-#: data/org.gnome.shell.gschema.xml.in:211
+#: data/org.gnome.shell.gschema.xml.in:203
msgid "Switch to application 2"
msgstr "Växla till program 2"
-#: data/org.gnome.shell.gschema.xml.in:215
+#: data/org.gnome.shell.gschema.xml.in:207
msgid "Switch to application 3"
msgstr "Växla till program 3"
-#: data/org.gnome.shell.gschema.xml.in:219
+#: data/org.gnome.shell.gschema.xml.in:211
msgid "Switch to application 4"
msgstr "Växla till program 4"
-#: data/org.gnome.shell.gschema.xml.in:223
+#: data/org.gnome.shell.gschema.xml.in:215
msgid "Switch to application 5"
msgstr "Växla till program 5"
-#: data/org.gnome.shell.gschema.xml.in:227
+#: data/org.gnome.shell.gschema.xml.in:219
msgid "Switch to application 6"
msgstr "Växla till program 6"
-#: data/org.gnome.shell.gschema.xml.in:231
+#: data/org.gnome.shell.gschema.xml.in:223
msgid "Switch to application 7"
msgstr "Växla till program 7"
-#: data/org.gnome.shell.gschema.xml.in:235
+#: data/org.gnome.shell.gschema.xml.in:227
msgid "Switch to application 8"
msgstr "Växla till program 8"
-#: data/org.gnome.shell.gschema.xml.in:239
+#: data/org.gnome.shell.gschema.xml.in:231
msgid "Switch to application 9"
msgstr "Växla till program 9"
-#: data/org.gnome.shell.gschema.xml.in:248
-#: data/org.gnome.shell.gschema.xml.in:275
+#: data/org.gnome.shell.gschema.xml.in:240
+#: data/org.gnome.shell.gschema.xml.in:267
msgid "Limit switcher to current workspace."
msgstr "Begränsa väljare till aktuell arbetsyta."
-#: data/org.gnome.shell.gschema.xml.in:249
+#: data/org.gnome.shell.gschema.xml.in:241
msgid ""
"If true, only applications that have windows on the current workspace are "
"shown in the switcher. Otherwise, all applications are included."
@@ -387,11 +375,11 @@ msgstr ""
"Om satt till true (sant), visas endast program som har fönster på den "
"aktuella arbetsytan i väljaren. I annat fall inkluderas alla program."
-#: data/org.gnome.shell.gschema.xml.in:266
+#: data/org.gnome.shell.gschema.xml.in:258
msgid "The application icon mode."
msgstr "Programikonsläget."
-#: data/org.gnome.shell.gschema.xml.in:267
+#: data/org.gnome.shell.gschema.xml.in:259
msgid ""
"Configures how the windows are shown in the switcher. Valid possibilities "
"are “thumbnail-only” (shows a thumbnail of the window), “app-icon-"
@@ -401,7 +389,7 @@ msgstr ""
"only” (visar en miniatyrbild av fönstret), ”app-icon-only” (visar endast "
"programikonen) eller ”both” (visar båda)."
-#: data/org.gnome.shell.gschema.xml.in:276
+#: data/org.gnome.shell.gschema.xml.in:268
msgid ""
"If true, only windows from the current workspace are shown in the switcher. "
"Otherwise, all windows are included."
@@ -409,57 +397,57 @@ msgstr ""
"Om satt till \"true\", visas endast fönster från den aktuella arbetsytan i "
"väljaren. I annat fall inkluderas alla fönster."
-#: data/org.gnome.shell.gschema.xml.in:286
+#: data/org.gnome.shell.gschema.xml.in:278
msgid "Locations"
msgstr "Platser"
-#: data/org.gnome.shell.gschema.xml.in:287
+#: data/org.gnome.shell.gschema.xml.in:279
msgid "The locations to show in world clocks"
msgstr "Platserna att visa i världsklockor"
-#: data/org.gnome.shell.gschema.xml.in:297
+#: data/org.gnome.shell.gschema.xml.in:289
msgid "Automatic location"
msgstr "Automatisk plats"
-#: 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"
msgstr "Huruvida den aktuella platsen ska hämtas eller ej"
-#: data/org.gnome.shell.gschema.xml.in:305
+#: data/org.gnome.shell.gschema.xml.in:297
msgid "Location"
msgstr "Plats"
-#: 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"
msgstr "Platsen för vilken en väderprognos ska visas"
-#: data/org.gnome.shell.gschema.xml.in:318
+#: data/org.gnome.shell.gschema.xml.in:310
msgid "Attach modal dialog to the parent window"
msgstr "Fäst modal dialog till föräldrafönstret"
-#: 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:336
#: data/org.gnome.shell.gschema.xml.in:344
-#: data/org.gnome.shell.gschema.xml.in:352
msgid ""
"This key overrides the key in org.gnome.mutter when running GNOME Shell."
msgstr ""
"Denna nyckel åsidosätter nyckeln i org.gnome.mutter när GNOME-skalet körs."
-#: 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"
msgstr "Slå på kantdockning när fönster släpps på skärmkanter"
-#: data/org.gnome.shell.gschema.xml.in:335
+#: data/org.gnome.shell.gschema.xml.in:327
msgid "Workspaces are managed dynamically"
msgstr "Arbetsytor hanteras dynamiskt"
-#: data/org.gnome.shell.gschema.xml.in:343
+#: data/org.gnome.shell.gschema.xml.in:335
msgid "Workspaces only on primary monitor"
msgstr "Arbetsytor endast på primär skärm"
-#: 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"
msgstr "Fördröj fokusändringar i musläge tills pekare slutar röra sig"
@@ -495,18 +483,18 @@ msgid "Visit extension homepage"
msgstr "Besök webbsida för tillägg"
#: js/gdm/authPrompt.js:141 js/ui/audioDeviceSelection.js:61
-#: js/ui/components/networkAgent.js:111 js/ui/components/polkitAgent.js:138
-#: js/ui/endSessionDialog.js:438 js/ui/extensionDownloader.js:190
+#: js/ui/components/networkAgent.js:110 js/ui/components/polkitAgent.js:138
+#: 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 subprojects/extensions-app/js/main.js:183
msgid "Cancel"
msgstr "Avbryt"
#. Cisco LEAP
-#: js/gdm/authPrompt.js:285 js/ui/components/networkAgent.js:210
-#: js/ui/components/networkAgent.js:226 js/ui/components/networkAgent.js:250
-#: js/ui/components/networkAgent.js:271 js/ui/components/networkAgent.js:291
-#: js/ui/components/networkAgent.js:301 js/ui/components/polkitAgent.js:275
+#: js/gdm/authPrompt.js:285 js/ui/components/networkAgent.js:209
+#: js/ui/components/networkAgent.js:225 js/ui/components/networkAgent.js:249
+#: js/ui/components/networkAgent.js:270 js/ui/components/networkAgent.js:290
+#: js/ui/components/networkAgent.js:300 js/ui/components/polkitAgent.js:275
#: js/ui/shellMountOperation.js:326
msgid "Password"
msgstr "Lösenord"
@@ -529,8 +517,8 @@ msgstr "(till exempel användare eller %s)"
#. TTLS and PEAP are actually much more complicated, but this complication
#. is not visible here since we only care about phase2 authentication
#. (and don't even care of which one)
-#: js/gdm/loginDialog.js:926 js/ui/components/networkAgent.js:246
-#: js/ui/components/networkAgent.js:269 js/ui/components/networkAgent.js:287
+#: js/gdm/loginDialog.js:926 js/ui/components/networkAgent.js:245
+#: js/ui/components/networkAgent.js:268 js/ui/components/networkAgent.js:286
msgid "Username"
msgstr "Användarnamn"
@@ -637,65 +625,65 @@ msgctxt "search-result"
msgid "Lock Screen Rotation"
msgstr "Lås skärmrotation"
-#: js/misc/util.js:120
+#: js/misc/util.js:121
msgid "Command not found"
msgstr "Kommandot hittades inte"
#. Replace "Error invoking GLib.shell_parse_argv: " with
#. something nicer
-#: js/misc/util.js:156
+#: js/misc/util.js:157
msgid "Could not parse command:"
msgstr "Kunde inte tolka kommando:"
-#: js/misc/util.js:164
+#: js/misc/util.js:165
#, javascript-format
msgid "Execution of “%s” failed:"
msgstr "Körning av ”%s” misslyckades:"
-#: js/misc/util.js:181
+#: js/misc/util.js:182
msgid "Just now"
msgstr "Just nu"
-#: js/misc/util.js:183
+#: js/misc/util.js:184
#, javascript-format
msgid "%d minute ago"
msgid_plural "%d minutes ago"
msgstr[0] "%d minut sedan"
msgstr[1] "%d minuter sedan"
-#: js/misc/util.js:187
+#: js/misc/util.js:188
#, javascript-format
msgid "%d hour ago"
msgid_plural "%d hours ago"
msgstr[0] "%d timme sedan"
msgstr[1] "%d timmar sedan"
-#: js/misc/util.js:191 js/ui/dateMenu.js:162
+#: js/misc/util.js:192 js/ui/dateMenu.js:162
msgid "Yesterday"
msgstr "Igår"
-#: js/misc/util.js:193
+#: js/misc/util.js:194
#, javascript-format
msgid "%d day ago"
msgid_plural "%d days ago"
msgstr[0] "%d dag sedan"
msgstr[1] "%d dagar sedan"
-#: js/misc/util.js:197
+#: js/misc/util.js:198
#, javascript-format
msgid "%d week ago"
msgid_plural "%d weeks ago"
msgstr[0] "%d vecka sedan"
msgstr[1] "%d veckor sedan"
-#: js/misc/util.js:201
+#: js/misc/util.js:202
#, javascript-format
msgid "%d month ago"
msgid_plural "%d months ago"
msgstr[0] "%d månad sedan"
msgstr[1] "%d månader sedan"
-#: js/misc/util.js:204
+#: js/misc/util.js:205
#, javascript-format
msgid "%d year ago"
msgid_plural "%d years ago"
@@ -703,20 +691,20 @@ msgstr[0] "%d år sedan"
msgstr[1] "%d år sedan"
#. Translators: Time in 24h format
-#: js/misc/util.js:237
+#: js/misc/util.js:238
msgid "%H∶%M"
msgstr "%H∶%M"
#. Translators: this is the word "Yesterday" followed by a
#. time string in 24h format. i.e. "Yesterday, 14:30"
-#: js/misc/util.js:243
+#: js/misc/util.js:244
#, no-c-format
msgid "Yesterday, %H∶%M"
msgstr "Igår, %H∶%M"
#. Translators: this is the week day name followed by a time
#. string in 24h format. i.e. "Monday, 14:30"
-#: js/misc/util.js:249
+#: js/misc/util.js:250
#, no-c-format
msgid "%A, %H∶%M"
msgstr "%A, %H∶%M"
@@ -724,7 +712,7 @@ msgstr "%A, %H∶%M"
#. Translators: this is the month name and day number
#. followed by a time string in 24h format.
#. i.e. "May 25, 14:30"
-#: js/misc/util.js:255
+#: js/misc/util.js:256
#, no-c-format
msgid "%B %-d, %H∶%M"
msgstr "%-d %B, %H∶%M"
@@ -732,7 +720,7 @@ msgstr "%-d %B, %H∶%M"
#. Translators: this is the month name, day number, year
#. number followed by a time string in 24h format.
#. i.e. "May 25 2012, 14:30"
-#: js/misc/util.js:261
+#: js/misc/util.js:262
#, no-c-format
msgid "%B %-d %Y, %H∶%M"
msgstr "%-d %B %Y, %H∶%M"
@@ -740,20 +728,20 @@ msgstr "%-d %B %Y, %H∶%M"
#. Show only the time if date is on today
#. eslint-disable-line no-lonely-if
#. Translators: Time in 12h format
-#: js/misc/util.js:266
+#: js/misc/util.js:267
msgid "%l∶%M %p"
msgstr "%l∶%M %p"
#. Translators: this is the word "Yesterday" followed by a
#. time string in 12h format. i.e. "Yesterday, 2:30 pm"
-#: js/misc/util.js:272
+#: js/misc/util.js:273
#, no-c-format
msgid "Yesterday, %l∶%M %p"
msgstr "Igår, %l∶%M %p"
#. Translators: this is the week day name followed by a time
#. string in 12h format. i.e. "Monday, 2:30 pm"
-#: js/misc/util.js:278
+#: js/misc/util.js:279
#, no-c-format
msgid "%A, %l∶%M %p"
msgstr "%A, %I∶%M %p"
@@ -761,7 +749,7 @@ msgstr "%A, %I∶%M %p"
#. Translators: this is the month name and day number
#. followed by a time string in 12h format.
#. i.e. "May 25, 2:30 pm"
-#: js/misc/util.js:284
+#: js/misc/util.js:285
#, no-c-format
msgid "%B %-d, %l∶%M %p"
msgstr "%-d %B, %l∶%M %p"
@@ -769,17 +757,17 @@ msgstr "%-d %B, %l∶%M %p"
#. Translators: this is the month name, day number, year
#. number followed by a time string in 12h format.
#. i.e. "May 25 2012, 2:30 pm"
-#: js/misc/util.js:290
+#: js/misc/util.js:291
#, no-c-format
msgid "%B %-d %Y, %l∶%M %p"
msgstr "%-d %B %Y, %l∶%M %p"
#. 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"
msgstr "Surfzonsinloggning"
-#: js/portalHelper/main.js:88
+#: js/portalHelper/main.js:95
msgid ""
"Your connection to this hotspot login is not secure. Passwords or other "
"information you enter on this page can be viewed by people nearby."
@@ -1025,39 +1013,39 @@ msgstr "Den installerade udisks-versionen stöder inte PIM-inställningen"
msgid "Open with %s"
msgstr "Öppna med %s"
-#: js/ui/components/networkAgent.js:93
+#: js/ui/components/networkAgent.js:92
msgid ""
"Alternatively you can connect by pushing the “WPS” button on your router."
msgstr ""
"Alternativt kan du ansluta genom att trycka på ”WPS”-knappen på din router."
-#: js/ui/components/networkAgent.js:105 js/ui/status/network.js:258
+#: js/ui/components/networkAgent.js:104 js/ui/status/network.js:258
#: js/ui/status/network.js:349 js/ui/status/network.js:981
msgid "Connect"
msgstr "Anslut"
-#: js/ui/components/networkAgent.js:216
+#: js/ui/components/networkAgent.js:215
msgid "Key"
msgstr "Nyckel"
-#: 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"
msgstr "Lösenord för privat nyckel"
-#: js/ui/components/networkAgent.js:275
+#: js/ui/components/networkAgent.js:274
msgid "Identity"
msgstr "Identitet"
-#: js/ui/components/networkAgent.js:289
+#: js/ui/components/networkAgent.js:288
msgid "Service"
msgstr "Tjänst"
-#: 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
msgid "Authentication required"
msgstr "Autentisering krävs"
-#: 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
msgid ""
"Passwords or encryption keys are required to access the wireless network "
@@ -1066,31 +1054,31 @@ msgstr ""
"Lösenord eller krypteringsnycklar krävs för att komma åt det trådlösa "
"nätverket ”%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"
msgstr "Trådbunden 802.1X-autentisering"
-#: js/ui/components/networkAgent.js:325
+#: js/ui/components/networkAgent.js:324
msgid "Network name"
msgstr "Nätverksnamn"
-#: 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"
msgstr "DSL-autentisering"
-#: 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"
msgstr "PIN-kod krävs"
-#: 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"
msgstr "PIN-koden krävs för den mobila bredbandsenheten"
-#: js/ui/components/networkAgent.js:339
+#: js/ui/components/networkAgent.js:338
msgid "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:705
#, javascript-format
@@ -1382,24 +1370,24 @@ msgstr "%s (fjärransluten)"
msgid "%s (console)"
msgstr "%s (konsol)"
-#: js/ui/extensionDownloader.js:194
+#: js/ui/extensionDownloader.js:232
msgid "Install"
msgstr "Installera"
-#: js/ui/extensionDownloader.js:200
+#: js/ui/extensionDownloader.js:238
msgid "Install Extension"
msgstr "Installera tillägg"
-#: js/ui/extensionDownloader.js:201
+#: js/ui/extensionDownloader.js:239
#, javascript-format
msgid "Download and install “%s” from extensions.gnome.org?"
msgstr "Hämta och installera ”%s” från extensions.gnome.org?"
-#: js/ui/extensionSystem.js:253
+#: js/ui/extensionSystem.js:252
msgid "Extension Updates Available"
msgstr "Uppdateringar för tillägg finns tillgängliga"
-#: js/ui/extensionSystem.js:254
+#: js/ui/extensionSystem.js:253
msgid "Extension updates are ready to be installed."
msgstr "Uppdateringar för tillägg är redo att installeras."
@@ -1495,7 +1483,7 @@ msgstr "Stäng av"
msgid "Leave Off"
msgstr "Lämna avstängd"
-#: js/ui/keyboard.js:227
+#: js/ui/keyboard.js:226
msgid "Region & Language Settings"
msgstr "Region- & språkinställningar"
@@ -1548,11 +1536,11 @@ msgstr "Visa källa"
msgid "Web Page"
msgstr "Webbsida"
-#: js/ui/main.js:294
+#: js/ui/main.js:290
msgid "Logged in as a privileged user"
msgstr "Inloggad som en privilegierad användare"
-#: js/ui/main.js:295
+#: js/ui/main.js:291
msgid ""
"Running a session as a privileged user should be avoided for security "
"reasons. If possible, you should log in as a normal user."
@@ -1560,15 +1548,15 @@ msgstr ""
"Att köra en session som en privilegierad användare bör undvikas av "
"säkerhetsskäl. Om möjligt bör du logga in som en normal användare."
-#: js/ui/main.js:344
+#: js/ui/main.js:340
msgid "Screen Lock disabled"
msgstr "Skärmlås inaktiverat"
-#: js/ui/main.js:345
+#: js/ui/main.js:341
msgid "Screen Locking requires the GNOME display manager."
msgstr "Skärmlås kräver GNOME:s displayhanterare."
-#: js/ui/messageTray.js:1440
+#: js/ui/messageTray.js:1443
msgid "System Information"
msgstr "Systeminformation"
@@ -1602,47 +1590,47 @@ msgstr "Ångra"
msgid "Overview"
msgstr "Översikt"
-#: js/ui/padOsd.js:96
+#: js/ui/padOsd.js:95
msgid "New shortcut…"
msgstr "Nytt kortkommando…"
-#: js/ui/padOsd.js:143
+#: js/ui/padOsd.js:142
msgid "Application defined"
msgstr "Programdefinierad"
-#: js/ui/padOsd.js:144
+#: js/ui/padOsd.js:143
msgid "Show on-screen help"
msgstr "Visa hjälp på skärmen"
-#: js/ui/padOsd.js:145
+#: js/ui/padOsd.js:144
msgid "Switch monitor"
msgstr "Växla skärm"
-#: js/ui/padOsd.js:146
+#: js/ui/padOsd.js:145
msgid "Assign keystroke"
msgstr "Tilldela tangenttryckning"
-#: js/ui/padOsd.js:212
+#: js/ui/padOsd.js:211
msgid "Done"
msgstr "Färdig"
-#: js/ui/padOsd.js:718
+#: js/ui/padOsd.js:716
msgid "Edit…"
msgstr "Redigera…"
-#: js/ui/padOsd.js:760 js/ui/padOsd.js:877
+#: js/ui/padOsd.js:758 js/ui/padOsd.js:875
msgid "None"
msgstr "Ingen"
-#: js/ui/padOsd.js:831
+#: js/ui/padOsd.js:829
msgid "Press a button to configure"
msgstr "Tryck på en knapp för att konfigurera"
-#: js/ui/padOsd.js:832
+#: js/ui/padOsd.js:830
msgid "Press Esc to exit"
msgstr "Tryck Esc för att avsluta"
-#: js/ui/padOsd.js:835
+#: js/ui/padOsd.js:833
msgid "Press any key to exit"
msgstr "Tryck på valfri tangent för att avsluta"
@@ -1652,12 +1640,12 @@ msgstr "Tryck på valfri tangent för att avsluta"
msgid "Activities"
msgstr "Aktiviteter"
-#: js/ui/panel.js:542
+#: js/ui/panel.js:556
msgctxt "System menu in the top bar"
msgid "System"
msgstr "System"
-#: js/ui/panel.js:658
+#: js/ui/panel.js:674
msgid "Top Bar"
msgstr "Systemrad"
@@ -1696,7 +1684,7 @@ msgstr "Kunde inte låsa"
msgid "Lock was blocked by an application"
msgstr "Låsning hindrades av ett program"
-#: js/ui/screenshot.js:141
+#: js/ui/screenshot.js:155
msgid "Screenshot taken"
msgstr "Skärmbild tagen"
@@ -2753,6 +2741,7 @@ msgstr "UUID, namn och beskrivning krävs"
#: subprojects/extensions-tool/src/command-enable.c:46
#: subprojects/extensions-tool/src/command-info.c:50
#: subprojects/extensions-tool/src/command-list.c:64
+#: subprojects/extensions-tool/src/main.c:146
msgid "Failed to connect to GNOME Shell\n"
msgstr "Misslyckades med att ansluta till GNOME-skalet\n"
@@ -2769,7 +2758,7 @@ msgstr "Inaktivera ett tillägg"
#: subprojects/extensions-tool/src/command-disable.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-prefs.c:105
#: subprojects/extensions-tool/src/command-reset.c:76
#: subprojects/extensions-tool/src/command-uninstall.c:104
msgid "No UUID given"
@@ -2778,7 +2767,7 @@ msgstr "Inget UUID angivet"
#: subprojects/extensions-tool/src/command-disable.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-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"
@@ -2908,7 +2897,12 @@ msgstr "Mer än en källkatalog angiven"
msgid "Extension “%s” doesn't have preferences\n"
msgstr "Tillägget ”%s” har inga inställningar\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 "Misslyckades med att öppna inställningar för tillägget ”%s”: %s\n"
+
+#: subprojects/extensions-tool/src/command-prefs.c:87
msgid "Opens extension preferences"
msgstr "Öppnar inställningar för tillägg"
@@ -2933,10 +2927,6 @@ msgstr "Avinstallera ett tillägg"
msgid "Do not print error messages"
msgstr "Skriv inte ut felmeddelanden"
-#: subprojects/extensions-tool/src/main.c:146
-msgid "Failed to connect to GNOME Shell"
-msgstr "Misslyckades med att ansluta till GNOME-skalet"
-
#: subprojects/extensions-tool/src/main.c:244
msgid "Path"
msgstr "Sökväg"
@@ -3067,6 +3057,19 @@ msgstr[1] "%u ingångar"
msgid "System Sounds"
msgstr "Systemljud"
+#~ msgid "Enable introspection API"
+#~ msgstr "Aktivera introspektions-API"
+
+#~ msgid ""
+#~ "Enables a D-Bus API that allows to introspect the application state of "
+#~ "the shell."
+#~ msgstr ""
+#~ "Aktiverar ett D-Bus-API som tillåter introspektion av programtillståndet "
+#~ "för skalet."
+
+#~ msgid "Failed to connect to GNOME Shell"
+#~ msgstr "Misslyckades med att ansluta till GNOME-skalet"
+
#~ msgid "Minimize"
#~ msgstr "Minimera"
diff --git a/po/uk.po b/po/uk.po
index 16845999c..cb7fffb48 100644
--- a/po/uk.po
+++ b/po/uk.po
@@ -10,8 +10,8 @@ msgid ""
msgstr ""
"Project-Id-Version: gnome-shell master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell/issues\n"
-"POT-Creation-Date: 2021-08-17 23:56+0000\n"
-"PO-Revision-Date: 2021-08-18 09:35+0300\n"
+"POT-Creation-Date: 2021-11-02 15:41+0000\n"
+"PO-Revision-Date: 2021-11-02 18:31+0200\n"
"Last-Translator: Yuri Chornoivan \n"
"Language-Team: Ukrainian \n"
"Language: uk\n"
@@ -253,21 +253,11 @@ msgstr ""
"велике число — версіям, яких іще не існує. Таким великим числом можна "
"скористатися для того, щоб вимкнути показ вікна."
-#: data/org.gnome.shell.gschema.xml.in:109
-msgid "Enable introspection API"
-msgstr "Увімкнути API для самоаналізу"
-
-#: data/org.gnome.shell.gschema.xml.in:110
-msgid ""
-"Enables a D-Bus API that allows to introspect the application state of the "
-"shell."
-msgstr "Вмикає D-Bus API для самоаналізу стану оболонки."
-
-#: data/org.gnome.shell.gschema.xml.in:141
+#: data/org.gnome.shell.gschema.xml.in:133
msgid "Layout of the app picker"
msgstr "Компонування засобу вибору програм"
-#: data/org.gnome.shell.gschema.xml.in:142
+#: data/org.gnome.shell.gschema.xml.in:134
msgid ""
"Layout of the app picker. Each entry in the array is a page. Pages are "
"stored in the order they appear in GNOME Shell. Each page contains an "
@@ -280,106 +270,106 @@ msgstr ""
"поточній версії як 'дані' може бути збережено такі значення: • “позиція”: "
"позиція піктограми програми на сторінці"
-#: data/org.gnome.shell.gschema.xml.in:157
+#: data/org.gnome.shell.gschema.xml.in:149
msgid "Keybinding to open the application menu"
msgstr "Комбінація клавіш, щоб відкрити меню програм"
-#: data/org.gnome.shell.gschema.xml.in:158
+#: data/org.gnome.shell.gschema.xml.in:150
msgid "Keybinding to open the application menu."
msgstr "Комбінація клавіш, щоб відкрити меню програм."
-#: data/org.gnome.shell.gschema.xml.in:164
-#: data/org.gnome.shell.gschema.xml.in:171
+#: data/org.gnome.shell.gschema.xml.in:156
+#: data/org.gnome.shell.gschema.xml.in:163
msgid "Keybinding to shift between overview states"
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"
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"
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"
msgstr "Комбінація клавіш, щоб «Показати програми»"
-#: data/org.gnome.shell.gschema.xml.in:179
+#: data/org.gnome.shell.gschema.xml.in:171
msgid ""
"Keybinding to open the “Show Applications” view of the Activities Overview."
msgstr "Комбінація клавіш, щоб «Показати програми» в огляді діяльності."
-#: data/org.gnome.shell.gschema.xml.in:186
+#: data/org.gnome.shell.gschema.xml.in:178
msgid "Keybinding to open the overview"
msgstr "Комбінація клавіш, щоб відкрити огляд"
-#: data/org.gnome.shell.gschema.xml.in:187
+#: data/org.gnome.shell.gschema.xml.in:179
msgid "Keybinding to open the Activities Overview."
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"
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."
msgstr "Комбінація клавіш, щоб змінювати видимість переліку сповіщень."
-#: data/org.gnome.shell.gschema.xml.in:200
+#: data/org.gnome.shell.gschema.xml.in:192
msgid "Keybinding to focus the active notification"
msgstr "Комбінація клавіш, щоб перейти до активних сповіщень"
-#: data/org.gnome.shell.gschema.xml.in:201
+#: data/org.gnome.shell.gschema.xml.in:193
msgid "Keybinding to focus the active notification."
msgstr "Комбінація клавіш, щоб перейти до активних сповіщень."
-#: data/org.gnome.shell.gschema.xml.in:207
+#: data/org.gnome.shell.gschema.xml.in:199
msgid "Switch to application 1"
msgstr "Перемкнутися на програму 1"
-#: data/org.gnome.shell.gschema.xml.in:211
+#: data/org.gnome.shell.gschema.xml.in:203
msgid "Switch to application 2"
msgstr "Перемкнутися на програму 2"
-#: data/org.gnome.shell.gschema.xml.in:215
+#: data/org.gnome.shell.gschema.xml.in:207
msgid "Switch to application 3"
msgstr "Перемкнутися на програму 3"
-#: data/org.gnome.shell.gschema.xml.in:219
+#: data/org.gnome.shell.gschema.xml.in:211
msgid "Switch to application 4"
msgstr "Перемкнутися на програму 4"
-#: data/org.gnome.shell.gschema.xml.in:223
+#: data/org.gnome.shell.gschema.xml.in:215
msgid "Switch to application 5"
msgstr "Перемкнутися на програму 5"
-#: data/org.gnome.shell.gschema.xml.in:227
+#: data/org.gnome.shell.gschema.xml.in:219
msgid "Switch to application 6"
msgstr "Перемкнутися на програму 6"
-#: data/org.gnome.shell.gschema.xml.in:231
+#: data/org.gnome.shell.gschema.xml.in:223
msgid "Switch to application 7"
msgstr "Перемкнутися на програму 7"
-#: data/org.gnome.shell.gschema.xml.in:235
+#: data/org.gnome.shell.gschema.xml.in:227
msgid "Switch to application 8"
msgstr "Перемкнутися на програму 8"
-#: data/org.gnome.shell.gschema.xml.in:239
+#: data/org.gnome.shell.gschema.xml.in:231
msgid "Switch to application 9"
msgstr "Перемкнутися на програму 9"
-#: data/org.gnome.shell.gschema.xml.in:248
-#: data/org.gnome.shell.gschema.xml.in:275
+#: data/org.gnome.shell.gschema.xml.in:240
+#: data/org.gnome.shell.gschema.xml.in:267
msgid "Limit switcher to current workspace."
msgstr "Обмежити перемикач на поточний робочий простір."
-#: data/org.gnome.shell.gschema.xml.in:249
+#: data/org.gnome.shell.gschema.xml.in:241
msgid ""
"If true, only applications that have windows on the current workspace are "
"shown in the switcher. Otherwise, all applications are included."
@@ -387,11 +377,11 @@ msgstr ""
"Якщо це вказано, то тільки програми з поточного робочого простору будуть "
"показані в перемикачі. Інакше — програми з усіх просторів."
-#: data/org.gnome.shell.gschema.xml.in:266
+#: data/org.gnome.shell.gschema.xml.in:258
msgid "The application icon mode."
msgstr "Режим піктограм для програм."
-#: data/org.gnome.shell.gschema.xml.in:267
+#: data/org.gnome.shell.gschema.xml.in:259
msgid ""
"Configures how the windows are shown in the switcher. Valid possibilities "
"are “thumbnail-only” (shows a thumbnail of the window), “app-icon-"
@@ -401,7 +391,7 @@ msgstr ""
"«thumbnail-only» (показує мініатюру вікна), «app-icon-only» (показує тільки "
"піктограми програм) або «both» (обидва)."
-#: data/org.gnome.shell.gschema.xml.in:276
+#: data/org.gnome.shell.gschema.xml.in:268
msgid ""
"If true, only windows from the current workspace are shown in the switcher. "
"Otherwise, all windows are included."
@@ -409,57 +399,57 @@ msgstr ""
"Якщо це вказано, то тільки вікна з поточного робочого простору будуть "
"показані в перемикачі. Інакше — вікна з усіх просторів."
-#: data/org.gnome.shell.gschema.xml.in:286
+#: data/org.gnome.shell.gschema.xml.in:278
msgid "Locations"
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"
msgstr "Місцевість для світового годинника"
-#: data/org.gnome.shell.gschema.xml.in:297
+#: data/org.gnome.shell.gschema.xml.in:289
msgid "Automatic location"
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"
msgstr "Чи одержувати поточну локацію"
-#: data/org.gnome.shell.gschema.xml.in:305
+#: data/org.gnome.shell.gschema.xml.in:297
msgid "Location"
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"
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"
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:336
#: data/org.gnome.shell.gschema.xml.in:344
-#: data/org.gnome.shell.gschema.xml.in:352
msgid ""
"This key overrides the key in org.gnome.mutter when running GNOME Shell."
msgstr ""
"Цей ключ перевизначає ключ у 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"
msgstr "Увімкнути розбиття країв, коли кладуться вікна на краї екрана"
-#: data/org.gnome.shell.gschema.xml.in:335
+#: data/org.gnome.shell.gschema.xml.in:327
msgid "Workspaces are managed dynamically"
msgstr "Робочі простори організовуються динамічно"
-#: data/org.gnome.shell.gschema.xml.in:343
+#: data/org.gnome.shell.gschema.xml.in:335
msgid "Workspaces only on primary monitor"
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"
msgstr "Затримувати зміни фокусу миші, поки вказівник не перестане рухатись"
@@ -494,18 +484,18 @@ msgid "Visit extension homepage"
msgstr "Відвідати сторінку розширення"
#: js/gdm/authPrompt.js:141 js/ui/audioDeviceSelection.js:61
-#: js/ui/components/networkAgent.js:111 js/ui/components/polkitAgent.js:138
-#: js/ui/endSessionDialog.js:438 js/ui/extensionDownloader.js:190
+#: js/ui/components/networkAgent.js:110 js/ui/components/polkitAgent.js:138
+#: 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 subprojects/extensions-app/js/main.js:183
msgid "Cancel"
msgstr "Скасувати"
#. Cisco LEAP
-#: js/gdm/authPrompt.js:285 js/ui/components/networkAgent.js:210
-#: js/ui/components/networkAgent.js:226 js/ui/components/networkAgent.js:250
-#: js/ui/components/networkAgent.js:271 js/ui/components/networkAgent.js:291
-#: js/ui/components/networkAgent.js:301 js/ui/components/polkitAgent.js:275
+#: js/gdm/authPrompt.js:285 js/ui/components/networkAgent.js:209
+#: js/ui/components/networkAgent.js:225 js/ui/components/networkAgent.js:249
+#: js/ui/components/networkAgent.js:270 js/ui/components/networkAgent.js:290
+#: js/ui/components/networkAgent.js:300 js/ui/components/polkitAgent.js:275
#: js/ui/shellMountOperation.js:326
msgid "Password"
msgstr "Пароль"
@@ -528,8 +518,8 @@ msgstr "(наприклад, користувач або %s)"
#. TTLS and PEAP are actually much more complicated, but this complication
#. is not visible here since we only care about phase2 authentication
#. (and don't even care of which one)
-#: js/gdm/loginDialog.js:926 js/ui/components/networkAgent.js:246
-#: js/ui/components/networkAgent.js:269 js/ui/components/networkAgent.js:287
+#: js/gdm/loginDialog.js:926 js/ui/components/networkAgent.js:245
+#: js/ui/components/networkAgent.js:268 js/ui/components/networkAgent.js:286
msgid "Username"
msgstr "Користувач"
@@ -636,26 +626,26 @@ msgctxt "search-result"
msgid "Lock Screen Rotation"
msgstr "Заблокувати обертання екрана"
-#: js/misc/util.js:120
+#: js/misc/util.js:121
msgid "Command not found"
msgstr "Команди не знайдено"
#. Replace "Error invoking GLib.shell_parse_argv: " with
#. something nicer
-#: js/misc/util.js:156
+#: js/misc/util.js:157
msgid "Could not parse command:"
msgstr "Неможливо розібрати команду:"
-#: js/misc/util.js:164
+#: js/misc/util.js:165
#, javascript-format
msgid "Execution of “%s” failed:"
msgstr "Не вдалось виконати «%s»:"
-#: js/misc/util.js:181
+#: js/misc/util.js:182
msgid "Just now"
msgstr "Просто зараз"
-#: js/misc/util.js:183
+#: js/misc/util.js:184
#, javascript-format
msgid "%d minute ago"
msgid_plural "%d minutes ago"
@@ -664,7 +654,7 @@ msgstr[1] "%d хвилини тому"
msgstr[2] "%d хвилин тому"
msgstr[3] "%d хвилина тому"
-#: js/misc/util.js:187
+#: js/misc/util.js:188
#, javascript-format
msgid "%d hour ago"
msgid_plural "%d hours ago"
@@ -673,11 +663,11 @@ msgstr[1] "%d години тому"
msgstr[2] "%d годин тому"
msgstr[3] "%d година тому"
-#: js/misc/util.js:191 js/ui/dateMenu.js:162
+#: js/misc/util.js:192 js/ui/dateMenu.js:162
msgid "Yesterday"
msgstr "Учора"
-#: js/misc/util.js:193
+#: js/misc/util.js:194
#, javascript-format
msgid "%d day ago"
msgid_plural "%d days ago"
@@ -686,7 +676,7 @@ msgstr[1] "%d дні тому"
msgstr[2] "%d днів тому"
msgstr[3] "%d день тому"
-#: js/misc/util.js:197
+#: js/misc/util.js:198
#, javascript-format
msgid "%d week ago"
msgid_plural "%d weeks ago"
@@ -695,7 +685,7 @@ msgstr[1] "%d тижні тому"
msgstr[2] "%d тижнів тому"
msgstr[3] "%d тиждень тому"
-#: js/misc/util.js:201
+#: js/misc/util.js:202
#, javascript-format
msgid "%d month ago"
msgid_plural "%d months ago"
@@ -704,7 +694,7 @@ msgstr[1] "%d місяці тому"
msgstr[2] "%d місяців тому"
msgstr[3] "%d місяць тому"
-#: js/misc/util.js:204
+#: js/misc/util.js:205
#, javascript-format
msgid "%d year ago"
msgid_plural "%d years ago"
@@ -714,20 +704,20 @@ msgstr[2] "%d років тому"
msgstr[3] "%d рік тому"
#. Translators: Time in 24h format
-#: js/misc/util.js:237
+#: js/misc/util.js:238
msgid "%H∶%M"
msgstr "%H:%M"
#. Translators: this is the word "Yesterday" followed by a
#. time string in 24h format. i.e. "Yesterday, 14:30"
-#: js/misc/util.js:243
+#: js/misc/util.js:244
#, no-c-format
msgid "Yesterday, %H∶%M"
msgstr "Учора, %H∶%M"
#. Translators: this is the week day name followed by a time
#. string in 24h format. i.e. "Monday, 14:30"
-#: js/misc/util.js:249
+#: js/misc/util.js:250
#, no-c-format
msgid "%A, %H∶%M"
msgstr "%A, %H∶%M"
@@ -735,7 +725,7 @@ msgstr "%A, %H∶%M"
#. Translators: this is the month name and day number
#. followed by a time string in 24h format.
#. i.e. "May 25, 14:30"
-#: js/misc/util.js:255
+#: js/misc/util.js:256
#, no-c-format
msgid "%B %-d, %H∶%M"
msgstr "%-d %B, %H∶%M"
@@ -743,7 +733,7 @@ msgstr "%-d %B, %H∶%M"
#. Translators: this is the month name, day number, year
#. number followed by a time string in 24h format.
#. i.e. "May 25 2012, 14:30"
-#: js/misc/util.js:261
+#: js/misc/util.js:262
#, no-c-format
msgid "%B %-d %Y, %H∶%M"
msgstr "%-d %B %Y, %H∶%M"
@@ -751,20 +741,20 @@ msgstr "%-d %B %Y, %H∶%M"
#. Show only the time if date is on today
#. eslint-disable-line no-lonely-if
#. Translators: Time in 12h format
-#: js/misc/util.js:266
+#: js/misc/util.js:267
msgid "%l∶%M %p"
msgstr "%l∶%M %p"
#. Translators: this is the word "Yesterday" followed by a
#. time string in 12h format. i.e. "Yesterday, 2:30 pm"
-#: js/misc/util.js:272
+#: js/misc/util.js:273
#, no-c-format
msgid "Yesterday, %l∶%M %p"
msgstr "Учора, %l∶%M %p"
#. Translators: this is the week day name followed by a time
#. string in 12h format. i.e. "Monday, 2:30 pm"
-#: js/misc/util.js:278
+#: js/misc/util.js:279
#, no-c-format
msgid "%A, %l∶%M %p"
msgstr "%A, %l∶%M %p"
@@ -772,7 +762,7 @@ msgstr "%A, %l∶%M %p"
#. Translators: this is the month name and day number
#. followed by a time string in 12h format.
#. i.e. "May 25, 2:30 pm"
-#: js/misc/util.js:284
+#: js/misc/util.js:285
#, no-c-format
msgid "%B %-d, %l∶%M %p"
msgstr "%-d %B, %l∶%M %p"
@@ -780,17 +770,17 @@ msgstr "%-d %B, %l∶%M %p"
#. Translators: this is the month name, day number, year
#. number followed by a time string in 12h format.
#. i.e. "May 25 2012, 2:30 pm"
-#: js/misc/util.js:290
+#: js/misc/util.js:291
#, no-c-format
msgid "%B %-d %Y, %l∶%M %p"
msgstr "%-d %B %Y, %l∶%M %p"
#. 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"
msgstr "Вхід в точку"
-#: js/portalHelper/main.js:88
+#: js/portalHelper/main.js:95
msgid ""
"Your connection to this hotspot login is not secure. Passwords or other "
"information you enter on this page can be viewed by people nearby."
@@ -1034,70 +1024,70 @@ msgstr "Наявна версія udisks не підтримує парамет
msgid "Open with %s"
msgstr "Відкрити через %s"
-#: js/ui/components/networkAgent.js:93
+#: js/ui/components/networkAgent.js:92
msgid ""
"Alternatively you can connect by pushing the “WPS” button on your router."
msgstr ""
"Також можете під'єднатися, натиснувши кнопку «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
msgid "Connect"
msgstr "З'єднатись"
-#: js/ui/components/networkAgent.js:216
+#: js/ui/components/networkAgent.js:215
msgid "Key"
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"
msgstr "Пароль до закритого ключа"
-#: js/ui/components/networkAgent.js:275
+#: js/ui/components/networkAgent.js:274
msgid "Identity"
msgstr "Профіль"
-#: js/ui/components/networkAgent.js:289
+#: js/ui/components/networkAgent.js:288
msgid "Service"
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
msgid "Authentication required"
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
msgid ""
"Passwords or encryption keys are required to access the wireless network "
"“%s”."
msgstr "Потрібно паролі або зашифровані ключі для доступу до радіомережі «%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"
msgstr "Дротова аутентифікація 802.1X"
-#: js/ui/components/networkAgent.js:325
+#: js/ui/components/networkAgent.js:324
msgid "Network name"
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"
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"
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"
msgstr "Потрібен код PIN для мобільних широкосмугових пристроїв"
-#: js/ui/components/networkAgent.js:339
+#: js/ui/components/networkAgent.js:338
msgid "PIN"
msgstr "Пін-код"
-#: 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:705
#, javascript-format
@@ -1399,24 +1389,24 @@ msgstr "%s (віддалено)"
msgid "%s (console)"
msgstr "%s (консоль)"
-#: js/ui/extensionDownloader.js:194
+#: js/ui/extensionDownloader.js:232
msgid "Install"
msgstr "Встановити"
-#: js/ui/extensionDownloader.js:200
+#: js/ui/extensionDownloader.js:238
msgid "Install Extension"
msgstr "Встановити розширення"
-#: js/ui/extensionDownloader.js:201
+#: js/ui/extensionDownloader.js:239
#, javascript-format
msgid "Download and install “%s” from extensions.gnome.org?"
msgstr "Звантажити і встановити «%s» з extensions.gnome.org?"
-#: js/ui/extensionSystem.js:253
+#: js/ui/extensionSystem.js:252
msgid "Extension Updates Available"
msgstr "Випущено оновлення розширень"
-#: js/ui/extensionSystem.js:254
+#: js/ui/extensionSystem.js:253
msgid "Extension updates are ready to be installed."
msgstr "Приготовано до встановлення оновлення розширень."
@@ -1510,7 +1500,7 @@ msgstr "Вимкнути"
msgid "Leave Off"
msgstr "Покинути"
-#: js/ui/keyboard.js:227
+#: js/ui/keyboard.js:226
msgid "Region & Language Settings"
msgstr "Параметри регіону та мови"
@@ -1563,11 +1553,11 @@ msgstr "Переглянути джерело"
msgid "Web Page"
msgstr "Веб-сторінка"
-#: js/ui/main.js:294
+#: js/ui/main.js:290
msgid "Logged in as a privileged user"
msgstr "Увійшов як наділений користувач"
-#: js/ui/main.js:295
+#: js/ui/main.js:291
msgid ""
"Running a session as a privileged user should be avoided for security "
"reasons. If possible, you should log in as a normal user."
@@ -1575,15 +1565,15 @@ msgstr ""
"З міркувань безпеки слід уникати сеансів з наділеними правами. Користуйтесь "
"звичайним сеансом."
-#: js/ui/main.js:344
+#: js/ui/main.js:340
msgid "Screen Lock disabled"
msgstr "Блокування екрана вимкнено"
-#: js/ui/main.js:345
+#: js/ui/main.js:341
msgid "Screen Locking requires the GNOME display manager."
msgstr "Блокування екрана потребує керування входом GNOME."
-#: js/ui/messageTray.js:1440
+#: js/ui/messageTray.js:1443
msgid "System Information"
msgstr "Інформація про систему"
@@ -1617,47 +1607,47 @@ msgstr "Повернути"
msgid "Overview"
msgstr "Огляд"
-#: js/ui/padOsd.js:96
+#: js/ui/padOsd.js:95
msgid "New shortcut…"
msgstr "Нове скорочення…"
-#: js/ui/padOsd.js:143
+#: js/ui/padOsd.js:142
msgid "Application defined"
msgstr "Програму визначено"
-#: js/ui/padOsd.js:144
+#: js/ui/padOsd.js:143
msgid "Show on-screen help"
msgstr "Показати екранну довідку"
-#: js/ui/padOsd.js:145
+#: js/ui/padOsd.js:144
msgid "Switch monitor"
msgstr "Перемкнути монітор"
-#: js/ui/padOsd.js:146
+#: js/ui/padOsd.js:145
msgid "Assign keystroke"
msgstr "Призначити клавішу"
-#: js/ui/padOsd.js:212
+#: js/ui/padOsd.js:211
msgid "Done"
msgstr "Зроблено"
-#: js/ui/padOsd.js:718
+#: js/ui/padOsd.js:716
msgid "Edit…"
msgstr "Редагувати…"
-#: js/ui/padOsd.js:760 js/ui/padOsd.js:877
+#: js/ui/padOsd.js:758 js/ui/padOsd.js:875
msgid "None"
msgstr "Немає"
-#: js/ui/padOsd.js:831
+#: js/ui/padOsd.js:829
msgid "Press a button to configure"
msgstr "Натисніть кнопку, щоб налаштувати"
-#: js/ui/padOsd.js:832
+#: js/ui/padOsd.js:830
msgid "Press Esc to exit"
msgstr "Натисніть клавішу «Esc», щоб вийти"
-#: js/ui/padOsd.js:835
+#: js/ui/padOsd.js:833
msgid "Press any key to exit"
msgstr "Натисніть будь-яку клавішу, щоб вийти"
@@ -1667,12 +1657,12 @@ msgstr "Натисніть будь-яку клавішу, щоб вийти"
msgid "Activities"
msgstr "Діяльність"
-#: js/ui/panel.js:542
+#: js/ui/panel.js:556
msgctxt "System menu in the top bar"
msgid "System"
msgstr "Система"
-#: js/ui/panel.js:658
+#: js/ui/panel.js:674
msgid "Top Bar"
msgstr "Верхня панель"
@@ -1711,7 +1701,7 @@ msgstr "Неможливо заблокувати"
msgid "Lock was blocked by an application"
msgstr "Блокування заборонено програмою"
-#: js/ui/screenshot.js:141
+#: js/ui/screenshot.js:155
msgid "Screenshot taken"
msgstr "Знімок зроблено"
@@ -2420,13 +2410,10 @@ msgid "%d × %d"
msgstr "%d × %d"
#: js/ui/windowMenu.js:27
-#| msgid "Hide Text"
msgid "Hide"
msgstr "Приховати"
#: js/ui/windowMenu.js:34
-#| msgctxt "search-result"
-#| msgid "Restart"
msgid "Restore"
msgstr "Відновити"
@@ -2783,6 +2770,7 @@ msgstr "UUID, назва і опис — обов'язкові"
#: subprojects/extensions-tool/src/command-enable.c:46
#: subprojects/extensions-tool/src/command-info.c:50
#: subprojects/extensions-tool/src/command-list.c:64
+#: subprojects/extensions-tool/src/main.c:146
msgid "Failed to connect to GNOME Shell\n"
msgstr "Не вдалося з'єднатися із GNOME Shell\n"
@@ -2799,7 +2787,7 @@ msgstr "Вимкнути розширення"
#: subprojects/extensions-tool/src/command-disable.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-prefs.c:105
#: subprojects/extensions-tool/src/command-reset.c:76
#: subprojects/extensions-tool/src/command-uninstall.c:104
msgid "No UUID given"
@@ -2808,7 +2796,7 @@ msgstr "Не надано UUID"
#: subprojects/extensions-tool/src/command-disable.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-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"
@@ -2938,7 +2926,13 @@ msgstr "Вказано понад один каталог джерела"
msgid "Extension “%s” doesn't have preferences\n"
msgstr "У розширення «%s» немає налаштувань\n"
-#: subprojects/extensions-tool/src/command-prefs.c:79
+#: subprojects/extensions-tool/src/command-prefs.c:62
+#, c-format
+msgid "Failed to open prefs for extension “%s”: %s\n"
+msgstr ""
+"Не вдалося відкрити налаштування для розширення «%s»: %s\n"
+
+#: subprojects/extensions-tool/src/command-prefs.c:87
msgid "Opens extension preferences"
msgstr "Відкриває параметри розширення"
@@ -2963,10 +2957,6 @@ msgstr "Вилучити розширення"
msgid "Do not print error messages"
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
msgid "Path"
msgstr "Шлях"
@@ -3101,6 +3091,17 @@ msgstr[3] "%u вхід"
msgid "System Sounds"
msgstr "Системні звуки"
+#~ msgid "Enable introspection API"
+#~ msgstr "Увімкнути API для самоаналізу"
+
+#~ msgid ""
+#~ "Enables a D-Bus API that allows to introspect the application state of "
+#~ "the shell."
+#~ msgstr "Вмикає D-Bus API для самоаналізу стану оболонки."
+
+#~ msgid "Failed to connect to GNOME Shell"
+#~ msgstr "Не вдалося з'єднатися із GNOME Shell"
+
#~ msgid "Minimize"
#~ msgstr "Згорнути"
diff --git a/src/gnome-shell-extension-tool.in b/src/gnome-shell-extension-tool.in
index fb3d0d81a..8da34ff55 100755
--- a/src/gnome-shell-extension-tool.in
+++ b/src/gnome-shell-extension-tool.in
@@ -1,4 +1,4 @@
-#!@PYTHON@
+#!/usr/bin/env python3
# -*- mode: Python; indent-tabs-mode: nil; -*-
import subprocess
diff --git a/src/gnome-shell-perf-tool.in b/src/gnome-shell-perf-tool.in
index a1b5d5994..163a5b93d 100755
--- a/src/gnome-shell-perf-tool.in
+++ b/src/gnome-shell-perf-tool.in
@@ -1,4 +1,4 @@
-#!@PYTHON@
+#!/usr/bin/env python3
# -*- mode: Python; indent-tabs-mode: nil; -*-
import datetime
diff --git a/src/gnome-shell-plugin.c b/src/gnome-shell-plugin.c
index 5364f043a..c41e405b5 100644
--- a/src/gnome-shell-plugin.c
+++ b/src/gnome-shell-plugin.c
@@ -46,6 +46,7 @@
#include "shell-global-private.h"
#include "shell-perf-log.h"
#include "shell-wm-private.h"
+#include "shell-realms.h"
#define GNOME_TYPE_SHELL_PLUGIN (gnome_shell_plugin_get_type ())
G_DECLARE_FINAL_TYPE (GnomeShellPlugin, gnome_shell_plugin,
@@ -214,6 +215,20 @@ gnome_shell_plugin_destroy (MetaPlugin *plugin,
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
gnome_shell_plugin_switch_workspace (MetaPlugin *plugin,
gint from,
@@ -221,6 +236,10 @@ gnome_shell_plugin_switch_workspace (MetaPlugin *plugin,
MetaMotionDirection 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
diff --git a/src/meson.build b/src/meson.build
index 53b8b527d..26bd9cbc6 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -1,7 +1,7 @@
service_data = configuration_data()
service_data.set('libexecdir', libexecdir)
-subdir('calendar-server')
+#subdir('calendar-server')
subdir('hotplug-sniffer')
subdir('st')
subdir('tray')
@@ -125,6 +125,7 @@ libshell_private_headers = [
'shell-app-cache-private.h',
'shell-app-system-private.h',
'shell-global-private.h',
+ 'shell-realms-private.h',
'shell-window-tracker-private.h',
'shell-wm-private.h'
]
@@ -147,6 +148,14 @@ libshell_sources = [
'shell-perf-log.c',
'shell-polkit-authentication-agent.c',
'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-secure-text-buffer.c',
'shell-secure-text-buffer.h',
diff --git a/src/shell-app-cache.c b/src/shell-app-cache.c
index 44fc8b0d7..092e83fc8 100644
--- a/src/shell-app-cache.c
+++ b/src/shell-app-cache.c
@@ -23,7 +23,7 @@
* Shell is running.
*/
-#define DEFAULT_TIMEOUT_SECONDS 5
+#define DEFAULT_TIMEOUT_SECONDS 2
struct _ShellAppCache
{
diff --git a/src/shell-app-system.c b/src/shell-app-system.c
index 828fa726a..033e73172 100644
--- a/src/shell-app-system.c
+++ b/src/shell-app-system.c
@@ -12,6 +12,7 @@
#include "shell-app-cache-private.h"
#include "shell-app-private.h"
#include "shell-window-tracker-private.h"
+#include "shell-realms.h"
#include "shell-app-system-private.h"
#include "shell-global.h"
#include "shell-util.h"
@@ -91,6 +92,110 @@ static void shell_app_system_class_init(ShellAppSystemClass *klass)
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
scan_startup_wm_class_to_id (ShellAppSystem *self)
{
@@ -106,6 +211,7 @@ scan_startup_wm_class_to_id (ShellAppSystem *self)
{
GAppInfo *info = l->data;
const char *startup_wm_class, *id, *old_id;
+ char *realm_wmclass;
id = g_app_info_get_id (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)
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
* the one where ID and StartupWMClass match */
- old_id = g_hash_table_lookup (priv->startup_wm_class_to_id, startup_wm_class);
- if (old_id == NULL || strcmp (id, startup_wm_class) == 0)
+ old_id = g_hash_table_lookup (priv->startup_wm_class_to_id, realm_wmclass);
+ if (old_id == NULL || strcmp (id, startup_wm_class) == 0) {
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 *
shell_app_system_lookup_desktop_wmclass (ShellAppSystem *system,
- const char *wmclass)
+ const char *wmclass,
+ const char *realm_name)
{
char *canonicalized;
char *desktop_file;
+ char *classname;
ShellApp *app;
if (wmclass == NULL)
return NULL;
+ classname = realm_wm_class (wmclass, realm_name);
+
/* First try without changing the case (this handles
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
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);
g_free (desktop_file);
- if (app)
+ if (app) {
+ g_free (classname);
return app;
+ }
- canonicalized = g_ascii_strdown (wmclass, -1);
+ canonicalized = g_ascii_strdown (classname, -1);
/* This handles "Fedora Eclipse", probably others.
* Note g_strdelimit is modify-in-place. */
@@ -382,6 +499,7 @@ shell_app_system_lookup_desktop_wmclass (ShellAppSystem *system,
g_free (canonicalized);
g_free (desktop_file);
+ g_free (classname);
return app;
}
@@ -398,14 +516,20 @@ shell_app_system_lookup_desktop_wmclass (ShellAppSystem *system,
*/
ShellApp *
shell_app_system_lookup_startup_wmclass (ShellAppSystem *system,
- const char *wmclass)
+ const char *wmclass,
+ const char *realm_name)
{
const char *id;
+ char *classname;
if (wmclass == 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)
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);
}
+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:
* @self: A #ShellAppSystem
@@ -458,7 +605,9 @@ shell_app_system_get_running (ShellAppSystem *self)
{
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);
@@ -482,12 +631,16 @@ shell_app_system_search (const char *search_string)
{
char ***results = g_desktop_app_info_search (search_string);
char ***groups, **ids;
+ char *current_realm;
+
+ current_realm = current_realm_name (FALSE);
for (groups = results; *groups; groups++)
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';
+ g_free (current_realm);
return results;
}
@@ -504,5 +657,7 @@ shell_app_system_search (const char *search_string)
GList *
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;
}
diff --git a/src/shell-app-system.h b/src/shell-app-system.h
index 8719dbcf2..6a0203ed3 100644
--- a/src/shell-app-system.h
+++ b/src/shell-app-system.h
@@ -20,9 +20,11 @@ ShellApp *shell_app_system_lookup_heuristic_basename (ShellAppSystem *
const char *id);
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,
- const char *wmclass);
+ const char *wmclass,
+ const char *realm_name);
GSList *shell_app_system_get_running (ShellAppSystem *self);
char ***shell_app_system_search (const char *search_string);
diff --git a/src/shell-app.c b/src/shell-app.c
index 1dfd82d8e..1e3b53257 100644
--- a/src/shell-app.c
+++ b/src/shell-app.c
@@ -1126,7 +1126,7 @@ _shell_app_add_window (ShellApp *app,
app->running_state->interesting_windows++;
shell_app_sync_running_state (app);
- if (app->started_on_workspace >= 0)
+ if (app->started_on_workspace >= 0 && !meta_window_is_on_all_workspaces (window))
meta_window_change_workspace_by_index (window, app->started_on_workspace, FALSE);
app->started_on_workspace = -1;
diff --git a/src/shell-global.c b/src/shell-global.c
index e8705f5b0..c97510fe2 100644
--- a/src/shell-global.c
+++ b/src/shell-global.c
@@ -44,6 +44,7 @@
#include "shell-util.h"
#include "st.h"
#include "switcheroo-control.h"
+#include "shell-realm-tracker.h"
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);
update_scaling_factor (global, settings);
+
+ shell_realm_tracker_start ();
}
GjsContext *
diff --git a/src/shell-realm-item.c b/src/shell-realm-item.c
new file mode 100644
index 000000000..ddb662ca4
--- /dev/null
+++ b/src/shell-realm-item.c
@@ -0,0 +1,396 @@
+#include "shell-global.h"
+#include "shell-realm-item.h"
+#include "shell-realm-tracker.h"
+#include
+#include
+
+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));
+}
\ No newline at end of file
diff --git a/src/shell-realm-item.h b/src/shell-realm-item.h
new file mode 100644
index 000000000..8e9d8ec8d
--- /dev/null
+++ b/src/shell-realm-item.h
@@ -0,0 +1,35 @@
+#ifndef __SHELL_REALM_ITEM_H__
+#define __SHELL_REALM_ITEM_H__
+
+#include
+#include
+
+#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__
diff --git a/src/shell-realm-tracker.c b/src/shell-realm-tracker.c
new file mode 100644
index 000000000..2b3c10d7e
--- /dev/null
+++ b/src/shell-realm-tracker.c
@@ -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);
+
+}
diff --git a/src/shell-realm-tracker.h b/src/shell-realm-tracker.h
new file mode 100644
index 000000000..a979f9510
--- /dev/null
+++ b/src/shell-realm-tracker.h
@@ -0,0 +1,14 @@
+#ifndef __SHELL_REALM_TRACKER_H__
+#define __SHELL_REALM_TRACKER_H__
+
+#include
+
+#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__ */
diff --git a/src/shell-realms-private.h b/src/shell-realms-private.h
new file mode 100644
index 000000000..571f110f4
--- /dev/null
+++ b/src/shell-realms-private.h
@@ -0,0 +1,21 @@
+#ifndef __SHELL_REALMS_PRIVATE_H__
+#define __SHELL_REALMS_PRIVATE_H__
+#include
+#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__
diff --git a/src/shell-realms-window-frames.c b/src/shell-realms-window-frames.c
new file mode 100644
index 000000000..99a3aa7b3
--- /dev/null
+++ b/src/shell-realms-window-frames.c
@@ -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);
+ }
+}
diff --git a/src/shell-realms-window-frames.h b/src/shell-realms-window-frames.h
new file mode 100644
index 000000000..02354736a
--- /dev/null
+++ b/src/shell-realms-window-frames.h
@@ -0,0 +1,17 @@
+#ifndef __SHELL_REALMS_WINDOW_FRAMES_H__
+#define __SHELL_REALMS_WINDOW_FRAMES_H__
+
+#include
+#include
+#include
+
+#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__
diff --git a/src/shell-realms.c b/src/shell-realms.c
new file mode 100644
index 000000000..01718b07d
--- /dev/null
+++ b/src/shell-realms.c
@@ -0,0 +1,460 @@
+
+#include
+#include
+#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));
+}
\ No newline at end of file
diff --git a/src/shell-realms.h b/src/shell-realms.h
new file mode 100644
index 000000000..198b510af
--- /dev/null
+++ b/src/shell-realms.h
@@ -0,0 +1,26 @@
+#ifndef __SHELL_REALMS_H__
+#define __SHELL_REALMS_H__
+
+#include
+#include
+#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__
diff --git a/src/shell-window-tracker.c b/src/shell-window-tracker.c
index 5c9d2ec80..d75db2267 100644
--- a/src/shell-window-tracker.c
+++ b/src/shell-window-tracker.c
@@ -15,6 +15,7 @@
#include "shell-window-tracker-private.h"
#include "shell-app-private.h"
#include "shell-global.h"
+#include "shell-realms.h"
#include "st.h"
/* 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);
}
+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:
*
@@ -146,6 +163,7 @@ get_app_from_window_wmclass (MetaWindow *window)
const char *wm_class;
const char *wm_instance;
const char *sandbox_id;
+ const char *realm_name;
g_autofree char *app_prefix = NULL;
appsys = shell_app_system_get_default ();
@@ -154,6 +172,8 @@ get_app_from_window_wmclass (MetaWindow *window)
if (sandbox_id)
app_prefix = g_strdup_printf ("%s.", sandbox_id);
+ realm_name = get_window_realm_name (window);
+
/* Notes on the heuristics used here:
much of the complexity here comes from the desire to support
Chrome apps.
@@ -191,23 +211,23 @@ get_app_from_window_wmclass (MetaWindow *window)
/* first try a match from WM_CLASS (instance part) to StartupWMClass */
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))
return g_object_ref (app);
/* then try a match from WM_CLASS to StartupWMClass */
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))
return g_object_ref (app);
/* 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))
return g_object_ref (app);
/* 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))
return g_object_ref (app);
@@ -236,7 +256,19 @@ get_app_from_id (MetaWindow *window,
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);
if (app)
return g_object_ref (app);
diff --git a/src/st/meson.build b/src/st/meson.build
index 8004dfdbc..084fb2ee4 100644
--- a/src/st/meson.build
+++ b/src/st/meson.build
@@ -180,7 +180,7 @@ st_cflags = [
libst = shared_library('st-1.0',
sources: st_gir_sources + st_nogir_sources + croco_sources,
c_args: st_cflags,
- dependencies: [clutter_dep, gmodule_dep, gtk_dep, mutter_dep, libxml_dep, m_dep],
+ dependencies: [clutter_dep, gtk_dep, mutter_dep, libxml_dep, m_dep],
build_rpath: mutter_typelibdir,
install_rpath: mutter_typelibdir,
install_dir: pkglibdir,
diff --git a/src/st/st-viewport.c b/src/st/st-viewport.c
index 8aaaad54a..96b703b14 100644
--- a/src/st/st-viewport.c
+++ b/src/st/st-viewport.c
@@ -80,22 +80,8 @@ adjustment_value_notify_cb (StAdjustment *adjustment,
GParamSpec *pspec,
StViewport *viewport)
{
- static gboolean invalidate_paint_volume_valid = FALSE;
- static void (* invalidate_paint_volume) (ClutterActor *) = NULL;
-
clutter_actor_invalidate_transform (CLUTTER_ACTOR (viewport));
-
- if (!invalidate_paint_volume_valid)
- {
- g_module_symbol (g_module_open (NULL, G_MODULE_BIND_LAZY),
- "clutter_actor_invalidate_paint_volume",
- (gpointer *)&invalidate_paint_volume);
- invalidate_paint_volume_valid = TRUE;
- }
-
- if (invalidate_paint_volume)
- invalidate_paint_volume (CLUTTER_ACTOR (viewport));
-
+ clutter_actor_invalidate_paint_volume (CLUTTER_ACTOR (viewport));
clutter_actor_queue_relayout (CLUTTER_ACTOR (viewport));
}
diff --git a/src/st/st-widget.c b/src/st/st-widget.c
index 644b8e25a..e2814e52e 100644
--- a/src/st/st-widget.c
+++ b/src/st/st-widget.c
@@ -1732,19 +1732,7 @@ st_widget_recompute_style (StWidget *widget,
if (!paint_equal)
{
- static gboolean invalidate_paint_volume_valid = FALSE;
- static void (* invalidate_paint_volume) (ClutterActor *) = NULL;
-
- if (!invalidate_paint_volume_valid)
- {
- g_module_symbol (g_module_open (NULL, G_MODULE_BIND_LAZY),
- "clutter_actor_invalidate_paint_volume",
- (gpointer *)&invalidate_paint_volume);
- invalidate_paint_volume_valid = TRUE;
- }
-
- if (invalidate_paint_volume)
- invalidate_paint_volume (CLUTTER_ACTOR (widget));
+ clutter_actor_invalidate_paint_volume (CLUTTER_ACTOR (widget));
next_paint_state (widget);
diff --git a/subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in b/subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in
index 650eaa5c9..fd44f9d56 100644
--- a/subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in
+++ b/subprojects/extensions-app/data/metainfo/org.gnome.Extensions.metainfo.xml.in
@@ -39,6 +39,7 @@
+
diff --git a/subprojects/extensions-app/js/meson.build b/subprojects/extensions-app/js/meson.build
index f311db6e0..8f7bba4e4 100644
--- a/subprojects/extensions-app/js/meson.build
+++ b/subprojects/extensions-app/js/meson.build
@@ -9,7 +9,7 @@ endif
launcherconf.set('prefix', prefix)
launcherconf.set('libdir', libdir)
launcherconf.set('pkgdatadir', pkgdatadir)
-launcherconf.set('gjs', gjs.path())
+launcherconf.set('gjs', gjs)
configure_file(
input: prgname + '.in',
diff --git a/subprojects/extensions-app/meson.build b/subprojects/extensions-app/meson.build
index f9ccfc24d..a619f636d 100644
--- a/subprojects/extensions-app/meson.build
+++ b/subprojects/extensions-app/meson.build
@@ -1,5 +1,5 @@
project('gnome-extensions-app',
- version: '41.0',
+ version: '41.1',
meson_version: '>= 0.53.0',
license: 'GPLv2+'
)
@@ -44,7 +44,7 @@ localedir = join_paths(datadir, 'locale')
metainfodir = join_paths(datadir, 'metainfo')
servicedir = join_paths(datadir, 'dbus-1', 'services')
-gjs = find_program('gjs')
+gjs = '/usr/bin/gjs'
appstream_util = find_program('appstream-util', required: false)
desktop_file_validate = find_program('desktop-file-validate', required: false)
diff --git a/subprojects/extensions-tool/meson.build b/subprojects/extensions-tool/meson.build
index 3b797880f..3ea8808e0 100644
--- a/subprojects/extensions-tool/meson.build
+++ b/subprojects/extensions-tool/meson.build
@@ -1,5 +1,5 @@
project('gnome-extensions-tool', 'c',
- version: '41.0',
+ version: '41.1',
meson_version: '>= 0.53.0',
license: 'GPLv2+'
)
diff --git a/subprojects/extensions-tool/src/command-prefs.c b/subprojects/extensions-tool/src/command-prefs.c
index 50e4b80ba..01c385e06 100644
--- a/subprojects/extensions-tool/src/command-prefs.c
+++ b/subprojects/extensions-tool/src/command-prefs.c
@@ -56,6 +56,14 @@ launch_extension_prefs (const char *uuid)
NULL,
&error);
+ if (error)
+ {
+ g_dbus_error_strip_remote_error (error);
+ g_printerr (_("Failed to open prefs for extension “%s”: %s\n"),
+ uuid, error->message);
+ return FALSE;
+ }
+
return TRUE;
}
diff --git a/subprojects/extensions-tool/src/main.c b/subprojects/extensions-tool/src/main.c
index c33058dc6..c1e85dcf1 100644
--- a/subprojects/extensions-tool/src/main.c
+++ b/subprojects/extensions-tool/src/main.c
@@ -143,7 +143,7 @@ get_extension_property (GDBusProxy *proxy,
&error);
if (response == NULL)
{
- g_printerr (_("Failed to connect to GNOME Shell"));
+ g_printerr (_("Failed to connect to GNOME Shell\n"));
return NULL;
}
diff --git a/subprojects/shew/meson.build b/subprojects/shew/meson.build
index d3d1aea24..0fc6fd155 100644
--- a/subprojects/shew/meson.build
+++ b/subprojects/shew/meson.build
@@ -1,5 +1,5 @@
project('shew', 'c',
- version: '41.0',
+ version: '41.1',
meson_version: '>= 0.53.0',
license: 'LGPLv2+',
)