Compare commits

..

18 Commits

Author SHA1 Message Date
58ed983b65 Bump version to 3.24.2
Update NEWS.
2017-05-11 15:14:54 +02:00
6f2fc9fe14 docs: Fix typo 2017-05-11 15:14:54 +02:00
185f003363 dateMenu: Fix a runtime warning
GJS now warns about excess parameters, so wrap the queue_relayout()
into an anonymous function instead of using it directly as signal
handler.
2017-05-11 14:46:12 +02:00
6734746707 search: copy result to clipboard if requested
Some search providers such as GNOME Characters want to copy search
results to clipboard.  However, on Wayland, clipboards are only
accessible from applications that have a visible surface on display.

This patch allows a search provider to request the shell to copy a
search result to clipboard when 'clipboardText' is included in the meta
of the result.

https://bugzilla.gnome.org/show_bug.cgi?id=775099
2017-05-11 11:40:27 +02:00
65b9369aaf entry: Fix *-icon-clicked handler
Commit ffe4eaf00d broke the handler by fetching the instance private
from the wrong actor - as we don't use the ::primary-icon-clicked signal,
and the ::secondary-icon-clicked signal still works by accident, nobody
noticed until now ...

https://bugzilla.gnome.org/show_bug.cgi?id=782190
2017-05-05 00:41:34 +02:00
e1e4ce7049 extensionSystem: handle reloading broken extensions
Some extensions out there may fail to reload. When that happens,
we need to catch any exceptions so that we don't leave things in
a broken state that could lead to leaving extensions enabled in
the screen shield.

https://bugzilla.gnome.org/show_bug.cgi?id=781728
2017-04-25 22:03:34 +02:00
812aa10119 Update Arabic translation 2017-04-24 16:41:15 +02:00
b0fa5e5696 extensionPrefs: Avoid a runtime warning
Since 5b3fb024be, the main window is only shown when not launched
with a valid UUID. As GtkDialog isn't meant to be used standalone,
we currently trigger a (harmless but annoying) warning in case
the main window isn't shown; we can avoid the warning by setting
up the preference dialog manually instead of using the GtkDialog
convenience class.

https://bugzilla.gnome.org/show_bug.cgi?id=781545
2017-04-20 19:19:53 +02:00
c7a8c372a1 extensionPrefs: Fix enum member name 2017-04-20 17:37:07 +02:00
73b7d9ace4 WeatherClient: set enabled providers after setting a valid location
So far, the GWeatherInfo was given the enabled weather providers
as a parameter, at construction time. Because of the way in
which libgweather was designed, setting the providers right from
the beginning enabled libgweather to use them internally in order
to update its state. Updating the internal state is only relevant
when there is a valid location set, which is not guaranteed at the
time when the GWeatherInfo object is constructed.

In order to fix this, enable no providers at construction time and
only set valid providers after setting a valid location.

https://bugzilla.gnome.org/show_bug.cgi?id=780404
2017-04-20 17:36:25 +02:00
45c2627d4d Update Serbian translation 2017-04-13 00:10:36 +00:00
635bdea284 Update Italian translation 2017-04-11 06:41:24 +00:00
22131d99ad Bump version to 3.24.1
Update NEWS.
2017-04-11 01:58:50 +02:00
4e22388089 background: Fix file check
The _animationFile property was removed in commit 8a4c862633 ...
2017-04-11 01:39:03 +02:00
c526413119 Update Croatian translation 2017-04-08 15:16:32 +00:00
1336b197d8 Update Greek translation 2017-04-08 15:07:14 +00:00
4b99415215 Updated Danish translation 2017-04-08 16:35:30 +02:00
1ed107a2bf st-texture-cache: Plug some pixbuf refcount leaks on async operations
When extracting the sliced image, the GTask grants data ownership on
g_task_propagate_*, so the pixbuf list must be properly freed. On async
load, we just left a dangling reference when returning on the async
task.

https://bugzilla.gnome.org/show_bug.cgi?id=642652
2017-04-07 14:32:12 +02:00
28 changed files with 864 additions and 1158 deletions

34
NEWS
View File

@ -1,23 +1,18 @@
3.25.2
3.24.2
======
* Only fetch weather information when there's a valid location [Rares; #780404]
* Handle extension errors during reload due to settings change [Emilio; #781728]
* Fix StEntry::primary-icon-clicked emission [Florian; #782190]
* Add an optional icon parameter to PopupMenu.addAction() [Mario; #782166]
* Allow search providers to include clipboard text with results [Daiki; #775099]
* Reduce dependency on Caribou [Carlos; #777342]
* Add transparency to top bar when free floating [Alessandro; #747163]
* Animate maximize/unmaximize operations [Alessandro; #766685]
* Misc. bug fixes [Florian, Matthias, Jeremy, Michael, Carlos, Lan; #782000,
#780215, #782802, #782637, #782930, #755164, #780215, #782982]
* Allow search providers to provide clipboard text for results [Daiki; #775099]
* Misc. bug fixes [Florian; #781545]
Contributors:
Jeremy Bicha, Michael Biebl, Alessandro Bono, Carlos Garnacho, Ting-Wei Lan,
Matthias Liertzer, Florian Müllner, Mario Sanchez Prada, Daiki Ueno
Florian Müllner, Emilio Pozuelo Monfort, Daiki Ueno, Rares Visalom
Translations:
Jordi Mas [ca], Christian Stadelmann [de], Милош Поповић [sr],
Милош Поповић [sr@latin], Furkan Ahmet Kara [tr]
Milo Casagrande [it], Милош Поповић [sr], Khaled Hosny [ar]
3.25.1
3.24.1
======
* Close Wifi selection dialog on lock [Florian; #780054]
* Fix DND over window previews in overview [Florian; #737166]
@ -25,15 +20,11 @@ Translations:
* Follow GNOME Weather's location permissions [Florian; #780252]
* Fix portals that require a new window to be loaded [Catalin; #759044]
* Fix restricting menus to screen height on HiDPI displays [Cosimo; #753305]
* Misc. bug fixes and cleanups [Florian, Cosimo, Bastien, Catalin, Carlos G.,
Jonas, Carlos S., Xiaoguang, Rares, Emilio; #780063, #780321, #780381,
#780453, #758873, #780606, #642652, #777732, #780157, #781482, #780404,
#781545, #781728]
* Misc. bug fixes and cleanups [Florian, Cosimo, Bastien, Catalin, Carlos;
#780063, #780321, #780381, #780453, #758873, #780606, #642652]
Contributors:
Jonas Ådahl, Cosimo Cecchi, Philip Chimento, Carlos Garnacho, Catalin Iacob,
Florian Müllner, Bastien Nocera, Emilio Pozuelo Monfort, Carlos Soriano,
Rares Visalom, Xiaoguang Wang
Cosimo Cecchi, Carlos Garnacho, Catalin Iacob, Florian Müllner, Bastien Nocera
Translations:
Marek Cernocky [cs], Piotr Drąg [pl], Anders Jonsson [sv], Stas Solovey [ru],
@ -43,8 +34,7 @@ Translations:
Changwoo Ryu [ko], Mario Blättermann [de], Fran Dieguez [gl],
Dušan Kazik [sk], Yuras Shumovich [be], Fabio Tomat [fur],
Kjartan Maraas [nb], Aurimas Černius [lt], Trần Ngọc Quân [vi],
Rūdolfs Mazurs [lv], Γιάννης Κουτσούκος [el], gogo [hr], Марко Костић [sr],
Jordi Mas [ca], Khaled Hosny [ar]
Rūdolfs Mazurs [lv], Ask Hjorth Larsen [da], Tom Tryfonidis [el], gogo [hr]
3.24.0
======

View File

@ -4,9 +4,7 @@
srcdir=`dirname $0`
test -z "$srcdir" && srcdir=.
olddir="$(pwd)"
cd "${srcdir}"
pushd $srcdir
(test -f configure.ac \
&& test -d src) || {
@ -28,8 +26,8 @@ gtkdocize --copy || exit 1
intltoolize --force --copy --automake || exit 1
autoreconf --verbose --force --install || exit 1
cd "${olddir}"
popd
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.25.2],[https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell],[gnome-shell])
AC_INIT([gnome-shell],[3.24.2],[https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell],[gnome-shell])
AX_IS_RELEASE([git-directory])
AC_CONFIG_HEADERS([config.h])
@ -85,9 +85,9 @@ AC_MSG_RESULT($enable_systemd)
GOBJECT_INTROSPECTION_MIN_VERSION=1.49.1
GJS_MIN_VERSION=1.47.0
MUTTER_MIN_VERSION=3.25.2
MUTTER_MIN_VERSION=3.24.0
GTK_MIN_VERSION=3.15.0
GIO_MIN_VERSION=2.53.0
GIO_MIN_VERSION=2.45.3
LIBECAL_MIN_VERSION=3.5.3
LIBEDATASERVER_MIN_VERSION=3.17.2
POLKIT_MIN_VERSION=0.100
@ -190,7 +190,7 @@ if test "x$enable_networkmanager" != "xno"; then
[libnm-glib
libnm-util >= $NETWORKMANAGER_MIN_VERSION
libnm-gtk >= $NETWORKMANAGER_MIN_VERSION
libsecret-1 >= 0.18],
libsecret-unstable],
[have_networkmanager=yes],
[have_networkmanager=no])

View File

@ -300,7 +300,7 @@ StScrollBar {
padding-bottom: 6px; }
.mount-question-dialog-subject {
max-width: 34em; }
max-width: 500px; }
.show-processes-dialog-subject:rtl,
.mount-question-dialog-subject:rtl {
@ -345,7 +345,7 @@ StScrollBar {
/* Password or Authentication Dialog */
.prompt-dialog {
width: 34em;
width: 500px;
border: 3px solid rgba(238, 238, 236, 0.2); }
.prompt-dialog-main-layout {
@ -669,9 +669,7 @@ StScrollBar {
/* TOP BAR */
#panel {
background-color: rgba(0, 0, 0, 0.2);
/* transition from solid to transparent */
transition-duration: 500ms;
background-color: black;
font-weight: bold;
height: 1.86em; }
#panel.unlock-screen, #panel.login-screen, #panel.lock-screen {
@ -680,7 +678,7 @@ StScrollBar {
spacing: 4px; }
#panel .panel-corner {
-panel-corner-radius: 6px;
-panel-corner-background-color: rgba(0, 0, 0, 0.2);
-panel-corner-background-color: black;
-panel-corner-border-width: 2px;
-panel-corner-border-color: transparent; }
#panel .panel-corner:active, #panel .panel-corner:overview, #panel .panel-corner:focus {
@ -693,24 +691,14 @@ StScrollBar {
-natural-hpadding: 12px;
-minimum-hpadding: 6px;
font-weight: bold;
color: #eee;
text-shadow: 0px 0px 2px rgba(0, 0, 0, 0.9);
color: #ccc;
transition-duration: 100ms; }
#panel .panel-button .app-menu-icon {
-st-icon-style: symbolic;
margin-left: 4px;
margin-right: 4px; }
#panel .panel-button .system-status-icon,
#panel .panel-button .app-menu-icon > StIcon,
#panel .panel-button .popup-menu-arrow {
icon-shadow: 0px 0px 2px rgba(0, 0, 0, 0.9); }
#panel .panel-button:hover {
color: white;
text-shadow: 0px 0px 8px black; }
#panel .panel-button:hover .system-status-icon,
#panel .panel-button:hover .app-menu-icon > StIcon,
#panel .panel-button:hover .popup-menu-arrow {
icon-shadow: 0px 0px 8px black; }
color: white; }
#panel .panel-button:active, #panel .panel-button:overview, #panel .panel-button:focus, #panel .panel-button:checked {
background-color: rgba(0, 0, 0, 0.01);
box-shadow: inset 0 -2px 0px #256ab1;
@ -731,21 +719,6 @@ StScrollBar {
spacing: 0; }
#panel .screencast-indicator {
color: #f57900; }
#panel.solid {
background-color: black;
/* transition from transparent to solid */
transition-duration: 300ms; }
#panel.solid .panel-corner {
-panel-corner-background-color: black; }
#panel.solid .panel-button {
color: #ccc;
text-shadow: none; }
#panel.solid .panel-button:hover {
color: white; }
#panel.solid .system-status-icon,
#panel.solid .app-menu-icon > StIcon,
#panel.solid .popup-menu-arrow {
icon-shadow: none; }
#calendarArea {
padding: 0.75em 1.0em; }
@ -1037,9 +1010,9 @@ StScrollBar {
/* NETWORK DIALOGS */
.nm-dialog {
max-height: 34em;
min-height: 31em;
min-width: 32em; }
max-height: 500px;
min-height: 450px;
min-width: 470px; }
.nm-dialog-content {
spacing: 20px;

View File

@ -300,7 +300,7 @@ StScrollBar {
padding-bottom: 6px; }
.mount-question-dialog-subject {
max-width: 34em; }
max-width: 500px; }
.show-processes-dialog-subject:rtl,
.mount-question-dialog-subject:rtl {
@ -345,7 +345,7 @@ StScrollBar {
/* Password or Authentication Dialog */
.prompt-dialog {
width: 34em;
width: 500px;
border: 3px solid rgba(238, 238, 236, 0.2); }
.prompt-dialog-main-layout {
@ -669,9 +669,7 @@ StScrollBar {
/* TOP BAR */
#panel {
background-color: rgba(0, 0, 0, 0.2);
/* transition from solid to transparent */
transition-duration: 500ms;
background-color: black;
font-weight: bold;
height: 1.86em; }
#panel.unlock-screen, #panel.login-screen, #panel.lock-screen {
@ -680,7 +678,7 @@ StScrollBar {
spacing: 4px; }
#panel .panel-corner {
-panel-corner-radius: 6px;
-panel-corner-background-color: rgba(0, 0, 0, 0.2);
-panel-corner-background-color: black;
-panel-corner-border-width: 2px;
-panel-corner-border-color: transparent; }
#panel .panel-corner:active, #panel .panel-corner:overview, #panel .panel-corner:focus {
@ -693,24 +691,14 @@ StScrollBar {
-natural-hpadding: 12px;
-minimum-hpadding: 6px;
font-weight: bold;
color: #eee;
text-shadow: 0px 0px 2px rgba(0, 0, 0, 0.9);
color: #ccc;
transition-duration: 100ms; }
#panel .panel-button .app-menu-icon {
-st-icon-style: symbolic;
margin-left: 4px;
margin-right: 4px; }
#panel .panel-button .system-status-icon,
#panel .panel-button .app-menu-icon > StIcon,
#panel .panel-button .popup-menu-arrow {
icon-shadow: 0px 0px 2px rgba(0, 0, 0, 0.9); }
#panel .panel-button:hover {
color: white;
text-shadow: 0px 0px 8px black; }
#panel .panel-button:hover .system-status-icon,
#panel .panel-button:hover .app-menu-icon > StIcon,
#panel .panel-button:hover .popup-menu-arrow {
icon-shadow: 0px 0px 8px black; }
color: white; }
#panel .panel-button:active, #panel .panel-button:overview, #panel .panel-button:focus, #panel .panel-button:checked {
background-color: rgba(0, 0, 0, 0.01);
box-shadow: inset 0 -2px 0px #256ab1;
@ -731,21 +719,6 @@ StScrollBar {
spacing: 0; }
#panel .screencast-indicator {
color: #f57900; }
#panel.solid {
background-color: black;
/* transition from transparent to solid */
transition-duration: 300ms; }
#panel.solid .panel-corner {
-panel-corner-background-color: black; }
#panel.solid .panel-button {
color: #ccc;
text-shadow: none; }
#panel.solid .panel-button:hover {
color: white; }
#panel.solid .system-status-icon,
#panel.solid .app-menu-icon > StIcon,
#panel.solid .popup-menu-arrow {
icon-shadow: none; }
#calendarArea {
padding: 0.75em 1.0em; }
@ -1037,9 +1010,9 @@ StScrollBar {
/* NETWORK DIALOGS */
.nm-dialog {
max-height: 34em;
min-height: 31em;
min-width: 32em; }
max-height: 500px;
min-height: 450px;
min-width: 470px; }
.nm-dialog-content {
spacing: 20px;

View File

@ -775,12 +775,10 @@ const LoginDialog = new Lang.Class({
},
_onPrompted: function() {
if (this._shouldShowSessionMenuButton()) {
this._sessionMenuButton.updateSensitivity(true);
this._sessionMenuButton.updateSensitivity(true);
if (this._shouldShowSessionMenuButton())
this._authPrompt.setActorInDefaultButtonWell(this._sessionMenuButton.actor);
} else {
this._sessionMenuButton.updateSensitivity(false);
}
this._showPrompt();
},
@ -883,7 +881,6 @@ const LoginDialog = new Lang.Class({
}));
this._updateCancelButton();
this._sessionMenuButton.updateSensitivity(false);
this._authPrompt.updateSensitivity(true);
this._showPrompt();
},

View File

@ -218,10 +218,11 @@ function formatTime(time, params) {
if (_desktopSettings == null)
_desktopSettings = new Gio.Settings({ schema_id: 'org.gnome.desktop.interface' });
let clockFormat = _desktopSettings.get_string('clock-format');
let hasAmPm = date.format('%p') != '';
params = Params.parse(params, { timeOnly: false });
if (clockFormat == '24h') {
if (clockFormat == '24h' || !hasAmPm) {
// Show only the time if date is on today
if (daysAgo < 1 || params.timeOnly)
/* Translators: Time in 24h format */

View File

@ -6,7 +6,6 @@ const Signals = imports.signals;
const Main = imports.ui.main;
// In alphabetical order
const RENAMED_DESKTOP_IDS = {
'baobab.desktop': 'org.gnome.baobab.desktop',
'cheese.desktop': 'org.gnome.Cheese.desktop',
@ -28,7 +27,6 @@ const RENAMED_DESKTOP_IDS = {
'gnome-documents.desktop': 'org.gnome.Documents.desktop',
'gnome-font-viewer.desktop': 'org.gnome.font-viewer.desktop',
'gnome-nibbles.desktop': 'org.gnome.Nibbles.desktop',
'gnome-music.desktop': 'org.gnome.Music.desktop',
'gnome-photos.desktop': 'org.gnome.Photos.desktop',
'gnome-screenshot.desktop': 'org.gnome.Screenshot.desktop',
'gnome-software.desktop': 'org.gnome.Software.desktop',

View File

@ -1,7 +1,5 @@
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const FocusCaretTracker = imports.ui.focusCaretTracker;
const Atspi = imports.gi.Atspi;
const Caribou = imports.gi.Caribou;
const Clutter = imports.gi.Clutter;
const Gdk = imports.gi.Gdk;
@ -27,6 +25,42 @@ const KEYBOARD_TYPE = 'keyboard-type';
const A11Y_APPLICATIONS_SCHEMA = 'org.gnome.desktop.a11y.applications';
const SHOW_KEYBOARD = 'screen-keyboard-enabled';
const CARIBOU_BUS_NAME = 'org.gnome.Caribou.Daemon';
const CARIBOU_OBJECT_PATH = '/org/gnome/Caribou/Daemon';
const CaribouKeyboardIface = '<node> \
<interface name="org.gnome.Caribou.Keyboard"> \
<method name="Show"> \
<arg type="u" direction="in" /> \
</method> \
<method name="Hide"> \
<arg type="u" direction="in" /> \
</method> \
<method name="SetCursorLocation"> \
<arg type="i" direction="in" /> \
<arg type="i" direction="in" /> \
<arg type="i" direction="in" /> \
<arg type="i" direction="in" /> \
</method> \
<method name="SetEntryLocation"> \
<arg type="i" direction="in" /> \
<arg type="i" direction="in" /> \
<arg type="i" direction="in" /> \
<arg type="i" direction="in" /> \
</method> \
<property name="Name" access="read" type="s" /> \
</interface> \
</node>';
const CaribouDaemonIface = '<node> \
<interface name="org.gnome.Caribou.Daemon"> \
<method name="Run" /> \
<method name="Quit" /> \
</interface> \
</node>';
const CaribouDaemonProxy = Gio.DBusProxy.makeProxyWrapper(CaribouDaemonIface);
const Key = new Lang.Class({
Name: 'Key',
@ -154,19 +188,18 @@ const Key = new Lang.Class({
Signals.addSignalMethods(Key.prototype);
const Keyboard = new Lang.Class({
Name: 'Keyboard',
// HACK: we can't set Name, because it collides with Name dbus property
// Name: 'Keyboard',
_init: function () {
this._impl = Gio.DBusExportedObject.wrapJSObject(CaribouKeyboardIface, this);
this._impl.export(Gio.DBus.session, '/org/gnome/Caribou/Keyboard');
this.actor = null;
this._focusInTray = false;
this._focusInExtendedKeys = false;
this._focusCaretTracker = new FocusCaretTracker.FocusCaretTracker();
this._focusCaretTracker.connect('focus-changed', Lang.bind(this, this._onFocusChanged));
this._focusCaretTracker.connect('caret-moved', Lang.bind(this, this._onCaretMoved));
this._currentAccessible = null;
this._caretTrackingEnabled = false;
this._updateCaretPositionId = 0;
this._timestamp = global.display.get_current_time_roundtrip();
this._keyboardSettings = new Gio.Settings({ schema_id: KEYBOARD_SCHEMA });
this._keyboardSettings.connect('changed', Lang.bind(this, this._sync));
@ -175,7 +208,9 @@ const Keyboard = new Lang.Class({
this._daemonProxy = null;
this._lastDeviceId = null;
Caribou.DisplayAdapter.set_default(new LocalAdapter());
if (Meta.is_wayland_compositor() &&
Caribou.DisplayAdapter.set_default)
Caribou.DisplayAdapter.set_default(new ShellWaylandAdapter());
Meta.get_backend().connect('last-device-changed', Lang.bind(this,
function (backend, deviceId) {
@ -205,93 +240,6 @@ const Keyboard = new Lang.Class({
this._redraw();
},
_setCaretTrackerEnabled: function (enabled) {
if (this._caretTrackingEnabled == enabled)
return;
this._caretTrackingEnabled = enabled;
if (enabled) {
this._focusCaretTracker.registerFocusListener();
this._focusCaretTracker.registerCaretListener();
} else {
this._focusCaretTracker.deregisterFocusListener();
this._focusCaretTracker.deregisterCaretListener();
}
},
_updateCaretPosition: function (accessible) {
if (this._updateCaretPositionId)
GLib.source_remove(this._updateCaretPositionId);
this._updateCaretPositionId = GLib.idle_add(GLib.PRIORITY_DEFAULT_IDLE, Lang.bind(this, function() {
this._updateCaretPositionId = 0;
let currentWindow = global.screen.get_display().focus_window;
if (!currentWindow)
return GLib.SOURCE_REMOVE;
let windowRect = currentWindow.get_frame_rect();
let text = accessible.get_text_iface();
let component = accessible.get_component_iface();
try {
let caretOffset = text.get_caret_offset();
let caretRect = text.get_character_extents(caretOffset, Atspi.CoordType.WINDOW);
let focusRect = component.get_extents(Atspi.CoordType.WINDOW);
caretRect.x += windowRect.x;
caretRect.y += windowRect.y;
focusRect.x += windowRect.x;
focusRect.y += windowRect.y;
if (caretRect.width == 0 && caretRect.height == 0)
caretRect = focusRect;
this.setEntryLocation(focusRect.x, focusRect.y, focusRect.width, focusRect.height);
this.setCursorLocation(caretRect.x, caretRect.y, caretRect.width, caretRect.height);
} catch (e) {
log('Error updating caret position for OSK: ' + e.message);
}
return GLib.SOURCE_REMOVE;
}));
GLib.Source.set_name_by_id(this._updateCaretPositionId, '[gnome-shell] this._updateCaretPosition');
},
_focusIsTextEntry: function (accessible) {
try {
let role = accessible.get_role();
let stateSet = accessible.get_state_set();
return stateSet.contains(Atspi.StateType.EDITABLE) || role == Atspi.Role.TERMINAL;
} catch (e) {
log('Error determining accessible role: ' + e.message);
return false;
}
},
_onFocusChanged: function (caretTracker, event) {
let accessible = event.source;
if (!this._focusIsTextEntry(accessible))
return;
let focused = event.detail1 != 0;
if (focused) {
this._currentAccessible = accessible;
this._updateCaretPosition(accessible);
this.show(Main.layoutManager.focusIndex);
} else if (this._currentAccessible == accessible) {
this._currentAccessible = null;
this.hide();
}
},
_onCaretMoved: function (caretTracker, event) {
let accessible = event.source;
if (this._currentAccessible == accessible)
this._updateCaretPosition(accessible);
},
_lastDeviceIsTouchscreen: function () {
if (!this._lastDeviceId)
return false;
@ -314,8 +262,6 @@ const Keyboard = new Lang.Class({
this._keyboard.keyboard_type == this._keyboardSettings.get_string(KEYBOARD_TYPE))
return;
this._setCaretTrackerEnabled(this._enableKeyboard);
if (this._keyboard)
this._destroyKeyboard();
@ -351,6 +297,23 @@ const Keyboard = new Lang.Class({
},
_setupKeyboard: function() {
if (!this._daemonProxy) {
this._daemonProxy = new CaribouDaemonProxy(Gio.DBus.session, CARIBOU_BUS_NAME,
CARIBOU_OBJECT_PATH,
Lang.bind(this, function(proxy, error) {
if (error) {
log(error.message);
return;
}
}));
}
this._daemonProxy.RunRemote(function (result, error) {
if (error) {
log(error.message);
return;
}
});
this.actor = new St.BoxLayout({ name: 'keyboard', vertical: true, reactive: true });
Main.layoutManager.keyboardBox.add_actor(this.actor);
Main.layoutManager.trackChrome(this.actor);
@ -396,17 +359,17 @@ const Keyboard = new Lang.Class({
let time = global.get_current_time();
if (!(focus instanceof Clutter.Text)) {
this.hide();
this.Hide(time);
return;
}
if (!this._showIdleId) {
this._showIdleId = GLib.idle_add(GLib.PRIORITY_DEFAULT_IDLE,
Lang.bind(this, function() {
this.show(Main.layoutManager.focusIndex);
this.Show(time);
return GLib.SOURCE_REMOVE;
}));
GLib.Source.set_name_by_id(this._showIdleId, '[gnome-shell] this.show');
GLib.Source.set_name_by_id(this._showIdleId, '[gnome-shell] this.Show');
}
},
@ -618,10 +581,6 @@ const Keyboard = new Lang.Class({
},
show: function (monitor) {
if (!this._enableKeyboard)
return;
this._clearShowIdle();
this._keyboardRequested = true;
if (this._keyboardVisible) {
@ -654,10 +613,6 @@ const Keyboard = new Lang.Class({
},
hide: function () {
if (!this._enableKeyboard)
return;
this._clearShowIdle();
this._keyboardRequested = false;
if (!this._keyboardVisible)
@ -709,6 +664,20 @@ const Keyboard = new Lang.Class({
this._moveTemporarily();
},
// _compareTimestamp:
//
// Compare two timestamps taking into account
// CURRENT_TIME (0)
_compareTimestamp: function(one, two) {
if (one == two)
return 0;
if (one == Clutter.CURRENT_TIME)
return 1;
if (two == Clutter.CURRENT_TIME)
return -1;
return one - two;
},
_clearShowIdle: function() {
if (!this._showIdleId)
return;
@ -716,19 +685,52 @@ const Keyboard = new Lang.Class({
this._showIdleId = 0;
},
setCursorLocation: function(x, y, w, h) {
// D-Bus methods
Show: function(timestamp) {
if (!this._enableKeyboard)
return;
if (this._compareTimestamp(timestamp, this._timestamp) < 0)
return;
this._clearShowIdle();
if (timestamp != Clutter.CURRENT_TIME)
this._timestamp = timestamp;
this.show(Main.layoutManager.focusIndex);
},
Hide: function(timestamp) {
if (!this._enableKeyboard)
return;
if (this._compareTimestamp(timestamp, this._timestamp) < 0)
return;
this._clearShowIdle();
if (timestamp != Clutter.CURRENT_TIME)
this._timestamp = timestamp;
this.hide();
},
SetCursorLocation: function(x, y, w, h) {
if (!this._enableKeyboard)
return;
// this._setLocation(x, y);
},
setEntryLocation: function(x, y, w, h) {
SetEntryLocation: function(x, y, w, h) {
if (!this._enableKeyboard)
return;
// this._setLocation(x, y);
},
get Name() {
return 'gnome-shell';
}
});
const KeyboardSource = new Lang.Class({
@ -752,8 +754,8 @@ const KeyboardSource = new Lang.Class({
}
});
const LocalAdapter = new Lang.Class({
Name: 'LocalAdapter',
const ShellWaylandAdapter = new Lang.Class({
Name: 'ShellWaylandAdapter',
Extends: Caribou.XAdapter,
_init: function () {

View File

@ -833,19 +833,19 @@ const LookingGlass = new Lang.Class({
return Clutter.EVENT_STOP;
}));
let gcIcon = new St.Icon({ icon_name: 'user-trash-full',
let gcIcon = new St.Icon({ icon_name: 'gnome-fs-trash-full',
icon_size: 24 });
toolbar.add_actor(gcIcon);
gcIcon.reactive = true;
gcIcon.connect('button-press-event', Lang.bind(this, function () {
gcIcon.icon_name = 'user-trash';
gcIcon.icon_name = 'gnome-fs-trash-empty';
System.gc();
this._timeoutId = Mainloop.timeout_add(500, Lang.bind(this, function () {
gcIcon.icon_name = 'user-trash-full';
gcIcon.icon_name = 'gnome-fs-trash-full';
this._timeoutId = 0;
return GLib.SOURCE_REMOVE;
}));
GLib.Source.set_name_by_id(this._timeoutId, '[gnome-shell] gcIcon.icon_name = \'user-trash-full\'');
GLib.Source.set_name_by_id(this._timeoutId, '[gnome-shell] gcIcon.icon_name = \'gnome-fs-trash-full\'');
return Clutter.EVENT_PROPAGATE;
}));

View File

@ -120,25 +120,6 @@ const OsdMonitorLabeler = new Lang.Class({
}
},
show2: function(client, params) {
if (!this._trackClient(client))
return;
this._reset();
for (let connector in params) {
let monitor = this._monitorManager.get_monitor_for_connector(connector);
if (monitor == -1)
continue;
this._monitorLabels.get(monitor).push(params[connector].deep_unpack());
}
for (let [monitor, labels] of this._monitorLabels.entries()) {
labels.sort();
this._osdLabels.push(new OsdMonitorLabel(monitor, labels.join(' ')));
}
},
hide: function(client) {
if (!this._untrackClient(client))
return;

View File

@ -801,11 +801,9 @@ const Panel = new Lang.Class({
Main.overview.connect('showing', Lang.bind(this, function () {
this.actor.add_style_pseudo_class('overview');
this._updateSolidStyle();
}));
Main.overview.connect('hiding', Lang.bind(this, function () {
this.actor.remove_style_pseudo_class('overview');
this._updateSolidStyle();
}));
Main.layoutManager.panelBox.add(this.actor);
@ -813,26 +811,9 @@ const Panel = new Lang.Class({
{ sortGroup: CtrlAltTab.SortGroup.TOP });
Main.sessionMode.connect('updated', Lang.bind(this, this._updatePanel));
this._trackedWindows = new Map();
global.window_group.connect('actor-added', Lang.bind(this, this._onWindowActorAdded));
global.window_group.connect('actor-removed', Lang.bind(this, this._onWindowActorRemoved));
global.window_manager.connect('switch-workspace', Lang.bind(this, this._updateSolidStyle));
this._updatePanel();
},
_onWindowActorAdded: function(container, metaWindowActor) {
let signalId = metaWindowActor.connect('allocation-changed', Lang.bind(this, this._updateSolidStyle));
this._trackedWindows.set(metaWindowActor, signalId);
},
_onWindowActorRemoved: function(container, metaWindowActor) {
metaWindowActor.disconnect(this._trackedWindows.get(metaWindowActor));
this._trackedWindows.delete(metaWindowActor);
this._updateSolidStyle();
},
_getPreferredWidth: function(actor, forHeight, alloc) {
alloc.min_size = -1;
alloc.natural_size = Main.layoutManager.primaryMonitor.width;
@ -1031,36 +1012,6 @@ const Panel = new Lang.Class({
}
},
_updateSolidStyle: function() {
if (this.actor.has_style_pseudo_class('overview') || !Main.sessionMode.hasWindows) {
this._removeStyleClassName('solid');
return;
}
/* Get all the windows in the active workspace that are in the primary monitor and visible */
let activeWorkspace = global.screen.get_active_workspace();
let windows = activeWorkspace.list_windows().filter(function(metaWindow) {
return metaWindow.is_on_primary_monitor() &&
metaWindow.showing_on_its_workspace() &&
metaWindow.get_window_type() != Meta.WindowType.DESKTOP;
});
/* Check if at least one window is near enough to the panel */
let [, panelTop] = this.actor.get_transformed_position();
let panelBottom = panelTop + this.actor.get_height();
let scale = St.ThemeContext.get_for_stage(global.stage).scale_factor;
let isNearEnough = windows.some(Lang.bind(this, function(metaWindow) {
let verticalPosition = metaWindow.get_frame_rect().y;
return verticalPosition < panelBottom + 5 * scale;
}));
if (isNearEnough)
this._addStyleClassName('solid');
else
this._removeStyleClassName('solid');
},
_hideIndicators: function() {
for (let role in PANEL_ITEM_IMPLEMENTATIONS) {
let indicator = this.statusArea[role];

View File

@ -2,8 +2,6 @@
const Clutter = imports.gi.Clutter;
const Gtk = imports.gi.Gtk;
const Gio = imports.gi.Gio;
const GObject = imports.gi.GObject;
const Lang = imports.lang;
const Shell = imports.gi.Shell;
const Signals = imports.signals;
@ -391,24 +389,20 @@ const PopupImageMenuItem = new Lang.Class({
Name: 'PopupImageMenuItem',
Extends: PopupBaseMenuItem,
_init: function (text, icon, params) {
_init: function (text, iconName, params) {
this.parent(params);
this._icon = new St.Icon({ style_class: 'popup-menu-icon' });
this.actor.add_child(this._icon, { align: St.Align.END });
this.label = new St.Label({ text: text });
this.actor.add_child(this.label);
this._icon = new St.Icon({ style_class: 'popup-menu-icon' });
this.actor.add_child(this._icon, { align: St.Align.END });
this.actor.label_actor = this.label;
this.setIcon(icon);
this.setIcon(iconName);
},
setIcon: function(icon) {
// The 'icon' parameter can be either a Gio.Icon or a string.
if (GObject.type_is_a(icon, Gio.Icon))
this._icon.gicon = icon;
else
this._icon.icon_name = icon;
setIcon: function(name) {
this._icon.icon_name = name;
}
});
@ -467,13 +461,8 @@ const PopupMenuBase = new Lang.Class({
this._setSettingsVisibility(Main.sessionMode.allowSettings);
},
addAction: function(title, callback, icon) {
let menuItem;
if (icon != undefined)
menuItem = new PopupImageMenuItem(title, icon);
else
menuItem = new PopupMenuItem(title);
addAction: function(title, callback) {
let menuItem = new PopupMenuItem(title);
this.addMenuItem(menuItem);
menuItem.connect('activate', Lang.bind(this, function (menuItem, event) {
callback(event);

View File

@ -28,9 +28,6 @@ const GnomeShellIface = '<node> \
<method name="ShowMonitorLabels"> \
<arg type="a{uv}" direction="in" name="params" /> \
</method> \
<method name="ShowMonitorLabels2"> \
<arg type="a{sv}" direction="in" name="params" /> \
</method> \
<method name="HideMonitorLabels" /> \
<method name="FocusApp"> \
<arg type="s" direction="in" name="id"/> \
@ -253,12 +250,6 @@ const GnomeShell = new Lang.Class({
Main.osdMonitorLabeler.show(sender, dict);
},
ShowMonitorLabels2Async: function(params, invocation) {
let sender = invocation.get_sender();
let [dict] = params;
Main.osdMonitorLabeler.show2(sender, dict);
},
HideMonitorLabelsAsync: function(params, invocation) {
let sender = invocation.get_sender();
Main.osdMonitorLabeler.hide(sender);

View File

@ -385,7 +385,7 @@ const SwitcherList = new Lang.Class({
let n = this._items.length;
bbox.connect('clicked', Lang.bind(this, function() { this._onItemClicked(n); }));
bbox.connect('motion-event', Lang.bind(this, function() { return this._onItemEnter(n); }));
bbox.connect('enter-event', Lang.bind(this, function() { this._onItemEnter(n); }));
bbox.label_actor = label;
@ -399,11 +399,7 @@ const SwitcherList = new Lang.Class({
},
_onItemEnter: function (index) {
// Avoid reentrancy
if (index != this._currentItemEntered) {
this._currentItemEntered = index;
this._itemEntered(index);
}
this._itemEntered(index);
return Clutter.EVENT_PROPAGATE;
},

View File

@ -1313,13 +1313,15 @@ const WindowManager = new Lang.Class({
return;
}
if (oldFrameRect.width > 0 && oldFrameRect.height > 0)
this._prepareAnimationInfo(shellwm, actor, oldFrameRect, whichChange);
if ((whichChange == Meta.SizeChange.FULLSCREEN ||
whichChange == Meta.SizeChange.UNFULLSCREEN) &&
oldFrameRect.width > 0 && oldFrameRect.height > 0)
this._fullscreenAnimation(shellwm, actor, oldFrameRect, whichChange);
else
shellwm.completed_size_change(actor);
},
_prepareAnimationInfo: function(shellwm, actor, oldFrameRect, change) {
_fullscreenAnimation: function(shellwm, actor, oldFrameRect, change) {
// Position a clone of the window on top of the old position,
// while actor updates are frozen.
let actorContent = Shell.util_get_content_for_window_actor(actor, oldFrameRect);
@ -1329,25 +1331,26 @@ const WindowManager = new Lang.Class({
actorClone.set_size(oldFrameRect.width, oldFrameRect.height);
Main.uiGroup.add_actor(actorClone);
if (this._clearAnimationInfo(actor))
let rect = change == Meta.SizeChange.FULLSCREEN ? oldFrameRect : null;
if (this._clearFullscreenInfo(actor))
this._shellwm.completed_size_change(actor);
actor.__animationInfo = { clone: actorClone,
oldRect: oldFrameRect };
actor.__fullscreenInfo = { clone: actorClone,
oldRect: rect };
},
_sizeChangedWindow: function(shellwm, actor) {
if (!actor.__animationInfo)
if (!actor.__fullscreenInfo)
return;
if (this._resizing.indexOf(actor) != -1)
return;
let actorClone = actor.__animationInfo.clone;
let actorClone = actor.__fullscreenInfo.clone;
let targetRect = actor.meta_window.get_frame_rect();
let sourceRect = actor.__animationInfo.oldRect;
let scaleX = targetRect.width / sourceRect.width;
let scaleY = targetRect.height / sourceRect.height;
let scaleX = targetRect.width / actorClone.width;
let scaleY = targetRect.height / actorClone.height;
this._resizing.push(actor);
@ -1362,8 +1365,15 @@ const WindowManager = new Lang.Class({
transition: 'easeOutQuad'
});
actor.translation_x = -targetRect.x + sourceRect.x;
actor.translation_y = -targetRect.y + sourceRect.y;
let monitor = Main.layoutManager.monitors[actor.meta_window.get_monitor()];
let oldRect = actor.__fullscreenInfo.oldRect;
if (oldRect) {
actor.translation_x = oldRect.x - monitor.x;
actor.translation_y = oldRect.y - monitor.y;
} else {
actor.translation_x = -(targetRect.x - monitor.x);
actor.translation_y = -(targetRect.y - monitor.y);
}
// Now set scale the actor to size it as the clone.
actor.scale_x = 1 / scaleX;
@ -1391,10 +1401,10 @@ const WindowManager = new Lang.Class({
shellwm.completed_size_change(actor);
},
_clearAnimationInfo: function(actor) {
if (actor.__animationInfo) {
actor.__animationInfo.clone.destroy();
delete actor.__animationInfo;
_clearFullscreenInfo: function(actor) {
if (actor.__fullscreenInfo) {
actor.__fullscreenInfo.clone.destroy();
delete actor.__fullscreenInfo;
return true;
}
return false;
@ -1407,13 +1417,13 @@ const WindowManager = new Lang.Class({
actor.scale_y = 1.0;
actor.translation_x = 0;
actor.translation_y = 0;
this._clearAnimationInfo(actor);
this._clearFullscreenInfo(actor);
}
},
_sizeChangeWindowOverwritten: function(shellwm, actor) {
if (this._removeEffect(this._resizing, actor))
this._clearAnimationInfo(actor);
this._clearFullscreenInfo(actor);
},
_hasAttachedDialogs: function(window, ignoreWindow) {

489
po/ca.po

File diff suppressed because it is too large Load Diff

220
po/da.po
View File

@ -21,8 +21,8 @@ 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-03-03 11:37+0000\n"
"PO-Revision-Date: 2017-03-07 20:04+0200\n"
"POT-Creation-Date: 2017-04-07 12:28+0000\n"
"PO-Revision-Date: 2017-04-08 16:17+0200\n"
"Last-Translator: Kris Thomsen\n"
"Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
"Language: da\n"
@ -347,7 +347,7 @@ msgstr "Der opstod in fejl ved indlæsning af indstillingsdialogen for %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 "Annullér"
@ -395,7 +395,7 @@ msgstr "Brugernavn: "
msgid "Login Window"
msgstr "Indlogningsvindue"
#: js/gdm/util.js:341
#: js/gdm/util.js:342
msgid "Authentication error"
msgstr "Godkendelsesfejl"
@ -404,7 +404,7 @@ msgstr "Godkendelsesfejl"
#. 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 "(eller indlæs fingeraftryk)"
@ -442,7 +442,6 @@ msgstr[0] "%d time siden"
msgstr[1] "%d timer siden"
#: js/misc/util.js:188
#| msgid "Yesterday, %H%M"
msgid "Yesterday"
msgstr "I går"
@ -462,8 +461,6 @@ msgstr[1] "%d uger siden"
#: js/misc/util.js:196
#, javascript-format
#| msgid "%d minute ago"
#| msgid_plural "%d minutes ago"
msgid "%d month ago"
msgid_plural "%d months ago"
msgstr[0] "%d måned siden"
@ -471,8 +468,6 @@ msgstr[1] "%d måneder siden"
#: js/misc/util.js:198
#, javascript-format
#| msgid "%d day ago"
#| msgid_plural "%d days ago"
msgid "%d year ago"
msgid_plural "%d years ago"
msgstr[0] "%d år siden"
@ -549,11 +544,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 "Hotspot-login"
#: 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."
@ -563,11 +558,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 "Forbyd adgang"
#: 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 "Giv adgang"
@ -767,7 +762,7 @@ msgid "Type again:"
msgstr "Indtast igen:"
#: 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 "Forbind"
@ -842,7 +837,7 @@ msgstr "Adgangskode til mobilt bredbåndsnetværk"
msgid "A password is required to connect to “%s”."
msgstr "Der kræves en adgangskode for at forbinde til “%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 "Netværkshåndtering"
@ -868,12 +863,12 @@ msgstr "Beklager, det fungerede ikke. Prøv igen."
#. 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 kalder sig nu %s"
#: js/ui/ctrlAltTab.js:29 js/ui/viewSelector.js:178
#: js/ui/ctrlAltTab.js:29 js/ui/viewSelector.js:179
msgid "Windows"
msgstr "Vinduer"
@ -942,21 +937,24 @@ msgid "%s, then %s, followed by %s later."
msgstr "%s, derefter %s, efterfulgt af %s."
#: js/ui/dateMenu.js:300
#| msgid "Searching…"
msgid "Select a location…"
msgstr "Vælg en placering …"
#: js/ui/dateMenu.js:303
msgid "Loading…"
msgstr "Indlæser …"
#. 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 "Føles som %s."
#: js/ui/dateMenu.js:309
#: js/ui/dateMenu.js:312
msgid "Go online for weather information"
msgstr "Gå online for at se information om vejret"
#: js/ui/dateMenu.js:311
#: js/ui/dateMenu.js:314
msgid "Weather information is currently unavailable"
msgstr "Vejrinformation er ikke tilgængelig i øjeblikket"
@ -1129,51 +1127,51 @@ msgstr "Skjul statusfelt"
msgid "Status Icons"
msgstr "Statusikoner"
#: js/ui/lookingGlass.js:643
#: js/ui/lookingGlass.js:642
msgid "No extensions installed"
msgstr "Ingen udvidelser er installeret"
#. 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 er ikke kommet med nogen fejl."
#: js/ui/lookingGlass.js:703
#: js/ui/lookingGlass.js:702
msgid "Hide Errors"
msgstr "Skjul fejl"
#: js/ui/lookingGlass.js:707 js/ui/lookingGlass.js:767
#: js/ui/lookingGlass.js:706 js/ui/lookingGlass.js:766
msgid "Show Errors"
msgstr "Vis fejl"
#: js/ui/lookingGlass.js:716
#: js/ui/lookingGlass.js:715
msgid "Enabled"
msgstr "Aktiveret"
#. 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 "Deaktiveret"
#: js/ui/lookingGlass.js:721
#: js/ui/lookingGlass.js:720
msgid "Error"
msgstr "Fejl"
#: js/ui/lookingGlass.js:723
#: js/ui/lookingGlass.js:722
msgid "Out of date"
msgstr "Udløbet"
#: js/ui/lookingGlass.js:725
#: js/ui/lookingGlass.js:724
msgid "Downloading"
msgstr "Henter"
#: js/ui/lookingGlass.js:749
#: js/ui/lookingGlass.js:748
msgid "View Source"
msgstr "Vis kilde"
#: js/ui/lookingGlass.js:758
#: js/ui/lookingGlass.js:757
msgid "Web Page"
msgstr "Webside"
@ -1207,47 +1205,47 @@ msgstr "Oversigt"
msgid "Type to search…"
msgstr "Skriv for at søge …"
#: js/ui/padOsd.js:37
#: js/ui/padOsd.js:103
msgid "New shortcut…"
msgstr "Ny genvej …"
#: js/ui/padOsd.js:86
#: js/ui/padOsd.js:152
msgid "Application defined"
msgstr "Program defineret"
#: js/ui/padOsd.js:87
#: js/ui/padOsd.js:153
msgid "Show on-screen help"
msgstr "Vis hjælp på skærmen"
#: js/ui/padOsd.js:88
#: js/ui/padOsd.js:154
msgid "Switch monitor"
msgstr "Skift skærm"
#: js/ui/padOsd.js:89
#: js/ui/padOsd.js:155
msgid "Assign keystroke"
msgstr "Tildel tastekombination"
#: js/ui/padOsd.js:143
#: js/ui/padOsd.js:209
msgid "Done"
msgstr "Færdig"
#: js/ui/padOsd.js:597
#: js/ui/padOsd.js:698
msgid "Edit…"
msgstr "Redigér …"
#: js/ui/padOsd.js:610 js/ui/padOsd.js:665
#: js/ui/padOsd.js:738 js/ui/padOsd.js:800
msgid "None"
msgstr "Ingen"
#: js/ui/padOsd.js:648
#: js/ui/padOsd.js:783
msgid "Press a button to configure"
msgstr "Tryk på en knap for at konfigurere"
#: js/ui/padOsd.js:649
#: js/ui/padOsd.js:784
msgid "Press Esc to exit"
msgstr "Tryk Esc for at afslutte"
#: js/ui/padOsd.js:652
#: js/ui/padOsd.js:787
msgid "Press any key to exit"
msgstr "Tryk en vilkårlig tast for at afslutte"
@ -1283,7 +1281,7 @@ msgstr "toggle-switch-intl"
msgid "Enter a Command"
msgstr "Indtast en kommando"
#: js/ui/runDialog.js:111 js/ui/windowMenu.js:162
#: js/ui/runDialog.js:111 js/ui/windowMenu.js:160
msgid "Close"
msgstr "Luk"
@ -1297,29 +1295,29 @@ msgstr "Genstarter …"
#. 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"
msgstr[0] "%d ny besked"
msgstr[1] "%d nye beskeder"
#: js/ui/screenShield.js:146
#: js/ui/screenShield.js:149
#, javascript-format
msgid "%d new notification"
msgid_plural "%d new notifications"
msgstr[0] "%d ny påmindelse"
msgstr[1] "%d nye påmindelser"
#: 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 "Lås"
#: js/ui/screenShield.js:707
#: js/ui/screenShield.js:715
msgid "GNOME needs to lock the screen"
msgstr "GNOME er nødt til at låse skærmen"
@ -1330,11 +1328,11 @@ msgstr "GNOME er nødt til at låse skærmen"
#.
#. 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 "Kunne ikke låse"
#: 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 "Lås blev blokeret af et program"
@ -1438,13 +1436,13 @@ msgstr "Slukket"
msgid "On"
msgstr "Tændt"
#: 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 "Tænd"
#: 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 "Sluk"
@ -1457,37 +1455,37 @@ msgstr "Lysstyrke"
msgid "Show Keyboard Layout"
msgstr "Vis tastaturlayout"
#: 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 "Placering aktiveret"
#: 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 "Slå fra"
#: js/ui/status/location.js:109
#: js/ui/status/location.js:90
msgid "Privacy Settings"
msgstr "Indstillinger for privatliv"
#: js/ui/status/location.js:214
#: js/ui/status/location.js:195
msgid "Location In Use"
msgstr "Placering i brug"
#: js/ui/status/location.js:218
#: js/ui/status/location.js:199
msgid "Location Disabled"
msgstr "Placering deaktiveret"
#: js/ui/status/location.js:219
#: js/ui/status/location.js:200
msgid "Enable"
msgstr "Slå til"
#. 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 "Giv %s adgang til din placering?"
#: 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 ""
"Placeringsadgang kan ændres når som helst via privatlivsindstillingerne."
@ -1497,7 +1495,7 @@ msgid "<unknown>"
msgstr "<ukendt>"
#. 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 er slukket"
@ -1523,7 +1521,7 @@ msgid "%s Disconnecting"
msgstr "%s frakobler"
#. 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 forbinder"
@ -1563,7 +1561,7 @@ msgid "Mobile Broadband Settings"
msgstr "Indstillinger for mobilbredbånd"
#. 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 "Hardwaren %s er deaktiveret"
@ -1579,122 +1577,122 @@ msgstr "%s er deaktiveret"
msgid "Connect to Internet"
msgstr "Forbind til internet"
#: js/ui/status/network.js:836
#: js/ui/status/network.js:844
msgid "Airplane Mode is On"
msgstr "Flytilstand er slået til"
#: js/ui/status/network.js:837
#: js/ui/status/network.js:845
msgid "Wi-Fi is disabled when airplane mode is on."
msgstr "Trådløs er deaktiveret når flytilstand er slået til."
#: js/ui/status/network.js:838
#: js/ui/status/network.js:846
msgid "Turn Off Airplane Mode"
msgstr "Slå flytilstand fra"
#: js/ui/status/network.js:847
#: js/ui/status/network.js:855
msgid "Wi-Fi is Off"
msgstr "Trådløs er slået fra"
#: 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 "Trådløs skal tændes for at kunne forbinde til et netværk."
#: js/ui/status/network.js:849
#: js/ui/status/network.js:857
msgid "Turn On Wi-Fi"
msgstr "Slå trådløs til"
#: js/ui/status/network.js:874
#: js/ui/status/network.js:882
msgid "Wi-Fi Networks"
msgstr "Trådløse netværk"
#: js/ui/status/network.js:876
#: js/ui/status/network.js:884
msgid "Select a network"
msgstr "Vælg et netværk"
#: js/ui/status/network.js:906
#: js/ui/status/network.js:914
msgid "No Networks"
msgstr "Ingen netværk"
#: 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 "Brug hardwareknap til at slukke"
#: js/ui/status/network.js:1194
#: js/ui/status/network.js:1202
msgid "Select Network"
msgstr "Vælg netværk"
#: js/ui/status/network.js:1200
#: js/ui/status/network.js:1208
msgid "Wi-Fi Settings"
msgstr "Indstillinger for trådløs"
#. 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 "Hotspottet %s er aktivt"
#. 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 er ikke forbundet"
#: js/ui/status/network.js:1434
#: js/ui/status/network.js:1446
msgid "connecting…"
msgstr "forbinder …"
#. 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 "godkendelse påkrævet"
#: js/ui/status/network.js:1439
#: js/ui/status/network.js:1451
msgid "connection failed"
msgstr "forbindelse mislykkedes"
#: 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 "Netværksindstillinger"
#: js/ui/status/network.js:1507
#: js/ui/status/network.js:1519
msgid "VPN Settings"
msgstr "Indstillinger for VPN"
#: 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 slukket"
#: 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 kablet forbindelse"
msgstr[1] "%s kablede forbindelser"
#: 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 trådløs forbindelse"
msgstr[1] "%s trådløse forbindelser"
#: 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-forbindelse"
msgstr[1] "%s modem-forbindelser"
#: js/ui/status/network.js:1786
#: js/ui/status/network.js:1798
msgid "Connection failed"
msgstr "Forbindelse mislykkedes"
#: js/ui/status/network.js:1787
#: js/ui/status/network.js:1799
msgid "Activation of network connection failed"
msgstr "Aktivering af netværksforbindelse mislykkedes"
@ -1792,11 +1790,11 @@ msgstr "Log ind som en anden bruger"
msgid "Unlock Window"
msgstr "Lås vindue op"
#: js/ui/viewSelector.js:182
#: js/ui/viewSelector.js:183
msgid "Applications"
msgstr "Programmer"
#: js/ui/viewSelector.js:186
#: js/ui/viewSelector.js:187
msgid "Search"
msgstr "Søg"
@ -1805,22 +1803,22 @@ msgstr "Søg"
msgid "“%s” is ready"
msgstr "“%s” er klar"
#: js/ui/windowManager.js:83
#: js/ui/windowManager.js:84
msgid "Do you want to keep these display settings?"
msgstr "Vil du beholde disse skærmindstillinger?"
#. 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 "Forkast indstillinger"
#: js/ui/windowManager.js:105
#: js/ui/windowManager.js:106
msgid "Keep Changes"
msgstr "Behold ændringer"
#: 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"
@ -1829,7 +1827,7 @@ msgstr[1] "Indstillingsændringer vil forkastes om %d sekunder"
#. 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"
@ -1866,35 +1864,35 @@ msgstr "Altid øverst"
msgid "Always on Visible Workspace"
msgstr "Altid på synligt arbejdsområde"
#: js/ui/windowMenu.js:105
#: js/ui/windowMenu.js:103
msgid "Move to Workspace Left"
msgstr "Flyt til venste arbejdsområde"
#: js/ui/windowMenu.js:110
#: js/ui/windowMenu.js:108
msgid "Move to Workspace Right"
msgstr "Flyt til højre arbejdsområde"
#: js/ui/windowMenu.js:115
#: js/ui/windowMenu.js:113
msgid "Move to Workspace Up"
msgstr "Flyt til arbejdsområdet ovenover"
#: js/ui/windowMenu.js:120
#: js/ui/windowMenu.js:118
msgid "Move to Workspace Down"
msgstr "Flyt til arbejdsområdet nedenunder"
#: js/ui/windowMenu.js:136
#: js/ui/windowMenu.js:134
msgid "Move to Monitor Up"
msgstr "Flyt til skærmen ovenover"
#: js/ui/windowMenu.js:142
#: js/ui/windowMenu.js:140
msgid "Move to Monitor Down"
msgstr "Flyt til skærmen nedenunder"
#: js/ui/windowMenu.js:148
#: js/ui/windowMenu.js:146
msgid "Move to Monitor Left"
msgstr "Flyt til venstre skærm"
#: js/ui/windowMenu.js:154
#: js/ui/windowMenu.js:152
msgid "Move to Monitor Right"
msgstr "Flyt til højre skærm"
@ -1929,19 +1927,19 @@ msgstr[1] "%u inputs"
msgid "System Sounds"
msgstr "Systemlyde"
#: src/main.c:381
#: src/main.c:372
msgid "Print version"
msgstr "Udskriv version"
#: src/main.c:387
#: src/main.c:378
msgid "Mode used by GDM for login screen"
msgstr "Tilstand brugt af GDM til indlogningskærm"
#: src/main.c:393
#: src/main.c:384
msgid "Use a specific mode, e.g. “gdm” for login screen"
msgstr "Brug en specifik tilstand, f.eks. “gdm” til logind-skærm"
#: src/main.c:399
#: src/main.c:390
msgid "List possible modes"
msgstr "Vis mulige tilstande"

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-05-04 22:42+0000\n"
"POT-Creation-Date: 2017-03-20 18:14+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:152
#: js/extensionPrefs/main.js:149
msgid "Shell Extensions"
msgstr "Shell-Erweiterungen"
@ -347,7 +347,7 @@ msgstr "Netzwerkanmeldung"
msgid "network-workgroup"
msgstr "network-workgroup"
#: js/extensionPrefs/main.js:120
#: js/extensionPrefs/main.js:117
#, 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 "Gerade eben"
msgstr "Genau jetzt"
#: 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:66
#: js/portalHelper/main.js:67
msgid "Hotspot Login"
msgstr "Hotspot-Anmeldung"
#: js/portalHelper/main.js:112
#: js/portalHelper/main.js:113
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:1759
#: js/ui/components/networkAgent.js:655 js/ui/status/network.js:1755
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:179
#: js/ui/ctrlAltTab.js:29 js/ui/viewSelector.js:178
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:1429 js/ui/status/nightLight.js:47
#: js/ui/status/network.js:1425 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:1446
#: js/ui/status/network.js:1442
msgid "connecting…"
msgstr "Verbindungsaufbau …"
#. Translators: this is for network connections that require some kind of key or password
#: js/ui/status/network.js:1449
#: js/ui/status/network.js:1445
msgid "authentication required"
msgstr "Anmeldung erforderlich"
#: js/ui/status/network.js:1451
#: js/ui/status/network.js:1447
msgid "connection failed"
msgstr "Verbindung gescheitert"
#: js/ui/status/network.js:1517 js/ui/status/network.js:1612
#: js/ui/status/network.js:1513 js/ui/status/network.js:1608
#: js/ui/status/rfkill.js:93
msgid "Network Settings"
msgstr "Netzwerkeinstellungen"
#: js/ui/status/network.js:1519
#: js/ui/status/network.js:1515
msgid "VPN Settings"
msgstr "VPN-Einstellungen"
#: js/ui/status/network.js:1538
#: js/ui/status/network.js:1534
msgid "VPN"
msgstr "VPN"
#: js/ui/status/network.js:1548
#: js/ui/status/network.js:1544
msgid "VPN Off"
msgstr "VPN ausgeschaltet"
#: js/ui/status/network.js:1643
#: js/ui/status/network.js:1639
#, javascript-format
msgid "%s Wired Connection"
msgid_plural "%s Wired Connections"
msgstr[0] "%s Kabelverbindung"
msgstr[1] "%s Kabelverbindungen"
#: js/ui/status/network.js:1647
#: js/ui/status/network.js:1643
#, 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:1651
#: js/ui/status/network.js:1647
#, 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:1798
#: js/ui/status/network.js:1794
msgid "Connection failed"
msgstr "Verbindung gescheitert"
#: js/ui/status/network.js:1799
#: js/ui/status/network.js:1795
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:183
#: js/ui/viewSelector.js:182
msgid "Applications"
msgstr "Anwendungen"
#: js/ui/viewSelector.js:187
#: js/ui/viewSelector.js:186
msgid "Search"
msgstr "Suchen"

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-05-18 18:56+0000\n"
"PO-Revision-Date: 2017-05-18 22:42+0200\n"
"POT-Creation-Date: 2017-04-09 11:12+0000\n"
"PO-Revision-Date: 2017-03-21 18:18+0100\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 2.0.2\n"
"X-Generator: Poedit 1.8.12\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:152
#: js/extensionPrefs/main.js:149
msgid "Shell Extensions"
msgstr "Проширења шкољке"
@ -328,7 +328,7 @@ msgstr "Мрежна пријава"
msgid "network-workgroup"
msgstr "network-workgroup"
#: js/extensionPrefs/main.js:120
#: js/extensionPrefs/main.js:117
#, 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:138
#: js/ui/appFavorites.js:140
#, javascript-format
msgid "%s has been added to your favorites."
msgstr "„%s“ је додат међу омиљене."
#: js/ui/appFavorites.js:172
#: js/ui/appFavorites.js:174
#, 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:621
#: js/ui/search.js:617
msgid "Searching…"
msgstr "Тражим…"
#: js/ui/search.js:623
#: js/ui/search.js:619
msgid "No results."
msgstr "Нема одговарајућих резултата."

View File

@ -11,19 +11,17 @@ 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-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"
"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"
"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"
@ -50,7 +48,7 @@ msgid "Open the application menu"
msgstr "Otvorite izbornik programa"
#: data/gnome-shell-extension-prefs.desktop.in.in:4
#: js/extensionPrefs/main.js:152
#: js/extensionPrefs/main.js:149
msgid "Shell Extensions"
msgstr "Proširenja školjke"
@ -328,7 +326,7 @@ msgstr "Mrežna prijava"
msgid "network-workgroup"
msgstr "network-workgroup"
#: js/extensionPrefs/main.js:120
#: js/extensionPrefs/main.js:117
#, 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“:"
@ -336,7 +334,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:947
#: js/ui/shellMountOperation.js:399 js/ui/status/network.js:939
msgid "Cancel"
msgstr "Otkaži"
@ -384,7 +382,7 @@ msgstr "Korisnik: "
msgid "Login Window"
msgstr "Prozor za prijavljivanje"
#: js/gdm/util.js:342
#: js/gdm/util.js:341
msgid "Authentication error"
msgstr "Greška potvrđivanja identiteta"
@ -393,7 +391,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:474
#: js/gdm/util.js:473
msgid "(or swipe finger)"
msgstr "(ili prevucite prst)"
@ -435,6 +433,7 @@ msgstr[2] "Pre %d sati"
msgstr[3] "Pre jedan sat"
#: js/misc/util.js:188
#| msgid "Yesterday, %H%M"
msgid "Yesterday"
msgstr "Juče"
@ -545,11 +544,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:66
#: js/portalHelper/main.js:67
msgid "Hotspot Login"
msgstr "Prijava na vruću tačku"
#: js/portalHelper/main.js:112
#: js/portalHelper/main.js:113
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."
@ -559,11 +558,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:405
#: js/ui/accessDialog.js:62 js/ui/status/location.js:427
msgid "Deny Access"
msgstr "Zabrani pristup"
#: js/ui/accessDialog.js:63 js/ui/status/location.js:408
#: js/ui/accessDialog.js:63 js/ui/status/location.js:430
msgid "Grant Access"
msgstr "Dozvoli pristup"
@ -763,7 +762,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:950
#: js/ui/status/network.js:366 js/ui/status/network.js:942
msgid "Connect"
msgstr "Poveži se"
@ -837,7 +836,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:1759
#: js/ui/components/networkAgent.js:655 js/ui/status/network.js:1747
msgid "Network Manager"
msgstr "Upravnik mreže"
@ -863,12 +862,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:799
#: js/ui/components/telepathyClient.js:767
#, 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:179
#: js/ui/ctrlAltTab.js:29 js/ui/viewSelector.js:178
msgid "Windows"
msgstr "Prozori"
@ -934,27 +933,24 @@ msgstr "%s, zatim %s kasnije."
#: js/ui/dateMenu.js:293
#, javascript-format
msgid "%s, then %s, followed by %s later."
msgstr "%s, zatim %s, a kasnije %s."
msgstr "%s, zatim %s, kasnije praćeno %s."
#: js/ui/dateMenu.js:300
msgid "Select a location…"
msgstr "Izaberite mesto…"
#: js/ui/dateMenu.js:303
#| msgid "Searching…"
msgid "Loading…"
msgstr "Učitavam…"
#. Translators: %s is a temperature with unit, e.g. "23℃"
#: js/ui/dateMenu.js:309
#: js/ui/dateMenu.js:306
#, javascript-format
msgid "Feels like %s."
msgstr "Oseća se kao %s."
#: js/ui/dateMenu.js:312
#: js/ui/dateMenu.js:309
msgid "Go online for weather information"
msgstr "Idite na mrežu za podatke o vremenskoj prognozi."
#: js/ui/dateMenu.js:314
#: js/ui/dateMenu.js:311
msgid "Weather information is currently unavailable"
msgstr "Podaci o vremenskoj prognozi trenutno nisu dostupni."
@ -1139,51 +1135,51 @@ msgstr "Sakrij kasetu"
msgid "Status Icons"
msgstr "Ikonice stanja"
#: js/ui/lookingGlass.js:642
#: js/ui/lookingGlass.js:643
msgid "No extensions installed"
msgstr "Nisu instalirana proširenja"
#. Translators: argument is an extension UUID.
#: js/ui/lookingGlass.js:696
#: js/ui/lookingGlass.js:697
#, javascript-format
msgid "%s has not emitted any errors."
msgstr "%s nije objavio nikakve greške."
#: js/ui/lookingGlass.js:702
#: js/ui/lookingGlass.js:703
msgid "Hide Errors"
msgstr "Sakrij greške"
#: js/ui/lookingGlass.js:706 js/ui/lookingGlass.js:766
#: js/ui/lookingGlass.js:707 js/ui/lookingGlass.js:767
msgid "Show Errors"
msgstr "Prikažite greške"
#: js/ui/lookingGlass.js:715
#: js/ui/lookingGlass.js:716
msgid "Enabled"
msgstr "Uključeno"
#. translators:
#. * The device has been disabled
#: js/ui/lookingGlass.js:718 src/gvc/gvc-mixer-control.c:1866
#: js/ui/lookingGlass.js:719 src/gvc/gvc-mixer-control.c:1866
msgid "Disabled"
msgstr "Isključeno"
#: js/ui/lookingGlass.js:720
#: js/ui/lookingGlass.js:721
msgid "Error"
msgstr "Greška"
#: js/ui/lookingGlass.js:722
#: js/ui/lookingGlass.js:723
msgid "Out of date"
msgstr "Izvan datuma"
#: js/ui/lookingGlass.js:724
#: js/ui/lookingGlass.js:725
msgid "Downloading"
msgstr "Preuzimam"
#: js/ui/lookingGlass.js:748
#: js/ui/lookingGlass.js:749
msgid "View Source"
msgstr "Prikaži kod"
#: js/ui/lookingGlass.js:757
#: js/ui/lookingGlass.js:758
msgid "Web Page"
msgstr "Veb stranica"
@ -1217,47 +1213,47 @@ msgstr "Pregled"
msgid "Type to search…"
msgstr "Upišite tekst za pretragu…"
#: js/ui/padOsd.js:103
#: js/ui/padOsd.js:37
msgid "New shortcut…"
msgstr "Nova prečica…"
#: js/ui/padOsd.js:152
#: js/ui/padOsd.js:86
msgid "Application defined"
msgstr "Definisani program"
#: js/ui/padOsd.js:153
#: js/ui/padOsd.js:87
msgid "Show on-screen help"
msgstr "Prikaži pomoć na ekranu"
#: js/ui/padOsd.js:154
#: js/ui/padOsd.js:88
msgid "Switch monitor"
msgstr "Promeni monitor"
#: js/ui/padOsd.js:155
#: js/ui/padOsd.js:89
msgid "Assign keystroke"
msgstr "Dodeli taster"
#: js/ui/padOsd.js:209
#: js/ui/padOsd.js:143
msgid "Done"
msgstr "Gotovo"
#: js/ui/padOsd.js:698
#: js/ui/padOsd.js:597
msgid "Edit…"
msgstr "Uredi…"
#: js/ui/padOsd.js:738 js/ui/padOsd.js:800
#: js/ui/padOsd.js:610 js/ui/padOsd.js:665
msgid "None"
msgstr "Ništa"
#: js/ui/padOsd.js:783
#: js/ui/padOsd.js:648
msgid "Press a button to configure"
msgstr "Pritisnite dugme da podesite"
#: js/ui/padOsd.js:784
#: js/ui/padOsd.js:649
msgid "Press Esc to exit"
msgstr "Pritisnite „Esc“ da izađete"
#: js/ui/padOsd.js:787
#: js/ui/padOsd.js:652
msgid "Press any key to exit"
msgstr "Pritisnite neki taster da izađete"
@ -1293,7 +1289,7 @@ msgstr "toggle-switch-intl"
msgid "Enter a Command"
msgstr "Unesite naredbu"
#: js/ui/runDialog.js:111 js/ui/windowMenu.js:160
#: js/ui/runDialog.js:111 js/ui/windowMenu.js:162
msgid "Close"
msgstr "Zatvori"
@ -1307,11 +1303,11 @@ msgstr "Ponovno pokrećem…"
#. Translators: This is a time format for a date in
#. long format
#: js/ui/screenShield.js:88
#: js/ui/screenShield.js:85
msgid "%A, %B %d"
msgstr "%A, %d. %B"
#: js/ui/screenShield.js:147
#: js/ui/screenShield.js:144
#, javascript-format
msgid "%d new message"
msgid_plural "%d new messages"
@ -1320,7 +1316,7 @@ msgstr[1] "%d nove poruke"
msgstr[2] "%d novih poruka"
msgstr[3] "%d nova poruka"
#: js/ui/screenShield.js:149
#: js/ui/screenShield.js:146
#, javascript-format
msgid "%d new notification"
msgid_plural "%d new notifications"
@ -1329,11 +1325,11 @@ msgstr[1] "%d nova obaveštenja"
msgstr[2] "%d novih obaveštenja"
msgstr[3] "%d novo obaveštenje"
#: js/ui/screenShield.js:452 js/ui/status/system.js:409
#: js/ui/screenShield.js:449 js/ui/status/system.js:409
msgid "Lock"
msgstr "Zaključaj"
#: js/ui/screenShield.js:715
#: js/ui/screenShield.js:707
msgid "GNOME needs to lock the screen"
msgstr "Gnom mora da zaključa ekran"
@ -1344,19 +1340,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:836 js/ui/screenShield.js:1308
#: js/ui/screenShield.js:828 js/ui/screenShield.js:1295
msgid "Unable to lock"
msgstr "Ne mogu da zaključam"
#: js/ui/screenShield.js:837 js/ui/screenShield.js:1309
#: js/ui/screenShield.js:829 js/ui/screenShield.js:1296
msgid "Lock was blocked by an application"
msgstr "Neki program je blokirao zaključavanje"
#: js/ui/search.js:621
#: js/ui/search.js:617
msgid "Searching…"
msgstr "Tražim…"
#: js/ui/search.js:623
#: js/ui/search.js:619
msgid "No results."
msgstr "Nema odgovarajućih rezultata."
@ -1454,13 +1450,13 @@ msgstr "Isklj."
msgid "On"
msgstr "Uklj."
#: js/ui/status/bluetooth.js:142 js/ui/status/network.js:1310
#: js/ui/status/bluetooth.js:142 js/ui/status/network.js:1302
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:1310
#: js/ui/status/network.js:1429 js/ui/status/nightLight.js:47
#: 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/rfkill.js:90 js/ui/status/rfkill.js:117
msgid "Turn Off"
msgstr "Isključi"
@ -1473,37 +1469,37 @@ msgstr "Osvetljenost"
msgid "Show Keyboard Layout"
msgstr "Pokaži raspored tastature"
#: js/ui/status/location.js:88 js/ui/status/location.js:196
#: js/ui/status/location.js:107 js/ui/status/location.js:215
msgid "Location Enabled"
msgstr "Određivanje mesta uključeno"
#: js/ui/status/location.js:89 js/ui/status/location.js:197
#: js/ui/status/location.js:108 js/ui/status/location.js:216
msgid "Disable"
msgstr "Isključi"
#: js/ui/status/location.js:90
#: js/ui/status/location.js:109
msgid "Privacy Settings"
msgstr "Podešavanja privatnosti"
#: js/ui/status/location.js:195
#: js/ui/status/location.js:214
msgid "Location In Use"
msgstr "Određivanje mesta se koristi"
#: js/ui/status/location.js:199
#: js/ui/status/location.js:218
msgid "Location Disabled"
msgstr "Određivanje mesta isključeno"
#: js/ui/status/location.js:200
#: js/ui/status/location.js:219
msgid "Enable"
msgstr "Uključi"
#. Translators: %s is an application name
#: js/ui/status/location.js:414
#: js/ui/status/location.js:436
#, javascript-format
msgid "Give %s access to your location?"
msgstr "Da li da „%s“ dam pristup vašem mestu?"
#: js/ui/status/location.js:416
#: js/ui/status/location.js:438
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 "
@ -1514,7 +1510,7 @@ msgid "<unknown>"
msgstr "<nepoznato>"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:465 js/ui/status/network.js:1339
#: js/ui/status/network.js:465 js/ui/status/network.js:1331
#, javascript-format
msgid "%s Off"
msgstr "%s isključeno"
@ -1540,7 +1536,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:1331
#: js/ui/status/network.js:483 js/ui/status/network.js:1323
#, javascript-format
msgid "%s Connecting"
msgstr "%s povezivanje u toku"
@ -1580,7 +1576,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:1336
#: js/ui/status/network.js:602 js/ui/status/network.js:1328
#, javascript-format
msgid "%s Hardware Disabled"
msgstr "%s uređaj isključen"
@ -1596,97 +1592,97 @@ msgstr "%s isključeno"
msgid "Connect to Internet"
msgstr "Poveži se na Internet"
#: js/ui/status/network.js:844
#: js/ui/status/network.js:836
msgid "Airplane Mode is On"
msgstr "Avionski režim rada je uključen"
#: js/ui/status/network.js:845
#: js/ui/status/network.js:837
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:846
#: js/ui/status/network.js:838
msgid "Turn Off Airplane Mode"
msgstr "Isključi avionski režim rada"
#: js/ui/status/network.js:855
#: js/ui/status/network.js:847
msgid "Wi-Fi is Off"
msgstr "Bežična veza je isključena"
#: js/ui/status/network.js:856
#: js/ui/status/network.js:848
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:857
#: js/ui/status/network.js:849
msgid "Turn On Wi-Fi"
msgstr "Uključi bežičnu vezu"
#: js/ui/status/network.js:882
#: js/ui/status/network.js:874
msgid "Wi-Fi Networks"
msgstr "Bežične mreže"
#: js/ui/status/network.js:884
#: js/ui/status/network.js:876
msgid "Select a network"
msgstr "Izaberite mrežu"
#: js/ui/status/network.js:914
#: js/ui/status/network.js:906
msgid "No Networks"
msgstr "Nema mreža"
#: js/ui/status/network.js:935 js/ui/status/rfkill.js:115
#: js/ui/status/network.js:927 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:1202
#: js/ui/status/network.js:1194
msgid "Select Network"
msgstr "Izaberi mrežu"
#: js/ui/status/network.js:1208
#: js/ui/status/network.js:1200
msgid "Wi-Fi Settings"
msgstr "Podešavanja bežične veze"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:1327
#: js/ui/status/network.js:1319
#, javascript-format
msgid "%s Hotspot Active"
msgstr "%s hotspot uključen"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:1342
#: js/ui/status/network.js:1334
#, javascript-format
msgid "%s Not Connected"
msgstr "%s nepovezano"
#: js/ui/status/network.js:1446
#: js/ui/status/network.js:1434
msgid "connecting…"
msgstr "povezujem se…"
#. Translators: this is for network connections that require some kind of key or password
#: js/ui/status/network.js:1449
#: js/ui/status/network.js:1437
msgid "authentication required"
msgstr "potrebna je prijava"
#: js/ui/status/network.js:1451
#: js/ui/status/network.js:1439
msgid "connection failed"
msgstr "povezivanje nije uspelo"
#: js/ui/status/network.js:1517 js/ui/status/network.js:1612
#: js/ui/status/network.js:1505 js/ui/status/network.js:1600
#: js/ui/status/rfkill.js:93
msgid "Network Settings"
msgstr "Podešavanja mreže"
#: js/ui/status/network.js:1519
#: js/ui/status/network.js:1507
msgid "VPN Settings"
msgstr "VPN podešavanja"
#: js/ui/status/network.js:1538
#: js/ui/status/network.js:1526
msgid "VPN"
msgstr "VPN"
#: js/ui/status/network.js:1548
#: js/ui/status/network.js:1536
msgid "VPN Off"
msgstr "Isključi VPN"
#: js/ui/status/network.js:1643
#: js/ui/status/network.js:1631
#, javascript-format
msgid "%s Wired Connection"
msgid_plural "%s Wired Connections"
@ -1695,7 +1691,7 @@ msgstr[1] "%s žičane veze"
msgstr[2] "%s žičanih veza"
msgstr[3] "%s žičana veza"
#: js/ui/status/network.js:1647
#: js/ui/status/network.js:1635
#, javascript-format
msgid "%s Wi-Fi Connection"
msgid_plural "%s Wi-Fi Connections"
@ -1704,7 +1700,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:1651
#: js/ui/status/network.js:1639
#, javascript-format
msgid "%s Modem Connection"
msgid_plural "%s Modem Connections"
@ -1713,11 +1709,11 @@ msgstr[1] "%s modemske veze"
msgstr[2] "%s modemskih veza"
msgstr[3] "%s modemska veza"
#: js/ui/status/network.js:1798
#: js/ui/status/network.js:1786
msgid "Connection failed"
msgstr "Povezivanje nije uspelo"
#: js/ui/status/network.js:1799
#: js/ui/status/network.js:1787
msgid "Activation of network connection failed"
msgstr "Aktiviranje mrežne veze nije uspelo"
@ -1815,11 +1811,11 @@ msgstr "Prijavite se kao drugi korisnik"
msgid "Unlock Window"
msgstr "Otključaj prozor"
#: js/ui/viewSelector.js:183
#: js/ui/viewSelector.js:182
msgid "Applications"
msgstr "Programi"
#: js/ui/viewSelector.js:187
#: js/ui/viewSelector.js:186
msgid "Search"
msgstr "Traži"
@ -1828,22 +1824,22 @@ msgstr "Traži"
msgid "“%s” is ready"
msgstr "„%s“ je spreman"
#: js/ui/windowManager.js:84
#: js/ui/windowManager.js:83
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:103
#: js/ui/windowManager.js:102
msgid "Revert Settings"
msgstr "Vrati podešavanja"
#: js/ui/windowManager.js:106
#: js/ui/windowManager.js:105
msgid "Keep Changes"
msgstr "Zadrži izmene"
#: js/ui/windowManager.js:124
#: js/ui/windowManager.js:123
#, javascript-format
msgid "Settings changes will revert in %d second"
msgid_plural "Settings changes will revert in %d seconds"
@ -1854,7 +1850,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:679
#: js/ui/windowManager.js:678
#, javascript-format
msgid "%d × %d"
msgstr "%d × %d"
@ -1891,35 +1887,35 @@ msgstr "Uvek na vrhu"
msgid "Always on Visible Workspace"
msgstr "Uvek na prikazanom radnom prostoru"
#: js/ui/windowMenu.js:103
#: js/ui/windowMenu.js:105
msgid "Move to Workspace Left"
msgstr "Premesti na levi radni prostor"
#: js/ui/windowMenu.js:108
#: js/ui/windowMenu.js:110
msgid "Move to Workspace Right"
msgstr "Premesti na desni radni prostor"
#: js/ui/windowMenu.js:113
#: js/ui/windowMenu.js:115
msgid "Move to Workspace Up"
msgstr "Premesti na radni prostor gore"
#: js/ui/windowMenu.js:118
#: js/ui/windowMenu.js:120
msgid "Move to Workspace Down"
msgstr "Premesti na radni prostor dole"
#: js/ui/windowMenu.js:134
#: js/ui/windowMenu.js:136
msgid "Move to Monitor Up"
msgstr "Premesti na gornji radni prostor"
#: js/ui/windowMenu.js:140
#: js/ui/windowMenu.js:142
msgid "Move to Monitor Down"
msgstr "Premesti na donji radni prostor"
#: js/ui/windowMenu.js:146
#: js/ui/windowMenu.js:148
msgid "Move to Monitor Left"
msgstr "Premesti ekran ulevo"
#: js/ui/windowMenu.js:152
#: js/ui/windowMenu.js:154
msgid "Move to Monitor Right"
msgstr "Premesti ekran udesno"
@ -1958,19 +1954,19 @@ msgstr[3] "%u ulaz"
msgid "System Sounds"
msgstr "Sistemski zvuci"
#: src/main.c:372
#: src/main.c:381
msgid "Print version"
msgstr "Ispisuje izdanje"
#: src/main.c:378
#: src/main.c:387
msgid "Mode used by GDM for login screen"
msgstr "Koji režim koristi GDM za ekran prijavljivanja"
#: src/main.c:384
#: src/main.c:393
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:390
#: src/main.c:399
msgid "List possible modes"
msgstr "Ispisuje moguće režime"

397
po/tr.po
View File

@ -9,23 +9,22 @@
# 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-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"
"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"
"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: Gtranslator 2.91.7\n"
"X-Generator: Poedit 1.8.9\n"
"X-Project-Style: gnome\n"
#: data/50-gnome-shell-system.xml:6
@ -53,7 +52,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:152
#: js/extensionPrefs/main.js:149
msgid "Shell Extensions"
msgstr "Kabuk Uzantıları"
@ -340,7 +339,7 @@ msgstr "Ağ Girişi"
msgid "network-workgroup"
msgstr "network-workgroup"
#: js/extensionPrefs/main.js:120
#: js/extensionPrefs/main.js:117
#, 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:"
@ -348,7 +347,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:947
#: js/ui/shellMountOperation.js:399 js/ui/status/network.js:939
msgid "Cancel"
msgstr "İptal"
@ -396,7 +395,7 @@ msgstr "Kullanıcı Adı: "
msgid "Login Window"
msgstr "Oturum Açma Penceresi"
#: js/gdm/util.js:342
#: js/gdm/util.js:341
msgid "Authentication error"
msgstr "Kimlik doğrulama hatası"
@ -405,85 +404,40 @@ 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:474
#: js/gdm/util.js:473
msgid "(or swipe finger)"
msgstr "(ya da parmak izi okutun)"
#: js/misc/util.js:122
#: js/misc/util.js:121
msgid "Command not found"
msgstr "Komut bulunamadı"
#. Replace "Error invoking GLib.shell_parse_argv: " with
#. something nicer
#: js/misc/util.js:155
#: js/misc/util.js:154
msgid "Could not parse command:"
msgstr "Komut işlenemedi:"
#: js/misc/util.js:163
#: js/misc/util.js:162
#, javascript-format
msgid "Execution of “%s” failed:"
msgstr "“%s” çalıştırılması başarısız:"
#: 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
#: js/misc/util.js:193
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:235
#: js/misc/util.js:199
#, 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:241
#: js/misc/util.js:205
#, no-c-format
msgid "%A, %H%M"
msgstr "%A, %H%M"
@ -491,7 +445,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:247
#: js/misc/util.js:211
#, no-c-format
msgid "%B %d, %H%M"
msgstr "%d %B, %H%M"
@ -499,26 +453,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:253
#: js/misc/util.js:217
#, no-c-format
msgid "%B %d %Y, %H%M"
msgstr "%d %B %Y, %H%M"
#. Translators: Time in 12h format
#: js/misc/util.js:258
#: js/misc/util.js:222
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:264
#: js/misc/util.js:228
#, 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:270
#: js/misc/util.js:234
#, no-c-format
msgid "%A, %l%M %p"
msgstr "%A, %l%M %p"
@ -526,7 +480,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:276
#: js/misc/util.js:240
#, no-c-format
msgid "%B %d, %l%M %p"
msgstr "%d %B, %l%M %p"
@ -534,17 +488,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:282
#: js/misc/util.js:246
#, 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:66
#: js/portalHelper/main.js:67
msgid "Hotspot Login"
msgstr "Erişim Noktası Girişi"
#: js/portalHelper/main.js:112
#: js/portalHelper/main.js:113
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."
@ -555,11 +509,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:405
#: js/ui/accessDialog.js:62 js/ui/status/location.js:427
msgid "Deny Access"
msgstr "Erişimi Reddet"
#: js/ui/accessDialog.js:63 js/ui/status/location.js:408
#: js/ui/accessDialog.js:63 js/ui/status/location.js:430
msgid "Grant Access"
msgstr "Erişime İzin Ver"
@ -710,33 +664,37 @@ 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:729
#: js/ui/calendar.js:721
msgctxt "event list time"
msgid "All Day"
msgstr "Tüm Gün"
#: js/ui/calendar.js:862
#: js/ui/calendar.js:836
msgid "Events"
msgstr "Olaylar"
#: js/ui/calendar.js:845
msgctxt "calendar heading"
msgid "%A, %B %d"
msgstr "%A, %d %B"
#: js/ui/calendar.js:866
#: js/ui/calendar.js:849
msgctxt "calendar heading"
msgid "%A, %B %d, %Y"
msgstr "%A, %d %B, %Y"
#: js/ui/calendar.js:1086
#: js/ui/calendar.js:931
msgid "Notifications"
msgstr "Bildirimler"
#: js/ui/calendar.js:1082
msgid "No Notifications"
msgstr "Bildirim Yok"
#: js/ui/calendar.js:1089
#: js/ui/calendar.js:1085
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ı"
@ -759,7 +717,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:950
#: js/ui/status/network.js:366 js/ui/status/network.js:942
msgid "Connect"
msgstr "Bağlan"
@ -834,7 +792,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:1759
#: js/ui/components/networkAgent.js:655 js/ui/status/network.js:1747
msgid "Network Manager"
msgstr "Ağ Yöneticisi"
@ -860,12 +818,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:799
#: js/ui/components/telepathyClient.js:765
#, javascript-format
msgid "%s is now known as %s"
msgstr "%s, şimdi %s olarak biliniyor"
#: js/ui/ctrlAltTab.js:29 js/ui/viewSelector.js:179
#: js/ui/ctrlAltTab.js:29 js/ui/viewSelector.js:178
msgid "Windows"
msgstr "Pencereler"
@ -882,7 +840,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:75
#: js/ui/dateMenu.js:73
msgid "%B %e %Y"
msgstr "%e %B %Y"
@ -890,71 +848,18 @@ 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:82
#: js/ui/dateMenu.js:80
msgid "%A %B %e %Y"
msgstr "%e %B %Y %A"
#: js/ui/dateMenu.js:144
#: js/ui/dateMenu.js:142
msgid "Add world clocks…"
msgstr "Dünya saatlerini ekle…"
#: js/ui/dateMenu.js:145
#: js/ui/dateMenu.js:143
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"
@ -1119,66 +1024,74 @@ msgstr "Tepsiyi gizle"
msgid "Status Icons"
msgstr "Durum Simgeleri"
#: js/ui/lookingGlass.js:642
#: js/ui/lookingGlass.js:643
msgid "No extensions installed"
msgstr "Herhangi bir uzantı kurulu değil"
#. Translators: argument is an extension UUID.
#: js/ui/lookingGlass.js:696
#: js/ui/lookingGlass.js:697
#, javascript-format
msgid "%s has not emitted any errors."
msgstr "%s, herhangi bir hata vermedi."
#: js/ui/lookingGlass.js:702
#: js/ui/lookingGlass.js:703
msgid "Hide Errors"
msgstr "Hataları Gizle"
#: js/ui/lookingGlass.js:706 js/ui/lookingGlass.js:766
#: js/ui/lookingGlass.js:707 js/ui/lookingGlass.js:767
msgid "Show Errors"
msgstr "Hataları Göster"
#: js/ui/lookingGlass.js:715
#: js/ui/lookingGlass.js:716
msgid "Enabled"
msgstr "Etkin"
#. translators:
#. * The device has been disabled
#: js/ui/lookingGlass.js:718 src/gvc/gvc-mixer-control.c:1866
#: js/ui/lookingGlass.js:719 src/gvc/gvc-mixer-control.c:1866
msgid "Disabled"
msgstr "Devre dışı"
#: js/ui/lookingGlass.js:720
#: js/ui/lookingGlass.js:721
msgid "Error"
msgstr "Hata"
#: js/ui/lookingGlass.js:722
#: js/ui/lookingGlass.js:723
msgid "Out of date"
msgstr "Güncel değil"
#: js/ui/lookingGlass.js:724
#: js/ui/lookingGlass.js:725
msgid "Downloading"
msgstr "İndiriliyor"
#: js/ui/lookingGlass.js:748
#: js/ui/lookingGlass.js:749
msgid "View Source"
msgstr "Kaynağı Görüntüle"
#: js/ui/lookingGlass.js:757
#: js/ui/lookingGlass.js:758
msgid "Web Page"
msgstr "Web Sayfası"
#: js/ui/messageTray.js:1493
#: js/ui/messageList.js:543
msgid "Clear section"
msgstr "Bölümü temizle"
#: js/ui/messageTray.js:1486
msgid "System Information"
msgstr "Sistem Bilgisi"
#: js/ui/mpris.js:211
#: js/ui/mpris.js:194
msgid "Unknown artist"
msgstr "Bilinmeyen sanatçı"
#: js/ui/mpris.js:212
#: js/ui/mpris.js:195
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"
@ -1197,47 +1110,47 @@ msgstr "Genel Görünüm"
msgid "Type to search…"
msgstr "Aramak için buraya yazın..."
#: js/ui/padOsd.js:103
#: js/ui/padOsd.js:37
msgid "New shortcut…"
msgstr "Yeni kısayol…"
#: js/ui/padOsd.js:152
#: js/ui/padOsd.js:86
msgid "Application defined"
msgstr "Uygulama tanımlı"
#: js/ui/padOsd.js:153
#: js/ui/padOsd.js:87
msgid "Show on-screen help"
msgstr "Ekranda yardımı göster"
#: js/ui/padOsd.js:154
#: js/ui/padOsd.js:88
msgid "Switch monitor"
msgstr "Monitör değiştir"
#: js/ui/padOsd.js:155
#: js/ui/padOsd.js:89
msgid "Assign keystroke"
msgstr "Tuş vuruşu ata"
#: js/ui/padOsd.js:209
#: js/ui/padOsd.js:143
msgid "Done"
msgstr "Bitti"
#: js/ui/padOsd.js:698
#: js/ui/padOsd.js:597
msgid "Edit…"
msgstr "Düzenle…"
#: js/ui/padOsd.js:738 js/ui/padOsd.js:800
#: js/ui/padOsd.js:610 js/ui/padOsd.js:665
msgid "None"
msgstr "Yok"
#: js/ui/padOsd.js:783
#: js/ui/padOsd.js:648
msgid "Press a button to configure"
msgstr "Yapılandırmak için bir düğmeye basın"
#: js/ui/padOsd.js:784
#: js/ui/padOsd.js:649
msgid "Press Esc to exit"
msgstr "Çıkmak için Esc'ye basın"
#: js/ui/padOsd.js:787
#: js/ui/padOsd.js:652
msgid "Press any key to exit"
msgstr "Çıkmak için herhangi bir tuşa basın"
@ -1273,7 +1186,7 @@ msgstr "toggle-switch-intl"
msgid "Enter a Command"
msgstr "Komut Gir"
#: js/ui/runDialog.js:111 js/ui/windowMenu.js:160
#: js/ui/runDialog.js:111 js/ui/windowMenu.js:162
msgid "Close"
msgstr "Kapat"
@ -1287,27 +1200,27 @@ msgstr "Yeniden başlatılıyor..."
#. Translators: This is a time format for a date in
#. long format
#: js/ui/screenShield.js:88
#: js/ui/screenShield.js:85
msgid "%A, %B %d"
msgstr "%d %B %A"
#: js/ui/screenShield.js:147
#: js/ui/screenShield.js:144
#, javascript-format
msgid "%d new message"
msgid_plural "%d new messages"
msgstr[0] "%d yeni ileti"
#: js/ui/screenShield.js:149
#: js/ui/screenShield.js:146
#, javascript-format
msgid "%d new notification"
msgid_plural "%d new notifications"
msgstr[0] "%d yeni bildirim"
#: js/ui/screenShield.js:452 js/ui/status/system.js:409
#: js/ui/screenShield.js:449 js/ui/status/system.js:409
msgid "Lock"
msgstr "Kilitle"
#: js/ui/screenShield.js:715
#: js/ui/screenShield.js:707
msgid "GNOME needs to lock the screen"
msgstr "GNOME'un ekranı kilitlemesi gerekiyor"
@ -1318,19 +1231,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:836 js/ui/screenShield.js:1308
#: js/ui/screenShield.js:828 js/ui/screenShield.js:1295
msgid "Unable to lock"
msgstr "Kilitlenemedi"
#: js/ui/screenShield.js:837 js/ui/screenShield.js:1309
#: js/ui/screenShield.js:829 js/ui/screenShield.js:1296
msgid "Lock was blocked by an application"
msgstr "Kilitleme bir uygulama tarafından engellendi"
#: js/ui/search.js:621
#: js/ui/search.js:617
msgid "Searching…"
msgstr "Aranıyor…"
#: js/ui/search.js:623
#: js/ui/search.js:619
msgid "No results."
msgstr "Sonuç yok."
@ -1425,13 +1338,13 @@ msgstr "Kapalı"
msgid "On"
msgstr "Açık"
#: js/ui/status/bluetooth.js:142 js/ui/status/network.js:1310
#: js/ui/status/bluetooth.js:142 js/ui/status/network.js:1302
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:1310
#: js/ui/status/network.js:1429 js/ui/status/nightLight.js:47
#: 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/rfkill.js:90 js/ui/status/rfkill.js:117
msgid "Turn Off"
msgstr "Kapat"
@ -1444,37 +1357,37 @@ msgstr "Parlaklık"
msgid "Show Keyboard Layout"
msgstr "Klavye Düzenini Göster"
#: js/ui/status/location.js:88 js/ui/status/location.js:196
#: js/ui/status/location.js:107 js/ui/status/location.js:215
msgid "Location Enabled"
msgstr "Konum Etkinleştirildi"
#: js/ui/status/location.js:89 js/ui/status/location.js:197
#: js/ui/status/location.js:108 js/ui/status/location.js:216
msgid "Disable"
msgstr "Devre Dışı Bırak"
#: js/ui/status/location.js:90
#: js/ui/status/location.js:109
msgid "Privacy Settings"
msgstr "Gizlilik Ayarları"
#: js/ui/status/location.js:195
#: js/ui/status/location.js:214
msgid "Location In Use"
msgstr "Konum Kullanımda"
#: js/ui/status/location.js:199
#: js/ui/status/location.js:218
msgid "Location Disabled"
msgstr "Konum Devre Dışı"
#: js/ui/status/location.js:200
#: js/ui/status/location.js:219
msgid "Enable"
msgstr "Etkinleştir"
#. Translators: %s is an application name
#: js/ui/status/location.js:414
#: js/ui/status/location.js:436
#, javascript-format
msgid "Give %s access to your location?"
msgstr "%s uygulaması konumunuza erişebilsin mi?"
#: js/ui/status/location.js:416
#: js/ui/status/location.js:438
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."
@ -1483,7 +1396,7 @@ msgid "<unknown>"
msgstr "<bilinmeyen>"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:465 js/ui/status/network.js:1339
#: js/ui/status/network.js:465 js/ui/status/network.js:1331
#, javascript-format
msgid "%s Off"
msgstr "%s Kapalı"
@ -1509,7 +1422,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:1331
#: js/ui/status/network.js:483 js/ui/status/network.js:1323
#, javascript-format
msgid "%s Connecting"
msgstr "%s Bağlanıyor"
@ -1549,7 +1462,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:1336
#: js/ui/status/network.js:602 js/ui/status/network.js:1328
#, javascript-format
msgid "%s Hardware Disabled"
msgstr "%s Donanımı Devre Dışı"
@ -1565,119 +1478,119 @@ msgstr "%s Devre Dışı"
msgid "Connect to Internet"
msgstr "İnternet'e Bağlan"
#: js/ui/status/network.js:844
#: js/ui/status/network.js:836
msgid "Airplane Mode is On"
msgstr "Uçak Kipi Açık"
#: js/ui/status/network.js:845
#: js/ui/status/network.js:837
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:846
#: js/ui/status/network.js:838
msgid "Turn Off Airplane Mode"
msgstr "Uçak Kipini Kapat"
#: js/ui/status/network.js:855
#: js/ui/status/network.js:847
msgid "Wi-Fi is Off"
msgstr "Kablosuz Ağ Kapalı"
#: js/ui/status/network.js:856
#: js/ui/status/network.js:848
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:857
#: js/ui/status/network.js:849
msgid "Turn On Wi-Fi"
msgstr "Kablosuz Ağı Aç"
#: js/ui/status/network.js:882
#: js/ui/status/network.js:874
msgid "Wi-Fi Networks"
msgstr "Kablosuz Ağlar"
#: js/ui/status/network.js:884
#: js/ui/status/network.js:876
msgid "Select a network"
msgstr "Bir ağ seçin"
#: js/ui/status/network.js:914
#: js/ui/status/network.js:906
msgid "No Networks"
msgstr "Ağ Yok"
#: js/ui/status/network.js:935 js/ui/status/rfkill.js:115
#: js/ui/status/network.js:927 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:1202
#: js/ui/status/network.js:1194
msgid "Select Network"
msgstr "Ağ Seç"
#: js/ui/status/network.js:1208
#: js/ui/status/network.js:1200
msgid "Wi-Fi Settings"
msgstr "Kablosuz Ağ Ayarları"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:1327
#: js/ui/status/network.js:1319
#, javascript-format
msgid "%s Hotspot Active"
msgstr "%s Erişim Noktası Etkin"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:1342
#: js/ui/status/network.js:1334
#, javascript-format
msgid "%s Not Connected"
msgstr "%s Bağlı Değil"
#: js/ui/status/network.js:1446
#: js/ui/status/network.js:1434
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:1449
#: js/ui/status/network.js:1437
msgid "authentication required"
msgstr "kimlik doğrulaması gerekli"
#: js/ui/status/network.js:1451
#: js/ui/status/network.js:1439
msgid "connection failed"
msgstr "bağlantı başarısız"
#: js/ui/status/network.js:1517 js/ui/status/network.js:1612
#: js/ui/status/network.js:1505 js/ui/status/network.js:1600
#: js/ui/status/rfkill.js:93
msgid "Network Settings"
msgstr "Ağ Ayarları"
#: js/ui/status/network.js:1519
#: js/ui/status/network.js:1507
msgid "VPN Settings"
msgstr "VPN Ayarları"
#: js/ui/status/network.js:1538
#: js/ui/status/network.js:1526
msgid "VPN"
msgstr "VPN"
#: js/ui/status/network.js:1548
#: js/ui/status/network.js:1536
msgid "VPN Off"
msgstr "VPN Kapalı"
#: js/ui/status/network.js:1643
#: js/ui/status/network.js:1631
#, javascript-format
msgid "%s Wired Connection"
msgid_plural "%s Wired Connections"
msgstr[0] "%s Kablolu Bağlantı"
#: js/ui/status/network.js:1647
#: js/ui/status/network.js:1635
#, 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:1651
#: js/ui/status/network.js:1639
#, javascript-format
msgid "%s Modem Connection"
msgid_plural "%s Modem Connections"
msgstr[0] "%s Modem Bağlantısı"
#: js/ui/status/network.js:1798
#: js/ui/status/network.js:1786
msgid "Connection failed"
msgstr "Bağlantı başarısız oldu"
#: js/ui/status/network.js:1799
#: js/ui/status/network.js:1787
msgid "Activation of network connection failed"
msgstr "Ağ bağlantısının etkinleştirilmesi başarısız oldu"
@ -1775,11 +1688,11 @@ msgstr "Başka kullanıcı olarak oturum aç"
msgid "Unlock Window"
msgstr "Kilit Açma Penceresi"
#: js/ui/viewSelector.js:183
#: js/ui/viewSelector.js:182
msgid "Applications"
msgstr "Uygulamalar"
#: js/ui/viewSelector.js:187
#: js/ui/viewSelector.js:186
msgid "Search"
msgstr "Ara"
@ -1788,22 +1701,22 @@ msgstr "Ara"
msgid "“%s” is ready"
msgstr "“%s” hazır"
#: js/ui/windowManager.js:84
#: js/ui/windowManager.js:83
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:103
#: js/ui/windowManager.js:102
msgid "Revert Settings"
msgstr "Ayarları Eski Haline Getir"
#: js/ui/windowManager.js:106
#: js/ui/windowManager.js:105
msgid "Keep Changes"
msgstr "Değişiklikleri Sakla"
#: js/ui/windowManager.js:124
#: js/ui/windowManager.js:123
#, javascript-format
msgid "Settings changes will revert in %d second"
msgid_plural "Settings changes will revert in %d seconds"
@ -1811,7 +1724,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:679
#: js/ui/windowManager.js:678
#, javascript-format
msgid "%d × %d"
msgstr "%d × %d"
@ -1848,35 +1761,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:103
#: js/ui/windowMenu.js:105
msgid "Move to Workspace Left"
msgstr "Soldaki Çalışma Alanına Taşı"
#: js/ui/windowMenu.js:108
#: js/ui/windowMenu.js:110
msgid "Move to Workspace Right"
msgstr "Sağdaki Çalışma Alanına Taşı"
#: js/ui/windowMenu.js:113
#: js/ui/windowMenu.js:115
msgid "Move to Workspace Up"
msgstr "Üstteki Çalışma Alanına Taşı"
#: js/ui/windowMenu.js:118
#: js/ui/windowMenu.js:120
msgid "Move to Workspace Down"
msgstr "Alttaki Çalışma Alanına Taşı"
#: js/ui/windowMenu.js:134
#: js/ui/windowMenu.js:136
msgid "Move to Monitor Up"
msgstr "Üstteki Monitöre Taşı"
#: js/ui/windowMenu.js:140
#: js/ui/windowMenu.js:142
msgid "Move to Monitor Down"
msgstr "Alttaki Monitöre Taşı"
#: js/ui/windowMenu.js:146
#: js/ui/windowMenu.js:148
msgid "Move to Monitor Left"
msgstr "Soldaki Monitöre Taşı"
#: js/ui/windowMenu.js:152
#: js/ui/windowMenu.js:154
msgid "Move to Monitor Right"
msgstr "Sağdaki Monitöre Taşı"
@ -1909,19 +1822,19 @@ msgstr[0] "%u Girdi"
msgid "System Sounds"
msgstr "Sistem Sesleri"
#: src/main.c:372
#: src/main.c:381
msgid "Print version"
msgstr "Sürümü yazdır"
#: src/main.c:378
#: src/main.c:387
msgid "Mode used by GDM for login screen"
msgstr "Oturum açma ekranında GDM tarafından kullanılan kip"
#: src/main.c:384
#: src/main.c:393
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:390
#: src/main.c:399
msgid "List possible modes"
msgstr "Mevcut kipleri listele"
@ -1947,18 +1860,6 @@ 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

@ -68,6 +68,7 @@ main(int argc, char **argv)
if (clutter_init (&argc, &argv) != CLUTTER_INIT_SUCCESS)
return 1;
g_object_set (clutter_settings_get_default (), "window-scaling-factor", 1, NULL);
gdk_x11_display_set_window_scale (gdk_display_get_default (), 1);
context = g_option_context_new (NULL);

View File

@ -22,7 +22,6 @@
#include <gdk/gdkx.h>
#include <gio/gio.h>
#include <girepository.h>
#include <meta/meta-backend.h>
#include <meta/display.h>
#include <meta/util.h>
#include <meta/meta-shaped-texture.h>
@ -834,38 +833,35 @@ global_stage_after_swap (gpointer data)
return TRUE;
}
static void
update_scaling_factor (ShellGlobal *global,
MetaBackend *backend)
static void
update_scale_factor (GtkSettings *settings,
GParamSpec *pspec,
gpointer data)
{
ShellGlobal *global = SHELL_GLOBAL (data);
ClutterStage *stage = CLUTTER_STAGE (global->stage);
StThemeContext *context = st_theme_context_get_for_stage (stage);
int scaling_factor;
GValue value = G_VALUE_INIT;
scaling_factor = meta_backend_get_ui_scaling_factor (backend);
g_object_set (context, "scale-factor", scaling_factor, NULL);
if (meta_is_wayland_compositor ())
g_value_init (&value, G_TYPE_INT);
if (gdk_screen_get_setting (global->gdk_screen, "gdk-window-scaling-factor", &value))
{
GtkSettings *settings = gtk_settings_get_default ();
int xft_dpi;
g_object_set (context, "scale-factor", g_value_get_int (&value), NULL);
if (meta_is_wayland_compositor ())
{
int xft_dpi;
g_object_get (settings, "gtk-xft-dpi", &xft_dpi, NULL);
g_object_get (settings, "gtk-xft-dpi", &xft_dpi, NULL);
g_object_set (clutter_settings_get_default (), "font-dpi", xft_dpi, NULL);
g_object_set (clutter_settings_get_default (), "font-dpi", xft_dpi, NULL);
}
}
/* Make sure clutter and gdk scaling stays disabled */
g_object_set (clutter_settings_get_default (), "window-scaling-factor", 1, NULL);
gdk_x11_display_set_window_scale (gdk_display_get_default (), 1);
}
static void
ui_scaling_factor_changed (MetaBackend *backend,
ShellGlobal *global)
{
update_scaling_factor (global, backend);
}
/* This is an IBus workaround. The flow of events with IBus is that every time
* it gets gets a key event, it:
*
@ -969,8 +965,6 @@ void
_shell_global_set_plugin (ShellGlobal *global,
MetaPlugin *plugin)
{
MetaBackend *backend;
g_return_if_fail (SHELL_IS_GLOBAL (global));
g_return_if_fail (global->plugin == NULL);
@ -1051,15 +1045,18 @@ _shell_global_set_plugin (ShellGlobal *global,
g_signal_connect (global->meta_display, "notify::focus-window",
G_CALLBACK (focus_window_changed), global);
backend = meta_get_backend ();
g_signal_connect (backend, "ui-scaling-factor-changed",
G_CALLBACK (ui_scaling_factor_changed), global);
/* gdk-window-scaling-factor is not exported to gtk-settings
* because it is handled inside gdk, so we use gtk-xft-dpi instead
* which also changes when the scale factor changes.
*/
g_signal_connect (gtk_settings_get_default (), "notify::gtk-xft-dpi",
G_CALLBACK (update_scale_factor), global);
gdk_event_handler_set (gnome_shell_gdk_event_handler, global, NULL);
global->focus_manager = st_focus_manager_get_for_stage (global->stage);
update_scaling_factor (global, meta_get_backend ());
update_scale_factor (gtk_settings_get_default (), NULL, global);
}
GjsContext *

View File

@ -23,6 +23,8 @@
#include <string.h>
#include <dbus/dbus-glib.h>
/* For use of unstable features in libsecret, until they stabilize */
#define SECRET_API_SUBJECT_TO_CHANGE
#include <libsecret/secret.h>
#include "shell-network-agent.h"

View File

@ -180,7 +180,7 @@ st_shadow_get_box (StShadow *shadow,
}
/**
* SECTION: st-shadow-helper
* SECTION:st-shadow-helper:
*
* An helper for implementing a drop shadow on a actor.
* The actor is expected to recreate the helper whenever its contents

View File

@ -1,6 +1,6 @@
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
// Test cases for MessageList markup parsing
// Test cases for Calendar 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 MessageList = imports.ui.messageList;
const Calendar = imports.ui.calendar;
// 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 MessageList = imports.ui.messageList;
function assertConverts(input, output) {
if (!output)
output = input;
let fixed = MessageList._fixMarkup(input, true);
let fixed = Calendar._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 = MessageList._fixMarkup(input, false);
let fixed = Calendar._fixMarkup(input, false);
JsUnit.assertEquals(output, fixed);
let parsed = false;