Compare commits

..

8 Commits

Author SHA1 Message Date
Giovanni Campagna 651f4542d8 Bump version to 3.6.2
Time for some translation updates.
2012-11-16 20:36:53 +01:00
Giovanni Campagna f1eb846b47 PlacesMenu: ignore missing local bookmarks
If a local bookmark does not refer to an existing directory, ignore
it instead of showing a broken entry.
2012-11-16 20:31:18 +01:00
Giovanni Campagna 7428d1702f PlacesMenu: support historical location for bookmarks file
Ubuntu is shipping with Nautilus 3.4 in 12.10, so the bookmarks file
was not moved to .config/gtk-3.0.
2012-11-16 20:31:17 +01:00
Giovanni Campagna 8d2e8c8cb1 native-window-placement: fix disabling the extension
The monkey patch was being reinstalled under the wrong name.
2012-11-11 19:27:36 +01:00
Giovanni Campagna 5673baa6b5 PlacesMenu: don't fail for GIO errors getting the file name
Different GIO backends can fail in different ways trying to query
file infos. If that's the case, fail back to safe get_basename()
instead of crashing.
2012-11-07 17:43:46 +01:00
Dušan Kazik 6833713da0 Updated slovak translation 2012-11-06 23:46:30 +01:00
Мирослав Николић b5d143fabb Updated Serbian translation 2012-10-27 21:37:10 +02:00
Christian Kirbach 6cd0ad710d Updated German translation 2012-10-24 12:40:36 +02:00
26 changed files with 2394 additions and 763 deletions
-14
View File
@@ -1,17 +1,3 @@
3.7.2
=====
* fixed crashes with places-menu, windowsNavigator, alternate-tab
and native-window-placement
* alternate-tab now hides attached modal dialogs
* places-menu has restored support for Nautilus 3.4
* the default for hibernate is now to show in alternative-status-menu
* some extensions are now tagged as "classic", and can be chosen with
--enable-extensions=classic-mode
* dock and gajim were removed at the beginning of the 3.7.1 cycle,
as they were buggy and unmaintained
* updated translations (ar, cs, de, el, es, gl, id, lt, lv, pa, pl
ru, sk, sl, sr, sr@latin)
3.6.1 3.6.1
===== =====
* fixed alternative-status-menu for the new lock screen * fixed alternative-status-menu for the new lock screen
+11 -10
View File
@@ -1,5 +1,5 @@
AC_PREREQ(2.63) AC_PREREQ(2.63)
AC_INIT([gnome-shell-extensions],[3.7.2],[https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell&component=extensions]) AC_INIT([gnome-shell-extensions],[3.6.2],[https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell&component=extensions])
AC_CONFIG_MACRO_DIR([m4]) AC_CONFIG_MACRO_DIR([m4])
AC_CONFIG_AUX_DIR([config]) AC_CONFIG_AUX_DIR([config])
@@ -27,23 +27,22 @@ fi
AC_SUBST([SHELL_VERSION]) AC_SUBST([SHELL_VERSION])
dnl keep this in alphabetic order dnl keep this in alphabetic order
CLASSIC_EXTENSIONS="apps-menu places-menu alternate-tab workspace-indicator" dnl by default, install only extensions that do not change completely the shell experience,
DEFAULT_EXTENSIONS="$CLASSIC_EXTENSIONS alternative-status-menu drive-menu windowsNavigator" dnl that don't require GSettings and that don't require external packages for typelibs
ALL_EXTENSIONS="$DEFAULT_EXTENSIONS auto-move-windows example native-window-placement systemMonitor user-theme xrandr-indicator" dnl (so basically only menus, status icons, search providers, overview tabs, message tray sources, etc.)
DEFAULT_EXTENSIONS="alternative-status-menu apps-menu dock drive-menu gajim places-menu windowsNavigator workspace-indicator"
ALL_EXTENSIONS="$DEFAULT_EXTENSIONS alternate-tab auto-move-windows example native-window-placement systemMonitor user-theme xrandr-indicator"
AC_SUBST(ALL_EXTENSIONS, [$ALL_EXTENSIONS]) AC_SUBST(ALL_EXTENSIONS, [$ALL_EXTENSIONS])
AC_ARG_ENABLE([extensions], AC_ARG_ENABLE([extensions],
[AS_HELP_STRING([--enable-extensions],[Space separated list of extensions to enable. [AS_HELP_STRING([--enable-extensions],[Space separated list of extensions to enable.
The default is to build and distribute all extensions that can be installed in the home directory and have no external depedencies. The default is to build all extensions that can be installed in the home directory and have no external depedencies.
Use "all" to enable all available extensions, or "classic-mode" to enable extensions that restore GNOME 2 functionality.])], Use "all" to enable all available extensions.])],
[], [],
[enable_extensions=$DEFAULT_EXTENSIONS] [enable_extensions=$DEFAULT_EXTENSIONS]
) )
if test x"$enable_extensions" = xall; then if test x"$enable_extensions" = xall; then
enable_extensions="$ALL_EXTENSIONS" enable_extensions="$ALL_EXTENSIONS"
fi fi
if test x"$enable_extensions" = xclassic-mode; then
enable_extensions="$CLASSIC_EXTENSIONS"
fi
ENABLED_EXTENSIONS= ENABLED_EXTENSIONS=
for e in $enable_extensions; do for e in $enable_extensions; do
@@ -59,7 +58,7 @@ for e in $enable_extensions; do
[AC_MSG_WARN([gnome-desktop-3.0 not found, disabling xrandr-indicator])]) [AC_MSG_WARN([gnome-desktop-3.0 not found, disabling xrandr-indicator])])
;; ;;
dnl keep this in alphabetic order dnl keep this in alphabetic order
alternate-tab|alternative-status-menu|apps-menu|auto-move-windows|drive-menu|example|native-window-placement|places-menu|user-theme|windowsNavigator|workspace-indicator) alternate-tab|alternative-status-menu|apps-menu|auto-move-windows|dock|drive-menu|example|gajim|native-window-placement|places-menu|user-theme|windowsNavigator|workspace-indicator)
ENABLED_EXTENSIONS="$ENABLED_EXTENSIONS $e" ENABLED_EXTENSIONS="$ENABLED_EXTENSIONS $e"
;; ;;
*) *)
@@ -75,8 +74,10 @@ AC_CONFIG_FILES([
extensions/alternative-status-menu/Makefile extensions/alternative-status-menu/Makefile
extensions/apps-menu/Makefile extensions/apps-menu/Makefile
extensions/auto-move-windows/Makefile extensions/auto-move-windows/Makefile
extensions/dock/Makefile
extensions/drive-menu/Makefile extensions/drive-menu/Makefile
extensions/example/Makefile extensions/example/Makefile
extensions/gajim/Makefile
extensions/native-window-placement/Makefile extensions/native-window-placement/Makefile
extensions/places-menu/Makefile extensions/places-menu/Makefile
extensions/systemMonitor/Makefile extensions/systemMonitor/Makefile
+12 -17
View File
@@ -119,14 +119,13 @@ const AltTabPopup = new Lang.Class({
}); });
} else { } else {
windows = global.display.get_tab_list(Meta.TabList.NORMAL_ALL, global.screen, windows = global.display.get_tab_list(Meta.TabList.NORMAL_ALL, global.screen,
global.screen.get_active_workspace()); global.screen.get_active_workspace());
} }
// Filter away attached modal dialogs (switch to their parents instead) if (!windows.length) {
windows = windows.filter(function(win) { return !win.is_attached_dialog(); }); this.destroy();
if (windows.length == 0)
return false; return false;
}
if (!Main.pushModal(this.actor)) { if (!Main.pushModal(this.actor)) {
// Probably someone else has a pointer grab, try again with keyboard only // Probably someone else has a pointer grab, try again with keyboard only
@@ -429,20 +428,16 @@ function init(metadata) {
settings = Convenience.getSettings(); settings = Convenience.getSettings();
} }
function setKeybinding(name, func) {
Main.wm.setCustomKeybindingHandler(name, Main.KeybindingMode.NORMAL, func);
}
function enable() { function enable() {
setKeybinding('switch-windows', doAltTab); Meta.keybindings_set_custom_handler('switch-windows', doAltTab);
setKeybinding('switch-group', doAltTab); Meta.keybindings_set_custom_handler('switch-group', doAltTab);
setKeybinding('switch-windows-backward', doAltTab); Meta.keybindings_set_custom_handler('switch-windows-backward', doAltTab);
setKeybinding('switch-group-backward', doAltTab); Meta.keybindings_set_custom_handler('switch-group-backward', doAltTab);
} }
function disable() { function disable() {
setKeybinding('switch-windows', Lang.bind(Main.wm, Main.wm._startAppSwitcher)); Meta.keybindings_set_custom_handler('switch-windows', Lang.bind(Main.wm, Main.wm._startAppSwitcher));
setKeybinding('switch-group', Lang.bind(Main.wm, Main.wm._startAppSwitcher)); Meta.keybindings_set_custom_handler('switch-group', Lang.bind(Main.wm, Main.wm._startAppSwitcher));
setKeybinding('switch-windows-backward', Lang.bind(Main.wm, Main.wm._startAppSwitcher)); Meta.keybindings_set_custom_handler('switch-windows-backward', Lang.bind(Main.wm, Main.wm._startAppSwitcher));
setKeybinding('switch-group-backward', Lang.bind(Main.wm, Main.wm._startAppSwitcher)); Meta.keybindings_set_custom_handler('switch-group-backward', Lang.bind(Main.wm, Main.wm._startAppSwitcher));
} }
+100 -139
View File
@@ -1,12 +1,6 @@
/* -*- mode: js2 - indent-tabs-mode: nil - js2-basic-offset: 4 -*- */ /* -*- mode: js2 - indent-tabs-mode: nil - js2-basic-offset: 4 -*- */
const Gio = imports.gi.Gio;
const GLib = imports.gi.GLib;
const Lang = imports.lang; const Lang = imports.lang;
const Mainloop = imports.mainloop;
const St = imports.gi.St; const St = imports.gi.St;
const BoxPointer = imports.ui.boxpointer;
const Main = imports.ui.main; const Main = imports.ui.main;
const PopupMenu = imports.ui.popupMenu; const PopupMenu = imports.ui.popupMenu;
@@ -19,65 +13,19 @@ const Convenience = Me.imports.convenience;
const LOCK_ENABLED_KEY = 'lock-enabled'; const LOCK_ENABLED_KEY = 'lock-enabled';
let extension; let suspend_item = null;
let hibernate_item = null;
let poweroff_item = null;
let suspend_signal_id = 0, hibernate_signal_id = 0;
let settings = null;
let setting_changed_id = 0;
// Need to reimplement here the missing bits from LoginManager function updateSuspend(object, pspec, item) {
item.actor.visible = object.get_can_suspend() && settings.get_boolean('allow-suspend');
function loginManager_hibernate() {
if (this._proxy) {
// systemd path
this._proxy.call("Hibernate",
GLib.Variant.new('(b)', [true]),
Gio.DBusCallFlags.NONE,
-1, null, null);
} else {
// upower path
this._upClient.hibernate_sync(null);
}
} }
function loginManager_canHibernate(asyncCallback) { function updateHibernate(object, pspec, item) {
if (this._proxy) { item.actor.visible = object.get_can_hibernate() && settings.get_boolean('allow-hibernate');
// systemd path
this._proxy.call("CanHibernate",
null,
Gio.DBusCallFlags.NONE,
-1, null, function(proxy, asyncResult) {
let result, error;
try {
result = proxy.call_finish(asyncResult);
} catch(e) {
error = e;
}
if (error)
asyncCallback(false);
else
asyncCallback(result[0] != 'no');
});
} else {
Mainloop.idle_add(Lang.bind(this, function() {
asyncCallback(this._upClient.get_can_hibernate());
return false;
}));
}
}
function statusMenu_updateHaveHibernate() {
loginManager_canHibernate.call(this._loginManager, Lang.bind(this,
function(result) {
this._haveHibernate = result;
this._updateSuspendOrPowerOff();
}));
}
function statusMenu_updateSuspendOrPowerOff() {
this._suspendOrPowerOffItem.actor.hide();
extension.suspendItem.actor.visible = this._haveSuspend;
extension.hibernateItem.actor.visible = this._haveHibernate;
extension.powerOffItem.actor.visible = this._haveShutdown;
} }
function onSuspendActivate(item) { function onSuspendActivate(item) {
@@ -87,13 +35,12 @@ function onSuspendActivate(item) {
let tmpId = Main.screenShield.connect('lock-screen-shown', Lang.bind(this, function() { let tmpId = Main.screenShield.connect('lock-screen-shown', Lang.bind(this, function() {
Main.screenShield.disconnect(tmpId); Main.screenShield.disconnect(tmpId);
this._loginManager.suspend(); this._upClient.suspend_sync(null);
})); }));
this.menu.close(BoxPointer.PopupAnimation.NONE);
Main.screenShield.lock(true); Main.screenShield.lock(true);
} else { } else {
this._loginManager.suspend(); this._upClient.suspend_sync(null);
} }
} }
@@ -104,88 +51,102 @@ function onHibernateActivate(item) {
let tmpId = Main.screenShield.connect('lock-screen-shown', Lang.bind(this, function() { let tmpId = Main.screenShield.connect('lock-screen-shown', Lang.bind(this, function() {
Main.screenShield.disconnect(tmpId); Main.screenShield.disconnect(tmpId);
loginManager_hibernate.call(this._loginManager); this._upClient.hibernate_sync(null);
})); }));
this.menu.close(BoxPointer.PopupAnimation.NONE);
Main.screenShield.lock(true); Main.screenShield.lock(true);
} else { } else {
loginManager_hibernate.call(this._loginManager); this._upClient.hibernate_sync(null);
} }
} }
const Extension = new Lang.Class({
Name: 'AlternativeStatusMenu.Extension',
_init: function() {
this.suspendItem = null;
this.hibernateItem = null;
this.powerOffItem = null;
Convenience.initTranslations();
this._settings = Convenience.getSettings();
},
enable: function() {
let statusMenu = Main.panel.statusArea.userMenu;
let children = statusMenu.menu._getMenuItems();
let index = children.length;
/* find the old entry */
for (let i = children.length - 1; i >= 0; i--) {
if (children[i] == statusMenu._suspendOrPowerOffItem) {
index = i;
break;
}
}
/* add the new entries */
this.suspendItem = new PopupMenu.PopupMenuItem(_("Suspend"));
this.suspendItem.connect('activate', Lang.bind(statusMenu, onSuspendActivate));
this.hibernateItem = new PopupMenu.PopupMenuItem(_("Hibernate"));
this.hibernateItem.connect('activate', Lang.bind(statusMenu, onHibernateActivate));
this.powerOffItem = new PopupMenu.PopupMenuItem(_("Power Off"));
this.powerOffItem.connect('activate', Lang.bind(statusMenu, function() {
this._session.ShutdownRemote();
}));
/* insert the entries at the found position */
statusMenu.menu.addMenuItem(this.suspendItem, index);
statusMenu.menu.addMenuItem(this.hibernateItem, index + 1);
statusMenu.menu.addMenuItem(this.powerOffItem, index + 2);
this._openStateChangedId = statusMenu.menu.connect('open-state-changed', function() {
statusMenu_updateHaveHibernate.call(statusMenu);
});
this._previousUpdateSuspendOrPowerOff = statusMenu._updateSuspendOrPowerOff;
statusMenu._updateSuspendOrPowerOff = statusMenu_updateSuspendOrPowerOff;
this._settingsChangedId = this._settings.connect('changed', function() {
statusMenu._updateSuspendOrPowerOff();
});
},
disable: function() {
let statusMenu = Main.panel.statusArea.userMenu;
this.suspendItem.destroy();
this.hibernateItem.destroy();
this.powerOffItem.destroy();
statusMenu.menu.disconnect(this._openStateChangedId);
this._settings.disconnect(this._settingsChangedId);
statusMenu._updateSuspendOrPowerOff = this._previousUpdateSuspendOrPowerOff;
statusMenu._updateSuspendOrPowerOff();
},
});
// Put your extension initialization code here // Put your extension initialization code here
function init(metadata) { function init(metadata) {
return (extension = new Extension()); Convenience.initTranslations();
} }
function enable() {
let statusMenu = Main.panel.statusArea.userMenu;
settings = Convenience.getSettings();
let children = statusMenu.menu._getMenuItems();
let index = children.length;
/* find and destroy the old entry */
for (let i = children.length - 1; i >= 0; i--) {
if (children[i] == statusMenu._suspendOrPowerOffItem) {
children[i].destroy();
index = i;
break;
}
}
/* add the new entries */
suspend_item = new PopupMenu.PopupMenuItem(_("Suspend"));
suspend_item.connect('activate', Lang.bind(statusMenu, onSuspendActivate));
suspend_signal_id = statusMenu._upClient.connect('notify::can-suspend', Lang.bind(statusMenu, updateSuspend, suspend_item));
updateSuspend(statusMenu._upClient, null, suspend_item);
hibernate_item = new PopupMenu.PopupMenuItem(_("Hibernate"));
hibernate_item.connect('activate', Lang.bind(statusMenu, onHibernateActivate));
hibernate_signal_id = statusMenu._upClient.connect('notify::can-hibernate', Lang.bind(statusMenu, updateHibernate, hibernate_item));
updateHibernate(statusMenu._upClient, null, hibernate_item);
poweroff_item = new PopupMenu.PopupMenuItem(_("Power Off"));
poweroff_item.connect('activate', Lang.bind(statusMenu, function() {
this._session.ShutdownRemote();
}));
/* insert the entries at the found position */
statusMenu.menu.addMenuItem(suspend_item, index);
statusMenu.menu.addMenuItem(hibernate_item, index + 1);
statusMenu.menu.addMenuItem(poweroff_item, index + 2);
// clear out this to avoid criticals (we don't mess with
// updateSuspendOrPowerOff)
statusMenu._suspendOrPowerOffItem = null;
setting_changed_id = settings.connect('changed', function() {
updateSuspend(statusMenu._upClient, null, suspend_item);
updateHibernate(statusMenu._upClient, null, hibernate_item);
});
}
function disable() {
let statusMenu = Main.panel.statusArea.userMenu;
let children = statusMenu.menu._getMenuItems();
let index = children.length;
/* find the index for the previously created suspend entry */
for (let i = children.length - 1; i >= 0; i--) {
if (children[i] == suspend_item) {
index = i;
break;
}
}
/* disconnect signals */
statusMenu._upClient.disconnect(suspend_signal_id);
statusMenu._upClient.disconnect(hibernate_signal_id);
suspend_signal_id = hibernate_signal_id = 0;
settings.disconnect(setting_changed_id);
setting_changed_id = 0;
settings = null;
/* destroy the entries we had created */
suspend_item.destroy();
hibernate_item.destroy();
poweroff_item.destroy();
/* create a new suspend/poweroff entry */
/* empty strings are fine for the labels, since we immediately call updateSuspendOrPowerOff */
let item = new PopupMenu.PopupAlternatingMenuItem("", "");
/* restore the userMenu field */
statusMenu._suspendOrPowerOffItem = item;
statusMenu.menu.addMenuItem(item, index);
item.connect('activate', Lang.bind(statusMenu, statusMenu._onSuspendOrPowerOffActivate));
statusMenu._updateSuspendOrPowerOff();
}
@@ -6,7 +6,7 @@
<_description>Control the visibility of the Suspend menu item</_description> <_description>Control the visibility of the Suspend menu item</_description>
</key> </key>
<key name="allow-hibernate" type="b"> <key name="allow-hibernate" type="b">
<default>true</default> <default>false</default>
<_summary>Enable hibernating</_summary> <_summary>Enable hibernating</_summary>
<_description>Control the visibility of the Hibernate menu item</_description> <_description>Control the visibility of the Hibernate menu item</_description>
</key> </key>
+5
View File
@@ -0,0 +1,5 @@
EXTENSION_ID = dock
include ../../extension.mk
include ../../settings.mk
+991
View File
@@ -0,0 +1,991 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
const Clutter = imports.gi.Clutter;
const Pango = imports.gi.Pango;
const GLib = imports.gi.GLib;
const Gio = imports.gi.Gio;
const Gtk = imports.gi.Gtk;
const Shell = imports.gi.Shell;
const Lang = imports.lang;
const Signals = imports.signals;
const St = imports.gi.St;
const Mainloop = imports.mainloop;
const AppFavorites = imports.ui.appFavorites;
const DND = imports.ui.dnd;
const Main = imports.ui.main;
const Overview = imports.ui.overview;
const PopupMenu = imports.ui.popupMenu;
const Search = imports.ui.search;
const Tweener = imports.ui.tweener;
const Workspace = imports.ui.workspace;
const AppDisplay = imports.ui.appDisplay;
const AltTab = imports.ui.altTab;
const Gettext = imports.gettext.domain('gnome-shell-extensions');
const _ = Gettext.gettext;
const ExtensionUtils = imports.misc.extensionUtils;
const Me = ExtensionUtils.getCurrentExtension();
const Convenience = Me.imports.convenience;
// Settings
const DOCK_POSITION_KEY = 'position';
const DOCK_SIZE_KEY = 'size';
const DOCK_HIDE_KEY = 'autohide';
const DOCK_EFFECTHIDE_KEY = 'hide-effect';
const DOCK_AUTOHIDE_ANIMATION_TIME_KEY = 'hide-effect-duration';
const DOCK_MONITOR_KEY = 'monitor';
// Keep enums in sync with GSettings schemas
const PositionMode = {
LEFT: 0,
RIGHT: 1
};
const AutoHideEffect = {
RESIZE: 0,
RESCALE: 1,
MOVE: 2
};
const DND_RAISE_APP_TIMEOUT = 500;
// Utility function to make the dock clipped to the primary monitor
function updateClip(actor, monitorNumber) {
let monitor;
if (monitorNumber > -1 && monitorNumber < Main.layoutManager.monitors.length)
monitor = Main.layoutManager.monitors[monitorNumber];
else
monitor = Main.layoutManager.primaryMonitor;
let allocation = actor.allocation;
// Here we implicitly assume that the stage and actor's parent
// share the same coordinate space
let clip = new Clutter.ActorBox({ x1: Math.max(monitor.x, allocation.x1),
y1: Math.max(monitor.y, allocation.y1),
x2: Math.min(monitor.x + monitor.width, allocation.x2),
y2: Math.min(monitor.y + monitor.height, allocation.y2) });
// Translate back into actor's coordinate space
clip.x1 -= actor.x;
clip.x2 -= actor.x;
clip.y1 -= actor.y;
clip.y2 -= actor.y;
// Apply the clip
actor.set_clip(clip.x1, clip.y1, clip.x2-clip.x1, clip.y2 - clip.y1);
}
/*************************************************************************************/
/**** start resize's Dock functions *****************/
/*************************************************************************************/
function hideDock_size () {
if (!this._hideable)
return;
let monitor = Main.layoutManager.primaryMonitor;
if (this._displayMonitor > -1 && this._displayMonitor < Main.layoutManager.monitors.length) {
monitor = Main.layoutManager.monitors[this._displayMonitor];
}
let position_x = monitor.x;
let height = (this._nicons)*(this._item_size + this._spacing) + 2*this._spacing;
let width = this._item_size + 4*this._spacing;
Tweener.addTween(this, {
_item_size: 1,
time: this._settings.get_double(DOCK_AUTOHIDE_ANIMATION_TIME_KEY),
transition: 'easeOutQuad',
onUpdate: function () {
height = (this._nicons)*(this._item_size + this._spacing) + 2*this._spacing;
width = this._item_size + 4*this._spacing;
switch (this._settings.get_enum(DOCK_POSITION_KEY)) {
case PositionMode.LEFT:
position_x=monitor.x-2*this._spacing;
break;
case PositionMode.RIGHT:
default:
position_x = monitor.x + (monitor.width-1-this._item_size-2*this._spacing);
}
this.actor.set_position (position_x,monitor.y+(monitor.height-height)/2);
this.actor.set_size(width,height);
updateClip(this.actor, this._displayMonitor);
},
});
this._hidden = true;
}
function showDock_size () {
let monitor = Main.layoutManager.primaryMonitor;
if (this._displayMonitor > -1 && this._displayMonitor < Main.layoutManager.monitors.length) {
monitor = Main.layoutManager.monitors[this._displayMonitor];
}
let height = (this._nicons)*(this._item_size + this._spacing) + 2*this._spacing;
let width = this._item_size + 4*this._spacing;
let position_x = monitor.x;
Tweener.addTween(this, {
_item_size: this._settings.get_int(DOCK_SIZE_KEY),
time: this._settings.get_double(DOCK_AUTOHIDE_ANIMATION_TIME_KEY),
transition: 'easeOutQuad',
onUpdate: function () {
height = (this._nicons)*(this._item_size + this._spacing) + 2*this._spacing;
width = this._item_size + 4*this._spacing;
switch (this._settings.get_enum(DOCK_POSITION_KEY)) {
case PositionMode.LEFT:
position_x=monitor.x-2*this._spacing;
break;
case PositionMode.RIGHT:
default:
position_x=monitor.x + (monitor.width-this._item_size-2*this._spacing);
}
this.actor.set_position (position_x, monitor.y+(monitor.height-height)/2);
this.actor.set_size(width,height);
updateClip(this.actor, this._displayMonitor);
}
});
this._hidden = false;
}
function showEffectAddItem_size () {
let primary = Main.layoutManager.primaryMonitor;
let height = (this._nicons)*(this._item_size + this._spacing) + 2*this._spacing;
let width = this._item_size + 4*this._spacing;
Tweener.addTween(this.actor, {
y: primary.y + (primary.height-height)/2,
height: height,
width: width,
time: this._settings.get_double(DOCK_AUTOHIDE_ANIMATION_TIME_KEY),
transition: 'easeOutQuad',
onUpdate: function (monitor) {
updateClip(this, monitor);
},
onUpdateParams: [this._displayMonitor]
});
}
/**************************************************************************************/
/**** start rescale's Dock functions *****************/
/**************************************************************************************/
function hideDock_scale () {
if (!this._hideable)
return;
this._item_size = this._settings.get_int(DOCK_SIZE_KEY);
let monitor = Main.layoutManager.primaryMonitor;
if (this._displayMonitor > -1 && this._displayMonitor < Main.layoutManager.monitors.length) {
monitor = Main.layoutManager.monitors[this._displayMonitor];
}
let cornerX = 0;
let height = this._nicons*(this._item_size + this._spacing) + 2*this._spacing;
let width = this._item_size + 4*this._spacing;
switch (this._settings.get_enum(DOCK_POSITION_KEY)) {
case PositionMode.LEFT:
cornerX=monitor.x;
break;
case PositionMode.RIGHT:
default:
cornerX = monitor.x + monitor.width-1;
}
Tweener.addTween(this.actor,{
y: monitor.y + (monitor.height-height)/2,
x: cornerX,
height:height,
width: width,
scale_x: 0.025,
time: this._settings.get_double(DOCK_AUTOHIDE_ANIMATION_TIME_KEY),
transition: 'easeOutQuad',
onUpdate: function(monitor) {
updateClip(this, monitor);
},
onUpdateParams: [this._displayMonitor]
});
this._hidden = true;
}
function showDock_scale () {
this._item_size = this._settings.get_int(DOCK_SIZE_KEY);
let monitor = Main.layoutManager.primaryMonitor;
if (this._displayMonitor > -1 && this._displayMonitor < Main.layoutManager.monitors.length) {
monitor = Main.layoutManager.monitors[this._displayMonitor];
}
let position_x = monitor.x;
let height = this._nicons*(this._item_size + this._spacing) + 2*this._spacing;
let width = this._item_size + 4*this._spacing;
switch (this._settings.get_enum(DOCK_POSITION_KEY)) {
case PositionMode.LEFT:
position_x=monitor.x-2*this._spacing;
break;
case PositionMode.RIGHT:
default:
position_x=monitor.x + (monitor.width-this._item_size-2*this._spacing);
}
Tweener.addTween(this.actor, {
y: monitor.y + (monitor.height-height)/2,
x: monitor.x + position_x,
height: height,
width: width,
scale_x: 1,
time: this._settings.get_double(DOCK_AUTOHIDE_ANIMATION_TIME_KEY),
transition: 'easeOutQuad',
onUpdate: function(monitor) {
updateClip(this, monitor);
},
onUpdateParams: [this._displayMonitor]
});
this._hidden = false;
}
function showEffectAddItem_scale () {
let monitor = Main.layoutManager.primaryMonitor;
if (this._displayMonitor > -1 && this._displayMonitor < Main.layoutManager.monitors.length) {
monitor = Main.layoutManager.monitors[this._displayMonitor];
}
let height = this._nicons*(this._item_size + this._spacing) + 2*this._spacing;
let width = this._item_size + 4*this._spacing;
Tweener.addTween(this.actor, {
y: monitor.y + (monitor.height-height)/2,
height: height,
width: width,
time: this._settings.get_double(DOCK_AUTOHIDE_ANIMATION_TIME_KEY),
transition: 'easeOutQuad',
onUpdate: function(monitor) {
updateClip(this, monitor);
},
onUpdateParams: [this._displayMonitor]
});
}
/**************************************************************************************/
/**** start move Dock functions *****************/
/**************************************************************************************/
function hideDock_move () {
if (!this._hideable)
return;
this._item_size = this._settings.get_int(DOCK_SIZE_KEY);
let monitor = Main.layoutManager.primaryMonitor;
if (this._displayMonitor > -1 && this._displayMonitor < Main.layoutManager.monitors.length) {
monitor = Main.layoutManager.monitors[this._displayMonitor];
}
let cornerX = 0;
let height = this._nicons*(this._item_size + this._spacing) + 2*this._spacing;
let width = this._item_size + 4*this._spacing;
switch (this._settings.get_enum(DOCK_POSITION_KEY)) {
case PositionMode.LEFT:
cornerX= monitor.x - width + this._spacing;
break;
case PositionMode.RIGHT:
default:
cornerX = monitor.x + monitor.width - this._spacing;
}
Tweener.addTween(this.actor,{
x: cornerX,
y: monitor.y + (monitor.height - height)/2,
width: width,
height: height,
time: this._settings.get_double(DOCK_AUTOHIDE_ANIMATION_TIME_KEY),
transition: 'easeOutQuad',
onUpdate: function(monitor) {
updateClip(this, monitor);
},
onUpdateParams: [this._displayMonitor]
});
this._hidden = true;
}
function showDock_move () {
this._item_size = this._settings.get_int(DOCK_SIZE_KEY);
let monitor = Main.layoutManager.primaryMonitor;
if (this._displayMonitor > -1 && this._displayMonitor < Main.layoutManager.monitors.length) {
monitor = Main.layoutManager.monitors[this._displayMonitor];
}
let position_x = monitor.x;
let height = this._nicons*(this._item_size + this._spacing) + 2*this._spacing;
let width = this._item_size + 4*this._spacing;
switch (this._settings.get_enum(DOCK_POSITION_KEY)) {
case PositionMode.LEFT:
position_x=monitor.x - 2*this._spacing;
break;
case PositionMode.RIGHT:
default:
position_x=monitor.x + (monitor.width-this._item_size-2*this._spacing);
}
Tweener.addTween(this.actor, {
x: position_x,
y: monitor.y + (monitor.height - height)/2,
width: width,
height: height,
time: this._settings.get_double(DOCK_AUTOHIDE_ANIMATION_TIME_KEY),
transition: 'easeOutQuad',
onUpdate: function(monitor) {
updateClip(this, monitor);
},
onUpdateParams: [this._displayMonitor]
});
this._hidden = false;
}
function showEffectAddItem_move () {
let monitor = Main.layoutManager.primaryMonitor;
if (this._displayMonitor > -1 && this._displayMonitor < Main.layoutManager.monitors.length) {
monitor = Main.layoutManager.monitors[this._displayMonitor];
}
let height = this._nicons*(this._item_size + this._spacing) + 2*this._spacing;
let width = this._item_size + 4*this._spacing;
Tweener.addTween(this.actor, {
y: monitor.y + (monitor.height-height)/2,
height: height,
width: width,
time: this._settings.get_double(DOCK_AUTOHIDE_ANIMATION_TIME_KEY),
transition: 'easeOutQuad',
onUpdate: function(monitor) {
updateClip(this, monitor);
},
onUpdateParams: [this._displayMonitor]
});
}
const Dock = new Lang.Class({
Name: 'Dock.Dock',
_init : function() {
this._placeholderText = null;
this._menus = [];
this._menuDisplays = [];
this._favorites = [];
// Load Settings
this._settings = Convenience.getSettings();
this._hidden = false;
this._hideable = this._settings.get_boolean(DOCK_HIDE_KEY);
this._displayMonitor = this._settings.get_int(DOCK_MONITOR_KEY);
this._spacing = 4;
this._item_size = this._settings.get_int(DOCK_SIZE_KEY);
this._nicons = 0;
this._selectEffectFunctions(this._settings.get_enum(DOCK_EFFECTHIDE_KEY));
let [_x, _y, _w, _h] = this.get_start_position();
this.actor = new St.BoxLayout({ name: 'dock', vertical: true, reactive: true,
x: _x, y: _y, width: _w, height: _h });
this._grid = new Shell.GenericContainer();
this.actor.add(this._grid, { expand: true, y_align: St.Align.START });
this.actor.connect('style-changed', Lang.bind(this, this._onStyleChanged));
this._grid.connect('get-preferred-width', Lang.bind(this, this._getPreferredWidth));
this._grid.connect('get-preferred-height', Lang.bind(this, this._getPreferredHeight));
this._grid.connect('allocate', Lang.bind(this, this._allocate));
this._workId = Main.initializeDeferredWork(this.actor, Lang.bind(this, this._redisplay));
this._tracker = Shell.WindowTracker.get_default();
this._appSystem = Shell.AppSystem.get_default();
this._installedChangedId = this._appSystem.connect('installed-changed', Lang.bind(this, this._queueRedisplay));
this._appFavoritesChangedId = AppFavorites.getAppFavorites().connect('changed', Lang.bind(this, this._queueRedisplay));
this._appStateChangedId = this._appSystem.connect('app-state-changed', Lang.bind(this, this._queueRedisplay));
this._overviewShowingId = Main.overview.connect('showing', Lang.bind(this, function() {
this.actor.hide();
}));
this._overviewHiddenId = Main.overview.connect('hidden', Lang.bind(this, function() {
this.actor.show();
}));
Main.layoutManager.addChrome(this.actor,
{ affectsStruts: !this._settings.get_boolean(DOCK_HIDE_KEY) });
//hidden
this._settings.connect('changed::'+DOCK_POSITION_KEY, Lang.bind(this, this._redisplay));
this._settings.connect('changed::'+DOCK_SIZE_KEY, Lang.bind(this, this._redisplay));
this._settings.connect('changed::'+DOCK_MONITOR_KEY, Lang.bind(this, function (){
this._displayMonitor = this._settings.get_int(DOCK_MONITOR_KEY);
this._redisplay();
}));
this._settings.connect('changed::'+DOCK_HIDE_KEY, Lang.bind(this, function (){
Main.layoutManager.removeChrome(this.actor);
Main.layoutManager.addChrome(this.actor,
{ affectsStruts: !this._settings.get_boolean(DOCK_HIDE_KEY) });
this._hideable = this._settings.get_boolean(DOCK_HIDE_KEY);
if (this._hideable)
this._hideDock();
else
this._showDock();
}));
this._settings.connect('changed::' + DOCK_EFFECTHIDE_KEY, Lang.bind(this, function () {
let hideEffect = this._settings.get_enum(DOCK_EFFECTHIDE_KEY);
// restore the effects of the other functions
switch (hideEffect) {
case AutoHideEffect.RESCALE:
this._item_size = this._settings.get_int(DOCK_SIZE_KEY);
break;
case AutoHideEffect.RESIZE:
this.actor.set_scale(1, 1);
break;
case AutoHideEffect.MOVE:
this.actor.set_scale(1, 1);
this._item_size = this._settings.get_int(DOCK_SIZE_KEY);
}
this.actor.disconnect(this._leave_event);
this.actor.disconnect(this._enter_event);
this._selectEffectFunctions(hideEffect);
this._leave_event = this.actor.connect('leave-event', Lang.bind(this, this._hideDock));
this._enter_event = this.actor.connect('enter-event', Lang.bind(this, this._showDock));
this._redisplay();
}));
this._leave_event = this.actor.connect('leave-event', Lang.bind(this, this._hideDock));
this._enter_event = this.actor.connect('enter-event', Lang.bind(this, this._showDock));
this._hideDock();
},
get_start_position: function() {
let item_size = this._settings.get_int(DOCK_SIZE_KEY);
let monitor = Main.layoutManager.primaryMonitor;
if (this._displayMonitor > -1 && this._displayMonitor < Main.layoutManager.monitors.length) {
monitor = Main.layoutManager.monitors[this._displayMonitor];
}
let position_x = monitor.x;
let width = item_size + 4 * this._spacing;
switch (this._settings.get_enum(DOCK_POSITION_KEY)) {
case PositionMode.LEFT:
position_x=monitor.x - 2 * this._spacing;
break;
case PositionMode.RIGHT:
default:
position_x=monitor.x + (monitor.width - item_size - 2 * this._spacing);
}
return [ position_x, monitor.y, width, monitor.height ];
},
destroy: function() {
if (this._installedChangedId) {
this._appSystem.disconnect(this._installedChangedId);
this._installedChangedId = 0;
}
if (this._appFavoritesChangedId) {
AppFavorites.getAppFavorites().disconnect(this._appFavoritesChangedId);
this._appFavoritesChangedId = 0;
}
if (this._appStateChangedId) {
this._appSystem.disconnect(this._appStateChangedId);
this._appStateChangedId = 0;
}
if (this._overviewShowingId) {
Main.overview.disconnect(this._overviewShowingId);
this._overviewShowingId = 0;
}
if (this._overviewHiddenId) {
Main.overview.disconnect(this._overviewHiddenId);
this._overviewHiddenId = 0;
}
this.actor.destroy();
// Break reference cycles
this._settings.run_dispose();
this._settings = null;
this._appSystem = null;
this._tracker = null;
},
// fuctions hide
_restoreHideDock: function() {
this._hideable = this._settings.get_boolean(DOCK_HIDE_KEY);
},
_disableHideDock: function() {
this._hideable = false;
},
_selectEffectFunctions: function(hideEffect) {
switch (hideEffect) {
case AutoHideEffect.RESCALE:
this._hideDock = hideDock_scale;
this._showDock = showDock_scale;
this._showEffectAddItem = showEffectAddItem_scale;
break;
case AutoHideEffect.MOVE:
this._hideDock = hideDock_move;
this._showDock = showDock_move;
this._showEffectAddItem = showEffectAddItem_move;
break;
case AutoHideEffect.RESIZE:
default:
this._hideDock = hideDock_size;
this._showDock = showDock_size;
this._showEffectAddItem = showEffectAddItem_size;
}
},
_appIdListToHash: function(apps) {
let ids = {};
for (let i = 0; i < apps.length; i++)
ids[apps[i].get_id()] = apps[i];
return ids;
},
_queueRedisplay: function () {
Main.queueDeferredWork(this._workId);
},
_redisplay: function () {
this.removeAll();
let favorites = AppFavorites.getAppFavorites().getFavoriteMap();
let running = this._appSystem.get_running();
let runningIds = this._appIdListToHash(running);
let icons = 0;
let nFavorites = 0;
for (let id in favorites) {
let app = favorites[id];
let display = new DockIcon(app,this);
this.addItem(display.actor);
nFavorites++;
icons++;
}
for (let i = 0; i < running.length; i++) {
let app = running[i];
if (app.get_id() in favorites)
continue;
let display = new DockIcon(app,this);
icons++;
this.addItem(display.actor);
}
this._nicons=icons;
if (this._placeholderText) {
this._placeholderText.destroy();
this._placeholderText = null;
}
if (running.length == 0 && nFavorites == 0) {
this._placeholderText = new St.Label({ text: _("Drag here to add favorites") });
this.actor.add_actor(this._placeholderText);
}
let primary = Main.layoutManager.primaryMonitor;
let height = (icons)*(this._item_size + this._spacing) + 2*this._spacing;
let width = this._item_size + 4*this._spacing;
if (this._hideable && this._hidden) {
this._hideDock();
} else {
if (this._settings.get_int(DOCK_SIZE_KEY) == this._item_size) {
// only add/delete icon
this._showEffectAddItem ();
} else {
// change size icon
this._showDock ();
}
}
},
_getPreferredWidth: function (grid, forHeight, alloc) {
alloc.min_size = this._item_size;
alloc.natural_size = this._item_size + this._spacing;
},
_getPreferredHeight: function (grid, forWidth, alloc) {
let children = this._grid.get_children();
let nRows = children.length;
let totalSpacing = Math.max(0, nRows - 1) * this._spacing;
let height = nRows * this._item_size + totalSpacing;
alloc.min_size = height;
alloc.natural_size = height;
},
_allocate: function (grid, box, flags) {
let children = this._grid.get_children();
let x = box.x1 + this._spacing;
if (this._settings.get_enum(DOCK_POSITION_KEY) == PositionMode.LEFT)
x = box.x1 + 2*this._spacing;
let y = box.y1 + this._spacing;
for (let i = 0; i < children.length; i++) {
let childBox = new Clutter.ActorBox();
childBox.x1 = x;
childBox.y1 = y;
childBox.x2 = childBox.x1 + this._item_size;
childBox.y2 = childBox.y1 + this._item_size;
children[i].allocate(childBox, flags);
y += this._item_size + this._spacing;
}
},
_onStyleChanged: function() {
let themeNode = this.actor.get_theme_node();
let [success, len] = themeNode.get_length('spacing', false);
if (success)
this._spacing = len;
[success, len] = themeNode.get_length('-shell-grid-item-size', false);
if (success)
this._item_size = len;
this._grid.queue_relayout();
},
removeAll: function () {
this._grid.get_children().forEach(Lang.bind(this, function (child) {
child.destroy();
}));
},
addItem: function(actor) {
this._grid.add_actor(actor);
}
});
Signals.addSignalMethods(Dock.prototype);
const DockIcon = new Lang.Class({
Name: 'Dock.DockIcon',
_init : function(app, dock) {
this._dock = dock;
this._settings = dock._settings;
this.app = app;
this.actor = new St.Button({ style_class: 'app-well-app',
button_mask: St.ButtonMask.ONE | St.ButtonMask.TWO,
reactive: true,
x_fill: true,
y_fill: true });
this.actor._delegate = this;
this._icon = new AppDisplay.AppIcon(app, { setSizeManually: true,
showLabel: false });
this.actor.set_child(this._icon.actor);
this._icon.setIconSize(this._settings.get_int(DOCK_SIZE_KEY));
this.actor.connect('clicked', Lang.bind(this, this._onClicked));
this._menu = null;
this._menuManager = new PopupMenu.PopupMenuManager(this);
this._has_focus = false;
let tracker = Shell.WindowTracker.get_default();
tracker.connect('notify::focus-app', Lang.bind(this, this._onStateChanged));
this.actor.connect('button-press-event', Lang.bind(this, this._onButtonPress));
this.actor.connect('destroy', Lang.bind(this, this._onDestroy));
this.actor.connect('notify::hover', Lang.bind(this, this._hoverChanged));
this._menuTimeoutId = 0;
this._stateChangedId = this.app.connect('notify::state',
Lang.bind(this, this._onStateChanged));
this._onStateChanged();
},
_onDestroy: function() {
if (this._stateChangedId > 0)
this.app.disconnect(this._stateChangedId);
this._stateChangedId = 0;
this._removeMenuTimeout();
},
_removeMenuTimeout: function() {
if (this._menuTimeoutId > 0) {
Mainloop.source_remove(this._menuTimeoutId);
this._menuTimeoutId = 0;
}
},
_hoverChanged: function(actor) {
if (actor != this.actor)
this._has_focus = false;
else
this._has_focus = true;
return false;
},
_onStateChanged: function() {
let tracker = Shell.WindowTracker.get_default();
let focusedApp = tracker.focus_app;
if (this.app.state != Shell.AppState.STOPPED) {
this.actor.add_style_class_name('running');
if (this.app == focusedApp) {
this.actor.add_style_class_name('focused');
} else {
this.actor.remove_style_class_name('focused');
}
} else {
this.actor.remove_style_class_name('focused');
this.actor.remove_style_class_name('running');
}
},
_onButtonPress: function(actor, event) {
let button = event.get_button();
if (button == 1) {
this._removeMenuTimeout();
this._menuTimeoutId = Mainloop.timeout_add(AppDisplay.MENU_POPUP_TIMEOUT, Lang.bind(this, function() {
this.popupMenu();
}));
} else if (button == 3) {
this.popupMenu();
}
},
_onClicked: function(actor, button) {
this._removeMenuTimeout();
if (button == 1) {
this._onActivate(Clutter.get_current_event());
} else if (button == 2) {
// Last workspace is always empty
let launchWorkspace = global.screen.get_workspace_by_index(global.screen.n_workspaces - 1);
launchWorkspace.activate(global.get_current_time());
this.emit('launching');
this.app.open_new_window(-1);
}
return false;
},
getId: function() {
return this.app.get_id();
},
popupMenu: function() {
this._removeMenuTimeout();
this.actor.fake_release();
this._dock._disableHideDock();
if (!this._menu) {
this._menu = new DockIconMenu(this);
this._menu.connect('activate-window', Lang.bind(this, function (menu, window) {
this.activateWindow(window);
}));
this._menu.connect('open-state-changed', Lang.bind(this, function (menu, isPoppedUp) {
if (!isPoppedUp){
//Restore value of autohidedock
this._dock._restoreHideDock();
this._dock._hideDock();
this._onMenuPoppedDown();
}
}));
this._menuManager.addMenu(this._menu, true);
}
this._menu.redisplay();
this._menu.open();
return false;
},
activateWindow: function(metaWindow) {
if (metaWindow) {
this._didActivateWindow = true;
Main.activateWindow(metaWindow);
}
},
setSelected: function (isSelected) {
this._selected = isSelected;
if (this._selected)
this.actor.add_style_class_name('selected');
else
this.actor.remove_style_class_name('selected');
},
_onMenuPoppedDown: function() {
this.actor.sync_hover();
},
_getRunning: function() {
return this.app.state != Shell.AppState.STOPPED;
},
_onActivate: function (event) {
this.emit('launching');
let modifiers = event.get_state();
if (modifiers & Clutter.ModifierType.CONTROL_MASK
&& this.app.state == Shell.AppState.RUNNING) {
let current_workspace = global.screen.get_active_workspace().index();
this.app.open_new_window(current_workspace);
} else {
let tracker = Shell.WindowTracker.get_default();
let focusedApp = tracker.focus_app;
if (this.app == focusedApp) {
let windows = this.app.get_windows();
let current_workspace = global.screen.get_active_workspace();
for (let i = 0; i < windows.length; i++) {
let w = windows[i];
if (w.get_workspace() == current_workspace)
w.minimize();
}
} else {
this.app.activate(-1);
}
}
Main.overview.hide();
}
});
Signals.addSignalMethods(DockIcon.prototype);
const DockIconMenu = new Lang.Class({
Name: 'Dock.DockIconMenu',
Extends: PopupMenu.PopupMenu,
_init: function(source) {
let side;
switch (source._settings.get_enum(DOCK_POSITION_KEY)) {
case PositionMode.LEFT:
side = St.Side.LEFT;
break;
case PositionMode.RIGHT:
default:
side = St.Side.RIGHT;
}
this.parent(source.actor, 0.5, side);
this._source = source;
this.connect('activate', Lang.bind(this, this._onActivate));
this.actor.add_style_class_name('dock-menu');
// Chain our visibility and lifecycle to that of the source
source.actor.connect('notify::mapped', Lang.bind(this, function () {
if (!source.actor.mapped)
this.close();
}));
source.actor.connect('destroy', Lang.bind(this, function () { this.destroy(); }));
Main.layoutManager.addChrome(this.actor);
},
redisplay: function() {
this.removeAll();
let windows = this._source.app.get_windows();
// Display the app windows menu items and the separator between windows
// of the current desktop and other windows.
let activeWorkspace = global.screen.get_active_workspace();
let separatorShown = windows.length > 0 && windows[0].get_workspace() != activeWorkspace;
for (let i = 0; i < windows.length; i++) {
if (!separatorShown && windows[i].get_workspace() != activeWorkspace) {
this._appendSeparator();
separatorShown = true;
}
let item = this._appendMenuItem(windows[i].title);
item._window = windows[i];
}
if (windows.length > 0)
this._appendSeparator();
let isFavorite = AppFavorites.getAppFavorites().isFavorite(this._source.app.get_id());
this._newWindowMenuItem = windows.length > 0 ? this._appendMenuItem(_("New Window")) : null;
this._quitAppMenuItem = windows.length >0 ? this._appendMenuItem(_("Quit Application")) : null;
if (windows.length > 0)
this._appendSeparator();
this._toggleFavoriteMenuItem = this._appendMenuItem(isFavorite ?
_("Remove from Favorites")
: _("Add to Favorites"));
this._highlightedItem = null;
},
_appendSeparator: function () {
let separator = new PopupMenu.PopupSeparatorMenuItem();
this.addMenuItem(separator);
},
_appendMenuItem: function(labelText) {
// FIXME: app-well-menu-item style
let item = new PopupMenu.PopupMenuItem(labelText);
this.addMenuItem(item);
return item;
},
popup: function(activatingButton) {
this._redisplay();
this.open();
},
_onActivate: function (actor, child) {
if (child._window) {
let metaWindow = child._window;
this.emit('activate-window', metaWindow);
} else if (child == this._newWindowMenuItem) {
let current_workspace = global.screen.get_active_workspace().index();
this._source.app.open_new_window(current_workspace);
this.emit('activate-window', null);
} else if (child == this._quitAppMenuItem) {
this._source.app.request_quit();
} else if (child == this._toggleFavoriteMenuItem) {
let favs = AppFavorites.getAppFavorites();
let isFavorite = favs.isFavorite(this._source.app.get_id());
if (isFavorite)
favs.removeFavorite(this._source.app.get_id());
else
favs.addFavorite(this._source.app.get_id());
}
this.close();
}
});
function init() {
Convenience.initTranslations();
}
let dock;
function enable() {
dock = new Dock();
}
function disable() {
dock.destroy();
dock = null;
}
+11
View File
@@ -0,0 +1,11 @@
{
"extension-id": "@extension_id@",
"uuid": "@uuid@",
"settings-schema": "@gschemaname@",
"gettext-domain": "@gettext_domain@",
"name": "Dock",
"description": "A dock for the GNOME Shell -- displays favorite and running applications",
"original-author": "tclaesson@gmail.com",
"shell-version": [ "@shell_current@" ],
"url": "@url@"
}
@@ -0,0 +1,43 @@
<schemalist gettext-domain="gnome-shell-extensions">
<enum id='org.gnome.shell.extensions.dock.PositionMode'>
<value nick='left' value='0'/>
<value nick='right' value='1'/>
</enum>
<enum id='org.gnome.shell.extensions.dock.AutoHideEffect'>
<value nick='resize' value='0'/>
<value nick='rescale' value='1'/>
<value nick='move' value='2'/>
</enum>
<schema id="org.gnome.shell.extensions.dock" path="/org/gnome/shell/extensions/dock/">
<key name="position" enum="org.gnome.shell.extensions.dock.PositionMode">
<default>'right'</default>
<_summary>Position of the dock</_summary>
<_description>Sets the position of the dock in the screen. Allowed values are 'right' or 'left'</_description>
</key>
<key name="size" type="i">
<default>48</default>
<_summary>Icon size</_summary>
<_description>Sets icon size of the dock.</_description>
</key>
<key name="autohide" type="b">
<default>true</default>
<_summary>Enable/disable autohide</_summary>
</key>
<key name="hide-effect" enum="org.gnome.shell.extensions.dock.AutoHideEffect">
<default>'move'</default>
<_summary>Autohide effect</_summary>
<_description>Sets the effect of the hide dock. Allowed values are 'resize', 'rescale' and 'move'</_description>
</key>
<key name="hide-effect-duration" type="d">
<default>0.3</default>
<_summary>Autohide duration</_summary>
<_description>Sets the time duration of the autohide effect.</_description>
</key>
<key name="monitor" type="i">
<default>-1</default>
<_summary>Monitor</_summary>
<_description>Sets monitor to display dock in. The default value (-1) is the primary monitor.</_description>
</key>
</schema>
</schemalist>
+10
View File
@@ -0,0 +1,10 @@
#dock {
border-radius: 9px;
background-color: rgba(0,0,0,0.9);
border-width: 2px;
border-color: #5f5f5f;
}
.dock-menu {
font-size: 12px
}
+3
View File
@@ -0,0 +1,3 @@
EXTENSION_ID = gajim
include ../../extension.mk
+339
View File
@@ -0,0 +1,339 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
const DBus = imports.dbus;
const Gettext = imports.gettext.domain('gnome-shell');
const Gio = imports.gi.Gio;
const GLib = imports.gi.GLib;
const Lang = imports.lang;
const Signals = imports.signals;
const St = imports.gi.St;
const Tp = imports.gi.TelepathyGLib;
const Main = imports.ui.main;
const Mainloop = imports.mainloop;
const MessageTray = imports.ui.messageTray;
const Shell = imports.gi.Shell;
const TelepathyClient = imports.ui.telepathyClient;
const _ = Gettext.gettext;
// http://ntt.cc/ext/base64-Encoding-Decoding.html
const keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
function decode64(input) {
let output = "";
let chr1, chr2, chr3;
let enc1, enc2, enc3, enc4;
let i = 0;
input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");
do {
enc1 = keyStr.indexOf(input.charAt(i++));
enc2 = keyStr.indexOf(input.charAt(i++));
enc3 = keyStr.indexOf(input.charAt(i++));
enc4 = keyStr.indexOf(input.charAt(i++));
chr1 = (enc1 << 2) | (enc2 >> 4);
chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
chr3 = ((enc3 & 3) << 6) | enc4;
output = output + String.fromCharCode(chr1);
if (enc3 != 64) {
output = output + String.fromCharCode(chr2);
}
if (enc4 != 64) {
output = output + String.fromCharCode(chr3);
}
chr1 = chr2 = chr3 = "";
enc1 = enc2 = enc3 = enc4 = "";
} while (i < input.length);
return unescape(output);
}
function wrappedText(text, sender, timestamp, direction) {
if (!timestamp)
timestamp = (Date.now() / 1000);
return {
messageType: Tp.ChannelTextMessageType.NORMAL,
text: text,
sender: sender,
timestamp: timestamp,
direction: direction
};
}
function Source(gajimClient, accountName, author, initialMessage) {
this._init(gajimClient, accountName, author, initialMessage);
}
Source.prototype = {
__proto__: MessageTray.Source.prototype,
_init: function(gajimClient, accountName, author, initialMessage) {
MessageTray.Source.prototype._init.call(this, author);
this.isChat = true;
this._author = author;
this._gajimClient = gajimClient;
this._accountName = accountName;
this._initialMessage = initialMessage;
this._iconUri = null;
this._presence = "online";
this._notification = new TelepathyClient.ChatNotification(this);
this._notification.setUrgency(MessageTray.Urgency.HIGH);
let jid = author.split('/')[0];
let proxy = this._gajimClient.proxy();
proxy.contact_infoRemote(jid, Lang.bind(this, this._gotContactInfos));
this._statusChangeId = proxy.connect('ContactStatus',
Lang.bind(this, this._onStatusChange));
this._contactAbsenceId = proxy.connect('ContactAbsence',
Lang.bind(this, this._onStatusChange));
this._chatStateId = proxy.connect('ChatState',
Lang.bind(this, this._onChatState));
this._messageSentId = proxy.connect('MessageSent',
Lang.bind(this, this._messageSent));
this._newMessageId = proxy.connect('NewMessage',
Lang.bind(this, this._messageReceived));
},
destroy: function() {
let proxy = this._gajimClient.proxy();
proxy.disconnect(this._statusChangeId);
proxy.disconnect(this._contactAbsenceId);
proxy.disconnect(this._chatStateId);
proxy.disconnect(this._messageSentId);
proxy.disconnect(this._newMessageId);
MessageTray.Source.prototype.destroy.call(this);
},
_gotContactInfos: function(result, excp) {
this.title = result['FN'] || result['NICKNAME'] || result['jid'];
let avatarUri = null;
if (result['PHOTO']) {
let mimeType = result['PHOTO']['TYPE'];
let avatarData = decode64(result['PHOTO']['BINVAL']);
let sha = result['PHOTO']['SHA'];
avatarUri = this._gajimClient.cacheAvatar(mimeType, sha, avatarData);
}
this._iconUri = avatarUri;
this._setSummaryIcon(this.createNotificationIcon());
let message = wrappedText(this._initialMessage, this._author, null, TelepathyClient.NotificationDirection.RECEIVED);
this._notification.appendMessage(message, false);
if (!Main.messageTray.contains(this))
Main.messageTray.add(this);
this.notify(this._notification);
},
createNotificationIcon: function() {
let iconBox = new St.Bin({ style_class: 'avatar-box' });
iconBox._size = this.ICON_SIZE;
if (!this._iconUri) {
iconBox.child = new St.Icon({ icon_name: 'avatar-default',
icon_size: iconBox._size });
} else {
let textureCache = St.TextureCache.get_default();
iconBox.child = textureCache.load_uri_async(this._iconUri, iconBox._size, iconBox._size);
}
return iconBox;
},
open: function(notification) {
// Lookup for the messages window and display it. In the case where it's not o
// opened yet fallback to the roster window.
let windows = global.get_window_actors();
for (let i = 0; i < windows.length; i++) {
let metaWindow = windows[i].metaWindow;
if (metaWindow.get_wm_class_instance() == "gajim" &&
metaWindow.get_role() == "messages") {
Main.activateWindow(metaWindow);
return;
}
}
let app = Shell.AppSystem.get_default().lookup_app('gajim.desktop');
app.activate(-1);
},
_onChatState: function(emitter, data) {
let chatstate = data[1][5];
if (chatstate == 'gone')
this.destroy();
},
setChatState: function(state) {
// Gajim DBUS API doesn't support sending chatstate yet.
},
_messageReceived: function(emitter, data) {
let author = data[1][0];
let text = data[1][1];
if (text && (author == this._author)) {
let message = wrappedText(text, this._author, null, TelepathyClient.NotificationDirection.RECEIVED);
this._notification.appendMessage(message, false);
this.notify(this._notification);
}
},
_messageSent: function(emitter, data) {
let recipient = data[1][0];
let text = data[1][1];
let chatstate = data[1][3];
if (text && (recipient == this._author)) {
let message = wrappedText(text, this._author, null, TelepathyClient.NotificationDirection.SENT);
this._notification.appendMessage(message, false);
} else if (chatstate == 'gone')
this.destroy();
},
notify: function() {
MessageTray.Source.prototype.notify.call(this, this._notification);
},
respond: function(text) {
let jid = this._author;
let keyID = ""; // unencrypted.
this._gajimClient.proxy().send_chat_messageRemote(jid, text, keyID, this._accountName);
},
_onStatusChange: function(emitter, data) {
if (!this.title)
return;
let jid = data[1][0];
let presence = data[1][1];
let message = data[1][2];
if (jid != this._author.split('/')[0])
return;
let presenceMessage, shouldNotify, title;
title = GLib.markup_escape_text(this.title, -1);
if (presence == "away") {
presenceMessage = _("%s is away.").format(title);
shouldNotify = false;
} else if (presence == "offline") {
presenceMessage = _("%s is offline.").format(title);
shouldNotify = (this._presence != "offline");
} else if (presence == "online") {
presenceMessage = _("%s is online.").format(title);
shouldNotify = (this._presence == "offline");
} else if (presence == "dnd") {
presenceMessage = _("%s is busy.").format(title);
shouldNotify = false;
} else
return;
this._presence = presence;
if (message)
presenceMessage += ' <i>(' + GLib.markup_escape_text(message, -1) + ')</i>';
this._notification.appendPresence(presenceMessage, shouldNotify);
if (shouldNotify)
this.notify(this._notification);
}
};
const GajimIface = {
name: 'org.gajim.dbus.RemoteInterface',
properties: [],
methods: [{ name: 'send_chat_message', inSignature: 'ssss', outSignature: 'b'},
{ name: 'contact_info', inSignature: 's', outSignature: 'a{sv}'}],
signals: [{ name: 'NewMessage', inSignature: 'av' },
{ name: 'ChatState', inSignature: 'av' },
{ name: 'ContactStatus', inSignature: 'av' },
{ name: 'ContactAbsence', inSignature: 'av' },
{ name: 'MessageSent', inSignature: 'av' }]
};
let Gajim = DBus.makeProxyClass(GajimIface);
function GajimClient() {
this._init();
}
GajimClient.prototype = {
_init: function() {
this._sources = {};
},
proxy : function() {
return this._proxy;
},
enable: function() {
this._cacheDir = GLib.get_user_cache_dir() + '/gnome-shell/gajim-avatars';
let dir = Gio.file_new_for_path(this._cacheDir);
if (!dir.query_exists(null)) {
GLib.mkdir_with_parents(this._cacheDir, 0x1c0); // 0x1c0 = octal 0700
}
this._proxy = new Gajim(DBus.session, 'org.gajim.dbus', '/org/gajim/dbus/RemoteObject');
this._newMessageId = this._proxy.connect('NewMessage', Lang.bind(this, this._messageReceived));
},
disable: function() {
if (this._newMessageId) {
this._proxy.disconnect(this._newMessageId);
this._newMessageId = 0;
}
this._proxy = null;
for (let id in this._sources)
this._sources[id].destroy();
this._sources = { };
},
_messageReceived : function(emitter, data) {
let author = data[1][0];
let message = data[1][1];
let account = data[0];
let source = this._sources[author];
if (!source) {
source = new Source(this, account, author, message);
source.connect('destroy', Lang.bind(this,
function() {
delete this._sources[author];
}));
this._sources[author] = source;
}
},
cacheAvatar : function(mimeType, sha, avatarData) {
let ext = mimeType.split('/')[1];
let file = this._cacheDir + '/' + sha + '.' + ext;
let uri = GLib.filename_to_uri(file, null);
if (GLib.file_test(file, GLib.FileTest.EXISTS))
return uri;
let success = false;
try {
success = GLib.file_set_contents(file, avatarData, avatarData.length);
} catch (e) {
logError(e, 'Error caching avatar data');
}
return uri;
}
};
function init() {
return new GajimClient();
}
+10
View File
@@ -0,0 +1,10 @@
{
"extension-id": "@extension_id@",
"uuid": "@uuid@",
"settings-schema": "@gschemaname@",
"gettext-domain": "@gettext_domain@",
"name": "Gajim IM integration",
"description": "Display Gajim incoming chats as notifications in the Shell message tray.",
"shell-version": [ "@shell_current@" ],
"url": "http://base-art.net"
}
+1
View File
@@ -0,0 +1 @@
/* none used */
+71 -18
View File
@@ -123,7 +123,6 @@ function enable() {
let settings = Convenience.getSettings(); let settings = Convenience.getSettings();
let useMoreScreen = settings.get_boolean('use-more-screen'); let useMoreScreen = settings.get_boolean('use-more-screen');
let windowCaptionsOnTop = settings.get_boolean('window-captions-on-top');
let signalId = settings.connect('changed::use-more-screen', function() { let signalId = settings.connect('changed::use-more-screen', function() {
useMoreScreen = settings.get_boolean('use-more-screen'); useMoreScreen = settings.get_boolean('use-more-screen');
}); });
@@ -149,13 +148,7 @@ function enable() {
let ratio = this._width / this._height; let ratio = this._width / this._height;
let x_gap = Math.max(WORKSPACE_BORDER_GAP, WINDOW_AREA_TOP_GAP * ratio); let x_gap = Math.max(WORKSPACE_BORDER_GAP, WINDOW_AREA_TOP_GAP * ratio);
let y_gap = Math.max(WORKSPACE_BORDER_GAP / ratio, WINDOW_AREA_TOP_GAP); let y_gap = Math.max(WORKSPACE_BORDER_GAP / ratio, WINDOW_AREA_TOP_GAP);
let bottom_padding = 0; let area = new Rect(this._x + x_gap/2, this._y + y_gap, this._width - x_gap, this._height - y_gap);
// If the window captions are below the window, put an additional gap to account for them
if (!windowCaptionsOnTop && this._windowOverlays.length)
bottom_padding += this._windowOverlays[0].chromeHeights()[1];
let area = new Rect(this._x + x_gap/2, this._y + y_gap, this._width - x_gap, this._height - y_gap - bottom_padding);
let bounds = area.copy(); let bounds = area.copy();
@@ -328,17 +321,17 @@ function enable() {
let animate = flags & WindowPositionFlags.ANIMATE; let animate = flags & WindowPositionFlags.ANIMATE;
// Start the animations // Start the animations
let targets = []; let targets = [];
let scales = []; let scales = [];
[clones, targets] = this._calculateWindowTransformationsNatural(clones); [clones, targets] = this._calculateWindowTransformationsNatural(clones);
let currentWorkspace = global.screen.get_active_workspace(); let currentWorkspace = global.screen.get_active_workspace();
let isOnCurrentWorkspace = this.metaWorkspace == null || this.metaWorkspace == currentWorkspace; let isOnCurrentWorkspace = this.metaWorkspace == null || this.metaWorkspace == currentWorkspace;
for (let i = 0; i < clones.length; i++) { for (let i = 0; i < clones.length; i++) {
let clone = clones[i]; let clone = clones[i];
let [x, y , scale] = targets[i]; let [x, y , scale] = targets[i];
let metaWindow = clone.metaWindow; let metaWindow = clone.metaWindow;
let mainIndex = this._lookupIndex(metaWindow); let mainIndex = this._lookupIndex(metaWindow);
let overlay = this._windowOverlays[mainIndex]; let overlay = this._windowOverlays[mainIndex];
@@ -382,15 +375,63 @@ function enable() {
} }
/// position window titles on top of windows in overlay //// /// position window titles on top of windows in overlay ////
if (windowCaptionsOnTop) { if (settings.get_boolean('window-captions-on-top')) {
winInjections['_init'] = Workspace.WindowOverlay.prototype._init;
Workspace.WindowOverlay.prototype._init = function(windowClone, parentActor) {
let metaWindow = windowClone.metaWindow;
this._windowClone = windowClone;
this._parentActor = parentActor;
this._hidden = false;
let title = new St.Label({ style_class: 'window-caption',
text: metaWindow.title });
title.clutter_text.ellipsize = Pango.EllipsizeMode.END;
title._spacing = 0;
title._overlap = 0;
this._updateCaptionId = metaWindow.connect('notify::title', Lang.bind(this, function(w) {
this.title.text = w.title;
}));
let button = new St.Button({ style_class: 'window-close' });
button._overlap = 0;
this._idleToggleCloseId = 0;
button.connect('clicked', Lang.bind(this, this._closeWindow));
windowClone.actor.connect('destroy', Lang.bind(this, this._onDestroy));
windowClone.actor.connect('enter-event', Lang.bind(this, this._onEnter));
windowClone.actor.connect('leave-event', Lang.bind(this, this._onLeave));
this._windowAddedId = 0;
windowClone.connect('zoom-start', Lang.bind(this, this.hide));
windowClone.connect('zoom-end', Lang.bind(this, this.show));
button.hide();
this.title = title;
this.closeButton = button;
parentActor.add_actor(this.title);
parentActor.add_actor(this.closeButton);
title.connect('style-changed', Lang.bind(this, this._onStyleChanged));
button.connect('style-changed', Lang.bind(this, this._onStyleChanged));
// force a style change if we are already on a stage - otherwise
// the signal will be emitted normally when we are added
if (parentActor.get_stage())
this._onStyleChanged();
},
winInjections['chromeHeights'] = Workspace.WindowOverlay.prototype.chromeHeights; winInjections['chromeHeights'] = Workspace.WindowOverlay.prototype.chromeHeights;
Workspace.WindowOverlay.prototype.chromeHeights = function () { Workspace.WindowOverlay.prototype.chromeHeights = function () {
return [Math.max( this.closeButton.height - this.closeButton._overlap, this.title.height - this.title._overlap), return [Math.max( this.closeButton.height - this.closeButton._overlap, this.title.height - this.title._overlap),
0]; 0];
}; },
winInjections['updatePositions'] = Workspace.WindowOverlay.prototype.updatePositions; winInjections['updatePositions'] = Workspace.WindowOverlay.prototype.updatePositions;
Workspace.WindowOverlay.prototype.updatePositions = function(cloneX, cloneY, cloneWidth, cloneHeight, animate) { Workspace.WindowOverlay.prototype.updatePositions = function(cloneX, cloneY, cloneWidth, cloneHeight, animate) {
let button = this.closeButton; let button = this.closeButton;
let title = this.title; let title = this.title;
@@ -422,7 +463,7 @@ function enable() {
let titleWidth = Math.min(title.fullWidth, cloneWidth); let titleWidth = Math.min(title.fullWidth, cloneWidth);
let titleX = cloneX + (cloneWidth - titleWidth) / 2; let titleX = cloneX + (cloneWidth - titleWidth) / 2;
let titleY = cloneY - title.height + title._spacing; let titleY = cloneY - title.height + title._overlap;
if (animate) if (animate)
this._animateOverlayActor(title, Math.floor(titleX), Math.floor(titleY), titleWidth); this._animateOverlayActor(title, Math.floor(titleX), Math.floor(titleY), titleWidth);
@@ -430,7 +471,19 @@ function enable() {
title.width = titleWidth; title.width = titleWidth;
title.set_position(Math.floor(titleX), Math.floor(titleY)); title.set_position(Math.floor(titleX), Math.floor(titleY));
} }
}; },
winInjections['_onStyleChanged'] = Workspace.WindowOverlay.prototype._onStyleChanged;
Workspace.WindowOverlay.prototype._onStyleChanged = function() {
let titleNode = this.title.get_theme_node();
this.title._spacing = titleNode.get_length('-shell-caption-spacing');
this.title._overlap = titleNode.get_length('-shell-caption-overlap');
let closeNode = this.closeButton.get_theme_node();
this.closeButton._overlap = closeNode.get_length('-shell-close-overlap');
this._parentActor.queue_relayout();
}
} }
} }
@@ -1,3 +1,3 @@
.window-caption { .window-caption {
-shell-caption-spacing: 13px; /* current caption height is 26px => set it to half of it. TODO: better solution needed */ -shell-caption-overlap: 13px; /* current caption height is 26px => set it to half of it. TODO: better solution needed */
} }
+3 -17
View File
@@ -123,15 +123,8 @@ const PlacesManager = new Lang.Class({
let specialPath = GLib.get_user_special_dir(DEFAULT_DIRECTORIES[i]); let specialPath = GLib.get_user_special_dir(DEFAULT_DIRECTORIES[i]);
if (specialPath == homePath) if (specialPath == homePath)
continue; continue;
this._places.special.push(new PlaceInfo('special',
let file = Gio.File.new_for_path(specialPath), info; Gio.File.new_for_path(specialPath)));
try {
info = new PlaceInfo('special', file);
} catch(e if e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.NOT_FOUND)) {
continue;
}
this._places.special.push(info);
} }
/* /*
@@ -318,14 +311,7 @@ const PlacesManager = new Lang.Class({
}, },
_addMount: function(kind, mount) { _addMount: function(kind, mount) {
let devItem; let devItem = new PlaceDeviceInfo(kind, mount);
try {
devItem = new PlaceDeviceInfo(kind, mount);
} catch(e if e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.NOT_FOUND)) {
return;
}
this._places[kind].push(devItem); this._places[kind].push(devItem);
}, },
+39 -4
View File
@@ -33,10 +33,26 @@ function resetState() {
function enable() { function enable() {
resetState(); resetState();
Workspace.WindowOverlay.prototype.setId = function(id) {
if (this._text && this._text.visible && id == null)
this._text.hide();
this._id = id;
if (id != null)
this._text.text = this._id.toString();
}
winInjections['setId'] = undefined;
Workspace.WindowOverlay.prototype.getId = function() {
return this._id;
}
winInjections['getId'] = undefined;
Workspace.WindowOverlay.prototype.showTooltip = function() { Workspace.WindowOverlay.prototype.showTooltip = function() {
if (this._id === null)
return;
this._text.raise_top(); this._text.raise_top();
this._text.show(); this._text.show();
this._text.text = (this._windowClone.slotId + 1).toString(); this._text.text = this._id.toString();
} }
winInjections['showTooltip'] = undefined; winInjections['showTooltip'] = undefined;
@@ -67,9 +83,11 @@ function enable() {
workspaceInjections['hideTooltip'] = undefined; workspaceInjections['hideTooltip'] = undefined;
Workspace.Workspace.prototype.getWindowWithTooltip = function(id) { Workspace.Workspace.prototype.getWindowWithTooltip = function(id) {
for (let i = 0; i < this._windows.length; i++) { for (let i in this._windowOverlays) {
if ((this._windows[i].slotId + 1) == id) if (this._windowOverlays[i] == null)
return this._windows[i].metaWindow; continue;
if (this._windowOverlays[i].getId() === id)
return this._windowOverlays[i]._windowClone.metaWindow;
} }
return null; return null;
} }
@@ -227,6 +245,23 @@ function enable() {
this._tip = null; this._tip = null;
}); });
workspaceInjections['positionWindows'] = injectToFunction(Workspace.Workspace.prototype, 'positionWindows', function(flags) {
let visibleClones = this._windows.slice();
if (this._reservedSlot)
visibleClones.push(this._reservedSlot);
let slots = this._computeAllWindowSlots(visibleClones.length);
visibleClones = this._orderWindowsByMotionAndStartup(visibleClones, slots);
for (let i = 0; i < visibleClones.length; i++) {
let clone = visibleClones[i];
let metaWindow = clone.metaWindow;
let mainIndex = this._lookupIndex(metaWindow);
let overlay = this._windowOverlays[mainIndex];
if (overlay)
overlay.setId(i < 9 ? i + 1 : null);
}
});
workViewInjections['_init'] = injectToFunction(WorkspacesView.WorkspacesView.prototype, '_init', function(width, height, x, y, workspaces) { workViewInjections['_init'] = injectToFunction(WorkspacesView.WorkspacesView.prototype, '_init', function(width, height, x, y, workspaces) {
this._pickWorkspace = false; this._pickWorkspace = false;
this._pickWindow = false; this._pickWindow = false;
+3
View File
@@ -7,10 +7,13 @@ extensions/apps-menu/extension.js
extensions/auto-move-windows/extension.js extensions/auto-move-windows/extension.js
extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in
extensions/auto-move-windows/prefs.js extensions/auto-move-windows/prefs.js
extensions/dock/extension.js
extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in
extensions/drive-menu/extension.js extensions/drive-menu/extension.js
extensions/example/extension.js extensions/example/extension.js
extensions/example/org.gnome.shell.extensions.example.gschema.xml.in extensions/example/org.gnome.shell.extensions.example.gschema.xml.in
extensions/example/prefs.js extensions/example/prefs.js
extensions/gajim/extension.js
extensions/native-window-placement/extension.js extensions/native-window-placement/extension.js
extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in
extensions/places-menu/extension.js extensions/places-menu/extension.js
+100 -121
View File
@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: gnome-shell-extensions master\n" "Project-Id-Version: gnome-shell-extensions master\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-10-24 12:41+0200\n" "POT-Creation-Date: 2012-10-24 12:36+0200\n"
"PO-Revision-Date: 2012-10-24 12:37+0100\n" "PO-Revision-Date: 2012-10-24 12:37+0100\n"
"Last-Translator: Christian Kirbach <christian.kirbach@gmail.com>\n" "Last-Translator: Christian Kirbach <christian.kirbach@gmail.com>\n"
"Language-Team: Deutsch <gnome-de@gnome.org>\n" "Language-Team: Deutsch <gnome-de@gnome.org>\n"
@@ -26,14 +26,8 @@ msgid "The application icon mode."
msgstr "Der Modus des Anwendungssymbols." msgstr "Der Modus des Anwendungssymbols."
#: ../extensions/alternate-tab/org.gnome.shell.extensions.alternate-tab.gschema.xml.in.h:2 #: ../extensions/alternate-tab/org.gnome.shell.extensions.alternate-tab.gschema.xml.in.h:2
msgid "" msgid "Configures how the windows are shown in the switcher. Valid possibilities are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-only' (shows only the application icon) or 'both'."
"Configures how the windows are shown in the switcher. Valid possibilities " msgstr "Legt fest, wie die Fenster im Fensterumschalter angezeigt werden. Gültige Werte sind »thumbnail-only« (zeigt ein Vorschaubild des Fensters), »app-icon-only« (zeigt das Anwendungssymbol) oder »both« (beides)."
"are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-"
"only' (shows only the application icon) or 'both'."
msgstr ""
"Legt fest, wie die Fenster im Fensterumschalter angezeigt werden. Gültige "
"Werte sind »thumbnail-only« (zeigt ein Vorschaubild des Fensters), »app-icon-"
"only« (zeigt das Anwendungssymbol) oder »both« (beides)."
#: ../extensions/alternate-tab/prefs.js:26 #: ../extensions/alternate-tab/prefs.js:26
msgid "Thumbnail only" msgid "Thumbnail only"
@@ -89,13 +83,8 @@ msgid "Application and workspace list"
msgstr "Anwendungs- und Arbeitsflächenliste" msgstr "Anwendungs- und Arbeitsflächenliste"
#: ../extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in.h:2 #: ../extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in.h:2
msgid "" msgid "A list of strings, each containing an application id (desktop file name), followed by a colon and the workspace number"
"A list of strings, each containing an application id (desktop file name), " msgstr "Eine Liste aus Zeichenketten, wovon jede eine Anwendungskennung (*.desktop-Datei) enthält, gefolgt von einem Doppelpunkt und der Nummer der Arbeitsfläche"
"followed by a colon and the workspace number"
msgstr ""
"Eine Liste aus Zeichenketten, wovon jede eine Anwendungskennung (*.desktop-"
"Datei) enthält, gefolgt von einem Doppelpunkt und der Nummer der "
"Arbeitsfläche"
#: ../extensions/auto-move-windows/prefs.js:55 #: ../extensions/auto-move-windows/prefs.js:55
msgid "Application" msgid "Application"
@@ -118,6 +107,72 @@ msgstr "Neue Übereinstimmungsregel erstellen"
msgid "Add" msgid "Add"
msgstr "Hinzufügen" msgstr "Hinzufügen"
#: ../extensions/dock/extension.js:600
msgid "Drag here to add favorites"
msgstr "Hierher ziehen, um zu Favoriten hinzuzufügen"
#: ../extensions/dock/extension.js:926
msgid "New Window"
msgstr "Neues Fenster"
#: ../extensions/dock/extension.js:928
msgid "Quit Application"
msgstr "Anwendung beenden"
#: ../extensions/dock/extension.js:933
msgid "Remove from Favorites"
msgstr "Aus Favoriten entfernen"
#: ../extensions/dock/extension.js:934
msgid "Add to Favorites"
msgstr "Zu Favoriten hinzufügen"
# Dock = das Dock ? -ck
# Sofern es sich nicht um das Original-Dash handelt, ja. -mb
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:1
msgid "Position of the dock"
msgstr "Position des Docks"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:2
msgid "Sets the position of the dock in the screen. Allowed values are 'right' or 'left'"
msgstr "Legt die Position des Docks auf dem Bildschirm fest. Mögliche Werte sind »right« und »left«"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:3
msgid "Icon size"
msgstr "Symbolgröße"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:4
msgid "Sets icon size of the dock."
msgstr "Legt die Symbolgröße für das Dock fest"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:5
msgid "Enable/disable autohide"
msgstr "Automatisches Verbergen aktivieren/deaktivieren"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:6
msgid "Autohide effect"
msgstr "Effekt automatisch verbergen"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:7
msgid "Sets the effect of the hide dock. Allowed values are 'resize', 'rescale' and 'move'"
msgstr "Legt den Effekt für das versteckte Dock fest. Mögliche Werte sind »resize«, »rescale« und »move«"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:8
msgid "Autohide duration"
msgstr "Dauer automatisch verbergen"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:9
msgid "Sets the time duration of the autohide effect."
msgstr "Legt die Effektdauer für automatisches Verbergen fest."
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:10
msgid "Monitor"
msgstr "Bildschirm"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:11
msgid "Sets monitor to display dock in. The default value (-1) is the primary monitor."
msgstr "Legt den Bildschirm fest, in dem das Dock angezeigt werden soll. Die Voreinstellung (-1) entspricht dem primären Bildschirm."
#: ../extensions/drive-menu/extension.js:72 #: ../extensions/drive-menu/extension.js:72
#, c-format #, c-format
msgid "Ejecting drive '%s' failed:" msgid "Ejecting drive '%s' failed:"
@@ -140,58 +195,58 @@ msgid "Alternative greeting text."
msgstr "Alternative Begrüßungstext." msgstr "Alternative Begrüßungstext."
#: ../extensions/example/org.gnome.shell.extensions.example.gschema.xml.in.h:2 #: ../extensions/example/org.gnome.shell.extensions.example.gschema.xml.in.h:2
msgid "" msgid "If not empty, it contains the text that will be shown when clicking on the panel."
"If not empty, it contains the text that will be shown when clicking on the " msgstr "Falls nicht leer, ist dies der Text, der beim Anklicken des Panels angezeigt wird."
"panel."
msgstr ""
"Falls nicht leer, ist dies der Text, der beim Anklicken des Panels angezeigt "
"wird."
#. TRANSLATORS: Example is the name of the extension, should not be #. TRANSLATORS: Example is the name of the extension, should not be
#. translated #. translated
#: ../extensions/example/prefs.js:30 #: ../extensions/example/prefs.js:30
msgid "" msgid ""
"Example aims to show how to build well behaved extensions for the Shell and " "Example aims to show how to build well behaved extensions for the Shell and as such it has little functionality on its own.\n"
"as such it has little functionality on its own.\n"
"Nevertheless it's possible to customize the greeting message." "Nevertheless it's possible to customize the greeting message."
msgstr "" msgstr ""
"Das Beispiel soll zeigen, wie sich korrekt verhaltende Erweiterungen für die " "Das Beispiel soll zeigen, wie sich korrekt verhaltende Erweiterungen für die Shell erstellt werden. Es enthält grundlegende Funktionalität.\n"
"Shell erstellt werden. Es enthält grundlegende Funktionalität.\n"
"Es ist möglich, die Begrüßungsnachricht zu ändern." "Es ist möglich, die Begrüßungsnachricht zu ändern."
#: ../extensions/example/prefs.js:36 #: ../extensions/example/prefs.js:36
msgid "Message:" msgid "Message:"
msgstr "Nachricht:" msgstr "Nachricht:"
#: ../extensions/gajim/extension.js:226
#, c-format
msgid "%s is away."
msgstr "%s ist abwesend."
#: ../extensions/gajim/extension.js:229
#, c-format
msgid "%s is offline."
msgstr "%s ist abgemeldet."
#: ../extensions/gajim/extension.js:232
#, c-format
msgid "%s is online."
msgstr "%s ist angemeldet."
#: ../extensions/gajim/extension.js:235
#, c-format
msgid "%s is busy."
msgstr "%s ist beschäftigt."
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:1 #: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:1
msgid "Use more screen for windows" msgid "Use more screen for windows"
msgstr "Mehr Bildschirmbereich für Fenster verwenden" msgstr "Mehr Bildschirmbereich für Fenster verwenden"
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:2 #: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:2
msgid "" msgid "Try to use more screen for placing window thumbnails by adapting to screen aspect ratio, and consolidating them further to reduce the bounding box. This setting applies only with the natural placement strategy."
"Try to use more screen for placing window thumbnails by adapting to screen " msgstr "Versuchen, mehr Bildschirmfläche zum Platzieren der Fenstervorschaubilder zu verwenden, indem das Bildschirmseitenverhältnis berücksichtigt wird und diese stärker zusammengelegt werden, um den umgebenden Rahmen zu verkleinern. Diese Einstellung betrifft nur den natürlichen Platzierungsalgorithmus."
"aspect ratio, and consolidating them further to reduce the bounding box. "
"This setting applies only with the natural placement strategy."
msgstr ""
"Versuchen, mehr Bildschirmfläche zum Platzieren der Fenstervorschaubilder zu "
"verwenden, indem das Bildschirmseitenverhältnis berücksichtigt wird und "
"diese stärker zusammengelegt werden, um den umgebenden Rahmen zu "
"verkleinern. Diese Einstellung betrifft nur den natürlichen "
"Platzierungsalgorithmus."
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:3 #: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:3
msgid "Place window captions on top" msgid "Place window captions on top"
msgstr "Fensterbeschriftungen oben platzieren" msgstr "Fensterbeschriftungen oben platzieren"
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:4 #: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:4
msgid "" msgid "If true, place window captions on top the respective thumbnail, overriding shell default of placing it at the bottom. Changing this setting requires restarting the shell to have any effect."
"If true, place window captions on top the respective thumbnail, overriding " msgstr "Falls wahr, so werden die Fensterbeschriftungen über dem zugehörigen Vorschaubild platziert und damit die Voreinstellung der Shell übergangen. Eine Änderungseinstellung tritt erst mit einem Neustart der Shell in Kraft."
"shell default of placing it at the bottom. Changing this setting requires "
"restarting the shell to have any effect."
msgstr ""
"Falls wahr, so werden die Fensterbeschriftungen über dem zugehörigen "
"Vorschaubild platziert und damit die Voreinstellung der Shell übergangen. "
"Eine Änderungseinstellung tritt erst mit einem Neustart der Shell in Kraft."
#: ../extensions/places-menu/extension.js:46 #: ../extensions/places-menu/extension.js:46
msgid "Places" msgid "Places"
@@ -240,9 +295,7 @@ msgstr "Themenname"
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:2 #: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:2
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 "" msgstr "Der Name des Themas, welches aus ~/.themes/name/gnome-shell geladen werden soll"
"Der Name des Themas, welches aus ~/.themes/name/gnome-shell geladen werden "
"soll"
#: ../extensions/workspace-indicator/extension.js:30 #: ../extensions/workspace-indicator/extension.js:30
msgid "Workspace Indicator" msgid "Workspace Indicator"
@@ -285,80 +338,6 @@ msgstr "Anzeige"
msgid "Display Settings" msgid "Display Settings"
msgstr "Bildschirmeinstellungen" msgstr "Bildschirmeinstellungen"
#~ msgid "Drag here to add favorites"
#~ msgstr "Hierher ziehen, um zu Favoriten hinzuzufügen"
#~ msgid "New Window"
#~ msgstr "Neues Fenster"
#~ msgid "Quit Application"
#~ msgstr "Anwendung beenden"
#~ msgid "Remove from Favorites"
#~ msgstr "Aus Favoriten entfernen"
#~ msgid "Add to Favorites"
#~ msgstr "Zu Favoriten hinzufügen"
# Dock = das Dock ? -ck
# Sofern es sich nicht um das Original-Dash handelt, ja. -mb
#~ msgid "Position of the dock"
#~ msgstr "Position des Docks"
#~ msgid ""
#~ "Sets the position of the dock in the screen. Allowed values are 'right' "
#~ "or 'left'"
#~ msgstr ""
#~ "Legt die Position des Docks auf dem Bildschirm fest. Mögliche Werte sind "
#~ "»right« und »left«"
#~ msgid "Icon size"
#~ msgstr "Symbolgröße"
#~ msgid "Sets icon size of the dock."
#~ msgstr "Legt die Symbolgröße für das Dock fest"
#~ msgid "Enable/disable autohide"
#~ msgstr "Automatisches Verbergen aktivieren/deaktivieren"
#~ msgid "Autohide effect"
#~ msgstr "Effekt automatisch verbergen"
#~ msgid ""
#~ "Sets the effect of the hide dock. Allowed values are 'resize', 'rescale' "
#~ "and 'move'"
#~ msgstr ""
#~ "Legt den Effekt für das versteckte Dock fest. Mögliche Werte sind "
#~ "»resize«, »rescale« und »move«"
#~ msgid "Autohide duration"
#~ msgstr "Dauer automatisch verbergen"
#~ msgid "Sets the time duration of the autohide effect."
#~ msgstr "Legt die Effektdauer für automatisches Verbergen fest."
#~ msgid "Monitor"
#~ msgstr "Bildschirm"
#~ msgid ""
#~ "Sets monitor to display dock in. The default value (-1) is the primary "
#~ "monitor."
#~ msgstr ""
#~ "Legt den Bildschirm fest, in dem das Dock angezeigt werden soll. Die "
#~ "Voreinstellung (-1) entspricht dem primären Bildschirm."
#~ msgid "%s is away."
#~ msgstr "%s ist abwesend."
#~ msgid "%s is offline."
#~ msgstr "%s ist abgemeldet."
#~ msgid "%s is online."
#~ msgstr "%s ist angemeldet."
#~ msgid "%s is busy."
#~ msgstr "%s ist beschäftigt."
#~ msgid "Removable Devices" #~ msgid "Removable Devices"
#~ msgstr "Wechseldatenträger" #~ msgstr "Wechseldatenträger"
+95 -14
View File
@@ -7,8 +7,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: lt\n" "Project-Id-Version: lt\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell&keywords=I18N+L10N&component=extensions\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell&keywords=I18N+L10N&component=extensions\n"
"POT-Creation-Date: 2012-10-16 14:24+0000\n" "POT-Creation-Date: 2012-09-07 15:25+0000\n"
"PO-Revision-Date: 2012-10-20 21:51+0300\n" "PO-Revision-Date: 2012-09-15 15:14+0300\n"
"Last-Translator: Aurimas Černius <aurisc4@gmail.com>\n" "Last-Translator: Aurimas Černius <aurisc4@gmail.com>\n"
"Language-Team: Lietuvių <>\n" "Language-Team: Lietuvių <>\n"
"Language: \n" "Language: \n"
@@ -26,10 +26,12 @@ msgid "Configures how the windows are shown in the switcher. Valid possibilities
msgstr "Nustato, kaip langai yra rodomi perjungimo lange. Galimos vertės yra „thumbnail-only“ (rodo lango miniatiūrą), „app-icon-only“ (rodo tik programos piktogramą) ir „both“." msgstr "Nustato, kaip langai yra rodomi perjungimo lange. Galimos vertės yra „thumbnail-only“ (rodo lango miniatiūrą), „app-icon-only“ (rodo tik programos piktogramą) ir „both“."
#: ../extensions/alternate-tab/prefs.js:26 #: ../extensions/alternate-tab/prefs.js:26
#| msgid "All & Thumbnails"
msgid "Thumbnail only" msgid "Thumbnail only"
msgstr "Tik miniatiūros" msgstr "Tik miniatiūros"
#: ../extensions/alternate-tab/prefs.js:27 #: ../extensions/alternate-tab/prefs.js:27
#| msgid "Application"
msgid "Application icon only" msgid "Application icon only"
msgstr "Tik programos piktograma" msgstr "Tik programos piktograma"
@@ -46,15 +48,15 @@ msgid "Show only windows in the current workspace"
msgstr "Rodyti tik dabartinio darbalaukio langus" msgstr "Rodyti tik dabartinio darbalaukio langus"
#. add the new entries #. add the new entries
#: ../extensions/alternative-status-menu/extension.js:86 #: ../extensions/alternative-status-menu/extension.js:68
msgid "Suspend" msgid "Suspend"
msgstr "Užmigdyti" msgstr "Užmigdyti"
#: ../extensions/alternative-status-menu/extension.js:91 #: ../extensions/alternative-status-menu/extension.js:73
msgid "Hibernate" msgid "Hibernate"
msgstr "Hibernuoti" msgstr "Hibernuoti"
#: ../extensions/alternative-status-menu/extension.js:96 #: ../extensions/alternative-status-menu/extension.js:78
msgid "Power Off" msgid "Power Off"
msgstr "Išjungti" msgstr "Išjungti"
@@ -103,19 +105,77 @@ msgstr "Sukurti naują atitikimo taisyklę"
msgid "Add" msgid "Add"
msgstr "Pridėti" msgstr "Pridėti"
#: ../extensions/drive-menu/extension.js:72 #: ../extensions/dock/extension.js:600
#, c-format msgid "Drag here to add favorites"
msgid "Ejecting drive '%s' failed:" msgstr "Nuvilkite čia, jei norite pridėt prie mėgstamų"
msgstr "Laikmenos „%s“ išstūmimas nepavyko:"
#: ../extensions/drive-menu/extension.js:89 #: ../extensions/dock/extension.js:926
msgid "New Window"
msgstr "Naujas langas"
#: ../extensions/dock/extension.js:928
msgid "Quit Application"
msgstr "Uždaryti programą"
#: ../extensions/dock/extension.js:933
msgid "Remove from Favorites"
msgstr "Pašalinti iš mėgstamų"
#: ../extensions/dock/extension.js:934
msgid "Add to Favorites"
msgstr "Pridėti prie mėgstamų"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:1
msgid "Position of the dock"
msgstr "Skydelio pozicija"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:2
msgid "Sets the position of the dock in the screen. Allowed values are 'right' or 'left'"
msgstr "Nustato skydelio vietą ekrane. Galimos reikšmės yra „right“ arba „left“"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:3
msgid "Icon size"
msgstr "Piktogramų dydis"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:4
msgid "Sets icon size of the dock."
msgstr "Nustato skydelio piktogramos dydį."
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:5
msgid "Enable/disable autohide"
msgstr "Įjungti/Išjungti automatinį slėpimą"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:6
msgid "Autohide effect"
msgstr "Automatinio slėpimo efektas"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:7
msgid "Sets the effect of the hide dock. Allowed values are 'resize', 'rescale' and 'move'"
msgstr "Nustato skydelio slėpimo efektą. Galimos reikšmės yra „resize“, „rescale“ arba „move“"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:8
msgid "Autohide duration"
msgstr "Automatinio slėpimo trukmė"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:9
msgid "Sets the time duration of the autohide effect."
msgstr "Nustato automatinio slėpimo efekto trukmę."
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:10
msgid "Monitor"
msgstr "Monitorius"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:11
msgid "Sets monitor to display dock in. The default value (-1) is the primary monitor."
msgstr "Nustato monitorių, kuriame rodyti doką. Numatytoji reikšmė (-1) yra pagrindinis monitorius."
#: ../extensions/drive-menu/extension.js:56
msgid "Removable devices" msgid "Removable devices"
msgstr "Išimami įrenginiai" msgstr "Išimami įrenginiai"
#: ../extensions/drive-menu/extension.js:106 #: ../extensions/drive-menu/extension.js:67
#| msgid "Open file manager" msgid "Open file manager"
msgid "Open File" msgstr "Atverti failų tvarkyklę"
msgstr "Atverti failą"
#: ../extensions/example/extension.js:17 #: ../extensions/example/extension.js:17
msgid "Hello, world!" msgid "Hello, world!"
@@ -143,6 +203,26 @@ msgstr ""
msgid "Message:" msgid "Message:"
msgstr "Pranešimas:" msgstr "Pranešimas:"
#: ../extensions/gajim/extension.js:226
#, c-format
msgid "%s is away."
msgstr "%s yra pasitraukęs."
#: ../extensions/gajim/extension.js:229
#, c-format
msgid "%s is offline."
msgstr "%s yra atsijungęs."
#: ../extensions/gajim/extension.js:232
#, c-format
msgid "%s is online."
msgstr "%s yra prisijungęs."
#: ../extensions/gajim/extension.js:235
#, c-format
msgid "%s is busy."
msgstr "%s yra užsiėmęs."
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:1 #: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:1
msgid "Use more screen for windows" msgid "Use more screen for windows"
msgstr "Naudoti daugiau ekrano langams " msgstr "Naudoti daugiau ekrano langams "
@@ -246,6 +326,7 @@ msgid "Display"
msgstr "Vaizduoklis" msgstr "Vaizduoklis"
#: ../extensions/xrandr-indicator/extension.js:80 #: ../extensions/xrandr-indicator/extension.js:80
#| msgid "System Settings"
msgid "Display Settings" msgid "Display Settings"
msgstr "Vaizduoklio nustatymai" msgstr "Vaizduoklio nustatymai"
+115 -136
View File
@@ -8,15 +8,15 @@ 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: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=extensions\n" "shell&keywords=I18N+L10N&component=extensions\n"
"POT-Creation-Date: 2012-10-16 14:24+0000\n" "POT-Creation-Date: 2012-08-18 00:42+0000\n"
"PO-Revision-Date: 2012-10-25 09:10+0530\n" "PO-Revision-Date: 2012-08-19 15:11+0530\n"
"Last-Translator: A S Alam <aalam@users.sf.net>\n" "Last-Translator: A S Alam <aalam@users.sf.net>\n"
"Language-Team: Punjabi/Panjabi <punjabi-users@lists.sf.net>\n" "Language-Team: Punjabi/Panjabi <punjabi-users@lists.sf.net>\n"
"Language: pa\n" "Language: pa\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: Lokalize 1.5\n" "X-Generator: Lokalize 1.4\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n" "Plural-Forms: nplurals=2; plural=n != 1;\n"
#: ../extensions/alternate-tab/org.gnome.shell.extensions.alternate-tab.gschema.xml.in.h:1 #: ../extensions/alternate-tab/org.gnome.shell.extensions.alternate-tab.gschema.xml.in.h:1
@@ -31,10 +31,12 @@ msgid ""
msgstr "" msgstr ""
#: ../extensions/alternate-tab/prefs.js:26 #: ../extensions/alternate-tab/prefs.js:26
#| msgid "All & Thumbnails"
msgid "Thumbnail only" msgid "Thumbnail only"
msgstr "ਕੇਵਲ ਥੰਮਨੇਲ ਹੀ" msgstr "ਕੇਵਲ ਥੰਮਨੇਲ ਹੀ"
#: ../extensions/alternate-tab/prefs.js:27 #: ../extensions/alternate-tab/prefs.js:27
#| msgid "Application"
msgid "Application icon only" msgid "Application icon only"
msgstr "ਐਪਲੀਕੇਸ਼ਨ ਆਈਕਾਨ ਹੀ" msgstr "ਐਪਲੀਕੇਸ਼ਨ ਆਈਕਾਨ ਹੀ"
@@ -51,15 +53,16 @@ msgid "Show only windows in the current workspace"
msgstr "ਮੌਜੂਦਾ ਵਰਕਸਪੇਸ ਵਿੱਚੋਂ ਹੀ ਵਿੰਡੋਜ਼ ਹੀ ਵੇਖਾਓ" msgstr "ਮੌਜੂਦਾ ਵਰਕਸਪੇਸ ਵਿੱਚੋਂ ਹੀ ਵਿੰਡੋਜ਼ ਹੀ ਵੇਖਾਓ"
#. add the new entries #. add the new entries
#: ../extensions/alternative-status-menu/extension.js:86 #: ../extensions/alternative-status-menu/extension.js:68
msgid "Suspend" msgid "Suspend"
msgstr "ਸਸਪੈਂਡ" msgstr "ਸਸਪੈਂਡ"
#: ../extensions/alternative-status-menu/extension.js:91 #: ../extensions/alternative-status-menu/extension.js:73
msgid "Hibernate" msgid "Hibernate"
msgstr "ਹਾਈਬਰਨੇਟ" msgstr "ਹਾਈਬਰਨੇਟ"
#: ../extensions/alternative-status-menu/extension.js:96 #: ../extensions/alternative-status-menu/extension.js:78
#| msgid "Power Off..."
msgid "Power Off" msgid "Power Off"
msgstr "ਬੰਦ ਕਰੋ" msgstr "ਬੰਦ ਕਰੋ"
@@ -113,19 +116,87 @@ msgstr "ਨਵਾਂ ਮਿਲਾਉਣ ਨਿਯਮ ਬਣਾਉ"
msgid "Add" msgid "Add"
msgstr "ਸ਼ਾਮਲ" msgstr "ਸ਼ਾਮਲ"
#: ../extensions/drive-menu/extension.js:72 #: ../extensions/dock/extension.js:600
#, c-format msgid "Drag here to add favorites"
msgid "Ejecting drive '%s' failed:" msgstr "ਪਸੰਦ ਵਿੱਚ ਜੋੜਨ ਲਈ ਇੱਥੇ ਸੁੱਟੋ"
msgstr "ਡਰਾਇਵ '%s' ਬਾਹਰ ਕੱਢਣ ਲਈ ਫੇਲ੍ਹ:"
#: ../extensions/drive-menu/extension.js:89 #: ../extensions/dock/extension.js:926
msgid "New Window"
msgstr "ਨਵੀਂ ਵਿੰਡੋ"
#: ../extensions/dock/extension.js:928
msgid "Quit Application"
msgstr "ਐਪਲੀਕੇਸ਼ਨ ਬੰਦ ਕਰੋ"
#: ../extensions/dock/extension.js:933
msgid "Remove from Favorites"
msgstr "ਪਸੰਦ ਵਿੱਚੋਂ ਹਟਾਓ"
#: ../extensions/dock/extension.js:934
msgid "Add to Favorites"
msgstr "ਪਸੰਦ 'ਚ ਸ਼ਾਮਲ ਕਰੋ"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:1
msgid "Position of the dock"
msgstr "ਡੌਕ ਦੀ ਸਥਿਤੀ"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:2
msgid ""
"Sets the position of the dock in the screen. Allowed values are 'right' or "
"'left'"
msgstr "ਸਕਰੀਨ ਵਿੱਚ ਡੌਕ ਦੀ ਸਥਿਤੀ ਸੈੱਟ ਕਰਦਾ ਹੈ। ਸੰਭਵ ਮੁੱਲ ਹਨ 'right' ਜਾਂ 'left'"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:3
msgid "Icon size"
msgstr "ਆਈਕਾਨ ਆਕਾਰ"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:4
msgid "Sets icon size of the dock."
msgstr "ਡੌਕ ਦਾ ਆਈਕਾਨ ਆਕਾਰ ਸੈੱਟ ਕਰੋ।"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:5
msgid "Enable/disable autohide"
msgstr "ਆਪੇ-ਓਹਲੇ ਕਰਨਾ ਚਾਲੂ/ਬੰਦ"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:6
msgid "Autohide effect"
msgstr "ਆਪੇ-ਓਹਲੇ ਹੋਣ ਪ੍ਰਭਾਵ"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:7
msgid ""
"Sets the effect of the hide dock. Allowed values are 'resize', 'rescale' and "
"'move'"
msgstr ""
"ਡੌਕ ਓਹਲੇ ਕਰਨ ਦਾ ਪ੍ਰਭਾਵ ਸੈੱਟ ਕਰਦਾ ਹੈ। ਸੰਭਵ ਮੁੱਲ ਹਨ 'resize', 'rescale' ਅਤੇ "
"'move'"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:8
msgid "Autohide duration"
msgstr "ਆਪੇ ਓਹਲੇ ਹੋਣ ਅੰਤਰਾਲ"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:9
msgid "Sets the time duration of the autohide effect."
msgstr "ਆਪੇ-ਓਹਲੇ ਕਰਨ ਦੇ ਪ੍ਰਭਾਵ ਦੀ ਸਮੇਂ ਦਾ ਅੰਤਰਾਲ ਸੈੱਟ ਕਰੋ।"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:10
msgid "Monitor"
msgstr "ਮਾਨੀਟਰ"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:11
msgid ""
"Sets monitor to display dock in. The default value (-1) is the primary "
"monitor."
msgstr ""
"ਡੌਕ ਵਿੱਚ ਵੇਖਾਉਣ ਲਈ ਨਿਗਾਰਨ ਸੈੱਟ ਕਰੋ। ਪ੍ਰਾਈਮਰੀ ਮਾਨੀਟਰ ਲਈ ਡਿਫਾਲਟ ਮੁੱਲ (-1) ਹੈ।"
#: ../extensions/drive-menu/extension.js:57
#| msgid "Removable Devices"
msgid "Removable devices" msgid "Removable devices"
msgstr "ਹਟਾਉਣਯੋਗ ਜੰਤਰ" msgstr "ਹਟਾਉਣਯੋਗ ਜੰਤਰ"
#: ../extensions/drive-menu/extension.js:106 #: ../extensions/drive-menu/extension.js:68
#| msgid "Open file manager" msgid "Open file manager"
msgid "Open File" msgstr "ਫਾਇਲ ਮੈਨੇਜਰ ਖੋਲ੍ਹੋ"
msgstr "ਫਾਇਲ ਖੋਲ੍ਹੋ"
#: ../extensions/example/extension.js:17 #: ../extensions/example/extension.js:17
msgid "Hello, world!" msgid "Hello, world!"
@@ -156,6 +227,26 @@ msgstr ""
msgid "Message:" msgid "Message:"
msgstr "ਸੁਨੇਹਾ:" msgstr "ਸੁਨੇਹਾ:"
#: ../extensions/gajim/extension.js:227
#, c-format
msgid "%s is away."
msgstr "%s ਦੂਰ ਹੈ।"
#: ../extensions/gajim/extension.js:230
#, c-format
msgid "%s is offline."
msgstr "%s ਆਫਲਾਈਨ ਹੈ।"
#: ../extensions/gajim/extension.js:233
#, c-format
msgid "%s is online."
msgstr "%s ਆਨਲਾਈਨ ਹੈ।"
#: ../extensions/gajim/extension.js:236
#, c-format
msgid "%s is busy."
msgstr "%s ਰੁੱਝਿਆ/ਰੁੱਝੀ ਹੈ।"
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:1 #: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:1
msgid "Use more screen for windows" msgid "Use more screen for windows"
msgstr "ਵਿੰਡੋਜ਼ ਲਈ ਹੋਰ ਸਕਰੀਨ ਵਰਤੋਂ" msgstr "ਵਿੰਡੋਜ਼ ਲਈ ਹੋਰ ਸਕਰੀਨ ਵਰਤੋਂ"
@@ -178,46 +269,9 @@ msgid ""
"restarting the shell to have any effect." "restarting the shell to have any effect."
msgstr "" msgstr ""
#: ../extensions/places-menu/extension.js:46 #: ../extensions/places-menu/extension.js:39
msgid "Places" msgid "Removable Devices"
msgstr "ਥਾਵਾਂ" msgstr "ਹਟਾਉਣਯੋਗ ਜੰਤਰ"
#: ../extensions/places-menu/extension.js:47
msgid "Devices"
msgstr "ਜੰਤਰ"
#: ../extensions/places-menu/extension.js:48
msgid "Bookmarks"
msgstr "ਬੁੱਕਮਾਰਕ"
#: ../extensions/places-menu/extension.js:49
msgid "Network"
msgstr "ਨੈੱਟਵਰਕ"
#: ../extensions/places-menu/placeDisplay.js:48
#, c-format
msgid "Failed to launch \"%s\""
msgstr "\"%s\" ਚਲਾਉਣ ਲਈ ਫੇਲ੍ਹ ਹੈ"
#: ../extensions/places-menu/placeDisplay.js:121
msgid "Home"
msgstr "ਘਰ"
#: ../extensions/places-menu/placeDisplay.js:184
msgid "File System"
msgstr "ਫਾਇਲ ਸਿਸਟਮ"
#: ../extensions/places-menu/placeDisplay.js:188
msgid "Browse network"
msgstr "ਨੈੱਟਵਰਕ ਝਲਕ"
#: ../extensions/systemMonitor/extension.js:213
msgid "CPU"
msgstr "ਸੀਪੀਯੂ"
#: ../extensions/systemMonitor/extension.js:266
msgid "Memory"
msgstr "ਮੈਮੋਰੀ"
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:1 #: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:1
msgid "Theme name" msgid "Theme name"
@@ -260,87 +314,9 @@ msgstr "ਸੱਜੇ"
msgid "Upside-down" msgid "Upside-down"
msgstr "ਉਤਲਾ ਹੇਠ" msgstr "ਉਤਲਾ ਹੇਠ"
#: ../extensions/xrandr-indicator/extension.js:50 #: ../extensions/xrandr-indicator/extension.js:82
msgid "Display" msgid "Configure display settings..."
msgstr "ਡਿਸਪਲੇਅ" msgstr "ਡਿਸਪਲੇਅ ਸੈਟਿੰਗ ਸੰਰਚਨਾ..."
#: ../extensions/xrandr-indicator/extension.js:80
#| msgid "System Settings"
msgid "Display Settings"
msgstr "ਡਿਸਪਲੇਅ ਸੈਟਿੰਗ"
#~ msgid "Drag here to add favorites"
#~ msgstr "ਪਸੰਦ ਵਿੱਚ ਜੋੜਨ ਲਈ ਇੱਥੇ ਸੁੱਟੋ"
#~ msgid "New Window"
#~ msgstr "ਨਵੀਂ ਵਿੰਡੋ"
#~ msgid "Quit Application"
#~ msgstr "ਐਪਲੀਕੇਸ਼ਨ ਬੰਦ ਕਰੋ"
#~ msgid "Remove from Favorites"
#~ msgstr "ਪਸੰਦ ਵਿੱਚੋਂ ਹਟਾਓ"
#~ msgid "Add to Favorites"
#~ msgstr "ਪਸੰਦ 'ਚ ਸ਼ਾਮਲ ਕਰੋ"
#~ msgid "Position of the dock"
#~ msgstr "ਡੌਕ ਦੀ ਸਥਿਤੀ"
#~ msgid ""
#~ "Sets the position of the dock in the screen. Allowed values are 'right' "
#~ "or 'left'"
#~ msgstr "ਸਕਰੀਨ ਵਿੱਚ ਡੌਕ ਦੀ ਸਥਿਤੀ ਸੈੱਟ ਕਰਦਾ ਹੈ। ਸੰਭਵ ਮੁੱਲ ਹਨ 'right' ਜਾਂ 'left'"
#~ msgid "Icon size"
#~ msgstr "ਆਈਕਾਨ ਆਕਾਰ"
#~ msgid "Sets icon size of the dock."
#~ msgstr "ਡੌਕ ਦਾ ਆਈਕਾਨ ਆਕਾਰ ਸੈੱਟ ਕਰੋ।"
#~ msgid "Enable/disable autohide"
#~ msgstr "ਆਪੇ-ਓਹਲੇ ਕਰਨਾ ਚਾਲੂ/ਬੰਦ"
#~ msgid "Autohide effect"
#~ msgstr "ਆਪੇ-ਓਹਲੇ ਹੋਣ ਪ੍ਰਭਾਵ"
#~ msgid ""
#~ "Sets the effect of the hide dock. Allowed values are 'resize', 'rescale' "
#~ "and 'move'"
#~ msgstr ""
#~ "ਡੌਕ ਓਹਲੇ ਕਰਨ ਦਾ ਪ੍ਰਭਾਵ ਸੈੱਟ ਕਰਦਾ ਹੈ। ਸੰਭਵ ਮੁੱਲ ਹਨ 'resize', 'rescale' ਅਤੇ 'move'"
#~ msgid "Autohide duration"
#~ msgstr "ਆਪੇ ਓਹਲੇ ਹੋਣ ਅੰਤਰਾਲ"
#~ msgid "Sets the time duration of the autohide effect."
#~ msgstr "ਆਪੇ-ਓਹਲੇ ਕਰਨ ਦੇ ਪ੍ਰਭਾਵ ਦੀ ਸਮੇਂ ਦਾ ਅੰਤਰਾਲ ਸੈੱਟ ਕਰੋ।"
#~ msgid "Monitor"
#~ msgstr "ਮਾਨੀਟਰ"
#~ msgid ""
#~ "Sets monitor to display dock in. The default value (-1) is the primary "
#~ "monitor."
#~ msgstr "ਡੌਕ ਵਿੱਚ ਵੇਖਾਉਣ ਲਈ ਨਿਗਾਰਨ ਸੈੱਟ ਕਰੋ। ਪ੍ਰਾਈਮਰੀ ਮਾਨੀਟਰ ਲਈ ਡਿਫਾਲਟ ਮੁੱਲ (-1) ਹੈ।"
#~ msgid "%s is away."
#~ msgstr "%s ਦੂਰ ਹੈ।"
#~ msgid "%s is offline."
#~ msgstr "%s ਆਫਲਾਈਨ ਹੈ।"
#~ msgid "%s is online."
#~ msgstr "%s ਆਨਲਾਈਨ ਹੈ।"
#~ msgid "%s is busy."
#~ msgstr "%s ਰੁੱਝਿਆ/ਰੁੱਝੀ ਹੈ।"
#~ msgid "Removable Devices"
#~ msgstr "ਹਟਾਉਣਯੋਗ ਜੰਤਰ"
#~ msgid "Configure display settings..."
#~ msgstr "ਡਿਸਪਲੇਅ ਸੈਟਿੰਗ ਸੰਰਚਨਾ..."
#~ msgid "The alt tab behaviour." #~ msgid "The alt tab behaviour."
#~ msgstr "alt tab ਰਵੱਈਆ ਹੈ।" #~ msgstr "alt tab ਰਵੱਈਆ ਹੈ।"
@@ -367,6 +343,9 @@ msgstr "ਡਿਸਪਲੇਅ ਸੈਟਿੰਗ"
#~ msgid "My Account" #~ msgid "My Account"
#~ msgstr "ਮੇਰਾ ਅਕਾਊਂਟ" #~ msgstr "ਮੇਰਾ ਅਕਾਊਂਟ"
#~ msgid "System Settings"
#~ msgstr "ਸਿਸਟਮ ਸੈਟਿੰਗ"
#~ msgid "Lock Screen" #~ msgid "Lock Screen"
#~ msgstr "ਸਕਰੀਨ ਲਾਕ ਕਰੋ" #~ msgstr "ਸਕਰੀਨ ਲਾਕ ਕਰੋ"
+109 -90
View File
@@ -1,18 +1,18 @@
# Russian translation for gnome-shell-extensions. # Russian translation for gnome-shell-extensions.
# Copyright (C) 2011 gnome-shell-extensions's COPYRIGHT HOLDER # Copyright (C) 2011 gnome-shell-extensions's COPYRIGHT HOLDER
# 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.
# Yuri Myasoedov <omerta13@yandex.ru>, 2011, 2012.
# Stas Solovey <whats_up@tut.by>, 2011, 2012. # Stas Solovey <whats_up@tut.by>, 2011, 2012.
# Yuri Myasoedov <omerta13@yandex.ru>, 2011, 2012.
# #
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: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=extensions\n" "shell&keywords=I18N+L10N&component=extensions\n"
"POT-Creation-Date: 2012-11-16 19:30+0000\n" "POT-Creation-Date: 2012-09-22 10:34+0000\n"
"PO-Revision-Date: 2012-11-16 18:29+0300\n" "PO-Revision-Date: 2012-09-27 17:23+0400\n"
"Last-Translator: Stas Solovey <whats_up@tut.by>\n" "Last-Translator: Yuri Myasoedov <omerta13@yandex.ru>\n"
"Language-Team: Russian <gnome-cyr@gnome.org>\n" "Language-Team: русский <gnome-cyr@gnome.org>\n"
"Language: ru\n" "Language: ru\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"
@@ -57,15 +57,15 @@ msgid "Show only windows in the current workspace"
msgstr "Отображать окна только текущей рабочей области" msgstr "Отображать окна только текущей рабочей области"
#. add the new entries #. add the new entries
#: ../extensions/alternative-status-menu/extension.js:144 #: ../extensions/alternative-status-menu/extension.js:68
msgid "Suspend" msgid "Suspend"
msgstr "Ждущий режим" msgstr "Ждущий режим"
#: ../extensions/alternative-status-menu/extension.js:147 #: ../extensions/alternative-status-menu/extension.js:73
msgid "Hibernate" msgid "Hibernate"
msgstr "Спящий режим" msgstr "Спящий режим"
#: ../extensions/alternative-status-menu/extension.js:150 #: ../extensions/alternative-status-menu/extension.js:78
msgid "Power Off" msgid "Power Off"
msgstr "Выключить" msgstr "Выключить"
@@ -118,18 +118,89 @@ msgstr "Создать новое правило соответствия"
msgid "Add" msgid "Add"
msgstr "Добавить" msgstr "Добавить"
#: ../extensions/drive-menu/extension.js:72 #: ../extensions/dock/extension.js:600
#, c-format msgid "Drag here to add favorites"
msgid "Ejecting drive '%s' failed:" msgstr "Перетащите, чтобы добавить в избранное"
msgstr "Не удалось извлечь диск «%s»:"
#: ../extensions/drive-menu/extension.js:89 #: ../extensions/dock/extension.js:926
msgid "New Window"
msgstr "Создать окно"
#: ../extensions/dock/extension.js:928
msgid "Quit Application"
msgstr "Закрыть приложение"
#: ../extensions/dock/extension.js:933
msgid "Remove from Favorites"
msgstr "Удалить из избранного"
#: ../extensions/dock/extension.js:934
msgid "Add to Favorites"
msgstr "Добавить в избранное"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:1
msgid "Position of the dock"
msgstr "Расположение док-панели"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:2
msgid ""
"Sets the position of the dock in the screen. Allowed values are 'right' or "
"'left'"
msgstr ""
"Устанавливает положение док-панели на экране. Возможные значения: «right» "
"или «left»"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:3
msgid "Icon size"
msgstr "Размер значков"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:4
msgid "Sets icon size of the dock."
msgstr "Устанавливает размер значка док-панели."
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:5
msgid "Enable/disable autohide"
msgstr "Включить/выключить автоскрытие"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:6
msgid "Autohide effect"
msgstr "Эффект автоскрытия"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:7
msgid ""
"Sets the effect of the hide dock. Allowed values are 'resize', 'rescale' and "
"'move'"
msgstr ""
"Устанавливает эффект скрытия док-панели. Возможные значения: «resize», "
"«rescale» и «move»"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:8
msgid "Autohide duration"
msgstr "Таймер автоскрытия"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:9
msgid "Sets the time duration of the autohide effect."
msgstr "Устанавливает продолжительность эффекта автоскрытия."
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:10
msgid "Monitor"
msgstr "Монитор"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:11
msgid ""
"Sets monitor to display dock in. The default value (-1) is the primary "
"monitor."
msgstr ""
"Устанавливает монитор для отображения док-панели. Значением по умолчанию "
"(-1) является основной монитор."
#: ../extensions/drive-menu/extension.js:56
msgid "Removable devices" msgid "Removable devices"
msgstr "Съёмные устройства" msgstr "Съёмные устройства"
#: ../extensions/drive-menu/extension.js:106 #: ../extensions/drive-menu/extension.js:67
msgid "Open File" msgid "Open file manager"
msgstr "Открыть файл" msgstr "Открыть файловый менеджер"
#: ../extensions/example/extension.js:17 #: ../extensions/example/extension.js:17
msgid "Hello, world!" msgid "Hello, world!"
@@ -162,6 +233,26 @@ msgstr ""
msgid "Message:" msgid "Message:"
msgstr "Сообщение:" msgstr "Сообщение:"
#: ../extensions/gajim/extension.js:226
#, c-format
msgid "%s is away."
msgstr "%s отошёл."
#: ../extensions/gajim/extension.js:229
#, c-format
msgid "%s is offline."
msgstr "%s не в сети."
#: ../extensions/gajim/extension.js:232
#, c-format
msgid "%s is online."
msgstr "%s в сети."
#: ../extensions/gajim/extension.js:235
#, c-format
msgid "%s is busy."
msgstr "%s занят."
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:1 #: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:1
msgid "Use more screen for windows" msgid "Use more screen for windows"
msgstr "Использовать дополнительную площадь экрана для окон" msgstr "Использовать дополнительную площадь экрана для окон"
@@ -216,11 +307,11 @@ msgstr "Не удалось запустить «%s»"
msgid "Home" msgid "Home"
msgstr "Домашняя папка" msgstr "Домашняя папка"
#: ../extensions/places-menu/placeDisplay.js:195 #: ../extensions/places-menu/placeDisplay.js:184
msgid "File System" msgid "File System"
msgstr "Файловая система" msgstr "Файловая система"
#: ../extensions/places-menu/placeDisplay.js:199 #: ../extensions/places-menu/placeDisplay.js:188
msgid "Browse network" msgid "Browse network"
msgstr "Обзор сети" msgstr "Обзор сети"
@@ -280,75 +371,3 @@ msgstr "Экран"
#: ../extensions/xrandr-indicator/extension.js:80 #: ../extensions/xrandr-indicator/extension.js:80
msgid "Display Settings" msgid "Display Settings"
msgstr "Параметры экрана" msgstr "Параметры экрана"
#~ msgid "Drag here to add favorites"
#~ msgstr "Перетащите, чтобы добавить в избранное"
#~ msgid "New Window"
#~ msgstr "Создать окно"
#~ msgid "Quit Application"
#~ msgstr "Закрыть приложение"
#~ msgid "Remove from Favorites"
#~ msgstr "Удалить из избранного"
#~ msgid "Add to Favorites"
#~ msgstr "Добавить в избранное"
#~ msgid "Position of the dock"
#~ msgstr "Расположение док-панели"
#~ msgid ""
#~ "Sets the position of the dock in the screen. Allowed values are 'right' "
#~ "or 'left'"
#~ msgstr ""
#~ "Устанавливает положение док-панели на экране. Возможные значения: «right» "
#~ "или «left»"
#~ msgid "Icon size"
#~ msgstr "Размер значков"
#~ msgid "Sets icon size of the dock."
#~ msgstr "Устанавливает размер значка док-панели."
#~ msgid "Enable/disable autohide"
#~ msgstr "Включить/выключить автоскрытие"
#~ msgid "Autohide effect"
#~ msgstr "Эффект автоскрытия"
#~ msgid ""
#~ "Sets the effect of the hide dock. Allowed values are 'resize', 'rescale' "
#~ "and 'move'"
#~ msgstr ""
#~ "Устанавливает эффект скрытия док-панели. Возможные значения: «resize», "
#~ "«rescale» и «move»"
#~ msgid "Autohide duration"
#~ msgstr "Таймер автоскрытия"
#~ msgid "Sets the time duration of the autohide effect."
#~ msgstr "Устанавливает продолжительность эффекта автоскрытия."
#~ msgid "Monitor"
#~ msgstr "Монитор"
#~ msgid ""
#~ "Sets monitor to display dock in. The default value (-1) is the primary "
#~ "monitor."
#~ msgstr ""
#~ "Устанавливает монитор для отображения док-панели. Значением по умолчанию "
#~ "(-1) является основной монитор."
#~ msgid "%s is away."
#~ msgstr "%s отошёл."
#~ msgid "%s is offline."
#~ msgstr "%s не в сети."
#~ msgid "%s is online."
#~ msgstr "%s в сети."
#~ msgid "%s is busy."
#~ msgstr "%s занят."
+109 -17
View File
@@ -9,7 +9,7 @@ msgstr ""
"Project-Id-Version: gnome-shell-extensions\n" "Project-Id-Version: gnome-shell-extensions\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=extensions\n" "shell&keywords=I18N+L10N&component=extensions\n"
"POT-Creation-Date: 2012-10-26 15:22+0000\n" "POT-Creation-Date: 2012-10-27 19:36+0000\n"
"PO-Revision-Date: 2012-11-04 21:46+0100\n" "PO-Revision-Date: 2012-11-04 21:46+0100\n"
"Last-Translator: Dušan Kazik <prescott66@gmail.com>\n" "Last-Translator: Dušan Kazik <prescott66@gmail.com>\n"
"Language-Team: Slovak <gnome-sk-list@gnome.org>\n" "Language-Team: Slovak <gnome-sk-list@gnome.org>\n"
@@ -51,7 +51,7 @@ msgstr "Len ikona aplikácie"
msgid "Thumbnail and application icon" msgid "Thumbnail and application icon"
msgstr "Miniatúra a ikona aplikácie" msgstr "Miniatúra a ikona aplikácie"
# Label #  Label
#: ../extensions/alternate-tab/prefs.js:43 #: ../extensions/alternate-tab/prefs.js:43
msgid "Present windows as" msgid "Present windows as"
msgstr "Uvádzať okná ako" msgstr "Uvádzať okná ako"
@@ -63,17 +63,17 @@ msgstr "Zobraziť len okná z aktuálneho pracovného priestoru"
# PopupMenuItem # PopupMenuItem
#. add the new entries #. add the new entries
#: ../extensions/alternative-status-menu/extension.js:144 #: ../extensions/alternative-status-menu/extension.js:86
msgid "Suspend" msgid "Suspend"
msgstr "Uspať" msgstr "Uspať"
# PopupMenuItem # PopupMenuItem
#: ../extensions/alternative-status-menu/extension.js:147 #: ../extensions/alternative-status-menu/extension.js:91
msgid "Hibernate" msgid "Hibernate"
msgstr "Hibernovať" msgstr "Hibernovať"
# PopupMenuItem # PopupMenuItem
#: ../extensions/alternative-status-menu/extension.js:150 #: ../extensions/alternative-status-menu/extension.js:96
msgid "Power Off" msgid "Power Off"
msgstr "Vypnúť" msgstr "Vypnúť"
@@ -137,13 +137,87 @@ msgstr "Vytvorenie nového odpovedajúceho pravidla"
msgid "Add" msgid "Add"
msgstr "Pridať" msgstr "Pridať"
#: ../extensions/dock/extension.js:600
msgid "Drag here to add favorites"
msgstr "Pretiahnutím na toto miesto položku preidáte do obľúbených"
#: ../extensions/dock/extension.js:926
msgid "New Window"
msgstr "Nové okno"
#: ../extensions/dock/extension.js:928
msgid "Quit Application"
msgstr "Ukončiť aplikáciu"
#: ../extensions/dock/extension.js:933
msgid "Remove from Favorites"
msgstr "Odstrániť z obľúbených"
#: ../extensions/dock/extension.js:934
msgid "Add to Favorites"
msgstr "Pridať do obľúbených"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:1
msgid "Position of the dock"
msgstr "Pozícia doku"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:2
msgid ""
"Sets the position of the dock in the screen. Allowed values are 'right' or "
"'left'"
msgstr ""
"Nastaví pozíciu doku na obrazovke. Povolené hodnoty sú „right“ (vpravo) "
"alebo „left“ (vľavo)"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:3
msgid "Icon size"
msgstr "Veľkosť ikony"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:4
msgid "Sets icon size of the dock."
msgstr "Nastaví veľkosť ikony v doku."
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:5
msgid "Enable/disable autohide"
msgstr "Povoliť/zakázať automatické skrývanie"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:6
msgid "Autohide effect"
msgstr "Efekt automatického skrývania"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:7
msgid ""
"Sets the effect of the hide dock. Allowed values are 'resize', 'rescale' and "
"'move'"
msgstr ""
"Nastaví efekt skrývania doku. Povolené hodnoty sú „resize“ (zmena veľkosti) "
"alebo „rescale“ (zmena mierky)"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:8
msgid "Autohide duration"
msgstr "Trvanie automatického skrývania"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:9
msgid "Sets the time duration of the autohide effect."
msgstr "Nastaví dĺžku trvania efektu automatického skrývania."
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:10
msgid "Monitor"
msgstr "Monitor"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:11
msgid ""
"Sets monitor to display dock in. The default value (-1) is the primary "
"monitor."
msgstr "Nastaví monitor, v ktorom sa má zobraziť dok. Predvolená hodnota (-1) je hlavný monitor."
# https://bugzilla.gnome.org/show_bug.cgi?id=687590 # https://bugzilla.gnome.org/show_bug.cgi?id=687590
#: ../extensions/drive-menu/extension.js:72 #: ../extensions/drive-menu/extension.js:72
#, c-format #, c-format
msgid "Ejecting drive '%s' failed:" msgid "Ejecting drive '%s' failed:"
msgstr "Zlyhalo vysúvanie jednotky „%s“:" msgstr "Zlyhalo vysúvanie jednotky „%s“:"
# Menu #  Menu
#: ../extensions/drive-menu/extension.js:89 #: ../extensions/drive-menu/extension.js:89
msgid "Removable devices" msgid "Removable devices"
msgstr "Vymeniteľné zariadenia" msgstr "Vymeniteľné zariadenia"
@@ -172,24 +246,42 @@ msgid ""
"panel." "panel."
msgstr "Obsahuje text, ktorý bude zobrazený po kliknutí na panel." msgstr "Obsahuje text, ktorý bude zobrazený po kliknutí na panel."
# PM: podľa mňa chýba preklad druhej časti prvej vety
#. TRANSLATORS: Example is the name of the extension, should not be #. TRANSLATORS: Example is the name of the extension, should not be
#. translated #. translated
#: ../extensions/example/prefs.js:30 #: ../extensions/example/prefs.js:30
#, fuzzy
msgid "" msgid ""
"Example aims to show how to build well behaved extensions for the Shell and " "Example aims to show how to build well behaved extensions for the Shell and "
"as such it has little functionality on its own.\n" "as such it has little functionality on its own.\n"
"Nevertheless it's possible to customize the greeting message." "Nevertheless it's possible to customize the greeting message."
msgstr "" msgstr ""
"Rozšírenie Example vám má ukázať, ako sa dajú zostaviť dobre vyzerajúce a jednoduché rozšírenia " "Rozšírenie Example vám má ukázať, ako sa dajú zostaviť dobre vyzerajúce a "
"pre Shell.\n" "jednoduché rozšírenia pre Shell.\n"
"Napriek tomu je možné prispôsobiť správu privítania." "Napriek tomu je možné prispôsobiť správu privítania."
#: ../extensions/example/prefs.js:36 #: ../extensions/example/prefs.js:36
msgid "Message:" msgid "Message:"
msgstr "Správa:" msgstr "Správa:"
#: ../extensions/gajim/extension.js:226
#, c-format
msgid "%s is away."
msgstr "Kontakt %s je neprítomný."
#: ../extensions/gajim/extension.js:229
#, c-format
msgid "%s is offline."
msgstr "Kontakt %s je odpojený."
#: ../extensions/gajim/extension.js:232
#, c-format
msgid "%s is online."
msgstr "Kontakt %s je pripojený."
#: ../extensions/gajim/extension.js:235
#, c-format
msgid "%s is busy."
msgstr "Kontakt %s je zaneprázdnený."
# summary # summary
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:1 #: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:1
msgid "Use more screen for windows" msgid "Use more screen for windows"
@@ -222,22 +314,22 @@ msgstr ""
"miniatúry. Prepíše sa tým predvolené nastavenie shellu, ktorý ho umiestňuje " "miniatúry. Prepíše sa tým predvolené nastavenie shellu, ktorý ho umiestňuje "
"nadol. Aby sa prejavila zmena, je potrebné reštartovať shell." "nadol. Aby sa prejavila zmena, je potrebné reštartovať shell."
# menu item #  menu item
#: ../extensions/places-menu/extension.js:46 #: ../extensions/places-menu/extension.js:46
msgid "Places" msgid "Places"
msgstr "Miesta" msgstr "Miesta"
# menu item #  menu item
#: ../extensions/places-menu/extension.js:47 #: ../extensions/places-menu/extension.js:47
msgid "Devices" msgid "Devices"
msgstr "Zariadenia" msgstr "Zariadenia"
# menu item #  menu item
#: ../extensions/places-menu/extension.js:48 #: ../extensions/places-menu/extension.js:48
msgid "Bookmarks" msgid "Bookmarks"
msgstr "Záložky" msgstr "Záložky"
# menu item #  menu item
#: ../extensions/places-menu/extension.js:49 #: ../extensions/places-menu/extension.js:49
msgid "Network" msgid "Network"
msgstr "Sieť" msgstr "Sieť"
@@ -252,11 +344,11 @@ msgstr "Zlyhalo spustenie „%s“"
msgid "Home" msgid "Home"
msgstr "Domov" msgstr "Domov"
#: ../extensions/places-menu/placeDisplay.js:191 #: ../extensions/places-menu/placeDisplay.js:184
msgid "File System" msgid "File System"
msgstr "Súborový systém" msgstr "Súborový systém"
#: ../extensions/places-menu/placeDisplay.js:195 #: ../extensions/places-menu/placeDisplay.js:188
msgid "Browse network" msgid "Browse network"
msgstr "Prehliadať sieť" msgstr "Prehliadať sieť"
@@ -322,7 +414,7 @@ msgid "Upside-down"
msgstr "Hore nohami" msgstr "Hore nohami"
# PM: V tomto prípade by asi viac hodilo obrazovka # PM: V tomto prípade by asi viac hodilo obrazovka
# menu #  menu
#: ../extensions/xrandr-indicator/extension.js:50 #: ../extensions/xrandr-indicator/extension.js:50
msgid "Display" msgid "Display"
msgstr "Displej" msgstr "Displej"
+105 -81
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: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=extensions\n" "shell&keywords=I18N+L10N&component=extensions\n"
"POT-Creation-Date: 2012-11-07 16:43+0000\n" "POT-Creation-Date: 2012-10-16 14:51+0000\n"
"PO-Revision-Date: 2012-11-09 11:53+0200\n" "PO-Revision-Date: 2012-10-27 21:33+0200\n"
"Last-Translator: Мирослав Николић <miroslavnikolic@rocketmail.com>\n" "Last-Translator: Мирослав Николић <miroslavnikolic@rocketmail.com>\n"
"Language-Team: Serbian <gnom@prevod.org>\n" "Language-Team: Serbian <gnom@prevod.org>\n"
"Language: sr\n" "Language: sr\n"
@@ -55,15 +55,15 @@ msgid "Show only windows in the current workspace"
msgstr "Приказује само прозоре у текућем радном простору" msgstr "Приказује само прозоре у текућем радном простору"
#. add the new entries #. add the new entries
#: ../extensions/alternative-status-menu/extension.js:144 #: ../extensions/alternative-status-menu/extension.js:86
msgid "Suspend" msgid "Suspend"
msgstr "Обустави" msgstr "Обустави"
#: ../extensions/alternative-status-menu/extension.js:147 #: ../extensions/alternative-status-menu/extension.js:91
msgid "Hibernate" msgid "Hibernate"
msgstr "Замрзни" msgstr "Замрзни"
#: ../extensions/alternative-status-menu/extension.js:150 #: ../extensions/alternative-status-menu/extension.js:96
msgid "Power Off" msgid "Power Off"
msgstr "Угаси" msgstr "Угаси"
@@ -116,10 +116,87 @@ msgstr "Додајте ново правило за поклапање"
msgid "Add" msgid "Add"
msgstr "Додај" msgstr "Додај"
#: ../extensions/dock/extension.js:600
msgid "Drag here to add favorites"
msgstr "Превуците овде да додате међу омиљене"
#: ../extensions/dock/extension.js:926
msgid "New Window"
msgstr "Нови прозор"
#: ../extensions/dock/extension.js:928
msgid "Quit Application"
msgstr "Напусти програм"
#: ../extensions/dock/extension.js:933
msgid "Remove from Favorites"
msgstr "Уклони из омиљених"
#: ../extensions/dock/extension.js:934
msgid "Add to Favorites"
msgstr "Додај у омиљене"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:1
msgid "Position of the dock"
msgstr "Положај луке"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:2
msgid ""
"Sets the position of the dock in the screen. Allowed values are 'right' or "
"'left'"
msgstr ""
"Подешава место где се налази површ са иконицама. Дозвољене су вредности "
"„right“ (десно) и „left“ (лево)"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:3
msgid "Icon size"
msgstr "Величина иконице"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:4
msgid "Sets icon size of the dock."
msgstr "Одређује величину иконице у луци."
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:5
msgid "Enable/disable autohide"
msgstr "Самостално скривање"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:6
msgid "Autohide effect"
msgstr "Дејство самоскривања"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:7
msgid ""
"Sets the effect of the hide dock. Allowed values are 'resize', 'rescale' and "
"'move'"
msgstr ""
"Одређује дејство које се приказује приликом скривања површи са иконицама. "
"Дозвољене вредности су: „resize“ (промени величину), „rescale“ (промени "
"величину уз задржавање размере) и „move“ (премести)"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:8
msgid "Autohide duration"
msgstr "Трајање самоскривања"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:9
msgid "Sets the time duration of the autohide effect."
msgstr "Одређује дужину трајања дејства самоскривања."
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:10
msgid "Monitor"
msgstr "Монитор"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:11
msgid ""
"Sets monitor to display dock in. The default value (-1) is the primary "
"monitor."
msgstr ""
"Подешава који монитор ће да прикаже луку. Основна вредност (-1) јесте "
"примарни монитор."
#: ../extensions/drive-menu/extension.js:72 #: ../extensions/drive-menu/extension.js:72
#, c-format #, c-format
msgid "Ejecting drive '%s' failed:" msgid "Ejecting drive '%s' failed:"
msgstr "Нисам успео да избацим уређај „%s“:" msgstr "Избацивање уређаја „%s“ није успело:"
#: ../extensions/drive-menu/extension.js:89 #: ../extensions/drive-menu/extension.js:89
msgid "Removable devices" msgid "Removable devices"
@@ -161,6 +238,26 @@ msgstr ""
msgid "Message:" msgid "Message:"
msgstr "Порука:" msgstr "Порука:"
#: ../extensions/gajim/extension.js:226
#, c-format
msgid "%s is away."
msgstr "„%s“ је одсутан."
#: ../extensions/gajim/extension.js:229
#, c-format
msgid "%s is offline."
msgstr "„%s“ је ван мреже."
#: ../extensions/gajim/extension.js:232
#, c-format
msgid "%s is online."
msgstr "„%s“ је на мрежи."
#: ../extensions/gajim/extension.js:235
#, c-format
msgid "%s is busy."
msgstr "„%s“ је заузет."
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:1 #: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:1
msgid "Use more screen for windows" msgid "Use more screen for windows"
msgstr "Користи више простора за прозор" msgstr "Користи више простора за прозор"
@@ -214,11 +311,11 @@ msgstr "Нисам успео да покренем „%s“"
msgid "Home" msgid "Home"
msgstr "Личнo" msgstr "Личнo"
#: ../extensions/places-menu/placeDisplay.js:191 #: ../extensions/places-menu/placeDisplay.js:184
msgid "File System" msgid "File System"
msgstr "Систем датотека" msgstr "Систем датотека"
#: ../extensions/places-menu/placeDisplay.js:195 #: ../extensions/places-menu/placeDisplay.js:188
msgid "Browse network" msgid "Browse network"
msgstr "Разгледајте мрежу" msgstr "Разгледајте мрежу"
@@ -279,79 +376,6 @@ msgstr "Екран"
msgid "Display Settings" msgid "Display Settings"
msgstr "Подешавања екрана" msgstr "Подешавања екрана"
#~ msgid "Drag here to add favorites"
#~ msgstr "Превуците овде да додате међу омиљене"
#~ msgid "New Window"
#~ msgstr "Нови прозор"
#~ msgid "Quit Application"
#~ msgstr "Напусти програм"
#~ msgid "Remove from Favorites"
#~ msgstr "Уклони из омиљених"
#~ msgid "Add to Favorites"
#~ msgstr "Додај у омиљене"
#~ msgid "Position of the dock"
#~ msgstr "Положај луке"
#~ msgid ""
#~ "Sets the position of the dock in the screen. Allowed values are 'right' "
#~ "or 'left'"
#~ msgstr ""
#~ "Подешава место где се налази површ са иконицама. Дозвољене су вредности "
#~ "„right“ (десно) и „left“ (лево)"
#~ msgid "Icon size"
#~ msgstr "Величина иконице"
#~ msgid "Sets icon size of the dock."
#~ msgstr "Одређује величину иконице у луци."
#~ msgid "Enable/disable autohide"
#~ msgstr "Самостално скривање"
#~ msgid "Autohide effect"
#~ msgstr "Дејство самоскривања"
#~ msgid ""
#~ "Sets the effect of the hide dock. Allowed values are 'resize', 'rescale' "
#~ "and 'move'"
#~ msgstr ""
#~ "Одређује дејство које се приказује приликом скривања површи са иконицама. "
#~ "Дозвољене вредности су: „resize“ (промени величину), „rescale“ (промени "
#~ "величину уз задржавање размере) и „move“ (премести)"
#~ msgid "Autohide duration"
#~ msgstr "Трајање самоскривања"
#~ msgid "Sets the time duration of the autohide effect."
#~ msgstr "Одређује дужину трајања дејства самоскривања."
#~ msgid "Monitor"
#~ msgstr "Монитор"
#~ msgid ""
#~ "Sets monitor to display dock in. The default value (-1) is the primary "
#~ "monitor."
#~ msgstr ""
#~ "Подешава који монитор ће да прикаже луку. Основна вредност (-1) јесте "
#~ "примарни монитор."
#~ msgid "%s is away."
#~ msgstr "„%s“ је одсутан."
#~ msgid "%s is offline."
#~ msgstr "„%s“ је ван мреже."
#~ msgid "%s is online."
#~ msgstr "„%s“ је на мрежи."
#~ msgid "%s is busy."
#~ msgstr "„%s“ је заузет."
#~ msgid "The alt tab behaviour." #~ msgid "The alt tab behaviour."
#~ msgstr "Понашање тастера „алт-таб“." #~ msgstr "Понашање тастера „алт-таб“."
+105 -81
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: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=extensions\n" "shell&keywords=I18N+L10N&component=extensions\n"
"POT-Creation-Date: 2012-11-07 16:43+0000\n" "POT-Creation-Date: 2012-10-16 14:51+0000\n"
"PO-Revision-Date: 2012-11-09 11:53+0200\n" "PO-Revision-Date: 2012-10-27 21:33+0200\n"
"Last-Translator: Miroslav Nikolić <miroslavnikolic@rocketmail.com>\n" "Last-Translator: Miroslav Nikolić <miroslavnikolic@rocketmail.com>\n"
"Language-Team: Serbian <gnom@prevod.org>\n" "Language-Team: Serbian <gnom@prevod.org>\n"
"Language: sr\n" "Language: sr\n"
@@ -55,15 +55,15 @@ msgid "Show only windows in the current workspace"
msgstr "Prikazuje samo prozore u tekućem radnom prostoru" msgstr "Prikazuje samo prozore u tekućem radnom prostoru"
#. add the new entries #. add the new entries
#: ../extensions/alternative-status-menu/extension.js:144 #: ../extensions/alternative-status-menu/extension.js:86
msgid "Suspend" msgid "Suspend"
msgstr "Obustavi" msgstr "Obustavi"
#: ../extensions/alternative-status-menu/extension.js:147 #: ../extensions/alternative-status-menu/extension.js:91
msgid "Hibernate" msgid "Hibernate"
msgstr "Zamrzni" msgstr "Zamrzni"
#: ../extensions/alternative-status-menu/extension.js:150 #: ../extensions/alternative-status-menu/extension.js:96
msgid "Power Off" msgid "Power Off"
msgstr "Ugasi" msgstr "Ugasi"
@@ -116,10 +116,87 @@ msgstr "Dodajte novo pravilo za poklapanje"
msgid "Add" msgid "Add"
msgstr "Dodaj" msgstr "Dodaj"
#: ../extensions/dock/extension.js:600
msgid "Drag here to add favorites"
msgstr "Prevucite ovde da dodate među omiljene"
#: ../extensions/dock/extension.js:926
msgid "New Window"
msgstr "Novi prozor"
#: ../extensions/dock/extension.js:928
msgid "Quit Application"
msgstr "Napusti program"
#: ../extensions/dock/extension.js:933
msgid "Remove from Favorites"
msgstr "Ukloni iz omiljenih"
#: ../extensions/dock/extension.js:934
msgid "Add to Favorites"
msgstr "Dodaj u omiljene"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:1
msgid "Position of the dock"
msgstr "Položaj luke"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:2
msgid ""
"Sets the position of the dock in the screen. Allowed values are 'right' or "
"'left'"
msgstr ""
"Podešava mesto gde se nalazi površ sa ikonicama. Dozvoljene su vrednosti "
"„right“ (desno) i „left“ (levo)"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:3
msgid "Icon size"
msgstr "Veličina ikonice"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:4
msgid "Sets icon size of the dock."
msgstr "Određuje veličinu ikonice u luci."
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:5
msgid "Enable/disable autohide"
msgstr "Samostalno skrivanje"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:6
msgid "Autohide effect"
msgstr "Dejstvo samoskrivanja"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:7
msgid ""
"Sets the effect of the hide dock. Allowed values are 'resize', 'rescale' and "
"'move'"
msgstr ""
"Određuje dejstvo koje se prikazuje prilikom skrivanja površi sa ikonicama. "
"Dozvoljene vrednosti su: „resize“ (promeni veličinu), „rescale“ (promeni "
"veličinu uz zadržavanje razmere) i „move“ (premesti)"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:8
msgid "Autohide duration"
msgstr "Trajanje samoskrivanja"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:9
msgid "Sets the time duration of the autohide effect."
msgstr "Određuje dužinu trajanja dejstva samoskrivanja."
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:10
msgid "Monitor"
msgstr "Monitor"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:11
msgid ""
"Sets monitor to display dock in. The default value (-1) is the primary "
"monitor."
msgstr ""
"Podešava koji monitor će da prikaže luku. Osnovna vrednost (-1) jeste "
"primarni monitor."
#: ../extensions/drive-menu/extension.js:72 #: ../extensions/drive-menu/extension.js:72
#, c-format #, c-format
msgid "Ejecting drive '%s' failed:" msgid "Ejecting drive '%s' failed:"
msgstr "Nisam uspeo da izbacim uređaj „%s“:" msgstr "Izbacivanje uređaja „%s“ nije uspelo:"
#: ../extensions/drive-menu/extension.js:89 #: ../extensions/drive-menu/extension.js:89
msgid "Removable devices" msgid "Removable devices"
@@ -161,6 +238,26 @@ msgstr ""
msgid "Message:" msgid "Message:"
msgstr "Poruka:" msgstr "Poruka:"
#: ../extensions/gajim/extension.js:226
#, c-format
msgid "%s is away."
msgstr "„%s“ je odsutan."
#: ../extensions/gajim/extension.js:229
#, c-format
msgid "%s is offline."
msgstr "„%s“ je van mreže."
#: ../extensions/gajim/extension.js:232
#, c-format
msgid "%s is online."
msgstr "„%s“ je na mreži."
#: ../extensions/gajim/extension.js:235
#, c-format
msgid "%s is busy."
msgstr "„%s“ je zauzet."
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:1 #: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:1
msgid "Use more screen for windows" msgid "Use more screen for windows"
msgstr "Koristi više prostora za prozor" msgstr "Koristi više prostora za prozor"
@@ -214,11 +311,11 @@ msgstr "Nisam uspeo da pokrenem „%s“"
msgid "Home" msgid "Home"
msgstr "Lično" msgstr "Lično"
#: ../extensions/places-menu/placeDisplay.js:191 #: ../extensions/places-menu/placeDisplay.js:184
msgid "File System" msgid "File System"
msgstr "Sistem datoteka" msgstr "Sistem datoteka"
#: ../extensions/places-menu/placeDisplay.js:195 #: ../extensions/places-menu/placeDisplay.js:188
msgid "Browse network" msgid "Browse network"
msgstr "Razgledajte mrežu" msgstr "Razgledajte mrežu"
@@ -279,79 +376,6 @@ msgstr "Ekran"
msgid "Display Settings" msgid "Display Settings"
msgstr "Podešavanja ekrana" msgstr "Podešavanja ekrana"
#~ msgid "Drag here to add favorites"
#~ msgstr "Prevucite ovde da dodate među omiljene"
#~ msgid "New Window"
#~ msgstr "Novi prozor"
#~ msgid "Quit Application"
#~ msgstr "Napusti program"
#~ msgid "Remove from Favorites"
#~ msgstr "Ukloni iz omiljenih"
#~ msgid "Add to Favorites"
#~ msgstr "Dodaj u omiljene"
#~ msgid "Position of the dock"
#~ msgstr "Položaj luke"
#~ msgid ""
#~ "Sets the position of the dock in the screen. Allowed values are 'right' "
#~ "or 'left'"
#~ msgstr ""
#~ "Podešava mesto gde se nalazi površ sa ikonicama. Dozvoljene su vrednosti "
#~ "„right“ (desno) i „left“ (levo)"
#~ msgid "Icon size"
#~ msgstr "Veličina ikonice"
#~ msgid "Sets icon size of the dock."
#~ msgstr "Određuje veličinu ikonice u luci."
#~ msgid "Enable/disable autohide"
#~ msgstr "Samostalno skrivanje"
#~ msgid "Autohide effect"
#~ msgstr "Dejstvo samoskrivanja"
#~ msgid ""
#~ "Sets the effect of the hide dock. Allowed values are 'resize', 'rescale' "
#~ "and 'move'"
#~ msgstr ""
#~ "Određuje dejstvo koje se prikazuje prilikom skrivanja površi sa ikonicama. "
#~ "Dozvoljene vrednosti su: „resize“ (promeni veličinu), „rescale“ (promeni "
#~ "veličinu uz zadržavanje razmere) i „move“ (premesti)"
#~ msgid "Autohide duration"
#~ msgstr "Trajanje samoskrivanja"
#~ msgid "Sets the time duration of the autohide effect."
#~ msgstr "Određuje dužinu trajanja dejstva samoskrivanja."
#~ msgid "Monitor"
#~ msgstr "Monitor"
#~ msgid ""
#~ "Sets monitor to display dock in. The default value (-1) is the primary "
#~ "monitor."
#~ msgstr ""
#~ "Podešava koji monitor će da prikaže luku. Osnovna vrednost (-1) jeste "
#~ "primarni monitor."
#~ msgid "%s is away."
#~ msgstr "„%s“ je odsutan."
#~ msgid "%s is offline."
#~ msgstr "„%s“ je van mreže."
#~ msgid "%s is online."
#~ msgstr "„%s“ je na mreži."
#~ msgid "%s is busy."
#~ msgstr "„%s“ je zauzet."
#~ msgid "The alt tab behaviour." #~ msgid "The alt tab behaviour."
#~ msgstr "Ponašanje tastera „alt-tab“." #~ msgstr "Ponašanje tastera „alt-tab“."