Compare commits

...

43 Commits

Author SHA1 Message Date
b1b0b6cfe8 gross hack to make things work with HiDPI gtk+
We temporatily set GDK_SCALE to 1 when initializing Gtk+ so that
we get the old non-hidpi behaviour.
2013-07-03 15:18:07 +02:00
317b9a9c87 dnd: Make the draggable much faster
It turns out that picking a 3200x1200 scene on notebook chipsets
every time the mouse is moved isn't exactly the fastest thing. Defer
picking to an idle to ensure that it won't get in the way of keeping
up with mouse events.

https://bugzilla.gnome.org/show_bug.cgi?id=703443
2013-07-02 14:17:38 -04:00
67f10ea7eb network-agent: Remove prototype of unused function
This causes a debug SpiderMonkey build to fail when it throws an
exception for the missing symbol, but doesn't properly return FALSE
when executing the script.

https://bugzilla.gnome.org/show_bug.cgi?id=703442
2013-07-02 14:17:38 -04:00
793edd3a2b Make autorun notifications work
The code that checks for various conditions is confusing and
undercommented. It appears one of the recent refactorings
inadvertedly inverted the sense of the 'hidden mountpoint'
check, and caused autorun to not work for anything that does
not have a 'native root' - which is pretty much all volumes
implemented by gvfs.

https://bugzilla.gnome.org/show_bug.cgi?id=703418
2013-07-01 16:54:01 -04:00
5dabaf2fe9 Fix launching apps / search results in new workspaces by dragging
When I landed the new workspace tracker move, I didn't realize there
was public API being used by clients here. Add that back.

https://bugzilla.gnome.org/show_bug.cgi?id=698593
2013-07-01 13:22:05 -04:00
1d9b25f771 Update gvc 2013-07-01 13:20:02 -04:00
74cd20116a boxpointer: fix left/right arrow side calculation
Commit d6cace32 introduced a typo in the left/right arrow side
calculation code that causes in most scenarios (where the monitor
width is greater then the height) to not flip the box when it doesn't
fit inside the monitor.

https://bugzilla.gnome.org/show_bug.cgi?id=703403
2013-07-01 18:42:00 +02:00
867695eb4f workspace: Remove unused zooming property
We no longer support zooming.

https://bugzilla.gnome.org/show_bug.cgi?id=703304
2013-06-29 11:56:37 +02:00
9e3592ebf3 Updated Czech translation 2013-06-28 18:33:47 +02:00
f8ec14d625 Updated Galician translations 2013-06-28 01:35:26 +02:00
1f21e50663 Updated Spanish translation 2013-06-27 13:02:31 +02:00
7403545a48 screenShield: fix empty screen shield
If the drag action ends after something else has put the screen shield
into a different state we can end up in an inconsistent screen shield
state where the whole thing is empty.

https://bugzilla.gnome.org/show_bug.cgi?id=703126
2013-06-27 11:14:09 +01:00
1d95b317ba st-widget: Fix paint state leak
https://bugzilla.gnome.org/show_bug.cgi?id=703160
2013-06-27 09:26:05 +01:00
f7568b69d4 loginDialog: make spinner and session menu button share position
They never need to be shown at the same time, and the design has
the UI fade between them.

This commit implements that.

https://bugzilla.gnome.org/show_bug.cgi?id=702818
2013-06-26 15:20:10 -04:00
8d7649eaec loginDialog: Move the session list to a PopupMenu
There are some issues with the existing session menu. First, it looks
kinda bad. It seems like it's hanging around there, but it doesn't really know
what to do with itself.

Second, when it expands down it requires that the buttons below move
down with it. This kind of movement is awkward and looks a bit weird.

Third, its current position makes the "dialog" tall and unwieldy when
you add things like messages for fingerprint readers or authentication errors.

This commit moves the session list to a menu behind a button to address
the above problems.

Based on a patch by Jasper St. Pierre.

https://bugzilla.gnome.org/show_bug.cgi?id=702818
2013-06-26 14:42:31 -04:00
10b1c7e8a3 Updated Czech translation 2013-06-26 19:13:33 +02:00
b1c936164c overview: Really fix zoom animation
Commit 16fa186b63 attempted to fix the zoom animation problem
by throwing changes on the floor while the overview is animating. This has
the side effect that we might end up missing some positioning changes causes
windows to overlap the workspace thumbnails.

So revert those changes and fix it by simply by passing
WindowPositionFlags.ANIMATE during the overview animation.
This way the animation works as expected and we don't miss any position changes.

https://bugzilla.gnome.org/show_bug.cgi?id=703105
2013-06-26 18:06:54 +02:00
74ad6abfc2 loginDialog: don't show Not Listed? button before user list
Right now, there's a weird flicker at start up where the
Not Listed? button shows up before the user list, which looks
pretty bad if you're watching for it.

This commit fixes that problem by hiding the Not Listed button
initially and showing it at the appropriate time.

https://bugzilla.gnome.org/show_bug.cgi?id=703132
2013-06-26 10:53:39 -04:00
9786b2d096 layout: Keep the top_window group above newly added chrome
The top_window_group was introduced for popup windows that should
appear above system chrome, but as the group itself is just a child
of Main.uiGroup, chrome that is added after top_window_group will
still be stacked on top.
At least correct the stacking for actors added via addChrome().

https://bugzilla.gnome.org/show_bug.cgi?id=702338
2013-06-26 13:37:58 +02:00
ea02380c15 loginDialog: drop use of modal dialog
The login screen is no longer even remotely dialog-like, so
using ModalDialog is pretty weird. It also makes it difficult
to put the session list in the same place as the spinner.

This commit moves loginDialog away from using modal dialog.

https://bugzilla.gnome.org/show_bug.cgi?id=702818
2013-06-25 16:39:12 -04:00
048d5dc914 loginDialog: clean up import lines
There are a few unused imports, and some import lines
out of order.

This commit tries to clean it all up.

https://bugzilla.gnome.org/show_bug.cgi?id=702818
2013-06-25 16:13:00 -04:00
aa6b63373e ui: move AnimatedIcon out of panel.js
The class is generally useful, so it only makes sense in panel.js
for historical reasons. Because other parts of the code are
using it, though, problems are cropping up that require a
workaround like:

placeSpinner: function(...) {
    /* This is here because of recursive imports */
    const Panel = imports.ui.panel;
    Panel.AnimatedIcon(spinnerIcon, WORK_SPINNER_ICON_SIZE);
    ...
}

This commit moves AnimatedIcon to its own file so we can drop that
workaround.

https://bugzilla.gnome.org/show_bug.cgi?id=702818
2013-06-25 15:16:42 -04:00
0b219bf8cb theme-node: fix support for box-shadow: none
We currently don't parse "box-shadow: none", despite being valid CSS.
Fix it so that it uses the default shadow values.

https://bugzilla.gnome.org/show_bug.cgi?id=702782
2013-06-25 10:11:31 -07:00
109b29aeb5 slider: Add rounded ends to sliders
https://bugzilla.gnome.org/show_bug.cgi?id=702825
2013-06-25 09:49:44 -04:00
bc069b99ec osdWindow: Make sure to clear the hide timeout
When the osd window is hidden based on the timeout, it accidentally
left the timeout ID in place. When a subsequent switcher popup came
up, it thought the OSD window was scheduled to be hidden and tried
to re-hide the actor. This caused the tween to be run along with
an extra call to enable_unredirect_for_screen.
2013-06-24 17:23:43 -04:00
16fa186b63 overview: Fix zoom animation
When the allocation of the workspacesView changes during the animation we override
the tween with one that does not animate causing the overview zoom animation
not to happen.

Fix that by ignoring the alloactionChanged notification during the overview
animation.
2013-06-24 22:56:17 +02:00
e70c0d3e2d st: Be more forgiving when calling get_theme_node() on unstaged widgets
While it is obviously still an error to call get_theme_node() on a
widget that hasn't been added to the stage hierarchy yet, asserting
on it hasn't proven too successful in avoiding those errors - it's
likely the most frequent reason for crash reports. Just accept that
there'll always be code paths where we can hit this case and make
it non-fatal.

https://bugzilla.gnome.org/show_bug.cgi?id=610279
2013-06-24 21:53:42 +02:00
8d47afb195 slider: Use clutter_cairo_set_source_color
This cuts down on the denseness of the code.

https://bugzilla.gnome.org/show_bug.cgi?id=702825
2013-06-24 15:14:03 -04:00
a01469fb08 slider: Extend the trough to the allocation extents
This aligns the edge of the slider with the allocation of items
under it, which is what we want to happen in the new aggregate
menu.

https://bugzilla.gnome.org/show_bug.cgi?id=702825
2013-06-24 15:14:03 -04:00
929636ebd0 dateMenu: Update visibility syncing for new dateMenu layout
The code here before was trying to play hierarchy tricks to
figure out how to show / hide the events list, which broke
when we rearranged how the date menu was laid out. Simplify
the code here to not be so tricky, and update the CSS to
match the new designs.

https://bugzilla.gnome.org/show_bug.cgi?id=702849
2013-06-24 15:14:03 -04:00
681ef1efec telepathyClient: Increase the timestamp timeout to 3 minutes
The timestamp timeout specifies how long we should wait before
adding a timestamp to the notification. A timeout of one minute
ended up showing a lot of timestamps, so increase it to 3 minutes.

https://bugzilla.gnome.org/show_bug.cgi?id=687809
2013-06-24 13:54:06 +02:00
4f14f122bd telepathyClient: Align timestamps to the right again
Commit 3de0ebf changed timestamps to be center-aligned. New
design updates change this, so revert it.

http://bugzilla.gnome.org/show_bug.cgi?id=687809
2013-06-24 13:54:06 +02:00
67e9ed5d60 gdm: Align the "Not Listed?" label
https://bugzilla.gnome.org/show_bug.cgi?id=702307
2013-06-24 12:01:08 +01:00
5c25497e16 PopupSliderMenuItem: Add scroll method
This fixes fallout from 847cb5b972

https://bugzilla.gnome.org/show_bug.cgi?id=702849
2013-06-24 00:00:40 +02:00
626cbea9cf Updated Kazakh translation 2013-06-22 15:09:01 +06:00
aa7ed319e9 messageTray: Ensure notifications are focused after they are expanded
If we focus notifications before they're expanded, the body and action
area won't be visible, and the can_focus members like the text entry
will not be able to be focused.

Ensure that all of the all actors that would be in an expanded notification
are visible before we attempt to focus them.

https://bugzilla.gnome.org/show_bug.cgi?id=698778
2013-06-21 15:32:14 -04:00
580bd67278 Fix syntax error 2013-06-18 22:59:48 +02:00
9e44978aed osdWindow: Don't call enable_unredirection on startup
This is wrong because it is already enabled. So move this
to out of reset, which gets called from _init().
2013-06-18 22:47:15 +02:00
64b5ec0b11 Bump version to 3.9.3
Update NEWS.
2013-06-18 17:47:30 +02:00
48f9ea3d9e gdm: clear the messages queue when the user answers a prompt
the messages were being shown even when the user entered the
right information they were asked for.

https://bugzilla.gnome.org/show_bug.cgi?id=702458
2013-06-18 11:58:20 -03:00
798a0ca240 Background: don't require a URI scheme for picture-uri
Migration from old settings can result in a path instead of URI
there. This is technically invalid, but can easily recognize it
and avoid the crash.

Minor changes by Ray Strode

https://bugzilla.gnome.org/show_bug.cgi?id=702121
2013-06-18 10:55:52 -04:00
5ee6cbd4c8 Updated Spanish translation 2013-06-17 17:54:56 +02:00
3b219a6a9a Updated Norwegian bokmål translation 2013-06-17 12:29:15 +02:00
33 changed files with 1555 additions and 1438 deletions

30
NEWS
View File

@ -1,3 +1,33 @@
3.9.3
=====
* Don't push window thumbs when workspace switcher is hidden [Jasper; #701167]
* Tweak timeout for activating windows during XDND [Adel; #700150]
* Fix ellipsization in control buttons in app picker [Carlos; #696307]
* Fix DND to empty dash [Florian; #684618]
* Fix OSD window appearing below system modal dialogs [Rui; #701269]
* Clear clipboard on screen lock to prevent information leak [Florian; #698922]
* Allow session mode specific overrides schema [Florian; #701717]
* window-switcher: Only show windows from current workspace by default
[Florian; #701214]
* logout dialog: Show the correct text right away [Matthias; #702056]
* bluetooth: Port to bluez 5 [Emilio; #700891]
* dateMenu: Allow events to span multiple lines [Giovanni; #701231]
* gdm: Clear message queue when no more messages are pending [Jonh; #702458]
* Misc bug fixes and cleanups [Jasper, Florian, Adel, Giovanni; #693836,
#700972, #701386, #700877, #701755, #698918, #701224, #702125, #701954,
#701849, #702121]
Contributors:
Giovanni Campagna, Matthias Clasen, Fran Diéguez, Adel Gadllah, Rui Matos,
Florian Müllner, Emilio Pozuelo Monfort, Carlos Soriano, Jasper St. Pierre,
Jonh Wendell
Translations:
Marek Černocký [cs], Victor Ibragimov [tg], Fran Diéguez [gl],
Benjamin Steinwender [de], Cheng-Chia Tseng [zh_HK, zh_TW],
eternalhui [zh_CN], Ivaylo Valkov [bg], Kjartan Maraas [nb],
Daniel Mustieles [es]
3.9.2
=====
* Use a symbolic icon for DESKTOP windows [Matthias; #697914]

View File

@ -1,5 +1,5 @@
AC_PREREQ(2.63)
AC_INIT([gnome-shell],[3.9.2],[https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell],[gnome-shell])
AC_INIT([gnome-shell],[3.9.3],[https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell],[gnome-shell])
AC_CONFIG_HEADERS([config.h])
AC_CONFIG_SRCDIR([src/shell-global.c])
@ -63,7 +63,7 @@ AM_CONDITIONAL(BUILD_RECORDER, $build_recorder)
CLUTTER_MIN_VERSION=1.13.4
GOBJECT_INTROSPECTION_MIN_VERSION=0.10.1
GJS_MIN_VERSION=1.35.4
MUTTER_MIN_VERSION=3.9.2
MUTTER_MIN_VERSION=3.9.3
GTK_MIN_VERSION=3.7.9
GIO_MIN_VERSION=2.37.0
LIBECAL_MIN_VERSION=3.5.3

View File

@ -383,6 +383,7 @@ StScrollBar StButton#vhandle:active {
/* Entries */
#searchEntry,
.login-dialog StEntry,
.notification StEntry,
.modal-dialog StEntry {
color: rgb(64, 64, 64);
@ -394,6 +395,7 @@ StScrollBar StButton#vhandle:active {
}
#searchEntry,
.login-dialog StEntry,
.run-dialog-entry,
.notification StEntry {
border: 2px solid rgba(245,245,245,0.2);
@ -406,6 +408,7 @@ StScrollBar StButton#vhandle:active {
#searchEntry:focus,
#searchEntry:hover,
.login-dialog StEntry:focus,
.notification StEntry:focus,
.modal-dialog StEntry {
border: 2px solid rgb(136,138,133);
@ -415,6 +418,7 @@ StScrollBar StButton#vhandle:active {
box-shadow: inset 0px 2px 4px rgba(0,0,0,0.6);
}
.login-dialog StEntry:focus,
.notification StEntry:focus,
.modal-dialog StEntry:focus {
border: 2px solid #3465a4;
@ -438,6 +442,7 @@ StScrollBar StButton#vhandle:active {
transition-duration: 0ms;
}
.login-dialog StEntry,
.notification StEntry,
.modal-dialog StEntry {
border-radius: 5px;
@ -451,6 +456,7 @@ StScrollBar StButton#vhandle:active {
padding: 0 4px;
}
.login-dialog StEntry:insensitive,
.modal-dialog StEntry:insensitive {
border-color: #666666;
color: #9f9f9f;
@ -1154,11 +1160,6 @@ StScrollBar StButton#vhandle:active {
/* Calendar popup */
#calendarArea {
/* this is the total width of the popup */
width: 720px;
}
.calendar-vertical-separator {
-stipple-width: 1px;
-stipple-color: #505050;
@ -2318,6 +2319,7 @@ StScrollBar StButton#vhandle:active {
font-weight: bold;
color: #666666;
padding-top: 1em;
padding-left: 2px;
}
.login-dialog-not-listed-button:focus .login-dialog-not-listed-label,
@ -2348,43 +2350,17 @@ StScrollBar StButton#vhandle:active {
width: 15em;
}
.login-dialog-session-list,
.login-dialog-session-list-item {
color: #babdb6;
}
.login-dialog-session-list-button:focus,
.login-dialog-session-list-button:active,
.login-dialog-session-list-button:hover,
.login-dialog-session-list-item:focus,
.login-dialog-session-list-item:hover {
color: white;
.login-dialog-session-list-button StIcon {
icon-size: 1.25em;
}
.login-dialog-session-list-button {
padding: 4px;
color: #8b8b8b;
}
.login-dialog-session-list-scroll-view {
padding: 6px;
}
.login-dialog-session-list-item {
padding-bottom: 6px;
}
.login-dialog-session-list-triangle {
padding-right: 6px;
}
.login-dialog-session-list-item-box {
padding-left: 6px;
spacing: 6px;
}
.login-dialog-session-list-item-dot {
width: 10px;
height: 10px;
.login-dialog-session-list-button:hover,
.login-dialog-session-list-button:active {
color: white;
}
.login-dialog-logo-bin {

View File

@ -37,6 +37,7 @@ nobase_dist_js_DATA = \
misc/util.js \
perf/core.js \
ui/altTab.js \
ui/animation.js \
ui/appDisplay.js \
ui/appFavorites.js \
ui/backgroundMenu.js \

View File

@ -19,38 +19,47 @@
*/
const AccountsService = imports.gi.AccountsService;
const Atk = imports.gi.Atk;
const Clutter = imports.gi.Clutter;
const CtrlAltTab = imports.ui.ctrlAltTab;
const Gdm = imports.gi.Gdm;
const Gio = imports.gi.Gio;
const GLib = imports.gi.GLib;
const Gtk = imports.gi.Gtk;
const Lang = imports.lang;
const Mainloop = imports.mainloop;
const Meta = imports.gi.Meta;
const Lang = imports.lang;
const Pango = imports.gi.Pango;
const Realmd = imports.gdm.realmd;
const Signals = imports.signals;
const Shell = imports.gi.Shell;
const Signals = imports.signals;
const St = imports.gi.St;
const Gdm = imports.gi.Gdm;
const Animation = imports.ui.animation;
const Batch = imports.gdm.batch;
const Fprint = imports.gdm.fingerprint;
const BoxPointer = imports.ui.boxpointer;
const CtrlAltTab = imports.ui.ctrlAltTab;
const GdmUtil = imports.gdm.util;
const Lightbox = imports.ui.lightbox;
const Layout = imports.ui.layout;
const Main = imports.ui.main;
const ModalDialog = imports.ui.modalDialog;
const PanelMenu = imports.ui.panelMenu;
const PopupMenu = imports.ui.popupMenu;
const Realmd = imports.gdm.realmd;
const Tweener = imports.ui.tweener;
const UserWidget = imports.ui.userWidget;
const _FADE_ANIMATION_TIME = 0.25;
const _SCROLL_ANIMATION_TIME = 0.5;
const _DEFAULT_BUTTON_WELL_ICON_SIZE = 24;
const _DEFAULT_BUTTON_WELL_ANIMATION_DELAY = 1.0;
const _DEFAULT_BUTTON_WELL_ANIMATION_TIME = 0.3;
const _TIMED_LOGIN_IDLE_THRESHOLD = 5.0;
const _LOGO_ICON_HEIGHT = 48;
let _loginDialog = null;
const DefaultButtonWellMode = {
NONE: 0,
SESSION_MENU_BUTTON: 1,
SPINNER: 2
};
const UserListItem = new Lang.Class({
Name: 'UserListItem',
@ -287,203 +296,118 @@ const UserList = new Lang.Class({
});
Signals.addSignalMethods(UserList.prototype);
const SessionListItem = new Lang.Class({
Name: 'SessionListItem',
_init: function(id, name) {
this.id = id;
this.actor = new St.Button({ style_class: 'login-dialog-session-list-item',
button_mask: St.ButtonMask.ONE | St.ButtonMask.THREE,
can_focus: true,
reactive: true,
x_fill: true,
x_align: St.Align.START });
this._box = new St.BoxLayout({ style_class: 'login-dialog-session-list-item-box' });
this.actor.add_actor(this._box);
this.actor.connect('clicked', Lang.bind(this, this._onClicked));
this._dot = new St.DrawingArea({ style_class: 'login-dialog-session-list-item-dot' });
this._dot.connect('repaint', Lang.bind(this, this._onRepaintDot));
this._box.add_actor(this._dot);
this.setShowDot(false);
let label = new St.Label({ style_class: 'login-dialog-session-list-item-label',
text: name });
this.actor.label_actor = label;
this._box.add_actor(label);
},
setShowDot: function(show) {
if (show)
this._dot.opacity = 255;
else
this._dot.opacity = 0;
},
_onRepaintDot: function(area) {
let cr = area.get_context();
let [width, height] = area.get_surface_size();
let color = area.get_theme_node().get_foreground_color();
cr.setSourceRGBA (color.red / 255,
color.green / 255,
color.blue / 255,
color.alpha / 255);
cr.arc(width / 2, height / 2, width / 3, 0, 2 * Math.PI);
cr.fill();
cr.$dispose();
},
_onClicked: function() {
this.emit('activate');
}
});
Signals.addSignalMethods(SessionListItem.prototype);
const SessionList = new Lang.Class({
Name: 'SessionList',
const SessionMenuButton = new Lang.Class({
Name: 'SessionMenuButton',
_init: function() {
this.actor = new St.Bin();
this._box = new St.BoxLayout({ style_class: 'login-dialog-session-list',
vertical: true});
this.actor.child = this._box;
let gearIcon = new St.Icon({ icon_name: 'emblem-system-symbolic' });
this._button = new St.Button({ style_class: 'login-dialog-session-list-button',
button_mask: St.ButtonMask.ONE | St.ButtonMask.THREE,
reactive: true,
track_hover: true,
can_focus: true,
x_fill: true,
y_fill: true });
let box = new St.BoxLayout();
this._button.add_actor(box);
accessible_name: _("Choose Session"),
accessible_role: Atk.Role.MENU,
child: gearIcon });
this._triangle = new St.Label({ style_class: 'login-dialog-session-list-triangle',
text: '\u25B8' });
box.add_actor(this._triangle);
this.actor = new St.Bin({ child: this._button });
let label = new St.Label({ style_class: 'login-dialog-session-list-label',
text: _("Session…") });
box.add_actor(label);
this._menu = new PopupMenu.PopupMenu(this._button, 0, St.Side.TOP);
Main.uiGroup.add_actor(this._menu.actor);
this._menu.actor.hide();
this._button.connect('clicked',
Lang.bind(this, this._onClicked));
this._box.add_actor(this._button);
this._scrollView = new St.ScrollView({ style_class: 'login-dialog-session-list-scroll-view'});
this._scrollView.set_policy(Gtk.PolicyType.NEVER,
Gtk.PolicyType.AUTOMATIC);
this._box.add_actor(this._scrollView);
this._itemList = new St.BoxLayout({ style_class: 'login-dialog-session-item-list',
vertical: true });
this._scrollView.add_actor(this._itemList);
this._scrollView.hide();
this.isOpen = false;
this._menu.connect('open-state-changed',
Lang.bind(this, function(menu, isOpen) {
if (isOpen)
this._button.add_style_pseudo_class('active');
else
this._button.remove_style_pseudo_class('active');
}));
let subtitle = new PopupMenu.PopupMenuItem(_("Session"), { style_class: 'popup-subtitle-menu-item',
reactive: false });
this._menu.addMenuItem(subtitle);
this._manager = new PopupMenu.PopupMenuManager({ actor: this._button });
this._manager.addMenu(this._menu);
this._button.connect('clicked', Lang.bind(this, function() {
this._menu.toggle();
}));
this._items = {};
this._activeSessionId = null;
this._populate();
},
open: function() {
if (this.isOpen)
return;
this._button.add_style_pseudo_class('open');
this._scrollView.show();
this._triangle.set_text('\u25BE');
this.isOpen = true;
},
close: function() {
if (!this.isOpen)
return;
this._button.remove_style_pseudo_class('open');
this._scrollView.hide();
this._triangle.set_text('\u25B8');
this.isOpen = false;
},
_onClicked: function() {
if (!this.isOpen)
this.open();
else
this.close();
},
updateSensitivity: function(sensitive) {
this._button.reactive = sensitive;
this._button.can_focus = sensitive;
this._menu.close(BoxPointer.PopupAnimation.NONE);
},
for (let id in this._items)
this._items[id].actor.reactive = sensitive;
_updateOrnament: function() {
let itemIds = Object.keys(this._items);
for (let i = 0; i < itemIds.length; i++) {
if (itemIds[i] == this._activeSessionId)
this._items[itemIds[i]].setOrnament(PopupMenu.Ornament.DOT);
else
this._items[itemIds[i]].setOrnament(PopupMenu.Ornament.NONE);
}
},
setActiveSession: function(sessionId) {
if (sessionId == this._activeSessionId)
return;
if (this._activeSessionId)
this._items[this._activeSessionId].setShowDot(false);
this._items[sessionId].setShowDot(true);
this._activeSessionId = sessionId;
this._updateOrnament();
this.emit('session-activated', this._activeSessionId);
},
_populate: function() {
this._itemList.destroy_all_children();
this._activeSessionId = null;
this._items = {};
close: function() {
this._menu.close();
},
_populate: function() {
let ids = Gdm.get_session_ids();
ids.sort();
if (ids.length <= 1) {
this._box.hide();
this._button.hide();
} else {
this._button.show();
this._box.show();
return;
}
for (let i = 0; i < ids.length; i++) {
let [sessionName, sessionDescription] = Gdm.get_session_name_and_description(ids[i]);
let item = new SessionListItem(ids[i], sessionName);
this._itemList.add_actor(item.actor);
this._items[ids[i]] = item;
let id = ids[i];
let item = new PopupMenu.PopupMenuItem(sessionName);
this._menu.addMenuItem(item);
this._items[id] = item;
if (!this._activeSessionId)
this.setActiveSession(ids[i]);
this.setActiveSession(id);
item.connect('activate',
Lang.bind(this, function() {
this.setActiveSession(item.id);
}));
item.connect('activate', Lang.bind(this, function() {
this.setActiveSession(id);
}));
}
}
});
Signals.addSignalMethods(SessionList.prototype);
Signals.addSignalMethods(SessionMenuButton.prototype);
const LoginDialog = new Lang.Class({
Name: 'LoginDialog',
Extends: ModalDialog.ModalDialog,
_init: function(parentActor) {
this.parent({ shellReactive: true,
styleClass: 'login-dialog',
parentActor: parentActor,
keybindingMode: Shell.KeyBindingMode.LOGIN_SCREEN,
shouldFadeIn: false });
this.connect('destroy',
Lang.bind(this, this._onDestroy));
this.connect('opened',
Lang.bind(this, this._onOpened));
this.actor = new St.Widget({ accessible_role: Atk.Role.WINDOW,
style_class: 'login-dialog',
visible: false });
this.actor.add_constraint(new Layout.MonitorConstraint({ primary: true }));
this.actor.connect('destroy', Lang.bind(this, this._onDestroy));
parentActor.add_child(this.actor);
this._userManager = AccountsService.UserManager.get_default()
this._greeterClient = new Gdm.Client();
@ -526,7 +450,10 @@ const LoginDialog = new Lang.Class({
this._userSelectionBox = new St.BoxLayout({ style_class: 'login-dialog-user-selection-box',
vertical: true });
this.contentLayout.add(this._userSelectionBox);
this._userSelectionBox.add_constraint(new Clutter.AlignConstraint({ source: this.actor,
align_axis: Clutter.AlignAxis.BOTH,
factor: 0.5 }));
this.actor.add_child(this._userSelectionBox);
this._bannerLabel = new St.Label({ style_class: 'login-dialog-banner',
text: '' });
@ -539,15 +466,20 @@ const LoginDialog = new Lang.Class({
x_fill: true,
y_fill: true });
this.setInitialKeyFocus(this._userList.actor);
this._promptBox = new St.BoxLayout({ style_class: 'login-dialog-prompt-layout',
vertical: true });
this.contentLayout.add(this._promptBox,
{ expand: true,
x_fill: true,
y_fill: true,
x_align: St.Align.START });
this._promptBox.connect('button-press-event',
Lang.bind(this, function(actor, event) {
if (event.get_key_symbol() == Clutter.KEY_Escape) {
this.cancel();
}
}));
this._promptBox.add_constraint(new Clutter.AlignConstraint({ source: this.actor,
align_axis: Clutter.AlignAxis.BOTH,
factor: 0.5 }));
this.actor.add_child(this._promptBox);
this._promptUser = new St.Bin({ x_fill: true,
x_align: St.Align.START });
this._promptBox.add(this._promptUser,
@ -579,19 +511,15 @@ const LoginDialog = new Lang.Class({
this._promptLoginHint.hide();
this._promptBox.add(this._promptLoginHint);
this._buttonBox = new St.BoxLayout({ style_class: 'modal-dialog-button-box',
vertical: false });
this._promptBox.add(this._buttonBox,
{ expand: true,
x_align: St.Align.MIDDLE,
y_align: St.Align.END });
this._cancelButton = null;
this._signInButton = null;
this._sessionList = new SessionList();
this._sessionList.connect('session-activated',
Lang.bind(this, function(list, sessionId) {
this._greeter.call_select_session_sync (sessionId, null);
}));
this._promptBox.add(this._sessionList.actor,
{ expand: true,
x_fill: false,
y_fill: true,
x_align: St.Align.START });
this._promptBox.hide();
// translators: this message is shown below the user list on the
@ -608,6 +536,7 @@ const LoginDialog = new Lang.Class({
x_fill: true });
this._notListedButton.connect('clicked', Lang.bind(this, this._hideUserListAndLogIn));
this._notListedButton.hide();
this._userSelectionBox.add(this._notListedButton,
{ expand: false,
@ -616,7 +545,13 @@ const LoginDialog = new Lang.Class({
this._logoBin = new St.Bin({ style_class: 'login-dialog-logo-bin', y_expand: true });
this._logoBin.set_y_align(Clutter.ActorAlign.END);
this.backgroundStack.add_actor(this._logoBin);
this._logoBin.add_constraint(new Clutter.AlignConstraint({ source: this.actor,
align_axis: Clutter.AlignAxis.X_AXIS,
factor: 0.5 }));
this._logoBin.add_constraint(new Clutter.AlignConstraint({ source: this.actor,
align_axis: Clutter.AlignAxis.Y_AXIS,
factor: 1.0 }));
this.actor.add_child(this._logoBin);
this._updateLogo();
if (!this._userManager.is_loaded)
@ -636,6 +571,27 @@ const LoginDialog = new Lang.Class({
this._onUserListActivated(item);
}));
this._defaultButtonWell = new St.Widget();
this._defaultButtonWellMode = DefaultButtonWellMode.NONE;
this._sessionMenuButton = new SessionMenuButton();
this._sessionMenuButton.connect('session-activated',
Lang.bind(this, function(list, sessionId) {
this._greeter.call_select_session_sync (sessionId, null);
}));
this._sessionMenuButton.actor.opacity = 0;
this._sessionMenuButton.actor.show();
this._defaultButtonWell.add_child(this._sessionMenuButton.actor);
let spinnerIcon = global.datadir + '/theme/process-working.svg';
this._workSpinner = new Animation.AnimatedIcon(spinnerIcon, _DEFAULT_BUTTON_WELL_ICON_SIZE);
this._workSpinner.actor.opacity = 0;
this._workSpinner.actor.show();
this._defaultButtonWell.add_child(this._workSpinner.actor);
this._sessionMenuButton.actor.add_constraint(new Clutter.AlignConstraint({ source: this._workSpinner.actor,
align_axis: Clutter.AlignAxis.BOTH,
factor: 0.5 }));
},
_updateDisableUserList: function() {
@ -697,15 +653,77 @@ const LoginDialog = new Lang.Class({
this._showUserList();
},
_getActorForDefaultButtonWellMode: function(mode) {
let actor;
if (mode == DefaultButtonWellMode.NONE)
actor = null;
else if (mode == DefaultButtonWellMode.SPINNER)
actor = this._workSpinner.actor;
else if (mode == DefaultButtonWellMode.SESSION_MENU_BUTTON)
actor = this._sessionMenuButton.actor;
return actor;
},
_setDefaultButtonWellMode: function(mode, immediately) {
if (this._defaultButtonWellMode == DefaultButtonWellMode.NONE &&
mode == DefaultButtonWellMode.NONE)
return;
let oldActor = this._getActorForDefaultButtonWellMode(this._defaultButtonWellMode);
if (oldActor)
Tweener.removeTweens(oldActor);
let actor = this._getActorForDefaultButtonWellMode(mode);
if (this._defaultButtonWellMode != mode && oldActor) {
if (immediately)
oldActor.opacity = 0;
else
Tweener.addTween(oldActor,
{ opacity: 0,
time: _DEFAULT_BUTTON_WELL_ANIMATION_TIME,
delay: _DEFAULT_BUTTON_WELL_ANIMATION_DELAY,
transition: 'linear',
onCompleteScope: this,
onComplete: function() {
if (mode == DefaultButtonWellMode.SPINNER) {
if (this._workSpinner)
this._workSpinner.stop();
}
}
});
}
if (actor) {
if (mode == DefaultButtonWellMode.SPINNER)
this._workSpinner.play();
if (immediately)
actor.opacity = 255;
else
Tweener.addTween(actor,
{ opacity: 255,
time: _DEFAULT_BUTTON_WELL_ANIMATION_TIME,
delay: _DEFAULT_BUTTON_WELL_ANIMATION_DELAY,
transition: 'linear' });
}
this._defaultButtonWellMode = mode;
},
_verificationFailed: function() {
this._promptEntry.text = '';
this._updateSensitivity(true);
this.setWorking(false);
this._setDefaultButtonWellMode(DefaultButtonWellMode.NONE, true);
},
_onDefaultSessionChanged: function(client, sessionId) {
this._sessionList.setActiveSession(sessionId);
this._sessionMenuButton.setActiveSession(sessionId);
},
_showMessage: function(userVerifier, message, styleClass) {
@ -736,8 +754,20 @@ const LoginDialog = new Lang.Class({
this._reset();
},
_shouldShowSessionMenuButton: function() {
if (this._verifyingUser)
return true;
if (!this._user)
return false;
if (this._user.is_logged_in)
return false;
return true;
},
_showPrompt: function(forSecret) {
this._sessionList.actor.hide();
this._promptLabel.show();
this._promptEntry.show();
this._promptLoginHint.opacity = 0;
@ -749,8 +779,10 @@ const LoginDialog = new Lang.Class({
time: _FADE_ANIMATION_TIME,
transition: 'easeOutQuad' });
if ((this._user && !this._user.is_logged_in()) || this._verifyingUser)
this._sessionList.actor.show();
if (this._shouldShowSessionMenuButton())
this._setDefaultButtonWellMode(DefaultButtonWellMode.SESSION_MENU_BUTTON, true);
else
this._setDefaultButtonWellMode(DefaultButtonWellMode.NONE, true);
this._promptEntry.grab_key_focus();
@ -767,33 +799,49 @@ const LoginDialog = new Lang.Class({
},
_prepareDialog: function(forSecret, hold) {
this.buttonLayout.visible = true;
this.clearButtons();
this._buttonBox.visible = true;
this._buttonBox.remove_all_children();
if (!this._disableUserList || this._verifyingUser)
this.addButton({ action: Lang.bind(this, this.cancel),
label: _("Cancel"),
key: Clutter.Escape },
{ expand: true,
x_fill: false,
y_fill: false,
x_align: St.Align.START,
y_align: St.Align.MIDDLE });
this.placeSpinner({ expand: false,
x_fill: false,
y_fill: false,
x_align: St.Align.END,
y_align: St.Align.MIDDLE });
this._signInButton = this.addButton({ action: Lang.bind(this, function() {
hold.release();
}),
label: forSecret ? C_("button", "Sign In") : _("Next"),
default: true },
{ expand: false,
x_fill: false,
y_fill: false,
x_align: St.Align.END,
y_align: St.Align.MIDDLE });
if (!this._disableUserList || this._verifyingUser) {
this._cancelButton = new St.Button({ style_class: 'modal-dialog-button',
button_mask: St.ButtonMask.ONE | St.ButtonMask.THREE,
reactive: true,
can_focus: true,
label: _("Cancel") });
this._cancelButton.connect('clicked',
Lang.bind(this, function() {
this.cancel();
}));
this._buttonBox.add(this._cancelButton,
{ expand: false,
x_fill: false,
y_fill: false,
x_align: St.Align.START,
y_align: St.Align.END });
}
this._buttonBox.add(this._defaultButtonWell,
{ expand: true,
x_fill: false,
y_fill: false,
x_align: St.Align.END,
y_align: St.Align.MIDDLE });
this._signInButton = new St.Button({ style_class: 'modal-dialog-button',
button_mask: St.ButtonMask.ONE | St.ButtonMask.THREE,
reactive: true,
can_focus: true,
label: forSecret ? C_("button", "Sign In") : _("Next") });
this._signInButton.connect('clicked',
Lang.bind(this, function() {
hold.release();
}));
this._signInButton.add_style_pseudo_class('default');
this._buttonBox.add(this._signInButton,
{ expand: false,
x_fill: false,
y_fill: false,
x_align: St.Align.END,
y_align: St.Align.END });
this._updateSignInButtonSensitivity(this._promptEntry.text.length > 0);
@ -812,7 +860,7 @@ const LoginDialog = new Lang.Class({
_updateSensitivity: function(sensitive) {
this._promptEntry.reactive = sensitive;
this._promptEntry.clutter_text.editable = sensitive;
this._sessionList.updateSensitivity(sensitive);
this._sessionMenuButton.updateSensitivity(sensitive);
this._updateSignInButtonSensitivity(sensitive);
},
@ -824,8 +872,6 @@ const LoginDialog = new Lang.Class({
},
_hidePrompt: function() {
this.setButtons([]);
if (this._promptEntryTextChangedId > 0) {
this._promptEntry.clutter_text.disconnect(this._promptEntryTextChangedId);
this._promptEntryTextChangedId = 0;
@ -836,7 +882,7 @@ const LoginDialog = new Lang.Class({
this._promptEntryActivateId = 0;
}
this.setWorking(false);
this._setDefaultButtonWellMode(DefaultButtonWellMode.NONE, true);
this._promptBox.hide();
this._promptLoginHint.hide();
@ -845,11 +891,12 @@ const LoginDialog = new Lang.Class({
this._updateSensitivity(true);
this._promptEntry.set_text('');
this._sessionList.close();
this._sessionMenuButton.close();
this._promptLoginHint.hide();
this.clearButtons();
this._buttonBox.remove_all_children();
this._signInButton = null;
this._cancelButton = null;
},
_askQuestion: function(verifier, serviceName, question, passwordChar) {
@ -866,7 +913,7 @@ const LoginDialog = new Lang.Class({
function() {
let text = this._promptEntry.get_text();
this._updateSensitivity(false);
this.setWorking(true);
this._setDefaultButtonWellMode(DefaultButtonWellMode.SPINNER, false);
this._userVerifier.answerQuery(serviceName, text);
}];
@ -915,7 +962,7 @@ const LoginDialog = new Lang.Class({
},
_startSession: function(serviceName) {
Tweener.addTween(this.dialogLayout,
Tweener.addTween(this.actor,
{ opacity: 0,
time: _FADE_ANIMATION_TIME,
transition: 'easeOutQuad',
@ -924,7 +971,7 @@ const LoginDialog = new Lang.Class({
for (let i = 0; i < children.length; i++) {
if (children[i] != Main.layoutManager.screenShieldGroup)
children[i].opacity = this.dialogLayout.opacity;
children[i].opacity = this.actor.opacity;
}
},
onUpdateScope: this,
@ -1087,6 +1134,7 @@ const LoginDialog = new Lang.Class({
_showUserList: function() {
this._hidePrompt();
this._setUserListExpanded(true);
this._notListedButton.show();
this._userList.actor.grab_key_focus();
},
@ -1152,17 +1200,18 @@ const LoginDialog = new Lang.Class({
}));
},
_onOpened: function() {
Main.ctrlAltTabManager.addGroup(this.dialogLayout,
open: function() {
Main.ctrlAltTabManager.addGroup(this.actor,
_("Login Window"),
'dialog-password-symbolic',
{ sortGroup: CtrlAltTab.SortGroup.MIDDLE });
this._userList.actor.grab_key_focus();
this.actor.show();
return true;
},
close: function() {
this.parent();
Main.ctrlAltTabManager.removeGroup(this.dialogLayout);
},
@ -1170,3 +1219,4 @@ const LoginDialog = new Lang.Class({
this._promptEntry.clutter_text.insert_unichar(unichar);
},
});
Signals.addSignalMethods(LoginDialog.prototype);

View File

@ -164,6 +164,7 @@ const ShellUserVerifier = new Lang.Class({
answerQuery: function(serviceName, answer) {
if (!this._userVerifier.hasPendingMessages) {
this._clearMessageQueue();
this._userVerifier.call_answer_query(serviceName, answer, this._cancellable, null);
} else {
let signalId = this._userVerifier.connect('no-more-messages',

84
js/ui/animation.js Normal file
View File

@ -0,0 +1,84 @@
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const Lang = imports.lang;
const Mainloop = imports.mainloop;
const St = imports.gi.St;
const Signals = imports.signals;
const Atk = imports.gi.Atk;
const ANIMATED_ICON_UPDATE_TIMEOUT = 100;
const Animation = new Lang.Class({
Name: 'Animation',
_init: function(filename, width, height, speed) {
this.actor = new St.Bin();
this.actor.connect('destroy', Lang.bind(this, this._onDestroy));
this._speed = speed;
this._isLoaded = false;
this._isPlaying = false;
this._timeoutId = 0;
this._frame = 0;
this._animations = St.TextureCache.get_default().load_sliced_image (filename, width, height,
Lang.bind(this, this._animationsLoaded));
this.actor.set_child(this._animations);
},
play: function() {
if (this._isLoaded && this._timeoutId == 0) {
if (this._frame == 0)
this._showFrame(0);
this._timeoutId = Mainloop.timeout_add(this._speed, Lang.bind(this, this._update));
}
this._isPlaying = true;
},
stop: function() {
if (this._timeoutId > 0) {
Mainloop.source_remove(this._timeoutId);
this._timeoutId = 0;
}
this._isPlaying = false;
},
_showFrame: function(frame) {
let oldFrameActor = this._animations.get_child_at_index(this._frame);
if (oldFrameActor)
oldFrameActor.hide();
this._frame = (frame % this._animations.get_n_children());
let newFrameActor = this._animations.get_child_at_index(this._frame);
if (newFrameActor)
newFrameActor.show();
},
_update: function() {
this._showFrame(this._frame + 1);
return true;
},
_animationsLoaded: function() {
this._isLoaded = true;
if (this._isPlaying)
this.play();
},
_onDestroy: function() {
this.stop();
}
});
const AnimatedIcon = new Lang.Class({
Name: 'AnimatedIcon',
Extends: Animation,
_init: function(filename, size) {
this.parent(filename, size, size, ANIMATED_ICON_UPDATE_TIMEOUT);
}
});

View File

@ -571,7 +571,16 @@ const Background = new Lang.Class({
}
let uri = this._settings.get_string(PICTURE_URI_KEY);
let filename = Gio.File.new_for_uri(uri).get_path();
let filename;
if (GLib.uri_parse_scheme(uri) != null)
filename = Gio.File.new_for_uri(uri).get_path();
else
filename = uri;
if (!filename) {
this._setLoaded();
return;
}
this._loadFile(filename);
},

View File

@ -589,12 +589,12 @@ const BoxPointer = new Lang.Class({
return St.Side.TOP;
break;
case St.Side.LEFT:
if (sourceAllocation.y2 + boxWidth > monitor.x + monitor.width &&
if (sourceAllocation.x2 + boxWidth > monitor.x + monitor.width &&
boxWidth < sourceAllocation.x1 - monitor.x)
return St.Side.RIGHT;
break;
case St.Side.RIGHT:
if (sourceAllocation.y1 - boxWidth < monitor.x &&
if (sourceAllocation.x1 - boxWidth < monitor.x &&
boxWidth < monitor.x + monitor.width - sourceAllocation.x2)
return St.Side.LEFT;
break;

View File

@ -31,7 +31,7 @@ function shouldAutorunMount(mount, forTransient) {
if (!volume || (!volume.allowAutorun && forTransient))
return false;
if (!root.is_native() || isMountRootHidden(root))
if (root.is_native() && isMountRootHidden(root))
return false;
return true;

View File

@ -18,7 +18,7 @@ const Params = imports.misc.params;
const PopupMenu = imports.ui.popupMenu;
// See Notification.appendMessage
const SCROLLBACK_IMMEDIATE_TIME = 60; // 1 minute
const SCROLLBACK_IMMEDIATE_TIME = 3 * 60; // 3 minutes
const SCROLLBACK_RECENT_TIME = 15 * 60; // 15 minutes
const SCROLLBACK_RECENT_LENGTH = 20;
const SCROLLBACK_IDLE_LENGTH = 5;
@ -967,7 +967,8 @@ const ChatNotification = new Lang.Class({
let timeLabel = this._append({ body: this._formatTimestamp(lastMessageDate),
group: 'meta',
styles: ['chat-meta-message'],
childProps: { expand: true, x_fill: false },
childProps: { expand: true, x_fill: false,
x_align: St.Align.END },
noTimestamp: true,
timestamp: lastMessageTime });

View File

@ -153,15 +153,14 @@ const DateMenuButton = new Lang.Class({
this._openClocksItem.actor.visible = visible &&
(this._getClockApp() != null);
this._separator.visible = visible;
this._eventList.actor.visible = visible;
if (visible) {
let alignment = 0.25;
if (Clutter.get_default_text_direction() == Clutter.TextDirection.RTL)
alignment = 1.0 - alignment;
this.menu._arrowAlignment = alignment;
this._eventList.actor.get_parent().show();
let alignment = 0.25;
if (Clutter.get_default_text_direction() == Clutter.TextDirection.RTL)
alignment = 1.0 - alignment;
this.menu._arrowAlignment = alignment;
} else {
this.menu._arrowAlignment = 0.5;
this._eventList.actor.get_parent().hide();
this.menu._arrowAlignment = 0.5;
}
},

View File

@ -1,6 +1,7 @@
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const Clutter = imports.gi.Clutter;
const GLib = imports.gi.GLib;
const Gtk = imports.gi.Gtk;
const St = imports.gi.St;
const Lang = imports.lang;
@ -358,60 +359,65 @@ const _Draggable = new Lang.Class({
return true;
},
_updateDragHover : function () {
let target = this._dragActor.get_stage().get_actor_at_pos(Clutter.PickMode.ALL,
this._dragX, this._dragY);
let dragEvent = {
x: this._dragX,
y: this._dragY,
dragActor: this._dragActor,
source: this.actor._delegate,
targetActor: target
};
for (let i = 0; i < dragMonitors.length; i++) {
let motionFunc = dragMonitors[i].dragMotion;
if (motionFunc) {
let result = motionFunc(dragEvent);
if (result != DragMotionResult.CONTINUE) {
global.set_cursor(DRAG_CURSOR_MAP[result]);
return false;
}
}
}
while (target) {
if (target._delegate && target._delegate.handleDragOver) {
let [r, targX, targY] = target.transform_stage_point(this._dragX, this._dragY);
// We currently loop through all parents on drag-over even if one of the children has handled it.
// We can check the return value of the function and break the loop if it's true if we don't want
// to continue checking the parents.
let result = target._delegate.handleDragOver(this.actor._delegate,
this._dragActor,
targX,
targY,
0);
if (result != DragMotionResult.CONTINUE) {
global.set_cursor(DRAG_CURSOR_MAP[result]);
return false;
}
}
target = target.get_parent();
}
global.set_cursor(Shell.Cursor.DND_IN_DRAG);
return false;
},
_queueUpdateDragHover: function() {
if (this._updateHoverId)
GLib.source_remove(this._updateHoverId);
this._updateHoverId = GLib.idle_add(GLib.PRIORITY_DEFAULT,
Lang.bind(this, this._updateDragHover));
},
_updateDragPosition : function (event) {
let [stageX, stageY] = event.get_coords();
this._dragX = stageX;
this._dragY = stageY;
this._dragActor.set_position(stageX + this._dragOffsetX,
stageY + this._dragOffsetY);
// If we are dragging, update the position
if (this._dragActor) {
this._dragActor.set_position(stageX + this._dragOffsetX,
stageY + this._dragOffsetY);
let target = this._dragActor.get_stage().get_actor_at_pos(Clutter.PickMode.ALL,
stageX, stageY);
// We call observers only once per motion with the innermost
// target actor. If necessary, the observer can walk the
// parent itself.
let dragEvent = {
x: stageX,
y: stageY,
dragActor: this._dragActor,
source: this.actor._delegate,
targetActor: target
};
for (let i = 0; i < dragMonitors.length; i++) {
let motionFunc = dragMonitors[i].dragMotion;
if (motionFunc) {
let result = motionFunc(dragEvent);
if (result != DragMotionResult.CONTINUE) {
global.set_cursor(DRAG_CURSOR_MAP[result]);
return true;
}
}
}
while (target) {
if (target._delegate && target._delegate.handleDragOver) {
let [r, targX, targY] = target.transform_stage_point(stageX, stageY);
// We currently loop through all parents on drag-over even if one of the children has handled it.
// We can check the return value of the function and break the loop if it's true if we don't want
// to continue checking the parents.
let result = target._delegate.handleDragOver(this.actor._delegate,
this._dragActor,
targX,
targY,
event.get_time());
if (result != DragMotionResult.CONTINUE) {
global.set_cursor(DRAG_CURSOR_MAP[result]);
return true;
}
}
target = target.get_parent();
}
global.set_cursor(Shell.Cursor.DND_IN_DRAG);
}
this._queueUpdateDragHover();
return true;
},
@ -511,6 +517,11 @@ const _Draggable = new Lang.Class({
},
_cancelDrag: function(eventTime) {
if (this._updateHoverId) {
GLib.source_remove(this._updateHoverId);
this._updateHoverId = 0;
}
this.emit('drag-cancelled', eventTime);
this._dragInProgress = false;
let [snapBackX, snapBackY, snapBackScale] = this._getRestoreLocation();

View File

@ -749,6 +749,8 @@ const LayoutManager = new Lang.Class({
// and shown otherwise)
addChrome: function(actor, params) {
this.uiGroup.add_actor(actor);
if (this.uiGroup.contains(global.top_window_group))
this.uiGroup.set_child_below_sibling(actor, global.top_window_group);
this._trackActor(actor, params);
},

View File

@ -2597,16 +2597,16 @@ const MessageTray = new Lang.Class({
},
_expandNotification: function(autoExpanding) {
// Don't focus notifications that are auto-expanding.
if (!autoExpanding)
this._ensureNotificationFocused();
if (!this._notificationExpandedId)
this._notificationExpandedId =
this._notification.connect('expanded',
Lang.bind(this, this._onNotificationExpanded));
// Don't animate changes in notifications that are auto-expanding.
this._notification.expand(!autoExpanding);
// Don't focus notifications that are auto-expanding.
if (!autoExpanding)
this._ensureNotificationFocused();
},
_onNotificationExpanded: function() {

View File

@ -14,6 +14,7 @@ const Atk = imports.gi.Atk;
const Params = imports.misc.params;
const Animation = imports.ui.animation;
const Layout = imports.ui.layout;
const Lightbox = imports.ui.lightbox;
const Main = imports.ui.main;
@ -187,10 +188,8 @@ const ModalDialog = new Lang.Class({
},
placeSpinner: function(layoutInfo) {
/* This is here because of recursive imports */
const Panel = imports.ui.panel;
let spinnerIcon = global.datadir + '/theme/process-working.svg';
this._workSpinner = new Panel.AnimatedIcon(spinnerIcon, WORK_SPINNER_ICON_SIZE);
this._workSpinner = new Animation.AnimatedIcon(spinnerIcon, WORK_SPINNER_ICON_SIZE);
this._workSpinner.actor.opacity = 0;
this._workSpinner.actor.show();

View File

@ -158,23 +158,26 @@ const OsdWindow = new Lang.Class({
return;
Mainloop.source_remove(this._hideTimeoutId);
this._hideTimeoutId = 0;
this._hide();
},
_hide: function() {
this._hideTimeoutId = 0;
Tweener.addTween(this.actor,
{ opacity: 0,
time: FADE_TIME,
transition: 'easeOutQuad',
onComplete: Lang.bind(this, this._reset) });
onComplete: Lang.bind(this, function() {
this._reset();
Meta.enable_unredirect_for_screen(global.screen);
})
});
},
_reset: function() {
this.actor.hide();
this.setLabel(null);
this.setLevel(null);
Meta.enable_unredirect_for_screen(global.screen);
},
_monitorsChanged: function() {

View File

@ -15,6 +15,7 @@ const Signals = imports.signals;
const Atk = imports.gi.Atk;
const Animation = imports.ui.animation;
const Config = imports.misc.config;
const CtrlAltTab = imports.ui.ctrlAltTab;
const DND = imports.ui.dnd;
@ -29,7 +30,6 @@ const PANEL_ICON_SIZE = 24;
const BUTTON_DND_ACTIVATION_TIMEOUT = 250;
const ANIMATED_ICON_UPDATE_TIMEOUT = 100;
const SPINNER_ANIMATION_TIME = 0.2;
// To make sure the panel corners blend nicely with the panel,
@ -75,81 +75,6 @@ function _unpremultiply(color) {
blue: blue, alpha: color.alpha });
};
const Animation = new Lang.Class({
Name: 'Animation',
_init: function(filename, width, height, speed) {
this.actor = new St.Bin();
this.actor.connect('destroy', Lang.bind(this, this._onDestroy));
this._speed = speed;
this._isLoaded = false;
this._isPlaying = false;
this._timeoutId = 0;
this._frame = 0;
this._animations = St.TextureCache.get_default().load_sliced_image (filename, width, height,
Lang.bind(this, this._animationsLoaded));
this.actor.set_child(this._animations);
},
play: function() {
if (this._isLoaded && this._timeoutId == 0) {
if (this._frame == 0)
this._showFrame(0);
this._timeoutId = Mainloop.timeout_add(this._speed, Lang.bind(this, this._update));
}
this._isPlaying = true;
},
stop: function() {
if (this._timeoutId > 0) {
Mainloop.source_remove(this._timeoutId);
this._timeoutId = 0;
}
this._isPlaying = false;
},
_showFrame: function(frame) {
let oldFrameActor = this._animations.get_child_at_index(this._frame);
if (oldFrameActor)
oldFrameActor.hide();
this._frame = (frame % this._animations.get_n_children());
let newFrameActor = this._animations.get_child_at_index(this._frame);
if (newFrameActor)
newFrameActor.show();
},
_update: function() {
this._showFrame(this._frame + 1);
return true;
},
_animationsLoaded: function() {
this._isLoaded = true;
if (this._isPlaying)
this.play();
},
_onDestroy: function() {
this.stop();
}
});
const AnimatedIcon = new Lang.Class({
Name: 'AnimatedIcon',
Extends: Animation,
_init: function(filename, size) {
this.parent(filename, size, size, ANIMATED_ICON_UPDATE_TIMEOUT);
}
});
const TextShadower = new Lang.Class({
Name: 'TextShadower',
@ -360,7 +285,7 @@ const AppMenuButton = new Lang.Class({
if (!success || this._spinnerIcon == icon)
return;
this._spinnerIcon = icon;
this._spinner = new AnimatedIcon(this._spinnerIcon, PANEL_ICON_SIZE);
this._spinner = new Animation.AnimatedIcon(this._spinnerIcon, PANEL_ICON_SIZE);
this._container.add_actor(this._spinner.actor);
this._spinner.actor.hide();
this._spinner.actor.lower_bottom();

View File

@ -527,6 +527,10 @@ const PopupSliderMenuItem = new Lang.Class({
get value() {
return this._slider.value;
},
scroll: function (event) {
this._slider.scroll(event);
}
});

View File

@ -720,6 +720,8 @@ const ScreenShield = new Lang.Class({
},
_onDragEnd: function(action, actor, eventX, eventY, modifiers) {
if (this._lockScreenState != MessageTray.State.HIDING)
return;
if (this._lockScreenGroup.y < -(ARROW_DRAG_THRESHOLD * global.stage.height)) {
// Complete motion automatically
let [velocity, velocityX, velocityY] = this._dragAction.get_velocity(0);

View File

@ -48,10 +48,10 @@ const Slider = new Lang.Class({
let [hasHandleColor, handleBorderColor] =
themeNode.lookup_color('-slider-handle-border-color', false);
let sliderWidth = width - 2 * handleRadius;
let sliderHeight = themeNode.get_length('-slider-height');
let sliderBorderWidth = themeNode.get_length('-slider-border-width');
let sliderBorderRadius = Math.min(width, sliderHeight) / 2;
let sliderBorderColor = themeNode.get_color('-slider-border-color');
let sliderColor = themeNode.get_color('-slider-background-color');
@ -59,55 +59,40 @@ const Slider = new Lang.Class({
let sliderActiveBorderColor = themeNode.get_color('-slider-active-border-color');
let sliderActiveColor = themeNode.get_color('-slider-active-background-color');
cr.setSourceRGBA (
sliderActiveColor.red / 255,
sliderActiveColor.green / 255,
sliderActiveColor.blue / 255,
sliderActiveColor.alpha / 255);
cr.rectangle(handleRadius, (height - sliderHeight) / 2, sliderWidth * this._value, sliderHeight);
const TAU = Math.PI * 2;
let handleX = handleRadius + (width - 2 * handleRadius) * this._value;
cr.arc(sliderBorderRadius + sliderBorderWidth, height / 2, sliderBorderRadius, TAU * 1/4, TAU * 3/4);
cr.lineTo(handleX, (height - sliderHeight) / 2);
cr.lineTo(handleX, (height + sliderHeight) / 2);
cr.lineTo(sliderBorderRadius + sliderBorderWidth, (height + sliderHeight) / 2);
Clutter.cairo_set_source_color(cr, sliderActiveColor);
cr.fillPreserve();
cr.setSourceRGBA (
sliderActiveBorderColor.red / 255,
sliderActiveBorderColor.green / 255,
sliderActiveBorderColor.blue / 255,
sliderActiveBorderColor.alpha / 255);
Clutter.cairo_set_source_color(cr, sliderActiveBorderColor);
cr.setLineWidth(sliderBorderWidth);
cr.stroke();
cr.setSourceRGBA (
sliderColor.red / 255,
sliderColor.green / 255,
sliderColor.blue / 255,
sliderColor.alpha / 255);
cr.rectangle(handleRadius + sliderWidth * this._value, (height - sliderHeight) / 2, sliderWidth * (1 - this._value), sliderHeight);
cr.arc(width - sliderBorderRadius - sliderBorderWidth, height / 2, sliderBorderRadius, TAU * 3/4, TAU * 1/4);
cr.lineTo(handleX, (height + sliderHeight) / 2);
cr.lineTo(handleX, (height - sliderHeight) / 2);
cr.lineTo(width - sliderBorderRadius - sliderBorderWidth, (height - sliderHeight) / 2);
Clutter.cairo_set_source_color(cr, sliderColor);
cr.fillPreserve();
cr.setSourceRGBA (
sliderBorderColor.red / 255,
sliderBorderColor.green / 255,
sliderBorderColor.blue / 255,
sliderBorderColor.alpha / 255);
Clutter.cairo_set_source_color(cr, sliderBorderColor);
cr.setLineWidth(sliderBorderWidth);
cr.stroke();
let handleY = height / 2;
let handleX = handleRadius + (width - 2 * handleRadius) * this._value;
let color = themeNode.get_foreground_color();
cr.setSourceRGBA (
color.red / 255,
color.green / 255,
color.blue / 255,
color.alpha / 255);
Clutter.cairo_set_source_color(cr, color);
cr.arc(handleX, handleY, handleRadius, 0, 2 * Math.PI);
cr.fillPreserve();
if (hasHandleColor && handleBorderWidth) {
cr.setSourceRGBA(
handleBorderColor.red / 255,
handleBorderColor.green / 255,
handleBorderColor.blue / 255,
handleBorderColor.alpha / 255);
cr.setLineWidth(handleBorderWidth);
cr.stroke();
Clutter.cairo_set_source_color(cr, handleBorderColor);
cr.setLineWidth(handleBorderWidth);
cr.stroke();
}
cr.$dispose();
},

View File

@ -479,6 +479,10 @@ const WindowManager = new Lang.Class({
false, -1, 1);
},
keepWorkspaceAlive: function(workspace, duration) {
this._workspaceTracker.keepWorkspaceAlive(workspace, duration);
},
setCustomKeybindingHandler: function(name, modes, handler) {
if (Meta.keybindings_set_custom_handler(name, handler))
this.allowKeybinding(name, modes);

View File

@ -127,7 +127,7 @@ const WindowClone = new Lang.Class({
if (this._stackAbove == null)
return null;
if (this.inDrag || this._zooming) {
if (this.inDrag) {
if (this._stackAbove._delegate)
return this._stackAbove._delegate.getActualStackAbove();
else
@ -997,7 +997,7 @@ const Workspace = new Lang.Class({
this._dropRect.set_position(geom.x, geom.y);
this._dropRect.set_size(geom.width, geom.height);
this._updateWindowPositions(WindowPositionFlags.NONE);
this._updateWindowPositions(Main.overview.animationInProgress ? WindowPositionFlags.ANIMATE : WindowPositionFlags.NONE);
this._actualGeometryLater = 0;
return false;

View File

@ -764,8 +764,8 @@ const ThumbnailsBox = new Lang.Class({
// to open its first window within some time, as tracked by Shell.WindowTracker.
// Here, we only add a very brief timeout to avoid the _immediate_ removal of the
// workspace while we wait for the startup sequence to load.
Main.keepWorkspaceAlive(global.screen.get_workspace_by_index(newWorkspaceIndex),
WORKSPACE_KEEP_ALIVE_TIME);
Main.wm.keepWorkspaceAlive(global.screen.get_workspace_by_index(newWorkspaceIndex),
WORKSPACE_KEEP_ALIVE_TIME);
}
// Start the animation on the workspace (which is actually

378
po/cs.po
View File

@ -12,8 +12,8 @@ msgstr ""
"Project-Id-Version: gnome-shell\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2013-05-28 07:17+0000\n"
"PO-Revision-Date: 2013-05-29 12:26+0200\n"
"POT-Creation-Date: 2013-06-27 11:02+0000\n"
"PO-Revision-Date: 2013-06-28 18:32+0200\n"
"Last-Translator: Marek Černocký <marek@manet.cz>\n"
"Language-Team: Czech <gnome-cs-list@gnome.org>\n"
"Language: cs\n"
@ -333,7 +333,8 @@ msgid ""
"This key overrides the key in org.gnome.desktop.wm.preferences when running "
"GNOME Shell."
msgstr ""
"Když běží GNOME Shell, tento klíč přepíše klíč v org.gnome.desktop.wm.preferences"
"Když běží GNOME Shell, tento klíč přepíše klíč v org.gnome.desktop.wm."
"preferences"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:46
msgid "Enable edge tiling when dropping windows on screen edges"
@ -362,37 +363,41 @@ msgid "Select an extension to configure using the combobox above."
msgstr ""
"Pomocí rozbalovacího seznamu výše zvolte rozšíření, které chete nastavit."
#: ../js/gdm/loginDialog.js:371
msgid "Session"
msgstr "Sezení"
#: ../js/gdm/loginDialog.js:308
msgid "Choose Session"
msgstr "Vybrat sezení"
#: ../js/gdm/loginDialog.js:326
msgid "Session"
msgstr "Sezení"
#. translators: this message is shown below the user list on the
#. login screen. It can be activated to reveal an entry for
#. manually entering the username.
#: ../js/gdm/loginDialog.js:601
#: ../js/gdm/loginDialog.js:528
msgid "Not listed?"
msgstr "Nejste na seznamu?"
#: ../js/gdm/loginDialog.js:776 ../js/ui/components/networkAgent.js:137
#: ../js/gdm/loginDialog.js:810 ../js/ui/components/networkAgent.js:137
#: ../js/ui/components/polkitAgent.js:161 ../js/ui/endSessionDialog.js:376
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
#: ../js/ui/status/bluetooth.js:415 ../js/ui/unlockDialog.js:96
#: ../js/ui/userMenu.js:938
#: ../js/ui/status/bluetooth.js:449 ../js/ui/unlockDialog.js:95
#: ../js/ui/userMenu.js:884
msgid "Cancel"
msgstr "Zrušit"
#: ../js/gdm/loginDialog.js:791
#: ../js/gdm/loginDialog.js:833
msgctxt "button"
msgid "Sign In"
msgstr "Přihlásit se"
#: ../js/gdm/loginDialog.js:791
#: ../js/gdm/loginDialog.js:833
msgid "Next"
msgstr "Následující"
#. Translators: this message is shown below the username entry field
#. to clue the user in on how to login to the local network realm
#: ../js/gdm/loginDialog.js:888
#: ../js/gdm/loginDialog.js:934
#, c-format
msgid "(e.g., user or %s)"
msgstr "(např. uživatel nebo %s)"
@ -400,12 +405,12 @@ msgstr "(např. uživatel nebo %s)"
#. TTLS and PEAP are actually much more complicated, but this complication
#. is not visible here since we only care about phase2 authentication
#. (and don't even care of which one)
#: ../js/gdm/loginDialog.js:892 ../js/ui/components/networkAgent.js:260
#: ../js/gdm/loginDialog.js:938 ../js/ui/components/networkAgent.js:260
#: ../js/ui/components/networkAgent.js:278
msgid "Username: "
msgstr "Uživatelské jméno: "
#: ../js/gdm/loginDialog.js:1158
#: ../js/gdm/loginDialog.js:1205
msgid "Login Window"
msgstr "Přihlašovací okno"
@ -414,8 +419,8 @@ msgstr "Přihlašovací okno"
msgid "Power"
msgstr "Vypnout"
#: ../js/gdm/powerMenu.js:93 ../js/ui/userMenu.js:696 ../js/ui/userMenu.js:700
#: ../js/ui/userMenu.js:816
#: ../js/gdm/powerMenu.js:93 ../js/ui/userMenu.js:651 ../js/ui/userMenu.js:655
#: ../js/ui/userMenu.js:768
msgid "Suspend"
msgstr "Uspat do paměti"
@ -423,18 +428,18 @@ msgstr "Uspat do paměti"
msgid "Restart"
msgstr "Restartovat"
#: ../js/gdm/powerMenu.js:103 ../js/ui/userMenu.js:698
#: ../js/ui/userMenu.js:700 ../js/ui/userMenu.js:815 ../js/ui/userMenu.js:942
#: ../js/gdm/powerMenu.js:103 ../js/ui/userMenu.js:653
#: ../js/ui/userMenu.js:655 ../js/ui/userMenu.js:767 ../js/ui/userMenu.js:888
msgid "Power Off"
msgstr "Vypnout"
#: ../js/gdm/util.js:247
#: ../js/gdm/util.js:248
msgid "Authentication error"
msgstr "Chyba ověření"
#. Translators: this message is shown below the password entry field
#. to indicate the user can swipe their finger instead
#: ../js/gdm/util.js:364
#: ../js/gdm/util.js:365
msgid "(or swipe finger)"
msgstr "(nebo otiskněte prst)"
@ -453,23 +458,23 @@ msgstr "Nelze analyzovat příkaz:"
msgid "Execution of '%s' failed:"
msgstr "Vykonání „%s“ selhalo:"
#: ../js/ui/appDisplay.js:361
#: ../js/ui/appDisplay.js:397
msgid "Frequent"
msgstr "Časté"
#: ../js/ui/appDisplay.js:368
#: ../js/ui/appDisplay.js:404
msgid "All"
msgstr "Všechny"
#: ../js/ui/appDisplay.js:960
#: ../js/ui/appDisplay.js:996
msgid "New Window"
msgstr "Nové okno"
#: ../js/ui/appDisplay.js:963 ../js/ui/dash.js:284
#: ../js/ui/appDisplay.js:999 ../js/ui/dash.js:284
msgid "Remove from Favorites"
msgstr "Odstranit z oblíbených"
#: ../js/ui/appDisplay.js:964
#: ../js/ui/appDisplay.js:1000
msgid "Add to Favorites"
msgstr "Přidat mezi oblíbené"
@ -483,7 +488,7 @@ msgstr "%s byl přidán mezi oblíbené."
msgid "%s has been removed from your favorites."
msgstr "%s byl odstraněn z oblíbených."
#: ../js/ui/backgroundMenu.js:19 ../js/ui/userMenu.js:789
#: ../js/ui/backgroundMenu.js:19 ../js/ui/userMenu.js:744
msgid "Settings"
msgstr "Nastavení"
@ -608,35 +613,35 @@ msgid "S"
msgstr "So"
#. Translators: Text to show if there are no events
#: ../js/ui/calendar.js:735
#: ../js/ui/calendar.js:750
msgid "Nothing Scheduled"
msgstr "Nic nenaplánováno"
#. Translators: Shown on calendar heading when selected day occurs on current year
#: ../js/ui/calendar.js:751
#: ../js/ui/calendar.js:768
msgctxt "calendar heading"
msgid "%A, %B %d"
msgstr "%A, %e. %B"
#. Translators: Shown on calendar heading when selected day occurs on different year
#: ../js/ui/calendar.js:754
#: ../js/ui/calendar.js:771
msgctxt "calendar heading"
msgid "%A, %B %d, %Y"
msgstr "%A, %e. %B %Y"
#: ../js/ui/calendar.js:764
#: ../js/ui/calendar.js:782
msgid "Today"
msgstr "Dnes"
#: ../js/ui/calendar.js:768
#: ../js/ui/calendar.js:786
msgid "Tomorrow"
msgstr "Zítra"
#: ../js/ui/calendar.js:779
#: ../js/ui/calendar.js:797
msgid "This week"
msgstr "Tento týden"
#: ../js/ui/calendar.js:787
#: ../js/ui/calendar.js:805
msgid "Next week"
msgstr "Následující týden"
@ -825,14 +830,14 @@ msgstr "<b>%d.</b> <b>%B</b> <b>%Y</b>, <b>%H:%M</b> "
#. Translators: this is the other person changing their old IM name to their new
#. IM name.
#: ../js/ui/components/telepathyClient.js:985
#: ../js/ui/components/telepathyClient.js:986
#, c-format
msgid "%s is now known as %s"
msgstr "%s je teď znám jako %s"
#. translators: argument is a room name like
#. * room@jabber.org for example.
#: ../js/ui/components/telepathyClient.js:1088
#: ../js/ui/components/telepathyClient.js:1089
#, c-format
msgid "Invitation to %s"
msgstr "Pozvánka na připojení k %s"
@ -840,38 +845,38 @@ msgstr "Pozvánka na připojení k %s"
#. translators: first argument is the name of a contact and the second
#. * one the name of a room. "Alice is inviting you to join room@jabber.org
#. * for example.
#: ../js/ui/components/telepathyClient.js:1096
#: ../js/ui/components/telepathyClient.js:1097
#, c-format
msgid "%s is inviting you to join %s"
msgstr "%s vás zve do %s"
#: ../js/ui/components/telepathyClient.js:1098
#: ../js/ui/components/telepathyClient.js:1137
#: ../js/ui/components/telepathyClient.js:1177
#: ../js/ui/components/telepathyClient.js:1240
#: ../js/ui/components/telepathyClient.js:1099
#: ../js/ui/components/telepathyClient.js:1138
#: ../js/ui/components/telepathyClient.js:1178
#: ../js/ui/components/telepathyClient.js:1241
msgid "Decline"
msgstr "Odmítnout"
#: ../js/ui/components/telepathyClient.js:1099
#: ../js/ui/components/telepathyClient.js:1178
#: ../js/ui/components/telepathyClient.js:1241
#: ../js/ui/components/telepathyClient.js:1100
#: ../js/ui/components/telepathyClient.js:1179
#: ../js/ui/components/telepathyClient.js:1242
msgid "Accept"
msgstr "Přijmout"
#. translators: argument is a contact name like Alice for example.
#: ../js/ui/components/telepathyClient.js:1129
#: ../js/ui/components/telepathyClient.js:1130
#, c-format
msgid "Video call from %s"
msgstr "Videohovor od %s"
#. translators: argument is a contact name like Alice for example.
#: ../js/ui/components/telepathyClient.js:1132
#: ../js/ui/components/telepathyClient.js:1133
#, c-format
msgid "Call from %s"
msgstr "Hovor od %s"
#. translators: this is a button label (verb), not a noun
#: ../js/ui/components/telepathyClient.js:1139
#: ../js/ui/components/telepathyClient.js:1140
msgid "Answer"
msgstr "Zvednout"
@ -880,110 +885,110 @@ msgstr "Zvednout"
#. * file name. The string will be something
#. * like: "Alice is sending you test.ogg"
#.
#: ../js/ui/components/telepathyClient.js:1171
#: ../js/ui/components/telepathyClient.js:1172
#, c-format
msgid "%s is sending you %s"
msgstr "%s vám posílá %s"
#. To translators: The parameter is the contact's alias
#: ../js/ui/components/telepathyClient.js:1206
#: ../js/ui/components/telepathyClient.js:1207
#, c-format
msgid "%s would like permission to see when you are online"
msgstr "%s vás žádá o oprávnění vidět, že jste dostupní"
#: ../js/ui/components/telepathyClient.js:1298
#: ../js/ui/components/telepathyClient.js:1299
msgid "Network error"
msgstr "Chyba sítě"
#: ../js/ui/components/telepathyClient.js:1300
#: ../js/ui/components/telepathyClient.js:1301
msgid "Authentication failed"
msgstr "Ověření selhalo"
#: ../js/ui/components/telepathyClient.js:1302
#: ../js/ui/components/telepathyClient.js:1303
msgid "Encryption error"
msgstr "Chyba šifrování"
#: ../js/ui/components/telepathyClient.js:1304
#: ../js/ui/components/telepathyClient.js:1305
msgid "Certificate not provided"
msgstr "Certifikát neposkytnut"
#: ../js/ui/components/telepathyClient.js:1306
#: ../js/ui/components/telepathyClient.js:1307
msgid "Certificate untrusted"
msgstr "Nedůvěryhodný certifikát"
#: ../js/ui/components/telepathyClient.js:1308
#: ../js/ui/components/telepathyClient.js:1309
msgid "Certificate expired"
msgstr "Platnost certifikátu vypršela"
#: ../js/ui/components/telepathyClient.js:1310
#: ../js/ui/components/telepathyClient.js:1311
msgid "Certificate not activated"
msgstr "Certifikát není aktivován"
#: ../js/ui/components/telepathyClient.js:1312
#: ../js/ui/components/telepathyClient.js:1313
msgid "Certificate hostname mismatch"
msgstr "Název počítače certifikátu nesouhlasí"
#: ../js/ui/components/telepathyClient.js:1314
#: ../js/ui/components/telepathyClient.js:1315
msgid "Certificate fingerprint mismatch"
msgstr "Otisk prstu certifikátu nesouhlasí"
#: ../js/ui/components/telepathyClient.js:1316
#: ../js/ui/components/telepathyClient.js:1317
msgid "Certificate self-signed"
msgstr "Certifikát je podepsán sám sebou"
#: ../js/ui/components/telepathyClient.js:1318
#: ../js/ui/components/telepathyClient.js:1319
msgid "Status is set to offline"
msgstr "Stav nastaven na „Odhlášen“"
#: ../js/ui/components/telepathyClient.js:1320
#: ../js/ui/components/telepathyClient.js:1321
msgid "Encryption is not available"
msgstr "Šifrování není dostupné"
#: ../js/ui/components/telepathyClient.js:1322
#: ../js/ui/components/telepathyClient.js:1323
msgid "Certificate is invalid"
msgstr "Certifikát je neplatný"
#: ../js/ui/components/telepathyClient.js:1324
#: ../js/ui/components/telepathyClient.js:1325
msgid "Connection has been refused"
msgstr "Spojení bylo odmítnuto"
#: ../js/ui/components/telepathyClient.js:1326
#: ../js/ui/components/telepathyClient.js:1327
msgid "Connection can't be established"
msgstr "Spojení nemohlo bát navázáno"
#: ../js/ui/components/telepathyClient.js:1328
#: ../js/ui/components/telepathyClient.js:1329
msgid "Connection has been lost"
msgstr "Spojení bylo ztraceno"
#: ../js/ui/components/telepathyClient.js:1330
#: ../js/ui/components/telepathyClient.js:1331
msgid "This account is already connected to the server"
msgstr "Tento účet je již připojen k serveru"
#: ../js/ui/components/telepathyClient.js:1332
#: ../js/ui/components/telepathyClient.js:1333
msgid ""
"Connection has been replaced by a new connection using the same resource"
msgstr "Spojení bylo nahrazeno novým spojením, které používá stejný zdroj"
#: ../js/ui/components/telepathyClient.js:1334
#: ../js/ui/components/telepathyClient.js:1335
msgid "The account already exists on the server"
msgstr "Takový účet již na serveru existuje"
#: ../js/ui/components/telepathyClient.js:1336
#: ../js/ui/components/telepathyClient.js:1337
msgid "Server is currently too busy to handle the connection"
msgstr "Server je právě příliš zaneprázdněn na to, aby obsloužil spojení"
#: ../js/ui/components/telepathyClient.js:1338
#: ../js/ui/components/telepathyClient.js:1339
msgid "Certificate has been revoked"
msgstr "Certifikát byl odvolán"
#: ../js/ui/components/telepathyClient.js:1340
#: ../js/ui/components/telepathyClient.js:1341
msgid ""
"Certificate uses an insecure cipher algorithm or is cryptographically weak"
msgstr ""
"Certifikát používá nepříliš bezpečný šifrovací algoritmus nebo je z "
"kryptografického hlediska slabý"
#: ../js/ui/components/telepathyClient.js:1342
#: ../js/ui/components/telepathyClient.js:1343
msgid ""
"The length of the server certificate, or the depth of the server certificate "
"chain, exceed the limits imposed by the cryptography library"
@ -991,22 +996,22 @@ msgstr ""
"Délka certifikátu serveru nebo délka zřetězených certifikátů serveru "
"přesáhla omezení dané kryptografickou knihovnou"
#: ../js/ui/components/telepathyClient.js:1344
#: ../js/ui/components/telepathyClient.js:1345
msgid "Internal error"
msgstr "Vnitřní chyba"
#. translators: argument is the account name, like
#. * name@jabber.org for example.
#: ../js/ui/components/telepathyClient.js:1354
#: ../js/ui/components/telepathyClient.js:1355
#, c-format
msgid "Unable to connect to %s"
msgstr "Nelze se připojit k „%s“"
#: ../js/ui/components/telepathyClient.js:1359
#: ../js/ui/components/telepathyClient.js:1360
msgid "View account"
msgstr "Zobrazit účet"
#: ../js/ui/components/telepathyClient.js:1398
#: ../js/ui/components/telepathyClient.js:1399
msgid "Unknown reason"
msgstr "Neznámý důvod"
@ -1020,19 +1025,19 @@ msgstr "Zobrazit aplikace"
#. Translators: this is the name of the dock/favorites area on
#. the left of the overview
#: ../js/ui/dash.js:435
#: ../js/ui/dash.js:439
msgid "Dash"
msgstr "Oblíbené"
#: ../js/ui/dateMenu.js:86
#: ../js/ui/dateMenu.js:85
msgid "Open Calendar"
msgstr "Otevřít kalendář"
#: ../js/ui/dateMenu.js:90
#: ../js/ui/dateMenu.js:89
msgid "Open Clocks"
msgstr "Otevřít Hodiny"
#: ../js/ui/dateMenu.js:97
#: ../js/ui/dateMenu.js:96
msgid "Date & Time Settings"
msgstr "Nastavení data a času"
@ -1040,7 +1045,7 @@ msgstr "Nastavení data a času"
#. Translators: This is the date format to use when the calendar popup is
#. * shown - it is shown just below the time in the shell (e.g. "Tue 9:29 AM").
#.
#: ../js/ui/dateMenu.js:208
#: ../js/ui/dateMenu.js:201
msgid "%A %B %e, %Y"
msgstr "%A, %e. %B, %Y"
@ -1215,15 +1220,15 @@ msgstr "Vymazat zprávy"
msgid "Notification Settings"
msgstr "Nastavení upozornění"
#: ../js/ui/messageTray.js:1707
#: ../js/ui/messageTray.js:1711
msgid "No Messages"
msgstr "Žádné zprávy"
#: ../js/ui/messageTray.js:1780
#: ../js/ui/messageTray.js:1784
msgid "Message Tray"
msgstr "Lišta zpráv"
#: ../js/ui/messageTray.js:2805
#: ../js/ui/messageTray.js:2811
msgid "System Information"
msgstr "Informace o systému"
@ -1232,7 +1237,7 @@ msgctxt "program"
msgid "Unknown"
msgstr "Neznámé"
#: ../js/ui/overviewControls.js:472 ../js/ui/screenShield.js:150
#: ../js/ui/overviewControls.js:474 ../js/ui/screenShield.js:150
#, c-format
msgid "%d new message"
msgid_plural "%d new messages"
@ -1256,17 +1261,17 @@ msgstr "Přehled"
msgid "Type to search…"
msgstr "Vyhledávejte psaním…"
#: ../js/ui/panel.js:642
#: ../js/ui/panel.js:567
msgid "Quit"
msgstr "Ukončit"
#. Translators: If there is no suitable word for "Activities"
#. in your language, you can use the word for "Overview".
#: ../js/ui/panel.js:693
#: ../js/ui/panel.js:618
msgid "Activities"
msgstr "Činnosti"
#: ../js/ui/panel.js:989
#: ../js/ui/panel.js:914
msgid "Top Bar"
msgstr "Horní lišta"
@ -1275,7 +1280,7 @@ msgstr "Horní lišta"
#. "ON" and "OFF") or "toggle-switch-intl" (for toggle
#. switches containing "◯" and "|"). Other values will
#. simply result in invisible toggle switches.
#: ../js/ui/popupMenu.js:738
#: ../js/ui/popupMenu.js:549
msgid "toggle-switch-us"
msgstr "toggle-switch-intl"
@ -1301,7 +1306,7 @@ msgstr[0] "%d nové upozornění"
msgstr[1] "%d nová upozornění"
msgstr[2] "%d nových upozornění"
#: ../js/ui/screenShield.js:449 ../js/ui/userMenu.js:807
#: ../js/ui/screenShield.js:449 ../js/ui/userMenu.js:759
msgid "Lock"
msgstr "Uzamknout"
@ -1316,19 +1321,19 @@ msgstr "GNOME potřebuje uzamknout obrazovku"
#.
#. XXX: another option is to kick the user into the gdm login
#. screen, where we're not affected by grabs
#: ../js/ui/screenShield.js:773 ../js/ui/screenShield.js:1213
#: ../js/ui/screenShield.js:775 ../js/ui/screenShield.js:1215
msgid "Unable to lock"
msgstr "Nelze uzamknout obrazovku"
#: ../js/ui/screenShield.js:774 ../js/ui/screenShield.js:1214
#: ../js/ui/screenShield.js:776 ../js/ui/screenShield.js:1216
msgid "Lock was blocked by an application"
msgstr "Zamknutí bylo zablokováno některou z aplikací"
#: ../js/ui/searchDisplay.js:453
#: ../js/ui/searchDisplay.js:445
msgid "Searching…"
msgstr "Hledá se…"
#: ../js/ui/searchDisplay.js:497
#: ../js/ui/searchDisplay.js:489
msgid "No results."
msgstr "Žádné výsledky."
@ -1356,7 +1361,7 @@ msgstr "Heslo"
msgid "Remember Password"
msgstr "Pamatovat si heslo"
#: ../js/ui/shellMountOperation.js:403 ../js/ui/unlockDialog.js:109
#: ../js/ui/shellMountOperation.js:403 ../js/ui/unlockDialog.js:108
msgid "Unlock"
msgstr "Odemknout"
@ -1409,9 +1414,9 @@ msgid "Large Text"
msgstr "Styl velkého textu"
#: ../js/ui/status/bluetooth.js:28 ../js/ui/status/bluetooth.js:32
#: ../js/ui/status/bluetooth.js:289 ../js/ui/status/bluetooth.js:321
#: ../js/ui/status/bluetooth.js:357 ../js/ui/status/bluetooth.js:388
#: ../js/ui/status/network.js:739
#: ../js/ui/status/bluetooth.js:290 ../js/ui/status/bluetooth.js:327
#: ../js/ui/status/bluetooth.js:355 ../js/ui/status/bluetooth.js:391
#: ../js/ui/status/bluetooth.js:422 ../js/ui/status/network.js:713
msgid "Bluetooth"
msgstr "Bluetooth"
@ -1432,97 +1437,106 @@ msgid "Bluetooth Settings"
msgstr "Nastavit Bluetooth"
#. TRANSLATORS: this means that bluetooth was disabled by hardware rfkill
#: ../js/ui/status/bluetooth.js:104 ../js/ui/status/network.js:142
#: ../js/ui/status/bluetooth.js:105 ../js/ui/status/network.js:140
msgid "hardware disabled"
msgstr "zařízení zakázáno"
#: ../js/ui/status/bluetooth.js:197
#: ../js/ui/status/bluetooth.js:198
msgid "Connection"
msgstr "Připojení"
#: ../js/ui/status/bluetooth.js:208 ../js/ui/status/network.js:404
#: ../js/ui/status/bluetooth.js:209 ../js/ui/status/network.js:399
msgid "disconnecting..."
msgstr "odpojování…"
#: ../js/ui/status/bluetooth.js:221 ../js/ui/status/network.js:410
#: ../js/ui/status/network.js:1343
#: ../js/ui/status/bluetooth.js:222 ../js/ui/status/network.js:405
#: ../js/ui/status/network.js:1298
msgid "connecting..."
msgstr "připojování…"
#: ../js/ui/status/bluetooth.js:239
#: ../js/ui/status/bluetooth.js:240
msgid "Send Files…"
msgstr "Odeslat soubory…"
#: ../js/ui/status/bluetooth.js:246
#: ../js/ui/status/bluetooth.js:247
msgid "Keyboard Settings"
msgstr "Nastavení klávesnice"
#: ../js/ui/status/bluetooth.js:249
#: ../js/ui/status/bluetooth.js:250
msgid "Mouse Settings"
msgstr "Nastavení myši"
#: ../js/ui/status/bluetooth.js:254 ../js/ui/status/volume.js:316
#: ../js/ui/status/bluetooth.js:255 ../js/ui/status/volume.js:313
msgid "Sound Settings"
msgstr "Nastavení zvuku"
#: ../js/ui/status/bluetooth.js:322
#: ../js/ui/status/bluetooth.js:328 ../js/ui/status/bluetooth.js:356
#, c-format
msgid "Authorization request from %s"
msgstr "Požadavek na autorizaci od %s"
#: ../js/ui/status/bluetooth.js:328
#, c-format
msgid "Device %s wants access to the service '%s'"
msgstr "Zařízení %s požaduje přístup ke službě „%s“"
#: ../js/ui/status/bluetooth.js:330
msgid "Always grant access"
msgstr "Vždy udělovat přístup"
#: ../js/ui/status/bluetooth.js:331
msgid "Grant this time only"
msgstr "Udělit pouze tentokrát"
#: ../js/ui/status/bluetooth.js:332
msgid "Reject"
msgstr "Odmítnout"
#. Translators: argument is the device short name
#: ../js/ui/status/bluetooth.js:359
#, c-format
msgid "Pairing confirmation for %s"
msgstr "Potvrzení spárování pro %s"
#: ../js/ui/status/bluetooth.js:365 ../js/ui/status/bluetooth.js:396
#: ../js/ui/status/bluetooth.js:334 ../js/ui/status/bluetooth.js:399
#: ../js/ui/status/bluetooth.js:430
#, c-format
msgid "Device %s wants to pair with this computer"
msgstr "Zařízení %s se chce spárovat s tímto počítačem"
#: ../js/ui/status/bluetooth.js:336
msgid "Allow"
msgstr "Povolit"
#: ../js/ui/status/bluetooth.js:337
msgid "Deny"
msgstr "Zamítnout"
#: ../js/ui/status/bluetooth.js:362
#, c-format
msgid "Device %s wants access to the service '%s'"
msgstr "Zařízení %s požaduje přístup ke službě „%s“"
#: ../js/ui/status/bluetooth.js:364
msgid "Always grant access"
msgstr "Vždy udělovat přístup"
#: ../js/ui/status/bluetooth.js:365
msgid "Grant this time only"
msgstr "Udělit pouze tentokrát"
#: ../js/ui/status/bluetooth.js:366
msgid "Reject"
msgstr "Odmítnout"
#. Translators: argument is the device short name
#: ../js/ui/status/bluetooth.js:393
#, c-format
msgid "Pairing confirmation for %s"
msgstr "Potvrzení spárování pro %s"
#: ../js/ui/status/bluetooth.js:400
#, c-format
msgid ""
"Please confirm whether the Passkey '%06d' matches the one on the device."
msgstr "Ověřte prosím, zda klíč „%06d“ odpovídá tomu na zařízení."
#. Translators: this is the verb, not the noun
#: ../js/ui/status/bluetooth.js:369
#: ../js/ui/status/bluetooth.js:403
msgid "Matches"
msgstr "Souhlasí"
#: ../js/ui/status/bluetooth.js:370
#: ../js/ui/status/bluetooth.js:404
msgid "Does not match"
msgstr "Nesouhlasí"
#: ../js/ui/status/bluetooth.js:389
#: ../js/ui/status/bluetooth.js:423
#, c-format
msgid "Pairing request for %s"
msgstr "Požadavek na spárování pro %s"
#: ../js/ui/status/bluetooth.js:397
#: ../js/ui/status/bluetooth.js:431
msgid "Please enter the PIN mentioned on the device."
msgstr "Zadejte prosím PIN, který je uveden na zařízení."
#: ../js/ui/status/bluetooth.js:414
#: ../js/ui/status/bluetooth.js:448
msgid "OK"
msgstr "Budiž"
@ -1542,87 +1556,81 @@ msgstr "Hlasitost, síť, baterie"
msgid "<unknown>"
msgstr "<neznámé>"
#: ../js/ui/status/network.js:127
#: ../js/ui/status/network.js:125
msgid "Wi-Fi"
msgstr "Wi-Fi"
#. Translators: this indicates that wireless or wwan is disabled by hardware killswitch
#: ../js/ui/status/network.js:164
#: ../js/ui/status/network.js:162
msgid "disabled"
msgstr "zakázáno"
#. Translators: this is for network devices that are physically present but are not
#. under NetworkManager's control (and thus cannot be used in the menu)
#: ../js/ui/status/network.js:402
#: ../js/ui/status/network.js:397
msgid "unmanaged"
msgstr "nespravováno"
#. Translators: this is for network connections that require some kind of key or password
#: ../js/ui/status/network.js:413 ../js/ui/status/network.js:1346
#: ../js/ui/status/network.js:408 ../js/ui/status/network.js:1301
msgid "authentication required"
msgstr "je vyžadováno ověření"
#. Translators: this is for devices that require some kind of firmware or kernel
#. module, which is missing
#: ../js/ui/status/network.js:423
#: ../js/ui/status/network.js:419
msgid "firmware missing"
msgstr "nedostupný firmware"
#. Translators: this is for wired network devices that are physically disconnected
#: ../js/ui/status/network.js:430
msgid "cable unplugged"
msgstr "kabel byl odpojen"
#. Translators: this is for a network device that cannot be activated (for example it
#. is disabled by rfkill, or it has no coverage
#: ../js/ui/status/network.js:435
#: ../js/ui/status/network.js:423
msgid "unavailable"
msgstr "nedostupné"
#: ../js/ui/status/network.js:437 ../js/ui/status/network.js:1348
#: ../js/ui/status/network.js:425 ../js/ui/status/network.js:1303
msgid "connection failed"
msgstr "připojení selhalo"
#: ../js/ui/status/network.js:490 ../js/ui/status/network.js:1236
#: ../js/ui/status/network.js:1424
#: ../js/ui/status/network.js:478 ../js/ui/status/network.js:1190
msgid "More…"
msgstr "Další…"
#. TRANSLATORS: this is the indication that a connection for another logged in user is active,
#. and we cannot access its settings (including the name)
#: ../js/ui/status/network.js:518 ../js/ui/status/network.js:1191
#: ../js/ui/status/network.js:506 ../js/ui/status/network.js:1142
msgid "Connected (private)"
msgstr "Připojení (soukromé)"
#: ../js/ui/status/network.js:597
#: ../js/ui/status/network.js:572
msgid "Wired"
msgstr "Drátová"
#: ../js/ui/status/network.js:611
#: ../js/ui/status/network.js:592
msgid "Mobile broadband"
msgstr "Mobilní širokopásmová"
#: ../js/ui/status/network.js:1522
#: ../js/ui/status/network.js:1474
msgid "Enable networking"
msgstr "Povolit síť"
#: ../js/ui/status/network.js:1583
#: ../js/ui/status/network.js:1522
msgid "Network Settings"
msgstr "Nastavení sítě"
#: ../js/ui/status/network.js:1600
#: ../js/ui/status/network.js:1539
msgid "Network Manager"
msgstr "Network Manager"
#: ../js/ui/status/network.js:1690
#: ../js/ui/status/network.js:1623
msgid "Connection failed"
msgstr "Připojení selhalo"
#: ../js/ui/status/network.js:1691
#: ../js/ui/status/network.js:1624
msgid "Activation of network connection failed"
msgstr "Aktivace síťového připojení selhala"
#: ../js/ui/status/network.js:2047
#: ../js/ui/status/network.js:1937
msgid "Networking is disabled"
msgstr "Síť je zakázána"
@ -1727,72 +1735,72 @@ msgctxt "device"
msgid "Unknown"
msgstr "Neznámé"
#: ../js/ui/status/volume.js:124
#: ../js/ui/status/volume.js:121
msgid "Volume changed"
msgstr "Hlasitost změněna"
#. Translators: This is the label for audio volume
#: ../js/ui/status/volume.js:249 ../js/ui/status/volume.js:297
#: ../js/ui/status/volume.js:246 ../js/ui/status/volume.js:294
msgid "Volume"
msgstr "Hlasitost"
#: ../js/ui/status/volume.js:258
#: ../js/ui/status/volume.js:255
msgid "Microphone"
msgstr "Mikrofon"
#: ../js/ui/unlockDialog.js:120
#: ../js/ui/unlockDialog.js:119
msgid "Log in as another user"
msgstr "Přihlásit se jako jiný uživatel"
#: ../js/ui/unlockDialog.js:141
#: ../js/ui/unlockDialog.js:140
msgid "Unlock Window"
msgstr "Odemykací okno"
#: ../js/ui/userMenu.js:193
#: ../js/ui/userMenu.js:149
msgid "Available"
msgstr "Přítomen"
#: ../js/ui/userMenu.js:196
#: ../js/ui/userMenu.js:152
msgid "Busy"
msgstr "Zaneprázdněn"
#: ../js/ui/userMenu.js:199
#: ../js/ui/userMenu.js:155
msgid "Invisible"
msgstr "Neviditelný"
#: ../js/ui/userMenu.js:202
#: ../js/ui/userMenu.js:158
msgid "Away"
msgstr "Nepřítomen"
#: ../js/ui/userMenu.js:205
#: ../js/ui/userMenu.js:161
msgid "Idle"
msgstr "Nečinný"
#: ../js/ui/userMenu.js:208
#: ../js/ui/userMenu.js:164
msgid "Offline"
msgstr "Odpojen"
#: ../js/ui/userMenu.js:781
#: ../js/ui/userMenu.js:736
msgid "Notifications"
msgstr "Upozornění"
#: ../js/ui/userMenu.js:797
#: ../js/ui/userMenu.js:749
msgid "Switch User"
msgstr "Přepnout uživatele"
#: ../js/ui/userMenu.js:802
#: ../js/ui/userMenu.js:754
msgid "Log Out"
msgstr "Odhlásit se"
#: ../js/ui/userMenu.js:822
#: ../js/ui/userMenu.js:774
msgid "Install Updates & Restart"
msgstr "Nainstalovat aktualizace a restartovat"
#: ../js/ui/userMenu.js:840
#: ../js/ui/userMenu.js:792
msgid "Your chat status will be set to busy"
msgstr "Váš stav v konverzacích byl nastaven na „Zaneprázdněn“"
#: ../js/ui/userMenu.js:841
#: ../js/ui/userMenu.js:793
msgid ""
"Notifications are now disabled, including chat messages. Your online status "
"has been adjusted to let others know that you might not see their messages."
@ -1800,22 +1808,22 @@ msgstr ""
"Upozornění jsou nyní vypnuta, včetně zpráv v konverzacích. Váš stav on-line "
"byl změněn tak, aby ostatní věděli, že si jejich zprávy nemusíte přečíst."
#: ../js/ui/userMenu.js:888
#: ../js/ui/userMenu.js:834
msgid "Other users are logged in."
msgstr "Jsou přihlášeni jiní uživatelé."
#: ../js/ui/userMenu.js:893
#: ../js/ui/userMenu.js:839
msgid "Shutting down might cause them to lose unsaved work."
msgstr "Vypnutí by mohlo způsobit ztrátu jejich neuložené práce."
#. Translators: Remote here refers to a remote session, like a ssh login
#: ../js/ui/userMenu.js:921
#: ../js/ui/userMenu.js:867
#, c-format
msgid "%s (remote)"
msgstr "%s (vzdálený)"
#. Translators: Console here refers to a tty like a VT console
#: ../js/ui/userMenu.js:924
#: ../js/ui/userMenu.js:870
#, c-format
msgid "%s (console)"
msgstr "%s (konzole)"
@ -1875,19 +1883,19 @@ msgstr[2] "%u vstupů"
msgid "System Sounds"
msgstr "Systémové zvuky"
#: ../src/main.c:372
#: ../src/main.c:353
msgid "Print version"
msgstr "Vypsat verzi"
#: ../src/main.c:378
#: ../src/main.c:359
msgid "Mode used by GDM for login screen"
msgstr "Režim použitý GDM pro přihlašovací obrazovku"
#: ../src/main.c:384
#: ../src/main.c:365
msgid "Use a specific mode, e.g. \"gdm\" for login screen"
msgstr "Použít pro přihlašovací obrazovku určitý mód, např. „gdm“."
#: ../src/main.c:390
#: ../src/main.c:371
msgid "List possible modes"
msgstr "Vypsat možné režimy"

388
po/es.po
View File

@ -10,8 +10,8 @@ msgstr ""
"Project-Id-Version: gnome-shell.master\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2013-05-25 08:18+0000\n"
"PO-Revision-Date: 2013-05-27 13:23+0200\n"
"POT-Creation-Date: 2013-06-26 18:42+0000\n"
"PO-Revision-Date: 2013-06-27 12:33+0200\n"
"Last-Translator: Daniel Mustieles <daniel.mustieles@gmail.com>\n"
"Language-Team: Español <gnome-es-list@gnome.org>\n"
"Language: \n"
@ -369,37 +369,43 @@ msgid "Select an extension to configure using the combobox above."
msgstr ""
"Seleccione una extensión que configurar usando la caja combinada de arriba."
#: ../js/gdm/loginDialog.js:371
msgid "Session"
msgstr "Sesión…"
#: ../js/gdm/loginDialog.js:302
#| msgid "Switch Session"
msgid "Choose Session"
msgstr "Elegir sesión"
#: ../js/gdm/loginDialog.js:320
#| msgid "Session…"
msgid "Session"
msgstr "Sesión"
#. translators: this message is shown below the user list on the
#. login screen. It can be activated to reveal an entry for
#. manually entering the username.
#: ../js/gdm/loginDialog.js:601
#: ../js/gdm/loginDialog.js:522
msgid "Not listed?"
msgstr "¿No está en la lista?"
#: ../js/gdm/loginDialog.js:776 ../js/ui/components/networkAgent.js:137
#: ../js/gdm/loginDialog.js:739 ../js/ui/components/networkAgent.js:137
#: ../js/ui/components/polkitAgent.js:161 ../js/ui/endSessionDialog.js:376
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
#: ../js/ui/status/bluetooth.js:415 ../js/ui/unlockDialog.js:96
#: ../js/ui/userMenu.js:938
#: ../js/ui/status/bluetooth.js:449 ../js/ui/unlockDialog.js:95
#: ../js/ui/userMenu.js:884
msgid "Cancel"
msgstr "Cancelar"
#: ../js/gdm/loginDialog.js:791
#: ../js/gdm/loginDialog.js:768
msgctxt "button"
msgid "Sign In"
msgstr "Iniciar sesión"
#: ../js/gdm/loginDialog.js:791
#: ../js/gdm/loginDialog.js:768
msgid "Next"
msgstr "Siguiente"
#. Translators: this message is shown below the username entry field
#. to clue the user in on how to login to the local network realm
#: ../js/gdm/loginDialog.js:888
#: ../js/gdm/loginDialog.js:869
#, c-format
msgid "(e.g., user or %s)"
msgstr "(ej., usuario o %s)"
@ -407,12 +413,12 @@ msgstr "(ej., usuario o %s)"
#. TTLS and PEAP are actually much more complicated, but this complication
#. is not visible here since we only care about phase2 authentication
#. (and don't even care of which one)
#: ../js/gdm/loginDialog.js:892 ../js/ui/components/networkAgent.js:260
#: ../js/gdm/loginDialog.js:873 ../js/ui/components/networkAgent.js:260
#: ../js/ui/components/networkAgent.js:278
msgid "Username: "
msgstr "Nombre de usuario:"
#: ../js/gdm/loginDialog.js:1158
#: ../js/gdm/loginDialog.js:1140
msgid "Login Window"
msgstr "Ventana de inicio de sesión"
@ -421,8 +427,8 @@ msgstr "Ventana de inicio de sesión"
msgid "Power"
msgstr "Energía"
#: ../js/gdm/powerMenu.js:93 ../js/ui/userMenu.js:696 ../js/ui/userMenu.js:700
#: ../js/ui/userMenu.js:816
#: ../js/gdm/powerMenu.js:93 ../js/ui/userMenu.js:651 ../js/ui/userMenu.js:655
#: ../js/ui/userMenu.js:768
msgid "Suspend"
msgstr "Suspender"
@ -430,18 +436,18 @@ msgstr "Suspender"
msgid "Restart"
msgstr "Reiniciar"
#: ../js/gdm/powerMenu.js:103 ../js/ui/userMenu.js:698
#: ../js/ui/userMenu.js:700 ../js/ui/userMenu.js:815 ../js/ui/userMenu.js:942
#: ../js/gdm/powerMenu.js:103 ../js/ui/userMenu.js:653
#: ../js/ui/userMenu.js:655 ../js/ui/userMenu.js:767 ../js/ui/userMenu.js:888
msgid "Power Off"
msgstr "Apagar"
#: ../js/gdm/util.js:247
#: ../js/gdm/util.js:248
msgid "Authentication error"
msgstr "Error de autenticación"
#. Translators: this message is shown below the password entry field
#. to indicate the user can swipe their finger instead
#: ../js/gdm/util.js:364
#: ../js/gdm/util.js:365
msgid "(or swipe finger)"
msgstr "(o pase el dedo)"
@ -460,23 +466,23 @@ msgstr "No se pudo analizar el comando:"
msgid "Execution of '%s' failed:"
msgstr "Falló la ejecución de «%s»:"
#: ../js/ui/appDisplay.js:361
#: ../js/ui/appDisplay.js:397
msgid "Frequent"
msgstr "Frecuentes"
#: ../js/ui/appDisplay.js:368
#: ../js/ui/appDisplay.js:404
msgid "All"
msgstr "Todas"
#: ../js/ui/appDisplay.js:960
#: ../js/ui/appDisplay.js:996
msgid "New Window"
msgstr "Ventana nueva"
#: ../js/ui/appDisplay.js:963 ../js/ui/dash.js:284
#: ../js/ui/appDisplay.js:999 ../js/ui/dash.js:284
msgid "Remove from Favorites"
msgstr "Quitar de los favoritos"
#: ../js/ui/appDisplay.js:964
#: ../js/ui/appDisplay.js:1000
msgid "Add to Favorites"
msgstr "Añadir a los favoritos"
@ -490,7 +496,7 @@ msgstr "Se ha añadido %s a sus favoritos."
msgid "%s has been removed from your favorites."
msgstr "Se ha quitado %s de sus favoritos."
#: ../js/ui/backgroundMenu.js:19 ../js/ui/userMenu.js:789
#: ../js/ui/backgroundMenu.js:19 ../js/ui/userMenu.js:744
msgid "Settings"
msgstr "Configuración"
@ -615,35 +621,35 @@ msgid "S"
msgstr "S"
#. Translators: Text to show if there are no events
#: ../js/ui/calendar.js:735
#: ../js/ui/calendar.js:750
msgid "Nothing Scheduled"
msgstr "Nada programado"
#. Translators: Shown on calendar heading when selected day occurs on current year
#: ../js/ui/calendar.js:751
#: ../js/ui/calendar.js:768
msgctxt "calendar heading"
msgid "%A, %B %d"
msgstr "%A, %d de %B"
#. Translators: Shown on calendar heading when selected day occurs on different year
#: ../js/ui/calendar.js:754
#: ../js/ui/calendar.js:771
msgctxt "calendar heading"
msgid "%A, %B %d, %Y"
msgstr "%A, %d de %B de %Y"
#: ../js/ui/calendar.js:764
#: ../js/ui/calendar.js:782
msgid "Today"
msgstr "Hoy"
#: ../js/ui/calendar.js:768
#: ../js/ui/calendar.js:786
msgid "Tomorrow"
msgstr "Mañana"
#: ../js/ui/calendar.js:779
#: ../js/ui/calendar.js:797
msgid "This week"
msgstr "Esta semana"
#: ../js/ui/calendar.js:787
#: ../js/ui/calendar.js:805
msgid "Next week"
msgstr "La semana que viene"
@ -832,14 +838,14 @@ msgstr "<b>%d</b> de <b>%B</b> <b>%Y</b>, <b>%H:%M</b> "
#. Translators: this is the other person changing their old IM name to their new
#. IM name.
#: ../js/ui/components/telepathyClient.js:985
#: ../js/ui/components/telepathyClient.js:986
#, c-format
msgid "%s is now known as %s"
msgstr "Ahora %s se llama %s"
#. translators: argument is a room name like
#. * room@jabber.org for example.
#: ../js/ui/components/telepathyClient.js:1088
#: ../js/ui/components/telepathyClient.js:1089
#, c-format
msgid "Invitation to %s"
msgstr "Invitación a %s"
@ -847,38 +853,38 @@ msgstr "Invitación a %s"
#. translators: first argument is the name of a contact and the second
#. * one the name of a room. "Alice is inviting you to join room@jabber.org
#. * for example.
#: ../js/ui/components/telepathyClient.js:1096
#: ../js/ui/components/telepathyClient.js:1097
#, c-format
msgid "%s is inviting you to join %s"
msgstr "%s le está invitando a unirse a %s"
#: ../js/ui/components/telepathyClient.js:1098
#: ../js/ui/components/telepathyClient.js:1137
#: ../js/ui/components/telepathyClient.js:1177
#: ../js/ui/components/telepathyClient.js:1240
#: ../js/ui/components/telepathyClient.js:1099
#: ../js/ui/components/telepathyClient.js:1138
#: ../js/ui/components/telepathyClient.js:1178
#: ../js/ui/components/telepathyClient.js:1241
msgid "Decline"
msgstr "Rechazar"
#: ../js/ui/components/telepathyClient.js:1099
#: ../js/ui/components/telepathyClient.js:1178
#: ../js/ui/components/telepathyClient.js:1241
#: ../js/ui/components/telepathyClient.js:1100
#: ../js/ui/components/telepathyClient.js:1179
#: ../js/ui/components/telepathyClient.js:1242
msgid "Accept"
msgstr "Aceptar"
#. translators: argument is a contact name like Alice for example.
#: ../js/ui/components/telepathyClient.js:1129
#: ../js/ui/components/telepathyClient.js:1130
#, c-format
msgid "Video call from %s"
msgstr "Videollamada de %s"
#. translators: argument is a contact name like Alice for example.
#: ../js/ui/components/telepathyClient.js:1132
#: ../js/ui/components/telepathyClient.js:1133
#, c-format
msgid "Call from %s"
msgstr "Llamada de %s"
#. translators: this is a button label (verb), not a noun
#: ../js/ui/components/telepathyClient.js:1139
#: ../js/ui/components/telepathyClient.js:1140
msgid "Answer"
msgstr "Responder"
@ -887,112 +893,112 @@ msgstr "Responder"
#. * file name. The string will be something
#. * like: "Alice is sending you test.ogg"
#.
#: ../js/ui/components/telepathyClient.js:1171
#: ../js/ui/components/telepathyClient.js:1172
#, c-format
msgid "%s is sending you %s"
msgstr "%s le está enviando %s"
#. To translators: The parameter is the contact's alias
#: ../js/ui/components/telepathyClient.js:1206
#: ../js/ui/components/telepathyClient.js:1207
#, c-format
msgid "%s would like permission to see when you are online"
msgstr "%s solicita permiso para ver cuándo está en línea"
#: ../js/ui/components/telepathyClient.js:1298
#: ../js/ui/components/telepathyClient.js:1299
msgid "Network error"
msgstr "Error de la red"
#: ../js/ui/components/telepathyClient.js:1300
#: ../js/ui/components/telepathyClient.js:1301
msgid "Authentication failed"
msgstr "Falló la autenticación"
#: ../js/ui/components/telepathyClient.js:1302
#: ../js/ui/components/telepathyClient.js:1303
msgid "Encryption error"
msgstr "Error de cifrado"
#: ../js/ui/components/telepathyClient.js:1304
#: ../js/ui/components/telepathyClient.js:1305
msgid "Certificate not provided"
msgstr "Certificado no proporcionado"
#: ../js/ui/components/telepathyClient.js:1306
#: ../js/ui/components/telepathyClient.js:1307
msgid "Certificate untrusted"
msgstr "No se confía en el certificado"
#: ../js/ui/components/telepathyClient.js:1308
#: ../js/ui/components/telepathyClient.js:1309
msgid "Certificate expired"
msgstr "Certificado caducado"
#: ../js/ui/components/telepathyClient.js:1310
#: ../js/ui/components/telepathyClient.js:1311
msgid "Certificate not activated"
msgstr "Certificado no activado"
#: ../js/ui/components/telepathyClient.js:1312
#: ../js/ui/components/telepathyClient.js:1313
msgid "Certificate hostname mismatch"
msgstr "El nombre del servidor dle certificado no coincide"
#: ../js/ui/components/telepathyClient.js:1314
#: ../js/ui/components/telepathyClient.js:1315
msgid "Certificate fingerprint mismatch"
msgstr "La huella del certificado no coincide"
#: ../js/ui/components/telepathyClient.js:1316
#: ../js/ui/components/telepathyClient.js:1317
msgid "Certificate self-signed"
msgstr "Certificado autofirmado"
#: ../js/ui/components/telepathyClient.js:1318
#: ../js/ui/components/telepathyClient.js:1319
msgid "Status is set to offline"
msgstr "El estado está establecido a «desconectado»"
#: ../js/ui/components/telepathyClient.js:1320
#: ../js/ui/components/telepathyClient.js:1321
msgid "Encryption is not available"
msgstr "El cifrado no está disponible"
#: ../js/ui/components/telepathyClient.js:1322
#: ../js/ui/components/telepathyClient.js:1323
msgid "Certificate is invalid"
msgstr "El certificado no es válido"
#: ../js/ui/components/telepathyClient.js:1324
#: ../js/ui/components/telepathyClient.js:1325
msgid "Connection has been refused"
msgstr "Se ha rechazado la conexión"
#: ../js/ui/components/telepathyClient.js:1326
#: ../js/ui/components/telepathyClient.js:1327
msgid "Connection can't be established"
msgstr "No se puede establecer la conexión"
#: ../js/ui/components/telepathyClient.js:1328
#: ../js/ui/components/telepathyClient.js:1329
msgid "Connection has been lost"
msgstr "Se ha perdido la conexión"
#: ../js/ui/components/telepathyClient.js:1330
#: ../js/ui/components/telepathyClient.js:1331
msgid "This account is already connected to the server"
msgstr "Esta cuenta ya está conectada al servidor"
#: ../js/ui/components/telepathyClient.js:1332
#: ../js/ui/components/telepathyClient.js:1333
msgid ""
"Connection has been replaced by a new connection using the same resource"
msgstr ""
"Se ha sustituido la conexión por una nueva conexión usando el mismo recurso"
#: ../js/ui/components/telepathyClient.js:1334
#: ../js/ui/components/telepathyClient.js:1335
msgid "The account already exists on the server"
msgstr "La cuenta ya existe en el servidor"
#: ../js/ui/components/telepathyClient.js:1336
#: ../js/ui/components/telepathyClient.js:1337
msgid "Server is currently too busy to handle the connection"
msgstr ""
"Actualmente el servidor está muy ocupado intentando gestionar la conexión"
#: ../js/ui/components/telepathyClient.js:1338
#: ../js/ui/components/telepathyClient.js:1339
msgid "Certificate has been revoked"
msgstr "Se ha revocado el certificado"
#: ../js/ui/components/telepathyClient.js:1340
#: ../js/ui/components/telepathyClient.js:1341
msgid ""
"Certificate uses an insecure cipher algorithm or is cryptographically weak"
msgstr ""
"El certificado usa un algoritmo de cifrado inseguro o es criptográficamente "
"débil"
#: ../js/ui/components/telepathyClient.js:1342
#: ../js/ui/components/telepathyClient.js:1343
msgid ""
"The length of the server certificate, or the depth of the server certificate "
"chain, exceed the limits imposed by the cryptography library"
@ -1001,22 +1007,22 @@ msgstr ""
"certificado del servidor exceden los límites impuestos por la biblioteca de "
"criptografía"
#: ../js/ui/components/telepathyClient.js:1344
#: ../js/ui/components/telepathyClient.js:1345
msgid "Internal error"
msgstr "Error interno"
#. translators: argument is the account name, like
#. * name@jabber.org for example.
#: ../js/ui/components/telepathyClient.js:1354
#: ../js/ui/components/telepathyClient.js:1355
#, c-format
msgid "Unable to connect to %s"
msgstr "No se pudo conectar a %s"
#: ../js/ui/components/telepathyClient.js:1359
#: ../js/ui/components/telepathyClient.js:1360
msgid "View account"
msgstr "Ver cuenta"
#: ../js/ui/components/telepathyClient.js:1398
#: ../js/ui/components/telepathyClient.js:1399
msgid "Unknown reason"
msgstr "Razón desconocida"
@ -1030,26 +1036,26 @@ msgstr "Mostrar aplicaciones"
#. Translators: this is the name of the dock/favorites area on
#. the left of the overview
#: ../js/ui/dash.js:435
#: ../js/ui/dash.js:439
msgid "Dash"
msgstr "Tablero"
#: ../js/ui/dateMenu.js:86
#: ../js/ui/dateMenu.js:85
msgid "Open Calendar"
msgstr "Abrir calendario"
#: ../js/ui/dateMenu.js:90
#: ../js/ui/dateMenu.js:89
msgid "Open Clocks"
msgstr "Abrir Relojes"
#: ../js/ui/dateMenu.js:97
#: ../js/ui/dateMenu.js:96
msgid "Date & Time Settings"
msgstr "Configuración de hora y fecha"
#. Translators: This is the date format to use when the calendar popup is
#. * shown - it is shown just below the time in the shell (e.g. "Tue 9:29 AM").
#.
#: ../js/ui/dateMenu.js:208
#: ../js/ui/dateMenu.js:201
msgid "%A %B %e, %Y"
msgstr "%A, %e de %B de %Y"
@ -1153,7 +1159,7 @@ msgstr "Instalar"
msgid "Download and install '%s' from extensions.gnome.org?"
msgstr "¿Descargar e instalar «%s» desde extensions.gnome.org?"
#: ../js/ui/keyboard.js:619 ../js/ui/status/keyboard.js:314
#: ../js/ui/keyboard.js:619 ../js/ui/status/keyboard.js:333
#: ../js/ui/status/power.js:211
msgid "Keyboard"
msgstr "Teclado"
@ -1222,15 +1228,15 @@ msgstr "Limpiar mensajes"
msgid "Notification Settings"
msgstr "Configuración de las notificaciones"
#: ../js/ui/messageTray.js:1707
#: ../js/ui/messageTray.js:1711
msgid "No Messages"
msgstr "No hay mensajes"
#: ../js/ui/messageTray.js:1780
#: ../js/ui/messageTray.js:1784
msgid "Message Tray"
msgstr "Bandeja de mensajes"
#: ../js/ui/messageTray.js:2800
#: ../js/ui/messageTray.js:2811
msgid "System Information"
msgstr "Información del sistema"
@ -1239,7 +1245,7 @@ msgctxt "program"
msgid "Unknown"
msgstr "Desconocido"
#: ../js/ui/overviewControls.js:472 ../js/ui/screenShield.js:150
#: ../js/ui/overviewControls.js:474 ../js/ui/screenShield.js:150
#, c-format
msgid "%d new message"
msgid_plural "%d new messages"
@ -1262,17 +1268,17 @@ msgstr "Vista general"
msgid "Type to search…"
msgstr "Escribir para buscar…"
#: ../js/ui/panel.js:642
#: ../js/ui/panel.js:567
msgid "Quit"
msgstr "Salir"
#. Translators: If there is no suitable word for "Activities"
#. in your language, you can use the word for "Overview".
#: ../js/ui/panel.js:693
#: ../js/ui/panel.js:618
msgid "Activities"
msgstr "Actividades"
#: ../js/ui/panel.js:989
#: ../js/ui/panel.js:914
msgid "Top Bar"
msgstr "Barra superior"
@ -1281,7 +1287,7 @@ msgstr "Barra superior"
#. "ON" and "OFF") or "toggle-switch-intl" (for toggle
#. switches containing "◯" and "|"). Other values will
#. simply result in invisible toggle switches.
#: ../js/ui/popupMenu.js:738
#: ../js/ui/popupMenu.js:549
msgid "toggle-switch-us"
msgstr "toggle-switch-intl"
@ -1306,7 +1312,7 @@ msgid_plural "%d new notifications"
msgstr[0] "%d notificación nueva"
msgstr[1] "%d notificaciones nuevas"
#: ../js/ui/screenShield.js:449 ../js/ui/userMenu.js:807
#: ../js/ui/screenShield.js:449 ../js/ui/userMenu.js:759
msgid "Lock"
msgstr "Bloquear"
@ -1329,11 +1335,11 @@ msgstr "No se pudo bloquear"
msgid "Lock was blocked by an application"
msgstr "Una aplicación impidió el bloqueo"
#: ../js/ui/searchDisplay.js:453
#: ../js/ui/searchDisplay.js:445
msgid "Searching…"
msgstr "Buscando…"
#: ../js/ui/searchDisplay.js:497
#: ../js/ui/searchDisplay.js:489
msgid "No results."
msgstr "No se encontraron resultados."
@ -1361,7 +1367,7 @@ msgstr "Contraseña"
msgid "Remember Password"
msgstr "Recordar contraseña"
#: ../js/ui/shellMountOperation.js:403 ../js/ui/unlockDialog.js:109
#: ../js/ui/shellMountOperation.js:403 ../js/ui/unlockDialog.js:108
msgid "Unlock"
msgstr "Desbloquear"
@ -1414,9 +1420,9 @@ msgid "Large Text"
msgstr "Texto grande"
#: ../js/ui/status/bluetooth.js:28 ../js/ui/status/bluetooth.js:32
#: ../js/ui/status/bluetooth.js:289 ../js/ui/status/bluetooth.js:321
#: ../js/ui/status/bluetooth.js:357 ../js/ui/status/bluetooth.js:388
#: ../js/ui/status/network.js:739
#: ../js/ui/status/bluetooth.js:290 ../js/ui/status/bluetooth.js:327
#: ../js/ui/status/bluetooth.js:355 ../js/ui/status/bluetooth.js:391
#: ../js/ui/status/bluetooth.js:422 ../js/ui/status/network.js:713
msgid "Bluetooth"
msgstr "Bluetooth"
@ -1437,107 +1443,115 @@ msgid "Bluetooth Settings"
msgstr "Configuración de Bluetooth"
#. TRANSLATORS: this means that bluetooth was disabled by hardware rfkill
#: ../js/ui/status/bluetooth.js:104 ../js/ui/status/network.js:142
#: ../js/ui/status/bluetooth.js:105 ../js/ui/status/network.js:140
msgid "hardware disabled"
msgstr "hardware desactivado"
#: ../js/ui/status/bluetooth.js:197
#: ../js/ui/status/bluetooth.js:198
msgid "Connection"
msgstr "Conexión"
#: ../js/ui/status/bluetooth.js:208 ../js/ui/status/network.js:404
#: ../js/ui/status/bluetooth.js:209 ../js/ui/status/network.js:399
msgid "disconnecting..."
msgstr "deconectando…"
#: ../js/ui/status/bluetooth.js:221 ../js/ui/status/network.js:410
#: ../js/ui/status/network.js:1343
#: ../js/ui/status/bluetooth.js:222 ../js/ui/status/network.js:405
#: ../js/ui/status/network.js:1298
msgid "connecting..."
msgstr "conectando…"
#: ../js/ui/status/bluetooth.js:239
#: ../js/ui/status/bluetooth.js:240
msgid "Send Files…"
msgstr "Enviar archivos…"
#: ../js/ui/status/bluetooth.js:246
#: ../js/ui/status/bluetooth.js:247
msgid "Keyboard Settings"
msgstr "Configuración del teclado"
#: ../js/ui/status/bluetooth.js:249
#: ../js/ui/status/bluetooth.js:250
msgid "Mouse Settings"
msgstr "Configuración del ratón…"
#: ../js/ui/status/bluetooth.js:254 ../js/ui/status/volume.js:316
#: ../js/ui/status/bluetooth.js:255 ../js/ui/status/volume.js:313
msgid "Sound Settings"
msgstr "Configuración del sonido"
#: ../js/ui/status/bluetooth.js:322
#: ../js/ui/status/bluetooth.js:328 ../js/ui/status/bluetooth.js:356
#, c-format
msgid "Authorization request from %s"
msgstr "Solicitud de autorización de %s"
#: ../js/ui/status/bluetooth.js:328
#, c-format
msgid "Device %s wants access to the service '%s'"
msgstr "El dispositivo %s quiere acceder al servicio «%s»"
#: ../js/ui/status/bluetooth.js:330
msgid "Always grant access"
msgstr "Conceder acceso siempre"
#: ../js/ui/status/bluetooth.js:331
msgid "Grant this time only"
msgstr "Conceder sólo esta vez"
#: ../js/ui/status/bluetooth.js:332
msgid "Reject"
msgstr "Rechazar"
#. Translators: argument is the device short name
#: ../js/ui/status/bluetooth.js:359
#, c-format
msgid "Pairing confirmation for %s"
msgstr "Confirmación de emparejamiento para «%s»"
#: ../js/ui/status/bluetooth.js:365 ../js/ui/status/bluetooth.js:396
#: ../js/ui/status/bluetooth.js:334 ../js/ui/status/bluetooth.js:399
#: ../js/ui/status/bluetooth.js:430
#, c-format
msgid "Device %s wants to pair with this computer"
msgstr "El dispositivo «%s» quiere emparejarse con este equipo"
#: ../js/ui/status/bluetooth.js:366
#: ../js/ui/status/bluetooth.js:336
msgid "Allow"
msgstr "Permitir"
#: ../js/ui/status/bluetooth.js:337
msgid "Deny"
msgstr "Denegar"
#: ../js/ui/status/bluetooth.js:362
#, c-format
msgid "Device %s wants access to the service '%s'"
msgstr "El dispositivo %s quiere acceder al servicio «%s»"
#: ../js/ui/status/bluetooth.js:364
msgid "Always grant access"
msgstr "Conceder acceso siempre"
#: ../js/ui/status/bluetooth.js:365
msgid "Grant this time only"
msgstr "Conceder sólo esta vez"
#: ../js/ui/status/bluetooth.js:366
msgid "Reject"
msgstr "Rechazar"
#. Translators: argument is the device short name
#: ../js/ui/status/bluetooth.js:393
#, c-format
msgid "Pairing confirmation for %s"
msgstr "Confirmación de emparejamiento para «%s»"
#: ../js/ui/status/bluetooth.js:400
#, c-format
#| msgid "Please confirm whether the PIN '%06d' matches the one on the device."
msgid ""
"Please confirm whether the Passkey '%06d' matches the one on the device."
msgstr ""
"Confirme que la clave mostrada en «%06d» coincide con la del dispositivo."
#. Translators: this is the verb, not the noun
#: ../js/ui/status/bluetooth.js:369
#: ../js/ui/status/bluetooth.js:403
msgid "Matches"
msgstr "Coincide"
#: ../js/ui/status/bluetooth.js:370
#: ../js/ui/status/bluetooth.js:404
msgid "Does not match"
msgstr "No coincide"
#: ../js/ui/status/bluetooth.js:389
#: ../js/ui/status/bluetooth.js:423
#, c-format
msgid "Pairing request for %s"
msgstr "Solicitud de emparejamiento para «%s»"
#: ../js/ui/status/bluetooth.js:397
#: ../js/ui/status/bluetooth.js:431
msgid "Please enter the PIN mentioned on the device."
msgstr "Introduzca el PIN mencionado en el dispositivo."
#: ../js/ui/status/bluetooth.js:414
#: ../js/ui/status/bluetooth.js:448
msgid "OK"
msgstr "Aceptar"
#: ../js/ui/status/keyboard.js:368
#: ../js/ui/status/keyboard.js:396
msgid "Show Keyboard Layout"
msgstr "Mostrar la distribución del teclado"
#: ../js/ui/status/keyboard.js:373
#: ../js/ui/status/keyboard.js:401
msgid "Region & Language Settings"
msgstr "Configuración de región e idioma"
@ -1549,87 +1563,81 @@ msgstr "Volumen, red, batería"
msgid "<unknown>"
msgstr "<desconocido>"
#: ../js/ui/status/network.js:127
#: ../js/ui/status/network.js:125
msgid "Wi-Fi"
msgstr "Wi-Fi"
#. Translators: this indicates that wireless or wwan is disabled by hardware killswitch
#: ../js/ui/status/network.js:164
#: ../js/ui/status/network.js:162
msgid "disabled"
msgstr "desactivada"
#. Translators: this is for network devices that are physically present but are not
#. under NetworkManager's control (and thus cannot be used in the menu)
#: ../js/ui/status/network.js:402
#: ../js/ui/status/network.js:397
msgid "unmanaged"
msgstr "no gestionada"
#. Translators: this is for network connections that require some kind of key or password
#: ../js/ui/status/network.js:413 ../js/ui/status/network.js:1346
#: ../js/ui/status/network.js:408 ../js/ui/status/network.js:1301
msgid "authentication required"
msgstr "se necesita autenticación"
#. Translators: this is for devices that require some kind of firmware or kernel
#. module, which is missing
#: ../js/ui/status/network.js:423
#: ../js/ui/status/network.js:419
msgid "firmware missing"
msgstr "falta el «firmware»"
#. Translators: this is for wired network devices that are physically disconnected
#: ../js/ui/status/network.js:430
msgid "cable unplugged"
msgstr "cable desconectado"
#. Translators: this is for a network device that cannot be activated (for example it
#. is disabled by rfkill, or it has no coverage
#: ../js/ui/status/network.js:435
#: ../js/ui/status/network.js:423
msgid "unavailable"
msgstr "no disponible"
#: ../js/ui/status/network.js:437 ../js/ui/status/network.js:1348
#: ../js/ui/status/network.js:425 ../js/ui/status/network.js:1303
msgid "connection failed"
msgstr "falló la conexión"
#: ../js/ui/status/network.js:490 ../js/ui/status/network.js:1236
#: ../js/ui/status/network.js:1424
#: ../js/ui/status/network.js:478 ../js/ui/status/network.js:1190
msgid "More…"
msgstr "Más…"
#. TRANSLATORS: this is the indication that a connection for another logged in user is active,
#. and we cannot access its settings (including the name)
#: ../js/ui/status/network.js:518 ../js/ui/status/network.js:1191
#: ../js/ui/status/network.js:506 ../js/ui/status/network.js:1142
msgid "Connected (private)"
msgstr "Conectada (privada)"
#: ../js/ui/status/network.js:597
#: ../js/ui/status/network.js:572
msgid "Wired"
msgstr "Cableada"
#: ../js/ui/status/network.js:611
#: ../js/ui/status/network.js:592
msgid "Mobile broadband"
msgstr "Banda ancha móvil"
#: ../js/ui/status/network.js:1522
#: ../js/ui/status/network.js:1474
msgid "Enable networking"
msgstr "Activar red"
#: ../js/ui/status/network.js:1583
#: ../js/ui/status/network.js:1522
msgid "Network Settings"
msgstr "Configuración de la red"
#: ../js/ui/status/network.js:1600
#: ../js/ui/status/network.js:1539
msgid "Network Manager"
msgstr "Gestor de la red"
#: ../js/ui/status/network.js:1690
#: ../js/ui/status/network.js:1623
msgid "Connection failed"
msgstr "Falló la conexión"
#: ../js/ui/status/network.js:1691
#: ../js/ui/status/network.js:1624
msgid "Activation of network connection failed"
msgstr "Falló la activación de la conexión de red"
#: ../js/ui/status/network.js:2047
#: ../js/ui/status/network.js:1937
msgid "Networking is disabled"
msgstr "La red está desactivada"
@ -1730,72 +1738,72 @@ msgctxt "device"
msgid "Unknown"
msgstr "Desconocido"
#: ../js/ui/status/volume.js:124
#: ../js/ui/status/volume.js:121
msgid "Volume changed"
msgstr "Volumen modificado"
#. Translators: This is the label for audio volume
#: ../js/ui/status/volume.js:249 ../js/ui/status/volume.js:297
#: ../js/ui/status/volume.js:246 ../js/ui/status/volume.js:294
msgid "Volume"
msgstr "Volumen"
#: ../js/ui/status/volume.js:258
#: ../js/ui/status/volume.js:255
msgid "Microphone"
msgstr "Micrófono"
#: ../js/ui/unlockDialog.js:120
#: ../js/ui/unlockDialog.js:119
msgid "Log in as another user"
msgstr "Iniciar sesión como otro usuario"
#: ../js/ui/unlockDialog.js:141
#: ../js/ui/unlockDialog.js:140
msgid "Unlock Window"
msgstr "Desbloquear ventana"
#: ../js/ui/userMenu.js:193
#: ../js/ui/userMenu.js:149
msgid "Available"
msgstr "Disponible"
#: ../js/ui/userMenu.js:196
#: ../js/ui/userMenu.js:152
msgid "Busy"
msgstr "Ocupado"
#: ../js/ui/userMenu.js:199
#: ../js/ui/userMenu.js:155
msgid "Invisible"
msgstr "Invisible"
#: ../js/ui/userMenu.js:202
#: ../js/ui/userMenu.js:158
msgid "Away"
msgstr "Ausente"
#: ../js/ui/userMenu.js:205
#: ../js/ui/userMenu.js:161
msgid "Idle"
msgstr "Inactivo"
#: ../js/ui/userMenu.js:208
#: ../js/ui/userMenu.js:164
msgid "Offline"
msgstr "Desconectado"
#: ../js/ui/userMenu.js:781
#: ../js/ui/userMenu.js:736
msgid "Notifications"
msgstr "Notificaciones"
#: ../js/ui/userMenu.js:797
#: ../js/ui/userMenu.js:749
msgid "Switch User"
msgstr "Cambiar de usuario"
#: ../js/ui/userMenu.js:802
#: ../js/ui/userMenu.js:754
msgid "Log Out"
msgstr "Cerrar la sesión"
#: ../js/ui/userMenu.js:822
#: ../js/ui/userMenu.js:774
msgid "Install Updates & Restart"
msgstr "Instalar actualizaciones y reiniciar"
#: ../js/ui/userMenu.js:840
#: ../js/ui/userMenu.js:792
msgid "Your chat status will be set to busy"
msgstr "Su estado del chat se establecerá a «ocupado»"
#: ../js/ui/userMenu.js:841
#: ../js/ui/userMenu.js:793
msgid ""
"Notifications are now disabled, including chat messages. Your online status "
"has been adjusted to let others know that you might not see their messages."
@ -1804,22 +1812,22 @@ msgstr ""
"chat. Su estado en línea se ha ajustado para que otros sepan que puede no "
"leer sus mensajes."
#: ../js/ui/userMenu.js:888
#: ../js/ui/userMenu.js:834
msgid "Other users are logged in."
msgstr "Hay otros usuarios con la sesión iniciada"
#: ../js/ui/userMenu.js:893
#: ../js/ui/userMenu.js:839
msgid "Shutting down might cause them to lose unsaved work."
msgstr "Apagar puede hacer que pierdan el trabajo que no hayan guardado."
#. Translators: Remote here refers to a remote session, like a ssh login
#: ../js/ui/userMenu.js:921
#: ../js/ui/userMenu.js:867
#, c-format
msgid "%s (remote)"
msgstr "%s (remoto)"
#. Translators: Console here refers to a tty like a VT console
#: ../js/ui/userMenu.js:924
#: ../js/ui/userMenu.js:870
#, c-format
msgid "%s (console)"
msgstr "%s (consola)"
@ -1877,21 +1885,21 @@ msgstr[1] "%u entradas"
msgid "System Sounds"
msgstr "Sonidos del sistema"
#: ../src/main.c:372
#: ../src/main.c:353
msgid "Print version"
msgstr "Imprimir versión"
#: ../src/main.c:378
#: ../src/main.c:359
msgid "Mode used by GDM for login screen"
msgstr "Modo usado por GDM para la pantalla de inicio"
#: ../src/main.c:384
#: ../src/main.c:365
msgid "Use a specific mode, e.g. \"gdm\" for login screen"
msgstr ""
"Usar un modo específico, por ejemplo, «gdm» para la pantalla de inicio de "
"sesión"
#: ../src/main.c:390
#: ../src/main.c:371
msgid "List possible modes"
msgstr "Listar los modos posibles"
@ -1912,6 +1920,9 @@ msgstr "La contraseña no puede estar vacía"
msgid "Authentication dialog was dismissed by the user"
msgstr "El usuario rechazó el diálogo de autenticación"
#~ msgid "cable unplugged"
#~ msgstr "cable desconectado"
#~ msgid "Whether to collect stats about applications usage"
#~ msgstr ""
#~ "Indica si se deben recolectar estadísticas acerca del uso de las "
@ -2028,9 +2039,6 @@ msgstr "El usuario rechazó el diálogo de autenticación"
#~ msgid "System Settings"
#~ msgstr "Configuración del sistema"
#~ msgid "Switch Session"
#~ msgstr "Cambiar de sesión"
#~ msgid "disabled OpenSearch providers"
#~ msgstr "proveedores OpenSearch desactivados"

369
po/gl.po
View File

@ -11,8 +11,8 @@ msgid ""
msgstr ""
"Project-Id-Version: gnome-shell master\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-05-31 01:03+0200\n"
"PO-Revision-Date: 2013-05-31 01:04+0200\n"
"POT-Creation-Date: 2013-06-28 01:33+0200\n"
"PO-Revision-Date: 2013-06-28 01:35+0200\n"
"Last-Translator: Fran Dieguez <frandieguez@gnome.org>\n"
"Language-Team: gnome-l10n-gl@gnome.org\n"
"Language: gl\n"
@ -369,37 +369,41 @@ msgid "Select an extension to configure using the combobox above."
msgstr ""
"Seleccione unha extensión que configurar usando a caixa combinada de arriba."
#: ../js/gdm/loginDialog.js:371
msgid "Session"
msgstr "Sesión"
#: ../js/gdm/loginDialog.js:308
msgid "Choose Session"
msgstr "Escolla unha sesión"
#: ../js/gdm/loginDialog.js:326
msgid "Session"
msgstr "Sesión"
#. translators: this message is shown below the user list on the
#. login screen. It can be activated to reveal an entry for
#. manually entering the username.
#: ../js/gdm/loginDialog.js:601
#: ../js/gdm/loginDialog.js:528
msgid "Not listed?"
msgstr "Non está na lista?"
#: ../js/gdm/loginDialog.js:776 ../js/ui/components/networkAgent.js:137
#: ../js/gdm/loginDialog.js:810 ../js/ui/components/networkAgent.js:137
#: ../js/ui/components/polkitAgent.js:161 ../js/ui/endSessionDialog.js:376
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
#: ../js/ui/status/bluetooth.js:415 ../js/ui/unlockDialog.js:96
#: ../js/ui/userMenu.js:938
#: ../js/ui/status/bluetooth.js:449 ../js/ui/unlockDialog.js:95
#: ../js/ui/userMenu.js:884
msgid "Cancel"
msgstr "Cancelar"
#: ../js/gdm/loginDialog.js:791
#: ../js/gdm/loginDialog.js:833
msgctxt "button"
msgid "Sign In"
msgstr "Iniciar sesión"
#: ../js/gdm/loginDialog.js:791
#: ../js/gdm/loginDialog.js:833
msgid "Next"
msgstr "Seguinte"
#. Translators: this message is shown below the username entry field
#. to clue the user in on how to login to the local network realm
#: ../js/gdm/loginDialog.js:888
#: ../js/gdm/loginDialog.js:934
#, c-format
msgid "(e.g., user or %s)"
msgstr "(p.ex., usuario ou %s)"
@ -407,12 +411,12 @@ msgstr "(p.ex., usuario ou %s)"
#. TTLS and PEAP are actually much more complicated, but this complication
#. is not visible here since we only care about phase2 authentication
#. (and don't even care of which one)
#: ../js/gdm/loginDialog.js:892 ../js/ui/components/networkAgent.js:260
#: ../js/gdm/loginDialog.js:938 ../js/ui/components/networkAgent.js:260
#: ../js/ui/components/networkAgent.js:278
msgid "Username: "
msgstr "Nome de usuario: "
#: ../js/gdm/loginDialog.js:1158
#: ../js/gdm/loginDialog.js:1205
msgid "Login Window"
msgstr "Xanela de inicio de sesión"
@ -421,8 +425,8 @@ msgstr "Xanela de inicio de sesión"
msgid "Power"
msgstr "Apagar"
#: ../js/gdm/powerMenu.js:93 ../js/ui/userMenu.js:696 ../js/ui/userMenu.js:700
#: ../js/ui/userMenu.js:816
#: ../js/gdm/powerMenu.js:93 ../js/ui/userMenu.js:651 ../js/ui/userMenu.js:655
#: ../js/ui/userMenu.js:768
msgid "Suspend"
msgstr "Suspender"
@ -430,18 +434,18 @@ msgstr "Suspender"
msgid "Restart"
msgstr "Reiniciar"
#: ../js/gdm/powerMenu.js:103 ../js/ui/userMenu.js:698
#: ../js/ui/userMenu.js:700 ../js/ui/userMenu.js:815 ../js/ui/userMenu.js:942
#: ../js/gdm/powerMenu.js:103 ../js/ui/userMenu.js:653
#: ../js/ui/userMenu.js:655 ../js/ui/userMenu.js:767 ../js/ui/userMenu.js:888
msgid "Power Off"
msgstr "Apagar"
#: ../js/gdm/util.js:247
#: ../js/gdm/util.js:248
msgid "Authentication error"
msgstr "Erro de autenticación"
#. Translators: this message is shown below the password entry field
#. to indicate the user can swipe their finger instead
#: ../js/gdm/util.js:364
#: ../js/gdm/util.js:365
msgid "(or swipe finger)"
msgstr "(ou pase o dedo)"
@ -460,23 +464,23 @@ msgstr "Non foi posíbel analizar a orde:"
msgid "Execution of '%s' failed:"
msgstr "Produciuse un fallo na execución de «%s»:"
#: ../js/ui/appDisplay.js:361
#: ../js/ui/appDisplay.js:397
msgid "Frequent"
msgstr "Frecuentes"
#: ../js/ui/appDisplay.js:368
#: ../js/ui/appDisplay.js:404
msgid "All"
msgstr "Todos"
#: ../js/ui/appDisplay.js:960
#: ../js/ui/appDisplay.js:996
msgid "New Window"
msgstr "Xanela nova"
#: ../js/ui/appDisplay.js:963 ../js/ui/dash.js:284
#: ../js/ui/appDisplay.js:999 ../js/ui/dash.js:284
msgid "Remove from Favorites"
msgstr "Retirar dos marcadores"
#: ../js/ui/appDisplay.js:964
#: ../js/ui/appDisplay.js:1000
msgid "Add to Favorites"
msgstr "Engadir aos favoritos"
@ -490,7 +494,7 @@ msgstr "%s foi engadido aos seus favoritos."
msgid "%s has been removed from your favorites."
msgstr "%s retirouse dos seus marcadores."
#: ../js/ui/backgroundMenu.js:19 ../js/ui/userMenu.js:789
#: ../js/ui/backgroundMenu.js:19 ../js/ui/userMenu.js:744
msgid "Settings"
msgstr "Preferencias"
@ -615,35 +619,35 @@ msgid "S"
msgstr "S"
#. Translators: Text to show if there are no events
#: ../js/ui/calendar.js:735
#: ../js/ui/calendar.js:750
msgid "Nothing Scheduled"
msgstr "Nada programado"
#. Translators: Shown on calendar heading when selected day occurs on current year
#: ../js/ui/calendar.js:751
#: ../js/ui/calendar.js:768
msgctxt "calendar heading"
msgid "%A, %B %d"
msgstr "%A, %d de %B"
#. Translators: Shown on calendar heading when selected day occurs on different year
#: ../js/ui/calendar.js:754
#: ../js/ui/calendar.js:771
msgctxt "calendar heading"
msgid "%A, %B %d, %Y"
msgstr "%A, %d de %B de %Y"
#: ../js/ui/calendar.js:764
#: ../js/ui/calendar.js:782
msgid "Today"
msgstr "Hoxe"
#: ../js/ui/calendar.js:768
#: ../js/ui/calendar.js:786
msgid "Tomorrow"
msgstr "Mañá"
#: ../js/ui/calendar.js:779
#: ../js/ui/calendar.js:797
msgid "This week"
msgstr "Esta semana"
#: ../js/ui/calendar.js:787
#: ../js/ui/calendar.js:805
msgid "Next week"
msgstr "A vindeira semana"
@ -832,14 +836,14 @@ msgstr "<b>%d</b> de <b>%B</b> de <b>%Y</b>, <b>%H:%M</b> "
#. Translators: this is the other person changing their old IM name to their new
#. IM name.
#: ../js/ui/components/telepathyClient.js:985
#: ../js/ui/components/telepathyClient.js:986
#, c-format
msgid "%s is now known as %s"
msgstr "Agora %s chámase %s"
#. translators: argument is a room name like
#. * room@jabber.org for example.
#: ../js/ui/components/telepathyClient.js:1088
#: ../js/ui/components/telepathyClient.js:1089
#, c-format
msgid "Invitation to %s"
msgstr "Convite a %s"
@ -847,38 +851,38 @@ msgstr "Convite a %s"
#. translators: first argument is the name of a contact and the second
#. * one the name of a room. "Alice is inviting you to join room@jabber.org
#. * for example.
#: ../js/ui/components/telepathyClient.js:1096
#: ../js/ui/components/telepathyClient.js:1097
#, c-format
msgid "%s is inviting you to join %s"
msgstr "%s estalle convidando a unirse a %s"
#: ../js/ui/components/telepathyClient.js:1098
#: ../js/ui/components/telepathyClient.js:1137
#: ../js/ui/components/telepathyClient.js:1177
#: ../js/ui/components/telepathyClient.js:1240
#: ../js/ui/components/telepathyClient.js:1099
#: ../js/ui/components/telepathyClient.js:1138
#: ../js/ui/components/telepathyClient.js:1178
#: ../js/ui/components/telepathyClient.js:1241
msgid "Decline"
msgstr "Rexeitar"
#: ../js/ui/components/telepathyClient.js:1099
#: ../js/ui/components/telepathyClient.js:1178
#: ../js/ui/components/telepathyClient.js:1241
#: ../js/ui/components/telepathyClient.js:1100
#: ../js/ui/components/telepathyClient.js:1179
#: ../js/ui/components/telepathyClient.js:1242
msgid "Accept"
msgstr "Aceptar"
#. translators: argument is a contact name like Alice for example.
#: ../js/ui/components/telepathyClient.js:1129
#: ../js/ui/components/telepathyClient.js:1130
#, c-format
msgid "Video call from %s"
msgstr "Videochamada de %s"
#. translators: argument is a contact name like Alice for example.
#: ../js/ui/components/telepathyClient.js:1132
#: ../js/ui/components/telepathyClient.js:1133
#, c-format
msgid "Call from %s"
msgstr "Chamada de %s"
#. translators: this is a button label (verb), not a noun
#: ../js/ui/components/telepathyClient.js:1139
#: ../js/ui/components/telepathyClient.js:1140
msgid "Answer"
msgstr "Responder"
@ -887,112 +891,112 @@ msgstr "Responder"
#. * file name. The string will be something
#. * like: "Alice is sending you test.ogg"
#.
#: ../js/ui/components/telepathyClient.js:1171
#: ../js/ui/components/telepathyClient.js:1172
#, c-format
msgid "%s is sending you %s"
msgstr "%s esta enviándolle %s"
#. To translators: The parameter is the contact's alias
#: ../js/ui/components/telepathyClient.js:1206
#: ../js/ui/components/telepathyClient.js:1207
#, c-format
msgid "%s would like permission to see when you are online"
msgstr "%s solicítalle permiso para ver cando está en liña"
#: ../js/ui/components/telepathyClient.js:1298
#: ../js/ui/components/telepathyClient.js:1299
msgid "Network error"
msgstr "Erro da rede"
#: ../js/ui/components/telepathyClient.js:1300
#: ../js/ui/components/telepathyClient.js:1301
msgid "Authentication failed"
msgstr "Fallou a autenticación"
#: ../js/ui/components/telepathyClient.js:1302
#: ../js/ui/components/telepathyClient.js:1303
msgid "Encryption error"
msgstr "Erro de cifrado"
#: ../js/ui/components/telepathyClient.js:1304
#: ../js/ui/components/telepathyClient.js:1305
msgid "Certificate not provided"
msgstr "Certificado non fornecido"
#: ../js/ui/components/telepathyClient.js:1306
#: ../js/ui/components/telepathyClient.js:1307
msgid "Certificate untrusted"
msgstr "Non se confía no certificado"
#: ../js/ui/components/telepathyClient.js:1308
#: ../js/ui/components/telepathyClient.js:1309
msgid "Certificate expired"
msgstr "Certificado caducado"
#: ../js/ui/components/telepathyClient.js:1310
#: ../js/ui/components/telepathyClient.js:1311
msgid "Certificate not activated"
msgstr "Certificado non activado"
#: ../js/ui/components/telepathyClient.js:1312
#: ../js/ui/components/telepathyClient.js:1313
msgid "Certificate hostname mismatch"
msgstr "O nome do servidor do certificado non coincide"
#: ../js/ui/components/telepathyClient.js:1314
#: ../js/ui/components/telepathyClient.js:1315
msgid "Certificate fingerprint mismatch"
msgstr "A pegada do certificado non coincide"
#: ../js/ui/components/telepathyClient.js:1316
#: ../js/ui/components/telepathyClient.js:1317
msgid "Certificate self-signed"
msgstr "Certificado autoasinado"
#: ../js/ui/components/telepathyClient.js:1318
#: ../js/ui/components/telepathyClient.js:1319
msgid "Status is set to offline"
msgstr "O estado está definido a «desconectado»"
#: ../js/ui/components/telepathyClient.js:1320
#: ../js/ui/components/telepathyClient.js:1321
msgid "Encryption is not available"
msgstr "O cifrado non está dispoñíbel"
#: ../js/ui/components/telepathyClient.js:1322
#: ../js/ui/components/telepathyClient.js:1323
msgid "Certificate is invalid"
msgstr "O certificado non é válido"
#: ../js/ui/components/telepathyClient.js:1324
#: ../js/ui/components/telepathyClient.js:1325
msgid "Connection has been refused"
msgstr "Rexeitouse a conexión"
#: ../js/ui/components/telepathyClient.js:1326
#: ../js/ui/components/telepathyClient.js:1327
msgid "Connection can't be established"
msgstr "Non é posíbel estabelecer a conexión"
#: ../js/ui/components/telepathyClient.js:1328
#: ../js/ui/components/telepathyClient.js:1329
msgid "Connection has been lost"
msgstr "Perdeuse a conexión"
#: ../js/ui/components/telepathyClient.js:1330
#: ../js/ui/components/telepathyClient.js:1331
msgid "This account is already connected to the server"
msgstr "Esta cuenta xa está conectada ao servidor"
#: ../js/ui/components/telepathyClient.js:1332
#: ../js/ui/components/telepathyClient.js:1333
msgid ""
"Connection has been replaced by a new connection using the same resource"
msgstr ""
"Substituíuse a conexión por unha nova conexión empregando o mesmo recurso"
#: ../js/ui/components/telepathyClient.js:1334
#: ../js/ui/components/telepathyClient.js:1335
msgid "The account already exists on the server"
msgstr "Esta conta xa existe no servidor"
#: ../js/ui/components/telepathyClient.js:1336
#: ../js/ui/components/telepathyClient.js:1337
msgid "Server is currently too busy to handle the connection"
msgstr ""
"Nestes intres o servidor está moi ocupado tentando xestionar a conexión"
#: ../js/ui/components/telepathyClient.js:1338
#: ../js/ui/components/telepathyClient.js:1339
msgid "Certificate has been revoked"
msgstr "Revogouse o certificado"
#: ../js/ui/components/telepathyClient.js:1340
#: ../js/ui/components/telepathyClient.js:1341
msgid ""
"Certificate uses an insecure cipher algorithm or is cryptographically weak"
msgstr ""
"O certificado usa un algoritmo de cifrado inseguro ou é criptográficamente "
"débil"
#: ../js/ui/components/telepathyClient.js:1342
#: ../js/ui/components/telepathyClient.js:1343
msgid ""
"The length of the server certificate, or the depth of the server certificate "
"chain, exceed the limits imposed by the cryptography library"
@ -1001,22 +1005,22 @@ msgstr ""
"certificado do servidor excede os límites impostos pola biblioteca de "
"criptografía."
#: ../js/ui/components/telepathyClient.js:1344
#: ../js/ui/components/telepathyClient.js:1345
msgid "Internal error"
msgstr "Erro interno"
#. translators: argument is the account name, like
#. * name@jabber.org for example.
#: ../js/ui/components/telepathyClient.js:1354
#: ../js/ui/components/telepathyClient.js:1355
#, c-format
msgid "Unable to connect to %s"
msgstr "Non foi posíbel conectarse a %s"
#: ../js/ui/components/telepathyClient.js:1359
#: ../js/ui/components/telepathyClient.js:1360
msgid "View account"
msgstr "Ver conta"
#: ../js/ui/components/telepathyClient.js:1398
#: ../js/ui/components/telepathyClient.js:1399
msgid "Unknown reason"
msgstr "Razón descoñecida"
@ -1030,26 +1034,26 @@ msgstr "Mostrar aplicativos"
#. Translators: this is the name of the dock/favorites area on
#. the left of the overview
#: ../js/ui/dash.js:435
#: ../js/ui/dash.js:439
msgid "Dash"
msgstr "Taboleiro"
#: ../js/ui/dateMenu.js:86
#: ../js/ui/dateMenu.js:85
msgid "Open Calendar"
msgstr "Abrir Calendario"
#: ../js/ui/dateMenu.js:90
#: ../js/ui/dateMenu.js:89
msgid "Open Clocks"
msgstr "Abrir Reloxos"
#: ../js/ui/dateMenu.js:97
#: ../js/ui/dateMenu.js:96
msgid "Date & Time Settings"
msgstr "Preferencias de data e hora"
#. Translators: This is the date format to use when the calendar popup is
#. * shown - it is shown just below the time in the shell (e.g. "Tue 9:29 AM").
#.
#: ../js/ui/dateMenu.js:208
#: ../js/ui/dateMenu.js:201
msgid "%A %B %e, %Y"
msgstr "%a, %e de %B, %Y"
@ -1261,17 +1265,17 @@ msgstr "Vista xeral"
msgid "Type to search…"
msgstr "Escriba para buscar…"
#: ../js/ui/panel.js:642
#: ../js/ui/panel.js:567
msgid "Quit"
msgstr "Saír"
#. Translators: If there is no suitable word for "Activities"
#. in your language, you can use the word for "Overview".
#: ../js/ui/panel.js:693
#: ../js/ui/panel.js:618
msgid "Activities"
msgstr "Actividades"
#: ../js/ui/panel.js:989
#: ../js/ui/panel.js:914
msgid "Top Bar"
msgstr "Barra superior"
@ -1280,7 +1284,7 @@ msgstr "Barra superior"
#. "ON" and "OFF") or "toggle-switch-intl" (for toggle
#. switches containing "◯" and "|"). Other values will
#. simply result in invisible toggle switches.
#: ../js/ui/popupMenu.js:738
#: ../js/ui/popupMenu.js:549
msgid "toggle-switch-us"
msgstr "toggle-switch-intl"
@ -1305,7 +1309,7 @@ msgid_plural "%d new notifications"
msgstr[0] "%d notificación nova"
msgstr[1] "%d notificacións novas"
#: ../js/ui/screenShield.js:449 ../js/ui/userMenu.js:807
#: ../js/ui/screenShield.js:449 ../js/ui/userMenu.js:759
msgid "Lock"
msgstr "Bloquear"
@ -1320,11 +1324,11 @@ msgstr "GNOME precisa bloquear a pantalla"
#.
#. XXX: another option is to kick the user into the gdm login
#. screen, where we're not affected by grabs
#: ../js/ui/screenShield.js:773 ../js/ui/screenShield.js:1213
#: ../js/ui/screenShield.js:775 ../js/ui/screenShield.js:1215
msgid "Unable to lock"
msgstr "Non foi posíbel bloquear"
#: ../js/ui/screenShield.js:774 ../js/ui/screenShield.js:1214
#: ../js/ui/screenShield.js:776 ../js/ui/screenShield.js:1216
msgid "Lock was blocked by an application"
msgstr "Un aplicativo impediu o bloqueo"
@ -1360,7 +1364,7 @@ msgstr "Contrasinal"
msgid "Remember Password"
msgstr "Lembrar contrasinal"
#: ../js/ui/shellMountOperation.js:403 ../js/ui/unlockDialog.js:109
#: ../js/ui/shellMountOperation.js:403 ../js/ui/unlockDialog.js:108
msgid "Unlock"
msgstr "Desbloquear"
@ -1413,9 +1417,9 @@ msgid "Large Text"
msgstr "Texto grande"
#: ../js/ui/status/bluetooth.js:28 ../js/ui/status/bluetooth.js:32
#: ../js/ui/status/bluetooth.js:289 ../js/ui/status/bluetooth.js:321
#: ../js/ui/status/bluetooth.js:357 ../js/ui/status/bluetooth.js:388
#: ../js/ui/status/network.js:739
#: ../js/ui/status/bluetooth.js:290 ../js/ui/status/bluetooth.js:327
#: ../js/ui/status/bluetooth.js:355 ../js/ui/status/bluetooth.js:391
#: ../js/ui/status/bluetooth.js:422 ../js/ui/status/network.js:713
msgid "Bluetooth"
msgstr "Bluetooth"
@ -1436,73 +1440,82 @@ msgid "Bluetooth Settings"
msgstr "Preferencias do Bluetooth"
#. TRANSLATORS: this means that bluetooth was disabled by hardware rfkill
#: ../js/ui/status/bluetooth.js:104 ../js/ui/status/network.js:142
#: ../js/ui/status/bluetooth.js:105 ../js/ui/status/network.js:140
msgid "hardware disabled"
msgstr "hardware desactivado"
#: ../js/ui/status/bluetooth.js:197
#: ../js/ui/status/bluetooth.js:198
msgid "Connection"
msgstr "Conexión"
#: ../js/ui/status/bluetooth.js:208 ../js/ui/status/network.js:404
#: ../js/ui/status/bluetooth.js:209 ../js/ui/status/network.js:399
msgid "disconnecting..."
msgstr "desconectando…"
#: ../js/ui/status/bluetooth.js:221 ../js/ui/status/network.js:410
#: ../js/ui/status/network.js:1343
#: ../js/ui/status/bluetooth.js:222 ../js/ui/status/network.js:405
#: ../js/ui/status/network.js:1298
msgid "connecting..."
msgstr "conectando…"
#: ../js/ui/status/bluetooth.js:239
#: ../js/ui/status/bluetooth.js:240
msgid "Send Files…"
msgstr "Enviar ficheiros…"
#: ../js/ui/status/bluetooth.js:246
#: ../js/ui/status/bluetooth.js:247
msgid "Keyboard Settings"
msgstr "Preferencias do teclado"
#: ../js/ui/status/bluetooth.js:249
#: ../js/ui/status/bluetooth.js:250
msgid "Mouse Settings"
msgstr "Preferencias do rato"
#: ../js/ui/status/bluetooth.js:254 ../js/ui/status/volume.js:316
#: ../js/ui/status/bluetooth.js:255 ../js/ui/status/volume.js:313
msgid "Sound Settings"
msgstr "Preferencias do son"
#: ../js/ui/status/bluetooth.js:322
#: ../js/ui/status/bluetooth.js:328 ../js/ui/status/bluetooth.js:356
#, c-format
msgid "Authorization request from %s"
msgstr "Solicitude de autorización de %s"
#: ../js/ui/status/bluetooth.js:328
#, c-format
msgid "Device %s wants access to the service '%s'"
msgstr "O dispositivo %s quere acceder ao servizo «%s»"
#: ../js/ui/status/bluetooth.js:330
msgid "Always grant access"
msgstr "Conceder acceso sempre"
#: ../js/ui/status/bluetooth.js:331
msgid "Grant this time only"
msgstr "Conceder só esta vez"
#: ../js/ui/status/bluetooth.js:332
msgid "Reject"
msgstr "Rexeitar"
#. Translators: argument is the device short name
#: ../js/ui/status/bluetooth.js:359
#, c-format
msgid "Pairing confirmation for %s"
msgstr "Confirmación de emparellado para «%s»"
#: ../js/ui/status/bluetooth.js:365 ../js/ui/status/bluetooth.js:396
#: ../js/ui/status/bluetooth.js:334 ../js/ui/status/bluetooth.js:399
#: ../js/ui/status/bluetooth.js:430
#, c-format
msgid "Device %s wants to pair with this computer"
msgstr "O dispositivo «%s» quere emparellarse con este equipo"
#: ../js/ui/status/bluetooth.js:336
msgid "Allow"
msgstr "Permitir"
#: ../js/ui/status/bluetooth.js:337
msgid "Deny"
msgstr "Denegar"
#: ../js/ui/status/bluetooth.js:362
#, c-format
msgid "Device %s wants access to the service '%s'"
msgstr "O dispositivo %s quere acceder ao servizo «%s»"
#: ../js/ui/status/bluetooth.js:364
msgid "Always grant access"
msgstr "Conceder acceso sempre"
#: ../js/ui/status/bluetooth.js:365
msgid "Grant this time only"
msgstr "Conceder só esta vez"
#: ../js/ui/status/bluetooth.js:366
msgid "Reject"
msgstr "Rexeitar"
#. Translators: argument is the device short name
#: ../js/ui/status/bluetooth.js:393
#, c-format
msgid "Pairing confirmation for %s"
msgstr "Confirmación de emparellado para «%s»"
#: ../js/ui/status/bluetooth.js:400
#, c-format
msgid ""
"Please confirm whether the Passkey '%06d' matches the one on the device."
@ -1510,24 +1523,24 @@ msgstr ""
"Confirme que a frase de paso «%06d» coincide coa mostrada no dispositivo."
#. Translators: this is the verb, not the noun
#: ../js/ui/status/bluetooth.js:369
#: ../js/ui/status/bluetooth.js:403
msgid "Matches"
msgstr "Coincide"
#: ../js/ui/status/bluetooth.js:370
#: ../js/ui/status/bluetooth.js:404
msgid "Does not match"
msgstr "Non coincide"
#: ../js/ui/status/bluetooth.js:389
#: ../js/ui/status/bluetooth.js:423
#, c-format
msgid "Pairing request for %s"
msgstr "Solicitude de emparellamento para «%s»"
#: ../js/ui/status/bluetooth.js:397
#: ../js/ui/status/bluetooth.js:431
msgid "Please enter the PIN mentioned on the device."
msgstr "Escriba o PIN mencionado no dispositivo."
#: ../js/ui/status/bluetooth.js:414
#: ../js/ui/status/bluetooth.js:448
msgid "OK"
msgstr "Aceptar"
@ -1547,87 +1560,81 @@ msgstr "Volume, rede, batería"
msgid "<unknown>"
msgstr "<descoñecido>"
#: ../js/ui/status/network.js:127
#: ../js/ui/status/network.js:125
msgid "Wi-Fi"
msgstr "Wifi"
#. Translators: this indicates that wireless or wwan is disabled by hardware killswitch
#: ../js/ui/status/network.js:164
#: ../js/ui/status/network.js:162
msgid "disabled"
msgstr "desactivada"
#. Translators: this is for network devices that are physically present but are not
#. under NetworkManager's control (and thus cannot be used in the menu)
#: ../js/ui/status/network.js:402
#: ../js/ui/status/network.js:397
msgid "unmanaged"
msgstr "non xestionada"
#. Translators: this is for network connections that require some kind of key or password
#: ../js/ui/status/network.js:413 ../js/ui/status/network.js:1346
#: ../js/ui/status/network.js:408 ../js/ui/status/network.js:1301
msgid "authentication required"
msgstr "requírese autenticación"
#. Translators: this is for devices that require some kind of firmware or kernel
#. module, which is missing
#: ../js/ui/status/network.js:423
#: ../js/ui/status/network.js:419
msgid "firmware missing"
msgstr "falta o «firmware»"
#. Translators: this is for wired network devices that are physically disconnected
#: ../js/ui/status/network.js:430
msgid "cable unplugged"
msgstr "cable desconectado"
#. Translators: this is for a network device that cannot be activated (for example it
#. is disabled by rfkill, or it has no coverage
#: ../js/ui/status/network.js:435
#: ../js/ui/status/network.js:423
msgid "unavailable"
msgstr "non dispoñíbel"
#: ../js/ui/status/network.js:437 ../js/ui/status/network.js:1348
#: ../js/ui/status/network.js:425 ../js/ui/status/network.js:1303
msgid "connection failed"
msgstr "conexión fallada"
#: ../js/ui/status/network.js:490 ../js/ui/status/network.js:1236
#: ../js/ui/status/network.js:1424
#: ../js/ui/status/network.js:478 ../js/ui/status/network.js:1190
msgid "More…"
msgstr "Máis…"
#. TRANSLATORS: this is the indication that a connection for another logged in user is active,
#. and we cannot access its settings (including the name)
#: ../js/ui/status/network.js:518 ../js/ui/status/network.js:1191
#: ../js/ui/status/network.js:506 ../js/ui/status/network.js:1142
msgid "Connected (private)"
msgstr "Conectada (privada)"
#: ../js/ui/status/network.js:597
#: ../js/ui/status/network.js:572
msgid "Wired"
msgstr "Con fíos"
#: ../js/ui/status/network.js:611
#: ../js/ui/status/network.js:592
msgid "Mobile broadband"
msgstr "Banda larga móbil"
#: ../js/ui/status/network.js:1522
#: ../js/ui/status/network.js:1474
msgid "Enable networking"
msgstr "Activar rede"
#: ../js/ui/status/network.js:1583
#: ../js/ui/status/network.js:1522
msgid "Network Settings"
msgstr "Preferencias da rede"
#: ../js/ui/status/network.js:1600
#: ../js/ui/status/network.js:1539
msgid "Network Manager"
msgstr "Xestor da rede"
#: ../js/ui/status/network.js:1690
#: ../js/ui/status/network.js:1623
msgid "Connection failed"
msgstr "Produciuse un fallo na conexión"
#: ../js/ui/status/network.js:1691
#: ../js/ui/status/network.js:1624
msgid "Activation of network connection failed"
msgstr "Produciuse un fallo na activación da conexión de rede"
#: ../js/ui/status/network.js:2047
#: ../js/ui/status/network.js:1937
msgid "Networking is disabled"
msgstr "A rede está desactivada"
@ -1728,72 +1735,72 @@ msgctxt "device"
msgid "Unknown"
msgstr "Descoñecido"
#: ../js/ui/status/volume.js:124
#: ../js/ui/status/volume.js:121
msgid "Volume changed"
msgstr "Volume cambiado"
#. Translators: This is the label for audio volume
#: ../js/ui/status/volume.js:249 ../js/ui/status/volume.js:297
#: ../js/ui/status/volume.js:246 ../js/ui/status/volume.js:294
msgid "Volume"
msgstr "Volume"
#: ../js/ui/status/volume.js:258
#: ../js/ui/status/volume.js:255
msgid "Microphone"
msgstr "Micrófono"
#: ../js/ui/unlockDialog.js:120
#: ../js/ui/unlockDialog.js:119
msgid "Log in as another user"
msgstr "Iniciar sesión como outro usuario"
#: ../js/ui/unlockDialog.js:141
#: ../js/ui/unlockDialog.js:140
msgid "Unlock Window"
msgstr "Desbloquear xanela"
#: ../js/ui/userMenu.js:193
#: ../js/ui/userMenu.js:149
msgid "Available"
msgstr "Dispoñíbel"
#: ../js/ui/userMenu.js:196
#: ../js/ui/userMenu.js:152
msgid "Busy"
msgstr "Ocupado"
#: ../js/ui/userMenu.js:199
#: ../js/ui/userMenu.js:155
msgid "Invisible"
msgstr "Invisíbel"
#: ../js/ui/userMenu.js:202
#: ../js/ui/userMenu.js:158
msgid "Away"
msgstr "Ausente"
#: ../js/ui/userMenu.js:205
#: ../js/ui/userMenu.js:161
msgid "Idle"
msgstr "Inactivo"
#: ../js/ui/userMenu.js:208
#: ../js/ui/userMenu.js:164
msgid "Offline"
msgstr "Desconectado"
#: ../js/ui/userMenu.js:781
#: ../js/ui/userMenu.js:736
msgid "Notifications"
msgstr "Notificacións"
#: ../js/ui/userMenu.js:797
#: ../js/ui/userMenu.js:749
msgid "Switch User"
msgstr "Cambiar de usuario"
#: ../js/ui/userMenu.js:802
#: ../js/ui/userMenu.js:754
msgid "Log Out"
msgstr "Saír da sesión"
#: ../js/ui/userMenu.js:822
#: ../js/ui/userMenu.js:774
msgid "Install Updates & Restart"
msgstr "Instalar actualizacións e reiniciar"
#: ../js/ui/userMenu.js:840
#: ../js/ui/userMenu.js:792
msgid "Your chat status will be set to busy"
msgstr "O seu estado de conversa estabelecerase a «ocupado»"
#: ../js/ui/userMenu.js:841
#: ../js/ui/userMenu.js:793
msgid ""
"Notifications are now disabled, including chat messages. Your online status "
"has been adjusted to let others know that you might not see their messages."
@ -1802,22 +1809,22 @@ msgstr ""
"conversa. O seu estado de conexión axustouse para que outros saiban que non "
"quere ver as súas mensaxes."
#: ../js/ui/userMenu.js:888
#: ../js/ui/userMenu.js:834
msgid "Other users are logged in."
msgstr "Hai outros usuarios conectados."
#: ../js/ui/userMenu.js:893
#: ../js/ui/userMenu.js:839
msgid "Shutting down might cause them to lose unsaved work."
msgstr "Se apaga o computador pode perder o traballo que non gardou."
#. Translators: Remote here refers to a remote session, like a ssh login
#: ../js/ui/userMenu.js:921
#: ../js/ui/userMenu.js:867
#, c-format
msgid "%s (remote)"
msgstr "%s (remoto)"
#. Translators: Console here refers to a tty like a VT console
#: ../js/ui/userMenu.js:924
#: ../js/ui/userMenu.js:870
#, c-format
msgid "%s (console)"
msgstr "%s (consola)"
@ -1875,21 +1882,21 @@ msgstr[1] "%u entradas"
msgid "System Sounds"
msgstr "Sons do sistema"
#: ../src/main.c:372
#: ../src/main.c:353
msgid "Print version"
msgstr "Imprimir versión"
#: ../src/main.c:378
#: ../src/main.c:359
msgid "Mode used by GDM for login screen"
msgstr "Modo usado por GDM para a pantalla de inicio"
#: ../src/main.c:384
#: ../src/main.c:365
msgid "Use a specific mode, e.g. \"gdm\" for login screen"
msgstr ""
"Usar un modo específico, por exemplo, «gdm» para a pantalla de inicio de "
"sesión"
#: ../src/main.c:390
#: ../src/main.c:371
msgid "List possible modes"
msgstr "Listar os modos posíbeis"
@ -1910,6 +1917,9 @@ msgstr "O contrasinal non pode estar baleiro"
msgid "Authentication dialog was dismissed by the user"
msgstr "O usuario rexeitou o diálogo de autenticación"
#~ msgid "cable unplugged"
#~ msgstr "cable desconectado"
#~ msgid "Whether to collect stats about applications usage"
#~ msgstr ""
#~ "Indica se se deben recolectar estatísticas sobre o uso dos aplicativos"
@ -2027,9 +2037,6 @@ msgstr "O usuario rexeitou o diálogo de autenticación"
#~ msgid "System Settings"
#~ msgstr "Preferencias do sistema"
#~ msgid "Switch Session"
#~ msgstr "Cambiar de sesión"
#~ msgid "disabled OpenSearch providers"
#~ msgstr "fornecedores OpenSearch desactivados"

582
po/kk.po

File diff suppressed because it is too large Load Diff

269
po/nb.po
View File

@ -8,8 +8,8 @@ msgid ""
msgstr ""
"Project-Id-Version: gnome-shell 3.9.x\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-05-28 09:43+0200\n"
"PO-Revision-Date: 2013-05-28 09:44+0200\n"
"POT-Creation-Date: 2013-06-17 12:28+0200\n"
"PO-Revision-Date: 2013-06-17 12:29+0200\n"
"Last-Translator: Kjartan Maraas <kmaraas@gnome.org>\n"
"Language-Team: Norwegian bokmål <i18n-nb@lister.ping.uio.no>\n"
"Language: \n"
@ -331,37 +331,37 @@ msgstr "Utvidelse"
msgid "Select an extension to configure using the combobox above."
msgstr "Velg en utvidelse som skal konfigureres med komboboksen over."
#: ../js/gdm/loginDialog.js:371
#: ../js/gdm/loginDialog.js:370
msgid "Session…"
msgstr "Økt …"
#. translators: this message is shown below the user list on the
#. login screen. It can be activated to reveal an entry for
#. manually entering the username.
#: ../js/gdm/loginDialog.js:601
#: ../js/gdm/loginDialog.js:600
msgid "Not listed?"
msgstr "Ikke listet?"
#: ../js/gdm/loginDialog.js:776 ../js/ui/components/networkAgent.js:137
#: ../js/gdm/loginDialog.js:775 ../js/ui/components/networkAgent.js:137
#: ../js/ui/components/polkitAgent.js:161 ../js/ui/endSessionDialog.js:376
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
#: ../js/ui/status/bluetooth.js:415 ../js/ui/unlockDialog.js:96
#: ../js/ui/userMenu.js:938
#: ../js/ui/status/bluetooth.js:449 ../js/ui/unlockDialog.js:95
#: ../js/ui/userMenu.js:884
msgid "Cancel"
msgstr "Avbryt"
#: ../js/gdm/loginDialog.js:791
#: ../js/gdm/loginDialog.js:790
msgctxt "button"
msgid "Sign In"
msgstr "Logg inn"
#: ../js/gdm/loginDialog.js:791
#: ../js/gdm/loginDialog.js:790
msgid "Next"
msgstr "Neste"
#. Translators: this message is shown below the username entry field
#. to clue the user in on how to login to the local network realm
#: ../js/gdm/loginDialog.js:888
#: ../js/gdm/loginDialog.js:887
#, c-format
msgid "(e.g., user or %s)"
msgstr "(f.eks. bruker eller %s)"
@ -369,12 +369,12 @@ msgstr "(f.eks. bruker eller %s)"
#. TTLS and PEAP are actually much more complicated, but this complication
#. is not visible here since we only care about phase2 authentication
#. (and don't even care of which one)
#: ../js/gdm/loginDialog.js:892 ../js/ui/components/networkAgent.js:260
#: ../js/gdm/loginDialog.js:891 ../js/ui/components/networkAgent.js:260
#: ../js/ui/components/networkAgent.js:278
msgid "Username: "
msgstr "Brukernavn: "
#: ../js/gdm/loginDialog.js:1158
#: ../js/gdm/loginDialog.js:1157
msgid "Login Window"
msgstr "Innloggingsvindu"
@ -383,8 +383,8 @@ msgstr "Innloggingsvindu"
msgid "Power"
msgstr "Strøm"
#: ../js/gdm/powerMenu.js:93 ../js/ui/userMenu.js:696 ../js/ui/userMenu.js:700
#: ../js/ui/userMenu.js:816
#: ../js/gdm/powerMenu.js:93 ../js/ui/userMenu.js:651 ../js/ui/userMenu.js:655
#: ../js/ui/userMenu.js:768
msgid "Suspend"
msgstr "Hvilemodus"
@ -392,8 +392,8 @@ msgstr "Hvilemodus"
msgid "Restart"
msgstr "Start på nytt"
#: ../js/gdm/powerMenu.js:103 ../js/ui/userMenu.js:698
#: ../js/ui/userMenu.js:700 ../js/ui/userMenu.js:815 ../js/ui/userMenu.js:942
#: ../js/gdm/powerMenu.js:103 ../js/ui/userMenu.js:653
#: ../js/ui/userMenu.js:655 ../js/ui/userMenu.js:767 ../js/ui/userMenu.js:888
msgid "Power Off"
msgstr "Slå av"
@ -422,23 +422,23 @@ msgstr "Klarte ikke å lese kommando:"
msgid "Execution of '%s' failed:"
msgstr "Kjøring av «%s» feilet:"
#: ../js/ui/appDisplay.js:361
#: ../js/ui/appDisplay.js:397
msgid "Frequent"
msgstr "Ofte"
#: ../js/ui/appDisplay.js:368
#: ../js/ui/appDisplay.js:404
msgid "All"
msgstr "Alle"
#: ../js/ui/appDisplay.js:960
#: ../js/ui/appDisplay.js:996
msgid "New Window"
msgstr "Nytt vindu"
#: ../js/ui/appDisplay.js:963 ../js/ui/dash.js:284
#: ../js/ui/appDisplay.js:999 ../js/ui/dash.js:284
msgid "Remove from Favorites"
msgstr "Fjern fra favoritter"
#: ../js/ui/appDisplay.js:964
#: ../js/ui/appDisplay.js:1000
msgid "Add to Favorites"
msgstr "Legg til i favoritter"
@ -452,7 +452,7 @@ msgstr "%s ble lagt til i dine favoritter."
msgid "%s has been removed from your favorites."
msgstr "%s ble fjernet fra dine favoritter."
#: ../js/ui/backgroundMenu.js:19 ../js/ui/userMenu.js:789
#: ../js/ui/backgroundMenu.js:19 ../js/ui/userMenu.js:744
msgid "Settings"
msgstr "Innstillinger"
@ -577,35 +577,35 @@ msgid "S"
msgstr "Lø"
#. Translators: Text to show if there are no events
#: ../js/ui/calendar.js:735
#: ../js/ui/calendar.js:750
msgid "Nothing Scheduled"
msgstr "Ingenting planlagt"
#. Translators: Shown on calendar heading when selected day occurs on current year
#: ../js/ui/calendar.js:751
#: ../js/ui/calendar.js:768
msgctxt "calendar heading"
msgid "%A, %B %d"
msgstr "%A %B %d"
#. Translators: Shown on calendar heading when selected day occurs on different year
#: ../js/ui/calendar.js:754
#: ../js/ui/calendar.js:771
msgctxt "calendar heading"
msgid "%A, %B %d, %Y"
msgstr "%A %B %d, %Y"
#: ../js/ui/calendar.js:764
#: ../js/ui/calendar.js:782
msgid "Today"
msgstr "I dag"
#: ../js/ui/calendar.js:768
#: ../js/ui/calendar.js:786
msgid "Tomorrow"
msgstr "I morgen"
#: ../js/ui/calendar.js:779
#: ../js/ui/calendar.js:797
msgid "This week"
msgstr "Denne uken"
#: ../js/ui/calendar.js:787
#: ../js/ui/calendar.js:805
msgid "Next week"
msgstr "Neste uke"
@ -989,26 +989,26 @@ msgstr "Vis programmer"
#. Translators: this is the name of the dock/favorites area on
#. the left of the overview
#: ../js/ui/dash.js:435
#: ../js/ui/dash.js:439
msgid "Dash"
msgstr "Favoritter"
#: ../js/ui/dateMenu.js:86
#: ../js/ui/dateMenu.js:85
msgid "Open Calendar"
msgstr "Åpne kalender"
#: ../js/ui/dateMenu.js:90
#: ../js/ui/dateMenu.js:89
msgid "Open Clocks"
msgstr "Åpne Klokker"
#: ../js/ui/dateMenu.js:97
#: ../js/ui/dateMenu.js:96
msgid "Date & Time Settings"
msgstr "Innstillinger for dato og klokkeslett"
#. Translators: This is the date format to use when the calendar popup is
#. * shown - it is shown just below the time in the shell (e.g. "Tue 9:29 AM").
#.
#: ../js/ui/dateMenu.js:208
#: ../js/ui/dateMenu.js:202
msgid "%A %B %e, %Y"
msgstr "%a %e %B, %Y"
@ -1182,15 +1182,15 @@ msgstr "Tøm meldinger"
msgid "Notification Settings"
msgstr "Innstillinger for varsling"
#: ../js/ui/messageTray.js:1707
#: ../js/ui/messageTray.js:1711
msgid "No Messages"
msgstr "Ingen meldinger"
#: ../js/ui/messageTray.js:1780
#: ../js/ui/messageTray.js:1784
msgid "Message Tray"
msgstr "Meldingstrau"
#: ../js/ui/messageTray.js:2805
#: ../js/ui/messageTray.js:2811
msgid "System Information"
msgstr "Systeminformasjon"
@ -1199,7 +1199,7 @@ msgctxt "program"
msgid "Unknown"
msgstr "Ukjent"
#: ../js/ui/overviewControls.js:472 ../js/ui/screenShield.js:150
#: ../js/ui/overviewControls.js:474 ../js/ui/screenShield.js:150
#, c-format
msgid "%d new message"
msgid_plural "%d new messages"
@ -1241,7 +1241,7 @@ msgstr "Topp-panel"
#. "ON" and "OFF") or "toggle-switch-intl" (for toggle
#. switches containing "◯" and "|"). Other values will
#. simply result in invisible toggle switches.
#: ../js/ui/popupMenu.js:738
#: ../js/ui/popupMenu.js:545
msgid "toggle-switch-us"
msgstr "toggle-switch-intl"
@ -1266,7 +1266,7 @@ msgid_plural "%d new notifications"
msgstr[0] "%d ny varsling"
msgstr[1] "%d nye varslinger"
#: ../js/ui/screenShield.js:449 ../js/ui/userMenu.js:807
#: ../js/ui/screenShield.js:449 ../js/ui/userMenu.js:759
msgid "Lock"
msgstr "Lås"
@ -1289,11 +1289,11 @@ msgstr "Kan ikke låse"
msgid "Lock was blocked by an application"
msgstr "Låsing ble stoppet av et program"
#: ../js/ui/searchDisplay.js:453
#: ../js/ui/searchDisplay.js:445
msgid "Searching…"
msgstr "Søker …"
#: ../js/ui/searchDisplay.js:497
#: ../js/ui/searchDisplay.js:489
msgid "No results."
msgstr "Ingen resultater."
@ -1321,7 +1321,7 @@ msgstr "Passord"
msgid "Remember Password"
msgstr "Husk passord"
#: ../js/ui/shellMountOperation.js:403 ../js/ui/unlockDialog.js:109
#: ../js/ui/shellMountOperation.js:403 ../js/ui/unlockDialog.js:108
msgid "Unlock"
msgstr "Lås opp"
@ -1374,9 +1374,9 @@ msgid "Large Text"
msgstr "Stor tekst"
#: ../js/ui/status/bluetooth.js:28 ../js/ui/status/bluetooth.js:32
#: ../js/ui/status/bluetooth.js:289 ../js/ui/status/bluetooth.js:321
#: ../js/ui/status/bluetooth.js:357 ../js/ui/status/bluetooth.js:388
#: ../js/ui/status/network.js:739
#: ../js/ui/status/bluetooth.js:290 ../js/ui/status/bluetooth.js:327
#: ../js/ui/status/bluetooth.js:355 ../js/ui/status/bluetooth.js:391
#: ../js/ui/status/bluetooth.js:422 ../js/ui/status/network.js:713
msgid "Bluetooth"
msgstr "Bluetooth"
@ -1397,97 +1397,106 @@ msgid "Bluetooth Settings"
msgstr "Innstillinger for Bluetooth"
#. TRANSLATORS: this means that bluetooth was disabled by hardware rfkill
#: ../js/ui/status/bluetooth.js:104 ../js/ui/status/network.js:142
#: ../js/ui/status/bluetooth.js:105 ../js/ui/status/network.js:140
msgid "hardware disabled"
msgstr "maskinvare slått av"
#: ../js/ui/status/bluetooth.js:197
#: ../js/ui/status/bluetooth.js:198
msgid "Connection"
msgstr "Tilkobling"
#: ../js/ui/status/bluetooth.js:208 ../js/ui/status/network.js:404
#: ../js/ui/status/bluetooth.js:209 ../js/ui/status/network.js:399
msgid "disconnecting..."
msgstr "kobler fra …"
#: ../js/ui/status/bluetooth.js:221 ../js/ui/status/network.js:410
#: ../js/ui/status/network.js:1343
#: ../js/ui/status/bluetooth.js:222 ../js/ui/status/network.js:405
#: ../js/ui/status/network.js:1298
msgid "connecting..."
msgstr "kobler til …"
#: ../js/ui/status/bluetooth.js:239
#: ../js/ui/status/bluetooth.js:240
msgid "Send Files…"
msgstr "Send filer …"
#: ../js/ui/status/bluetooth.js:246
#: ../js/ui/status/bluetooth.js:247
msgid "Keyboard Settings"
msgstr "Innstillinger for tastatur"
#: ../js/ui/status/bluetooth.js:249
#: ../js/ui/status/bluetooth.js:250
msgid "Mouse Settings"
msgstr "Innstillinger for mus"
#: ../js/ui/status/bluetooth.js:254 ../js/ui/status/volume.js:316
#: ../js/ui/status/bluetooth.js:255 ../js/ui/status/volume.js:313
msgid "Sound Settings"
msgstr "Innstillinger for lyd"
#: ../js/ui/status/bluetooth.js:322
#: ../js/ui/status/bluetooth.js:328 ../js/ui/status/bluetooth.js:356
#, c-format
msgid "Authorization request from %s"
msgstr "Forespørsel om autorisering fra %s"
#: ../js/ui/status/bluetooth.js:328
#, c-format
msgid "Device %s wants access to the service '%s'"
msgstr "Enhet %s vil ha tilgang til tjenesten «%s»"
#: ../js/ui/status/bluetooth.js:330
msgid "Always grant access"
msgstr "Alltid gi tilgang"
#: ../js/ui/status/bluetooth.js:331
msgid "Grant this time only"
msgstr "Gi tilgang kun denne ene gangen"
#: ../js/ui/status/bluetooth.js:332
msgid "Reject"
msgstr "Avvis"
#. Translators: argument is the device short name
#: ../js/ui/status/bluetooth.js:359
#, c-format
msgid "Pairing confirmation for %s"
msgstr "Bekreftelse for tilkobling for %s"
#: ../js/ui/status/bluetooth.js:365 ../js/ui/status/bluetooth.js:396
#: ../js/ui/status/bluetooth.js:334 ../js/ui/status/bluetooth.js:399
#: ../js/ui/status/bluetooth.js:430
#, c-format
msgid "Device %s wants to pair with this computer"
msgstr "Enhet %s vil koble seg sammen med denne datamaskinen"
#: ../js/ui/status/bluetooth.js:336
msgid "Allow"
msgstr "Tillat"
#: ../js/ui/status/bluetooth.js:337
msgid "Deny"
msgstr "Nekt"
#: ../js/ui/status/bluetooth.js:362
#, c-format
msgid "Device %s wants access to the service '%s'"
msgstr "Enhet %s vil ha tilgang til tjenesten «%s»"
#: ../js/ui/status/bluetooth.js:364
msgid "Always grant access"
msgstr "Alltid gi tilgang"
#: ../js/ui/status/bluetooth.js:365
msgid "Grant this time only"
msgstr "Gi tilgang kun denne ene gangen"
#: ../js/ui/status/bluetooth.js:366
msgid "Reject"
msgstr "Avvis"
#. Translators: argument is the device short name
#: ../js/ui/status/bluetooth.js:393
#, c-format
msgid "Pairing confirmation for %s"
msgstr "Bekreftelse for tilkobling for %s"
#: ../js/ui/status/bluetooth.js:400
#, c-format
msgid ""
"Please confirm whether the Passkey '%06d' matches the one on the device."
msgstr "Vennligst bekreft om passord «%06d» er lik den som brukes på enheten."
#. Translators: this is the verb, not the noun
#: ../js/ui/status/bluetooth.js:369
#: ../js/ui/status/bluetooth.js:403
msgid "Matches"
msgstr "Stemmer overens"
#: ../js/ui/status/bluetooth.js:370
#: ../js/ui/status/bluetooth.js:404
msgid "Does not match"
msgstr "Stemmer ikke overens"
#: ../js/ui/status/bluetooth.js:389
#: ../js/ui/status/bluetooth.js:423
#, c-format
msgid "Pairing request for %s"
msgstr "Forespørsel om tilkobling for %s"
#: ../js/ui/status/bluetooth.js:397
#: ../js/ui/status/bluetooth.js:431
msgid "Please enter the PIN mentioned on the device."
msgstr "Vennligst oppgi PIN som oppgitt på enheten."
#: ../js/ui/status/bluetooth.js:414
#: ../js/ui/status/bluetooth.js:448
msgid "OK"
msgstr "OK"
@ -1507,87 +1516,81 @@ msgstr "Volum, nettverk, batteri"
msgid "<unknown>"
msgstr "<ukjent>"
#: ../js/ui/status/network.js:127
#: ../js/ui/status/network.js:125
msgid "Wi-Fi"
msgstr "Wi-Fi"
#. Translators: this indicates that wireless or wwan is disabled by hardware killswitch
#: ../js/ui/status/network.js:164
#: ../js/ui/status/network.js:162
msgid "disabled"
msgstr "slått av"
#. Translators: this is for network devices that are physically present but are not
#. under NetworkManager's control (and thus cannot be used in the menu)
#: ../js/ui/status/network.js:402
#: ../js/ui/status/network.js:397
msgid "unmanaged"
msgstr "ikke håndtert"
#. Translators: this is for network connections that require some kind of key or password
#: ../js/ui/status/network.js:413 ../js/ui/status/network.js:1346
#: ../js/ui/status/network.js:408 ../js/ui/status/network.js:1301
msgid "authentication required"
msgstr "autentisering kreves"
#. Translators: this is for devices that require some kind of firmware or kernel
#. module, which is missing
#: ../js/ui/status/network.js:423
#: ../js/ui/status/network.js:419
msgid "firmware missing"
msgstr "fastvare mangler"
#. Translators: this is for wired network devices that are physically disconnected
#: ../js/ui/status/network.js:430
msgid "cable unplugged"
msgstr "kabel koblet fra"
#. Translators: this is for a network device that cannot be activated (for example it
#. is disabled by rfkill, or it has no coverage
#: ../js/ui/status/network.js:435
#: ../js/ui/status/network.js:423
msgid "unavailable"
msgstr "ikke tilgjengelig"
#: ../js/ui/status/network.js:437 ../js/ui/status/network.js:1348
#: ../js/ui/status/network.js:425 ../js/ui/status/network.js:1303
msgid "connection failed"
msgstr "tilkobling feilet"
#: ../js/ui/status/network.js:490 ../js/ui/status/network.js:1236
#: ../js/ui/status/network.js:1424
#: ../js/ui/status/network.js:478 ../js/ui/status/network.js:1190
msgid "More…"
msgstr "Mer …"
#. TRANSLATORS: this is the indication that a connection for another logged in user is active,
#. and we cannot access its settings (including the name)
#: ../js/ui/status/network.js:518 ../js/ui/status/network.js:1191
#: ../js/ui/status/network.js:506 ../js/ui/status/network.js:1142
msgid "Connected (private)"
msgstr "Tilkoblet (privat)"
#: ../js/ui/status/network.js:597
#: ../js/ui/status/network.js:572
msgid "Wired"
msgstr "Kablet"
#: ../js/ui/status/network.js:611
#: ../js/ui/status/network.js:592
msgid "Mobile broadband"
msgstr "Mobilt bredbånd"
#: ../js/ui/status/network.js:1522
#: ../js/ui/status/network.js:1474
msgid "Enable networking"
msgstr "Slå på nettverk"
#: ../js/ui/status/network.js:1583
#: ../js/ui/status/network.js:1522
msgid "Network Settings"
msgstr "Innstillinger for nettverk"
#: ../js/ui/status/network.js:1600
#: ../js/ui/status/network.js:1539
msgid "Network Manager"
msgstr "Nettverkshåndtering"
#: ../js/ui/status/network.js:1690
#: ../js/ui/status/network.js:1623
msgid "Connection failed"
msgstr "Tilkobling feilet"
#: ../js/ui/status/network.js:1691
#: ../js/ui/status/network.js:1624
msgid "Activation of network connection failed"
msgstr "Aktivering av nettverkstilkobling feilet"
#: ../js/ui/status/network.js:2047
#: ../js/ui/status/network.js:1937
msgid "Networking is disabled"
msgstr "Nettverk er slått av"
@ -1688,72 +1691,72 @@ msgctxt "device"
msgid "Unknown"
msgstr "Ukjent"
#: ../js/ui/status/volume.js:124
#: ../js/ui/status/volume.js:121
msgid "Volume changed"
msgstr "Volum endret"
#. Translators: This is the label for audio volume
#: ../js/ui/status/volume.js:249 ../js/ui/status/volume.js:297
#: ../js/ui/status/volume.js:246 ../js/ui/status/volume.js:294
msgid "Volume"
msgstr "Volum"
#: ../js/ui/status/volume.js:258
#: ../js/ui/status/volume.js:255
msgid "Microphone"
msgstr "Mikrofon"
#: ../js/ui/unlockDialog.js:120
#: ../js/ui/unlockDialog.js:119
msgid "Log in as another user"
msgstr "Logg inn som en annen bruker"
#: ../js/ui/unlockDialog.js:141
#: ../js/ui/unlockDialog.js:140
msgid "Unlock Window"
msgstr "Lås opp vindu"
#: ../js/ui/userMenu.js:193
#: ../js/ui/userMenu.js:149
msgid "Available"
msgstr "Tilgjengelig"
#: ../js/ui/userMenu.js:196
#: ../js/ui/userMenu.js:152
msgid "Busy"
msgstr "Opptatt"
#: ../js/ui/userMenu.js:199
#: ../js/ui/userMenu.js:155
msgid "Invisible"
msgstr "Usynlig"
#: ../js/ui/userMenu.js:202
#: ../js/ui/userMenu.js:158
msgid "Away"
msgstr "Borte"
#: ../js/ui/userMenu.js:205
#: ../js/ui/userMenu.js:161
msgid "Idle"
msgstr "Ledig"
#: ../js/ui/userMenu.js:208
#: ../js/ui/userMenu.js:164
msgid "Offline"
msgstr "Frakoblet"
#: ../js/ui/userMenu.js:781
#: ../js/ui/userMenu.js:736
msgid "Notifications"
msgstr "Varslinger"
#: ../js/ui/userMenu.js:797
#: ../js/ui/userMenu.js:749
msgid "Switch User"
msgstr "Bytt bruker"
#: ../js/ui/userMenu.js:802
#: ../js/ui/userMenu.js:754
msgid "Log Out"
msgstr "Logg ut"
#: ../js/ui/userMenu.js:822
#: ../js/ui/userMenu.js:774
msgid "Install Updates & Restart"
msgstr "Installer oppdateringer og start på nytt"
#: ../js/ui/userMenu.js:840
#: ../js/ui/userMenu.js:792
msgid "Your chat status will be set to busy"
msgstr "Din pratestatus vil bli satt til opptatt"
#: ../js/ui/userMenu.js:841
#: ../js/ui/userMenu.js:793
msgid ""
"Notifications are now disabled, including chat messages. Your online status "
"has been adjusted to let others know that you might not see their messages."
@ -1762,24 +1765,24 @@ msgstr ""
"tilkoblingsstatus er justert for å la andre vite at du kanskje ikke ser "
"deres meldinger."
#: ../js/ui/userMenu.js:888
#: ../js/ui/userMenu.js:834
msgid "Other users are logged in."
msgstr "Andre brukere er logget inn."
#: ../js/ui/userMenu.js:893
#: ../js/ui/userMenu.js:839
msgid "Shutting down might cause them to lose unsaved work."
msgstr ""
"Hvis du slår av vil dette kunne medføre at de mister arbeid som ikke er "
"lagret."
#. Translators: Remote here refers to a remote session, like a ssh login
#: ../js/ui/userMenu.js:921
#: ../js/ui/userMenu.js:867
#, c-format
msgid "%s (remote)"
msgstr "%s (ekstern)"
#. Translators: Console here refers to a tty like a VT console
#: ../js/ui/userMenu.js:924
#: ../js/ui/userMenu.js:870
#, c-format
msgid "%s (console)"
msgstr "%s (konsoll)"
@ -1837,19 +1840,19 @@ msgstr[1] "%u innganger"
msgid "System Sounds"
msgstr "Systemlyder"
#: ../src/main.c:372
#: ../src/main.c:353
msgid "Print version"
msgstr "Skriv ut versjon"
#: ../src/main.c:378
#: ../src/main.c:359
msgid "Mode used by GDM for login screen"
msgstr "Modus som brukes av GDM for innloggingsskjermen"
#: ../src/main.c:384
#: ../src/main.c:365
msgid "Use a specific mode, e.g. \"gdm\" for login screen"
msgstr "Bruk spesifikt modus, f.eks «gdm» for innloggingsskjerm"
#: ../src/main.c:390
#: ../src/main.c:371
msgid "List possible modes"
msgstr "Vis mulige modi"

View File

@ -386,6 +386,8 @@ main (int argc, char **argv)
bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
textdomain (GETTEXT_PACKAGE);
g_setenv ("GDK_SCALE", "1", TRUE);
ctx = meta_get_option_context ();
g_option_context_add_main_entries (ctx, gnome_shell_options, GETTEXT_PACKAGE);
if (!g_option_context_parse (ctx, &argc, &argv, &error))
@ -435,6 +437,8 @@ main (int argc, char **argv)
_shell_global_init ("session-mode", session_mode, NULL);
g_unsetenv ("GDK_SCALE");
ecode = meta_run ();
if (g_getenv ("GNOME_SHELL_ENABLE_CLEANUP"))

View File

@ -43,8 +43,6 @@ struct _ShellNetworkAgentClass
/* used by SHELL_TYPE_NETWORK_AGENT */
GType shell_network_agent_get_type (void);
ShellNetworkAgent *shell_network_agent_new (void);
void shell_network_agent_set_password (ShellNetworkAgent *self,
gchar *request_id,
gchar *setting_key,

View File

@ -3056,6 +3056,10 @@ parse_shadow_property (StThemeNode *node,
*/
for (term = decl->value; term; term = term->next)
{
/* if we found "none", we're all set with the default values */
if (term_is_none (term))
return VALUE_FOUND;
if (term->type == TERM_NUMBER)
{
gdouble value;

View File

@ -385,7 +385,7 @@ st_widget_finalize (GObject *gobject)
g_free (priv->inline_style);
for (i = 0; i < G_N_ELEMENTS (priv->paint_states); i++)
st_theme_node_paint_state_init (&priv->paint_states[i]);
st_theme_node_paint_state_free (&priv->paint_states[i]);
G_OBJECT_CLASS (st_widget_parent_class)->finalize (gobject);
}
@ -643,8 +643,9 @@ st_widget_get_theme_node (StWidget *widget)
if (stage == NULL)
{
g_error ("st_widget_get_theme_node called on the widget %s which is not in the stage.",
st_describe_actor (CLUTTER_ACTOR (widget)));
g_critical ("st_widget_get_theme_node called on the widget %s which is not in the stage.",
st_describe_actor (CLUTTER_ACTOR (widget)));
return g_object_new (ST_TYPE_THEME_NODE, NULL);
}
if (parent_node == NULL)