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 "Re­gion- & 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+', )