Compare commits

..

10 Commits

Author SHA1 Message Date
Jakub Steiner
2eb5df9320 workspace: update window close
- match the updated visuals

https://bugzilla.gnome.org/show_bug.cgi?id=783953
2017-08-10 11:27:39 +02:00
Florian Müllner
6ecfedaa08 workspace: Show window chrome on long-press
Pointer hover and keyboard focus aren't available on touch devices,
so add long-press as alternative to reveal preview title and close
button.

https://bugzilla.gnome.org/show_bug.cgi?id=783953
2017-08-10 11:27:39 +02:00
Florian Müllner
1e6fec0d1e workspace: Move decision to show/hide chrome to clone
Currently the chrome layer decides itself which events on the window
clone should show or hide the chrome, which makes it harder to extent.
Instead, move the decision to the window clone by letting it emit
show/hide-chrome events when appropriate.

https://bugzilla.gnome.org/show_bug.cgi?id=783953
2017-08-10 11:27:39 +02:00
Florian Müllner
ed537da0e0 workspace: Allow full-sized window previews
Previews are currently limited to at most 70% of the actual window
size. This was done to indicate more clearly that the overview is
active and the window cannot be interacted with. However since then
other indications like the vignette effect have been added, so
artificially limiting the preview size doesn't look necessary anymore.

https://bugzilla.gnome.org/show_bug.cgi?id=783953
2017-08-10 11:27:39 +02:00
Florian Müllner
e1ea2a6881 workspace: Don't restrict title width to window preview
Now that only one window title is visible at any time, it no longer
matters if a title extends into other window previews, so we can
always show the full title.

https://bugzilla.gnome.org/show_bug.cgi?id=783953
2017-08-10 11:27:39 +02:00
Florian Müllner
152fc448b7 workspace: Only reveal title captions on hover
While the new title position gives the previews more space, they now
overlay the content which may hide valuable information. Address this
by only revealing the title as additional information on hover, like
we do for other auxiliary elements.

https://bugzilla.gnome.org/show_bug.cgi?id=783953
2017-08-10 11:27:39 +02:00
Florian Müllner
3b59ade4c0 workspace: Reduce spacing between window previews
With the window titles no longer being shown as part of the previews
grid, we can reduce the spacing to have more space available to the
window previews themselves.

https://bugzilla.gnome.org/show_bug.cgi?id=783953
2017-08-10 11:27:39 +02:00
Florian Müllner
90b173a581 workspace: Move window captions
We consider the window previews the primary way to identify a window,
so it makes sense to give them as much space as possible. So in order
to not have title captions take up too much vertical space, overlay
them on top of the preview borders.

https://bugzilla.gnome.org/show_bug.cgi?id=783953
2017-08-10 11:27:39 +02:00
Florian Müllner
6ac53bf5ec overview: Don't expand workspace thumbnails by default
We currently expand the workspace switcher when workspaces are being
used, that is when there are any windows on a non-active workspace.
While this helps with the switcher's discoverability, it does eat into
the space available for window previews. By now the component should
be well established, so we can afford opting for space efficiency and
only expand the switcher while the user actually interacts with it.

https://bugzilla.gnome.org/show_bug.cgi?id=783953
2017-08-10 11:27:39 +02:00
Florian Müllner
7baaf4341a workspaceThumbnails: Reduce maximum thumbnail size
The overview's window picker is primarily about windows, and as the
previews that represent them are more effective the bigger they are,
it makes sense to scale down competing elements; start by reducing
the size of workspace thumbnails on the right ...

https://bugzilla.gnome.org/show_bug.cgi?id=783953
2017-08-10 11:27:39 +02:00
132 changed files with 14091 additions and 20178 deletions

18
.gitignore vendored
View File

@@ -6,8 +6,16 @@
ABOUT-NLS
ChangeLog
INSTALL
Makefile
Makefile.in
aclocal.m4
autom4te.cache
config.h
config.h.in
config.log
config.status
config
configure
data/org.gnome.Shell.desktop
data/org.gnome.Shell.desktop.in
data/gnome-shell-extension-prefs.desktop
@@ -33,9 +41,15 @@ docs/reference/*/*.types
docs/reference/*/html/
docs/reference/*/xml/
docs/reference/shell/doc-gen-*
gtk-doc.make
js/misc/config.js
js/js-resources.c
js/js-resources.h
intltool-extract.in
intltool-merge.in
intltool-update.in
libtool
m4/
man/gnome-shell.1
omf.make
po/*.gmo
@@ -44,6 +58,7 @@ po/*.header
po/*.sed
po/*.sin
po/.intltool-merge-cache
po/Makefile.in.in
po/Makevars.template
po/POTFILES
po/Rules-quot
@@ -53,6 +68,8 @@ src/*.gir
src/*.typelib
src/*-enum-types.[ch]
src/*-marshal.[ch]
src/Makefile
src/Makefile.in
src/calendar-server/evolution-calendar.desktop
src/calendar-server/org.gnome.Shell.CalendarServer.service
src/gnome-shell
@@ -76,6 +93,7 @@ src/st-scroll-view-fade-generated.c
src/stamp-st-scroll-view-fade-generated.c
stamp-h1
tests/run-test.sh
xmldocs.make
*~
*.patch
*.sw?

4
.gitmodules vendored
View File

@@ -1,6 +1,6 @@
[submodule "data/theme/gnome-shell-sass"]
path = data/theme/gnome-shell-sass
url = https://git.gnome.org/browse/gnome-shell-sass
url = git://git.gnome.org/gnome-shell-sass
[submodule "subprojects/gvc"]
path = subprojects/gvc
url = https://git.gnome.org/browse/libgnome-volume-control
url = git://git.gnome.org/libgnome-volume-control

33
Makefile.am Normal file
View File

@@ -0,0 +1,33 @@
# Point to our macro directory and pick up user flags from the environment
ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS}
SUBDIRS = data js subprojects/gvc src tests po docs
if BUILD_BROWSER_PLUGIN
SUBDIRS += browser-plugin
endif
if ENABLE_MAN
SUBDIRS += man
endif
EXTRA_DIST = \
.project \
.settings \
autogen.sh \
tools/check-for-missing.py
# These are files checked into Git that we don't want to distribute
DIST_EXCLUDE = \
.gitignore \
.gitmodules \
gnome-shell.doap \
HACKING \
MAINTAINERS \
tools/build/*
distcheck-hook:
@echo "Checking disted files against files in git"
@$(srcdir)/tools/check-for-missing.py $(srcdir) $(distdir) $(DIST_EXCLUDE)
DISTCHECK_CONFIGURE_FLAGS = --enable-gtk-doc --enable-man

96
NEWS
View File

@@ -1,99 +1,3 @@
3.27.1
======
* Fix using icon-name strings with PopupImageMenuItems [Florian; #789018]
* Misc. bug fixes [Jonas, Florian; #788607, #788943]
Contributors:
Jonas Ådahl, Florian Müllner
Translations:
Xavi Ivars [ca@valencia], Matej Urbančič [sl], Fabio Tomat [fur]
3.26.1
======
* Don't detach launched apps to not break pkexec and friends [Florian; #763531]
* Allow search providers to not autostart [Bastien, Florian; #785380, #787986]
* Fix crash when tray icons are hidden/shown in quick succession [Ray; #787361]
* Make window group switcher more consistent [Didier; #786009]
* Improve legibility of the top bar when translucent [Jakub; #787940]
* Don't crash when running outside a logind session [Florian; #788046]
* Allow to run headless [Mario, Jonas; #730551]
* Update calendar on timezone changes [Martin; #678507]
* Improve keyboard navigation of window previews [Florian; #786546]
* Run unit tests on `meson test` [Florian; #786497]
* Misc. bug fixes [Florian, Marc-Antoine, Mario, Jakub, Krzesimir; #787423,
#766368, #787580, #787907, #787901, #788039, #788003, #786343, #787902,
#788265, #788339, #787905, #788282, #787676]
Contributors:
Martin Andersson, Florian Müllner, Bastien Nocera, Krzesimir Nowak,
Marc-Antoine Perennou, Didier Roche, Mario Sanchez Prada, Jakub Steiner,
Ray Strode
Translations:
Efstathios Iosifidis [el], Khaled Hosny [ar], Stas Solovey [ru],
Arash Mousavi [fa], Sveinn í Felli [is], Athul R T [ml],
Cheng-Chia Tseng [zh_TW], Anders Jonsson [sv]
3.26.0
======
* Misc. bug fixes [Ray, Michael, Jonas; #786332] #786783, #786886, #786868]
Contributors:
Jonas Ådahl, Michael Catanzaro, Sebastian Keller, Ray Strode
Translations:
Daniel Mustieles [es], Fran Dieguez [gl], Baurzhan Muftakhidinov [kk],
Marek Cernocky [cs], Andika Triwidada [id], Aurimas Černius [lt],
Piotr Drąg [pl], Trần Ngọc Quân [vi], Jordi Mas [ca], Fabio Tomat [fur],
gogo [hr], Dušan Kazik [sk], Piotr Drąg [ne], Emin Tufan Çetin [tr],
Ask Hjorth Larsen [da], Cheng-Chia Tseng [zh_TW], Rūdolfs Mazurs [lv],
Balázs Meskó [hu], Matej Urbančič [sl], Jiri Grönroos [fi],
Милош Поповић [sr], Милош Поповић [sr@latin], Rafael Fontenelle [pt_BR],
Wolfgang Stöggl [de], Milo Casagrande [it], hanniedu [nl],
Yuras Shumovich [be], Changwoo Ryu [ko], Alain Lojewski [fr],
Alexander Shopov [bg], Daniel Korostil [uk], Kris Thomsen [da],
A S Alam [pa], Sebastian Rasmussen [sv], Inaki Larranaga Murgoitio [eu],
Jiro Matsuzawa [ja]
3.25.91
=======
* Open context menu of highlighted search result on Shift+F10 [Florian; #675315]
* Fix mid-sentence capitalization in weather forecasts [Florian; #779873]
* Add switcher popup to cycle through monitor configurations [Rui; #783550]
* Offer system actions in search [Rares; #691900]
* Misc. bug fixes [Mario, Florian, Rui; #777519, #786120, #786145, #786419,
#786526, #786520, #786520, #786146]
Contributors:
Emmanuele Bassi, Marek Cernocky, Piotr Drąg, Carlos Garnacho, Rui Matos,
Florian Müllner, Mario Sanchez Prada, Rares Visalom
Translations:
Marek Cernocky [cs], Piotr Drąg [pl], Muhammet Kara [tr],
Мирослав Николић [sr, sr@latin], Kukuh Syafaat [id],
Baurzhan Muftakhidinov [kk], Aurimas Černius [lt], Fran Dieguez [gl],
gogo [hr], Jordi Mas [ca]
3.25.90
=======
* Add permission dialog for inhibiting shortucts [Florian; #783342]
* Improve window picker layout [Florian, Jakub; #783953]
* Remove legacy status icon tray [Florian; #785956]
* Drop autotools support [Florian; #785153]
* Misc. bug fixes [Florian, Carlos, Cosimo; #785090, #785309, #767805,
#747794, #785358, #785556]
Contributors:
Emmanuele Bassi, Cosimo Cecchi, Carlos Garnacho, Florian Müllner,
Jakub Steiner
Translations:
Fabio Tomat [fur], Pawan Chitrakar [ne], Aurimas Černius [lt], gogo [hr],
Daniel Mustieles [es], Baurzhan Muftakhidinov [kk], Matej Urbančič [sl],
Marek Cernocky [cs], Dušan Kazik [sk], Jordi Mas [ca], Fran Dieguez [gl],
Andika Triwidada [id], Anders Jonsson [sv], Balázs Meskó [hu]
3.25.4
======
* gdm: Fix "Not listed" focus indication [Florian; #784040]

35
autogen.sh Executable file
View File

@@ -0,0 +1,35 @@
#!/bin/sh
# Run this to generate all the initial makefiles, etc.
srcdir=`dirname $0`
test -z "$srcdir" && srcdir=.
olddir="$(pwd)"
cd "${srcdir}"
(test -f configure.ac \
&& test -d src) || {
echo -n "**Error**: Directory "\`$srcdir\'" does not look like the"
echo " top-level gnome-shell directory"
exit 1
}
# Fetch submodules if needed
if test ! -f subprojects/gvc/Makefile.am || test ! -f data/theme/gnome-shell-sass/COPYING;
then
echo "+ Setting up submodules"
git submodule init
fi
git submodule update
aclocal --install || exit 1
gtkdocize --copy || exit 1
intltoolize --force --copy --automake || exit 1
autoreconf --verbose --force --install || exit 1
cd "${olddir}"
if [ "$NOCONFIGURE" = "" ]; then
"${srcdir}/configure" "$@" || exit 1
fi

View File

@@ -0,0 +1,23 @@
mozillalibdir = $(BROWSER_PLUGIN_DIR)
mozillalib_LTLIBRARIES = libgnome-shell-browser-plugin.la
# Browsers can unload and reload the module while browsing, which is not supported by GObject.
# We pass -Wl,-z,nodelete to the linker to ensure the module is never unloaded.
# https://bugzilla.gnome.org/show_bug.cgi?id=737932
libgnome_shell_browser_plugin_la_LDFLAGS = -module -avoid-version -no-undefined -Wl,-z,nodelete
libgnome_shell_browser_plugin_la_LIBADD = \
$(BROWSER_PLUGIN_LIBS)
libgnome_shell_browser_plugin_la_SOURCES = \
browser-plugin.c \
npapi/npapi.h \
npapi/npfunctions.h \
npapi/npruntime.h \
npapi/nptypes.h
libgnome_shell_browser_plugin_la_CFLAGS = \
$(BROWSER_PLUGIN_CFLAGS) \
-DG_LOG_DOMAIN=\"GnomeShellBrowserPlugin\"

158
configure vendored
View File

@@ -1,158 +0,0 @@
#!/bin/bash
# configure script adapter for Meson
# Based on build-api: https://github.com/cgwalters/build-api
# Copyright 2010, 2011, 2013 Colin Walters <walters@verbum.org>
# Copyright 2016, 2017 Emmanuele Bassi
# Licensed under the new-BSD license (http://www.opensource.org/licenses/bsd-license.php)
# Build API variables:
# Little helper function for reading args from the commandline.
# it automatically handles -a b and -a=b variants, and returns 1 if
# we need to shift $3.
read_arg() {
# $1 = arg name
# $2 = arg value
# $3 = arg parameter
local rematch='^[^=]*=(.*)$'
if [[ $2 =~ $rematch ]]; then
read "$1" <<< "${BASH_REMATCH[1]}"
else
read "$1" <<< "$3"
# There is no way to shift our callers args, so
# return 1 to indicate they should do it instead.
return 1
fi
}
sanitycheck() {
# $1 = arg name
# $1 = arg command
# $2 = arg alternates
local cmd=$( which $2 2>/dev/null )
if [ -x "$cmd" ]; then
read "$1" <<< "$cmd"
return 0
fi
test -z $3 || {
for alt in $3; do
cmd=$( which $alt 2>/dev/null )
if [ -x "$cmd" ]; then
read "$1" <<< "$cmd"
return 0
fi
done
}
echo -e "\e[1;31mERROR\e[0m: Command '$2' not found"
exit 1
}
sanitycheck MESON 'meson'
sanitycheck NINJA 'ninja' 'ninja-build'
enable_docs='-Denable-gtk-doc=false'
enable_man='-Denable-man=false'
enable_introspection=''
while (($# > 0)); do
case "${1%%=*}" in
--prefix) read_arg prefix "$@" || shift;;
--bindir) read_arg bindir "$@" || shift;;
--sbindir) read_arg sbindir "$@" || shift;;
--libexecdir) read_arg libexecdir "$@" || shift;;
--datarootdir) read_arg datarootdir "$@" || shift;;
--datadir) read_arg datadir "$@" || shift;;
--sysconfdir) read_arg sysconfdir "$@" || shift;;
--libdir) read_arg libdir "$@" || shift;;
--mandir) read_arg mandir "$@" || shift;;
--includedir) read_arg includedir "$@" || shift;;
--enable-gtk-doc) enable_docs='-Denable-gtk-doc=true';;
--disable-gtk-doc) enable_docs='-Denable-gtk-doc=false';;
--enable-man) enable_man='-Denable-man=true';;
--disable-man) enable_man='-Denable-man=false';;
--enable-introspection) enable_introspection='';;
--disable-introspection) enable_introspection='-Ddisable_introspection=true';;
*) echo -e "\e[1;33mINFO\e[0m: Ignoring unknown option '$1'";;
esac
shift
done
# Defaults
test -z ${prefix} && prefix="/usr/local"
test -z ${bindir} && bindir=${prefix}/bin
test -z ${sbindir} && sbindir=${prefix}/sbin
test -z ${libexecdir} && libexecdir=${prefix}/bin
test -z ${datarootdir} && datarootdir=${prefix}/share
test -z ${datadir} && datadir=${datarootdir}
test -z ${sysconfdir} && sysconfdir=${prefix}/etc
test -z ${libdir} && libdir=${prefix}/lib
test -z ${mandir} && mandir=${prefix}/share/man
test -z ${includedir} && includedir=${prefix}/include
# The source directory is the location of this file
srcdir=$(dirname $0)
# The build directory is the current location
builddir=`pwd`
# If we're calling this file from the source directory then
# we automatically create a build directory and ensure that
# both Meson and Ninja invocations are relative to that
# location
if [[ -f "${builddir}/meson.build" ]]; then
mkdir -p _build
builddir="${builddir}/_build"
NINJA_OPT="-C ${builddir}"
fi
# Wrapper Makefile for Ninja
cat > Makefile <<END
# Generated by configure; do not edit
all:
CC="\$(CC)" CXX="\$(CXX)" ${NINJA} ${NINJA_OPT}
install:
DESTDIR="\$(DESTDIR)" ${NINJA} ${NINJA_OPT} install
check:
${MESON} test ${NINJA_OPT}
END
echo "Summary:"
echo " meson:....... ${MESON}"
echo " ninja:....... ${NINJA}"
echo " prefix:...... ${prefix}"
echo " bindir:...... ${bindir}"
echo " sbindir:..... ${sbindir}"
echo " libexecdir:.. ${libexecdir}"
echo " datarootdir:. ${datarootdir}"
echo " datadir:..... ${datadir}"
echo " sysconfdir:.. ${sysconfdir}"
echo " libdir:...... ${libdir}"
echo " mandir:...... ${mandir}"
echo " includedir:.. ${includedir}"
echo " additional:.."
echo " - ${enable_docs} ${enable_man} ${enable_introspection}"
exec ${MESON} \
--prefix=${prefix} \
--libdir=${libdir} \
--libexecdir=${libexecdir} \
--datadir=${datadir} \
--sysconfdir=${sysconfdir} \
--bindir=${bindir} \
--includedir=${includedir} \
--mandir=${mandir} \
--default-library shared \
${enable_docs} \
${enable_man} \
${enable_introspection} \
${builddir} \
${srcdir}
# vim: ai ts=8 noet sts=2 ft=sh

280
configure.ac Normal file
View File

@@ -0,0 +1,280 @@
AC_PREREQ(2.63)
AC_INIT([gnome-shell],[3.25.4],[https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell],[gnome-shell])
AX_IS_RELEASE([git-directory])
AC_CONFIG_HEADERS([config.h])
AC_CONFIG_SRCDIR([src/shell-global.c])
AC_CONFIG_MACRO_DIR([m4])
AC_CONFIG_AUX_DIR([config])
AC_SUBST([PACKAGE_NAME], ["$PACKAGE_NAME"])
AC_SUBST([PACKAGE_VERSION], ["$PACKAGE_VERSION"])
AM_INIT_AUTOMAKE([1.11 no-dist-gzip dist-xz tar-ustar foreign])
AM_MAINTAINER_MODE([enable])
m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])])
# Checks for programs.
AC_PROG_CC
# Initialize libtool
LT_PREREQ([2.2.6])
LT_INIT([disable-static])
# i18n
GETTEXT_PACKAGE=gnome-shell
AC_SUBST(GETTEXT_PACKAGE)
AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE",
[The prefix for our gettext translation domains.])
AM_GNU_GETTEXT_VERSION([0.19.6])
AM_GNU_GETTEXT([external])
PKG_PROG_PKG_CONFIG([0.22])
AC_PATH_PROG([XSLTPROC], [xsltproc])
GLIB_GSETTINGS
# Get a value to substitute into gnome-shell.in
AM_PATH_PYTHON([3])
AC_SUBST(PYTHON)
# We depend on a specific version of the libmutter API. The mutter variants of
# the Cogl and Clutter libraries also use this API version.
LIBMUTTER_API_VERSION=1
LIBMUTTER=libmutter-$LIBMUTTER_API_VERSION
LIBMUTTER_COGL=mutter-cogl-$LIBMUTTER_API_VERSION
LIBMUTTER_COGL_PANGO=mutter-cogl-pango-$LIBMUTTER_API_VERSION
LIBMUTTER_CLUTTER=mutter-clutter-$LIBMUTTER_API_VERSION
# We need at least this, since gst_plugin_register_static() was added
# in 0.10.16, but nothing older than 0.10.21 has been tested.
GSTREAMER_MIN_VERSION=0.11.92
recorder_modules=
build_recorder=false
AC_MSG_CHECKING([for GStreamer (needed for recording functionality)])
if $PKG_CONFIG --exists gstreamer-1.0 '>=' $GSTREAMER_MIN_VERSION ; then
AC_MSG_RESULT(yes)
build_recorder=true
recorder_modules="gstreamer-1.0 gstreamer-base-1.0 x11 gtk+-3.0"
else
AC_MSG_RESULT(no)
fi
AM_CONDITIONAL(BUILD_RECORDER, $build_recorder)
AC_ARG_ENABLE([systemd],
AS_HELP_STRING([--enable-systemd], [Use systemd]),
[enable_systemd=$enableval],
[enable_systemd=auto])
AS_IF([test x$enable_systemd != xno], [
AC_MSG_CHECKING([for libsystemd])
PKG_CHECK_EXISTS([libsystemd],
[have_systemd=yes
AC_DEFINE([HAVE_SYSTEMD], [1], [Define if we have systemd])],
[have_systemd=no])
AC_MSG_RESULT($have_systemd)
])
AC_MSG_RESULT($enable_systemd)
GOBJECT_INTROSPECTION_MIN_VERSION=1.49.1
GJS_MIN_VERSION=1.47.0
MUTTER_MIN_VERSION=3.25.3
GTK_MIN_VERSION=3.15.0
GIO_MIN_VERSION=2.53.0
LIBECAL_MIN_VERSION=3.5.3
LIBEDATASERVER_MIN_VERSION=3.17.2
POLKIT_MIN_VERSION=0.100
STARTUP_NOTIFICATION_MIN_VERSION=0.11
GCR_MIN_VERSION=3.7.5
GNOME_DESKTOP_REQUIRED_VERSION=3.7.90
NETWORKMANAGER_MIN_VERSION=0.9.8
PULSE_MIN_VERS=2.0
# Collect more than 20 libraries for a prize!
SHARED_PCS="gio-unix-2.0 >= $GIO_MIN_VERSION
libxml-2.0
gtk+-3.0 >= $GTK_MIN_VERSION
atk-bridge-2.0
gjs-1.0 >= $GJS_MIN_VERSION
$recorder_modules
gdk-x11-3.0 libsoup-2.4
$LIBMUTTER_CLUTTER >= $MUTTER_MIN_VERSION
$LIBMUTTER_COGL_PANGO
libstartup-notification-1.0 >= $STARTUP_NOTIFICATION_MIN_VERSION
gobject-introspection-1.0 >= $GOBJECT_INTROSPECTION_MIN_VERSION
libcanberra libcanberra-gtk3
polkit-agent-1 >= $POLKIT_MIN_VERSION
gcr-base-3 >= $GCR_MIN_VERSION"
if test x$have_systemd = xyes; then
SHARED_PCS="${SHARED_PCS} libsystemd"
fi
PKG_CHECK_MODULES(GNOME_SHELL, $SHARED_PCS)
PKG_CHECK_MODULES(MUTTER, $LIBMUTTER >= $MUTTER_MIN_VERSION)
PKG_CHECK_MODULES(GNOME_SHELL_JS, gio-2.0 gjs-1.0 >= $GJS_MIN_VERSION)
PKG_CHECK_MODULES(ST, $LIBMUTTER_CLUTTER gtk+-3.0 libcroco-0.6 >= 0.6.8 x11)
PKG_CHECK_MODULES(SHELL_PERF_HELPER, gtk+-3.0 gio-2.0)
PKG_CHECK_MODULES(SHELL_HOTPLUG_SNIFFER, gio-2.0 gdk-pixbuf-2.0)
PKG_CHECK_MODULES(TRAY, $LIBMUTTER_CLUTTER gtk+-3.0)
PKG_CHECK_MODULES(GVC, libpulse >= $PULSE_MIN_VERS libpulse-mainloop-glib gobject-2.0)
PKG_CHECK_MODULES(DESKTOP_SCHEMAS, gsettings-desktop-schemas >= 3.21.3)
AC_SUBST(LIBMUTTER_API_VERSION)
AC_ARG_ENABLE(browser-plugin,
[AS_HELP_STRING([--enable-browser-plugin],
[Enable browser plugin [default=yes]])],,
enable_browser_plugin=yes)
AS_IF([test x$enable_browser_plugin = xyes], [
PKG_CHECK_MODULES(BROWSER_PLUGIN, gio-2.0 >= $GIO_MIN_VERSION json-glib-1.0 >= 0.13.2)
])
AM_CONDITIONAL(BUILD_BROWSER_PLUGIN, test x$enable_browser_plugin = xyes)
PKG_CHECK_MODULES(BLUETOOTH, gnome-bluetooth-1.0 >= 3.9.0,
[AC_DEFINE([HAVE_BLUETOOTH],[1],[Define if you have libgnome-bluetooth-applet])
AC_SUBST([HAVE_BLUETOOTH],[1])],
[AC_DEFINE([HAVE_BLUETOOTH],[0])
AC_SUBST([HAVE_BLUETOOTH],[0])])
PKG_CHECK_MODULES(CALENDAR_SERVER, libecal-1.2 >= $LIBECAL_MIN_VERSION libedataserver-1.2 >= $LIBEDATASERVER_MIN_VERSION gio-2.0)
AC_SUBST(CALENDAR_SERVER_CFLAGS)
AC_SUBST(CALENDAR_SERVER_LIBS)
GNOME_KEYBINDINGS_KEYSDIR=`$PKG_CONFIG --variable keysdir gnome-keybindings`
AC_SUBST([GNOME_KEYBINDINGS_KEYSDIR])
GOBJECT_INTROSPECTION_CHECK([$GOBJECT_INTROSPECTION_MIN_VERSION])
MUTTER_GIR_DIR=`$PKG_CONFIG --variable=girdir $LIBMUTTER`
AC_SUBST(MUTTER_GIR_DIR)
MUTTER_TYPELIB_DIR=`$PKG_CONFIG --variable=typelibdir $LIBMUTTER`
AC_SUBST(MUTTER_TYPELIB_DIR)
GLIB_COMPILE_RESOURCES=`$PKG_CONFIG --variable glib_compile_resources gio-2.0`
AC_SUBST(GLIB_COMPILE_RESOURCES)
AC_CHECK_FUNCS(fdwalk)
AC_CHECK_FUNCS(mallinfo)
AC_CHECK_HEADERS([sys/resource.h])
# _NL_TIME_FIRST_WEEKDAY is an enum and not a define
AC_MSG_CHECKING([for _NL_TIME_FIRST_WEEKDAY])
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <langinfo.h>]],
[[nl_langinfo(_NL_TIME_FIRST_WEEKDAY);]])],
[langinfo_ok=yes], [langinfo_ok=no])
AC_MSG_RESULT($langinfo_ok)
if test "$langinfo_ok" = "yes"; then
AC_DEFINE([HAVE__NL_TIME_FIRST_WEEKDAY], [1],
[Define if _NL_TIME_FIRST_WEEKDAY is available])
fi
AC_ARG_ENABLE(networkmanager,
AS_HELP_STRING([--disable-networkmanager],
[disable NetworkManager support @<:@default=auto@:>@]),,
[enable_networkmanager=auto])
if test "x$enable_networkmanager" != "xno"; then
PKG_CHECK_MODULES(NETWORKMANAGER,
[libnm-glib
libnm-util >= $NETWORKMANAGER_MIN_VERSION
libnm-gtk >= $NETWORKMANAGER_MIN_VERSION
libsecret-1 >= 0.18],
[have_networkmanager=yes],
[have_networkmanager=no])
GNOME_SHELL_CFLAGS="$GNOME_SHELL_CFLAGS $NETWORKMANAGER_CFLAGS"
GNOME_SHELL_LIBS="$GNOME_SHELL_LIBS $NETWORKMANAGER_LIBS"
else
have_networkmanager="no (disabled)"
fi
if test "x$have_networkmanager" = "xyes"; then
AC_DEFINE(HAVE_NETWORKMANAGER, [1], [Define if we have NetworkManager])
AC_SUBST([HAVE_NETWORKMANAGER], [1])
else
if test "x$enable_networkmanager" = "xyes"; then
AC_MSG_ERROR([Couldn't find NetworkManager.])
fi
AC_SUBST([HAVE_NETWORKMANAGER], [0])
fi
AM_CONDITIONAL(HAVE_NETWORKMANAGER, test "$have_networkmanager" = "yes")
# Sets GLIB_GENMARSHAL and GLIB_MKENUMS
AM_PATH_GLIB_2_0()
GTK_DOC_CHECK([1.15], [--flavour no-tmpl])
AC_ARG_ENABLE(man,
[AS_HELP_STRING([--enable-man],
[generate man pages [default=yes]])],,
enable_man=yes)
if test "$enable_man" != no; then
AC_PATH_PROG([XSLTPROC], [xsltproc])
if test -z "$XSLTPROC"; then
AC_MSG_ERROR([xsltproc is required for --enable-man])
fi
fi
AM_CONDITIONAL(ENABLE_MAN, test "$enable_man" != no)
AX_COMPILER_FLAGS()
case "$WARN_CFLAGS" in
*-Werror*)
WARN_CFLAGS="$WARN_CFLAGS -Wno-error=deprecated-declarations"
;;
esac
AM_CFLAGS="$AM_CFLAGS $WARN_CFLAGS"
AC_SUBST(AM_CFLAGS)
if test -z "${BROWSER_PLUGIN_DIR}"; then
BROWSER_PLUGIN_DIR="\${libdir}/mozilla/plugins"
fi
AC_ARG_VAR([BROWSER_PLUGIN_DIR],[Where to install the plugin to])
AC_ARG_VAR([GDBUS_CODEGEN],[the gdbus-codegen programme])
AC_PATH_PROG([GDBUS_CODEGEN],[gdbus-codegen],[])
if test -z "$GDBUS_CODEGEN"; then
AC_MSG_ERROR([gdbus-codegen not found])
fi
AC_PATH_PROG([SASSC],[sassc],[])
AC_CONFIG_FILES([
Makefile
data/Makefile
docs/Makefile
docs/reference/Makefile
docs/reference/shell/Makefile
docs/reference/shell/version.xml
docs/reference/st/Makefile
docs/reference/st/version.xml
js/Makefile
src/Makefile
subprojects/gvc/Makefile
browser-plugin/Makefile
tests/Makefile
po/Makefile.in
man/Makefile
])
AC_OUTPUT
echo "
Build configuration:
Prefix: ${prefix}
Source code location: ${srcdir}
Compiler: ${CC}
Compiler Warnings: $ax_enable_compile_warnings
Support for NetworkManager: $have_networkmanager
Support for GStreamer recording: $build_recorder
"

136
data/Makefile.am Normal file
View File

@@ -0,0 +1,136 @@
CLEANFILES =
NULL =
portaldir = $(datadir)/xdg-desktop-portal/portals
portal_DATA = gnome-shell.portal
desktopdir=$(datadir)/applications
desktop_DATA = org.gnome.Shell.desktop gnome-shell-extension-prefs.desktop
if HAVE_NETWORKMANAGER
desktop_DATA += org.gnome.Shell.PortalHelper.desktop
servicedir = $(datadir)/dbus-1/services
service_DATA = org.gnome.Shell.PortalHelper.service
CLEANFILES += \
org.gnome.Shell.PortalHelper.service \
org.gnome.Shell.PortalHelper.desktop \
org.gnome.Shell.PortalHelper.desktop.in \
$(NULL)
endif
%.service: %.service.in
$(AM_V_GEN) sed -e "s|@libexecdir[@]|$(libexecdir)|" \
$< > $@ || rm $@
# We substitute in bindir so it works as an autostart
# file when built in a non-system prefix
%.desktop.in:%.desktop.in.in
$(AM_V_GEN) sed -e "s|@bindir[@]|$(bindir)|" \
-e "s|@VERSION[@]|$(VERSION)|" \
$< > $@ || rm $@
%.desktop:%.desktop.in
$(AM_V_GEN) $(MSGFMT) --desktop --template $(builddir)/$< \
-d $(top_srcdir)/po -o $@
introspectiondir = $(datadir)/dbus-1/interfaces
introspection_DATA = \
org.gnome.Shell.PadOsd.xml \
org.gnome.Shell.Screencast.xml \
org.gnome.Shell.Screenshot.xml \
org.gnome.ShellSearchProvider.xml \
org.gnome.ShellSearchProvider2.xml \
$(NULL)
theme_sources = \
theme/gnome-shell-high-contrast.scss \
theme/gnome-shell.scss \
theme/gnome-shell-sass/_colors.scss \
theme/gnome-shell-sass/_common.scss \
theme/gnome-shell-sass/_drawing.scss \
theme/gnome-shell-sass/_high-contrast-colors.scss \
$(NULL)
dist_theme_files = \
$(theme_sources) \
theme/HACKING \
theme/README \
theme/gnome-shell-sass/COPYING \
theme/gnome-shell-sass/HACKING \
theme/gnome-shell-sass/NEWS \
theme/gnome-shell-sass/README \
theme/gnome-shell-sass/gnome-shell-sass.doap \
theme/pad-osd.css \
theme/parse-sass.sh \
$(NULL)
%.css: %.scss $(theme_sources)
@if test -n "$(SASSC)"; then \
if $(AM_V_P); then PS4= set -x; else echo " GEN $@"; fi; \
$(SASSC) -a $< $@; \
fi
resource_files = $(shell $(GLIB_COMPILE_RESOURCES) --sourcedir=$(srcdir)/theme --generate-dependencies $(srcdir)/gnome-shell-theme.gresource.xml)
gnome-shell-theme.gresource: gnome-shell-theme.gresource.xml $(resource_files)
$(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) --target=$@ --sourcedir=$(srcdir)/theme $<
resourcedir = $(pkgdatadir)
resource_DATA = gnome-shell-theme.gresource
backgrounddir = $(pkgdatadir)
background_DATA = perf-background.xml
perf-background.xml: perf-background.xml.in
$(AM_V_GEN) sed -e "s|@datadir[@]|$(datadir)|" \
$< > $@ || rm $@
keysdir = @GNOME_KEYBINDINGS_KEYSDIR@
keys_DATA = 50-gnome-shell-system.xml
gsettings_SCHEMAS = org.gnome.shell.gschema.xml
%.gschema.xml: %.gschema.xml.in Makefile
$(AM_V_GEN) sed -e 's|@GETTEXT_PACKAGE[@]|$(GETTEXT_PACKAGE)|g' \
$< > $@ || rm $@
@GSETTINGS_RULES@
# We need to compile schemas at make time
# to run from source tree
gschemas.compiled: $(gsettings_SCHEMAS:.xml=.valid)
$(AM_V_GEN) $(GLIB_COMPILE_SCHEMAS) --targetdir=. .
all-local: gschemas.compiled
convertdir = $(datadir)/GConf/gsettings
convert_DATA = gnome-shell-overrides.convert
EXTRA_DIST = \
org.gnome.Shell.desktop.in.in \
gnome-shell-extension-prefs.desktop.in.in \
$(portal_DATA) \
$(introspection_DATA) \
$(menu_DATA) \
$(convert_DATA) \
$(keys_DATA) \
$(dist_theme_files) \
perf-background.xml.in \
org.gnome.Shell.PortalHelper.desktop.in.in \
org.gnome.Shell.PortalHelper.service.in \
org.gnome.shell.gschema.xml.in \
gnome-shell-theme.gresource.xml \
$(resource_files) \
$(NULL)
CLEANFILES += \
org.gnome.Shell.desktop.in \
gnome-shell-extension-prefs.in \
$(desktop_DATA) \
$(gsettings_SCHEMAS) \
perf-background.xml \
gschemas.compiled \
org.gnome.shell.gschema.valid \
gnome-shell-theme.gresource \
$(NULL)

View File

@@ -9,8 +9,6 @@
<file>checkbox-off.svg</file>
<file>checkbox.svg</file>
<file>close-window.svg</file>
<file>close-window-active.svg</file>
<file>close-window-hover.svg</file>
<file>close.svg</file>
<file>corner-ripple-ltr.png</file>
<file>corner-ripple-rtl.png</file>
@@ -20,7 +18,6 @@
<file>gnome-shell.css</file>
<file>gnome-shell-high-contrast.css</file>
<file>logged-in-indicator.svg</file>
<file alias="icons/message-indicator-symbolic.svg">message-indicator-symbolic.svg</file>
<file>no-events.svg</file>
<file>no-notifications.svg</file>
<file>noise-texture.png</file>

View File

@@ -78,18 +78,11 @@ install_data('50-gnome-shell-system.xml', install_dir: keysdir)
schemaconf = configuration_data()
schemaconf.set('GETTEXT_PACKAGE', meson.project_name())
schema = configure_file(
configure_file(
input: 'org.gnome.shell.gschema.xml.in',
output: 'org.gnome.shell.gschema.xml',
configuration: schemaconf,
install_dir: schemadir
)
# for unit tests - gnome.compile_schemas() only looks in srcdir
custom_target('compile-schemas',
input: schema,
output: 'gschemas.compiled',
command: [find_program('glib-compile-schemas'), meson.current_build_dir()],
build_by_default: true)
install_data('gnome-shell-overrides.convert', install_dir: convertdir)

View File

@@ -1,81 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Generator: Adobe Illustrator 13.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 14948) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.0"
id="Foreground"
x="0px"
y="0px"
width="32"
height="32"
viewBox="0 0 32 32"
enable-background="new 0 0 16 16"
xml:space="preserve"
sodipodi:version="0.32"
inkscape:version="0.92.2 5c3e80d, 2017-08-06"
sodipodi:docname="close-window-active.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"><metadata
id="metadata2399"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
id="defs2397"><linearGradient
id="linearGradient3173"><stop
style="stop-color:#c4c4c4;stop-opacity:1;"
offset="0"
id="stop3175" /><stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="1"
id="stop3177" /></linearGradient><inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 11 : 1"
inkscape:vp_y="0 : 1375 : 0"
inkscape:vp_z="22 : 11 : 1"
inkscape:persp3d-origin="11 : 7.3333334 : 1"
id="perspective2401" /></defs><sodipodi:namedview
inkscape:window-height="1106"
inkscape:window-width="1700"
inkscape:pageshadow="2"
inkscape:pageopacity="0"
guidetolerance="10.0"
gridtolerance="10.0"
objecttolerance="10.0"
borderopacity="1.0"
bordercolor="#666666"
pagecolor="#797979"
id="base"
showgrid="false"
inkscape:zoom="4"
inkscape:cx="28.483745"
inkscape:cy="67.714004"
inkscape:window-x="1427"
inkscape:window-y="127"
inkscape:current-layer="Foreground"
showguides="true"
inkscape:guide-bbox="true"
borderlayer="true"
inkscape:showpageshadow="false"
inkscape:window-maximized="0"
inkscape:document-rotation="0"><inkscape:grid
type="xygrid"
id="grid11246"
empspacing="32"
visible="true"
enabled="true"
snapvisiblegridlinesonly="true" /></sodipodi:namedview><path
d="m 4.4362021,16 c 0,-6.410121 5.1728276,-11.60728 11.5529359,-11.60728 6.380109,0 11.552937,5.197159 11.552937,11.60728 0,6.410122 -5.172828,11.607281 -11.552937,11.607281 C 9.6090297,27.607281 4.4362021,22.410122 4.4362021,16 Z"
id="path883"
style="color:#000000;clip-rule:evenodd;display:inline;overflow:visible;visibility:visible;fill:#a5c8ec;fill-opacity:1;fill-rule:nonzero;stroke:#2975c4;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
sodipodi:nodetypes="csssc"
inkscape:connector-curvature="0" /><path
d="m 11.718386,11.764547 h 1.055207 c 0.01091,-1.26e-4 0.02193,-4.86e-4 0.03298,0 0.269026,0.01183 0.538019,0.135679 0.725455,0.329752 l 2.407192,2.407192 2.440166,-2.407192 c 0.28029,-0.243226 0.471333,-0.322366 0.725455,-0.329752 h 1.055207 v 1.055208 c 0,0.302285 -0.03623,0.581049 -0.263801,0.791405 l -2.407191,2.407191 2.374217,2.374216 c 0.198577,0.198559 0.296768,0.478484 0.296775,0.758432 v 1.055206 h -1.055211 c -0.279947,-10e-6 -0.559877,-0.09824 -0.75843,-0.296777 l -2.407192,-2.407192 -2.407192,2.407192 c -0.198551,0.198579 -0.478493,0.296777 -0.758429,0.296777 H 11.71839 v -1.055206 c -3e-6,-0.279936 0.0982,-0.559873 0.296777,-0.758432 L 14.422359,16.018351 12.015167,13.61116 C 11.79279,13.405784 11.69527,13.116003 11.71839,12.819755 Z"
inkscape:connector-curvature="0"
id="path887"
style="color:#bebebe;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:'Andale Mono';-inkscape-font-specification:'Andale Mono';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-anchor:start;display:inline;overflow:visible;visibility:visible;fill:#4a90d9;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.87958801;marker:none;enable-background:new"
sodipodi:nodetypes="ccsccccccccccccccccccccccc" /></svg>

Before

Width:  |  Height:  |  Size: 4.6 KiB

View File

@@ -1,81 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Generator: Adobe Illustrator 13.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 14948) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.0"
id="Foreground"
x="0px"
y="0px"
width="32"
height="32"
viewBox="0 0 32 32"
enable-background="new 0 0 16 16"
xml:space="preserve"
sodipodi:version="0.32"
inkscape:version="0.92.2 5c3e80d, 2017-08-06"
sodipodi:docname="close-window-hover.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"><metadata
id="metadata2399"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs
id="defs2397"><linearGradient
id="linearGradient3173"><stop
style="stop-color:#c4c4c4;stop-opacity:1;"
offset="0"
id="stop3175" /><stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="1"
id="stop3177" /></linearGradient><inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 11 : 1"
inkscape:vp_y="0 : 1375 : 0"
inkscape:vp_z="22 : 11 : 1"
inkscape:persp3d-origin="11 : 7.3333334 : 1"
id="perspective2401" /></defs><sodipodi:namedview
inkscape:window-height="1106"
inkscape:window-width="1700"
inkscape:pageshadow="2"
inkscape:pageopacity="0"
guidetolerance="10.0"
gridtolerance="10.0"
objecttolerance="10.0"
borderopacity="1.0"
bordercolor="#666666"
pagecolor="#797979"
id="base"
showgrid="false"
inkscape:zoom="4"
inkscape:cx="28.483745"
inkscape:cy="67.714004"
inkscape:window-x="1427"
inkscape:window-y="127"
inkscape:current-layer="Foreground"
showguides="true"
inkscape:guide-bbox="true"
borderlayer="true"
inkscape:showpageshadow="false"
inkscape:window-maximized="0"
inkscape:document-rotation="0"><inkscape:grid
type="xygrid"
id="grid11246"
empspacing="32"
visible="true"
enabled="true"
snapvisiblegridlinesonly="true" /></sodipodi:namedview><path
inkscape:connector-curvature="0"
sodipodi:nodetypes="csssc"
style="color:#000000;clip-rule:evenodd;display:inline;overflow:visible;visibility:visible;fill:#2975c4;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
id="path822"
d="m 4.4362021,16 c 0,-6.410121 5.1728276,-11.60728 11.5529359,-11.60728 6.380109,0 11.552937,5.197159 11.552937,11.60728 0,6.410122 -5.172828,11.607281 -11.552937,11.607281 C 9.6090297,27.607281 4.4362021,22.410122 4.4362021,16 Z" /><path
sodipodi:nodetypes="ccsccccccccccccccccccccccc"
style="color:#bebebe;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:'Andale Mono';-inkscape-font-specification:'Andale Mono';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-anchor:start;display:inline;overflow:visible;visibility:visible;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.87958801;marker:none;enable-background:new"
id="path826"
inkscape:connector-curvature="0"
d="m 11.718386,11.764547 h 1.055207 c 0.01091,-1.26e-4 0.02193,-4.86e-4 0.03298,0 0.269026,0.01183 0.538019,0.135679 0.725455,0.329752 l 2.407192,2.407192 2.440166,-2.407192 c 0.28029,-0.243226 0.471333,-0.322366 0.725455,-0.329752 h 1.055207 v 1.055208 c 0,0.302285 -0.03623,0.581049 -0.263801,0.791405 l -2.407191,2.407191 2.374217,2.374216 c 0.198577,0.198559 0.296768,0.478484 0.296775,0.758432 v 1.055206 h -1.055211 c -0.279947,-10e-6 -0.559877,-0.09824 -0.75843,-0.296777 l -2.407192,-2.407192 -2.407192,2.407192 c -0.198551,0.198579 -0.478493,0.296777 -0.758429,0.296777 H 11.71839 v -1.055206 c -3e-6,-0.279936 0.0982,-0.559873 0.296777,-0.758432 L 14.422359,16.018351 12.015167,13.61116 C 11.79279,13.405784 11.69527,13.116003 11.71839,12.819755 Z" /></svg>

Before

Width:  |  Height:  |  Size: 4.6 KiB

View File

@@ -19,7 +19,7 @@
enable-background="new 0 0 16 16"
xml:space="preserve"
sodipodi:version="0.32"
inkscape:version="0.92.2 5c3e80d, 2017-08-06"
inkscape:version="0.92+devel unknown"
sodipodi:docname="close-window.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"><metadata
id="metadata2399"><rdf:RDF><cc:Work
@@ -39,8 +39,8 @@
inkscape:vp_z="22 : 11 : 1"
inkscape:persp3d-origin="11 : 7.3333334 : 1"
id="perspective2401" /></defs><sodipodi:namedview
inkscape:window-height="1106"
inkscape:window-width="1700"
inkscape:window-height="1376"
inkscape:window-width="3440"
inkscape:pageshadow="2"
inkscape:pageopacity="0"
guidetolerance="10.0"
@@ -51,27 +51,28 @@
pagecolor="#797979"
id="base"
showgrid="false"
inkscape:zoom="4"
inkscape:cx="28.483745"
inkscape:cy="67.714004"
inkscape:window-x="1427"
inkscape:window-y="127"
inkscape:zoom="8"
inkscape:cx="-17.664395"
inkscape:cy="7.2420799"
inkscape:window-x="0"
inkscape:window-y="27"
inkscape:current-layer="Foreground"
showguides="true"
inkscape:guide-bbox="true"
borderlayer="true"
inkscape:showpageshadow="false"
inkscape:window-maximized="0"
inkscape:window-maximized="1"
inkscape:document-rotation="0"><inkscape:grid
type="xygrid"
id="grid11246"
empspacing="32"
empspacing="5"
visible="true"
enabled="true"
snapvisiblegridlinesonly="true" /></sodipodi:namedview><path
d="m 4.4362021,15.860384 c 0,-6.410121 5.1728276,-11.60728 11.5529359,-11.60728 6.380109,0 11.552937,5.197159 11.552937,11.60728 0,6.410122 -5.172828,11.607281 -11.552937,11.607281 -6.3801083,0 -11.5529359,-5.197159 -11.5529359,-11.607281 z"
clip-rule="evenodd"
d="m 4.4362021,15.860384 c 0,-6.410121 5.1728276,-11.6072804 11.5529359,-11.6072804 6.380109,0 11.552937,5.1971594 11.552937,11.6072804 0,6.410122 -5.172828,11.607281 -11.552937,11.607281 -6.3801083,0 -11.5529359,-5.197159 -11.5529359,-11.607281 z"
id="path2394-32"
style="color:#000000;clip-rule:evenodd;display:inline;overflow:visible;visibility:visible;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#2975c4;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#2975c4;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
sodipodi:nodetypes="csssc"
inkscape:connector-curvature="0" /><path
style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:0.49900004;fill:#4a90d9;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.74932218;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"

Before

Width:  |  Height:  |  Size: 5.3 KiB

After

Width:  |  Height:  |  Size: 5.3 KiB

View File

@@ -657,7 +657,7 @@ StScrollBar {
/* TOP BAR */
#panel {
background-color: rgba(0, 0, 0, 0.35);
background-color: rgba(0, 0, 0, 0.2);
/* transition from solid to transparent */
transition-duration: 500ms;
font-weight: bold;
@@ -668,7 +668,7 @@ StScrollBar {
spacing: 4px; }
#panel .panel-corner {
-panel-corner-radius: 6px;
-panel-corner-background-color: rgba(0, 0, 0, 0.35);
-panel-corner-background-color: rgba(0, 0, 0, 0.2);
-panel-corner-border-width: 2px;
-panel-corner-border-color: transparent; }
#panel .panel-corner:active, #panel .panel-corner:overview, #panel .panel-corner:focus {
@@ -682,7 +682,7 @@ StScrollBar {
-minimum-hpadding: 6px;
font-weight: bold;
color: #eee;
text-shadow: 0px 1px 2px rgba(0, 0, 0, 0.9);
text-shadow: 0px 0px 2px rgba(0, 0, 0, 0.9);
transition-duration: 100ms; }
#panel .panel-button .app-menu-icon {
-st-icon-style: symbolic;
@@ -691,14 +691,14 @@ StScrollBar {
#panel .panel-button .system-status-icon,
#panel .panel-button .app-menu-icon > StIcon,
#panel .panel-button .popup-menu-arrow {
icon-shadow: 0px 1px 2px rgba(0, 0, 0, 0.9); }
icon-shadow: 0px 0px 2px rgba(0, 0, 0, 0.9); }
#panel .panel-button:hover {
color: white;
text-shadow: 0px 1px 6px black; }
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 1px 6px black; }
icon-shadow: 0px 0px 8px black; }
#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;
@@ -918,17 +918,17 @@ StScrollBar {
background-color: #0d0d0d; }
.message-icon-bin {
padding: 0.68em 0.2em 0.68em 0.68em; }
padding: 10px 3px 10px 10px; }
.message-icon-bin:rtl {
padding: 0.68em 0.68em 0.68em 0.2em; }
padding: 10px 10px 10px 3px; }
.message-icon-bin > StIcon {
color: #cccccc;
icon-size: 1.09em;
icon-size: 16px;
-st-icon-style: symbolic; }
.message-secondary-bin {
padding: 0 0.82em; }
padding: 0 12px; }
.message-secondary-bin > .event-time {
color: #999999;
@@ -938,7 +938,7 @@ StScrollBar {
padding-bottom: 0.13em; }
.message-secondary-bin > StIcon {
icon-size: 1.09em; }
icon-size: 16px; }
.message-title {
color: #f2f2f2; }
@@ -1025,12 +1025,12 @@ StScrollBar {
background-image: url("resource:///org/gnome/shell/theme/close-window.svg");
background-size: 32px;
height: 32px;
width: 32px;
width: 32px; }
.window-close {
-shell-close-overlap: 16px; }
.window-close:hover {
background-image: url("resource:///org/gnome/shell/theme/close-window-hover.svg"); }
.window-close:active {
background-image: url("resource:///org/gnome/shell/theme/close-window-active.svg"); }
.window-close:rtl {
-st-background-image-shadow: 2px 2px 6px rgba(0, 0, 0, 0.5); }
/* NETWORK DIALOGS */
.nm-dialog {
@@ -1210,12 +1210,6 @@ StScrollBar {
.icon-grid .overview-icon {
icon-size: 96px; }
.system-action-icon {
background-color: black;
color: white;
border-radius: 99px;
icon-size: 48px; }
.app-view-controls {
padding-bottom: 32px; }
@@ -1485,6 +1479,38 @@ StScrollBar {
color: pink; }
/* Eeeky things */
.legacy-tray {
background-color: #000;
border: 1px solid black;
border-bottom-width: 0; }
.legacy-tray:ltr {
border-radius: 0 6px 0 0;
border-left-width: 0; }
.legacy-tray:rtl {
border-radius: 6px 0 0 0;
border-right-width: 0; }
.legacy-tray-handle,
.legacy-tray-icon {
padding: 6px; }
.legacy-tray-handle StIcon,
.legacy-tray-icon StIcon {
icon-size: 24px; }
.legacy-tray-handle:hover, .legacy-tray-handle:focus,
.legacy-tray-icon:hover,
.legacy-tray-icon:focus {
background-color: rgba(255, 255, 255, 0.1); }
.legacy-tray-icon-box {
spacing: 12px; }
.legacy-tray-icon-box:ltr {
padding-left: 12px; }
.legacy-tray-icon-box:rtl {
padding-right: 12px; }
.legacy-tray-icon-box StButton {
width: 24px;
height: 24px; }
.magnifier-zoom-region {
border: 2px solid #215d9c; }
.magnifier-zoom-region.full-screen {

View File

@@ -657,7 +657,7 @@ StScrollBar {
/* TOP BAR */
#panel {
background-color: rgba(0, 0, 0, 0.35);
background-color: rgba(0, 0, 0, 0.2);
/* transition from solid to transparent */
transition-duration: 500ms;
font-weight: bold;
@@ -668,7 +668,7 @@ StScrollBar {
spacing: 4px; }
#panel .panel-corner {
-panel-corner-radius: 6px;
-panel-corner-background-color: rgba(0, 0, 0, 0.35);
-panel-corner-background-color: rgba(0, 0, 0, 0.2);
-panel-corner-border-width: 2px;
-panel-corner-border-color: transparent; }
#panel .panel-corner:active, #panel .panel-corner:overview, #panel .panel-corner:focus {
@@ -682,7 +682,7 @@ StScrollBar {
-minimum-hpadding: 6px;
font-weight: bold;
color: #eee;
text-shadow: 0px 1px 2px rgba(0, 0, 0, 0.9);
text-shadow: 0px 0px 2px rgba(0, 0, 0, 0.9);
transition-duration: 100ms; }
#panel .panel-button .app-menu-icon {
-st-icon-style: symbolic;
@@ -691,14 +691,14 @@ StScrollBar {
#panel .panel-button .system-status-icon,
#panel .panel-button .app-menu-icon > StIcon,
#panel .panel-button .popup-menu-arrow {
icon-shadow: 0px 1px 2px rgba(0, 0, 0, 0.9); }
icon-shadow: 0px 0px 2px rgba(0, 0, 0, 0.9); }
#panel .panel-button:hover {
color: white;
text-shadow: 0px 1px 6px black; }
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 1px 6px black; }
icon-shadow: 0px 0px 8px black; }
#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;
@@ -918,17 +918,17 @@ StScrollBar {
background-color: #454c4c; }
.message-icon-bin {
padding: 0.68em 0.2em 0.68em 0.68em; }
padding: 10px 3px 10px 10px; }
.message-icon-bin:rtl {
padding: 0.68em 0.68em 0.68em 0.2em; }
padding: 10px 10px 10px 3px; }
.message-icon-bin > StIcon {
color: #bebeb6;
icon-size: 1.09em;
icon-size: 16px;
-st-icon-style: symbolic; }
.message-secondary-bin {
padding: 0 0.82em; }
padding: 0 12px; }
.message-secondary-bin > .event-time {
color: #8e8e80;
@@ -938,7 +938,7 @@ StScrollBar {
padding-bottom: 0.13em; }
.message-secondary-bin > StIcon {
icon-size: 1.09em; }
icon-size: 16px; }
.message-title {
color: #e2e2df; }
@@ -1025,12 +1025,12 @@ StScrollBar {
background-image: url("resource:///org/gnome/shell/theme/close-window.svg");
background-size: 32px;
height: 32px;
width: 32px;
width: 32px; }
.window-close {
-shell-close-overlap: 16px; }
.window-close:hover {
background-image: url("resource:///org/gnome/shell/theme/close-window-hover.svg"); }
.window-close:active {
background-image: url("resource:///org/gnome/shell/theme/close-window-active.svg"); }
.window-close:rtl {
-st-background-image-shadow: 2px 2px 6px rgba(0, 0, 0, 0.5); }
/* NETWORK DIALOGS */
.nm-dialog {
@@ -1210,12 +1210,6 @@ StScrollBar {
.icon-grid .overview-icon {
icon-size: 96px; }
.system-action-icon {
background-color: black;
color: white;
border-radius: 99px;
icon-size: 48px; }
.app-view-controls {
padding-bottom: 32px; }
@@ -1485,6 +1479,38 @@ StScrollBar {
color: pink; }
/* Eeeky things */
.legacy-tray {
background-color: #393f3f;
border: 1px solid #1c1f1f;
border-bottom-width: 0; }
.legacy-tray:ltr {
border-radius: 0 6px 0 0;
border-left-width: 0; }
.legacy-tray:rtl {
border-radius: 6px 0 0 0;
border-right-width: 0; }
.legacy-tray-handle,
.legacy-tray-icon {
padding: 6px; }
.legacy-tray-handle StIcon,
.legacy-tray-icon StIcon {
icon-size: 24px; }
.legacy-tray-handle:hover, .legacy-tray-handle:focus,
.legacy-tray-icon:hover,
.legacy-tray-icon:focus {
background-color: rgba(238, 238, 236, 0.1); }
.legacy-tray-icon-box {
spacing: 12px; }
.legacy-tray-icon-box:ltr {
padding-left: 12px; }
.legacy-tray-icon-box:rtl {
padding-right: 12px; }
.legacy-tray-icon-box StButton {
width: 24px;
height: 24px; }
.magnifier-zoom-region {
border: 2px solid #215d9c; }
.magnifier-zoom-region.full-screen {

View File

@@ -1,40 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="16"
height="16"
viewBox="0 0 4.2333333 4.2333333"
version="1.1"
id="svg8">
<defs
id="defs2" />
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="layer1"
style="display:inline"
transform="translate(0,-292.76667)">
<path
style="fill:#bebebe;fill-opacity:1;stroke:none;stroke-width:0.17969394"
d="m 3.1749998,294.88333 a 1.0583333,1.0583333 0 0 1 -1.0583332,1.05833 1.0583333,1.0583333 0 0 1 -1.0583333,-1.05833 1.0583333,1.0583333 0 0 1 1.0583333,-1.05833 1.0583333,1.0583333 0 0 1 1.0583332,1.05833 z"
id="path4485" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.3 KiB

View File

@@ -1,4 +1,4 @@
#!/bin/sh
#!/usr/bin/sh
srcdir=`dirname $0`
stamp=${1}

1
docs/Makefile.am Normal file
View File

@@ -0,0 +1 @@
SUBDIRS = reference

View File

@@ -0,0 +1 @@
SUBDIRS = shell st

View File

@@ -0,0 +1,139 @@
## Process this file with automake to produce Makefile.in
# We require automake 1.6 at least.
AUTOMAKE_OPTIONS = 1.6
# This is a blank Makefile.am for using gtk-doc.
# Copy this to your project's API docs directory and modify the variables to
# suit your project. See the GTK+ Makefiles in gtk+/docs/reference for examples
# of using the various options.
# The name of the module, e.g. 'glib'.
DOC_MODULE=shell
# Uncomment for versioned docs and specify the version of the module, e.g. '2'.
#DOC_MODULE_VERSION=2
# The top-level SGML file. You can change this if you want to.
DOC_MAIN_SGML_FILE=$(DOC_MODULE)-docs.sgml
# Directories containing the source code
# gtk-doc will search all .c and .h files beneath these paths
# for inline comments documenting functions and macros.
DOC_SOURCE_DIR=$(top_srcdir)/src
# Extra options to pass to gtkdoc-scangobj. Not normally needed.
SCANGOBJ_OPTIONS=
# Extra options to supply to gtkdoc-scan.
# e.g. SCAN_OPTIONS=--deprecated-guards="GTK_DISABLE_DEPRECATED"
SCAN_OPTIONS=--rebuild-types
# Extra options to supply to gtkdoc-mkdb.
# e.g. MKDB_OPTIONS=--xml-mode --output-format=xml
MKDB_OPTIONS=--xml-mode --output-format=xml
# Extra options to supply to gtkdoc-mktmpl
# e.g. MKTMPL_OPTIONS=--only-section-tmpl
MKTMPL_OPTIONS=
# Extra options to supply to gtkdoc-mkhtml
MKHTML_OPTIONS=
# Extra options to supply to gtkdoc-fixref. Not normally needed.
# e.g. FIXXREF_OPTIONS=--extra-dir=../gdk-pixbuf/html --extra-dir=../gdk/html
FIXXREF_OPTIONS=
# Used for dependencies. The docs will be rebuilt if any of these change.
# e.g. HFILE_GLOB=$(top_srcdir)/gtk/*.h
# e.g. CFILE_GLOB=$(top_srcdir)/gtk/*.c
HFILE_GLOB=$(top_srcdir)/src/*.h
CFILE_GLOB=$(top_srcdir)/src/*.c
# Extra header to include when scanning, which are not under DOC_SOURCE_DIR
# e.g. EXTRA_HFILES=$(top_srcdir}/contrib/extra.h
EXTRA_HFILES=
# Header files or dirs to ignore when scanning. Use base file/dir names
# e.g. IGNORE_HFILES=gtkdebug.h gtkintl.h private_code
IGNORE_HFILES= \
calendar-server \
gvc \
hotplug-sniffer \
st \
tray \
gactionmuxer.h \
gactionobservable.h \
gactionobserver.h \
shell-network-agent.h \
shell-recorder-src.h
if !BUILD_RECORDER
IGNORE_HFILES += shell-recorder.h
endif
# Images to copy into HTML directory.
# e.g. HTML_IMAGES=$(top_srcdir)/gtk/stock-icons/stock_about_24.png
HTML_IMAGES=
doc-gen-org.gnome.Shell.SearchProvider.xml: $(top_srcdir)/data/org.gnome.ShellSearchProvider.xml
gdbus-codegen \
--interface-prefix org.gnome.ShellSearchProvider. \
--generate-docbook doc-gen \
$(top_srcdir)/data/org.gnome.ShellSearchProvider.xml
doc-gen-org.gnome.Shell.SearchProvider2.xml: $(top_srcdir)/data/org.gnome.ShellSearchProvider2.xml
gdbus-codegen \
--interface-prefix org.gnome.ShellSearchProvider2. \
--generate-docbook doc-gen \
$(top_srcdir)/data/org.gnome.ShellSearchProvider2.xml
doc-gen-org.gnome.Shell.Screenshot.xml: $(top_srcdir)/data/org.gnome.Shell.Screenshot.xml
gdbus-codegen \
--interface-prefix org.gnome.Shell.Screenshot. \
--generate-docbook doc-gen \
$(top_srcdir)/data/org.gnome.Shell.Screenshot.xml
# Extra SGML files that are included by $(DOC_MAIN_SGML_FILE).
# e.g. content_files=running.sgml building.sgml changes-2.0.sgml
content_files= \
doc-gen-org.gnome.Shell.SearchProvider.xml \
doc-gen-org.gnome.Shell.SearchProvider2.xml \
doc-gen-org.gnome.Shell.Screenshot.xml
# SGML files where gtk-doc abbrevations (#GtkWidget) are expanded
# These files must be listed here *and* in content_files
# e.g. expand_content_files=running.sgml
expand_content_files=
# CFLAGS and LDFLAGS for compiling gtkdoc-scangobj with your library.
# Only needed if you are using gtkdoc-scangobj to dynamically query widget
# signals and properties.
# e.g. GTKDOC_CFLAGS=-I$(top_srcdir) -I$(top_builddir) $(GTK_DEBUG_FLAGS)
# e.g. GTKDOC_LIBS=$(top_builddir)/gtk/$(gtktargetlib)
GTKDOC_CFLAGS=$(GNOME_SHELL_CFLAGS)
GTKDOC_LIBS=$(GNOME_SHELL_LIBS) $(top_builddir)/src/libgnome-shell-menu.la $(top_builddir)/src/libgnome-shell.la -rpath $(MUTTER_TYPELIB_DIR)
# This includes the standard gtk-doc make rules, copied by gtkdocize.
include $(top_srcdir)/gtk-doc.make
# Other files to distribute
# e.g. EXTRA_DIST += version.xml.in
EXTRA_DIST += version.xml.in
# Files not to distribute
# for --rebuild-types in $(SCAN_OPTIONS), e.g. $(DOC_MODULE).types
# for --rebuild-sections in $(SCAN_OPTIONS) e.g. $(DOC_MODULE)-sections.txt
DISTCLEANFILES = $(DOC_MODULE).types
# Comment this out if you want 'make check' to test you doc status
# and run some sanity checks
if ENABLE_GTK_DOC
TESTS_ENVIRONMENT = cd $(srcdir) && \
DOC_MODULE=$(DOC_MODULE) DOC_MAIN_SGML_FILE=$(DOC_MAIN_SGML_FILE) \
SRCDIR=$(abs_srcdir) BUILDDIR=$(abs_builddir)
#TESTS = $(GTKDOC_CHECK)
endif
-include $(top_srcdir)/git.mk

View File

@@ -0,0 +1,104 @@
## Process this file with automake to produce Makefile.in
# We require automake 1.6 at least.
AUTOMAKE_OPTIONS = 1.6
# This is a blank Makefile.am for using gtk-doc.
# Copy this to your project's API docs directory and modify the variables to
# suit your project. See the GTK+ Makefiles in gtk+/docs/reference for examples
# of using the various options.
# The name of the module, e.g. 'glib'.
DOC_MODULE=st
# Uncomment for versioned docs and specify the version of the module, e.g. '2'.
#DOC_MODULE_VERSION=2
# The top-level SGML file. You can change this if you want to.
DOC_MAIN_SGML_FILE=$(DOC_MODULE)-docs.sgml
# Directories containing the source code
# gtk-doc will search all .c and .h files beneath these paths
# for inline comments documenting functions and macros.
DOC_SOURCE_DIR=$(top_srcdir)/src/st
# Extra options to pass to gtkdoc-scangobj. Not normally needed.
SCANGOBJ_OPTIONS=
# Extra options to supply to gtkdoc-scan.
# e.g. SCAN_OPTIONS=--deprecated-guards="GTK_DISABLE_DEPRECATED"
SCAN_OPTIONS=--rebuild-types --rebuild-sections
# Extra options to supply to gtkdoc-mkdb.
# e.g. MKDB_OPTIONS=--xml-mode --output-format=xml
MKDB_OPTIONS=--xml-mode --output-format=xml
# Extra options to supply to gtkdoc-mktmpl
# e.g. MKTMPL_OPTIONS=--only-section-tmpl
MKTMPL_OPTIONS=
# Extra options to supply to gtkdoc-mkhtml
MKHTML_OPTIONS=
# Extra options to supply to gtkdoc-fixref. Not normally needed.
# e.g. FIXXREF_OPTIONS=--extra-dir=../gdk-pixbuf/html --extra-dir=../gdk/html
FIXXREF_OPTIONS=
# Used for dependencies. The docs will be rebuilt if any of these change.
# e.g. HFILE_GLOB=$(top_srcdir)/gtk/*.h
# e.g. CFILE_GLOB=$(top_srcdir)/gtk/*.c
HFILE_GLOB=$(top_srcdir)/src/st/*.h
CFILE_GLOB=$(top_srcdir)/src/st/*.c
# Extra header to include when scanning, which are not under DOC_SOURCE_DIR
# e.g. EXTRA_HFILES=$(top_srcdir}/contrib/extra.h
EXTRA_HFILES=
# Header files or dirs to ignore when scanning. Use base file/dir names
# e.g. IGNORE_HFILES=gtkdebug.h gtkintl.h private_code
IGNORE_HFILES=st-private.h st-theme-node-private.h
# Images to copy into HTML directory.
# e.g. HTML_IMAGES=$(top_srcdir)/gtk/stock-icons/stock_about_24.png
HTML_IMAGES=
# Extra SGML files that are included by $(DOC_MAIN_SGML_FILE).
# e.g. content_files=running.sgml building.sgml changes-2.0.sgml
content_files=
# SGML files where gtk-doc abbrevations (#GtkWidget) are expanded
# These files must be listed here *and* in content_files
# e.g. expand_content_files=running.sgml
expand_content_files=
# CFLAGS and LDFLAGS for compiling gtkdoc-scangobj with your library.
# Only needed if you are using gtkdoc-scangobj to dynamically query widget
# signals and properties.
# e.g. GTKDOC_CFLAGS=-I$(top_srcdir) -I$(top_builddir) $(GTK_DEBUG_FLAGS)
# e.g. GTKDOC_LIBS=$(top_builddir)/gtk/$(gtktargetlib)
GTKDOC_CFLAGS=
GTKDOC_LIBS=$(top_builddir)/src/libst-1.0.la -rpath $(MUTTER_TYPELIB_DIR)
# This includes the standard gtk-doc make rules, copied by gtkdocize.
include $(top_srcdir)/gtk-doc.make
# Other files to distribute
# e.g. EXTRA_DIST += version.xml.in
EXTRA_DIST += version.xml.in
# Files not to distribute
# for --rebuild-types in $(SCAN_OPTIONS), e.g. $(DOC_MODULE).types
# for --rebuild-sections in $(SCAN_OPTIONS) e.g. $(DOC_MODULE)-sections.txt
DISTCLEANFILES = $(DOC_MODULE).types $(DOC_MODULE)-sections.txt
# Comment this out if you want 'make check' to test you doc status
# and run some sanity checks
if ENABLE_GTK_DOC
TESTS_ENVIRONMENT = cd $(srcdir) && \
DOC_MODULE=$(DOC_MODULE) DOC_MAIN_SGML_FILE=$(DOC_MAIN_SGML_FILE) \
SRCDIR=$(abs_srcdir) BUILDDIR=$(abs_builddir)
#TESTS = $(GTKDOC_CHECK)
endif
-include $(top_srcdir)/git.mk

39
js/Makefile.am Normal file
View File

@@ -0,0 +1,39 @@
NULL =
BUILT_SOURCES =
misc/config.js: misc/config.js.in Makefile
[ -d $(@D) ] || $(mkdir_p) $(@D) ; \
sed -e "s|[@]PACKAGE_NAME@|$(PACKAGE_NAME)|g" \
-e "s|[@]PACKAGE_VERSION@|$(PACKAGE_VERSION)|g" \
-e "s|[@]HAVE_BLUETOOTH@|$(HAVE_BLUETOOTH)|g" \
-e "s|[@]HAVE_NETWORKMANAGER@|$(HAVE_NETWORKMANAGER)|g" \
-e "s|[@]GETTEXT_PACKAGE@|$(GETTEXT_PACKAGE)|g" \
-e "s|[@]datadir@|$(datadir)|g" \
-e "s|[@]libexecdir@|$(libexecdir)|g" \
-e "s|[@]sysconfdir@|$(sysconfdir)|g" \
-e "s|[@]LIBMUTTER_API_VERSION@|$(LIBMUTTER_API_VERSION)|g" \
$< > $@
js_resource_files = $(shell $(GLIB_COMPILE_RESOURCES) --sourcedir=$(srcdir) --sourcedir=$(builddir) --generate-dependencies $(srcdir)/js-resources.gresource.xml)
js-resources.h: js-resources.gresource.xml $(js_resource_files) misc/config.js
$(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) --target=$@ --sourcedir=$(srcdir) --sourcedir=$(builddir) --generate --c-name shell_js_resources $<
js-resources.c: js-resources.gresource.xml $(js_resource_files) misc/config.js
$(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) --target=$@ --sourcedir=$(srcdir) --sourcedir=$(builddir) --generate --c-name shell_js_resources $<
js_built_sources = js-resources.c js-resources.h
BUILT_SOURCES += $(js_built_sources)
all-local: $(js_built_sources)
js_resource_dist_files = $(filter-out misc/config.js, $(js_resource_files))
EXTRA_DIST = \
$(js_resource_dist_files) \
js-resources.gresource.xml \
misc/config.js.in \
$(NULL)
CLEANFILES = \
$(js_built_sources) \
$(NULL)

View File

@@ -17,23 +17,23 @@ const ShellEntry = imports.ui.shellEntry;
const SmartcardManager = imports.misc.smartcardManager;
const Tweener = imports.ui.tweener;
var PASSWORD_SERVICE_NAME = 'gdm-password';
var FINGERPRINT_SERVICE_NAME = 'gdm-fingerprint';
var SMARTCARD_SERVICE_NAME = 'gdm-smartcard';
var OVIRT_SERVICE_NAME = 'gdm-ovirtcred';
const PASSWORD_SERVICE_NAME = 'gdm-password';
const FINGERPRINT_SERVICE_NAME = 'gdm-fingerprint';
const SMARTCARD_SERVICE_NAME = 'gdm-smartcard';
const OVIRT_SERVICE_NAME = 'gdm-ovirtcred';
var FADE_ANIMATION_TIME = 0.16;
var CLONE_FADE_ANIMATION_TIME = 0.25;
var LOGIN_SCREEN_SCHEMA = 'org.gnome.login-screen';
var PASSWORD_AUTHENTICATION_KEY = 'enable-password-authentication';
var FINGERPRINT_AUTHENTICATION_KEY = 'enable-fingerprint-authentication';
var SMARTCARD_AUTHENTICATION_KEY = 'enable-smartcard-authentication';
var BANNER_MESSAGE_KEY = 'banner-message-enable';
var BANNER_MESSAGE_TEXT_KEY = 'banner-message-text';
var ALLOWED_FAILURES_KEY = 'allowed-failures';
const LOGIN_SCREEN_SCHEMA = 'org.gnome.login-screen';
const PASSWORD_AUTHENTICATION_KEY = 'enable-password-authentication';
const FINGERPRINT_AUTHENTICATION_KEY = 'enable-fingerprint-authentication';
const SMARTCARD_AUTHENTICATION_KEY = 'enable-smartcard-authentication';
const BANNER_MESSAGE_KEY = 'banner-message-enable';
const BANNER_MESSAGE_TEXT_KEY = 'banner-message-text';
const ALLOWED_FAILURES_KEY = 'allowed-failures';
var LOGO_KEY = 'logo';
var DISABLE_USER_LIST_KEY = 'disable-user-list';
const LOGO_KEY = 'logo';
const DISABLE_USER_LIST_KEY = 'disable-user-list';
// Give user 48ms to read each character of a PAM message
var USER_READ_TIME = 48

View File

@@ -25,7 +25,6 @@
<file>misc/params.js</file>
<file>misc/permissionStore.js</file>
<file>misc/smartcardManager.js</file>
<file>misc/systemActions.js</file>
<file>misc/util.js</file>
<file>misc/weather.js</file>
@@ -65,6 +64,7 @@
<file>ui/layout.js</file>
<file>ui/lightbox.js</file>
<file>ui/lookingGlass.js</file>
<file>ui/legacyTray.js</file>
<file>ui/magnifier.js</file>
<file>ui/magnifierDBus.js</file>
<file>ui/main.js</file>
@@ -96,7 +96,6 @@
<file>ui/shellMountOperation.js</file>
<file>ui/slider.js</file>
<file>ui/switcherPopup.js</file>
<file>ui/switchMonitor.js</file>
<file>ui/tweener.js</file>
<file>ui/unlockDialog.js</file>
<file>ui/userWidget.js</file>

View File

@@ -119,13 +119,7 @@ var LoginManagerSystemd = new Lang.Class({
return;
}
let sessionId = GLib.getenv('XDG_SESSION_ID');
if (!sessionId) {
log('Unset XDG_SESSION_ID, getCurrentSessionProxy() called outside a user session.');
return;
}
this._proxy.GetSessionRemote(sessionId, Lang.bind(this,
this._proxy.GetSessionRemote(GLib.getenv('XDG_SESSION_ID'), Lang.bind(this,
function(result, error) {
if (error) {
logError(error, 'Could not get a proxy for the current session');

View File

@@ -1,440 +0,0 @@
const AccountsService = imports.gi.AccountsService;
const Clutter = imports.gi.Clutter;
const Gdm = imports.gi.Gdm;
const Gio = imports.gi.Gio;
const GLib = imports.gi.GLib;
const Lang = imports.lang;
const Meta = imports.gi.Meta;
const GObject = imports.gi.GObject;
const GnomeSession = imports.misc.gnomeSession;
const LoginManager = imports.misc.loginManager;
const Main = imports.ui.main;
const LOCKDOWN_SCHEMA = 'org.gnome.desktop.lockdown';
const LOGIN_SCREEN_SCHEMA = 'org.gnome.login-screen';
const DISABLE_USER_SWITCH_KEY = 'disable-user-switching';
const DISABLE_LOCK_SCREEN_KEY = 'disable-lock-screen';
const DISABLE_LOG_OUT_KEY = 'disable-log-out';
const DISABLE_RESTART_KEY = 'disable-restart-buttons';
const ALWAYS_SHOW_LOG_OUT_KEY = 'always-show-log-out';
const SENSOR_BUS_NAME = 'net.hadess.SensorProxy';
const SENSOR_OBJECT_PATH = '/net/hadess/SensorProxy';
const SensorProxyInterface = '<node> \
<interface name="net.hadess.SensorProxy"> \
<property name="HasAccelerometer" type="b" access="read"/> \
</interface> \
</node>';
const POWER_OFF_ACTION_ID = 'power-off';
const LOCK_SCREEN_ACTION_ID = 'lock-screen';
const LOGOUT_ACTION_ID = 'logout';
const SUSPEND_ACTION_ID = 'suspend';
const SWITCH_USER_ACTION_ID = 'switch-user';
const LOCK_ORIENTATION_ACTION_ID = 'lock-orientation';
const SensorProxy = Gio.DBusProxy.makeProxyWrapper(SensorProxyInterface);
let _singleton = null;
function getDefault() {
if (_singleton == null)
_singleton = new SystemActions();
return _singleton;
}
const SystemActions = new Lang.Class({
Name: 'SystemActions',
Extends: GObject.Object,
Properties: {
'can-power-off': GObject.ParamSpec.boolean('can-power-off',
'can-power-off',
'can-power-off',
GObject.ParamFlags.READABLE,
false),
'can-suspend': GObject.ParamSpec.boolean('can-suspend',
'can-suspend',
'can-suspend',
GObject.ParamFlags.READABLE,
false),
'can-lock-screen': GObject.ParamSpec.boolean('can-lock-screen',
'can-lock-screen',
'can-lock-screen',
GObject.ParamFlags.READABLE,
false),
'can-switch-user': GObject.ParamSpec.boolean('can-switch-user',
'can-switch-user',
'can-switch-user',
GObject.ParamFlags.READABLE,
false),
'can-logout': GObject.ParamSpec.boolean('can-logout',
'can-logout',
'can-logout',
GObject.ParamFlags.READABLE,
false),
'can-lock-orientation': GObject.ParamSpec.boolean('can-lock-orientation',
'can-lock-orientation',
'can-lock-orientation',
GObject.ParamFlags.READABLE,
false),
'orientation-lock-icon': GObject.ParamSpec.string('orientation-lock-icon',
'orientation-lock-icon',
'orientation-lock-icon',
GObject.ParamFlags.READWRITE,
null)
},
_init: function() {
this.parent();
this._canHavePowerOff = true;
this._canHaveSuspend = true;
this._actions = new Map();
this._actions.set(POWER_OFF_ACTION_ID,
{ // Translators: The name of the power-off action in search
name: C_("search-result", "Power off"),
iconName: 'system-shutdown-symbolic',
// Translators: A list of keywords that match the power-off action, separated by semicolons
keywords: _("power off;shutdown").split(';'),
available: false });
this._actions.set(LOCK_SCREEN_ACTION_ID,
{ // Translators: The name of the lock screen action in search
name: C_("search-result", "Lock screen"),
iconName: 'system-lock-screen-symbolic',
// Translators: A list of keywords that match the lock screen action, separated by semicolons
keywords: _("lock screen").split(';'),
available: false });
this._actions.set(LOGOUT_ACTION_ID,
{ // Translators: The name of the logout action in search
name: C_("search-result", "Log out"),
iconName: 'application-exit-symbolic',
// Translators: A list of keywords that match the logout action, separated by semicolons
keywords: _("logout;sign off").split(';'),
available: false });
this._actions.set(SUSPEND_ACTION_ID,
{ // Translators: The name of the suspend action in search
name: C_("search-result", "Suspend"),
iconName: 'media-playback-pause-symbolic',
// Translators: A list of keywords that match the suspend action, separated by semicolons
keywords: _("suspend;sleep").split(';'),
available: false });
this._actions.set(SWITCH_USER_ACTION_ID,
{ // Translators: The name of the switch user action in search
name: C_("search-result", "Switch user"),
iconName: 'system-switch-user-symbolic',
// Translators: A list of keywords that match the switch user action, separated by semicolons
keywords: _("switch user").split(';'),
available: false });
this._actions.set(LOCK_ORIENTATION_ACTION_ID,
{ // Translators: The name of the lock orientation action in search
name: C_("search-result", "Lock orientation"),
iconName: '',
// Translators: A list of keywords that match the lock orientation action, separated by semicolons
keywords: _("lock orientation").split(';'),
available: false });
this._loginScreenSettings = new Gio.Settings({ schema_id: LOGIN_SCREEN_SCHEMA });
this._lockdownSettings = new Gio.Settings({ schema_id: LOCKDOWN_SCHEMA });
this._orientationSettings = new Gio.Settings({ schema_id: 'org.gnome.settings-daemon.peripherals.touchscreen' });
this._session = new GnomeSession.SessionManager();
this._loginManager = LoginManager.getLoginManager();
this._monitorManager = Meta.MonitorManager.get();
this._userManager = AccountsService.UserManager.get_default();
this._userManager.connect('notify::is-loaded',
() => { this._updateMultiUser(); });
this._userManager.connect('notify::has-multiple-users',
() => { this._updateMultiUser(); });
this._userManager.connect('user-added',
() => { this._updateMultiUser(); });
this._userManager.connect('user-removed',
() => { this._updateMultiUser(); });
this._lockdownSettings.connect('changed::' + DISABLE_USER_SWITCH_KEY,
() => { this._updateSwitchUser(); });
this._lockdownSettings.connect('changed::' + DISABLE_LOG_OUT_KEY,
() => { this._updateLogout(); });
global.settings.connect('changed::' + ALWAYS_SHOW_LOG_OUT_KEY,
() => { this._updateLogout(); });
this._lockdownSettings.connect('changed::' + DISABLE_LOCK_SCREEN_KEY,
() => { this._updateLockScreen(); });
this._lockdownSettings.connect('changed::' + DISABLE_LOG_OUT_KEY,
() => { this._updateHaveShutdown(); });
this.forceUpdate();
this._orientationSettings.connect('changed::orientation-lock',
() => { this._updateOrientationLock();
this._updateOrientationLockIcon(); });
Main.layoutManager.connect('monitors-changed',
() => { this._updateOrientationLock(); });
Gio.DBus.system.watch_name(SENSOR_BUS_NAME,
Gio.BusNameWatcherFlags.NONE,
() => { this._sensorProxyAppeared(); },
() => {
this._sensorProxy = null;
this._updateOrientationLock();
});
this._updateOrientationLock();
this._updateOrientationLockIcon();
Main.sessionMode.connect('updated', () => { this._sessionUpdated(); });
this._sessionUpdated();
},
get can_power_off() {
return this._actions.get(POWER_OFF_ACTION_ID).available;
},
get can_suspend() {
return this._actions.get(SUSPEND_ACTION_ID).available;
},
get can_lock_screen() {
return this._actions.get(LOCK_SCREEN_ACTION_ID).available;
},
get can_switch_user() {
return this._actions.get(SWITCH_USER_ACTION_ID).available;
},
get can_logout() {
return this._actions.get(LOGOUT_ACTION_ID).available;
},
get can_lock_orientation() {
return this._actions.get(LOCK_ORIENTATION_ACTION_ID).available;
},
get orientation_lock_icon() {
return this._actions.get(LOCK_ORIENTATION_ACTION_ID).iconName;
},
_sensorProxyAppeared: function() {
this._sensorProxy = new SensorProxy(Gio.DBus.system, SENSOR_BUS_NAME, SENSOR_OBJECT_PATH,
(proxy, error) => {
if (error) {
log(error.message);
return;
}
this._sensorProxy.connect('g-properties-changed',
() => { this._updateOrientationLock(); });
this._updateOrientationLock();
});
},
_updateOrientationLock: function() {
let available = false;
if (this._sensorProxy)
available = this._sensorProxy.HasAccelerometer &&
this._monitorManager.get_is_builtin_display_on();
this._actions.get(LOCK_ORIENTATION_ACTION_ID).available = available;
this.notify('can-lock-orientation');
},
_updateOrientationLockIcon: function() {
let locked = this._orientationSettings.get_boolean('orientation-lock');
let iconName = locked ? 'rotation-locked-symbolic'
: 'rotation-allowed-symbolic';
this._actions.get(LOCK_ORIENTATION_ACTION_ID).iconName = iconName;
this.notify('orientation-lock-icon');
},
_sessionUpdated: function() {
this._updateLockScreen();
this._updatePowerOff();
this._updateSuspend();
this._updateMultiUser();
},
forceUpdate: function() {
// Whether those actions are available or not depends on both lockdown
// settings and Polkit policy - we don't get change notifications for the
// latter, so their value may be outdated; force an update now
this._updateHaveShutdown();
this._updateHaveSuspend();
},
getMatchingActions: function(terms) {
// terms is a list of strings
terms = terms.map((term) => { return term.toLowerCase(); });
let results = [];
for (let [key, {available, keywords}] of this._actions)
if (available && terms.every(t => keywords.some(k => (k.indexOf(t) >= 0))))
results.push(key);
return results;
},
getName: function(id) {
return this._actions.get(id).name;
},
getIconName: function(id) {
return this._actions.get(id).iconName;
},
activateAction: function(id) {
switch (id) {
case POWER_OFF_ACTION_ID:
this.activatePowerOff();
break;
case LOCK_SCREEN_ACTION_ID:
this.activateLockScreen();
break;
case LOGOUT_ACTION_ID:
this.activateLogout();
break;
case SUSPEND_ACTION_ID:
this.activateSuspend();
break;
case SWITCH_USER_ACTION_ID:
this.activateSwitchUser();
break;
case LOCK_ORIENTATION_ACTION_ID:
this.activateLockOrientation();
break;
}
},
_updateLockScreen() {
let showLock = !Main.sessionMode.isLocked && !Main.sessionMode.isGreeter;
let allowLockScreen = !this._lockdownSettings.get_boolean(DISABLE_LOCK_SCREEN_KEY);
this._actions.get(LOCK_SCREEN_ACTION_ID).available = showLock && allowLockScreen && LoginManager.canLock();
this.notify('can-lock-screen');
},
_updateHaveShutdown: function() {
this._session.CanShutdownRemote((result, error) => {
if (error)
return;
this._canHavePowerOff = result[0];
this._updatePowerOff();
});
},
_updatePowerOff: function() {
let disabled = Main.sessionMode.isLocked ||
(Main.sessionMode.isGreeter &&
this._loginScreenSettings.get_boolean(DISABLE_RESTART_KEY));
this._actions.get(POWER_OFF_ACTION_ID).available = this._canHavePowerOff && !disabled;
this.notify('can-power-off');
},
_updateHaveSuspend: function() {
this._loginManager.canSuspend(
(canSuspend, needsAuth) => {
this._canHaveSuspend = canSuspend;
this._suspendNeedsAuth = needsAuth;
this._updateSuspend();
});
},
_updateSuspend: function() {
let disabled = (Main.sessionMode.isLocked &&
this._suspendNeedsAuth) ||
(Main.sessionMode.isGreeter &&
this._loginScreenSettings.get_boolean(DISABLE_RESTART_KEY));
this._actions.get(SUSPEND_ACTION_ID).available = this._canHaveSuspend && !disabled;
this.notify('can-suspend');
},
_updateMultiUser: function() {
this._updateLogout();
this._updateSwitchUser();
},
_updateSwitchUser: function() {
let allowSwitch = !this._lockdownSettings.get_boolean(DISABLE_USER_SWITCH_KEY);
let multiUser = this._userManager.can_switch() && this._userManager.has_multiple_users;
let shouldShowInMode = !Main.sessionMode.isLocked && !Main.sessionMode.isGreeter;
let visible = allowSwitch && multiUser && shouldShowInMode;
this._actions.get(SWITCH_USER_ACTION_ID).available = visible;
this.notify('can-switch-user');
return visible;
},
_updateLogout: function() {
let user = this._userManager.get_user(GLib.get_user_name());
let allowLogout = !this._lockdownSettings.get_boolean(DISABLE_LOG_OUT_KEY);
let alwaysShow = global.settings.get_boolean(ALWAYS_SHOW_LOG_OUT_KEY);
let systemAccount = user.system_account;
let localAccount = user.local_account;
let multiUser = this._userManager.has_multiple_users;
let multiSession = Gdm.get_session_ids().length > 1;
let shouldShowInMode = !Main.sessionMode.isLocked && !Main.sessionMode.isGreeter;
let visible = allowLogout && (alwaysShow || multiUser || multiSession || systemAccount || !localAccount) && shouldShowInMode;
this._actions.get(LOGOUT_ACTION_ID).available = visible;
this.notify('can-logout');
return visible;
},
activateLockOrientation: function() {
if (!this._actions.get(LOCK_ORIENTATION_ACTION_ID).available)
throw new Error('The lock-orientation action is not available!');
let locked = this._orientationSettings.get_boolean('orientation-lock');
this._orientationSettings.set_boolean('orientation-lock', !locked);
},
activateLockScreen: function() {
if (!this._actions.get(LOCK_SCREEN_ACTION_ID).available)
throw new Error('The lock-screen action is not available!');
Main.screenShield.lock(true);
},
activateSwitchUser: function() {
if (!this._actions.get(SWITCH_USER_ACTION_ID).available)
throw new Error('The switch-user action is not available!');
if (Main.screenShield)
Main.screenShield.lock(false);
Clutter.threads_add_repaint_func_full(Clutter.RepaintFlags.POST_PAINT, function() {
Gdm.goto_login_session_sync(null);
return false;
});
},
activateLogout: function() {
if (!this._actions.get(LOGOUT_ACTION_ID).available)
throw new Error('The logout action is not available!');
Main.overview.hide();
this._session.LogoutRemote(0);
},
activatePowerOff: function() {
if (!this._actions.get(POWER_OFF_ACTION_ID).available)
throw new Error('The power-off action is not available!');
this._session.ShutdownRemote(0);
},
activateSuspend: function() {
if (!this._actions.get(SUSPEND_ACTION_ID).available)
throw new Error('The suspend action is not available!');
this._loginManager.suspend();
}
});

View File

@@ -158,10 +158,7 @@ var AppSwitcherPopup = new Lang.Class({
_keyPressHandler: function(keysym, action) {
if (action == Meta.KeyBindingAction.SWITCH_GROUP) {
if (!this._thumbnailsFocused)
this._select(this._selectedIndex, 0);
else
this._select(this._selectedIndex, this._nextWindow());
this._select(this._selectedIndex, this._nextWindow());
} else if (action == Meta.KeyBindingAction.SWITCH_GROUP_BACKWARD) {
this._select(this._selectedIndex, this._previousWindow());
} else if (action == Meta.KeyBindingAction.SWITCH_APPLICATIONS) {

View File

@@ -24,11 +24,8 @@ const OverviewControls = imports.ui.overviewControls;
const PopupMenu = imports.ui.popupMenu;
const Tweener = imports.ui.tweener;
const Workspace = imports.ui.workspace;
const Search = imports.ui.search;
const System = imports.ui.status.system;
const Params = imports.misc.params;
const Util = imports.misc.util;
const SystemActions = imports.misc.systemActions;
var MAX_APPLICATION_WORK_MILLIS = 75;
var MENU_POPUP_TIMEOUT = 600;
@@ -1088,35 +1085,19 @@ var AppSearchProvider = new Lang.Class({
this.id = 'applications';
this.isRemoteProvider = false;
this.canLaunchSearch = false;
this._systemActions = new SystemActions.getDefault();
},
getResultMetas: function(apps, callback) {
let metas = [];
for (let id of apps) {
if (id.endsWith('.desktop')) {
let app = this._appSys.lookup_app(id);
metas.push({ 'id': app.get_id(),
'name': app.get_name(),
'createIcon': function(size) {
return app.create_icon_texture(size);
}
});
} else {
let name = this._systemActions.getName(id);
let iconName = this._systemActions.getIconName(id);
let createIcon = size => new St.Icon({ icon_name: iconName,
width: size,
height: size,
style_class: 'system-action-icon' });
metas.push({ id, name, createIcon });
}
for (let i = 0; i < apps.length; i++) {
let app = this._appSys.lookup_app(apps[i]);
metas.push({ 'id': app.get_id(),
'name': app.get_name(),
'createIcon': function(size) {
return app.create_icon_texture(size);
}
});
}
callback(metas);
},
@@ -1138,9 +1119,6 @@ var AppSearchProvider = new Lang.Class({
return usage.compare('', a, b);
}));
});
results = results.concat(this._systemActions.getMatchingActions(terms));
callback(results);
},
@@ -1149,10 +1127,8 @@ var AppSearchProvider = new Lang.Class({
},
createResultObject: function (resultMeta) {
if (resultMeta.id.endsWith('.desktop'))
return new AppIcon(this._appSys.lookup_app(resultMeta['id']));
else
return new SystemActionIcon(this, resultMeta);
let app = this._appSys.lookup_app(resultMeta['id']);
return new AppIcon(app);
}
});
@@ -1196,9 +1172,13 @@ var FolderView = new Lang.Class({
let numItems = this._allItems.length;
let rtl = icon.get_text_direction() == Clutter.TextDirection.RTL;
for (let i = 0; i < 4; i++) {
let bin = new St.Bin({ width: subSize, height: subSize });
if (i < numItems)
bin.child = this._allItems[i].app.create_icon_texture(subSize);
let bin;
if (i < numItems) {
let texture = this._allItems[i].app.create_icon_texture(subSize);
bin = new St.Bin({ child: texture });
} else {
bin = new St.Bin({ width: subSize, height: subSize });
}
layout.attach(bin, rtl ? (i + 1) % 2 : i % 2, Math.floor(i / 2), 1, 1);
}
@@ -2007,13 +1987,3 @@ var AppIconMenu = new Lang.Class({
}
});
Signals.addSignalMethods(AppIconMenu.prototype);
var SystemActionIcon = new Lang.Class({
Name: 'SystemActionIcon',
Extends: Search.GridSearchResult,
activate: function() {
SystemActions.getDefault().activateAction(this.metaInfo['id']);
Main.overview.hide();
}
});

View File

@@ -11,7 +11,6 @@ const RENAMED_DESKTOP_IDS = {
'baobab.desktop': 'org.gnome.baobab.desktop',
'cheese.desktop': 'org.gnome.Cheese.desktop',
'dconf-editor.desktop': 'ca.desrt.dconf-editor.desktop',
'empathy.desktop': 'org.gnome.Empathy.desktop',
'epiphany.desktop': 'org.gnome.Epiphany.desktop',
'file-roller.desktop': 'org.gnome.FileRoller.desktop',
'gcalctool.desktop': 'org.gnome.Calculator.desktop',

View File

@@ -587,10 +587,7 @@ var BoxPointer = new Lang.Class({
_calculateArrowSide: function(arrowSide) {
let sourceAllocation = Shell.util_get_transformed_allocation(this._sourceActor);
let [minWidth, minHeight, boxWidth, boxHeight] = this._container.get_preferred_size();
let monitorActor = this.sourceActor;
if (!monitorActor)
monitorActor = this.actor;
let monitor = Main.layoutManager.findMonitorForActor(monitorActor);
let monitor = Main.layoutManager.findMonitorForActor(this.actor);
switch (arrowSide) {
case St.Side.TOP:

View File

@@ -20,7 +20,7 @@ var MSECS_IN_DAY = 24 * 60 * 60 * 1000;
var SHOW_WEEKDATE_KEY = 'show-weekdate';
var ELLIPSIS_CHAR = '\u2026';
var MESSAGE_ICON_SIZE = -1; // pick up from CSS
var MESSAGE_ICON_SIZE = 16;
// alias to prevent xgettext from picking up strings translated in GTK+
const gtk30_ = Gettext_gtk30.gettext;
@@ -428,13 +428,6 @@ var Calendar = new Lang.Class({
this.emit('selected-date-changed', new Date(this._selectedDate));
},
updateTimeZone: function() {
// The calendar need to be rebuilt after a time zone update because
// the date might have changed.
this._rebuildCalendar();
this._update();
},
_buildHeader: function() {
let layout = this.actor.layout_manager;
let offsetCols = this._useWeekdate ? 1 : 0;

View File

@@ -255,11 +255,7 @@ var AutorunDispatcher = new Lang.Class({
if (!shouldAutorunMount(mount))
return;
let setting;
if (contentTypes.length > 0)
setting = this._getAutorunSettingForType(contentTypes[0]);
else
setting = AutorunSetting.ASK;
let setting = this._getAutorunSettingForType(contentTypes[0]);
// check at the settings for the first content type
// to see whether we should ask

View File

@@ -22,7 +22,6 @@ const PanelMenu = imports.ui.panelMenu;
const PopupMenu = imports.ui.popupMenu;
const Calendar = imports.ui.calendar;
const Weather = imports.misc.weather;
const System = imports.system;
function _isToday(date) {
let now = new Date();
@@ -234,18 +233,11 @@ var WeatherSection = new Lang.Class({
this._sync();
},
_getSummary: function(info, capitalize=false) {
let options = capitalize ? GWeather.FormatOptions.SENTENCE_CAPITALIZATION
: GWeather.FormatOptions.NO_CAPITALIZATION;
let [ok, phenomenon, qualifier] = info.get_value_conditions();
if (ok)
return new GWeather.Conditions({ significant: true,
phenomenon,
qualifier }).to_string_full(options);
let [, sky] = info.get_value_sky();
return GWeather.Sky.to_string_full(sky, options);
_getSummary: function(info) {
let summary = info.get_conditions();
if (summary == '-')
return info.get_sky();
return summary;
},
_sameSummary: function(info1, info2) {
@@ -263,10 +255,10 @@ var WeatherSection = new Lang.Class({
let info = this._weatherClient.info;
let forecasts = info.get_forecast_list();
if (forecasts.length == 0) // No forecasts, just current conditions
return '%s.'.format(this._getSummary(info, true));
return '%s.'.format(this._getSummary(info));
let current = info;
let infos = [info];
let summaries = [this._getSummary(info)];
for (let i = 0; i < forecasts.length; i++) {
let [ok, timestamp] = forecasts[i].get_value_update();
if (!_isToday(new Date(timestamp * 1000)))
@@ -276,12 +268,12 @@ var WeatherSection = new Lang.Class({
continue; // Ignore consecutive runs of equal summaries
current = forecasts[i];
if (infos.push(current) == 3)
if (summaries.push(this._getSummary(current)) == 3)
break; // Use a maximum of three summaries
}
let fmt;
switch(infos.length) {
switch(summaries.length) {
/* 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
@@ -300,10 +292,6 @@ var WeatherSection = new Lang.Class({
the inserted conditions. */
case 3: fmt = _("%s, then %s, followed by %s later."); break;
}
let summaries = infos.map((info, i) => {
let capitalize = i == 0 && fmt.startsWith('%s');
return this._getSummary(info, capitalize);
});
return String.prototype.format.apply(fmt, summaries);
},
@@ -340,10 +328,8 @@ var MessagesIndicator = new Lang.Class({
Name: 'MessagesIndicator',
_init: function() {
this.actor = new St.Icon({ icon_name: 'message-indicator-symbolic',
icon_size: 16,
visible: false, y_expand: true,
y_align: Clutter.ActorAlign.CENTER });
this.actor = new St.Label({ text: '⚫', visible: false, y_expand: true,
y_align: Clutter.ActorAlign.CENTER });
this._sources = [];
@@ -548,7 +534,6 @@ var DateMenuButton = new Lang.Class({
this._clock = new GnomeDesktop.WallClock();
this._clock.bind_property('clock', this._clockDisplay, 'text', GObject.BindingFlags.SYNC_CREATE);
this._clock.connect('notify::timezone', Lang.bind(this, this._updateTimeZone));
Main.sessionMode.connect('updated', Lang.bind(this, this._sessionUpdated));
this._sessionUpdated();
@@ -568,15 +553,6 @@ var DateMenuButton = new Lang.Class({
this._eventSource = eventSource;
},
_updateTimeZone: function() {
// SpiderMonkey caches the time zone so we must explicitly clear it
// before we can update the calendar, see
// https://bugzilla.gnome.org/show_bug.cgi?id=678507
System.clearDateCaches();
this._calendar.updateTimeZone();
},
_sessionUpdated: function() {
let eventSource;
let showEvents = Main.sessionMode.showCalendarEvents;

View File

@@ -15,7 +15,6 @@ var Dialog = new Lang.Class({
this.parent({ layout_manager: new Clutter.BinLayout() });
this.connect('destroy', Lang.bind(this, this._onDestroy));
this._initialKeyFocus = null;
this._pressedKey = null;
this._buttonKeys = {};
this._createDialog();
@@ -87,10 +86,6 @@ var Dialog = new Lang.Class({
return Clutter.EVENT_PROPAGATE;
},
get initialKeyFocus() {
return this._initialKeyFocus || this;
},
addContent: function (actor) {
this.contentLayout.add (actor, { expand: true });
},
@@ -121,7 +116,7 @@ var Dialog = new Lang.Class({
if (isDefault)
button.add_style_pseudo_class('default');
if (this._initialKeyFocus == null || isDefault)
if (!this._initialKeyFocusDestroyId)
this._initialKeyFocus = button;
for (let i in keys)

View File

@@ -38,10 +38,10 @@ var DragDropResult = {
SUCCESS: 1,
CONTINUE: 2
};
var dragMonitors = [];
let eventHandlerActor = null;
let currentDraggable = null;
let dragMonitors = [];
function _getEventHandlerActor() {
if (!eventHandlerActor) {
@@ -94,7 +94,6 @@ var _Draggable = new Lang.Class({
this.disconnectAll();
}));
this._onEventId = null;
this._touchSequence = null;
this._restoreOnSuccess = params.restoreOnSuccess;
this._dragActorMaxSize = params.dragActorMaxSize;
@@ -531,7 +530,7 @@ var _Draggable = new Lang.Class({
// Snap the clone back to its source
[x, y] = this._dragActorSource.get_transformed_position();
let [sourceScaledWidth, sourceScaledHeight] = this._dragActorSource.get_transformed_size();
scale = sourceScaledWidth ? this._dragActor.width / sourceScaledWidth : 0;
scale = this._dragActor.width / sourceScaledWidth;
} else if (this._dragOrigParent) {
// Snap the actor back to its original position within
// its parent, adjusting for the fact that the parent

View File

@@ -12,8 +12,6 @@ const ModalDialog = imports.ui.modalDialog;
const WAYLAND_KEYBINDINGS_SCHEMA = 'org.gnome.mutter.wayland.keybindings';
const APP_WHITELIST = ['gnome-control-center.desktop'];
var DialogResponse = Meta.InhibitShortcutsDialogResponse;
var InhibitShortcutsDialog = new Lang.Class({
@@ -40,11 +38,6 @@ var InhibitShortcutsDialog = new Lang.Class({
this._window = window;
},
get _app() {
let windowTracker = Shell.WindowTracker.get_default();
return windowTracker.get_window_app(this._window);
},
_getRestoreAccel: function() {
let settings = new Gio.Settings({ schema_id: WAYLAND_KEYBINDINGS_SCHEMA });
let accel = settings.get_strv('restore-shortcuts')[0] || '';
@@ -53,7 +46,9 @@ var InhibitShortcutsDialog = new Lang.Class({
},
_buildLayout: function() {
let name = this._app ? this._app.get_name() : this._window.title;
let windowTracker = Shell.WindowTracker.get_default();
let app = windowTracker.get_window_app(this._window);
let name = app ? app.get_name() : this._window.title;
/* Translators: %s is an application name like "Settings" */
let title = name ? _("%s wants to inhibit shortcuts").format(name)
@@ -62,10 +57,10 @@ var InhibitShortcutsDialog = new Lang.Class({
let contentParams = { icon, title };
/* Translators: %s is a keyboard shortcut like "Super+x" */
let restoreAccel = this._getRestoreAccel();
if (restoreAccel)
contentParams.subtitle =
/* Translators: %s is a keyboard shortcut like "Super+x" */
_("You can restore shortcuts by pressing %s.").format(restoreAccel);
let content = new Dialog.MessageDialogContent(contentParams);
@@ -90,10 +85,7 @@ var InhibitShortcutsDialog = new Lang.Class({
},
vfunc_show: function() {
if (this._app && APP_WHITELIST.indexOf(this._app.get_id()) != -1)
this._emitResponse(DialogResponse.ALLOW);
else
this._dialog.open();
this._dialog.open();
},
vfunc_hide: function() {

View File

@@ -129,9 +129,6 @@ var MonitorConstraint = new Lang.Class({
if (!this._primary && this._index < 0)
return;
if (!Main.layoutManager.primaryMonitor)
return;
let index;
if (this._primary)
index = Main.layoutManager.primaryIndex;
@@ -192,7 +189,6 @@ var LayoutManager = new Lang.Class({
this._topActors = [];
this._isPopupWindowVisible = false;
this._startingUp = true;
this._pendingLoadBackground = false;
// We don't want to paint the stage background color because either
// the SystemBackground we create or the MetaBackgroundActor inside
@@ -327,9 +323,7 @@ var LayoutManager = new Lang.Class({
for (let i = 0; i < nMonitors; i++)
this.monitors.push(new Monitor(i, screen.get_monitor_geometry(i)));
if (nMonitors == 0) {
this.primaryIndex = this.bottomIndex = -1;
} else if (nMonitors == 1) {
if (nMonitors == 1) {
this.primaryIndex = this.bottomIndex = 0;
} else {
// If there are monitors below the primary, then we need
@@ -343,18 +337,8 @@ var LayoutManager = new Lang.Class({
}
}
}
if (this.primaryIndex != -1) {
this.primaryMonitor = this.monitors[this.primaryIndex];
this.bottomMonitor = this.monitors[this.bottomIndex];
if (this._pendingLoadBackground) {
this._loadBackground();
this._pendingLoadBackground = false;
}
} else {
this.primaryMonitor = null;
this.bottomMonitor = null;
}
this.primaryMonitor = this.monitors[this.primaryIndex];
this.bottomMonitor = this.monitors[this.bottomIndex];
},
_updateHotCorners: function() {
@@ -474,9 +458,6 @@ var LayoutManager = new Lang.Class({
this.screenShieldGroup.set_position(0, 0);
this.screenShieldGroup.set_size(global.screen_width, global.screen_height);
if (!this.primaryMonitor)
return;
this.panelBox.set_position(this.primaryMonitor.x, this.primaryMonitor.y);
this.panelBox.set_size(this.primaryMonitor.width, -1);
@@ -499,9 +480,6 @@ var LayoutManager = new Lang.Class({
this._rightPanelBarrier = null;
}
if (!this.primaryMonitor)
return;
if (this.panelBox.height) {
let primary = this.primaryMonitor;
@@ -571,10 +549,6 @@ var LayoutManager = new Lang.Class({
},
_loadBackground: function() {
if (!this.primaryMonitor) {
this._pendingLoadBackground = true;
return;
}
this._systemBackground = new Background.SystemBackground();
this._systemBackground.actor.hide();
@@ -710,10 +684,8 @@ var LayoutManager = new Lang.Class({
},
showKeyboard: function () {
this.keyboardBox.show();
Tweener.addTween(this.keyboardBox,
{ anchor_y: this.keyboardBox.height,
opacity: 255,
time: KEYBOARD_ANIMATION_TIME,
transition: 'easeOutQuad',
onComplete: this._showKeyboardComplete,
@@ -739,7 +711,6 @@ var LayoutManager = new Lang.Class({
}
Tweener.addTween(this.keyboardBox,
{ anchor_y: 0,
opacity: 0,
time: immediate ? 0 : KEYBOARD_ANIMATION_TIME,
transition: 'easeInQuad',
onComplete: this._hideKeyboardComplete,
@@ -750,7 +721,6 @@ var LayoutManager = new Lang.Class({
},
_hideKeyboardComplete: function() {
this.keyboardBox.hide();
this._updateRegions();
},

272
js/ui/legacyTray.js Normal file
View File

@@ -0,0 +1,272 @@
const Clutter = imports.gi.Clutter;
const GLib = imports.gi.GLib;
const GObject = imports.gi.GObject;
const Meta = imports.gi.Meta;
const Shell = imports.gi.Shell;
const St = imports.gi.St;
const CtrlAltTab = imports.ui.ctrlAltTab;
const Lang = imports.lang;
const Layout = imports.ui.layout;
const Main = imports.ui.main;
const Overview = imports.ui.overview;
const OverviewControls = imports.ui.overviewControls;
const Tweener = imports.ui.tweener;
var STANDARD_TRAY_ICON_IMPLEMENTATIONS = {
'bluetooth-applet': 'bluetooth',
'gnome-volume-control-applet': 'volume', // renamed to gnome-sound-applet
// when moved to control center
'gnome-sound-applet': 'volume',
'nm-applet': 'network',
'gnome-power-manager': 'battery',
'keyboard': 'keyboard',
'a11y-keyboard': 'a11y',
'kbd-scrolllock': 'keyboard',
'kbd-numlock': 'keyboard',
'kbd-capslock': 'keyboard',
'ibus-ui-gtk': 'keyboard'
};
// Offset of the original position from the bottom-right corner
var CONCEALED_WIDTH = 3;
var REVEAL_ANIMATION_TIME = 0.2;
var TEMP_REVEAL_TIME = 2;
var BARRIER_THRESHOLD = 70;
var BARRIER_TIMEOUT = 1000;
var LegacyTray = new Lang.Class({
Name: 'LegacyTray',
_init: function() {
this.actor = new St.Widget({ clip_to_allocation: true,
layout_manager: new Clutter.BinLayout() });
let constraint = new Layout.MonitorConstraint({ primary: true,
work_area: true });
this.actor.add_constraint(constraint);
this._slideLayout = new OverviewControls.SlideLayout();
this._slideLayout.translationX = 0;
this._slideLayout.slideDirection = OverviewControls.SlideDirection.LEFT;
this._slider = new St.Widget({ x_expand: true, y_expand: true,
x_align: Clutter.ActorAlign.START,
y_align: Clutter.ActorAlign.END,
layout_manager: this._slideLayout });
this.actor.add_actor(this._slider);
this._slider.connect('notify::allocation', Lang.bind(this, this._syncBarrier));
this._box = new St.BoxLayout({ style_class: 'legacy-tray' });
this._slider.add_actor(this._box);
this._concealHandle = new St.Button({ style_class: 'legacy-tray-handle',
/* translators: 'Hide' is a verb */
accessible_name: _("Hide tray"),
can_focus: true });
this._concealHandle.child = new St.Icon({ icon_name: 'go-previous-symbolic' });
this._box.add_child(this._concealHandle);
this._iconBox = new St.BoxLayout({ style_class: 'legacy-tray-icon-box' });
this._box.add_actor(this._iconBox);
this._revealHandle = new St.Button({ style_class: 'legacy-tray-handle' });
this._revealHandle.child = new St.Icon({ icon_name: 'go-next-symbolic' });
this._box.add_child(this._revealHandle);
this._revealHandle.bind_property('visible',
this._concealHandle, 'visible',
GObject.BindingFlags.BIDIRECTIONAL |
GObject.BindingFlags.INVERT_BOOLEAN);
this._revealHandle.connect('notify::visible',
Lang.bind(this, this._sync));
this._revealHandle.connect('notify::hover',
Lang.bind(this ,this._sync));
this._revealHandle.connect('clicked', Lang.bind(this,
function() {
this._concealHandle.show();
}));
this._concealHandle.connect('clicked', Lang.bind(this,
function() {
this._revealHandle.show();
}));
this._horizontalBarrier = null;
this._pressureBarrier = new Layout.PressureBarrier(BARRIER_THRESHOLD,
BARRIER_TIMEOUT,
Shell.ActionMode.NORMAL);
this._pressureBarrier.connect('trigger', Lang.bind(this, function() {
this._concealHandle.show();
}));
Main.layoutManager.addChrome(this.actor, { affectsInputRegion: false });
Main.layoutManager.trackChrome(this._slider, { affectsInputRegion: true });
Main.uiGroup.set_child_below_sibling(this.actor, Main.layoutManager.modalDialogGroup);
Main.ctrlAltTabManager.addGroup(this.actor,
_("Status Icons"), 'focus-legacy-systray-symbolic',
{ sortGroup: CtrlAltTab.SortGroup.BOTTOM });
this._trayManager = new Shell.TrayManager();
this._trayIconAddedId = this._trayManager.connect('tray-icon-added', Lang.bind(this, this._onTrayIconAdded));
this._trayIconRemovedId = this._trayManager.connect('tray-icon-removed', Lang.bind(this, this._onTrayIconRemoved));
this._trayManager.manage_screen(global.screen, this.actor);
Main.overview.connect('showing', Lang.bind(this,
function() {
Tweener.removeTweens(this._slider);
Tweener.addTween(this._slider, { opacity: 0,
time: Overview.ANIMATION_TIME,
transition: 'easeOutQuad' });
}));
Main.overview.connect('shown', Lang.bind(this, this._sync));
Main.overview.connect('hiding', Lang.bind(this,
function() {
this._sync();
Tweener.removeTweens(this._slider);
Tweener.addTween(this._slider, { opacity: 255,
time: Overview.ANIMATION_TIME,
transition: 'easeOutQuad' });
}));
Main.layoutManager.connect('monitors-changed',
Lang.bind(this, this._sync));
global.screen.connect('in-fullscreen-changed',
Lang.bind(this, this._sync));
Main.sessionMode.connect('updated', Lang.bind(this, this._sync));
this._sync();
},
_onTrayIconAdded: function(tm, icon) {
let wmClass = icon.wm_class ? icon.wm_class.toLowerCase() : '';
if (STANDARD_TRAY_ICON_IMPLEMENTATIONS[wmClass] !== undefined)
return;
let button = new St.Button({ child: icon,
style_class: 'legacy-tray-icon',
button_mask: St.ButtonMask.ONE |
St.ButtonMask.TWO |
St.ButtonMask.THREE,
can_focus: true,
x_fill: true, y_fill: true });
let app = Shell.WindowTracker.get_default().get_app_from_pid(icon.pid);
if (!app)
app = Shell.AppSystem.get_default().lookup_startup_wmclass(wmClass);
if (!app)
app = Shell.AppSystem.get_default().lookup_desktop_wmclass(wmClass);
if (app)
button.accessible_name = app.get_name();
else
button.accessible_name = icon.title;
button.connect('clicked',
function() {
icon.click(Clutter.get_current_event());
});
button.connect('key-press-event',
function() {
icon.click(Clutter.get_current_event());
return Clutter.EVENT_PROPAGATE;
});
button.connect('key-focus-in', Lang.bind(this,
function() {
this._concealHandle.show();
}));
this._iconBox.add_actor(button);
if (!this._concealHandle.visible) {
this._concealHandle.show();
GLib.timeout_add_seconds(GLib.PRIORITY_DEFAULT, TEMP_REVEAL_TIME,
Lang.bind(this, function() {
this._concealHandle.hide();
return GLib.SOURCE_REMOVE;
}));
}
},
_onTrayIconRemoved: function(tm, icon) {
if (!this.actor.contains(icon))
return;
icon.get_parent().destroy();
this._sync();
},
_syncBarrier: function() {
let rtl = (this._slider.get_text_direction() == Clutter.TextDirection.RTL);
let [x, y] = this._slider.get_transformed_position();
let [w, h] = this._slider.get_transformed_size();
let x1 = Math.round(x);
if (rtl)
x1 += Math.round(w);
let x2 = x1;
let y1 = Math.round(y);
let y2 = y1 + Math.round(h);
if (this._horizontalBarrier &&
this._horizontalBarrier.x1 == x1 &&
this._horizontalBarrier.y1 == y1 &&
this._horizontalBarrier.x2 == x2 &&
this._horizontalBarrier.y2 == y2)
return;
this._unsetBarrier();
let directions = (rtl ? Meta.BarrierDirection.NEGATIVE_X : Meta.BarrierDirection.POSITIVE_X);
this._horizontalBarrier = new Meta.Barrier({ display: global.display,
x1: x1, x2: x2,
y1: y1, y2: y2,
directions: directions });
this._pressureBarrier.addBarrier(this._horizontalBarrier);
},
_unsetBarrier: function() {
if (this._horizontalBarrier == null)
return;
this._pressureBarrier.removeBarrier(this._horizontalBarrier);
this._horizontalBarrier.destroy();
this._horizontalBarrier = null;
},
_sync: function() {
// FIXME: we no longer treat tray icons as notifications
let allowed = Main.sessionMode.hasNotifications;
let hasIcons = this._iconBox.get_n_children() > 0;
let inOverview = Main.overview.visible && !Main.overview.animationInProgress;
let inFullscreen = Main.layoutManager.primaryMonitor.inFullscreen;
this.actor.visible = allowed && hasIcons && !inOverview && !inFullscreen;
if (!hasIcons)
this._concealHandle.hide();
let targetSlide;
if (this._concealHandle.visible) {
targetSlide = 1.0;
} else if (!hasIcons) {
targetSlide = 0.0;
} else {
let [, boxWidth] = this._box.get_preferred_width(-1);
let [, handleWidth] = this._revealHandle.get_preferred_width(-1);
if (this._revealHandle.hover)
targetSlide = handleWidth / boxWidth;
else
targetSlide = CONCEALED_WIDTH / boxWidth;
}
if (this.actor.visible) {
Tweener.addTween(this._slideLayout,
{ slideX: targetSlide,
time: REVEAL_ANIMATION_TIME,
transition: 'easeOutQuad' });
} else {
this._slideLayout.slideX = targetSlide;
this._unsetBarrier();
}
}
});

View File

@@ -20,6 +20,7 @@ const Environment = imports.ui.environment;
const ExtensionSystem = imports.ui.extensionSystem;
const ExtensionDownloader = imports.ui.extensionDownloader;
const Keyboard = imports.ui.keyboard;
const LegacyTray = imports.ui.legacyTray;
const MessageTray = imports.ui.messageTray;
const ModalDialog = imports.ui.modalDialog;
const OsdWindow = imports.ui.osdWindow;
@@ -55,6 +56,7 @@ var overview = null;
var runDialog = null;
var lookingGlass = null;
var wm = null;
var legacyTray = null;
var messageTray = null;
var screenShield = null;
var notificationDaemon = null;
@@ -122,7 +124,6 @@ function start() {
sessionMode.connect('updated', _sessionUpdated);
Gtk.Settings.get_default().connect('notify::gtk-theme-name',
_loadDefaultStylesheet);
Gtk.IconTheme.get_default().add_resource_path('/org/gnome/shell/theme/icons');
_initializeUI();
shellAccessDialogDBusService = new AccessDialog.AccessDialogDBus();
@@ -168,6 +169,7 @@ function _initializeUI() {
if (LoginManager.canLock())
screenShield = new ScreenShield.ScreenShield();
legacyTray = new LegacyTray.LegacyTray();
messageTray = new MessageTray.MessageTray();
panel = new Panel.Panel();
keyboard = new Keyboard.Keyboard();

View File

@@ -1205,9 +1205,8 @@ var MessageTray = new Lang.Class({
// _updateState() figures out what (if anything) needs to be done
// at the present time.
_updateState: function() {
let hasMonitor = Main.layoutManager.primaryMonitor != null;
this.actor.visible = !this._bannerBlocked && hasMonitor && this._banner != null;
if (this._bannerBlocked || !hasMonitor)
this.actor.visible = !this._bannerBlocked && this._banner != null;
if (this._bannerBlocked)
return;
// If our state changes caused _updateState to be called,

View File

@@ -84,7 +84,7 @@ var ModalDialog = new Lang.Class({
}
global.focus_manager.add_group(this.dialogLayout);
this._initialKeyFocus = null;
this._initialKeyFocus = this.dialogLayout;
this._initialKeyFocusDestroyId = 0;
this._savedKeyFocus = null;
},
@@ -157,7 +157,7 @@ var ModalDialog = new Lang.Class({
this._initialKeyFocus = actor;
this._initialKeyFocusDestroyId = actor.connect('destroy', Lang.bind(this, function() {
this._initialKeyFocus = null;
this._initialKeyFocus = this.dialogLayout;
this._initialKeyFocusDestroyId = 0;
}));
},
@@ -237,8 +237,7 @@ var ModalDialog = new Lang.Class({
this._savedKeyFocus.grab_key_focus();
this._savedKeyFocus = null;
} else {
let focus = this._initialKeyFocus || this.dialogLayout.initialKeyFocus;
focus.grab_key_focus();
this._initialKeyFocus.grab_key_focus();
}
if (!this._shellReactive)

View File

@@ -670,7 +670,7 @@ const FdoApplicationIface = '<node> \
const FdoApplicationProxy = Gio.DBusProxy.makeProxyWrapper(FdoApplicationIface);
function objectPathFromAppId(appId) {
return '/' + appId.replace(/\./g, '/').replace(/-/g, '_');
return '/' + appId.replace(/\./g, '/');
}
function getPlatformData() {
@@ -687,8 +687,6 @@ var GtkNotificationDaemonAppSource = new Lang.Class({
_init: function(appId) {
this._appId = appId;
this._objectPath = objectPathFromAppId(appId);
if (!GLib.Variant.is_object_path(this._objectPath))
throw new InvalidAppError();
this._app = Shell.AppSystem.get_default().lookup_app(appId + '.desktop');
if (!this._app)

View File

@@ -392,9 +392,6 @@ var Overview = new Lang.Class({
// when it is next shown.
this.hide();
if (!Main.layoutManager.primaryMonitor)
return;
let workArea = Main.layoutManager.getWorkAreaForMonitor(Main.layoutManager.primaryIndex);
this._coverPane.set_position(0, workArea.y);

View File

@@ -513,7 +513,7 @@ var PadDiagram = new Lang.Class({
},
getRingLabelCoords: function (number, dir) {
let numStr = number > 0 ? (number + 1).toString() : '';
let numStr = number > 0 ? number.toString() : '';
let dirStr = dir == CW ? 'CW' : 'CCW';
let labelName = 'LabelRing' + numStr + dirStr;
let leaderName = 'LeaderRing' + numStr + dirStr;

View File

@@ -763,6 +763,7 @@ const PANEL_ITEM_IMPLEMENTATIONS = {
'appMenu': AppMenuButton,
'dateMenu': imports.ui.dateMenu.DateMenuButton,
'a11y': imports.ui.status.accessibility.ATIndicator,
'a11yGreeter': imports.ui.status.accessibility.ATGreeterIndicator,
'keyboard': imports.ui.status.keyboard.InputSourceIndicator,
};
@@ -838,14 +839,8 @@ var Panel = new Lang.Class({
},
_getPreferredWidth: function(actor, forHeight, alloc) {
let primaryMonitor = Main.layoutManager.primaryMonitor;
alloc.min_size = -1;
if (primaryMonitor)
alloc.natural_size = primaryMonitor.width;
else
alloc.natural_size = -1;
alloc.natural_size = Main.layoutManager.primaryMonitor.width;
},
_getPreferredHeight: function(actor, forWidth, alloc) {
@@ -864,16 +859,15 @@ var Panel = new Lang.Class({
let sideWidth, centerWidth;
centerWidth = centerNaturalWidth;
sideWidth = Math.max(0, (allocWidth - centerWidth) / 2);
sideWidth = (allocWidth - centerWidth) / 2;
let childBox = new Clutter.ActorBox();
childBox.y1 = 0;
childBox.y2 = allocHeight;
if (this.actor.get_text_direction() == Clutter.TextDirection.RTL) {
childBox.x1 = Math.max(allocWidth - Math.min(Math.floor(sideWidth),
leftNaturalWidth),
0);
childBox.x1 = allocWidth - Math.min(Math.floor(sideWidth),
leftNaturalWidth);
childBox.x2 = allocWidth;
} else {
childBox.x1 = 0;
@@ -895,9 +889,8 @@ var Panel = new Lang.Class({
childBox.x2 = Math.min(Math.floor(sideWidth),
rightNaturalWidth);
} else {
childBox.x1 = Math.max(allocWidth - Math.min(Math.floor(sideWidth),
rightNaturalWidth),
0);
childBox.x1 = allocWidth - Math.min(Math.floor(sideWidth),
rightNaturalWidth);
childBox.x2 = allocWidth;
}
this._rightBox.allocate(childBox, flags);
@@ -1051,9 +1044,6 @@ var Panel = new Lang.Class({
return;
}
if (!Main.layoutManager.primaryMonitor)
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) {
@@ -1083,6 +1073,8 @@ var Panel = new Lang.Class({
let indicator = this.statusArea[role];
if (!indicator)
continue;
if (indicator.menu)
indicator.menu.close();
indicator.container.hide();
}
},

View File

@@ -405,7 +405,7 @@ var PopupImageMenuItem = new Lang.Class({
setIcon: function(icon) {
// The 'icon' parameter can be either a Gio.Icon or a string.
if (icon instanceof GObject.Object && GObject.type_is_a(icon, Gio.Icon))
if (GObject.type_is_a(icon, Gio.Icon))
this._icon.gicon = icon;
else
this._icon.icon_name = icon;
@@ -465,7 +465,6 @@ var PopupMenuBase = new Lang.Class({
_sessionUpdated: function() {
this._setSettingsVisibility(Main.sessionMode.allowSettings);
this.close();
},
addAction: function(title, callback, icon) {

View File

@@ -98,13 +98,6 @@ function loadRemoteSearchProviders(searchSettings, callback) {
return;
}
let autoStart = true;
try {
autoStart = keyfile.get_boolean(group, 'AutoStart');
} catch(e) {
// ignore error
}
let version = '1';
try {
version = keyfile.get_string(group, 'Version');
@@ -113,9 +106,9 @@ function loadRemoteSearchProviders(searchSettings, callback) {
}
if (version >= 2)
remoteProvider = new RemoteSearchProvider2(appInfo, busName, objectPath, autoStart);
remoteProvider = new RemoteSearchProvider2(appInfo, busName, objectPath);
else
remoteProvider = new RemoteSearchProvider(appInfo, busName, objectPath, autoStart);
remoteProvider = new RemoteSearchProvider(appInfo, busName, objectPath);
remoteProvider.defaultEnabled = true;
try {
@@ -191,22 +184,17 @@ function loadRemoteSearchProviders(searchSettings, callback) {
var RemoteSearchProvider = new Lang.Class({
Name: 'RemoteSearchProvider',
_init: function(appInfo, dbusName, dbusPath, autoStart, proxyInfo) {
_init: function(appInfo, dbusName, dbusPath, proxyInfo) {
if (!proxyInfo)
proxyInfo = SearchProviderProxyInfo;
let g_flags = Gio.DBusProxyFlags.DO_NOT_LOAD_PROPERTIES;
if (autoStart)
g_flags |= Gio.DBusProxyFlags.DO_NOT_AUTO_START_AT_CONSTRUCTION;
else
g_flags |= Gio.DBusProxyFlags.DO_NOT_AUTO_START;
this.proxy = new Gio.DBusProxy({ g_bus_type: Gio.BusType.SESSION,
g_name: dbusName,
g_object_path: dbusPath,
g_interface_info: proxyInfo,
g_interface_name: proxyInfo.name,
g_flags });
g_flags: (Gio.DBusProxyFlags.DO_NOT_AUTO_START_AT_CONSTRUCTION |
Gio.DBusProxyFlags.DO_NOT_LOAD_PROPERTIES) });
this.proxy.init_async(GLib.PRIORITY_DEFAULT, null, null);
this.appInfo = appInfo;
@@ -319,8 +307,8 @@ var RemoteSearchProvider2 = new Lang.Class({
Name: 'RemoteSearchProvider2',
Extends: RemoteSearchProvider,
_init: function(appInfo, dbusName, dbusPath, autoStart) {
this.parent(appInfo, dbusName, dbusPath, autoStart, SearchProvider2ProxyInfo);
_init: function(appInfo, dbusName, dbusPath) {
this.parent(appInfo, dbusName, dbusPath, SearchProvider2ProxyInfo);
this.canLaunchSearch = true;
},

View File

@@ -681,15 +681,6 @@ var SearchResults = new Lang.Class({
this._setSelected(this._defaultResult, highlight);
},
popupMenuDefault: function() {
// If we have a search queued up, force the search now.
if (this._searchTimeoutId > 0)
this._doSearch();
if (this._defaultResult)
this._defaultResult.actor.popup_menu();
},
navigateFocus: function(direction) {
let rtl = this.actor.get_text_direction() == Clutter.TextDirection.RTL;
if (direction == Gtk.DirectionType.TAB_BACKWARD ||
@@ -774,7 +765,7 @@ var ProviderInfo = new Lang.Class({
},
setMoreCount: function(count) {
this._moreLabel.text = ngettext("%d more", "%d more", count).format(count);
this._moreLabel.text = _("%d more").format(count);
this._moreLabel.visible = count > 0;
}
});

View File

@@ -49,7 +49,7 @@ const _modes = {
panel: {
left: [],
center: ['dateMenu'],
right: ['a11y', 'keyboard', 'aggregateMenu']
right: ['a11yGreeter', 'keyboard', 'aggregateMenu'],
},
panelStyle: 'login-screen'
},

View File

@@ -212,3 +212,12 @@ var ATIndicator = new Lang.Class({
return widget;
}
});
var ATGreeterIndicator = new Lang.Class({
Name: 'ATGreeterIndicator',
Extends: ATIndicator,
// Override visibility handling to be always visible
_syncMenuVisibility: function() { },
_queueSyncMenuVisibility: function() { }
});

View File

@@ -843,7 +843,7 @@ var InputSourceIndicator = new Lang.Class({
this._indicatorLabels[i] = indicatorLabel;
is.connect('changed', function() {
menuItem.indicator.set_text(is.shortName);
indicatorLabel.set_text(is.shortName);
indicatorLabel.set_text(is.shorName);
});
this.menu.addMenuItem(menuItem, menuIndex++);

View File

@@ -115,6 +115,17 @@ function ensureActiveConnectionProps(active, settings) {
}
}
function createSettingsAction(label, device) {
let item = new PopupMenu.PopupMenuItem(label);
item.connect('activate', function() {
Util.spawnApp(['gnome-control-center', 'network', 'show-device',
device.get_path()]);
});
return item;
}
var NMConnectionItem = new Lang.Class({
Name: 'NMConnectionItem',
@@ -503,7 +514,7 @@ var NMDeviceWired = new Lang.Class({
_init: function(client, device, settings) {
this.parent(client, device, settings);
this.item.menu.addSettingsAction(_("Wired Settings"), 'gnome-network-panel.desktop');
this.item.menu.addMenuItem(createSettingsAction(_("Wired Settings"), device));
},
_hasCarrier: function() {
@@ -545,7 +556,7 @@ var NMDeviceModem = new Lang.Class({
_init: function(client, device, settings) {
this.parent(client, device, settings);
this.item.menu.addSettingsAction(_("Mobile Broadband Settings"), 'gnome-network-panel.desktop');
this.item.menu.addMenuItem(createSettingsAction(_("Mobile Broadband Settings"), device));
this._mobileDevice = null;
@@ -624,7 +635,7 @@ var NMDeviceBluetooth = new Lang.Class({
_init: function(client, device, settings) {
this.parent(client, device, settings);
this.item.menu.addSettingsAction(_("Bluetooth Settings"), 'gnome-network-panel.desktop');
this.item.menu.addMenuItem(createSettingsAction(_("Bluetooth Settings"), device));
},
_getDescription: function() {
@@ -1194,7 +1205,7 @@ var NMDeviceWireless = new Lang.Class({
this._toggleItem.connect('activate', Lang.bind(this, this._toggleWifi));
this.item.menu.addMenuItem(this._toggleItem);
this.item.menu.addSettingsAction(_("Wi-Fi Settings"), 'gnome-wifi-panel.desktop');
this.item.menu.addMenuItem(createSettingsAction(_("Wi-Fi Settings"), device));
this._wirelessEnabledChangedId = this._client.connect('notify::wireless-enabled', Lang.bind(this, this._sync));
this._wirelessHwEnabledChangedId = this._client.connect('notify::wireless-hardware-enabled', Lang.bind(this, this._sync));
@@ -1491,7 +1502,36 @@ var NMVPNSection = new Lang.Class({
_init: function(client) {
this.parent(client);
this.item.menu.addSettingsAction(_("VPN Settings"), 'gnome-network-panel.desktop');
this._vpnSettings = new PopupMenu.PopupMenuItem('');
this.item.menu.addMenuItem(this._vpnSettings);
this._vpnSettings.connect('activate', Lang.bind(this, this._onSettingsActivate));
this._sync();
},
_sync: function() {
let nItems = this._connectionItems.size;
this.item.actor.visible = (nItems > 0);
if (nItems > 1)
this._vpnSettings.label.text = _("Network Settings");
else
this._vpnSettings.label.text = _("VPN Settings");
this.parent();
},
_onSettingsActivate: function() {
let nItems = this._connectionItems.size;
if (nItems > 1) {
let appSys = Shell.AppSystem.get_default();
let app = appSys.lookup_app('gnome-network-panel.desktop');
app.launch(0, -1, false);
} else {
let connection = this._connections[0];
Util.spawnApp(['gnome-control-center', 'network', 'show-device',
connection.get_path()]);
}
},
_getDescription: function() {

View File

@@ -2,19 +2,39 @@
const AccountsService = imports.gi.AccountsService;
const Clutter = imports.gi.Clutter;
const Gdm = imports.gi.Gdm;
const Gio = imports.gi.Gio;
const GLib = imports.gi.GLib;
const Lang = imports.lang;
const Meta = imports.gi.Meta;
const Shell = imports.gi.Shell;
const St = imports.gi.St;
const GObject = imports.gi.GObject;
const BoxPointer = imports.ui.boxpointer;
const SystemActions = imports.misc.systemActions;
const GnomeSession = imports.misc.gnomeSession;
const LoginManager = imports.misc.loginManager;
const Main = imports.ui.main;
const PanelMenu = imports.ui.panelMenu;
const PopupMenu = imports.ui.popupMenu;
const LOCKDOWN_SCHEMA = 'org.gnome.desktop.lockdown';
const LOGIN_SCREEN_SCHEMA = 'org.gnome.login-screen';
const DISABLE_USER_SWITCH_KEY = 'disable-user-switching';
const DISABLE_LOCK_SCREEN_KEY = 'disable-lock-screen';
const DISABLE_LOG_OUT_KEY = 'disable-log-out';
const DISABLE_RESTART_KEY = 'disable-restart-buttons';
const ALWAYS_SHOW_LOG_OUT_KEY = 'always-show-log-out';
const SENSOR_BUS_NAME = 'net.hadess.SensorProxy';
const SENSOR_OBJECT_PATH = '/net/hadess/SensorProxy';
const SensorProxyInterface = '<node> \
<interface name="net.hadess.SensorProxy"> \
<property name="HasAccelerometer" type="b" access="read"/> \
</interface> \
</node>';
const SensorProxy = Gio.DBusProxy.makeProxyWrapper(SensorProxyInterface);
var AltSwitcher = new Lang.Class({
Name: 'AltSwitcher',
@@ -118,17 +138,41 @@ var Indicator = new Lang.Class({
_init: function() {
this.parent();
let userManager = AccountsService.UserManager.get_default();
this._user = userManager.get_user(GLib.get_user_name());
this._loginScreenSettings = new Gio.Settings({ schema_id: LOGIN_SCREEN_SCHEMA });
this._lockdownSettings = new Gio.Settings({ schema_id: LOCKDOWN_SCHEMA });
this._orientationSettings = new Gio.Settings({ schema_id: 'org.gnome.settings-daemon.peripherals.touchscreen' });
this._systemActions = new SystemActions.getDefault();
this._session = new GnomeSession.SessionManager();
this._loginManager = LoginManager.getLoginManager();
this._monitorManager = Meta.MonitorManager.get();
this._haveShutdown = true;
this._haveSuspend = true;
this._userManager = AccountsService.UserManager.get_default();
this._user = this._userManager.get_user(GLib.get_user_name());
this._createSubMenu();
this._loginScreenItem.actor.connect('notify::visible',
() => { this._updateMultiUser(); });
this._logoutItem.actor.connect('notify::visible',
() => { this._updateMultiUser(); });
this._userManager.connect('notify::is-loaded',
Lang.bind(this, this._updateMultiUser));
this._userManager.connect('notify::has-multiple-users',
Lang.bind(this, this._updateMultiUser));
this._userManager.connect('user-added',
Lang.bind(this, this._updateMultiUser));
this._userManager.connect('user-removed',
Lang.bind(this, this._updateMultiUser));
this._lockdownSettings.connect('changed::' + DISABLE_USER_SWITCH_KEY,
Lang.bind(this, this._updateMultiUser));
this._lockdownSettings.connect('changed::' + DISABLE_LOG_OUT_KEY,
Lang.bind(this, this._updateMultiUser));
this._lockdownSettings.connect('changed::' + DISABLE_LOCK_SCREEN_KEY,
Lang.bind(this, this._updateLockScreen));
global.settings.connect('changed::' + ALWAYS_SHOW_LOG_OUT_KEY,
Lang.bind(this, this._updateMultiUser));
this._updateSwitchUser();
this._updateMultiUser();
this._updateLockScreen();
// Whether shutdown is available or not depends on both lockdown
// settings (disable-log-out) and Polkit policy - the latter doesn't
// notify, so we update the menu item each time the menu opens or
@@ -138,14 +182,42 @@ var Indicator = new Lang.Class({
if (!open)
return;
this._systemActions.forceUpdate();
this._updateHaveShutdown();
this._updateHaveSuspend();
}));
this._updateMultiUser();
this._lockdownSettings.connect('changed::' + DISABLE_LOG_OUT_KEY,
Lang.bind(this, this._updateHaveShutdown));
this._orientationSettings.connect('changed::orientation-lock',
Lang.bind(this, this._updateOrientationLock));
Main.layoutManager.connect('monitors-changed',
Lang.bind(this, this._updateOrientationLock));
Gio.DBus.system.watch_name(SENSOR_BUS_NAME,
Gio.BusNameWatcherFlags.NONE,
Lang.bind(this, this._sensorProxyAppeared),
Lang.bind(this, function() {
this._sensorProxy = null;
this._updateOrientationLock();
}));
this._updateOrientationLock();
Main.sessionMode.connect('updated', Lang.bind(this, this._sessionUpdated));
this._sessionUpdated();
},
_sensorProxyAppeared: function() {
this._sensorProxy = new SensorProxy(Gio.DBus.system, SENSOR_BUS_NAME, SENSOR_OBJECT_PATH,
Lang.bind(this, function(proxy, error) {
if (error) {
log(error.message);
return;
}
this._sensorProxy.connect('g-properties-changed',
Lang.bind(this, this._updateOrientationLock));
this._updateOrientationLock();
}));
},
_updateActionsVisibility: function() {
let visible = (this._settingsAction.visible ||
this._orientationLockAction.visible ||
@@ -156,14 +228,42 @@ var Indicator = new Lang.Class({
},
_sessionUpdated: function() {
this._updateLockScreen();
this._updatePowerOff();
this._updateSuspend();
this._updateMultiUser();
this._settingsAction.visible = Main.sessionMode.allowSettings;
this._updateActionsVisibility();
},
_updateMultiUser: function() {
let hasSwitchUser = this._loginScreenItem.actor.visible;
let hasLogout = this._logoutItem.actor.visible;
let shouldShowInMode = !Main.sessionMode.isLocked && !Main.sessionMode.isGreeter;
let hasSwitchUser = this._updateSwitchUser();
let hasLogout = this._updateLogout();
this._switchUserSubMenu.actor.visible = hasSwitchUser || hasLogout;
this._switchUserSubMenu.actor.visible = shouldShowInMode && (hasSwitchUser || hasLogout);
},
_updateSwitchUser: function() {
let allowSwitch = !this._lockdownSettings.get_boolean(DISABLE_USER_SWITCH_KEY);
let multiUser = this._userManager.can_switch() && this._userManager.has_multiple_users;
let visible = allowSwitch && multiUser;
this._loginScreenItem.actor.visible = visible;
return visible;
},
_updateLogout: function() {
let allowLogout = !this._lockdownSettings.get_boolean(DISABLE_LOG_OUT_KEY);
let alwaysShow = global.settings.get_boolean(ALWAYS_SHOW_LOG_OUT_KEY);
let systemAccount = this._user.system_account;
let localAccount = this._user.local_account;
let multiUser = this._userManager.has_multiple_users;
let multiSession = Gdm.get_session_ids().length > 1;
let visible = allowLogout && (alwaysShow || multiUser || multiSession || systemAccount || !localAccount);
this._logoutItem.actor.visible = visible;
return visible;
},
_updateSwitchUserSubMenu: function() {
@@ -199,6 +299,63 @@ var Indicator = new Lang.Class({
}
},
_updateOrientationLock: function() {
if (this._sensorProxy)
this._orientationLockAction.visible = this._sensorProxy.HasAccelerometer &&
this._monitorManager.get_is_builtin_display_on();
else
this._orientationLockAction.visible = false;
let locked = this._orientationSettings.get_boolean('orientation-lock');
let icon = this._orientationLockAction.child;
icon.icon_name = locked ? 'rotation-locked-symbolic' : 'rotation-allowed-symbolic';
this._updateActionsVisibility();
},
_updateLockScreen: function() {
let showLock = !Main.sessionMode.isLocked && !Main.sessionMode.isGreeter;
let allowLockScreen = !this._lockdownSettings.get_boolean(DISABLE_LOCK_SCREEN_KEY);
this._lockScreenAction.visible = showLock && allowLockScreen && LoginManager.canLock();
this._updateActionsVisibility();
},
_updateHaveShutdown: function() {
this._session.CanShutdownRemote(Lang.bind(this, function(result, error) {
if (error)
return;
this._haveShutdown = result[0];
this._updatePowerOff();
}));
},
_updatePowerOff: function() {
let disabled = Main.sessionMode.isLocked ||
(Main.sessionMode.isGreeter &&
this._loginScreenSettings.get_boolean(DISABLE_RESTART_KEY));
this._powerOffAction.visible = this._haveShutdown && !disabled;
this._updateActionsVisibility();
},
_updateHaveSuspend: function() {
this._loginManager.canSuspend(Lang.bind(this,
function(canSuspend, needsAuth) {
this._haveSuspend = canSuspend;
this._suspendNeedsAuth = needsAuth;
this._updateSuspend();
}));
},
_updateSuspend: function() {
let disabled = (Main.sessionMode.isLocked &&
this._suspendNeedsAuth) ||
(Main.sessionMode.isGreeter &&
this._loginScreenSettings.get_boolean(DISABLE_RESTART_KEY));
this._suspendAction.visible = this._haveSuspend && !disabled;
this._updateActionsVisibility();
},
_createActionButton: function(iconName, accessibleName) {
let icon = new St.Button({ reactive: true,
can_focus: true,
@@ -210,7 +367,6 @@ var Indicator = new Lang.Class({
},
_createSubMenu: function() {
let bindFlags = GObject.BindingFlags.DEFAULT | GObject.BindingFlags.SYNC_CREATE;
let item;
this._switchUserSubMenu = new PopupMenu.PopupSubMenuMenuItem('', true);
@@ -226,28 +382,14 @@ var Indicator = new Lang.Class({
}));
item = new PopupMenu.PopupMenuItem(_("Switch User"));
item.connect('activate', () => {
this.menu.itemActivated(BoxPointer.PopupAnimation.NONE);
this._systemActions.activateSwitchUser();
});
item.connect('activate', Lang.bind(this, this._onLoginScreenActivate));
this._switchUserSubMenu.menu.addMenuItem(item);
this._loginScreenItem = item;
this._systemActions.bind_property('can-switch-user',
this._loginScreenItem.actor,
'visible',
bindFlags);
item = new PopupMenu.PopupMenuItem(_("Log Out"));
item.connect('activate', () => {
this.menu.itemActivated(BoxPointer.PopupAnimation.NONE);
this._systemActions.activateLogout();
});
item.connect('activate', Lang.bind(this, this._onQuitSessionActivate));
this._switchUserSubMenu.menu.addMenuItem(item);
this._logoutItem = item;
this._systemActions.bind_property('can-logout',
this._logoutItem.actor,
'visible',
bindFlags);
this._switchUserSubMenu.menu.addSettingsAction(_("Account Settings"),
'gnome-user-accounts-panel.desktop');
@@ -263,70 +405,28 @@ var Indicator = new Lang.Class({
can_focus: false });
this._settingsAction = this._createActionButton('preferences-system-symbolic', _("Settings"));
this._settingsAction.connect('clicked', () => { this._onSettingsClicked(); });
this._settingsAction.connect('clicked', Lang.bind(this, this._onSettingsClicked));
item.actor.add(this._settingsAction, { expand: true, x_fill: false });
this._orientationLockAction = this._createActionButton('', _("Orientation Lock"));
this._orientationLockAction.connect('clicked', () => {
this.menu.itemActivated(BoxPointer.PopupAnimation.NONE),
this._systemActions.activateLockOrientation();
});
this._orientationLockAction.connect('clicked', Lang.bind(this, this._onOrientationLockClicked));
item.actor.add(this._orientationLockAction, { expand: true, x_fill: false });
this._systemActions.bind_property('can-lock-orientation',
this._orientationLockAction,
'visible',
bindFlags);
this._systemActions.bind_property('orientation-lock-icon',
this._orientationLockAction.child,
'icon-name',
bindFlags);
this._lockScreenAction = this._createActionButton('changes-prevent-symbolic', _("Lock"));
this._lockScreenAction.connect('clicked', () => {
this.menu.itemActivated(BoxPointer.PopupAnimation.NONE);
this._systemActions.activateLockScreen();
});
this._lockScreenAction.connect('clicked', Lang.bind(this, this._onLockScreenClicked));
item.actor.add(this._lockScreenAction, { expand: true, x_fill: false });
this._systemActions.bind_property('can-lock-screen',
this._lockScreenAction,
'visible',
bindFlags);
this._suspendAction = this._createActionButton('media-playback-pause-symbolic', _("Suspend"));
this._suspendAction.connect('clicked', () => {
this.menu.itemActivated(BoxPointer.PopupAnimation.NONE);
this._systemActions.activateSuspend();
});
this._systemActions.bind_property('can-suspend',
this._suspendAction,
'visible',
bindFlags);
this._suspendAction.connect('clicked', Lang.bind(this, this._onSuspendClicked));
this._powerOffAction = this._createActionButton('system-shutdown-symbolic', _("Power Off"));
this._powerOffAction.connect('clicked', () => {
this.menu.itemActivated(BoxPointer.PopupAnimation.NONE);
this._systemActions.activatePowerOff();
});
this._systemActions.bind_property('can-power-off',
this._powerOffAction,
'visible',
bindFlags);
this._powerOffAction.connect('clicked', Lang.bind(this, this._onPowerOffClicked));
this._altSwitcher = new AltSwitcher(this._powerOffAction, this._suspendAction);
item.actor.add(this._altSwitcher.actor, { expand: true, x_fill: false });
this._actionsItem = item;
this.menu.addMenuItem(item);
this._settingsAction.connect('notify::visible',
() => { this._updateActionsVisibility(); });
this._orientationLockAction.connect('notify::visible',
() => { this._updateActionsVisibility(); });
this._lockScreenAction.connect('notify::visible',
() => { this._updateActionsVisibility(); });
this._altSwitcher.actor.connect('notify::visible',
() => { this._updateActionsVisibility(); });
},
_onSettingsClicked: function() {
@@ -334,5 +434,46 @@ var Indicator = new Lang.Class({
let app = Shell.AppSystem.get_default().lookup_app('gnome-control-center.desktop');
Main.overview.hide();
app.activate();
}
},
_onOrientationLockClicked: function() {
this.menu.itemActivated();
let locked = this._orientationSettings.get_boolean('orientation-lock');
this._orientationSettings.set_boolean('orientation-lock', !locked);
this._updateOrientationLock();
},
_onLockScreenClicked: function() {
this.menu.itemActivated(BoxPointer.PopupAnimation.NONE);
Main.overview.hide();
Main.screenShield.lock(true);
},
_onLoginScreenActivate: function() {
this.menu.itemActivated(BoxPointer.PopupAnimation.NONE);
Main.overview.hide();
if (Main.screenShield)
Main.screenShield.lock(false);
Clutter.threads_add_repaint_func_full(Clutter.RepaintFlags.POST_PAINT, function() {
Gdm.goto_login_session_sync(null);
return false;
});
},
_onQuitSessionActivate: function() {
Main.overview.hide();
this._session.LogoutRemote(0);
},
_onPowerOffClicked: function() {
this.menu.itemActivated();
Main.overview.hide();
this._session.ShutdownRemote(0);
},
_onSuspendClicked: function() {
this.menu.itemActivated();
this._loginManager.suspend();
},
});

View File

@@ -1,101 +0,0 @@
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const Clutter = imports.gi.Clutter;
const Lang = imports.lang;
const Meta = imports.gi.Meta;
const St = imports.gi.St;
const SwitcherPopup = imports.ui.switcherPopup;
var APP_ICON_SIZE = 96;
var SwitchMonitorPopup = new Lang.Class({
Name: 'SwitchMonitorPopup',
Extends: SwitcherPopup.SwitcherPopup,
_init: function() {
let items = [{ icon: 'view-mirror-symbolic',
/* Translators: this is for display mirroring i.e. cloning.
* Try to keep it under around 15 characters.
*/
label: _('Mirror') },
{ icon: 'video-joined-displays-symbolic',
/* Translators: this is for the desktop spanning displays.
* Try to keep it under around 15 characters.
*/
label: _('Join Displays') },
{ icon: 'video-single-display-symbolic',
/* Translators: this is for using only an external display.
* Try to keep it under around 15 characters.
*/
label: _('External Only') },
{ icon: 'computer-symbolic',
/* Translators: this is for using only the laptop display.
* Try to keep it under around 15 characters.
*/
label: _('Built-in Only') }];
this.parent(items);
this._switcherList = new SwitchMonitorSwitcher(items);
},
show: function(backward, binding, mask) {
if (!Meta.MonitorManager.get().can_switch_config())
return false;
return this.parent(backward, binding, mask);
},
_initialSelection: function() {
let currentConfig = Meta.MonitorManager.get().get_switch_config();
currentConfig %= Meta.MonitorSwitchConfigType.UNKNOWN;
this._select(currentConfig);
},
_keyPressHandler: function(keysym, action) {
if (action == Meta.KeyBindingAction.SWITCH_MONITOR)
this._select(this._next());
else if (keysym == Clutter.Left)
this._select(this._previous());
else if (keysym == Clutter.Right)
this._select(this._next());
else
return Clutter.EVENT_PROPAGATE;
return Clutter.EVENT_STOP;
},
_finish : function() {
this.parent();
Meta.MonitorManager.get().switch_config(this._selectedIndex);
},
});
var SwitchMonitorSwitcher = new Lang.Class({
Name: 'SwitchMonitorSwitcher',
Extends: SwitcherPopup.SwitcherList,
_init: function(items) {
this.parent(true);
for (let i = 0; i < items.length; i++)
this._addIcon(items[i]);
},
_addIcon: function(item) {
let box = new St.BoxLayout({ style_class: 'alt-tab-app',
vertical: true });
let icon = new St.Icon({ icon_name: item.icon,
icon_size: APP_ICON_SIZE });
box.add(icon, { x_fill: false, y_fill: false } );
let text = new St.Label({ text: item.label });
box.add(text, { x_fill: false });
this.addItem(box, text);
}
});

View File

@@ -19,7 +19,6 @@ var POPUP_SCROLL_TIME = 0.10; // seconds
var POPUP_FADE_OUT_TIME = 0.1; // seconds
var DISABLE_HOVER_TIMEOUT = 500; // milliseconds
var NO_MODS_TIMEOUT = 1500; // milliseconds
function mod(a, b) {
return (a + b) % b;
@@ -62,7 +61,6 @@ var SwitcherPopup = new Lang.Class({
this._motionTimeoutId = 0;
this._initialDelayTimeoutId = 0;
this._noModsTimeoutId = 0;
// Initially disable hover so we ignore the enter-event if
// the switcher appears underneath the current pointer location
@@ -147,14 +145,10 @@ var SwitcherPopup = new Lang.Class({
// https://bugzilla.gnome.org/show_bug.cgi?id=596695 for
// details.) So we check now. (Have to do this after updating
// selection.)
if (this._modifierMask) {
let [x, y, mods] = global.get_pointer();
if (!(mods & this._modifierMask)) {
this._finish(global.get_current_time());
return false;
}
} else {
this._resetNoModsTimeout();
let [x, y, mods] = global.get_pointer();
if (!(mods & this._modifierMask)) {
this._finish(global.get_current_time());
return false;
}
// We delay showing the popup so that fast Alt+Tab users aren't
@@ -198,15 +192,11 @@ var SwitcherPopup = new Lang.Class({
},
_keyReleaseEvent: function(actor, event) {
if (this._modifierMask) {
let [x, y, mods] = global.get_pointer();
let state = mods & this._modifierMask;
let [x, y, mods] = global.get_pointer();
let state = mods & this._modifierMask;
if (state == 0)
this._finish(event.get_time());
} else {
this._resetNoModsTimeout();
}
if (state == 0)
this._finish(event.get_time());
return Clutter.EVENT_STOP;
},
@@ -263,18 +253,6 @@ var SwitcherPopup = new Lang.Class({
return GLib.SOURCE_REMOVE;
},
_resetNoModsTimeout: function() {
if (this._noModsTimeoutId != 0)
Mainloop.source_remove(this._noModsTimeoutId);
this._noModsTimeoutId = Mainloop.timeout_add(NO_MODS_TIMEOUT,
Lang.bind(this, function () {
this._finish(global.get_current_time());
this._noModsTimeoutId = 0;
return GLib.SOURCE_REMOVE;
}));
},
_popModal: function() {
if (this._haveModal) {
Main.popModal(this.actor);
@@ -309,8 +287,6 @@ var SwitcherPopup = new Lang.Class({
Mainloop.source_remove(this._motionTimeoutId);
if (this._initialDelayTimeoutId != 0)
Mainloop.source_remove(this._initialDelayTimeoutId);
if (this._noModsTimeoutId != 0)
Mainloop.source_remove(this._noModsTimeoutId);
},
_select: function(num) {

View File

@@ -35,10 +35,6 @@ var Avatar = new Lang.Class({
reactive: params.reactive,
width: this._iconSize * scaleFactor,
height: this._iconSize * scaleFactor });
// Monitor the scaling factor to make sure we recreate the avatar when needed.
let themeContext = St.ThemeContext.get_for_stage(global.stage);
themeContext.connect('notify::scale-factor', Lang.bind(this, this.update));
},
setSensitive: function(sensitive) {
@@ -60,9 +56,6 @@ var Avatar = new Lang.Class({
this.actor.child = new St.Icon({ icon_name: 'avatar-default-symbolic',
icon_size: this._iconSize });
}
let scaleFactor = St.ThemeContext.get_for_stage(global.stage).scale_factor;
this.actor.set_size(this._iconSize * scaleFactor, this._iconSize * scaleFactor);
}
});

View File

@@ -163,13 +163,6 @@ var ViewSelector = new Lang.Class({
this._text.connect('key-focus-out', Lang.bind(this, function() {
this._searchResults.highlightDefault(false);
}));
this._entry.connect('popup-menu', () => {
if (!this._searchActive)
return;
this._entry.menu.close();
this._searchResults.popupMenuDefault();
});
this._entry.connect('notify::mapped', Lang.bind(this, this._onMapped));
global.stage.connect('notify::key-focus', Lang.bind(this, this._onStageKeyFocusChanged));

View File

@@ -22,7 +22,6 @@ const WindowMenu = imports.ui.windowMenu;
const PadOsd = imports.ui.padOsd;
const EdgeDragAction = imports.ui.edgeDragAction;
const CloseDialog = imports.ui.closeDialog;
const SwitchMonitor = imports.ui.switchMonitor;
const SHELL_KEYBINDINGS_SCHEMA = 'org.gnome.shell.keybindings';
var MINIMIZE_WINDOW_ANIMATION_TIME = 0.2;
@@ -516,7 +515,7 @@ var TouchpadWorkspaceSwitchAction = new Lang.Class({
return Clutter.EVENT_PROPAGATE;
if (event.get_gesture_phase() == Clutter.TouchpadGesturePhase.UPDATE) {
let [dx, dy] = event.get_gesture_motion_delta();
let [dx, dy] = event.get_gesture_motion_delta(event);
this._dx += dx;
this._dy += dy;
@@ -899,10 +898,6 @@ var WindowManager = new Lang.Class({
Shell.ActionMode.UNLOCK_SCREEN |
Shell.ActionMode.LOGIN_SCREEN,
Lang.bind(this, this._startA11ySwitcher));
this.setCustomKeybindingHandler('switch-monitor',
Shell.ActionMode.NORMAL |
Shell.ActionMode.OVERVIEW,
Lang.bind(this, this._startSwitcher));
this.addKeybinding('pause-resume-tweens',
new Gio.Settings({ schema_id: SHELL_KEYBINDINGS_SCHEMA }),
@@ -985,8 +980,7 @@ var WindowManager = new Lang.Class({
gesture.connect('activated', Lang.bind(this, this._switchApp));
global.stage.add_action(gesture);
let mode = Shell.ActionMode.ALL & ~Shell.ActionMode.LOCK_SCREEN;
gesture = new EdgeDragAction.EdgeDragAction(St.Side.BOTTOM, mode);
gesture = new EdgeDragAction.EdgeDragAction(St.Side.BOTTOM, Shell.ActionMode.ALL);
gesture.connect('activated', Lang.bind(this, function() {
Main.keyboard.show(Main.layoutManager.bottomIndex);
}));
@@ -1844,9 +1838,6 @@ var WindowManager = new Lang.Class({
case 'cycle-group-backward':
constructor = AltTab.GroupCyclerPopup;
break;
case 'switch-monitor':
constructor = SwitchMonitor.SwitchMonitorPopup;
break;
}
if (!constructor)

View File

@@ -132,7 +132,6 @@ var WindowClone = new Lang.Class({
this.actor._delegate = this;
this.slotId = 0;
this._slot = [0, 0, 0, 0];
this._dragSlot = [0, 0, 0, 0];
this._stackAbove = null;
@@ -662,7 +661,6 @@ var WindowOverlay = new Lang.Class({
if (this._hidden)
return;
this._windowClone.actor.grab_key_focus();
this._animateVisible();
this.emit('show-close-button');
},
@@ -950,10 +948,6 @@ var LayoutStrategy = new Lang.Class({
let cloneX = x + (cellWidth - cloneWidth) / 2;
let cloneY = row.y + row.height * row.additionalScale - cellHeight + compensation;
// Align with the pixel grid to prevent blurry windows at scale = 1
cloneX = Math.floor(cloneX);
cloneY = Math.floor(cloneY);
slots.push([cloneX, cloneY, s, window]);
x += cellWidth + this._columnSpacing;
}
@@ -1070,22 +1064,6 @@ function rectEqual(one, two) {
one.height == two.height);
}
const WorkspaceActor = new Lang.Class({
Name: 'WorkspaceActor',
Extends: St.Widget,
vfunc_get_focus_chain: function() {
return this.get_children().filter(c => c.visible).sort((a,b) => {
let cloneA = (a._delegate && a._delegate instanceof WindowClone) ? a._delegate: null;
let cloneB = (b._delegate && b._delegate instanceof WindowClone) ? b._delegate: null;
if (cloneA && cloneB)
return cloneA.slotId - cloneB.slotId;
return 0;
});
}
});
/**
* @metaWorkspace: a #Meta.Workspace, or null
*/
@@ -1108,7 +1086,6 @@ var Workspace = new Lang.Class({
// do some simple aspect ratio like math to fit the layout calculated
// for the full geometry into this area.
this._actualGeometry = null;
this._actualGeometryLater = 0;
this._currentLayout = null;
@@ -1118,7 +1095,7 @@ var Workspace = new Lang.Class({
// Without this the drop area will be overlapped.
this._windowOverlaysGroup.set_size(0, 0);
this.actor = new WorkspaceActor({ style_class: 'window-picker' });
this.actor = new St.Widget({ style_class: 'window-picker' });
if (monitorIndex != Main.layoutManager.primaryIndex)
this.actor.add_style_class_name('external-monitor');
this.actor.set_size(0, 0);

View File

@@ -31,7 +31,6 @@ var WorkspaceSwitcherPopup = new Lang.Class({
this._itemSpacing = 0;
this._childHeight = 0;
this._childWidth = 0;
this._timeoutId = 0;
this._list.connect('style-changed', Lang.bind(this, function() {
this._itemSpacing = this._list.get_theme_node().get_length('spacing');
}));
@@ -50,6 +49,9 @@ var WorkspaceSwitcherPopup = new Lang.Class({
this._globalSignals = [];
this._globalSignals.push(global.screen.connect('workspace-added', Lang.bind(this, this._redisplay)));
this._globalSignals.push(global.screen.connect('workspace-removed', Lang.bind(this, this._redisplay)));
this._timeoutId = Mainloop.timeout_add(DISPLAY_TIMEOUT, Lang.bind(this, this._onTimeout));
GLib.Source.set_name_by_id(this._timeoutId, '[gnome-shell] this._onTimeout');
},
_getPreferredHeight : function (actor, forWidth, alloc) {

View File

@@ -937,8 +937,7 @@ var ThumbnailsBox = new Lang.Class({
},
addThumbnails: function(start, count) {
if (!this._ensurePorthole())
return;
this._ensurePorthole();
for (let k = start; k < start + count; k++) {
let metaWorkspace = global.screen.get_workspace_by_index(k);
let thumbnail = new WorkspaceThumbnail(metaWorkspace);
@@ -1126,12 +1125,7 @@ var ThumbnailsBox = new Lang.Class({
// the size request to our children because we know how big they are and know
// that the actors aren't depending on the virtual functions being called.
if (!this._ensurePorthole()) {
alloc.min_size = -1;
alloc.natural_size = -1;
return;
}
this._ensurePorthole();
let themeNode = this.actor.get_theme_node();
let spacing = themeNode.get_length('spacing');
@@ -1143,11 +1137,7 @@ var ThumbnailsBox = new Lang.Class({
},
_getPreferredWidth: function(actor, forHeight, alloc) {
if (!this._ensurePorthole()) {
alloc.min_size = -1;
alloc.natural_size = -1;
return;
}
this._ensurePorthole();
let themeNode = this.actor.get_theme_node();
@@ -1168,13 +1158,8 @@ var ThumbnailsBox = new Lang.Class({
// The "porthole" is the portion of the screen that we show in the
// workspaces
_ensurePorthole: function() {
if (!Main.layoutManager.primaryMonitor)
return false;
if (!this._porthole)
this._porthole = Main.layoutManager.getWorkAreaForMonitor(Main.layoutManager.primaryIndex);
return true;
},
_allocate: function(actor, box, flags) {

19
man/Makefile.am Normal file
View File

@@ -0,0 +1,19 @@
XSLTPROC_FLAGS = \
--nonet \
--stringparam man.output.quietly 1 \
--stringparam funcsynopsis.style ansi \
--stringparam man.th.extra1.suppress 1 \
--stringparam man.authors.section.enabled 0 \
--stringparam man.copyright.section.enabled 0
.xml.1:
$(AM_V_GEN) $(XSLTPROC) $(XSLTPROC_FLAGS) http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $<
man_MANS = \
gnome-shell.1
xml_files = $(man_MANS:.1=.xml)
EXTRA_DIST = $(xml_files)
DISTCLEANFILES = $(man_MANS)

View File

@@ -1,6 +1,6 @@
project('gnome-shell', 'c',
version: '3.27.1',
meson_version: '>= 0.42.0',
version: '3.25.4',
meson_version: '>= 0.41.0',
license: 'GPLv2+'
)
@@ -23,7 +23,7 @@ gi_req = '>= 1.49.1'
gjs_req = '>= 1.47.0'
gtk_req = '>= 3.15.0'
json_glib_req = '>= 0.13.2'
mutter_req = '>= 3.26.0'
mutter_req = '>= 3.25.2'
polkit_req = '>= 0.100'
schemas_req = '>= 3.21.3'
startup_req = '>= 0.11'

View File

@@ -9,7 +9,6 @@ js/extensionPrefs/main.js
js/gdm/authPrompt.js
js/gdm/loginDialog.js
js/gdm/util.js
js/misc/systemActions.js
js/misc/util.js
js/portalHelper/main.js
js/ui/accessDialog.js
@@ -31,8 +30,8 @@ js/ui/dateMenu.js
js/ui/endSessionDialog.js
js/ui/extensionDownloader.js
js/ui/extensionSystem.js
js/ui/inhibitShortcutsDialog.js
js/ui/keyboard.js
js/ui/legacyTray.js
js/ui/lookingGlass.js
js/ui/main.js
js/ui/messageList.js
@@ -60,7 +59,6 @@ js/ui/status/power.js
js/ui/status/rfkill.js
js/ui/status/system.js
js/ui/status/volume.js
js/ui/switchMonitor.js
js/ui/unlockDialog.js
js/ui/viewSelector.js
js/ui/windowAttentionHandler.js

610
po/ar.po

File diff suppressed because it is too large Load Diff

565
po/be.po

File diff suppressed because it is too large Load Diff

1291
po/bg.po

File diff suppressed because it is too large Load Diff

570
po/ca.po

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

568
po/cs.po

File diff suppressed because it is too large Load Diff

677
po/da.po

File diff suppressed because it is too large Load Diff

601
po/de.po

File diff suppressed because it is too large Load Diff

638
po/el.po

File diff suppressed because it is too large Load Diff

363
po/es.po
View File

@@ -10,8 +10,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-08-22 11:17+0000\n"
"PO-Revision-Date: 2017-08-22 13:38+0200\n"
"POT-Creation-Date: 2017-07-20 03:49+0000\n"
"PO-Revision-Date: 2017-07-24 15:38+0200\n"
"Last-Translator: Daniel Mustieles <daniel.mustieles@gmail.com>\n"
"Language-Team: es <gnome-es-list@gnome.org>\n"
"Language: es\n"
@@ -349,7 +349,7 @@ msgstr "Hubo un error al lanzar el diálogo de preferencias para %s:"
#: js/gdm/authPrompt.js:149 js/ui/audioDeviceSelection.js:71
#: js/ui/components/networkAgent.js:117 js/ui/components/polkitAgent.js:148
#: js/ui/endSessionDialog.js:482 js/ui/extensionDownloader.js:197
#: js/ui/shellMountOperation.js:344 js/ui/status/network.js:936
#: js/ui/shellMountOperation.js:344 js/ui/status/network.js:947
msgid "Cancel"
msgstr "Cancelar"
@@ -410,82 +410,6 @@ msgstr "Error de autenticación"
msgid "(or swipe finger)"
msgstr "(o pase el dedo)"
#. Translators: The name of the power-off action in search
#: js/misc/systemActions.js:99
#| msgid "Power Off"
msgctxt "search-result"
msgid "Power off"
msgstr "Apagar"
#. Translators: A list of keywords that match the power-off action, separated by semicolons
#: js/misc/systemActions.js:102
msgid "power off;shutdown"
msgstr "apagar;apagado"
#. Translators: The name of the lock screen action in search
#: js/misc/systemActions.js:106
#| msgid "Lock Screen"
msgctxt "search-result"
msgid "Lock screen"
msgstr "Bloquear la pantalla"
#. Translators: A list of keywords that match the lock screen action, separated by semicolons
#: js/misc/systemActions.js:109
#| msgid "Lock Screen"
msgid "lock screen"
msgstr "bloquear;pantalla"
#. Translators: The name of the logout action in search
#: js/misc/systemActions.js:113
#| msgid "Log Out"
msgctxt "search-result"
msgid "Log out"
msgstr "Cerrar la sesión"
#. Translators: A list of keywords that match the logout action, separated by semicolons
#: js/misc/systemActions.js:116
msgid "logout;sign off"
msgstr "cerrar;sesión;salir"
#. Translators: The name of the suspend action in search
#: js/misc/systemActions.js:120
#| msgid "Suspend"
msgctxt "search-result"
msgid "Suspend"
msgstr "Suspender"
#. Translators: A list of keywords that match the suspend action, separated by semicolons
#: js/misc/systemActions.js:123
#| msgid "Suspend"
msgid "suspend;sleep"
msgstr "suspender;dormir"
#. Translators: The name of the switch user action in search
#: js/misc/systemActions.js:127
#| msgid "Switch User"
msgctxt "search-result"
msgid "Switch user"
msgstr "Cambiar de usuario"
#. Translators: A list of keywords that match the switch user action, separated by semicolons
#: js/misc/systemActions.js:130
#| msgid "Switch User"
msgid "switch user"
msgstr "cambiar;usuario"
#. Translators: The name of the lock orientation action in search
#: js/misc/systemActions.js:134
#| msgid "Orientation Lock"
msgctxt "search-result"
msgid "Lock orientation"
msgstr "Bloqueo de orientación"
#. Translators: A list of keywords that match the lock orientation action, separated by semicolons
#: js/misc/systemActions.js:137
#| msgid "Clock Format"
msgid "lock orientation"
msgstr "bloqueo;orientación"
#: js/misc/util.js:122
msgid "Command not found"
msgstr "Comando no encontrado"
@@ -644,35 +568,35 @@ msgstr "Denegar acceso"
msgid "Grant Access"
msgstr "Conceder acceso"
#: js/ui/appDisplay.js:809
#: js/ui/appDisplay.js:806
msgid "Frequently used applications will appear here"
msgstr "Las aplicaciones usadas frecuentemente aparecerán aquí"
#: js/ui/appDisplay.js:930
#: js/ui/appDisplay.js:927
msgid "Frequent"
msgstr "Frecuentes"
#: js/ui/appDisplay.js:937
#: js/ui/appDisplay.js:934
msgid "All"
msgstr "Todas"
#: js/ui/appDisplay.js:1915
#: js/ui/appDisplay.js:1895
msgid "New Window"
msgstr "Ventana nueva"
#: js/ui/appDisplay.js:1929
#: js/ui/appDisplay.js:1909
msgid "Launch using Dedicated Graphics Card"
msgstr "Lanzar usando la tarjeta gráfica dedicada"
#: js/ui/appDisplay.js:1956 js/ui/dash.js:289
#: js/ui/appDisplay.js:1936 js/ui/dash.js:289
msgid "Remove from Favorites"
msgstr "Quitar de los favoritos"
#: js/ui/appDisplay.js:1962
#: js/ui/appDisplay.js:1942
msgid "Add to Favorites"
msgstr "Añadir a los favoritos"
#: js/ui/appDisplay.js:1972
#: js/ui/appDisplay.js:1952
msgid "Show Details"
msgstr "Mostrar detalles"
@@ -714,7 +638,7 @@ msgstr "Cambiar el fondo…"
msgid "Display Settings"
msgstr "Configuración de pantalla"
#: js/ui/backgroundMenu.js:22 js/ui/status/system.js:265
#: js/ui/backgroundMenu.js:22 js/ui/status/system.js:407
msgid "Settings"
msgstr "Configuración"
@@ -821,6 +745,7 @@ msgstr "Limpiar todo"
#. Translators: %s is an application name
#: js/ui/closeDialog.js:44
#, javascript-format
#| msgid "“%s” is ready"
msgid "“%s” is not responding."
msgstr "«%s» no responde."
@@ -861,8 +786,8 @@ msgstr "Contraseña:"
msgid "Type again:"
msgstr "Escriba de nuevo:"
#: js/ui/components/networkAgent.js:112 js/ui/status/network.js:261
#: js/ui/status/network.js:355 js/ui/status/network.js:939
#: js/ui/components/networkAgent.js:112 js/ui/status/network.js:272
#: js/ui/status/network.js:366 js/ui/status/network.js:950
msgid "Connect"
msgstr "Conectar"
@@ -937,7 +862,7 @@ msgstr "Contraseña de la red de banda ancha móvil"
msgid "A password is required to connect to “%s”."
msgstr "Se requiere una contraseña para conectarse a «%s»."
#: js/ui/components/networkAgent.js:627 js/ui/status/network.js:1720
#: js/ui/components/networkAgent.js:627 js/ui/status/network.js:1760
msgid "Network Manager"
msgstr "Gestor de la red"
@@ -968,7 +893,7 @@ msgstr "Eso no ha funcionado. Inténtelo de nuevo."
msgid "%s is now known as %s"
msgstr "Ahora %s se llama %s"
#: js/ui/ctrlAltTab.js:29 js/ui/viewSelector.js:186
#: js/ui/ctrlAltTab.js:29 js/ui/viewSelector.js:179
msgid "Windows"
msgstr "Ventanas"
@@ -1013,7 +938,7 @@ msgstr "Meteorología"
#. 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:286
#: js/ui/dateMenu.js:281
#, javascript-format
msgid "%s all day."
msgstr "%s todo el día."
@@ -1022,7 +947,7 @@ msgstr "%s todo el día."
#. 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:292
#: js/ui/dateMenu.js:287
#, javascript-format
msgid "%s, then %s later."
msgstr "%s, luego %s."
@@ -1031,30 +956,30 @@ msgstr "%s, luego %s."
#. 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:298
#: js/ui/dateMenu.js:293
#, javascript-format
msgid "%s, then %s, followed by %s later."
msgstr "%s, luego %s seguido de %s."
#: js/ui/dateMenu.js:309
#: js/ui/dateMenu.js:300
msgid "Select a location…"
msgstr "Seleccionar ubicación…"
#: js/ui/dateMenu.js:312
#: js/ui/dateMenu.js:303
msgid "Loading…"
msgstr "Cargando…"
#. Translators: %s is a temperature with unit, e.g. "23℃"
#: js/ui/dateMenu.js:318
#: js/ui/dateMenu.js:309
#, javascript-format
msgid "Feels like %s."
msgstr "Sensación térmica de %s."
#: js/ui/dateMenu.js:321
#: js/ui/dateMenu.js:312
msgid "Go online for weather information"
msgstr "Conectarse para obtener la información meteorológica"
#: js/ui/dateMenu.js:323
#: js/ui/dateMenu.js:314
msgid "Weather information is currently unavailable"
msgstr "La información meteorológica no está disponible actualmente."
@@ -1216,34 +1141,19 @@ msgstr "Instalar"
msgid "Download and install “%s” from extensions.gnome.org?"
msgstr "¿Descargar e instalar «%s» desde extensions.gnome.org?"
#. Translators: %s is an application name like "Settings"
#: js/ui/inhibitShortcutsDialog.js:59
#, javascript-format
msgid "%s wants to inhibit shortcuts"
msgstr "%s quiere inhibir los atajos"
#: js/ui/inhibitShortcutsDialog.js:60
msgid "Application wants to inhibit shortcuts"
msgstr "Su aplicación quiere inhibir los atajos"
#. Translators: %s is a keyboard shortcut like "Super+x"
#: js/ui/inhibitShortcutsDialog.js:69
#, javascript-format
msgid "You can restore shortcuts by pressing %s."
msgstr "Puede restaurar los atajos pulsando %s."
#: js/ui/inhibitShortcutsDialog.js:74
msgid "Deny"
msgstr "Denegar"
#: js/ui/inhibitShortcutsDialog.js:80
msgid "Allow"
msgstr "Permitir"
#: js/ui/keyboard.js:738 js/ui/status/keyboard.js:782
#: js/ui/keyboard.js:740 js/ui/status/keyboard.js:782
msgid "Keyboard"
msgstr "Teclado"
#. translators: 'Hide' is a verb
#: js/ui/legacyTray.js:65
msgid "Hide tray"
msgstr "Ocultar bandeja"
#: js/ui/legacyTray.js:106
msgid "Status Icons"
msgstr "Iconos de estado"
#: js/ui/lookingGlass.js:642
msgid "No extensions installed"
msgstr "No hay extensiones instaladas"
@@ -1430,7 +1340,7 @@ msgid_plural "%d new notifications"
msgstr[0] "%d notificación nueva"
msgstr[1] "%d notificaciones nuevas"
#: js/ui/screenShield.js:452 js/ui/status/system.js:284
#: js/ui/screenShield.js:452 js/ui/status/system.js:415
msgid "Lock"
msgstr "Bloquear"
@@ -1461,13 +1371,10 @@ msgstr "Buscando…"
msgid "No results."
msgstr "No se encontraron resultados."
#: js/ui/search.js:777
#: js/ui/search.js:768
#, javascript-format
#| msgid "%d more"
msgid "%d more"
msgid_plural "%d more"
msgstr[0] "%d más"
msgstr[1] "%d más"
msgstr "%d más"
#: js/ui/shellEntry.js:25
msgid "Copy"
@@ -1541,7 +1448,7 @@ msgstr "Texto grande"
msgid "Bluetooth"
msgstr "Bluetooth"
#: js/ui/status/bluetooth.js:56 js/ui/status/network.js:627
#: js/ui/status/bluetooth.js:56 js/ui/status/network.js:638
msgid "Bluetooth Settings"
msgstr "Configuración de Bluetooth"
@@ -1561,13 +1468,13 @@ msgstr "Desconectado"
msgid "On"
msgstr "Encender"
#: js/ui/status/bluetooth.js:142 js/ui/status/network.js:1299
#: js/ui/status/bluetooth.js:142 js/ui/status/network.js:1310
msgid "Turn On"
msgstr "Encender"
#: js/ui/status/bluetooth.js:142 js/ui/status/network.js:170
#: js/ui/status/network.js:356 js/ui/status/network.js:1299
#: js/ui/status/network.js:1418 js/ui/status/nightLight.js:47
#: 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/rfkill.js:90 js/ui/status/rfkill.js:117
msgid "Turn Off"
msgstr "Apagar"
@@ -1621,13 +1528,13 @@ msgid "<unknown>"
msgstr "<desconocido>"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:454 js/ui/status/network.js:1328
#: js/ui/status/network.js:465 js/ui/status/network.js:1339
#, javascript-format
msgid "%s Off"
msgstr "%s apagada"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:457
#: js/ui/status/network.js:468
#, javascript-format
msgid "%s Connected"
msgstr "%s conectada"
@@ -1635,189 +1542,190 @@ msgstr "%s conectada"
#. Translators: this is for network devices that are physically present but are not
#. under NetworkManager's control (and thus cannot be used in the menu);
#. %s is a network identifier
#: js/ui/status/network.js:462
#: js/ui/status/network.js:473
#, javascript-format
msgid "%s Unmanaged"
msgstr "%s sin gestionar"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:465
#: js/ui/status/network.js:476
#, javascript-format
msgid "%s Disconnecting"
msgstr "Desconectando %s"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:472 js/ui/status/network.js:1320
#: js/ui/status/network.js:483 js/ui/status/network.js:1331
#, javascript-format
msgid "%s Connecting"
msgstr "Conectando %s"
#. Translators: this is for network connections that require some kind of key or password; %s is a network identifier
#: js/ui/status/network.js:475
#: js/ui/status/network.js:486
#, javascript-format
msgid "%s Requires Authentication"
msgstr "%s requiere autenticación"
#. Translators: this is for devices that require some kind of firmware or kernel
#. module, which is missing; %s is a network identifier
#: js/ui/status/network.js:483
#: js/ui/status/network.js:494
#, javascript-format
msgid "Firmware Missing For %s"
msgstr "Falta el «firmware» para %s"
#. Translators: this is for a network device that cannot be activated (for example it
#. is disabled by rfkill, or it has no coverage; %s is a network identifier
#: js/ui/status/network.js:487
#: js/ui/status/network.js:498
#, javascript-format
msgid "%s Unavailable"
msgstr "%s no disponible"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:490
#: js/ui/status/network.js:501
#, javascript-format
msgid "%s Connection Failed"
msgstr "Falló la conexión %s"
#: js/ui/status/network.js:506
#: js/ui/status/network.js:517
msgid "Wired Settings"
msgstr "Configuración de red cableada"
#: js/ui/status/network.js:548
#: js/ui/status/network.js:559
msgid "Mobile Broadband Settings"
msgstr "Configuración de banda ancha móvil"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:591 js/ui/status/network.js:1325
#: js/ui/status/network.js:602 js/ui/status/network.js:1336
#, javascript-format
msgid "%s Hardware Disabled"
msgstr "Hardware %s desactivado"
#. Translators: this is for a network device that cannot be activated
#. because it's disabled by rfkill (airplane mode); %s is a network identifier
#: js/ui/status/network.js:595
#: js/ui/status/network.js:606
#, javascript-format
msgid "%s Disabled"
msgstr "%s desactivado"
#: js/ui/status/network.js:635
#: js/ui/status/network.js:646
msgid "Connect to Internet"
msgstr "Conectar a Internet"
#: js/ui/status/network.js:833
#: js/ui/status/network.js:844
msgid "Airplane Mode is On"
msgstr "El modo avión está activado"
#: js/ui/status/network.js:834
#: js/ui/status/network.js:845
msgid "Wi-Fi is disabled when airplane mode is on."
msgstr "La Wi-Fi se desactiva cuando se activa el modo avión."
#: js/ui/status/network.js:835
#: js/ui/status/network.js:846
msgid "Turn Off Airplane Mode"
msgstr "Apagar el modo avión"
#: js/ui/status/network.js:844
#: js/ui/status/network.js:855
msgid "Wi-Fi is Off"
msgstr "La Wi-Fi está desactivada"
#: js/ui/status/network.js:845
#: js/ui/status/network.js:856
msgid "Wi-Fi needs to be turned on in order to connect to a network."
msgstr "Se debe activar la Wi-Fi para poder conectarse a la red."
#: js/ui/status/network.js:846
#: js/ui/status/network.js:857
msgid "Turn On Wi-Fi"
msgstr "Activar la Wi-Fi"
#: js/ui/status/network.js:871
#: js/ui/status/network.js:882
msgid "Wi-Fi Networks"
msgstr "Redes Wi-Fi"
#: js/ui/status/network.js:873
#: js/ui/status/network.js:884
msgid "Select a network"
msgstr "Seleccionar una red"
#: js/ui/status/network.js:903
#: js/ui/status/network.js:914
msgid "No Networks"
msgstr "No hay redes"
#: js/ui/status/network.js:924 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 "Usar el interruptor hardware para apagar"
#: js/ui/status/network.js:1191
#: js/ui/status/network.js:1202
msgid "Select Network"
msgstr "Seleccionar red"
#: js/ui/status/network.js:1197
#: js/ui/status/network.js:1208
msgid "Wi-Fi Settings"
msgstr "Configuración de Wi-Fi"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:1316
#: js/ui/status/network.js:1327
#, javascript-format
msgid "%s Hotspot Active"
msgstr "Punto de acceso %s activo"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:1331
#: js/ui/status/network.js:1342
#, javascript-format
msgid "%s Not Connected"
msgstr "%s no conectado"
#: js/ui/status/network.js:1435
#: js/ui/status/network.js:1446
msgid "connecting…"
msgstr "conectando…"
#. Translators: this is for network connections that require some kind of key or password
#: js/ui/status/network.js:1438
#: js/ui/status/network.js:1449
msgid "authentication required"
msgstr "se necesita autenticación"
#: js/ui/status/network.js:1440
#: js/ui/status/network.js:1451
msgid "connection failed"
msgstr "falló la conexión"
#: js/ui/status/network.js:1494
msgid "VPN Settings"
msgstr "Configuración de VPN"
#: js/ui/status/network.js:1498
msgid "VPN"
msgstr "VPN"
#: js/ui/status/network.js:1508
msgid "VPN Off"
msgstr "VPN apagada"
#: js/ui/status/network.js:1572 js/ui/status/rfkill.js:93
#: js/ui/status/network.js:1517 js/ui/status/network.js:1612
#: js/ui/status/rfkill.js:93
msgid "Network Settings"
msgstr "Configuración de la red"
#: js/ui/status/network.js:1603
#: js/ui/status/network.js:1519
msgid "VPN Settings"
msgstr "Configuración de VPN"
#: js/ui/status/network.js:1538
msgid "VPN"
msgstr "VPN"
#: js/ui/status/network.js:1548
msgid "VPN Off"
msgstr "VPN apagada"
#: js/ui/status/network.js:1643
#, javascript-format
msgid "%s Wired Connection"
msgid_plural "%s Wired Connections"
msgstr[0] "%s conexión cableada"
msgstr[1] "%s conexiones cableadas"
#: js/ui/status/network.js:1607
#: js/ui/status/network.js:1647
#, javascript-format
msgid "%s Wi-Fi Connection"
msgid_plural "%s Wi-Fi Connections"
msgstr[0] "%s conexión inalámbrica"
msgstr[1] "%s conexiones inalámbricas"
#: js/ui/status/network.js:1611
#: js/ui/status/network.js:1651
#, javascript-format
msgid "%s Modem Connection"
msgid_plural "%s Modem Connections"
msgstr[0] "%s conexión por módem"
msgstr[1] "%s conexiones por módem"
#: js/ui/status/network.js:1759
#: js/ui/status/network.js:1799
msgid "Connection failed"
msgstr "Falló la conexión"
#: js/ui/status/network.js:1760
#: js/ui/status/network.js:1800
msgid "Activation of network connection failed"
msgstr "Falló la activación de la conexión de red"
@@ -1875,27 +1783,27 @@ msgstr "%d%%"
msgid "Airplane Mode On"
msgstr "Modo avión activado"
#: js/ui/status/system.js:228
#: js/ui/status/system.js:384
msgid "Switch User"
msgstr "Cambiar de usuario"
#: js/ui/status/system.js:240
#: js/ui/status/system.js:389
msgid "Log Out"
msgstr "Cerrar la sesión"
#: js/ui/status/system.js:252
#: js/ui/status/system.js:394
msgid "Account Settings"
msgstr "Configuración de la cuenta"
#: js/ui/status/system.js:269
#: js/ui/status/system.js:411
msgid "Orientation Lock"
msgstr "Bloqueo de orientación"
#: js/ui/status/system.js:295
#: js/ui/status/system.js:419
msgid "Suspend"
msgstr "Suspender"
#: js/ui/status/system.js:305
#: js/ui/status/system.js:422
msgid "Power Off"
msgstr "Apagar"
@@ -1907,36 +1815,6 @@ msgstr "Volumen modificado"
msgid "Volume"
msgstr "Volumen"
#. Translators: this is for display mirroring i.e. cloning.
#. * Try to keep it under around 15 characters.
#.
#: js/ui/switchMonitor.js:21
#| msgid "Error"
msgid "Mirror"
msgstr "Espejo"
#. Translators: this is for the desktop spanning displays.
#. * Try to keep it under around 15 characters.
#.
#: js/ui/switchMonitor.js:26
#| msgid "Panel Display"
msgid "Join Displays"
msgstr "Unir pantallas"
#. Translators: this is for using only an external display.
#. * Try to keep it under around 15 characters.
#.
#: js/ui/switchMonitor.js:31
msgid "External Only"
msgstr "Sólo la externa"
#. Translators: this is for using only the laptop display.
#. * Try to keep it under around 15 characters.
#.
#: js/ui/switchMonitor.js:36
msgid "Built-in Only"
msgstr "Sólo la integrada"
#: js/ui/unlockDialog.js:67
msgid "Log in as another user"
msgstr "Iniciar sesión como otro usuario"
@@ -1945,11 +1823,11 @@ msgstr "Iniciar sesión como otro usuario"
msgid "Unlock Window"
msgstr "Desbloquear ventana"
#: js/ui/viewSelector.js:190
#: js/ui/viewSelector.js:183
msgid "Applications"
msgstr "Aplicaciones"
#: js/ui/viewSelector.js:194
#: js/ui/viewSelector.js:187
msgid "Search"
msgstr "Buscar"
@@ -1958,22 +1836,22 @@ msgstr "Buscar"
msgid "“%s” is ready"
msgstr "«%s» está preparado"
#: js/ui/windowManager.js:72
#: js/ui/windowManager.js:71
msgid "Do you want to keep these display settings?"
msgstr "¿Quiere mantener esta configuración de la pantalla?"
#. Translators: this and the following message should be limited in lenght,
#. to avoid ellipsizing the labels.
#.
#: js/ui/windowManager.js:84
#: js/ui/windowManager.js:83
msgid "Revert Settings"
msgstr "Revertir configuración"
#: js/ui/windowManager.js:87
#: js/ui/windowManager.js:86
msgid "Keep Changes"
msgstr "Mantener cambios"
#: js/ui/windowManager.js:105
#: js/ui/windowManager.js:104
#, javascript-format
msgid "Settings changes will revert in %d second"
msgid_plural "Settings changes will revert in %d seconds"
@@ -1982,7 +1860,7 @@ msgstr[1] "La configuración se revertirá en %d segundos"
#. 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:660
#: js/ui/windowManager.js:659
#, javascript-format
msgid "%d × %d"
msgstr "%d × %d"
@@ -2060,21 +1938,21 @@ msgstr "Calendario de Evolution"
msgid "evolution"
msgstr "evolution"
#: src/main.c:380
#: src/main.c:372
msgid "Print version"
msgstr "Imprimir versión"
#: src/main.c:386
#: src/main.c:378
msgid "Mode used by GDM for login screen"
msgstr "Modo usado por GDM para la pantalla de inicio"
#: src/main.c:392
#: src/main.c:384
msgid "Use a specific mode, e.g. “gdm” for login screen"
msgstr ""
"Usar un modo específico, por ejemplo, «gdm» para la pantalla de inicio de "
"sesión"
#: src/main.c:398
#: src/main.c:390
msgid "List possible modes"
msgstr "Listar los modos posibles"
@@ -2122,12 +2000,6 @@ msgstr[1] "%u entradas"
msgid "System Sounds"
msgstr "Sonidos del sistema"
#~ msgid "Hide tray"
#~ msgstr "Ocultar bandeja"
#~ msgid "Status Icons"
#~ msgstr "Iconos de estado"
#~ msgid "Events"
#~ msgstr "Eventos"
@@ -2481,6 +2353,12 @@ msgstr "Sonidos del sistema"
#~ msgid "Device %s wants to pair with this computer"
#~ msgstr "El dispositivo «%s» quiere emparejarse con este equipo"
#~ msgid "Allow"
#~ msgstr "Permitir"
#~ msgid "Deny"
#~ msgstr "Denegar"
#~ msgid "Device %s wants access to the service '%s'"
#~ msgstr "El dispositivo %s quiere acceder al servicio «%s»"
@@ -2937,6 +2815,9 @@ msgstr "Sonidos del sistema"
#~ msgid "Online Accounts"
#~ msgstr "Cuentas en línea"
#~ msgid "Lock Screen"
#~ msgstr "Bloquear la pantalla"
#~ msgid "Log Out..."
#~ msgstr "Cerrar la sesión…"
@@ -3214,9 +3095,15 @@ msgstr "Sonidos del sistema"
#~ "especificado en la clave «custom_format». Note que si se establece a "
#~ "«unix» o «custom» se ignoran las claves «show_date» y «show_seconds»."
#~ msgid "Clock Format"
#~ msgstr "Formato del reloj"
#~ msgid "Clock Preferences"
#~ msgstr "Preferencias del reloj"
#~ msgid "Panel Display"
#~ msgstr "Panel de visualización"
#~ msgid "Show seco_nds"
#~ msgstr "Mostrar los segu_ndos"

656
po/eu.po

File diff suppressed because it is too large Load Diff

1095
po/fa.po

File diff suppressed because it is too large Load Diff

583
po/fi.po

File diff suppressed because it is too large Load Diff

767
po/fr.po

File diff suppressed because it is too large Load Diff

372
po/fur.po
View File

@@ -8,15 +8,15 @@ msgstr ""
"Project-Id-Version: video-subtitles 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-10-04 18:03+0000\n"
"PO-Revision-Date: 2017-10-11 08:34+0200\n"
"POT-Creation-Date: 2017-07-28 11:38+0000\n"
"PO-Revision-Date: 2017-07-25 15:43+0200\n"
"Last-Translator: Fabio Tomat <f.t.public@gmail.com>\n"
"Language-Team: Friulian <fur@li.org>\n"
"Language: fur\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 2.0.3\n"
"X-Generator: Poedit 2.0.2\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: data/50-gnome-shell-system.xml:6
@@ -341,7 +341,7 @@ msgstr ""
#: js/gdm/authPrompt.js:149 js/ui/audioDeviceSelection.js:71
#: js/ui/components/networkAgent.js:117 js/ui/components/polkitAgent.js:148
#: js/ui/endSessionDialog.js:482 js/ui/extensionDownloader.js:197
#: js/ui/shellMountOperation.js:344 js/ui/status/network.js:936
#: js/ui/shellMountOperation.js:344 js/ui/status/network.js:947
msgid "Cancel"
msgstr "Anule"
@@ -402,72 +402,6 @@ msgstr "Erôr di autenticazion"
msgid "(or swipe finger)"
msgstr "(o passe cul dêt)"
#. Translators: The name of the power-off action in search
#: js/misc/systemActions.js:99
msgctxt "search-result"
msgid "Power off"
msgstr "Distudâ"
#. Translators: A list of keywords that match the power-off action, separated by semicolons
#: js/misc/systemActions.js:102
msgid "power off;shutdown"
msgstr "distudâ;studâ"
#. Translators: The name of the lock screen action in search
#: js/misc/systemActions.js:106
msgctxt "search-result"
msgid "Lock screen"
msgstr "Blocâ il schermi"
#. Translators: A list of keywords that match the lock screen action, separated by semicolons
#: js/misc/systemActions.js:109
msgid "lock screen"
msgstr "blocâ schermi;blocâ"
#. Translators: The name of the logout action in search
#: js/misc/systemActions.js:113
msgctxt "search-result"
msgid "Log out"
msgstr "Jessî"
#. Translators: A list of keywords that match the logout action, separated by semicolons
#: js/misc/systemActions.js:116
msgid "logout;sign off"
msgstr "jessî;sierâ session"
#. Translators: The name of the suspend action in search
#: js/misc/systemActions.js:120
msgctxt "search-result"
msgid "Suspend"
msgstr "Sospindi"
#. Translators: A list of keywords that match the suspend action, separated by semicolons
#: js/misc/systemActions.js:123
msgid "suspend;sleep"
msgstr "sospindi;polse"
#. Translators: The name of the switch user action in search
#: js/misc/systemActions.js:127
msgctxt "search-result"
msgid "Switch user"
msgstr "Cambiâ utent"
#. Translators: A list of keywords that match the switch user action, separated by semicolons
#: js/misc/systemActions.js:130
msgid "switch user"
msgstr "cambiâ utent"
#. Translators: The name of the lock orientation action in search
#: js/misc/systemActions.js:134
msgctxt "search-result"
msgid "Lock orientation"
msgstr "Blocâ orientament"
#. Translators: A list of keywords that match the lock orientation action, separated by semicolons
#: js/misc/systemActions.js:137
msgid "lock orientation"
msgstr "blocâ orientament"
#: js/misc/util.js:122
msgid "Command not found"
msgstr "Comant no cjatât"
@@ -627,44 +561,44 @@ msgstr "Dinee acès"
msgid "Grant Access"
msgstr "Garantìs l'acès"
#: js/ui/appDisplay.js:809
#: js/ui/appDisplay.js:806
msgid "Frequently used applications will appear here"
msgstr "Lis aplicazions dopradis dispès a vignaran mostradis culì"
#: js/ui/appDisplay.js:930
#: js/ui/appDisplay.js:927
msgid "Frequent"
msgstr "Dispès"
#: js/ui/appDisplay.js:937
#: js/ui/appDisplay.js:934
msgid "All"
msgstr "Dutis"
#: js/ui/appDisplay.js:1915
#: js/ui/appDisplay.js:1895
msgid "New Window"
msgstr "Gnûf barcon"
#: js/ui/appDisplay.js:1929
#: js/ui/appDisplay.js:1909
msgid "Launch using Dedicated Graphics Card"
msgstr "Invie doprant une schede grafiche dedicade"
#: js/ui/appDisplay.js:1956 js/ui/dash.js:289
#: js/ui/appDisplay.js:1936 js/ui/dash.js:289
msgid "Remove from Favorites"
msgstr "Gjave dai preferîts"
#: js/ui/appDisplay.js:1962
#: js/ui/appDisplay.js:1942
msgid "Add to Favorites"
msgstr "Zonte tai preferîts"
#: js/ui/appDisplay.js:1972
#: js/ui/appDisplay.js:1952
msgid "Show Details"
msgstr "Mostre Detais"
#: js/ui/appFavorites.js:141
#: js/ui/appFavorites.js:140
#, javascript-format
msgid "%s has been added to your favorites."
msgstr "%s al è stât zontât tai tiei preferîts."
#: js/ui/appFavorites.js:175
#: js/ui/appFavorites.js:174
#, javascript-format
msgid "%s has been removed from your favorites."
msgstr "%s al è stât gjavât dai tiei preferîts."
@@ -697,7 +631,7 @@ msgstr "Cambie sfont..."
msgid "Display Settings"
msgstr "Impostazions visôr"
#: js/ui/backgroundMenu.js:22 js/ui/status/system.js:265
#: js/ui/backgroundMenu.js:22 js/ui/status/system.js:407
msgid "Settings"
msgstr "Impostazions"
@@ -753,51 +687,51 @@ msgctxt "grid saturday"
msgid "S"
msgstr "S"
#: js/ui/calendar.js:449
#: js/ui/calendar.js:442
msgid "Previous month"
msgstr "Mês indaûr"
#: js/ui/calendar.js:459
#: js/ui/calendar.js:452
msgid "Next month"
msgstr "Prossim mês"
#: js/ui/calendar.js:612
#: js/ui/calendar.js:605
#, no-javascript-format
msgctxt "date day number format"
msgid "%d"
msgstr "%d"
#: js/ui/calendar.js:667
#: js/ui/calendar.js:660
msgid "Week %V"
msgstr "Setemane %V"
#. 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:736
#: js/ui/calendar.js:729
msgctxt "event list time"
msgid "All Day"
msgstr "Dut il dì"
#: js/ui/calendar.js:869
#: js/ui/calendar.js:862
msgctxt "calendar heading"
msgid "%A, %B %d"
msgstr "%A, %d di %B"
#: js/ui/calendar.js:873
#: js/ui/calendar.js:866
msgctxt "calendar heading"
msgid "%A, %B %d, %Y"
msgstr "%A, %d di %B dal %Y"
#: js/ui/calendar.js:1093
#: js/ui/calendar.js:1086
msgid "No Notifications"
msgstr "Nissune notifiche"
#: js/ui/calendar.js:1096
#: js/ui/calendar.js:1089
msgid "No Events"
msgstr "Nissun event"
#: js/ui/calendar.js:1124
#: js/ui/calendar.js:1117
msgid "Clear All"
msgstr "Nete dut"
@@ -831,7 +765,7 @@ msgstr "Dispositîf esterni tacât"
msgid "External drive disconnected"
msgstr "Dispositîf esterni distacât"
#: js/ui/components/autorunManager.js:358
#: js/ui/components/autorunManager.js:354
#, javascript-format
msgid "Open with %s"
msgstr "Vierç cun %s"
@@ -844,8 +778,8 @@ msgstr "Password:"
msgid "Type again:"
msgstr "Scîf di gnûf:"
#: js/ui/components/networkAgent.js:112 js/ui/status/network.js:261
#: js/ui/status/network.js:355 js/ui/status/network.js:939
#: js/ui/components/networkAgent.js:112 js/ui/status/network.js:272
#: js/ui/status/network.js:366 js/ui/status/network.js:950
msgid "Connect"
msgstr "Conet"
@@ -920,7 +854,7 @@ msgstr "Passowrd rêt mobil a bande largje"
msgid "A password is required to connect to “%s”."
msgstr "A covente une password par tacâsi a '%s'."
#: js/ui/components/networkAgent.js:627 js/ui/status/network.js:1720
#: js/ui/components/networkAgent.js:627 js/ui/status/network.js:1760
msgid "Network Manager"
msgstr "Ministradôr di rêt"
@@ -951,7 +885,7 @@ msgstr "Mi displâs, no je lade drete. Prove di gnûf."
msgid "%s is now known as %s"
msgstr "L'utent %s al è cognossût cumò come %s"
#: js/ui/ctrlAltTab.js:29 js/ui/viewSelector.js:186
#: js/ui/ctrlAltTab.js:29 js/ui/viewSelector.js:179
msgid "Windows"
msgstr "Barcons"
@@ -968,7 +902,7 @@ msgstr "Dash"
#. 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:76
#: js/ui/dateMenu.js:75
msgid "%B %e %Y"
msgstr "%e di %B dal %Y"
@@ -976,19 +910,19 @@ msgstr "%e di %B dal %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:83
#: js/ui/dateMenu.js:82
msgid "%A %B %e %Y"
msgstr "%A %e di %B dal %Y"
#: js/ui/dateMenu.js:145
#: js/ui/dateMenu.js:144
msgid "Add world clocks…"
msgstr "Zonte orlois mondiâi..."
#: js/ui/dateMenu.js:146
#: js/ui/dateMenu.js:145
msgid "World Clocks"
msgstr "Orlois mondiâi"
#: js/ui/dateMenu.js:225
#: js/ui/dateMenu.js:224
msgid "Weather"
msgstr "Timp"
@@ -996,7 +930,7 @@ msgstr "Timp"
#. 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:289
#: js/ui/dateMenu.js:281
#, javascript-format
msgid "%s all day."
msgstr "%s dut il dì."
@@ -1005,7 +939,7 @@ msgstr "%s dut il dì."
#. 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:295
#: js/ui/dateMenu.js:287
#, javascript-format
msgid "%s, then %s later."
msgstr "%s, plui tart %s."
@@ -1014,30 +948,30 @@ msgstr "%s, plui tart %s."
#. 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:301
#: js/ui/dateMenu.js:293
#, javascript-format
msgid "%s, then %s, followed by %s later."
msgstr "%s, chi di un pôc %s, e plui tart %s."
#: js/ui/dateMenu.js:312
#: js/ui/dateMenu.js:300
msgid "Select a location…"
msgstr "Selezione une posizion..."
#: js/ui/dateMenu.js:315
#: js/ui/dateMenu.js:303
msgid "Loading…"
msgstr "Daûr a cjariâ..."
#. Translators: %s is a temperature with unit, e.g. "23℃"
#: js/ui/dateMenu.js:321
#: js/ui/dateMenu.js:309
#, javascript-format
msgid "Feels like %s."
msgstr "Si sint %s."
#: js/ui/dateMenu.js:324
#: js/ui/dateMenu.js:312
msgid "Go online for weather information"
msgstr "Va in rêt pes informazions sul timp"
#: js/ui/dateMenu.js:326
#: js/ui/dateMenu.js:314
msgid "Weather information is currently unavailable"
msgstr "Lis informazions sul timp al moment no son disponibilis"
@@ -1200,34 +1134,19 @@ msgstr "Instale"
msgid "Download and install “%s” from extensions.gnome.org?"
msgstr "Scjariâ e instalâ '%s' da extensions.gnome.org?"
#. Translators: %s is an application name like "Settings"
#: js/ui/inhibitShortcutsDialog.js:59
#, javascript-format
msgid "%s wants to inhibit shortcuts"
msgstr "%s al desidere inibî lis scurtis"
#: js/ui/inhibitShortcutsDialog.js:60
msgid "Application wants to inhibit shortcuts"
msgstr "Une aplicazion e desidere inibî lis scurtis"
#. Translators: %s is a keyboard shortcut like "Super+x"
#: js/ui/inhibitShortcutsDialog.js:69
#, javascript-format
msgid "You can restore shortcuts by pressing %s."
msgstr "Si pues ripristinâ lis scurtis fracant %s."
#: js/ui/inhibitShortcutsDialog.js:74
msgid "Deny"
msgstr "Dinee"
#: js/ui/inhibitShortcutsDialog.js:80
msgid "Allow"
msgstr "Pemet"
#: js/ui/keyboard.js:738 js/ui/status/keyboard.js:782
msgid "Keyboard"
msgstr "Tastiere"
#. translators: 'Hide' is a verb
#: js/ui/legacyTray.js:65
msgid "Hide tray"
msgstr "Plate casset"
#: js/ui/legacyTray.js:106
msgid "Status Icons"
msgstr "Iconis di stât"
#: js/ui/lookingGlass.js:642
msgid "No extensions installed"
msgstr "Nissune estension instalade"
@@ -1276,7 +1195,7 @@ msgstr "Viôt sorzint"
msgid "Web Page"
msgstr "Pagjine Web"
#: js/ui/messageTray.js:1494
#: js/ui/messageTray.js:1493
msgid "System Information"
msgstr "Informazion di sisteme"
@@ -1416,7 +1335,7 @@ msgid_plural "%d new notifications"
msgstr[0] "%d gnove notifiche"
msgstr[1] "%d gnovis modifichis"
#: js/ui/screenShield.js:452 js/ui/status/system.js:284
#: js/ui/screenShield.js:452 js/ui/status/system.js:415
msgid "Lock"
msgstr "Bloche"
@@ -1448,12 +1367,10 @@ msgid "No results."
msgstr "Nissun risultât."
# o ancjemò %d
#: js/ui/search.js:777
#: js/ui/search.js:768
#, javascript-format
msgid "%d more"
msgid_plural "%d more"
msgstr[0] "%d altri"
msgstr[1] "%d altris"
msgstr "Ancjemò %d"
#: js/ui/shellEntry.js:25
msgid "Copy"
@@ -1527,7 +1444,7 @@ msgstr "Test Larc"
msgid "Bluetooth"
msgstr "Bluetooth"
#: js/ui/status/bluetooth.js:56 js/ui/status/network.js:627
#: js/ui/status/bluetooth.js:56 js/ui/status/network.js:638
msgid "Bluetooth Settings"
msgstr "Impostazions Bluetooth"
@@ -1547,13 +1464,13 @@ msgstr "Distudât"
msgid "On"
msgstr "Impiât"
#: js/ui/status/bluetooth.js:142 js/ui/status/network.js:1299
#: js/ui/status/bluetooth.js:142 js/ui/status/network.js:1310
msgid "Turn On"
msgstr "Impie"
#: js/ui/status/bluetooth.js:142 js/ui/status/network.js:170
#: js/ui/status/network.js:356 js/ui/status/network.js:1299
#: js/ui/status/network.js:1418 js/ui/status/nightLight.js:47
#: 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/rfkill.js:90 js/ui/status/rfkill.js:117
msgid "Turn Off"
msgstr "Distude"
@@ -1607,13 +1524,13 @@ msgid "<unknown>"
msgstr "<no cognossût>"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:454 js/ui/status/network.js:1328
#: js/ui/status/network.js:465 js/ui/status/network.js:1339
#, javascript-format
msgid "%s Off"
msgstr "%s distudât"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:457
#: js/ui/status/network.js:468
#, javascript-format
msgid "%s Connected"
msgstr "%s tacât"
@@ -1621,189 +1538,190 @@ msgstr "%s tacât"
#. Translators: this is for network devices that are physically present but are not
#. under NetworkManager's control (and thus cannot be used in the menu);
#. %s is a network identifier
#: js/ui/status/network.js:462
#: js/ui/status/network.js:473
#, javascript-format
msgid "%s Unmanaged"
msgstr "%s no ministrât"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:465
#: js/ui/status/network.js:476
#, javascript-format
msgid "%s Disconnecting"
msgstr "%s daûr a disconeti"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:472 js/ui/status/network.js:1320
#: js/ui/status/network.js:483 js/ui/status/network.js:1331
#, javascript-format
msgid "%s Connecting"
msgstr "%s in conession"
#. Translators: this is for network connections that require some kind of key or password; %s is a network identifier
#: js/ui/status/network.js:475
#: js/ui/status/network.js:486
#, javascript-format
msgid "%s Requires Authentication"
msgstr "%s al à dibisugne di autenticazion"
#. Translators: this is for devices that require some kind of firmware or kernel
#. module, which is missing; %s is a network identifier
#: js/ui/status/network.js:483
#: js/ui/status/network.js:494
#, javascript-format
msgid "Firmware Missing For %s"
msgstr "Al mancje il firmware par %s"
#. Translators: this is for a network device that cannot be activated (for example it
#. is disabled by rfkill, or it has no coverage; %s is a network identifier
#: js/ui/status/network.js:487
#: js/ui/status/network.js:498
#, javascript-format
msgid "%s Unavailable"
msgstr "%s no disponibil"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:490
#: js/ui/status/network.js:501
#, javascript-format
msgid "%s Connection Failed"
msgstr "Conession falide su %s"
#: js/ui/status/network.js:506
#: js/ui/status/network.js:517
msgid "Wired Settings"
msgstr "Impostazions rêt vie fîl"
#: js/ui/status/network.js:548
#: js/ui/status/network.js:559
msgid "Mobile Broadband Settings"
msgstr "Impostazions bande largje mobil"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:591 js/ui/status/network.js:1325
#: js/ui/status/network.js:602 js/ui/status/network.js:1336
#, javascript-format
msgid "%s Hardware Disabled"
msgstr "%s disabilitât vie hardware "
#. Translators: this is for a network device that cannot be activated
#. because it's disabled by rfkill (airplane mode); %s is a network identifier
#: js/ui/status/network.js:595
#: js/ui/status/network.js:606
#, javascript-format
msgid "%s Disabled"
msgstr "%s disabilitât"
#: js/ui/status/network.js:635
#: js/ui/status/network.js:646
msgid "Connect to Internet"
msgstr "Conet a internet"
#: js/ui/status/network.js:833
#: js/ui/status/network.js:844
msgid "Airplane Mode is On"
msgstr "Modalitât avion piade"
#: js/ui/status/network.js:834
#: js/ui/status/network.js:845
msgid "Wi-Fi is disabled when airplane mode is on."
msgstr "Il Wi-Fi al è disabilitât cuant che la modalitât avion e je impiade."
#: js/ui/status/network.js:835
#: js/ui/status/network.js:846
msgid "Turn Off Airplane Mode"
msgstr "Distude modalitât avion"
#: js/ui/status/network.js:844
#: js/ui/status/network.js:855
msgid "Wi-Fi is Off"
msgstr "Il Wi-Fi al è distudât"
#: js/ui/status/network.js:845
#: js/ui/status/network.js:856
msgid "Wi-Fi needs to be turned on in order to connect to a network."
msgstr "Il Wi-Fi al scugne jessi impiât par podêsi tacâ a une rêt."
#: js/ui/status/network.js:846
#: js/ui/status/network.js:857
msgid "Turn On Wi-Fi"
msgstr "Impie il Wi-Fi"
#: js/ui/status/network.js:871
#: js/ui/status/network.js:882
msgid "Wi-Fi Networks"
msgstr "Rêts Wi-Fi"
#: js/ui/status/network.js:873
#: js/ui/status/network.js:884
msgid "Select a network"
msgstr "Selezione une rêt"
#: js/ui/status/network.js:903
#: js/ui/status/network.js:914
msgid "No Networks"
msgstr "Nissune rêt"
#: js/ui/status/network.js:924 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 "Dopre interutôr fisic par distudâ"
#: js/ui/status/network.js:1191
#: js/ui/status/network.js:1202
msgid "Select Network"
msgstr "Selezione rêt"
#: js/ui/status/network.js:1197
#: js/ui/status/network.js:1208
msgid "Wi-Fi Settings"
msgstr "Impostazions Wi-Fi"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:1316
#: js/ui/status/network.js:1327
#, javascript-format
msgid "%s Hotspot Active"
msgstr "Hotspot %s atîf"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:1331
#: js/ui/status/network.js:1342
#, javascript-format
msgid "%s Not Connected"
msgstr "%s distacât"
#: js/ui/status/network.js:1435
#: js/ui/status/network.js:1446
msgid "connecting…"
msgstr "daûr a coneti…"
#. Translators: this is for network connections that require some kind of key or password
#: js/ui/status/network.js:1438
#: js/ui/status/network.js:1449
msgid "authentication required"
msgstr "autenticazion necessarie"
#: js/ui/status/network.js:1440
#: js/ui/status/network.js:1451
msgid "connection failed"
msgstr "conession falide"
#: js/ui/status/network.js:1494
msgid "VPN Settings"
msgstr "Impostazions VPN"
#: js/ui/status/network.js:1498
msgid "VPN"
msgstr "VPN"
#: js/ui/status/network.js:1508
msgid "VPN Off"
msgstr "VPN distudât"
#: js/ui/status/network.js:1572 js/ui/status/rfkill.js:93
#: js/ui/status/network.js:1517 js/ui/status/network.js:1612
#: js/ui/status/rfkill.js:93
msgid "Network Settings"
msgstr "Impostazions rêt"
#: js/ui/status/network.js:1603
#: js/ui/status/network.js:1519
msgid "VPN Settings"
msgstr "Impostazions VPN"
#: js/ui/status/network.js:1538
msgid "VPN"
msgstr "VPN"
#: js/ui/status/network.js:1548
msgid "VPN Off"
msgstr "VPN distudât"
#: js/ui/status/network.js:1643
#, javascript-format
msgid "%s Wired Connection"
msgid_plural "%s Wired Connections"
msgstr[0] "%s conession cablade"
msgstr[1] "%s conessions cabladis"
#: js/ui/status/network.js:1607
#: js/ui/status/network.js:1647
#, javascript-format
msgid "%s Wi-Fi Connection"
msgid_plural "%s Wi-Fi Connections"
msgstr[0] "%s conession cence fîi"
msgstr[1] "%s conessions cence fîi"
#: js/ui/status/network.js:1611
#: js/ui/status/network.js:1651
#, javascript-format
msgid "%s Modem Connection"
msgid_plural "%s Modem Connections"
msgstr[0] "%s conession modem"
msgstr[1] "%s conessions modem"
#: js/ui/status/network.js:1759
#: js/ui/status/network.js:1799
msgid "Connection failed"
msgstr "Conession falide"
#: js/ui/status/network.js:1760
#: js/ui/status/network.js:1800
msgid "Activation of network connection failed"
msgstr "Ativazion de conession di rêt falide"
@@ -1861,27 +1779,27 @@ msgstr "%d%%"
msgid "Airplane Mode On"
msgstr "Modalitât Avion ative"
#: js/ui/status/system.js:228
#: js/ui/status/system.js:384
msgid "Switch User"
msgstr "Cambie Utent"
#: js/ui/status/system.js:240
#: js/ui/status/system.js:389
msgid "Log Out"
msgstr "Jes"
#: js/ui/status/system.js:252
#: js/ui/status/system.js:394
msgid "Account Settings"
msgstr "Impostazions account"
#: js/ui/status/system.js:269
#: js/ui/status/system.js:411
msgid "Orientation Lock"
msgstr "Bloche Orientament"
#: js/ui/status/system.js:295
#: js/ui/status/system.js:419
msgid "Suspend"
msgstr "Sospindi"
#: js/ui/status/system.js:305
#: js/ui/status/system.js:422
msgid "Power Off"
msgstr "Distude"
@@ -1893,34 +1811,6 @@ msgstr "Volum modificât"
msgid "Volume"
msgstr "Volum"
#. Translators: this is for display mirroring i.e. cloning.
#. * Try to keep it under around 15 characters.
#.
#: js/ui/switchMonitor.js:21
msgid "Mirror"
msgstr "Sdopleâ"
#. Translators: this is for the desktop spanning displays.
#. * Try to keep it under around 15 characters.
#.
#: js/ui/switchMonitor.js:26
msgid "Join Displays"
msgstr "Unìs schermis"
#. Translators: this is for using only an external display.
#. * Try to keep it under around 15 characters.
#.
#: js/ui/switchMonitor.js:31
msgid "External Only"
msgstr "Dome esterni"
#. Translators: this is for using only the laptop display.
#. * Try to keep it under around 15 characters.
#.
#: js/ui/switchMonitor.js:36
msgid "Built-in Only"
msgstr "Dome incorporât"
#: js/ui/unlockDialog.js:67
msgid "Log in as another user"
msgstr "Jentre come altri utent"
@@ -1929,11 +1819,11 @@ msgstr "Jentre come altri utent"
msgid "Unlock Window"
msgstr "Sbloche barcon"
#: js/ui/viewSelector.js:190
#: js/ui/viewSelector.js:183
msgid "Applications"
msgstr "Aplicazions"
#: js/ui/viewSelector.js:194
#: js/ui/viewSelector.js:187
msgid "Search"
msgstr "Cîr"
@@ -1942,22 +1832,22 @@ msgstr "Cîr"
msgid "“%s” is ready"
msgstr "'%s' al è pront"
#: js/ui/windowManager.js:72
#: js/ui/windowManager.js:71
msgid "Do you want to keep these display settings?"
msgstr "Vûstu tignî chestis impostazions di visôr?"
#. Translators: this and the following message should be limited in lenght,
#. to avoid ellipsizing the labels.
#.
#: js/ui/windowManager.js:84
#: js/ui/windowManager.js:83
msgid "Revert Settings"
msgstr "Ripristine impostazions"
#: js/ui/windowManager.js:87
#: js/ui/windowManager.js:86
msgid "Keep Changes"
msgstr "Ten lis modifichis"
#: js/ui/windowManager.js:105
#: js/ui/windowManager.js:104
#, javascript-format
msgid "Settings changes will revert in %d second"
msgid_plural "Settings changes will revert in %d seconds"
@@ -1968,7 +1858,7 @@ msgstr[1] ""
#. 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:660
#: js/ui/windowManager.js:659
#, javascript-format
msgid "%d × %d"
msgstr "%d × %d"
@@ -2046,19 +1936,19 @@ msgstr "Calendari di Evolution"
msgid "evolution"
msgstr "evolution"
#: src/main.c:380
#: src/main.c:372
msgid "Print version"
msgstr "Stampe version"
#: src/main.c:386
#: src/main.c:378
msgid "Mode used by GDM for login screen"
msgstr "Modalitât doprade da GDM pe videade di acès"
#: src/main.c:392
#: src/main.c:384
msgid "Use a specific mode, e.g. “gdm” for login screen"
msgstr "Dopre une modalitât specifiche, par esempli “gdm” pe videade di acès"
#: src/main.c:398
#: src/main.c:390
msgid "List possible modes"
msgstr "Liste modalitâts pussibilis"
@@ -2106,12 +1996,6 @@ msgstr[1] "%u jentradis"
msgid "System Sounds"
msgstr "Suns di sisteme"
#~ msgid "Hide tray"
#~ msgstr "Plate casset"
#~ msgid "Status Icons"
#~ msgstr "Iconis di stât"
#~ msgid "Events"
#~ msgstr "Events"

594
po/gl.po

File diff suppressed because it is too large Load Diff

383
po/hr.po
View File

@@ -8,8 +8,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-08-22 11:17+0000\n"
"PO-Revision-Date: 2017-08-23 17:35+0200\n"
"POT-Creation-Date: 2017-07-20 03:49+0000\n"
"PO-Revision-Date: 2017-07-25 20:05+0200\n"
"Last-Translator: gogo <trebelnik2@gmail.com>\n"
"Language-Team: Croatian <hr@li.org>\n"
"Language: hr\n"
@@ -18,7 +18,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
"X-Generator: Poedit 2.0.3\n"
"X-Generator: Poedit 2.0.2\n"
#: data/50-gnome-shell-system.xml:6
msgid "System"
@@ -59,13 +59,13 @@ msgstr "GNOME ljuska"
#: data/org.gnome.Shell.desktop.in.in:5
msgid "Window management and application launching"
msgstr "Pokretanje upravljanja prozorima i aplikacijama"
msgstr "Pokretanje upravljanja prozorima i aplikacijama."
#: data/org.gnome.shell.gschema.xml.in:6
msgid "Enable internal tools useful for developers and testers from Alt-F2"
msgstr ""
"Omogući unutrašnji alat koristan za razvijatelje i testiratelje koristeći "
"Alt-F2 dijalog"
"Alt-F2 dijalog."
#: data/org.gnome.shell.gschema.xml.in:9
msgid ""
@@ -219,7 +219,7 @@ msgstr "Prečac tipkovnice za otvaranje pogleda"
#: data/org.gnome.shell.gschema.xml.in:117
msgid "Keybinding to open the Activities Overview."
msgstr "Prečac tipkovnice za otvaranje pogleda Aktivnosti."
msgstr "Prečac tipkovnice za otvaranje pogleda Aktivnosti"
#: data/org.gnome.shell.gschema.xml.in:123
msgid "Keybinding to toggle the visibility of the notification list"
@@ -245,7 +245,7 @@ msgid ""
"Keybinding that pauses and resumes all running tweens, for debugging purposes"
msgstr ""
"Prečac tipkovnice za pauziranje i nastavljanje svih pokrenutih duplikata, u "
"svrhu otklanjanja grešaka"
"svrhu otklanjanja grešaka."
#: data/org.gnome.shell.gschema.xml.in:146
msgid "Which keyboard to use"
@@ -253,7 +253,7 @@ msgstr "Koju tipkovnicu koristiti"
#: data/org.gnome.shell.gschema.xml.in:147
msgid "The type of keyboard to use."
msgstr "Vrsta tipkovnice koja se koristi."
msgstr "Vrsta tipkovnice koja se koristi"
#: data/org.gnome.shell.gschema.xml.in:158
#: data/org.gnome.shell.gschema.xml.in:185
@@ -340,7 +340,7 @@ msgstr "Dogodila se greška učitavanja dijaloga osobitosti za %s:"
#: js/gdm/authPrompt.js:149 js/ui/audioDeviceSelection.js:71
#: js/ui/components/networkAgent.js:117 js/ui/components/polkitAgent.js:148
#: js/ui/endSessionDialog.js:482 js/ui/extensionDownloader.js:197
#: js/ui/shellMountOperation.js:344 js/ui/status/network.js:936
#: js/ui/shellMountOperation.js:344 js/ui/status/network.js:947
msgid "Cancel"
msgstr "Odustani"
@@ -367,7 +367,7 @@ msgstr "Odaberi sesiju"
#. manually entering the username.
#: js/gdm/loginDialog.js:458
msgid "Not listed?"
msgstr "Niste na popisu?"
msgstr "Nije na popisu?"
#. Translators: this message is shown below the username entry field
#. to clue the user in on how to login to the local network realm
@@ -382,7 +382,7 @@ msgstr "(npr., korisnik ili %s)"
#: js/gdm/loginDialog.js:893 js/ui/components/networkAgent.js:243
#: js/ui/components/networkAgent.js:261
msgid "Username: "
msgstr "Korisničko ime: "
msgstr "Korisničko ime:"
#: js/gdm/loginDialog.js:1236
msgid "Login Window"
@@ -401,72 +401,6 @@ msgstr "Greška ovjere"
msgid "(or swipe finger)"
msgstr "(ili pomakni prst)"
#. Translators: The name of the power-off action in search
#: js/misc/systemActions.js:99
msgctxt "search-result"
msgid "Power off"
msgstr "Isključivanje"
#. Translators: A list of keywords that match the power-off action, separated by semicolons
#: js/misc/systemActions.js:102
msgid "power off;shutdown"
msgstr "isključi;isključivanje"
#. Translators: The name of the lock screen action in search
#: js/misc/systemActions.js:106
msgctxt "search-result"
msgid "Lock screen"
msgstr "Zaključavanje zaslona"
#. Translators: A list of keywords that match the lock screen action, separated by semicolons
#: js/misc/systemActions.js:109
msgid "lock screen"
msgstr "zaključavanje zaslona"
#. Translators: The name of the logout action in search
#: js/misc/systemActions.js:113
msgctxt "search-result"
msgid "Log out"
msgstr "Odjava"
#. Translators: A list of keywords that match the logout action, separated by semicolons
#: js/misc/systemActions.js:116
msgid "logout;sign off"
msgstr "odjava:odjavljivanje"
#. Translators: The name of the suspend action in search
#: js/misc/systemActions.js:120
msgctxt "search-result"
msgid "Suspend"
msgstr "Suspenzija"
#. Translators: A list of keywords that match the suspend action, separated by semicolons
#: js/misc/systemActions.js:123
msgid "suspend;sleep"
msgstr "suspendiraj;spavaj"
#. Translators: The name of the switch user action in search
#: js/misc/systemActions.js:127
msgctxt "search-result"
msgid "Switch user"
msgstr "Zamjena korisnika"
#. Translators: A list of keywords that match the switch user action, separated by semicolons
#: js/misc/systemActions.js:130
msgid "switch user"
msgstr "zamjena korisnika"
#. Translators: The name of the lock orientation action in search
#: js/misc/systemActions.js:134
msgctxt "search-result"
msgid "Lock orientation"
msgstr "Zaključavanje orjentacije"
#. Translators: A list of keywords that match the lock orientation action, separated by semicolons
#: js/misc/systemActions.js:137
msgid "lock orientation"
msgstr "zaključavanje orjentacije"
#: js/misc/util.js:122
msgid "Command not found"
msgstr "Naredba nije pronađena"
@@ -632,35 +566,35 @@ msgstr "Zabrani pristup"
msgid "Grant Access"
msgstr "Dopusti pristup"
#: js/ui/appDisplay.js:809
#: js/ui/appDisplay.js:806
msgid "Frequently used applications will appear here"
msgstr "Najčešće korištene aplikacije će se pojaviti ovdje"
#: js/ui/appDisplay.js:930
#: js/ui/appDisplay.js:927
msgid "Frequent"
msgstr "Najčešće"
#: js/ui/appDisplay.js:937
#: js/ui/appDisplay.js:934
msgid "All"
msgstr "Sve"
#: js/ui/appDisplay.js:1915
#: js/ui/appDisplay.js:1895
msgid "New Window"
msgstr "Novi prozor"
#: js/ui/appDisplay.js:1929
#: js/ui/appDisplay.js:1909
msgid "Launch using Dedicated Graphics Card"
msgstr "Pokreni pomoću namjenske grafičke kartice"
#: js/ui/appDisplay.js:1956 js/ui/dash.js:289
#: js/ui/appDisplay.js:1936 js/ui/dash.js:289
msgid "Remove from Favorites"
msgstr "Ukloni iz omiljenih"
#: js/ui/appDisplay.js:1962
#: js/ui/appDisplay.js:1942
msgid "Add to Favorites"
msgstr "Dodaj u omiljene"
#: js/ui/appDisplay.js:1972
#: js/ui/appDisplay.js:1952
msgid "Show Details"
msgstr "Prikaži pojedinosti"
@@ -696,13 +630,13 @@ msgstr "Mikrofon"
#: js/ui/backgroundMenu.js:19
msgid "Change Background…"
msgstr "Promijeni pozadinu"
msgstr "Promijeni pozadinu..."
#: js/ui/backgroundMenu.js:21 js/ui/status/nightLight.js:51
msgid "Display Settings"
msgstr "Postavke prikaza"
#: js/ui/backgroundMenu.js:22 js/ui/status/system.js:265
#: js/ui/backgroundMenu.js:22 js/ui/status/system.js:407
msgid "Settings"
msgstr "Postavke"
@@ -849,8 +783,8 @@ msgstr "Lozinka:"
msgid "Type again:"
msgstr "Pokušaj ponovno:"
#: js/ui/components/networkAgent.js:112 js/ui/status/network.js:261
#: js/ui/status/network.js:355 js/ui/status/network.js:939
#: js/ui/components/networkAgent.js:112 js/ui/status/network.js:272
#: js/ui/status/network.js:366 js/ui/status/network.js:950
msgid "Connect"
msgstr "Povezivanje"
@@ -859,24 +793,24 @@ msgstr "Povezivanje"
#: js/ui/components/networkAgent.js:245 js/ui/components/networkAgent.js:265
#: js/ui/components/networkAgent.js:275
msgid "Password: "
msgstr "Lozinka: "
msgstr "Lozinka:"
#. static WEP
#: js/ui/components/networkAgent.js:210
msgid "Key: "
msgstr "Ključ: "
msgstr "Ključ:"
#: js/ui/components/networkAgent.js:249
msgid "Identity: "
msgstr "Identitet: "
msgstr "Identitet:"
#: js/ui/components/networkAgent.js:251
msgid "Private key password: "
msgstr "Lozinka privatnog ključa: "
msgstr "Lozinka privatnog ključa:"
#: js/ui/components/networkAgent.js:263
msgid "Service: "
msgstr "Usluga: "
msgstr "Usluga:"
#: js/ui/components/networkAgent.js:292 js/ui/components/networkAgent.js:638
msgid "Authentication required by wireless network"
@@ -896,7 +830,7 @@ msgstr "Wired 802.1X ovjera"
#: js/ui/components/networkAgent.js:299
msgid "Network name: "
msgstr "Naziv mreže: "
msgstr "Naziv mreže:"
#: js/ui/components/networkAgent.js:304 js/ui/components/networkAgent.js:646
msgid "DSL authentication"
@@ -912,7 +846,7 @@ msgstr "PIN kôd je potreban za uređaj mobilnog interneta"
#: js/ui/components/networkAgent.js:313
msgid "PIN: "
msgstr "PIN: "
msgstr "PIN:"
#: js/ui/components/networkAgent.js:320 js/ui/components/networkAgent.js:659
msgid "Mobile broadband network password"
@@ -924,7 +858,7 @@ msgstr "Lozinka mreže mobilnog interneta"
msgid "A password is required to connect to “%s”."
msgstr "Potrebna je lozinka za povezivanje s “%s”."
#: js/ui/components/networkAgent.js:627 js/ui/status/network.js:1720
#: js/ui/components/networkAgent.js:627 js/ui/status/network.js:1760
msgid "Network Manager"
msgstr "Mrežni upravitelj"
@@ -955,7 +889,7 @@ msgstr "Nažalost, to ne radi. Pokušajte ponovno."
msgid "%s is now known as %s"
msgstr "%s je poznat kao %s"
#: js/ui/ctrlAltTab.js:29 js/ui/viewSelector.js:186
#: js/ui/ctrlAltTab.js:29 js/ui/viewSelector.js:179
msgid "Windows"
msgstr "Prozori"
@@ -986,7 +920,7 @@ msgstr "%e %b, %Y"
#: js/ui/dateMenu.js:144
msgid "Add world clocks…"
msgstr "Dodaj satove iz svijeta"
msgstr "Dodaj satove iz svijeta..."
#: js/ui/dateMenu.js:145
msgid "World Clocks"
@@ -1000,7 +934,7 @@ msgstr "Vrijeme"
#. 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:286
#: js/ui/dateMenu.js:281
#, javascript-format
msgid "%s all day."
msgstr "%s cijeli dan."
@@ -1009,7 +943,7 @@ msgstr "%s cijeli dan."
#. 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:292
#: js/ui/dateMenu.js:287
#, javascript-format
msgid "%s, then %s later."
msgstr "%s, zatim %s kasnije."
@@ -1018,30 +952,30 @@ msgstr "%s, zatim %s kasnije."
#. 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:298
#: js/ui/dateMenu.js:293
#, javascript-format
msgid "%s, then %s, followed by %s later."
msgstr "%s, zatim %s, praćena s %s kasnije."
#: js/ui/dateMenu.js:309
#: js/ui/dateMenu.js:300
msgid "Select a location…"
msgstr "Odaberi lokaciju"
msgstr "Odaberi lokaciju..."
#: js/ui/dateMenu.js:312
#: js/ui/dateMenu.js:303
msgid "Loading…"
msgstr "Pretraživanje…"
#. Translators: %s is a temperature with unit, e.g. "23℃"
#: js/ui/dateMenu.js:318
#: js/ui/dateMenu.js:309
#, javascript-format
msgid "Feels like %s."
msgstr "Kao da je %s."
#: js/ui/dateMenu.js:321
#: js/ui/dateMenu.js:312
msgid "Go online for weather information"
msgstr "Posjetite za opširnije vremenske informacije"
#: js/ui/dateMenu.js:323
#: js/ui/dateMenu.js:314
msgid "Weather information is currently unavailable"
msgstr "Vremenske informacije su trenutno nedostupne"
@@ -1211,34 +1145,19 @@ msgstr "Instaliraj"
msgid "Download and install “%s” from extensions.gnome.org?"
msgstr "Preuzmi i instaliraj “%s” sa extensions.gnome.org?"
#. Translators: %s is an application name like "Settings"
#: js/ui/inhibitShortcutsDialog.js:59
#, javascript-format
msgid "%s wants to inhibit shortcuts"
msgstr "%s želi spriječiti prečac"
#: js/ui/inhibitShortcutsDialog.js:60
msgid "Application wants to inhibit shortcuts"
msgstr "Aplikacija želi spriječiti prečac"
#. Translators: %s is a keyboard shortcut like "Super+x"
#: js/ui/inhibitShortcutsDialog.js:69
#, javascript-format
msgid "You can restore shortcuts by pressing %s."
msgstr "Možete obnoviti prečac pritiskom na %s."
#: js/ui/inhibitShortcutsDialog.js:74
msgid "Deny"
msgstr "Spriječi"
#: js/ui/inhibitShortcutsDialog.js:80
msgid "Allow"
msgstr "Dopusti"
#: js/ui/keyboard.js:738 js/ui/status/keyboard.js:782
#: js/ui/keyboard.js:740 js/ui/status/keyboard.js:782
msgid "Keyboard"
msgstr "Tipkovnica"
#. translators: 'Hide' is a verb
#: js/ui/legacyTray.js:65
msgid "Hide tray"
msgstr "Sakrij traku stanja"
#: js/ui/legacyTray.js:106
msgid "Status Icons"
msgstr "Ikona stanja"
#: js/ui/lookingGlass.js:642
msgid "No extensions installed"
msgstr "Nema instaliranih proširenja"
@@ -1315,11 +1234,11 @@ msgstr "Pregled"
#. characters.
#: js/ui/overview.js:240
msgid "Type to search…"
msgstr "Upiši za pretragu"
msgstr "Upiši za pretragu..."
#: js/ui/padOsd.js:103
msgid "New shortcut…"
msgstr "Novi prečac"
msgstr "Novi prečac..."
#: js/ui/padOsd.js:152
msgid "Application defined"
@@ -1343,7 +1262,7 @@ msgstr "Završeno"
#: js/ui/padOsd.js:734
msgid "Edit…"
msgstr "Uredi"
msgstr "Uredi..."
#: js/ui/padOsd.js:774 js/ui/padOsd.js:879
msgid "None"
@@ -1387,7 +1306,7 @@ msgstr "Gornja traka"
#. simply result in invisible toggle switches.
#: js/ui/popupMenu.js:291
msgid "toggle-switch-us"
msgstr "toggle-switch-us"
msgstr ""
#: js/ui/runDialog.js:71
msgid "Enter a Command"
@@ -1403,7 +1322,7 @@ msgstr "Ponovno pokretanje nije dostupno na Waylandu"
#: js/ui/runDialog.js:282
msgid "Restarting…"
msgstr "Ponovno pokretanje"
msgstr "Ponovno pokretanje..."
#. Translators: This is a time format for a date in
#. long format
@@ -1427,7 +1346,7 @@ msgstr[0] "%d nova obavijest"
msgstr[1] "%d nove obavijesti"
msgstr[2] "%d novih obavijesti"
#: js/ui/screenShield.js:452 js/ui/status/system.js:284
#: js/ui/screenShield.js:452 js/ui/status/system.js:415
msgid "Lock"
msgstr "Zaključaj"
@@ -1458,13 +1377,10 @@ msgstr "Pretraživanje…"
msgid "No results."
msgstr "Nema rezultata."
#: js/ui/search.js:777
#: js/ui/search.js:768
#, javascript-format
msgid "%d more"
msgid_plural "%d more"
msgstr[0] "Još %d"
msgstr[1] "Još %d"
msgstr[2] "Još %d"
msgstr "Još %d"
#: js/ui/shellEntry.js:25
msgid "Copy"
@@ -1538,7 +1454,7 @@ msgstr "Velik tekst"
msgid "Bluetooth"
msgstr "Bluetooth"
#: js/ui/status/bluetooth.js:56 js/ui/status/network.js:627
#: js/ui/status/bluetooth.js:56 js/ui/status/network.js:638
msgid "Bluetooth Settings"
msgstr "Bluetooth postavke"
@@ -1559,13 +1475,13 @@ msgstr "Isključeno"
msgid "On"
msgstr "Uključeno"
#: js/ui/status/bluetooth.js:142 js/ui/status/network.js:1299
#: js/ui/status/bluetooth.js:142 js/ui/status/network.js:1310
msgid "Turn On"
msgstr "Uključi"
#: js/ui/status/bluetooth.js:142 js/ui/status/network.js:170
#: js/ui/status/network.js:356 js/ui/status/network.js:1299
#: js/ui/status/network.js:1418 js/ui/status/nightLight.js:47
#: 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/rfkill.js:90 js/ui/status/rfkill.js:117
msgid "Turn Off"
msgstr "Isključi"
@@ -1618,13 +1534,13 @@ msgid "<unknown>"
msgstr "<nepoznato>"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:454 js/ui/status/network.js:1328
#: js/ui/status/network.js:465 js/ui/status/network.js:1339
#, javascript-format
msgid "%s Off"
msgstr "%s isključena"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:457
#: js/ui/status/network.js:468
#, javascript-format
msgid "%s Connected"
msgstr "%s povezana"
@@ -1632,164 +1548,165 @@ msgstr "%s povezana"
#. Translators: this is for network devices that are physically present but are not
#. under NetworkManager's control (and thus cannot be used in the menu);
#. %s is a network identifier
#: js/ui/status/network.js:462
#: js/ui/status/network.js:473
#, javascript-format
msgid "%s Unmanaged"
msgstr "%s neupravljana"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:465
#: js/ui/status/network.js:476
#, javascript-format
msgid "%s Disconnecting"
msgstr "%s prekidanje povezivanja"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:472 js/ui/status/network.js:1320
#: js/ui/status/network.js:483 js/ui/status/network.js:1331
#, javascript-format
msgid "%s Connecting"
msgstr "%s povezivanje"
#. Translators: this is for network connections that require some kind of key or password; %s is a network identifier
#: js/ui/status/network.js:475
#: js/ui/status/network.js:486
#, javascript-format
msgid "%s Requires Authentication"
msgstr "%s zahtijeva ovjeru"
#. Translators: this is for devices that require some kind of firmware or kernel
#. module, which is missing; %s is a network identifier
#: js/ui/status/network.js:483
#: js/ui/status/network.js:494
#, javascript-format
msgid "Firmware Missing For %s"
msgstr "Nedostaje firmver za %s"
#. Translators: this is for a network device that cannot be activated (for example it
#. is disabled by rfkill, or it has no coverage; %s is a network identifier
#: js/ui/status/network.js:487
#: js/ui/status/network.js:498
#, javascript-format
msgid "%s Unavailable"
msgstr "%s nedostupna"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:490
#: js/ui/status/network.js:501
#, javascript-format
msgid "%s Connection Failed"
msgstr "%s neuspješno povezivanje"
#: js/ui/status/network.js:506
#: js/ui/status/network.js:517
msgid "Wired Settings"
msgstr "Postavke žične mreže"
#: js/ui/status/network.js:548
#: js/ui/status/network.js:559
msgid "Mobile Broadband Settings"
msgstr "Mobilni internet"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:591 js/ui/status/network.js:1325
#: js/ui/status/network.js:602 js/ui/status/network.js:1336
#, javascript-format
msgid "%s Hardware Disabled"
msgstr "%s hardverski onemogućena"
#. Translators: this is for a network device that cannot be activated
#. because it's disabled by rfkill (airplane mode); %s is a network identifier
#: js/ui/status/network.js:595
#: js/ui/status/network.js:606
#, javascript-format
msgid "%s Disabled"
msgstr "%s onemogućeno"
#: js/ui/status/network.js:635
#: js/ui/status/network.js:646
msgid "Connect to Internet"
msgstr "Povežite se na internet"
#: js/ui/status/network.js:833
#: js/ui/status/network.js:844
msgid "Airplane Mode is On"
msgstr "Zrakoplovni način rada je omogućen"
#: js/ui/status/network.js:834
#: js/ui/status/network.js:845
msgid "Wi-Fi is disabled when airplane mode is on."
msgstr "Bežična mreža je onemogućena u zrakoplovnom načinu rada."
#: js/ui/status/network.js:835
#: js/ui/status/network.js:846
msgid "Turn Off Airplane Mode"
msgstr "Isključi zrakoplovni način rada"
#: js/ui/status/network.js:844
#: js/ui/status/network.js:855
msgid "Wi-Fi is Off"
msgstr "Bežična mreža isključena"
#: js/ui/status/network.js:845
#: js/ui/status/network.js:856
msgid "Wi-Fi needs to be turned on in order to connect to a network."
msgstr "Bežična mreža se mora uključiti kako bi se povezala s internetom."
#: js/ui/status/network.js:846
#: js/ui/status/network.js:857
msgid "Turn On Wi-Fi"
msgstr "Uključi bežičnu mrežu"
#: js/ui/status/network.js:871
#: js/ui/status/network.js:882
msgid "Wi-Fi Networks"
msgstr "Bežične mreže"
#: js/ui/status/network.js:873
#: js/ui/status/network.js:884
msgid "Select a network"
msgstr "Odaberi mrežu"
#: js/ui/status/network.js:903
#: js/ui/status/network.js:914
msgid "No Networks"
msgstr "Nema mreža"
#: js/ui/status/network.js:924 js/ui/status/rfkill.js:115
#: js/ui/status/network.js:935 js/ui/status/rfkill.js:115
msgid "Use hardware switch to turn off"
msgstr "Koristi hardverski prekidač za isključivanje"
#: js/ui/status/network.js:1191
#: js/ui/status/network.js:1202
msgid "Select Network"
msgstr "Odaberi mrežu"
#: js/ui/status/network.js:1197
#: js/ui/status/network.js:1208
msgid "Wi-Fi Settings"
msgstr "Postavke bežične mreže"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:1316
#: js/ui/status/network.js:1327
#, javascript-format
msgid "%s Hotspot Active"
msgstr "%s pristupna točka aktivna"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:1331
#: js/ui/status/network.js:1342
#, javascript-format
msgid "%s Not Connected"
msgstr "%s nije povezana"
#: js/ui/status/network.js:1435
#: js/ui/status/network.js:1446
msgid "connecting…"
msgstr "povezivanje…"
#. Translators: this is for network connections that require some kind of key or password
#: js/ui/status/network.js:1438
#: js/ui/status/network.js:1449
msgid "authentication required"
msgstr "potrebna je ovjera"
#: js/ui/status/network.js:1440
#: js/ui/status/network.js:1451
msgid "connection failed"
msgstr "neuspješno povezivanje"
#: js/ui/status/network.js:1494
msgid "VPN Settings"
msgstr "VPN postavke"
#: js/ui/status/network.js:1498
msgid "VPN"
msgstr "VPN"
#: js/ui/status/network.js:1508
msgid "VPN Off"
msgstr "VPN isključen"
#: js/ui/status/network.js:1572 js/ui/status/rfkill.js:93
#: js/ui/status/network.js:1517 js/ui/status/network.js:1612
#: js/ui/status/rfkill.js:93
msgid "Network Settings"
msgstr "Mrežne postavke"
#: js/ui/status/network.js:1603
#: js/ui/status/network.js:1519
msgid "VPN Settings"
msgstr "VPN postavke"
#: js/ui/status/network.js:1538
msgid "VPN"
msgstr "VPN"
#: js/ui/status/network.js:1548
msgid "VPN Off"
msgstr "VPN isključen"
#: js/ui/status/network.js:1643
#, javascript-format
msgid "%s Wired Connection"
msgid_plural "%s Wired Connections"
@@ -1797,7 +1714,7 @@ msgstr[0] "%s žično povezivanje"
msgstr[1] "%s žična povezivanja"
msgstr[2] "%s žičnih povezivanja"
#: js/ui/status/network.js:1607
#: js/ui/status/network.js:1647
#, javascript-format
msgid "%s Wi-Fi Connection"
msgid_plural "%s Wi-Fi Connections"
@@ -1805,7 +1722,7 @@ msgstr[0] "%s bežično povezivanje"
msgstr[1] "%s bežična povezivanja"
msgstr[2] "%s bežičnih povezivanja"
#: js/ui/status/network.js:1611
#: js/ui/status/network.js:1651
#, javascript-format
msgid "%s Modem Connection"
msgid_plural "%s Modem Connections"
@@ -1813,11 +1730,11 @@ msgstr[0] "%s modemsko povezivanje"
msgstr[1] "%s modemska povezivanja"
msgstr[2] "%s modemskih povezivanja"
#: js/ui/status/network.js:1759
#: js/ui/status/network.js:1799
msgid "Connection failed"
msgstr "Neuspješno povezivanje"
#: js/ui/status/network.js:1760
#: js/ui/status/network.js:1800
msgid "Activation of network connection failed"
msgstr "Aktiviranje mrežnog povezivanja je neuspjelo"
@@ -1849,7 +1766,7 @@ msgstr "Potpuno napunjeno"
#. to estimate battery life
#: js/ui/status/power.js:84 js/ui/status/power.js:90
msgid "Estimating…"
msgstr "Procjenjivanje"
msgstr "Procjenjivanje..."
#. Translators: this is <hours>:<minutes> Remaining (<percentage>)
#: js/ui/status/power.js:98
@@ -1875,27 +1792,27 @@ msgstr "%d%%"
msgid "Airplane Mode On"
msgstr "Zrakoplovni način rada uključen"
#: js/ui/status/system.js:228
#: js/ui/status/system.js:384
msgid "Switch User"
msgstr "Zamijeni korisnika"
#: js/ui/status/system.js:240
#: js/ui/status/system.js:389
msgid "Log Out"
msgstr "Odjava"
#: js/ui/status/system.js:252
#: js/ui/status/system.js:394
msgid "Account Settings"
msgstr "Postavke računa"
#: js/ui/status/system.js:269
#: js/ui/status/system.js:411
msgid "Orientation Lock"
msgstr "Zaključavanje orjentacije"
#: js/ui/status/system.js:295
#: js/ui/status/system.js:419
msgid "Suspend"
msgstr "Suspendiraj"
#: js/ui/status/system.js:305
#: js/ui/status/system.js:422
msgid "Power Off"
msgstr "Isključivanje"
@@ -1907,34 +1824,6 @@ msgstr "Glasnoća zvuka promijenjena"
msgid "Volume"
msgstr "Glasnoća zvuka"
#. Translators: this is for display mirroring i.e. cloning.
#. * Try to keep it under around 15 characters.
#.
#: js/ui/switchMonitor.js:21
msgid "Mirror"
msgstr "Zrcaljenje"
#. Translators: this is for the desktop spanning displays.
#. * Try to keep it under around 15 characters.
#.
#: js/ui/switchMonitor.js:26
msgid "Join Displays"
msgstr "Spoji zaslone"
#. Translators: this is for using only an external display.
#. * Try to keep it under around 15 characters.
#.
#: js/ui/switchMonitor.js:31
msgid "External Only"
msgstr "Samo vanjski"
#. Translators: this is for using only the laptop display.
#. * Try to keep it under around 15 characters.
#.
#: js/ui/switchMonitor.js:36
msgid "Built-in Only"
msgstr "Samo ugrađeni"
#: js/ui/unlockDialog.js:67
msgid "Log in as another user"
msgstr "Prijavi se kao drugi korisnik"
@@ -1943,11 +1832,11 @@ msgstr "Prijavi se kao drugi korisnik"
msgid "Unlock Window"
msgstr "Otključaj prozor"
#: js/ui/viewSelector.js:190
#: js/ui/viewSelector.js:183
msgid "Applications"
msgstr "Aplikacije"
#: js/ui/viewSelector.js:194
#: js/ui/viewSelector.js:187
msgid "Search"
msgstr "Pretraži"
@@ -1956,22 +1845,22 @@ msgstr "Pretraži"
msgid "“%s” is ready"
msgstr "“%s” je spreman"
#: js/ui/windowManager.js:72
#: js/ui/windowManager.js:71
msgid "Do you want to keep these display settings?"
msgstr "Želite li zadržati ove postavke zaslona?"
#. Translators: this and the following message should be limited in lenght,
#. to avoid ellipsizing the labels.
#.
#: js/ui/windowManager.js:84
#: js/ui/windowManager.js:83
msgid "Revert Settings"
msgstr "Vrati postavke"
#: js/ui/windowManager.js:87
#: js/ui/windowManager.js:86
msgid "Keep Changes"
msgstr "Zadrži promjene"
#: js/ui/windowManager.js:105
#: js/ui/windowManager.js:104
#, javascript-format
msgid "Settings changes will revert in %d second"
msgid_plural "Settings changes will revert in %d seconds"
@@ -1981,7 +1870,7 @@ msgstr[2] "Promjene postavka će se vratiti za %d sekundi"
#. 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:660
#: js/ui/windowManager.js:659
#, javascript-format
msgid "%d × %d"
msgstr "%d × %d"
@@ -2059,19 +1948,19 @@ msgstr "Evolution kalendar"
msgid "evolution"
msgstr "evolution"
#: src/main.c:380
#: src/main.c:372
msgid "Print version"
msgstr "Ispiši inačicu"
#: src/main.c:386
#: src/main.c:378
msgid "Mode used by GDM for login screen"
msgstr "Način koji koristi GDM za zaslon prijave"
#: src/main.c:392
#: src/main.c:384
msgid "Use a specific mode, e.g. “gdm” for login screen"
msgstr "Koristi određen način, npr. \"gdm\" za zaslon prijave"
#: src/main.c:398
#: src/main.c:390
msgid "List possible modes"
msgstr "Popis mogućih načina"
@@ -2121,12 +2010,6 @@ msgstr[2] "%u ulaza"
msgid "System Sounds"
msgstr "Zvukovi sustava"
#~ msgid "Hide tray"
#~ msgstr "Sakrij traku stanja"
#~ msgid "Status Icons"
#~ msgstr "Ikona stanja"
#~ msgid "GNOME Shell Extension Preferences"
#~ msgstr "Osobitosti proširenja GNOME ljuske"

565
po/hu.po

File diff suppressed because it is too large Load Diff

413
po/id.po
View File

@@ -2,7 +2,7 @@
# Copyright (C) 2010 THE gnome-shell'S COPYRIGHT HOLDER
# This file is distributed under the same license as the gnome-shell package.
#
# Andika Triwidada <andika@gmail.com>, 2010-2014, 2017.
# Andika Triwidada <andika@gmail.com>, 2010, 2011, 2012, 2013, 2014.
# Dirgita <dirgitadevina@yahoo.co.id>, 2011, 2012, 2014.
# Wibiharto <wibinem@yahoo.com>, 2011.
msgid ""
@@ -10,16 +10,16 @@ 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-08-22 11:17+0000\n"
"PO-Revision-Date: 2017-08-23 00:03+0700\n"
"Last-Translator: Andika Triwidada <andika@gmail.com>\n"
"POT-Creation-Date: 2017-07-16 17:31+0000\n"
"PO-Revision-Date: 2017-07-17 10:54+0700\n"
"Last-Translator: Kukuh Syafaat <syafaatkukuh@gmail.com>\n"
"Language-Team: Indonesian <gnome-l10n-id@googlegroups.com>\n"
"Language: id\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Poedit 2.0.3\n"
"X-Generator: Poedit 2.0.2\n"
"X-DamnedLies-Scope: partial\n"
"X-Poedit-SourceCharset: UTF-8\n"
@@ -342,8 +342,8 @@ msgstr "Ada galat saat memuat dialog preferensi bagi %s:"
#: js/gdm/authPrompt.js:149 js/ui/audioDeviceSelection.js:71
#: js/ui/components/networkAgent.js:117 js/ui/components/polkitAgent.js:148
#: js/ui/endSessionDialog.js:482 js/ui/extensionDownloader.js:197
#: js/ui/shellMountOperation.js:344 js/ui/status/network.js:936
#: js/ui/endSessionDialog.js:482 js/ui/extensionDownloader.js:195
#: js/ui/shellMountOperation.js:344 js/ui/status/network.js:947
msgid "Cancel"
msgstr "Batal"
@@ -404,72 +404,6 @@ msgstr "Galat otentikasi"
msgid "(or swipe finger)"
msgstr "(atau gesekkan jari)"
#. Translators: The name of the power-off action in search
#: js/misc/systemActions.js:99
msgctxt "search-result"
msgid "Power off"
msgstr "Matikan"
#. Translators: A list of keywords that match the power-off action, separated by semicolons
#: js/misc/systemActions.js:102
msgid "power off;shutdown"
msgstr "matikan"
#. Translators: The name of the lock screen action in search
#: js/misc/systemActions.js:106
msgctxt "search-result"
msgid "Lock screen"
msgstr "Kunci layar"
#. Translators: A list of keywords that match the lock screen action, separated by semicolons
#: js/misc/systemActions.js:109
msgid "lock screen"
msgstr "kunci layar"
#. Translators: The name of the logout action in search
#: js/misc/systemActions.js:113
msgctxt "search-result"
msgid "Log out"
msgstr "Keluar"
#. Translators: A list of keywords that match the logout action, separated by semicolons
#: js/misc/systemActions.js:116
msgid "logout;sign off"
msgstr "keluar"
#. Translators: The name of the suspend action in search
#: js/misc/systemActions.js:120
msgctxt "search-result"
msgid "Suspend"
msgstr "Suspensi"
#. Translators: A list of keywords that match the suspend action, separated by semicolons
#: js/misc/systemActions.js:123
msgid "suspend;sleep"
msgstr "suspensi;tidur"
#. Translators: The name of the switch user action in search
#: js/misc/systemActions.js:127
msgctxt "search-result"
msgid "Switch user"
msgstr "Ganti pengguna"
#. Translators: A list of keywords that match the switch user action, separated by semicolons
#: js/misc/systemActions.js:130
msgid "switch user"
msgstr "ganti pengguna"
#. Translators: The name of the lock orientation action in search
#: js/misc/systemActions.js:134
msgctxt "search-result"
msgid "Lock orientation"
msgstr "Kunci orientasi"
#. Translators: A list of keywords that match the lock orientation action, separated by semicolons
#: js/misc/systemActions.js:137
msgid "lock orientation"
msgstr "kunci orientasi"
#: js/misc/util.js:122
msgid "Command not found"
msgstr "Perintah tidak ditemukan"
@@ -623,35 +557,35 @@ msgstr "Tolak Akses"
msgid "Grant Access"
msgstr "Beri Akses"
#: js/ui/appDisplay.js:809
#: js/ui/appDisplay.js:813
msgid "Frequently used applications will appear here"
msgstr "Aplikasi yang sering dipakai akan muncul di sini"
#: js/ui/appDisplay.js:930
#: js/ui/appDisplay.js:934
msgid "Frequent"
msgstr "Sering"
#: js/ui/appDisplay.js:937
#: js/ui/appDisplay.js:941
msgid "All"
msgstr "Semua"
#: js/ui/appDisplay.js:1915
#: js/ui/appDisplay.js:1902
msgid "New Window"
msgstr "Jendela Baru"
#: js/ui/appDisplay.js:1929
#: js/ui/appDisplay.js:1916
msgid "Launch using Dedicated Graphics Card"
msgstr "Luncurkan menggunakan Kartu Grafis Terdedikasi"
#: js/ui/appDisplay.js:1956 js/ui/dash.js:289
#: js/ui/appDisplay.js:1943 js/ui/dash.js:289
msgid "Remove from Favorites"
msgstr "Hapus dari Favorit"
#: js/ui/appDisplay.js:1962
#: js/ui/appDisplay.js:1949
msgid "Add to Favorites"
msgstr "Tambah ke Favorit"
#: js/ui/appDisplay.js:1972
#: js/ui/appDisplay.js:1959
msgid "Show Details"
msgstr "Tampilkan Rincian"
@@ -693,7 +627,7 @@ msgstr "Ubah Latar…"
msgid "Display Settings"
msgstr "Pengaturan Tampilan"
#: js/ui/backgroundMenu.js:22 js/ui/status/system.js:265
#: js/ui/backgroundMenu.js:22 js/ui/status/system.js:407
msgid "Settings"
msgstr "Pengaturan"
@@ -827,7 +761,7 @@ msgstr "Drive eksternal tersambung"
msgid "External drive disconnected"
msgstr "Drive eksternal terputus"
#: js/ui/components/autorunManager.js:354
#: js/ui/components/autorunManager.js:355
#, javascript-format
msgid "Open with %s"
msgstr "Buka dengan %s"
@@ -840,8 +774,8 @@ msgstr "Sandi:"
msgid "Type again:"
msgstr "Ketik lagi:"
#: js/ui/components/networkAgent.js:112 js/ui/status/network.js:261
#: js/ui/status/network.js:355 js/ui/status/network.js:939
#: js/ui/components/networkAgent.js:112 js/ui/status/network.js:272
#: js/ui/status/network.js:366 js/ui/status/network.js:950
msgid "Connect"
msgstr "Sambung"
@@ -916,7 +850,7 @@ msgstr "Sandi jaringan data seluler"
msgid "A password is required to connect to “%s”."
msgstr "Perlu suatu sandi untuk menyambung ke \"%s\"."
#: js/ui/components/networkAgent.js:627 js/ui/status/network.js:1720
#: js/ui/components/networkAgent.js:627 js/ui/status/network.js:1760
msgid "Network Manager"
msgstr "Manajer Jaringan"
@@ -947,7 +881,7 @@ msgstr "Maaf, tidak berhasil. Silakan coba lagi."
msgid "%s is now known as %s"
msgstr "%s sekarang dikenal sebagai %s"
#: js/ui/ctrlAltTab.js:29 js/ui/viewSelector.js:186
#: js/ui/ctrlAltTab.js:29 js/ui/viewSelector.js:179
msgid "Windows"
msgstr "Jendela"
@@ -992,7 +926,7 @@ msgstr "Cuaca"
#. 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:286
#: js/ui/dateMenu.js:281
#, javascript-format
msgid "%s all day."
msgstr "%s sepanjang hari."
@@ -1001,7 +935,7 @@ msgstr "%s sepanjang hari."
#. 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:292
#: js/ui/dateMenu.js:287
#, javascript-format
msgid "%s, then %s later."
msgstr "%s, kemudian %s."
@@ -1010,30 +944,30 @@ msgstr "%s, kemudian %s."
#. 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:298
#: js/ui/dateMenu.js:293
#, javascript-format
msgid "%s, then %s, followed by %s later."
msgstr "%s, kemudian %s, diikuti dengan %s nanti."
#: js/ui/dateMenu.js:309
#: js/ui/dateMenu.js:300
msgid "Select a location…"
msgstr "Pilih lokasi…"
#: js/ui/dateMenu.js:312
#: js/ui/dateMenu.js:303
msgid "Loading…"
msgstr "Memuat…"
#. Translators: %s is a temperature with unit, e.g. "23℃"
#: js/ui/dateMenu.js:318
#: js/ui/dateMenu.js:309
#, javascript-format
msgid "Feels like %s."
msgstr "Terasa seperti %s."
#: js/ui/dateMenu.js:321
#: js/ui/dateMenu.js:312
msgid "Go online for weather information"
msgstr "Pergi daring untuk informasi cuaca"
#: js/ui/dateMenu.js:323
#: js/ui/dateMenu.js:314
msgid "Weather information is currently unavailable"
msgstr "Informasi cuaca saat ini tidak tersedia"
@@ -1179,43 +1113,28 @@ msgstr "%s (jarak jauh)"
msgid "%s (console)"
msgstr "%s (konsol)"
#: js/ui/extensionDownloader.js:201
#: js/ui/extensionDownloader.js:199
msgid "Install"
msgstr "Pasang"
#: js/ui/extensionDownloader.js:206
#: js/ui/extensionDownloader.js:204
#, javascript-format
msgid "Download and install “%s” from extensions.gnome.org?"
msgstr "Unduh dan pasang \"%s\" dari extensions.gnome.org?"
#. Translators: %s is an application name like "Settings"
#: js/ui/inhibitShortcutsDialog.js:59
#, javascript-format
msgid "%s wants to inhibit shortcuts"
msgstr "%s ingin mencegah pintasan"
#: js/ui/inhibitShortcutsDialog.js:60
msgid "Application wants to inhibit shortcuts"
msgstr "Aplikasi ingin mencegah pintasan"
#. Translators: %s is a keyboard shortcut like "Super+x"
#: js/ui/inhibitShortcutsDialog.js:69
#, javascript-format
msgid "You can restore shortcuts by pressing %s."
msgstr "Anda dapat memulihkan pintasan dengan menekan %s."
#: js/ui/inhibitShortcutsDialog.js:74
msgid "Deny"
msgstr "Tolak"
#: js/ui/inhibitShortcutsDialog.js:80
msgid "Allow"
msgstr "Izinkan"
#: js/ui/keyboard.js:738 js/ui/status/keyboard.js:782
#: js/ui/keyboard.js:740 js/ui/status/keyboard.js:782
msgid "Keyboard"
msgstr "Papan Ketik"
#. translators: 'Hide' is a verb
#: js/ui/legacyTray.js:65
msgid "Hide tray"
msgstr "Sembunyikan baki"
#: js/ui/legacyTray.js:106
msgid "Status Icons"
msgstr "Ikon Status"
#: js/ui/lookingGlass.js:642
msgid "No extensions installed"
msgstr "Tak ada ekstensi terpasang"
@@ -1240,7 +1159,7 @@ msgstr "Diaktifkan"
#. translators:
#. * The device has been disabled
#: js/ui/lookingGlass.js:718 subprojects/gvc/gvc-mixer-control.c:1866
#: js/ui/lookingGlass.js:718 src/gvc/gvc-mixer-control.c:1866
msgid "Disabled"
msgstr "Dinonaktifkan"
@@ -1314,27 +1233,27 @@ msgstr "Ganti monitor"
msgid "Assign keystroke"
msgstr "Tetapkan keystroke"
#: js/ui/padOsd.js:220
#: js/ui/padOsd.js:209
msgid "Done"
msgstr "Selesai"
#: js/ui/padOsd.js:734
#: js/ui/padOsd.js:708
msgid "Edit…"
msgstr "Sunting…"
#: js/ui/padOsd.js:774 js/ui/padOsd.js:879
#: js/ui/padOsd.js:748 js/ui/padOsd.js:810
msgid "None"
msgstr "Nihil"
#: js/ui/padOsd.js:833
#: js/ui/padOsd.js:793
msgid "Press a button to configure"
msgstr "Tekan tombol untuk mengkonfigurasi"
#: js/ui/padOsd.js:834
#: js/ui/padOsd.js:794
msgid "Press Esc to exit"
msgstr "Tekan Esc untuk keluar"
#: js/ui/padOsd.js:837
#: js/ui/padOsd.js:797
msgid "Press any key to exit"
msgstr "Tekan tombol apa saja untuk keluar"
@@ -1401,7 +1320,7 @@ msgid "%d new notification"
msgid_plural "%d new notifications"
msgstr[0] "%d pemberitahuan baru"
#: js/ui/screenShield.js:452 js/ui/status/system.js:284
#: js/ui/screenShield.js:452 js/ui/status/system.js:415
msgid "Lock"
msgstr "Kunci"
@@ -1432,11 +1351,10 @@ msgstr "Mencari…"
msgid "No results."
msgstr "Tak ada yang cocok."
#: js/ui/search.js:777
#: js/ui/search.js:768
#, javascript-format
msgid "%d more"
msgid_plural "%d more"
msgstr[0] "%d lagi"
msgstr "%d lagi"
#: js/ui/shellEntry.js:25
msgid "Copy"
@@ -1510,7 +1428,7 @@ msgstr "Teks Besar"
msgid "Bluetooth"
msgstr "Bluetooth"
#: js/ui/status/bluetooth.js:56 js/ui/status/network.js:627
#: js/ui/status/bluetooth.js:56 js/ui/status/network.js:638
msgid "Bluetooth Settings"
msgstr "Pengaturan Bluetooth"
@@ -1529,13 +1447,13 @@ msgstr "Mati"
msgid "On"
msgstr "Hidup"
#: js/ui/status/bluetooth.js:142 js/ui/status/network.js:1299
#: js/ui/status/bluetooth.js:142 js/ui/status/network.js:1310
msgid "Turn On"
msgstr "Nyalakan"
#: js/ui/status/bluetooth.js:142 js/ui/status/network.js:170
#: js/ui/status/network.js:356 js/ui/status/network.js:1299
#: js/ui/status/network.js:1418 js/ui/status/nightLight.js:47
#: 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/rfkill.js:90 js/ui/status/rfkill.js:117
msgid "Turn Off"
msgstr "Matikan"
@@ -1587,13 +1505,13 @@ msgid "<unknown>"
msgstr "<tak dikenal>"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:454 js/ui/status/network.js:1328
#: js/ui/status/network.js:465 js/ui/status/network.js:1339
#, javascript-format
msgid "%s Off"
msgstr "%s Mati"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:457
#: js/ui/status/network.js:468
#, javascript-format
msgid "%s Connected"
msgstr "%s Tersambung"
@@ -1601,186 +1519,187 @@ msgstr "%s Tersambung"
#. Translators: this is for network devices that are physically present but are not
#. under NetworkManager's control (and thus cannot be used in the menu);
#. %s is a network identifier
#: js/ui/status/network.js:462
#: js/ui/status/network.js:473
#, javascript-format
msgid "%s Unmanaged"
msgstr "%s Tak Dikelola"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:465
#: js/ui/status/network.js:476
#, javascript-format
msgid "%s Disconnecting"
msgstr "%s Memutus"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:472 js/ui/status/network.js:1320
#: js/ui/status/network.js:483 js/ui/status/network.js:1331
#, javascript-format
msgid "%s Connecting"
msgstr "%s Menyambung"
#. Translators: this is for network connections that require some kind of key or password; %s is a network identifier
#: js/ui/status/network.js:475
#: js/ui/status/network.js:486
#, javascript-format
msgid "%s Requires Authentication"
msgstr "%s Memerlukan Otentikasi"
#. Translators: this is for devices that require some kind of firmware or kernel
#. module, which is missing; %s is a network identifier
#: js/ui/status/network.js:483
#: js/ui/status/network.js:494
#, javascript-format
msgid "Firmware Missing For %s"
msgstr "Firmware Hilang Untuk %s"
#. Translators: this is for a network device that cannot be activated (for example it
#. is disabled by rfkill, or it has no coverage; %s is a network identifier
#: js/ui/status/network.js:487
#: js/ui/status/network.js:498
#, javascript-format
msgid "%s Unavailable"
msgstr "%s Tak tersedia"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:490
#: js/ui/status/network.js:501
#, javascript-format
msgid "%s Connection Failed"
msgstr "Koneksi %s Gagal"
#: js/ui/status/network.js:506
#: js/ui/status/network.js:517
msgid "Wired Settings"
msgstr "Pengaturan Kabel"
#: js/ui/status/network.js:548
#: js/ui/status/network.js:559
msgid "Mobile Broadband Settings"
msgstr "Pengaturan Data Seluler"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:591 js/ui/status/network.js:1325
#: js/ui/status/network.js:602 js/ui/status/network.js:1336
#, javascript-format
msgid "%s Hardware Disabled"
msgstr "%s Perangkat Keras Dinonaktifkan"
#. Translators: this is for a network device that cannot be activated
#. because it's disabled by rfkill (airplane mode); %s is a network identifier
#: js/ui/status/network.js:595
#: js/ui/status/network.js:606
#, javascript-format
msgid "%s Disabled"
msgstr "%s Dinonaktifkan"
#: js/ui/status/network.js:635
#: js/ui/status/network.js:646
msgid "Connect to Internet"
msgstr "Sambungkan ke Internet"
#: js/ui/status/network.js:833
#: js/ui/status/network.js:844
msgid "Airplane Mode is On"
msgstr "Mode Pesawat Terbang Menyala"
#: js/ui/status/network.js:834
#: js/ui/status/network.js:845
msgid "Wi-Fi is disabled when airplane mode is on."
msgstr "Wi-Fi dinonaktifkan ketika mode pesawat terbang menyala."
#: js/ui/status/network.js:835
#: js/ui/status/network.js:846
msgid "Turn Off Airplane Mode"
msgstr "Matikan Mode Pesawat Terbang"
#: js/ui/status/network.js:844
#: js/ui/status/network.js:855
msgid "Wi-Fi is Off"
msgstr "Wi-Fi Mati"
#: js/ui/status/network.js:845
#: js/ui/status/network.js:856
msgid "Wi-Fi needs to be turned on in order to connect to a network."
msgstr "Wi-Fi perlu dinyalakan untuk menyambung ke suatu jaringan."
#: js/ui/status/network.js:846
#: js/ui/status/network.js:857
msgid "Turn On Wi-Fi"
msgstr "Nyalakan Wi-Fi"
#: js/ui/status/network.js:871
#: js/ui/status/network.js:882
msgid "Wi-Fi Networks"
msgstr "Jaringan Wi-Fi"
#: js/ui/status/network.js:873
#: js/ui/status/network.js:884
msgid "Select a network"
msgstr "Pilih jaringan"
#: js/ui/status/network.js:903
#: js/ui/status/network.js:914
msgid "No Networks"
msgstr "Tiada Jaringan"
#: js/ui/status/network.js:924 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 "Pakai saklar perangkat keras untuk mematikan"
#: js/ui/status/network.js:1191
#: js/ui/status/network.js:1202
msgid "Select Network"
msgstr "Pilih Jaringan"
#: js/ui/status/network.js:1197
#: js/ui/status/network.js:1208
msgid "Wi-Fi Settings"
msgstr "Pengaturan Wi-Fi"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:1316
#: js/ui/status/network.js:1327
#, javascript-format
msgid "%s Hotspot Active"
msgstr "%s Hotspot Aktif"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:1331
#: js/ui/status/network.js:1342
#, javascript-format
msgid "%s Not Connected"
msgstr "%s Tak Tersambung"
#: js/ui/status/network.js:1435
#: js/ui/status/network.js:1446
msgid "connecting…"
msgstr "menghubungi..."
#. Translators: this is for network connections that require some kind of key or password
#: js/ui/status/network.js:1438
#: js/ui/status/network.js:1449
msgid "authentication required"
msgstr "diperlukan otentikasi"
#: js/ui/status/network.js:1440
#: js/ui/status/network.js:1451
msgid "connection failed"
msgstr "koneksi gagal"
#: js/ui/status/network.js:1494
msgid "VPN Settings"
msgstr "Pengaturan VPN"
#: js/ui/status/network.js:1498
msgid "VPN"
msgstr "VPN"
#: js/ui/status/network.js:1508
msgid "VPN Off"
msgstr "VPN Mati"
#: js/ui/status/network.js:1572 js/ui/status/rfkill.js:93
#: js/ui/status/network.js:1517 js/ui/status/network.js:1612
#: js/ui/status/rfkill.js:93
msgid "Network Settings"
msgstr "Pengaturan Jaringan"
#: js/ui/status/network.js:1603
#: js/ui/status/network.js:1519
msgid "VPN Settings"
msgstr "Pengaturan VPN"
#: js/ui/status/network.js:1538
msgid "VPN"
msgstr "VPN"
#: js/ui/status/network.js:1548
msgid "VPN Off"
msgstr "VPN Mati"
#: js/ui/status/network.js:1643
#, javascript-format
msgid "%s Wired Connection"
msgid_plural "%s Wired Connections"
msgstr[0] "%s Koneksi Kabel"
#: js/ui/status/network.js:1607
#: js/ui/status/network.js:1647
#, javascript-format
msgid "%s Wi-Fi Connection"
msgid_plural "%s Wi-Fi Connections"
msgstr[0] "%s Koneksi Wi-Fi"
#: js/ui/status/network.js:1611
#: js/ui/status/network.js:1651
#, javascript-format
msgid "%s Modem Connection"
msgid_plural "%s Modem Connections"
msgstr[0] "%s Koneksi Modem"
#: js/ui/status/network.js:1759
#: js/ui/status/network.js:1799
msgid "Connection failed"
msgstr "Koneksi gagal"
#: js/ui/status/network.js:1760
#: js/ui/status/network.js:1800
msgid "Activation of network connection failed"
msgstr "Aktivasi koneksi jaringan gagal"
@@ -1838,27 +1757,27 @@ msgstr "%d%%"
msgid "Airplane Mode On"
msgstr "Mode Pesawat Terbang Aktif"
#: js/ui/status/system.js:228
#: js/ui/status/system.js:384
msgid "Switch User"
msgstr "Ganti Pengguna"
#: js/ui/status/system.js:240
#: js/ui/status/system.js:389
msgid "Log Out"
msgstr "Keluar"
#: js/ui/status/system.js:252
#: js/ui/status/system.js:394
msgid "Account Settings"
msgstr "Pengaturan Akun"
#: js/ui/status/system.js:269
#: js/ui/status/system.js:411
msgid "Orientation Lock"
msgstr "Kunci Orientasi"
#: js/ui/status/system.js:295
#: js/ui/status/system.js:419
msgid "Suspend"
msgstr "Suspensi"
#: js/ui/status/system.js:305
#: js/ui/status/system.js:422
msgid "Power Off"
msgstr "Matikan"
@@ -1870,34 +1789,6 @@ msgstr "Volume diubah"
msgid "Volume"
msgstr "Volume"
#. Translators: this is for display mirroring i.e. cloning.
#. * Try to keep it under around 15 characters.
#.
#: js/ui/switchMonitor.js:21
msgid "Mirror"
msgstr "Kembar"
#. Translators: this is for the desktop spanning displays.
#. * Try to keep it under around 15 characters.
#.
#: js/ui/switchMonitor.js:26
msgid "Join Displays"
msgstr "Gabung Layar"
#. Translators: this is for using only an external display.
#. * Try to keep it under around 15 characters.
#.
#: js/ui/switchMonitor.js:31
msgid "External Only"
msgstr "Hanya Eksternal"
#. Translators: this is for using only the laptop display.
#. * Try to keep it under around 15 characters.
#.
#: js/ui/switchMonitor.js:36
msgid "Built-in Only"
msgstr "Hanya Bawaan"
#: js/ui/unlockDialog.js:67
msgid "Log in as another user"
msgstr "Masuk sebagai pengguna lain"
@@ -1906,11 +1797,11 @@ msgstr "Masuk sebagai pengguna lain"
msgid "Unlock Window"
msgstr "Buka Kunci Jendela"
#: js/ui/viewSelector.js:190
#: js/ui/viewSelector.js:183
msgid "Applications"
msgstr "Aplikasi"
#: js/ui/viewSelector.js:194
#: js/ui/viewSelector.js:187
msgid "Search"
msgstr "Cari"
@@ -1919,22 +1810,22 @@ msgstr "Cari"
msgid "“%s” is ready"
msgstr "'%s' siap"
#: js/ui/windowManager.js:72
#: js/ui/windowManager.js:71
msgid "Do you want to keep these display settings?"
msgstr "Apakah Anda ingin mempertahankan pengaturan tampilan ini?"
#. Translators: this and the following message should be limited in lenght,
#. to avoid ellipsizing the labels.
#.
#: js/ui/windowManager.js:84
#: js/ui/windowManager.js:83
msgid "Revert Settings"
msgstr "Balikkan Tatanan"
#: js/ui/windowManager.js:87
#: js/ui/windowManager.js:86
msgid "Keep Changes"
msgstr "Simpan Perubahan"
#: js/ui/windowManager.js:105
#: js/ui/windowManager.js:104
#, javascript-format
msgid "Settings changes will revert in %d second"
msgid_plural "Settings changes will revert in %d seconds"
@@ -1942,7 +1833,7 @@ msgstr[0] "Perubahan tatanan akan dikembalikan dalam %d detik"
#. 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:660
#: js/ui/windowManager.js:659
#, javascript-format
msgid "%d × %d"
msgstr "%d × %d"
@@ -2020,19 +1911,39 @@ msgstr "Evolution Kalender"
msgid "evolution"
msgstr "evolution"
#: src/main.c:380
#. translators:
#. * The number of sound outputs on a particular device
#: src/gvc/gvc-mixer-control.c:1873
#, c-format
msgid "%u Output"
msgid_plural "%u Outputs"
msgstr[0] "%u Keluaran"
#. translators:
#. * The number of sound inputs on a particular device
#: src/gvc/gvc-mixer-control.c:1883
#, c-format
msgid "%u Input"
msgid_plural "%u Inputs"
msgstr[0] "%u Masukan"
#: src/gvc/gvc-mixer-control.c:2738
msgid "System Sounds"
msgstr "Suara Sistem"
#: src/main.c:372
msgid "Print version"
msgstr "Versi Cetak"
#: src/main.c:386
#: src/main.c:378
msgid "Mode used by GDM for login screen"
msgstr "Mode yang dipakai oleh layar log masuk GDM"
#: src/main.c:392
#: src/main.c:384
msgid "Use a specific mode, e.g. “gdm” for login screen"
msgstr "Menggunakan mode tertentu, mis. \"gdm\" untuk layar masuk"
#: src/main.c:398
#: src/main.c:390
msgid "List possible modes"
msgstr "Menampilkan mode yang mungkin"
@@ -2058,22 +1969,26 @@ msgstr "Sandi tidak boleh kosong"
msgid "Authentication dialog was dismissed by the user"
msgstr "Dialog otentikasi ditolak oleh pengguna"
#. translators:
#. * The number of sound outputs on a particular device
#: subprojects/gvc/gvc-mixer-control.c:1873
#, c-format
msgid "%u Output"
msgid_plural "%u Outputs"
msgstr[0] "%u Keluaran"
#~ msgid "Events"
#~ msgstr "Kejadian"
#. translators:
#. * The number of sound inputs on a particular device
#: subprojects/gvc/gvc-mixer-control.c:1883
#, c-format
msgid "%u Input"
msgid_plural "%u Inputs"
msgstr[0] "%u Masukan"
#~ msgid "Notifications"
#~ msgstr "Pemberitahuan"
#: subprojects/gvc/gvc-mixer-control.c:2738
msgid "System Sounds"
msgstr "Suara Sistem"
#~ msgid "Clear section"
#~ msgstr "Bersihkan seksi"
#~ msgid "Media"
#~ msgstr "Media"
#~ msgid "GNOME Shell Extension Preferences"
#~ msgstr "Preferensi Ekstensi GNOME Shell"
#~ msgid "Web Authentication Redirect"
#~ msgstr "Pengalihan Otentikasi Web"
#~ msgid "%d x %d"
#~ msgstr "%d x %d"
#~ msgid "Not In Use"
#~ msgstr "Tidak Dipakai"

1021
po/is.po

File diff suppressed because it is too large Load Diff

638
po/it.po

File diff suppressed because it is too large Load Diff

731
po/ja.po

File diff suppressed because it is too large Load Diff

333
po/kk.po
View File

@@ -8,8 +8,8 @@ msgstr ""
"Project-Id-Version: 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-08-22 11:17+0000\n"
"PO-Revision-Date: 2017-08-22 19:22+0500\n"
"POT-Creation-Date: 2017-07-20 03:49+0000\n"
"PO-Revision-Date: 2017-07-27 17:09+0500\n"
"Last-Translator: Baurzhan Muftakhidinov <baurthefirst@gmail.com>\n"
"Language-Team: Kazakh <kk_KZ@googlegroups.com>\n"
"Language: kk\n"
@@ -339,7 +339,7 @@ msgstr "%s үшін баптаулар сұхбатын жүктеу кезін
#: js/gdm/authPrompt.js:149 js/ui/audioDeviceSelection.js:71
#: js/ui/components/networkAgent.js:117 js/ui/components/polkitAgent.js:148
#: js/ui/endSessionDialog.js:482 js/ui/extensionDownloader.js:197
#: js/ui/shellMountOperation.js:344 js/ui/status/network.js:936
#: js/ui/shellMountOperation.js:344 js/ui/status/network.js:947
msgid "Cancel"
msgstr "Бас тарту"
@@ -400,72 +400,6 @@ msgstr "Аутентификация қатесі"
msgid "(or swipe finger)"
msgstr "(немесе саусағыңызды өткізіңіз)"
#. Translators: The name of the power-off action in search
#: js/misc/systemActions.js:99
msgctxt "search-result"
msgid "Power off"
msgstr "Сөндіру"
#. Translators: A list of keywords that match the power-off action, separated by semicolons
#: js/misc/systemActions.js:102
msgid "power off;shutdown"
msgstr "сөндіру"
#. Translators: The name of the lock screen action in search
#: js/misc/systemActions.js:106
msgctxt "search-result"
msgid "Lock screen"
msgstr "Экранды блоктау"
#. Translators: A list of keywords that match the lock screen action, separated by semicolons
#: js/misc/systemActions.js:109
msgid "lock screen"
msgstr "экранды блоктау"
#. Translators: The name of the logout action in search
#: js/misc/systemActions.js:113
msgctxt "search-result"
msgid "Log out"
msgstr "Жүйеден шығу"
#. Translators: A list of keywords that match the logout action, separated by semicolons
#: js/misc/systemActions.js:116
msgid "logout;sign off"
msgstr "жүйеден шығу"
#. Translators: The name of the suspend action in search
#: js/misc/systemActions.js:120
msgctxt "search-result"
msgid "Suspend"
msgstr "Ұйықтату"
#. Translators: A list of keywords that match the suspend action, separated by semicolons
#: js/misc/systemActions.js:123
msgid "suspend;sleep"
msgstr "ұйықтату"
#. Translators: The name of the switch user action in search
#: js/misc/systemActions.js:127
msgctxt "search-result"
msgid "Switch user"
msgstr "Пайдаланушыны ауыстыру"
#. Translators: A list of keywords that match the switch user action, separated by semicolons
#: js/misc/systemActions.js:130
msgid "switch user"
msgstr "пайдаланушыны ауыстыру"
#. Translators: The name of the lock orientation action in search
#: js/misc/systemActions.js:134
msgctxt "search-result"
msgid "Lock orientation"
msgstr "Бағдарды бекіту"
#. Translators: A list of keywords that match the lock orientation action, separated by semicolons
#: js/misc/systemActions.js:137
msgid "lock orientation"
msgstr "бағдарды бекіту"
#: js/misc/util.js:122
msgid "Command not found"
msgstr "Команда табылмады"
@@ -619,35 +553,35 @@ msgstr "Тыйым салу"
msgid "Grant Access"
msgstr "Рұқсат ету"
#: js/ui/appDisplay.js:809
#: js/ui/appDisplay.js:806
msgid "Frequently used applications will appear here"
msgstr "Жиі қолданылатын қолданбалар осында көрінеді"
#: js/ui/appDisplay.js:930
#: js/ui/appDisplay.js:927
msgid "Frequent"
msgstr "Жиі қолданылатын"
#: js/ui/appDisplay.js:937
#: js/ui/appDisplay.js:934
msgid "All"
msgstr "Барлығы"
#: js/ui/appDisplay.js:1915
#: js/ui/appDisplay.js:1895
msgid "New Window"
msgstr "Жаңа терезе"
#: js/ui/appDisplay.js:1929
#: js/ui/appDisplay.js:1909
msgid "Launch using Dedicated Graphics Card"
msgstr "Бөлек графикалық картаны пайдаланып жөнелту"
#: js/ui/appDisplay.js:1956 js/ui/dash.js:289
#: js/ui/appDisplay.js:1936 js/ui/dash.js:289
msgid "Remove from Favorites"
msgstr "Таңдамалылардан өшіру"
#: js/ui/appDisplay.js:1962
#: js/ui/appDisplay.js:1942
msgid "Add to Favorites"
msgstr "Таңдамалыларға қосу"
#: js/ui/appDisplay.js:1972
#: js/ui/appDisplay.js:1952
msgid "Show Details"
msgstr "Деректерді көрсету"
@@ -689,7 +623,7 @@ msgstr "Фонды өзгерту..."
msgid "Display Settings"
msgstr "Экран баптаулары"
#: js/ui/backgroundMenu.js:22 js/ui/status/system.js:265
#: js/ui/backgroundMenu.js:22 js/ui/status/system.js:407
msgid "Settings"
msgstr "Баптаулар"
@@ -836,8 +770,8 @@ msgstr "Пароль:"
msgid "Type again:"
msgstr "Қайтадан енгізіңіз:"
#: js/ui/components/networkAgent.js:112 js/ui/status/network.js:261
#: js/ui/status/network.js:355 js/ui/status/network.js:939
#: js/ui/components/networkAgent.js:112 js/ui/status/network.js:272
#: js/ui/status/network.js:366 js/ui/status/network.js:950
msgid "Connect"
msgstr "Байланысу"
@@ -911,7 +845,7 @@ msgstr "Сымсыз кеңжолақты желісінің паролі"
msgid "A password is required to connect to “%s”."
msgstr "\"%s\" үшін байланысты орнату үшін пароль керек."
#: js/ui/components/networkAgent.js:627 js/ui/status/network.js:1720
#: js/ui/components/networkAgent.js:627 js/ui/status/network.js:1760
msgid "Network Manager"
msgstr "Желілер басқарушысы"
@@ -942,7 +876,7 @@ msgstr "Кешіріңіз, талап сәтсіз. Қайтадан көрің
msgid "%s is now known as %s"
msgstr "%s енді %s ретінде белгілі"
#: js/ui/ctrlAltTab.js:29 js/ui/viewSelector.js:186
#: js/ui/ctrlAltTab.js:29 js/ui/viewSelector.js:179
msgid "Windows"
msgstr "Терезелер"
@@ -987,7 +921,7 @@ msgstr "Ауа райы"
#. 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:286
#: js/ui/dateMenu.js:281
#, javascript-format
msgid "%s all day."
msgstr "%s күні бойы."
@@ -996,7 +930,7 @@ msgstr "%s күні бойы."
#. 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:292
#: js/ui/dateMenu.js:287
#, javascript-format
msgid "%s, then %s later."
msgstr "%s, одан кейін %s."
@@ -1005,30 +939,30 @@ msgstr "%s, одан кейін %s."
#. 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:298
#: js/ui/dateMenu.js:293
#, javascript-format
msgid "%s, then %s, followed by %s later."
msgstr "%s, одан кейін %s, одан кейін %s."
#: js/ui/dateMenu.js:309
#: js/ui/dateMenu.js:300
msgid "Select a location…"
msgstr "Орналасуды таңдаңыз…"
#: js/ui/dateMenu.js:312
#: js/ui/dateMenu.js:303
msgid "Loading…"
msgstr "Жүктеу…"
#. Translators: %s is a temperature with unit, e.g. "23℃"
#: js/ui/dateMenu.js:318
#: js/ui/dateMenu.js:309
#, javascript-format
msgid "Feels like %s."
msgstr "%s сияқты сезіледі."
#: js/ui/dateMenu.js:321
#: js/ui/dateMenu.js:312
msgid "Go online for weather information"
msgstr "Ауа райы ақпаратын алу үшін желіге байланысыңыз"
#: js/ui/dateMenu.js:323
#: js/ui/dateMenu.js:314
msgid "Weather information is currently unavailable"
msgstr "Ауа райы ақпараты ағымдағы уақытта қолжетерсіз"
@@ -1184,34 +1118,19 @@ msgstr "Орнату"
msgid "Download and install “%s” from extensions.gnome.org?"
msgstr "extensions.gnome.org адресінен \"%s\" жүктеп алып, орнату керек пе?"
#. Translators: %s is an application name like "Settings"
#: js/ui/inhibitShortcutsDialog.js:59
#, javascript-format
msgid "%s wants to inhibit shortcuts"
msgstr "%s жарлықтарды сөндіргісі келеді"
#: js/ui/inhibitShortcutsDialog.js:60
msgid "Application wants to inhibit shortcuts"
msgstr "Қолданба жарлықтарды сөндіргісі келеді"
#. Translators: %s is a keyboard shortcut like "Super+x"
#: js/ui/inhibitShortcutsDialog.js:69
#, javascript-format
msgid "You can restore shortcuts by pressing %s."
msgstr "Сіз жарлықтарды %s басу арқылы қалпына келтіре аласыз."
#: js/ui/inhibitShortcutsDialog.js:74
msgid "Deny"
msgstr "Тыйым салу"
#: js/ui/inhibitShortcutsDialog.js:80
msgid "Allow"
msgstr "Рұқсат ету"
#: js/ui/keyboard.js:738 js/ui/status/keyboard.js:782
#: js/ui/keyboard.js:740 js/ui/status/keyboard.js:782
msgid "Keyboard"
msgstr "Пернетақта"
#. translators: 'Hide' is a verb
#: js/ui/legacyTray.js:65
msgid "Hide tray"
msgstr "Жүйелік трейді жасыру"
#: js/ui/legacyTray.js:106
msgid "Status Icons"
msgstr "Қалып-күй таңбашалары"
#: js/ui/lookingGlass.js:642
msgid "No extensions installed"
msgstr "Кеңейтулер орнатылмаған"
@@ -1396,7 +1315,7 @@ msgid "%d new notification"
msgid_plural "%d new notifications"
msgstr[0] "%d жаңа ескерту"
#: js/ui/screenShield.js:452 js/ui/status/system.js:284
#: js/ui/screenShield.js:452 js/ui/status/system.js:415
msgid "Lock"
msgstr "Блоктау"
@@ -1427,11 +1346,10 @@ msgstr "Іздеу..."
msgid "No results."
msgstr "Нәтижелер жоқ."
#: js/ui/search.js:777
#: js/ui/search.js:768
#, javascript-format
msgid "%d more"
msgid_plural "%d more"
msgstr[0] "тағы %d"
msgstr "тағы %d"
#: js/ui/shellEntry.js:25
msgid "Copy"
@@ -1505,7 +1423,7 @@ msgstr "Үлкен мәтін"
msgid "Bluetooth"
msgstr "Bluetooth"
#: js/ui/status/bluetooth.js:56 js/ui/status/network.js:627
#: js/ui/status/bluetooth.js:56 js/ui/status/network.js:638
msgid "Bluetooth Settings"
msgstr "Bluetooth баптаулары"
@@ -1524,13 +1442,13 @@ msgstr "Сөнд."
msgid "On"
msgstr "Іске қос."
#: js/ui/status/bluetooth.js:142 js/ui/status/network.js:1299
#: js/ui/status/bluetooth.js:142 js/ui/status/network.js:1310
msgid "Turn On"
msgstr "Іске қосу"
#: js/ui/status/bluetooth.js:142 js/ui/status/network.js:170
#: js/ui/status/network.js:356 js/ui/status/network.js:1299
#: js/ui/status/network.js:1418 js/ui/status/nightLight.js:47
#: 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/rfkill.js:90 js/ui/status/rfkill.js:117
msgid "Turn Off"
msgstr "Сөндіру"
@@ -1584,13 +1502,13 @@ msgid "<unknown>"
msgstr "<белгісіз>"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:454 js/ui/status/network.js:1328
#: js/ui/status/network.js:465 js/ui/status/network.js:1339
#, javascript-format
msgid "%s Off"
msgstr "%s сөндірулі"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:457
#: js/ui/status/network.js:468
#, javascript-format
msgid "%s Connected"
msgstr "%s байланысқан"
@@ -1598,186 +1516,187 @@ msgstr "%s байланысқан"
#. Translators: this is for network devices that are physically present but are not
#. under NetworkManager's control (and thus cannot be used in the menu);
#. %s is a network identifier
#: js/ui/status/network.js:462
#: js/ui/status/network.js:473
#, javascript-format
msgid "%s Unmanaged"
msgstr "%s басқарылмайтын"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:465
#: js/ui/status/network.js:476
#, javascript-format
msgid "%s Disconnecting"
msgstr "%s байланысты үзуде"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:472 js/ui/status/network.js:1320
#: js/ui/status/network.js:483 js/ui/status/network.js:1331
#, javascript-format
msgid "%s Connecting"
msgstr "%s байланысуда"
#. Translators: this is for network connections that require some kind of key or password; %s is a network identifier
#: js/ui/status/network.js:475
#: js/ui/status/network.js:486
#, javascript-format
msgid "%s Requires Authentication"
msgstr "%s аутентификацияны талап етеді"
#. Translators: this is for devices that require some kind of firmware or kernel
#. module, which is missing; %s is a network identifier
#: js/ui/status/network.js:483
#: js/ui/status/network.js:494
#, javascript-format
msgid "Firmware Missing For %s"
msgstr "%s үшін бинарлы кодтары жоқ"
#. Translators: this is for a network device that cannot be activated (for example it
#. is disabled by rfkill, or it has no coverage; %s is a network identifier
#: js/ui/status/network.js:487
#: js/ui/status/network.js:498
#, javascript-format
msgid "%s Unavailable"
msgstr "%s қолжетерсіз"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:490
#: js/ui/status/network.js:501
#, javascript-format
msgid "%s Connection Failed"
msgstr "%s байланысын орнату сәтсіз"
#: js/ui/status/network.js:506
#: js/ui/status/network.js:517
msgid "Wired Settings"
msgstr "Сымды желі баптаулары"
#: js/ui/status/network.js:548
#: js/ui/status/network.js:559
msgid "Mobile Broadband Settings"
msgstr "Сымсыз кеңжолақты желісінің баптаулары"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:591 js/ui/status/network.js:1325
#: js/ui/status/network.js:602 js/ui/status/network.js:1336
#, javascript-format
msgid "%s Hardware Disabled"
msgstr "%s құрылғылық түрде сөндірулі тұр"
#. Translators: this is for a network device that cannot be activated
#. because it's disabled by rfkill (airplane mode); %s is a network identifier
#: js/ui/status/network.js:595
#: js/ui/status/network.js:606
#, javascript-format
msgid "%s Disabled"
msgstr "%s сөндірулі тұр"
#: js/ui/status/network.js:635
#: js/ui/status/network.js:646
msgid "Connect to Internet"
msgstr "Интернетке байланысу"
#: js/ui/status/network.js:833
#: js/ui/status/network.js:844
msgid "Airplane Mode is On"
msgstr "Ұшақтағы режим іске қосылған"
#: js/ui/status/network.js:834
#: js/ui/status/network.js:845
msgid "Wi-Fi is disabled when airplane mode is on."
msgstr "Wi-Fi ұшақтағы режимі кезінде сөндірілген болады."
#: js/ui/status/network.js:835
#: js/ui/status/network.js:846
msgid "Turn Off Airplane Mode"
msgstr "Ұшақтағы режимді сөндіру"
#: js/ui/status/network.js:844
#: js/ui/status/network.js:855
msgid "Wi-Fi is Off"
msgstr "Wi-Fi сөндірілген"
#: js/ui/status/network.js:845
#: js/ui/status/network.js:856
msgid "Wi-Fi needs to be turned on in order to connect to a network."
msgstr "Желіге байланысты орнату үшін Wi-Fi іске қосылған болуы тиіс."
#: js/ui/status/network.js:846
#: js/ui/status/network.js:857
msgid "Turn On Wi-Fi"
msgstr "Wi-Fi іске қосу"
#: js/ui/status/network.js:871
#: js/ui/status/network.js:882
msgid "Wi-Fi Networks"
msgstr "Wi-Fi желілері"
#: js/ui/status/network.js:873
#: js/ui/status/network.js:884
msgid "Select a network"
msgstr "Желіні таңдау"
#: js/ui/status/network.js:903
#: js/ui/status/network.js:914
msgid "No Networks"
msgstr "Желілер жоқ"
#: js/ui/status/network.js:924 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 "Сөндіру үшін құрылғылық қосқышты қолданыңыз"
#: js/ui/status/network.js:1191
#: js/ui/status/network.js:1202
msgid "Select Network"
msgstr "Желіні таңдау"
#: js/ui/status/network.js:1197
#: js/ui/status/network.js:1208
msgid "Wi-Fi Settings"
msgstr "Wi-Fi баптаулары"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:1316
#: js/ui/status/network.js:1327
#, javascript-format
msgid "%s Hotspot Active"
msgstr "%s қатынау нүктесі белсенді"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:1331
#: js/ui/status/network.js:1342
#, javascript-format
msgid "%s Not Connected"
msgstr "%s байланыспаған"
#: js/ui/status/network.js:1435
#: js/ui/status/network.js:1446
msgid "connecting…"
msgstr "байланысты орнату…"
#. Translators: this is for network connections that require some kind of key or password
#: js/ui/status/network.js:1438
#: js/ui/status/network.js:1449
msgid "authentication required"
msgstr "аутентификация керек"
#: js/ui/status/network.js:1440
#: js/ui/status/network.js:1451
msgid "connection failed"
msgstr "байланысты орнату сәтсіз"
#: js/ui/status/network.js:1494
msgid "VPN Settings"
msgstr "VPN баптаулары"
#: js/ui/status/network.js:1498
msgid "VPN"
msgstr "VPN"
#: js/ui/status/network.js:1508
msgid "VPN Off"
msgstr "VPN сөндірілген"
#: js/ui/status/network.js:1572 js/ui/status/rfkill.js:93
#: js/ui/status/network.js:1517 js/ui/status/network.js:1612
#: js/ui/status/rfkill.js:93
msgid "Network Settings"
msgstr "Желі баптаулары"
#: js/ui/status/network.js:1603
#: js/ui/status/network.js:1519
msgid "VPN Settings"
msgstr "VPN баптаулары"
#: js/ui/status/network.js:1538
msgid "VPN"
msgstr "VPN"
#: js/ui/status/network.js:1548
msgid "VPN Off"
msgstr "VPN сөндірілген"
#: js/ui/status/network.js:1643
#, javascript-format
msgid "%s Wired Connection"
msgid_plural "%s Wired Connections"
msgstr[0] "%s сымды желі байланысы"
#: js/ui/status/network.js:1607
#: js/ui/status/network.js:1647
#, javascript-format
msgid "%s Wi-Fi Connection"
msgid_plural "%s Wi-Fi Connections"
msgstr[0] "%s Wi-Fi желі байланысы"
#: js/ui/status/network.js:1611
#: js/ui/status/network.js:1651
#, javascript-format
msgid "%s Modem Connection"
msgid_plural "%s Modem Connections"
msgstr[0] "%s модем желі байланысы"
#: js/ui/status/network.js:1759
#: js/ui/status/network.js:1799
msgid "Connection failed"
msgstr "Байланыс орнату сәтсіз"
#: js/ui/status/network.js:1760
#: js/ui/status/network.js:1800
msgid "Activation of network connection failed"
msgstr "Желілік байланысты белсендіру сәтсіз"
@@ -1835,27 +1754,27 @@ msgstr "%d%%"
msgid "Airplane Mode On"
msgstr "Ұшақтағы режим іске қосулы"
#: js/ui/status/system.js:228
#: js/ui/status/system.js:384
msgid "Switch User"
msgstr "Пайдаланушыны ауыстыру"
#: js/ui/status/system.js:240
#: js/ui/status/system.js:389
msgid "Log Out"
msgstr "Жүйеден шығу"
#: js/ui/status/system.js:252
#: js/ui/status/system.js:394
msgid "Account Settings"
msgstr "Тіркелгі баптаулары"
#: js/ui/status/system.js:269
#: js/ui/status/system.js:411
msgid "Orientation Lock"
msgstr "Бағдарды бекіту"
#: js/ui/status/system.js:295
#: js/ui/status/system.js:419
msgid "Suspend"
msgstr "Ұйықтату"
#: js/ui/status/system.js:305
#: js/ui/status/system.js:422
msgid "Power Off"
msgstr "Сөндіру"
@@ -1867,34 +1786,6 @@ msgstr "Дыбыс өзгертілді"
msgid "Volume"
msgstr "Дыбыс деңгейі"
#. Translators: this is for display mirroring i.e. cloning.
#. * Try to keep it under around 15 characters.
#.
#: js/ui/switchMonitor.js:21
msgid "Mirror"
msgstr "Айналы"
#. Translators: this is for the desktop spanning displays.
#. * Try to keep it under around 15 characters.
#.
#: js/ui/switchMonitor.js:26
msgid "Join Displays"
msgstr "Экран­дарды біріктіру"
#. Translators: this is for using only an external display.
#. * Try to keep it under around 15 characters.
#.
#: js/ui/switchMonitor.js:31
msgid "External Only"
msgstr "Тек сыртқы"
#. Translators: this is for using only the laptop display.
#. * Try to keep it under around 15 characters.
#.
#: js/ui/switchMonitor.js:36
msgid "Built-in Only"
msgstr "Тек құрамындағы"
#: js/ui/unlockDialog.js:67
msgid "Log in as another user"
msgstr "Басқа пайдаланушы ретінде жүйеге кіру"
@@ -1903,11 +1794,11 @@ msgstr "Басқа пайдаланушы ретінде жүйеге кіру"
msgid "Unlock Window"
msgstr "Блоктауды алу терезесі"
#: js/ui/viewSelector.js:190
#: js/ui/viewSelector.js:183
msgid "Applications"
msgstr "Қолданбалар"
#: js/ui/viewSelector.js:194
#: js/ui/viewSelector.js:187
msgid "Search"
msgstr "Іздеу"
@@ -1916,22 +1807,22 @@ msgstr "Іздеу"
msgid "“%s” is ready"
msgstr "\"%s\" дайын"
#: js/ui/windowManager.js:72
#: js/ui/windowManager.js:71
msgid "Do you want to keep these display settings?"
msgstr "Экранның бұл баптауларын сақтауды қалайсыз ба?"
#. Translators: this and the following message should be limited in lenght,
#. to avoid ellipsizing the labels.
#.
#: js/ui/windowManager.js:84
#: js/ui/windowManager.js:83
msgid "Revert Settings"
msgstr "Баптауларды қалпына келтіру"
#: js/ui/windowManager.js:87
#: js/ui/windowManager.js:86
msgid "Keep Changes"
msgstr "Өзгерістерді сақтау"
#: js/ui/windowManager.js:105
#: js/ui/windowManager.js:104
#, javascript-format
msgid "Settings changes will revert in %d second"
msgid_plural "Settings changes will revert in %d seconds"
@@ -1939,7 +1830,7 @@ msgstr[0] "Өзгертілген баптаулар %d секундтан ке
#. 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:660
#: js/ui/windowManager.js:659
#, javascript-format
msgid "%d × %d"
msgstr "%d × %d"
@@ -2017,19 +1908,19 @@ msgstr "Evolution күнтізбесі"
msgid "evolution"
msgstr "evolution"
#: src/main.c:380
#: src/main.c:372
msgid "Print version"
msgstr "Баспа нұсқасы"
#: src/main.c:386
#: src/main.c:378
msgid "Mode used by GDM for login screen"
msgstr "GDM жүйеге кіру экраны үшін қолданатын режимі"
#: src/main.c:392
#: src/main.c:384
msgid "Use a specific mode, e.g. “gdm” for login screen"
msgstr "Жүйеге кіру экраны үшін арнайы режимді, мыс. \"gdm\", қолдану"
#: src/main.c:398
#: src/main.c:390
msgid "List possible modes"
msgstr "Қолжетерлік режимдерді тізіп шығу"
@@ -2075,12 +1966,6 @@ msgstr[0] "%u кірісі"
msgid "System Sounds"
msgstr "Жүйелік дыбыстар"
#~ msgid "Hide tray"
#~ msgstr "Жүйелік трейді жасыру"
#~ msgid "Status Icons"
#~ msgstr "Қалып-күй таңбашалары"
#~ msgid "Events"
#~ msgstr "Оқиғалар"

554
po/ko.po

File diff suppressed because it is too large Load Diff

345
po/lt.po
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-08-22 11:17+0000\n"
"PO-Revision-Date: 2017-08-22 23:13+0300\n"
"POT-Creation-Date: 2017-07-20 03:49+0000\n"
"PO-Revision-Date: 2017-07-24 23:45+0300\n"
"Last-Translator: Aurimas Černius <aurisc4@gmail.com>\n"
"Language-Team: Lietuvių <gnome-lt@lists.akl.lt>\n"
"Language: lt\n"
@@ -337,7 +337,7 @@ msgstr "Kilo klaida įkeliant %s nuostatų dialogą:"
#: js/gdm/authPrompt.js:149 js/ui/audioDeviceSelection.js:71
#: js/ui/components/networkAgent.js:117 js/ui/components/polkitAgent.js:148
#: js/ui/endSessionDialog.js:482 js/ui/extensionDownloader.js:197
#: js/ui/shellMountOperation.js:344 js/ui/status/network.js:936
#: js/ui/shellMountOperation.js:344 js/ui/status/network.js:947
msgid "Cancel"
msgstr "Atsisakyti"
@@ -398,80 +398,6 @@ msgstr "Tapatybės patvirtinimo klaida"
msgid "(or swipe finger)"
msgstr "(arba perbraukite pirštu)"
#. Translators: The name of the power-off action in search
#: js/misc/systemActions.js:99
#| msgid "Power Off"
msgctxt "search-result"
msgid "Power off"
msgstr "Išjungti"
#. Translators: A list of keywords that match the power-off action, separated by semicolons
#: js/misc/systemActions.js:102
msgid "power off;shutdown"
msgstr "išjungti"
#. Translators: The name of the lock screen action in search
#: js/misc/systemActions.js:106
msgctxt "search-result"
msgid "Lock screen"
msgstr "Užrakinti ekraną"
#. Translators: A list of keywords that match the lock screen action, separated by semicolons
#: js/misc/systemActions.js:109
msgid "lock screen"
msgstr "užrakinti ekraną"
#. Translators: The name of the logout action in search
#: js/misc/systemActions.js:113
#| msgid "Log Out"
msgctxt "search-result"
msgid "Log out"
msgstr "Atsijungti"
#. Translators: A list of keywords that match the logout action, separated by semicolons
#: js/misc/systemActions.js:116
msgid "logout;sign off"
msgstr "atsijungti"
#. Translators: The name of the suspend action in search
#: js/misc/systemActions.js:120
#| msgid "Suspend"
msgctxt "search-result"
msgid "Suspend"
msgstr "Pristabdyti"
#. Translators: A list of keywords that match the suspend action, separated by semicolons
#: js/misc/systemActions.js:123
#| msgid "Suspend"
msgid "suspend;sleep"
msgstr "pristabdyti;užmigdyti"
#. Translators: The name of the switch user action in search
#: js/misc/systemActions.js:127
#| msgid "Switch User"
msgctxt "search-result"
msgid "Switch user"
msgstr "Keisti naudotoją"
#. Translators: A list of keywords that match the switch user action, separated by semicolons
#: js/misc/systemActions.js:130
#| msgid "Switch User"
msgid "switch user"
msgstr "keisti naudotoją"
#. Translators: The name of the lock orientation action in search
#: js/misc/systemActions.js:134
#| msgid "Orientation Lock"
msgctxt "search-result"
msgid "Lock orientation"
msgstr "Orientacijos užrakinimas"
#. Translators: A list of keywords that match the lock orientation action, separated by semicolons
#: js/misc/systemActions.js:137
#| msgid "Orientation Lock"
msgid "lock orientation"
msgstr "orientacijos užrakinimas"
#: js/misc/util.js:122
msgid "Command not found"
msgstr "Komanda nerasta"
@@ -636,35 +562,35 @@ msgstr "Atmesti prieigą"
msgid "Grant Access"
msgstr "Suteikti prieigą"
#: js/ui/appDisplay.js:809
#: js/ui/appDisplay.js:806
msgid "Frequently used applications will appear here"
msgstr "Čia bus matomos dažnai naudojamos programos"
#: js/ui/appDisplay.js:930
#: js/ui/appDisplay.js:927
msgid "Frequent"
msgstr "Dažnai naudojamos"
#: js/ui/appDisplay.js:937
#: js/ui/appDisplay.js:934
msgid "All"
msgstr "Visos"
#: js/ui/appDisplay.js:1915
#: js/ui/appDisplay.js:1895
msgid "New Window"
msgstr "Naujas langas"
#: js/ui/appDisplay.js:1929
#: js/ui/appDisplay.js:1909
msgid "Launch using Dedicated Graphics Card"
msgstr "Paleisti naudojant dedikuotą grafikos kortą"
#: js/ui/appDisplay.js:1956 js/ui/dash.js:289
#: js/ui/appDisplay.js:1936 js/ui/dash.js:289
msgid "Remove from Favorites"
msgstr "Pašalinti iš mėgstamų"
#: js/ui/appDisplay.js:1962
#: js/ui/appDisplay.js:1942
msgid "Add to Favorites"
msgstr "Pridėti prie mėgstamų"
#: js/ui/appDisplay.js:1972
#: js/ui/appDisplay.js:1952
msgid "Show Details"
msgstr "Rodyti detalią informaciją"
@@ -706,7 +632,7 @@ msgstr "Keisti foną…"
msgid "Display Settings"
msgstr "Ekrano nustatymai"
#: js/ui/backgroundMenu.js:22 js/ui/status/system.js:265
#: js/ui/backgroundMenu.js:22 js/ui/status/system.js:407
msgid "Settings"
msgstr "Nustatymai"
@@ -813,6 +739,7 @@ msgstr "Viską išvalyti"
#. Translators: %s is an application name
#: js/ui/closeDialog.js:44
#, javascript-format
#| msgid "“%s” is ready"
msgid "“%s” is not responding."
msgstr "„%s“ neatsiliepia."
@@ -853,8 +780,8 @@ msgstr "Slaptažodis:"
msgid "Type again:"
msgstr "Įveskite dar kartą:"
#: js/ui/components/networkAgent.js:112 js/ui/status/network.js:261
#: js/ui/status/network.js:355 js/ui/status/network.js:939
#: js/ui/components/networkAgent.js:112 js/ui/status/network.js:272
#: js/ui/status/network.js:366 js/ui/status/network.js:950
msgid "Connect"
msgstr "Prisijungti"
@@ -929,7 +856,7 @@ msgstr "Mobiliojo plačiajuosčio tinklo slaptažodis"
msgid "A password is required to connect to “%s”."
msgstr "Būtinas slaptažodis norint prisijungti prie „%s“."
#: js/ui/components/networkAgent.js:627 js/ui/status/network.js:1720
#: js/ui/components/networkAgent.js:627 js/ui/status/network.js:1760
msgid "Network Manager"
msgstr "Tinklo tvarkymas"
@@ -960,7 +887,7 @@ msgstr "Atsiprašome, tai nesuveikė. Bandykite dar kartą."
msgid "%s is now known as %s"
msgstr "%s nuo šiol vadinasi %s"
#: js/ui/ctrlAltTab.js:29 js/ui/viewSelector.js:186
#: js/ui/ctrlAltTab.js:29 js/ui/viewSelector.js:179
msgid "Windows"
msgstr "Langai"
@@ -1005,7 +932,7 @@ msgstr "Orai"
#. 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:286
#: js/ui/dateMenu.js:281
#, javascript-format
msgid "%s all day."
msgstr "%s visą dieną."
@@ -1014,7 +941,7 @@ msgstr "%s visą dieną."
#. 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:292
#: js/ui/dateMenu.js:287
#, javascript-format
msgid "%s, then %s later."
msgstr "%s, o vėliau %s."
@@ -1023,30 +950,30 @@ msgstr "%s, o vėliau %s."
#. 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:298
#: js/ui/dateMenu.js:293
#, javascript-format
msgid "%s, then %s, followed by %s later."
msgstr "%s, tuomet %s, o po to vėliau %s."
#: js/ui/dateMenu.js:309
#: js/ui/dateMenu.js:300
msgid "Select a location…"
msgstr "Pasirinkite vietą…"
#: js/ui/dateMenu.js:312
#: js/ui/dateMenu.js:303
msgid "Loading…"
msgstr "Įkeliama…"
#. Translators: %s is a temperature with unit, e.g. "23℃"
#: js/ui/dateMenu.js:318
#: js/ui/dateMenu.js:309
#, javascript-format
msgid "Feels like %s."
msgstr "Jaučiama kaip %s."
#: js/ui/dateMenu.js:321
#: js/ui/dateMenu.js:312
msgid "Go online for weather information"
msgstr "Prisijunkite prie tinklo orų informacijai gauti"
#: js/ui/dateMenu.js:323
#: js/ui/dateMenu.js:314
msgid "Weather information is currently unavailable"
msgstr "Orų informacija šiuo metu yra neprieinama"
@@ -1213,34 +1140,19 @@ msgstr "Įdiegti"
msgid "Download and install “%s” from extensions.gnome.org?"
msgstr "Parsiųsti ir įdiegti „%s“ iš extensions.gnome.org?"
#. Translators: %s is an application name like "Settings"
#: js/ui/inhibitShortcutsDialog.js:59
#, javascript-format
msgid "%s wants to inhibit shortcuts"
msgstr "%s nori talpinti trumpinius"
#: js/ui/inhibitShortcutsDialog.js:60
msgid "Application wants to inhibit shortcuts"
msgstr "Programa nori talpinti trumpinius"
#. Translators: %s is a keyboard shortcut like "Super+x"
#: js/ui/inhibitShortcutsDialog.js:69
#, javascript-format
msgid "You can restore shortcuts by pressing %s."
msgstr "Galite atstatyti trumpinius paspaudę %s"
#: js/ui/inhibitShortcutsDialog.js:74
msgid "Deny"
msgstr "Neleisti"
#: js/ui/inhibitShortcutsDialog.js:80
msgid "Allow"
msgstr "Leisti"
#: js/ui/keyboard.js:738 js/ui/status/keyboard.js:782
#: js/ui/keyboard.js:740 js/ui/status/keyboard.js:782
msgid "Keyboard"
msgstr "Klaviatūra"
#. translators: 'Hide' is a verb
#: js/ui/legacyTray.js:65
msgid "Hide tray"
msgstr "Slėpti dėklą"
#: js/ui/legacyTray.js:106
msgid "Status Icons"
msgstr "Būsenos piktogramos"
#: js/ui/lookingGlass.js:642
msgid "No extensions installed"
msgstr "Nėra įdiegtų plėtinių"
@@ -1429,7 +1341,7 @@ msgstr[0] "%d naujas pranešimas"
msgstr[1] "%d nauji pranešimai"
msgstr[2] "%d naujų pranešimų"
#: js/ui/screenShield.js:452 js/ui/status/system.js:284
#: js/ui/screenShield.js:452 js/ui/status/system.js:415
msgid "Lock"
msgstr "Užrakinti"
@@ -1460,13 +1372,10 @@ msgstr "Ieškoma…"
msgid "No results."
msgstr "Nerasta atitikmenų."
#: js/ui/search.js:777
#: js/ui/search.js:768
#, javascript-format
msgid "%d more"
msgid_plural "%d more"
msgstr[0] "dar %d"
msgstr[1] "dar %d"
msgstr[2] "dar %d"
msgstr "dar %d"
#: js/ui/shellEntry.js:25
msgid "Copy"
@@ -1540,7 +1449,7 @@ msgstr "Didelis tekstas"
msgid "Bluetooth"
msgstr "Bluetooth"
#: js/ui/status/bluetooth.js:56 js/ui/status/network.js:627
#: js/ui/status/bluetooth.js:56 js/ui/status/network.js:638
msgid "Bluetooth Settings"
msgstr "Bluetooth nustatymai"
@@ -1561,13 +1470,13 @@ msgstr "Išjungta"
msgid "On"
msgstr "Įjungta"
#: js/ui/status/bluetooth.js:142 js/ui/status/network.js:1299
#: js/ui/status/bluetooth.js:142 js/ui/status/network.js:1310
msgid "Turn On"
msgstr "Įjungti"
#: js/ui/status/bluetooth.js:142 js/ui/status/network.js:170
#: js/ui/status/network.js:356 js/ui/status/network.js:1299
#: js/ui/status/network.js:1418 js/ui/status/nightLight.js:47
#: 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/rfkill.js:90 js/ui/status/rfkill.js:117
msgid "Turn Off"
msgstr "Išjungti"
@@ -1619,13 +1528,13 @@ msgid "<unknown>"
msgstr "<nežinoma>"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:454 js/ui/status/network.js:1328
#: js/ui/status/network.js:465 js/ui/status/network.js:1339
#, javascript-format
msgid "%s Off"
msgstr "%s išjungtas"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:457
#: js/ui/status/network.js:468
#, javascript-format
msgid "%s Connected"
msgstr "Prisijungta prie %s"
@@ -1633,164 +1542,165 @@ msgstr "Prisijungta prie %s"
#. Translators: this is for network devices that are physically present but are not
#. under NetworkManager's control (and thus cannot be used in the menu);
#. %s is a network identifier
#: js/ui/status/network.js:462
#: js/ui/status/network.js:473
#, javascript-format
msgid "%s Unmanaged"
msgstr "%s netvarkomas"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:465
#: js/ui/status/network.js:476
#, javascript-format
msgid "%s Disconnecting"
msgstr "Atsijungiama nuo %s"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:472 js/ui/status/network.js:1320
#: js/ui/status/network.js:483 js/ui/status/network.js:1331
#, javascript-format
msgid "%s Connecting"
msgstr "Jungiamasi prie %s"
#. Translators: this is for network connections that require some kind of key or password; %s is a network identifier
#: js/ui/status/network.js:475
#: js/ui/status/network.js:486
#, javascript-format
msgid "%s Requires Authentication"
msgstr "%s reikalauja patvirtinti tapatybę"
#. Translators: this is for devices that require some kind of firmware or kernel
#. module, which is missing; %s is a network identifier
#: js/ui/status/network.js:483
#: js/ui/status/network.js:494
#, javascript-format
msgid "Firmware Missing For %s"
msgstr "%s trūksta integruotos programinės įrangos"
#. Translators: this is for a network device that cannot be activated (for example it
#. is disabled by rfkill, or it has no coverage; %s is a network identifier
#: js/ui/status/network.js:487
#: js/ui/status/network.js:498
#, javascript-format
msgid "%s Unavailable"
msgstr "%s nepasiekiamas"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:490
#: js/ui/status/network.js:501
#, javascript-format
msgid "%s Connection Failed"
msgstr "Nepavyko prisijungti prie %s"
#: js/ui/status/network.js:506
#: js/ui/status/network.js:517
msgid "Wired Settings"
msgstr "Laidinio ryšio nustatymai"
#: js/ui/status/network.js:548
#: js/ui/status/network.js:559
msgid "Mobile Broadband Settings"
msgstr "Mobiliojo plačiajuosčio tinklo nustatymai"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:591 js/ui/status/network.js:1325
#: js/ui/status/network.js:602 js/ui/status/network.js:1336
#, javascript-format
msgid "%s Hardware Disabled"
msgstr "%s aparatinė įranga išjungta"
#. Translators: this is for a network device that cannot be activated
#. because it's disabled by rfkill (airplane mode); %s is a network identifier
#: js/ui/status/network.js:595
#: js/ui/status/network.js:606
#, javascript-format
msgid "%s Disabled"
msgstr "%s išjungtas"
#: js/ui/status/network.js:635
#: js/ui/status/network.js:646
msgid "Connect to Internet"
msgstr "Prisijungti prie interneto"
#: js/ui/status/network.js:833
#: js/ui/status/network.js:844
msgid "Airplane Mode is On"
msgstr "Skrydžio veiksena įjungta"
#: js/ui/status/network.js:834
#: js/ui/status/network.js:845
msgid "Wi-Fi is disabled when airplane mode is on."
msgstr "Belaidis ryšys yra išjungta skrydžio veiksenoje."
#: js/ui/status/network.js:835
#: js/ui/status/network.js:846
msgid "Turn Off Airplane Mode"
msgstr "Išjungti skrydžio veikseną"
#: js/ui/status/network.js:844
#: js/ui/status/network.js:855
msgid "Wi-Fi is Off"
msgstr "Belaidžio ryšys išjungtas"
#: js/ui/status/network.js:845
#: js/ui/status/network.js:856
msgid "Wi-Fi needs to be turned on in order to connect to a network."
msgstr "Norint prisijungti prie tinklo reikia įjungti belaidį ryšį."
#: js/ui/status/network.js:846
#: js/ui/status/network.js:857
msgid "Turn On Wi-Fi"
msgstr "Įjungti belaidį ryšį"
#: js/ui/status/network.js:871
#: js/ui/status/network.js:882
msgid "Wi-Fi Networks"
msgstr "Wi-Fi tinklai"
#: js/ui/status/network.js:873
#: js/ui/status/network.js:884
msgid "Select a network"
msgstr "Pasirinkite tinklą"
#: js/ui/status/network.js:903
#: js/ui/status/network.js:914
msgid "No Networks"
msgstr "Nėra tinklų"
#: js/ui/status/network.js:924 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 "Išjungimui naudoti aparatinį jungiklį"
#: js/ui/status/network.js:1191
#: js/ui/status/network.js:1202
msgid "Select Network"
msgstr "Pasirinkite tinklą"
#: js/ui/status/network.js:1197
#: js/ui/status/network.js:1208
msgid "Wi-Fi Settings"
msgstr "Belaidžio ryšio nustatymai"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:1316
#: js/ui/status/network.js:1327
#, javascript-format
msgid "%s Hotspot Active"
msgstr "Prieigos taškas %s aktyvus"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:1331
#: js/ui/status/network.js:1342
#, javascript-format
msgid "%s Not Connected"
msgstr "Neprisijungta prie %s"
#: js/ui/status/network.js:1435
#: js/ui/status/network.js:1446
msgid "connecting…"
msgstr "jungiamasi…"
#. Translators: this is for network connections that require some kind of key or password
#: js/ui/status/network.js:1438
#: js/ui/status/network.js:1449
msgid "authentication required"
msgstr "reikia patvirtinti tapatybę"
#: js/ui/status/network.js:1440
#: js/ui/status/network.js:1451
msgid "connection failed"
msgstr "nepavyko prisijungti"
#: js/ui/status/network.js:1494
msgid "VPN Settings"
msgstr "VPN nustatymai"
#: js/ui/status/network.js:1498
msgid "VPN"
msgstr "VPN"
#: js/ui/status/network.js:1508
msgid "VPN Off"
msgstr "VPN išjungtas"
#: js/ui/status/network.js:1572 js/ui/status/rfkill.js:93
#: js/ui/status/network.js:1517 js/ui/status/network.js:1612
#: js/ui/status/rfkill.js:93
msgid "Network Settings"
msgstr "Tinklo nustatymai"
#: js/ui/status/network.js:1603
#: js/ui/status/network.js:1519
msgid "VPN Settings"
msgstr "VPN nustatymai"
#: js/ui/status/network.js:1538
msgid "VPN"
msgstr "VPN"
#: js/ui/status/network.js:1548
msgid "VPN Off"
msgstr "VPN išjungtas"
#: js/ui/status/network.js:1643
#, javascript-format
msgid "%s Wired Connection"
msgid_plural "%s Wired Connections"
@@ -1798,7 +1708,7 @@ msgstr[0] "%s laidinis ryšys"
msgstr[1] "%s laidiniai ryšiai"
msgstr[2] "%s laidinių ryšių"
#: js/ui/status/network.js:1607
#: js/ui/status/network.js:1647
#, javascript-format
msgid "%s Wi-Fi Connection"
msgid_plural "%s Wi-Fi Connections"
@@ -1806,7 +1716,7 @@ msgstr[0] "%s belaidis ryšys"
msgstr[1] "%s belaidžiai ryšiai"
msgstr[2] "%s belaidžių ryšių"
#: js/ui/status/network.js:1611
#: js/ui/status/network.js:1651
#, javascript-format
msgid "%s Modem Connection"
msgid_plural "%s Modem Connections"
@@ -1814,11 +1724,11 @@ msgstr[0] "%s modemo ryšys"
msgstr[1] "%s modemo ryšiai"
msgstr[2] "%s modemo ryšių"
#: js/ui/status/network.js:1759
#: js/ui/status/network.js:1799
msgid "Connection failed"
msgstr "Nepavyko prisijungti"
#: js/ui/status/network.js:1760
#: js/ui/status/network.js:1800
msgid "Activation of network connection failed"
msgstr "Tinklo ryšio nepavyko aktyvuoti"
@@ -1876,27 +1786,27 @@ msgstr "%d%%"
msgid "Airplane Mode On"
msgstr "Skrydžio veiksena įjungta"
#: js/ui/status/system.js:228
#: js/ui/status/system.js:384
msgid "Switch User"
msgstr "Keisti naudotoją"
#: js/ui/status/system.js:240
#: js/ui/status/system.js:389
msgid "Log Out"
msgstr "Atsijungti"
#: js/ui/status/system.js:252
#: js/ui/status/system.js:394
msgid "Account Settings"
msgstr "Paskyros nustatymai"
#: js/ui/status/system.js:269
#: js/ui/status/system.js:411
msgid "Orientation Lock"
msgstr "Padėties užrakinimas"
#: js/ui/status/system.js:295
#: js/ui/status/system.js:419
msgid "Suspend"
msgstr "Pristabdyti"
#: js/ui/status/system.js:305
#: js/ui/status/system.js:422
msgid "Power Off"
msgstr "Išjungti"
@@ -1908,35 +1818,6 @@ msgstr "Garsumas pakeistas"
msgid "Volume"
msgstr "Garsumas"
#. Translators: this is for display mirroring i.e. cloning.
#. * Try to keep it under around 15 characters.
#.
#: js/ui/switchMonitor.js:21
#| msgid "Error"
msgid "Mirror"
msgstr "Veidrodis"
#. Translators: this is for the desktop spanning displays.
#. * Try to keep it under around 15 characters.
#.
#: js/ui/switchMonitor.js:26
msgid "Join Displays"
msgstr "Sujungti vaizduoklius"
#. Translators: this is for using only an external display.
#. * Try to keep it under around 15 characters.
#.
#: js/ui/switchMonitor.js:31
msgid "External Only"
msgstr "Tik išorinis"
#. Translators: this is for using only the laptop display.
#. * Try to keep it under around 15 characters.
#.
#: js/ui/switchMonitor.js:36
msgid "Built-in Only"
msgstr "Tik vidinis"
#: js/ui/unlockDialog.js:67
msgid "Log in as another user"
msgstr "Prisijungti kitu naudotoju"
@@ -1945,11 +1826,11 @@ msgstr "Prisijungti kitu naudotoju"
msgid "Unlock Window"
msgstr "Atrakinimo langas"
#: js/ui/viewSelector.js:190
#: js/ui/viewSelector.js:183
msgid "Applications"
msgstr "Programos"
#: js/ui/viewSelector.js:194
#: js/ui/viewSelector.js:187
msgid "Search"
msgstr "Ieškoti"
@@ -1958,22 +1839,22 @@ msgstr "Ieškoti"
msgid "“%s” is ready"
msgstr "„%s“ yra pasirengusi"
#: js/ui/windowManager.js:72
#: js/ui/windowManager.js:71
msgid "Do you want to keep these display settings?"
msgstr "Ar norite įrašyti šiuos vaizduoklio nustatymus?"
#. Translators: this and the following message should be limited in lenght,
#. to avoid ellipsizing the labels.
#.
#: js/ui/windowManager.js:84
#: js/ui/windowManager.js:83
msgid "Revert Settings"
msgstr "Grąžinti nustatymus"
#: js/ui/windowManager.js:87
#: js/ui/windowManager.js:86
msgid "Keep Changes"
msgstr "Įrašyti pakeitimus"
#: js/ui/windowManager.js:105
#: js/ui/windowManager.js:104
#, javascript-format
msgid "Settings changes will revert in %d second"
msgid_plural "Settings changes will revert in %d seconds"
@@ -1983,7 +1864,7 @@ msgstr[2] "Pakeitimai bus grąžinti po %d sekundžių"
#. 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:660
#: js/ui/windowManager.js:659
#, javascript-format
msgid "%d × %d"
msgstr "%d × %d"
@@ -2061,19 +1942,19 @@ msgstr "Evolution kalendorius"
msgid "evolution"
msgstr "evolution"
#: src/main.c:380
#: src/main.c:372
msgid "Print version"
msgstr "Išvesti versijos numerį"
#: src/main.c:386
#: src/main.c:378
msgid "Mode used by GDM for login screen"
msgstr "Veiksena, naudojama GDM prisijungimo ekrane"
#: src/main.c:392
#: src/main.c:384
msgid "Use a specific mode, e.g. “gdm” for login screen"
msgstr "Naudoti konkrečią veikseną, pvz., „gdm“ prisijungimo ekranui"
#: src/main.c:398
#: src/main.c:390
msgid "List possible modes"
msgstr "Išvardinti galimas veiksenas"
@@ -2123,12 +2004,6 @@ msgstr[2] "%u įvesčių"
msgid "System Sounds"
msgstr "Sistemos garsai"
#~ msgid "Hide tray"
#~ msgstr "Slėpti dėklą"
#~ msgid "Status Icons"
#~ msgstr "Būsenos piktogramos"
#~ msgid "Events"
#~ msgstr "Įvykiai"

577
po/lv.po

File diff suppressed because it is too large Load Diff

3132
po/ml.po

File diff suppressed because it is too large Load Diff

View File

@@ -1931,7 +1931,7 @@ msgstr "इभोल्युसन पात्रो"
#. Translators: Do NOT translate or transliterate this text (this is an icon file name)!
#: src/calendar-server/evolution-calendar.desktop.in:6
msgid "evolution"
msgstr "evolution"
msgstr "इभोल्युसन"
#: src/main.c:372
msgid "Print version"

1102
po/nl.po

File diff suppressed because it is too large Load Diff

772
po/pa.po

File diff suppressed because it is too large Load Diff

576
po/pl.po

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

582
po/ru.po

File diff suppressed because it is too large Load Diff

583
po/sk.po

File diff suppressed because it is too large Load Diff

Some files were not shown because too many files have changed in this diff Show More