Compare commits
	
		
			34 Commits
		
	
	
		
			3.33.1
			...
			gnome-3-32
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					6bb5c1feec | ||
| 
						 | 
					40db793230 | ||
| 
						 | 
					1c6abf3785 | ||
| 
						 | 
					2483b60386 | ||
| 
						 | 
					b118c874da | ||
| 
						 | 
					80cf412e83 | ||
| 
						 | 
					e8ddb23b3a | ||
| 
						 | 
					8b98740897 | ||
| 
						 | 
					ae05679498 | ||
| 
						 | 
					f3680306b2 | ||
| 
						 | 
					ea51a7c657 | ||
| 
						 | 
					95e353fdb4 | ||
| 
						 | 
					24cb1c1aab | ||
| 
						 | 
					3a060d755d | ||
| 
						 | 
					e43c8f6364 | ||
| 
						 | 
					e65bd48062 | ||
| 
						 | 
					1c5f926a70 | ||
| 
						 | 
					92f1e88e06 | ||
| 
						 | 
					5100458c1b | ||
| 
						 | 
					5150166336 | ||
| 
						 | 
					d0d9c249de | ||
| 
						 | 
					2d9ed18668 | ||
| 
						 | 
					a1af8b94fd | ||
| 
						 | 
					0539efc8df | ||
| 
						 | 
					059c729da0 | ||
| 
						 | 
					2d0e84469e | ||
| 
						 | 
					59559d5fc2 | ||
| 
						 | 
					c062be25d6 | ||
| 
						 | 
					e5cfdf9f48 | ||
| 
						 | 
					6db9f51bda | ||
| 
						 | 
					8cefd91933 | ||
| 
						 | 
					435d9ed750 | ||
| 
						 | 
					78d6ccd804 | ||
| 
						 | 
					f662864ada | 
@@ -17,6 +17,8 @@ variables:
 | 
			
		||||
check_commit_log:
 | 
			
		||||
    image: registry.gitlab.gnome.org/gnome/mutter/master:v1
 | 
			
		||||
    stage: review
 | 
			
		||||
    variables:
 | 
			
		||||
        GIT_DEPTH: "100"
 | 
			
		||||
    script:
 | 
			
		||||
        - ./.gitlab-ci/check-commit-log.sh
 | 
			
		||||
    only:
 | 
			
		||||
 
 | 
			
		||||
@@ -17,15 +17,19 @@ if [ "$CI_MERGE_REQUEST_TARGET_BRANCH_NAME" ]; then
 | 
			
		||||
  merge_request_branch=$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME
 | 
			
		||||
 | 
			
		||||
  echo Looking for $merge_request_branch on remote ...
 | 
			
		||||
  if git fetch $merge_request_remote $merge_request_branch >/dev/null 2>&1; then
 | 
			
		||||
  if git fetch -q $merge_request_remote $merge_request_branch 2>/dev/null; then
 | 
			
		||||
    mutter_target=FETCH_HEAD
 | 
			
		||||
  else
 | 
			
		||||
    mutter_target=origin/$CI_MERGE_REQUEST_TARGET_BRANCH_NAME
 | 
			
		||||
    echo Using $mutter_target instead
 | 
			
		||||
  fi
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if [ -z "$mutter_target" ]; then
 | 
			
		||||
  mutter_target=$(git branch -r -l $shell_branch)
 | 
			
		||||
  mutter_target=$(git branch -r -l origin/$shell_branch)
 | 
			
		||||
  mutter_target=${mutter_target:-$(git branch -r -l ${shell_branch#remotes/})}
 | 
			
		||||
  mutter_target=${mutter_target:-origin/master}
 | 
			
		||||
  echo Using $mutter_target instead
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
git checkout $mutter_target
 | 
			
		||||
git checkout -q $mutter_target
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										19
									
								
								NEWS
									
									
									
									
									
								
							
							
						
						
									
										19
									
								
								NEWS
									
									
									
									
									
								
							@@ -1,3 +1,22 @@
 | 
			
		||||
3.32.2
 | 
			
		||||
======
 | 
			
		||||
* Fix tablet button mapping overlay [Carlos; #1220]
 | 
			
		||||
* Fix ellipsization in dialog subtitles/bodies [Marco; !531]
 | 
			
		||||
* Don't crash for world clock locations with no timezone<Paste> [Florian; #1062]
 | 
			
		||||
* Handle network interface name changes [Fabrice; !534]
 | 
			
		||||
* Don't leak old on-screen keyboard layout groups [Carlos; mutter#556]
 | 
			
		||||
* Avoid unnecessary style changes when computing :first/:last-child
 | 
			
		||||
  [Florian; !529]
 | 
			
		||||
* Misc. bug fixes [Simon, Carlos, Florian; #822, !551, !509,
 | 
			
		||||
  !511, #1054, !506, #1065]
 | 
			
		||||
 | 
			
		||||
Contributors:
 | 
			
		||||
  Fabrice Bellet, Carlos Garnacho, Simon McVittie, Florian Müllner,
 | 
			
		||||
  Marco Trevisan (Treviño)
 | 
			
		||||
 | 
			
		||||
Translators:
 | 
			
		||||
  Dingzhong Chen [zh_CN], Tim Sabsch [de]
 | 
			
		||||
 | 
			
		||||
3.32.1
 | 
			
		||||
======
 | 
			
		||||
* Fix avatar scaling on login screen [Florian; #1024]
 | 
			
		||||
 
 | 
			
		||||
@@ -71,7 +71,7 @@ function _findProviderForMccMnc(operator_name, operator_code) {
 | 
			
		||||
// Tries to find the operator name corresponding to the given SID
 | 
			
		||||
//
 | 
			
		||||
function _findProviderForSid(sid) {
 | 
			
		||||
    if (sid == 0)
 | 
			
		||||
    if (!sid)
 | 
			
		||||
        return null;
 | 
			
		||||
 | 
			
		||||
    let mpd = _getMobileProvidersDatabase();
 | 
			
		||||
 
 | 
			
		||||
@@ -665,14 +665,6 @@ class AppIcon extends St.BoxLayout {
 | 
			
		||||
    set_size(size) {
 | 
			
		||||
        this.icon = this.app.create_icon_texture(size);
 | 
			
		||||
        this._iconBin.child = this.icon;
 | 
			
		||||
        this._iconBin.set_size(size, size);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    vfunc_get_preferred_width(forHeight) {
 | 
			
		||||
        let [minWidth, ] = super.vfunc_get_preferred_width(forHeight);
 | 
			
		||||
 | 
			
		||||
        minWidth = Math.max(minWidth, forHeight);
 | 
			
		||||
        return [minWidth, minWidth];
 | 
			
		||||
    }
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
@@ -730,11 +722,12 @@ class AppSwitcher extends SwitcherPopup.SwitcherList {
 | 
			
		||||
                j++;
 | 
			
		||||
        }
 | 
			
		||||
        let themeNode = this._items[j].get_theme_node();
 | 
			
		||||
        this._list.ensure_style();
 | 
			
		||||
 | 
			
		||||
        let iconPadding = themeNode.get_horizontal_padding();
 | 
			
		||||
        let iconBorder = themeNode.get_border_width(St.Side.LEFT) + themeNode.get_border_width(St.Side.RIGHT);
 | 
			
		||||
        let [iconMinHeight, iconNaturalHeight] = this.icons[j].label.get_preferred_height(-1);
 | 
			
		||||
        let iconSpacing = iconNaturalHeight + iconPadding + iconBorder;
 | 
			
		||||
        let [, labelNaturalHeight] = this.icons[j].label.get_preferred_height(-1);
 | 
			
		||||
        let iconSpacing = labelNaturalHeight + iconPadding + iconBorder;
 | 
			
		||||
        let totalSpacing = this._list.spacing * (this._items.length - 1);
 | 
			
		||||
 | 
			
		||||
        // We just assume the whole screen here due to weirdness happing with the passed width
 | 
			
		||||
 
 | 
			
		||||
@@ -50,6 +50,15 @@ var BoxPointer = GObject.registerClass({
 | 
			
		||||
        this._sourceAlignment = 0.5;
 | 
			
		||||
        this._capturedEventId = 0;
 | 
			
		||||
        this._muteInput();
 | 
			
		||||
 | 
			
		||||
        this.connect('destroy', this._onDestroy.bind(this));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    _onDestroy() {
 | 
			
		||||
        if (this._sourceActorDestroyId) {
 | 
			
		||||
            this._sourceActor.disconnect(this._sourceActorDestroyId);
 | 
			
		||||
            delete this._sourceActorDestroyId;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    get arrowSide() {
 | 
			
		||||
@@ -454,9 +463,26 @@ var BoxPointer = GObject.registerClass({
 | 
			
		||||
        // so that we can query the correct size.
 | 
			
		||||
        this.show();
 | 
			
		||||
 | 
			
		||||
        this._sourceActor = sourceActor;
 | 
			
		||||
        if (!this._sourceActor || sourceActor != this._sourceActor) {
 | 
			
		||||
            if (this._sourceActorDestroyId) {
 | 
			
		||||
                this._sourceActor.disconnect(this._sourceActorDestroyId);
 | 
			
		||||
                delete this._sourceActorDestroyId;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            this._sourceActor = sourceActor;
 | 
			
		||||
 | 
			
		||||
            if (this._sourceActor) {
 | 
			
		||||
                this._sourceActorDestroyId = this._sourceActor.connect('destroy', () => {
 | 
			
		||||
                    this._sourceActor = null;
 | 
			
		||||
                    delete this._sourceActorDestroyId;
 | 
			
		||||
                })
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        this._arrowAlignment = alignment;
 | 
			
		||||
 | 
			
		||||
        if (!this._sourceActor)
 | 
			
		||||
            return;
 | 
			
		||||
 | 
			
		||||
        this._reposition();
 | 
			
		||||
        this._updateFlip();
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -118,7 +118,7 @@ var WorldClocksSection = class WorldClocksSection {
 | 
			
		||||
            if (!clocks[i].location)
 | 
			
		||||
                continue;
 | 
			
		||||
            let l = world.deserialize(clocks[i].location);
 | 
			
		||||
            if (l)
 | 
			
		||||
            if (l && l.get_timezone() != null)
 | 
			
		||||
                this._locations.push({ location: l });
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -175,7 +175,7 @@ var MessageDialogContent = GObject.registerClass({
 | 
			
		||||
            this[`_${prop}`].add_style_class_name(`message-dialog-${prop}`);
 | 
			
		||||
        });
 | 
			
		||||
 | 
			
		||||
        let textProps = { ellipsize_mode: Pango.EllipsizeMode.NONE,
 | 
			
		||||
        let textProps = { ellipsize: Pango.EllipsizeMode.NONE,
 | 
			
		||||
                          line_wrap: true };
 | 
			
		||||
        Object.assign(this._subtitle.clutter_text, textProps);
 | 
			
		||||
        Object.assign(this._body.clutter_text, textProps);
 | 
			
		||||
 
 | 
			
		||||
@@ -1470,7 +1470,12 @@ var Keyboard = class Keyboard {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    _onKeyboardGroupsChanged(keyboard) {
 | 
			
		||||
        this._groups = [];
 | 
			
		||||
        let nonGroupActors = [this._emojiSelection.actor, this._keypad.actor];
 | 
			
		||||
        this._aspectContainer.get_children().filter(c => !nonGroupActors.includes(c)).forEach(c => {
 | 
			
		||||
            c.destroy();
 | 
			
		||||
        });
 | 
			
		||||
 | 
			
		||||
        this._groups = {};
 | 
			
		||||
        this._onGroupChanged();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -369,17 +369,15 @@ class DashSpacer extends St.Widget {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    vfunc_get_preferred_width(forHeight) {
 | 
			
		||||
        let box = this.get_allocation_box();
 | 
			
		||||
        let minWidth = super.vfunc_get_preferred_width(forHeight)[0];
 | 
			
		||||
        let natWidth = box.x2 - box.x1;
 | 
			
		||||
        return [minWidth, natWidth];
 | 
			
		||||
        if (this._bindConstraint)
 | 
			
		||||
            return this._bindConstraint.source.get_preferred_width(forHeight);
 | 
			
		||||
        return super.vfunc_get_preferred_width(forHeight);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    vfunc_get_preferred_height(forWidth) {
 | 
			
		||||
        let box = this.get_allocation_box();
 | 
			
		||||
        let minHeight = super.vfunc_get_preferred_height(forWidth)[0];
 | 
			
		||||
        let natHeight = box.y2 - box.y1;
 | 
			
		||||
        return [minHeight, natHeight];
 | 
			
		||||
        if (this._bindConstraint)
 | 
			
		||||
            return this._bindConstraint.source.get_preferred_height(forWidth);
 | 
			
		||||
        return super.vfunc_get_preferred_height(forWidth);
 | 
			
		||||
    }
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -374,12 +374,12 @@ var PadDiagram = GObject.registerClass({
 | 
			
		||||
        svgData += this._cssString();
 | 
			
		||||
        svgData += this._wrappingSvgFooter();
 | 
			
		||||
 | 
			
		||||
        let handle = new Rsvg.Handle();
 | 
			
		||||
        handle.set_base_uri(GLib.path_get_dirname(this._imagePath));
 | 
			
		||||
        handle.write(svgData);
 | 
			
		||||
        handle.close();
 | 
			
		||||
        let istream = new Gio.MemoryInputStream();
 | 
			
		||||
        istream.add_bytes(new GLib.Bytes(svgData));
 | 
			
		||||
 | 
			
		||||
        return handle;
 | 
			
		||||
        return Rsvg.Handle.new_from_stream_sync(istream,
 | 
			
		||||
                                                Gio.File.new_for_path(this._imagePath),
 | 
			
		||||
                                                0, null);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    _updateDiagramScale() {
 | 
			
		||||
 
 | 
			
		||||
@@ -882,7 +882,7 @@ class Panel extends St.Widget {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    vfunc_allocate(box, flags) {
 | 
			
		||||
        super.vfunc_allocate(box, flags);
 | 
			
		||||
        this.set_allocation(box, flags);
 | 
			
		||||
 | 
			
		||||
        let allocWidth = box.x2 - box.x1;
 | 
			
		||||
        let allocHeight = box.y2 - box.y1;
 | 
			
		||||
 
 | 
			
		||||
@@ -1730,14 +1730,24 @@ var NMApplet = class extends PanelMenu.SystemIndicator {
 | 
			
		||||
            this._addDeviceWrapper(wrapper);
 | 
			
		||||
 | 
			
		||||
            this._nmDevices.push(device);
 | 
			
		||||
            if (!skipSyncDeviceNames)
 | 
			
		||||
                this._syncDeviceNames();
 | 
			
		||||
            this._deviceChanged(device, skipSyncDeviceNames);
 | 
			
		||||
 | 
			
		||||
            if (wrapper instanceof NMConnectionSection) {
 | 
			
		||||
                this._connections.forEach(connection => {
 | 
			
		||||
                    wrapper.checkConnection(connection);
 | 
			
		||||
                });
 | 
			
		||||
            }
 | 
			
		||||
            device.connect('notify::interface', () => {
 | 
			
		||||
                this._deviceChanged(device, false);
 | 
			
		||||
            });
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    _deviceChanged(device, skipSyncDeviceNames) {
 | 
			
		||||
        let wrapper = device._delegate;
 | 
			
		||||
 | 
			
		||||
        if (!skipSyncDeviceNames)
 | 
			
		||||
            this._syncDeviceNames();
 | 
			
		||||
 | 
			
		||||
        if (wrapper instanceof NMConnectionSection) {
 | 
			
		||||
            this._connections.forEach(connection => {
 | 
			
		||||
                wrapper.checkConnection(connection);
 | 
			
		||||
            });
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -69,8 +69,6 @@ var Source = class WindowAttentionSource extends MessageTray.Source {
 | 
			
		||||
                                                 () => { this.destroy(); }));
 | 
			
		||||
        this.signalIDs.push(this._window.connect('unmanaged',
 | 
			
		||||
                                                 () => { this.destroy(); }));
 | 
			
		||||
 | 
			
		||||
        this.connect('destroy', this._onDestroy.bind(this));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    _sync() {
 | 
			
		||||
@@ -79,13 +77,6 @@ var Source = class WindowAttentionSource extends MessageTray.Source {
 | 
			
		||||
        this.destroy();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    _onDestroy() {
 | 
			
		||||
        for(let i = 0; i < this.signalIDs.length; i++) {
 | 
			
		||||
           this._window.disconnect(this.signalIDs[i]);
 | 
			
		||||
        }
 | 
			
		||||
        this.signalIDs = [];
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    _createPolicy() {
 | 
			
		||||
        if (this._app && this._app.get_app_info()) {
 | 
			
		||||
            let id = this._app.get_id().replace(/\.desktop$/,'');
 | 
			
		||||
@@ -99,6 +90,14 @@ var Source = class WindowAttentionSource extends MessageTray.Source {
 | 
			
		||||
        return this._app.create_icon_texture(size);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    destroy(params) {
 | 
			
		||||
        for (let i = 0; i < this.signalIDs.length; i++)
 | 
			
		||||
            this._window.disconnect(this.signalIDs[i]);
 | 
			
		||||
        this.signalIDs = [];
 | 
			
		||||
 | 
			
		||||
        super.destroy(params);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    open() {
 | 
			
		||||
        Main.activateWindow(this._window);
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -479,12 +479,12 @@ var WorkspacesDisplay = class {
 | 
			
		||||
        this.actor.connect('notify::mapped', () => {
 | 
			
		||||
            switchGesture.enabled = this.actor.mapped;
 | 
			
		||||
        });
 | 
			
		||||
        switchGesture.enabled = this.actor.mapped;
 | 
			
		||||
 | 
			
		||||
        this._primaryIndex = Main.layoutManager.primaryIndex;
 | 
			
		||||
 | 
			
		||||
        this._workspacesViews = [];
 | 
			
		||||
        this._primaryScrollAdjustment = null;
 | 
			
		||||
        switchGesture.enabled = this.actor.mapped;
 | 
			
		||||
 | 
			
		||||
        this._settings = new Gio.Settings({ schema_id: MUTTER_SCHEMA });
 | 
			
		||||
        this._settings.connect('changed::workspaces-only-on-primary',
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,5 @@
 | 
			
		||||
project('gnome-shell', 'c',
 | 
			
		||||
  version: '3.32.1',
 | 
			
		||||
  version: '3.32.2',
 | 
			
		||||
  meson_version: '>= 0.47.0',
 | 
			
		||||
  license: 'GPLv2+'
 | 
			
		||||
)
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										128
									
								
								po/de.po
									
									
									
									
									
								
							
							
						
						
									
										128
									
								
								po/de.po
									
									
									
									
									
								
							@@ -16,14 +16,14 @@
 | 
			
		||||
# Benjamin Steinwender <b@stbe.at>, 2013-2014.
 | 
			
		||||
# Bernd Homuth <dev@hmt.im>, 2014-2015, 2016, 2019.
 | 
			
		||||
# Franco Della-Monica <franco.della.monica@gmail.com>, 2016.
 | 
			
		||||
# Tim Sabsch <tim@sabsch.com>, 2018.
 | 
			
		||||
# Tim Sabsch <tim@sabsch.com>, 2018-2019.
 | 
			
		||||
#
 | 
			
		||||
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: 2019-03-02 19:56+0000\n"
 | 
			
		||||
"PO-Revision-Date: 2019-03-02 21:13+0100\n"
 | 
			
		||||
"POT-Creation-Date: 2019-05-08 10:16+0000\n"
 | 
			
		||||
"PO-Revision-Date: 2019-05-12 12:36+0200\n"
 | 
			
		||||
"Last-Translator: Tim Sabsch <tim@sabsch.com>\n"
 | 
			
		||||
"Language-Team: Deutsch <gnome-de@gnome.org>\n"
 | 
			
		||||
"Language: de\n"
 | 
			
		||||
@@ -390,11 +390,6 @@ msgstr ""
 | 
			
		||||
msgid "Network Login"
 | 
			
		||||
msgstr "Netzwerkanmeldung"
 | 
			
		||||
 | 
			
		||||
#. Translators: Do NOT translate or transliterate this text (this is an icon file name)!
 | 
			
		||||
#: data/org.gnome.Shell.PortalHelper.desktop.in.in:9
 | 
			
		||||
msgid "network-workgroup"
 | 
			
		||||
msgstr "network-workgroup"
 | 
			
		||||
 | 
			
		||||
#: js/extensionPrefs/main.js:116
 | 
			
		||||
msgid "Something’s gone wrong"
 | 
			
		||||
msgstr "Etwas ist schiefgelaufen"
 | 
			
		||||
@@ -542,7 +537,7 @@ msgstr "abmelden;verlassen"
 | 
			
		||||
#: js/misc/systemActions.js:109
 | 
			
		||||
msgctxt "search-result"
 | 
			
		||||
msgid "Suspend"
 | 
			
		||||
msgstr "In Bereitschaft versetzen"
 | 
			
		||||
msgstr "Bereitschaft"
 | 
			
		||||
 | 
			
		||||
#. Translators: A list of keywords that match the suspend action, separated by semicolons
 | 
			
		||||
#: js/misc/systemActions.js:112
 | 
			
		||||
@@ -762,12 +757,12 @@ msgstr "Zu Favoriten hinzufügen"
 | 
			
		||||
msgid "Show Details"
 | 
			
		||||
msgstr "Details anzeigen"
 | 
			
		||||
 | 
			
		||||
#: js/ui/appFavorites.js:141
 | 
			
		||||
#: js/ui/appFavorites.js:149
 | 
			
		||||
#, javascript-format
 | 
			
		||||
msgid "%s has been added to your favorites."
 | 
			
		||||
msgstr "%s wurde zu Ihren Favoriten hinzugefügt"
 | 
			
		||||
 | 
			
		||||
#: js/ui/appFavorites.js:175
 | 
			
		||||
#: js/ui/appFavorites.js:183
 | 
			
		||||
#, javascript-format
 | 
			
		||||
msgid "%s has been removed from your favorites."
 | 
			
		||||
msgstr "%s wurde aus Ihren Favoriten entfernt"
 | 
			
		||||
@@ -1053,7 +1048,7 @@ msgstr "Passwort der mobilen Breitbandverbindung"
 | 
			
		||||
msgid "A password is required to connect to “%s”."
 | 
			
		||||
msgstr "Es wird ein Passwort benötigt, um sich mit »%s« zu verbinden."
 | 
			
		||||
 | 
			
		||||
#: js/ui/components/networkAgent.js:674 js/ui/status/network.js:1665
 | 
			
		||||
#: js/ui/components/networkAgent.js:674 js/ui/status/network.js:1664
 | 
			
		||||
msgid "Network Manager"
 | 
			
		||||
msgstr "Netzwerk-Verwaltung"
 | 
			
		||||
 | 
			
		||||
@@ -1125,23 +1120,23 @@ msgstr "Weltuhren hinzufügen …"
 | 
			
		||||
msgid "World Clocks"
 | 
			
		||||
msgstr "Weltuhren"
 | 
			
		||||
 | 
			
		||||
#: js/ui/dateMenu.js:222
 | 
			
		||||
#: js/ui/dateMenu.js:228
 | 
			
		||||
msgid "Weather"
 | 
			
		||||
msgstr "Wetter"
 | 
			
		||||
 | 
			
		||||
#: js/ui/dateMenu.js:305
 | 
			
		||||
#: js/ui/dateMenu.js:311
 | 
			
		||||
msgid "Select a location…"
 | 
			
		||||
msgstr "Ort auswählen …"
 | 
			
		||||
 | 
			
		||||
#: js/ui/dateMenu.js:313
 | 
			
		||||
#: js/ui/dateMenu.js:319
 | 
			
		||||
msgid "Loading…"
 | 
			
		||||
msgstr "Wird geladen …"
 | 
			
		||||
 | 
			
		||||
#: js/ui/dateMenu.js:323
 | 
			
		||||
#: js/ui/dateMenu.js:329
 | 
			
		||||
msgid "Go online for weather information"
 | 
			
		||||
msgstr "Gehen Sie Online, um Wetterinformationen beziehen zu können"
 | 
			
		||||
 | 
			
		||||
#: js/ui/dateMenu.js:325
 | 
			
		||||
#: js/ui/dateMenu.js:331
 | 
			
		||||
msgid "Weather information is currently unavailable"
 | 
			
		||||
msgstr "Wetterinformationen sind momentan nicht verfügbar"
 | 
			
		||||
 | 
			
		||||
@@ -1304,26 +1299,26 @@ msgid "Download and install “%s” from extensions.gnome.org?"
 | 
			
		||||
msgstr "»%s« von extensions.gnome.org herunterladen und installieren?"
 | 
			
		||||
 | 
			
		||||
#. Translators: %s is an application name like "Settings"
 | 
			
		||||
#: js/ui/inhibitShortcutsDialog.js:50
 | 
			
		||||
#: js/ui/inhibitShortcutsDialog.js:78
 | 
			
		||||
#, javascript-format
 | 
			
		||||
msgid "%s wants to inhibit shortcuts"
 | 
			
		||||
msgstr "%s möchte Tastenkombinationen sperren"
 | 
			
		||||
 | 
			
		||||
#: js/ui/inhibitShortcutsDialog.js:51
 | 
			
		||||
#: js/ui/inhibitShortcutsDialog.js:79
 | 
			
		||||
msgid "Application wants to inhibit shortcuts"
 | 
			
		||||
msgstr "Die Anwendung möchte Tastenkombinationen sperren"
 | 
			
		||||
 | 
			
		||||
#. Translators: %s is a keyboard shortcut like "Super+x"
 | 
			
		||||
#: js/ui/inhibitShortcutsDialog.js:60
 | 
			
		||||
#: js/ui/inhibitShortcutsDialog.js:88
 | 
			
		||||
#, javascript-format
 | 
			
		||||
msgid "You can restore shortcuts by pressing %s."
 | 
			
		||||
msgstr "Sie können Tastenkombinationen durch Drücken von %s wiederherstellen."
 | 
			
		||||
 | 
			
		||||
#: js/ui/inhibitShortcutsDialog.js:65
 | 
			
		||||
#: js/ui/inhibitShortcutsDialog.js:93
 | 
			
		||||
msgid "Deny"
 | 
			
		||||
msgstr "Ablehnen"
 | 
			
		||||
 | 
			
		||||
#: js/ui/inhibitShortcutsDialog.js:71
 | 
			
		||||
#: js/ui/inhibitShortcutsDialog.js:100
 | 
			
		||||
msgid "Allow"
 | 
			
		||||
msgstr "Zulassen"
 | 
			
		||||
 | 
			
		||||
@@ -1376,13 +1371,13 @@ msgid "Leave On"
 | 
			
		||||
msgstr "Eingeschaltet lassen"
 | 
			
		||||
 | 
			
		||||
#: js/ui/kbdA11yDialog.js:57 js/ui/status/bluetooth.js:133
 | 
			
		||||
#: js/ui/status/network.js:1264
 | 
			
		||||
#: js/ui/status/network.js:1263
 | 
			
		||||
msgid "Turn On"
 | 
			
		||||
msgstr "Einschalten"
 | 
			
		||||
 | 
			
		||||
#: js/ui/kbdA11yDialog.js:65 js/ui/status/bluetooth.js:133
 | 
			
		||||
#: js/ui/status/network.js:128 js/ui/status/network.js:310
 | 
			
		||||
#: js/ui/status/network.js:1264 js/ui/status/network.js:1376
 | 
			
		||||
#: js/ui/status/network.js:1263 js/ui/status/network.js:1375
 | 
			
		||||
#: js/ui/status/nightLight.js:39 js/ui/status/rfkill.js:79
 | 
			
		||||
#: js/ui/status/rfkill.js:106
 | 
			
		||||
msgid "Turn Off"
 | 
			
		||||
@@ -1392,7 +1387,7 @@ msgstr "Ausschalten"
 | 
			
		||||
msgid "Leave Off"
 | 
			
		||||
msgstr "Ausgeschaltet lassen"
 | 
			
		||||
 | 
			
		||||
#: js/ui/keyboard.js:203
 | 
			
		||||
#: js/ui/keyboard.js:200
 | 
			
		||||
msgid "Region & Language Settings"
 | 
			
		||||
msgstr "Regions- und Spracheinstellungen"
 | 
			
		||||
 | 
			
		||||
@@ -1444,7 +1439,7 @@ msgstr "Quelle zeigen"
 | 
			
		||||
msgid "Web Page"
 | 
			
		||||
msgstr "Webseite"
 | 
			
		||||
 | 
			
		||||
#: js/ui/messageTray.js:1474
 | 
			
		||||
#: js/ui/messageTray.js:1480
 | 
			
		||||
msgid "System Information"
 | 
			
		||||
msgstr "Systeminformationen"
 | 
			
		||||
 | 
			
		||||
@@ -1528,11 +1523,11 @@ msgstr "Beenden"
 | 
			
		||||
 | 
			
		||||
#. Translators: If there is no suitable word for "Activities"
 | 
			
		||||
#. in your language, you can use the word for "Overview".
 | 
			
		||||
#: js/ui/panel.js:471
 | 
			
		||||
#: js/ui/panel.js:470
 | 
			
		||||
msgid "Activities"
 | 
			
		||||
msgstr "Aktivitäten"
 | 
			
		||||
 | 
			
		||||
#: js/ui/panel.js:746
 | 
			
		||||
#: js/ui/panel.js:745
 | 
			
		||||
msgctxt "System menu in the top bar"
 | 
			
		||||
msgid "System"
 | 
			
		||||
msgstr "System"
 | 
			
		||||
@@ -1541,15 +1536,6 @@ msgstr "System"
 | 
			
		||||
msgid "Top Bar"
 | 
			
		||||
msgstr "Oberes Panel"
 | 
			
		||||
 | 
			
		||||
#. Translators: this MUST be either "toggle-switch-us"
 | 
			
		||||
#. (for toggle switches containing the English words
 | 
			
		||||
#. "ON" and "OFF") or "toggle-switch-intl" (for toggle
 | 
			
		||||
#. switches containing "◯" and "|"). Other values will
 | 
			
		||||
#. simply result in invisible toggle switches.
 | 
			
		||||
#: js/ui/popupMenu.js:285
 | 
			
		||||
msgid "toggle-switch-us"
 | 
			
		||||
msgstr "toggle-switch-intl"
 | 
			
		||||
 | 
			
		||||
#: js/ui/runDialog.js:64
 | 
			
		||||
msgid "Enter a Command"
 | 
			
		||||
msgstr "Bitte geben Sie einen Befehl ein"
 | 
			
		||||
@@ -1589,7 +1575,7 @@ msgid_plural "%d new notifications"
 | 
			
		||||
msgstr[0] "%d neue Benachrichtigung"
 | 
			
		||||
msgstr[1] "%d neue Benachrichtigungen"
 | 
			
		||||
 | 
			
		||||
#: js/ui/screenShield.js:449 js/ui/status/system.js:270
 | 
			
		||||
#: js/ui/screenShield.js:449 js/ui/status/system.js:271
 | 
			
		||||
msgid "Lock"
 | 
			
		||||
msgstr "Sperren"
 | 
			
		||||
 | 
			
		||||
@@ -1604,11 +1590,11 @@ msgstr "GNOME muss den Bildschirm sperren"
 | 
			
		||||
#.
 | 
			
		||||
#. XXX: another option is to kick the user into the gdm login
 | 
			
		||||
#. screen, where we're not affected by grabs
 | 
			
		||||
#: js/ui/screenShield.js:834 js/ui/screenShield.js:1307
 | 
			
		||||
#: js/ui/screenShield.js:826 js/ui/screenShield.js:1299
 | 
			
		||||
msgid "Unable to lock"
 | 
			
		||||
msgstr "Sperrung fehlgeschlagen"
 | 
			
		||||
 | 
			
		||||
#: js/ui/screenShield.js:835 js/ui/screenShield.js:1308
 | 
			
		||||
#: js/ui/screenShield.js:827 js/ui/screenShield.js:1300
 | 
			
		||||
msgid "Lock was blocked by an application"
 | 
			
		||||
msgstr "Sperrung wurde von einer Anwendung blockiert"
 | 
			
		||||
 | 
			
		||||
@@ -1772,7 +1758,7 @@ msgid "<unknown>"
 | 
			
		||||
msgstr "<Unbekannt>"
 | 
			
		||||
 | 
			
		||||
#. Translators: %s is a network identifier
 | 
			
		||||
#: js/ui/status/network.js:416 js/ui/status/network.js:1293
 | 
			
		||||
#: js/ui/status/network.js:416 js/ui/status/network.js:1292
 | 
			
		||||
#, javascript-format
 | 
			
		||||
msgid "%s Off"
 | 
			
		||||
msgstr "%s ausgeschaltet"
 | 
			
		||||
@@ -1798,7 +1784,7 @@ msgid "%s Disconnecting"
 | 
			
		||||
msgstr "%s wird getrennt"
 | 
			
		||||
 | 
			
		||||
#. Translators: %s is a network identifier
 | 
			
		||||
#: js/ui/status/network.js:434 js/ui/status/network.js:1285
 | 
			
		||||
#: js/ui/status/network.js:434 js/ui/status/network.js:1284
 | 
			
		||||
#, javascript-format
 | 
			
		||||
msgid "%s Connecting"
 | 
			
		||||
msgstr "%s wird verbunden"
 | 
			
		||||
@@ -1838,7 +1824,7 @@ msgid "Mobile Broadband Settings"
 | 
			
		||||
msgstr "Einstellungen der mobilen Breitbandverbindung"
 | 
			
		||||
 | 
			
		||||
#. Translators: %s is a network identifier
 | 
			
		||||
#: js/ui/status/network.js:553 js/ui/status/network.js:1290
 | 
			
		||||
#: js/ui/status/network.js:553 js/ui/status/network.js:1289
 | 
			
		||||
#, javascript-format
 | 
			
		||||
msgid "%s Hardware Disabled"
 | 
			
		||||
msgstr "%s-Hardware ausgeschaltet"
 | 
			
		||||
@@ -1910,72 +1896,72 @@ msgid "Wi-Fi Settings"
 | 
			
		||||
msgstr "Drahtlosnetzwerk-Einstellungen"
 | 
			
		||||
 | 
			
		||||
#. Translators: %s is a network identifier
 | 
			
		||||
#: js/ui/status/network.js:1281
 | 
			
		||||
#: js/ui/status/network.js:1280
 | 
			
		||||
#, javascript-format
 | 
			
		||||
msgid "%s Hotspot Active"
 | 
			
		||||
msgstr "Hotspot %s eingeschaltet"
 | 
			
		||||
 | 
			
		||||
#. Translators: %s is a network identifier
 | 
			
		||||
#: js/ui/status/network.js:1296
 | 
			
		||||
#: js/ui/status/network.js:1295
 | 
			
		||||
#, javascript-format
 | 
			
		||||
msgid "%s Not Connected"
 | 
			
		||||
msgstr "%s nicht verbunden"
 | 
			
		||||
 | 
			
		||||
#: js/ui/status/network.js:1393
 | 
			
		||||
#: js/ui/status/network.js:1392
 | 
			
		||||
msgid "connecting…"
 | 
			
		||||
msgstr "Verbindungsaufbau …"
 | 
			
		||||
 | 
			
		||||
#. Translators: this is for network connections that require some kind of key or password
 | 
			
		||||
#: js/ui/status/network.js:1396
 | 
			
		||||
#: js/ui/status/network.js:1395
 | 
			
		||||
msgid "authentication required"
 | 
			
		||||
msgstr "Anmeldung erforderlich"
 | 
			
		||||
 | 
			
		||||
#: js/ui/status/network.js:1398
 | 
			
		||||
#: js/ui/status/network.js:1397
 | 
			
		||||
msgid "connection failed"
 | 
			
		||||
msgstr "Verbindung gescheitert"
 | 
			
		||||
 | 
			
		||||
#: js/ui/status/network.js:1448
 | 
			
		||||
#: js/ui/status/network.js:1447
 | 
			
		||||
msgid "VPN Settings"
 | 
			
		||||
msgstr "VPN-Einstellungen"
 | 
			
		||||
 | 
			
		||||
#: js/ui/status/network.js:1465
 | 
			
		||||
#: js/ui/status/network.js:1464
 | 
			
		||||
msgid "VPN"
 | 
			
		||||
msgstr "VPN"
 | 
			
		||||
 | 
			
		||||
#: js/ui/status/network.js:1475
 | 
			
		||||
#: js/ui/status/network.js:1474
 | 
			
		||||
msgid "VPN Off"
 | 
			
		||||
msgstr "VPN ausgeschaltet"
 | 
			
		||||
 | 
			
		||||
#: js/ui/status/network.js:1536 js/ui/status/rfkill.js:82
 | 
			
		||||
#: js/ui/status/network.js:1535 js/ui/status/rfkill.js:82
 | 
			
		||||
msgid "Network Settings"
 | 
			
		||||
msgstr "Netzwerkeinstellungen"
 | 
			
		||||
 | 
			
		||||
#: js/ui/status/network.js:1565
 | 
			
		||||
#: js/ui/status/network.js:1564
 | 
			
		||||
#, javascript-format
 | 
			
		||||
msgid "%s Wired Connection"
 | 
			
		||||
msgid_plural "%s Wired Connections"
 | 
			
		||||
msgstr[0] "%s Kabelverbindung"
 | 
			
		||||
msgstr[1] "%s Kabelverbindungen"
 | 
			
		||||
 | 
			
		||||
#: js/ui/status/network.js:1569
 | 
			
		||||
#: js/ui/status/network.js:1568
 | 
			
		||||
#, javascript-format
 | 
			
		||||
msgid "%s Wi-Fi Connection"
 | 
			
		||||
msgid_plural "%s Wi-Fi Connections"
 | 
			
		||||
msgstr[0] "%s Funknetzwerkverbindung"
 | 
			
		||||
msgstr[1] "%s Funknetzwerkverbindungen"
 | 
			
		||||
 | 
			
		||||
#: js/ui/status/network.js:1573
 | 
			
		||||
#: js/ui/status/network.js:1572
 | 
			
		||||
#, javascript-format
 | 
			
		||||
msgid "%s Modem Connection"
 | 
			
		||||
msgid_plural "%s Modem Connections"
 | 
			
		||||
msgstr[0] "%s Modem-Verbindung"
 | 
			
		||||
msgstr[1] "%s Modem-Verbindungen"
 | 
			
		||||
 | 
			
		||||
#: js/ui/status/network.js:1702
 | 
			
		||||
#: js/ui/status/network.js:1705
 | 
			
		||||
msgid "Connection failed"
 | 
			
		||||
msgstr "Verbindung gescheitert"
 | 
			
		||||
 | 
			
		||||
#: js/ui/status/network.js:1703
 | 
			
		||||
#: js/ui/status/network.js:1706
 | 
			
		||||
msgid "Activation of network connection failed"
 | 
			
		||||
msgstr "Aktivierung der Netzwerkverbindung ist gescheitert"
 | 
			
		||||
 | 
			
		||||
@@ -2057,15 +2043,15 @@ msgstr "Abmelden"
 | 
			
		||||
msgid "Account Settings"
 | 
			
		||||
msgstr "Kontoeinstellungen"
 | 
			
		||||
 | 
			
		||||
#: js/ui/status/system.js:255
 | 
			
		||||
#: js/ui/status/system.js:256
 | 
			
		||||
msgid "Orientation Lock"
 | 
			
		||||
msgstr "Hoch-/Querformats-Fixierung"
 | 
			
		||||
 | 
			
		||||
#: js/ui/status/system.js:281
 | 
			
		||||
#: js/ui/status/system.js:282
 | 
			
		||||
msgid "Suspend"
 | 
			
		||||
msgstr "In Bereitschaft versetzen"
 | 
			
		||||
msgstr "Bereitschaft"
 | 
			
		||||
 | 
			
		||||
#: js/ui/status/system.js:291
 | 
			
		||||
#: js/ui/status/system.js:292
 | 
			
		||||
msgid "Power Off"
 | 
			
		||||
msgstr "Ausschalten"
 | 
			
		||||
 | 
			
		||||
@@ -2183,7 +2169,7 @@ 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:662
 | 
			
		||||
#: js/ui/windowManager.js:677
 | 
			
		||||
#, javascript-format
 | 
			
		||||
msgid "%d × %d"
 | 
			
		||||
msgstr "%d × %d"
 | 
			
		||||
@@ -2256,11 +2242,6 @@ msgstr "Auf den Bildschirm nach rechts verschieben"
 | 
			
		||||
msgid "Evolution Calendar"
 | 
			
		||||
msgstr "Evolution-Kalender"
 | 
			
		||||
 | 
			
		||||
#. Translators: Do NOT translate or transliterate this text (this is an icon file name)!
 | 
			
		||||
#: src/calendar-server/evolution-calendar.desktop.in:6
 | 
			
		||||
msgid "evolution"
 | 
			
		||||
msgstr "evolution"
 | 
			
		||||
 | 
			
		||||
#: src/main.c:408
 | 
			
		||||
msgid "Print version"
 | 
			
		||||
msgstr "Version ausgeben"
 | 
			
		||||
@@ -2279,12 +2260,12 @@ msgstr ""
 | 
			
		||||
msgid "List possible modes"
 | 
			
		||||
msgstr "Die möglichen Modi auflisten"
 | 
			
		||||
 | 
			
		||||
#: src/shell-app.c:260
 | 
			
		||||
#: src/shell-app.c:264
 | 
			
		||||
msgctxt "program"
 | 
			
		||||
msgid "Unknown"
 | 
			
		||||
msgstr "Unbekannt"
 | 
			
		||||
 | 
			
		||||
#: src/shell-app.c:511
 | 
			
		||||
#: src/shell-app.c:515
 | 
			
		||||
#, c-format
 | 
			
		||||
msgid "Failed to launch “%s”"
 | 
			
		||||
msgstr "»%s« konnte nicht gestartet werden"
 | 
			
		||||
@@ -2323,6 +2304,15 @@ msgstr[1] "%u Eingänge"
 | 
			
		||||
msgid "System Sounds"
 | 
			
		||||
msgstr "Systemklänge"
 | 
			
		||||
 | 
			
		||||
#~ msgid "network-workgroup"
 | 
			
		||||
#~ msgstr "network-workgroup"
 | 
			
		||||
 | 
			
		||||
#~ msgid "toggle-switch-us"
 | 
			
		||||
#~ msgstr "toggle-switch-intl"
 | 
			
		||||
 | 
			
		||||
#~ msgid "evolution"
 | 
			
		||||
#~ msgstr "evolution"
 | 
			
		||||
 | 
			
		||||
#~ msgid "There was an error loading the preferences dialog for %s:"
 | 
			
		||||
#~ msgstr ""
 | 
			
		||||
#~ "Beim Laden des Einstellungsdialogs für %s ist ein Fehler aufgetreten:"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										56
									
								
								po/es.po
									
									
									
									
									
								
							
							
						
						
									
										56
									
								
								po/es.po
									
									
									
									
									
								
							@@ -9,16 +9,16 @@ 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: 2019-03-24 17:37+0000\n"
 | 
			
		||||
"PO-Revision-Date: 2019-02-06 11:27+0100\n"
 | 
			
		||||
"POT-Creation-Date: 2019-07-17 14:17+0000\n"
 | 
			
		||||
"PO-Revision-Date: 2019-07-24 09:53+0200\n"
 | 
			
		||||
"Last-Translator: Daniel Mustieles <daniel.mustieles@gmail.com>\n"
 | 
			
		||||
"Language-Team: es <gnome-es-list@gnome.org>\n"
 | 
			
		||||
"Language: es\n"
 | 
			
		||||
"Language-Team: Spanish - Spain <gnome-es-list@gnome.org>\n"
 | 
			
		||||
"Language: es_ES\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 3.31.90\n"
 | 
			
		||||
"X-Generator: Gtranslator 3.32.1\n"
 | 
			
		||||
 | 
			
		||||
#: data/50-gnome-shell-system.xml:6
 | 
			
		||||
msgid "System"
 | 
			
		||||
@@ -748,12 +748,12 @@ msgstr "Añadir a los favoritos"
 | 
			
		||||
msgid "Show Details"
 | 
			
		||||
msgstr "Mostrar detalles"
 | 
			
		||||
 | 
			
		||||
#: js/ui/appFavorites.js:141
 | 
			
		||||
#: js/ui/appFavorites.js:149
 | 
			
		||||
#, javascript-format
 | 
			
		||||
msgid "%s has been added to your favorites."
 | 
			
		||||
msgstr "Se ha añadido %s a sus favoritos."
 | 
			
		||||
 | 
			
		||||
#: js/ui/appFavorites.js:175
 | 
			
		||||
#: js/ui/appFavorites.js:183
 | 
			
		||||
#, javascript-format
 | 
			
		||||
msgid "%s has been removed from your favorites."
 | 
			
		||||
msgstr "Se ha quitado %s de sus favoritos."
 | 
			
		||||
@@ -1108,23 +1108,23 @@ msgstr "Añadir relojes del mundo…"
 | 
			
		||||
msgid "World Clocks"
 | 
			
		||||
msgstr "Relojes del mundo"
 | 
			
		||||
 | 
			
		||||
#: js/ui/dateMenu.js:222
 | 
			
		||||
#: js/ui/dateMenu.js:228
 | 
			
		||||
msgid "Weather"
 | 
			
		||||
msgstr "Meteorología"
 | 
			
		||||
 | 
			
		||||
#: js/ui/dateMenu.js:305
 | 
			
		||||
#: js/ui/dateMenu.js:311
 | 
			
		||||
msgid "Select a location…"
 | 
			
		||||
msgstr "Seleccionar ubicación…"
 | 
			
		||||
 | 
			
		||||
#: js/ui/dateMenu.js:313
 | 
			
		||||
#: js/ui/dateMenu.js:319
 | 
			
		||||
msgid "Loading…"
 | 
			
		||||
msgstr "Cargando…"
 | 
			
		||||
 | 
			
		||||
#: js/ui/dateMenu.js:323
 | 
			
		||||
#: js/ui/dateMenu.js:329
 | 
			
		||||
msgid "Go online for weather information"
 | 
			
		||||
msgstr "Conectarse para obtener la información meteorológica"
 | 
			
		||||
 | 
			
		||||
#: js/ui/dateMenu.js:325
 | 
			
		||||
#: js/ui/dateMenu.js:331
 | 
			
		||||
msgid "Weather information is currently unavailable"
 | 
			
		||||
msgstr "La información meteorológica no está disponible actualmente."
 | 
			
		||||
 | 
			
		||||
@@ -1361,7 +1361,7 @@ msgstr "Dejar activada"
 | 
			
		||||
#: js/ui/kbdA11yDialog.js:57 js/ui/status/bluetooth.js:133
 | 
			
		||||
#: js/ui/status/network.js:1263
 | 
			
		||||
msgid "Turn On"
 | 
			
		||||
msgstr "Encender"
 | 
			
		||||
msgstr "Encendido"
 | 
			
		||||
 | 
			
		||||
#: js/ui/kbdA11yDialog.js:65 js/ui/status/bluetooth.js:133
 | 
			
		||||
#: js/ui/status/network.js:128 js/ui/status/network.js:310
 | 
			
		||||
@@ -1373,7 +1373,7 @@ msgstr "Apagar"
 | 
			
		||||
 | 
			
		||||
#: js/ui/kbdA11yDialog.js:65
 | 
			
		||||
msgid "Leave Off"
 | 
			
		||||
msgstr "Dejar desactivada"
 | 
			
		||||
msgstr "Dejar desactivado"
 | 
			
		||||
 | 
			
		||||
#: js/ui/keyboard.js:200
 | 
			
		||||
msgid "Region & Language Settings"
 | 
			
		||||
@@ -1511,28 +1511,19 @@ msgstr "Salir"
 | 
			
		||||
 | 
			
		||||
#. Translators: If there is no suitable word for "Activities"
 | 
			
		||||
#. in your language, you can use the word for "Overview".
 | 
			
		||||
#: js/ui/panel.js:471
 | 
			
		||||
#: js/ui/panel.js:470
 | 
			
		||||
msgid "Activities"
 | 
			
		||||
msgstr "Actividades"
 | 
			
		||||
 | 
			
		||||
#: js/ui/panel.js:746
 | 
			
		||||
#: js/ui/panel.js:745
 | 
			
		||||
msgctxt "System menu in the top bar"
 | 
			
		||||
msgid "System"
 | 
			
		||||
msgstr "Sistema"
 | 
			
		||||
 | 
			
		||||
#: js/ui/panel.js:867
 | 
			
		||||
#: js/ui/panel.js:866
 | 
			
		||||
msgid "Top Bar"
 | 
			
		||||
msgstr "Barra superior"
 | 
			
		||||
 | 
			
		||||
#. Translators: this MUST be either "toggle-switch-us"
 | 
			
		||||
#. (for toggle switches containing the English words
 | 
			
		||||
#. "ON" and "OFF") or "toggle-switch-intl" (for toggle
 | 
			
		||||
#. switches containing "◯" and "|"). Other values will
 | 
			
		||||
#. simply result in invisible toggle switches.
 | 
			
		||||
#: js/ui/popupMenu.js:285
 | 
			
		||||
msgid "toggle-switch-us"
 | 
			
		||||
msgstr "toggle-switch-intl"
 | 
			
		||||
 | 
			
		||||
#: js/ui/runDialog.js:64
 | 
			
		||||
msgid "Enter a Command"
 | 
			
		||||
msgstr "Introducir un comando"
 | 
			
		||||
@@ -1944,11 +1935,11 @@ msgid_plural "%s Modem Connections"
 | 
			
		||||
msgstr[0] "%s conexión por módem"
 | 
			
		||||
msgstr[1] "%s conexiones por módem"
 | 
			
		||||
 | 
			
		||||
#: js/ui/status/network.js:1701
 | 
			
		||||
#: js/ui/status/network.js:1705
 | 
			
		||||
msgid "Connection failed"
 | 
			
		||||
msgstr "Falló la conexión"
 | 
			
		||||
 | 
			
		||||
#: js/ui/status/network.js:1702
 | 
			
		||||
#: js/ui/status/network.js:1706
 | 
			
		||||
msgid "Activation of network connection failed"
 | 
			
		||||
msgstr "Falló la activación de la conexión de red"
 | 
			
		||||
 | 
			
		||||
@@ -2154,7 +2145,7 @@ msgstr[1] "La configuración se revertirá en %d segundos"
 | 
			
		||||
 | 
			
		||||
#. 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:662
 | 
			
		||||
#: js/ui/windowManager.js:677
 | 
			
		||||
#, javascript-format
 | 
			
		||||
msgid "%d × %d"
 | 
			
		||||
msgstr "%d × %d"
 | 
			
		||||
@@ -2255,11 +2246,11 @@ msgstr "Desconocido"
 | 
			
		||||
msgid "Failed to launch “%s”"
 | 
			
		||||
msgstr "Falló al lanzar «%s»"
 | 
			
		||||
 | 
			
		||||
#: src/shell-keyring-prompt.c:730
 | 
			
		||||
#: src/shell-keyring-prompt.c:731
 | 
			
		||||
msgid "Passwords do not match."
 | 
			
		||||
msgstr "Las contraseñas no coinciden."
 | 
			
		||||
 | 
			
		||||
#: src/shell-keyring-prompt.c:738
 | 
			
		||||
#: src/shell-keyring-prompt.c:739
 | 
			
		||||
msgid "Password cannot be blank"
 | 
			
		||||
msgstr "La contraseña no puede estar vacía"
 | 
			
		||||
 | 
			
		||||
@@ -2289,6 +2280,9 @@ msgstr[1] "%u entradas"
 | 
			
		||||
msgid "System Sounds"
 | 
			
		||||
msgstr "Sonidos del sistema"
 | 
			
		||||
 | 
			
		||||
#~ msgid "toggle-switch-us"
 | 
			
		||||
#~ msgstr "toggle-switch-intl"
 | 
			
		||||
 | 
			
		||||
#~ msgid "network-workgroup"
 | 
			
		||||
#~ msgstr "network-workgroup"
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										1083
									
								
								po/zh_CN.po
									
									
									
									
									
								
							
							
						
						
									
										1083
									
								
								po/zh_CN.po
									
									
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@@ -1069,9 +1069,9 @@ _shell_app_add_window (ShellApp        *app,
 | 
			
		||||
 | 
			
		||||
  app->running_state->window_sort_stale = TRUE;
 | 
			
		||||
  app->running_state->windows = g_slist_prepend (app->running_state->windows, g_object_ref (window));
 | 
			
		||||
  g_signal_connect (window, "unmanaged", G_CALLBACK(shell_app_on_unmanaged), app);
 | 
			
		||||
  g_signal_connect (window, "notify::user-time", G_CALLBACK(shell_app_on_user_time_changed), app);
 | 
			
		||||
  g_signal_connect (window, "notify::skip-taskbar", G_CALLBACK(shell_app_on_skip_taskbar_changed), app);
 | 
			
		||||
  g_signal_connect_object (window, "unmanaged", G_CALLBACK(shell_app_on_unmanaged), app, 0);
 | 
			
		||||
  g_signal_connect_object (window, "notify::user-time", G_CALLBACK(shell_app_on_user_time_changed), app, 0);
 | 
			
		||||
  g_signal_connect_object (window, "notify::skip-taskbar", G_CALLBACK(shell_app_on_skip_taskbar_changed), app, 0);
 | 
			
		||||
 | 
			
		||||
  shell_app_update_app_actions (app, window);
 | 
			
		||||
  shell_app_ensure_busy_watch (app);
 | 
			
		||||
 
 | 
			
		||||
@@ -1560,7 +1560,8 @@ delete_variant_cb (GObject      *object,
 | 
			
		||||
 | 
			
		||||
  if (!g_file_delete_finish (G_FILE (object), result, &error))
 | 
			
		||||
    {
 | 
			
		||||
      if (!g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED))
 | 
			
		||||
      if (!g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED) &&
 | 
			
		||||
          !g_error_matches (error, G_IO_ERROR, G_IO_ERROR_NOT_FOUND))
 | 
			
		||||
        {
 | 
			
		||||
          g_warning ("Could not delete runtime/persistent state file: %s\n",
 | 
			
		||||
                     error->message);
 | 
			
		||||
 
 | 
			
		||||
@@ -115,7 +115,8 @@ remove_mnemonics (const GValue *value)
 | 
			
		||||
  g_return_val_if_fail (G_VALUE_HOLDS_STRING (value), NULL);
 | 
			
		||||
 | 
			
		||||
  label = g_value_get_string (value);
 | 
			
		||||
  g_return_val_if_fail (label != NULL, NULL);
 | 
			
		||||
  if (!label)
 | 
			
		||||
    return NULL;
 | 
			
		||||
 | 
			
		||||
  /* Stripped label will have the original label lenght at most */
 | 
			
		||||
  stripped_label = temp = g_new (gchar, strlen(label) + 1);
 | 
			
		||||
 
 | 
			
		||||
@@ -465,7 +465,7 @@ recorder_record_frame (ShellRecorder *recorder,
 | 
			
		||||
 | 
			
		||||
      g_object_get (settings, "magnifier-active", &magnifier_active, NULL);
 | 
			
		||||
 | 
			
		||||
      if (magnifier_active)
 | 
			
		||||
      if (!magnifier_active)
 | 
			
		||||
        recorder_draw_cursor (recorder, buffer);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -535,12 +535,17 @@ track_window (ShellWindowTracker *self,
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
shell_window_tracker_on_window_added (MetaWorkspace   *workspace,
 | 
			
		||||
                                   MetaWindow      *window,
 | 
			
		||||
                                   gpointer         user_data)
 | 
			
		||||
                                      MetaWindow      *window,
 | 
			
		||||
                                      gpointer         user_data)
 | 
			
		||||
{
 | 
			
		||||
  ShellWindowTracker *self = SHELL_WINDOW_TRACKER (user_data);
 | 
			
		||||
  MetaWindowType window_type = meta_window_get_window_type (window);
 | 
			
		||||
 | 
			
		||||
  track_window (self, window);
 | 
			
		||||
  if (window_type == META_WINDOW_NORMAL ||
 | 
			
		||||
      window_type == META_WINDOW_DIALOG ||
 | 
			
		||||
      window_type == META_WINDOW_UTILITY ||
 | 
			
		||||
      window_type == META_WINDOW_MODAL_DIALOG)
 | 
			
		||||
    track_window (self, window);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
 
 | 
			
		||||
@@ -496,15 +496,31 @@ pixbuf_to_st_content_image (GdkPixbuf *pixbuf,
 | 
			
		||||
  ClutterContent *image;
 | 
			
		||||
  g_autoptr(GError) error = NULL;
 | 
			
		||||
 | 
			
		||||
  if (width < 0)
 | 
			
		||||
    width = ceilf (gdk_pixbuf_get_width (pixbuf) / resource_scale);
 | 
			
		||||
  else
 | 
			
		||||
    width *= paint_scale;
 | 
			
		||||
  float native_width, native_height;
 | 
			
		||||
 | 
			
		||||
  if (height < 0)
 | 
			
		||||
    height = ceilf (gdk_pixbuf_get_height (pixbuf) / resource_scale);
 | 
			
		||||
  native_width = ceilf (gdk_pixbuf_get_width (pixbuf) / resource_scale);
 | 
			
		||||
  native_height = ceilf (gdk_pixbuf_get_height (pixbuf) / resource_scale);
 | 
			
		||||
 | 
			
		||||
  if (width < 0 && height < 0)
 | 
			
		||||
    {
 | 
			
		||||
      width = native_width;
 | 
			
		||||
      height = native_height;
 | 
			
		||||
    }
 | 
			
		||||
  else if (width < 0)
 | 
			
		||||
    {
 | 
			
		||||
      height *= paint_scale;
 | 
			
		||||
      width = native_width * (height / native_height);
 | 
			
		||||
    }
 | 
			
		||||
  else if (height < 0)
 | 
			
		||||
    {
 | 
			
		||||
      width *= paint_scale;
 | 
			
		||||
      height = native_height * (width / native_width);
 | 
			
		||||
    }
 | 
			
		||||
  else
 | 
			
		||||
    height *= paint_scale;
 | 
			
		||||
    {
 | 
			
		||||
      width *= paint_scale;
 | 
			
		||||
      height *= paint_scale;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  image = st_image_content_new_with_preferred_size (width, height);
 | 
			
		||||
  clutter_image_set_data (CLUTTER_IMAGE (image),
 | 
			
		||||
 
 | 
			
		||||
@@ -65,6 +65,8 @@ struct _StWidgetPrivate
 | 
			
		||||
  StThemeNodeTransition *transition_animation;
 | 
			
		||||
 | 
			
		||||
  guint is_style_dirty : 1;
 | 
			
		||||
  guint first_child_dirty : 1;
 | 
			
		||||
  guint last_child_dirty : 1;
 | 
			
		||||
  guint draw_bg_color : 1;
 | 
			
		||||
  guint draw_border_internal : 1;
 | 
			
		||||
  guint track_hover : 1;
 | 
			
		||||
@@ -72,6 +74,7 @@ struct _StWidgetPrivate
 | 
			
		||||
  guint can_focus : 1;
 | 
			
		||||
 | 
			
		||||
  gulong texture_file_changed_id;
 | 
			
		||||
  guint update_child_styles_id;
 | 
			
		||||
 | 
			
		||||
  AtkObject *accessible;
 | 
			
		||||
  AtkRole accessible_role;
 | 
			
		||||
@@ -323,6 +326,8 @@ st_widget_dispose (GObject *gobject)
 | 
			
		||||
  g_clear_object (&priv->last_visible_child);
 | 
			
		||||
 | 
			
		||||
  G_OBJECT_CLASS (st_widget_parent_class)->dispose (gobject);
 | 
			
		||||
 | 
			
		||||
  g_clear_handle_id (&priv->update_child_styles_id, g_source_remove);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
@@ -1608,47 +1613,85 @@ find_nearest_visible_forward (ClutterActor *actor)
 | 
			
		||||
  return next;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static gboolean
 | 
			
		||||
st_widget_update_child_styles (StWidget *widget)
 | 
			
		||||
{
 | 
			
		||||
  StWidgetPrivate *priv = st_widget_get_instance_private (widget);
 | 
			
		||||
 | 
			
		||||
  if (priv->first_child_dirty)
 | 
			
		||||
    {
 | 
			
		||||
      ClutterActor *first_child;
 | 
			
		||||
 | 
			
		||||
      priv->first_child_dirty = FALSE;
 | 
			
		||||
 | 
			
		||||
      first_child = clutter_actor_get_first_child (CLUTTER_ACTOR (widget));
 | 
			
		||||
      st_widget_set_first_visible_child (widget,
 | 
			
		||||
                                         find_nearest_visible_forward (first_child));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  if (priv->last_child_dirty)
 | 
			
		||||
    {
 | 
			
		||||
      ClutterActor *last_child;
 | 
			
		||||
 | 
			
		||||
      priv->last_child_dirty = FALSE;
 | 
			
		||||
 | 
			
		||||
      last_child = clutter_actor_get_last_child (CLUTTER_ACTOR (widget));
 | 
			
		||||
      st_widget_set_last_visible_child (widget,
 | 
			
		||||
                                        find_nearest_visible_backwards (last_child));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  priv->update_child_styles_id = 0;
 | 
			
		||||
  return G_SOURCE_REMOVE;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
st_widget_queue_child_styles_update (StWidget *widget)
 | 
			
		||||
{
 | 
			
		||||
  StWidgetPrivate *priv = st_widget_get_instance_private (widget);
 | 
			
		||||
 | 
			
		||||
  if (priv->update_child_styles_id != 0)
 | 
			
		||||
    return;
 | 
			
		||||
 | 
			
		||||
  priv->update_child_styles_id = g_idle_add ((GSourceFunc) st_widget_update_child_styles, widget);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
st_widget_visible_notify (StWidget   *widget,
 | 
			
		||||
                          GParamSpec *pspec,
 | 
			
		||||
                          gpointer    data)
 | 
			
		||||
{
 | 
			
		||||
  StWidgetPrivate *parent_priv;
 | 
			
		||||
  ClutterActor *actor = CLUTTER_ACTOR (widget);
 | 
			
		||||
  ClutterActor *parent = clutter_actor_get_parent (actor);
 | 
			
		||||
 | 
			
		||||
  if (parent == NULL || !ST_IS_WIDGET (parent))
 | 
			
		||||
    return;
 | 
			
		||||
 | 
			
		||||
  parent_priv = st_widget_get_instance_private (ST_WIDGET (parent));
 | 
			
		||||
 | 
			
		||||
  if (clutter_actor_is_visible (actor))
 | 
			
		||||
    {
 | 
			
		||||
      ClutterActor *before, *after;
 | 
			
		||||
 | 
			
		||||
      before = clutter_actor_get_previous_sibling (actor);
 | 
			
		||||
      if (find_nearest_visible_backwards (before) == NULL)
 | 
			
		||||
        st_widget_set_first_visible_child (ST_WIDGET (parent), actor);
 | 
			
		||||
        parent_priv->first_child_dirty = TRUE;
 | 
			
		||||
 | 
			
		||||
      after = clutter_actor_get_next_sibling (actor);
 | 
			
		||||
      if (find_nearest_visible_forward (after) == NULL)
 | 
			
		||||
        st_widget_set_last_visible_child (ST_WIDGET (parent), actor);
 | 
			
		||||
        parent_priv->last_child_dirty = TRUE;
 | 
			
		||||
    }
 | 
			
		||||
  else
 | 
			
		||||
    {
 | 
			
		||||
      if (st_widget_has_style_pseudo_class (widget, "first-child"))
 | 
			
		||||
        {
 | 
			
		||||
          ClutterActor *new_first;
 | 
			
		||||
 | 
			
		||||
          new_first = find_nearest_visible_forward (CLUTTER_ACTOR (widget));
 | 
			
		||||
          st_widget_set_first_visible_child (ST_WIDGET (parent), new_first);
 | 
			
		||||
        }
 | 
			
		||||
        parent_priv->first_child_dirty = TRUE;
 | 
			
		||||
 | 
			
		||||
      if (st_widget_has_style_pseudo_class (widget, "last-child"))
 | 
			
		||||
        {
 | 
			
		||||
          ClutterActor *new_last;
 | 
			
		||||
 | 
			
		||||
          new_last = find_nearest_visible_backwards (CLUTTER_ACTOR (widget));
 | 
			
		||||
          st_widget_set_last_visible_child (ST_WIDGET (parent), new_last);
 | 
			
		||||
        }
 | 
			
		||||
        parent_priv->last_child_dirty = TRUE;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  if (parent_priv->first_child_dirty || parent_priv->last_child_dirty)
 | 
			
		||||
    st_widget_queue_child_styles_update (ST_WIDGET (parent));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
@@ -1656,10 +1699,10 @@ st_widget_first_child_notify (StWidget   *widget,
 | 
			
		||||
                              GParamSpec *pspec,
 | 
			
		||||
                              gpointer    data)
 | 
			
		||||
{
 | 
			
		||||
  ClutterActor *first_child;
 | 
			
		||||
  StWidgetPrivate *priv = st_widget_get_instance_private (widget);
 | 
			
		||||
 | 
			
		||||
  first_child = clutter_actor_get_first_child (CLUTTER_ACTOR (widget));
 | 
			
		||||
  st_widget_set_first_visible_child (widget, find_nearest_visible_forward (first_child));
 | 
			
		||||
  priv->first_child_dirty = TRUE;
 | 
			
		||||
  st_widget_queue_child_styles_update (widget);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
@@ -1667,10 +1710,10 @@ st_widget_last_child_notify (StWidget   *widget,
 | 
			
		||||
                             GParamSpec *pspec,
 | 
			
		||||
                             gpointer    data)
 | 
			
		||||
{
 | 
			
		||||
  ClutterActor *last_child;
 | 
			
		||||
  StWidgetPrivate *priv = st_widget_get_instance_private (widget);
 | 
			
		||||
 | 
			
		||||
  last_child = clutter_actor_get_last_child (CLUTTER_ACTOR (widget));
 | 
			
		||||
  st_widget_set_last_visible_child (widget, find_nearest_visible_backwards (last_child));
 | 
			
		||||
  priv->last_child_dirty = TRUE;
 | 
			
		||||
  st_widget_queue_child_styles_update (widget);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user