Compare commits

...

32 Commits

Author SHA1 Message Date
ecea0218f2 Bump version to 3.24.3
Update NEWS.
2017-07-20 00:35:22 +02:00
3478715e6a padOsd: Disallow help/switch monitor actions on rings/strips
It does not make sense to map those actions to non-buttons. Set the
actions insensitive in the combobox to disallow this from the UI.

https://bugzilla.gnome.org/show_bug.cgi?id=782033
2017-07-17 19:48:14 +02:00
cb6d9c9278 padOsd: Implement edition of actions for rings/strips
Customization of keycombo actions for strips/rings was lost in the
porting to new incarnation of Wacom support.

The UI here is slightly different, instead of requiring the user to
rotate/swipe in each direction to map each keycombo, the UI will
navigate the user through edition of both options, first one, then
the other.

https://bugzilla.gnome.org/show_bug.cgi?id=782033
2017-07-17 19:48:14 +02:00
7f693ed2c4 padOsd: strengthen ring/strip label creation
If the padOsd is given a nonexistent ring/strip, things would fail
badly later when trying to paint a 0x0 StLabel. Just avoid creating
more ring/strip labels than those known by libwacom.

This is unlikely to happen, but seems better to protect against it.

https://bugzilla.gnome.org/show_bug.cgi?id=782033
2017-07-14 22:21:48 +02:00
44908cf470 padOsd: Refactor function setting label after edition into separate function
https://bugzilla.gnome.org/show_bug.cgi?id=782033
2017-07-14 22:21:48 +02:00
7db7b7dcbd shellDBus: Avoid access to undefined properties
Don't rely on an implicit undefined value of unset parameters to
shut up some warnings.

https://bugzilla.gnome.org/show_bug.cgi?id=781471
2017-07-13 17:25:10 +02:00
a8b457b52e dateMenu: Set _delegate on non-menu-item menu child
PopupMenu needs special-treatment of certain types of menu items,
which it determines via children's _delegate property. However as
the calendar drop-down is very unmenu-ish, we use regular actors
rather than PopupMenuItems and the missing _delegate property
triggers a warning. Just add it as the bare minimum to make
PopupMenu happy.

https://bugzilla.gnome.org/show_bug.cgi?id=781471
2017-07-13 17:25:10 +02:00
cd678d86e8 notificationDaemon: Avoid access to undefined property
Avoid a warning when assigning from an undefined property by making
sure to pass a proper null value instead.

https://bugzilla.gnome.org/show_bug.cgi?id=781471
2017-07-13 17:25:10 +02:00
384ef7e100 calendar: Fix access to undefined property
Don't call a parent method before chaining-up _init() to
avoid a warning about access to an undefined property.

https://bugzilla.gnome.org/show_bug.cgi?id=781471
2017-07-13 17:25:10 +02:00
451c753e4a windowManager: Fix a warning
The destroy effect currently relies on a monkey-patched property
added from the map effect. However on X11 it is possible that we
did no map animation for a window that is destroyed when the shell
was restarted or had taken over from another WM. Just use the real
MetaWindow property to avoid a warning in that case.

https://bugzilla.gnome.org/show_bug.cgi?id=781471
2017-07-13 17:25:10 +02:00
ebc74957c8 layout: Skip strut computation in the no-monitor case
It's possible for updateRegions() to be called before monitors have
been properly initialized. Instead of throwing an error in that case,
just skip the strut computation (that doesn't make sense anyway without
a monitor).

https://bugzilla.gnome.org/show_bug.cgi?id=781471
2017-07-13 17:25:10 +02:00
70f1f2d7be layout: Range-check index before array lookup
findMonitorForActor() may be called before the layoutManager gets
to initialize monitors, so make sure the monitor index is in range
to avoid a warning.

https://bugzilla.gnome.org/show_bug.cgi?id=781471
2017-07-13 17:25:10 +02:00
1be2102d29 ibusManager: Fix a warning
Don't try to access a non-existent engine - it probably makes sense to
use Map() instead of a plain object to track engines in the future, but
for now just add an additional check to shut up a warning.

https://bugzilla.gnome.org/show_bug.cgi?id=781471
2017-07-13 17:25:10 +02:00
114f371753 history: Fix bogus return value
We only use lastItem() to reset the history index to the end, so
nobody noticed the utter nonsense in the return value until gjs
started to warn about it. As we don't actually use the value
anywhere, we could just remove it, but the function name implies
that an item is returned, so fix it to behave as advertised.

https://bugzilla.gnome.org/show_bug.cgi?id=781471
2017-07-13 17:25:10 +02:00
363d35a3eb panel: Fix a JS warning
We need to track the open-status of indicator menus, but don't want
to hook up signals more than once, so we check for the handler ID
we store on the object. As the property is only defined once we did
set up the signal connection, this check now logs a warning. We
can avoid it by checking for the existence of the property rather
than a particular value.

https://bugzilla.gnome.org/show_bug.cgi?id=781471
2017-07-13 17:25:10 +02:00
26433c2cb7 remoteMenu: Add actionGroup accessor
To avoid recreating the app menu unnecessarily, the panel checks
whether the menu's current actionGroup already matches the target
one. However as the menu's actionGroup property is currently private,
the test always fails, whoops.

https://bugzilla.gnome.org/show_bug.cgi?id=781471
2017-07-13 17:25:10 +02:00
db81ef3e95 dash: Fix some JS warnings
We currently use "array[index]" to test whether an array has an
element at index before using it. However nowadays gjs warns about
accessing non-existent array elements, so the test itself already
produces a warning. Avoid this by checking the array length before
using an index to access an element.

https://bugzilla.gnome.org/show_bug.cgi?id=781471
2017-07-13 17:25:10 +02:00
091fb4ba2e Don't use 'undefined' as boolean
Make sure we pass a proper false value instead of undefined to
avoid warnings.

https://bugzilla.gnome.org/show_bug.cgi?id=781471
2017-07-13 17:25:10 +02:00
54891a4cd0 Initialize properties in _init()
While we've always considered it good style to initialize JS properties,
some code that relies on uninitialized properties having an implicit
value of 'undefined' has slipped in over time. The updated SpiderMonkey
version used by gjs now warns when accessing those properties, so we
should make sure that they are properly initialized to avoid log spam,
even though all warnings addressed here occur in conditionals that
produce the correct result with 'undefined'.

https://bugzilla.gnome.org/show_bug.cgi?id=781471
2017-07-13 17:25:10 +02:00
31c9d2cf7a system: Emulate click action button release
Since commit 2c070d38, we add a ClickAction to the visible AltSwitcher
button to track long-presses. As a result, we now have two components
that will grab and ungrab the pointer for the button, so to make sure
we don't end up with a stuck grab, we need to release the second's
component grab when the first activates.

Currently we only drop the StButton grab on long-press, we also need
to cancel any initiated long-press on click.

https://bugzilla.gnome.org/show_bug.cgi?id=781738
2017-07-13 12:30:17 +02:00
1b8bba5593 Fix translation headers 2017-07-10 08:01:56 -04:00
180a897588 notificationDaemon: Fix fallback icon names
The gtk-dialog-* names are old and non-standard, and haven't been
provided by the default icon theme for quite a while ...

https://bugzilla.gnome.org/show_bug.cgi?id=784245
2017-07-05 18:41:06 +02:00
95dba93046 st: Don't try to create shadow for empty texture
Even though the API documentation doesn't say so, the underlying
Cogl texture of a ClutterTexture may be unset, so check for that
case to avoid a runtime warning.

https://bugzilla.gnome.org/show_bug.cgi?id=784353
2017-07-05 17:11:07 +02:00
35eddb3dfa util: Force text direction of time strings
While the string returned by formatTime() should follow the locale's
text direction as a whole, the actual time part is always expected
to put hours on the left and minutes to the right. It is possible to
enforce that by inserting a left-to-right mark, but so far this is
only done by the Hebrew translation. So in order to not require all
other RTL translations to be fixed individually, just insert the
mark into the returned string ourselves like gnome-desktop's WallClock
code does[0].

[0] https://git.gnome.org/browse/gnome-desktop/tree/libgnome-desktop/gnome-wall-clock.c?h=gnome-3-24#n267

https://bugzilla.gnome.org/show_bug.cgi?id=784130
2017-07-05 17:08:15 +02:00
aa08bd75d0 portalHelper: Fix auth URI not being passed to window
Gjs-Message: JS WARNING: [resource:///org/gnome/shell/portalHelper/main.js 360]: reference to undefined property top.uri
is caused by the URI variable actually being called "url".

https://bugzilla.gnome.org/show_bug.cgi?id=783286
2017-06-02 11:47:20 -05:00
d104ebf612 portalHelper: Don't go through proxies for captive portals
When using an SSH tunnel (through a SOCKS proxy) to funnel all
the outgoing traffic, we need the captive portal to not go through that
proxy, otherwise we can't go through the proxy because we're not
connected to the Internet and we can't go through the portal because
we're not connected through the proxy.

This fixes a blank captive portal window and no error reporting in that
particular configuration.

https://bugzilla.gnome.org/show_bug.cgi?id=769692
2017-06-02 11:47:13 -05:00
e7ad9d7217 Update Turkish translation 2017-05-20 03:51:58 +00:00
35e6a31982 tests: Update markup test for function moved to messageList
https://bugzilla.gnome.org/show_bug.cgi?id=782802
2017-05-19 08:29:27 -04:00
4c1467196e Update Serbian Latin translation 2017-05-18 21:56:21 +00:00
7329721216 Update Serbian translation 2017-05-18 21:53:02 +00:00
946ff3b380 Update German translation 2017-05-18 18:55:42 +00:00
0c584182d3 Fix bashism in autogen.sh
https://bugzilla.gnome.org/show_bug.cgi?id=780215
2017-05-11 15:46:32 +02:00
34 changed files with 652 additions and 390 deletions

17
NEWS
View File

@ -1,3 +1,20 @@
3.24.3
======
* Bypass proxies for captive portal [Bastien; #769692]
* Fix missing icons in freedesktop notifications [Florian; #784245]
* Fix blocked clicks in shutdown dialog [Florian; #781738]
* Implement tablet rings/strips configuration [Carlos; #782033]
* Misc. bug fixes [Matthias, Jeremy, Bastien, Florian; #780215, #782802,
#783286, #784130, #784353, #781471]
Contributors:
Jeremy Bicha, Carlos Garnacho, Matthias Liertzer, Florian Müllner,
Bastien Nocera
Translations:
Christian Stadelmann [de], Марко Костић [sr], Милош Поповић [sr@latin],
Furkan Ahmet Kara [tr], Jeremy Bicha [es, he]
3.24.2
======
* Only fetch weather information when there's a valid location [Rares; #780404]

View File

@ -4,7 +4,9 @@
srcdir=`dirname $0`
test -z "$srcdir" && srcdir=.
pushd $srcdir
olddir="$(pwd)"
cd "${srcdir}"
(test -f configure.ac \
&& test -d src) || {
@ -26,8 +28,8 @@ gtkdocize --copy || exit 1
intltoolize --force --copy --automake || exit 1
autoreconf --verbose --force --install || exit 1
popd
cd "${olddir}"
if [ "$NOCONFIGURE" = "" ]; then
$srcdir/configure "$@" || exit 1
"${srcdir}/configure" "$@" || exit 1
fi

View File

@ -1,5 +1,5 @@
AC_PREREQ(2.63)
AC_INIT([gnome-shell],[3.24.2],[https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell],[gnome-shell])
AC_INIT([gnome-shell],[3.24.3],[https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell],[gnome-shell])
AX_IS_RELEASE([git-directory])
AC_CONFIG_HEADERS([config.h])

View File

@ -128,6 +128,9 @@ const ShellUserVerifier = new Lang.Class({
this._client = client;
this._defaultService = null;
this._preemptingService = null;
this._settings = new Gio.Settings({ schema_id: LOGIN_SCREEN_SCHEMA });
this._settings.connect('changed',
Lang.bind(this, this._updateDefaultService));
@ -140,6 +143,7 @@ const ShellUserVerifier = new Lang.Class({
// at startup should result in immediately initiating authentication.
// This is different than fingeprint readers, where we only check them
// after a user has been picked.
this.smartcardDetected = false;
this._checkForSmartcard();
this._smartcardInsertedId = this._smartcardManager.connect('smartcard-inserted',

View File

@ -69,7 +69,7 @@ const HistoryManager = new Lang.Class({
this._indexChanged();
}
return this._historyIndex[this._history.length];
return this._historyIndex ? this._history[this._historyIndex -1] : null;
},
addItem: function(input) {

View File

@ -190,7 +190,7 @@ const IBusManager = new Lang.Class({
},
getEngineDesc: function(id) {
if (!IBus || !this._ready)
if (!IBus || !this._ready || !this._engines.hasOwnProperty(id))
return null;
return this._engines[id];

View File

@ -281,7 +281,10 @@ function formatTime(time, params) {
// xgettext:no-c-format
format = N_("%B %d %Y, %l\u2236%M %p");
}
return date.format(Shell.util_translate_time_string(format));
let formattedTime = date.format(Shell.util_translate_time_string(format));
// prepend LTR-mark to colon/ratio to force a text direction on times
return formattedTime.replace(/([:\u2236])/g, '\u200e$1');
}
function createTimeLabel(date, params) {

View File

@ -143,6 +143,7 @@ const PortalWindow = new Lang.Class({
this._webContext = WebKit.WebContext.new_ephemeral();
this._webContext.set_cache_model(WebKit.CacheModel.DOCUMENT_VIEWER);
this._webContext.set_network_proxy_settings(WebKit.NetworkProxyMode.NO_PROXY, null);
this._webView = WebKit.WebView.new_with_context(this._webContext);
this._webView.connect('decide-policy', Lang.bind(this, this._onDecidePolicy));
@ -356,7 +357,7 @@ const WebPortalHelper = new Lang.Class({
if (top.window != null)
return;
top.window = new PortalWindow(this, top.uri, top.timestamp, Lang.bind(this, function(result) {
top.window = new PortalWindow(this, top.url, top.timestamp, Lang.bind(this, function(result) {
this._dbusImpl.emit_signal('Done', new GLib.Variant('(ou)', [top.connection, result]));
}));
},

View File

@ -1083,6 +1083,8 @@ const AppSearchProvider = new Lang.Class({
_init: function() {
this._appSys = Shell.AppSystem.get_default();
this.id = 'applications';
this.isRemoteProvider = false;
this.canLaunchSearch = false;
},
getResultMetas: function(apps, callback) {
@ -1251,6 +1253,7 @@ const FolderIcon = new Lang.Class({
_init: function(id, path, parentView) {
this.id = id;
this.name = '';
this._parentView = parentView;
this._folder = new Gio.Settings({ schema_id: 'org.gnome.desktop.app-folders.folder',

View File

@ -761,8 +761,8 @@ const NotificationMessage = new Lang.Class({
_init: function(notification) {
this.notification = notification;
this.setUseBodyMarkup(notification.bannerBodyMarkup);
this.parent(notification.title, notification.bannerBodyText);
this.setUseBodyMarkup(notification.bannerBodyMarkup);
this.setIcon(this._getIcon());

View File

@ -756,42 +756,44 @@ const Dash = new Lang.Class({
let newIndex = 0;
let oldIndex = 0;
while (newIndex < newApps.length || oldIndex < oldApps.length) {
let oldApp = oldApps.length > oldIndex ? oldApps[oldIndex] : null;
let newApp = newApps.length > newIndex ? newApps[newIndex] : null;
// No change at oldIndex/newIndex
if (oldApps[oldIndex] == newApps[newIndex]) {
if (oldApp == newApp) {
oldIndex++;
newIndex++;
continue;
}
// App removed at oldIndex
if (oldApps[oldIndex] &&
newApps.indexOf(oldApps[oldIndex]) == -1) {
if (oldApp && newApps.indexOf(oldApp) == -1) {
removedActors.push(children[oldIndex]);
oldIndex++;
continue;
}
// App added at newIndex
if (newApps[newIndex] &&
oldApps.indexOf(newApps[newIndex]) == -1) {
addedItems.push({ app: newApps[newIndex],
item: this._createAppItem(newApps[newIndex]),
if (newApp && oldApps.indexOf(newApp) == -1) {
addedItems.push({ app: newApp,
item: this._createAppItem(newApp),
pos: newIndex });
newIndex++;
continue;
}
// App moved
let insertHere = newApps[newIndex + 1] &&
newApps[newIndex + 1] == oldApps[oldIndex];
let nextApp = newApps.length > newIndex + 1 ? newApps[newIndex + 1]
: null;
let insertHere = nextApp && nextApp == oldApp;
let alreadyRemoved = removedActors.reduce(function(result, actor) {
let removedApp = actor.child._delegate.app;
return result || removedApp == newApps[newIndex];
return result || removedApp == newApp;
}, false);
if (insertHere || alreadyRemoved) {
let newItem = this._createAppItem(newApps[newIndex]);
addedItems.push({ app: newApps[newIndex],
let newItem = this._createAppItem(newApp);
addedItems.push({ app: newApp,
item: newItem,
pos: newIndex + removedActors.length });
newIndex++;

View File

@ -474,6 +474,8 @@ const DateMenuButton = new Lang.Class({
let layout = new FreezableBinLayout();
let bin = new St.Widget({ layout_manager: layout });
// For some minimal compatibility with PopupMenuItem
bin._delegate = this;
this.menu.box.add_child(bin);
hbox = new St.BoxLayout({ name: 'calendarArea' });

View File

@ -570,7 +570,7 @@ const Keyboard = new Lang.Class({
shouldTakeEvent: function(event) {
let actor = event.get_source();
return Main.layoutManager.keyboardBox.contains(actor) ||
actor._extended_keys || actor.extended_key;
!!actor._extended_keys || !!actor.extended_key;
},
_clearKeyboardRestTimer: function() {

View File

@ -896,7 +896,10 @@ const LayoutManager = new Lang.Class({
},
findMonitorForActor: function(actor) {
return this.monitors[this.findIndexForActor(actor)];
let index = this.findIndexForActor(actor);
if (index >= 0 && index < this.monitors.length)
return this.monitors[index];
return null;
},
_queueUpdateRegions: function() {
@ -966,7 +969,11 @@ const LayoutManager = new Lang.Class({
if (actorData.affectsInputRegion && wantsInputRegion && actorData.actor.get_paint_visibility())
rects.push(new Meta.Rectangle({ x: x, y: y, width: w, height: h }));
if (actorData.affectsStruts) {
let monitor = null;
if (actorData.affectsStruts)
monitor = this.findMonitorForActor(actorData.actor);
if (monitor) {
// Limit struts to the size of the screen
let x1 = Math.max(x, 0);
let x2 = Math.min(x + w, global.screen_width);
@ -983,7 +990,6 @@ const LayoutManager = new Lang.Class({
// spans the width/height across the middle of the
// screen, then we don't create a strut for it at all.
let monitor = this.findMonitorForActor(actorData.actor);
let side;
if (x1 <= monitor.x && x2 >= monitor.x + monitor.width) {
if (y1 <= monitor.y)

View File

@ -783,6 +783,7 @@ const LookingGlass = new Lang.Class({
this._open = false;
this._it = null;
this._offset = 0;
this._results = [];

View File

@ -165,6 +165,11 @@ const ScaleLayout = new Lang.Class({
Name: 'ScaleLayout',
Extends: Clutter.BinLayout,
_init: function(params) {
this._container = null;
this.parent(params);
},
_connectContainer: function(container) {
if (this._container == container)
return;
@ -299,6 +304,8 @@ const Message = new Lang.Class({
_init: function(title, body) {
this.expanded = false;
this._useBodyMarkup = false;
this.actor = new St.Button({ style_class: 'message',
accessible_role: Atk.Role.NOTIFICATION,
can_focus: true,

View File

@ -128,10 +128,10 @@ const FdoNotificationDaemon = new Lang.Class({
switch (hints.urgency) {
case Urgency.LOW:
case Urgency.NORMAL:
stockIcon = 'gtk-dialog-info';
stockIcon = 'dialog-information';
break;
case Urgency.CRITICAL:
stockIcon = 'gtk-dialog-error';
stockIcon = 'dialog-error';
break;
}
return new Gio.ThemedIcon({ name: stockIcon });
@ -186,7 +186,8 @@ const FdoNotificationDaemon = new Lang.Class({
return source;
}
source = new FdoNotificationDaemonSource(title, pid, sender, ndata ? ndata.hints['desktop-entry'] : null);
let appId = ndata ? ndata.hints['desktop-entry'] || null : null;
source = new FdoNotificationDaemonSource(title, pid, sender, appId);
this._sources.push(source);
source.connect('destroy', Lang.bind(this, function() {
@ -391,10 +392,10 @@ const FdoNotificationDaemon = new Lang.Class({
notification.setUrgency(MessageTray.Urgency.CRITICAL);
break;
}
notification.setResident(hints.resident == true);
notification.setResident(!!hints.resident);
// '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);
notification.setTransient(!!hints['transient']);
let sourceGIcon = source.useNotificationIcon ? gicon : null;
source.processNotification(notification, sourceGIcon);

View File

@ -154,9 +154,16 @@ const ActionComboBox = new Lang.Class({
this._actionLabels.set(GDesktopEnums.PadButtonAction.SWITCH_MONITOR, _("Switch monitor"));
this._actionLabels.set(GDesktopEnums.PadButtonAction.KEYBINDING, _("Assign keystroke"));
this._buttonItems = [];
for (let [action, label] of this._actionLabels.entries()) {
let selectedAction = action;
this._editMenu.addAction(label, Lang.bind(this, function() { this._onActionSelected(selectedAction) }));
let item = this._editMenu.addAction(label, Lang.bind(this, function() { this._onActionSelected(selectedAction) }));
/* These actions only apply to pad buttons */
if (selectedAction == GDesktopEnums.PadButtonAction.HELP ||
selectedAction == GDesktopEnums.PadButtonAction.SWITCH_MONITOR)
this._buttonItems.push(item);
}
this.setAction(GDesktopEnums.PadButtonAction.NONE);
@ -185,6 +192,10 @@ const ActionComboBox = new Lang.Class({
this.popup();
else
this.popdown();
},
setButtonActionsActive: function (active) {
this._buttonItems.forEach(item => { item.setSensitive(active); });
}
});
Signals.addSignalMethods(ActionComboBox.prototype);
@ -223,13 +234,16 @@ const ActionEditor = new Lang.Class({
}
},
setSettings: function (settings) {
setSettings: function (settings, action) {
this._buttonSettings = settings;
this._currentAction = this._buttonSettings.get_enum('action');
this._currentKeybinding = this._buttonSettings.get_string('keybinding');
this._actionComboBox.setAction(this._currentAction);
this._updateKeybindingEntryState();
let isButton = (action == Meta.PadActionType.BUTTON);
this._actionComboBox.setButtonActionsActive(isButton);
},
close: function() {
@ -293,6 +307,8 @@ const PadDiagram = new Lang.Class({
_init: function (params) {
let file = Gio.File.new_for_uri('resource:///org/gnome/shell/theme/pad-osd.css');
let [success, css, etag] = file.load_contents(null);
this._curEdited = null;
this._prevEdited = null;
this._css = css;
this._labels = [];
this._activeButtons = [];
@ -550,25 +566,39 @@ const PadDiagram = new Lang.Class({
this.add_actor(label);
},
stopEdition: function (str) {
_applyLabel: function(label, action, idx, dir, str) {
if (str != null) {
label.set_text(str);
let [found, x, y, arrangement] = this.getLabelCoords(action, idx, dir);
this._allocateChild(label, x, y, arrangement);
}
label.show();
},
stopEdition: function (continues, str) {
this._editorActor.hide();
if (this._prevEdited) {
let [label, action, idx, dir] = this._prevEdited;
this._applyLabel(label, action, idx, dir, str);
this._prevEdited = null;
}
if (this._curEdited) {
let [label, action, idx, dir] = this._curEdited;
if (str != null) {
label.set_text(str);
let [found, x, y, arrangement] = this.getLabelCoords(action, idx, dir);
this._allocateChild(label, x, y, arrangement);
}
label.show();
this._applyLabel(label, action, idx, dir, str);
if (continues)
this._prevEdited = this._curEdited;
this._curEdited = null;
}
},
startEdition: function(action, idx, dir) {
let editedLabel;
this.stopEdition();
if (this._curEdited)
return;
for (let i = 0; i < this._labels.length; i++) {
let [label, itemAction, itemIdx, itemDir] = this._labels[i];
@ -662,7 +692,7 @@ const PadOsd = new Lang.Class({
this._updatePadChooser();
this._actionEditor = new ActionEditor();
this._actionEditor.connect('done', Lang.bind(this, this._endButtonActionEdition));
this._actionEditor.connect('done', Lang.bind(this, this._endActionEdition));
this._padDiagram = new PadDiagram({ image: this._imagePath,
left_handed: settings.get_boolean('left-handed'),
@ -681,11 +711,17 @@ const PadOsd = new Lang.Class({
}
for (i = 0; i < padDevice.get_n_rings(); i++) {
let [found] = this._padDiagram.getRingLabelCoords(i, CW);
if (!found)
break;
this._createLabel(Meta.PadActionType.RING, i, CW);
this._createLabel(Meta.PadActionType.RING, i, CCW);
}
for (i = 0; i < padDevice.get_n_strips(); i++) {
let [found] = this._padDiagram.getStripLabelCoords(i, UP);
if (!found)
break;
this._createLabel(Meta.PadActionType.STRIP, i, UP);
this._createLabel(Meta.PadActionType.STRIP, i, DOWN);
}
@ -743,8 +779,10 @@ const PadOsd = new Lang.Class({
if (event.type() == Clutter.EventType.PAD_BUTTON_PRESS &&
event.get_source_device() == this.padDevice) {
this._padDiagram.activateButton(event.get_button());
let isModeSwitch = this.padDevice.get_mode_switch_button_group(event.get_button()) >= 0;
if (this._editionMode)
/* Buttons that switch between modes cannot be edited */
if (this._editionMode && !isModeSwitch)
this._startButtonActionEdition(event.get_button());
return Clutter.EVENT_STOP;
} else if (event.type() == Clutter.EventType.PAD_BUTTON_RELEASE &&
@ -753,11 +791,23 @@ const PadOsd = new Lang.Class({
return Clutter.EVENT_STOP;
} else if (event.type() == Clutter.EventType.KEY_PRESS &&
(!this._editionMode || event.get_key_symbol() == Clutter.Escape)) {
if (this._editingButtonAction != null)
this._endButtonActionEdition();
if (this._editedAction != null)
this._endActionEdition();
else
this.destroy();
return Clutter.EVENT_STOP;
} else if (event.get_source_device() == this.padDevice &&
event.type() == Clutter.EventType.PAD_STRIP) {
if (this._editionMode) {
let [retval, number, mode] = event.get_pad_event_details();
this._startStripActionEdition(number, UP, mode);
}
} else if (event.get_source_device() == this.padDevice &&
event.type() == Clutter.EventType.PAD_RING) {
if (this._editionMode) {
let [retval, number, mode] = event.get_pad_event_details();
this._startRingActionEdition(number, CCW, mode);
}
}
// If the event comes from another pad in the same group,
@ -790,33 +840,79 @@ const PadOsd = new Lang.Class({
this._titleLabel.clutter_text.set_markup('<span size="larger"><b>' + title + '</b></span>');
},
_endButtonActionEdition: function () {
_isEditedAction: function (type, number, dir) {
if (!this._editedAction)
return false;
return (this._editedAction.type == type &&
this._editedAction.number == number &&
this._editedAction.dir == dir);
},
_followUpActionEdition: function (str) {
let { type, dir, number, mode } = this._editedAction;
let hasNextAction = (type == Meta.PadActionType.RING && dir == CCW ||
type == Meta.PadActionType.STRIP && dir == UP);
if (!hasNextAction)
return false;
this._padDiagram.stopEdition(true, str);
this._editedAction = null;
if (type == Meta.PadActionType.RING)
this._startRingActionEdition(number, CW, mode);
else
this._startStripActionEdition(number, DOWN, mode);
return true;
},
_endActionEdition: function () {
this._actionEditor.close();
if (this._editingButtonAction != null) {
if (this._editedAction != null) {
let str = global.display.get_pad_action_label(this.padDevice,
Meta.PadActionType.BUTTON,
this._editingButtonAction);
this._padDiagram.stopEdition(str ? str : _("None"))
this._editingButtonAction = null;
this._editedAction.type,
this._editedAction.number);
if (this._followUpActionEdition(str))
return;
this._padDiagram.stopEdition(false, str ? str : _("None"))
this._editedAction = null;
}
this._editedButtonSettings = null;
this._editedActionSettings = null;
},
_startActionEdition: function (key, type, number, dir, mode) {
if (this._isEditedAction(type, number, dir))
return;
this._endActionEdition();
this._editedAction = { type, number, dir, mode };
let settingsPath = this._settings.path + key + '/';
this._editedActionSettings = Gio.Settings.new_with_path('org.gnome.desktop.peripherals.tablet.pad-button',
settingsPath);
this._actionEditor.setSettings(this._editedActionSettings, type);
this._padDiagram.startEdition(type, number, dir);
},
_startButtonActionEdition: function (button) {
if (this._editingButtonAction == button)
return;
this._endButtonActionEdition();
this._editingButtonAction = button;
let ch = String.fromCharCode('A'.charCodeAt() + button);
let settingsPath = this._settings.path + "button" + ch + '/';
this._editedButtonSettings = Gio.Settings.new_with_path('org.gnome.desktop.peripherals.tablet.pad-button',
settingsPath);
this._actionEditor.setSettings(this._editedButtonSettings);
this._padDiagram.startEdition(Meta.PadActionType.BUTTON, button);
let key = 'button' + ch;
this._startActionEdition(key, Meta.PadActionType.BUTTON, button);
},
_startRingActionEdition: function (ring, dir, mode) {
let ch = String.fromCharCode('A'.charCodeAt() + ring);
let key = 'ring%s-%s-mode-%d'.format(ch, dir == CCW ? 'ccw' : 'cw', mode);
this._startActionEdition(key, Meta.PadActionType.RING, ring, dir, mode);
},
_startStripActionEdition: function (strip, dir, mode) {
let ch = String.fromCharCode('A'.charCodeAt() + strip);
let key = 'strip%s-%s-mode-%d'.format(ch, dir == UP ? 'up' : 'down', mode);
this._startActionEdition(key, Meta.PadActionType.STRIP, strip, dir, mode);
},
setEditionMode: function (editionMode) {

View File

@ -1104,7 +1104,7 @@ const Panel = new Lang.Class({
},
_onMenuSet: function(indicator) {
if (!indicator.menu || indicator.menu._openChangedId > 0)
if (!indicator.menu || indicator.menu.hasOwnProperty('_openChangedId'))
return;
indicator.menu._openChangedId = indicator.menu.connect('open-state-changed',

View File

@ -192,6 +192,10 @@ const RemoteMenu = new Lang.Class({
_removeItem.bind(null, this));
},
get actionGroup() {
return this._actionGroup;
},
destroy: function() {
this._tracker.destroy();
this.parent();

View File

@ -200,6 +200,7 @@ const RemoteSearchProvider = new Lang.Class({
this.appInfo = appInfo;
this.id = appInfo.get_id();
this.isRemoteProvider = true;
this.canLaunchSearch = false;
},
createIcon: function(size, meta) {

View File

@ -142,15 +142,15 @@ const GnomeShell = new Lang.Class({
for (let param in params)
params[param] = params[param].deep_unpack();
let monitorIndex = -1;
if (params['monitor'] >= 0)
monitorIndex = params['monitor'];
let monitorIndex = params['monitor'] || -1;
let label = params['label'] || undefined;
let level = params['level'] || undefined;
let icon = null;
if (params['icon'])
icon = Gio.Icon.new_for_string(params['icon']);
Main.osdWindowManager.show(monitorIndex, icon, params['label'], params['level']);
Main.osdWindowManager.show(monitorIndex, icon, label, level);
},
FocusApp: function(id) {

View File

@ -1709,6 +1709,7 @@ const NMApplet = new Lang.Class({
this._mainConnection = null;
this._mainConnectionIconChangedId = 0;
this._mainConnectionStateChangedId = 0;
this._notification = null;

View File

@ -42,9 +42,15 @@ const AltSwitcher = new Lang.Class({
_init: function(standard, alternate) {
this._standard = standard;
this._standard.connect('notify::visible', Lang.bind(this, this._sync));
if (this._standard instanceof St.Button)
this._standard.connect('clicked',
() => { this._clickAction.release(); });
this._alternate = alternate;
this._alternate.connect('notify::visible', Lang.bind(this, this._sync));
if (this._alternate instanceof St.Button)
this._alternate.connect('clicked',
() => { this._clickAction.release(); });
this._capturedEventId = global.stage.connect('captured-event', Lang.bind(this, this._onCapturedEvent));

View File

@ -1614,7 +1614,7 @@ const WindowManager = new Lang.Class({
return;
}
switch (actor._windowType) {
switch (actor.meta_window.window_type) {
case Meta.WindowType.NORMAL:
actor.set_pivot_point(0.5, 0.5);
this._destroying.push(actor);

View File

@ -1100,6 +1100,7 @@ const Workspace = new Lang.Class({
_init : function(metaWorkspace, monitorIndex) {
// When dragging a window, we use this slot for reserve space.
this._reservedSlot = null;
this._reservedSlotWindow = null;
this.metaWorkspace = metaWorkspace;
// The full geometry is the geometry we should try and position

View File

@ -22,7 +22,7 @@ msgstr ""
"Project-Id-Version: gnome-shell master\n"
"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2017-03-20 18:14+0000\n"
"POT-Creation-Date: 2017-05-04 22:42+0000\n"
"PO-Revision-Date: 2017-03-21 19:33+0100\n"
"Last-Translator: Mario Blättermann <mario.blaettermann@gmail.com>\n"
"Language-Team: Deutsch <gnome-de@gnome.org>\n"
@ -58,7 +58,7 @@ msgid "Open the application menu"
msgstr "Das Anwendungsmenü öffnen"
#: data/gnome-shell-extension-prefs.desktop.in.in:4
#: js/extensionPrefs/main.js:149
#: js/extensionPrefs/main.js:152
msgid "Shell Extensions"
msgstr "Shell-Erweiterungen"
@ -347,7 +347,7 @@ msgstr "Netzwerkanmeldung"
msgid "network-workgroup"
msgstr "network-workgroup"
#: js/extensionPrefs/main.js:117
#: js/extensionPrefs/main.js:120
#, javascript-format
msgid "There was an error loading the preferences dialog for %s:"
msgstr "Beim Laden des Einstellungsdialogs für %s ist ein Fehler aufgetreten:"
@ -433,7 +433,7 @@ msgstr "Ausführung von »%s« ist gescheitert:"
#: js/misc/util.js:180
msgid "Just now"
msgstr "Genau jetzt"
msgstr "Gerade eben"
#: js/misc/util.js:182
#, javascript-format
@ -553,11 +553,11 @@ msgid "%B %d %Y, %l%M %p"
msgstr "%e. %B %Y, %H:%M"
#. TRANSLATORS: this is the title of the wifi captive portal login window
#: js/portalHelper/main.js:67
#: js/portalHelper/main.js:66
msgid "Hotspot Login"
msgstr "Hotspot-Anmeldung"
#: js/portalHelper/main.js:113
#: js/portalHelper/main.js:112
msgid ""
"Your connection to this hotspot login is not secure. Passwords or other "
"information you enter on this page can be viewed by people nearby."
@ -847,7 +847,7 @@ msgstr "Passwort der mobilen Breitbandverbindung"
msgid "A password is required to connect to “%s”."
msgstr "Es wird ein Passwort benötigt, um sich mit »%s« zu verbinden."
#: js/ui/components/networkAgent.js:655 js/ui/status/network.js:1755
#: js/ui/components/networkAgent.js:655 js/ui/status/network.js:1759
msgid "Network Manager"
msgstr "Netzwerk-Verwaltung"
@ -879,7 +879,7 @@ msgstr ""
msgid "%s is now known as %s"
msgstr "%s heißt jetzt %s"
#: js/ui/ctrlAltTab.js:29 js/ui/viewSelector.js:178
#: js/ui/ctrlAltTab.js:29 js/ui/viewSelector.js:179
msgid "Windows"
msgstr "Fenster"
@ -1459,7 +1459,7 @@ msgstr "Einschalten"
#: js/ui/status/bluetooth.js:142 js/ui/status/network.js:181
#: js/ui/status/network.js:367 js/ui/status/network.js:1310
#: js/ui/status/network.js:1425 js/ui/status/nightLight.js:47
#: js/ui/status/network.js:1429 js/ui/status/nightLight.js:47
#: js/ui/status/rfkill.js:90 js/ui/status/rfkill.js:117
msgid "Turn Off"
msgstr "Ausschalten"
@ -1662,62 +1662,62 @@ msgstr "Hotspot %s eingeschaltet"
msgid "%s Not Connected"
msgstr "%s nicht verbunden"
#: js/ui/status/network.js:1442
#: js/ui/status/network.js:1446
msgid "connecting…"
msgstr "Verbindungsaufbau …"
#. Translators: this is for network connections that require some kind of key or password
#: js/ui/status/network.js:1445
#: js/ui/status/network.js:1449
msgid "authentication required"
msgstr "Anmeldung erforderlich"
#: js/ui/status/network.js:1447
#: js/ui/status/network.js:1451
msgid "connection failed"
msgstr "Verbindung gescheitert"
#: js/ui/status/network.js:1513 js/ui/status/network.js:1608
#: js/ui/status/network.js:1517 js/ui/status/network.js:1612
#: js/ui/status/rfkill.js:93
msgid "Network Settings"
msgstr "Netzwerkeinstellungen"
#: js/ui/status/network.js:1515
#: js/ui/status/network.js:1519
msgid "VPN Settings"
msgstr "VPN-Einstellungen"
#: js/ui/status/network.js:1534
#: js/ui/status/network.js:1538
msgid "VPN"
msgstr "VPN"
#: js/ui/status/network.js:1544
#: js/ui/status/network.js:1548
msgid "VPN Off"
msgstr "VPN ausgeschaltet"
#: js/ui/status/network.js:1639
#: js/ui/status/network.js:1643
#, javascript-format
msgid "%s Wired Connection"
msgid_plural "%s Wired Connections"
msgstr[0] "%s Kabelverbindung"
msgstr[1] "%s Kabelverbindungen"
#: js/ui/status/network.js:1643
#: js/ui/status/network.js:1647
#, javascript-format
msgid "%s Wi-Fi Connection"
msgid_plural "%s Wi-Fi Connections"
msgstr[0] "%s Funknetzwerkverbindung"
msgstr[1] "%s Funknetzwerkverbindungen"
#: js/ui/status/network.js:1647
#: js/ui/status/network.js:1651
#, javascript-format
msgid "%s Modem Connection"
msgid_plural "%s Modem Connections"
msgstr[0] "%s Modem-Verbindung"
msgstr[1] "%s Modem-Verbindungen"
#: js/ui/status/network.js:1794
#: js/ui/status/network.js:1798
msgid "Connection failed"
msgstr "Verbindung gescheitert"
#: js/ui/status/network.js:1795
#: js/ui/status/network.js:1799
msgid "Activation of network connection failed"
msgstr "Aktivierung der Netzwerkverbindung ist gescheitert"
@ -1815,11 +1815,11 @@ msgstr "Als anderer Benutzer anmelden"
msgid "Unlock Window"
msgstr "Fenster entsperren"
#: js/ui/viewSelector.js:182
#: js/ui/viewSelector.js:183
msgid "Applications"
msgstr "Anwendungen"
#: js/ui/viewSelector.js:186
#: js/ui/viewSelector.js:187
msgid "Search"
msgstr "Suchen"

View File

@ -1,10 +1,10 @@
# Spanish translation of gnome-shell.
# Copyright (C) 2009 gnome-shell's COPYRIGHT HOLDER
# This file is distributed under the same license as the gnome-shell package.
# Jorge González <jorgegonz@svn.gnome.org>, 2009, 2010, 2011.
# Benjamín Valero Espinosa <benjavalero@gmail.com>, 2011.
#
# Daniel Mustieles <daniel.mustieles@gmail.com>, 2010, 2011, 2012, 2013, 2014, 2015.
# Spanish translation of gnome-shell.
# Copyright (C) 2009 gnome-shell's COPYRIGHT HOLDER
# This file is distributed under the same license as the gnome-shell package.
# Jorge González <jorgegonz@svn.gnome.org>, 2009, 2010, 2011.
# Benjamín Valero Espinosa <benjavalero@gmail.com>, 2011.
#
# Daniel Mustieles <daniel.mustieles@gmail.com>, 2010-2017.
#
msgid ""
msgstr ""

View File

@ -1,10 +1,10 @@
# Hebrew translation for gnome-shell.
# Copyright (C) 2009 gnome-shell's COPYRIGHT HOLDER
# This file is distributed under the same license as the gnome-shell package.
# liel <lielft@gmail.com>, 2009.
# Yaron Shahrabani <sh.yaron@gmail.com>, 2010.
#
# Yosef Or Boczko <yoseforb@gnome.org>, 2013, 2014.
# Hebrew translation for gnome-shell.
# Copyright (C) 2009 gnome-shell's COPYRIGHT HOLDER
# This file is distributed under the same license as the gnome-shell package.
# liel <lielft@gmail.com>, 2009.
# Yaron Shahrabani <sh.yaron@gmail.com>, 2010.
#
# Yosef Or Boczko <yoseforb@gnome.org>, 2013, 2014.
#
msgid ""
msgstr ""
@ -1095,7 +1095,7 @@ msgstr "מופעל מחדש…"
msgid "%A, %B %d"
msgstr "%A, ה־%d ב%B"
# javascript-format
#: js/ui/screenShield.js:144
#, javascript-format
msgid "%d new message"
@ -1103,7 +1103,7 @@ msgid_plural "%d new messages"
msgstr[0] "הודעה חדשה אחת"
msgstr[1] "%d הודעות חדשות"
# javascript-format
#: js/ui/screenShield.js:146
#, javascript-format
msgid "%d new notification"
@ -1577,7 +1577,7 @@ msgstr "שחזור הגדרות"
msgid "Keep Changes"
msgstr "שמירת שינויים"
# javascript-format
#: js/ui/windowManager.js:103
#, javascript-format
msgid "Settings changes will revert in %d second"
@ -1728,7 +1728,7 @@ msgstr "המשתמש בחר להתעלם מתיבת דו־שיח האימות"
#~ msgid "System"
#~ msgstr "מערכת"
# javascript-format
#~ msgid "Show the notification list"
#~ msgstr "הצגת רשימת ההתרעות"
@ -1759,7 +1759,7 @@ msgstr "המשתמש בחר להתעלם מתיבת דו־שיח האימות"
#~ msgid "GNOME Shell (wayland compositor)"
#~ msgstr "GNOME Shell (מסדר wayland)"
# javascript-format
#~ msgid "%d Connected Device"
#~ msgid_plural "%d Connected Devices"
#~ msgstr[0] "התקן אחד מחובר"

View File

@ -11,8 +11,8 @@ msgstr ""
"Project-Id-Version: gnome-shell master\n"
"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2017-04-09 11:12+0000\n"
"PO-Revision-Date: 2017-03-21 18:18+0100\n"
"POT-Creation-Date: 2017-05-18 18:56+0000\n"
"PO-Revision-Date: 2017-05-18 22:42+0200\n"
"Last-Translator: Марко М. Костић <marko.m.kostic@gmail.com>\n"
"Language-Team: Serbian <gnom@prevod.org>\n"
"Language: sr\n"
@ -22,7 +22,7 @@ msgstr ""
"Plural-Forms: nplurals=4; plural=n==1? 3 : n%10==1 && n%100!=11 ? 0 : n"
"%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
"X-Project-Style: gnome\n"
"X-Generator: Poedit 1.8.12\n"
"X-Generator: Poedit 2.0.2\n"
"X-Poedit-Bookmarks: -1,167,-1,-1,-1,-1,-1,-1,-1,-1\n"
#: data/50-gnome-shell-system.xml:6
@ -50,7 +50,7 @@ msgid "Open the application menu"
msgstr "Отворите изборник програма"
#: data/gnome-shell-extension-prefs.desktop.in.in:4
#: js/extensionPrefs/main.js:149
#: js/extensionPrefs/main.js:152
msgid "Shell Extensions"
msgstr "Проширења шкољке"
@ -328,7 +328,7 @@ msgstr "Мрежна пријава"
msgid "network-workgroup"
msgstr "network-workgroup"
#: js/extensionPrefs/main.js:117
#: js/extensionPrefs/main.js:120
#, javascript-format
msgid "There was an error loading the preferences dialog for %s:"
msgstr "Дошло је до грешке при учитавању прозорчета поставки за „%s“:"
@ -599,12 +599,12 @@ msgstr "Додај у омиљене"
msgid "Show Details"
msgstr "Прикажи детаље"
#: js/ui/appFavorites.js:140
#: js/ui/appFavorites.js:138
#, javascript-format
msgid "%s has been added to your favorites."
msgstr "„%s“ је додат међу омиљене."
#: js/ui/appFavorites.js:174
#: js/ui/appFavorites.js:172
#, javascript-format
msgid "%s has been removed from your favorites."
msgstr "„%s“ је уклоњен из омиљених."
@ -934,7 +934,7 @@ msgstr "%s, затим %s касније."
#: js/ui/dateMenu.js:293
#, javascript-format
msgid "%s, then %s, followed by %s later."
msgstr "%s, затим %s, касније праћено %s."
msgstr "%s, затим %s, а касније %s."
#: js/ui/dateMenu.js:300
msgid "Select a location…"
@ -1352,11 +1352,11 @@ msgstr "Не могу да закључам"
msgid "Lock was blocked by an application"
msgstr "Неки програм је блокирао закључавање"
#: js/ui/search.js:617
#: js/ui/search.js:621
msgid "Searching…"
msgstr "Тражим…"
#: js/ui/search.js:619
#: js/ui/search.js:623
msgid "No results."
msgstr "Нема одговарајућих резултата."

View File

@ -11,17 +11,19 @@ msgstr ""
"Project-Id-Version: gnome-shell master\n"
"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2017-03-03 11:37+0000\n"
"PO-Revision-Date: 2017-03-05 05:41+0200\n"
"Last-Translator: Miroslav Nikolić <miroslavnikolic@rocketmail.com>\n"
"POT-Creation-Date: 2017-05-18 18:56+0000\n"
"PO-Revision-Date: 2017-05-18 22:42+0200\n"
"Last-Translator: Marko M. Kostić <marko.m.kostic@gmail.com>\n"
"Language-Team: Serbian <gnom@prevod.org>\n"
"Language: sr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=4; plural=n==1? 3 : n%10==1 && n%100!=11 ? 0 : "
"n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
"Plural-Forms: nplurals=4; plural=n==1? 3 : n%10==1 && n%100!=11 ? 0 : n"
"%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
"X-Project-Style: gnome\n"
"X-Generator: Poedit 2.0.2\n"
"X-Poedit-Bookmarks: -1,167,-1,-1,-1,-1,-1,-1,-1,-1\n"
#: data/50-gnome-shell-system.xml:6
msgid "System"
@ -48,7 +50,7 @@ msgid "Open the application menu"
msgstr "Otvorite izbornik programa"
#: data/gnome-shell-extension-prefs.desktop.in.in:4
#: js/extensionPrefs/main.js:149
#: js/extensionPrefs/main.js:152
msgid "Shell Extensions"
msgstr "Proširenja školjke"
@ -326,7 +328,7 @@ msgstr "Mrežna prijava"
msgid "network-workgroup"
msgstr "network-workgroup"
#: js/extensionPrefs/main.js:117
#: js/extensionPrefs/main.js:120
#, javascript-format
msgid "There was an error loading the preferences dialog for %s:"
msgstr "Došlo je do greške pri učitavanju prozorčeta postavki za „%s“:"
@ -334,7 +336,7 @@ msgstr "Došlo je do greške pri učitavanju prozorčeta postavki za „%s“:"
#: js/gdm/authPrompt.js:149 js/ui/audioDeviceSelection.js:71
#: js/ui/components/networkAgent.js:145 js/ui/components/polkitAgent.js:179
#: js/ui/endSessionDialog.js:482 js/ui/extensionDownloader.js:195
#: js/ui/shellMountOperation.js:399 js/ui/status/network.js:939
#: js/ui/shellMountOperation.js:399 js/ui/status/network.js:947
msgid "Cancel"
msgstr "Otkaži"
@ -382,7 +384,7 @@ msgstr "Korisnik: "
msgid "Login Window"
msgstr "Prozor za prijavljivanje"
#: js/gdm/util.js:341
#: js/gdm/util.js:342
msgid "Authentication error"
msgstr "Greška potvrđivanja identiteta"
@ -391,7 +393,7 @@ msgstr "Greška potvrđivanja identiteta"
#. as a cue to display our own message.
#. Translators: this message is shown below the password entry field
#. to indicate the user can swipe their finger instead
#: js/gdm/util.js:473
#: js/gdm/util.js:474
msgid "(or swipe finger)"
msgstr "(ili prevucite prst)"
@ -433,7 +435,6 @@ msgstr[2] "Pre %d sati"
msgstr[3] "Pre jedan sat"
#: js/misc/util.js:188
#| msgid "Yesterday, %H%M"
msgid "Yesterday"
msgstr "Juče"
@ -544,11 +545,11 @@ msgid "%B %d %Y, %l%M %p"
msgstr "%d .%B %Y., %l%M %p"
#. TRANSLATORS: this is the title of the wifi captive portal login window
#: js/portalHelper/main.js:67
#: js/portalHelper/main.js:66
msgid "Hotspot Login"
msgstr "Prijava na vruću tačku"
#: js/portalHelper/main.js:113
#: js/portalHelper/main.js:112
msgid ""
"Your connection to this hotspot login is not secure. Passwords or other "
"information you enter on this page can be viewed by people nearby."
@ -558,11 +559,11 @@ msgstr ""
#. No support for non-modal system dialogs, so ignore the option
#. let modal = options['modal'] || true;
#: js/ui/accessDialog.js:62 js/ui/status/location.js:427
#: js/ui/accessDialog.js:62 js/ui/status/location.js:405
msgid "Deny Access"
msgstr "Zabrani pristup"
#: js/ui/accessDialog.js:63 js/ui/status/location.js:430
#: js/ui/accessDialog.js:63 js/ui/status/location.js:408
msgid "Grant Access"
msgstr "Dozvoli pristup"
@ -762,7 +763,7 @@ msgid "Type again:"
msgstr "Upišite ponovo:"
#: js/ui/components/networkAgent.js:140 js/ui/status/network.js:272
#: js/ui/status/network.js:366 js/ui/status/network.js:942
#: js/ui/status/network.js:366 js/ui/status/network.js:950
msgid "Connect"
msgstr "Poveži se"
@ -836,7 +837,7 @@ msgstr "Lozinka mobilne širokopojasne mreže"
msgid "A password is required to connect to “%s”."
msgstr "Potrebna je lozinka za povezivanje na „%s“."
#: js/ui/components/networkAgent.js:655 js/ui/status/network.js:1747
#: js/ui/components/networkAgent.js:655 js/ui/status/network.js:1759
msgid "Network Manager"
msgstr "Upravnik mreže"
@ -862,12 +863,12 @@ msgstr "Pogrešili ste! Pokušajte ponovo."
#. Translators: this is the other person changing their old IM name to their new
#. IM name.
#: js/ui/components/telepathyClient.js:767
#: js/ui/components/telepathyClient.js:799
#, javascript-format
msgid "%s is now known as %s"
msgstr "„%s“ je sada poznat kao „%s“"
#: js/ui/ctrlAltTab.js:29 js/ui/viewSelector.js:178
#: js/ui/ctrlAltTab.js:29 js/ui/viewSelector.js:179
msgid "Windows"
msgstr "Prozori"
@ -933,24 +934,27 @@ msgstr "%s, zatim %s kasnije."
#: js/ui/dateMenu.js:293
#, javascript-format
msgid "%s, then %s, followed by %s later."
msgstr "%s, zatim %s, kasnije praćeno %s."
msgstr "%s, zatim %s, a kasnije %s."
#: js/ui/dateMenu.js:300
#| msgid "Searching…"
msgid "Select a location…"
msgstr "Izaberite mesto…"
#: js/ui/dateMenu.js:303
msgid "Loading…"
msgstr "Učitavam…"
#. Translators: %s is a temperature with unit, e.g. "23℃"
#: js/ui/dateMenu.js:306
#: js/ui/dateMenu.js:309
#, javascript-format
msgid "Feels like %s."
msgstr "Oseća se kao %s."
#: js/ui/dateMenu.js:309
#: js/ui/dateMenu.js:312
msgid "Go online for weather information"
msgstr "Idite na mrežu za podatke o vremenskoj prognozi."
#: js/ui/dateMenu.js:311
#: js/ui/dateMenu.js:314
msgid "Weather information is currently unavailable"
msgstr "Podaci o vremenskoj prognozi trenutno nisu dostupni."
@ -1135,51 +1139,51 @@ msgstr "Sakrij kasetu"
msgid "Status Icons"
msgstr "Ikonice stanja"
#: js/ui/lookingGlass.js:643
#: js/ui/lookingGlass.js:642
msgid "No extensions installed"
msgstr "Nisu instalirana proširenja"
#. Translators: argument is an extension UUID.
#: js/ui/lookingGlass.js:697
#: js/ui/lookingGlass.js:696
#, javascript-format
msgid "%s has not emitted any errors."
msgstr "%s nije objavio nikakve greške."
#: js/ui/lookingGlass.js:703
#: js/ui/lookingGlass.js:702
msgid "Hide Errors"
msgstr "Sakrij greške"
#: js/ui/lookingGlass.js:707 js/ui/lookingGlass.js:767
#: js/ui/lookingGlass.js:706 js/ui/lookingGlass.js:766
msgid "Show Errors"
msgstr "Prikažite greške"
#: js/ui/lookingGlass.js:716
#: js/ui/lookingGlass.js:715
msgid "Enabled"
msgstr "Uključeno"
#. translators:
#. * The device has been disabled
#: js/ui/lookingGlass.js:719 src/gvc/gvc-mixer-control.c:1866
#: js/ui/lookingGlass.js:718 src/gvc/gvc-mixer-control.c:1866
msgid "Disabled"
msgstr "Isključeno"
#: js/ui/lookingGlass.js:721
#: js/ui/lookingGlass.js:720
msgid "Error"
msgstr "Greška"
#: js/ui/lookingGlass.js:723
#: js/ui/lookingGlass.js:722
msgid "Out of date"
msgstr "Izvan datuma"
#: js/ui/lookingGlass.js:725
#: js/ui/lookingGlass.js:724
msgid "Downloading"
msgstr "Preuzimam"
#: js/ui/lookingGlass.js:749
#: js/ui/lookingGlass.js:748
msgid "View Source"
msgstr "Prikaži kod"
#: js/ui/lookingGlass.js:758
#: js/ui/lookingGlass.js:757
msgid "Web Page"
msgstr "Veb stranica"
@ -1213,47 +1217,47 @@ msgstr "Pregled"
msgid "Type to search…"
msgstr "Upišite tekst za pretragu…"
#: js/ui/padOsd.js:37
#: js/ui/padOsd.js:103
msgid "New shortcut…"
msgstr "Nova prečica…"
#: js/ui/padOsd.js:86
#: js/ui/padOsd.js:152
msgid "Application defined"
msgstr "Definisani program"
#: js/ui/padOsd.js:87
#: js/ui/padOsd.js:153
msgid "Show on-screen help"
msgstr "Prikaži pomoć na ekranu"
#: js/ui/padOsd.js:88
#: js/ui/padOsd.js:154
msgid "Switch monitor"
msgstr "Promeni monitor"
#: js/ui/padOsd.js:89
#: js/ui/padOsd.js:155
msgid "Assign keystroke"
msgstr "Dodeli taster"
#: js/ui/padOsd.js:143
#: js/ui/padOsd.js:209
msgid "Done"
msgstr "Gotovo"
#: js/ui/padOsd.js:597
#: js/ui/padOsd.js:698
msgid "Edit…"
msgstr "Uredi…"
#: js/ui/padOsd.js:610 js/ui/padOsd.js:665
#: js/ui/padOsd.js:738 js/ui/padOsd.js:800
msgid "None"
msgstr "Ništa"
#: js/ui/padOsd.js:648
#: js/ui/padOsd.js:783
msgid "Press a button to configure"
msgstr "Pritisnite dugme da podesite"
#: js/ui/padOsd.js:649
#: js/ui/padOsd.js:784
msgid "Press Esc to exit"
msgstr "Pritisnite „Esc“ da izađete"
#: js/ui/padOsd.js:652
#: js/ui/padOsd.js:787
msgid "Press any key to exit"
msgstr "Pritisnite neki taster da izađete"
@ -1289,7 +1293,7 @@ msgstr "toggle-switch-intl"
msgid "Enter a Command"
msgstr "Unesite naredbu"
#: js/ui/runDialog.js:111 js/ui/windowMenu.js:162
#: js/ui/runDialog.js:111 js/ui/windowMenu.js:160
msgid "Close"
msgstr "Zatvori"
@ -1303,11 +1307,11 @@ msgstr "Ponovno pokrećem…"
#. Translators: This is a time format for a date in
#. long format
#: js/ui/screenShield.js:85
#: js/ui/screenShield.js:88
msgid "%A, %B %d"
msgstr "%A, %d. %B"
#: js/ui/screenShield.js:144
#: js/ui/screenShield.js:147
#, javascript-format
msgid "%d new message"
msgid_plural "%d new messages"
@ -1316,7 +1320,7 @@ msgstr[1] "%d nove poruke"
msgstr[2] "%d novih poruka"
msgstr[3] "%d nova poruka"
#: js/ui/screenShield.js:146
#: js/ui/screenShield.js:149
#, javascript-format
msgid "%d new notification"
msgid_plural "%d new notifications"
@ -1325,11 +1329,11 @@ msgstr[1] "%d nova obaveštenja"
msgstr[2] "%d novih obaveštenja"
msgstr[3] "%d novo obaveštenje"
#: js/ui/screenShield.js:449 js/ui/status/system.js:409
#: js/ui/screenShield.js:452 js/ui/status/system.js:409
msgid "Lock"
msgstr "Zaključaj"
#: js/ui/screenShield.js:707
#: js/ui/screenShield.js:715
msgid "GNOME needs to lock the screen"
msgstr "Gnom mora da zaključa ekran"
@ -1340,19 +1344,19 @@ msgstr "Gnom mora da zaključa ekran"
#.
#. XXX: another option is to kick the user into the gdm login
#. screen, where we're not affected by grabs
#: js/ui/screenShield.js:828 js/ui/screenShield.js:1295
#: js/ui/screenShield.js:836 js/ui/screenShield.js:1308
msgid "Unable to lock"
msgstr "Ne mogu da zaključam"
#: js/ui/screenShield.js:829 js/ui/screenShield.js:1296
#: js/ui/screenShield.js:837 js/ui/screenShield.js:1309
msgid "Lock was blocked by an application"
msgstr "Neki program je blokirao zaključavanje"
#: js/ui/search.js:617
#: js/ui/search.js:621
msgid "Searching…"
msgstr "Tražim…"
#: js/ui/search.js:619
#: js/ui/search.js:623
msgid "No results."
msgstr "Nema odgovarajućih rezultata."
@ -1450,13 +1454,13 @@ msgstr "Isklj."
msgid "On"
msgstr "Uklj."
#: js/ui/status/bluetooth.js:142 js/ui/status/network.js:1302
#: js/ui/status/bluetooth.js:142 js/ui/status/network.js:1310
msgid "Turn On"
msgstr "Uključi"
#: js/ui/status/bluetooth.js:142 js/ui/status/network.js:181
#: js/ui/status/network.js:367 js/ui/status/network.js:1302
#: js/ui/status/network.js:1417 js/ui/status/nightLight.js:47
#: js/ui/status/network.js:367 js/ui/status/network.js:1310
#: js/ui/status/network.js:1429 js/ui/status/nightLight.js:47
#: js/ui/status/rfkill.js:90 js/ui/status/rfkill.js:117
msgid "Turn Off"
msgstr "Isključi"
@ -1469,37 +1473,37 @@ msgstr "Osvetljenost"
msgid "Show Keyboard Layout"
msgstr "Pokaži raspored tastature"
#: js/ui/status/location.js:107 js/ui/status/location.js:215
#: js/ui/status/location.js:88 js/ui/status/location.js:196
msgid "Location Enabled"
msgstr "Određivanje mesta uključeno"
#: js/ui/status/location.js:108 js/ui/status/location.js:216
#: js/ui/status/location.js:89 js/ui/status/location.js:197
msgid "Disable"
msgstr "Isključi"
#: js/ui/status/location.js:109
#: js/ui/status/location.js:90
msgid "Privacy Settings"
msgstr "Podešavanja privatnosti"
#: js/ui/status/location.js:214
#: js/ui/status/location.js:195
msgid "Location In Use"
msgstr "Određivanje mesta se koristi"
#: js/ui/status/location.js:218
#: js/ui/status/location.js:199
msgid "Location Disabled"
msgstr "Određivanje mesta isključeno"
#: js/ui/status/location.js:219
#: js/ui/status/location.js:200
msgid "Enable"
msgstr "Uključi"
#. Translators: %s is an application name
#: js/ui/status/location.js:436
#: js/ui/status/location.js:414
#, javascript-format
msgid "Give %s access to your location?"
msgstr "Da li da „%s“ dam pristup vašem mestu?"
#: js/ui/status/location.js:438
#: js/ui/status/location.js:416
msgid "Location access can be changed at any time from the privacy settings."
msgstr ""
"Pristup mestu možete da izmenite u bilo koje vreme u podešavanjima "
@ -1510,7 +1514,7 @@ msgid "<unknown>"
msgstr "<nepoznato>"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:465 js/ui/status/network.js:1331
#: js/ui/status/network.js:465 js/ui/status/network.js:1339
#, javascript-format
msgid "%s Off"
msgstr "%s isključeno"
@ -1536,7 +1540,7 @@ msgid "%s Disconnecting"
msgstr "%s prekidanje veze u toku"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:483 js/ui/status/network.js:1323
#: js/ui/status/network.js:483 js/ui/status/network.js:1331
#, javascript-format
msgid "%s Connecting"
msgstr "%s povezivanje u toku"
@ -1576,7 +1580,7 @@ msgid "Mobile Broadband Settings"
msgstr "Podešavanja mobilne širokopojasne veze"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:602 js/ui/status/network.js:1328
#: js/ui/status/network.js:602 js/ui/status/network.js:1336
#, javascript-format
msgid "%s Hardware Disabled"
msgstr "%s uređaj isključen"
@ -1592,97 +1596,97 @@ msgstr "%s isključeno"
msgid "Connect to Internet"
msgstr "Poveži se na Internet"
#: js/ui/status/network.js:836
#: js/ui/status/network.js:844
msgid "Airplane Mode is On"
msgstr "Avionski režim rada je uključen"
#: js/ui/status/network.js:837
#: js/ui/status/network.js:845
msgid "Wi-Fi is disabled when airplane mode is on."
msgstr "Bežična veza je isključena kada je uključen avionski režim rada."
#: js/ui/status/network.js:838
#: js/ui/status/network.js:846
msgid "Turn Off Airplane Mode"
msgstr "Isključi avionski režim rada"
#: js/ui/status/network.js:847
#: js/ui/status/network.js:855
msgid "Wi-Fi is Off"
msgstr "Bežična veza je isključena"
#: js/ui/status/network.js:848
#: js/ui/status/network.js:856
msgid "Wi-Fi needs to be turned on in order to connect to a network."
msgstr "Bežična veza treba biti uključena da biste se povezali na mrežu."
#: js/ui/status/network.js:849
#: js/ui/status/network.js:857
msgid "Turn On Wi-Fi"
msgstr "Uključi bežičnu vezu"
#: js/ui/status/network.js:874
#: js/ui/status/network.js:882
msgid "Wi-Fi Networks"
msgstr "Bežične mreže"
#: js/ui/status/network.js:876
#: js/ui/status/network.js:884
msgid "Select a network"
msgstr "Izaberite mrežu"
#: js/ui/status/network.js:906
#: js/ui/status/network.js:914
msgid "No Networks"
msgstr "Nema mreža"
#: js/ui/status/network.js:927 js/ui/status/rfkill.js:115
#: js/ui/status/network.js:935 js/ui/status/rfkill.js:115
msgid "Use hardware switch to turn off"
msgstr "Koristi fizički prekidač za isključivanje"
#: js/ui/status/network.js:1194
#: js/ui/status/network.js:1202
msgid "Select Network"
msgstr "Izaberi mrežu"
#: js/ui/status/network.js:1200
#: js/ui/status/network.js:1208
msgid "Wi-Fi Settings"
msgstr "Podešavanja bežične veze"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:1319
#: js/ui/status/network.js:1327
#, javascript-format
msgid "%s Hotspot Active"
msgstr "%s hotspot uključen"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:1334
#: js/ui/status/network.js:1342
#, javascript-format
msgid "%s Not Connected"
msgstr "%s nepovezano"
#: js/ui/status/network.js:1434
#: js/ui/status/network.js:1446
msgid "connecting…"
msgstr "povezujem se…"
#. Translators: this is for network connections that require some kind of key or password
#: js/ui/status/network.js:1437
#: js/ui/status/network.js:1449
msgid "authentication required"
msgstr "potrebna je prijava"
#: js/ui/status/network.js:1439
#: js/ui/status/network.js:1451
msgid "connection failed"
msgstr "povezivanje nije uspelo"
#: js/ui/status/network.js:1505 js/ui/status/network.js:1600
#: js/ui/status/network.js:1517 js/ui/status/network.js:1612
#: js/ui/status/rfkill.js:93
msgid "Network Settings"
msgstr "Podešavanja mreže"
#: js/ui/status/network.js:1507
#: js/ui/status/network.js:1519
msgid "VPN Settings"
msgstr "VPN podešavanja"
#: js/ui/status/network.js:1526
#: js/ui/status/network.js:1538
msgid "VPN"
msgstr "VPN"
#: js/ui/status/network.js:1536
#: js/ui/status/network.js:1548
msgid "VPN Off"
msgstr "Isključi VPN"
#: js/ui/status/network.js:1631
#: js/ui/status/network.js:1643
#, javascript-format
msgid "%s Wired Connection"
msgid_plural "%s Wired Connections"
@ -1691,7 +1695,7 @@ msgstr[1] "%s žičane veze"
msgstr[2] "%s žičanih veza"
msgstr[3] "%s žičana veza"
#: js/ui/status/network.js:1635
#: js/ui/status/network.js:1647
#, javascript-format
msgid "%s Wi-Fi Connection"
msgid_plural "%s Wi-Fi Connections"
@ -1700,7 +1704,7 @@ msgstr[1] "%s bežične veze"
msgstr[2] "%s bežičnih veza"
msgstr[3] "%s bežična veza"
#: js/ui/status/network.js:1639
#: js/ui/status/network.js:1651
#, javascript-format
msgid "%s Modem Connection"
msgid_plural "%s Modem Connections"
@ -1709,11 +1713,11 @@ msgstr[1] "%s modemske veze"
msgstr[2] "%s modemskih veza"
msgstr[3] "%s modemska veza"
#: js/ui/status/network.js:1786
#: js/ui/status/network.js:1798
msgid "Connection failed"
msgstr "Povezivanje nije uspelo"
#: js/ui/status/network.js:1787
#: js/ui/status/network.js:1799
msgid "Activation of network connection failed"
msgstr "Aktiviranje mrežne veze nije uspelo"
@ -1811,11 +1815,11 @@ msgstr "Prijavite se kao drugi korisnik"
msgid "Unlock Window"
msgstr "Otključaj prozor"
#: js/ui/viewSelector.js:182
#: js/ui/viewSelector.js:183
msgid "Applications"
msgstr "Programi"
#: js/ui/viewSelector.js:186
#: js/ui/viewSelector.js:187
msgid "Search"
msgstr "Traži"
@ -1824,22 +1828,22 @@ msgstr "Traži"
msgid "“%s” is ready"
msgstr "„%s“ je spreman"
#: js/ui/windowManager.js:83
#: js/ui/windowManager.js:84
msgid "Do you want to keep these display settings?"
msgstr "Da li želite da zadržite ova podešavanja ekrana?"
#. Translators: this and the following message should be limited in lenght,
#. to avoid ellipsizing the labels.
#.
#: js/ui/windowManager.js:102
#: js/ui/windowManager.js:103
msgid "Revert Settings"
msgstr "Vrati podešavanja"
#: js/ui/windowManager.js:105
#: js/ui/windowManager.js:106
msgid "Keep Changes"
msgstr "Zadrži izmene"
#: js/ui/windowManager.js:123
#: js/ui/windowManager.js:124
#, javascript-format
msgid "Settings changes will revert in %d second"
msgid_plural "Settings changes will revert in %d seconds"
@ -1850,7 +1854,7 @@ msgstr[3] "Izmene podešavanja će biti vraćene za %d sekundu"
#. Translators: This represents the size of a window. The first number is
#. * the width of the window and the second is the height.
#: js/ui/windowManager.js:678
#: js/ui/windowManager.js:679
#, javascript-format
msgid "%d × %d"
msgstr "%d × %d"
@ -1887,35 +1891,35 @@ msgstr "Uvek na vrhu"
msgid "Always on Visible Workspace"
msgstr "Uvek na prikazanom radnom prostoru"
#: js/ui/windowMenu.js:105
#: js/ui/windowMenu.js:103
msgid "Move to Workspace Left"
msgstr "Premesti na levi radni prostor"
#: js/ui/windowMenu.js:110
#: js/ui/windowMenu.js:108
msgid "Move to Workspace Right"
msgstr "Premesti na desni radni prostor"
#: js/ui/windowMenu.js:115
#: js/ui/windowMenu.js:113
msgid "Move to Workspace Up"
msgstr "Premesti na radni prostor gore"
#: js/ui/windowMenu.js:120
#: js/ui/windowMenu.js:118
msgid "Move to Workspace Down"
msgstr "Premesti na radni prostor dole"
#: js/ui/windowMenu.js:136
#: js/ui/windowMenu.js:134
msgid "Move to Monitor Up"
msgstr "Premesti na gornji radni prostor"
#: js/ui/windowMenu.js:142
#: js/ui/windowMenu.js:140
msgid "Move to Monitor Down"
msgstr "Premesti na donji radni prostor"
#: js/ui/windowMenu.js:148
#: js/ui/windowMenu.js:146
msgid "Move to Monitor Left"
msgstr "Premesti ekran ulevo"
#: js/ui/windowMenu.js:154
#: js/ui/windowMenu.js:152
msgid "Move to Monitor Right"
msgstr "Premesti ekran udesno"
@ -1954,19 +1958,19 @@ msgstr[3] "%u ulaz"
msgid "System Sounds"
msgstr "Sistemski zvuci"
#: src/main.c:381
#: src/main.c:372
msgid "Print version"
msgstr "Ispisuje izdanje"
#: src/main.c:387
#: src/main.c:378
msgid "Mode used by GDM for login screen"
msgstr "Koji režim koristi GDM za ekran prijavljivanja"
#: src/main.c:393
#: src/main.c:384
msgid "Use a specific mode, e.g. “gdm” for login screen"
msgstr "Koristi naročit režim, npr. „gdm“ za ekran prijavljivanja"
#: src/main.c:399
#: src/main.c:390
msgid "List possible modes"
msgstr "Ispisuje moguće režime"

397
po/tr.po
View File

@ -9,22 +9,23 @@
# Gökhan Gurbetoğlu <ggurbet@gmail.com>, 2014.
# Muhammet Kara <muhammetk@gmail.com>, 2011, 2012, 2013, 2014, 2015, 2016.
# Emin Tufan Çetin <etcetin@gmail.com>, 2017.
# Furkan Ahmet Kara <furkanahmetkara.fk@gmail.com>, 2017.
#
msgid ""
msgstr ""
"Project-Id-Version: gnome-shell\n"
"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2017-02-27 19:03+0000\n"
"PO-Revision-Date: 2017-02-28 10:06+0300\n"
"Last-Translator: Emin Tufan Çetin <etcetin@gmail.com>\n"
"POT-Creation-Date: 2017-05-11 09:41+0000\n"
"PO-Revision-Date: 2017-05-16 03:31+0300\n"
"Last-Translator: Furkan Ahmet Kara <furkanahmetkara.fk@gmail.com>\n"
"Language-Team: Türkçe <gnome-turk@gnome.org>\n"
"Language: tr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Poedit 1.8.9\n"
"X-Generator: Gtranslator 2.91.7\n"
"X-Project-Style: gnome\n"
#: data/50-gnome-shell-system.xml:6
@ -52,7 +53,7 @@ msgid "Open the application menu"
msgstr "Uygulama menüsünü aç"
#: data/gnome-shell-extension-prefs.desktop.in.in:4
#: js/extensionPrefs/main.js:149
#: js/extensionPrefs/main.js:152
msgid "Shell Extensions"
msgstr "Kabuk Uzantıları"
@ -339,7 +340,7 @@ msgstr "Ağ Girişi"
msgid "network-workgroup"
msgstr "network-workgroup"
#: js/extensionPrefs/main.js:117
#: js/extensionPrefs/main.js:120
#, javascript-format
msgid "There was an error loading the preferences dialog for %s:"
msgstr "%s için tercihler iletişim penceresi yüklenirken hata oluştu:"
@ -347,7 +348,7 @@ msgstr "%s için tercihler iletişim penceresi yüklenirken hata oluştu:"
#: js/gdm/authPrompt.js:149 js/ui/audioDeviceSelection.js:71
#: js/ui/components/networkAgent.js:145 js/ui/components/polkitAgent.js:179
#: js/ui/endSessionDialog.js:482 js/ui/extensionDownloader.js:195
#: js/ui/shellMountOperation.js:399 js/ui/status/network.js:939
#: js/ui/shellMountOperation.js:399 js/ui/status/network.js:947
msgid "Cancel"
msgstr "İptal"
@ -395,7 +396,7 @@ msgstr "Kullanıcı Adı: "
msgid "Login Window"
msgstr "Oturum Açma Penceresi"
#: js/gdm/util.js:341
#: js/gdm/util.js:342
msgid "Authentication error"
msgstr "Kimlik doğrulama hatası"
@ -404,40 +405,85 @@ msgstr "Kimlik doğrulama hatası"
#. as a cue to display our own message.
#. Translators: this message is shown below the password entry field
#. to indicate the user can swipe their finger instead
#: js/gdm/util.js:473
#: js/gdm/util.js:474
msgid "(or swipe finger)"
msgstr "(ya da parmak izi okutun)"
#: js/misc/util.js:121
#: js/misc/util.js:122
msgid "Command not found"
msgstr "Komut bulunamadı"
#. Replace "Error invoking GLib.shell_parse_argv: " with
#. something nicer
#: js/misc/util.js:154
#: js/misc/util.js:155
msgid "Could not parse command:"
msgstr "Komut işlenemedi:"
#: js/misc/util.js:162
#: js/misc/util.js:163
#, javascript-format
msgid "Execution of “%s” failed:"
msgstr "“%s” çalıştırılması başarısız:"
#. Translators: Time in 24h format
#: js/misc/util.js:180
msgid "Just now"
msgstr "Şimdi"
#: js/misc/util.js:182
#, javascript-format
msgid "%d minute ago"
msgid_plural "%d minutes ago"
msgstr[0] "%d dakika önce"
#: js/misc/util.js:185
#, javascript-format
msgid "%d hour ago"
msgid_plural "%d hours ago"
msgstr[0] "%d saat önce"
#: js/misc/util.js:188
#| msgid "Yesterday, %H%M"
msgid "Yesterday"
msgstr "Dün"
#: js/misc/util.js:190
#, javascript-format
msgid "%d day ago"
msgid_plural "%d days ago"
msgstr[0] "%d gün önce"
#: js/misc/util.js:193
#, javascript-format
msgid "%d week ago"
msgid_plural "%d weeks ago"
msgstr[0] "%d hafta önce"
#: js/misc/util.js:196
#, javascript-format
msgid "%d month ago"
msgid_plural "%d months ago"
msgstr[0] "%d ay önce"
#: js/misc/util.js:198
#, javascript-format
msgid "%d year ago"
msgid_plural "%d years ago"
msgstr[0] "%d yıl önce"
#. Translators: Time in 24h format
#: js/misc/util.js:229
msgid "%H%M"
msgstr "%H%M"
#. Translators: this is the word "Yesterday" followed by a
#. time string in 24h format. i.e. "Yesterday, 14:30"
#: js/misc/util.js:199
#: js/misc/util.js:235
#, no-c-format
msgid "Yesterday, %H%M"
msgstr "Dün, %H%M"
#. Translators: this is the week day name followed by a time
#. string in 24h format. i.e. "Monday, 14:30"
#: js/misc/util.js:205
#: js/misc/util.js:241
#, no-c-format
msgid "%A, %H%M"
msgstr "%A, %H%M"
@ -445,7 +491,7 @@ msgstr "%A, %H%M"
#. Translators: this is the month name and day number
#. followed by a time string in 24h format.
#. i.e. "May 25, 14:30"
#: js/misc/util.js:211
#: js/misc/util.js:247
#, no-c-format
msgid "%B %d, %H%M"
msgstr "%d %B, %H%M"
@ -453,26 +499,26 @@ msgstr "%d %B, %H%M"
#. Translators: this is the month name, day number, year
#. number followed by a time string in 24h format.
#. i.e. "May 25 2012, 14:30"
#: js/misc/util.js:217
#: js/misc/util.js:253
#, no-c-format
msgid "%B %d %Y, %H%M"
msgstr "%d %B %Y, %H%M"
#. Translators: Time in 12h format
#: js/misc/util.js:222
#: js/misc/util.js:258
msgid "%l%M %p"
msgstr "%l%M %p"
#. Translators: this is the word "Yesterday" followed by a
#. time string in 12h format. i.e. "Yesterday, 2:30 pm"
#: js/misc/util.js:228
#: js/misc/util.js:264
#, no-c-format
msgid "Yesterday, %l%M %p"
msgstr "Dün, %l%M %p"
#. Translators: this is the week day name followed by a time
#. string in 12h format. i.e. "Monday, 2:30 pm"
#: js/misc/util.js:234
#: js/misc/util.js:270
#, no-c-format
msgid "%A, %l%M %p"
msgstr "%A, %l%M %p"
@ -480,7 +526,7 @@ msgstr "%A, %l%M %p"
#. Translators: this is the month name and day number
#. followed by a time string in 12h format.
#. i.e. "May 25, 2:30 pm"
#: js/misc/util.js:240
#: js/misc/util.js:276
#, no-c-format
msgid "%B %d, %l%M %p"
msgstr "%d %B, %l%M %p"
@ -488,17 +534,17 @@ msgstr "%d %B, %l%M %p"
#. Translators: this is the month name, day number, year
#. number followed by a time string in 12h format.
#. i.e. "May 25 2012, 2:30 pm"
#: js/misc/util.js:246
#: js/misc/util.js:282
#, no-c-format
msgid "%B %d %Y, %l%M %p"
msgstr "%d %B %Y, %l%M %p"
#. TRANSLATORS: this is the title of the wifi captive portal login window
#: js/portalHelper/main.js:67
#: js/portalHelper/main.js:66
msgid "Hotspot Login"
msgstr "Erişim Noktası Girişi"
#: js/portalHelper/main.js:113
#: js/portalHelper/main.js:112
msgid ""
"Your connection to this hotspot login is not secure. Passwords or other "
"information you enter on this page can be viewed by people nearby."
@ -509,11 +555,11 @@ msgstr ""
#. No support for non-modal system dialogs, so ignore the option
#. let modal = options['modal'] || true;
#: js/ui/accessDialog.js:62 js/ui/status/location.js:427
#: js/ui/accessDialog.js:62 js/ui/status/location.js:405
msgid "Deny Access"
msgstr "Erişimi Reddet"
#: js/ui/accessDialog.js:63 js/ui/status/location.js:430
#: js/ui/accessDialog.js:63 js/ui/status/location.js:408
msgid "Grant Access"
msgstr "Erişime İzin Ver"
@ -664,37 +710,33 @@ msgstr "%V. Hafta"
#. Translators: Shown in calendar event list for all day events
#. * Keep it short, best if you can use less then 10 characters
#.
#: js/ui/calendar.js:721
#: js/ui/calendar.js:729
msgctxt "event list time"
msgid "All Day"
msgstr "Tüm Gün"
#: js/ui/calendar.js:836
msgid "Events"
msgstr "Olaylar"
#: js/ui/calendar.js:845
#: js/ui/calendar.js:862
msgctxt "calendar heading"
msgid "%A, %B %d"
msgstr "%A, %d %B"
#: js/ui/calendar.js:849
#: js/ui/calendar.js:866
msgctxt "calendar heading"
msgid "%A, %B %d, %Y"
msgstr "%A, %d %B, %Y"
#: js/ui/calendar.js:931
msgid "Notifications"
msgstr "Bildirimler"
#: js/ui/calendar.js:1082
#: js/ui/calendar.js:1086
msgid "No Notifications"
msgstr "Bildirim Yok"
#: js/ui/calendar.js:1085
#: js/ui/calendar.js:1089
msgid "No Events"
msgstr "Olay Yok"
#: js/ui/calendar.js:1117
msgid "Clear All"
msgstr "Tümünü Temizle"
#: js/ui/components/automountManager.js:91
msgid "External drive connected"
msgstr "Harici sürücü bağlandı"
@ -717,7 +759,7 @@ msgid "Type again:"
msgstr "Terkar yazın:"
#: js/ui/components/networkAgent.js:140 js/ui/status/network.js:272
#: js/ui/status/network.js:366 js/ui/status/network.js:942
#: js/ui/status/network.js:366 js/ui/status/network.js:950
msgid "Connect"
msgstr "Bağlan"
@ -792,7 +834,7 @@ msgstr "Mobil geniş bant ağ parolası"
msgid "A password is required to connect to “%s”."
msgstr "“%s”e bağlanmak için parola gerekli."
#: js/ui/components/networkAgent.js:655 js/ui/status/network.js:1747
#: js/ui/components/networkAgent.js:655 js/ui/status/network.js:1759
msgid "Network Manager"
msgstr "Ağ Yöneticisi"
@ -818,12 +860,12 @@ msgstr "Üzgünüm ama işe yaramadı. Lütfen yeniden deneyin."
#. Translators: this is the other person changing their old IM name to their new
#. IM name.
#: js/ui/components/telepathyClient.js:765
#: js/ui/components/telepathyClient.js:799
#, javascript-format
msgid "%s is now known as %s"
msgstr "%s, şimdi %s olarak biliniyor"
#: js/ui/ctrlAltTab.js:29 js/ui/viewSelector.js:178
#: js/ui/ctrlAltTab.js:29 js/ui/viewSelector.js:179
msgid "Windows"
msgstr "Pencereler"
@ -840,7 +882,7 @@ msgstr "Konsol"
#. Translators: This is the date format to use when the calendar popup is
#. * shown - it is shown just below the time in the shell (e.g. "Tue 9:29 AM").
#.
#: js/ui/dateMenu.js:73
#: js/ui/dateMenu.js:75
msgid "%B %e %Y"
msgstr "%e %B %Y"
@ -848,18 +890,71 @@ msgstr "%e %B %Y"
#. * below the time in the shell; it should combine the weekday and the
#. * date, e.g. "Tuesday February 17 2015".
#.
#: js/ui/dateMenu.js:80
#: js/ui/dateMenu.js:82
msgid "%A %B %e %Y"
msgstr "%e %B %Y %A"
#: js/ui/dateMenu.js:142
#: js/ui/dateMenu.js:144
msgid "Add world clocks…"
msgstr "Dünya saatlerini ekle…"
#: js/ui/dateMenu.js:143
#: js/ui/dateMenu.js:145
msgid "World Clocks"
msgstr "Dünya Saatleri"
#: js/ui/dateMenu.js:224
msgid "Weather"
msgstr "Hava Durumu"
#. Translators: %s is a weather condition like "Clear sky"; see
#. libgweather for the possible condition strings. If at all
#. possible, the sentence should match the grammatical case etc. of
#. the inserted conditions.
#: js/ui/dateMenu.js:281
#, javascript-format
msgid "%s all day."
msgstr "Gün boyu %s."
#. Translators: %s is a weather condition like "Clear sky"; see
#. libgweather for the possible condition strings. If at all
#. possible, the sentence should match the grammatical case etc. of
#. the inserted conditions.
#: js/ui/dateMenu.js:287
#, javascript-format
msgid "%s, then %s later."
msgstr "%s, daha sonra %s."
#. Translators: %s is a weather condition like "Clear sky"; see
#. libgweather for the possible condition strings. If at all
#. possible, the sentence should match the grammatical case etc. of
#. the inserted conditions.
#: js/ui/dateMenu.js:293
#, javascript-format
msgid "%s, then %s, followed by %s later."
msgstr "%s, daha sonra %s, ardından %s."
#: js/ui/dateMenu.js:300
msgid "Select a location…"
msgstr "Bir konum seç…"
#: js/ui/dateMenu.js:303
msgid "Loading…"
msgstr "Yükleniyor…"
#. Translators: %s is a temperature with unit, e.g. "23℃"
#: js/ui/dateMenu.js:309
#, javascript-format
msgid "Feels like %s."
msgstr "Hissedilen %s."
#: js/ui/dateMenu.js:312
msgid "Go online for weather information"
msgstr "Hava durumu bilgisi için çevrim içi olun"
#: js/ui/dateMenu.js:314
msgid "Weather information is currently unavailable"
msgstr "Hava durumu bilgisi şu anda kullanılabilir değil\t"
#: js/ui/endSessionDialog.js:64
#, javascript-format
msgctxt "title"
@ -1024,74 +1119,66 @@ msgstr "Tepsiyi gizle"
msgid "Status Icons"
msgstr "Durum Simgeleri"
#: js/ui/lookingGlass.js:643
#: js/ui/lookingGlass.js:642
msgid "No extensions installed"
msgstr "Herhangi bir uzantı kurulu değil"
#. Translators: argument is an extension UUID.
#: js/ui/lookingGlass.js:697
#: js/ui/lookingGlass.js:696
#, javascript-format
msgid "%s has not emitted any errors."
msgstr "%s, herhangi bir hata vermedi."
#: js/ui/lookingGlass.js:703
#: js/ui/lookingGlass.js:702
msgid "Hide Errors"
msgstr "Hataları Gizle"
#: js/ui/lookingGlass.js:707 js/ui/lookingGlass.js:767
#: js/ui/lookingGlass.js:706 js/ui/lookingGlass.js:766
msgid "Show Errors"
msgstr "Hataları Göster"
#: js/ui/lookingGlass.js:716
#: js/ui/lookingGlass.js:715
msgid "Enabled"
msgstr "Etkin"
#. translators:
#. * The device has been disabled
#: js/ui/lookingGlass.js:719 src/gvc/gvc-mixer-control.c:1866
#: js/ui/lookingGlass.js:718 src/gvc/gvc-mixer-control.c:1866
msgid "Disabled"
msgstr "Devre dışı"
#: js/ui/lookingGlass.js:721
#: js/ui/lookingGlass.js:720
msgid "Error"
msgstr "Hata"
#: js/ui/lookingGlass.js:723
#: js/ui/lookingGlass.js:722
msgid "Out of date"
msgstr "Güncel değil"
#: js/ui/lookingGlass.js:725
#: js/ui/lookingGlass.js:724
msgid "Downloading"
msgstr "İndiriliyor"
#: js/ui/lookingGlass.js:749
#: js/ui/lookingGlass.js:748
msgid "View Source"
msgstr "Kaynağı Görüntüle"
#: js/ui/lookingGlass.js:758
#: js/ui/lookingGlass.js:757
msgid "Web Page"
msgstr "Web Sayfası"
#: js/ui/messageList.js:543
msgid "Clear section"
msgstr "Bölümü temizle"
#: js/ui/messageTray.js:1486
#: js/ui/messageTray.js:1493
msgid "System Information"
msgstr "Sistem Bilgisi"
#: js/ui/mpris.js:194
#: js/ui/mpris.js:211
msgid "Unknown artist"
msgstr "Bilinmeyen sanatçı"
#: js/ui/mpris.js:195
#: js/ui/mpris.js:212
msgid "Unknown title"
msgstr "Bilinmeyen başlık"
#: js/ui/mpris.js:217
msgid "Media"
msgstr "Ortam"
#: js/ui/overview.js:84
msgid "Undo"
msgstr "Geri Al"
@ -1110,47 +1197,47 @@ msgstr "Genel Görünüm"
msgid "Type to search…"
msgstr "Aramak için buraya yazın..."
#: js/ui/padOsd.js:37
#: js/ui/padOsd.js:103
msgid "New shortcut…"
msgstr "Yeni kısayol…"
#: js/ui/padOsd.js:86
#: js/ui/padOsd.js:152
msgid "Application defined"
msgstr "Uygulama tanımlı"
#: js/ui/padOsd.js:87
#: js/ui/padOsd.js:153
msgid "Show on-screen help"
msgstr "Ekranda yardımı göster"
#: js/ui/padOsd.js:88
#: js/ui/padOsd.js:154
msgid "Switch monitor"
msgstr "Monitör değiştir"
#: js/ui/padOsd.js:89
#: js/ui/padOsd.js:155
msgid "Assign keystroke"
msgstr "Tuş vuruşu ata"
#: js/ui/padOsd.js:143
#: js/ui/padOsd.js:209
msgid "Done"
msgstr "Bitti"
#: js/ui/padOsd.js:597
#: js/ui/padOsd.js:698
msgid "Edit…"
msgstr "Düzenle…"
#: js/ui/padOsd.js:610 js/ui/padOsd.js:665
#: js/ui/padOsd.js:738 js/ui/padOsd.js:800
msgid "None"
msgstr "Yok"
#: js/ui/padOsd.js:648
#: js/ui/padOsd.js:783
msgid "Press a button to configure"
msgstr "Yapılandırmak için bir düğmeye basın"
#: js/ui/padOsd.js:649
#: js/ui/padOsd.js:784
msgid "Press Esc to exit"
msgstr "Çıkmak için Esc'ye basın"
#: js/ui/padOsd.js:652
#: js/ui/padOsd.js:787
msgid "Press any key to exit"
msgstr "Çıkmak için herhangi bir tuşa basın"
@ -1186,7 +1273,7 @@ msgstr "toggle-switch-intl"
msgid "Enter a Command"
msgstr "Komut Gir"
#: js/ui/runDialog.js:111 js/ui/windowMenu.js:162
#: js/ui/runDialog.js:111 js/ui/windowMenu.js:160
msgid "Close"
msgstr "Kapat"
@ -1200,27 +1287,27 @@ msgstr "Yeniden başlatılıyor..."
#. Translators: This is a time format for a date in
#. long format
#: js/ui/screenShield.js:85
#: js/ui/screenShield.js:88
msgid "%A, %B %d"
msgstr "%d %B %A"
#: js/ui/screenShield.js:144
#: js/ui/screenShield.js:147
#, javascript-format
msgid "%d new message"
msgid_plural "%d new messages"
msgstr[0] "%d yeni ileti"
#: js/ui/screenShield.js:146
#: js/ui/screenShield.js:149
#, javascript-format
msgid "%d new notification"
msgid_plural "%d new notifications"
msgstr[0] "%d yeni bildirim"
#: js/ui/screenShield.js:449 js/ui/status/system.js:409
#: js/ui/screenShield.js:452 js/ui/status/system.js:409
msgid "Lock"
msgstr "Kilitle"
#: js/ui/screenShield.js:707
#: js/ui/screenShield.js:715
msgid "GNOME needs to lock the screen"
msgstr "GNOME'un ekranı kilitlemesi gerekiyor"
@ -1231,19 +1318,19 @@ msgstr "GNOME'un ekranı kilitlemesi gerekiyor"
#.
#. XXX: another option is to kick the user into the gdm login
#. screen, where we're not affected by grabs
#: js/ui/screenShield.js:828 js/ui/screenShield.js:1295
#: js/ui/screenShield.js:836 js/ui/screenShield.js:1308
msgid "Unable to lock"
msgstr "Kilitlenemedi"
#: js/ui/screenShield.js:829 js/ui/screenShield.js:1296
#: js/ui/screenShield.js:837 js/ui/screenShield.js:1309
msgid "Lock was blocked by an application"
msgstr "Kilitleme bir uygulama tarafından engellendi"
#: js/ui/search.js:617
#: js/ui/search.js:621
msgid "Searching…"
msgstr "Aranıyor…"
#: js/ui/search.js:619
#: js/ui/search.js:623
msgid "No results."
msgstr "Sonuç yok."
@ -1338,13 +1425,13 @@ msgstr "Kapalı"
msgid "On"
msgstr "Açık"
#: js/ui/status/bluetooth.js:142 js/ui/status/network.js:1302
#: js/ui/status/bluetooth.js:142 js/ui/status/network.js:1310
msgid "Turn On"
msgstr "Aç"
#: js/ui/status/bluetooth.js:142 js/ui/status/network.js:181
#: js/ui/status/network.js:367 js/ui/status/network.js:1302
#: js/ui/status/network.js:1417 js/ui/status/nightLight.js:47
#: js/ui/status/network.js:367 js/ui/status/network.js:1310
#: js/ui/status/network.js:1429 js/ui/status/nightLight.js:47
#: js/ui/status/rfkill.js:90 js/ui/status/rfkill.js:117
msgid "Turn Off"
msgstr "Kapat"
@ -1357,37 +1444,37 @@ msgstr "Parlaklık"
msgid "Show Keyboard Layout"
msgstr "Klavye Düzenini Göster"
#: js/ui/status/location.js:107 js/ui/status/location.js:215
#: js/ui/status/location.js:88 js/ui/status/location.js:196
msgid "Location Enabled"
msgstr "Konum Etkinleştirildi"
#: js/ui/status/location.js:108 js/ui/status/location.js:216
#: js/ui/status/location.js:89 js/ui/status/location.js:197
msgid "Disable"
msgstr "Devre Dışı Bırak"
#: js/ui/status/location.js:109
#: js/ui/status/location.js:90
msgid "Privacy Settings"
msgstr "Gizlilik Ayarları"
#: js/ui/status/location.js:214
#: js/ui/status/location.js:195
msgid "Location In Use"
msgstr "Konum Kullanımda"
#: js/ui/status/location.js:218
#: js/ui/status/location.js:199
msgid "Location Disabled"
msgstr "Konum Devre Dışı"
#: js/ui/status/location.js:219
#: js/ui/status/location.js:200
msgid "Enable"
msgstr "Etkinleştir"
#. Translators: %s is an application name
#: js/ui/status/location.js:436
#: js/ui/status/location.js:414
#, javascript-format
msgid "Give %s access to your location?"
msgstr "%s uygulaması konumunuza erişebilsin mi?"
#: js/ui/status/location.js:438
#: js/ui/status/location.js:416
msgid "Location access can be changed at any time from the privacy settings."
msgstr "Konum erişimi, gizlilik ayarlarından her zaman değiştirilebilir."
@ -1396,7 +1483,7 @@ msgid "<unknown>"
msgstr "<bilinmeyen>"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:465 js/ui/status/network.js:1331
#: js/ui/status/network.js:465 js/ui/status/network.js:1339
#, javascript-format
msgid "%s Off"
msgstr "%s Kapalı"
@ -1422,7 +1509,7 @@ msgid "%s Disconnecting"
msgstr "%s Bağlantısı Kesiliyor"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:483 js/ui/status/network.js:1323
#: js/ui/status/network.js:483 js/ui/status/network.js:1331
#, javascript-format
msgid "%s Connecting"
msgstr "%s Bağlanıyor"
@ -1462,7 +1549,7 @@ msgid "Mobile Broadband Settings"
msgstr "Mobil Geniş Bant Ayarları"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:602 js/ui/status/network.js:1328
#: js/ui/status/network.js:602 js/ui/status/network.js:1336
#, javascript-format
msgid "%s Hardware Disabled"
msgstr "%s Donanımı Devre Dışı"
@ -1478,119 +1565,119 @@ msgstr "%s Devre Dışı"
msgid "Connect to Internet"
msgstr "İnternet'e Bağlan"
#: js/ui/status/network.js:836
#: js/ui/status/network.js:844
msgid "Airplane Mode is On"
msgstr "Uçak Kipi Açık"
#: js/ui/status/network.js:837
#: js/ui/status/network.js:845
msgid "Wi-Fi is disabled when airplane mode is on."
msgstr "Uçak kipi açıldığında kablosuz ağ devre dışı kalır."
#: js/ui/status/network.js:838
#: js/ui/status/network.js:846
msgid "Turn Off Airplane Mode"
msgstr "Uçak Kipini Kapat"
#: js/ui/status/network.js:847
#: js/ui/status/network.js:855
msgid "Wi-Fi is Off"
msgstr "Kablosuz Ağ Kapalı"
#: js/ui/status/network.js:848
#: js/ui/status/network.js:856
msgid "Wi-Fi needs to be turned on in order to connect to a network."
msgstr "Bir ağa bağlanmak için kablosuz ağın açık olması gerekir."
#: js/ui/status/network.js:849
#: js/ui/status/network.js:857
msgid "Turn On Wi-Fi"
msgstr "Kablosuz Ağı Aç"
#: js/ui/status/network.js:874
#: js/ui/status/network.js:882
msgid "Wi-Fi Networks"
msgstr "Kablosuz Ağlar"
#: js/ui/status/network.js:876
#: js/ui/status/network.js:884
msgid "Select a network"
msgstr "Bir ağ seçin"
#: js/ui/status/network.js:906
#: js/ui/status/network.js:914
msgid "No Networks"
msgstr "Ağ Yok"
#: js/ui/status/network.js:927 js/ui/status/rfkill.js:115
#: js/ui/status/network.js:935 js/ui/status/rfkill.js:115
msgid "Use hardware switch to turn off"
msgstr "Kapatmak için donanım anahtarını kullanın."
#: js/ui/status/network.js:1194
#: js/ui/status/network.js:1202
msgid "Select Network"
msgstr "Ağ Seç"
#: js/ui/status/network.js:1200
#: js/ui/status/network.js:1208
msgid "Wi-Fi Settings"
msgstr "Kablosuz Ağ Ayarları"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:1319
#: js/ui/status/network.js:1327
#, javascript-format
msgid "%s Hotspot Active"
msgstr "%s Erişim Noktası Etkin"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:1334
#: js/ui/status/network.js:1342
#, javascript-format
msgid "%s Not Connected"
msgstr "%s Bağlı Değil"
#: js/ui/status/network.js:1434
#: js/ui/status/network.js:1446
msgid "connecting…"
msgstr "bağlanıyor…"
#. Translators: this is for network connections that require some kind of key or password
#: js/ui/status/network.js:1437
#: js/ui/status/network.js:1449
msgid "authentication required"
msgstr "kimlik doğrulaması gerekli"
#: js/ui/status/network.js:1439
#: js/ui/status/network.js:1451
msgid "connection failed"
msgstr "bağlantı başarısız"
#: js/ui/status/network.js:1505 js/ui/status/network.js:1600
#: js/ui/status/network.js:1517 js/ui/status/network.js:1612
#: js/ui/status/rfkill.js:93
msgid "Network Settings"
msgstr "Ağ Ayarları"
#: js/ui/status/network.js:1507
#: js/ui/status/network.js:1519
msgid "VPN Settings"
msgstr "VPN Ayarları"
#: js/ui/status/network.js:1526
#: js/ui/status/network.js:1538
msgid "VPN"
msgstr "VPN"
#: js/ui/status/network.js:1536
#: js/ui/status/network.js:1548
msgid "VPN Off"
msgstr "VPN Kapalı"
#: js/ui/status/network.js:1631
#: js/ui/status/network.js:1643
#, javascript-format
msgid "%s Wired Connection"
msgid_plural "%s Wired Connections"
msgstr[0] "%s Kablolu Bağlantı"
#: js/ui/status/network.js:1635
#: js/ui/status/network.js:1647
#, javascript-format
msgid "%s Wi-Fi Connection"
msgid_plural "%s Wi-Fi Connections"
msgstr[0] "%s Kablosuz Ağ Bağlantısı"
#: js/ui/status/network.js:1639
#: js/ui/status/network.js:1651
#, javascript-format
msgid "%s Modem Connection"
msgid_plural "%s Modem Connections"
msgstr[0] "%s Modem Bağlantısı"
#: js/ui/status/network.js:1786
#: js/ui/status/network.js:1798
msgid "Connection failed"
msgstr "Bağlantı başarısız oldu"
#: js/ui/status/network.js:1787
#: js/ui/status/network.js:1799
msgid "Activation of network connection failed"
msgstr "Ağ bağlantısının etkinleştirilmesi başarısız oldu"
@ -1688,11 +1775,11 @@ msgstr "Başka kullanıcı olarak oturum aç"
msgid "Unlock Window"
msgstr "Kilit Açma Penceresi"
#: js/ui/viewSelector.js:182
#: js/ui/viewSelector.js:183
msgid "Applications"
msgstr "Uygulamalar"
#: js/ui/viewSelector.js:186
#: js/ui/viewSelector.js:187
msgid "Search"
msgstr "Ara"
@ -1701,22 +1788,22 @@ msgstr "Ara"
msgid "“%s” is ready"
msgstr "“%s” hazır"
#: js/ui/windowManager.js:83
#: js/ui/windowManager.js:84
msgid "Do you want to keep these display settings?"
msgstr "Bu görüntü ayarlarını saklamak istiyor musunuz?"
#. Translators: this and the following message should be limited in lenght,
#. to avoid ellipsizing the labels.
#.
#: js/ui/windowManager.js:102
#: js/ui/windowManager.js:103
msgid "Revert Settings"
msgstr "Ayarları Eski Haline Getir"
#: js/ui/windowManager.js:105
#: js/ui/windowManager.js:106
msgid "Keep Changes"
msgstr "Değişiklikleri Sakla"
#: js/ui/windowManager.js:123
#: js/ui/windowManager.js:124
#, javascript-format
msgid "Settings changes will revert in %d second"
msgid_plural "Settings changes will revert in %d seconds"
@ -1724,7 +1811,7 @@ msgstr[0] "Ayarlardaki değişiklikler %d saniye içinde eski haline döndürül
#. Translators: This represents the size of a window. The first number is
#. * the width of the window and the second is the height.
#: js/ui/windowManager.js:678
#: js/ui/windowManager.js:679
#, javascript-format
msgid "%d × %d"
msgstr "%d × %d"
@ -1761,35 +1848,35 @@ msgstr "Her Zaman Üstte"
msgid "Always on Visible Workspace"
msgstr "Her Zaman Görünür Çalışma Alanında"
#: js/ui/windowMenu.js:105
#: js/ui/windowMenu.js:103
msgid "Move to Workspace Left"
msgstr "Soldaki Çalışma Alanına Taşı"
#: js/ui/windowMenu.js:110
#: js/ui/windowMenu.js:108
msgid "Move to Workspace Right"
msgstr "Sağdaki Çalışma Alanına Taşı"
#: js/ui/windowMenu.js:115
#: js/ui/windowMenu.js:113
msgid "Move to Workspace Up"
msgstr "Üstteki Çalışma Alanına Taşı"
#: js/ui/windowMenu.js:120
#: js/ui/windowMenu.js:118
msgid "Move to Workspace Down"
msgstr "Alttaki Çalışma Alanına Taşı"
#: js/ui/windowMenu.js:136
#: js/ui/windowMenu.js:134
msgid "Move to Monitor Up"
msgstr "Üstteki Monitöre Taşı"
#: js/ui/windowMenu.js:142
#: js/ui/windowMenu.js:140
msgid "Move to Monitor Down"
msgstr "Alttaki Monitöre Taşı"
#: js/ui/windowMenu.js:148
#: js/ui/windowMenu.js:146
msgid "Move to Monitor Left"
msgstr "Soldaki Monitöre Taşı"
#: js/ui/windowMenu.js:154
#: js/ui/windowMenu.js:152
msgid "Move to Monitor Right"
msgstr "Sağdaki Monitöre Taşı"
@ -1822,19 +1909,19 @@ msgstr[0] "%u Girdi"
msgid "System Sounds"
msgstr "Sistem Sesleri"
#: src/main.c:381
#: src/main.c:372
msgid "Print version"
msgstr "Sürümü yazdır"
#: src/main.c:387
#: src/main.c:378
msgid "Mode used by GDM for login screen"
msgstr "Oturum açma ekranında GDM tarafından kullanılan kip"
#: src/main.c:393
#: src/main.c:384
msgid "Use a specific mode, e.g. “gdm” for login screen"
msgstr "Oturum açma ekranı için -“gdm” gibi- özel bir kip kullan"
#: src/main.c:399
#: src/main.c:390
msgid "List possible modes"
msgstr "Mevcut kipleri listele"
@ -1860,6 +1947,18 @@ msgstr "Parola boş bırakılamaz"
msgid "Authentication dialog was dismissed by the user"
msgstr "Kimlik doğrulama penceresi kullanıcı tarafından kapatıldı"
#~ msgid "Events"
#~ msgstr "Olaylar"
#~ msgid "Notifications"
#~ msgstr "Bildirimler"
#~ msgid "Clear section"
#~ msgstr "Bölümü temizle"
#~ msgid "Media"
#~ msgstr "Ortam"
#~ msgid "GNOME Shell Extension Preferences"
#~ msgstr "GNOME Kabuğu Eklenti Tercihleri"

View File

@ -420,7 +420,8 @@ _st_create_shadow_pipeline_from_actor (StShadow *shadow_spec,
CoglTexture *texture;
texture = clutter_texture_get_cogl_texture (CLUTTER_TEXTURE (actor));
shadow_pipeline = _st_create_shadow_pipeline (shadow_spec, texture);
if (texture)
shadow_pipeline = _st_create_shadow_pipeline (shadow_spec, texture);
}
else
{

View File

@ -1,6 +1,6 @@
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
// Test cases for Calendar markup parsing
// Test cases for MessageList markup parsing
const JsUnit = imports.jsUnit;
const Pango = imports.gi.Pango;
@ -8,7 +8,7 @@ const Pango = imports.gi.Pango;
const Environment = imports.ui.environment;
Environment.init();
const Calendar = imports.ui.calendar;
const MessageList = imports.ui.messageList;
// Assert that @input, assumed to be markup, gets "fixed" to @output,
// which is valid markup. If @output is null, @input is expected to
@ -16,7 +16,7 @@ const Calendar = imports.ui.calendar;
function assertConverts(input, output) {
if (!output)
output = input;
let fixed = Calendar._fixMarkup(input, true);
let fixed = MessageList._fixMarkup(input, true);
JsUnit.assertEquals(output, fixed);
let parsed = false;
@ -30,7 +30,7 @@ function assertConverts(input, output) {
// Assert that @input, assumed to be plain text, gets escaped to @output,
// which is valid markup.
function assertEscapes(input, output) {
let fixed = Calendar._fixMarkup(input, false);
let fixed = MessageList._fixMarkup(input, false);
JsUnit.assertEquals(output, fixed);
let parsed = false;