Compare commits

..

3 Commits

Author SHA1 Message Date
Jeremy Bicha
fe20c27b60 New upstream version 3.28.0 2018-03-15 21:28:20 -04:00
Jeremy Bicha
5ba59d1096 New upstream version 3.27.92 2018-03-05 20:55:43 -05:00
Jeremy Bicha
0ad1e9bbc1 New upstream version 3.27.91 2018-02-23 19:30:14 -05:00
17 changed files with 153 additions and 218 deletions

24
NEWS
View File

@@ -1,27 +1,3 @@
3.29.3
======
* Adjust to global.screen removal [Jonas; #759538]
Contributors:
Jonas Ådahl, Florian Müllner
3.29.2
======
* Misc. bug fixes [Florian; #69]
Contributors:
Florian Müllner
3.28.1
======
* Misc. bug fixes [Xiaoguang, Florian; #59, #62]
Contributors:
Florian Müllner, Xiaoguang Wang
Translators:
Dz Chen [zh_CN]
3.28.0
======

View File

@@ -0,0 +1,6 @@
--- Generating the css file ---
You need sass to generate the css file.
To generate them run from a command line in the project directory:
sass --sourcemap=none --update ./

View File

@@ -0,0 +1,7 @@
GNOME Shell Sass is a project intended to allow the sharing of the theme sources in sass between gnome-shell and other projects like gnome-shell-extensions.
License
=======
GNOME Shell Sass is distributed under the terms of the GNU General Public License,
version 2 or later. See the COPYING file for details.

View File

@@ -1,16 +0,0 @@
# GNOME Shell Sass
GNOME Shell Sass is a project intended to allow the sharing of the
theme sources in sass between gnome-shell and other projects like
gnome-shell-extensions.
Any changes should be done in the [GNOME Shell subtree][shell-subtree]
and not the stand-alone [gnome-shell-sass repository][sass-repo]. They
will then be synchronized periodically before releases.
## License
GNOME Shell Sass is distributed under the terms of the GNU General Public
License, version 2 or later. See the [COPYING][license] file for details.
[shell-subtree]: https://gitlab.gnome.org/GNOME/gnome-shell/tree/master/data/theme/gnome-shell-sass
[sass-repo]: https://gitlab.gnome.org/GNOME/gnome-shell-sass
[license]: COPYING

View File

@@ -733,7 +733,6 @@ StScrollBar {
transition-duration: 500ms;
font-weight: bold;
height: 1.86em;
font-feature-settings: "tnum";
&.unlock-screen,
&.login-screen,
@@ -959,7 +958,6 @@ StScrollBar {
padding: 0.1em;
margin: 2px;
border-radius: 1.4em;
font-feature-settings: "tnum";
&:hover,&:focus { background-color: lighten($bg_color,5%); }
&:active,&:selected {
color: lighten($selected_fg_color,5%);
@@ -1113,7 +1111,7 @@ StScrollBar {
.aggregate-menu {
min-width: 21em;
.popup-menu-icon { padding: 0 4px; }
.popup-sub-menu .popup-menu-item > :first-child {
.popup-sub-menu .popup-menu-item :first-child {
&:ltr { /* 12px spacing + 2*4px padding */
padding-left: 20px; margin-left: 1.09em; }
&:rtl { /* 12px spacing + 2*4px padding */
@@ -1790,19 +1788,20 @@ StScrollBar {
.login-dialog-user-list-view { -st-vfade-offset: 1em; }
.login-dialog-user-list {
spacing: 12px;
padding: .2em;
width: 23em;
&:expanded .login-dialog-user-list-item:selected { background-color: $selected_bg_color; color: $selected_fg_color; }
&:expanded .login-dialog-user-list-item:logged-in { border-right: 2px solid $selected_bg_color; }
}
.login-dialog-user-list-item {
border-radius: 5px;
padding: 6px;
padding: .2em;
color: darken($osd_fg_color,30%);
&:ltr .user-widget { padding-right: 1em; }
&:rtl .user-widget { padding-left: 1em; }
&:ltr { padding-right: 1em; }
&:rtl { padding-left: 1em; }
.login-dialog-timed-login-indicator {
height: 2px;
margin-top: 6px;
margin: 2px 0 0 0;
background-color: $osd_fg_color;
}
&:focus .login-dialog-timed-login-indicator { background-color: $selected_fg_color; }
@@ -1817,8 +1816,8 @@ StScrollBar {
padding-left: 15px;
}
.user-widget-label {
&:ltr { padding-left: 14px; }
&:rtl { padding-right: 14px; }
&:ltr { padding-left: 18px; }
&:rtl { padding-right: 18px; }
}
.login-dialog-prompt-layout {
@@ -1869,7 +1868,6 @@ StScrollBar {
.screen-shield-clock-time {
font-size: 72pt;
text-shadow: 0px 2px 2px rgba(0,0,0,0.4);
font-feature-settings: "tnum";
}
.screen-shield-clock-date {

View File

@@ -22,7 +22,6 @@ for f in $extensiondir/*; do
schema=$schemadir/org.gnome.shell.extensions.$name.gschema.xml
cp $srcdir/NEWS $srcdir/COPYING $f
cp -r $localedir $f
if [ -f $schema ]; then
mkdir $f/schemas

View File

@@ -31,7 +31,7 @@ function enable() {
return injections['_keyPressHandler'].call(this, keysym, action);
};
Main.wm._forcedWindowSwitcher = function(display, window, binding) {
Main.wm._forcedWindowSwitcher = function(display, screen, window, binding) {
/* prevent a corner case where both popups show up at once */
if (this._workspaceSwitcherPopup != null)
this._workspaceSwitcherPopup.destroy();

View File

@@ -742,6 +742,7 @@ class ApplicationsButton extends PanelMenu.Button {
}
destroy() {
this.menu.actor.get_children().forEach(c => { c.destroy() });
super.destroy();
}
};

View File

@@ -79,10 +79,9 @@ class WindowMover {
return;
// ensure we have the required number of workspaces
let workspaceManager = global.workspace_manager;
for (let i = workspaceManager.n_workspaces; i <= workspaceNum; i++) {
for (let i = global.screen.n_workspaces; i <= workspaceNum; i++) {
window.change_workspace_by_index(i - 1, false);
workspaceManager.append_new_workspace(false, 0);
global.screen.append_new_workspace(false, 0);
}
window.change_workspace_by_index(workspaceNum, false);

View File

@@ -175,11 +175,11 @@ class DriveMenu extends PanelMenu.Button {
}
destroy() {
if (this._addedId) {
this._monitor.disconnect(this._addedId);
this._monitor.disconnect(this._removedId);
this._addedId = 0;
this._removedId = 0;
if (this._connectedId) {
this._monitor.disconnect(this._connectedId);
this._monitor.disconnect(this._disconnectedId);
this._connectedId = 0;
this._disconnectedId = 0;
}
super.destroy();

View File

@@ -385,7 +385,7 @@ var PlacesManager = class {
for(let j = 0; j < volumes.length; j++) {
let identifier = volumes[j].get_identifier('class');
if (identifier && identifier.includes('network')) {
if (identifier && identifier.indexOf('network') >= 0) {
networkVolumes.push(volumes[j]);
} else {
let mount = volumes[j].get_mount();
@@ -402,7 +402,7 @@ var PlacesManager = class {
continue;
let identifier = volumes[i].get_identifier('class');
if (identifier && identifier.includes('network')) {
if (identifier && identifier.indexOf('network') >= 0) {
networkVolumes.push(volumes[i]);
} else {
let mount = volumes[i].get_mount();

View File

@@ -69,7 +69,7 @@ let SIZES = [
[1600, 900]
];
function cycleScreenshotSizes(display, window, binding) {
function cycleScreenshotSizes(display, screen, window, binding) {
// Probably this isn't useful with 5 sizes, but you can decrease instead
// of increase by holding down shift.
let modifiers = binding.get_modifiers();

View File

@@ -238,10 +238,10 @@ class BaseButton {
if (this._perMonitor) {
this._windowEnteredMonitorId =
global.display.connect('window-entered-monitor',
global.screen.connect('window-entered-monitor',
this._windowEnteredOrLeftMonitor.bind(this));
this._windowLeftMonitorId =
global.display.connect('window-left-monitor',
global.screen.connect('window-left-monitor',
this._windowEnteredOrLeftMonitor.bind(this));
}
}
@@ -282,12 +282,12 @@ class BaseButton {
this.actor.remove_style_class_name('focused');
}
_windowEnteredOrLeftMonitor(metaDisplay, monitorIndex, metaWindow) {
_windowEnteredOrLeftMonitor(metaScreen, monitorIndex, metaWindow) {
throw new Error('Not implemented');
}
_isWindowVisible(window) {
let workspace = global.workspace_manager.get_active_workspace();
let workspace = global.screen.get_active_workspace();
return !window.skip_taskbar &&
window.located_on_workspace(workspace) &&
@@ -315,11 +315,11 @@ class BaseButton {
global.window_manager.disconnect(this._switchWorkspaceId);
if (this._windowEnteredMonitorId)
global.display.disconnect(this._windowEnteredMonitorId);
global.screen.disconnect(this._windowEnteredMonitorId);
this._windowEnteredMonitorId = 0;
if (this._windowLeftMonitorId)
global.display.disconnect(this._windowLeftMonitorId);
global.screen.disconnect(this._windowLeftMonitorId);
this._windowLeftMonitorId = 0;
}
};
@@ -377,7 +377,7 @@ class WindowButton extends BaseButton {
this.actor.remove_style_class_name('minimized');
}
_windowEnteredOrLeftMonitor(metaDisplay, monitorIndex, metaWindow) {
_windowEnteredOrLeftMonitor(metaScreen, monitorIndex, metaWindow) {
if (monitorIndex == this._monitorIndex && metaWindow == this.metaWindow)
this._updateVisibility();
}
@@ -518,7 +518,7 @@ class AppButton extends BaseButton {
this._updateStyle();
}
_windowEnteredOrLeftMonitor(metaDisplay, monitorIndex, metaWindow) {
_windowEnteredOrLeftMonitor(metaScreen, monitorIndex, metaWindow) {
if (this._windowTracker.get_window_app(metaWindow) == this.app &&
monitorIndex == this._monitorIndex) {
this._updateVisibility();
@@ -529,7 +529,7 @@ class AppButton extends BaseButton {
_updateVisibility() {
if (!this._perMonitor) {
// fast path: use ShellApp API to avoid iterating over all windows.
let workspace = global.workspace_manager.get_active_workspace();
let workspace = global.screen.get_active_workspace();
this.actor.visible = this.app.is_on_workspace(workspace);
} else {
this.actor.visible = this.getWindowList().length >= 1;
@@ -652,9 +652,7 @@ class WorkspaceIndicator extends PanelMenu.Button {
x_expand: true, y_expand: true });
this.actor.add_actor(container);
let workspaceManager = global.workspace_manager;
this._currentWorkspace = workspaceManager.get_active_workspace().index();
this._currentWorkspace = global.screen.get_active_workspace().index();
this.statusLabel = new St.Label({ text: this._getStatusText(),
x_align: Clutter.ActorAlign.CENTER,
y_align: Clutter.ActorAlign.CENTER });
@@ -662,11 +660,11 @@ class WorkspaceIndicator extends PanelMenu.Button {
this.workspacesItems = [];
this._workspaceManagerSignals = [];
this._workspaceManagerSignals.push(workspaceManager.connect('notify::n-workspaces',
this._updateMenu.bind(this)));
this._workspaceManagerSignals.push(workspaceManager.connect_after('workspace-switched',
this._updateIndicator.bind(this)));
this._screenSignals = [];
this._screenSignals.push(global.screen.connect('notify::n-workspaces',
this._updateMenu.bind(this)));
this._screenSignals.push(global.screen.connect_after('workspace-switched',
this._updateIndicator.bind(this)));
this.actor.connect('scroll-event', this._onScrollEvent.bind(this));
this._updateMenu();
@@ -678,8 +676,8 @@ class WorkspaceIndicator extends PanelMenu.Button {
}
destroy() {
for (let i = 0; i < this._workspaceManagerSignals.length; i++)
global.workspace_manager.disconnect(this._workspaceManagerSignals[i]);
for (let i = 0; i < this._screenSignals.length; i++)
global.screen.disconnect(this._screenSignals[i]);
if (this._settingsChangedId) {
this._settings.disconnect(this._settingsChangedId);
@@ -691,28 +689,25 @@ class WorkspaceIndicator extends PanelMenu.Button {
_updateIndicator() {
this.workspacesItems[this._currentWorkspace].setOrnament(PopupMenu.Ornament.NONE);
this._currentWorkspace = global.workspace_manager.get_active_workspace().index();
this._currentWorkspace = global.screen.get_active_workspace().index();
this.workspacesItems[this._currentWorkspace].setOrnament(PopupMenu.Ornament.DOT);
this.statusLabel.set_text(this._getStatusText());
}
_getStatusText() {
let workspaceManager = global.workspace_manager;
let current = workspaceManager.get_active_workspace().index();
let total = workspaceManager.n_workspaces;
let current = global.screen.get_active_workspace().index();
let total = global.screen.n_workspaces;
return '%d / %d'.format(current + 1, total);
}
_updateMenu() {
let workspaceManager = global.workspace_manager;
this.menu.removeAll();
this.workspacesItems = [];
this._currentWorkspace = workspaceManager.get_active_workspace().index();
this._currentWorkspace = global.screen.get_active_workspace().index();
for(let i = 0; i < workspaceManager.n_workspaces; i++) {
for(let i = 0; i < global.screen.n_workspaces; i++) {
let name = Meta.prefs_get_workspace_name(i);
let item = new PopupMenu.PopupMenuItem(name);
item.workspaceId = i;
@@ -732,10 +727,8 @@ class WorkspaceIndicator extends PanelMenu.Button {
}
_activate(index) {
let workspaceManager = global.workspace_manager;
if(index >= 0 && index < workspaceManager.n_workspaces) {
let metaWorkspace = workspaceManager.get_workspace_by_index(index);
if(index >= 0 && index < global.screen.n_workspaces) {
let metaWorkspace = global.screen.get_workspace_by_index(index);
metaWorkspace.activate(global.get_current_time());
}
}
@@ -840,12 +833,10 @@ class WindowList {
this._updateKeyboardAnchor();
});
let workspaceManager = global.workspace_manager;
this._workspaceSignals = new Map();
this._nWorkspacesChangedId =
workspaceManager.connect('notify::n-workspaces',
this._onWorkspacesChanged.bind(this));
global.screen.connect('notify::n-workspaces',
this._onWorkspacesChanged.bind(this));
this._onWorkspacesChanged();
this._switchWorkspaceId =
@@ -865,7 +856,7 @@ class WindowList {
});
this._fullscreenChangedId =
global.display.connect('in-fullscreen-changed', () => {
global.screen.connect('in-fullscreen-changed', () => {
this._updateKeyboardAnchor();
});
@@ -891,14 +882,14 @@ class WindowList {
}
_getDynamicWorkspacesSettings() {
if (this._workspaceSettings.list_keys().includes('dynamic-workspaces'))
if (this._workspaceSettings.list_keys().indexOf('dynamic-workspaces') > -1)
return this._workspaceSettings;
return this._mutterSettings;
}
_getWorkspaceSettings() {
let settings = global.get_overrides_settings() || this._mutterSettings;
if (settings.list_keys().includes('workspaces-only-on-primary'))
let settings = global.get_overrides_settings();
if (settings.list_keys().indexOf('workspaces-only-on-primary') > -1)
return settings;
return this._mutterSettings;
}
@@ -932,9 +923,8 @@ class WindowList {
}
_updateWorkspaceIndicatorVisibility() {
let workspaceManager = global.workspace_manager;
let hasWorkspaces = this._dynamicWorkspacesSettings.get_boolean('dynamic-workspaces') ||
workspaceManager.n_workspaces > 1;
global.screen.n_workspaces > 1;
let workspacesOnMonitor = this._monitor == Main.layoutManager.primaryMonitor ||
!this._workspaceSettings.get_boolean('workspaces-only-on-primary');
@@ -949,7 +939,7 @@ class WindowList {
let [, childWidth] = children[0].get_preferred_width(-1);
let spacing = this._windowList.layout_manager.spacing;
let workspace = global.workspace_manager.get_active_workspace();
let workspace = global.screen.get_active_workspace();
let windows = global.display.get_tab_list(Meta.TabList.NORMAL, workspace);
if (this._perMonitor)
windows = windows.filter(w => w.get_monitor() == this._monitor.index);
@@ -1089,11 +1079,9 @@ class WindowList {
}
_onWorkspacesChanged() {
let workspaceManager = global.workspace_manager;
let numWorkspaces = workspaceManager.n_workspaces;
let numWorkspaces = global.screen.n_workspaces;
for (let i = 0; i < numWorkspaces; i++) {
let workspace = workspaceManager.get_workspace_by_index(i);
let workspace = global.screen.get_workspace_by_index(i);
if (this._workspaceSignals.has(workspace))
continue;
@@ -1111,11 +1099,9 @@ class WindowList {
}
_disconnectWorkspaceSignals() {
let workspaceManager = global.workspace_manager;
let numWorkspaces = workspaceManager.n_workspaces;
let numWorkspaces = global.screen.n_workspaces;
for (let i = 0; i < numWorkspaces; i++) {
let workspace = workspaceManager.get_workspace_by_index(i);
let workspace = global.screen.get_workspace_by_index(i);
let signals = this._workspaceSignals.get(workspace);
this._workspaceSignals.delete(workspace);
workspace.disconnect(signals._windowAddedId);
@@ -1193,7 +1179,7 @@ class WindowList {
Main.layoutManager.hideKeyboard();
this._disconnectWorkspaceSignals();
global.workspace_manager.disconnect(this._nWorkspacesChangedId);
global.screen.disconnect(this._nWorkspacesChangedId);
this._nWorkspacesChangedId = 0;
global.window_manager.disconnect(this._switchWorkspaceId);
@@ -1203,7 +1189,7 @@ class WindowList {
Main.overview.disconnect(this._overviewShowingId);
Main.overview.disconnect(this._overviewHidingId);
global.display.disconnect(this._fullscreenChangedId);
global.screen.disconnect(this._fullscreenChangedId);
Main.xdndHandler.disconnect(this._dragBeginId);
Main.xdndHandler.disconnect(this._dragEndId);

View File

@@ -135,16 +135,14 @@ function enable() {
if(Main.overview.viewSelector._activePage != Main.overview.viewSelector._workspacesPage)
return false;
let workspaceManager = global.workspace_manager;
if ((o.get_key_symbol() == Clutter.KEY_Alt_L ||
o.get_key_symbol() == Clutter.KEY_Alt_R)
&& !this._pickWorkspace) {
this._prevFocusActor = global.stage.get_key_focus();
global.stage.set_key_focus(null);
this._active = workspaceManager.get_active_workspace_index();
this._active = global.screen.get_active_workspace_index();
this._pickWindow = true;
this._workspaces[workspaceManager.get_active_workspace_index()].showWindowsTooltips();
this._workspaces[global.screen.get_active_workspace_index()].showWindowsTooltips();
return true;
}
if ((o.get_key_symbol() == Clutter.KEY_Control_L ||
@@ -168,7 +166,7 @@ function enable() {
return true;
if (this._pickWindow) {
if (this._active != workspaceManager.get_active_workspace_index()) {
if (this._active != global.screen.get_active_workspace_index()) {
this._hideTooltips();
return false;
}

View File

@@ -25,9 +25,7 @@ class WorkspaceIndicator extends PanelMenu.Button {
constructor() {
super(0.0, _("Workspace Indicator"));
let workspaceManager = global.workspace_manager;
this._currentWorkspace = workspaceManager.get_active_workspace().index();
this._currentWorkspace = global.screen.get_active_workspace().index();
this.statusLabel = new St.Label({ y_align: Clutter.ActorAlign.CENTER,
text: this._labelText() });
@@ -37,13 +35,12 @@ class WorkspaceIndicator extends PanelMenu.Button {
this._workspaceSection = new PopupMenu.PopupMenuSection();
this.menu.addMenuItem(this._workspaceSection);
this._workspaceManagerSignals = [];
this._workspaceManagerSignals.push(workspaceManager.connect_after('workspace-added',
this._createWorkspacesSection.bind(this)));
this._workspaceManagerSignals.push(workspaceManager.connect_after('workspace-removed',
this._createWorkspacesSection.bind(this)));
this._workspaceManagerSignals.push(workspaceManager.connect_after('workspace-switched',
this._updateIndicator.bind(this)));
this._screenSignals = [];
this._screenSignals.push(global.screen.connect_after('workspace-added', this._createWorkspacesSection.bind(this)));
this._screenSignals.push(global.screen.connect_after('workspace-removed',
this._createWorkspacesSection.bind(this)));
this._screenSignals.push(global.screen.connect_after('workspace-switched',
this._updateIndicator.bind(this)));
this.actor.connect('scroll-event', this._onScrollEvent.bind(this));
this._createWorkspacesSection();
@@ -58,8 +55,8 @@ class WorkspaceIndicator extends PanelMenu.Button {
}
destroy() {
for (let i = 0; i < this._workspaceManagerSignals.length; i++)
global.workspace_manager.disconnect(this._workspaceManagerSignals[i]);
for (let i = 0; i < this._screenSignals.length; i++)
global.screen.disconnect(this._screenSignals[i]);
if (this._settingsChangedId) {
this._settings.disconnect(this._settingsChangedId);
@@ -71,7 +68,7 @@ class WorkspaceIndicator extends PanelMenu.Button {
_updateIndicator() {
this.workspacesItems[this._currentWorkspace].setOrnament(PopupMenu.Ornament.NONE);
this._currentWorkspace = global.workspace_manager.get_active_workspace().index();
this._currentWorkspace = global.screen.get_active_workspace().index();
this.workspacesItems[this._currentWorkspace].setOrnament(PopupMenu.Ornament.DOT);
this.statusLabel.set_text(this._labelText());
@@ -86,14 +83,12 @@ class WorkspaceIndicator extends PanelMenu.Button {
}
_createWorkspacesSection() {
let workspaceManager = global.workspace_manager;
this._workspaceSection.removeAll();
this.workspacesItems = [];
this._currentWorkspace = workspaceManager.get_active_workspace().index();
this._currentWorkspace = global.screen.get_active_workspace().index();
let i = 0;
for(; i < workspaceManager.n_workspaces; i++) {
for(; i < global.screen.n_workspaces; i++) {
this.workspacesItems[i] = new PopupMenu.PopupMenuItem(this._labelText(i));
this._workspaceSection.addMenuItem(this.workspacesItems[i]);
this.workspacesItems[i].workspaceId = i;
@@ -111,10 +106,8 @@ class WorkspaceIndicator extends PanelMenu.Button {
}
_activate(index) {
let workspaceManager = global.workspace_manager;
if(index >= 0 && index < workspaceManager.n_workspaces) {
let metaWorkspace = workspaceManager.get_workspace_by_index(index);
if(index >= 0 && index < global.screen.n_workspaces) {
let metaWorkspace = global.screen.get_workspace_by_index(index);
metaWorkspace.activate(global.get_current_time());
}
}
@@ -130,7 +123,7 @@ class WorkspaceIndicator extends PanelMenu.Button {
return;
}
let newIndex = global.workspace_manager.get_active_workspace().index() + diff;
let newIndex = global.screen.get_active_workspace().index() + diff;
this._activate(newIndex);
}
};

View File

@@ -1,5 +1,5 @@
project('gnome-shell-extensions',
version: '3.29.3',
version: '3.28.0',
meson_version: '>= 0.44.0',
license: 'GPL2+'
)

View File

@@ -5,22 +5,21 @@
# Aron Xu <aronxu@gnome.org>, 2011.
# tuhaihe <1132321739qq@gmail.com>, 2012, 2013.
# 甘露(Gan Lu) <rhythm.gan@gmail.com>, 2013.
# Mingcong Bai <jeffbai@aosc.xyz>, 2017.
#
msgid ""
msgstr ""
"Project-Id-Version: gnome-shell-extensions master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n"
"POT-Creation-Date: 2018-01-18 12:15+0000\n"
"PO-Revision-Date: 2017-08-18 21:26+0800\n"
"Last-Translator: Mingcong Bai <jeffbai@aosc.xyz>\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=extensions\n"
"POT-Creation-Date: 2016-10-11 08:03+0000\n"
"PO-Revision-Date: 2016-10-18 17:53+0800\n"
"Last-Translator: YunQiang Su <wzssyqa@gmail.com>\n"
"Language-Team: Chinese (China) <i18n-zh@googlegroups.com>\n"
"Language: zh_CN\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 2.0.2\n"
"X-Generator: Poedit 1.8.9\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
@@ -66,35 +65,35 @@ msgstr "仅在主显示器上显示工作区"
msgid "Delay focus changes in mouse mode until the pointer stops moving"
msgstr "将鼠标模式下焦点的切换推迟到光标停止移动之后"
#: extensions/alternate-tab/prefs.js:19
#: extensions/alternate-tab/prefs.js:20
msgid "Thumbnail only"
msgstr "仅缩略图"
#: extensions/alternate-tab/prefs.js:20
#: extensions/alternate-tab/prefs.js:21
msgid "Application icon only"
msgstr "仅应用程序图标"
#: extensions/alternate-tab/prefs.js:21
#: extensions/alternate-tab/prefs.js:22
msgid "Thumbnail and application icon"
msgstr "缩略图和应用程序图标"
#: extensions/alternate-tab/prefs.js:34
#: extensions/alternate-tab/prefs.js:38
msgid "Present windows as"
msgstr "窗口展现为"
#: extensions/alternate-tab/prefs.js:65
#: extensions/alternate-tab/prefs.js:69
msgid "Show only windows in the current workspace"
msgstr "仅显示当前工作区中的窗口"
#: extensions/apps-menu/extension.js:37
#: extensions/apps-menu/extension.js:38
msgid "Activities Overview"
msgstr "活动概览"
#: extensions/apps-menu/extension.js:130
#: extensions/apps-menu/extension.js:109
msgid "Favorites"
msgstr "收藏"
#: extensions/apps-menu/extension.js:417
#: extensions/apps-menu/extension.js:266
msgid "Applications"
msgstr "应用程序"
@@ -107,43 +106,41 @@ msgid ""
"A list of strings, each containing an application id (desktop file name), "
"followed by a colon and the workspace number"
msgstr ""
"一系列字符串,每个字符串包含一个应用程序标识桌面文件名称、冒号加工作区号"
"一系列字符串,每个字符串包含一个应用程序标识(桌面文件名称)、冒号加工作区号"
#: extensions/auto-move-windows/prefs.js:53
#: extensions/auto-move-windows/prefs.js:60
msgid "Application"
msgstr "应用程序"
#: extensions/auto-move-windows/prefs.js:62
#: extensions/auto-move-windows/prefs.js:117
#: extensions/auto-move-windows/prefs.js:69
#: extensions/auto-move-windows/prefs.js:127
msgid "Workspace"
msgstr "工作区"
#: extensions/auto-move-windows/prefs.js:78
#: extensions/auto-move-windows/prefs.js:85
msgid "Add Rule"
msgstr "添加规则"
#: extensions/auto-move-windows/prefs.js:98
#: extensions/auto-move-windows/prefs.js:106
msgid "Create new matching rule"
msgstr "创建新的匹配规则"
#: extensions/auto-move-windows/prefs.js:103
#: extensions/auto-move-windows/prefs.js:111
msgid "Add"
msgstr "添加"
#. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:103
#: extensions/places-menu/placeDisplay.js:219
#: extensions/drive-menu/extension.js:106
#, javascript-format
msgid "Ejecting drive %s failed:"
msgid "Ejecting drive '%s' failed:"
msgstr "弹出驱动器“%s”失败"
#: extensions/drive-menu/extension.js:118
#: extensions/drive-menu/extension.js:124
msgid "Removable devices"
msgstr "可移动设备"
#: extensions/drive-menu/extension.js:143
msgid "Open Files"
msgstr "打开文件"
#: extensions/drive-menu/extension.js:149
msgid "Open File"
msgstr "打开文件管理器"
#: extensions/example/extension.js:17
msgid "Hello, world!"
@@ -159,17 +156,17 @@ msgid ""
"panel."
msgstr "如果不为空,所包含的文本会在点击面板时显示。"
#: extensions/example/prefs.js:27
#: extensions/example/prefs.js:30
msgid "Message"
msgstr "消息"
#. TRANSLATORS: Example is the name of the extension, should not be
#. translated
#: extensions/example/prefs.js:40
#: extensions/example/prefs.js:43
msgid ""
"Example aims to show how to build well behaved extensions for the Shell and "
"as such it has little functionality on its own.\n"
"Nevertheless its possible to customize the greeting message."
"Nevertheless it's possible to customize the greeting message."
msgstr ""
"示例意在展示如何为 Shell 创建良好工作的扩展,本身功能有限。\n"
"尽管如此,它还是具备定制祝福语的功能。"
@@ -200,41 +197,32 @@ msgstr ""
"如果设置为 true则将窗口说明文字放置在对应窗口的缩略图上方而不是默认的下"
"方。修改此设置需要重启 GNOME Shell 以使设置生效。"
#: extensions/places-menu/extension.js:79
#: extensions/places-menu/extension.js:82
#: extensions/places-menu/extension.js:78
#: extensions/places-menu/extension.js:81
msgid "Places"
msgstr "位置"
#: extensions/places-menu/placeDisplay.js:66
#: extensions/places-menu/placeDisplay.js:59
#, javascript-format
msgid "Failed to mount volume for “%s”"
msgstr "无法为“%s”挂载卷"
#: extensions/places-menu/placeDisplay.js:79
#, javascript-format
msgid "Failed to launch “%s”"
msgid "Failed to launch \"%s\""
msgstr "无法启动“%s”"
#: extensions/places-menu/placeDisplay.js:135
#: extensions/places-menu/placeDisplay.js:158
#: extensions/places-menu/placeDisplay.js:101
#: extensions/places-menu/placeDisplay.js:124
msgid "Computer"
msgstr "计算机"
#: extensions/places-menu/placeDisplay.js:336
#: extensions/places-menu/placeDisplay.js:267
msgid "Home"
msgstr "主文件夹"
#: extensions/places-menu/placeDisplay.js:378
#: extensions/places-menu/placeDisplay.js:311
msgid "Browse Network"
msgstr "浏览网络"
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:7
msgid "Cycle Screenshot Sizes"
msgstr "循环调整截图大小"
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:11
msgid "Cycle Screenshot Sizes Backward"
msgstr "反向循环调整截图大小"
msgstr "循环调整窗口截图大小"
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:5
msgid "Theme name"
@@ -244,52 +232,52 @@ msgstr "主题名称"
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "从 ~/.themes/name/gnome-shell 加载的主题名称"
#: extensions/window-list/extension.js:106
#: extensions/window-list/extension.js:110
msgid "Close"
msgstr "关闭"
#: extensions/window-list/extension.js:125
#: extensions/window-list/extension.js:120
msgid "Unminimize"
msgstr "取消最小化"
#: extensions/window-list/extension.js:126
#: extensions/window-list/extension.js:121
msgid "Minimize"
msgstr "最小化"
#: extensions/window-list/extension.js:132
#: extensions/window-list/extension.js:127
msgid "Unmaximize"
msgstr "取消最大化"
#: extensions/window-list/extension.js:133
#: extensions/window-list/extension.js:128
msgid "Maximize"
msgstr "最大化"
#: extensions/window-list/extension.js:408
#: extensions/window-list/extension.js:411
msgid "Minimize all"
msgstr "全部最小化"
#: extensions/window-list/extension.js:414
#: extensions/window-list/extension.js:419
msgid "Unminimize all"
msgstr "全部取消最小化"
#: extensions/window-list/extension.js:420
#: extensions/window-list/extension.js:427
msgid "Maximize all"
msgstr "全部最大化"
#: extensions/window-list/extension.js:429
#: extensions/window-list/extension.js:436
msgid "Unmaximize all"
msgstr "全部取消最大化"
#: extensions/window-list/extension.js:438
#: extensions/window-list/extension.js:445
msgid "Close all"
msgstr "全部关闭"
#: extensions/window-list/extension.js:646
#: extensions/workspace-indicator/extension.js:26
#: extensions/window-list/extension.js:669
#: extensions/workspace-indicator/extension.js:30
msgid "Workspace Indicator"
msgstr "工作区指示器"
#: extensions/window-list/extension.js:811
#: extensions/window-list/extension.js:828
msgid "Window List"
msgstr "窗口列表"
@@ -300,10 +288,10 @@ msgstr "何时分组窗口"
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:13
msgid ""
"Decides when to group windows from the same application on the window list. "
"Possible values are never”, “auto and always."
"Possible values are \"never\", \"auto\" and \"always\"."
msgstr ""
"决定何时对窗口列表上的同一应用的窗口进行分组。可用值有“never”从"
"不、“auto”自动和“always”总是。"
"决定何时对窗口列表上的同一应用的窗口进行分组。可用值有“never”(从"
"不)、“auto”(自动)和“always”(总是)。"
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
msgid "Show the window list on all monitors"
@@ -315,35 +303,35 @@ msgid ""
"primary one."
msgstr "是否在所有连接的显示器上显示窗口列表或仅在主显示器上显示。"
#: extensions/window-list/prefs.js:28
#: extensions/window-list/prefs.js:32
msgid "Window Grouping"
msgstr "窗口分组"
#: extensions/window-list/prefs.js:46
#: extensions/window-list/prefs.js:50
msgid "Never group windows"
msgstr "从不将窗口分组"
#: extensions/window-list/prefs.js:47
#: extensions/window-list/prefs.js:51
msgid "Group windows when space is limited"
msgstr "当空间有限时将窗口分组"
#: extensions/window-list/prefs.js:48
#: extensions/window-list/prefs.js:52
msgid "Always group windows"
msgstr "总是对窗口分组"
#: extensions/window-list/prefs.js:71
#: extensions/window-list/prefs.js:75
msgid "Show on all monitors"
msgstr "在所有显示器上显示"
#: extensions/workspace-indicator/prefs.js:134
#: extensions/workspace-indicator/prefs.js:141
msgid "Workspace Names"
msgstr "工作区名称"
#: extensions/workspace-indicator/prefs.js:150
#: extensions/workspace-indicator/prefs.js:157
msgid "Name"
msgstr "名称"
#: extensions/workspace-indicator/prefs.js:190
#: extensions/workspace-indicator/prefs.js:198
#, javascript-format
msgid "Workspace %d"
msgstr "工作区 %d"