Compare commits

...

20 Commits

Author SHA1 Message Date
44fb014a0d Bump version to 3.25.1
Update NEWS.
2017-04-27 18:30:05 +02:00
8007f4dda3 docs: Fix typo 2017-04-27 18:30:05 +02:00
ff425d1db7 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 17:47:08 +02:00
9a65f20d91 Update Arabic translation 2017-04-24 16:40:38 +02:00
0770383f78 Fix to Catalan translation 2017-04-22 22:07:28 +02:00
06fdf2fdc8 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:18:23 +02:00
7a20683728 extensionPrefs: Fix enum member name 2017-04-20 17:35:35 +02:00
8e443a2aff 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-19 20:41:35 +03:00
fcbb942e24 loginDialog: Fix session button can be clicked
When session menu button is hidden, button can be clicked and show popup
menu.

https://bugzilla.gnome.org/show_bug.cgi?id=781482
2017-04-19 10:27:41 -04:00
1508d76d32 build: Require bash for pushd
If using sh, there's no pushd. Make autogen.sh execute with bash instead.
2017-04-15 00:00:54 -07:00
ef9dee2a05 Update Serbian translation 2017-04-13 00:09:44 +00:00
2714d8d0ce Update Italian translation
(cherry picked from commit 635bdea284)
2017-04-11 06:41:37 +00:00
243dae14ea background: Fix file check
The _animationFile property was removed in commit 8a4c862633 ...
2017-04-11 02:43:07 +02:00
2cce1b9ea0 appFavorites: Rename gnome-music.desktop
Recently Music gained a flatpak manifest inside the repo in bug 779905.
However that requires the desktop file to be properly named like
DBUS addresses are.

This patch renames the old Music desktop file to the new one.

https://bugzilla.gnome.org/show_bug.cgi?id=780157
2017-04-09 11:04:40 +02:00
89f4e983d6 Update Croatian translation
(cherry picked from commit c526413119)
2017-04-08 15:16:44 +00:00
f680cf6050 Update Greek translation 2017-04-08 15:07:01 +00:00
4cd4678194 Add ShowMonitorLabels2 D-Bus API
Add a new D-Bus method for setting the monitor labels. This new method
takes connector names instead of output ids for associating with actual
monitors.

https://bugzilla.gnome.org/show_bug.cgi?id=777732
2017-04-07 22:30:35 +08:00
082bc20bb9 shell-global: Get UI scaling factor from mutter
Let mutter determine the UI scale, while taking things like monitor
layout mode into consideration.

https://bugzilla.gnome.org/show_bug.cgi?id=777732
2017-04-07 22:30:35 +08:00
32ea7d763a Don't set clutters 'window-scaling-factor' property
It doesn't exist anymore.

https://bugzilla.gnome.org/show_bug.cgi?id=777732
2017-04-07 22:30:35 +08:00
44e80f4c46 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:17:59 +02:00
21 changed files with 1957 additions and 1424 deletions

29
NEWS
View File

@ -1,3 +1,32 @@
3.25.1
======
* Close Wifi selection dialog on lock [Florian; #780054]
* Fix DND over window previews in overview [Florian; #737166]
* Do not lock the screen when disabled by lockdown settings [Florian; #780212]
* 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]
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
Translations:
Marek Cernocky [cs], Piotr Drąg [pl], Anders Jonsson [sv], Stas Solovey [ru],
Rafael Fontenelle [pt_BR], Baurzhan Muftakhidinov [kk], Daniel Korostil [uk],
Kukuh Syafaat [id], Milo Casagrande [it], Jiri Grönroos [fi],
Daniel Mustieles [es], Balázs Úr [hu], Guillaume Bernard [fr],
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]
3.24.0 3.24.0
====== ======

View File

@ -1,4 +1,4 @@
#!/bin/sh #!/bin/bash
# Run this to generate all the initial makefiles, etc. # Run this to generate all the initial makefiles, etc.
srcdir=`dirname $0` srcdir=`dirname $0`

View File

@ -1,5 +1,5 @@
AC_PREREQ(2.63) AC_PREREQ(2.63)
AC_INIT([gnome-shell],[3.24.0],[https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell],[gnome-shell]) AC_INIT([gnome-shell],[3.25.1],[https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell],[gnome-shell])
AX_IS_RELEASE([git-directory]) AX_IS_RELEASE([git-directory])
AC_CONFIG_HEADERS([config.h]) AC_CONFIG_HEADERS([config.h])
@ -85,7 +85,7 @@ AC_MSG_RESULT($enable_systemd)
GOBJECT_INTROSPECTION_MIN_VERSION=1.49.1 GOBJECT_INTROSPECTION_MIN_VERSION=1.49.1
GJS_MIN_VERSION=1.47.0 GJS_MIN_VERSION=1.47.0
MUTTER_MIN_VERSION=3.24.0 MUTTER_MIN_VERSION=3.25.1
GTK_MIN_VERSION=3.15.0 GTK_MIN_VERSION=3.15.0
GIO_MIN_VERSION=2.45.3 GIO_MIN_VERSION=2.45.3
LIBECAL_MIN_VERSION=3.5.3 LIBECAL_MIN_VERSION=3.5.3

View File

@ -125,7 +125,7 @@ EXTRA_DIST +=
# Files not to distribute # Files not to distribute
# for --rebuild-types in $(SCAN_OPTIONS), e.g. $(DOC_MODULE).types # for --rebuild-types in $(SCAN_OPTIONS), e.g. $(DOC_MODULE).types
# for --rebuild-sections in $(SCAN_OPTIONS) e.g. $(DOC_MODULE)-sections.txt # for --rebuild-sections in $(SCAN_OPTIONS) e.g. $(DOC_MODULE)-sections.txt
DISTCLEANFILES = $(DOC_MODULES).types DISTCLEANFILES = $(DOC_MODULE).types
# Comment this out if you want 'make check' to test you doc status # Comment this out if you want 'make check' to test you doc status
# and run some sanity checks # and run some sanity checks

View File

@ -5,6 +5,7 @@ const GLib = imports.gi.GLib;
const GObject = imports.gi.GObject; const GObject = imports.gi.GObject;
const Gio = imports.gi.Gio; const Gio = imports.gi.Gio;
const Gtk = imports.gi.Gtk; const Gtk = imports.gi.Gtk;
const Gdk = imports.gi.Gdk;
const Pango = imports.gi.Pango; const Pango = imports.gi.Pango;
const Format = imports.format; const Format = imports.format;
@ -92,9 +93,11 @@ const Application = new Lang.Class({
widget = this._buildErrorUI(extension, e); widget = this._buildErrorUI(extension, e);
} }
let dialog = new Gtk.Dialog({ use_header_bar: true, let dialog = new Gtk.Window({ modal: !this._skipMainWindow,
modal: true, type_hint: Gdk.WindowTypeHint.DIALOG });
title: extension.metadata.name }); dialog.set_titlebar(new Gtk.HeaderBar({ show_close_button: true,
title: extension.metadata.name,
visible: true }));
if (this._skipMainWindow) { if (this._skipMainWindow) {
this.application.add_window(dialog); this.application.add_window(dialog);
@ -107,7 +110,7 @@ const Application = new Lang.Class({
} }
dialog.set_default_size(600, 400); dialog.set_default_size(600, 400);
dialog.get_content_area().add(widget); dialog.add(widget);
dialog.show(); dialog.show();
}, },
@ -154,7 +157,7 @@ const Application = new Lang.Class({
this._settings = new Gio.Settings({ schema_id: 'org.gnome.shell' }); this._settings = new Gio.Settings({ schema_id: 'org.gnome.shell' });
this._settings.bind('disable-user-extensions', killSwitch, 'active', this._settings.bind('disable-user-extensions', killSwitch, 'active',
Gio.SettingsBindFlags.BIND_DEFAULT | Gio.SettingsBindFlags.DEFAULT |
Gio.SettingsBindFlags.INVERT_BOOLEAN); Gio.SettingsBindFlags.INVERT_BOOLEAN);
let scroll = new Gtk.ScrolledWindow({ hscrollbar_policy: Gtk.PolicyType.NEVER }); let scroll = new Gtk.ScrolledWindow({ hscrollbar_policy: Gtk.PolicyType.NEVER });

View File

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

View File

@ -54,10 +54,11 @@ const WeatherClient = new Lang.Class({
this._world = GWeather.Location.get_world(); this._world = GWeather.Location.get_world();
let providers = GWeather.Provider.METAR | this._providers = GWeather.Provider.METAR |
GWeather.Provider.YR_NO | GWeather.Provider.YR_NO |
GWeather.Provider.OWM; GWeather.Provider.OWM;
this._weatherInfo = new GWeather.Info({ enabled_providers: providers });
this._weatherInfo = new GWeather.Info({ enabled_providers: 0 });
this._weatherInfo.connect_after('updated', () => { this._weatherInfo.connect_after('updated', () => {
this._lastUpdate = GLib.DateTime.new_now_local(); this._lastUpdate = GLib.DateTime.new_now_local();
this.emit('changed'); this.emit('changed');
@ -141,6 +142,8 @@ const WeatherClient = new Lang.Class({
this._weatherInfo.set_location(location); this._weatherInfo.set_location(location);
this._locationValid = (location != null); this._locationValid = (location != null);
this._weatherInfo.set_enabled_providers(location ? this._providers : 0);
if (location) if (location)
this._loadInfo(); this._loadInfo();
else else

View File

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

View File

@ -166,7 +166,8 @@ const BackgroundCache = new Lang.Class({
settingsSchema: null, settingsSchema: null,
onLoaded: null }); onLoaded: null });
if (this._animations[params.settingsSchema] && _fileEqual0(this._animationFile, params.file)) { let animation = this._animations[params.settingsSchema];
if (animation && _fileEqual0(animation.file, params.file)) {
if (params.onLoaded) { if (params.onLoaded) {
let id = GLib.idle_add(GLib.PRIORITY_DEFAULT, Lang.bind(this, function() { let id = GLib.idle_add(GLib.PRIORITY_DEFAULT, Lang.bind(this, function() {
params.onLoaded(this._animations[params.settingsSchema]); params.onLoaded(this._animations[params.settingsSchema]);
@ -177,7 +178,7 @@ const BackgroundCache = new Lang.Class({
return; return;
} }
let animation = new Animation({ file: params.file }); animation = new Animation({ file: params.file });
animation.load(Lang.bind(this, function() { animation.load(Lang.bind(this, function() {
this._animations[params.settingsSchema] = animation; this._animations[params.settingsSchema] = animation;

View File

@ -282,12 +282,20 @@ function _onVersionValidationChanged() {
// temporarily disable them all // temporarily disable them all
enabledExtensions = []; enabledExtensions = [];
for (let uuid in ExtensionUtils.extensions) for (let uuid in ExtensionUtils.extensions)
reloadExtension(ExtensionUtils.extensions[uuid]); try {
reloadExtension(ExtensionUtils.extensions[uuid]);
} catch(e) {
logExtensionError(uuid, e);
}
enabledExtensions = getEnabledExtensions(); enabledExtensions = getEnabledExtensions();
if (Main.sessionMode.allowExtensions) { if (Main.sessionMode.allowExtensions) {
enabledExtensions.forEach(function(uuid) { enabledExtensions.forEach(function(uuid) {
enableExtension(uuid); try {
enableExtension(uuid);
} catch(e) {
logExtensionError(uuid, e);
}
}); });
} }
} }

View File

@ -120,6 +120,25 @@ 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) { hide: function(client) {
if (!this._untrackClient(client)) if (!this._untrackClient(client))
return; return;

View File

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

1301
po/ar.po

File diff suppressed because it is too large Load Diff

View File

@ -1712,7 +1712,7 @@ msgstr "%d%02d Queda (%d %%)"
#: js/ui/status/power.js:103 #: js/ui/status/power.js:103
#, javascript-format #, javascript-format
msgid "%d%02d Until Full (%d%%)" msgid "%d%02d Until Full (%d%%)"
msgstr "%d%02d Fins que estigui del tot carregada (%d %%)" msgstr "%d%02d per completar la carrega (%d %%)"
#: js/ui/status/power.js:131 js/ui/status/power.js:133 #: js/ui/status/power.js:131 js/ui/status/power.js:133
#, javascript-format #, javascript-format

830
po/el.po

File diff suppressed because it is too large Load Diff

777
po/hr.po

File diff suppressed because it is too large Load Diff

View File

@ -12,8 +12,8 @@ msgstr ""
"Project-Id-Version: gnome-shell\n" "Project-Id-Version: gnome-shell\n"
"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" "Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=general\n" "shell&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2017-03-20 18:14+0000\n" "POT-Creation-Date: 2017-04-07 12:28+0000\n"
"PO-Revision-Date: 2017-03-21 08:58+0100\n" "PO-Revision-Date: 2017-04-11 08:40+0200\n"
"Last-Translator: Milo Casagrande <milo@milo.name>\n" "Last-Translator: Milo Casagrande <milo@milo.name>\n"
"Language-Team: Italiano <gnome-it-list@gnome.org>\n" "Language-Team: Italiano <gnome-it-list@gnome.org>\n"
"Language: it\n" "Language: it\n"
@ -63,12 +63,12 @@ msgstr "GNOME Shell"
#: data/org.gnome.Shell.desktop.in.in:5 #: data/org.gnome.Shell.desktop.in.in:5
msgid "Window management and application launching" msgid "Window management and application launching"
msgstr "Gestisce finestre e avvia applicazioni" msgstr "Gestione finestre e avvio applicazioni"
#: data/org.gnome.shell.gschema.xml.in:6 #: data/org.gnome.shell.gschema.xml.in:6
msgid "Enable internal tools useful for developers and testers from Alt-F2" msgid "Enable internal tools useful for developers and testers from Alt-F2"
msgstr "" msgstr ""
"Abilita gli strumenti interni utili a sviluppatori e beta-tester attraverso " "Abilita gli strumenti interni utili a sviluppatori e collaudatori attraverso "
"Alt-F2" "Alt-F2"
#: data/org.gnome.shell.gschema.xml.in:9 #: data/org.gnome.shell.gschema.xml.in:9
@ -110,7 +110,8 @@ msgstr ""
#: data/org.gnome.shell.gschema.xml.in:34 #: data/org.gnome.shell.gschema.xml.in:34
msgid "Disables the validation of extension version compatibility" msgid "Disables the validation of extension version compatibility"
msgstr "Disabilità convalida compatibilità versione estesioni" msgstr ""
"Disabilita la convalida della compatibilità con le versioni delle estensioni"
#: data/org.gnome.shell.gschema.xml.in:35 #: data/org.gnome.shell.gschema.xml.in:35
msgid "" msgid ""
@ -550,11 +551,11 @@ msgid "%B %d %Y, %l%M %p"
msgstr "%d %B %Y, %I%M %p" msgstr "%d %B %Y, %I%M %p"
#. TRANSLATORS: this is the title of the wifi captive portal login window #. 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" msgid "Hotspot Login"
msgstr "Accesso hotspot" msgstr "Accesso hotspot"
#: js/portalHelper/main.js:113 #: js/portalHelper/main.js:112
msgid "" msgid ""
"Your connection to this hotspot login is not secure. Passwords or other " "Your connection to this hotspot login is not secure. Passwords or other "
"information you enter on this page can be viewed by people nearby." "information you enter on this page can be viewed by people nearby."
@ -845,7 +846,7 @@ msgstr "Password rete mobile"
msgid "A password is required to connect to “%s”." msgid "A password is required to connect to “%s”."
msgstr "È richiesta una password per connettersi a «%s»." msgstr "È richiesta una password per connettersi a «%s»."
#: js/ui/components/networkAgent.js:655 js/ui/status/network.js:1755 #: js/ui/components/networkAgent.js:655 js/ui/status/network.js:1759
msgid "Network Manager" msgid "Network Manager"
msgstr "Gestore reti" msgstr "Gestore reti"
@ -876,7 +877,7 @@ msgstr "Errore nell'autenticazione. Provare di nuovo."
msgid "%s is now known as %s" msgid "%s is now known as %s"
msgstr "%s ha cambiato nome in %s" msgstr "%s ha cambiato nome in %s"
#: js/ui/ctrlAltTab.js:29 js/ui/viewSelector.js:178 #: js/ui/ctrlAltTab.js:29 js/ui/viewSelector.js:179
msgid "Windows" msgid "Windows"
msgstr "Finestre" msgstr "Finestre"
@ -1094,8 +1095,8 @@ msgstr ""
#: js/ui/endSessionDialog.js:361 #: js/ui/endSessionDialog.js:361
msgid "Running on battery power: please plug in before installing updates." msgid "Running on battery power: please plug in before installing updates."
msgstr "" msgstr ""
"In funzione con batteria: collegare l'alimentazione prima di installare gli " "Alimentazione da batteria: collegare alla rete elettrica prima di installare "
"aggiornamenti." "gli aggiornamenti."
#: js/ui/endSessionDialog.js:378 #: js/ui/endSessionDialog.js:378
msgid "Some applications are busy or have unsaved work." msgid "Some applications are busy or have unsaved work."
@ -1453,11 +1454,11 @@ msgstr "On"
#: js/ui/status/bluetooth.js:142 js/ui/status/network.js:1310 #: js/ui/status/bluetooth.js:142 js/ui/status/network.js:1310
msgid "Turn On" msgid "Turn On"
msgstr "Attiva" msgstr "Accendi"
#: js/ui/status/bluetooth.js:142 js/ui/status/network.js:181 #: 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:367 js/ui/status/network.js:1310
#: js/ui/status/network.js:1425 js/ui/status/nightLight.js:47 #: js/ui/status/network.js:1429 js/ui/status/nightLight.js:47
#: js/ui/status/rfkill.js:90 js/ui/status/rfkill.js:117 #: js/ui/status/rfkill.js:90 js/ui/status/rfkill.js:117
msgid "Turn Off" msgid "Turn Off"
msgstr "Spegni" msgstr "Spegni"
@ -1599,15 +1600,15 @@ msgstr "Connetti a Internet"
#: js/ui/status/network.js:844 #: js/ui/status/network.js:844
msgid "Airplane Mode is On" msgid "Airplane Mode is On"
msgstr "La modalità aereo è attiva" msgstr "La modalità aereo è accesa"
#: js/ui/status/network.js:845 #: js/ui/status/network.js:845
msgid "Wi-Fi is disabled when airplane mode is on." msgid "Wi-Fi is disabled when airplane mode is on."
msgstr "Il Wi-Fi è disabilitato quando la modalità aereo è attiva" msgstr "Il Wi-Fi è disabilitato quando la modalità aereo è accesa."
#: js/ui/status/network.js:846 #: js/ui/status/network.js:846
msgid "Turn Off Airplane Mode" msgid "Turn Off Airplane Mode"
msgstr "Disattiva modalità aereo" msgstr "Spegni modalità aereo"
#: js/ui/status/network.js:855 #: js/ui/status/network.js:855
msgid "Wi-Fi is Off" msgid "Wi-Fi is Off"
@ -1615,11 +1616,11 @@ msgstr "Il Wi-Fi è spento"
#: js/ui/status/network.js:856 #: js/ui/status/network.js:856
msgid "Wi-Fi needs to be turned on in order to connect to a network." msgid "Wi-Fi needs to be turned on in order to connect to a network."
msgstr "È necessario attivare il Wi-Fi per potersi connettere a una rete." msgstr "È necessario accendere il Wi-Fi per potersi connettere a una rete."
#: js/ui/status/network.js:857 #: js/ui/status/network.js:857
msgid "Turn On Wi-Fi" msgid "Turn On Wi-Fi"
msgstr "Attiva Wi-Fi" msgstr "Accendi Wi-Fi"
#: js/ui/status/network.js:882 #: js/ui/status/network.js:882
msgid "Wi-Fi Networks" msgid "Wi-Fi Networks"
@ -1635,7 +1636,7 @@ msgstr "Nessuna rete"
#: js/ui/status/network.js:935 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" msgid "Use hardware switch to turn off"
msgstr "Usare l'interruttore hardware per disattivare" msgstr "Usare l'interruttore hardware per spegnere"
#: js/ui/status/network.js:1202 #: js/ui/status/network.js:1202
msgid "Select Network" msgid "Select Network"
@ -1657,62 +1658,62 @@ msgstr "Hotspot %s attivo"
msgid "%s Not Connected" msgid "%s Not Connected"
msgstr "%s non collegato" msgstr "%s non collegato"
#: js/ui/status/network.js:1442 #: js/ui/status/network.js:1446
msgid "connecting…" msgid "connecting…"
msgstr "connessione…" msgstr "connessione…"
#. Translators: this is for network connections that require some kind of key or password #. Translators: this is for network connections that require some kind of key or password
#: js/ui/status/network.js:1445 #: js/ui/status/network.js:1449
msgid "authentication required" msgid "authentication required"
msgstr "richiesta autenticazione" msgstr "richiesta autenticazione"
#: js/ui/status/network.js:1447 #: js/ui/status/network.js:1451
msgid "connection failed" msgid "connection failed"
msgstr "connessione non riuscita" msgstr "connessione non riuscita"
#: js/ui/status/network.js:1513 js/ui/status/network.js:1608 #: js/ui/status/network.js:1517 js/ui/status/network.js:1612
#: js/ui/status/rfkill.js:93 #: js/ui/status/rfkill.js:93
msgid "Network Settings" msgid "Network Settings"
msgstr "Impostazioni rete" msgstr "Impostazioni rete"
#: js/ui/status/network.js:1515 #: js/ui/status/network.js:1519
msgid "VPN Settings" msgid "VPN Settings"
msgstr "Impostazioni VPN" msgstr "Impostazioni VPN"
#: js/ui/status/network.js:1534 #: js/ui/status/network.js:1538
msgid "VPN" msgid "VPN"
msgstr "VPN" msgstr "VPN"
#: js/ui/status/network.js:1544 #: js/ui/status/network.js:1548
msgid "VPN Off" msgid "VPN Off"
msgstr "VPN spento" msgstr "VPN spenta"
#: js/ui/status/network.js:1639 #: js/ui/status/network.js:1643
#, javascript-format #, javascript-format
msgid "%s Wired Connection" msgid "%s Wired Connection"
msgid_plural "%s Wired Connections" msgid_plural "%s Wired Connections"
msgstr[0] "%s connessione via cavo" msgstr[0] "%s connessione via cavo"
msgstr[1] "%s connessioni via cavo" msgstr[1] "%s connessioni via cavo"
#: js/ui/status/network.js:1643 #: js/ui/status/network.js:1647
#, javascript-format #, javascript-format
msgid "%s Wi-Fi Connection" msgid "%s Wi-Fi Connection"
msgid_plural "%s Wi-Fi Connections" msgid_plural "%s Wi-Fi Connections"
msgstr[0] "%s connessione Wi-Fi" msgstr[0] "%s connessione Wi-Fi"
msgstr[1] "%s connessioni Wi-Fi" msgstr[1] "%s connessioni Wi-Fi"
#: js/ui/status/network.js:1647 #: js/ui/status/network.js:1651
#, javascript-format #, javascript-format
msgid "%s Modem Connection" msgid "%s Modem Connection"
msgid_plural "%s Modem Connections" msgid_plural "%s Modem Connections"
msgstr[0] "%s connessione modem" msgstr[0] "%s connessione modem"
msgstr[1] "%s connessioni modem" msgstr[1] "%s connessioni modem"
#: js/ui/status/network.js:1794 #: js/ui/status/network.js:1798
msgid "Connection failed" msgid "Connection failed"
msgstr "Connessione non riuscita" msgstr "Connessione non riuscita"
#: js/ui/status/network.js:1795 #: js/ui/status/network.js:1799
msgid "Activation of network connection failed" msgid "Activation of network connection failed"
msgstr "Attivazione della connessione di rete non riuscita" msgstr "Attivazione della connessione di rete non riuscita"
@ -1769,7 +1770,7 @@ msgstr "%d%%"
#. changing the menu contents. #. changing the menu contents.
#: js/ui/status/rfkill.js:88 #: js/ui/status/rfkill.js:88
msgid "Airplane Mode On" msgid "Airplane Mode On"
msgstr "Modalità aereo attiva" msgstr "Modalità aereo accesa"
#: js/ui/status/system.js:378 #: js/ui/status/system.js:378
msgid "Switch User" msgid "Switch User"
@ -1811,11 +1812,11 @@ msgstr "Accedi come altro utente"
msgid "Unlock Window" msgid "Unlock Window"
msgstr "Sblocca finestra" msgstr "Sblocca finestra"
#: js/ui/viewSelector.js:182 #: js/ui/viewSelector.js:183
msgid "Applications" msgid "Applications"
msgstr "Applicazioni" msgstr "Applicazioni"
#: js/ui/viewSelector.js:186 #: js/ui/viewSelector.js:187
msgid "Search" msgid "Search"
msgstr "Cerca" msgstr "Cerca"
@ -1959,7 +1960,7 @@ msgstr "Modalità usata da GDM per la schermata d'accesso"
#: src/main.c:384 #: src/main.c:384
msgid "Use a specific mode, e.g. “gdm” for login screen" msgid "Use a specific mode, e.g. “gdm” for login screen"
msgstr "Usa una modalità specifica, p.e. \"gdm\" per la schermata di accesso" msgstr "Usa una modalità specifica, p.e. «gdm» per la schermata di accesso"
#: src/main.c:390 #: src/main.c:390
msgid "List possible modes" msgid "List possible modes"

214
po/sr.po
View File

@ -11,17 +11,19 @@ msgstr ""
"Project-Id-Version: gnome-shell master\n" "Project-Id-Version: gnome-shell master\n"
"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" "Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=general\n" "shell&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2017-03-03 11:37+0000\n" "POT-Creation-Date: 2017-03-20 18:14+0000\n"
"PO-Revision-Date: 2017-03-05 05:41+0200\n" "PO-Revision-Date: 2017-03-21 18:18+0100\n"
"Last-Translator: Мирослав Николић <miroslavnikolic@rocketmail.com>\n" "Last-Translator: Марко М. Костић <marko.m.kostic@gmail.com>\n"
"Language-Team: Serbian <gnom@prevod.org>\n" "Language-Team: Serbian <gnom@prevod.org>\n"
"Language: sr\n" "Language: sr\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=4; plural=n==1? 3 : n%10==1 && n%100!=11 ? 0 : " "Plural-Forms: nplurals=4; plural=n==1? 3 : n%10==1 && n%100!=11 ? 0 : n"
"n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" "%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
"X-Project-Style: gnome\n" "X-Project-Style: gnome\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 #: data/50-gnome-shell-system.xml:6
msgid "System" msgid "System"
@ -334,7 +336,7 @@ msgstr "Дошло је до грешке при учитавању прозор
#: js/gdm/authPrompt.js:149 js/ui/audioDeviceSelection.js:71 #: js/gdm/authPrompt.js:149 js/ui/audioDeviceSelection.js:71
#: js/ui/components/networkAgent.js:145 js/ui/components/polkitAgent.js:179 #: js/ui/components/networkAgent.js:145 js/ui/components/polkitAgent.js:179
#: js/ui/endSessionDialog.js:482 js/ui/extensionDownloader.js:195 #: 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" msgid "Cancel"
msgstr "Откажи" msgstr "Откажи"
@ -382,7 +384,7 @@ msgstr "Корисник: "
msgid "Login Window" msgid "Login Window"
msgstr "Прозор за пријављивање" msgstr "Прозор за пријављивање"
#: js/gdm/util.js:341 #: js/gdm/util.js:342
msgid "Authentication error" msgid "Authentication error"
msgstr "Грешка потврђивања идентитета" msgstr "Грешка потврђивања идентитета"
@ -391,7 +393,7 @@ msgstr "Грешка потврђивања идентитета"
#. as a cue to display our own message. #. as a cue to display our own message.
#. Translators: this message is shown below the password entry field #. Translators: this message is shown below the password entry field
#. to indicate the user can swipe their finger instead #. to indicate the user can swipe their finger instead
#: js/gdm/util.js:473 #: js/gdm/util.js:474
msgid "(or swipe finger)" msgid "(or swipe finger)"
msgstr "(или превуците прст)" msgstr "(или превуците прст)"
@ -433,7 +435,6 @@ msgstr[2] "Пре %d сати"
msgstr[3] "Пре један сат" msgstr[3] "Пре један сат"
#: js/misc/util.js:188 #: js/misc/util.js:188
#| msgid "Yesterday, %H%M"
msgid "Yesterday" msgid "Yesterday"
msgstr "Јуче" msgstr "Јуче"
@ -558,11 +559,11 @@ msgstr ""
#. No support for non-modal system dialogs, so ignore the option #. No support for non-modal system dialogs, so ignore the option
#. let modal = options['modal'] || true; #. 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" msgid "Deny Access"
msgstr "Забрани приступ" msgstr "Забрани приступ"
#: 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" msgid "Grant Access"
msgstr "Дозволи приступ" msgstr "Дозволи приступ"
@ -762,7 +763,7 @@ msgid "Type again:"
msgstr "Упишите поново:" msgstr "Упишите поново:"
#: js/ui/components/networkAgent.js:140 js/ui/status/network.js:272 #: 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" msgid "Connect"
msgstr "Повежи се" msgstr "Повежи се"
@ -836,7 +837,7 @@ msgstr "Лозинка мобилне широкопојасне мреже"
msgid "A password is required to connect to “%s”." msgid "A password is required to connect to “%s”."
msgstr "Потребна је лозинка за повезивање на „%s“." msgstr "Потребна је лозинка за повезивање на „%s“."
#: js/ui/components/networkAgent.js:655 js/ui/status/network.js:1747 #: js/ui/components/networkAgent.js:655 js/ui/status/network.js:1755
msgid "Network Manager" msgid "Network Manager"
msgstr "Управник мреже" msgstr "Управник мреже"
@ -862,7 +863,7 @@ msgstr "Погрешили сте! Покушајте поново."
#. Translators: this is the other person changing their old IM name to their new #. Translators: this is the other person changing their old IM name to their new
#. IM name. #. IM name.
#: js/ui/components/telepathyClient.js:767 #: js/ui/components/telepathyClient.js:799
#, javascript-format #, javascript-format
msgid "%s is now known as %s" msgid "%s is now known as %s"
msgstr "„%s“ је сада познат као „%s“" msgstr "„%s“ је сада познат као „%s“"
@ -936,21 +937,24 @@ msgid "%s, then %s, followed by %s later."
msgstr "%s, затим %s, касније праћено %s." msgstr "%s, затим %s, касније праћено %s."
#: js/ui/dateMenu.js:300 #: js/ui/dateMenu.js:300
#| msgid "Searching…" msgid "Select a location…"
msgstr "Изаберите место…"
#: js/ui/dateMenu.js:303
msgid "Loading…" msgid "Loading…"
msgstr "Учитавам…" msgstr "Учитавам…"
#. Translators: %s is a temperature with unit, e.g. "23℃" #. Translators: %s is a temperature with unit, e.g. "23℃"
#: js/ui/dateMenu.js:306 #: js/ui/dateMenu.js:309
#, javascript-format #, javascript-format
msgid "Feels like %s." msgid "Feels like %s."
msgstr "Осећа се као %s." msgstr "Осећа се као %s."
#: js/ui/dateMenu.js:309 #: js/ui/dateMenu.js:312
msgid "Go online for weather information" msgid "Go online for weather information"
msgstr "Идите на мрежу за податке о временској прогнози." msgstr "Идите на мрежу за податке о временској прогнози."
#: js/ui/dateMenu.js:311 #: js/ui/dateMenu.js:314
msgid "Weather information is currently unavailable" msgid "Weather information is currently unavailable"
msgstr "Подаци о временској прогнози тренутно нису доступни." msgstr "Подаци о временској прогнози тренутно нису доступни."
@ -1135,51 +1139,51 @@ msgstr "Сакриј касету"
msgid "Status Icons" msgid "Status Icons"
msgstr "Иконице стања" msgstr "Иконице стања"
#: js/ui/lookingGlass.js:643 #: js/ui/lookingGlass.js:642
msgid "No extensions installed" msgid "No extensions installed"
msgstr "Нису инсталирана проширења" msgstr "Нису инсталирана проширења"
#. Translators: argument is an extension UUID. #. Translators: argument is an extension UUID.
#: js/ui/lookingGlass.js:697 #: js/ui/lookingGlass.js:696
#, javascript-format #, javascript-format
msgid "%s has not emitted any errors." msgid "%s has not emitted any errors."
msgstr "%s није објавио никакве грешке." msgstr "%s није објавио никакве грешке."
#: js/ui/lookingGlass.js:703 #: js/ui/lookingGlass.js:702
msgid "Hide Errors" msgid "Hide Errors"
msgstr "Сакриј грешке" msgstr "Сакриј грешке"
#: js/ui/lookingGlass.js:707 js/ui/lookingGlass.js:767 #: js/ui/lookingGlass.js:706 js/ui/lookingGlass.js:766
msgid "Show Errors" msgid "Show Errors"
msgstr "Прикажите грешке" msgstr "Прикажите грешке"
#: js/ui/lookingGlass.js:716 #: js/ui/lookingGlass.js:715
msgid "Enabled" msgid "Enabled"
msgstr "Укључено" msgstr "Укључено"
#. translators: #. translators:
#. * The device has been disabled #. * 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" msgid "Disabled"
msgstr "Искључено" msgstr "Искључено"
#: js/ui/lookingGlass.js:721 #: js/ui/lookingGlass.js:720
msgid "Error" msgid "Error"
msgstr "Грешка" msgstr "Грешка"
#: js/ui/lookingGlass.js:723 #: js/ui/lookingGlass.js:722
msgid "Out of date" msgid "Out of date"
msgstr "Изван датума" msgstr "Изван датума"
#: js/ui/lookingGlass.js:725 #: js/ui/lookingGlass.js:724
msgid "Downloading" msgid "Downloading"
msgstr "Преузимам" msgstr "Преузимам"
#: js/ui/lookingGlass.js:749 #: js/ui/lookingGlass.js:748
msgid "View Source" msgid "View Source"
msgstr "Прикажи код" msgstr "Прикажи код"
#: js/ui/lookingGlass.js:758 #: js/ui/lookingGlass.js:757
msgid "Web Page" msgid "Web Page"
msgstr "Веб страница" msgstr "Веб страница"
@ -1213,47 +1217,47 @@ msgstr "Преглед"
msgid "Type to search…" msgid "Type to search…"
msgstr "Упишите текст за претрагу…" msgstr "Упишите текст за претрагу…"
#: js/ui/padOsd.js:37 #: js/ui/padOsd.js:103
msgid "New shortcut…" msgid "New shortcut…"
msgstr "Нова пречица…" msgstr "Нова пречица…"
#: js/ui/padOsd.js:86 #: js/ui/padOsd.js:152
msgid "Application defined" msgid "Application defined"
msgstr "Дефинисани програм" msgstr "Дефинисани програм"
#: js/ui/padOsd.js:87 #: js/ui/padOsd.js:153
msgid "Show on-screen help" msgid "Show on-screen help"
msgstr "Прикажи помоћ на екрану" msgstr "Прикажи помоћ на екрану"
#: js/ui/padOsd.js:88 #: js/ui/padOsd.js:154
msgid "Switch monitor" msgid "Switch monitor"
msgstr "Промени монитор" msgstr "Промени монитор"
#: js/ui/padOsd.js:89 #: js/ui/padOsd.js:155
msgid "Assign keystroke" msgid "Assign keystroke"
msgstr "Додели тастер" msgstr "Додели тастер"
#: js/ui/padOsd.js:143 #: js/ui/padOsd.js:209
msgid "Done" msgid "Done"
msgstr "Готово" msgstr "Готово"
#: js/ui/padOsd.js:597 #: js/ui/padOsd.js:698
msgid "Edit…" msgid "Edit…"
msgstr "Уреди…" msgstr "Уреди…"
#: js/ui/padOsd.js:610 js/ui/padOsd.js:665 #: js/ui/padOsd.js:738 js/ui/padOsd.js:800
msgid "None" msgid "None"
msgstr "Ништа" msgstr "Ништа"
#: js/ui/padOsd.js:648 #: js/ui/padOsd.js:783
msgid "Press a button to configure" msgid "Press a button to configure"
msgstr "Притисните дугме да подесите" msgstr "Притисните дугме да подесите"
#: js/ui/padOsd.js:649 #: js/ui/padOsd.js:784
msgid "Press Esc to exit" msgid "Press Esc to exit"
msgstr "Притисните „Есц“ да изађете" msgstr "Притисните „Есц“ да изађете"
#: js/ui/padOsd.js:652 #: js/ui/padOsd.js:787
msgid "Press any key to exit" msgid "Press any key to exit"
msgstr "Притисните неки тастер да изађете" msgstr "Притисните неки тастер да изађете"
@ -1289,7 +1293,7 @@ msgstr "toggle-switch-intl"
msgid "Enter a Command" msgid "Enter a Command"
msgstr "Унесите наредбу" msgstr "Унесите наредбу"
#: js/ui/runDialog.js:111 js/ui/windowMenu.js:162 #: js/ui/runDialog.js:111 js/ui/windowMenu.js:160
msgid "Close" msgid "Close"
msgstr "Затвори" msgstr "Затвори"
@ -1303,11 +1307,11 @@ msgstr "Поновно покрећем…"
#. Translators: This is a time format for a date in #. Translators: This is a time format for a date in
#. long format #. long format
#: js/ui/screenShield.js:85 #: js/ui/screenShield.js:88
msgid "%A, %B %d" msgid "%A, %B %d"
msgstr "%A, %d. %B" msgstr "%A, %d. %B"
#: js/ui/screenShield.js:144 #: js/ui/screenShield.js:147
#, javascript-format #, javascript-format
msgid "%d new message" msgid "%d new message"
msgid_plural "%d new messages" msgid_plural "%d new messages"
@ -1316,7 +1320,7 @@ msgstr[1] "%d нове поруке"
msgstr[2] "%d нових порука" msgstr[2] "%d нових порука"
msgstr[3] "%d нова порука" msgstr[3] "%d нова порука"
#: js/ui/screenShield.js:146 #: js/ui/screenShield.js:149
#, javascript-format #, javascript-format
msgid "%d new notification" msgid "%d new notification"
msgid_plural "%d new notifications" msgid_plural "%d new notifications"
@ -1325,11 +1329,11 @@ msgstr[1] "%d нова обавештења"
msgstr[2] "%d нових обавештења" msgstr[2] "%d нових обавештења"
msgstr[3] "%d ново обавештење" msgstr[3] "%d ново обавештење"
#: js/ui/screenShield.js:449 js/ui/status/system.js:409 #: js/ui/screenShield.js:452 js/ui/status/system.js:409
msgid "Lock" msgid "Lock"
msgstr "Закључај" msgstr "Закључај"
#: js/ui/screenShield.js:707 #: js/ui/screenShield.js:715
msgid "GNOME needs to lock the screen" msgid "GNOME needs to lock the screen"
msgstr "Гном мора да закључа екран" msgstr "Гном мора да закључа екран"
@ -1340,11 +1344,11 @@ msgstr "Гном мора да закључа екран"
#. #.
#. XXX: another option is to kick the user into the gdm login #. XXX: another option is to kick the user into the gdm login
#. screen, where we're not affected by grabs #. 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" msgid "Unable to lock"
msgstr "Не могу да закључам" msgstr "Не могу да закључам"
#: 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" msgid "Lock was blocked by an application"
msgstr "Неки програм је блокирао закључавање" msgstr "Неки програм је блокирао закључавање"
@ -1450,13 +1454,13 @@ msgstr "Искљ."
msgid "On" msgid "On"
msgstr "Укљ." msgstr "Укљ."
#: 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" msgid "Turn On"
msgstr "Укључи" msgstr "Укључи"
#: js/ui/status/bluetooth.js:142 js/ui/status/network.js:181 #: 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:367 js/ui/status/network.js:1310
#: js/ui/status/network.js:1417 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 #: js/ui/status/rfkill.js:90 js/ui/status/rfkill.js:117
msgid "Turn Off" msgid "Turn Off"
msgstr "Искључи" msgstr "Искључи"
@ -1469,37 +1473,37 @@ msgstr "Осветљеност"
msgid "Show Keyboard Layout" msgid "Show Keyboard Layout"
msgstr "Покажи распоред тастатуре" msgstr "Покажи распоред тастатуре"
#: 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" msgid "Location Enabled"
msgstr "Одређивање места укључено" msgstr "Одређивање места укључено"
#: 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" msgid "Disable"
msgstr "Искључи" msgstr "Искључи"
#: js/ui/status/location.js:109 #: js/ui/status/location.js:90
msgid "Privacy Settings" msgid "Privacy Settings"
msgstr "Подешавања приватности" msgstr "Подешавања приватности"
#: js/ui/status/location.js:214 #: js/ui/status/location.js:195
msgid "Location In Use" msgid "Location In Use"
msgstr "Одређивање места се користи" msgstr "Одређивање места се користи"
#: js/ui/status/location.js:218 #: js/ui/status/location.js:199
msgid "Location Disabled" msgid "Location Disabled"
msgstr "Одређивање места искључено" msgstr "Одређивање места искључено"
#: js/ui/status/location.js:219 #: js/ui/status/location.js:200
msgid "Enable" msgid "Enable"
msgstr "Укључи" msgstr "Укључи"
#. Translators: %s is an application name #. Translators: %s is an application name
#: js/ui/status/location.js:436 #: js/ui/status/location.js:414
#, javascript-format #, javascript-format
msgid "Give %s access to your location?" msgid "Give %s access to your location?"
msgstr "Да ли да „%s“ дам приступ вашем месту?" msgstr "Да ли да „%s“ дам приступ вашем месту?"
#: 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." msgid "Location access can be changed at any time from the privacy settings."
msgstr "" msgstr ""
"Приступ месту можете да измените у било које време у подешавањима " "Приступ месту можете да измените у било које време у подешавањима "
@ -1510,7 +1514,7 @@ msgid "<unknown>"
msgstr "<непознато>" msgstr "<непознато>"
#. Translators: %s is a network identifier #. 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 #, javascript-format
msgid "%s Off" msgid "%s Off"
msgstr "%s искључено" msgstr "%s искључено"
@ -1536,7 +1540,7 @@ msgid "%s Disconnecting"
msgstr "%s прекидање везе у току" msgstr "%s прекидање везе у току"
#. Translators: %s is a network identifier #. 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 #, javascript-format
msgid "%s Connecting" msgid "%s Connecting"
msgstr "%s повезивање у току" msgstr "%s повезивање у току"
@ -1576,7 +1580,7 @@ msgid "Mobile Broadband Settings"
msgstr "Подешавања мобилне широкопојасне везе" msgstr "Подешавања мобилне широкопојасне везе"
#. Translators: %s is a network identifier #. 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 #, javascript-format
msgid "%s Hardware Disabled" msgid "%s Hardware Disabled"
msgstr "%s уређај искључен" msgstr "%s уређај искључен"
@ -1592,97 +1596,97 @@ msgstr "%s искључено"
msgid "Connect to Internet" msgid "Connect to Internet"
msgstr "Повежи се на Интернет" msgstr "Повежи се на Интернет"
#: js/ui/status/network.js:836 #: js/ui/status/network.js:844
msgid "Airplane Mode is On" msgid "Airplane Mode is On"
msgstr "Авионски режим рада је укључен" msgstr "Авионски режим рада је укључен"
#: js/ui/status/network.js:837 #: js/ui/status/network.js:845
msgid "Wi-Fi is disabled when airplane mode is on." msgid "Wi-Fi is disabled when airplane mode is on."
msgstr "Бежична веза је искључена када је укључен авионски режим рада." msgstr "Бежична веза је искључена када је укључен авионски режим рада."
#: js/ui/status/network.js:838 #: js/ui/status/network.js:846
msgid "Turn Off Airplane Mode" msgid "Turn Off Airplane Mode"
msgstr "Искључи авионски режим рада" msgstr "Искључи авионски режим рада"
#: js/ui/status/network.js:847 #: js/ui/status/network.js:855
msgid "Wi-Fi is Off" msgid "Wi-Fi is Off"
msgstr "Бежична веза је искључена" msgstr "Бежична веза је искључена"
#: 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." msgid "Wi-Fi needs to be turned on in order to connect to a network."
msgstr "Бежична веза треба бити укључена да бисте се повезали на мрежу." msgstr "Бежична веза треба бити укључена да бисте се повезали на мрежу."
#: js/ui/status/network.js:849 #: js/ui/status/network.js:857
msgid "Turn On Wi-Fi" msgid "Turn On Wi-Fi"
msgstr "Укључи бежичну везу" msgstr "Укључи бежичну везу"
#: js/ui/status/network.js:874 #: js/ui/status/network.js:882
msgid "Wi-Fi Networks" msgid "Wi-Fi Networks"
msgstr "Бежичне мреже" msgstr "Бежичне мреже"
#: js/ui/status/network.js:876 #: js/ui/status/network.js:884
msgid "Select a network" msgid "Select a network"
msgstr "Изаберите мрежу" msgstr "Изаберите мрежу"
#: js/ui/status/network.js:906 #: js/ui/status/network.js:914
msgid "No Networks" msgid "No Networks"
msgstr "Нема мрежа" msgstr "Нема мрежа"
#: 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" msgid "Use hardware switch to turn off"
msgstr "Користи физички прекидач за искључивање" msgstr "Користи физички прекидач за искључивање"
#: js/ui/status/network.js:1194 #: js/ui/status/network.js:1202
msgid "Select Network" msgid "Select Network"
msgstr "Изабери мрежу" msgstr "Изабери мрежу"
#: js/ui/status/network.js:1200 #: js/ui/status/network.js:1208
msgid "Wi-Fi Settings" msgid "Wi-Fi Settings"
msgstr "Подешавања бежичне везе" msgstr "Подешавања бежичне везе"
#. Translators: %s is a network identifier #. Translators: %s is a network identifier
#: js/ui/status/network.js:1319 #: js/ui/status/network.js:1327
#, javascript-format #, javascript-format
msgid "%s Hotspot Active" msgid "%s Hotspot Active"
msgstr "%s хотспот укључен" msgstr "%s хотспот укључен"
#. Translators: %s is a network identifier #. Translators: %s is a network identifier
#: js/ui/status/network.js:1334 #: js/ui/status/network.js:1342
#, javascript-format #, javascript-format
msgid "%s Not Connected" msgid "%s Not Connected"
msgstr "%s неповезано" msgstr "%s неповезано"
#: js/ui/status/network.js:1434 #: js/ui/status/network.js:1442
msgid "connecting…" msgid "connecting…"
msgstr "повезујем се…" msgstr "повезујем се…"
#. Translators: this is for network connections that require some kind of key or password #. 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:1445
msgid "authentication required" msgid "authentication required"
msgstr "потребна је пријава" msgstr "потребна је пријава"
#: js/ui/status/network.js:1439 #: js/ui/status/network.js:1447
msgid "connection failed" msgid "connection failed"
msgstr "повезивање није успело" msgstr "повезивање није успело"
#: js/ui/status/network.js:1505 js/ui/status/network.js:1600 #: js/ui/status/network.js:1513 js/ui/status/network.js:1608
#: js/ui/status/rfkill.js:93 #: js/ui/status/rfkill.js:93
msgid "Network Settings" msgid "Network Settings"
msgstr "Подешавања мреже" msgstr "Подешавања мреже"
#: js/ui/status/network.js:1507 #: js/ui/status/network.js:1515
msgid "VPN Settings" msgid "VPN Settings"
msgstr "ВПН подешавања" msgstr "ВПН подешавања"
#: js/ui/status/network.js:1526 #: js/ui/status/network.js:1534
msgid "VPN" msgid "VPN"
msgstr "ВПН" msgstr "ВПН"
#: js/ui/status/network.js:1536 #: js/ui/status/network.js:1544
msgid "VPN Off" msgid "VPN Off"
msgstr "Искључи ВПН" msgstr "Искључи ВПН"
#: js/ui/status/network.js:1631 #: js/ui/status/network.js:1639
#, javascript-format #, javascript-format
msgid "%s Wired Connection" msgid "%s Wired Connection"
msgid_plural "%s Wired Connections" msgid_plural "%s Wired Connections"
@ -1691,7 +1695,7 @@ msgstr[1] "%s жичане везе"
msgstr[2] "%s жичаних веза" msgstr[2] "%s жичаних веза"
msgstr[3] "%s жичана веза" msgstr[3] "%s жичана веза"
#: js/ui/status/network.js:1635 #: js/ui/status/network.js:1643
#, javascript-format #, javascript-format
msgid "%s Wi-Fi Connection" msgid "%s Wi-Fi Connection"
msgid_plural "%s Wi-Fi Connections" msgid_plural "%s Wi-Fi Connections"
@ -1700,7 +1704,7 @@ msgstr[1] "%s бежичне везе"
msgstr[2] "%s бежичних веза" msgstr[2] "%s бежичних веза"
msgstr[3] "%s бежична веза" msgstr[3] "%s бежична веза"
#: js/ui/status/network.js:1639 #: js/ui/status/network.js:1647
#, javascript-format #, javascript-format
msgid "%s Modem Connection" msgid "%s Modem Connection"
msgid_plural "%s Modem Connections" msgid_plural "%s Modem Connections"
@ -1709,11 +1713,11 @@ msgstr[1] "%s модемске везе"
msgstr[2] "%s модемских веза" msgstr[2] "%s модемских веза"
msgstr[3] "%s модемска веза" msgstr[3] "%s модемска веза"
#: js/ui/status/network.js:1786 #: js/ui/status/network.js:1794
msgid "Connection failed" msgid "Connection failed"
msgstr "Повезивање није успело" msgstr "Повезивање није успело"
#: js/ui/status/network.js:1787 #: js/ui/status/network.js:1795
msgid "Activation of network connection failed" msgid "Activation of network connection failed"
msgstr "Активирање мрежне везе није успело" msgstr "Активирање мрежне везе није успело"
@ -1824,22 +1828,22 @@ msgstr "Тражи"
msgid "“%s” is ready" msgid "“%s” is ready"
msgstr "„%s“ је спреман" msgstr "„%s“ је спреман"
#: js/ui/windowManager.js:83 #: js/ui/windowManager.js:84
msgid "Do you want to keep these display settings?" msgid "Do you want to keep these display settings?"
msgstr "Да ли желите да задржите ова подешавања екрана?" msgstr "Да ли желите да задржите ова подешавања екрана?"
#. Translators: this and the following message should be limited in lenght, #. Translators: this and the following message should be limited in lenght,
#. to avoid ellipsizing the labels. #. to avoid ellipsizing the labels.
#. #.
#: js/ui/windowManager.js:102 #: js/ui/windowManager.js:103
msgid "Revert Settings" msgid "Revert Settings"
msgstr "Врати подешавања" msgstr "Врати подешавања"
#: js/ui/windowManager.js:105 #: js/ui/windowManager.js:106
msgid "Keep Changes" msgid "Keep Changes"
msgstr "Задржи измене" msgstr "Задржи измене"
#: js/ui/windowManager.js:123 #: js/ui/windowManager.js:124
#, javascript-format #, javascript-format
msgid "Settings changes will revert in %d second" msgid "Settings changes will revert in %d second"
msgid_plural "Settings changes will revert in %d seconds" msgid_plural "Settings changes will revert in %d seconds"
@ -1850,7 +1854,7 @@ msgstr[3] "Измене подешавања ће бити враћене за %
#. Translators: This represents the size of a window. The first number is #. Translators: This represents the size of a window. The first number is
#. * the width of the window and the second is the height. #. * the width of the window and the second is the height.
#: js/ui/windowManager.js:678 #: js/ui/windowManager.js:679
#, javascript-format #, javascript-format
msgid "%d × %d" msgid "%d × %d"
msgstr "%d × %d" msgstr "%d × %d"
@ -1887,35 +1891,35 @@ msgstr "Увек на врху"
msgid "Always on Visible Workspace" msgid "Always on Visible Workspace"
msgstr "Увек на приказаном радном простору" msgstr "Увек на приказаном радном простору"
#: js/ui/windowMenu.js:105 #: js/ui/windowMenu.js:103
msgid "Move to Workspace Left" msgid "Move to Workspace Left"
msgstr "Премести на леви радни простор" msgstr "Премести на леви радни простор"
#: js/ui/windowMenu.js:110 #: js/ui/windowMenu.js:108
msgid "Move to Workspace Right" msgid "Move to Workspace Right"
msgstr "Премести на десни радни простор" msgstr "Премести на десни радни простор"
#: js/ui/windowMenu.js:115 #: js/ui/windowMenu.js:113
msgid "Move to Workspace Up" msgid "Move to Workspace Up"
msgstr "Премести на радни простор горе" msgstr "Премести на радни простор горе"
#: js/ui/windowMenu.js:120 #: js/ui/windowMenu.js:118
msgid "Move to Workspace Down" msgid "Move to Workspace Down"
msgstr "Премести на радни простор доле" msgstr "Премести на радни простор доле"
#: js/ui/windowMenu.js:136 #: js/ui/windowMenu.js:134
msgid "Move to Monitor Up" msgid "Move to Monitor Up"
msgstr "Премести на горњи радни простор" msgstr "Премести на горњи радни простор"
#: js/ui/windowMenu.js:142 #: js/ui/windowMenu.js:140
msgid "Move to Monitor Down" msgid "Move to Monitor Down"
msgstr "Премести на доњи радни простор" msgstr "Премести на доњи радни простор"
#: js/ui/windowMenu.js:148 #: js/ui/windowMenu.js:146
msgid "Move to Monitor Left" msgid "Move to Monitor Left"
msgstr "Премести екран улево" msgstr "Премести екран улево"
#: js/ui/windowMenu.js:154 #: js/ui/windowMenu.js:152
msgid "Move to Monitor Right" msgid "Move to Monitor Right"
msgstr "Премести екран удесно" msgstr "Премести екран удесно"
@ -1954,19 +1958,19 @@ msgstr[3] "%u улаз"
msgid "System Sounds" msgid "System Sounds"
msgstr "Системски звуци" msgstr "Системски звуци"
#: src/main.c:381 #: src/main.c:372
msgid "Print version" msgid "Print version"
msgstr "Исписује издање" msgstr "Исписује издање"
#: src/main.c:387 #: src/main.c:378
msgid "Mode used by GDM for login screen" msgid "Mode used by GDM for login screen"
msgstr "Који режим користи ГДМ за екран пријављивања" msgstr "Који режим користи ГДМ за екран пријављивања"
#: src/main.c:393 #: src/main.c:384
msgid "Use a specific mode, e.g. “gdm” for login screen" msgid "Use a specific mode, e.g. “gdm” for login screen"
msgstr "Користи нарочит режим, нпр. „gdm“ за екран пријављивања" msgstr "Користи нарочит режим, нпр. „gdm“ за екран пријављивања"
#: src/main.c:399 #: src/main.c:390
msgid "List possible modes" msgid "List possible modes"
msgstr "Исписује могуће режиме" msgstr "Исписује могуће режиме"

View File

@ -68,7 +68,6 @@ main(int argc, char **argv)
if (clutter_init (&argc, &argv) != CLUTTER_INIT_SUCCESS) if (clutter_init (&argc, &argv) != CLUTTER_INIT_SUCCESS)
return 1; 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); gdk_x11_display_set_window_scale (gdk_display_get_default (), 1);
context = g_option_context_new (NULL); context = g_option_context_new (NULL);

View File

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

View File

@ -448,6 +448,8 @@ load_pixbuf_thread (GTask *result,
g_task_return_error (result, error); g_task_return_error (result, error);
else if (pixbuf) else if (pixbuf)
g_task_return_pointer (result, g_object_ref (pixbuf), g_object_unref); g_task_return_pointer (result, g_object_ref (pixbuf), g_object_unref);
g_clear_object (&pixbuf);
} }
static GdkPixbuf * static GdkPixbuf *
@ -1038,18 +1040,22 @@ on_sliced_image_loaded (GObject *source_object,
GObject *cache = source_object; GObject *cache = source_object;
AsyncImageData *data = (AsyncImageData *)user_data; AsyncImageData *data = (AsyncImageData *)user_data;
GTask *task = G_TASK (res); GTask *task = G_TASK (res);
GList *list; GList *list, *pixbufs;
if (g_task_had_error (task)) if (g_task_had_error (task))
return; return;
for (list = g_task_propagate_pointer (task, NULL); list; list = list->next) pixbufs = g_task_propagate_pointer (task, NULL);
for (list = pixbufs; list; list = list->next)
{ {
ClutterActor *actor = load_from_pixbuf (GDK_PIXBUF (list->data)); ClutterActor *actor = load_from_pixbuf (GDK_PIXBUF (list->data));
clutter_actor_hide (actor); clutter_actor_hide (actor);
clutter_actor_add_child (data->actor, actor); clutter_actor_add_child (data->actor, actor);
} }
g_list_free_full (pixbufs, g_object_unref);
if (data->load_callback != NULL) if (data->load_callback != NULL)
data->load_callback (cache, data->load_callback_data); data->load_callback (cache, data->load_callback_data);
} }
@ -1057,12 +1063,7 @@ on_sliced_image_loaded (GObject *source_object,
static void static void
free_glist_unref_gobjects (gpointer p) free_glist_unref_gobjects (gpointer p)
{ {
GList *list = p; g_list_free_full (p, g_object_unref);
GList *iter;
for (iter = list; iter; iter = iter->next)
g_object_unref (iter->data);
g_list_free (list);
} }
static void static void