Compare commits

..

7 Commits

Author SHA1 Message Date
Florian Müllner df463177e7 Bump version to 3.36.2
Update NEWS.
2020-04-29 22:45:40 +02:00
Florian Müllner 62af36ebfa Update sass submodule 2020-04-29 22:44:25 +02:00
Kristjan SCHMIDT c5246b7415 Update Esperanto translation 2020-04-18 09:00:46 +00:00
Xiaoguang Wang d39c1fd685 windowPicker: Wrong signal ID _nWorkspacesNotifyId
https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/106


(cherry picked from commit f9aaa732b2)
2020-04-10 14:31:24 +00:00
Florian Müllner 665a7fbbcb ci: Update URL check
Gitlab started inserting a /-/ in its URLs, account for that.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/113


(cherry picked from commit 7b82c5e12b)
2020-04-10 14:30:49 +00:00
Yosef Or Boczko c477f10bfb Update Hebrew translation 2020-04-01 15:22:37 +00:00
Florian Müllner 2ae0f368b9 Bump version to 3.36.1
Update NEWS.
2020-03-31 00:58:41 +02:00
31 changed files with 1063 additions and 1356 deletions
+9 -24
View File
@@ -1,12 +1,10 @@
image: registry.gitlab.gnome.org/gnome/gnome-shell/extension-ci:v2
stages: stages:
- review - commit_check
- source_check
- build - build
variables: variables:
LINT_LOG: "eslint-report.txt" LINT_LOG: "eslint-report.txt"
JS_LOG: "js-report.txt"
.only_default: &only_default .only_default: &only_default
only: only:
@@ -16,25 +14,15 @@ variables:
check_commit_log: check_commit_log:
image: registry.gitlab.gnome.org/gnome/gjs:fedora.static-analysis image: registry.gitlab.gnome.org/gnome/gjs:fedora.static-analysis
stage: review stage: commit_check
script: script:
- ./.gitlab-ci/check-commit-log.sh - ./.gitlab-ci/check-commit-log.sh
only: only:
- merge_requests - merge_requests
js_check:
stage: review
script:
- find extensions -name '*.js' -exec js68 -c -s '{}' ';' 2>&1 | tee $JS_LOG
- (! grep -q . $JS_LOG)
<<: *only_default
artifacts:
paths:
- ${JS_LOG}
when: on_failure
eslint: eslint:
stage: review image: registry.gitlab.gnome.org/gnome/gnome-shell/extension-ci:v1
stage: source_check
script: script:
- eslint -o $LINT_LOG extensions --no-color || { cat $LINT_LOG; false; } - eslint -o $LINT_LOG extensions --no-color || { cat $LINT_LOG; false; }
<<: *only_default <<: *only_default
@@ -43,13 +31,10 @@ eslint:
- ${LINT_LOG} - ${LINT_LOG}
when: on_failure when: on_failure
build-bundles: build-shell-extensions:
image: registry.gitlab.gnome.org/gnome/gnome-shell/extension-ci:v1
stage: build stage: build
script: script:
- ./export-zips.sh - meson _build .
- ninja -C _build test install
<<: *only_default <<: *only_default
artifacts:
name: 'Extension bundles'
expose_as: 'Get Extension bundles here'
paths:
- zip-files/
+6 -21
View File
@@ -1,32 +1,17 @@
3.37.2 3.36.2
====== ======
* window-list, auto-move: Modernize preference dialogs [Florian; !121] * Misc. bug fixes and cleanups [Florian, Xiaoguang; !113, !106]
* Adjust to gnome-shell changes [Florian; !122]
Contributors: Contributors:
Florian Müllner Florian Müllner, Xiaoguang Wang
Translators: Translators:
Cheng-Chia Tseng [zh_TW], Yuri Chornoivan [uk], Daniel Mustieles [es], Yosef Or Boczko [he], Kristjan SCHMIDT [eo]
Emin Tufan Çetin [tr], Danial Behzadi [fa], Daniel Șerbănescu [ro], 3.36.1
Matej Urbančič [sl]
3.37.1
====== ======
* drive-menu: Emphasize eject buttons [Florian; #223]
* user-theme: Add preference dialog [Florian; !117]
* window-list: Fix inconsistent state in preference dialog [Milan; !119]
* workspace-indicator: Overhaul preference dialog [Florian; !120]
* user-theme: Support session mode styles [Florian; !118]
* Misc. bug fixes and cleanups [Florian, Xiaoguang; !113, !106, !114, !116]
Contributors:
Milan Crha, Florian Müllner, Xiaoguang Wang
Translators: Translators:
Daniel Korostil [uk], Yosef Or Boczko [he], Kristjan SCHMIDT [eo], Daniel Korostil [uk]
Dz Chen [zh_CN], Danial Behzadi [fa], Yuri Chornoivan [uk],
Anders Jonsson [sv], Daniel Mustieles [es]
3.36.0 3.36.0
====== ======
+7 -14
View File
@@ -21,23 +21,16 @@ for f in $extensiondir/*; do
uuid=$name@gnome-shell-extensions.gcampax.github.com uuid=$name@gnome-shell-extensions.gcampax.github.com
schema=$schemadir/org.gnome.shell.extensions.$name.gschema.xml schema=$schemadir/org.gnome.shell.extensions.$name.gschema.xml
xgettext --from-code=UTF-8 --output-dir=$builddir --output=$name.pot $f/*.js cp $srcdir/NEWS $srcdir/COPYING $f
cp -r $localedir $f
if [ -f $builddir/$name.pot ]; then if [ -f $schema ]; then
mkdir $f/po mkdir $f/schemas
for l in $(<$srcdir/po/LINGUAS); do cp $schema $f/schemas;
msgmerge --quiet --output-file=$f/po/$l.po \ glib-compile-schemas $f/schemas
$srcdir/po/$l.po $builddir/$name.pot
done
fi fi
cp $srcdir/NEWS $srcdir/COPYING $f (cd $f && zip -rmq $srcdir/zip-files/$uuid.shell-extension.zip .)
sources=(NEWS COPYING $(cd $f; ls *.js))
[ -f $schema ] || unset schema
gnome-extensions pack ${sources[@]/#/--extra-source=} \
${schema:+--schema=$schema} --out-dir=$srcdir/zip-files $f
done done
rm -rf $builddir rm -rf $builddir
+9 -8
View File
@@ -35,16 +35,17 @@ class WindowMover {
_updateAppData() { _updateAppData() {
let ids = [...this._appConfigs.keys()]; let ids = [...this._appConfigs.keys()];
let removedApps = [...this._appData.keys()] let removedApps = [...this._appData.keys()].filter(
.filter(a => !ids.includes(a.id)); a => !ids.includes(a.id)
);
removedApps.forEach(app => { removedApps.forEach(app => {
app.disconnect(this._appData.get(app).windowsChangedId); app.disconnect(this._appData.get(app).windowsChangedId);
this._appData.delete(app); this._appData.delete(app);
}); });
let addedApps = ids let addedApps = ids.map(id => this._appSystem.lookup_app(id)).filter(
.map(id => this._appSystem.lookup_app(id)) app => app && !this._appData.has(app)
.filter(app => app && !this._appData.has(app)); );
addedApps.forEach(app => { addedApps.forEach(app => {
let data = { let data = {
windowsChangedId: app.connect('windows-changed', windowsChangedId: app.connect('windows-changed',
@@ -93,9 +94,9 @@ class WindowMover {
// the window still exists and is just moved to a different workspace // the window still exists and is just moved to a different workspace
// or something; assume it'll be added back immediately, so keep it // or something; assume it'll be added back immediately, so keep it
// to avoid moving it again // to avoid moving it again
windows.push(...data.windows.filter(w => { windows.push(...data.windows.filter(
return !windows.includes(w) && w.get_compositor_private() !== null; w => !windows.includes(w) && w.get_compositor_private() !== null
})); ));
let workspaceNum = this._appConfigs.get(app.id); let workspaceNum = this._appConfigs.get(app.id);
windows.filter(w => !data.windows.includes(w)).forEach(window => { windows.filter(w => !data.windows.includes(w)).forEach(window => {
+232 -244
View File
@@ -2,10 +2,11 @@
// Start apps on custom workspaces // Start apps on custom workspaces
/* exported init buildPrefsWidget */ /* exported init buildPrefsWidget */
const { Gio, GLib, GObject, Gtk, Pango } = imports.gi; const { Gio, GObject, Gtk } = imports.gi;
const Gettext = imports.gettext.domain('gnome-shell-extensions'); const Gettext = imports.gettext.domain('gnome-shell-extensions');
const _ = Gettext.gettext; const _ = Gettext.gettext;
const N_ = e => e;
const ExtensionUtils = imports.misc.extensionUtils; const ExtensionUtils = imports.misc.extensionUtils;
@@ -13,282 +14,269 @@ const SETTINGS_KEY = 'application-list';
const WORKSPACE_MAX = 36; // compiled in limit of mutter const WORKSPACE_MAX = 36; // compiled in limit of mutter
const AutoMoveSettingsWidget = GObject.registerClass( const Columns = {
class AutoMoveSettingsWidget extends Gtk.ScrolledWindow { APPINFO: 0,
_init() { DISPLAY_NAME: 1,
super._init({ ICON: 2,
hscrollbar_policy: Gtk.PolicyType.NEVER, WORKSPACE: 3,
}); ADJUSTMENT: 4,
};
const box = new Gtk.Box({ const Widget = GObject.registerClass(
orientation: Gtk.Orientation.VERTICAL, class Widget extends Gtk.Grid {
halign: Gtk.Align.CENTER, _init(params) {
spacing: 12, super._init(params);
margin_top: 36, this.set_orientation(Gtk.Orientation.VERTICAL);
margin_bottom: 36,
margin_start: 36,
margin_end: 36,
});
this.add(box);
box.add(new Gtk.Label({
label: '<b>%s</b>'.format(_('Workspace Rules')),
use_markup: true,
halign: Gtk.Align.START,
}));
this._list = new Gtk.ListBox({
selection_mode: Gtk.SelectionMode.NONE,
valign: Gtk.Align.START,
});
this._list.set_header_func(this._updateHeader.bind(this));
box.add(this._list);
const context = this._list.get_style_context();
const cssProvider = new Gtk.CssProvider();
cssProvider.load_from_data(
'list { min-width: 30em; }');
context.add_provider(cssProvider,
Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION);
context.add_class('frame');
this._list.add(new NewRuleRow());
this._actionGroup = new Gio.SimpleActionGroup();
this._list.insert_action_group('rules', this._actionGroup);
let action;
action = new Gio.SimpleAction({ name: 'add' });
action.connect('activate', this._onAddActivated.bind(this));
this._actionGroup.add_action(action);
action = new Gio.SimpleAction({
name: 'remove',
parameter_type: new GLib.VariantType('s'),
});
action.connect('activate', this._onRemoveActivated.bind(this));
this._actionGroup.add_action(action);
action = new Gio.SimpleAction({ name: 'update' });
action.connect('activate', () => {
this._settings.set_strv(SETTINGS_KEY,
this._getRuleRows().map(row => `${row.id}:${row.value}`));
});
this._actionGroup.add_action(action);
this._updateAction = action;
this._settings = ExtensionUtils.getSettings(); this._settings = ExtensionUtils.getSettings();
this._changedId = this._settings.connect('changed', this._settings.connect('changed', this._refresh.bind(this));
this._sync.bind(this)); this._changedPermitted = false;
this._sync();
this.connect('destroy', () => this._settings.run_dispose()); this._store = new Gtk.ListStore();
this._store.set_column_types([
Gio.AppInfo,
GObject.TYPE_STRING,
Gio.Icon,
GObject.TYPE_INT,
Gtk.Adjustment,
]);
this.show_all(); let scrolled = new Gtk.ScrolledWindow({ shadow_type: Gtk.ShadowType.IN });
} scrolled.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC);
this.add(scrolled);
_onAddActivated() {
const dialog = new NewRuleDialog(this.get_toplevel());
dialog.connect('response', (dlg, id) => {
const appInfo = id === Gtk.ResponseType.OK
? dialog.get_widget().get_app_info() : null;
if (appInfo) {
this._settings.set_strv(SETTINGS_KEY, [
...this._settings.get_strv(SETTINGS_KEY),
`${appInfo.get_id()}:1`,
]);
}
dialog.destroy();
});
}
_onRemoveActivated(action, param) { this._treeView = new Gtk.TreeView({
const removed = param.deepUnpack(); model: this._store,
this._settings.set_strv(SETTINGS_KEY,
this._settings.get_strv(SETTINGS_KEY).filter(entry => {
const [id] = entry.split(':');
return id !== removed;
}));
}
_getRuleRows() {
return this._list.get_children().filter(row => !!row.id);
}
_sync() {
const oldRules = this._getRuleRows();
const newRules = this._settings.get_strv(SETTINGS_KEY).map(entry => {
const [id, value] = entry.split(':');
return { id, value };
});
this._settings.block_signal_handler(this._changedId);
this._updateAction.enabled = false;
newRules.forEach(({ id, value }, index) => {
const row = oldRules.find(r => r.id === id);
const appInfo = row
? null : Gio.DesktopAppInfo.new(id);
if (row)
row.set({ value });
else if (appInfo)
this._list.insert(new RuleRow(appInfo, value), index);
});
const removed = oldRules.filter(
({ id }) => !newRules.find(r => r.id === id));
removed.forEach(r => r.destroy());
this._settings.unblock_signal_handler(this._changedId);
this._updateAction.enabled = true;
}
_updateHeader(row, before) {
if (!before || row.get_header())
return;
row.set_header(new Gtk.Separator());
}
});
const RuleRow = GObject.registerClass({
Properties: {
'id': GObject.ParamSpec.string(
'id', 'id', 'id',
GObject.ParamFlags.READABLE,
''),
'value': GObject.ParamSpec.uint(
'value', 'value', 'value',
GObject.ParamFlags.READWRITE,
1, WORKSPACE_MAX, 1),
},
}, class RuleRow extends Gtk.ListBoxRow {
_init(appInfo, value) {
super._init({
activatable: false,
value,
});
this._appInfo = appInfo;
const box = new Gtk.Box({
spacing: 6,
margin_top: 6,
margin_bottom: 6,
margin_start: 6,
margin_end: 6,
});
const icon = new Gtk.Image({
gicon: appInfo.get_icon(),
pixel_size: 32,
});
icon.get_style_context().add_class('icon-dropshadow');
box.add(icon);
const label = new Gtk.Label({
label: appInfo.get_display_name(),
halign: Gtk.Align.START,
hexpand: true, hexpand: true,
max_width_chars: 20, vexpand: true,
ellipsize: Pango.EllipsizeMode.END,
}); });
box.add(label); this._treeView.get_selection().set_mode(Gtk.SelectionMode.SINGLE);
const spinButton = new Gtk.SpinButton({ let appColumn = new Gtk.TreeViewColumn({
adjustment: new Gtk.Adjustment({ expand: true,
lower: 1, sort_column_id: Columns.DISPLAY_NAME,
upper: WORKSPACE_MAX, title: _('Application'),
step_increment: 1,
}),
snap_to_ticks: true,
margin_end: 6,
}); });
this.bind_property('value', let iconRenderer = new Gtk.CellRendererPixbuf();
spinButton, 'value', appColumn.pack_start(iconRenderer, false);
GObject.BindingFlags.SYNC_CREATE | GObject.BindingFlags.BIDIRECTIONAL); appColumn.add_attribute(iconRenderer, 'gicon', Columns.ICON);
box.add(spinButton); let nameRenderer = new Gtk.CellRendererText();
appColumn.pack_start(nameRenderer, true);
appColumn.add_attribute(nameRenderer, 'text', Columns.DISPLAY_NAME);
this._treeView.append_column(appColumn);
const button = new Gtk.Button({ let workspaceColumn = new Gtk.TreeViewColumn({
action_name: 'rules.remove', title: _('Workspace'),
action_target: new GLib.Variant('s', this.id), sort_column_id: Columns.WORKSPACE,
image: new Gtk.Image({
icon_name: 'edit-delete-symbolic',
pixel_size: 16,
}),
}); });
box.add(button); let workspaceRenderer = new Gtk.CellRendererSpin({ editable: true });
workspaceRenderer.connect('edited', this._workspaceEdited.bind(this));
workspaceColumn.pack_start(workspaceRenderer, true);
workspaceColumn.add_attribute(workspaceRenderer, 'adjustment', Columns.ADJUSTMENT);
workspaceColumn.add_attribute(workspaceRenderer, 'text', Columns.WORKSPACE);
this._treeView.append_column(workspaceColumn);
this.add(box); scrolled.add(this._treeView);
this.connect('notify::value', () => { let toolbar = new Gtk.Toolbar({ icon_size: Gtk.IconSize.SMALL_TOOLBAR });
const actionGroup = this.get_action_group('rules'); toolbar.get_style_context().add_class(Gtk.STYLE_CLASS_INLINE_TOOLBAR);
actionGroup.activate_action('update', null); this.add(toolbar);
let newButton = new Gtk.ToolButton({
icon_name: 'bookmark-new-symbolic',
label: _('Add Rule'),
is_important: true,
}); });
newButton.connect('clicked', this._createNew.bind(this));
toolbar.add(newButton);
this.show_all(); let delButton = new Gtk.ToolButton({ icon_name: 'edit-delete-symbolic' });
delButton.connect('clicked', this._deleteSelected.bind(this));
toolbar.add(delButton);
let selection = this._treeView.get_selection();
selection.connect('changed', () => {
delButton.sensitive = selection.count_selected_rows() > 0;
});
delButton.sensitive = selection.count_selected_rows() > 0;
this._changedPermitted = true;
this._refresh();
} }
get id() { _createNew() {
return this._appInfo.get_id(); let dialog = new Gtk.Dialog({
} title: _('Create new matching rule'),
}); transient_for: this.get_toplevel(),
use_header_bar: true,
const NewRuleRow = GObject.registerClass(
class NewRuleRow extends Gtk.ListBoxRow {
_init() {
super._init({
action_name: 'rules.add',
});
this.get_accessible().set_name(_('Add Rule'));
this.add(new Gtk.Image({
icon_name: 'list-add-symbolic',
pixel_size: 16,
margin_top: 12,
margin_bottom: 12,
margin_start: 12,
margin_end: 12,
}));
this.show_all();
}
});
const NewRuleDialog = GObject.registerClass(
class NewRuleDialog extends Gtk.AppChooserDialog {
_init(parent) {
super._init({
transient_for: parent,
modal: true, modal: true,
}); });
dialog.add_button(Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL);
let addButton = dialog.add_button(_('Add'), Gtk.ResponseType.OK);
dialog.set_default_response(Gtk.ResponseType.OK);
this._settings = ExtensionUtils.getSettings(); let grid = new Gtk.Grid({
column_spacing: 10,
this.get_widget().set({ row_spacing: 15,
show_all: true, margin: 10,
show_other: true, // hide more button
}); });
dialog._appChooser = new Gtk.AppChooserWidget({ show_all: true });
dialog._appChooser.connect('application-selected', (w, appInfo) => {
addButton.sensitive = appInfo && this._checkId(appInfo.get_id());
});
let appInfo = dialog._appChooser.get_app_info();
addButton.sensitive = appInfo && this._checkId(appInfo.get_id());
this.get_widget().connect('application-selected', grid.attach(dialog._appChooser, 0, 0, 2, 1);
this._updateSensitivity.bind(this)); grid.attach(new Gtk.Label({
this._updateSensitivity(); label: _('Workspace'),
halign: Gtk.Align.END,
}), 0, 1, 1, 1);
let adjustment = new Gtk.Adjustment({
lower: 1,
upper: WORKSPACE_MAX,
step_increment: 1,
});
dialog._spin = new Gtk.SpinButton({
adjustment,
snap_to_ticks: true,
});
dialog._spin.set_value(1);
grid.attach(dialog._spin, 1, 1, 1, 1);
dialog.get_content_area().add(grid);
this.show(); dialog.connect('response', (dlg, id) => {
if (id !== Gtk.ResponseType.OK) {
dialog.destroy();
return;
}
appInfo = dialog._appChooser.get_app_info();
if (!appInfo)
return;
let index = Math.floor(dialog._spin.value);
if (isNaN(index) || index < 0)
index = 1;
this._changedPermitted = false;
this._appendItem(appInfo.get_id(), index);
this._changedPermitted = true;
this._appendRow(appInfo, index);
dialog.destroy();
});
dialog.show_all();
} }
_updateSensitivity() { _deleteSelected() {
const rules = this._settings.get_strv(SETTINGS_KEY); let [any, model_, iter] = this._treeView.get_selection().get_selected();
const appInfo = this.get_widget().get_app_info();
this.set_response_sensitive(Gtk.ResponseType.OK, if (any) {
appInfo && !rules.some(i => i.startsWith(appInfo.get_id()))); let appInfo = this._store.get_value(iter, Columns.APPINFO);
this._changedPermitted = false;
this._removeItem(appInfo.get_id());
this._changedPermitted = true;
this._store.remove(iter);
}
}
_workspaceEdited(renderer, pathString, text) {
let index = parseInt(text);
if (isNaN(index) || index < 0)
index = 1;
let path = Gtk.TreePath.new_from_string(pathString);
let [model_, iter] = this._store.get_iter(path);
let appInfo = this._store.get_value(iter, Columns.APPINFO);
this._changedPermitted = false;
this._changeItem(appInfo.get_id(), index);
this._store.set_value(iter, Columns.WORKSPACE, index);
this._changedPermitted = true;
}
_refresh() {
if (!this._changedPermitted)
// Ignore this notification, model is being modified outside
return;
this._store.clear();
let currentItems = this._settings.get_strv(SETTINGS_KEY);
let validItems = [];
for (let i = 0; i < currentItems.length; i++) {
let [id, index] = currentItems[i].split(':');
let appInfo = Gio.DesktopAppInfo.new(id);
if (!appInfo)
continue;
validItems.push(currentItems[i]);
this._appendRow(appInfo, parseInt(index));
}
if (validItems.length !== currentItems.length) // some items were filtered out
this._settings.set_strv(SETTINGS_KEY, validItems);
}
_appendRow(appInfo, workspace) {
let iter = this._store.append();
let icon = appInfo.get_icon();
let displayName = appInfo.get_display_name();
let adj = new Gtk.Adjustment({
lower: 1,
upper: WORKSPACE_MAX,
step_increment: 1,
value: workspace,
});
let { APPINFO, ICON, DISPLAY_NAME, WORKSPACE, ADJUSTMENT } = Columns;
this._store.set(iter,
[APPINFO, ICON, DISPLAY_NAME, WORKSPACE, ADJUSTMENT],
[appInfo, icon, displayName, workspace, adj]);
}
_checkId(id) {
let items = this._settings.get_strv(SETTINGS_KEY);
return !items.some(i => i.startsWith(`${id}:`));
}
_appendItem(id, workspace) {
let currentItems = this._settings.get_strv(SETTINGS_KEY);
currentItems.push(`${id}:${workspace}`);
this._settings.set_strv(SETTINGS_KEY, currentItems);
}
_removeItem(id) {
let currentItems = this._settings.get_strv(SETTINGS_KEY);
let index = currentItems.map(el => el.split(':')[0]).indexOf(id);
if (index < 0)
return;
currentItems.splice(index, 1);
this._settings.set_strv(SETTINGS_KEY, currentItems);
}
_changeItem(id, workspace) {
let currentItems = this._settings.get_strv(SETTINGS_KEY);
let index = currentItems.map(el => el.split(':')[0]).indexOf(id);
if (index < 0)
currentItems.push(`${id}:${workspace}`);
else
currentItems[index] = `${id}:${workspace}`;
this._settings.set_strv(SETTINGS_KEY, currentItems);
} }
}); });
function init() { function init() {
ExtensionUtils.initTranslations(); ExtensionUtils.initTranslations();
} }
function buildPrefsWidget() { function buildPrefsWidget() {
return new AutoMoveSettingsWidget(); let widget = new Widget({ margin: 12 });
widget.show_all();
return widget;
} }
+4 -13
View File
@@ -1,6 +1,6 @@
/* exported init enable disable */ /* exported init enable disable */
// Drive menu extension // Drive menu extension
const { Clutter, Gio, GObject, Shell, St } = imports.gi; const { Gio, GObject, Shell, St } = imports.gi;
const Gettext = imports.gettext.domain('gnome-shell-extensions'); const Gettext = imports.gettext.domain('gnome-shell-extensions');
const _ = Gettext.gettext; const _ = Gettext.gettext;
@@ -14,15 +14,9 @@ const ShellMountOperation = imports.ui.shellMountOperation;
var MountMenuItem = GObject.registerClass( var MountMenuItem = GObject.registerClass(
class MountMenuItem extends PopupMenu.PopupBaseMenuItem { class MountMenuItem extends PopupMenu.PopupBaseMenuItem {
_init(mount) { _init(mount) {
super._init({ super._init();
style_class: 'drive-menu-item',
});
this.label = new St.Label({ this.label = new St.Label({ text: mount.get_name() });
text: mount.get_name(),
x_expand: true,
y_align: Clutter.ActorAlign.CENTER,
});
this.add_child(this.label); this.add_child(this.label);
this.label_actor = this.label; this.label_actor = this.label;
@@ -34,10 +28,7 @@ class MountMenuItem extends PopupMenu.PopupBaseMenuItem {
icon_name: 'media-eject-symbolic', icon_name: 'media-eject-symbolic',
style_class: 'popup-menu-icon', style_class: 'popup-menu-icon',
}); });
let ejectButton = new St.Button({ let ejectButton = new St.Button({ child: ejectIcon });
child: ejectIcon,
style_class: 'button',
});
ejectButton.connect('clicked', this._eject.bind(this)); ejectButton.connect('clicked', this._eject.bind(this));
this.add(ejectButton); this.add(ejectButton);
+1 -7
View File
@@ -1,7 +1 @@
.drive-menu-item { spacing: 12px; } /* This extensions requires no custom styling */
.drive-menu-item .button {
border-radius: 99px;
padding: 3px;
min-height: auto;
}
+20 -4
View File
@@ -3,7 +3,7 @@ js_sources = []
metadata_name = 'metadata.json' metadata_name = 'metadata.json'
foreach e : enabled_extensions foreach e : all_extensions
uuid = e + uuid_suffix uuid = e + uuid_suffix
metadata_conf = configuration_data() metadata_conf = configuration_data()
@@ -19,11 +19,27 @@ foreach e : enabled_extensions
subdir(e) subdir(e)
install_data (extension_sources + extension_data, js_sources += extension_sources
install_dir: join_paths(extensiondir, uuid)
) if (enabled_extensions.contains(e))
install_data (extension_sources + extension_data,
install_dir: join_paths(extensiondir, uuid)
)
endif
endforeach endforeach
install_data (extension_schemas, install_data (extension_schemas,
install_dir: schemadir install_dir: schemadir
) )
foreach js_source : js_sources
if (js68.found())
path_array = '@0@'.format(js_source).split('/')
name = join_paths(path_array[-2], path_array[-1])
test('Checking syntax of ' + name, js68,
args: ['-s', '-c', js_source],
workdir: meson.current_source_dir()
)
endif
endforeach
+3 -12
View File
@@ -20,9 +20,7 @@ const PLACE_ICON_SIZE = 16;
var PlaceMenuItem = GObject.registerClass( var PlaceMenuItem = GObject.registerClass(
class PlaceMenuItem extends PopupMenu.PopupBaseMenuItem { class PlaceMenuItem extends PopupMenu.PopupBaseMenuItem {
_init(info) { _init(info) {
super._init({ super._init();
style_class: 'place-menu-item',
});
this._info = info; this._info = info;
this._icon = new St.Icon({ this._icon = new St.Icon({
@@ -31,11 +29,7 @@ class PlaceMenuItem extends PopupMenu.PopupBaseMenuItem {
}); });
this.add_child(this._icon); this.add_child(this._icon);
this._label = new St.Label({ this._label = new St.Label({ text: info.name, x_expand: true });
text: info.name,
x_expand: true,
y_align: Clutter.ActorAlign.CENTER,
});
this.add_child(this._label); this.add_child(this._label);
if (info.isRemovable()) { if (info.isRemovable()) {
@@ -43,10 +37,7 @@ class PlaceMenuItem extends PopupMenu.PopupBaseMenuItem {
icon_name: 'media-eject-symbolic', icon_name: 'media-eject-symbolic',
style_class: 'popup-menu-icon', style_class: 'popup-menu-icon',
}); });
this._ejectButton = new St.Button({ this._ejectButton = new St.Button({ child: this._ejectIcon });
child: this._ejectIcon,
style_class: 'button',
});
this._ejectButton.connect('clicked', info.eject.bind(info)); this._ejectButton.connect('clicked', info.eject.bind(info));
this.add_child(this._ejectButton); this.add_child(this._ejectButton);
} }
+1 -8
View File
@@ -1,8 +1 @@
.place-menu-item .button { /* none used*/
border-radius: 99px;
padding: 3px;
min-height: auto;
}
.place-menu-item .button:ltr { margin-left: 6px; }
.place-menu-item .button:rtl { margin-right: 6px; }
+8 -9
View File
@@ -2,14 +2,11 @@
// Load shell theme from ~/.local/share/themes/name/gnome-shell // Load shell theme from ~/.local/share/themes/name/gnome-shell
/* exported init */ /* exported init */
const { Gio } = imports.gi; const { Gio, GLib } = imports.gi;
const ExtensionUtils = imports.misc.extensionUtils; const ExtensionUtils = imports.misc.extensionUtils;
const Main = imports.ui.main; const Main = imports.ui.main;
const Me = ExtensionUtils.getCurrentExtension();
const Util = Me.imports.util;
const SETTINGS_KEY = 'name'; const SETTINGS_KEY = 'name';
class ThemeManager { class ThemeManager {
@@ -37,11 +34,13 @@ class ThemeManager {
let themeName = this._settings.get_string(SETTINGS_KEY); let themeName = this._settings.get_string(SETTINGS_KEY);
if (themeName) { if (themeName) {
const stylesheetPaths = Util.getThemeDirs() let stylesheetPaths = [
.map(dir => `${dir}/${themeName}/gnome-shell/gnome-shell.css`); [GLib.get_home_dir(), '.themes'],
[GLib.get_user_data_dir(), 'themes'],
stylesheetPaths.push(...Util.getModeThemeDirs() ...GLib.get_system_data_dirs().map(dir => [dir, 'themes']),
.map(dir => `${dir}/${themeName}.css`)); ].map(themeDir => GLib.build_filenamev([
...themeDir, themeName, 'gnome-shell', 'gnome-shell.css',
]));
stylesheet = stylesheetPaths.find(path => { stylesheet = stylesheetPaths.find(path => {
let file = Gio.file_new_for_path(path); let file = Gio.file_new_for_path(path);
-1
View File
@@ -4,5 +4,4 @@ extension_data += configure_file(
configuration: metadata_conf configuration: metadata_conf
) )
extension_sources += files('prefs.js', 'util.js')
extension_schemas += files(metadata_conf.get('gschemaname') + '.gschema.xml') extension_schemas += files(metadata_conf.get('gschemaname') + '.gschema.xml')
-189
View File
@@ -1,189 +0,0 @@
// -*- mode: js2; indent-tabs-mode: nil; js2-basic-offset: 4 -*-
/* exported init buildPrefsWidget */
// we use async/await here to not block the mainloop, not to parallelize
/* eslint-disable no-await-in-loop */
const { Gio, GLib, GObject, Gtk } = imports.gi;
const ExtensionUtils = imports.misc.extensionUtils;
const Me = ExtensionUtils.getCurrentExtension();
const Util = Me.imports.util;
Gio._promisify(Gio._LocalFilePrototype,
'enumerate_children_async', 'enumerate_children_finish');
Gio._promisify(Gio._LocalFilePrototype,
'query_info_async', 'query_info_finish');
Gio._promisify(Gio.FileEnumerator.prototype,
'next_files_async', 'next_files_finish');
const UserThemePrefsWidget = GObject.registerClass(
class UserThemePrefsWidget extends Gtk.ScrolledWindow {
_init() {
super._init({
hscrollbar_policy: Gtk.PolicyType.NEVER,
});
const box = new Gtk.Box();
this.add(box);
this._list = new Gtk.ListBox({
selection_mode: Gtk.SelectionMode.NONE,
halign: Gtk.Align.CENTER,
valign: Gtk.Align.START,
hexpand: true,
margin: 60,
});
this._list.get_style_context().add_class('frame');
this._list.set_header_func(this._updateHeader.bind(this));
box.add(this._list);
this._actionGroup = new Gio.SimpleActionGroup();
this._list.insert_action_group('theme', this._actionGroup);
this._settings = ExtensionUtils.getSettings();
this._actionGroup.add_action(
this._settings.create_action('name'));
this.connect('destroy', () => this._settings.run_dispose());
this._rows = new Map();
this._addTheme(''); // default
this._collectThemes();
}
async _collectThemes() {
for (const dirName of Util.getThemeDirs()) {
const dir = Gio.File.new_for_path(dirName);
for (const name of await this._enumerateDir(dir)) {
if (this._rows.has(name))
continue;
const file = dir.resolve_relative_path(
`${name}/gnome-shell/gnome-shell.css`);
try {
await file.query_info_async(
Gio.FILE_ATTRIBUTE_STANDARD_NAME,
Gio.FileQueryInfoFlags.NONE,
GLib.PRIORITY_DEFAULT, null);
this._addTheme(name);
} catch (e) {
if (!e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.NOT_FOUND))
logError(e);
}
}
}
for (const dirName of Util.getModeThemeDirs()) {
const dir = Gio.File.new_for_path(dirName);
for (const filename of await this._enumerateDir(dir)) {
if (!filename.endsWith('.css'))
continue;
const name = filename.slice(0, -4);
if (!this._rows.has(name))
this._addTheme(name);
}
}
}
_addTheme(name) {
const row = new ThemeRow(name);
this._rows.set(name, row);
this._list.add(row);
row.show_all();
}
async _enumerateDir(dir) {
const fileInfos = [];
let fileEnum;
try {
fileEnum = await dir.enumerate_children_async(
Gio.FILE_ATTRIBUTE_STANDARD_NAME,
Gio.FileQueryInfoFlags.NONE,
GLib.PRIORITY_DEFAULT, null);
} catch (e) {
if (!e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.NOT_FOUND))
logError(e);
return [];
}
let infos;
do {
infos = await fileEnum.next_files_async(100,
GLib.PRIORITY_DEFAULT, null);
fileInfos.push(...infos);
} while (infos.length > 0);
return fileInfos.map(info => info.get_name());
}
_updateHeader(row, before) {
if (!before || row.get_header())
return;
row.set_header(new Gtk.Separator());
}
});
const ThemeRow = GObject.registerClass(
class ThemeRow extends Gtk.ListBoxRow {
_init(name) {
this._name = new GLib.Variant('s', name);
super._init({
action_name: 'theme.name',
action_target: this._name,
});
const box = new Gtk.Box({
spacing: 12,
margin: 12,
});
this.add(box);
box.add(new Gtk.Label({
label: name || 'Default',
hexpand: true,
xalign: 0,
max_width_chars: 25,
width_chars: 25,
}));
this._checkmark = new Gtk.Image({
icon_name: 'emblem-ok-symbolic',
pixel_size: 16,
});
box.add(this._checkmark);
box.show_all();
const id = this.connect('parent-set', () => {
this.disconnect(id);
const actionGroup = this.get_action_group('theme');
actionGroup.connect('action-state-changed::name',
this._syncCheckmark.bind(this));
this._syncCheckmark();
});
}
_syncCheckmark() {
const actionGroup = this.get_action_group('theme');
const state = actionGroup.get_action_state('name');
this._checkmark.opacity = this._name.equal(state);
}
});
function init() {
}
function buildPrefsWidget() {
let widget = new UserThemePrefsWidget();
widget.show_all();
return widget;
}
-17
View File
@@ -1,17 +0,0 @@
/* exported getThemeDirs getModeThemeDirs */
const { GLib } = imports.gi;
const fn = (...args) => GLib.build_filenamev(args);
function getThemeDirs() {
return [
fn(GLib.get_home_dir(), '.themes'),
fn(GLib.get_user_data_dir(), 'themes'),
...GLib.get_system_data_dirs().map(dir => fn(dir, 'themes')),
];
}
function getModeThemeDirs() {
return GLib.get_system_data_dirs()
.map(dir => fn(dir, 'gnome-shell', 'theme'));
}
+13 -4
View File
@@ -220,12 +220,13 @@ const BaseButton = GObject.registerClass({
super._init({ super._init({
style_class: 'window-button', style_class: 'window-button',
x_fill: true,
y_fill: true,
can_focus: true, can_focus: true,
x_expand: true,
button_mask: St.ButtonMask.ONE | St.ButtonMask.THREE, button_mask: St.ButtonMask.ONE | St.ButtonMask.THREE,
}); });
this.connect('notify::allocation', this.connect('allocation-changed',
this._updateIconGeometry.bind(this)); this._updateIconGeometry.bind(this));
this.connect('clicked', this._onClicked.bind(this)); this.connect('clicked', this._onClicked.bind(this));
this.connect('destroy', this._onDestroy.bind(this)); this.connect('destroy', this._onDestroy.bind(this));
@@ -490,6 +491,8 @@ class AppButton extends BaseButton {
this._singleWindowTitle = new St.Bin({ this._singleWindowTitle = new St.Bin({
x_expand: true, x_expand: true,
y_fill: true,
x_align: St.Align.START,
}); });
stack.add_actor(this._singleWindowTitle); stack.add_actor(this._singleWindowTitle);
@@ -937,7 +940,10 @@ class WindowList extends St.Widget {
let button = new AppButton(app, this._perMonitor, this._monitor.index); let button = new AppButton(app, this._perMonitor, this._monitor.index);
this._settings.bind('display-all-workspaces', this._settings.bind('display-all-workspaces',
button, 'ignore-workspace', Gio.SettingsBindFlags.GET); button, 'ignore-workspace', Gio.SettingsBindFlags.GET);
this._windowList.add_child(button); this._windowList.layout_manager.pack(button,
true, true, true,
Clutter.BoxAlignment.START,
Clutter.BoxAlignment.START);
} }
_removeApp(app) { _removeApp(app) {
@@ -964,7 +970,10 @@ class WindowList extends St.Widget {
let button = new WindowButton(win, this._perMonitor, this._monitor.index); let button = new WindowButton(win, this._perMonitor, this._monitor.index);
this._settings.bind('display-all-workspaces', this._settings.bind('display-all-workspaces',
button, 'ignore-workspace', Gio.SettingsBindFlags.GET); button, 'ignore-workspace', Gio.SettingsBindFlags.GET);
this._windowList.add_child(button); this._windowList.layout_manager.pack(button,
true, true, true,
Clutter.BoxAlignment.START,
Clutter.BoxAlignment.START);
} }
_onWindowRemoved(ws, win) { _onWindowRemoved(ws, win) {
+22 -38
View File
@@ -14,17 +14,13 @@ function init() {
} }
const WindowListPrefsWidget = GObject.registerClass( const WindowListPrefsWidget = GObject.registerClass(
class WindowListPrefsWidget extends Gtk.Box { class WindowListPrefsWidget extends Gtk.Grid {
_init() { _init(params) {
super._init({ super._init(params);
orientation: Gtk.Orientation.VERTICAL,
spacing: 6, this.margin = 24;
margin_top: 36, this.row_spacing = 6;
margin_bottom: 36, this.orientation = Gtk.Orientation.VERTICAL;
margin_start: 36,
margin_end: 36,
halign: Gtk.Align.CENTER,
});
let groupingLabel = '<b>%s</b>'.format(_('Window Grouping')); let groupingLabel = '<b>%s</b>'.format(_('Window Grouping'));
this.add(new Gtk.Label({ this.add(new Gtk.Label({
@@ -32,22 +28,15 @@ class WindowListPrefsWidget extends Gtk.Box {
halign: Gtk.Align.START, halign: Gtk.Align.START,
})); }));
const box = new Gtk.Box({ let align = new Gtk.Alignment({ left_padding: 12 });
this.add(align);
let grid = new Gtk.Grid({
orientation: Gtk.Orientation.VERTICAL, orientation: Gtk.Orientation.VERTICAL,
spacing: 12, row_spacing: 6,
margin_bottom: 12, column_spacing: 6,
}); });
this.add(box); align.add(grid);
const context = box.get_style_context();
const cssProvider = new Gtk.CssProvider();
cssProvider.load_from_data(
'box { padding: 12px; }');
context.add_provider(cssProvider,
Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION);
context.add_class('frame');
context.add_class('view');
this._settings = ExtensionUtils.getSettings(); this._settings = ExtensionUtils.getSettings();
let currentMode = this._settings.get_string('grouping-mode'); let currentMode = this._settings.get_string('grouping-mode');
@@ -61,7 +50,6 @@ class WindowListPrefsWidget extends Gtk.Box {
}; };
let radio = null; let radio = null;
let currentRadio = null;
for (let i = 0; i < modes.length; i++) { for (let i = 0; i < modes.length; i++) {
let mode = modes[i]; let mode = modes[i];
let label = modeLabels[mode]; let label = modeLabels[mode];
@@ -71,15 +59,11 @@ class WindowListPrefsWidget extends Gtk.Box {
} }
radio = new Gtk.RadioButton({ radio = new Gtk.RadioButton({
active: !i, active: currentMode === mode,
label, label,
group: radio, group: radio,
margin_end: 12,
}); });
box.add(radio); grid.add(radio);
if (currentMode === mode)
currentRadio = radio;
radio.connect('toggled', button => { radio.connect('toggled', button => {
if (button.active) if (button.active)
@@ -87,25 +71,25 @@ class WindowListPrefsWidget extends Gtk.Box {
}); });
} }
if (currentRadio)
currentRadio.active = true;
let check = new Gtk.CheckButton({ let check = new Gtk.CheckButton({
label: _('Show on all monitors'), label: _('Show on all monitors'),
margin_top: 6,
}); });
this._settings.bind('show-on-all-monitors', check, 'active', Gio.SettingsBindFlags.DEFAULT); this._settings.bind('show-on-all-monitors', check, 'active', Gio.SettingsBindFlags.DEFAULT);
this.add(check); this.add(check);
check = new Gtk.CheckButton({ check = new Gtk.CheckButton({
label: _('Show windows from all workspaces'), label: _('Show windows from all workspaces'),
margin_top: 6,
}); });
this._settings.bind('display-all-workspaces', check, 'active', Gio.SettingsBindFlags.DEFAULT); this._settings.bind('display-all-workspaces', check, 'active', Gio.SettingsBindFlags.DEFAULT);
this.add(check); this.add(check);
this.show_all();
} }
}); });
function buildPrefsWidget() { function buildPrefsWidget() {
return new WindowListPrefsWidget(); let widget = new WindowListPrefsWidget();
widget.show_all();
return widget;
} }
+2
View File
@@ -286,6 +286,8 @@ class WindowPickerToggle extends St.Button {
style_class: 'window-picker-toggle', style_class: 'window-picker-toggle',
child: iconBin, child: iconBin,
visible: !Main.sessionMode.hasOverview, visible: !Main.sessionMode.hasOverview,
x_fill: true,
y_fill: true,
toggle_mode: true, toggle_mode: true,
}); });
@@ -106,6 +106,8 @@ class WorkspaceThumbnail extends St.Button {
layout_manager: new Clutter.BinLayout(), layout_manager: new Clutter.BinLayout(),
clip_to_allocation: true, clip_to_allocation: true,
}), }),
x_fill: true,
y_fill: true,
}); });
this.connect('destroy', this._onDestroy.bind(this)); this.connect('destroy', this._onDestroy.bind(this));
@@ -112,6 +112,8 @@ class WorkspaceThumbnail extends St.Button {
layout_manager: new Clutter.BinLayout(), layout_manager: new Clutter.BinLayout(),
clip_to_allocation: true, clip_to_allocation: true,
}), }),
x_fill: true,
y_fill: true,
}); });
this.connect('destroy', this._onDestroy.bind(this)); this.connect('destroy', this._onDestroy.bind(this));
+167 -196
View File
@@ -1,7 +1,7 @@
// -*- mode: js2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- // -*- mode: js2; indent-tabs-mode: nil; js2-basic-offset: 4 -*-
/* exported init buildPrefsWidget */ /* exported init buildPrefsWidget */
const { Gdk, Gio, GLib, GObject, Gtk, Pango } = imports.gi; const { Gio, GObject, Gtk } = imports.gi;
const Gettext = imports.gettext.domain('gnome-shell-extensions'); const Gettext = imports.gettext.domain('gnome-shell-extensions');
const _ = Gettext.gettext; const _ = Gettext.gettext;
@@ -12,221 +12,189 @@ const ExtensionUtils = imports.misc.extensionUtils;
const WORKSPACE_SCHEMA = 'org.gnome.desktop.wm.preferences'; const WORKSPACE_SCHEMA = 'org.gnome.desktop.wm.preferences';
const WORKSPACE_KEY = 'workspace-names'; const WORKSPACE_KEY = 'workspace-names';
const WorkspaceNameModel = GObject.registerClass(
class WorkspaceNameModel extends Gtk.ListStore {
_init(params) {
super._init(params);
this.set_column_types([GObject.TYPE_STRING]);
this.Columns = {
LABEL: 0,
};
this._settings = new Gio.Settings({ schema_id: WORKSPACE_SCHEMA });
this._reloadFromSettings();
// overriding class closure doesn't work, because GtkTreeModel
// plays tricks with marshallers and class closures
this.connect('row-changed', this._onRowChanged.bind(this));
this.connect('row-inserted', this._onRowInserted.bind(this));
this.connect('row-deleted', this._onRowDeleted.bind(this));
}
_reloadFromSettings() {
if (this._preventChanges)
return;
this._preventChanges = true;
let newNames = this._settings.get_strv(WORKSPACE_KEY);
let i = 0;
let [ok, iter] = this.get_iter_first();
while (ok && i < newNames.length) {
this.set(iter, [this.Columns.LABEL], [newNames[i]]);
ok = this.iter_next(iter);
i++;
}
while (ok)
ok = this.remove(iter);
for (; i < newNames.length; i++) {
iter = this.append();
this.set(iter, [this.Columns.LABEL], [newNames[i]]);
}
this._preventChanges = false;
}
_onRowChanged(self, path, iter) {
if (this._preventChanges)
return;
this._preventChanges = true;
let index = path.get_indices()[0];
let names = this._settings.get_strv(WORKSPACE_KEY);
if (index >= names.length) {
// fill with blanks
for (let i = names.length; i <= index; i++)
names[i] = '';
}
names[index] = this.get_value(iter, this.Columns.LABEL);
this._settings.set_strv(WORKSPACE_KEY, names);
this._preventChanges = false;
}
_onRowInserted(self, path, iter) {
if (this._preventChanges)
return;
this._preventChanges = true;
let index = path.get_indices()[0];
let names = this._settings.get_strv(WORKSPACE_KEY);
let label = this.get_value(iter, this.Columns.LABEL) || '';
names.splice(index, 0, label);
this._settings.set_strv(WORKSPACE_KEY, names);
this._preventChanges = false;
}
_onRowDeleted(self, path) {
if (this._preventChanges)
return;
this._preventChanges = true;
let index = path.get_indices()[0];
let names = this._settings.get_strv(WORKSPACE_KEY);
if (index >= names.length)
return;
names.splice(index, 1);
// compact the array
for (let i = names.length - 1; i >= 0 && !names[i]; i++)
names.pop();
this._settings.set_strv(WORKSPACE_KEY, names);
this._preventChanges = false;
}
});
const WorkspaceSettingsWidget = GObject.registerClass( const WorkspaceSettingsWidget = GObject.registerClass(
class WorkspaceSettingsWidget extends Gtk.ScrolledWindow { class WorkspaceSettingsWidget extends Gtk.Grid {
_init() { _init(params) {
super._init({ super._init(params);
hscrollbar_policy: Gtk.PolicyType.NEVER, this.margin = 12;
}); this.orientation = Gtk.Orientation.VERTICAL;
const box = new Gtk.Box({ this.add(new Gtk.Label({
orientation: Gtk.Orientation.VERTICAL,
halign: Gtk.Align.CENTER,
spacing: 12,
margin_top: 36,
margin_bottom: 36,
margin_start: 36,
margin_end: 36,
});
this.add(box);
box.add(new Gtk.Label({
label: '<b>%s</b>'.format(_('Workspace Names')), label: '<b>%s</b>'.format(_('Workspace Names')),
use_markup: true, use_markup: true,
margin_bottom: 6,
hexpand: true,
halign: Gtk.Align.START, halign: Gtk.Align.START,
})); }));
this._list = new Gtk.ListBox({ let scrolled = new Gtk.ScrolledWindow({ shadow_type: Gtk.ShadowType.IN });
selection_mode: Gtk.SelectionMode.NONE, scrolled.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC);
valign: Gtk.Align.START, this.add(scrolled);
});
this._list.set_header_func(this._updateHeader.bind(this));
this._list.connect('row-activated', (l, row) => row.edit());
box.add(this._list);
const context = this._list.get_style_context(); this._store = new WorkspaceNameModel();
const cssProvider = new Gtk.CssProvider(); this._treeView = new Gtk.TreeView({
cssProvider.load_from_data( model: this._store,
'list { min-width: 25em; }'); headers_visible: false,
reorderable: true,
context.add_provider(cssProvider,
Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION);
context.add_class('frame');
this._list.add(new NewWorkspaceRow());
this._actionGroup = new Gio.SimpleActionGroup();
this._list.insert_action_group('workspaces', this._actionGroup);
let action;
action = new Gio.SimpleAction({ name: 'add' });
action.connect('activate', () => {
const names = this._settings.get_strv(WORKSPACE_KEY);
this._settings.set_strv(WORKSPACE_KEY, [
...names,
_('Workspace %d').format(names.length + 1),
]);
});
this._actionGroup.add_action(action);
action = new Gio.SimpleAction({
name: 'remove',
parameter_type: new GLib.VariantType('s'),
});
action.connect('activate', (a, param) => {
const removed = param.deepUnpack();
this._settings.set_strv(WORKSPACE_KEY,
this._settings.get_strv(WORKSPACE_KEY)
.filter(name => name !== removed));
});
this._actionGroup.add_action(action);
action = new Gio.SimpleAction({ name: 'update' });
action.connect('activate', () => {
const names = this._getWorkspaceRows().map(row => row.name);
this._settings.set_strv(WORKSPACE_KEY, names);
});
this._actionGroup.add_action(action);
this._settings = new Gio.Settings({
schema_id: WORKSPACE_SCHEMA,
});
this._settings.connect(`changed::${WORKSPACE_KEY}`,
this._sync.bind(this));
this._sync();
this.show_all();
}
_getWorkspaceRows() {
return this._list.get_children().filter(row => row.name);
}
_sync() {
const rows = this._getWorkspaceRows();
const oldNames = rows.map(row => row.name);
const newNames = this._settings.get_strv(WORKSPACE_KEY);
const removed = oldNames.filter(n => !newNames.includes(n));
const added = newNames.filter(n => !oldNames.includes(n));
removed.forEach(n => rows.find(r => r.name === n).destroy());
added.forEach(n => {
this._list.insert(new WorkspaceRow(n), newNames.indexOf(n));
});
}
_updateHeader(row, before) {
if (!before || row.get_header())
return;
row.set_header(new Gtk.Separator());
}
});
const WorkspaceRow = GObject.registerClass(
class WorkspaceRow extends Gtk.ListBoxRow {
_init(name) {
super._init({ name });
const box = new Gtk.Box({
spacing: 12,
margin_top: 6,
margin_bottom: 6,
margin_start: 6,
margin_end: 6,
});
const label = new Gtk.Label({
hexpand: true, hexpand: true,
xalign: 0, vexpand: true,
max_width_chars: 25,
ellipsize: Pango.EllipsizeMode.END,
});
this.bind_property('name', label, 'label',
GObject.BindingFlags.SYNC_CREATE);
box.add(label);
const image = new Gtk.Image({
icon_name: 'edit-delete-symbolic',
pixel_size: 16,
});
const button = new Gtk.Button({
action_name: 'workspaces.remove',
action_target: new GLib.Variant('s', name),
image,
});
box.add(button);
this._entry = new Gtk.Entry({
max_width_chars: 25,
}); });
this._stack = new Gtk.Stack(); let column = new Gtk.TreeViewColumn({ title: _('Name') });
this._stack.add_named(box, 'display'); let renderer = new Gtk.CellRendererText({ editable: true });
this._stack.add_named(this._entry, 'edit'); renderer.connect('edited', this._cellEdited.bind(this));
this.add(this._stack); column.pack_start(renderer, true);
column.add_attribute(renderer, 'text', this._store.Columns.LABEL);
this._treeView.append_column(column);
this._entry.connect('activate', () => { scrolled.add(this._treeView);
this.name = this._entry.text;
this._stopEdit(); let toolbar = new Gtk.Toolbar({ icon_size: Gtk.IconSize.SMALL_TOOLBAR });
toolbar.get_style_context().add_class(Gtk.STYLE_CLASS_INLINE_TOOLBAR);
let newButton = new Gtk.ToolButton({ icon_name: 'list-add-symbolic' });
newButton.connect('clicked', this._newClicked.bind(this));
toolbar.add(newButton);
let delButton = new Gtk.ToolButton({ icon_name: 'list-remove-symbolic' });
delButton.connect('clicked', this._delClicked.bind(this));
toolbar.add(delButton);
let selection = this._treeView.get_selection();
selection.connect('changed', () => {
delButton.sensitive = selection.count_selected_rows() > 0;
}); });
this._entry.connect('notify::has-focus', () => { delButton.sensitive = selection.count_selected_rows() > 0;
if (this._entry.has_focus)
return;
this._stopEdit();
});
this._entry.connect('key-press-event',
this._onEntryKeyPress.bind(this));
this.connect('notify::name', () => { this.add(toolbar);
button.action_target = new GLib.Variant('s', this.name);
const actionGroup = this.get_action_group('workspaces');
actionGroup.activate_action('update', null);
});
this.show_all();
} }
edit() { _cellEdited(renderer, path, newText) {
this._entry.text = this.name; let [ok, iter] = this._store.get_iter_from_string(path);
this._entry.grab_focus();
this._stack.visible_child_name = 'edit'; if (ok)
this._store.set(iter, [this._store.Columns.LABEL], [newText]);
} }
_stopEdit() { _newClicked() {
this.grab_focus(); let iter = this._store.append();
this._stack.visible_child_name = 'display'; let index = this._store.get_path(iter).get_indices()[0];
let label = _('Workspace %d').format(index + 1);
this._store.set(iter, [this._store.Columns.LABEL], [label]);
} }
_onEntryKeyPress(entry, event) { _delClicked() {
const [, keyval] = event.get_keyval(); let [any, model_, iter] = this._treeView.get_selection().get_selected();
if (keyval !== Gdk.KEY_Escape)
return Gdk.EVENT_PROPAGATE;
this._stopEdit();
return Gdk.EVENT_STOP;
}
});
const NewWorkspaceRow = GObject.registerClass( if (any)
class NewWorkspaceRow extends Gtk.ListBoxRow { this._store.remove(iter);
_init() {
super._init({
action_name: 'workspaces.add',
});
this.get_accessible().set_name(_('Add Workspace'));
this.add(new Gtk.Image({
icon_name: 'list-add-symbolic',
pixel_size: 16,
margin_top: 12,
margin_bottom: 12,
margin_start: 12,
margin_end: 12,
}));
this.show_all();
} }
}); });
@@ -235,5 +203,8 @@ function init() {
} }
function buildPrefsWidget() { function buildPrefsWidget() {
return new WorkspaceSettingsWidget(); let widget = new WorkspaceSettingsWidget();
widget.show_all();
return widget;
} }
+3 -1
View File
@@ -1,5 +1,5 @@
project('gnome-shell-extensions', project('gnome-shell-extensions',
version: '3.37.2', version: '3.36.2',
meson_version: '>= 0.44.0', meson_version: '>= 0.44.0',
license: 'GPL2+' license: 'GPL2+'
) )
@@ -20,6 +20,8 @@ schemadir = join_paths(datadir, 'glib-2.0', 'schemas')
sessiondir = join_paths(datadir, 'gnome-session', 'sessions') sessiondir = join_paths(datadir, 'gnome-session', 'sessions')
xsessiondir = join_paths(datadir, 'xsessions') xsessiondir = join_paths(datadir, 'xsessions')
js68 = find_program('js68', required: false)
ver_arr = meson.project_version().split('.') ver_arr = meson.project_version().split('.')
if ver_arr[1].to_int().is_even() if ver_arr[1].to_int().is_even()
shell_version = '@0@.@1@'.format(ver_arr[0], ver_arr[1]) shell_version = '@0@.@1@'.format(ver_arr[0], ver_arr[1])
+1
View File
@@ -10,6 +10,7 @@ extensions/native-window-placement/org.gnome.shell.extensions.native-window-plac
extensions/places-menu/extension.js extensions/places-menu/extension.js
extensions/places-menu/placeDisplay.js extensions/places-menu/placeDisplay.js
extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml
extensions/user-theme/extension.js
extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml
extensions/window-list/extension.js extensions/window-list/extension.js
extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml
+59 -58
View File
@@ -4,15 +4,15 @@
# Jorge González <jorgegonz@svn.gnome.org>, 2011. # Jorge González <jorgegonz@svn.gnome.org>, 2011.
# Nicolás Satragno <nsatragno@gmail.com>, 2011. # Nicolás Satragno <nsatragno@gmail.com>, 2011.
# #
# Daniel Mustieles <daniel.mustieles@gmail.com>, 2011-2020. # Daniel Mustieles <daniel.mustieles@gmail.com>, 2011-2019.
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: gnome-shell-extensions master\n" "Project-Id-Version: gnome-shell-extensions master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n" "issues\n"
"POT-Creation-Date: 2020-05-03 17:53+0000\n" "POT-Creation-Date: 2019-08-09 22:24+0000\n"
"PO-Revision-Date: 2020-05-04 14:06+0200\n" "PO-Revision-Date: 2019-08-20 12:08+0200\n"
"Last-Translator: Daniel Mustieles <daniel.mustieles@gmail.com>\n" "Last-Translator: Daniel Mustieles <daniel.mustieles@gmail.com>\n"
"Language-Team: Spanish - Spain <gnome-es-list@gnome.org>\n" "Language-Team: Spanish - Spain <gnome-es-list@gnome.org>\n"
"Language: es_ES\n" "Language: es_ES\n"
@@ -20,7 +20,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Gtranslator 3.36.0\n" "X-Generator: Gtranslator 3.32.1\n"
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3 #: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
msgid "GNOME Classic" msgid "GNOME Classic"
@@ -34,7 +34,7 @@ msgstr "Esta sesión inicia GNOME clásico"
msgid "Favorites" msgid "Favorites"
msgstr "Favoritos" msgstr "Favoritos"
#: extensions/apps-menu/extension.js:369 #: extensions/apps-menu/extension.js:368
msgid "Applications" msgid "Applications"
msgstr "Aplicaciones" msgstr "Aplicaciones"
@@ -50,27 +50,39 @@ msgstr ""
"Una lista de cadenas, conteniendo cada una un ID de aplicación (nombre de " "Una lista de cadenas, conteniendo cada una un ID de aplicación (nombre de "
"archivo de escritorio), seguido de dos puntos y el número del área de trabajo" "archivo de escritorio), seguido de dos puntos y el número del área de trabajo"
#: extensions/auto-move-windows/prefs.js:35 #: extensions/auto-move-windows/prefs.js:60
#| msgid "Workspace Names" msgid "Application"
msgid "Workspace Rules" msgstr "Aplicación"
msgstr "Reglas de las áreas de trabajo"
#: extensions/auto-move-windows/prefs.js:243 #: extensions/auto-move-windows/prefs.js:71
#: extensions/auto-move-windows/prefs.js:134
msgid "Workspace"
msgstr "Área de trabajo"
#: extensions/auto-move-windows/prefs.js:89
msgid "Add Rule" msgid "Add Rule"
msgstr "Añadir regla" msgstr "Añadir regla"
#: extensions/auto-move-windows/prefs.js:111
msgid "Create new matching rule"
msgstr "Crear regla de coincidencia nueva"
#: extensions/auto-move-windows/prefs.js:117
msgid "Add"
msgstr "Añadir"
#. TRANSLATORS: %s is the filesystem name #. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:112 #: extensions/drive-menu/extension.js:102
#: extensions/places-menu/placeDisplay.js:233 #: extensions/places-menu/placeDisplay.js:232
#, javascript-format #, javascript-format
msgid "Ejecting drive “%s” failed:" msgid "Ejecting drive “%s” failed:"
msgstr "Falló al expulsar el dispositivo «%s»:" msgstr "Falló al expulsar el dispositivo «%s»:"
#: extensions/drive-menu/extension.js:128 #: extensions/drive-menu/extension.js:118
msgid "Removable devices" msgid "Removable devices"
msgstr "Dispositivos extraíbles" msgstr "Dispositivos extraíbles"
#: extensions/drive-menu/extension.js:155 #: extensions/drive-menu/extension.js:145
msgid "Open Files" msgid "Open Files"
msgstr "Abrir archivos" msgstr "Abrir archivos"
@@ -103,8 +115,8 @@ msgstr ""
"los sitúa por debajo. Cambiar esta configuración requiere reiniciar la shell " "los sitúa por debajo. Cambiar esta configuración requiere reiniciar la shell "
"para que tenga efecto." "para que tenga efecto."
#: extensions/places-menu/extension.js:89 #: extensions/places-menu/extension.js:80
#: extensions/places-menu/extension.js:93 #: extensions/places-menu/extension.js:84
msgid "Places" msgid "Places"
msgstr "Lugares" msgstr "Lugares"
@@ -123,11 +135,11 @@ msgstr "Falló al montar el volumen para «%s»"
msgid "Computer" msgid "Computer"
msgstr "Equipo" msgstr "Equipo"
#: extensions/places-menu/placeDisplay.js:359 #: extensions/places-menu/placeDisplay.js:358
msgid "Home" msgid "Home"
msgstr "Carpeta personal" msgstr "Carpeta personal"
#: extensions/places-menu/placeDisplay.js:404 #: extensions/places-menu/placeDisplay.js:403
msgid "Browse Network" msgid "Browse Network"
msgstr "Examinar la red" msgstr "Examinar la red"
@@ -147,47 +159,47 @@ msgstr "Nombre del tema"
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell" msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "El nombre del tema, que se carga desde ~/.themes/nombre/gnome-shell" msgstr "El nombre del tema, que se carga desde ~/.themes/nombre/gnome-shell"
#: extensions/window-list/extension.js:98 #: extensions/window-list/extension.js:99
msgid "Close" msgid "Close"
msgstr "Cerrar" msgstr "Cerrar"
#: extensions/window-list/extension.js:118 #: extensions/window-list/extension.js:119
msgid "Unminimize" msgid "Unminimize"
msgstr "Desminimizar" msgstr "Desminimizar"
#: extensions/window-list/extension.js:118 #: extensions/window-list/extension.js:119
msgid "Minimize" msgid "Minimize"
msgstr "Minimizar" msgstr "Minimizar"
#: extensions/window-list/extension.js:125 #: extensions/window-list/extension.js:126
msgid "Unmaximize" msgid "Unmaximize"
msgstr "Desmaximizar" msgstr "Desmaximizar"
#: extensions/window-list/extension.js:125 #: extensions/window-list/extension.js:126
msgid "Maximize" msgid "Maximize"
msgstr "Maximizar" msgstr "Maximizar"
#: extensions/window-list/extension.js:429 #: extensions/window-list/extension.js:431
msgid "Minimize all" msgid "Minimize all"
msgstr "Minimizar todo" msgstr "Minimizar todo"
#: extensions/window-list/extension.js:435 #: extensions/window-list/extension.js:437
msgid "Unminimize all" msgid "Unminimize all"
msgstr "Desminimizar todo" msgstr "Desminimizar todo"
#: extensions/window-list/extension.js:441 #: extensions/window-list/extension.js:443
msgid "Maximize all" msgid "Maximize all"
msgstr "Maximizar todo" msgstr "Maximizar todo"
#: extensions/window-list/extension.js:449 #: extensions/window-list/extension.js:451
msgid "Unmaximize all" msgid "Unmaximize all"
msgstr "Desmaximizar todo" msgstr "Desmaximizar todo"
#: extensions/window-list/extension.js:457 #: extensions/window-list/extension.js:459
msgid "Close all" msgid "Close all"
msgstr "Cerrar todo" msgstr "Cerrar todo"
#: extensions/window-list/extension.js:737 #: extensions/window-list/extension.js:741
msgid "Window List" msgid "Window List"
msgstr "Lista de ventanas" msgstr "Lista de ventanas"
@@ -204,11 +216,15 @@ msgstr ""
"ventanas. Los valores posibles son «never», «auto» y «always»." "ventanas. Los valores posibles son «never», «auto» y «always»."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20 #: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:100 #: extensions/window-list/prefs.js:82
#| msgid "Show only windows in the current workspace"
msgid "Show windows from all workspaces" msgid "Show windows from all workspaces"
msgstr "Mostrar ventanas de todas las áreas de trabajo" msgstr "Mostrar ventanas de todas las áreas de trabajo"
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:21 #: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:21
#| msgid ""
#| "Whether to show the window list on all connected monitors or only on the "
#| "primary one."
msgid "Whether to show windows from all workspaces or only the current one." msgid "Whether to show windows from all workspaces or only the current one."
msgstr "" msgstr ""
"Indica si se deben mostrar ventanas de todas las áreas de trabajo o sólo de " "Indica si se deben mostrar ventanas de todas las áreas de trabajo o sólo de "
@@ -226,59 +242,44 @@ msgstr ""
"Indica si se debe mostrar la lista de ventanas en todas las pantallas " "Indica si se debe mostrar la lista de ventanas en todas las pantallas "
"conectadas o sólo en la primaria." "conectadas o sólo en la primaria."
#: extensions/window-list/prefs.js:29 #: extensions/window-list/prefs.js:25
msgid "Window Grouping" msgid "Window Grouping"
msgstr "Agrupación de ventanas" msgstr "Agrupación de ventanas"
#: extensions/window-list/prefs.js:58 #: extensions/window-list/prefs.js:47
msgid "Never group windows" msgid "Never group windows"
msgstr "Nunca agrupar las ventanas" msgstr "Nunca agrupar las ventanas"
#: extensions/window-list/prefs.js:59 #: extensions/window-list/prefs.js:48
msgid "Group windows when space is limited" msgid "Group windows when space is limited"
msgstr "Agrupar las ventanas cuando el espacio esté limitado" msgstr "Agrupar las ventanas cuando el espacio esté limitado"
#: extensions/window-list/prefs.js:60 #: extensions/window-list/prefs.js:49
msgid "Always group windows" msgid "Always group windows"
msgstr "Siempre agrupar las ventanas" msgstr "Siempre agrupar las ventanas"
#: extensions/window-list/prefs.js:94 #: extensions/window-list/prefs.js:75
msgid "Show on all monitors" msgid "Show on all monitors"
msgstr "Mostrar en todas las pantallas" msgstr "Mostrar en todas las pantallas"
#: extensions/window-list/workspaceIndicator.js:209 #: extensions/window-list/workspaceIndicator.js:211
#: extensions/workspace-indicator/extension.js:215 #: extensions/workspace-indicator/extension.js:216
msgid "Workspace Indicator" msgid "Workspace Indicator"
msgstr "Indicador de área de trabajo" msgstr "Indicador de área de trabajo"
#: extensions/workspace-indicator/prefs.js:34 #: extensions/workspace-indicator/prefs.js:131
msgid "Workspace Names" msgid "Workspace Names"
msgstr "Nombres de los áreas de trabajo" msgstr "Nombres de los áreas de trabajo"
#: extensions/workspace-indicator/prefs.js:67 #: extensions/workspace-indicator/prefs.js:151
msgid "Name"
msgstr "Nombre"
#: extensions/workspace-indicator/prefs.js:191
#, javascript-format #, javascript-format
msgid "Workspace %d" msgid "Workspace %d"
msgstr "Área de trabajo %d" msgstr "Área de trabajo %d"
#: extensions/workspace-indicator/prefs.js:218
msgid "Add Workspace"
msgstr "Añadir área de trabajo"
#~ msgid "Application"
#~ msgstr "Aplicación"
#~ msgid "Workspace"
#~ msgstr "Área de trabajo"
#~ msgid "Create new matching rule"
#~ msgstr "Crear regla de coincidencia nueva"
#~ msgid "Add"
#~ msgstr "Añadir"
#~ msgid "Name"
#~ msgstr "Nombre"
#~ msgid "Attach modal dialog to the parent window" #~ msgid "Attach modal dialog to the parent window"
#~ msgstr "Acoplar un diálogo modal a la ventana padre" #~ msgstr "Acoplar un diálogo modal a la ventana padre"
+55 -58
View File
@@ -1,16 +1,15 @@
# Persian translation for gnome-shell-extensions. # Persian translation for gnome-shell-extensions.
# Copyright (C) 2011 Iranian Free Software Users Group (IFSUG.org) translation team. # Copyright (C) 2011 Iranian Free Software Users Group (IFSUG.org) translation team.
# This file is distributed under the same license as the gnome-shell-extensions package. # This file is distributed under the same license as the gnome-shell-extensions package.
# Arash Mousavi <mousavi.arash@gmail.com>, 2011-2017. # Arash Mousavi <mousavi.arash@gmail.com>, 2011, 2013, 2014, 2015, 2016, 2017.
# Danial Behzadi <dani.behzi@ubuntu.com>, 2018-2020.
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: gnome-shell-extensions gnome-3-0\n" "Project-Id-Version: gnome-shell-extensions gnome-3-0\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n" "issues\n"
"POT-Creation-Date: 2020-05-03 17:53+0000\n" "POT-Creation-Date: 2019-08-09 22:24+0000\n"
"PO-Revision-Date: 2020-05-12 14:25+0000\n" "PO-Revision-Date: 2019-08-14 11:48+0430\n"
"Last-Translator: Danial Behzadi <dani.behzi@ubuntu.com>\n" "Last-Translator: Danial Behzadi <dani.behzi@ubuntu.com>\n"
"Language-Team: Persian <>\n" "Language-Team: Persian <>\n"
"Language: fa\n" "Language: fa\n"
@@ -18,7 +17,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Poedit-SourceCharset: utf-8\n" "X-Poedit-SourceCharset: utf-8\n"
"X-Generator: Poedit 2.3\n" "X-Generator: Poedit 2.2.1\n"
"Plural-Forms: nplurals=1; plural=0;\n" "Plural-Forms: nplurals=1; plural=0;\n"
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3 #: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
@@ -31,9 +30,9 @@ msgstr "این نشست شما را به گنوم کلاسیک وارد می‌
#: extensions/apps-menu/extension.js:113 #: extensions/apps-menu/extension.js:113
msgid "Favorites" msgid "Favorites"
msgstr "برگزیده‌ها" msgstr "علاقه‌مندی‌ها"
#: extensions/apps-menu/extension.js:369 #: extensions/apps-menu/extension.js:368
msgid "Applications" msgid "Applications"
msgstr "برنامه‌ها" msgstr "برنامه‌ها"
@@ -49,26 +48,39 @@ msgstr ""
"فهرستی از رشته‌ها، هرکدام حاوی شناسه‌ی یک برنامه (نام پرونده رومیزی)، در ادامه‌ی یک " "فهرستی از رشته‌ها، هرکدام حاوی شناسه‌ی یک برنامه (نام پرونده رومیزی)، در ادامه‌ی یک "
"ویرگول و شماره‌ی فضای کاری" "ویرگول و شماره‌ی فضای کاری"
#: extensions/auto-move-windows/prefs.js:35 #: extensions/auto-move-windows/prefs.js:60
msgid "Workspace Rules" msgid "Application"
msgstr "قواعد فضای کاری" msgstr "برنامه"
#: extensions/auto-move-windows/prefs.js:243 #: extensions/auto-move-windows/prefs.js:71
#: extensions/auto-move-windows/prefs.js:134
msgid "Workspace"
msgstr "فضای‌کاری"
#: extensions/auto-move-windows/prefs.js:89
msgid "Add Rule" msgid "Add Rule"
msgstr "افزودن قاعده" msgstr "افزودن قاعده"
#: extensions/auto-move-windows/prefs.js:111
msgid "Create new matching rule"
msgstr "افزودن یک قاعده‌ی منطبق جدید"
#: extensions/auto-move-windows/prefs.js:117
msgid "Add"
msgstr "اضافه"
#. TRANSLATORS: %s is the filesystem name #. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:112 #: extensions/drive-menu/extension.js:102
#: extensions/places-menu/placeDisplay.js:233 #: extensions/places-menu/placeDisplay.js:232
#, javascript-format #, javascript-format
msgid "Ejecting drive “%s” failed:" msgid "Ejecting drive “%s” failed:"
msgstr "بیرون دادن دیسک‌گردان «%s» شکست خورد:" msgstr "بیرون دادن دیسک‌گردان «%s» شکست خورد:"
#: extensions/drive-menu/extension.js:128 #: extensions/drive-menu/extension.js:118
msgid "Removable devices" msgid "Removable devices"
msgstr "دستگاه‌های جداشدنی" msgstr "دستگاه‌های جداشدنی"
#: extensions/drive-menu/extension.js:155 #: extensions/drive-menu/extension.js:145
msgid "Open Files" msgid "Open Files"
msgstr "گشودن پرونده‌ها" msgstr "گشودن پرونده‌ها"
@@ -100,7 +112,7 @@ msgstr ""
"شل در پایین را تغییر می‌دهد. تغییر این گزینه، نیاز به راه‌اندازی مجدد شل دارد تا " "شل در پایین را تغییر می‌دهد. تغییر این گزینه، نیاز به راه‌اندازی مجدد شل دارد تا "
"تاثیر بگذارد." "تاثیر بگذارد."
#: extensions/places-menu/extension.js:89 extensions/places-menu/extension.js:93 #: extensions/places-menu/extension.js:80 extensions/places-menu/extension.js:84
msgid "Places" msgid "Places"
msgstr "مکان‌ها" msgstr "مکان‌ها"
@@ -119,11 +131,11 @@ msgstr "شکست در سوار کردن حجم برای «%s»"
msgid "Computer" msgid "Computer"
msgstr "رایانه" msgstr "رایانه"
#: extensions/places-menu/placeDisplay.js:359 #: extensions/places-menu/placeDisplay.js:358
msgid "Home" msgid "Home"
msgstr "خانه" msgstr "خانه"
#: extensions/places-menu/placeDisplay.js:404 #: extensions/places-menu/placeDisplay.js:403
msgid "Browse Network" msgid "Browse Network"
msgstr "مرور شبکه" msgstr "مرور شبکه"
@@ -143,47 +155,47 @@ msgstr "نام تم"
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell" msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "نام تم، جهت بارگیری از شاخه themes/name/gnome-shell./~" msgstr "نام تم، جهت بارگیری از شاخه themes/name/gnome-shell./~"
#: extensions/window-list/extension.js:98 #: extensions/window-list/extension.js:99
msgid "Close" msgid "Close"
msgstr "خروج" msgstr "خروج"
#: extensions/window-list/extension.js:118 #: extensions/window-list/extension.js:119
msgid "Unminimize" msgid "Unminimize"
msgstr "ناکمینه" msgstr "ناکمینه"
#: extensions/window-list/extension.js:118 #: extensions/window-list/extension.js:119
msgid "Minimize" msgid "Minimize"
msgstr "کمینه" msgstr "کمینه"
#: extensions/window-list/extension.js:125 #: extensions/window-list/extension.js:126
msgid "Unmaximize" msgid "Unmaximize"
msgstr "نابیشینه" msgstr "نابیشینه"
#: extensions/window-list/extension.js:125 #: extensions/window-list/extension.js:126
msgid "Maximize" msgid "Maximize"
msgstr "بیشنه" msgstr "بیشنه"
#: extensions/window-list/extension.js:429 #: extensions/window-list/extension.js:431
msgid "Minimize all" msgid "Minimize all"
msgstr "کمینهٔ همه" msgstr "کمینهٔ همه"
#: extensions/window-list/extension.js:435 #: extensions/window-list/extension.js:437
msgid "Unminimize all" msgid "Unminimize all"
msgstr "ناکمینهٔ همه" msgstr "ناکمینهٔ همه"
#: extensions/window-list/extension.js:441 #: extensions/window-list/extension.js:443
msgid "Maximize all" msgid "Maximize all"
msgstr "بیشینهٔ همه" msgstr "بیشینهٔ همه"
#: extensions/window-list/extension.js:449 #: extensions/window-list/extension.js:451
msgid "Unmaximize all" msgid "Unmaximize all"
msgstr "نابیشینهٔ همه" msgstr "نابیشینهٔ همه"
#: extensions/window-list/extension.js:457 #: extensions/window-list/extension.js:459
msgid "Close all" msgid "Close all"
msgstr "بستن همه" msgstr "بستن همه"
#: extensions/window-list/extension.js:737 #: extensions/window-list/extension.js:741
msgid "Window List" msgid "Window List"
msgstr "فهرست پنجره" msgstr "فهرست پنجره"
@@ -200,7 +212,7 @@ msgstr ""
"ممکن عبارتند از «never»، «auto» و «always»." "ممکن عبارتند از «never»، «auto» و «always»."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20 #: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:100 #: extensions/window-list/prefs.js:82
msgid "Show windows from all workspaces" msgid "Show windows from all workspaces"
msgstr "نمایش پنجره‌ها از تمام فضاهای کاری" msgstr "نمایش پنجره‌ها از تمام فضاهای کاری"
@@ -220,59 +232,44 @@ msgstr ""
"اینکه آیا فهرست پنجره‌ها در تمام نمایشگرهای متصل نمایش داده شود یا فقط در نمایشگر " "اینکه آیا فهرست پنجره‌ها در تمام نمایشگرهای متصل نمایش داده شود یا فقط در نمایشگر "
"اصلی." "اصلی."
#: extensions/window-list/prefs.js:29 #: extensions/window-list/prefs.js:25
msgid "Window Grouping" msgid "Window Grouping"
msgstr "گروه‌سازی پنجره‌ها" msgstr "گروه‌سازی پنجره‌ها"
#: extensions/window-list/prefs.js:58 #: extensions/window-list/prefs.js:47
msgid "Never group windows" msgid "Never group windows"
msgstr "هیچ‌گاه پنجره‌ها گروه نشوند" msgstr "هیچ‌گاه پنجره‌ها گروه نشوند"
#: extensions/window-list/prefs.js:59 #: extensions/window-list/prefs.js:48
msgid "Group windows when space is limited" msgid "Group windows when space is limited"
msgstr "پنجره‌ها زمانی که فضا محدود است گروه شوند" msgstr "پنجره‌ها زمانی که فضا محدود است گروه شوند"
#: extensions/window-list/prefs.js:60 #: extensions/window-list/prefs.js:49
msgid "Always group windows" msgid "Always group windows"
msgstr "همیشه پنجره‌ها گروه شوند" msgstr "همیشه پنجره‌ها گروه شوند"
#: extensions/window-list/prefs.js:94 #: extensions/window-list/prefs.js:75
msgid "Show on all monitors" msgid "Show on all monitors"
msgstr "نمایش در تمام نمایشگرها" msgstr "نمایش در تمام نمایشگرها"
#: extensions/window-list/workspaceIndicator.js:209 #: extensions/window-list/workspaceIndicator.js:211
#: extensions/workspace-indicator/extension.js:215 #: extensions/workspace-indicator/extension.js:216
msgid "Workspace Indicator" msgid "Workspace Indicator"
msgstr "نشانگر فضای‌کاری" msgstr "نشانگر فضای‌کاری"
#: extensions/workspace-indicator/prefs.js:34 #: extensions/workspace-indicator/prefs.js:131
msgid "Workspace Names" msgid "Workspace Names"
msgstr "نام‌های فضای کاری" msgstr "نام‌های فضای کاری"
#: extensions/workspace-indicator/prefs.js:67 #: extensions/workspace-indicator/prefs.js:151
msgid "Name"
msgstr "نام"
#: extensions/workspace-indicator/prefs.js:191
#, javascript-format #, javascript-format
msgid "Workspace %d" msgid "Workspace %d"
msgstr "فضای کاری %Id" msgstr "فضای کاری %Id"
#: extensions/workspace-indicator/prefs.js:218
msgid "Add Workspace"
msgstr "افزودن فضای‌کاری"
#~ msgid "Application"
#~ msgstr "برنامه"
#~ msgid "Workspace"
#~ msgstr "فضای‌کاری"
#~ msgid "Create new matching rule"
#~ msgstr "افزودن یک قاعده‌ی منطبق جدید"
#~ msgid "Add"
#~ msgstr "اضافه"
#~ msgid "Name"
#~ msgstr "نام"
#~ msgid "Attach modal dialog to the parent window" #~ msgid "Attach modal dialog to the parent window"
#~ msgstr "اتصال محاوره modal به پنجره والد" #~ msgstr "اتصال محاوره modal به پنجره والد"
+54 -56
View File
@@ -8,8 +8,8 @@ msgstr ""
"Project-Id-Version: gnome-shell-extensions master\n" "Project-Id-Version: gnome-shell-extensions master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n" "issues\n"
"POT-Creation-Date: 2020-05-03 17:53+0000\n" "POT-Creation-Date: 2019-08-09 22:24+0000\n"
"PO-Revision-Date: 2020-05-22 11:12+0200\n" "PO-Revision-Date: 2019-08-18 14:22+0300\n"
"Last-Translator: Florentina Mușat <florentina.musat.28 [at] gmail [dot] " "Last-Translator: Florentina Mușat <florentina.musat.28 [at] gmail [dot] "
"com>\n" "com>\n"
"Language-Team: Gnome Romanian Translation Team\n" "Language-Team: Gnome Romanian Translation Team\n"
@@ -19,7 +19,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < " "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < "
"20)) ? 1 : 2);;\n" "20)) ? 1 : 2);;\n"
"X-Generator: Poedit 2.3\n" "X-Generator: Poedit 2.2.3\n"
"X-Project-Style: gnome\n" "X-Project-Style: gnome\n"
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3 #: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
@@ -34,7 +34,7 @@ msgstr "Această sesiune vă autentifică în GNOME Clasic"
msgid "Favorites" msgid "Favorites"
msgstr "Favorite" msgstr "Favorite"
#: extensions/apps-menu/extension.js:369 #: extensions/apps-menu/extension.js:368
msgid "Applications" msgid "Applications"
msgstr "Aplicații" msgstr "Aplicații"
@@ -51,26 +51,39 @@ msgstr ""
"fișierului de birou) urmat de simbolul „două puncte” și un număr al " "fișierului de birou) urmat de simbolul „două puncte” și un număr al "
"spațiului de lucru" "spațiului de lucru"
#: extensions/auto-move-windows/prefs.js:35 #: extensions/auto-move-windows/prefs.js:60
msgid "Workspace Rules" msgid "Application"
msgstr "Regulile spațiilor de lucru" msgstr "Aplicație"
#: extensions/auto-move-windows/prefs.js:243 #: extensions/auto-move-windows/prefs.js:71
#: extensions/auto-move-windows/prefs.js:134
msgid "Workspace"
msgstr "Spațiu de lucru"
#: extensions/auto-move-windows/prefs.js:89
msgid "Add Rule" msgid "Add Rule"
msgstr "Adaugă o regulă" msgstr "Adaugă o regulă"
#: extensions/auto-move-windows/prefs.js:111
msgid "Create new matching rule"
msgstr "Creează o regulă nouă de potrivire"
#: extensions/auto-move-windows/prefs.js:117
msgid "Add"
msgstr "Adaugă"
#. TRANSLATORS: %s is the filesystem name #. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:112 #: extensions/drive-menu/extension.js:102
#: extensions/places-menu/placeDisplay.js:233 #: extensions/places-menu/placeDisplay.js:232
#, javascript-format #, javascript-format
msgid "Ejecting drive “%s” failed:" msgid "Ejecting drive “%s” failed:"
msgstr "Scoaterea unității „%s” a eșuat:" msgstr "Scoaterea unității „%s” a eșuat:"
#: extensions/drive-menu/extension.js:128 #: extensions/drive-menu/extension.js:118
msgid "Removable devices" msgid "Removable devices"
msgstr "Dispozitive detașabile" msgstr "Dispozitive detașabile"
#: extensions/drive-menu/extension.js:155 #: extensions/drive-menu/extension.js:145
msgid "Open Files" msgid "Open Files"
msgstr "Deschide fișiere" msgstr "Deschide fișiere"
@@ -104,8 +117,8 @@ msgstr ""
"Schimbând această configurare necesită repornire shell-ului pentru a avea " "Schimbând această configurare necesită repornire shell-ului pentru a avea "
"efect." "efect."
#: extensions/places-menu/extension.js:89 #: extensions/places-menu/extension.js:80
#: extensions/places-menu/extension.js:93 #: extensions/places-menu/extension.js:84
msgid "Places" msgid "Places"
msgstr "Locații" msgstr "Locații"
@@ -124,11 +137,11 @@ msgstr "Eșec la montarea volumului pentru „%s”"
msgid "Computer" msgid "Computer"
msgstr "Calculator" msgstr "Calculator"
#: extensions/places-menu/placeDisplay.js:359 #: extensions/places-menu/placeDisplay.js:358
msgid "Home" msgid "Home"
msgstr "Acasă" msgstr "Acasă"
#: extensions/places-menu/placeDisplay.js:404 #: extensions/places-menu/placeDisplay.js:403
msgid "Browse Network" msgid "Browse Network"
msgstr "Navighează rețeaua" msgstr "Navighează rețeaua"
@@ -148,47 +161,47 @@ msgstr "Numele temei"
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell" msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "Numele temei, ce va fi încărcată din ~/.themes/name/gnome-shell" msgstr "Numele temei, ce va fi încărcată din ~/.themes/name/gnome-shell"
#: extensions/window-list/extension.js:98 #: extensions/window-list/extension.js:99
msgid "Close" msgid "Close"
msgstr "Închide" msgstr "Închide"
#: extensions/window-list/extension.js:118 #: extensions/window-list/extension.js:119
msgid "Unminimize" msgid "Unminimize"
msgstr "Deminimizează" msgstr "Deminimizează"
#: extensions/window-list/extension.js:118 #: extensions/window-list/extension.js:119
msgid "Minimize" msgid "Minimize"
msgstr "Minimizează" msgstr "Minimizează"
#: extensions/window-list/extension.js:125 #: extensions/window-list/extension.js:126
msgid "Unmaximize" msgid "Unmaximize"
msgstr "Demaximizează" msgstr "Demaximizează"
#: extensions/window-list/extension.js:125 #: extensions/window-list/extension.js:126
msgid "Maximize" msgid "Maximize"
msgstr "Maximizează" msgstr "Maximizează"
#: extensions/window-list/extension.js:429 #: extensions/window-list/extension.js:431
msgid "Minimize all" msgid "Minimize all"
msgstr "Minimizează tot" msgstr "Minimizează tot"
#: extensions/window-list/extension.js:435 #: extensions/window-list/extension.js:437
msgid "Unminimize all" msgid "Unminimize all"
msgstr "Deminimizează tot" msgstr "Deminimizează tot"
#: extensions/window-list/extension.js:441 #: extensions/window-list/extension.js:443
msgid "Maximize all" msgid "Maximize all"
msgstr "Maximizează tot" msgstr "Maximizează tot"
#: extensions/window-list/extension.js:449 #: extensions/window-list/extension.js:451
msgid "Unmaximize all" msgid "Unmaximize all"
msgstr "Demaximizează tot" msgstr "Demaximizează tot"
#: extensions/window-list/extension.js:457 #: extensions/window-list/extension.js:459
msgid "Close all" msgid "Close all"
msgstr "Închide tot" msgstr "Închide tot"
#: extensions/window-list/extension.js:737 #: extensions/window-list/extension.js:741
msgid "Window List" msgid "Window List"
msgstr "Lista ferestrelor" msgstr "Lista ferestrelor"
@@ -205,7 +218,7 @@ msgstr ""
"ferestrei. Valorile posibile sunt „niciodată”, „auto” și „întotdeauna”." "ferestrei. Valorile posibile sunt „niciodată”, „auto” și „întotdeauna”."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20 #: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:100 #: extensions/window-list/prefs.js:82
msgid "Show windows from all workspaces" msgid "Show windows from all workspaces"
msgstr "Arată ferestrele din toate spațiile de lucru" msgstr "Arată ferestrele din toate spațiile de lucru"
@@ -227,59 +240,44 @@ msgstr ""
"Dacă să se arate lista ferestrelor pe toate monitoarele conectate sau doar " "Dacă să se arate lista ferestrelor pe toate monitoarele conectate sau doar "
"pe cel primar." "pe cel primar."
#: extensions/window-list/prefs.js:29 #: extensions/window-list/prefs.js:25
msgid "Window Grouping" msgid "Window Grouping"
msgstr "Gruparea ferestrelor" msgstr "Gruparea ferestrelor"
#: extensions/window-list/prefs.js:58 #: extensions/window-list/prefs.js:47
msgid "Never group windows" msgid "Never group windows"
msgstr "Nu grupa ferestrele niciodată" msgstr "Nu grupa ferestrele niciodată"
#: extensions/window-list/prefs.js:59 #: extensions/window-list/prefs.js:48
msgid "Group windows when space is limited" msgid "Group windows when space is limited"
msgstr "Grupează ferestrele când spațiul e limitat" msgstr "Grupează ferestrele când spațiul e limitat"
#: extensions/window-list/prefs.js:60 #: extensions/window-list/prefs.js:49
msgid "Always group windows" msgid "Always group windows"
msgstr "Grupează ferestrele întotdeauna" msgstr "Grupează ferestrele întotdeauna"
#: extensions/window-list/prefs.js:94 #: extensions/window-list/prefs.js:75
msgid "Show on all monitors" msgid "Show on all monitors"
msgstr "Arată pe toate monitoarele" msgstr "Arată pe toate monitoarele"
#: extensions/window-list/workspaceIndicator.js:209 #: extensions/window-list/workspaceIndicator.js:211
#: extensions/workspace-indicator/extension.js:215 #: extensions/workspace-indicator/extension.js:216
msgid "Workspace Indicator" msgid "Workspace Indicator"
msgstr "Indicator al spațiului de lucru" msgstr "Indicator al spațiului de lucru"
#: extensions/workspace-indicator/prefs.js:34 #: extensions/workspace-indicator/prefs.js:131
msgid "Workspace Names" msgid "Workspace Names"
msgstr "Numele spațiilor de lucru" msgstr "Numele spațiilor de lucru"
#: extensions/workspace-indicator/prefs.js:67 #: extensions/workspace-indicator/prefs.js:151
msgid "Name"
msgstr "Nume"
#: extensions/workspace-indicator/prefs.js:191
#, javascript-format #, javascript-format
msgid "Workspace %d" msgid "Workspace %d"
msgstr "Spațiu de lucru %d" msgstr "Spațiu de lucru %d"
#: extensions/workspace-indicator/prefs.js:218
msgid "Add Workspace"
msgstr "Adaugă un spațiu de lucru"
#~ msgid "Application"
#~ msgstr "Aplicație"
#~ msgid "Workspace"
#~ msgstr "Spațiu de lucru"
#~ msgid "Create new matching rule"
#~ msgstr "Creează o regulă nouă de potrivire"
#~ msgid "Add"
#~ msgstr "Adaugă"
#~ msgid "Name"
#~ msgstr "Nume"
#~ msgid "Attach modal dialog to the parent window" #~ msgid "Attach modal dialog to the parent window"
#~ msgstr "Atașează dialogul modal la fereastra părinte" #~ msgstr "Atașează dialogul modal la fereastra părinte"
+46 -45
View File
@@ -2,15 +2,15 @@
# Copyright (C) YEAR Jens Lody # Copyright (C) YEAR Jens Lody
# This file is distributed under the same license as the gnome-shell-extension-openweather package. # This file is distributed under the same license as the gnome-shell-extension-openweather package.
# #
# Matej Urbančič <mateju@svn.gnome.org>, 20182020. # Matej Urbančič <mateju@svn.gnome.org>, 20182019.
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: gnome-shell-extension-openweather 1.1\n" "Project-Id-Version: gnome-shell-extension-openweather 1.1\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n" "issues\n"
"POT-Creation-Date: 2020-05-28 00:55+0000\n" "POT-Creation-Date: 2019-08-24 14:33+0000\n"
"PO-Revision-Date: 2020-06-01 15:34+0200\n" "PO-Revision-Date: 2019-08-24 19:08+0200\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: \n" "Language-Team: \n"
"Language: sl\n" "Language: sl\n"
@@ -19,7 +19,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100>=3 && n" "Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100>=3 && n"
"%100<=4 ? 2 : 3);\n" "%100<=4 ? 2 : 3);\n"
"X-Generator: Poedit 2.3\n" "X-Generator: Poedit 2.2.1\n"
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3 #: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
msgid "GNOME Classic" msgid "GNOME Classic"
@@ -49,26 +49,39 @@ msgstr ""
"Seznam nizov z določilom ID programa (ime programa), ki mu sledi dvopičje in " "Seznam nizov z določilom ID programa (ime programa), ki mu sledi dvopičje in "
"nato številka delovne površine." "nato številka delovne površine."
#: extensions/auto-move-windows/prefs.js:35 #: extensions/auto-move-windows/prefs.js:60
msgid "Workspace Rules" msgid "Application"
msgstr "Pravila delovnih površin" msgstr "Program "
#: extensions/auto-move-windows/prefs.js:243 #: extensions/auto-move-windows/prefs.js:71
#: extensions/auto-move-windows/prefs.js:134
msgid "Workspace"
msgstr "Delovna površina"
#: extensions/auto-move-windows/prefs.js:89
msgid "Add Rule" msgid "Add Rule"
msgstr "Dodaj pravilo" msgstr "Dodaj pravilo"
#: extensions/auto-move-windows/prefs.js:111
msgid "Create new matching rule"
msgstr "Ustvari novo skladno pravilo"
#: extensions/auto-move-windows/prefs.js:117
msgid "Add"
msgstr "Dodaj"
#. TRANSLATORS: %s is the filesystem name #. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:112 #: extensions/drive-menu/extension.js:103
#: extensions/places-menu/placeDisplay.js:233 #: extensions/places-menu/placeDisplay.js:233
#, javascript-format #, javascript-format
msgid "Ejecting drive “%s” failed:" msgid "Ejecting drive “%s” failed:"
msgstr "Izmetavanje pogona »%s« je spodletelo:" msgstr "Izmetavanje pogona »%s« je spodletelo:"
#: extensions/drive-menu/extension.js:128 #: extensions/drive-menu/extension.js:119
msgid "Removable devices" msgid "Removable devices"
msgstr "Odstranljive naprave" msgstr "Odstranljive naprave"
#: extensions/drive-menu/extension.js:155 #: extensions/drive-menu/extension.js:146
msgid "Open Files" msgid "Open Files"
msgstr "Odpri datoteke" msgstr "Odpri datoteke"
@@ -100,8 +113,8 @@ msgstr ""
"tem prepiše privzeti izpis pod sličico. Za uveljavitev sprememb je treba " "tem prepiše privzeti izpis pod sličico. Za uveljavitev sprememb je treba "
"lupino ponovno zagnati." "lupino ponovno zagnati."
#: extensions/places-menu/extension.js:89 #: extensions/places-menu/extension.js:80
#: extensions/places-menu/extension.js:93 #: extensions/places-menu/extension.js:84
msgid "Places" msgid "Places"
msgstr "Mesta" msgstr "Mesta"
@@ -164,27 +177,27 @@ msgstr "Pomanjšaj"
msgid "Maximize" msgid "Maximize"
msgstr "Razpni" msgstr "Razpni"
#: extensions/window-list/extension.js:428 #: extensions/window-list/extension.js:431
msgid "Minimize all" msgid "Minimize all"
msgstr "Skrči vse" msgstr "Skrči vse"
#: extensions/window-list/extension.js:434 #: extensions/window-list/extension.js:437
msgid "Unminimize all" msgid "Unminimize all"
msgstr "Pomanjšaj vse" msgstr "Pomanjšaj vse"
#: extensions/window-list/extension.js:440 #: extensions/window-list/extension.js:443
msgid "Maximize all" msgid "Maximize all"
msgstr "Razpni vse" msgstr "Razpni vse"
#: extensions/window-list/extension.js:448 #: extensions/window-list/extension.js:451
msgid "Unmaximize all" msgid "Unmaximize all"
msgstr "Pomanjšaj vse" msgstr "Pomanjšaj vse"
#: extensions/window-list/extension.js:456 #: extensions/window-list/extension.js:459
msgid "Close all" msgid "Close all"
msgstr "Zapri vse" msgstr "Zapri vse"
#: extensions/window-list/extension.js:734 #: extensions/window-list/extension.js:741
msgid "Window List" msgid "Window List"
msgstr "Seznam oken" msgstr "Seznam oken"
@@ -201,7 +214,7 @@ msgstr ""
"Veljavne vrednosti so »nikoli«, »samodejno« in »vedno«." "Veljavne vrednosti so »nikoli«, »samodejno« in »vedno«."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20 #: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:100 #: extensions/window-list/prefs.js:82
msgid "Show windows from all workspaces" msgid "Show windows from all workspaces"
msgstr "Pokaži okna vseh delovnih površin" msgstr "Pokaži okna vseh delovnih površin"
@@ -221,56 +234,44 @@ msgid ""
msgstr "" msgstr ""
"Ali naj bo prikazan seznam oken na vseh povezanih zasloni ali le na osnovnem." "Ali naj bo prikazan seznam oken na vseh povezanih zasloni ali le na osnovnem."
#: extensions/window-list/prefs.js:29 #: extensions/window-list/prefs.js:25
msgid "Window Grouping" msgid "Window Grouping"
msgstr "Združevanje oken" msgstr "Združevanje oken"
#: extensions/window-list/prefs.js:58 #: extensions/window-list/prefs.js:47
msgid "Never group windows" msgid "Never group windows"
msgstr "Nikoli ne združuj oken" msgstr "Nikoli ne združuj oken"
#: extensions/window-list/prefs.js:59 #: extensions/window-list/prefs.js:48
msgid "Group windows when space is limited" msgid "Group windows when space is limited"
msgstr "Združi okna, ko je prostor omejen" msgstr "Združi okna, ko je prostor omejen"
#: extensions/window-list/prefs.js:60 #: extensions/window-list/prefs.js:49
msgid "Always group windows" msgid "Always group windows"
msgstr "Okna vedno združi" msgstr "Okna vedno združi"
#: extensions/window-list/prefs.js:94 #: extensions/window-list/prefs.js:75
msgid "Show on all monitors" msgid "Show on all monitors"
msgstr "Pokaži na vseh zaslonih" msgstr "Pokaži na vseh zaslonih"
#: extensions/window-list/workspaceIndicator.js:207 #: extensions/window-list/workspaceIndicator.js:211
#: extensions/workspace-indicator/extension.js:213 #: extensions/workspace-indicator/extension.js:216
msgid "Workspace Indicator" msgid "Workspace Indicator"
msgstr "Kazalnik delovnih površin" msgstr "Kazalnik delovnih površin"
#: extensions/workspace-indicator/prefs.js:34 #: extensions/workspace-indicator/prefs.js:129
msgid "Workspace Names" msgid "Workspace Names"
msgstr "Imena delovnih površin" msgstr "Imena delovnih površin"
#: extensions/workspace-indicator/prefs.js:67 #: extensions/workspace-indicator/prefs.js:149
msgid "Name"
msgstr "Ime"
#: extensions/workspace-indicator/prefs.js:189
#, javascript-format #, javascript-format
msgid "Workspace %d" msgid "Workspace %d"
msgstr "Delovna površina %d" msgstr "Delovna površina %d"
#: extensions/workspace-indicator/prefs.js:218
msgid "Add Workspace"
msgstr "Dodaj delovno površino"
#~ msgid "Application"
#~ msgstr "Program "
#~ msgid "Create new matching rule"
#~ msgstr "Ustvari novo skladno pravilo"
#~ msgid "Add"
#~ msgstr "Dodaj"
#~ msgid "Name"
#~ msgstr "Ime"
#~ msgid "..." #~ msgid "..."
#~ msgstr "..." #~ msgstr "..."
+41 -44
View File
@@ -1,24 +1,24 @@
# Swedish translation for gnome-shell-extensions. # Swedish translation for gnome-shell-extensions.
# Copyright © 2011, 2012, 2014, 2015, 2017, 2019, 2020 Free Software Foundation, Inc. # Copyright © 2011, 2012, 2014, 2015, 2017, 2019 Free Software Foundation, Inc.
# This file is distributed under the same license as the gnome-shell-extensions package. # This file is distributed under the same license as the gnome-shell-extensions package.
# Daniel Nylander <po@danielnylander.se>, 2011, 2012. # Daniel Nylander <po@danielnylander.se>, 2011, 2012.
# Mattias Eriksson <snaggen@gmail.com>, 2014. # Mattias Eriksson <snaggen@gmail.com>, 2014.
# Anders Jonsson <anders.jonsson@norsjovallen.se>, 2015, 2017, 2019, 2020. # Anders Jonsson <anders.jonsson@norsjovallen.se>, 2015, 2017, 2019.
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: gnome-shell-extensions\n" "Project-Id-Version: gnome-shell-extensions\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n" "issues\n"
"POT-Creation-Date: 2020-04-17 16:03+0000\n" "POT-Creation-Date: 2019-08-09 22:24+0000\n"
"PO-Revision-Date: 2020-04-26 20:51+0200\n" "PO-Revision-Date: 2019-08-12 21:30+0200\n"
"Last-Translator: Anders Jonsson <anders.jonsson@norsjovallen.se>\n" "Last-Translator: Anders Jonsson <anders.jonsson@norsjovallen.se>\n"
"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n" "Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
"Language: sv\n" "Language: sv\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 2.3\n" "X-Generator: Poedit 2.2.3\n"
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3 #: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
msgid "GNOME Classic" msgid "GNOME Classic"
@@ -32,7 +32,7 @@ msgstr "Denna session loggar in dig till GNOME Klassisk"
msgid "Favorites" msgid "Favorites"
msgstr "Favoriter" msgstr "Favoriter"
#: extensions/apps-menu/extension.js:369 #: extensions/apps-menu/extension.js:368
msgid "Applications" msgid "Applications"
msgstr "Program" msgstr "Program"
@@ -48,39 +48,39 @@ msgstr ""
"En lista över strängar, var och en innehållande ett program-id " "En lista över strängar, var och en innehållande ett program-id "
"(skrivbordsfilnamn), följt av ett kolontecken och arbetsytans nummer" "(skrivbordsfilnamn), följt av ett kolontecken och arbetsytans nummer"
#: extensions/auto-move-windows/prefs.js:59 #: extensions/auto-move-windows/prefs.js:60
msgid "Application" msgid "Application"
msgstr "Program" msgstr "Program"
#: extensions/auto-move-windows/prefs.js:70 #: extensions/auto-move-windows/prefs.js:71
#: extensions/auto-move-windows/prefs.js:133 #: extensions/auto-move-windows/prefs.js:134
msgid "Workspace" msgid "Workspace"
msgstr "Arbetsyta" msgstr "Arbetsyta"
#: extensions/auto-move-windows/prefs.js:88 #: extensions/auto-move-windows/prefs.js:89
msgid "Add Rule" msgid "Add Rule"
msgstr "Lägg till regel" msgstr "Lägg till regel"
#: extensions/auto-move-windows/prefs.js:110 #: extensions/auto-move-windows/prefs.js:111
msgid "Create new matching rule" msgid "Create new matching rule"
msgstr "Skapa ny matchande regel" msgstr "Skapa ny matchande regel"
#: extensions/auto-move-windows/prefs.js:116 #: extensions/auto-move-windows/prefs.js:117
msgid "Add" msgid "Add"
msgstr "Lägg till" msgstr "Lägg till"
#. TRANSLATORS: %s is the filesystem name #. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:112 #: extensions/drive-menu/extension.js:102
#: extensions/places-menu/placeDisplay.js:233 #: extensions/places-menu/placeDisplay.js:232
#, javascript-format #, javascript-format
msgid "Ejecting drive “%s” failed:" msgid "Ejecting drive “%s” failed:"
msgstr "Utmatning av disk ”%s” misslyckades:" msgstr "Utmatning av disk ”%s” misslyckades:"
#: extensions/drive-menu/extension.js:128 #: extensions/drive-menu/extension.js:118
msgid "Removable devices" msgid "Removable devices"
msgstr "Flyttbara enheter" msgstr "Flyttbara enheter"
#: extensions/drive-menu/extension.js:155 #: extensions/drive-menu/extension.js:145
msgid "Open Files" msgid "Open Files"
msgstr "Öppna filer" msgstr "Öppna filer"
@@ -113,8 +113,8 @@ msgstr ""
"skalets standardplacering under miniatyrbilden. För att ändra denna " "skalets standardplacering under miniatyrbilden. För att ändra denna "
"inställning krävs att skalet startas om för att den ska få effekt." "inställning krävs att skalet startas om för att den ska få effekt."
#: extensions/places-menu/extension.js:89 #: extensions/places-menu/extension.js:80
#: extensions/places-menu/extension.js:93 #: extensions/places-menu/extension.js:84
msgid "Places" msgid "Places"
msgstr "Platser" msgstr "Platser"
@@ -133,11 +133,11 @@ msgstr "Misslyckades med att montera volym för ”%s”"
msgid "Computer" msgid "Computer"
msgstr "Dator" msgstr "Dator"
#: extensions/places-menu/placeDisplay.js:359 #: extensions/places-menu/placeDisplay.js:358
msgid "Home" msgid "Home"
msgstr "Hem" msgstr "Hem"
#: extensions/places-menu/placeDisplay.js:404 #: extensions/places-menu/placeDisplay.js:403
msgid "Browse Network" msgid "Browse Network"
msgstr "Bläddra i nätverket" msgstr "Bläddra i nätverket"
@@ -157,47 +157,47 @@ msgstr "Temanamn"
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell" msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "Namnet på temat, kommer att läsas in från ~/.themes/name/gnome-shell" msgstr "Namnet på temat, kommer att läsas in från ~/.themes/name/gnome-shell"
#: extensions/window-list/extension.js:98 #: extensions/window-list/extension.js:99
msgid "Close" msgid "Close"
msgstr "Stäng" msgstr "Stäng"
#: extensions/window-list/extension.js:118 #: extensions/window-list/extension.js:119
msgid "Unminimize" msgid "Unminimize"
msgstr "Avminimera" msgstr "Avminimera"
#: extensions/window-list/extension.js:118 #: extensions/window-list/extension.js:119
msgid "Minimize" msgid "Minimize"
msgstr "Minimera" msgstr "Minimera"
#: extensions/window-list/extension.js:125 #: extensions/window-list/extension.js:126
msgid "Unmaximize" msgid "Unmaximize"
msgstr "Avmaximera" msgstr "Avmaximera"
#: extensions/window-list/extension.js:125 #: extensions/window-list/extension.js:126
msgid "Maximize" msgid "Maximize"
msgstr "Maximera" msgstr "Maximera"
#: extensions/window-list/extension.js:429 #: extensions/window-list/extension.js:431
msgid "Minimize all" msgid "Minimize all"
msgstr "Minimera alla" msgstr "Minimera alla"
#: extensions/window-list/extension.js:435 #: extensions/window-list/extension.js:437
msgid "Unminimize all" msgid "Unminimize all"
msgstr "Avminimera alla" msgstr "Avminimera alla"
#: extensions/window-list/extension.js:441 #: extensions/window-list/extension.js:443
msgid "Maximize all" msgid "Maximize all"
msgstr "Maximera alla" msgstr "Maximera alla"
#: extensions/window-list/extension.js:449 #: extensions/window-list/extension.js:451
msgid "Unmaximize all" msgid "Unmaximize all"
msgstr "Avmaximera alla" msgstr "Avmaximera alla"
#: extensions/window-list/extension.js:457 #: extensions/window-list/extension.js:459
msgid "Close all" msgid "Close all"
msgstr "Stäng alla" msgstr "Stäng alla"
#: extensions/window-list/extension.js:737 #: extensions/window-list/extension.js:741
msgid "Window List" msgid "Window List"
msgstr "Fönsterlista" msgstr "Fönsterlista"
@@ -214,7 +214,7 @@ msgstr ""
"värden är ”never” (aldrig), ”auto” och ”always” (alltid)." "värden är ”never” (aldrig), ”auto” och ”always” (alltid)."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20 #: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:89 #: extensions/window-list/prefs.js:82
msgid "Show windows from all workspaces" msgid "Show windows from all workspaces"
msgstr "Visa fönster från alla arbetsytor" msgstr "Visa fönster från alla arbetsytor"
@@ -251,31 +251,28 @@ msgstr "Gruppera fönster när utrymmet är begränsat"
msgid "Always group windows" msgid "Always group windows"
msgstr "Gruppera alltid fönster" msgstr "Gruppera alltid fönster"
#: extensions/window-list/prefs.js:82 #: extensions/window-list/prefs.js:75
msgid "Show on all monitors" msgid "Show on all monitors"
msgstr "Visa på alla skärmar" msgstr "Visa på alla skärmar"
#: extensions/window-list/workspaceIndicator.js:209 #: extensions/window-list/workspaceIndicator.js:211
#: extensions/workspace-indicator/extension.js:215 #: extensions/workspace-indicator/extension.js:216
msgid "Workspace Indicator" msgid "Workspace Indicator"
msgstr "Arbetsyteindikator" msgstr "Arbetsyteindikator"
#: extensions/workspace-indicator/prefs.js:34 #: extensions/workspace-indicator/prefs.js:131
msgid "Workspace Names" msgid "Workspace Names"
msgstr "Namn på arbetsytor" msgstr "Namn på arbetsytor"
#: extensions/workspace-indicator/prefs.js:67 #: extensions/workspace-indicator/prefs.js:151
msgid "Name"
msgstr "Namn"
#: extensions/workspace-indicator/prefs.js:191
#, javascript-format #, javascript-format
msgid "Workspace %d" msgid "Workspace %d"
msgstr "Arbetsyta %d" msgstr "Arbetsyta %d"
#: extensions/workspace-indicator/prefs.js:218
msgid "Add Workspace"
msgstr "Lägg till arbetsyta"
#~ msgid "Name"
#~ msgstr "Namn"
#~ msgid "Attach modal dialog to the parent window" #~ msgid "Attach modal dialog to the parent window"
#~ msgstr "Koppla samman modal dialog till föräldrafönstret" #~ msgstr "Koppla samman modal dialog till föräldrafönstret"
+66 -67
View File
@@ -7,15 +7,15 @@
# Muhammet Kara <muhammetk@gmail.com>, 2013, 2014, 2015. # Muhammet Kara <muhammetk@gmail.com>, 2013, 2014, 2015.
# Furkan Tokaç <developmentft@gmail.com>, 2017. # Furkan Tokaç <developmentft@gmail.com>, 2017.
# Sabri Ünal <libreajans@gmail.com>, 2014, 2019. # Sabri Ünal <libreajans@gmail.com>, 2014, 2019.
# Emin Tufan Çetin <etcetin@gmail.com>, 2019, 2020. # Emin Tufan Çetin <etcetin@gmail.com>, 2019.
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: gnome-shell-extensions master\n" "Project-Id-Version: gnome-shell-extensions master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n" "issues\n"
"POT-Creation-Date: 2020-05-03 17:53+0000\n" "POT-Creation-Date: 2019-09-05 16:28+0000\n"
"PO-Revision-Date: 2020-05-05 17:28+0300\n" "PO-Revision-Date: 2019-09-06 23:07+0300\n"
"Last-Translator: Emin Tufan Çetin <etcetin@gmail.com>\n" "Last-Translator: Emin Tufan Çetin <etcetin@gmail.com>\n"
"Language-Team: Turkish <gnome-turk@gnome.org>\n" "Language-Team: Turkish <gnome-turk@gnome.org>\n"
"Language: tr\n" "Language: tr\n"
@@ -35,7 +35,7 @@ msgstr "Bu oturum, GNOME Klasik sürümüne giriş yapmanızı sağlar"
#: extensions/apps-menu/extension.js:113 #: extensions/apps-menu/extension.js:113
msgid "Favorites" msgid "Favorites"
msgstr "Gözdeler" msgstr "Favoriler"
#: extensions/apps-menu/extension.js:369 #: extensions/apps-menu/extension.js:369
msgid "Applications" msgid "Applications"
@@ -53,26 +53,39 @@ msgstr ""
"Her biri, bir uygulama kimliği (masaüstü dosya adı) ardından gelen iki nokta " "Her biri, bir uygulama kimliği (masaüstü dosya adı) ardından gelen iki nokta "
"üst üste ve çalışma alanı numarasını içeren dizgeler listesi" "üst üste ve çalışma alanı numarasını içeren dizgeler listesi"
#: extensions/auto-move-windows/prefs.js:35 #: extensions/auto-move-windows/prefs.js:60
msgid "Workspace Rules" msgid "Application"
msgstr "Çalışma Alanı Kuralları" msgstr "Uygulama"
#: extensions/auto-move-windows/prefs.js:243 #: extensions/auto-move-windows/prefs.js:71
#: extensions/auto-move-windows/prefs.js:134
msgid "Workspace"
msgstr "Çalışma Alanı"
#: extensions/auto-move-windows/prefs.js:89
msgid "Add Rule" msgid "Add Rule"
msgstr "Kural Ekle" msgstr "Kural Ekle"
#: extensions/auto-move-windows/prefs.js:111
msgid "Create new matching rule"
msgstr "Yeni bir eşleşme kuralı oluştur"
#: extensions/auto-move-windows/prefs.js:117
msgid "Add"
msgstr "Ekle"
#. TRANSLATORS: %s is the filesystem name #. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:112 #: extensions/drive-menu/extension.js:103
#: extensions/places-menu/placeDisplay.js:233 #: extensions/places-menu/placeDisplay.js:233
#, javascript-format #, javascript-format
msgid "Ejecting drive “%s” failed:" msgid "Ejecting drive “%s” failed:"
msgstr "“%s” sürücüsü çıkarılamadı:" msgstr "“%s” sürücüsü çıkarılamadı:"
#: extensions/drive-menu/extension.js:128 #: extensions/drive-menu/extension.js:119
msgid "Removable devices" msgid "Removable devices"
msgstr "Çıkarılabilir aygıtlar" msgstr "Çıkarılabilir aygıtlar"
#: extensions/drive-menu/extension.js:155 #: extensions/drive-menu/extension.js:146
msgid "Open Files" msgid "Open Files"
msgstr "Dosyaları Aç" msgstr "Dosyaları Aç"
@@ -83,13 +96,13 @@ msgstr "Pencereler için ekranın daha fazla kısmını kullan"
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:6 #: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:6
msgid "" msgid ""
"Try to use more screen for placing window thumbnails by adapting to screen " "Try to use more screen for placing window thumbnails by adapting to screen "
"aspect ratio, and consolidating them further to reduce the bounding box. " "aspect ratio, and consolidating them further to reduce the bounding box. This "
"This setting applies only with the natural placement strategy." "setting applies only with the natural placement strategy."
msgstr "" msgstr ""
"Ekran en-boy oranına uyum sağlayarak ve sınır kutucuğunu küçültmek için daha " "Ekran en-boy oranına uyum sağlayarak ve sınır kutucuğunu küçültmek için daha da "
"da sıkılaştırarak, pencere küçük resimlerini yerleştirmek için ekranda daha " "sıkılaştırarak, pencere küçük resimlerini yerleştirmek için ekranda daha fazla "
"fazla alan kullanmayı dene. Bu seçenek sadece doğal yerleştirme stratejisi " "alan kullanmayı dene. Bu seçenek sadece doğal yerleştirme stratejisi ile "
"ile geçerlidir." "geçerlidir."
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:11 #: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:11
msgid "Place window captions on top" msgid "Place window captions on top"
@@ -101,13 +114,11 @@ msgid ""
"shell default of placing it at the bottom. Changing this setting requires " "shell default of placing it at the bottom. Changing this setting requires "
"restarting the shell to have any effect." "restarting the shell to have any effect."
msgstr "" msgstr ""
"Eğer doğruysa, pencere açıklamalarını ilgili küçük resimlerin üzerine " "Eğer doğruysa, pencere açıklamalarını ilgili küçük resimlerin üzerine yerleştir "
"yerleştir ve kabukta öntanımlı olan alta yerleştirme ayarını geçersiz kıl. " "ve kabukta öntanımlı olan alta yerleştirme ayarını geçersiz kıl. Yapılan "
"Yapılan değişikliklerin etkili olması için kabuğun yeniden başlatılması " "değişikliklerin etkili olması için kabuğun yeniden başlatılması gerekir."
"gerekir."
#: extensions/places-menu/extension.js:89 #: extensions/places-menu/extension.js:80 extensions/places-menu/extension.js:84
#: extensions/places-menu/extension.js:93
msgid "Places" msgid "Places"
msgstr "Yerler" msgstr "Yerler"
@@ -170,27 +181,27 @@ msgstr "Önceki duruma getir"
msgid "Maximize" msgid "Maximize"
msgstr "En büyük duruma getir" msgstr "En büyük duruma getir"
#: extensions/window-list/extension.js:429 #: extensions/window-list/extension.js:431
msgid "Minimize all" msgid "Minimize all"
msgstr "Tümünü simge durumuna küçült" msgstr "Tümünü simge durumuna küçült"
#: extensions/window-list/extension.js:435 #: extensions/window-list/extension.js:437
msgid "Unminimize all" msgid "Unminimize all"
msgstr "Tümünü önceki duruma getir" msgstr "Tümünü önceki duruma getir"
#: extensions/window-list/extension.js:441 #: extensions/window-list/extension.js:443
msgid "Maximize all" msgid "Maximize all"
msgstr "Tümünü en büyük duruma getir" msgstr "Tümünü en büyük duruma getir"
#: extensions/window-list/extension.js:449 #: extensions/window-list/extension.js:451
msgid "Unmaximize all" msgid "Unmaximize all"
msgstr "Tümünü önceki duruma getir" msgstr "Tümünü önceki duruma getir"
#: extensions/window-list/extension.js:457 #: extensions/window-list/extension.js:459
msgid "Close all" msgid "Close all"
msgstr "Tümünü kapat" msgstr "Tümünü kapat"
#: extensions/window-list/extension.js:737 #: extensions/window-list/extension.js:741
msgid "Window List" msgid "Window List"
msgstr "Pencere Listesi" msgstr "Pencere Listesi"
@@ -204,11 +215,11 @@ msgid ""
"Possible values are “never”, “auto” and “always”." "Possible values are “never”, “auto” and “always”."
msgstr "" msgstr ""
"Pencere listesinde aynı uygulamaların ne zaman kümeleneceğine karar verir. " "Pencere listesinde aynı uygulamaların ne zaman kümeleneceğine karar verir. "
"Olası değerler: “never” (hiçbir zaman), “auto” (kendiliğinden) ve " "Olası değerler: “never” (hiçbir zaman), “auto” (kendiliğinden) ve “always” (her "
"“always” (her zaman)." "zaman)."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20 #: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:100 #: extensions/window-list/prefs.js:82
msgid "Show windows from all workspaces" msgid "Show windows from all workspaces"
msgstr "Tüm çalışma alanlarındaki pencereleri göster" msgstr "Tüm çalışma alanlarındaki pencereleri göster"
@@ -227,59 +238,47 @@ msgid ""
"Whether to show the window list on all connected monitors or only on the " "Whether to show the window list on all connected monitors or only on the "
"primary one." "primary one."
msgstr "" msgstr ""
"Pencere listesinin tüm bağlı monitörlerde mi yoksa sadece birincil monitörde " "Pencere listesinin tüm bağlı monitörlerde mi yoksa sadece birincil monitörde mi "
"mi gösterileceğini belirtir." "gösterileceğini belirtir."
#: extensions/window-list/prefs.js:29 #: extensions/window-list/prefs.js:25
msgid "Window Grouping" msgid "Window Grouping"
msgstr "Pencere Kümeleme" msgstr "Pencere Kümeleme"
#: extensions/window-list/prefs.js:58 #: extensions/window-list/prefs.js:47
msgid "Never group windows" msgid "Never group windows"
msgstr "Pencereleri hiçbir zaman kümeleme" msgstr "Pencereleri hiçbir zaman kümeleme"
#: extensions/window-list/prefs.js:59 #: extensions/window-list/prefs.js:48
msgid "Group windows when space is limited" msgid "Group windows when space is limited"
msgstr "Yer kısıtlı olduğunda pencereleri kümele" msgstr "Yer kısıtlı olduğunda pencereleri kümele"
#: extensions/window-list/prefs.js:60 #: extensions/window-list/prefs.js:49
msgid "Always group windows" msgid "Always group windows"
msgstr "Pencereleri her zaman kümele" msgstr "Pencereleri her zaman kümele"
#: extensions/window-list/prefs.js:94 #: extensions/window-list/prefs.js:75
msgid "Show on all monitors" msgid "Show on all monitors"
msgstr "Tüm monitörlerde göster" msgstr "Tüm monitörlerde göster"
#: extensions/window-list/workspaceIndicator.js:209 #: extensions/window-list/workspaceIndicator.js:211
#: extensions/workspace-indicator/extension.js:215 #: extensions/workspace-indicator/extension.js:216
msgid "Workspace Indicator" msgid "Workspace Indicator"
msgstr "Çalışma Alanı Belirteci" msgstr "Çalışma Alanı Belirteci"
#: extensions/workspace-indicator/prefs.js:34 #: extensions/workspace-indicator/prefs.js:129
msgid "Workspace Names" msgid "Workspace Names"
msgstr "Çalışma Alanı Adları" msgstr "Çalışma Alanı Adları"
#: extensions/workspace-indicator/prefs.js:67 #: extensions/workspace-indicator/prefs.js:149
msgid "Name"
msgstr "Ad"
#: extensions/workspace-indicator/prefs.js:189
#, javascript-format #, javascript-format
msgid "Workspace %d" msgid "Workspace %d"
msgstr "Çalışma Alanı %d" msgstr "Çalışma Alanı %d"
#: extensions/workspace-indicator/prefs.js:218
msgid "Add Workspace"
msgstr "Çalışma Alanı Ekle"
#~ msgid "Application"
#~ msgstr "Uygulama"
#~ msgid "Create new matching rule"
#~ msgstr "Yeni bir eşleşme kuralı oluştur"
#~ msgid "Add"
#~ msgstr "Ekle"
#~ msgid "Name"
#~ msgstr "Ad"
#~ msgid "Attach modal dialog to the parent window" #~ msgid "Attach modal dialog to the parent window"
#~ msgstr "Yardımcı iletişim penceresini ana pencereye iliştir" #~ msgstr "Yardımcı iletişim penceresini ana pencereye iliştir"
@@ -293,8 +292,8 @@ msgstr "Çalışma Alanı Ekle"
#~ msgstr "Başlık çubuğundaki düğmelerin düzeni" #~ msgstr "Başlık çubuğundaki düğmelerin düzeni"
#~ msgid "" #~ msgid ""
#~ "This key overrides the key in org.gnome.desktop.wm.preferences when " #~ "This key overrides the key in org.gnome.desktop.wm.preferences when running "
#~ "running GNOME Shell." #~ "GNOME Shell."
#~ msgstr "" #~ msgstr ""
#~ "Bu anahtar, GNOME Kabuğu çalışırken org.gnome.desktop.wm.preferences " #~ "Bu anahtar, GNOME Kabuğu çalışırken org.gnome.desktop.wm.preferences "
#~ "içindeki anahtarı geçersiz kılar." #~ "içindeki anahtarı geçersiz kılar."
@@ -332,20 +331,20 @@ msgstr "Çalışma Alanı Ekle"
#~ msgstr "Alternatif karşılama metni." #~ msgstr "Alternatif karşılama metni."
#~ msgid "" #~ msgid ""
#~ "If not empty, it contains the text that will be shown when clicking on " #~ "If not empty, it contains the text that will be shown when clicking on the "
#~ "the panel." #~ "panel."
#~ msgstr "Eğer boş değilse, panele tıklandığında gösterilecek metni içerir." #~ msgstr "Eğer boş değilse, panele tıklandığında gösterilecek metni içerir."
#~ msgid "Message" #~ msgid "Message"
#~ msgstr "İleti" #~ msgstr "İleti"
#~ msgid "" #~ msgid ""
#~ "Example aims to show how to build well behaved extensions for the Shell " #~ "Example aims to show how to build well behaved extensions for the Shell and "
#~ "and as such it has little functionality on its own.\n" #~ "as such it has little functionality on its own.\n"
#~ "Nevertheless its possible to customize the greeting message." #~ "Nevertheless its possible to customize the greeting message."
#~ msgstr "" #~ msgstr ""
#~ "Bu örnek, Shell için uygun eklentilerin nasıl geliştirileceğini " #~ "Bu örnek, Shell için uygun eklentilerin nasıl geliştirileceğini göstermeyi "
#~ "göstermeyi amaçlar; bu yüzden kendi başına çok az işleve sahiptir.\n" #~ "amaçlar; bu yüzden kendi başına çok az işleve sahiptir.\n"
#~ "Yine de karşılama iletisini özelleştirmek mümkündür." #~ "Yine de karşılama iletisini özelleştirmek mümkündür."
#~ msgid "CPU" #~ msgid "CPU"
+51 -55
View File
@@ -4,23 +4,22 @@
# Alexandr Toorchyn <ilex@mail.ua>, 2011. # Alexandr Toorchyn <ilex@mail.ua>, 2011.
# Daniel Korostil <ted.korostiled@gmail.com>, 2013, 2014, 2015, 2017. # Daniel Korostil <ted.korostiled@gmail.com>, 2013, 2014, 2015, 2017.
# vikaig <vikaig99@gmail.com>, 2019. # vikaig <vikaig99@gmail.com>, 2019.
# Yuri Chornoivan <yurchor@ukr.net>, 2020.
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: gnome-shell-extensions master\n" "Project-Id-Version: gnome-shell-extensions master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/is" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"sues\n" "issues\n"
"POT-Creation-Date: 2020-05-03 17:53+0000\n" "POT-Creation-Date: 2019-10-13 18:56+0000\n"
"PO-Revision-Date: 2020-05-03 22:19+0300\n" "PO-Revision-Date: 2019-10-18 18:01+0300\n"
"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n" "Last-Translator: vikaig <vikaig99@gmail.com>\n"
"Language-Team: Ukrainian <kde-i18n-uk@kde.org>\n" "Language-Team: linux.org.ua\n"
"Language: uk\n" "Language: uk\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
"X-Generator: Lokalize 20.07.70\n" "X-Generator: Poedit 2.2.1\n"
"X-Project-Style: gnome\n" "X-Project-Style: gnome\n"
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3 #: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
@@ -51,27 +50,39 @@ msgstr ""
"Список рядків, що містять ідентифікатор програми (назва файла стільниці)," "Список рядків, що містять ідентифікатор програми (назва файла стільниці),"
"двокрапка і номер робочого простору" "двокрапка і номер робочого простору"
#: extensions/auto-move-windows/prefs.js:35 #: extensions/auto-move-windows/prefs.js:60
#| msgid "Workspace Names" msgid "Application"
msgid "Workspace Rules" msgstr "Програма"
msgstr "Правила робочих просторів"
#: extensions/auto-move-windows/prefs.js:243 #: extensions/auto-move-windows/prefs.js:71
#: extensions/auto-move-windows/prefs.js:134
msgid "Workspace"
msgstr "Робочий простір"
#: extensions/auto-move-windows/prefs.js:89
msgid "Add Rule" msgid "Add Rule"
msgstr "Додати правило" msgstr "Додати правило"
#: extensions/auto-move-windows/prefs.js:111
msgid "Create new matching rule"
msgstr "Створити нове відповідне правило"
#: extensions/auto-move-windows/prefs.js:117
msgid "Add"
msgstr "Додати"
#. TRANSLATORS: %s is the filesystem name #. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:112 #: extensions/drive-menu/extension.js:103
#: extensions/places-menu/placeDisplay.js:233 #: extensions/places-menu/placeDisplay.js:233
#, javascript-format #, javascript-format
msgid "Ejecting drive “%s” failed:" msgid "Ejecting drive “%s” failed:"
msgstr "Не вдалося витягнути пристрій «%s»:" msgstr "Не вдалося витягнути пристрій «%s»:"
#: extensions/drive-menu/extension.js:128 #: extensions/drive-menu/extension.js:119
msgid "Removable devices" msgid "Removable devices"
msgstr "Змінні пристрої" msgstr "Змінні пристрої"
#: extensions/drive-menu/extension.js:155 #: extensions/drive-menu/extension.js:146
msgid "Open Files" msgid "Open Files"
msgstr "Відкрити файли" msgstr "Відкрити файли"
@@ -104,8 +115,8 @@ msgstr ""
"в нижній, як це робиться типово. Зміна цього параметра вимагає перезапуску " "в нижній, як це робиться типово. Зміна цього параметра вимагає перезапуску "
"оболонки, щоб зміна вступила в силу." "оболонки, щоб зміна вступила в силу."
#: extensions/places-menu/extension.js:89 #: extensions/places-menu/extension.js:80
#: extensions/places-menu/extension.js:93 #: extensions/places-menu/extension.js:84
msgid "Places" msgid "Places"
msgstr "Місця" msgstr "Місця"
@@ -168,27 +179,27 @@ msgstr "Відновити розгорнуте"
msgid "Maximize" msgid "Maximize"
msgstr "Розгорнути" msgstr "Розгорнути"
#: extensions/window-list/extension.js:429 #: extensions/window-list/extension.js:431
msgid "Minimize all" msgid "Minimize all"
msgstr "Згорнути все" msgstr "Згорнути все"
#: extensions/window-list/extension.js:435 #: extensions/window-list/extension.js:437
msgid "Unminimize all" msgid "Unminimize all"
msgstr "Відновити все згорнуте" msgstr "Відновити все згорнуте"
#: extensions/window-list/extension.js:441 #: extensions/window-list/extension.js:443
msgid "Maximize all" msgid "Maximize all"
msgstr "Розгорнути все" msgstr "Розгорнути все"
#: extensions/window-list/extension.js:449 #: extensions/window-list/extension.js:451
msgid "Unmaximize all" msgid "Unmaximize all"
msgstr "Відновити все розгорнуте" msgstr "Відновити все розгорнуте"
#: extensions/window-list/extension.js:457 #: extensions/window-list/extension.js:459
msgid "Close all" msgid "Close all"
msgstr "Закрити все" msgstr "Закрити все"
#: extensions/window-list/extension.js:737 #: extensions/window-list/extension.js:741
msgid "Window List" msgid "Window List"
msgstr "Перелік вікон" msgstr "Перелік вікон"
@@ -205,7 +216,7 @@ msgstr ""
"значеннями є «never», «auto» і «always»." "значеннями є «never», «auto» і «always»."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20 #: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:100 #: extensions/window-list/prefs.js:82
msgid "Show windows from all workspaces" msgid "Show windows from all workspaces"
msgstr "Показувати вікна з усіх робочих просторів" msgstr "Показувати вікна з усіх робочих просторів"
@@ -225,59 +236,44 @@ msgstr ""
"Чи показувати переліку вікон на всіх під'єднаних моніторах, чи тільки на " "Чи показувати переліку вікон на всіх під'єднаних моніторах, чи тільки на "
"основному." "основному."
#: extensions/window-list/prefs.js:29 #: extensions/window-list/prefs.js:25
msgid "Window Grouping" msgid "Window Grouping"
msgstr "Групування вікон" msgstr "Групування вікон"
#: extensions/window-list/prefs.js:58 #: extensions/window-list/prefs.js:47
msgid "Never group windows" msgid "Never group windows"
msgstr "Ніколи не групувати вікна" msgstr "Ніколи не групувати вікна"
#: extensions/window-list/prefs.js:59 #: extensions/window-list/prefs.js:48
msgid "Group windows when space is limited" msgid "Group windows when space is limited"
msgstr "Групувати вікна коли простір обмежено" msgstr "Групувати вікна коли простір обмежено"
#: extensions/window-list/prefs.js:60 #: extensions/window-list/prefs.js:49
msgid "Always group windows" msgid "Always group windows"
msgstr "Завжди групувати вікна" msgstr "Завжди групувати вікна"
#: extensions/window-list/prefs.js:94 #: extensions/window-list/prefs.js:75
msgid "Show on all monitors" msgid "Show on all monitors"
msgstr "Показувати на всіх моніторах" msgstr "Показувати на всіх моніторах"
#: extensions/window-list/workspaceIndicator.js:209 #: extensions/window-list/workspaceIndicator.js:211
#: extensions/workspace-indicator/extension.js:215 #: extensions/workspace-indicator/extension.js:216
msgid "Workspace Indicator" msgid "Workspace Indicator"
msgstr "Покажчик робочого простору" msgstr "Покажчик робочого простору"
#: extensions/workspace-indicator/prefs.js:34 #: extensions/workspace-indicator/prefs.js:129
msgid "Workspace Names" msgid "Workspace Names"
msgstr "Назви робочих просторів" msgstr "Назви робочих просторів"
#: extensions/workspace-indicator/prefs.js:67 #: extensions/workspace-indicator/prefs.js:149
msgid "Name"
msgstr "Назва"
#: extensions/workspace-indicator/prefs.js:189
#, javascript-format #, javascript-format
msgid "Workspace %d" msgid "Workspace %d"
msgstr "Робочий простір %d" msgstr "Робочий простір %d"
#: extensions/workspace-indicator/prefs.js:218
msgid "Add Workspace"
msgstr "Додати робочий простір"
#~ msgid "Application"
#~ msgstr "Програма"
#~ msgid "Workspace"
#~ msgstr "Робочий простір"
#~ msgid "Create new matching rule"
#~ msgstr "Створити нове відповідне правило"
#~ msgid "Add"
#~ msgstr "Додати"
#~ msgid "Name"
#~ msgstr "Назва"
#~ msgid "Attach modal dialog to the parent window" #~ msgid "Attach modal dialog to the parent window"
#~ msgstr "Приєднати модальне вікно до батьківського вікна" #~ msgstr "Приєднати модальне вікно до батьківського вікна"
+141 -125
View File
@@ -1,27 +1,26 @@
# Chinese (China) translation for gnome-shell-extensions. # Chinese (China) translation for gnome-shell-extensions.
# Copyright (C) 2011-2019 gnome-shell-extensions's authors and contributors # Copyright (C) 2011 Free Software Foundation, Inc.
# This file is distributed under the same license as the gnome-shell-extensions package. # This file is distributed under the same license as the gnome-shell-extensions package.
# Wylmer Wang <wantinghard@gmail.com>, 2011. # Wylmer Wang <wantinghard@gmail.com>, 2011.
# Aron Xu <aronxu@gnome.org>, 2011. # Aron Xu <aronxu@gnome.org>, 2011.
# tuhaihe <1132321739qq@gmail.com>, 2012, 2013. # tuhaihe <1132321739qq@gmail.com>, 2012, 2013.
# 甘露(Gan Lu) <rhythm.gan@gmail.com>, 2013. # 甘露(Gan Lu) <rhythm.gan@gmail.com>, 2013.
# Mingcong Bai <jeffbai@aosc.xyz>, 2017. # Mingcong Bai <jeffbai@aosc.xyz>, 2017.
# Dingzhong Chen <wsxy162@gmail.com>, 2019.
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: gnome-shell-extensions master\n" "Project-Id-Version: gnome-shell-extensions master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n" "issues\n"
"POT-Creation-Date: 2019-08-09 22:24+0000\n" "POT-Creation-Date: 2018-01-18 12:15+0000\n"
"PO-Revision-Date: 2019-09-10 02:34+0800\n" "PO-Revision-Date: 2017-08-18 21:26+0800\n"
"Last-Translator: Dingzhong Chen <wsxy162@gmail.com>\n" "Last-Translator: Mingcong Bai <jeffbai@aosc.xyz>\n"
"Language-Team: Chinese (China) <i18n-zh@googlegroups.com>\n" "Language-Team: Chinese (China) <i18n-zh@googlegroups.com>\n"
"Language: zh_CN\n" "Language: zh_CN\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Generator: Gtranslator 3.32.1\n" "X-Generator: Poedit 2.0.2\n"
"Plural-Forms: nplurals=1; plural=0;\n" "Plural-Forms: nplurals=1; plural=0;\n"
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3 #: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
@@ -32,11 +31,70 @@ msgstr "GNOME 经典模式"
msgid "This session logs you into GNOME Classic" msgid "This session logs you into GNOME Classic"
msgstr "该会话将登录到“GNOME 经典模式”" msgstr "该会话将登录到“GNOME 经典模式”"
#: extensions/apps-menu/extension.js:113 #: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:7
msgid "Attach modal dialog to the parent window"
msgstr "将模式对话框附着到父窗口"
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:8
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:25
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:33
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:41
msgid ""
"This key overrides the key in org.gnome.mutter when running GNOME Shell."
msgstr "当运行 GNOME Shell 时该键会覆盖 org.gnome.mutter 中的键。"
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:16
msgid "Arrangement of buttons on the titlebar"
msgstr "标题栏上按钮的排列"
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:17
msgid ""
"This key overrides the key in org.gnome.desktop.wm.preferences when running "
"GNOME Shell."
msgstr ""
"当运行 GNOME Shell 时该键会覆盖 org.gnome.desktop.wm.preferences 中的键。"
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:24
msgid "Enable edge tiling when dropping windows on screen edges"
msgstr "启用将窗口拖拽到屏幕边缘时平铺显示的功能"
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:32
msgid "Workspaces only on primary monitor"
msgstr "仅在主显示器上显示工作区"
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:40
msgid "Delay focus changes in mouse mode until the pointer stops moving"
msgstr "将鼠标模式下焦点的切换推迟到光标停止移动之后"
#: extensions/alternate-tab/prefs.js:19
msgid "Thumbnail only"
msgstr "仅缩略图"
#: extensions/alternate-tab/prefs.js:20
msgid "Application icon only"
msgstr "仅应用程序图标"
#: extensions/alternate-tab/prefs.js:21
msgid "Thumbnail and application icon"
msgstr "缩略图和应用程序图标"
#: extensions/alternate-tab/prefs.js:34
msgid "Present windows as"
msgstr "窗口展现为"
#: extensions/alternate-tab/prefs.js:65
msgid "Show only windows in the current workspace"
msgstr "仅显示当前工作区中的窗口"
#: extensions/apps-menu/extension.js:37
msgid "Activities Overview"
msgstr "活动概览"
#: extensions/apps-menu/extension.js:130
msgid "Favorites" msgid "Favorites"
msgstr "收藏" msgstr "收藏"
#: extensions/apps-menu/extension.js:368 #: extensions/apps-menu/extension.js:417
msgid "Applications" msgid "Applications"
msgstr "应用程序" msgstr "应用程序"
@@ -51,30 +109,30 @@ msgid ""
msgstr "" msgstr ""
"一系列字符串,每个字符串包含一个应用程序标识(桌面文件名称)、冒号加工作区号" "一系列字符串,每个字符串包含一个应用程序标识(桌面文件名称)、冒号加工作区号"
#: extensions/auto-move-windows/prefs.js:60 #: extensions/auto-move-windows/prefs.js:53
msgid "Application" msgid "Application"
msgstr "应用程序" msgstr "应用程序"
#: extensions/auto-move-windows/prefs.js:71 #: extensions/auto-move-windows/prefs.js:62
#: extensions/auto-move-windows/prefs.js:134 #: extensions/auto-move-windows/prefs.js:117
msgid "Workspace" msgid "Workspace"
msgstr "工作区" msgstr "工作区"
#: extensions/auto-move-windows/prefs.js:89 #: extensions/auto-move-windows/prefs.js:78
msgid "Add Rule" msgid "Add Rule"
msgstr "添加规则" msgstr "添加规则"
#: extensions/auto-move-windows/prefs.js:111 #: extensions/auto-move-windows/prefs.js:98
msgid "Create new matching rule" msgid "Create new matching rule"
msgstr "创建新的匹配规则" msgstr "创建新的匹配规则"
#: extensions/auto-move-windows/prefs.js:117 #: extensions/auto-move-windows/prefs.js:103
msgid "Add" msgid "Add"
msgstr "添加" msgstr "添加"
#. TRANSLATORS: %s is the filesystem name #. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:102 #: extensions/drive-menu/extension.js:103
#: extensions/places-menu/placeDisplay.js:232 #: extensions/places-menu/placeDisplay.js:219
#, javascript-format #, javascript-format
msgid "Ejecting drive “%s” failed:" msgid "Ejecting drive “%s” failed:"
msgstr "弹出驱动器“%s”失败:" msgstr "弹出驱动器“%s”失败:"
@@ -83,10 +141,39 @@ msgstr "弹出驱动器“%s”失败:"
msgid "Removable devices" msgid "Removable devices"
msgstr "可移动设备" msgstr "可移动设备"
#: extensions/drive-menu/extension.js:145 #: extensions/drive-menu/extension.js:143
msgid "Open Files" msgid "Open Files"
msgstr "打开文件" msgstr "打开文件"
#: extensions/example/extension.js:17
msgid "Hello, world!"
msgstr "Hello, world!"
#: extensions/example/org.gnome.shell.extensions.example.gschema.xml:5
msgid "Alternative greeting text."
msgstr "替代的祝福语。"
#: extensions/example/org.gnome.shell.extensions.example.gschema.xml:6
msgid ""
"If not empty, it contains the text that will be shown when clicking on the "
"panel."
msgstr "如果不为空,所包含的文本会在点击面板时显示。"
#: extensions/example/prefs.js:27
msgid "Message"
msgstr "消息"
#. TRANSLATORS: Example is the name of the extension, should not be
#. translated
#: extensions/example/prefs.js:40
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."
msgstr ""
"示例意在展示如何为 Shell 创建良好工作的扩展,本身功能有限。\n"
"尽管如此,它还是具备定制祝福语的功能。"
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:5 #: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:5
msgid "Use more screen for windows" msgid "Use more screen for windows"
msgstr "展现窗口时利用更多屏幕空间" msgstr "展现窗口时利用更多屏幕空间"
@@ -113,31 +200,31 @@ msgstr ""
"如果设置为 true,则将窗口说明文字放置在对应窗口的缩略图上方,而不是默认的下" "如果设置为 true,则将窗口说明文字放置在对应窗口的缩略图上方,而不是默认的下"
"方。修改此设置需要重启 GNOME Shell 以使设置生效。" "方。修改此设置需要重启 GNOME Shell 以使设置生效。"
#: extensions/places-menu/extension.js:80 #: extensions/places-menu/extension.js:79
#: extensions/places-menu/extension.js:84 #: extensions/places-menu/extension.js:82
msgid "Places" msgid "Places"
msgstr "位置" msgstr "位置"
#: extensions/places-menu/placeDisplay.js:46 #: extensions/places-menu/placeDisplay.js:66
#, javascript-format
msgid "Failed to launch “%s”"
msgstr "无法启动“%s”"
#: extensions/places-menu/placeDisplay.js:61
#, javascript-format #, javascript-format
msgid "Failed to mount volume for “%s”" msgid "Failed to mount volume for “%s”"
msgstr "无法为“%s”挂载卷" msgstr "无法为“%s”挂载卷"
#: extensions/places-menu/placeDisplay.js:148 #: extensions/places-menu/placeDisplay.js:79
#: extensions/places-menu/placeDisplay.js:171 #, javascript-format
msgid "Failed to launch “%s”"
msgstr "无法启动“%s”"
#: extensions/places-menu/placeDisplay.js:135
#: extensions/places-menu/placeDisplay.js:158
msgid "Computer" msgid "Computer"
msgstr "计算机" msgstr "计算机"
#: extensions/places-menu/placeDisplay.js:358 #: extensions/places-menu/placeDisplay.js:336
msgid "Home" msgid "Home"
msgstr "主文件夹" msgstr "主文件夹"
#: extensions/places-menu/placeDisplay.js:403 #: extensions/places-menu/placeDisplay.js:378
msgid "Browse Network" msgid "Browse Network"
msgstr "浏览网络" msgstr "浏览网络"
@@ -157,47 +244,52 @@ msgstr "主题名称"
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell" msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "从 ~/.themes/name/gnome-shell 加载的主题名称" msgstr "从 ~/.themes/name/gnome-shell 加载的主题名称"
#: extensions/window-list/extension.js:99 #: extensions/window-list/extension.js:106
msgid "Close" msgid "Close"
msgstr "关闭" msgstr "关闭"
#: extensions/window-list/extension.js:119 #: extensions/window-list/extension.js:125
msgid "Unminimize" msgid "Unminimize"
msgstr "取消最小化" msgstr "取消最小化"
#: extensions/window-list/extension.js:119 #: extensions/window-list/extension.js:126
msgid "Minimize" msgid "Minimize"
msgstr "最小化" msgstr "最小化"
#: extensions/window-list/extension.js:126 #: extensions/window-list/extension.js:132
msgid "Unmaximize" msgid "Unmaximize"
msgstr "取消最大化" msgstr "取消最大化"
#: extensions/window-list/extension.js:126 #: extensions/window-list/extension.js:133
msgid "Maximize" msgid "Maximize"
msgstr "最大化" msgstr "最大化"
#: extensions/window-list/extension.js:431 #: extensions/window-list/extension.js:408
msgid "Minimize all" msgid "Minimize all"
msgstr "全部最小化" msgstr "全部最小化"
#: extensions/window-list/extension.js:437 #: extensions/window-list/extension.js:414
msgid "Unminimize all" msgid "Unminimize all"
msgstr "全部取消最小化" msgstr "全部取消最小化"
#: extensions/window-list/extension.js:443 #: extensions/window-list/extension.js:420
msgid "Maximize all" msgid "Maximize all"
msgstr "全部最大化" msgstr "全部最大化"
#: extensions/window-list/extension.js:451 #: extensions/window-list/extension.js:429
msgid "Unmaximize all" msgid "Unmaximize all"
msgstr "全部取消最大化" msgstr "全部取消最大化"
#: extensions/window-list/extension.js:459 #: extensions/window-list/extension.js:438
msgid "Close all" msgid "Close all"
msgstr "全部关闭" msgstr "全部关闭"
#: extensions/window-list/extension.js:741 #: extensions/window-list/extension.js:646
#: extensions/workspace-indicator/extension.js:26
msgid "Workspace Indicator"
msgstr "工作区指示器"
#: extensions/window-list/extension.js:811
msgid "Window List" msgid "Window List"
msgstr "窗口列表" msgstr "窗口列表"
@@ -214,124 +306,48 @@ msgstr ""
"不)、“auto”(自动)和“always”(总是)。" "不)、“auto”(自动)和“always”(总是)。"
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20 #: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:82
msgid "Show windows from all workspaces"
msgstr "显示所有工作区中的窗口"
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:21
msgid "Whether to show windows from all workspaces or only the current one."
msgstr "显示所有工作区中的窗口还是只显示当前工作区中的。"
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:27
msgid "Show the window list on all monitors" msgid "Show the window list on all monitors"
msgstr "在所有显示器上显示窗口列表" msgstr "在所有显示器上显示窗口列表"
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:28 #: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:21
msgid "" msgid ""
"Whether to show the window list on all connected monitors or only on the " "Whether to show the window list on all connected monitors or only on the "
"primary one." "primary one."
msgstr "是否在所有连接的显示器上显示窗口列表或仅在主显示器上显示。" msgstr "是否在所有连接的显示器上显示窗口列表或仅在主显示器上显示。"
#: extensions/window-list/prefs.js:25 #: extensions/window-list/prefs.js:28
msgid "Window Grouping" msgid "Window Grouping"
msgstr "窗口分组" msgstr "窗口分组"
#: extensions/window-list/prefs.js:47 #: extensions/window-list/prefs.js:46
msgid "Never group windows" msgid "Never group windows"
msgstr "从不将窗口分组" msgstr "从不将窗口分组"
#: extensions/window-list/prefs.js:48 #: extensions/window-list/prefs.js:47
msgid "Group windows when space is limited" msgid "Group windows when space is limited"
msgstr "当空间有限时将窗口分组" msgstr "当空间有限时将窗口分组"
#: extensions/window-list/prefs.js:49 #: extensions/window-list/prefs.js:48
msgid "Always group windows" msgid "Always group windows"
msgstr "总是对窗口分组" msgstr "总是对窗口分组"
#: extensions/window-list/prefs.js:75 #: extensions/window-list/prefs.js:71
msgid "Show on all monitors" msgid "Show on all monitors"
msgstr "在所有显示器上显示" msgstr "在所有显示器上显示"
#: extensions/window-list/workspaceIndicator.js:211 #: extensions/workspace-indicator/prefs.js:134
#: extensions/workspace-indicator/extension.js:216
msgid "Workspace Indicator"
msgstr "工作区指示器"
#: extensions/workspace-indicator/prefs.js:131
msgid "Workspace Names" msgid "Workspace Names"
msgstr "工作区名称" msgstr "工作区名称"
#: extensions/workspace-indicator/prefs.js:151 #: extensions/workspace-indicator/prefs.js:150
msgid "Name" msgid "Name"
msgstr "名称" msgstr "名称"
#: extensions/workspace-indicator/prefs.js:191 #: extensions/workspace-indicator/prefs.js:190
#, javascript-format #, javascript-format
msgid "Workspace %d" msgid "Workspace %d"
msgstr "工作区 %d" msgstr "工作区 %d"
#~ msgid "Attach modal dialog to the parent window"
#~ msgstr "将模式对话框附着到父窗口"
#~ msgid ""
#~ "This key overrides the key in org.gnome.mutter when running GNOME Shell."
#~ msgstr "当运行 GNOME Shell 时该键会覆盖 org.gnome.mutter 中的键。"
#~ 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 ""
#~ "当运行 GNOME Shell 时该键会覆盖 org.gnome.desktop.wm.preferences 中的键。"
#~ msgid "Enable edge tiling when dropping windows on screen edges"
#~ msgstr "启用将窗口拖拽到屏幕边缘时平铺显示的功能"
#~ msgid "Workspaces only on primary monitor"
#~ msgstr "仅在主显示器上显示工作区"
#~ msgid "Delay focus changes in mouse mode until the pointer stops moving"
#~ msgstr "将鼠标模式下焦点的切换推迟到光标停止移动之后"
#~ msgid "Thumbnail only"
#~ msgstr "仅缩略图"
#~ msgid "Application icon only"
#~ msgstr "仅应用程序图标"
#~ msgid "Thumbnail and application icon"
#~ msgstr "缩略图和应用程序图标"
#~ msgid "Present windows as"
#~ msgstr "窗口展现为"
#~ msgid "Activities Overview"
#~ msgstr "活动概览"
#~ msgid "Hello, world!"
#~ msgstr "Hello, world!"
#~ msgid "Alternative greeting text."
#~ msgstr "替代的祝福语。"
#~ msgid ""
#~ "If not empty, it contains the text that will be shown when clicking on "
#~ "the panel."
#~ msgstr "如果不为空,所包含的文本会在点击面板时显示。"
#~ msgid "Message"
#~ msgstr "消息"
#~ 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."
#~ msgstr ""
#~ "示例意在展示如何为 Shell 创建良好工作的扩展,本身功能有限。\n"
#~ "尽管如此,它还是具备定制祝福语的功能。"
#~ msgid "GNOME Shell Classic" #~ msgid "GNOME Shell Classic"
#~ msgstr "GNOME Shell 经典模式" #~ msgstr "GNOME Shell 经典模式"
+38 -38
View File
@@ -7,17 +7,17 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: gnome-shell-extensions gnome-3-0\n" "Project-Id-Version: gnome-shell-extensions gnome-3-0\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/is"
"issues\n" "sues\n"
"POT-Creation-Date: 2020-04-17 16:03+0000\n" "POT-Creation-Date: 2019-09-17 08:27+0000\n"
"PO-Revision-Date: 2020-05-02 16:06+0800\n" "PO-Revision-Date: 2019-10-08 18:58+0800\n"
"Last-Translator: Cheng-Chia Tseng <pswo10680@gmail.com>\n" "Last-Translator: pan93412 <pan93412@gmail.com>\n"
"Language-Team: Chinese <zh-l10n@linux.org.tw>\n" "Language-Team: Chinese <zh-l10n@linux.org.tw>\n"
"Language: zh_TW\n" "Language: zh_TW\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 2.3\n" "X-Generator: Lokalize 19.08.1\n"
"Plural-Forms: nplurals=1; plural=0;\n" "Plural-Forms: nplurals=1; plural=0;\n"
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3 #: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
@@ -48,39 +48,39 @@ msgstr ""
"字串的列表,每個都包含一個應用程式 id (桌面檔名稱),後面接著半形分號 \";\" 與" "字串的列表,每個都包含一個應用程式 id (桌面檔名稱),後面接著半形分號 \";\" 與"
"工作區號碼" "工作區號碼"
#: extensions/auto-move-windows/prefs.js:59 #: extensions/auto-move-windows/prefs.js:60
msgid "Application" msgid "Application"
msgstr "應用程式" msgstr "應用程式"
#: extensions/auto-move-windows/prefs.js:70 #: extensions/auto-move-windows/prefs.js:71
#: extensions/auto-move-windows/prefs.js:133 #: extensions/auto-move-windows/prefs.js:134
msgid "Workspace" msgid "Workspace"
msgstr "工作區" msgstr "工作區"
#: extensions/auto-move-windows/prefs.js:88 #: extensions/auto-move-windows/prefs.js:89
msgid "Add Rule" msgid "Add Rule"
msgstr "加入規則" msgstr "加入規則"
#: extensions/auto-move-windows/prefs.js:110 #: extensions/auto-move-windows/prefs.js:111
msgid "Create new matching rule" msgid "Create new matching rule"
msgstr "建立新的比對規則" msgstr "建立新的比對規則"
#: extensions/auto-move-windows/prefs.js:116 #: extensions/auto-move-windows/prefs.js:117
msgid "Add" msgid "Add"
msgstr "加入" msgstr "加入"
#. TRANSLATORS: %s is the filesystem name #. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:112 #: extensions/drive-menu/extension.js:103
#: extensions/places-menu/placeDisplay.js:233 #: extensions/places-menu/placeDisplay.js:233
#, javascript-format #, javascript-format
msgid "Ejecting drive “%s” failed:" msgid "Ejecting drive “%s” failed:"
msgstr "裝置「%s」退出失敗:" msgstr "裝置「%s」退出失敗:"
#: extensions/drive-menu/extension.js:128 #: extensions/drive-menu/extension.js:119
msgid "Removable devices" msgid "Removable devices"
msgstr "可移除式裝置" msgstr "可移除式裝置"
#: extensions/drive-menu/extension.js:155 #: extensions/drive-menu/extension.js:146
msgid "Open Files" msgid "Open Files"
msgstr "開啟檔案" msgstr "開啟檔案"
@@ -110,8 +110,8 @@ msgstr ""
"如果為真,在對映的縮圖頂端放置視窗說明標題,凌駕 Shell 將它放置在底部的預設" "如果為真,在對映的縮圖頂端放置視窗說明標題,凌駕 Shell 將它放置在底部的預設"
"值。變更這個設定值需要重新啟動 Shell 來套用效果。" "值。變更這個設定值需要重新啟動 Shell 來套用效果。"
#: extensions/places-menu/extension.js:89 #: extensions/places-menu/extension.js:80
#: extensions/places-menu/extension.js:93 #: extensions/places-menu/extension.js:84
msgid "Places" msgid "Places"
msgstr "位置" msgstr "位置"
@@ -174,27 +174,27 @@ msgstr "取消最大化"
msgid "Maximize" msgid "Maximize"
msgstr "最大化" msgstr "最大化"
#: extensions/window-list/extension.js:429 #: extensions/window-list/extension.js:431
msgid "Minimize all" msgid "Minimize all"
msgstr "全部最小化" msgstr "全部最小化"
#: extensions/window-list/extension.js:435 #: extensions/window-list/extension.js:437
msgid "Unminimize all" msgid "Unminimize all"
msgstr "全部取消最小化" msgstr "全部取消最小化"
#: extensions/window-list/extension.js:441 #: extensions/window-list/extension.js:443
msgid "Maximize all" msgid "Maximize all"
msgstr "全部最大化" msgstr "全部最大化"
#: extensions/window-list/extension.js:449 #: extensions/window-list/extension.js:451
msgid "Unmaximize all" msgid "Unmaximize all"
msgstr "全部取消最大化" msgstr "全部取消最大化"
#: extensions/window-list/extension.js:457 #: extensions/window-list/extension.js:459
msgid "Close all" msgid "Close all"
msgstr "全部關閉" msgstr "全部關閉"
#: extensions/window-list/extension.js:737 #: extensions/window-list/extension.js:741
msgid "Window List" msgid "Window List"
msgstr "視窗列表" msgstr "視窗列表"
@@ -206,15 +206,18 @@ msgstr "何時群組視窗"
msgid "" msgid ""
"Decides when to group windows from the same application on the window list. " "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 "" msgstr "決定在視窗列表中何時群組視窗。可能的數值有「never」、「auto」、「always」。"
"決定在視窗列表中何時群組視窗。可能的數值有「never」、「auto」、「always」。"
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20 #: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:89 #: extensions/window-list/prefs.js:82
#| msgid "Show only windows in the current workspace"
msgid "Show windows from all workspaces" msgid "Show windows from all workspaces"
msgstr "顯示所有工作區的視窗" msgstr "顯示所有工作區的視窗"
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:21 #: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:21
#| msgid ""
#| "Whether to show the window list on all connected monitors or only on the "
#| "primary one."
msgid "Whether to show windows from all workspaces or only the current one." msgid "Whether to show windows from all workspaces or only the current one."
msgstr "是否顯示所有工作區,還是僅顯示目前工作區的視窗。" msgstr "是否顯示所有工作區,還是僅顯示目前工作區的視窗。"
@@ -244,31 +247,28 @@ msgstr "當空間受限時群組視窗"
msgid "Always group windows" msgid "Always group windows"
msgstr "永遠群組視窗" msgstr "永遠群組視窗"
#: extensions/window-list/prefs.js:82 #: extensions/window-list/prefs.js:75
msgid "Show on all monitors" msgid "Show on all monitors"
msgstr "顯示於所有螢幕" msgstr "顯示於所有螢幕"
#: extensions/window-list/workspaceIndicator.js:209 #: extensions/window-list/workspaceIndicator.js:211
#: extensions/workspace-indicator/extension.js:215 #: extensions/workspace-indicator/extension.js:216
msgid "Workspace Indicator" msgid "Workspace Indicator"
msgstr "工作區指示器" msgstr "工作區指示器"
#: extensions/workspace-indicator/prefs.js:34 #: extensions/workspace-indicator/prefs.js:129
msgid "Workspace Names" msgid "Workspace Names"
msgstr "工作區名稱" msgstr "工作區名稱"
#: extensions/workspace-indicator/prefs.js:67 #: extensions/workspace-indicator/prefs.js:149
msgid "Name"
msgstr "名稱"
#: extensions/workspace-indicator/prefs.js:189
#, javascript-format #, javascript-format
msgid "Workspace %d" msgid "Workspace %d"
msgstr "工作區 %d" msgstr "工作區 %d"
#: extensions/workspace-indicator/prefs.js:218
msgid "Add Workspace"
msgstr "新增工作區"
#~ msgid "Name"
#~ msgstr "名稱"
#~ msgid "Attach modal dialog to the parent window" #~ msgid "Attach modal dialog to the parent window"
#~ msgstr "附加強制對話盒到上層視窗" #~ msgstr "附加強制對話盒到上層視窗"