Compare commits

...

20 Commits

Author SHA1 Message Date
Giovanni Campagna
48bfe6dc1e Bump version to 3.7.90
To go along GNOME Shell 3.7.90
2013-02-20 20:47:34 +01:00
Мирослав Николић
f380f527d0 Updated Serbian translation 2013-02-20 12:20:52 +01:00
Giovanni Campagna
5c9292aae3 build: install NEWS inside each zip file
In case users want to know what changed between each version.
2013-02-19 23:33:06 +01:00
Giovanni Campagna
ab3d3ce41b alternative-status-menu: update for gnome-shell changes
We use a logind inhibitor now, so we don't need to lock the screen before
calling logind. Also, the UPower path was removed, and suspension is not
available for ConsoleKit.

Sorry, Ubuntu users!
2013-02-19 23:33:06 +01:00
Giovanni Campagna
c3796b2b19 places-menu: sort special directories like nautilus does
Place Home first, then show the others in alphabetical order.

https://bugzilla.gnome.org/show_bug.cgi?id=693242
2013-02-19 23:21:06 +01:00
Giovanni Campagna
e5ae9e7110 apps-menu: update for gnome-shell changes
After the stage hierarchy handling moved to LayoutManager, HotCorner
wants the layoutManager instance as a parameter.
2013-02-19 23:21:06 +01:00
Marek Černocký
5c91a2867d Updated Czech translation 2013-02-17 09:22:01 +01:00
Giovanni Campagna
2f5c095f7a places-menu: show the computer pretty name for the file system root
As Nautilus does, query hostnamed for the pretty hostname and watch
for changes.
If hostnamed is not available, we just show Computer, as before.

https://bugzilla.gnome.org/show_bug.cgi?id=693240
2013-02-13 22:43:21 +01:00
Florian Müllner
95b0d72e04 classic-theme: Fix top bar style in (un)lock screen
The top bar should be translucent/transparent on the (un)lock screen,
even in classic mode.

https://bugzilla.gnome.org/show_bug.cgi?id=693663
2013-02-12 18:34:37 +01:00
Daniel Mustieles
7fb52fa115 Updated Spanish translation 2013-02-11 14:38:02 +01:00
Matthias Clasen
5c6c81dd2b Drop the FallbackSession key from the classic mode
The gnome-fallback session does not exist anymore.
2013-02-09 23:24:07 -05:00
Matthias Clasen
ab45ec8ee7 Add nautilus-classic to the classic mode
Nautilus 3.7.5 ships a separate nautilus-classic.desktop file which
turns on icons on the desktop, regardless of the setting.
2013-02-09 23:24:06 -05:00
Debarshi Ray
b9fba54b9f apps-menu: Prevent the ApplicationMenuItem from becoming too wide
PopupMenu.PopupBaseMenuItem uses the natural width of its children to
set its own minimum and natural widths. We don't want that because
some of our children can be too wide. So, we override it.

We also set the span and expand parameters of the label to -1 and true
respectively. Otherwise we won't get to see the "...".

https://bugzilla.gnome.org/show_bug.cgi?id=693282
2013-02-09 21:35:21 +01:00
Debarshi Ray
f187f47cdd places-menu: Make 'network' volume handling more Nautilus-like
Currently we ended up ignore 'network' volumes that did not have a
mount associated with it. Instead we should behave like Nautilus and
still show them.

https://bugzilla.gnome.org/show_bug.cgi?id=693437
2013-02-09 21:33:51 +01:00
Debarshi Ray
c4a694337c places-menu: Fix a typo
https://bugzilla.gnome.org/show_bug.cgi?id=693432
2013-02-09 21:32:34 +01:00
Piotr Drąg
4103a228b2 Updated Polish translation 2013-02-08 15:41:39 +01:00
Debarshi Ray
da49c0d635 apps-menu: Clean up mark up handling and set label_actor
Get rid of fixMarkup, which turns & into &, so that we need to
again set use_markup.

https://bugzilla.gnome.org/show_bug.cgi?id=693334
2013-02-08 13:29:44 +01:00
Debarshi Ray
c626cc2a1d apps-menu: Clean up code
The empty array is created and inserted into the hashtable before
every call to _loadCategory. No need to check for it and create it
again inside the function.

Don't mix up negated if conditions with continue while skipping stuff
that should not be displayed. Follow one style for consistency.

https://bugzilla.gnome.org/show_bug.cgi?id=693346
2013-02-08 13:24:25 +01:00
Jeremy Bicha
92ccfc0e0d build xz tarball by default instead of bz2
https://bugzilla.gnome.org/show_bug.cgi?id=693238
2013-02-06 08:24:37 -05:00
Jeremy Bicha
61ee59f083 places: Rename 'File System' to 'Computer' and capitalize 'Network'
The Nautilus sidebar calls it 'Computer' so we should too.
Use title case for "Browse Network"

https://bugzilla.gnome.org/show_bug.cgi?id=693240
2013-02-06 08:21:55 -05:00
14 changed files with 383 additions and 427 deletions

View File

@@ -24,6 +24,7 @@ zip-file: all
mv "$(builddir)/_build$(topextensiondir)/$${i}$(extensionbase)" "$(builddir)/_build/"; \
cp -r "$(builddir)/_build$(datadir)/locale" "$(builddir)/_build/$${i}$(extensionbase)"; \
cp "$(srcdir)/COPYING" -t "$(builddir)/_build/$${i}$(extensionbase)"; \
cp "$(srcdir)/NEWS" -t "$(builddir)/_build/$${i}$(extensionbase)"; \
if [ -f "$(builddir)/_build$(datadir)/glib-2.0/schemas/$(gschemabase).$${i}.gschema.xml" ]; then \
$(MKDIR_P) "$(builddir)/_build/$${i}$(extensionbase)/schemas"; \
mv "$(builddir)/_build$(datadir)/glib-2.0/schemas/$(gschemabase).$${i}.gschema.xml" "$(builddir)/_build/$${i}$(extensionbase)/schemas"; \

11
NEWS
View File

@@ -1,3 +1,14 @@
3.7.90
======
* various fixes to make places-menu behave more
like Nautilus, including showing the machine
name in place of File System
* various updates for shell changes
* alternative-status-menu no longer supports
ConsoleKit systems, you need to install logind
to have suspend or hibernate
* translation updates (es, cz, pl, sr)
3.7.5.1
=======
* new extension forgotten in previous NEWS entry:

View File

@@ -1,10 +1,10 @@
AC_PREREQ(2.63)
AC_INIT([gnome-shell-extensions],[3.7.5.1],[https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell&component=extensions])
AC_INIT([gnome-shell-extensions],[3.7.90],[https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell&component=extensions])
AC_CONFIG_MACRO_DIR([m4])
AC_CONFIG_AUX_DIR([config])
AM_INIT_AUTOMAKE([1.10 dist-bzip2 no-dist-gzip foreign tar-ustar])
AM_INIT_AUTOMAKE([1.10 dist-xz no-dist-gzip foreign tar-ustar])
m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])])

View File

@@ -30,6 +30,18 @@
border-bottom: 1px solid #000 !important;
}
#panel.lock-screen {
background-color: rgba(0,0,0,0.3) !important;
background-gradient-end: rgba(0,0,0,0.3) !important;
border-top-color: transparent;
}
#panel.unlock-screen {
background-color: transparent !important;
background-gradient-end: transparent !important;
border-top-color: transparent;
}
/* TOP BAR */
@@ -46,7 +58,9 @@
-minimum-hpadding: 3px !important;
}
#panel:overview .panel-button {
#panel:overview .panel-button,
#panel.lock-screen .panel-button,
#panel.unlock-screen .panel-button {
color: #ccc !important;
}

View File

@@ -1,5 +1,4 @@
[GNOME Session]
_Name=GNOME Classic
RequiredComponents=gnome-shell-classic;gnome-settings-daemon;
RequiredComponents=gnome-shell-classic;gnome-settings-daemon;nautilus-classic;
IsRunnableHelper=@libexecdir@/gnome-session-check-accelerated
FallbackSession=gnome-fallback

View File

@@ -31,8 +31,9 @@ function loginManager_hibernate() {
Gio.DBusCallFlags.NONE,
-1, null, null);
} else {
// upower path
this._upClient.hibernate_sync(null);
// Can't do in ConsoleKit
this.emit('prepare-for-sleep', true);
this.emit('prepare-for-sleep', false);
}
}
@@ -58,7 +59,7 @@ function loginManager_canHibernate(asyncCallback) {
});
} else {
Mainloop.idle_add(Lang.bind(this, function() {
asyncCallback(this._upClient.get_can_hibernate());
asyncCallback(false);
return false;
}));
}
@@ -83,35 +84,15 @@ function statusMenu_updateSuspendOrPowerOff() {
function onSuspendActivate(item) {
Main.overview.hide();
if (this._screenSaverSettings.get_boolean(LOCK_ENABLED_KEY)) {
let tmpId = Main.screenShield.connect('lock-screen-shown', Lang.bind(this, function() {
Main.screenShield.disconnect(tmpId);
this._loginManager.suspend();
}));
this.menu.close(BoxPointer.PopupAnimation.NONE);
Main.screenShield.lock(true);
} else {
this._loginManager.suspend();
}
this.menu.close(BoxPointer.PopupAnimation.NONE);
this._loginManager.suspend();
}
function onHibernateActivate(item) {
Main.overview.hide();
if (this._screenSaverSettings.get_boolean(LOCK_ENABLED_KEY)) {
let tmpId = Main.screenShield.connect('lock-screen-shown', Lang.bind(this, function() {
Main.screenShield.disconnect(tmpId);
loginManager_hibernate.call(this._loginManager);
}));
this.menu.close(BoxPointer.PopupAnimation.NONE);
Main.screenShield.lock(true);
} else {
loginManager_hibernate.call(this._loginManager);
}
this.menu.close(BoxPointer.PopupAnimation.NONE);
loginManager_hibernate.call(this._loginManager);
}
const Extension = new Lang.Class({

View File

@@ -27,19 +27,6 @@ const appSys = Shell.AppSystem.get_default();
const APPLICATION_ICON_SIZE = 32;
const MENU_HEIGHT_OFFSET = 132;
function fixMarkup(text, allowMarkup) {
if (allowMarkup) {
let _text = text.replace(/&(?!amp;|quot;|apos;|lt;|gt;)/g, '&');
_text = _text.replace(/<(?!\/?[biu]>)/g, '&lt;');
try {
Pango.parse_markup(_text, -1, '');
return _text;
} catch (e) {
}
}
return GLib.markup_escape_text(text, -1);
}
const ActivitiesMenuItem = new Lang.Class({
Name: 'ActivitiesMenuItem',
Extends: PopupMenu.PopupBaseMenuItem,
@@ -69,8 +56,9 @@ const ApplicationMenuItem = new Lang.Class({
let icon = this._app.create_icon_texture(APPLICATION_ICON_SIZE);
this.addActor(icon);
let appName = fixMarkup(this._app.get_name());
this.addActor(new St.Label({ text: appName }));
let appLabel = new St.Label({ text: app.get_name() });
this.addActor(appLabel, { span: -1, expand: true });
this.actor.label_actor = appLabel;
},
activate: function(event) {
@@ -84,6 +72,10 @@ const ApplicationMenuItem = new Lang.Class({
if (active)
this._button.scrollToButton(this);
this.parent(active, params);
},
_getPreferredWidth: function(actor, forHeight, alloc) {
alloc.min_size = alloc.natural_size = -1;
}
});
@@ -124,8 +116,8 @@ const HotCorner = new Lang.Class({
Name: 'HotCorner',
Extends: Layout.HotCorner,
_init : function() {
this.parent();
_init : function(layoutManager) {
this.parent(layoutManager);
},
_onCornerEntered : function() {
@@ -178,7 +170,7 @@ const ApplicationsButton = new Lang.Class({
_init: function() {
this.parent(1.0, null, false);
this._hotCorner = new HotCorner();
this._hotCorner = new HotCorner(Main.layoutManager);
this.setMenu(new ApplicationsMenu(this.actor, 1.0, St.Side.TOP, this, this._hotCorner));
Main.panel.menuManager.addMenu(this.menu);
@@ -318,21 +310,18 @@ const ApplicationsButton = new Lang.Class({
if (!entry.get_app_info().get_nodisplay()) {
let app = appSys.lookup_app_by_tree_entry(entry);
let menu_id = dir.get_menu_id();
if (!this.applicationsByCategory[menu_id])
this.applicationsByCategory[menu_id] = new Array();
this.applicationsByCategory[menu_id].push(app);
}
} else if (nextType == GMenu.TreeItemType.DIRECTORY) {
let subdir = iter.get_directory();
if (subdir.get_is_nodisplay())
continue;
let menu_id = subdir.get_menu_id();
this.applicationsByCategory[menu_id] = new Array();
this._loadCategory(subdir);
if (this.applicationsByCategory[menu_id].length > 0) {
let categoryMenuItem = new CategoryMenuItem(this, subdir);
this.categoriesBox.add_actor(categoryMenuItem.actor);
if (!subdir.get_is_nodisplay()) {
let menu_id = subdir.get_menu_id();
this.applicationsByCategory[menu_id] = new Array();
this._loadCategory(subdir);
if (this.applicationsByCategory[menu_id].length > 0) {
let categoryMenuItem = new CategoryMenuItem(this, subdir);
this.categoriesBox.add_actor(categoryMenuItem.actor);
}
}
}
}
@@ -431,15 +420,14 @@ const ApplicationsButton = new Lang.Class({
while ((nextType = iter.next()) != GMenu.TreeItemType.INVALID) {
if (nextType == GMenu.TreeItemType.DIRECTORY) {
let dir = iter.get_directory();
if (dir.get_is_nodisplay())
continue;
let menu_id = dir.get_menu_id();
this.applicationsByCategory[menu_id] = new Array();
this._loadCategory(dir);
if (this.applicationsByCategory[menu_id].length > 0) {
let categoryMenuItem = new CategoryMenuItem(this, dir);
this.categoriesBox.add_actor(categoryMenuItem.actor);
if (!dir.get_is_nodisplay()) {
let menu_id = dir.get_menu_id();
this.applicationsByCategory[menu_id] = new Array();
this._loadCategory(dir);
if (this.applicationsByCategory[menu_id].length > 0) {
let categoryMenuItem = new CategoryMenuItem(this, dir);
this.categoriesBox.add_actor(categoryMenuItem.actor);
}
}
}
}

View File

@@ -30,9 +30,24 @@ const PlaceMenuItem = new Lang.Class({
this.parent();
this._info = info;
this.addActor(new St.Icon({ gicon: info.icon,
icon_size: PLACE_ICON_SIZE }));
this.addActor(new St.Label({ text: info.name }));
this._icon = new St.Icon({ gicon: info.icon,
icon_size: PLACE_ICON_SIZE });
this.addActor(this._icon);
this._label = new St.Label({ text: info.name });
this.addActor(this._label);
this._changedId = info.connect('changed',
Lang.bind(this, this._propertiesChanged));
},
destroy: function() {
if (this._changedId) {
this._info.disconnect(this._changedId);
this._changedId = 0;
}
this.parent();
},
activate: function(event) {
@@ -40,6 +55,11 @@ const PlaceMenuItem = new Lang.Class({
this.parent(event);
},
_propertiesChanged: function(info) {
this._icon.gicon = info.icon;
this._label.text = info.name;
},
});
const SECTIONS = [

View File

@@ -18,6 +18,11 @@ const Gettext = imports.gettext.domain('gnome-shell-extensions');
const _ = Gettext.gettext;
const N_ = function(x) { return x; }
const Hostname1Iface = <interface name="org.freedesktop.hostname1">
<property name="PrettyHostname" type="s" access="read" />
</interface>;
const Hostname1 = Gio.DBusProxy.makeProxyWrapper(Hostname1Iface);
const PlaceInfo = new Lang.Class({
Name: 'PlaceInfo',
@@ -28,6 +33,9 @@ const PlaceInfo = new Lang.Class({
this.icon = icon ? new Gio.ThemedIcon({ name: icon }) : this.getIcon();
},
destroy: function() {
},
isRemovable: function() {
return false;
},
@@ -80,6 +88,47 @@ const PlaceInfo = new Lang.Class({
}
},
});
Signals.addSignalMethods(PlaceInfo.prototype);
const RootInfo = new Lang.Class({
Name: 'RootInfo',
Extends: PlaceInfo,
_init: function() {
this.parent('devices', Gio.File.new_for_path('/'), _("Computer"));
this._proxy = new Hostname1(Gio.DBus.system,
'org.freedesktop.hostname1',
'/org/freedesktop/hostname1',
Lang.bind(this, function(obj, error) {
if (error)
return;
this._proxy.connect('g-properties-changed',
Lang.bind(this, this._propertiesChanged));
this._propertiesChanged(obj);
}));
},
getIcon: function() {
return new Gio.ThemedIcon({ name: 'drive-harddisk-symbolic' });
},
_propertiesChanged: function(proxy) {
// GDBusProxy will emit a g-properties-changed when hostname1 goes down
// ignore it
if (proxy.g_name_owner) {
this.name = proxy.PrettyHostname || _("Computer");
this.emit('changed');
}
},
destroy: function() {
this._proxy.run_dispose();
this.parent();
}
});
const PlaceDeviceInfo = new Lang.Class({
Name: 'PlaceDeviceInfo',
@@ -95,6 +144,35 @@ const PlaceDeviceInfo = new Lang.Class({
}
});
const PlaceVolumeInfo = new Lang.Class({
Name: 'PlaceVolumeInfo',
Extends: PlaceInfo,
_init: function(kind, volume) {
this._volume = volume;
this.parent(kind, volume.get_activation_root(), volume.get_name());
},
launch: function(timestamp) {
if (this.file) {
this.parent(timestamp);
return;
}
this._volume.mount(0, null, null, Lang.bind(this, function(volume, result) {
volume.mount_finish(result);
let mount = volume.get_mount();
this.file = mount.get_root();
this.parent(timestamp);
}));
},
getIcon: function() {
return this._volume.get_symbolic_icon();
}
});
const DEFAULT_DIRECTORIES = [
GLib.UserDirectory.DIRECTORY_DOCUMENTS,
GLib.UserDirectory.DIRECTORY_PICTURES,
@@ -119,6 +197,8 @@ const PlacesManager = new Lang.Class({
this._places.special.push(new PlaceInfo('special',
Gio.File.new_for_path(homePath),
_("Home")));
let specials = [];
for (let i = 0; i < DEFAULT_DIRECTORIES.length; i++) {
let specialPath = GLib.get_user_special_dir(DEFAULT_DIRECTORIES[i]);
if (specialPath == homePath)
@@ -131,9 +211,14 @@ const PlacesManager = new Lang.Class({
continue;
}
this._places.special.push(info);
specials.push(info);
}
specials.sort(function(a, b) {
return GLib.utf8_collate(a.name, b.name);
});
this._places.special = this._places.special.concat(specials);
/*
* Show devices, code more or less ported from nautilus-places-sidebar.c
*/
@@ -186,17 +271,19 @@ const PlacesManager = new Lang.Class({
},
_updateMounts: function() {
let networkMounts = [];
let networkVolumes = [];
this._places.devices.forEach(function (p) { p.destroy(); });
this._places.devices = [];
this._places.network.forEach(function (p) { p.destroy(); });
this._places.network = [];
/* Add standard places */
this._places.devices.push(new PlaceInfo('devices',
Gio.File.new_for_path('/'),
_("File System"),
'drive-harddisk-symbolic'));
this._places.devices.push(new RootInfo());
this._places.network.push(new PlaceInfo('network',
Gio.File.new_for_uri('network:///'),
_("Browse network"),
_("Browse Network"),
'network-workgroup-symbolic'));
/* first go through all connected drives */
@@ -205,13 +292,13 @@ const PlacesManager = new Lang.Class({
let volumes = drives[i].get_volumes();
for(let j = 0; j < volumes.length; j++) {
let mount = volumes[j].get_mount();
let kind = 'devices';
if (volumes[j].get_identifier('class').indexOf('network') >= 0)
kind = 'network';
if(mount != null)
this._addMount(kind, mount);
if (volumes[j].get_identifier('class').indexOf('network') >= 0) {
networkVolumes.push(volumes[i]);
} else {
let mount = volumes[j].get_mount();
if(mount != null)
this._addMount('devices', mount);
}
}
}
@@ -221,13 +308,13 @@ const PlacesManager = new Lang.Class({
if(volumes[i].get_drive() != null)
continue;
let kind = 'devices';
if (volumes.get_identifier('class').indexOf('network') >= 0)
kind = 'network';
let mount = volumes[i].get_mount();
if(mount != null)
this._addMount(kind, mount);
if (volumes[i].get_identifier('class').indexOf('network') >= 0) {
networkVolumes.push(volumes[i]);
} else {
let mount = volumes[i].get_mount();
if(mount != null)
this._addMount('devices', mount);
}
}
/* add mounts that have no volume (/etc/mtab mounts, ftp, sftp,...) */
@@ -240,13 +327,24 @@ const PlacesManager = new Lang.Class({
continue;
let root = mounts[i].get_default_location();
let kind;
if (root.is_native())
kind = 'devices';
else
kind = 'network';
if (!root.is_native()) {
networkMounts.push(mounts[i]);
continue;
}
this._addMount('devices', mounts[i]);
}
this._addMount(kind, mounts[i]);
for (let i = 0; i < networkVolumes.length; i++) {
let mount = networkVolumes[i].get_mount();
if (mount) {
networkMounts.push(mount);
continue;
}
this._addVolume('network', networkVolumes[i]);
}
for (let i = 0; i < networkMounts.length; i++) {
this._addMount('network', networkMounts[i]);
}
this.emit('devices-updated');
@@ -329,6 +427,18 @@ const PlacesManager = new Lang.Class({
this._places[kind].push(devItem);
},
_addVolume: function(kind, volume) {
let volItem;
try {
volItem = new PlaceVolumeInfo(kind, volume);
} catch(e if e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.NOT_FOUND)) {
return;
}
this._places[kind].push(volItem);
},
get: function (kind) {
return this._places[kind];
}

View File

@@ -9,8 +9,8 @@ msgstr ""
"Project-Id-Version: gnome-shell-extensions master\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=extensions\n"
"POT-Creation-Date: 2013-01-30 16:54+0000\n"
"PO-Revision-Date: 2013-01-31 20:08+0100\n"
"POT-Creation-Date: 2013-02-08 12:25+0000\n"
"PO-Revision-Date: 2013-02-17 09:19+0100\n"
"Last-Translator: Marek Černocký <marek@manet.cz>\n"
"Language-Team: Czech <gnome-cs-list@gnome.org>\n"
"Language: cs\n"
@@ -217,11 +217,11 @@ msgid "Home"
msgstr "Domů"
#: ../extensions/places-menu/placeDisplay.js:195
msgid "File System"
msgstr "Systém souborů"
msgid "Computer"
msgstr "Počítač"
#: ../extensions/places-menu/placeDisplay.js:199
msgid "Browse network"
msgid "Browse Network"
msgstr "Procházet síť"
#: ../extensions/systemMonitor/extension.js:213
@@ -240,6 +240,30 @@ msgstr "Název motivu"
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "Název motivu, který se má načíst z ~/.themes/name/gnome-shell"
#: ../extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml.in.h:1
msgid "When to group windows"
msgstr "Kdy seskupovat okna"
#: ../extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml.in.h:2
msgid ""
"Decides when to group windows from the same application on the window list. "
"Possible values are \"never\" and \"always\"."
msgstr ""
"Rozhoduje, kdy se mají v seznamu oken seskupovat okna stejné aplikace. Možné "
"hodnoty jsou „never“ (nikdy) a „always“ (vždy)."
#: ../extensions/window-list/prefs.js:30
msgid "Window Grouping"
msgstr "Seskupování oken"
#: ../extensions/window-list/prefs.js:49
msgid "Never group windows"
msgstr "Nikdy neseskupovat okna"
#: ../extensions/window-list/prefs.js:50
msgid "Always group windows"
msgstr "Vždy seskupovat okna"
#: ../extensions/workspace-indicator/extension.js:30
msgid "Workspace Indicator"
msgstr "Ukazatel pracovní plochy"

View File

@@ -11,8 +11,8 @@ msgstr ""
msgstr ""
"Project-Id-Version: gnome-shell-extensions master\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=extensions\n"
"POT-Creation-Date: 2013-01-30 16:54+0000\n"
"shell&keywords=I18N+L10N&component=extensions\n"
"POT-Creation-Date: 2013-02-08 12:25+0000\n"
"PO-Revision-Date: 2013-02-11 13:51+0100\n"
"Last-Translator: Daniel Mustieles <daniel.mustieles@gmail.com>\n"
"Language-Team: Español <gnome-es-list@gnome.org>\n"
@@ -93,12 +93,10 @@ msgid "Activities Overview"
msgid "Activities Overview"
msgstr "Vista de actividades"
#: ../extensions/apps-menu/extension.js:103
#: ../extensions/apps-menu/extension.js:103
msgid "Favorites"
msgstr "Favoritos"
#: ../extensions/apps-menu/extension.js:197
#: ../extensions/apps-menu/extension.js:197
msgid "Applications"
msgstr "Aplicaciones"
@@ -224,11 +222,12 @@ msgid "Home"
msgid "Home"
msgstr "Carpeta personal"
#: ../extensions/places-menu/placeDisplay.js:195
msgid "File System"
#: ../extensions/places-menu/placeDisplay.js:195
msgid "Computer"
msgstr "Equipo"
#: ../extensions/places-menu/placeDisplay.js:199
#: ../extensions/places-menu/placeDisplay.js:199
#| msgid "Browse network"
msgid "Browse Network"
msgstr "Examinar la red"
@@ -247,6 +246,30 @@ msgstr "Nombre del tema"
#: ../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"
msgstr "El nombre del tema, que se carga desde ~/.themes/nombre/gnome-shell"
#: ../extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml.in.h:1
msgid "When to group windows"
msgstr "Cuándo agrupar las ventanas"
#: ../extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml.in.h:2
msgid ""
"Decides when to group windows from the same application on the window list. "
"Possible values are \"never\" and \"always\"."
msgstr ""
"Decide cuándo agrupar ventanas para la misma aplicación en la lista de "
"ventanas. Los valores posibles son «never» y «always»."
#: ../extensions/window-list/prefs.js:30
msgid "Window Grouping"
msgstr "Agrupación de ventanas"
#: ../extensions/window-list/prefs.js:49
msgid "Never group windows"
msgstr "Nunca agrupar las ventanas"
#: ../extensions/window-list/prefs.js:50
msgid "Always group windows"
msgstr "Siempre agrupar las ventanas"
#: ../extensions/workspace-indicator/extension.js:30
msgid "Workspace Indicator"
@@ -288,6 +311,9 @@ msgstr "Pantalla"
#: ../extensions/xrandr-indicator/extension.js:80
msgid "Display Settings"
msgstr "Configuración de pantalla"
#~ msgid "File System"
#~ msgstr "Sistema de archivos"
#~ msgid "The application icon mode."
#~ msgstr "El modo de icono de la aplicación."

View File

@@ -10,8 +10,8 @@ msgid ""
msgstr ""
"Project-Id-Version: gnome-shell-extensions\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-02-06 02:06+0100\n"
"PO-Revision-Date: 2013-02-06 02:07+0100\n"
"POT-Creation-Date: 2013-02-08 15:40+0100\n"
"PO-Revision-Date: 2013-02-08 15:41+0100\n"
"Last-Translator: Piotr Drąg <piotrdrag@gmail.com>\n"
"Language-Team: Polish <gnomepl@aviary.pl>\n"
"Language: pl\n"
@@ -89,15 +89,15 @@ msgstr "Włączenie hibernacji"
msgid "Control the visibility of the Hibernate menu item"
msgstr "Kontrola widoczności pozycji \"Hibernuj\" menu"
#: ../extensions/apps-menu/extension.js:50
#: ../extensions/apps-menu/extension.js:37
msgid "Activities Overview"
msgstr "Ekran podglądu"
#: ../extensions/apps-menu/extension.js:103
#: ../extensions/apps-menu/extension.js:91
msgid "Favorites"
msgstr "Ulubione"
#: ../extensions/apps-menu/extension.js:197
#: ../extensions/apps-menu/extension.js:185
msgid "Applications"
msgstr "Programy"
@@ -221,11 +221,11 @@ msgid "Home"
msgstr "Katalog domowy"
#: ../extensions/places-menu/placeDisplay.js:195
msgid "File System"
msgstr "System plików"
msgid "Computer"
msgstr "Komputer"
#: ../extensions/places-menu/placeDisplay.js:199
msgid "Browse network"
msgid "Browse Network"
msgstr "Przeglądaj sieć"
#: ../extensions/systemMonitor/extension.js:213

199
po/sr.po
View File

@@ -8,8 +8,8 @@ msgstr ""
"Project-Id-Version: gnome-shell-extensions master\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=extensions\n"
"POT-Creation-Date: 2013-01-03 00:24+0000\n"
"PO-Revision-Date: 2013-01-08 20:14+0200\n"
"POT-Creation-Date: 2013-02-08 12:25+0000\n"
"PO-Revision-Date: 2013-02-20 12:19+0200\n"
"Last-Translator: Мирослав Николић <miroslavnikolic@rocketmail.com>\n"
"Language-Team: Serbian <gnom@prevod.org>\n"
"Language: sr\n"
@@ -34,7 +34,6 @@ msgid "GNOME Shell Classic"
msgstr "Класична Гномова шкољка"
#: ../data/gnome-shell-classic.desktop.in.in.h:2
#| msgid "Thumbnail and application icon"
msgid "Window management and application launching"
msgstr "Управљање прозорима и покретање програма"
@@ -87,6 +86,20 @@ msgstr "Укључује замрзавање"
msgid "Control the visibility of the Hibernate menu item"
msgstr "Управља видљивошћу ставке изборника замрзавања"
#: ../extensions/apps-menu/extension.js:50
msgid "Activities Overview"
msgstr "Преглед активности"
#: ../extensions/apps-menu/extension.js:103
#| msgid "Add to Favorites"
msgid "Favorites"
msgstr "Омиљено"
#: ../extensions/apps-menu/extension.js:197
#| msgid "Application"
msgid "Applications"
msgstr "Програми"
#: ../extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in.h:1
msgid "Application and workspace list"
msgstr "Програм и списак радних простора"
@@ -192,22 +205,10 @@ msgstr ""
"умањених приказа уместо испод приказа. Промена ових подешавања захтева да "
"поново покренете Гномову шкољку."
#: ../extensions/places-menu/extension.js:46
#: ../extensions/places-menu/extension.js:57
msgid "Places"
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\""
@@ -218,11 +219,12 @@ msgid "Home"
msgstr "Личнo"
#: ../extensions/places-menu/placeDisplay.js:195
msgid "File System"
msgstr "Систем датотека"
msgid "Computer"
msgstr "Рачунар"
#: ../extensions/places-menu/placeDisplay.js:199
msgid "Browse network"
#| msgid "Browse network"
msgid "Browse Network"
msgstr "Разгледајте мрежу"
#: ../extensions/systemMonitor/extension.js:213
@@ -241,6 +243,30 @@ msgstr "Назив теме"
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "Назив теме који се учитава из датотеке „~/.themes/name/gnome-shell“"
#: ../extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml.in.h:1
msgid "When to group windows"
msgstr "Када груписати прозоре"
#: ../extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml.in.h:2
msgid ""
"Decides when to group windows from the same application on the window list. "
"Possible values are \"never\" and \"always\"."
msgstr ""
"Одређује када ће бити груписани прозори истог програма у списку прозора. "
"Дозвољене вредности су „never“ (никад) и „always“ (увек)."
#: ../extensions/window-list/prefs.js:30
msgid "Window Grouping"
msgstr "Груписање прозора"
#: ../extensions/window-list/prefs.js:49
msgid "Never group windows"
msgstr "Никад не групиши прозоре"
#: ../extensions/window-list/prefs.js:50
msgid "Always group windows"
msgstr "Увек групиши прозоре"
#: ../extensions/workspace-indicator/extension.js:30
msgid "Workspace Indicator"
msgstr "Показатељ радних простора"
@@ -281,138 +307,3 @@ msgstr "Екран"
#: ../extensions/xrandr-indicator/extension.js:80
msgid "Display Settings"
msgstr "Подешавања екрана"
#~ msgid "The application icon mode."
#~ msgstr "Режим иконице програма."
#~ msgid ""
#~ "Configures how the windows are shown in the switcher. Valid possibilities "
#~ "are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-"
#~ "only' (shows only the application icon) or 'both'."
#~ msgstr ""
#~ "Подешава начин приказивања прозора у пребацивачу. Исправне могућности су "
#~ "„thumbnail-only“ (приказује сличицу прозора), „app-icon-only“ (приказује "
#~ "само иконицу програма) или „both“ (оба)."
#~ 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."
#~ msgstr "Понашање тастера „алт-таб“."
#~ msgid ""
#~ "Sets the Alt-Tab behaviour. Possible values are: all_thumbnails and "
#~ "workspace_icons. See the configuration dialogs for details."
#~ msgstr ""
#~ "Одређује како се понашају тастери „Алт-Таб“. Исправне вредности су "
#~ "„all_thumbnails“ (сви умањени прикази) и „workspace_icons“ (иконице "
#~ "радних простора). Погледајте прозорчиће подешавања за више података."
#~ msgid ""
#~ "This mode presents all applications from all workspaces in one selection "
#~ "list. Instead of using the application icon of every window, it uses "
#~ "small thumbnails resembling the window itself."
#~ msgstr ""
#~ "Овај режим приказује све програме са свих радних простора унутар једног "
#~ "списка. Уместо употребе иконица програма за сваки прозор користи се "
#~ "умањени приказ програма."
#~ msgid "Workspace & Icons"
#~ msgstr "Радни простори и иконице"
#~ msgid ""
#~ "This mode let's you switch between the applications of your current "
#~ "workspace and gives you additionally the option to switch to the last "
#~ "used application of your previous workspace. This is always the last "
#~ "symbol in the list and is segregated by a separator/vertical line if "
#~ "available. \n"
#~ "Every window is represented by its application icon."
#~ msgstr ""
#~ "Овај режим вам омогућава да мењате програме са тренутног радног простора "
#~ "и даје вам додатну могућност да се пребаците на последњи коришћен програм "
#~ "са другог радног простора. Он је увек приказан као последњи на списку, и "
#~ "одвојен је од осталих раздвојником/усправном линијом ако је доступно.\n"
#~ "Сваки прозор је представљен иконицом програма."
#~ msgid "Move current selection to front before closing the popup"
#~ msgstr "Помери тренутни избор напред пре затварања искачућег"
#~ msgid ""
#~ "The Alternate Tab can be used in different modes, that affect the way "
#~ "windows are chosen and presented."
#~ msgstr ""
#~ "Измењивач Таб тастера се може користити у различитим режимима који "
#~ "одређују како се прозори бирају и приказују."
#~ msgid "Removable Devices"
#~ msgstr "Уклоњиви уређаји"

View File

@@ -8,8 +8,8 @@ msgstr ""
"Project-Id-Version: gnome-shell-extensions master\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=extensions\n"
"POT-Creation-Date: 2013-01-03 00:24+0000\n"
"PO-Revision-Date: 2013-01-08 20:14+0200\n"
"POT-Creation-Date: 2013-02-08 12:25+0000\n"
"PO-Revision-Date: 2013-02-20 12:19+0200\n"
"Last-Translator: Miroslav Nikolić <miroslavnikolic@rocketmail.com>\n"
"Language-Team: Serbian <gnom@prevod.org>\n"
"Language: sr\n"
@@ -34,7 +34,6 @@ msgid "GNOME Shell Classic"
msgstr "Klasična Gnomova školjka"
#: ../data/gnome-shell-classic.desktop.in.in.h:2
#| msgid "Thumbnail and application icon"
msgid "Window management and application launching"
msgstr "Upravljanje prozorima i pokretanje programa"
@@ -87,6 +86,20 @@ msgstr "Uključuje zamrzavanje"
msgid "Control the visibility of the Hibernate menu item"
msgstr "Upravlja vidljivošću stavke izbornika zamrzavanja"
#: ../extensions/apps-menu/extension.js:50
msgid "Activities Overview"
msgstr "Pregled aktivnosti"
#: ../extensions/apps-menu/extension.js:103
#| msgid "Add to Favorites"
msgid "Favorites"
msgstr "Omiljeno"
#: ../extensions/apps-menu/extension.js:197
#| msgid "Application"
msgid "Applications"
msgstr "Programi"
#: ../extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in.h:1
msgid "Application and workspace list"
msgstr "Program i spisak radnih prostora"
@@ -192,22 +205,10 @@ msgstr ""
"umanjenih prikaza umesto ispod prikaza. Promena ovih podešavanja zahteva da "
"ponovo pokrenete Gnomovu školjku."
#: ../extensions/places-menu/extension.js:46
#: ../extensions/places-menu/extension.js:57
msgid "Places"
msgstr "Mesta"
#: ../extensions/places-menu/extension.js:47
msgid "Devices"
msgstr "Uređaji"
#: ../extensions/places-menu/extension.js:48
msgid "Bookmarks"
msgstr "Obeleživači"
#: ../extensions/places-menu/extension.js:49
msgid "Network"
msgstr "Mreža"
#: ../extensions/places-menu/placeDisplay.js:48
#, c-format
msgid "Failed to launch \"%s\""
@@ -218,11 +219,12 @@ msgid "Home"
msgstr "Lično"
#: ../extensions/places-menu/placeDisplay.js:195
msgid "File System"
msgstr "Sistem datoteka"
msgid "Computer"
msgstr "Računar"
#: ../extensions/places-menu/placeDisplay.js:199
msgid "Browse network"
#| msgid "Browse network"
msgid "Browse Network"
msgstr "Razgledajte mrežu"
#: ../extensions/systemMonitor/extension.js:213
@@ -241,6 +243,30 @@ msgstr "Naziv teme"
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "Naziv teme koji se učitava iz datoteke „~/.themes/name/gnome-shell“"
#: ../extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml.in.h:1
msgid "When to group windows"
msgstr "Kada grupisati prozore"
#: ../extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml.in.h:2
msgid ""
"Decides when to group windows from the same application on the window list. "
"Possible values are \"never\" and \"always\"."
msgstr ""
"Određuje kada će biti grupisani prozori istog programa u spisku prozora. "
"Dozvoljene vrednosti su „never“ (nikad) i „always“ (uvek)."
#: ../extensions/window-list/prefs.js:30
msgid "Window Grouping"
msgstr "Grupisanje prozora"
#: ../extensions/window-list/prefs.js:49
msgid "Never group windows"
msgstr "Nikad ne grupiši prozore"
#: ../extensions/window-list/prefs.js:50
msgid "Always group windows"
msgstr "Uvek grupiši prozore"
#: ../extensions/workspace-indicator/extension.js:30
msgid "Workspace Indicator"
msgstr "Pokazatelj radnih prostora"
@@ -281,138 +307,3 @@ msgstr "Ekran"
#: ../extensions/xrandr-indicator/extension.js:80
msgid "Display Settings"
msgstr "Podešavanja ekrana"
#~ msgid "The application icon mode."
#~ msgstr "Režim ikonice programa."
#~ msgid ""
#~ "Configures how the windows are shown in the switcher. Valid possibilities "
#~ "are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-"
#~ "only' (shows only the application icon) or 'both'."
#~ msgstr ""
#~ "Podešava način prikazivanja prozora u prebacivaču. Ispravne mogućnosti su "
#~ "„thumbnail-only“ (prikazuje sličicu prozora), „app-icon-only“ (prikazuje "
#~ "samo ikonicu programa) ili „both“ (oba)."
#~ 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."
#~ msgstr "Ponašanje tastera „alt-tab“."
#~ msgid ""
#~ "Sets the Alt-Tab behaviour. Possible values are: all_thumbnails and "
#~ "workspace_icons. See the configuration dialogs for details."
#~ msgstr ""
#~ "Određuje kako se ponašaju tasteri „Alt-Tab“. Ispravne vrednosti su "
#~ "„all_thumbnails“ (svi umanjeni prikazi) i „workspace_icons“ (ikonice "
#~ "radnih prostora). Pogledajte prozorčiće podešavanja za više podataka."
#~ msgid ""
#~ "This mode presents all applications from all workspaces in one selection "
#~ "list. Instead of using the application icon of every window, it uses "
#~ "small thumbnails resembling the window itself."
#~ msgstr ""
#~ "Ovaj režim prikazuje sve programe sa svih radnih prostora unutar jednog "
#~ "spiska. Umesto upotrebe ikonica programa za svaki prozor koristi se "
#~ "umanjeni prikaz programa."
#~ msgid "Workspace & Icons"
#~ msgstr "Radni prostori i ikonice"
#~ msgid ""
#~ "This mode let's you switch between the applications of your current "
#~ "workspace and gives you additionally the option to switch to the last "
#~ "used application of your previous workspace. This is always the last "
#~ "symbol in the list and is segregated by a separator/vertical line if "
#~ "available. \n"
#~ "Every window is represented by its application icon."
#~ msgstr ""
#~ "Ovaj režim vam omogućava da menjate programe sa trenutnog radnog prostora "
#~ "i daje vam dodatnu mogućnost da se prebacite na poslednji korišćen program "
#~ "sa drugog radnog prostora. On je uvek prikazan kao poslednji na spisku, i "
#~ "odvojen je od ostalih razdvojnikom/uspravnom linijom ako je dostupno.\n"
#~ "Svaki prozor je predstavljen ikonicom programa."
#~ msgid "Move current selection to front before closing the popup"
#~ msgstr "Pomeri trenutni izbor napred pre zatvaranja iskačućeg"
#~ msgid ""
#~ "The Alternate Tab can be used in different modes, that affect the way "
#~ "windows are chosen and presented."
#~ msgstr ""
#~ "Izmenjivač Tab tastera se može koristiti u različitim režimima koji "
#~ "određuju kako se prozori biraju i prikazuju."
#~ msgid "Removable Devices"
#~ msgstr "Uklonjivi uređaji"