Compare commits

..

21 Commits

Author SHA1 Message Date
Jasper St. Pierre
bf374ccabb nn 2014-06-03 13:51:59 -04:00
Jasper St. Pierre
02060d2bbc nnn 2014-06-03 13:51:58 -04:00
Jasper St. Pierre
8750f1edc0 drawer 2014-06-03 13:51:58 -04:00
Jasper St. Pierre
798f17a97d kill tray 2014-06-03 13:51:57 -04:00
Jasper St. Pierre
a4091adbf2 system tray elsewhere 2014-06-03 13:51:57 -04:00
Jasper St. Pierre
ecf795b6ef reveal 2014-06-03 13:51:56 -04:00
Jasper St. Pierre
75447b249c adjust timeout animation 2014-06-03 13:51:56 -04:00
Jasper St. Pierre
26d2fb8a37 messageTray: Add a new message tray indicator 2014-06-03 13:51:55 -04:00
Jasper St. Pierre
f7223763d2 messageTray: Add an indicatorCount property to the tray
So we don't have to do the property tracking here...
2014-06-03 13:51:55 -04:00
Jasper St. Pierre
0b414308fb telepathyClient: Use a revealer for new messages in Telepathy as well 2014-06-03 13:51:55 -04:00
Jasper St. Pierre
060917ae2b messageTray: Add a Revealer widget and use it to animate the notification in/out 2014-06-03 13:51:53 -04:00
Jasper St. Pierre
9f2e5b9b51 messageTray: Glue the notification to the bottom of the screen, always
We'll animate notifications popping up with another system soon enough,
instead. The idea here is that instead of carefully animating the Y
position of the notificationWidget when a notification updates, we
simply animate the height of the new actor inside the notification.
This will fix some of the awkward updates where instead of the
notification content expanding, we see the buttons or action area
pushed off the edge of the screen...

Animations that happen as a result of adding something new to the
notification or expanding it should be done by tweeing the new actors
in inside the notification.
2014-06-03 13:30:46 -04:00
Jasper St. Pierre
4a07eb77f6 messageTray: Restyle notifications 2014-06-03 13:30:45 -04:00
Jasper St. Pierre
fbe379c81c messageTray: Considerably rework how layout is done in notifications
Use a series of nested BoxLayouts, Bins, and more instead of an StTable
and a custom ShellGenericContainer, and hacky style classes.

This also removes the customContent parameter in favor of subclasses
setting the child of this._bodyBin instead.

We lose a few of the fancy features like showing the first part of
the body, ellipsized, next the banner when it will fit, and other
layout logic. But since the layout of notifications is changing
substantially anyways, I don't feel too bad...
2014-06-03 13:30:16 -04:00
Jasper St. Pierre
a07e8bbf37 messageTray: Remove addBody as a public API
As it's unused.
2014-06-03 13:30:16 -04:00
Jasper St. Pierre
a6aabb1d3a messageTray: Remove support for notifications with images
This sufficiently complicates the code, and won't fit in the
new design.
2014-06-03 13:30:15 -04:00
Jasper St. Pierre
aef6273fed messageTray: Remove support for resident notifications
Now the only resident notification is a chat notification. The convenient
thing about this special-case behavior is that there's already special-case
code for it and the shell, and we always know that a chat notification will
always be 1:1 with its chat source.
2014-06-03 13:30:15 -04:00
Jasper St. Pierre
be8b1c7d2d notificationDaemon: Remove support for resident notifications
They're not really an API that has caught on, and not really one
we want to support, either.
2014-06-03 13:30:15 -04:00
Jasper St. Pierre
14bc748cea notificationDaemon: Remove the special-case hack for system tray icons
Nothing in the system actually has a standard system tray icon anymore,
so this hack isn't necessary.
2014-06-03 13:30:15 -04:00
Jasper St. Pierre
c32917f6c1 telepathyClient: Remove all the fancy features
This can be done with another app, like Empathy or Chat.
2014-06-03 12:32:56 -04:00
Jasper St. Pierre
182d45dace autorunManager: Remove the resident "Removable Devices" notification
Users aren't usually the best at obeying the rules, and systems can
deal with hotplug without ejecting first.

https://bugzilla.gnome.org/show_bug.cgi?id=719857
2014-06-03 12:32:56 -04:00
27 changed files with 2179 additions and 1267 deletions

View File

@@ -1,4 +1,5 @@
[org.gnome.shell.overrides] [org.gnome.shell.overrides]
attach-modal-dialogs = /desktop/gnome/shell/windows/attach_modal_dialogs attach-modal-dialogs = /desktop/gnome/shell/windows/attach_modal_dialogs
button-layout = /desktop/gnome/shell/windows/button_layout
edge-tiling = /desktop/gnome/shell/windows/edge_tiling edge-tiling = /desktop/gnome/shell/windows/edge_tiling
workspaces-only-on-primary = /desktop/gnome/shell/windows/workspaces_only_on_primary workspaces-only-on-primary = /desktop/gnome/shell/windows/workspaces_only_on_primary

View File

@@ -1491,38 +1491,54 @@ StScrollBar StButton#vhandle:active {
/* Message Tray */ /* Message Tray */
#message-tray { .notification-drawer {
background: #2e3436 url(message-tray-background.png); background: rgba(0,0,0,0.8);
background-repeat: repeat; padding: 1em;
height: 72px; border: 2px solid #4c4c4c;
border-bottom: 0px;
border-radius: 6px 6px 0 0;
}
.system-tray-icons,
.notification-drawer-footer-actions {
spacing: 0.5em;
}
.system-tray-icon-button,
.notification-drawer-button {
border-radius: 4px;
border: 1px solid #4c4c4c;
padding: 4px;
}
.system-tray-icon-button {
width: 22px;
height: 22px;
}
.notification-drawer-button StIcon {
icon-size: 22px;
}
.system-tray-icon-button:hover,
.notification-drawer-button:hover {
background: 1px solid #4c4c4c;
} }
.url-highlighter { .url-highlighter {
link-color: #ccccff; link-color: #ccccff;
} }
.notification, #notification-container { .notification, #notification-container, .notification-drawer {
font-size: 11pt; font-size: 11pt;
width: 34em; width: 34em;
} }
.notification-main-button,
.notification-button {
background: rgba(0,0,0,0.9);
}
.notification-main-button {
border-radius: 10px 10px 0px 0px;
}
.notification-main-content { .notification-main-content {
padding: 8px; padding: 8px;
spacing: 8px; spacing: 8px;
} border-radius: 10px 10px 0px 0px;
background: rgba(0,0,0,0.8);
.notification-close-button {
padding: 8px;
border-radius: 4px;
} }
.notification-action-area { .notification-action-area {
@@ -1531,6 +1547,7 @@ StScrollBar StButton#vhandle:active {
.notification-action-area, .notification-action-area,
.notification-button { .notification-button {
background: rgba(0,0,0,0.8);
border-top: 1px solid #666; border-top: 1px solid #666;
} }
@@ -1539,13 +1556,10 @@ StScrollBar StButton#vhandle:active {
border-right: 1px solid #666; border-right: 1px solid #666;
} }
.notification-main-button:hover, .notification-button:hover {
.notification-button:hover, background: rgba(255,255,255,0.3);
.notification-close-button:hover {
background: rgba(100,100,100,0.9);
} }
.notification-main-button:active,
.notification-button:active { .notification-button:active {
background: rgba(255,255,255,0.1); background: rgba(255,255,255,0.1);
} }
@@ -1686,6 +1700,28 @@ StScrollBar StButton#vhandle:active {
-shell-counter-overlap-y: 13px; -shell-counter-overlap-y: 13px;
} }
.message-tray-indicator {
spacing: 4px;
}
.message-tray-indicator-count {
font-size: 1.2em;
font-weight: bold;
color: black;
background-color: rgba(255, 255, 255, 0.7);
border-radius: 1em;
padding: 1em;
text-align: center;
}
.message-tray-indicator-glow {
height: 4px;
background-gradient-start: rgba(255, 255, 255, 0);
background-gradient-end: rgba(255, 255, 255, 1);
background-gradient-direction: vertical;
}
/* OSD */ /* OSD */
.osd-window { .osd-window {
text-align: center; text-align: center;
@@ -2591,7 +2627,3 @@ StScrollBar StButton#vhandle:active {
-boxpointer-gap: 4px; -boxpointer-gap: 4px;
-arrow-rise: 0px; -arrow-rise: 0px;
} }
.top-bar-notification-preview {
font-weight: normal;
}

View File

@@ -16,7 +16,6 @@ const Atk = imports.gi.Atk;
const AppFavorites = imports.ui.appFavorites; const AppFavorites = imports.ui.appFavorites;
const BoxPointer = imports.ui.boxpointer; const BoxPointer = imports.ui.boxpointer;
const DND = imports.ui.dnd; const DND = imports.ui.dnd;
const GrabHelper = imports.ui.grabHelper;
const IconGrid = imports.ui.iconGrid; const IconGrid = imports.ui.iconGrid;
const Main = imports.ui.main; const Main = imports.ui.main;
const Overview = imports.ui.overview; const Overview = imports.ui.overview;
@@ -1250,7 +1249,18 @@ const AppFolderPopup = new Lang.Class({
function() { function() {
this.actor.destroy(); this.actor.destroy();
})); }));
this._grabHelper = new GrabHelper.GrabHelper(this.actor); this.actor.connect('key-press-event', Lang.bind(this, this._onKeyPress));
},
_onKeyPress: function(actor, event) {
if (!this._isOpen)
return Clutter.EVENT_PROPAGATE;
if (event.get_key_symbol() != Clutter.KEY_Escape)
return Clutter.EVENT_PROPAGATE;
this.popdown();
return Clutter.EVENT_STOP;
}, },
toggle: function() { toggle: function() {
@@ -1264,12 +1274,6 @@ const AppFolderPopup = new Lang.Class({
if (this._isOpen) if (this._isOpen)
return; return;
this._isOpen = this._grabHelper.grab({ actor: this.actor,
onUngrab: Lang.bind(this, this.popdown) });
if (!this._isOpen)
return;
this.actor.show(); this.actor.show();
this._boxPointer.setArrowActor(this._source.actor); this._boxPointer.setArrowActor(this._source.actor);
@@ -1278,6 +1282,7 @@ const AppFolderPopup = new Lang.Class({
this.actor.navigate_focus(null, Gtk.DirectionType.TAB_FORWARD, false); this.actor.navigate_focus(null, Gtk.DirectionType.TAB_FORWARD, false);
this._isOpen = true;
this.emit('open-state-changed', true); this.emit('open-state-changed', true);
}, },
@@ -1285,8 +1290,6 @@ const AppFolderPopup = new Lang.Class({
if (!this._isOpen) if (!this._isOpen)
return; return;
this._grabHelper.ungrab({ actor: this.actor });
this._boxPointer.hide(BoxPointer.PopupAnimation.FADE | this._boxPointer.hide(BoxPointer.PopupAnimation.FADE |
BoxPointer.PopupAnimation.SLIDE); BoxPointer.PopupAnimation.SLIDE);
this._isOpen = false; this._isOpen = false;

View File

@@ -416,6 +416,7 @@ const AutorunTransientNotification = new Lang.Class({
// set the notification to transient and urgent, so that it // set the notification to transient and urgent, so that it
// expands out // expands out
this.setTransient(true);
this.setUrgency(MessageTray.Urgency.CRITICAL); this.setUrgency(MessageTray.Urgency.CRITICAL);
}, },

View File

@@ -735,7 +735,11 @@ const ChatNotification = new Lang.Class({
} }
this._lastMessageBox = new St.BoxLayout({ vertical: false }); this._lastMessageBox = new St.BoxLayout({ vertical: false });
this._lastMessageBox.add(body, props.childProps);
let revealer = new MessageTray.Revealer(body);
this._lastMessageBox.add(revealer, props.childProps);
revealer.show(true);
this._bodyBox.add_child(this._lastMessageBox); this._bodyBox.add_child(this._lastMessageBox);
let timestamp = props.timestamp; let timestamp = props.timestamp;

View File

@@ -18,7 +18,8 @@ const PanelMenu = imports.ui.panelMenu;
const PopupMenu = imports.ui.popupMenu; const PopupMenu = imports.ui.popupMenu;
const Calendar = imports.ui.calendar; const Calendar = imports.ui.calendar;
function _onVertSepRepaint(area) { function _onVertSepRepaint (area)
{
let cr = area.get_context(); let cr = area.get_context();
let themeNode = area.get_theme_node(); let themeNode = area.get_theme_node();
let [width, height] = area.get_surface_size(); let [width, height] = area.get_surface_size();
@@ -32,7 +33,7 @@ function _onVertSepRepaint(area) {
cr.setLineWidth(stippleWidth); cr.setLineWidth(stippleWidth);
cr.stroke(); cr.stroke();
cr.$dispose(); cr.$dispose();
} };
const DateMenuButton = new Lang.Class({ const DateMenuButton = new Lang.Class({
Name: 'DateMenuButton', Name: 'DateMenuButton',

View File

@@ -22,11 +22,6 @@ const KEYBOARD_ANIMATION_TIME = 0.15;
const BACKGROUND_FADE_ANIMATION_TIME = 1.0; const BACKGROUND_FADE_ANIMATION_TIME = 1.0;
const DEFAULT_BACKGROUND_COLOR = Clutter.Color.from_pixel(0x2e3436ff); const DEFAULT_BACKGROUND_COLOR = Clutter.Color.from_pixel(0x2e3436ff);
// The message tray takes this much pressure
// in the pressure barrier at once to release it.
const MESSAGE_TRAY_PRESSURE_THRESHOLD = 250; // pixels
const MESSAGE_TRAY_PRESSURE_TIMEOUT = 1000; // ms
const HOT_CORNER_PRESSURE_THRESHOLD = 100; // pixels const HOT_CORNER_PRESSURE_THRESHOLD = 100; // pixels
const HOT_CORNER_PRESSURE_TIMEOUT = 1000; // ms const HOT_CORNER_PRESSURE_TIMEOUT = 1000; // ms
@@ -974,6 +969,43 @@ const LayoutManager = new Lang.Class({
else else
continue; continue;
// Ensure that the strut rects goes all the way to the screen edge,
// as this really what mutter expects. However skip this step
// in cases where this would render an entire monitor unusable.
switch (side) {
case Meta.Side.TOP:
let hasMonitorsAbove = this.monitors.some(Lang.bind(this,
function(mon) {
return this._isAboveOrBelowPrimary(mon) &&
mon.y < primary.y;
}));
if (!hasMonitorsAbove)
y1 = 0;
break;
case Meta.Side.BOTTOM:
if (this.primaryIndex == this.bottomIndex)
y2 = global.screen_height;
break;
case Meta.Side.LEFT:
let hasMonitorsLeft = this.monitors.some(Lang.bind(this,
function(mon) {
return !this._isAboveOrBelowPrimary(mon) &&
mon.x < primary.x;
}));
if (!hasMonitorsLeft)
x1 = 0;
break;
case Meta.Side.RIGHT:
let hasMonitorsRight = this.monitors.some(Lang.bind(this,
function(mon) {
return !this._isAboveOrBelowPrimary(mon) &&
mon.x > primary.x;
}));
if (!hasMonitorsRight)
x2 = global.screen_width;
break;
}
let strutRect = new Meta.Rectangle({ x: x1, y: y1, width: x2 - x1, height: y2 - y1}); let strutRect = new Meta.Rectangle({ x: x1, y: y1, width: x2 - x1, height: y2 - y1});
let strut = new Meta.Strut({ rect: strutRect, side: side }); let strut = new Meta.Strut({ rect: strutRect, side: side });
struts.push(strut); struts.push(strut);
@@ -1016,10 +1048,10 @@ const HotCorner = new Lang.Class({
this._setupFallbackCornerIfNeeded(layoutManager); this._setupFallbackCornerIfNeeded(layoutManager);
this._pressureBarrier = new PressureBarrier(HOT_CORNER_PRESSURE_THRESHOLD, this._pressureBarrier = new TriggerablePressureBarrier(HOT_CORNER_PRESSURE_THRESHOLD,
HOT_CORNER_PRESSURE_TIMEOUT, HOT_CORNER_PRESSURE_TIMEOUT,
Shell.KeyBindingMode.NORMAL | Shell.KeyBindingMode.NORMAL |
Shell.KeyBindingMode.OVERVIEW); Shell.KeyBindingMode.OVERVIEW);
this._pressureBarrier.connect('trigger', Lang.bind(this, this._toggleOverview)); this._pressureBarrier.connect('trigger', Lang.bind(this, this._toggleOverview));
// Cache the three ripples instead of dynamically creating and destroying them. // Cache the three ripples instead of dynamically creating and destroying them.
@@ -1197,14 +1229,12 @@ const PressureBarrier = new Lang.Class({
Name: 'PressureBarrier', Name: 'PressureBarrier',
_init: function(threshold, timeout, keybindingMode) { _init: function(threshold, timeout, keybindingMode) {
this._threshold = threshold; this.threshold = threshold;
this._timeout = timeout; this.timeout = timeout;
this._keybindingMode = keybindingMode; this._keybindingMode = keybindingMode;
this._barriers = []; this._barriers = [];
this._eventFilter = null; this._eventFilter = null;
this.reset();
this._isTriggered = false;
this._reset();
}, },
addBarrier: function(barrier) { addBarrier: function(barrier) {
@@ -1233,10 +1263,10 @@ const PressureBarrier = new Lang.Class({
this._eventFilter = filter; this._eventFilter = filter;
}, },
_reset: function() { reset: function() {
this._barrierEvents = []; this._barrierEvents = [];
this._currentPressure = 0;
this._lastTime = 0; this._lastTime = 0;
this.currentPressure = 0;
}, },
_isHorizontal: function(barrier) { _isHorizontal: function(barrier) {
@@ -1257,12 +1287,21 @@ const PressureBarrier = new Lang.Class({
return Math.abs(event.dy); return Math.abs(event.dy);
}, },
get currentPressure() {
return this._currentPressure;
},
set currentPressure(value) {
this._currentPressure = value;
this.emit('pressure-changed');
},
_trimBarrierEvents: function() { _trimBarrierEvents: function() {
// Events are guaranteed to be sorted in time order from // Events are guaranteed to be sorted in time order from
// oldest to newest, so just look for the first old event, // oldest to newest, so just look for the first old event,
// and then chop events after that off. // and then chop events after that off.
let i = 0; let i = 0;
let threshold = this._lastTime - this._timeout; let threshold = this._lastTime - this.timeout;
while (i < this._barrierEvents.length) { while (i < this._barrierEvents.length) {
let [time, distance] = this._barrierEvents[i]; let [time, distance] = this._barrierEvents[i];
@@ -1275,21 +1314,75 @@ const PressureBarrier = new Lang.Class({
for (i = 0; i < firstNewEvent; i++) { for (i = 0; i < firstNewEvent; i++) {
let [time, distance] = this._barrierEvents[i]; let [time, distance] = this._barrierEvents[i];
this._currentPressure -= distance; this.currentPressure = distance;
} }
this._barrierEvents = this._barrierEvents.slice(firstNewEvent); this._barrierEvents = this._barrierEvents.slice(firstNewEvent);
}, },
_onBarrierLeft: function(barrier, event) { _onBarrierLeft: function(barrier, event) {
this._reset(); this.reset();
},
_shouldUseEvent: function(barrier, event) {
if (this._eventFilter && this._eventFilter(event))
return false;
// Throw out all events not in the proper keybinding mode
if (!(this._keybindingMode & Main.keybindingMode))
return false;
let slide = this._getDistanceAlongBarrier(barrier, event);
let distance = this._getDistanceAcrossBarrier(barrier, event);
// Throw out events where the cursor is move more
// along the axis of the barrier than moving with
// the barrier.
if (slide > distance)
return false;
return true;
},
_appendEvent: function(barrier, event) {
let distance = this._getDistanceAcrossBarrier(barrier, event);
this._lastTime = event.time;
this._trimBarrierEvents();
distance = Math.min(15, distance);
this._barrierEvents.push([event.time, distance]);
this.currentPressure += distance;
},
_onBarrierHit: function(barrier, event) {
if (!this._shouldUseEvent(barrier, event))
return;
this._appendEvent(barrier, event);
}
});
Signals.addSignalMethods(PressureBarrier.prototype);
const TriggerablePressureBarrier = new Lang.Class({
Name: 'TriggerablePressureBarrier',
Extends: PressureBarrier,
_init: function(threshold, timeout, keybindingMode) {
this.parent(threshold, timeout, keybindingMode);
this._isTriggered = false; this._isTriggered = false;
}, },
_trigger: function() { _trigger: function() {
this._isTriggered = true; this._isTriggered = true;
this.emit('trigger'); this.emit('trigger');
this._reset(); this.reset();
},
_onBarrierLeft: function() {
this.parent();
this._isTriggered = false;
}, },
_onBarrierHit: function(barrier, event) { _onBarrierHit: function(barrier, event) {
@@ -1298,37 +1391,17 @@ const PressureBarrier = new Lang.Class({
if (this._isTriggered) if (this._isTriggered)
return; return;
if (this._eventFilter && this._eventFilter(event)) if (!this._shouldUseEvent(barrier, event))
return; return;
// Throw out all events not in the proper keybinding mode if (distance >= this.threshold) {
if (!(this._keybindingMode & Main.keybindingMode))
return;
let slide = this._getDistanceAlongBarrier(barrier, event);
let distance = this._getDistanceAcrossBarrier(barrier, event);
if (distance >= this._threshold) {
this._trigger(); this._trigger();
return; return;
} }
// Throw out events where the cursor is move more this._appendEvent(barrier, event);
// along the axis of the barrier than moving with
// the barrier.
if (slide > distance)
return;
this._lastTime = event.time; if (this.currentPressure >= this.threshold)
this._trimBarrierEvents();
distance = Math.min(15, distance);
this._barrierEvents.push([event.time, distance]);
this._currentPressure += distance;
if (this._currentPressure >= this._threshold)
this._trigger(); this._trigger();
} },
}); });
Signals.addSignalMethods(PressureBarrier.prototype);

View File

@@ -74,6 +74,7 @@ let _startDate;
let _defaultCssStylesheet = null; let _defaultCssStylesheet = null;
let _cssStylesheet = null; let _cssStylesheet = null;
let _a11ySettings = null; let _a11ySettings = null;
let dynamicWorkspacesSchema = null;
function _sessionUpdated() { function _sessionUpdated() {
_loadDefaultStylesheet(); _loadDefaultStylesheet();
@@ -110,6 +111,7 @@ function start() {
sessionMode = new SessionMode.SessionMode(); sessionMode = new SessionMode.SessionMode();
sessionMode.connect('updated', _sessionUpdated); sessionMode.connect('updated', _sessionUpdated);
_initializePrefs();
_initializeUI(); _initializeUI();
shellDBusService = new ShellDBus.GnomeShell(); shellDBusService = new ShellDBus.GnomeShell();
@@ -118,6 +120,17 @@ function start() {
_sessionUpdated(); _sessionUpdated();
} }
function _initializePrefs() {
let keys = new Gio.Settings({ schema: sessionMode.overridesSchema }).list_keys();
for (let i = 0; i < keys.length; i++)
Meta.prefs_override_preference_schema(keys[i], sessionMode.overridesSchema);
if (keys.indexOf('dynamic-workspaces') > -1)
dynamicWorkspacesSchema = sessionMode.overridesSchema;
else
dynamicWorkspacesSchema = 'org.gnome.mutter';
}
function _initializeUI() { function _initializeUI() {
// Ensure ShellWindowTracker and ShellAppUsage are initialized; this will // Ensure ShellWindowTracker and ShellAppUsage are initialized; this will
// also initialize ShellAppSystem first. ShellAppSystem // also initialize ShellAppSystem first. ShellAppSystem
@@ -150,8 +163,8 @@ function _initializeUI() {
if (LoginManager.canLock()) if (LoginManager.canLock())
screenShield = new ScreenShield.ScreenShield(); screenShield = new ScreenShield.ScreenShield();
messageTray = new MessageTray.MessageTray();
panel = new Panel.Panel(); panel = new Panel.Panel();
messageTray = new MessageTray.MessageTray();
keyboard = new Keyboard.Keyboard(); keyboard = new Keyboard.Keyboard();
notificationDaemon = new NotificationDaemon.NotificationDaemon(); notificationDaemon = new NotificationDaemon.NotificationDaemon();
windowAttentionHandler = new WindowAttentionHandler.WindowAttentionHandler(); windowAttentionHandler = new WindowAttentionHandler.WindowAttentionHandler();
@@ -281,6 +294,7 @@ function notify(msg, details) {
let source = new MessageTray.SystemNotificationSource(); let source = new MessageTray.SystemNotificationSource();
messageTray.add(source); messageTray.add(source);
let notification = new MessageTray.Notification(source, msg, details); let notification = new MessageTray.Notification(source, msg, details);
notification.setTransient(true);
source.notify(notification); source.notify(notification);
} }

File diff suppressed because it is too large Load Diff

View File

@@ -105,16 +105,10 @@ const FdoNotificationDaemon = new Lang.Class({
this._nextNotificationId = 1; this._nextNotificationId = 1;
this._trayManager = new Shell.TrayManager();
this._trayIconAddedId = this._trayManager.connect('tray-icon-added', Lang.bind(this, this._onTrayIconAdded));
this._trayIconRemovedId = this._trayManager.connect('tray-icon-removed', Lang.bind(this, this._onTrayIconRemoved));
Shell.WindowTracker.get_default().connect('notify::focus-app', Shell.WindowTracker.get_default().connect('notify::focus-app',
Lang.bind(this, this._onFocusAppChanged)); Lang.bind(this, this._onFocusAppChanged));
Main.overview.connect('hidden', Main.overview.connect('hidden',
Lang.bind(this, this._onFocusAppChanged)); Lang.bind(this, this._onFocusAppChanged));
// this._trayManager.manage_screen(global.screen, Main.messageTray.actor);
}, },
_imageForNotificationData: function(hints) { _imageForNotificationData: function(hints) {
@@ -155,41 +149,40 @@ const FdoNotificationDaemon = new Lang.Class({
return null; return null;
}, },
_lookupSource: function(title, pid, trayIcon) { _lookupSource: function(title, pid) {
for (let i = 0; i < this._sources.length; i++) { for (let i = 0; i < this._sources.length; i++) {
let source = this._sources[i]; let source = this._sources[i];
if (source.pid == pid && if (source.pid == pid && source.initialTitle == title)
(source.initialTitle == title || source.trayIcon || trayIcon))
return source; return source;
} }
return null; return null;
}, },
// Returns the source associated with ndata.notification if it is set. // Returns the source associated with ndata.notification if it is set.
// If the existing or requested source is associated with a tray icon
// and passed in pid matches a pid of an existing source, the title
// match is ignored to enable representing a tray icon and notifications
// from the same application with a single source.
// //
// If no existing source is found, a new source is created as long as // If no existing source is found, a new source is created as long as
// pid is provided. // pid is provided.
// //
// Either a pid or ndata.notification is needed to retrieve or // Either a pid or ndata.notification is needed to retrieve or
// create a source. // create a source.
_getSource: function(title, pid, ndata, sender, trayIcon) { _getSource: function(title, pid, ndata, sender) {
if (!pid && !(ndata && ndata.notification)) if (!pid && !(ndata && ndata.notification))
return null; return null;
// We use notification's source for the notifications we still have
// around that are getting replaced because we don't keep sources
// for transient notifications in this._sources, but we still want
// the notification associated with them to get replaced correctly.
if (ndata && ndata.notification) if (ndata && ndata.notification)
return ndata.notification.source; return ndata.notification.source;
let source = this._lookupSource(title, pid, trayIcon); let source = this._lookupSource(title, pid);
if (source) { if (source) {
source.setTitle(title); source.setTitle(title);
return source; return source;
} }
let source = new FdoNotificationDaemonSource(title, pid, sender, trayIcon, ndata ? ndata.hints['desktop-entry'] : null); let source = new FdoNotificationDaemonSource(title, pid, sender, ndata ? ndata.hints['desktop-entry'] : null);
this._sources.push(source); this._sources.push(source);
source.connect('destroy', Lang.bind(this, function() { source.connect('destroy', Lang.bind(this, function() {
@@ -418,6 +411,9 @@ const FdoNotificationDaemon = new Lang.Class({
notification.setUrgency(MessageTray.Urgency.CRITICAL); notification.setUrgency(MessageTray.Urgency.CRITICAL);
break; break;
} }
// 'transient' is a reserved keyword in JS, so we have to retrieve the value
// of the 'transient' hint with hints['transient'] rather than hints.transient
notification.setTransient(hints['transient'] == true);
let sourceGIcon = source.useNotificationIcon ? gicon : null; let sourceGIcon = source.useNotificationIcon ? gicon : null;
source.processNotification(notification, sourceGIcon); source.processNotification(notification, sourceGIcon);
@@ -478,26 +474,15 @@ const FdoNotificationDaemon = new Lang.Class({
this._dbusImpl.emit_signal('ActionInvoked', this._dbusImpl.emit_signal('ActionInvoked',
GLib.Variant.new('(us)', [id, action])); GLib.Variant.new('(us)', [id, action]));
}, },
_onTrayIconAdded: function(o, icon) {
let source = this._getSource(icon.title || icon.wm_class || C_("program", "Unknown"), icon.pid, null, null, icon);
},
_onTrayIconRemoved: function(o, icon) {
let source = this._lookupSource(null, icon.pid, true);
if (source)
source.destroy();
}
}); });
const FdoNotificationDaemonSource = new Lang.Class({ const FdoNotificationDaemonSource = new Lang.Class({
Name: 'FdoNotificationDaemonSource', Name: 'FdoNotificationDaemonSource',
Extends: MessageTray.Source, Extends: MessageTray.Source,
_init: function(title, pid, sender, trayIcon, appId) { _init: function(title, pid, sender, appId) {
// Need to set the app before chaining up, so // Need to set the app before chaining up, so
// methods called from the parent constructor can find it // methods called from the parent constructor can find it
this.trayIcon = trayIcon;
this.pid = pid; this.pid = pid;
this.app = this._getApp(appId); this.app = this._getApp(appId);
@@ -517,12 +502,6 @@ const FdoNotificationDaemonSource = new Lang.Class({
Lang.bind(this, this._onNameVanished)); Lang.bind(this, this._onNameVanished));
else else
this._nameWatcherId = 0; this._nameWatcherId = 0;
if (this.trayIcon) {
// Try again finding the app, using the WM_CLASS from the tray icon
this._setSummaryIcon(this.trayIcon);
this.useNotificationIcon = false;
}
}, },
_createPolicy: function() { _createPolicy: function() {
@@ -538,17 +517,15 @@ const FdoNotificationDaemonSource = new Lang.Class({
// Destroy the notification source when its sender is removed from DBus. // Destroy the notification source when its sender is removed from DBus.
// Only do so if this.app is set to avoid removing "notify-send" sources, senders // Only do so if this.app is set to avoid removing "notify-send" sources, senders
// of which аre removed from DBus immediately. // of which аre removed from DBus immediately.
// Sender being removed from DBus would normally result in a tray icon being removed, if (this.app)
// so allow the code path that handles the tray icon being removed to handle that case.
if (!this.trayIcon && this.app)
this.destroy(); this.destroy();
}, },
processNotification: function(notification, gicon) { processNotification: function(notification, gicon) {
if (gicon) if (gicon)
this._gicon = gicon; this._gicon = gicon;
if (!this.trayIcon)
this.iconUpdated(); this.iconUpdated();
let tracker = Shell.WindowTracker.get_default(); let tracker = Shell.WindowTracker.get_default();
if (this.app && tracker.focus_app == this.app) if (this.app && tracker.focus_app == this.app)
@@ -557,29 +534,6 @@ const FdoNotificationDaemonSource = new Lang.Class({
this.notify(notification); this.notify(notification);
}, },
handleSummaryClick: function(button) {
if (!this.trayIcon)
return false;
let event = Clutter.get_current_event();
// Left clicks are passed through only where there aren't unacknowledged
// notifications, so it possible to open them in summary mode; right
// clicks are always forwarded, as the right click menu is not useful for
// tray icons
if (button == 1 &&
this.notifications.length > 0)
return false;
let id = global.stage.connect('deactivate', Lang.bind(this, function () {
global.stage.disconnect(id);
this.trayIcon.click(event);
}));
Main.overview.hide();
return true;
},
_getApp: function(appId) { _getApp: function(appId) {
let app; let app;
@@ -587,16 +541,6 @@ const FdoNotificationDaemonSource = new Lang.Class({
if (app != null) if (app != null)
return app; return app;
if (this.trayIcon) {
app = Shell.AppSystem.get_default().lookup_startup_wmclass(this.trayIcon.wm_class);
if (app != null)
return app;
app = Shell.AppSystem.get_default().lookup_desktop_wmclass(this.trayIcon.wm_class);
if (app != null)
return app;
}
if (appId) { if (appId) {
app = Shell.AppSystem.get_default().lookup_app(appId + '.desktop'); app = Shell.AppSystem.get_default().lookup_app(appId + '.desktop');
if (app != null) if (app != null)
@@ -622,8 +566,7 @@ const FdoNotificationDaemonSource = new Lang.Class({
}, },
_lastNotificationRemoved: function() { _lastNotificationRemoved: function() {
if (!this.trayIcon) this.destroy();
this.destroy();
}, },
openApp: function() { openApp: function() {
@@ -644,11 +587,7 @@ const FdoNotificationDaemonSource = new Lang.Class({
}, },
createIcon: function(size) { createIcon: function(size) {
if (this.trayIcon) { if (this.app) {
return new Clutter.Clone({ width: size,
height: size,
source: this.trayIcon });
} else if (this.app) {
return this.app.create_icon_texture(size); return this.app.create_icon_texture(size);
} else if (this._gicon) { } else if (this._gicon) {
return new St.Icon({ gicon: this._gicon, return new St.Icon({ gicon: this._gicon,

View File

@@ -72,6 +72,7 @@ const ShellInfo = new Lang.Class({
let notification = null; let notification = null;
if (this._source.notifications.length == 0) { if (this._source.notifications.length == 0) {
notification = new MessageTray.Notification(this._source, text, null); notification = new MessageTray.Notification(this._source, text, null);
notification.setTransient(true);
notification.setForFeedback(forFeedback); notification.setForFeedback(forFeedback);
} else { } else {
notification = this._source.notifications[0]; notification = this._source.notifications[0];
@@ -262,8 +263,6 @@ const Overview = new Lang.Class({
this._overview.add(this._controls.actor, { y_fill: true, expand: true }); this._overview.add(this._controls.actor, { y_fill: true, expand: true });
this._controls.actor.connect('scroll-event', Lang.bind(this, this._onScrollEvent)); this._controls.actor.connect('scroll-event', Lang.bind(this, this._onScrollEvent));
this._stack.add_actor(this._controls.indicatorActor);
// TODO - recalculate everything when desktop size changes // TODO - recalculate everything when desktop size changes
this.dashIconSize = this._dash.iconSize; this.dashIconSize = this._dash.iconSize;
this._dash.connect('icon-size-changed', this._dash.connect('icon-size-changed',

View File

@@ -396,111 +396,6 @@ const DashSpacer = new Lang.Class({
} }
}); });
const MessagesIndicator = new Lang.Class({
Name: 'MessagesIndicator',
_init: function(viewSelector) {
this._count = 0;
this._sources = [];
this._viewSelector = viewSelector;
this._container = new St.BoxLayout({ style_class: 'messages-indicator-contents',
reactive: true,
track_hover: true,
x_expand: true,
y_expand: true,
x_align: Clutter.ActorAlign.CENTER });
this._icon = new St.Icon({ icon_name: 'user-idle-symbolic',
icon_size: 16 });
this._container.add_actor(this._icon);
this._label = new St.Label();
this._container.add_actor(this._label);
this._highlight = new St.Widget({ style_class: 'messages-indicator-highlight',
x_expand: true,
y_expand: true,
y_align: Clutter.ActorAlign.END,
visible: false });
this._container.connect('notify::hover', Lang.bind(this,
function() {
this._highlight.visible = this._container.hover;
}));
let clickAction = new Clutter.ClickAction();
this._container.add_action(clickAction);
clickAction.connect('clicked', Lang.bind(this,
function() {
Main.messageTray.openTray();
}));
Main.messageTray.connect('showing', Lang.bind(this,
function() {
this._highlight.visible = false;
this._container.hover = false;
}));
let layout = new Clutter.BinLayout();
this.actor = new St.Widget({ layout_manager: layout,
style_class: 'messages-indicator',
y_expand: true,
y_align: Clutter.ActorAlign.END,
visible: false });
this.actor.add_actor(this._container);
this.actor.add_actor(this._highlight);
Main.messageTray.connect('source-added', Lang.bind(this, this._onSourceAdded));
Main.messageTray.connect('source-removed', Lang.bind(this, this._onSourceRemoved));
let sources = Main.messageTray.getSources();
sources.forEach(Lang.bind(this, function(source) { this._onSourceAdded(null, source); }));
this._viewSelector.connect('page-changed', Lang.bind(this, this._updateVisibility));
Main.overview.connect('showing', Lang.bind(this, this._updateVisibility));
},
_onSourceAdded: function(tray, source) {
if (source.trayIcon)
return;
source.connect('count-updated', Lang.bind(this, this._updateCount));
this._sources.push(source);
this._updateCount();
},
_onSourceRemoved: function(tray, source) {
this._sources.splice(this._sources.indexOf(source), 1);
this._updateCount();
},
_updateCount: function() {
let count = 0;
let hasChats = false;
this._sources.forEach(Lang.bind(this,
function(source) {
count += source.indicatorCount;
hasChats |= source.isChat;
}));
this._count = count;
this._label.text = ngettext("%d new message",
"%d new messages",
count).format(count);
this._icon.visible = hasChats;
this._updateVisibility();
},
_updateVisibility: function() {
let activePage = this._viewSelector.getActivePage();
let visible = ((this._count > 0) && (activePage == ViewSelector.ViewPage.WINDOWS));
this.actor.visible = visible;
}
});
const ControlsLayout = new Lang.Class({ const ControlsLayout = new Lang.Class({
Name: 'ControlsLayout', Name: 'ControlsLayout',
Extends: Clutter.BinLayout, Extends: Clutter.BinLayout,
@@ -529,9 +424,6 @@ const ControlsManager = new Lang.Class({
this.viewSelector.connect('page-changed', Lang.bind(this, this._setVisibility)); this.viewSelector.connect('page-changed', Lang.bind(this, this._setVisibility));
this.viewSelector.connect('page-empty', Lang.bind(this, this._onPageEmpty)); this.viewSelector.connect('page-empty', Lang.bind(this, this._onPageEmpty));
this._indicator = new MessagesIndicator(this.viewSelector);
this.indicatorActor = this._indicator.actor;
let layout = new ControlsLayout(); let layout = new ControlsLayout();
this.actor = new St.Widget({ layout_manager: layout, this.actor = new St.Widget({ layout_manager: layout,
reactive: true, reactive: true,

View File

@@ -862,56 +862,11 @@ const AggregateMenu = new Lang.Class({
}, },
}); });
const DateMenuButton2 = new Lang.Class({
Name: 'DateMenuButton2',
_init: function() {
this.container = new St.Widget({ layout_manager: new Clutter.BinLayout() });
this._notificationPreview = Main.messageTray.notificationPreview;
this.container.add_child(this._notificationPreview.actor);
this._notificationPreview.actor.x_expand = true;
this._notificationPreview.actor.x_align = Clutter.ActorAlign.CENTER;
this._notificationPreview.connect('updated', Lang.bind(this, this._sync));
let dateMenu = new imports.ui.dateMenu.DateMenuButton();
this._clock = dateMenu.container;
this._clock.x_expand = true;
this._clock.x_align = Clutter.ActorAlign.CENTER;
this.container.add_child(this._clock);
this._currentlyShowing = 'clock';
this._sync();
},
_show: function(which, animate) {
if (this._currentlyShowing == which)
return;
this._currentlyShowing = which;
if (this._currentlyShowing == 'clock') {
this._notificationPreview.actor.visible = false;
this._clock.visible = true;
} else if (this._currentlyShowing == 'notification') {
this._notificationPreview.actor.visible = true;
this._clock.visible = false;
}
},
_sync: function() {
if (this._currentlyShowing == 'clock' && this._notificationPreview.hasNotification)
this._show('notification', true);
else if (this._currentlyShowing == 'notification' && !this._notificationPreview.hasNotification)
this._show('clock', false);
},
});
Signals.addSignalMethods(DateMenuButton2.prototype);
const PANEL_ITEM_IMPLEMENTATIONS = { const PANEL_ITEM_IMPLEMENTATIONS = {
'activities': ActivitiesButton, 'activities': ActivitiesButton,
'aggregateMenu': AggregateMenu, 'aggregateMenu': AggregateMenu,
'appMenu': AppMenuButton, 'appMenu': AppMenuButton,
'dateMenu': DateMenuButton2, 'dateMenu': imports.ui.dateMenu.DateMenuButton,
'a11y': imports.ui.status.accessibility.ATIndicator, 'a11y': imports.ui.status.accessibility.ATIndicator,
'a11yGreeter': imports.ui.status.accessibility.ATGreeterIndicator, 'a11yGreeter': imports.ui.status.accessibility.ATGreeterIndicator,
'keyboard': imports.ui.status.keyboard.InputSourceIndicator, 'keyboard': imports.ui.status.keyboard.InputSourceIndicator,

View File

@@ -41,7 +41,8 @@ const ButtonBox = new Lang.Class({
}, },
_getPreferredWidth: function(actor, forHeight, alloc) { _getPreferredWidth: function(actor, forHeight, alloc) {
let child = actor.get_first_child(); let children = actor.get_children();
let child = children.length > 0 ? children[0] : null;
if (child) { if (child) {
[alloc.min_size, alloc.natural_size] = child.get_preferred_width(-1); [alloc.min_size, alloc.natural_size] = child.get_preferred_width(-1);
@@ -54,7 +55,8 @@ const ButtonBox = new Lang.Class({
}, },
_getPreferredHeight: function(actor, forWidth, alloc) { _getPreferredHeight: function(actor, forWidth, alloc) {
let child = actor.get_first_child(); let children = actor.get_children();
let child = children.length > 0 ? children[0] : null;
if (child) { if (child) {
[alloc.min_size, alloc.natural_size] = child.get_preferred_height(-1); [alloc.min_size, alloc.natural_size] = child.get_preferred_height(-1);
@@ -64,11 +66,13 @@ const ButtonBox = new Lang.Class({
}, },
_allocate: function(actor, box, flags) { _allocate: function(actor, box, flags) {
let child = actor.get_first_child(); let children = actor.get_children();
if (!child) if (children.length == 0)
return; return;
let child = children[0];
let [minWidth, natWidth] = child.get_preferred_width(-1); let [minWidth, natWidth] = child.get_preferred_width(-1);
let [minHeight, natHeight] = child.get_preferred_height(-1);
let availWidth = box.x2 - box.x1; let availWidth = box.x2 - box.x1;
let availHeight = box.y2 - box.y1; let availHeight = box.y2 - box.y1;

View File

@@ -68,13 +68,6 @@ const ScreenshotService = new Lang.Class({
Gio.DBus.session.own_name('org.gnome.Shell.Screenshot', Gio.BusNameOwnerFlags.REPLACE, null, null); Gio.DBus.session.own_name('org.gnome.Shell.Screenshot', Gio.BusNameOwnerFlags.REPLACE, null, null);
}, },
_checkArea: function(x, y, width, height) {
return x >= 0 && y >= 0 &&
width > 0 && height > 0 &&
x + width <= global.screen_width &&
y + height <= global.screen_height;
},
_onScreenshotComplete: function(obj, result, area, filenameUsed, flash, invocation) { _onScreenshotComplete: function(obj, result, area, filenameUsed, flash, invocation) {
if (flash && result) { if (flash && result) {
let flashspot = new Flashspot(area); let flashspot = new Flashspot(area);
@@ -87,10 +80,11 @@ const ScreenshotService = new Lang.Class({
ScreenshotAreaAsync : function (params, invocation) { ScreenshotAreaAsync : function (params, invocation) {
let [x, y, width, height, flash, filename, callback] = params; let [x, y, width, height, flash, filename, callback] = params;
if (!this._checkArea(x, y, width, height)) { if (x < 0 || y < 0 ||
invocation.return_error_literal(Gio.IOErrorEnum, width <= 0 || height <= 0 ||
Gio.IOErrorEnum.CANCELLED, x + width > global.screen_width || y + height > global.screen_height) {
"Invalid params"); invocation.return_error_literal(Gio.IOErrorEnum, Gio.IOErrorEnum.CANCELLED,
"Invalid params");
return; return;
} }
let screenshot = new Shell.Screenshot(); let screenshot = new Shell.Screenshot();
@@ -132,17 +126,9 @@ const ScreenshotService = new Lang.Class({
})); }));
}, },
FlashAreaAsync: function(params, invocation) { FlashArea: function(x, y, width, height) {
let [x, y, width, height] = params;
if (!this._checkArea(x, y, width, height)) {
invocation.return_error_literal(Gio.IOErrorEnum,
Gio.IOErrorEnum.CANCELLED,
"Invalid params");
return;
}
let flashspot = new Flashspot({ x : x, y : y, width: width, height: height}); let flashspot = new Flashspot({ x : x, y : y, width: width, height: height});
flashspot.fire(); flashspot.fire();
invocation.return_value(null);
} }
}); });

View File

@@ -18,6 +18,7 @@ const _modes = {
'restrictive': { 'restrictive': {
parentMode: null, parentMode: null,
stylesheetName: 'gnome-shell.css', stylesheetName: 'gnome-shell.css',
overridesSchema: 'org.gnome.shell.overrides',
hasOverview: false, hasOverview: false,
showCalendarEvents: false, showCalendarEvents: false,
allowSettings: false, allowSettings: false,

View File

@@ -253,6 +253,7 @@ const ShellUnmountNotifier = new Lang.Class({
if (!this._notification) { if (!this._notification) {
this._notification = new MessageTray.Notification(this, header, text); this._notification = new MessageTray.Notification(this, header, text);
this._notification.setTransient(true);
this._notification.setUrgency(MessageTray.Urgency.CRITICAL); this._notification.setUrgency(MessageTray.Urgency.CRITICAL);
} else { } else {
this._notification.update(header, text); this._notification.update(header, text);
@@ -269,6 +270,7 @@ const ShellUnmountNotifier = new Lang.Class({
if (message) { if (message) {
let notification = new MessageTray.Notification(this, message, null); let notification = new MessageTray.Notification(this, message, null);
notification.setTransient(true);
this.notify(notification); this.notify(notification);
} }

View File

@@ -1632,6 +1632,7 @@ const NMApplet = new Lang.Class({
let gicon = new Gio.ThemedIcon({ name: iconName }); let gicon = new Gio.ThemedIcon({ name: iconName });
this._notification = new MessageTray.Notification(this._source, title, text, { gicon: gicon }); this._notification = new MessageTray.Notification(this._source, title, text, { gicon: gicon });
this._notification.setUrgency(urgency); this._notification.setUrgency(urgency);
this._notification.setTransient(true);
this._notification.connect('destroy', function() { this._notification.connect('destroy', function() {
this._notification = null; this._notification = null;
}); });

View File

@@ -285,10 +285,10 @@ const ViewSelector = new Lang.Class({
} else if (!this._searchActive && !global.stage.key_focus) { } else if (!this._searchActive && !global.stage.key_focus) {
if (symbol == Clutter.Tab || symbol == Clutter.Down) { if (symbol == Clutter.Tab || symbol == Clutter.Down) {
this._activePage.navigate_focus(null, Gtk.DirectionType.TAB_FORWARD, false); this._activePage.navigate_focus(null, Gtk.DirectionType.TAB_FORWARD, false);
return Clutter.EVENT_STOP; return true;
} else if (symbol == Clutter.ISO_Left_Tab) { } else if (symbol == Clutter.ISO_Left_Tab) {
this._activePage.navigate_focus(null, Gtk.DirectionType.TAB_BACKWARD, false); this._activePage.navigate_focus(null, Gtk.DirectionType.TAB_BACKWARD, false);
return Clutter.EVENT_STOP; return true;
} }
} }
return Clutter.EVENT_PROPAGATE; return Clutter.EVENT_PROPAGATE;

View File

@@ -199,19 +199,12 @@ const WorkspaceTracker = new Lang.Class({
global.screen.connect('window-left-monitor', Lang.bind(this, this._windowLeftMonitor)); global.screen.connect('window-left-monitor', Lang.bind(this, this._windowLeftMonitor));
global.screen.connect('restacked', Lang.bind(this, this._windowsRestacked)); global.screen.connect('restacked', Lang.bind(this, this._windowsRestacked));
this._workspaceSettings = this._getWorkspaceSettings(); this._workspaceSettings = new Gio.Settings({ schema: Main.dynamicWorkspacesSchema });
this._workspaceSettings.connect('changed::dynamic-workspaces', Lang.bind(this, this._queueCheckWorkspaces)); this._workspaceSettings.connect('changed::dynamic-workspaces', Lang.bind(this, this._queueCheckWorkspaces));
this._nWorkspacesChanged(); this._nWorkspacesChanged();
}, },
_getWorkspaceSettings: function() {
let settings = global.get_overrides_settings();
if (settings.list_keys().indexOf('dynamic-workspaces') > -1)
return settings;
return new Gio.Settings({ schema: 'org.gnome.mutter' });
},
_checkWorkspaces: function() { _checkWorkspaces: function() {
let i; let i;
let emptyWorkspaces = []; let emptyWorkspaces = [];

209
po/es.po
View File

@@ -10,8 +10,8 @@ msgstr ""
"Project-Id-Version: gnome-shell.master\n" "Project-Id-Version: gnome-shell.master\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=general\n" "shell&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2014-06-11 07:31+0000\n" "POT-Creation-Date: 2014-05-20 07:27+0000\n"
"PO-Revision-Date: 2014-06-12 17:23+0200\n" "PO-Revision-Date: 2014-05-20 19:10+0200\n"
"Last-Translator: Daniel Mustieles <daniel.mustieles@gmail.com>\n" "Last-Translator: Daniel Mustieles <daniel.mustieles@gmail.com>\n"
"Language-Team: Español; Castellano <gnome-es-list@gnome.org>\n" "Language-Team: Español; Castellano <gnome-es-list@gnome.org>\n"
"Language: es\n" "Language: es\n"
@@ -55,6 +55,7 @@ msgid "Window management and application launching"
msgstr "Gestión de ventanas e inicio de aplicaciones" msgstr "Gestión de ventanas e inicio de aplicaciones"
#: ../data/gnome-shell-extension-prefs.desktop.in.in.h:1 #: ../data/gnome-shell-extension-prefs.desktop.in.in.h:1
#: ../js/extensionPrefs/main.js:155
msgid "GNOME Shell Extension Preferences" msgid "GNOME Shell Extension Preferences"
msgstr "Preferencias de las extensiones de GNOME Shell" msgstr "Preferencias de las extensiones de GNOME Shell"
@@ -269,33 +270,49 @@ msgstr ""
"Esta clave sobrescribe la clave en org.gnome.mutter al ejecutar GNOME Shell." "Esta clave sobrescribe la clave en org.gnome.mutter al ejecutar GNOME Shell."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:35 #: ../data/org.gnome.shell.gschema.xml.in.in.h:35
msgid "Arrangement of buttons on the titlebar"
msgstr "Orden de los botones en la barra de título"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:36
msgid ""
"This key overrides the key in org.gnome.desktop.wm.preferences when running "
"GNOME Shell."
msgstr ""
"Esta clave sobrescribe la clave en org.gnome.desktop.wm.preferences al "
"ejecutar GNOME Shell."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37
msgid "Enable edge tiling when dropping windows on screen edges" msgid "Enable edge tiling when dropping windows on screen edges"
msgstr "" msgstr ""
"Activar el mosaico en los bordes al arrastrar ventanas a los bordes de la " "Activar el mosaico en los bordes al arrastrar ventanas a los bordes de la "
"ventana" "ventana"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:36 #: ../data/org.gnome.shell.gschema.xml.in.in.h:38
msgid "Workspaces are managed dynamically" msgid "Workspaces are managed dynamically"
msgstr "Las áreas de trabajo se gestionan dinámicamente" msgstr "Las áreas de trabajo se gestionan dinámicamente"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37 #: ../data/org.gnome.shell.gschema.xml.in.in.h:39
msgid "Workspaces only on primary monitor" msgid "Workspaces only on primary monitor"
msgstr "Áreas de trabajo solo en la pantalla principal" msgstr "Áreas de trabajo solo en la pantalla principal"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:38 #: ../data/org.gnome.shell.gschema.xml.in.in.h:40
msgid "Delay focus changes in mouse mode until the pointer stops moving" msgid "Delay focus changes in mouse mode until the pointer stops moving"
msgstr "" msgstr ""
"Retardo al cambiar el foco del ratón hasta que el puntero deja de moverse" "Retardo al cambiar el foco del ratón hasta que el puntero deja de moverse"
#: ../js/extensionPrefs/main.js:125 #: ../js/extensionPrefs/main.js:127
#, javascript-format #, javascript-format
msgid "There was an error loading the preferences dialog for %s:" msgid "There was an error loading the preferences dialog for %s:"
msgstr "Hubo un error al lanzar el diálogo de preferencias para %s:" msgstr "Hubo un error al lanzar el diálogo de preferencias para %s:"
#: ../js/extensionPrefs/main.js:157 #: ../js/extensionPrefs/main.js:167
#| msgid "Configure GNOME Shell Extensions" msgid "Extension"
msgid "GNOME Shell Extensions" msgstr "Extensión"
msgstr "Extensiones de GNOME Shell"
#: ../js/extensionPrefs/main.js:191
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/authPrompt.js:147 ../js/ui/components/networkAgent.js:136 #: ../js/gdm/authPrompt.js:147 ../js/ui/components/networkAgent.js:136
#: ../js/ui/components/polkitAgent.js:166 ../js/ui/endSessionDialog.js:429 #: ../js/ui/components/polkitAgent.js:166 ../js/ui/endSessionDialog.js:429
@@ -318,25 +335,25 @@ msgctxt "button"
msgid "Sign In" msgid "Sign In"
msgstr "Iniciar sesión" msgstr "Iniciar sesión"
#: ../js/gdm/loginDialog.js:269 #: ../js/gdm/loginDialog.js:271
msgid "Choose Session" msgid "Choose Session"
msgstr "Elegir sesión" msgstr "Elegir sesión"
#: ../js/gdm/loginDialog.js:429 #: ../js/gdm/loginDialog.js:431
msgid "Not listed?" msgid "Not listed?"
msgstr "¿No está en la lista?" msgstr "¿No está en la lista?"
#: ../js/gdm/loginDialog.js:614 #: ../js/gdm/loginDialog.js:616
#, javascript-format #, javascript-format
msgid "(e.g., user or %s)" msgid "(e.g., user or %s)"
msgstr "(ej., usuario o %s)" msgstr "(ej., usuario o %s)"
#: ../js/gdm/loginDialog.js:619 ../js/ui/components/networkAgent.js:262 #: ../js/gdm/loginDialog.js:621 ../js/ui/components/networkAgent.js:262
#: ../js/ui/components/networkAgent.js:280 #: ../js/ui/components/networkAgent.js:280
msgid "Username: " msgid "Username: "
msgstr "Nombre de usuario:" msgstr "Nombre de usuario:"
#: ../js/gdm/loginDialog.js:922 #: ../js/gdm/loginDialog.js:924
msgid "Login Window" msgid "Login Window"
msgstr "Ventana de inicio de sesión" msgstr "Ventana de inicio de sesión"
@@ -524,11 +541,11 @@ msgctxt "list saturday"
msgid "S" msgid "S"
msgstr "S" msgstr "S"
#: ../js/ui/calendar.js:454 #: ../js/ui/calendar.js:453
msgid "Previous month" msgid "Previous month"
msgstr "Mes anterior" msgstr "Mes anterior"
#: ../js/ui/calendar.js:464 #: ../js/ui/calendar.js:463
msgid "Next month" msgid "Next month"
msgstr "Siguiente mes" msgstr "Siguiente mes"
@@ -714,77 +731,77 @@ msgid "Mute"
msgstr "Silenciar" msgstr "Silenciar"
#. Translators: Time in 24h format */ #. Translators: Time in 24h format */
#: ../js/ui/components/telepathyClient.js:957 #: ../js/ui/components/telepathyClient.js:958
msgid "%H%M" msgid "%H%M"
msgstr "%H%M" msgstr "%H%M"
#. Translators: this is the word "Yesterday" followed by a #. Translators: this is the word "Yesterday" followed by a
#. time string in 24h format. i.e. "Yesterday, 14:30" */ #. time string in 24h format. i.e. "Yesterday, 14:30" */
#: ../js/ui/components/telepathyClient.js:964 #: ../js/ui/components/telepathyClient.js:965
msgid "Yesterday, %H%M" msgid "Yesterday, %H%M"
msgstr "Ayer, %H%M" msgstr "Ayer, %H%M"
#. Translators: this is the week day name followed by a time #. Translators: this is the week day name followed by a time
#. string in 24h format. i.e. "Monday, 14:30" */ #. string in 24h format. i.e. "Monday, 14:30" */
#: ../js/ui/components/telepathyClient.js:971 #: ../js/ui/components/telepathyClient.js:972
msgid "%A, %H%M" msgid "%A, %H%M"
msgstr "%A, %H%M" msgstr "%A, %H%M"
#. Translators: this is the month name and day number #. Translators: this is the month name and day number
#. followed by a time string in 24h format. #. followed by a time string in 24h format.
#. i.e. "May 25, 14:30" */ #. i.e. "May 25, 14:30" */
#: ../js/ui/components/telepathyClient.js:978 #: ../js/ui/components/telepathyClient.js:979
msgid "%B %d, %H%M" msgid "%B %d, %H%M"
msgstr "%d de %B, %H%M" msgstr "%d de %B, %H%M"
#. Translators: this is the month name, day number, year #. Translators: this is the month name, day number, year
#. number followed by a time string in 24h format. #. number followed by a time string in 24h format.
#. i.e. "May 25 2012, 14:30" */ #. i.e. "May 25 2012, 14:30" */
#: ../js/ui/components/telepathyClient.js:984 #: ../js/ui/components/telepathyClient.js:985
msgid "%B %d %Y, %H%M" msgid "%B %d %Y, %H%M"
msgstr "%d de %B de %Y, %H%M" msgstr "%d de %B de %Y, %H%M"
#. Translators: Time in 24h format */ #. Translators: Time in 24h format */
#: ../js/ui/components/telepathyClient.js:990 #: ../js/ui/components/telepathyClient.js:994
msgid "%l%M %p" msgid "%l%M %p"
msgstr "%l%M %p" msgstr "%l%M %p"
#. Translators: this is the word "Yesterday" followed by a #. Translators: this is the word "Yesterday" followed by a
#. time string in 12h format. i.e. "Yesterday, 2:30 pm" */ #. time string in 12h format. i.e. "Yesterday, 2:30 pm" */
#: ../js/ui/components/telepathyClient.js:997 #: ../js/ui/components/telepathyClient.js:1001
msgid "Yesterday, %l%M %p" msgid "Yesterday, %l%M %p"
msgstr "Ayer a las %l%M %p" msgstr "Ayer a las %l%M %p"
#. Translators: this is the week day name followed by a time #. Translators: this is the week day name followed by a time
#. string in 12h format. i.e. "Monday, 2:30 pm" */ #. string in 12h format. i.e. "Monday, 2:30 pm" */
#: ../js/ui/components/telepathyClient.js:1004 #: ../js/ui/components/telepathyClient.js:1008
msgid "%A, %l%M %p" msgid "%A, %l%M %p"
msgstr "%A, %l%M %p" msgstr "%A, %l%M %p"
#. Translators: this is the month name and day number #. Translators: this is the month name and day number
#. followed by a time string in 12h format. #. followed by a time string in 12h format.
#. i.e. "May 25, 2:30 pm" */ #. i.e. "May 25, 2:30 pm" */
#: ../js/ui/components/telepathyClient.js:1011 #: ../js/ui/components/telepathyClient.js:1015
msgid "%B %d, %l%M %p" msgid "%B %d, %l%M %p"
msgstr "%d de %B, %l%M %p" msgstr "%d de %B, %l%M %p"
#. Translators: this is the month name, day number, year #. Translators: this is the month name, day number, year
#. number followed by a time string in 12h format. #. number followed by a time string in 12h format.
#. i.e. "May 25 2012, 2:30 pm"*/ #. i.e. "May 25 2012, 2:30 pm"*/
#: ../js/ui/components/telepathyClient.js:1017 #: ../js/ui/components/telepathyClient.js:1021
msgid "%B %d %Y, %l%M %p" msgid "%B %d %Y, %l%M %p"
msgstr "%d de %B de %Y, %l%M %p" msgstr "%d de %B de %Y, %l%M %p"
#. Translators: this is the other person changing their old IM name to their new #. Translators: this is the other person changing their old IM name to their new
#. IM name. */ #. IM name. */
#: ../js/ui/components/telepathyClient.js:1049 #: ../js/ui/components/telepathyClient.js:1054
#, javascript-format #, javascript-format
msgid "%s is now known as %s" msgid "%s is now known as %s"
msgstr "Ahora %s se llama %s" msgstr "Ahora %s se llama %s"
#. translators: argument is a room name like #. translators: argument is a room name like
#. * room@jabber.org for example. */ #. * room@jabber.org for example. */
#: ../js/ui/components/telepathyClient.js:1153 #: ../js/ui/components/telepathyClient.js:1158
#, javascript-format #, javascript-format
msgid "Invitation to %s" msgid "Invitation to %s"
msgstr "Invitación a %s" msgstr "Invitación a %s"
@@ -792,38 +809,38 @@ msgstr "Invitación a %s"
#. translators: first argument is the name of a contact and the second #. 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 #. * one the name of a room. "Alice is inviting you to join room@jabber.org
#. * for example. */ #. * for example. */
#: ../js/ui/components/telepathyClient.js:1161 #: ../js/ui/components/telepathyClient.js:1166
#, javascript-format #, javascript-format
msgid "%s is inviting you to join %s" msgid "%s is inviting you to join %s"
msgstr "%s le está invitando a unirse a %s" msgstr "%s le está invitando a unirse a %s"
#: ../js/ui/components/telepathyClient.js:1163 #: ../js/ui/components/telepathyClient.js:1168
#: ../js/ui/components/telepathyClient.js:1198 #: ../js/ui/components/telepathyClient.js:1203
#: ../js/ui/components/telepathyClient.js:1232 #: ../js/ui/components/telepathyClient.js:1237
#: ../js/ui/components/telepathyClient.js:1290 #: ../js/ui/components/telepathyClient.js:1295
msgid "Decline" msgid "Decline"
msgstr "Rechazar" msgstr "Rechazar"
#: ../js/ui/components/telepathyClient.js:1169 #: ../js/ui/components/telepathyClient.js:1174
#: ../js/ui/components/telepathyClient.js:1238 #: ../js/ui/components/telepathyClient.js:1243
#: ../js/ui/components/telepathyClient.js:1295 #: ../js/ui/components/telepathyClient.js:1300
msgid "Accept" msgid "Accept"
msgstr "Aceptar" msgstr "Aceptar"
#. translators: argument is a contact name like Alice for example. */ #. translators: argument is a contact name like Alice for example. */
#: ../js/ui/components/telepathyClient.js:1188 #: ../js/ui/components/telepathyClient.js:1193
#, javascript-format #, javascript-format
msgid "Video call from %s" msgid "Video call from %s"
msgstr "Videollamada de %s" msgstr "Videollamada de %s"
#. translators: argument is a contact name like Alice for example. */ #. translators: argument is a contact name like Alice for example. */
#: ../js/ui/components/telepathyClient.js:1191 #: ../js/ui/components/telepathyClient.js:1196
#, javascript-format #, javascript-format
msgid "Call from %s" msgid "Call from %s"
msgstr "Llamada de %s" msgstr "Llamada de %s"
#. translators: this is a button label (verb), not a noun */ #. translators: this is a button label (verb), not a noun */
#: ../js/ui/components/telepathyClient.js:1205 #: ../js/ui/components/telepathyClient.js:1210
msgid "Answer" msgid "Answer"
msgstr "Responder" msgstr "Responder"
@@ -832,112 +849,112 @@ msgstr "Responder"
#. * file name. The string will be something #. * file name. The string will be something
#. * like: "Alice is sending you test.ogg" #. * like: "Alice is sending you test.ogg"
#. */ #. */
#: ../js/ui/components/telepathyClient.js:1226 #: ../js/ui/components/telepathyClient.js:1231
#, javascript-format #, javascript-format
msgid "%s is sending you %s" msgid "%s is sending you %s"
msgstr "%s le está enviando %s" msgstr "%s le está enviando %s"
#. To translators: The parameter is the contact's alias */ #. To translators: The parameter is the contact's alias */
#: ../js/ui/components/telepathyClient.js:1255 #: ../js/ui/components/telepathyClient.js:1260
#, javascript-format #, javascript-format
msgid "%s would like permission to see when you are online" msgid "%s would like permission to see when you are online"
msgstr "%s solicita permiso para ver cuándo está en línea" msgstr "%s solicita permiso para ver cuándo está en línea"
#: ../js/ui/components/telepathyClient.js:1341 #: ../js/ui/components/telepathyClient.js:1346
msgid "Network error" msgid "Network error"
msgstr "Error de la red" msgstr "Error de la red"
#: ../js/ui/components/telepathyClient.js:1343 #: ../js/ui/components/telepathyClient.js:1348
msgid "Authentication failed" msgid "Authentication failed"
msgstr "Falló la autenticación" msgstr "Falló la autenticación"
#: ../js/ui/components/telepathyClient.js:1345 #: ../js/ui/components/telepathyClient.js:1350
msgid "Encryption error" msgid "Encryption error"
msgstr "Error de cifrado" msgstr "Error de cifrado"
#: ../js/ui/components/telepathyClient.js:1347 #: ../js/ui/components/telepathyClient.js:1352
msgid "Certificate not provided" msgid "Certificate not provided"
msgstr "Certificado no proporcionado" msgstr "Certificado no proporcionado"
#: ../js/ui/components/telepathyClient.js:1349 #: ../js/ui/components/telepathyClient.js:1354
msgid "Certificate untrusted" msgid "Certificate untrusted"
msgstr "No se confía en el certificado" msgstr "No se confía en el certificado"
#: ../js/ui/components/telepathyClient.js:1351 #: ../js/ui/components/telepathyClient.js:1356
msgid "Certificate expired" msgid "Certificate expired"
msgstr "Certificado caducado" msgstr "Certificado caducado"
#: ../js/ui/components/telepathyClient.js:1353 #: ../js/ui/components/telepathyClient.js:1358
msgid "Certificate not activated" msgid "Certificate not activated"
msgstr "Certificado no activado" msgstr "Certificado no activado"
#: ../js/ui/components/telepathyClient.js:1355 #: ../js/ui/components/telepathyClient.js:1360
msgid "Certificate hostname mismatch" msgid "Certificate hostname mismatch"
msgstr "El nombre del servidor dle certificado no coincide" msgstr "El nombre del servidor dle certificado no coincide"
#: ../js/ui/components/telepathyClient.js:1357 #: ../js/ui/components/telepathyClient.js:1362
msgid "Certificate fingerprint mismatch" msgid "Certificate fingerprint mismatch"
msgstr "La huella del certificado no coincide" msgstr "La huella del certificado no coincide"
#: ../js/ui/components/telepathyClient.js:1359 #: ../js/ui/components/telepathyClient.js:1364
msgid "Certificate self-signed" msgid "Certificate self-signed"
msgstr "Certificado autofirmado" msgstr "Certificado autofirmado"
#: ../js/ui/components/telepathyClient.js:1361 #: ../js/ui/components/telepathyClient.js:1366
msgid "Status is set to offline" msgid "Status is set to offline"
msgstr "El estado está establecido a «desconectado»" msgstr "El estado está establecido a «desconectado»"
#: ../js/ui/components/telepathyClient.js:1363 #: ../js/ui/components/telepathyClient.js:1368
msgid "Encryption is not available" msgid "Encryption is not available"
msgstr "El cifrado no está disponible" msgstr "El cifrado no está disponible"
#: ../js/ui/components/telepathyClient.js:1365 #: ../js/ui/components/telepathyClient.js:1370
msgid "Certificate is invalid" msgid "Certificate is invalid"
msgstr "El certificado no es válido" msgstr "El certificado no es válido"
#: ../js/ui/components/telepathyClient.js:1367 #: ../js/ui/components/telepathyClient.js:1372
msgid "Connection has been refused" msgid "Connection has been refused"
msgstr "Se ha rechazado la conexión" msgstr "Se ha rechazado la conexión"
#: ../js/ui/components/telepathyClient.js:1369 #: ../js/ui/components/telepathyClient.js:1374
msgid "Connection can't be established" msgid "Connection can't be established"
msgstr "No se puede establecer la conexión" msgstr "No se puede establecer la conexión"
#: ../js/ui/components/telepathyClient.js:1371 #: ../js/ui/components/telepathyClient.js:1376
msgid "Connection has been lost" msgid "Connection has been lost"
msgstr "Se ha perdido la conexión" msgstr "Se ha perdido la conexión"
#: ../js/ui/components/telepathyClient.js:1373 #: ../js/ui/components/telepathyClient.js:1378
msgid "This account is already connected to the server" msgid "This account is already connected to the server"
msgstr "Esta cuenta ya está conectada al servidor" msgstr "Esta cuenta ya está conectada al servidor"
#: ../js/ui/components/telepathyClient.js:1375 #: ../js/ui/components/telepathyClient.js:1380
msgid "" msgid ""
"Connection has been replaced by a new connection using the same resource" "Connection has been replaced by a new connection using the same resource"
msgstr "" msgstr ""
"Se ha sustituido la conexión por una nueva conexión usando el mismo recurso" "Se ha sustituido la conexión por una nueva conexión usando el mismo recurso"
#: ../js/ui/components/telepathyClient.js:1377 #: ../js/ui/components/telepathyClient.js:1382
msgid "The account already exists on the server" msgid "The account already exists on the server"
msgstr "La cuenta ya existe en el servidor" msgstr "La cuenta ya existe en el servidor"
#: ../js/ui/components/telepathyClient.js:1379 #: ../js/ui/components/telepathyClient.js:1384
msgid "Server is currently too busy to handle the connection" msgid "Server is currently too busy to handle the connection"
msgstr "" msgstr ""
"Actualmente el servidor está muy ocupado intentando gestionar la conexión" "Actualmente el servidor está muy ocupado intentando gestionar la conexión"
#: ../js/ui/components/telepathyClient.js:1381 #: ../js/ui/components/telepathyClient.js:1386
msgid "Certificate has been revoked" msgid "Certificate has been revoked"
msgstr "Se ha revocado el certificado" msgstr "Se ha revocado el certificado"
#: ../js/ui/components/telepathyClient.js:1383 #: ../js/ui/components/telepathyClient.js:1388
msgid "" msgid ""
"Certificate uses an insecure cipher algorithm or is cryptographically weak" "Certificate uses an insecure cipher algorithm or is cryptographically weak"
msgstr "" msgstr ""
"El certificado usa un algoritmo de cifrado inseguro o es criptográficamente " "El certificado usa un algoritmo de cifrado inseguro o es criptográficamente "
"débil" "débil"
#: ../js/ui/components/telepathyClient.js:1385 #: ../js/ui/components/telepathyClient.js:1390
msgid "" msgid ""
"The length of the server certificate, or the depth of the server certificate " "The length of the server certificate, or the depth of the server certificate "
"chain, exceed the limits imposed by the cryptography library" "chain, exceed the limits imposed by the cryptography library"
@@ -946,22 +963,22 @@ msgstr ""
"certificado del servidor exceden los límites impuestos por la biblioteca de " "certificado del servidor exceden los límites impuestos por la biblioteca de "
"criptografía" "criptografía"
#: ../js/ui/components/telepathyClient.js:1387 #: ../js/ui/components/telepathyClient.js:1392
msgid "Internal error" msgid "Internal error"
msgstr "Error interno" msgstr "Error interno"
#. translators: argument is the account name, like #. translators: argument is the account name, like
#. * name@jabber.org for example. */ #. * name@jabber.org for example. */
#: ../js/ui/components/telepathyClient.js:1397 #: ../js/ui/components/telepathyClient.js:1402
#, javascript-format #, javascript-format
msgid "Unable to connect to %s" msgid "Unable to connect to %s"
msgstr "No se pudo conectar a %s" msgstr "No se pudo conectar a %s"
#: ../js/ui/components/telepathyClient.js:1402 #: ../js/ui/components/telepathyClient.js:1407
msgid "View account" msgid "View account"
msgstr "Ver cuenta" msgstr "Ver cuenta"
#: ../js/ui/components/telepathyClient.js:1439 #: ../js/ui/components/telepathyClient.js:1444
msgid "Unknown reason" msgid "Unknown reason"
msgstr "Razón desconocida" msgstr "Razón desconocida"
@@ -1136,7 +1153,7 @@ msgstr "Instalar"
msgid "Download and install “%s” from extensions.gnome.org?" msgid "Download and install “%s” from extensions.gnome.org?"
msgstr "¿Descargar e instalar «%s» desde extensions.gnome.org?" msgstr "¿Descargar e instalar «%s» desde extensions.gnome.org?"
#: ../js/ui/keyboard.js:645 ../js/ui/status/keyboard.js:339 #: ../js/ui/keyboard.js:645 ../js/ui/status/keyboard.js:335
msgid "Keyboard" msgid "Keyboard"
msgstr "Teclado" msgstr "Teclado"
@@ -1270,7 +1287,7 @@ msgstr "Actividades"
msgid "Top Bar" msgid "Top Bar"
msgstr "Barra superior" msgstr "Barra superior"
#: ../js/ui/popupMenu.js:279 #: ../js/ui/popupMenu.js:271
msgid "toggle-switch-us" msgid "toggle-switch-us"
msgstr "toggle-switch-intl" msgstr "toggle-switch-intl"
@@ -1278,7 +1295,7 @@ msgstr "toggle-switch-intl"
msgid "Enter a Command" msgid "Enter a Command"
msgstr "Introducir un comando" msgstr "Introducir un comando"
#: ../js/ui/runDialog.js:114 ../js/ui/windowMenu.js:120 #: ../js/ui/runDialog.js:114 ../js/ui/windowMenu.js:117
msgid "Close" msgid "Close"
msgstr "Cerrar" msgstr "Cerrar"
@@ -1417,7 +1434,7 @@ msgstr "No conectado"
msgid "Brightness" msgid "Brightness"
msgstr "Brillo" msgstr "Brillo"
#: ../js/ui/status/keyboard.js:407 #: ../js/ui/status/keyboard.js:403
msgid "Show Keyboard Layout" msgid "Show Keyboard Layout"
msgstr "Mostrar la distribución del teclado" msgstr "Mostrar la distribución del teclado"
@@ -1703,43 +1720,43 @@ msgid_plural "Settings changes will revert in %d seconds"
msgstr[0] "La configuración se revertirá en %d segundo" msgstr[0] "La configuración se revertirá en %d segundo"
msgstr[1] "La configuración se revertirá en %d segundos" msgstr[1] "La configuración se revertirá en %d segundos"
#: ../js/ui/windowMenu.js:34 #: ../js/ui/windowMenu.js:33
msgid "Minimize" msgid "Minimize"
msgstr "Minimizar" msgstr "Minimizar"
#: ../js/ui/windowMenu.js:41 #: ../js/ui/windowMenu.js:40
msgid "Unmaximize" msgid "Unmaximize"
msgstr "Desmaximizar" msgstr "Desmaximizar"
#: ../js/ui/windowMenu.js:45 #: ../js/ui/windowMenu.js:44
msgid "Maximize" msgid "Maximize"
msgstr "Maximizar" msgstr "Maximizar"
#: ../js/ui/windowMenu.js:52 #: ../js/ui/windowMenu.js:51
msgid "Move" msgid "Move"
msgstr "Mover" msgstr "Mover"
#: ../js/ui/windowMenu.js:58 #: ../js/ui/windowMenu.js:57
msgid "Resize" msgid "Resize"
msgstr "Redimensionar" msgstr "Redimensionar"
#: ../js/ui/windowMenu.js:65 #: ../js/ui/windowMenu.js:64
msgid "Move Titlebar Onscreen" msgid "Move Titlebar Onscreen"
msgstr "Mover la barra de título a la pantalla" msgstr "Mover la barra de título a la pantalla"
#: ../js/ui/windowMenu.js:70 #: ../js/ui/windowMenu.js:69
msgid "Always on Top" msgid "Always on Top"
msgstr "Siempre encima" msgstr "Siempre encima"
#: ../js/ui/windowMenu.js:89 #: ../js/ui/windowMenu.js:86
msgid "Always on Visible Workspace" msgid "Always on Visible Workspace"
msgstr "Siempre en el área de trabajo visible" msgstr "Siempre en el área de trabajo visible"
#: ../js/ui/windowMenu.js:106 #: ../js/ui/windowMenu.js:103
msgid "Move to Workspace Up" msgid "Move to Workspace Up"
msgstr "Subir a un área de trabajo" msgstr "Subir a un área de trabajo"
#: ../js/ui/windowMenu.js:111 #: ../js/ui/windowMenu.js:108
msgid "Move to Workspace Down" msgid "Move to Workspace Down"
msgstr "Bajar a un área de trabajo" msgstr "Bajar a un área de trabajo"
@@ -1769,21 +1786,21 @@ msgstr[1] "%u entradas"
msgid "System Sounds" msgid "System Sounds"
msgstr "Sonidos del sistema" msgstr "Sonidos del sistema"
#: ../src/main.c:371 #: ../src/main.c:349
msgid "Print version" msgid "Print version"
msgstr "Imprimir versión" msgstr "Imprimir versión"
#: ../src/main.c:377 #: ../src/main.c:355
msgid "Mode used by GDM for login screen" msgid "Mode used by GDM for login screen"
msgstr "Modo usado por GDM para la pantalla de inicio" msgstr "Modo usado por GDM para la pantalla de inicio"
#: ../src/main.c:383 #: ../src/main.c:361
msgid "Use a specific mode, e.g. \"gdm\" for login screen" msgid "Use a specific mode, e.g. \"gdm\" for login screen"
msgstr "" msgstr ""
"Usar un modo específico, por ejemplo, «gdm» para la pantalla de inicio de " "Usar un modo específico, por ejemplo, «gdm» para la pantalla de inicio de "
"sesión" "sesión"
#: ../src/main.c:389 #: ../src/main.c:367
msgid "List possible modes" msgid "List possible modes"
msgstr "Listar los modos posibles" msgstr "Listar los modos posibles"
@@ -1804,24 +1821,6 @@ msgstr "La contraseña no puede estar vacía"
msgid "Authentication dialog was dismissed by the user" msgid "Authentication dialog was dismissed by the user"
msgstr "El usuario rechazó el diálogo de autenticación" msgstr "El usuario rechazó el diálogo de autenticación"
#~ msgid "Arrangement of buttons on the titlebar"
#~ msgstr "Orden de los botones en la barra de título"
#~ msgid ""
#~ "This key overrides the key in org.gnome.desktop.wm.preferences when "
#~ "running GNOME Shell."
#~ msgstr ""
#~ "Esta clave sobrescribe la clave en org.gnome.desktop.wm.preferences al "
#~ "ejecutar GNOME Shell."
#~ msgid "Extension"
#~ msgstr "Extensión"
#~ msgid "Select an extension to configure using the combobox above."
#~ msgstr ""
#~ "Seleccione una extensión que configurar usando la caja combinada de "
#~ "arriba."
#~ msgid "calendar:MY" #~ msgid "calendar:MY"
#~ msgstr "calendario:MA" #~ msgstr "calendario:MA"

413
po/hu.po

File diff suppressed because it is too large Load Diff

444
po/nb.po

File diff suppressed because it is too large Load Diff

405
po/tr.po
View File

@@ -11,9 +11,10 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: gnome-shell\n" "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" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"POT-Creation-Date: 2014-06-05 07:25+0000\n" "shell&keywords=I18N+L10N&component=general\n"
"PO-Revision-Date: 2014-06-05 23:19+0000\n" "POT-Creation-Date: 2014-05-17 23:09+0000\n"
"PO-Revision-Date: 2014-05-19 14:40+0300\n"
"Last-Translator: Muhammet Kara <muhammetk@gmail.com>\n" "Last-Translator: Muhammet Kara <muhammetk@gmail.com>\n"
"Language-Team: Türkçe <gnome-turk@gnome.org>\n" "Language-Team: Türkçe <gnome-turk@gnome.org>\n"
"Language: tr\n" "Language: tr\n"
@@ -21,6 +22,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n" "Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Gtranslator 2.91.6\n"
#: ../data/50-gnome-shell-system.xml.in.h:1 #: ../data/50-gnome-shell-system.xml.in.h:1
msgid "System" msgid "System"
@@ -56,6 +58,7 @@ msgid "Window management and application launching"
msgstr "Pencere yönetimi ve uygulama başlatma" msgstr "Pencere yönetimi ve uygulama başlatma"
#: ../data/gnome-shell-extension-prefs.desktop.in.in.h:1 #: ../data/gnome-shell-extension-prefs.desktop.in.in.h:1
#: ../js/extensionPrefs/main.js:155
msgid "GNOME Shell Extension Preferences" msgid "GNOME Shell Extension Preferences"
msgstr "GNOME Kabuğu Eklenti Tercihleri" msgstr "GNOME Kabuğu Eklenti Tercihleri"
@@ -69,13 +72,16 @@ msgstr "GNOME Kabuğu (wayland bestecisi)"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:1 #: ../data/org.gnome.shell.gschema.xml.in.in.h:1
msgid "Enable internal tools useful for developers and testers from Alt-F2" msgid "Enable internal tools useful for developers and testers from Alt-F2"
msgstr "Geliştirici ve deneme yapanlar için Alt-F2' den ulaşılan araçları etkinleştir" msgstr ""
"Geliştirici ve deneme yapanlar için Alt-F2' den ulaşılan araçları etkinleştir"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:2 #: ../data/org.gnome.shell.gschema.xml.in.in.h:2
msgid "" msgid ""
"Allows access to internal debugging and monitoring tools using the Alt-F2 " "Allows access to internal debugging and monitoring tools using the Alt-F2 "
"dialog." "dialog."
msgstr "Alt-F2 kutucuğu ile bütünleşik hata ayıklama ve izleme uygulamalarına erişim sağlar." msgstr ""
"Alt-F2 kutucuğu ile bütünleşik hata ayıklama ve izleme uygulamalarına erişim "
"sağlar."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:3 #: ../data/org.gnome.shell.gschema.xml.in.in.h:3
msgid "UUIDs of extensions to enable" msgid "UUIDs of extensions to enable"
@@ -83,11 +89,16 @@ msgstr "Etkinleştirilecek uzantıların UUID'si"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:4 #: ../data/org.gnome.shell.gschema.xml.in.in.h:4
msgid "" msgid ""
"GNOME Shell extensions have a UUID property; this key lists extensions which" "GNOME Shell extensions have a UUID property; this key lists extensions which "
" should be loaded. Any extension that wants to be loaded needs to be in this" "should be loaded. Any extension that wants to be loaded needs to be in this "
" list. You can also manipulate this list with the EnableExtension and " "list. You can also manipulate this list with the EnableExtension and "
"DisableExtension D-Bus methods on org.gnome.Shell." "DisableExtension D-Bus methods on org.gnome.Shell."
msgstr "GNOME Kabuğu eklentilerinde UUID adlı bir özellik bulunur; bu anahtar, yüklenmesi gereken uzantıları listeler. Yüklenmesi istenen her tür uzantının bu listede olması gerekir. Ayrıca bu listeyi, org.gnome.Shell üzerindeki EnableExtension ve DisableExtension DBus yöntemleri ile de değiştirebilirsiniz." msgstr ""
"GNOME Kabuğu eklentilerinde UUID adlı bir özellik bulunur; bu anahtar, "
"yüklenmesi gereken uzantıları listeler. Yüklenmesi istenen her tür uzantının "
"bu listede olması gerekir. Ayrıca bu listeyi, org.gnome.Shell üzerindeki "
"EnableExtension ve DisableExtension DBus yöntemleri ile de "
"değiştirebilirsiniz."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:5 #: ../data/org.gnome.shell.gschema.xml.in.in.h:5
msgid "Disables the validation of extension version compatibility" msgid "Disables the validation of extension version compatibility"
@@ -98,7 +109,11 @@ msgid ""
"GNOME Shell will only load extensions that claim to support the current " "GNOME Shell will only load extensions that claim to support the current "
"running version. Enabling this option will disable this check and try to " "running version. Enabling this option will disable this check and try to "
"load all extensions regardless of the versions they claim to support." "load all extensions regardless of the versions they claim to support."
msgstr "GNOME Kabuğu sadece mevcut çalışan sürümü desteklediklerini ileri süren uzantıları yükleyecektir. Bu seçeneği etkinleştirmek bu denetimi devre dışı bırakacak ve desteklendiği ileri sürülen sürümleri dikkate almaksızın, tüm uygulamaları yüklemeye çalışacaktır." msgstr ""
"GNOME Kabuğu sadece mevcut çalışan sürümü desteklediklerini ileri süren "
"uzantıları yükleyecektir. Bu seçeneği etkinleştirmek bu denetimi devre dışı "
"bırakacak ve desteklendiği ileri sürülen sürümleri dikkate almaksızın, tüm "
"uygulamaları yüklemeye çalışacaktır."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:7 #: ../data/org.gnome.shell.gschema.xml.in.in.h:7
msgid "List of desktop file IDs for favorite applications" msgid "List of desktop file IDs for favorite applications"
@@ -106,9 +121,10 @@ msgstr "Sık kullanılan uygulamalar için masa üstü dosyalarının ID listesi
#: ../data/org.gnome.shell.gschema.xml.in.in.h:8 #: ../data/org.gnome.shell.gschema.xml.in.in.h:8
msgid "" msgid ""
"The applications corresponding to these identifiers will be displayed in the" "The applications corresponding to these identifiers will be displayed in the "
" favorites area." "favorites area."
msgstr "Bu tanımlayıcıya sahip uygulamalar sık kullanılanlar bölümünde gösterilecek." msgstr ""
"Bu tanımlayıcıya sahip uygulamalar sık kullanılanlar bölümünde gösterilecek."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:9 #: ../data/org.gnome.shell.gschema.xml.in.in.h:9
msgid "History for command (Alt-F2) dialog" msgid "History for command (Alt-F2) dialog"
@@ -124,14 +140,17 @@ msgstr "Kullanıcı menüsünde 'Oturumu Kapat' menü öğesini daima göster."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:12 #: ../data/org.gnome.shell.gschema.xml.in.in.h:12
msgid "" msgid ""
"This key overrides the automatic hiding of the 'Log out' menu item in " "This key overrides the automatic hiding of the 'Log out' menu item in single-"
"single-user, single-session situations." "user, single-session situations."
msgstr "Bu ayar tek kullanıcı oturum açtığında 'Oturumu Kapat' menü ögesinin gizlenmesini önler." msgstr ""
"Bu ayar tek kullanıcı oturum açtığında 'Oturumu Kapat' menü ögesinin "
"gizlenmesini önler."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:13 #: ../data/org.gnome.shell.gschema.xml.in.in.h:13
msgid "" msgid ""
"Whether to remember password for mounting encrypted or remote filesystems" "Whether to remember password for mounting encrypted or remote filesystems"
msgstr "Şifreli ya da uzak dosya sistemlerini bağlamak için parolanın hatırlanması" msgstr ""
"Şifreli ya da uzak dosya sistemlerini bağlamak için parolanın hatırlanması"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:14 #: ../data/org.gnome.shell.gschema.xml.in.in.h:14
msgid "" msgid ""
@@ -139,7 +158,11 @@ msgid ""
"filesystem is mounted. If the password can be saved for future use a " "filesystem is mounted. If the password can be saved for future use a "
"'Remember Password' checkbox will be present. This key sets the default " "'Remember Password' checkbox will be present. This key sets the default "
"state of the checkbox." "state of the checkbox."
msgstr "Kabuk, şifreli bir cihaz ya da uzak dosya sistemi bağlandığında parola isteyecek. Eğer parola gelecekte kullanılmak üzere kaydedilebiliyorsa, 'Parolayı Hatırla' onay kutusu sunulacak. Bu anahtar, onay kutusunun öntanımlı durumunu belirler." msgstr ""
"Kabuk, şifreli bir cihaz ya da uzak dosya sistemi bağlandığında parola "
"isteyecek. Eğer parola gelecekte kullanılmak üzere kaydedilebiliyorsa, "
"'Parolayı Hatırla' onay kutusu sunulacak. Bu anahtar, onay kutusunun "
"öntanımlı durumunu belirler."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:15 #: ../data/org.gnome.shell.gschema.xml.in.in.h:15
msgid "Show the week date in the calendar" msgid "Show the week date in the calendar"
@@ -163,9 +186,10 @@ msgstr "\"Uygulamaları Göster\" görünümünü açmak için klavye kısayolu"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:20 #: ../data/org.gnome.shell.gschema.xml.in.in.h:20
msgid "" msgid ""
"Keybinding to open the \"Show Applications\" view of the Activities " "Keybinding to open the \"Show Applications\" view of the Activities Overview."
"Overview." msgstr ""
msgstr "Etkinlikler Genel Görünümünün \"Uygulamaları Göster\" görünümünü açmak için klavye kısayolu." "Etkinlikler Genel Görünümünün \"Uygulamaları Göster\" görünümünü açmak için "
"klavye kısayolu."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:21 #: ../data/org.gnome.shell.gschema.xml.in.in.h:21
msgid "Keybinding to open the overview" msgid "Keybinding to open the overview"
@@ -211,7 +235,14 @@ msgid ""
"receiver). Please keep in mind that this only controls what GeoClue will " "receiver). Please keep in mind that this only controls what GeoClue will "
"allow applications to see and they can find user's location on their own " "allow applications to see and they can find user's location on their own "
"using network resources (albeit with street-level accuracy at best)." "using network resources (albeit with street-level accuracy at best)."
msgstr "Uygulamaların görmesine izin verilen en yüksek konum hassasiyetini yapılandırır. Geçerli seçenekler: 'kapalı' (konum izlemeyi devre dışı bırak), 'ülke', 'şehir', 'semt', 'sokak' ve 'kesin' (genelde GPS alıcısı gerektirir). Lütfen unutmayın: Bu, sadece GeoClue'nun uygulamaların neleri görmesine izin vereceğini denetler. Uygulamalar, kullanıcının konumunu (en fazla sokak düzeyindeki bir hassasiyetle de olsa) ağ kaynaklarını kullanarak kendi imkanlarıyla bulabilirler." msgstr ""
"Uygulamaların görmesine izin verilen en yüksek konum hassasiyetini "
"yapılandırır. Geçerli seçenekler: 'kapalı' (konum izlemeyi devre dışı "
"bırak), 'ülke', 'şehir', 'semt', 'sokak' ve 'kesin' (genelde GPS alıcısı "
"gerektirir). Lütfen unutmayın: Bu, sadece GeoClue'nun uygulamaların neleri "
"görmesine izin vereceğini denetler. Uygulamalar, kullanıcının konumunu (en "
"fazla sokak düzeyindeki bir hassasiyetle de olsa) ağ kaynaklarını kullanarak "
"kendi imkanlarıyla bulabilirler."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:31 #: ../data/org.gnome.shell.gschema.xml.in.in.h:31
msgid "The application icon mode." msgid "The application icon mode."
@@ -220,9 +251,13 @@ msgstr "Uygulama simge kipi."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:32 #: ../data/org.gnome.shell.gschema.xml.in.in.h:32
msgid "" msgid ""
"Configures how the windows are shown in the switcher. Valid possibilities " "Configures how the windows are shown in the switcher. Valid possibilities "
"are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-only' " "are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-"
"(shows only the application icon) or 'both'." "only' (shows only the application icon) or 'both'."
msgstr "Pencerelerin değiştiricideki gösterim şeklini yapılandırır. Uygun olasılıklar; 'thumbnail-only' (pencerenin küçük bir resmini gösterir), 'app-icon-only' (sadece uygulama simgesini gösterir) ya da 'both' (her ikisi) değerleridir." msgstr ""
"Pencerelerin değiştiricideki gösterim şeklini yapılandırır. Uygun "
"olasılıklar; 'thumbnail-only' (pencerenin küçük bir resmini gösterir), 'app-"
"icon-only' (sadece uygulama simgesini gösterir) ya da 'both' (her ikisi) "
"değerleridir."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:33 #: ../data/org.gnome.shell.gschema.xml.in.in.h:33
msgid "Attach modal dialog to the parent window" msgid "Attach modal dialog to the parent window"
@@ -231,32 +266,52 @@ msgstr "Yardımcı iletişim penceresini üst pencereye iliştir"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:34 #: ../data/org.gnome.shell.gschema.xml.in.in.h:34
msgid "" msgid ""
"This key overrides the key in org.gnome.mutter when running GNOME Shell." "This key overrides the key in org.gnome.mutter when running GNOME Shell."
msgstr "Bu anahtar, GNOME Shell çalışırken org.gnome.mutter içindeki anahtarı geçersiz kılar." msgstr ""
"Bu anahtar, GNOME Shell çalışırken org.gnome.mutter içindeki anahtarı "
"geçersiz kılar."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:35 #: ../data/org.gnome.shell.gschema.xml.in.in.h:35
msgid "Enable edge tiling when dropping windows on screen edges" msgid "Arrangement of buttons on the titlebar"
msgstr "Pencereler ekran kenarlarında bırakıldığında kenar döşemeyi etkinleştir." msgstr "Düğmelerin başlık çubuğundaki düzeni"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:36 #: ../data/org.gnome.shell.gschema.xml.in.in.h:36
msgid ""
"This key overrides the key in org.gnome.desktop.wm.preferences when running "
"GNOME Shell."
msgstr ""
"Bu anahtar, GNOME Shell çalışırken org.gnome.desktop.wm.preferences içindeki "
"anahtarı geçersiz kılar."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37
msgid "Enable edge tiling when dropping windows on screen edges"
msgstr ""
"Pencereler ekran kenarlarında bırakıldığında kenar döşemeyi etkinleştir."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:38
msgid "Workspaces are managed dynamically" msgid "Workspaces are managed dynamically"
msgstr "Çalışma alanları dinamik olarak yönetilir" msgstr "Çalışma alanları dinamik olarak yönetilir"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37 #: ../data/org.gnome.shell.gschema.xml.in.in.h:39
msgid "Workspaces only on primary monitor" msgid "Workspaces only on primary monitor"
msgstr "Çalışma alanları sadece birincil ekranda" msgstr "Çalışma alanları sadece birincil ekranda"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:38 #: ../data/org.gnome.shell.gschema.xml.in.in.h:40
msgid "Delay focus changes in mouse mode until the pointer stops moving" msgid "Delay focus changes in mouse mode until the pointer stops moving"
msgstr "Fare kipinde odak değişikliklerini işaretçi hareketi durana kadar beklet" msgstr ""
"Fare kipinde odak değişikliklerini işaretçi hareketi durana kadar beklet"
#: ../js/extensionPrefs/main.js:125 #: ../js/extensionPrefs/main.js:127
#, javascript-format #, javascript-format
msgid "There was an error loading the preferences dialog for %s:" msgid "There was an error loading the preferences dialog for %s:"
msgstr "%s için tercihler iletişim penceresi yüklenirken hata oluştu:" msgstr "%s için tercihler iletişim penceresi yüklenirken hata oluştu:"
#: ../js/extensionPrefs/main.js:157 #: ../js/extensionPrefs/main.js:167
msgid "GNOME Shell Extensions" msgid "Extension"
msgstr "GNOME Kabuğu Uzantıları" msgstr "Eklenti"
#: ../js/extensionPrefs/main.js:191
msgid "Select an extension to configure using the combobox above."
msgstr "Ayarlamak için yukarıdaki açılan kutudan bir eklenti seçin."
#: ../js/gdm/authPrompt.js:147 ../js/ui/components/networkAgent.js:136 #: ../js/gdm/authPrompt.js:147 ../js/ui/components/networkAgent.js:136
#: ../js/ui/components/polkitAgent.js:166 ../js/ui/endSessionDialog.js:429 #: ../js/ui/components/polkitAgent.js:166 ../js/ui/endSessionDialog.js:429
@@ -279,25 +334,25 @@ msgctxt "button"
msgid "Sign In" msgid "Sign In"
msgstr "Giriş" msgstr "Giriş"
#: ../js/gdm/loginDialog.js:269 #: ../js/gdm/loginDialog.js:271
msgid "Choose Session" msgid "Choose Session"
msgstr "Oturum Seçin" msgstr "Oturum Seçin"
#: ../js/gdm/loginDialog.js:429 #: ../js/gdm/loginDialog.js:431
msgid "Not listed?" msgid "Not listed?"
msgstr "Listede yok mu?" msgstr "Listede yok mu?"
#: ../js/gdm/loginDialog.js:614 #: ../js/gdm/loginDialog.js:616
#, javascript-format #, javascript-format
msgid "(e.g., user or %s)" msgid "(e.g., user or %s)"
msgstr "(örneğin, kullanıcı veya %s)" msgstr "(örneğin, kullanıcı veya %s)"
#: ../js/gdm/loginDialog.js:619 ../js/ui/components/networkAgent.js:262 #: ../js/gdm/loginDialog.js:621 ../js/ui/components/networkAgent.js:262
#: ../js/ui/components/networkAgent.js:280 #: ../js/ui/components/networkAgent.js:280
msgid "Username: " msgid "Username: "
msgstr "Kullanıcı Adı: " msgstr "Kullanıcı Adı: "
#: ../js/gdm/loginDialog.js:922 #: ../js/gdm/loginDialog.js:924
msgid "Login Window" msgid "Login Window"
msgstr "Oturum Açma Penceresi" msgstr "Oturum Açma Penceresi"
@@ -347,6 +402,7 @@ msgid "Add to Favorites"
msgstr "Sık Kullanılanlara Ekle" msgstr "Sık Kullanılanlara Ekle"
#: ../js/ui/appDisplay.js:1608 #: ../js/ui/appDisplay.js:1608
#| msgid "Show Text"
msgid "Show Details" msgid "Show Details"
msgstr "Ayrıntıları Göster" msgstr "Ayrıntıları Göster"
@@ -485,11 +541,11 @@ msgctxt "list saturday"
msgid "S" msgid "S"
msgstr "Ct" msgstr "Ct"
#: ../js/ui/calendar.js:454 #: ../js/ui/calendar.js:453
msgid "Previous month" msgid "Previous month"
msgstr "Önceki ay" msgstr "Önceki ay"
#: ../js/ui/calendar.js:464 #: ../js/ui/calendar.js:463
msgid "Next month" msgid "Next month"
msgstr "Gelecek ay" msgstr "Gelecek ay"
@@ -498,15 +554,13 @@ msgstr "Gelecek ay"
msgid "Nothing Scheduled" msgid "Nothing Scheduled"
msgstr "Planınız Boş" msgstr "Planınız Boş"
#. Translators: Shown on calendar heading when selected day occurs on current #. Translators: Shown on calendar heading when selected day occurs on current year */
#. year */
#: ../js/ui/calendar.js:793 #: ../js/ui/calendar.js:793
msgctxt "calendar heading" msgctxt "calendar heading"
msgid "%A, %B %d" msgid "%A, %B %d"
msgstr "%A, %d %B" msgstr "%A, %d %B"
#. Translators: Shown on calendar heading when selected day occurs on #. Translators: Shown on calendar heading when selected day occurs on different year */
#. different year */
#: ../js/ui/calendar.js:796 #: ../js/ui/calendar.js:796
msgctxt "calendar heading" msgctxt "calendar heading"
msgid "%A, %B %d, %Y" msgid "%A, %B %d, %Y"
@@ -595,7 +649,9 @@ msgstr "Kablosuz ağ için kimlik doğrulama gerekiyor"
msgid "" msgid ""
"Passwords or encryption keys are required to access the wireless network " "Passwords or encryption keys are required to access the wireless network "
"“%s”." "“%s”."
msgstr "“%s” kablosuz ağına erişmek için parolalar veya şifreleme anahtarları gerekiyor." msgstr ""
"“%s” kablosuz ağına erişmek için parolalar veya şifreleme anahtarları "
"gerekiyor."
#: ../js/ui/components/networkAgent.js:316 #: ../js/ui/components/networkAgent.js:316
msgid "Wired 802.1X authentication" msgid "Wired 802.1X authentication"
@@ -675,78 +731,77 @@ msgid "Mute"
msgstr "Sesi Kapat" msgstr "Sesi Kapat"
#. Translators: Time in 24h format */ #. Translators: Time in 24h format */
#: ../js/ui/components/telepathyClient.js:957 #: ../js/ui/components/telepathyClient.js:958
msgid "%H%M" msgid "%H%M"
msgstr "%H%M" msgstr "%H%M"
#. Translators: this is the word "Yesterday" followed by a #. Translators: this is the word "Yesterday" followed by a
#. time string in 24h format. i.e. "Yesterday, 14:30" */ #. time string in 24h format. i.e. "Yesterday, 14:30" */
#: ../js/ui/components/telepathyClient.js:964 #: ../js/ui/components/telepathyClient.js:965
msgid "Yesterday, %H%M" msgid "Yesterday, %H%M"
msgstr "Dün, %H%M" msgstr "Dün, %H%M"
#. Translators: this is the week day name followed by a time #. Translators: this is the week day name followed by a time
#. string in 24h format. i.e. "Monday, 14:30" */ #. string in 24h format. i.e. "Monday, 14:30" */
#: ../js/ui/components/telepathyClient.js:971 #: ../js/ui/components/telepathyClient.js:972
msgid "%A, %H%M" msgid "%A, %H%M"
msgstr "%A, %H%M" msgstr "%A, %H%M"
#. Translators: this is the month name and day number #. Translators: this is the month name and day number
#. followed by a time string in 24h format. #. followed by a time string in 24h format.
#. i.e. "May 25, 14:30" */ #. i.e. "May 25, 14:30" */
#: ../js/ui/components/telepathyClient.js:978 #: ../js/ui/components/telepathyClient.js:979
msgid "%B %d, %H%M" msgid "%B %d, %H%M"
msgstr "%d %B, %H%M" msgstr "%d %B, %H%M"
#. Translators: this is the month name, day number, year #. Translators: this is the month name, day number, year
#. number followed by a time string in 24h format. #. number followed by a time string in 24h format.
#. i.e. "May 25 2012, 14:30" */ #. i.e. "May 25 2012, 14:30" */
#: ../js/ui/components/telepathyClient.js:984 #: ../js/ui/components/telepathyClient.js:985
msgid "%B %d %Y, %H%M" msgid "%B %d %Y, %H%M"
msgstr "%d %B %Y, %H%M" msgstr "%d %B %Y, %H%M"
#. Translators: Time in 24h format */ #. Translators: Time in 24h format */
#: ../js/ui/components/telepathyClient.js:990 #: ../js/ui/components/telepathyClient.js:994
msgid "%l%M %p" msgid "%l%M %p"
msgstr "%l%M %p" msgstr "%l%M %p"
#. Translators: this is the word "Yesterday" followed by a #. Translators: this is the word "Yesterday" followed by a
#. time string in 12h format. i.e. "Yesterday, 2:30 pm" */ #. time string in 12h format. i.e. "Yesterday, 2:30 pm" */
#: ../js/ui/components/telepathyClient.js:997 #: ../js/ui/components/telepathyClient.js:1001
msgid "Yesterday, %l%M %p" msgid "Yesterday, %l%M %p"
msgstr "Dün, %l%M %p" msgstr "Dün, %l%M %p"
#. Translators: this is the week day name followed by a time #. Translators: this is the week day name followed by a time
#. string in 12h format. i.e. "Monday, 2:30 pm" */ #. string in 12h format. i.e. "Monday, 2:30 pm" */
#: ../js/ui/components/telepathyClient.js:1004 #: ../js/ui/components/telepathyClient.js:1008
msgid "%A, %l%M %p" msgid "%A, %l%M %p"
msgstr "%A, %l%M %p" msgstr "%A, %l%M %p"
#. Translators: this is the month name and day number #. Translators: this is the month name and day number
#. followed by a time string in 12h format. #. followed by a time string in 12h format.
#. i.e. "May 25, 2:30 pm" */ #. i.e. "May 25, 2:30 pm" */
#: ../js/ui/components/telepathyClient.js:1011 #: ../js/ui/components/telepathyClient.js:1015
msgid "%B %d, %l%M %p" msgid "%B %d, %l%M %p"
msgstr "%d %B, %l%M %p" msgstr "%d %B, %l%M %p"
#. Translators: this is the month name, day number, year #. Translators: this is the month name, day number, year
#. number followed by a time string in 12h format. #. number followed by a time string in 12h format.
#. i.e. "May 25 2012, 2:30 pm"*/ #. i.e. "May 25 2012, 2:30 pm"*/
#: ../js/ui/components/telepathyClient.js:1017 #: ../js/ui/components/telepathyClient.js:1021
msgid "%B %d %Y, %l%M %p" msgid "%B %d %Y, %l%M %p"
msgstr "%d %B %Y, %l%M %p" msgstr "%d %B %Y, %l%M %p"
#. Translators: this is the other person changing their old IM name to their #. Translators: this is the other person changing their old IM name to their new
#. new
#. IM name. */ #. IM name. */
#: ../js/ui/components/telepathyClient.js:1049 #: ../js/ui/components/telepathyClient.js:1054
#, javascript-format #, javascript-format
msgid "%s is now known as %s" msgid "%s is now known as %s"
msgstr "%s, şimdi %s olarak biliniyor" msgstr "%s, şimdi %s olarak biliniyor"
#. translators: argument is a room name like #. translators: argument is a room name like
#. * room@jabber.org for example. */ #. * room@jabber.org for example. */
#: ../js/ui/components/telepathyClient.js:1153 #: ../js/ui/components/telepathyClient.js:1158
#, javascript-format #, javascript-format
msgid "Invitation to %s" msgid "Invitation to %s"
msgstr "%s'e Davet" msgstr "%s'e Davet"
@@ -754,38 +809,38 @@ msgstr "%s'e Davet"
#. translators: first argument is the name of a contact and the second #. 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 #. * one the name of a room. "Alice is inviting you to join room@jabber.org
#. * for example. */ #. * for example. */
#: ../js/ui/components/telepathyClient.js:1161 #: ../js/ui/components/telepathyClient.js:1166
#, javascript-format #, javascript-format
msgid "%s is inviting you to join %s" msgid "%s is inviting you to join %s"
msgstr "%s, sizi %s'e katılmanız için davet ediyor" msgstr "%s, sizi %s'e katılmanız için davet ediyor"
#: ../js/ui/components/telepathyClient.js:1163 #: ../js/ui/components/telepathyClient.js:1168
#: ../js/ui/components/telepathyClient.js:1198 #: ../js/ui/components/telepathyClient.js:1203
#: ../js/ui/components/telepathyClient.js:1232 #: ../js/ui/components/telepathyClient.js:1237
#: ../js/ui/components/telepathyClient.js:1290 #: ../js/ui/components/telepathyClient.js:1295
msgid "Decline" msgid "Decline"
msgstr "Reddet" msgstr "Reddet"
#: ../js/ui/components/telepathyClient.js:1169 #: ../js/ui/components/telepathyClient.js:1174
#: ../js/ui/components/telepathyClient.js:1238 #: ../js/ui/components/telepathyClient.js:1243
#: ../js/ui/components/telepathyClient.js:1295 #: ../js/ui/components/telepathyClient.js:1300
msgid "Accept" msgid "Accept"
msgstr "Kabul Et" msgstr "Kabul Et"
#. translators: argument is a contact name like Alice for example. */ #. translators: argument is a contact name like Alice for example. */
#: ../js/ui/components/telepathyClient.js:1188 #: ../js/ui/components/telepathyClient.js:1193
#, javascript-format #, javascript-format
msgid "Video call from %s" msgid "Video call from %s"
msgstr "%s'den görüntülü arama" msgstr "%s'den görüntülü arama"
#. translators: argument is a contact name like Alice for example. */ #. translators: argument is a contact name like Alice for example. */
#: ../js/ui/components/telepathyClient.js:1191 #: ../js/ui/components/telepathyClient.js:1196
#, javascript-format #, javascript-format
msgid "Call from %s" msgid "Call from %s"
msgstr "%s'den çağrı" msgstr "%s'den çağrı"
#. translators: this is a button label (verb), not a noun */ #. translators: this is a button label (verb), not a noun */
#: ../js/ui/components/telepathyClient.js:1205 #: ../js/ui/components/telepathyClient.js:1210
msgid "Answer" msgid "Answer"
msgstr "Cevapla" msgstr "Cevapla"
@@ -794,129 +849,133 @@ msgstr "Cevapla"
#. * file name. The string will be something #. * file name. The string will be something
#. * like: "Alice is sending you test.ogg" #. * like: "Alice is sending you test.ogg"
#. */ #. */
#: ../js/ui/components/telepathyClient.js:1226 #: ../js/ui/components/telepathyClient.js:1231
#, javascript-format #, javascript-format
msgid "%s is sending you %s" msgid "%s is sending you %s"
msgstr "%s, size %s dosyasını gönderiyor" msgstr "%s, size %s dosyasını gönderiyor"
#. To translators: The parameter is the contact's alias */ #. To translators: The parameter is the contact's alias */
#: ../js/ui/components/telepathyClient.js:1255 #: ../js/ui/components/telepathyClient.js:1260
#, javascript-format #, javascript-format
msgid "%s would like permission to see when you are online" msgid "%s would like permission to see when you are online"
msgstr "%s, ne zaman çevrimiçi olduğunuzu görmek için izin istiyor" msgstr "%s, ne zaman çevrimiçi olduğunuzu görmek için izin istiyor"
#: ../js/ui/components/telepathyClient.js:1341 #: ../js/ui/components/telepathyClient.js:1346
msgid "Network error" msgid "Network error"
msgstr "Ağ hatası" msgstr "Ağ hatası"
#: ../js/ui/components/telepathyClient.js:1343 #: ../js/ui/components/telepathyClient.js:1348
msgid "Authentication failed" msgid "Authentication failed"
msgstr "Kimlik doğrulama başarısız" msgstr "Kimlik doğrulama başarısız"
#: ../js/ui/components/telepathyClient.js:1345 #: ../js/ui/components/telepathyClient.js:1350
msgid "Encryption error" msgid "Encryption error"
msgstr "Şifreleme hatası" msgstr "Şifreleme hatası"
#: ../js/ui/components/telepathyClient.js:1347 #: ../js/ui/components/telepathyClient.js:1352
msgid "Certificate not provided" msgid "Certificate not provided"
msgstr "Sertifika sağlanmamış" msgstr "Sertifika sağlanmamış"
#: ../js/ui/components/telepathyClient.js:1349 #: ../js/ui/components/telepathyClient.js:1354
msgid "Certificate untrusted" msgid "Certificate untrusted"
msgstr "Sertifika güvenilmez" msgstr "Sertifika güvenilmez"
#: ../js/ui/components/telepathyClient.js:1351 #: ../js/ui/components/telepathyClient.js:1356
msgid "Certificate expired" msgid "Certificate expired"
msgstr "Sertifikanın süresi dolmuş" msgstr "Sertifikanın süresi dolmuş"
#: ../js/ui/components/telepathyClient.js:1353 #: ../js/ui/components/telepathyClient.js:1358
msgid "Certificate not activated" msgid "Certificate not activated"
msgstr "Sertifika etkinleştirilmemiş" msgstr "Sertifika etkinleştirilmemiş"
#: ../js/ui/components/telepathyClient.js:1355 #: ../js/ui/components/telepathyClient.js:1360
msgid "Certificate hostname mismatch" msgid "Certificate hostname mismatch"
msgstr "Sertifikanın makine adı uyuşmuyor" msgstr "Sertifikanın makine adı uyuşmuyor"
#: ../js/ui/components/telepathyClient.js:1357 #: ../js/ui/components/telepathyClient.js:1362
msgid "Certificate fingerprint mismatch" msgid "Certificate fingerprint mismatch"
msgstr "Sertifikanın parmak izi uyuşmuyor" msgstr "Sertifikanın parmak izi uyuşmuyor"
#: ../js/ui/components/telepathyClient.js:1359 #: ../js/ui/components/telepathyClient.js:1364
msgid "Certificate self-signed" msgid "Certificate self-signed"
msgstr "Sertifika kendinden-imzalı" msgstr "Sertifika kendinden-imzalı"
#: ../js/ui/components/telepathyClient.js:1361 #: ../js/ui/components/telepathyClient.js:1366
msgid "Status is set to offline" msgid "Status is set to offline"
msgstr "Durum çevrimdıına ayarlı" msgstr "Durum çevrimdıına ayarlı"
#: ../js/ui/components/telepathyClient.js:1363 #: ../js/ui/components/telepathyClient.js:1368
msgid "Encryption is not available" msgid "Encryption is not available"
msgstr "Şifreleme kullanılabilir değil" msgstr "Şifreleme kullanılabilir değil"
#: ../js/ui/components/telepathyClient.js:1365 #: ../js/ui/components/telepathyClient.js:1370
msgid "Certificate is invalid" msgid "Certificate is invalid"
msgstr "Sertifika geçersiz" msgstr "Sertifika geçersiz"
#: ../js/ui/components/telepathyClient.js:1367 #: ../js/ui/components/telepathyClient.js:1372
msgid "Connection has been refused" msgid "Connection has been refused"
msgstr "Bağlantı reddedildi" msgstr "Bağlantı reddedildi"
#: ../js/ui/components/telepathyClient.js:1369 #: ../js/ui/components/telepathyClient.js:1374
msgid "Connection can't be established" msgid "Connection can't be established"
msgstr "Bağlantı kurulamıyor" msgstr "Bağlantı kurulamıyor"
#: ../js/ui/components/telepathyClient.js:1371 #: ../js/ui/components/telepathyClient.js:1376
msgid "Connection has been lost" msgid "Connection has been lost"
msgstr "Bağlantı koptu" msgstr "Bağlantı koptu"
#: ../js/ui/components/telepathyClient.js:1373 #: ../js/ui/components/telepathyClient.js:1378
msgid "This account is already connected to the server" msgid "This account is already connected to the server"
msgstr "Bu hesap zaten sunucuya bağlı" msgstr "Bu hesap zaten sunucuya bağlı"
#: ../js/ui/components/telepathyClient.js:1375 #: ../js/ui/components/telepathyClient.js:1380
msgid "" msgid ""
"Connection has been replaced by a new connection using the same resource" "Connection has been replaced by a new connection using the same resource"
msgstr "Bağlantı, aynı kaynağı kullanan yeni bir bağlantı ile değiştirildi" msgstr "Bağlantı, aynı kaynağı kullanan yeni bir bağlantı ile değiştirildi"
#: ../js/ui/components/telepathyClient.js:1377 #: ../js/ui/components/telepathyClient.js:1382
msgid "The account already exists on the server" msgid "The account already exists on the server"
msgstr "Sunucuda böyle bir hesap zaten var" msgstr "Sunucuda böyle bir hesap zaten var"
#: ../js/ui/components/telepathyClient.js:1379 #: ../js/ui/components/telepathyClient.js:1384
msgid "Server is currently too busy to handle the connection" msgid "Server is currently too busy to handle the connection"
msgstr "Sunucu, şu anda bağlantıyı işleyemeyecek kadar meşgul" msgstr "Sunucu, şu anda bağlantıyı işleyemeyecek kadar meşgul"
#: ../js/ui/components/telepathyClient.js:1381 #: ../js/ui/components/telepathyClient.js:1386
msgid "Certificate has been revoked" msgid "Certificate has been revoked"
msgstr "Sertifika hükümsüz kılınmış" msgstr "Sertifika hükümsüz kılınmış"
#: ../js/ui/components/telepathyClient.js:1383 #: ../js/ui/components/telepathyClient.js:1388
msgid "" msgid ""
"Certificate uses an insecure cipher algorithm or is cryptographically weak" "Certificate uses an insecure cipher algorithm or is cryptographically weak"
msgstr "Sertifika güvensiz bir şifreleme algoritması kullanıyor ya da kriptografik olarak zayıf" msgstr ""
"Sertifika güvensiz bir şifreleme algoritması kullanıyor ya da kriptografik "
"olarak zayıf"
#: ../js/ui/components/telepathyClient.js:1385 #: ../js/ui/components/telepathyClient.js:1390
msgid "" msgid ""
"The length of the server certificate, or the depth of the server certificate" "The length of the server certificate, or the depth of the server certificate "
" chain, exceed the limits imposed by the cryptography library" "chain, exceed the limits imposed by the cryptography library"
msgstr "Sunucu sertifikasının uzunluğu ya da sunucu sertifikası zincirinin derinliği, şifreleme kütüphanesi tarafından koyulan sınırlarııyor" msgstr ""
"Sunucu sertifikasının uzunluğu ya da sunucu sertifikası zincirinin "
"derinliği, şifreleme kütüphanesi tarafından koyulan sınırlarııyor"
#: ../js/ui/components/telepathyClient.js:1387 #: ../js/ui/components/telepathyClient.js:1392
msgid "Internal error" msgid "Internal error"
msgstr "İç hata" msgstr "İç hata"
#. translators: argument is the account name, like #. translators: argument is the account name, like
#. * name@jabber.org for example. */ #. * name@jabber.org for example. */
#: ../js/ui/components/telepathyClient.js:1397 #: ../js/ui/components/telepathyClient.js:1402
#, javascript-format #, javascript-format
msgid "Unable to connect to %s" msgid "Unable to connect to %s"
msgstr "%s bağlantısı sağlanamadı" msgstr "%s bağlantısı sağlanamadı"
#: ../js/ui/components/telepathyClient.js:1402 #: ../js/ui/components/telepathyClient.js:1407
msgid "View account" msgid "View account"
msgstr "Hesabı göster" msgstr "Hesabı göster"
#: ../js/ui/components/telepathyClient.js:1439 #: ../js/ui/components/telepathyClient.js:1444
msgid "Unknown reason" msgid "Unknown reason"
msgstr "Bilinmeyen sebep" msgstr "Bilinmeyen sebep"
@@ -945,8 +1004,7 @@ msgid "Date & Time Settings"
msgstr "Tarih ve Saat Ayarları" msgstr "Tarih ve Saat Ayarları"
#. Translators: This is the date format to use when the calendar popup is #. 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 #. * shown - it is shown just below the time in the shell (e.g. "Tue 9:29 AM").
#. AM").
#. */ #. */
#: ../js/ui/dateMenu.js:205 #: ../js/ui/dateMenu.js:205
msgid "%A %B %e, %Y" msgid "%A %B %e, %Y"
@@ -1029,11 +1087,12 @@ msgstr "Yeniden Başlat ve Güncelleştirmeleri Kur"
#: ../js/ui/endSessionDialog.js:123 #: ../js/ui/endSessionDialog.js:123
#, javascript-format #, javascript-format
msgid "" msgid "The system will automatically restart and install updates in %d second."
"The system will automatically restart and install updates in %d second."
msgid_plural "" msgid_plural ""
"The system will automatically restart and install updates in %d seconds." "The system will automatically restart and install updates in %d seconds."
msgstr[0] "Sistem %d saniye içinde kendiliğinden yeniden başlayacak ve güncelleştirmeleri kuracak." msgstr[0] ""
"Sistem %d saniye içinde kendiliğinden yeniden başlayacak ve "
"güncelleştirmeleri kuracak."
#: ../js/ui/endSessionDialog.js:129 #: ../js/ui/endSessionDialog.js:129
msgctxt "button" msgctxt "button"
@@ -1052,7 +1111,8 @@ msgstr "Güncelleştirmeler kurulduktan sonra kapat"
#: ../js/ui/endSessionDialog.js:315 #: ../js/ui/endSessionDialog.js:315
msgid "Running on battery power: please plug in before installing updates." msgid "Running on battery power: please plug in before installing updates."
msgstr "Pil gücünde çalışıyor: Lütfen güncelleştirmeleri kurmadan önce fişi takın." msgstr ""
"Pil gücünde çalışıyor: Lütfen güncelleştirmeleri kurmadan önce fişi takın."
#: ../js/ui/endSessionDialog.js:332 #: ../js/ui/endSessionDialog.js:332
msgid "Some applications are busy or have unsaved work." msgid "Some applications are busy or have unsaved work."
@@ -1083,7 +1143,7 @@ msgstr "Kur"
msgid "Download and install “%s” from extensions.gnome.org?" msgid "Download and install “%s” from extensions.gnome.org?"
msgstr "extensions.gnome.org adresinden “%s” indirilip kurulsun mu?" msgstr "extensions.gnome.org adresinden “%s” indirilip kurulsun mu?"
#: ../js/ui/keyboard.js:645 ../js/ui/status/keyboard.js:339 #: ../js/ui/keyboard.js:645 ../js/ui/status/keyboard.js:335
msgid "Keyboard" msgid "Keyboard"
msgstr "Klavye" msgstr "Klavye"
@@ -1216,7 +1276,7 @@ msgstr "Etkinlikler"
msgid "Top Bar" msgid "Top Bar"
msgstr "Tepe Çubuğu" msgstr "Tepe Çubuğu"
#: ../js/ui/popupMenu.js:279 #: ../js/ui/popupMenu.js:271
msgid "toggle-switch-us" msgid "toggle-switch-us"
msgstr "toggle-switch-intl" msgstr "toggle-switch-intl"
@@ -1224,7 +1284,7 @@ msgstr "toggle-switch-intl"
msgid "Enter a Command" msgid "Enter a Command"
msgstr "Komut Girin" msgstr "Komut Girin"
#: ../js/ui/runDialog.js:114 ../js/ui/windowMenu.js:120 #: ../js/ui/runDialog.js:114 ../js/ui/windowMenu.js:117
msgid "Close" msgid "Close"
msgstr "Kapat" msgstr "Kapat"
@@ -1361,7 +1421,7 @@ msgstr "Bağlı Değil"
msgid "Brightness" msgid "Brightness"
msgstr "Parlaklık" msgstr "Parlaklık"
#: ../js/ui/status/keyboard.js:407 #: ../js/ui/status/keyboard.js:403
msgid "Show Keyboard Layout" msgid "Show Keyboard Layout"
msgstr "Klavye Düzenini Göster" msgstr "Klavye Düzenini Göster"
@@ -1394,14 +1454,15 @@ msgstr "Kapalı"
msgid "Connected" msgid "Connected"
msgstr "Bağlı" msgstr "Bağlı"
#. Translators: this is for network devices that are physically present but #. Translators: this is for network devices that are physically present but are not
#. are not
#. under NetworkManager's control (and thus cannot be used in the menu) */ #. under NetworkManager's control (and thus cannot be used in the menu) */
#: ../js/ui/status/network.js:426 #: ../js/ui/status/network.js:426
#| msgid "unmanaged"
msgid "Unmanaged" msgid "Unmanaged"
msgstr "Yönetilmeyen" msgstr "Yönetilmeyen"
#: ../js/ui/status/network.js:428 #: ../js/ui/status/network.js:428
#| msgid "disconnecting..."
msgid "Disconnecting" msgid "Disconnecting"
msgstr "Bağlantı Kesiliyor" msgstr "Bağlantı Kesiliyor"
@@ -1409,23 +1470,23 @@ msgstr "Bağlantı Kesiliyor"
msgid "Connecting" msgid "Connecting"
msgstr "Bağlantı Kuruluyor" msgstr "Bağlantı Kuruluyor"
#. Translators: this is for network connections that require some kind of key #. Translators: this is for network connections that require some kind of key or password */
#. or password */
#: ../js/ui/status/network.js:437 #: ../js/ui/status/network.js:437
#| msgid "authentication required"
msgid "Authentication required" msgid "Authentication required"
msgstr "Kimlik doğrulama gerekir" msgstr "Kimlik doğrulama gerekir"
#. Translators: this is for devices that require some kind of firmware or #. Translators: this is for devices that require some kind of firmware or kernel
#. kernel
#. module, which is missing */ #. module, which is missing */
#: ../js/ui/status/network.js:445 #: ../js/ui/status/network.js:445
#| msgid "firmware missing"
msgid "Firmware missing" msgid "Firmware missing"
msgstr "Ürün Bilgisi eksik" msgstr "Ürün Bilgisi eksik"
#. Translators: this is for a network device that cannot be activated (for #. Translators: this is for a network device that cannot be activated (for example it
#. example it
#. is disabled by rfkill, or it has no coverage */ #. is disabled by rfkill, or it has no coverage */
#: ../js/ui/status/network.js:449 #: ../js/ui/status/network.js:449
#| msgid "unavailable"
msgid "Unavailable" msgid "Unavailable"
msgstr "Kullanılamaz" msgstr "Kullanılamaz"
@@ -1509,8 +1570,7 @@ msgstr "Hotspot Etkin"
msgid "connecting..." msgid "connecting..."
msgstr "bağlanıyor..." msgstr "bağlanıyor..."
#. Translators: this is for network connections that require some kind of key #. Translators: this is for network connections that require some kind of key or password */
#. or password */
#: ../js/ui/status/network.js:1365 #: ../js/ui/status/network.js:1365
msgid "authentication required" msgid "authentication required"
msgstr "kimlik doğrulaması gerekli" msgstr "kimlik doğrulaması gerekli"
@@ -1651,43 +1711,43 @@ msgid "Settings changes will revert in %d second"
msgid_plural "Settings changes will revert in %d seconds" msgid_plural "Settings changes will revert in %d seconds"
msgstr[0] "Ayarlardaki değişiklikler %d saniye içinde eski haline döndürülecek" msgstr[0] "Ayarlardaki değişiklikler %d saniye içinde eski haline döndürülecek"
#: ../js/ui/windowMenu.js:34 #: ../js/ui/windowMenu.js:33
msgid "Minimize" msgid "Minimize"
msgstr "Simge durumuna küçült" msgstr ""
#: ../js/ui/windowMenu.js:41 #: ../js/ui/windowMenu.js:40
msgid "Unmaximize" msgid "Unmaximize"
msgstr "Önceki Boyut" msgstr ""
#: ../js/ui/windowMenu.js:45 #: ../js/ui/windowMenu.js:44
msgid "Maximize" msgid "Maximize"
msgstr "En üst düzeye çıkar" msgstr ""
#: ../js/ui/windowMenu.js:52 #: ../js/ui/windowMenu.js:51
msgid "Move" msgid "Move"
msgstr "Taşı" msgstr "Taşı"
#: ../js/ui/windowMenu.js:58 #: ../js/ui/windowMenu.js:57
msgid "Resize" msgid "Resize"
msgstr "Yeniden Boyutlandır" msgstr "Yeniden Boyutlandır"
#: ../js/ui/windowMenu.js:65 #: ../js/ui/windowMenu.js:64
msgid "Move Titlebar Onscreen" msgid "Move Titlebar Onscreen"
msgstr "Başlık Çubuğunu Ekranda Taşı" msgstr "Başlık Çubuğunu Ekranda Taşı"
#: ../js/ui/windowMenu.js:70 #: ../js/ui/windowMenu.js:69
msgid "Always on Top" msgid "Always on Top"
msgstr "Her Zaman Üstte" msgstr "Her Zaman Üstte"
#: ../js/ui/windowMenu.js:89 #: ../js/ui/windowMenu.js:86
msgid "Always on Visible Workspace" msgid "Always on Visible Workspace"
msgstr "Her Zaman Görünür Çalışma Alanında" msgstr "Her Zaman Görünür Çalışma Alanında"
#: ../js/ui/windowMenu.js:106 #: ../js/ui/windowMenu.js:103
msgid "Move to Workspace Up" msgid "Move to Workspace Up"
msgstr "Üstteki Çalışma Alanına Taşı" msgstr "Üstteki Çalışma Alanına Taşı"
#: ../js/ui/windowMenu.js:111 #: ../js/ui/windowMenu.js:108
msgid "Move to Workspace Down" msgid "Move to Workspace Down"
msgstr "Alttaki Çalışma Alanına Taşı" msgstr "Alttaki Çalışma Alanına Taşı"
@@ -1747,3 +1807,72 @@ msgstr "Parola boş bırakılamaz"
#: ../src/shell-polkit-authentication-agent.c:346 #: ../src/shell-polkit-authentication-agent.c:346
msgid "Authentication dialog was dismissed by the user" msgid "Authentication dialog was dismissed by the user"
msgstr "Kimlik doğrulama penceresi kullanıcı tarafından kapatıldı" msgstr "Kimlik doğrulama penceresi kullanıcı tarafından kapatıldı"
#~ msgid "calendar:MY"
#~ msgstr "takvim:AY"
#~ msgid "List of categories that should be displayed as folders"
#~ msgstr "Klasör olarak görüntülenecek kategorilerin listesi"
#~ msgid ""
#~ "Each category name in this list will be represented as folder in the "
#~ "application view, rather than being displayed inline in the main view."
#~ msgstr ""
#~ "Bu listedeki her bir kategori adı, genel görünümde satıriçi olarak "
#~ "gösterilmek yerine, uygulama görünümünde klasör olarak temsil edilecektir."
#~ msgid "<b>%A</b>, <b>%H:%M</b>"
#~ msgstr "<b>%A</b>,<b>%H:%M</b>"
#~ msgid "<b>%B</b> <b>%d</b>, <b>%H:%M</b>"
#~ msgstr "<b>%d</b> <b>%B</b>, <b>%H:%M</b>"
#~ msgid "<b>%B</b> <b>%d</b> <b>%Y</b>, <b>%H:%M</b> "
#~ msgstr "<b>%d</b> <b>%B</b> <b>%Y</b>, <b>%H:%M</b> "
#~ msgid "Authorization request from %s"
#~ msgstr "%s 'den yetkilendirme isteği"
#~ msgid "Device %s wants to pair with this computer"
#~ msgstr "%s aygıtı bu bilgisayarla eşleşmek istiyor"
#~ msgid "Allow"
#~ msgstr "İzin ver"
#~ msgid "Deny"
#~ msgstr "Reddet"
#~ msgid "Device %s wants access to the service '%s'"
#~ msgstr "%s aygıtı '%s' hizmetine erişmek istiyor"
#~ msgid "Always grant access"
#~ msgstr "Her zaman erişim izni ver"
#~ msgid "Grant this time only"
#~ msgstr "Sadece bu seferlik izin ver"
#~ msgid "Reject"
#~ msgstr "Reddet"
#~ msgid "Pairing confirmation for %s"
#~ msgstr "%s için eşleşme onayı"
#~ msgid ""
#~ "Please confirm whether the Passkey '%06d' matches the one on the device."
#~ msgstr ""
#~ "Lütfen '%06d' Geçiş Anahtarının, aygıttakiyle eşleştiğini doğrulayın."
#~ msgid "Matches"
#~ msgstr "Eşleşiyor"
#~ msgid "Does not match"
#~ msgstr "Eşleşmiyor"
#~ msgid "Pairing request for %s"
#~ msgstr "%s için eşleşme isteği"
#~ msgid "Please enter the PIN mentioned on the device."
#~ msgstr "Lütfen cihazdaki PIN numarasını girin."
#~ msgid "OK"
#~ msgstr "TAMAM"

View File

@@ -34,8 +34,6 @@ extern GType gnome_shell_plugin_get_type (void);
#define SHELL_DBUS_SERVICE "org.gnome.Shell" #define SHELL_DBUS_SERVICE "org.gnome.Shell"
#define MAGNIFIER_DBUS_SERVICE "org.gnome.Magnifier" #define MAGNIFIER_DBUS_SERVICE "org.gnome.Magnifier"
#define OVERRIDES_SCHEMA "org.gnome.shell.overrides"
#define WM_NAME "GNOME Shell" #define WM_NAME "GNOME Shell"
#define GNOME_WM_KEYBINDINGS "Mutter,GNOME Shell" #define GNOME_WM_KEYBINDINGS "Mutter,GNOME Shell"
@@ -169,26 +167,6 @@ shell_dbus_init (gboolean replace)
g_object_unref (session); g_object_unref (session);
} }
static void
shell_prefs_init (void)
{
ShellGlobal *global = shell_global_get ();
GSettings *settings = shell_global_get_overrides_settings (global);
char **keys, **k, *schema_id;
if (!settings)
return;
g_object_get (G_OBJECT (settings), "schema-id", &schema_id, NULL);
keys = g_settings_list_keys (settings);
for (keys = k = g_settings_list_keys (settings); *k; k++)
meta_prefs_override_preference_schema (*k, schema_id);
g_strfreev (keys);
g_free (schema_id);
}
static void static void
shell_introspection_init (void) shell_introspection_init (void)
{ {
@@ -456,8 +434,6 @@ main (int argc, char **argv)
_shell_global_init ("session-mode", session_mode, NULL); _shell_global_init ("session-mode", session_mode, NULL);
shell_prefs_init ();
ecode = meta_run (); ecode = meta_run ();
if (g_getenv ("GNOME_SHELL_ENABLE_CLEANUP")) if (g_getenv ("GNOME_SHELL_ENABLE_CLEANUP"))

View File

@@ -1355,37 +1355,6 @@ shell_global_get_settings (ShellGlobal *global)
return global->settings; return global->settings;
} }
/**
* shell_global_get_overrides_settings:
* @global: A #ShellGlobal
*
* Get the session overrides GSettings instance.
*
* Return value: (transfer none): The GSettings object
*/
GSettings *
shell_global_get_overrides_settings (ShellGlobal *global)
{
static GSettings *settings = NULL;
const char *schema;
g_return_val_if_fail (SHELL_IS_GLOBAL (global), NULL);
if (!settings)
{
if (strcmp (global->session_mode, "classic") == 0)
schema = "org.gnome.shell.extensions.classic-overrides";
else if (strcmp (global->session_mode, "user") == 0)
schema = "org.gnome.shell.overrides";
else
return NULL;
settings = g_settings_new (schema);
}
return settings;
}
/** /**
* shell_global_get_current_time: * shell_global_get_current_time:
* @global: A #ShellGlobal * @global: A #ShellGlobal

View File

@@ -35,7 +35,6 @@ GdkScreen *shell_global_get_gdk_screen (ShellGlobal *global);
MetaDisplay *shell_global_get_display (ShellGlobal *global); MetaDisplay *shell_global_get_display (ShellGlobal *global);
GList *shell_global_get_window_actors (ShellGlobal *global); GList *shell_global_get_window_actors (ShellGlobal *global);
GSettings *shell_global_get_settings (ShellGlobal *global); GSettings *shell_global_get_settings (ShellGlobal *global);
GSettings *shell_global_get_overrides_settings (ShellGlobal *global);
guint32 shell_global_get_current_time (ShellGlobal *global); guint32 shell_global_get_current_time (ShellGlobal *global);