Compare commits
205 Commits
3.9.90
...
wip/cogl-d
Author | SHA1 | Date | |
---|---|---|---|
![]() |
d8009fd826 | ||
![]() |
744749f2f3 | ||
![]() |
db1c65970b | ||
![]() |
2d8ed4c77f | ||
![]() |
9ba970b83d | ||
![]() |
954d262d67 | ||
![]() |
1b6090fe13 | ||
![]() |
f8234b07f8 | ||
![]() |
25318f696d | ||
![]() |
1ab3d12bc7 | ||
![]() |
d66e0a0b45 | ||
![]() |
d46ceead04 | ||
![]() |
1cc9480e56 | ||
![]() |
c022b541f1 | ||
![]() |
96588466d4 | ||
![]() |
dbde12f8bf | ||
![]() |
660f0fec16 | ||
![]() |
fd9401cc62 | ||
![]() |
1edb9f7525 | ||
![]() |
15cfb9d1d9 | ||
![]() |
da6744da2d | ||
![]() |
bd5aa66a5f | ||
![]() |
7c30fe7738 | ||
![]() |
8ce599df38 | ||
![]() |
75fe13f1df | ||
![]() |
8ad6ded3ec | ||
![]() |
38d22c47f5 | ||
![]() |
956b6b89b6 | ||
![]() |
f27c2e6813 | ||
![]() |
d35c9f880a | ||
![]() |
d62aacf301 | ||
![]() |
716ea64212 | ||
![]() |
c9d6b13f6a | ||
![]() |
b437e68026 | ||
![]() |
1dfc38d078 | ||
![]() |
387184b052 | ||
![]() |
beec47d7ad | ||
![]() |
6b554337ff | ||
![]() |
08f95264d6 | ||
![]() |
2802920e93 | ||
![]() |
b04c47c15f | ||
![]() |
56d96383e2 | ||
![]() |
f2cbf846e7 | ||
![]() |
0088e94293 | ||
![]() |
a03a077e3d | ||
![]() |
85d2b9e32a | ||
![]() |
aa6471b3cc | ||
![]() |
b462a85c43 | ||
![]() |
9d8f30f955 | ||
![]() |
420db828e9 | ||
![]() |
fd8def705d | ||
![]() |
39c4fa1bf0 | ||
![]() |
32b964e9b7 | ||
![]() |
2980515c85 | ||
![]() |
36bee16781 | ||
![]() |
4f5d3e00db | ||
![]() |
6fb044f351 | ||
![]() |
b403845d03 | ||
![]() |
9d0e00acce | ||
![]() |
d5afe8f4f2 | ||
![]() |
3eb5ca3653 | ||
![]() |
db07aa42ea | ||
![]() |
081f51b9eb | ||
![]() |
38d9c16aba | ||
![]() |
392a426ddf | ||
![]() |
d77b2751a6 | ||
![]() |
3b28308291 | ||
![]() |
574ecb5ad4 | ||
![]() |
7a57a780d8 | ||
![]() |
cf9842433e | ||
![]() |
c6d089d701 | ||
![]() |
ec37e2d2b5 | ||
![]() |
e68b648a33 | ||
![]() |
56179d8a54 | ||
![]() |
47d232f694 | ||
![]() |
fc26fb2149 | ||
![]() |
92d828b04e | ||
![]() |
6f9dc913d4 | ||
![]() |
9ea0f7255f | ||
![]() |
938628a05f | ||
![]() |
a765dfc52e | ||
![]() |
d58f0646cf | ||
![]() |
792b963bda | ||
![]() |
9a8bf3b881 | ||
![]() |
1e02081cd2 | ||
![]() |
3f24a87034 | ||
![]() |
dd9f8021ff | ||
![]() |
74978e84f8 | ||
![]() |
6ef775390f | ||
![]() |
1313c1b157 | ||
![]() |
6d6c400b25 | ||
![]() |
46bd1b9b18 | ||
![]() |
dcea8bed6d | ||
![]() |
e8b35f4623 | ||
![]() |
ae263bb4db | ||
![]() |
754ca7c8f2 | ||
![]() |
804c02701a | ||
![]() |
fbb4077812 | ||
![]() |
961e1b89a2 | ||
![]() |
cc449228f3 | ||
![]() |
3984c47867 | ||
![]() |
cfb80266c2 | ||
![]() |
cc5198205d | ||
![]() |
a27b44a3c2 | ||
![]() |
937d064860 | ||
![]() |
9c814d1584 | ||
![]() |
415563dc6e | ||
![]() |
bed653737b | ||
![]() |
b53be942d4 | ||
![]() |
1d26161d23 | ||
![]() |
39afb58472 | ||
![]() |
22cd18571b | ||
![]() |
5753eb6682 | ||
![]() |
e26a6ea71b | ||
![]() |
6fbe765636 | ||
![]() |
22b2ccd83d | ||
![]() |
fc5aadd6dd | ||
![]() |
5a9f0c24b4 | ||
![]() |
0c12c072fa | ||
![]() |
f7284caefd | ||
![]() |
4e7f317679 | ||
![]() |
3534d6fddc | ||
![]() |
0b79e9cc9e | ||
![]() |
3ce97ccaa8 | ||
![]() |
407a340b2b | ||
![]() |
532346ecfb | ||
![]() |
cd25f5b6cb | ||
![]() |
5a0ac6c2ac | ||
![]() |
f0da08bbb1 | ||
![]() |
fb3f6e2238 | ||
![]() |
8b977252f3 | ||
![]() |
9582f9b6e5 | ||
![]() |
3f15a41006 | ||
![]() |
e1c4cfd7eb | ||
![]() |
a326f40bbf | ||
![]() |
09c2fff8fc | ||
![]() |
a4c1eb12b4 | ||
![]() |
4e80758970 | ||
![]() |
40ae408b3b | ||
![]() |
84d8d4f622 | ||
![]() |
5c04840312 | ||
![]() |
bd28d5c48a | ||
![]() |
f176d890c0 | ||
![]() |
3b158a96b7 | ||
![]() |
dcd0b2bf66 | ||
![]() |
edd1c89ea1 | ||
![]() |
32d858dce3 | ||
![]() |
1e4bb53a34 | ||
![]() |
f5f94097bf | ||
![]() |
77a3218db3 | ||
![]() |
c3ed40905a | ||
![]() |
268ac0bde8 | ||
![]() |
88e3f6af47 | ||
![]() |
21a85832b3 | ||
![]() |
254efdd122 | ||
![]() |
62ac6e74d9 | ||
![]() |
2c2268b39d | ||
![]() |
41aa14eaf0 | ||
![]() |
1f50f4658d | ||
![]() |
d31481fd8b | ||
![]() |
80ab28bc3a | ||
![]() |
48b7ebe1c0 | ||
![]() |
c59cf18337 | ||
![]() |
b7b1260540 | ||
![]() |
897c5634b0 | ||
![]() |
78e3a05e14 | ||
![]() |
1bb6367b79 | ||
![]() |
f5512ef21b | ||
![]() |
a0fa9937ba | ||
![]() |
ef2345ea85 | ||
![]() |
dd8fd09470 | ||
![]() |
a779e2aeca | ||
![]() |
aaaf25d578 | ||
![]() |
2e65c852c3 | ||
![]() |
1b206fe94c | ||
![]() |
8b93c97a09 | ||
![]() |
6247b55fc3 | ||
![]() |
12d9d49fa4 | ||
![]() |
aef3f097e4 | ||
![]() |
1a415d5fa7 | ||
![]() |
e4d46aee97 | ||
![]() |
d3a88e59b9 | ||
![]() |
44e3811520 | ||
![]() |
e0574d2861 | ||
![]() |
d4f66da793 | ||
![]() |
c7e3289396 | ||
![]() |
9cb7aeb32d | ||
![]() |
4537370a54 | ||
![]() |
9d2bc1142f | ||
![]() |
c44caa5c96 | ||
![]() |
77dc587686 | ||
![]() |
ce768241da | ||
![]() |
5f9e50175f | ||
![]() |
34ec457a47 | ||
![]() |
dd1651f2d1 | ||
![]() |
c3c529b001 | ||
![]() |
aa569304bc | ||
![]() |
3d57fd3227 | ||
![]() |
c18a6a6577 | ||
![]() |
9720301d01 | ||
![]() |
5ea75499fe | ||
![]() |
b45bbb77ef | ||
![]() |
d29b86baf0 | ||
![]() |
1730aff2b9 | ||
![]() |
1b03484b04 |
42
NEWS
42
NEWS
@@ -1,3 +1,45 @@
|
||||
3.9.91
|
||||
======
|
||||
* Improve submenu styling [Jakub; #706037]
|
||||
* Fix changing slider values via keyboard [Alejandro; #706386]
|
||||
* Fix accessibility of sliders [Alejandro; #706391]
|
||||
* Tweak system actions style [Jakub; #706638]
|
||||
* Add support for auth without username / fix Not Listed? [Ray; #706607]
|
||||
* Dash: Don't show tooltips for apps with open popups [Giovanni; #705611]
|
||||
* Implement new end-session/power-off dialog design [Jasper, Matthias; #706612]
|
||||
* Implement building separate binaries for x11 and wayland [Giovanni; #705497]
|
||||
* authPrompt: Fix controls moving when showing messages [Ray; #706670]
|
||||
* Tweak padding between system status icons [Allan; #706796]
|
||||
* Add a generic accessible usable by JS code [Alejandro; #648623]
|
||||
* Improve keynav and accessibility of the calendar [Alejandro; #706903]
|
||||
* Update to new NetworkManager APIs [Jasper; #706098]
|
||||
* Hide system actions section in the lock screen [Jasper; #706852]
|
||||
* Don't show other logged in users at log out [Giovanni; #707124]
|
||||
* Remove "Session" subtitle heading in login dialog [Jasper; #707072]
|
||||
* dash: Reload favorites when installed apps change [Giovanni; #706878]
|
||||
* Don't open overview after closing last window on workspace [Florian; #662581]
|
||||
* Add FocusApp DBus method [Giovanni; #654086]
|
||||
* Add ShowApplications DBus method [Giovanni; #698743]
|
||||
* Implement new app picker design [Carlos, Florian; #706081]
|
||||
* Improve frequent apps being empty by default [Carlos, Florian; #694710]
|
||||
* Extend clickable area of page indicators [Giovanni; #707314]
|
||||
|
||||
* Misc bug fixes [Ray, Giovanni, Jasper, Emmanuele; #706542, #706654, #706005,
|
||||
#706681, #706841, #706843, #707064, #706262, #707197, #707269]
|
||||
|
||||
Contributors:
|
||||
Emmanuele Bassi, Giovanni Campagna, Matthias Clasen, Allan Day, Adel Gadllah,
|
||||
Florian Müllner, Alejandro Piñeiro, Carlos Soriano, Jasper St. Pierre,
|
||||
Jakub Steiner, Ray Strode, Seán de Búrca
|
||||
|
||||
Translations:
|
||||
Piotr Drąg [pl], Kjartan Maraas [nb], Victor Ibragimov [tg],
|
||||
Enrico Nicoletto [pt_BR], Benjamin Steinwender [de],
|
||||
Baurzhan Muftakhidinov [kk], Aurimas Černius [lt], Seán de Búrca [ga],
|
||||
Fran Diéguez [gl], Daniel Mustieles [es], Dušan Kazik [sk],
|
||||
Matej Urbančič [sl], Andika Triwidada [id], Jordi Mas [ca],
|
||||
Ihar Hrachyshka [be]
|
||||
|
||||
3.9.90
|
||||
======
|
||||
* workspaceThumbnails: Exclude transient windows when shifting workspaces
|
||||
|
63
configure.ac
63
configure.ac
@@ -1,5 +1,5 @@
|
||||
AC_PREREQ(2.63)
|
||||
AC_INIT([gnome-shell],[3.9.90],[https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell],[gnome-shell])
|
||||
AC_INIT([gnome-shell],[3.9.91],[https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell],[gnome-shell])
|
||||
|
||||
AC_CONFIG_HEADERS([config.h])
|
||||
AC_CONFIG_SRCDIR([src/shell-global.c])
|
||||
@@ -24,9 +24,6 @@ LT_INIT([disable-static])
|
||||
# i18n
|
||||
IT_PROG_INTLTOOL([0.40])
|
||||
|
||||
AM_GNU_GETTEXT([external])
|
||||
AM_GNU_GETTEXT_VERSION([0.17])
|
||||
|
||||
GETTEXT_PACKAGE=gnome-shell
|
||||
AC_SUBST(GETTEXT_PACKAGE)
|
||||
AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE",
|
||||
@@ -63,7 +60,7 @@ AM_CONDITIONAL(BUILD_RECORDER, $build_recorder)
|
||||
CLUTTER_MIN_VERSION=1.13.4
|
||||
GOBJECT_INTROSPECTION_MIN_VERSION=0.10.1
|
||||
GJS_MIN_VERSION=1.35.4
|
||||
MUTTER_MIN_VERSION=3.9.90
|
||||
MUTTER_MIN_VERSION=3.9.91
|
||||
GTK_MIN_VERSION=3.7.9
|
||||
GIO_MIN_VERSION=2.37.0
|
||||
LIBECAL_MIN_VERSION=3.5.3
|
||||
@@ -78,26 +75,35 @@ NETWORKMANAGER_MIN_VERSION=0.9.8
|
||||
PULSE_MIN_VERS=2.0
|
||||
|
||||
# Collect more than 20 libraries for a prize!
|
||||
PKG_CHECK_MODULES(GNOME_SHELL, gio-unix-2.0 >= $GIO_MIN_VERSION
|
||||
libxml-2.0
|
||||
gtk+-3.0 >= $GTK_MIN_VERSION
|
||||
atk-bridge-2.0
|
||||
libmutter >= $MUTTER_MIN_VERSION
|
||||
gjs-internals-1.0 >= $GJS_MIN_VERSION
|
||||
libgnome-menu-3.0 >= $GNOME_MENUS_REQUIRED_VERSION
|
||||
$recorder_modules
|
||||
gdk-x11-3.0 libsoup-2.4
|
||||
xtst
|
||||
clutter-x11-1.0 >= $CLUTTER_MIN_VERSION
|
||||
clutter-glx-1.0 >= $CLUTTER_MIN_VERSION
|
||||
libstartup-notification-1.0 >= $STARTUP_NOTIFICATION_MIN_VERSION
|
||||
gobject-introspection-1.0 >= $GOBJECT_INTROSPECTION_MIN_VERSION
|
||||
libcanberra libcanberra-gtk3
|
||||
telepathy-glib >= $TELEPATHY_GLIB_MIN_VERSION
|
||||
polkit-agent-1 >= $POLKIT_MIN_VERSION
|
||||
libnm-glib libnm-util >= $NETWORKMANAGER_MIN_VERSION
|
||||
libnm-gtk >= $NETWORKMANAGER_MIN_VERSION
|
||||
libsecret-unstable gcr-base-3 >= $GCR_MIN_VERSION)
|
||||
SHARED_PCS="gio-unix-2.0 >= $GIO_MIN_VERSION
|
||||
libxml-2.0
|
||||
gtk+-3.0 >= $GTK_MIN_VERSION
|
||||
atk-bridge-2.0
|
||||
gjs-internals-1.0 >= $GJS_MIN_VERSION
|
||||
libgnome-menu-3.0 >= $GNOME_MENUS_REQUIRED_VERSION
|
||||
$recorder_modules
|
||||
gdk-x11-3.0 libsoup-2.4
|
||||
xtst
|
||||
clutter-x11-1.0 >= $CLUTTER_MIN_VERSION
|
||||
clutter-glx-1.0 >= $CLUTTER_MIN_VERSION
|
||||
libstartup-notification-1.0 >= $STARTUP_NOTIFICATION_MIN_VERSION
|
||||
gobject-introspection-1.0 >= $GOBJECT_INTROSPECTION_MIN_VERSION
|
||||
libcanberra libcanberra-gtk3
|
||||
telepathy-glib >= $TELEPATHY_GLIB_MIN_VERSION
|
||||
polkit-agent-1 >= $POLKIT_MIN_VERSION
|
||||
libnm-glib libnm-util >= $NETWORKMANAGER_MIN_VERSION
|
||||
libnm-gtk >= $NETWORKMANAGER_MIN_VERSION
|
||||
libsecret-unstable gcr-base-3 >= $GCR_MIN_VERSION"
|
||||
|
||||
PKG_CHECK_MODULES(GNOME_SHELL, $SHARED_PCS)
|
||||
PKG_CHECK_MODULES(MUTTER, libmutter >= $MUTTER_MIN_VERSION)
|
||||
PKG_CHECK_MODULES(MUTTER_WAYLAND, [libmutter-wayland >= $MUTTER_MIN_VERSION],
|
||||
[MUTTER_WAYLAND_TYPELIB_DIR=`$PKG_CONFIG --variable=typelibdir libmutter-wayland`
|
||||
AC_SUBST(MUTTER_WAYLAND_TYPELIB_DIR)
|
||||
have_mutter_wayland=yes],
|
||||
[have_mutter_wayland=no])
|
||||
|
||||
AM_CONDITIONAL(HAVE_MUTTER_WAYLAND, test $have_mutter_wayland != no)
|
||||
|
||||
PKG_CHECK_MODULES(GNOME_SHELL_JS, gio-2.0 gjs-internals-1.0 >= $GJS_MIN_VERSION)
|
||||
PKG_CHECK_MODULES(ST, clutter-1.0 gtk+-3.0 libcroco-0.6 >= 0.6.8 x11)
|
||||
@@ -133,8 +139,9 @@ AC_SUBST([GNOME_KEYBINDINGS_KEYSDIR])
|
||||
GOBJECT_INTROSPECTION_CHECK([$GOBJECT_INTROSPECTION_MIN_VERSION])
|
||||
|
||||
MUTTER_GIR_DIR=`$PKG_CONFIG --variable=girdir libmutter`
|
||||
MUTTER_TYPELIB_DIR=`$PKG_CONFIG --variable=typelibdir libmutter`
|
||||
AC_SUBST(MUTTER_GIR_DIR)
|
||||
|
||||
MUTTER_TYPELIB_DIR=`$PKG_CONFIG --variable=typelibdir libmutter`
|
||||
AC_SUBST(MUTTER_TYPELIB_DIR)
|
||||
|
||||
GJS_CONSOLE=`$PKG_CONFIG --variable=gjs_console gjs-1.0`
|
||||
@@ -174,10 +181,6 @@ AM_CONDITIONAL(ENABLE_MAN, test "$enable_man" != no)
|
||||
|
||||
GNOME_COMPILE_WARNINGS([error])
|
||||
|
||||
AC_ARG_ENABLE(jhbuild-wrapper-script,
|
||||
AS_HELP_STRING([--enable-jhbuild-wrapper-script],[Make "gnome-shell" script work for jhbuild]),,enable_jhbuild_wrapper_script=no)
|
||||
AM_CONDITIONAL(USE_JHBUILD_WRAPPER_SCRIPT, test "x$enable_jhbuild_wrapper_script" = xyes)
|
||||
|
||||
BROWSER_PLUGIN_DIR="${BROWSER_PLUGIN_DIR:-"\${libdir}/mozilla/plugins"}"
|
||||
AC_ARG_VAR([BROWSER_PLUGIN_DIR],[Where to install the plugin to])
|
||||
|
||||
|
@@ -41,6 +41,8 @@ dist_theme_DATA = \
|
||||
theme/message-tray-background.png \
|
||||
theme/more-results.svg \
|
||||
theme/noise-texture.png \
|
||||
theme/page-indicator-active.svg \
|
||||
theme/page-indicator-inactive.svg \
|
||||
theme/panel-button-border.svg \
|
||||
theme/panel-button-highlight-narrow.svg \
|
||||
theme/panel-button-highlight-wide.svg \
|
||||
|
@@ -45,16 +45,6 @@
|
||||
<default>[]</default>
|
||||
<_summary>History for the looking glass dialog</_summary>
|
||||
</key>
|
||||
<key name="saved-im-presence" type="i">
|
||||
<default>1</default>
|
||||
<_summary>Internally used to store the last IM presence explicitly set by the user. The
|
||||
value here is from the TpConnectionPresenceType enumeration.</_summary>
|
||||
</key>
|
||||
<key name="saved-session-presence" type="i">
|
||||
<default>0</default>
|
||||
<_summary>Internally used to store the last session presence status for the user. The
|
||||
value here is from the GsmPresenceStatus enumeration.</_summary>
|
||||
</key>
|
||||
<key name="always-show-log-out" type="b">
|
||||
<default>false</default>
|
||||
<_summary>Always show the 'Log out' menuitem in the user menu.</_summary>
|
||||
|
@@ -162,12 +162,12 @@ StScrollBar StButton#vhandle:active {
|
||||
}
|
||||
|
||||
.popup-submenu-menu-item:open {
|
||||
background-color: #4c4c4c;
|
||||
background-color: #333333;
|
||||
}
|
||||
|
||||
.popup-sub-menu {
|
||||
background-gradient-start: rgba(80,80,80,0.3);
|
||||
background-gradient-end: rgba(80,80,80,0.7);
|
||||
background-gradient-end: rgba(80,80,80,0.4);
|
||||
background-gradient-direction: vertical;
|
||||
box-shadow: inset 0px 2px 4px rgba(0,0,0,0.9);
|
||||
}
|
||||
@@ -633,11 +633,12 @@ StScrollBar StButton#vhandle:active {
|
||||
|
||||
.panel-status-indicators-box,
|
||||
.panel-status-menu-box {
|
||||
spacing: 8px;
|
||||
spacing: 2px;
|
||||
}
|
||||
|
||||
.system-status-icon {
|
||||
icon-size: 1.09em;
|
||||
padding: 0 5px;
|
||||
}
|
||||
|
||||
.aggregate-menu {
|
||||
@@ -655,18 +656,27 @@ StScrollBar StButton#vhandle:active {
|
||||
|
||||
.system-menu-action {
|
||||
color: #e6e6e6;
|
||||
border-radius: 4px;
|
||||
padding: 6px;
|
||||
border-radius: 32px; /* wish we could do 50% */
|
||||
padding: 13px;
|
||||
border: 1px solid #5f5f5f; /* using rgba() is flaky unfortunately */
|
||||
}
|
||||
|
||||
.system-menu-action:hover,
|
||||
.system-menu-action:focus {
|
||||
color: white;
|
||||
background-color: rgba(255,255,255,0.1);
|
||||
background-color: #4c4c4c;
|
||||
border: none;
|
||||
padding: 14px;
|
||||
}
|
||||
|
||||
.system-menu-action:active {
|
||||
color: black;
|
||||
background-color: #6f6f6f;
|
||||
|
||||
}
|
||||
|
||||
.system-menu-action > StIcon {
|
||||
icon-size: 32px;
|
||||
icon-size: 16px;
|
||||
}
|
||||
|
||||
.screencast-indicator {
|
||||
@@ -898,9 +908,9 @@ StScrollBar StButton#vhandle:active {
|
||||
/* Application Launchers, Grid and List results */
|
||||
|
||||
.icon-grid {
|
||||
spacing: 36px;
|
||||
-shell-grid-horizontal-item-size: 118px;
|
||||
-shell-grid-vertical-item-size: 118px;
|
||||
spacing: 30px;
|
||||
-shell-grid-horizontal-item-size: 136px;
|
||||
-shell-grid-vertical-item-size: 136px;
|
||||
}
|
||||
|
||||
.icon-grid .overview-icon {
|
||||
@@ -924,12 +934,31 @@ StScrollBar StButton#vhandle:active {
|
||||
padding: 3px 31px;
|
||||
}
|
||||
|
||||
|
||||
.search-display > StBoxLayout,
|
||||
.all-apps > StBoxLayout,
|
||||
.all-apps,
|
||||
.frequent-apps > StBoxLayout {
|
||||
/* horizontal padding to make sure scrollbars or dash don't overlap content */
|
||||
padding: 0px 88px;
|
||||
padding: 0px 88px 10px 88px;
|
||||
}
|
||||
|
||||
.page-indicator {
|
||||
padding: 15px 30px;
|
||||
}
|
||||
|
||||
.page-indicator .page-indicator-icon {
|
||||
width: 18px;
|
||||
height: 18px;
|
||||
background-image: url(page-indicator-inactive.svg);
|
||||
}
|
||||
|
||||
.page-indicator:hover .page-indicator-icon,
|
||||
.page-indicator:checked .page-indicator-icon {
|
||||
background-image: url(page-indicator-active.svg);
|
||||
}
|
||||
|
||||
.no-frequent-applications-label {
|
||||
font-size: 18pt;
|
||||
color: #999999;
|
||||
}
|
||||
|
||||
.app-folder-icon {
|
||||
@@ -961,13 +990,21 @@ StScrollBar StButton#vhandle:active {
|
||||
background-image: url("more-results.svg");
|
||||
}
|
||||
|
||||
.app-well-app > .overview-icon.overview-icon-with-label,
|
||||
.grid-search-result .overview-icon.overview-icon-with-label {
|
||||
/* since the label controls its own spacing, it is visually more
|
||||
consistent to use different padding values for top and bottom */
|
||||
padding: 10px 8px 5px 8px;
|
||||
spacing: 4px;
|
||||
}
|
||||
|
||||
.app-well-app > .overview-icon,
|
||||
.show-apps > .overview-icon,
|
||||
.search-provider-icon,
|
||||
.list-search-result,
|
||||
.grid-search-result .overview-icon {
|
||||
border-radius: 4px;
|
||||
padding: 3px;
|
||||
padding: 6px;
|
||||
border: 1px rgba(0,0,0,0);
|
||||
transition-duration: 100ms;
|
||||
text-align: center;
|
||||
@@ -979,13 +1016,13 @@ StScrollBar StButton#vhandle:active {
|
||||
|
||||
.app-folder-popup {
|
||||
-arrow-border-radius: 8px;
|
||||
-arrow-background-color: black;
|
||||
-arrow-background-color: rgba(0,0,0,0.3);
|
||||
-arrow-base: 24px;
|
||||
-arrow-rise: 11px;
|
||||
}
|
||||
|
||||
.app-folder-popup-bin {
|
||||
padding: 15px;
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
.app-well-app.running > .overview-icon {
|
||||
@@ -995,7 +1032,7 @@ StScrollBar StButton#vhandle:active {
|
||||
}
|
||||
|
||||
.app-well-app.app-folder > .overview-icon {
|
||||
background-color: rgba(0,0,0,0.5);
|
||||
background-color: rgba(0,0,0,0.3);
|
||||
}
|
||||
|
||||
.app-well-app:hover > .overview-icon,
|
||||
@@ -1010,7 +1047,7 @@ StScrollBar StButton#vhandle:active {
|
||||
}
|
||||
|
||||
.app-display .app-well-app > .overview-icon {
|
||||
border-radius: 10px;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.list-search-result:hover .list-search-result-description {
|
||||
@@ -1032,12 +1069,14 @@ StScrollBar StButton#vhandle:active {
|
||||
.app-well-app:checked > .overview-icon,
|
||||
.app-well-app:active > .overview-icon,
|
||||
.show-apps:checked > .overview-icon,
|
||||
.show-apps:active > .overview-icon {
|
||||
.show-apps:active > .overview-icon,
|
||||
.search-provider-icon:active,
|
||||
.list-search-result:active {
|
||||
background-gradient-start: rgba(255, 255, 255, .05);
|
||||
background-gradient-end: rgba(255, 255, 255, .15);
|
||||
background-gradient-direction: vertical;
|
||||
border-radius: 4px;
|
||||
box-shadow: inset 0px 1px 2px 0px rgba(0, 0, 0, 1);
|
||||
box-shadow: inset 0px 1px 2px 0px rgba(0, 0, 0, 0.7);
|
||||
transition-duration: 100ms;
|
||||
}
|
||||
|
||||
@@ -1202,6 +1241,10 @@ StScrollBar StButton#vhandle:active {
|
||||
padding-top: 8px;
|
||||
}
|
||||
|
||||
.calendar-month-label:focus {
|
||||
background-color: #999999;
|
||||
}
|
||||
|
||||
.calendar-change-month-back {
|
||||
width: 18px;
|
||||
height: 12px;
|
||||
@@ -1247,6 +1290,10 @@ StScrollBar StButton#vhandle:active {
|
||||
color: #eeeeec;
|
||||
}
|
||||
|
||||
.datemenu-date-label:focus {
|
||||
background-color: #999999;
|
||||
}
|
||||
|
||||
.calendar-day-base {
|
||||
font-size: 9pt;
|
||||
text-align: center;
|
||||
@@ -1617,7 +1664,7 @@ StScrollBar StButton#vhandle:active {
|
||||
}
|
||||
|
||||
.chat-notification-scrollview{
|
||||
max-height: 22em;
|
||||
max-height: 22em;
|
||||
}
|
||||
|
||||
.subscription-message {
|
||||
@@ -1875,6 +1922,10 @@ StScrollBar StButton#vhandle:active {
|
||||
spacing: 42px;
|
||||
}
|
||||
|
||||
.end-session-dialog-list {
|
||||
padding-top: 20px;
|
||||
}
|
||||
|
||||
.end-session-dialog-subject {
|
||||
padding-left: 17px;
|
||||
padding-bottom: 20px;
|
||||
@@ -1908,50 +1959,30 @@ StScrollBar StButton#vhandle:active {
|
||||
height: 32px;
|
||||
}
|
||||
|
||||
.end-session-dialog-app-list {
|
||||
font-size: 10pt;
|
||||
.end-session-dialog-inhibitor-layout {
|
||||
spacing: 16px;
|
||||
max-height: 200px;
|
||||
padding-top: 42px;
|
||||
padding-left: 49px;
|
||||
padding-right: 32px;
|
||||
padding-right: 50px;
|
||||
padding-left: 50px;
|
||||
}
|
||||
|
||||
.end-session-dialog-app-list:rtl {
|
||||
padding-right: 49px;
|
||||
padding-left: 32px;
|
||||
.end-session-dialog-list-header {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.end-session-dialog-app-list-item {
|
||||
color: #ccc;
|
||||
.end-session-dialog-app-list-item,
|
||||
.end-session-dialog-session-list-item {
|
||||
spacing: 1em;
|
||||
}
|
||||
|
||||
.end-session-dialog-app-list-item:hover {
|
||||
color: white;
|
||||
}
|
||||
|
||||
.end-session-dialog-app-list-item:ltr {
|
||||
padding-right: 1em;
|
||||
}
|
||||
|
||||
.end-session-dialog-app-list-item:rtl {
|
||||
padding-left: 1em;
|
||||
}
|
||||
|
||||
.end-session-dialog-app-list-item-icon:ltr {
|
||||
padding-right: 17px;
|
||||
}
|
||||
|
||||
.end-session-dialog-app-list-item-icon:rtl {
|
||||
padding-left: 17px;
|
||||
}
|
||||
|
||||
.end-session-dialog-app-list-item-name {
|
||||
font-size: 10pt;
|
||||
.end-session-dialog-app-list-item-name,
|
||||
.end-session-dialog-session-list-item-name {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.end-session-dialog-app-list-item-description {
|
||||
font-size: 8pt;
|
||||
color: #444444;
|
||||
color: #cccccc;
|
||||
font-size: 10pt;
|
||||
}
|
||||
|
||||
/* ShellMountOperation Dialogs */
|
||||
@@ -2239,8 +2270,6 @@ StScrollBar StButton#vhandle:active {
|
||||
.framed-user-icon {
|
||||
border: 2px solid #8b8b8b;
|
||||
border-radius: 5px;
|
||||
width: 48pt;
|
||||
height: 48pt;
|
||||
background-size: contain;
|
||||
}
|
||||
|
||||
@@ -2267,14 +2296,6 @@ StScrollBar StButton#vhandle:active {
|
||||
/* Reset border and background */
|
||||
border: none;
|
||||
background-color: transparent;
|
||||
|
||||
padding-bottom: 80px;
|
||||
padding-top: 80px;
|
||||
|
||||
border-radius: 16px;
|
||||
min-height: 150px;
|
||||
max-height: 700px;
|
||||
min-width: 350px;
|
||||
}
|
||||
|
||||
.login-dialog-button-box {
|
||||
@@ -2288,6 +2309,7 @@ StScrollBar StButton#vhandle:active {
|
||||
.login-dialog-user-list {
|
||||
spacing: 12px;
|
||||
padding: .2em;
|
||||
width: 23em;
|
||||
}
|
||||
|
||||
.login-dialog-user-list-item {
|
||||
@@ -2449,8 +2471,7 @@ StScrollBar StButton#vhandle:active {
|
||||
background-color: rgba(102, 102, 102, 0.15);
|
||||
}
|
||||
|
||||
.login-dialog-message-warning,
|
||||
.login-dialog-message-info {
|
||||
.login-dialog-message {
|
||||
padding-top: 4px;
|
||||
padding-bottom: 16px;
|
||||
min-height: 2em;
|
||||
@@ -2461,8 +2482,8 @@ StScrollBar StButton#vhandle:active {
|
||||
}
|
||||
|
||||
.login-dialog-message-hint {
|
||||
padding-bottom: 16px;
|
||||
min-height: 2em;
|
||||
padding-top: 0px;
|
||||
padding-bottom: 20px;
|
||||
}
|
||||
|
||||
.user-widget-label {
|
||||
|
67
data/theme/page-indicator-active.svg
Normal file
67
data/theme/page-indicator-active.svg
Normal file
@@ -0,0 +1,67 @@
|
||||
<?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="18"
|
||||
height="18"
|
||||
id="svg4703"
|
||||
version="1.1"
|
||||
inkscape:version="0.48.4 r9939"
|
||||
sodipodi:docname="page-indicator-active.svg">
|
||||
<defs
|
||||
id="defs4705" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="22.197802"
|
||||
inkscape:cx="2.1522887"
|
||||
inkscape:cy="16.782904"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="true"
|
||||
inkscape:grid-bbox="true"
|
||||
inkscape:document-units="px"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1021"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="27"
|
||||
inkscape:window-maximized="1" />
|
||||
<metadata
|
||||
id="metadata4708">
|
||||
<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>
|
||||
<g
|
||||
id="layer1"
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
transform="translate(0,2)">
|
||||
<path
|
||||
transform="matrix(0.72823872,0,0,0.8336417,-1512.2872,-525.55618)"
|
||||
d="m 2099.9808,638.83099 c 0,5.29998 -4.9184,9.59645 -10.9854,9.59645 -6.0671,0 -10.9854,-4.29647 -10.9854,-9.59645 0,-5.29997 4.9183,-9.59645 10.9854,-9.59645 6.067,0 10.9854,4.29648 10.9854,9.59645 z"
|
||||
sodipodi:ry="9.5964489"
|
||||
sodipodi:rx="10.985409"
|
||||
sodipodi:cy="638.83099"
|
||||
sodipodi:cx="2088.9954"
|
||||
id="path4711"
|
||||
style="fill:#fdffff;fill-opacity:0.94117647;stroke:none"
|
||||
sodipodi:type="arc" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 2.1 KiB |
67
data/theme/page-indicator-inactive.svg
Normal file
67
data/theme/page-indicator-inactive.svg
Normal file
@@ -0,0 +1,67 @@
|
||||
<?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="18"
|
||||
height="18"
|
||||
id="svg5266"
|
||||
version="1.1"
|
||||
inkscape:version="0.48.4 r9939"
|
||||
sodipodi:docname="page-indicator-inactive.svg">
|
||||
<defs
|
||||
id="defs5268" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="11.313709"
|
||||
inkscape:cx="13.381365"
|
||||
inkscape:cy="17.859535"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="true"
|
||||
inkscape:grid-bbox="true"
|
||||
inkscape:document-units="px"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1021"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="27"
|
||||
inkscape:window-maximized="1" />
|
||||
<metadata
|
||||
id="metadata5271">
|
||||
<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>
|
||||
<g
|
||||
id="layer1"
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
transform="translate(0,2)">
|
||||
<path
|
||||
sodipodi:type="arc"
|
||||
style="fill:#ffffff;fill-opacity:0;stroke:#ffffff;stroke-width:2.93356276;stroke-miterlimit:4;stroke-opacity:0.39215686;stroke-dasharray:none"
|
||||
id="path5274"
|
||||
sodipodi:cx="2088.9954"
|
||||
sodipodi:cy="638.83099"
|
||||
sodipodi:rx="10.985409"
|
||||
sodipodi:ry="9.5964489"
|
||||
d="m 2099.9808,638.83099 c 0,5.29998 -4.9184,9.59645 -10.9854,9.59645 -6.0671,0 -10.9854,-4.29647 -10.9854,-9.59645 0,-5.29997 4.9183,-9.59645 10.9854,-9.59645 6.067,0 10.9854,4.29648 10.9854,9.59645 z"
|
||||
transform="matrix(0.63720887,0,0,0.72943648,-1322.1264,-458.98661)" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 2.2 KiB |
@@ -112,7 +112,7 @@ expand_content_files=
|
||||
# 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) $(BLUETOOTH_LIBS) $(top_builddir)/src/libgnome-shell.la
|
||||
GTKDOC_LIBS=$(GNOME_SHELL_LIBS) $(BLUETOOTH_LIBS) $(top_builddir)/src/libgnome-shell-menu.la $(top_builddir)/src/libgnome-shell-base.la $(top_builddir)/src/libgnome-shell.la
|
||||
|
||||
# This includes the standard gtk-doc make rules, copied by gtkdocize.
|
||||
include $(top_srcdir)/gtk-doc.make
|
||||
|
@@ -55,6 +55,7 @@ nobase_dist_js_DATA = \
|
||||
ui/extensionSystem.js \
|
||||
ui/extensionDownloader.js \
|
||||
ui/environment.js \
|
||||
ui/focusCaretTracker.js\
|
||||
ui/ibusCandidatePopup.js\
|
||||
ui/grabHelper.js \
|
||||
ui/iconGrid.js \
|
||||
|
@@ -36,8 +36,6 @@ const BeginRequestType = {
|
||||
DONT_PROVIDE_USERNAME: 1
|
||||
};
|
||||
|
||||
let _messageStyleMap;
|
||||
|
||||
const AuthPrompt = new Lang.Class({
|
||||
Name: 'AuthPrompt',
|
||||
|
||||
@@ -109,7 +107,8 @@ const AuthPrompt = new Lang.Class({
|
||||
|
||||
this._entry.grab_key_focus();
|
||||
|
||||
this._message = new St.Label({ opacity: 0 });
|
||||
this._message = new St.Label({ opacity: 0,
|
||||
styleClass: 'login-dialog-message' });
|
||||
this._message.clutter_text.line_wrap = true;
|
||||
this.actor.add(this._message, { x_fill: true, y_align: St.Align.START });
|
||||
|
||||
@@ -120,7 +119,7 @@ const AuthPrompt = new Lang.Class({
|
||||
x_align: St.Align.MIDDLE,
|
||||
y_align: St.Align.END });
|
||||
|
||||
this._defaultButtonWell = new St.Widget();
|
||||
this._defaultButtonWell = new St.Widget({ layout_manager: new Clutter.BinLayout() });
|
||||
this._defaultButtonWellActor = null;
|
||||
|
||||
this._initButtons();
|
||||
@@ -265,10 +264,6 @@ const AuthPrompt = new Lang.Class({
|
||||
|
||||
addActorToDefaultButtonWell: function(actor) {
|
||||
this._defaultButtonWell.add_child(actor);
|
||||
|
||||
actor.add_constraint(new Clutter.AlignConstraint({ source: this._spinner.actor,
|
||||
align_axis: Clutter.AlignAxis.BOTH,
|
||||
factor: 0.5 }));
|
||||
},
|
||||
|
||||
setActorInDefaultButtonWell: function(actor, animate) {
|
||||
@@ -375,27 +370,22 @@ const AuthPrompt = new Lang.Class({
|
||||
});
|
||||
},
|
||||
|
||||
_initMessageStyleMap: function() {
|
||||
if (_messageStyleMap)
|
||||
return;
|
||||
|
||||
_messageStyleMap = {};
|
||||
_messageStyleMap[GdmUtil.MessageType.NONE] = '';
|
||||
_messageStyleMap[GdmUtil.MessageType.ERROR] = 'login-dialog-message-warning';
|
||||
_messageStyleMap[GdmUtil.MessageType.INFO] = 'login-dialog-message-info';
|
||||
_messageStyleMap[GdmUtil.MessageType.HINT] = 'login-dialog-message-hint';
|
||||
|
||||
},
|
||||
|
||||
setMessage: function(message, type) {
|
||||
this._initMessageStyleMap();
|
||||
if (type == GdmUtil.MessageType.ERROR)
|
||||
this._message.add_style_class_name('login-dialog-message-warning');
|
||||
else
|
||||
this._message.remove_style_class_name('login-dialog-message-warning');
|
||||
|
||||
if (type == GdmUtil.MessageType.HINT)
|
||||
this._message.add_style_class_name('login-dialog-message-hint');
|
||||
else
|
||||
this._message.remove_style_class_name('login-dialog-message-hint');
|
||||
|
||||
if (message) {
|
||||
Tweener.removeTweens(this._message);
|
||||
this._message.text = message;
|
||||
this._message.styleClass = _messageStyleMap[type];
|
||||
this._message.opacity = 255;
|
||||
} else {
|
||||
this._message.styleClass = null;
|
||||
this._message.opacity = 0;
|
||||
}
|
||||
},
|
||||
|
@@ -102,11 +102,6 @@ const UserListItem = new Lang.Class({
|
||||
|
||||
syncStyleClasses: function() {
|
||||
this._updateLoggedIn();
|
||||
|
||||
if (global.stage.get_key_focus() == this.actor)
|
||||
this.actor.add_style_pseudo_class('focus');
|
||||
else
|
||||
this.actor.remove_style_pseudo_class('focus');
|
||||
},
|
||||
|
||||
_updateLoggedIn: function() {
|
||||
@@ -314,10 +309,6 @@ const SessionMenuButton = new Lang.Class({
|
||||
this._button.remove_style_pseudo_class('active');
|
||||
}));
|
||||
|
||||
let subtitle = new PopupMenu.PopupMenuItem(_("Session"), { style_class: 'popup-subtitle-menu-item',
|
||||
reactive: false });
|
||||
this._menu.addMenuItem(subtitle);
|
||||
|
||||
this._manager = new PopupMenu.PopupMenuManager({ actor: this._button });
|
||||
this._manager.addMenu(this._menu);
|
||||
|
||||
@@ -393,6 +384,7 @@ const LoginDialog = new Lang.Class({
|
||||
|
||||
_init: function(parentActor) {
|
||||
this.actor = new St.Widget({ accessible_role: Atk.Role.WINDOW,
|
||||
layout_manager: new Clutter.BinLayout(),
|
||||
style_class: 'login-dialog',
|
||||
visible: false });
|
||||
|
||||
@@ -431,11 +423,12 @@ const LoginDialog = new Lang.Class({
|
||||
Lang.bind(this, this._updateLogoTexture));
|
||||
|
||||
this._userSelectionBox = new St.BoxLayout({ style_class: 'login-dialog-user-selection-box',
|
||||
x_align: Clutter.ActorAlign.CENTER,
|
||||
y_align: Clutter.ActorAlign.CENTER,
|
||||
x_expand: true,
|
||||
y_expand: true,
|
||||
vertical: true,
|
||||
visible: false });
|
||||
this._userSelectionBox.add_constraint(new Clutter.AlignConstraint({ source: this.actor,
|
||||
align_axis: Clutter.AlignAxis.BOTH,
|
||||
factor: 0.5 }));
|
||||
this.actor.add_child(this._userSelectionBox);
|
||||
|
||||
this._bannerLabel = new St.Label({ style_class: 'login-dialog-banner',
|
||||
@@ -453,14 +446,7 @@ const LoginDialog = new Lang.Class({
|
||||
this._authPrompt.connect('prompted', Lang.bind(this, this._onPrompted));
|
||||
this._authPrompt.connect('reset', Lang.bind(this, this._onReset));
|
||||
this._authPrompt.hide();
|
||||
|
||||
this._authPrompt.actor.add_constraint(new Clutter.AlignConstraint({ source: this.actor,
|
||||
align_axis: Clutter.AlignAxis.BOTH,
|
||||
factor: 0.5 }));
|
||||
|
||||
this.actor.add_child(this._authPrompt.actor);
|
||||
this._userList.actor.add_constraint(new Clutter.BindConstraint({ source: this._authPrompt.actor,
|
||||
coordinate: Clutter.BindCoordinate.WIDTH }));
|
||||
|
||||
// translators: this message is shown below the user list on the
|
||||
// login screen. It can be activated to reveal an entry for
|
||||
@@ -475,11 +461,7 @@ const LoginDialog = new Lang.Class({
|
||||
x_align: St.Align.START,
|
||||
x_fill: true });
|
||||
|
||||
this._notListedButton.connect('clicked',
|
||||
Lang.bind(this, function() {
|
||||
this._authPrompt.cancelButton.show();
|
||||
this._hideUserListAndLogIn();
|
||||
}));
|
||||
this._notListedButton.connect('clicked', Lang.bind(this, this._hideUserListAskForUsernameAndBeginVerification));
|
||||
|
||||
this._notListedButton.hide();
|
||||
|
||||
@@ -488,14 +470,11 @@ const LoginDialog = new Lang.Class({
|
||||
x_align: St.Align.START,
|
||||
x_fill: true });
|
||||
|
||||
this._logoBin = new St.Bin({ style_class: 'login-dialog-logo-bin', y_expand: true });
|
||||
this._logoBin.set_y_align(Clutter.ActorAlign.END);
|
||||
this._logoBin.add_constraint(new Clutter.AlignConstraint({ source: this.actor,
|
||||
align_axis: Clutter.AlignAxis.X_AXIS,
|
||||
factor: 0.5 }));
|
||||
this._logoBin.add_constraint(new Clutter.AlignConstraint({ source: this.actor,
|
||||
align_axis: Clutter.AlignAxis.Y_AXIS,
|
||||
factor: 1.0 }));
|
||||
this._logoBin = new St.Widget({ style_class: 'login-dialog-logo-bin',
|
||||
x_align: Clutter.ActorAlign.CENTER,
|
||||
y_align: Clutter.ActorAlign.END,
|
||||
x_expand: true,
|
||||
y_expand: true });
|
||||
this.actor.add_child(this._logoBin);
|
||||
this._updateLogo();
|
||||
|
||||
@@ -568,11 +547,10 @@ const LoginDialog = new Lang.Class({
|
||||
if (this._logoFileUri != uri)
|
||||
return;
|
||||
|
||||
let icon = null;
|
||||
this._logoBin.destroy_all_children();
|
||||
if (this._logoFileUri)
|
||||
icon = this._textureCache.load_uri_async(this._logoFileUri,
|
||||
-1, _LOGO_ICON_HEIGHT);
|
||||
this._logoBin.set_child(icon);
|
||||
this._logoBin.add_child(this._textureCache.load_uri_async(this._logoFileUri,
|
||||
-1, _LOGO_ICON_HEIGHT));
|
||||
},
|
||||
|
||||
_updateLogo: function() {
|
||||
@@ -595,11 +573,13 @@ const LoginDialog = new Lang.Class({
|
||||
|
||||
this._user = null;
|
||||
|
||||
if (this._disableUserList) {
|
||||
this._authPrompt.cancelButton.hide();
|
||||
this._hideUserListAndLogIn();
|
||||
if (beginRequest == AuthPrompt.BeginRequestType.PROVIDE_USERNAME) {
|
||||
if (!this._disableUserList)
|
||||
this._showUserList();
|
||||
else
|
||||
this._hideUserListAskForUsernameAndBeginVerification();
|
||||
} else {
|
||||
this._showUserList();
|
||||
this._hideUserListAndBeginVerification();
|
||||
}
|
||||
},
|
||||
|
||||
@@ -608,10 +588,11 @@ const LoginDialog = new Lang.Class({
|
||||
},
|
||||
|
||||
_shouldShowSessionMenuButton: function() {
|
||||
if (this._authPrompt.verificationStatus != AuthPrompt.AuthPromptStatus.VERIFYING)
|
||||
if (this._authPrompt.verificationStatus != AuthPrompt.AuthPromptStatus.VERIFYING &&
|
||||
this._authPrompt.verificationStatus != AuthPrompt.AuthPromptStatus.VERIFICATION_FAILED)
|
||||
return false;
|
||||
|
||||
if (this._user && this._user.is_logged_in())
|
||||
if (this._user && this._user.is_loaded && this._user.is_logged_in())
|
||||
return false;
|
||||
|
||||
return true;
|
||||
@@ -655,6 +636,7 @@ const LoginDialog = new Lang.Class({
|
||||
this._authPrompt.disconnect(nextSignalId);
|
||||
this._authPrompt.updateSensitivity(false);
|
||||
let answer = this._authPrompt.getAnswer();
|
||||
this._user = this._userManager.get_user(answer);
|
||||
this._authPrompt.clear();
|
||||
this._authPrompt.startSpinning();
|
||||
this._authPrompt.begin({ userName: answer });
|
||||
@@ -911,6 +893,12 @@ const LoginDialog = new Lang.Class({
|
||||
{ sortGroup: CtrlAltTab.SortGroup.MIDDLE });
|
||||
this._userList.actor.grab_key_focus();
|
||||
this.actor.show();
|
||||
this.actor.opacity = 0;
|
||||
|
||||
Tweener.addTween(this.actor,
|
||||
{ opacity: 255,
|
||||
time: 1,
|
||||
transition: 'easeInQuad' });
|
||||
|
||||
return true;
|
||||
},
|
||||
@@ -922,5 +910,9 @@ const LoginDialog = new Lang.Class({
|
||||
addCharacter: function(unichar) {
|
||||
this._authPrompt.addCharacter(unichar);
|
||||
},
|
||||
|
||||
finish: function(onComplete) {
|
||||
this._authPrompt.finish(onComplete);
|
||||
},
|
||||
});
|
||||
Signals.addSignalMethods(LoginDialog.prototype);
|
||||
|
@@ -381,21 +381,38 @@ const ShellUserVerifier = new Lang.Class({
|
||||
|
||||
_startService: function(serviceName) {
|
||||
this._hold.acquire();
|
||||
this._userVerifier.call_begin_verification_for_user(serviceName,
|
||||
this._userName,
|
||||
this._cancellable,
|
||||
Lang.bind(this, function(obj, result) {
|
||||
try {
|
||||
obj.call_begin_verification_for_user_finish(result);
|
||||
} catch(e if e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.CANCELLED)) {
|
||||
return;
|
||||
} catch(e) {
|
||||
this._reportInitError('Failed to start verification for user', e);
|
||||
return;
|
||||
}
|
||||
if (this._userName) {
|
||||
this._userVerifier.call_begin_verification_for_user(serviceName,
|
||||
this._userName,
|
||||
this._cancellable,
|
||||
Lang.bind(this, function(obj, result) {
|
||||
try {
|
||||
obj.call_begin_verification_for_user_finish(result);
|
||||
} catch(e if e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.CANCELLED)) {
|
||||
return;
|
||||
} catch(e) {
|
||||
this._reportInitError('Failed to start verification for user', e);
|
||||
return;
|
||||
}
|
||||
|
||||
this._hold.release();
|
||||
}));
|
||||
this._hold.release();
|
||||
}));
|
||||
} else {
|
||||
this._userVerifier.call_begin_verification(serviceName,
|
||||
this._cancellable,
|
||||
Lang.bind(this, function(obj, result) {
|
||||
try {
|
||||
obj.call_begin_verification_finish(result);
|
||||
} catch(e if e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.CANCELLED)) {
|
||||
return;
|
||||
} catch(e) {
|
||||
this._reportInitError('Failed to start verification', e);
|
||||
return;
|
||||
}
|
||||
|
||||
this._hold.release();
|
||||
}));
|
||||
}
|
||||
},
|
||||
|
||||
_beginVerification: function() {
|
||||
|
@@ -8,21 +8,9 @@ const Shell = imports.gi.Shell;
|
||||
const Signals = imports.signals;
|
||||
|
||||
const SystemdLoginManagerIface = <interface name='org.freedesktop.login1.Manager'>
|
||||
<method name='PowerOff'>
|
||||
<arg type='b' direction='in'/>
|
||||
</method>
|
||||
<method name='Reboot'>
|
||||
<arg type='b' direction='in'/>
|
||||
</method>
|
||||
<method name='Suspend'>
|
||||
<arg type='b' direction='in'/>
|
||||
</method>
|
||||
<method name='CanPowerOff'>
|
||||
<arg type='s' direction='out'/>
|
||||
</method>
|
||||
<method name='CanReboot'>
|
||||
<arg type='s' direction='out'/>
|
||||
</method>
|
||||
<method name='CanSuspend'>
|
||||
<arg type='s' direction='out'/>
|
||||
</method>
|
||||
@@ -159,24 +147,6 @@ const LoginManagerSystemd = new Lang.Class({
|
||||
}));
|
||||
},
|
||||
|
||||
canPowerOff: function(asyncCallback) {
|
||||
this._proxy.CanPowerOffRemote(function(result, error) {
|
||||
if (error)
|
||||
asyncCallback(false);
|
||||
else
|
||||
asyncCallback(result[0] != 'no');
|
||||
});
|
||||
},
|
||||
|
||||
canReboot: function(asyncCallback) {
|
||||
this._proxy.CanRebootRemote(function(result, error) {
|
||||
if (error)
|
||||
asyncCallback(false);
|
||||
else
|
||||
asyncCallback(result[0] != 'no');
|
||||
});
|
||||
},
|
||||
|
||||
canSuspend: function(asyncCallback) {
|
||||
this._proxy.CanSuspendRemote(function(result, error) {
|
||||
if (error)
|
||||
@@ -195,14 +165,6 @@ const LoginManagerSystemd = new Lang.Class({
|
||||
});
|
||||
},
|
||||
|
||||
powerOff: function() {
|
||||
this._proxy.PowerOffRemote(true);
|
||||
},
|
||||
|
||||
reboot: function() {
|
||||
this._proxy.RebootRemote(true);
|
||||
},
|
||||
|
||||
suspend: function() {
|
||||
this._proxy.SuspendRemote(true);
|
||||
},
|
||||
@@ -264,24 +226,6 @@ const LoginManagerConsoleKit = new Lang.Class({
|
||||
}));
|
||||
},
|
||||
|
||||
canPowerOff: function(asyncCallback) {
|
||||
this._proxy.CanStopRemote(function(result, error) {
|
||||
if (error)
|
||||
asyncCallback(false);
|
||||
else
|
||||
asyncCallback(result[0]);
|
||||
});
|
||||
},
|
||||
|
||||
canReboot: function(asyncCallback) {
|
||||
this._proxy.CanRestartRemote(function(result, error) {
|
||||
if (error)
|
||||
asyncCallback(false);
|
||||
else
|
||||
asyncCallback(result[0]);
|
||||
});
|
||||
},
|
||||
|
||||
canSuspend: function(asyncCallback) {
|
||||
asyncCallback(false);
|
||||
},
|
||||
@@ -290,14 +234,6 @@ const LoginManagerConsoleKit = new Lang.Class({
|
||||
asyncCallback([]);
|
||||
},
|
||||
|
||||
powerOff: function() {
|
||||
this._proxy.StopRemote();
|
||||
},
|
||||
|
||||
reboot: function() {
|
||||
this._proxy.RestartRemote();
|
||||
},
|
||||
|
||||
suspend: function() {
|
||||
this.emit('prepare-for-sleep', true);
|
||||
this.emit('prepare-for-sleep', false);
|
||||
|
@@ -20,7 +20,7 @@ const ObjectManagerIface = <interface name="org.freedesktop.DBus.ObjectManager">
|
||||
<arg name="objectPath" type="o"/>
|
||||
<arg name="interfaces" type="as" />
|
||||
</signal>
|
||||
</interface>
|
||||
</interface>;
|
||||
|
||||
const ObjectManagerInfo = Gio.DBusInterfaceInfo.new_for_xml(ObjectManagerIface);
|
||||
|
||||
@@ -71,21 +71,24 @@ const ObjectManager = new Lang.Class({
|
||||
},
|
||||
|
||||
_addInterface: function(objectPath, interfaceName, onFinished) {
|
||||
let info = this._interfaceInfos[interfaceName];
|
||||
let info = this._interfaceInfos[interfaceName];
|
||||
|
||||
if (!info)
|
||||
return;
|
||||
if (!info) {
|
||||
if (onFinished)
|
||||
onFinished();
|
||||
return;
|
||||
}
|
||||
|
||||
let proxy = new Gio.DBusProxy({ g_connection: this._connection,
|
||||
g_name: this._serviceName,
|
||||
g_object_path: objectPath,
|
||||
g_interface_name: interfaceName,
|
||||
g_interface_info: info,
|
||||
g_flags: Gio.DBusProxyFlags.NONE });
|
||||
let proxy = new Gio.DBusProxy({ g_connection: this._connection,
|
||||
g_name: this._serviceName,
|
||||
g_object_path: objectPath,
|
||||
g_interface_name: interfaceName,
|
||||
g_interface_info: info,
|
||||
g_flags: Gio.DBusProxyFlags.NONE });
|
||||
|
||||
proxy.init_async(GLib.PRIORITY_DEFAULT,
|
||||
this._cancellable,
|
||||
Lang.bind(this, function(initable, result) {
|
||||
proxy.init_async(GLib.PRIORITY_DEFAULT,
|
||||
this._cancellable,
|
||||
Lang.bind(this, function(initable, result) {
|
||||
let error = null;
|
||||
try {
|
||||
initable.init_finish(result);
|
||||
|
@@ -355,10 +355,13 @@ const WindowSwitcherPopup = new Lang.Class({
|
||||
Name: 'WindowSwitcherPopup',
|
||||
Extends: SwitcherPopup.SwitcherPopup,
|
||||
|
||||
_init: function(items) {
|
||||
this.parent(items);
|
||||
this._settings = new Gio.Settings({ schema: 'org.gnome.shell.window-switcher' });
|
||||
},
|
||||
|
||||
_getWindowList: function() {
|
||||
let settings = new Gio.Settings({ schema: 'org.gnome.shell.window-switcher' });
|
||||
let workspace = settings.get_boolean('current-workspace-only') ? global.screen.get_active_workspace()
|
||||
: null;
|
||||
let workspace = this._settings.get_boolean('current-workspace-only') ? global.screen.get_active_workspace() : null;
|
||||
return global.display.get_tab_list(Meta.TabList.NORMAL, global.screen, workspace);
|
||||
},
|
||||
|
||||
@@ -368,7 +371,8 @@ const WindowSwitcherPopup = new Lang.Class({
|
||||
if (windows.length == 0)
|
||||
return false;
|
||||
|
||||
this._switcherList = new WindowList(windows);
|
||||
let mode = this._settings.get_enum('app-icon-mode');
|
||||
this._switcherList = new WindowList(windows, mode);
|
||||
this._items = this._switcherList.icons;
|
||||
|
||||
return true;
|
||||
@@ -663,7 +667,7 @@ const ThumbnailList = new Lang.Class({
|
||||
const WindowIcon = new Lang.Class({
|
||||
Name: 'WindowIcon',
|
||||
|
||||
_init: function(window) {
|
||||
_init: function(window, mode) {
|
||||
this.window = window;
|
||||
|
||||
this.actor = new St.BoxLayout({ style_class: 'alt-tab-app',
|
||||
@@ -681,8 +685,7 @@ const WindowIcon = new Lang.Class({
|
||||
|
||||
this._icon.destroy_all_children();
|
||||
|
||||
let settings = new Gio.Settings({ schema: 'org.gnome.shell.window-switcher' });
|
||||
switch (settings.get_enum('app-icon-mode')) {
|
||||
switch (mode) {
|
||||
case AppIconMode.THUMBNAIL_ONLY:
|
||||
size = WINDOW_PREVIEW_SIZE;
|
||||
this._icon.add_actor(_createWindowClone(mutterWindow, WINDOW_PREVIEW_SIZE));
|
||||
@@ -720,7 +723,7 @@ const WindowList = new Lang.Class({
|
||||
Name: 'WindowList',
|
||||
Extends: SwitcherPopup.SwitcherList,
|
||||
|
||||
_init : function(windows) {
|
||||
_init : function(windows, mode) {
|
||||
this.parent(true);
|
||||
|
||||
this._label = new St.Label({ x_align: Clutter.ActorAlign.CENTER,
|
||||
@@ -732,7 +735,7 @@ const WindowList = new Lang.Class({
|
||||
|
||||
for (let i = 0; i < windows.length; i++) {
|
||||
let win = windows[i];
|
||||
let icon = new WindowIcon(win);
|
||||
let icon = new WindowIcon(win, mode);
|
||||
|
||||
this.addItem(icon.actor, icon.label);
|
||||
this.icons.push(icon);
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -14,15 +14,15 @@ const AppFavorites = new Lang.Class({
|
||||
_init: function() {
|
||||
this._favorites = {};
|
||||
global.settings.connect('changed::' + this.FAVORITE_APPS_KEY, Lang.bind(this, this._onFavsChanged));
|
||||
this._reload();
|
||||
this.reload();
|
||||
},
|
||||
|
||||
_onFavsChanged: function() {
|
||||
this._reload();
|
||||
this.reload();
|
||||
this.emit('changed');
|
||||
},
|
||||
|
||||
_reload: function() {
|
||||
reload: function() {
|
||||
let ids = global.settings.get_strv(this.FAVORITE_APPS_KEY);
|
||||
let appSys = Shell.AppSystem.get_default();
|
||||
let apps = ids.map(function (id) {
|
||||
|
@@ -639,5 +639,18 @@ const BoxPointer = new Lang.Class({
|
||||
|
||||
get opacity() {
|
||||
return this.actor.opacity;
|
||||
},
|
||||
|
||||
updateArrowSide: function(side) {
|
||||
this._arrowSide = side;
|
||||
this._border.queue_repaint();
|
||||
},
|
||||
|
||||
getPadding: function(side) {
|
||||
return this.bin.get_theme_node().get_padding(side);
|
||||
},
|
||||
|
||||
getArrowHeight: function() {
|
||||
return this.actor.get_theme_node().get_length('-arrow-rise');
|
||||
}
|
||||
});
|
||||
|
@@ -444,14 +444,17 @@ const Calendar = new Lang.Class({
|
||||
{ row: 0, col: 0, col_span: offsetCols + 7 });
|
||||
|
||||
this._backButton = new St.Button({ style_class: 'calendar-change-month-back',
|
||||
accessible_name: _("Previous month"),
|
||||
can_focus: true });
|
||||
this._topBox.add(this._backButton);
|
||||
this._backButton.connect('clicked', Lang.bind(this, this._onPrevMonthButtonClicked));
|
||||
|
||||
this._monthLabel = new St.Label({style_class: 'calendar-month-label'});
|
||||
this._monthLabel = new St.Label({style_class: 'calendar-month-label',
|
||||
can_focus: true });
|
||||
this._topBox.add(this._monthLabel, { expand: true, x_fill: false, x_align: St.Align.MIDDLE });
|
||||
|
||||
this._forwardButton = new St.Button({ style_class: 'calendar-change-month-forward',
|
||||
accessible_name: _("Next month"),
|
||||
can_focus: true });
|
||||
this._topBox.add(this._forwardButton);
|
||||
this._forwardButton.connect('clicked', Lang.bind(this, this._onNextMonthButtonClicked));
|
||||
|
@@ -380,11 +380,7 @@ const VPNRequestHandler = new Lang.Class({
|
||||
this._childPid = pid;
|
||||
this._stdin = new Gio.UnixOutputStream({ fd: stdin, close_fd: true });
|
||||
this._stdout = new Gio.UnixInputStream({ fd: stdout, close_fd: true });
|
||||
// We need this one too, even if don't actually care of what the process
|
||||
// has to say on stderr, because otherwise the fd opened by g_spawn_async_with_pipes
|
||||
// is kept open indefinitely
|
||||
let stderrStream = new Gio.UnixInputStream({ fd: stderr, close_fd: true });
|
||||
stderrStream.close(null);
|
||||
GLib.close(stderr);
|
||||
this._dataStdout = new Gio.DataInputStream({ base_stream: this._stdout });
|
||||
|
||||
if (this._newStylePlugin)
|
||||
|
@@ -423,7 +423,10 @@ const Dash = new Lang.Class({
|
||||
|
||||
this._appSystem = Shell.AppSystem.get_default();
|
||||
|
||||
this._appSystem.connect('installed-changed', Lang.bind(this, this._queueRedisplay));
|
||||
this._appSystem.connect('installed-changed', Lang.bind(this, function() {
|
||||
AppFavorites.getAppFavorites().reload();
|
||||
this._queueRedisplay();
|
||||
}));
|
||||
AppFavorites.getAppFavorites().connect('changed', Lang.bind(this, this._queueRedisplay));
|
||||
this._appSystem.connect('app-state-changed', Lang.bind(this, this._queueRedisplay));
|
||||
|
||||
@@ -502,15 +505,21 @@ const Dash = new Lang.Class({
|
||||
Main.queueDeferredWork(this._workId);
|
||||
},
|
||||
|
||||
_hookUpLabel: function(item) {
|
||||
_hookUpLabel: function(item, appIcon) {
|
||||
item.child.connect('notify::hover', Lang.bind(this, function() {
|
||||
this._onHover(item);
|
||||
this._syncLabel(item, appIcon);
|
||||
}));
|
||||
|
||||
Main.overview.connect('hiding', Lang.bind(this, function() {
|
||||
this._labelShowing = false;
|
||||
item.hideLabel();
|
||||
}));
|
||||
|
||||
if (appIcon) {
|
||||
appIcon.connect('sync-tooltip', Lang.bind(this, function() {
|
||||
this._syncLabel(item, appIcon);
|
||||
}));
|
||||
}
|
||||
},
|
||||
|
||||
_createAppItem: function(app) {
|
||||
@@ -539,7 +548,7 @@ const Dash = new Lang.Class({
|
||||
item.setLabelText(app.get_name());
|
||||
|
||||
appIcon.icon.setIconSize(this.iconSize);
|
||||
this._hookUpLabel(item);
|
||||
this._hookUpLabel(item, appIcon);
|
||||
|
||||
return item;
|
||||
},
|
||||
@@ -557,8 +566,10 @@ const Dash = new Lang.Class({
|
||||
}
|
||||
},
|
||||
|
||||
_onHover: function (item) {
|
||||
if (item.child.get_hover()) {
|
||||
_syncLabel: function (item, appIcon) {
|
||||
let shouldShow = appIcon ? appIcon.shouldShowTooltip() : item.child.get_hover();
|
||||
|
||||
if (shouldShow) {
|
||||
if (this._showLabelTimeoutId == 0) {
|
||||
let timeout = this._labelShowing ? 0 : DASH_ITEM_HOVER_TIMEOUT;
|
||||
this._showLabelTimeoutId = Mainloop.timeout_add(timeout,
|
||||
|
@@ -50,6 +50,7 @@ const DateMenuButton = new Lang.Class({
|
||||
this.parent(menuAlignment);
|
||||
|
||||
this._clockDisplay = new St.Label({ y_align: Clutter.ActorAlign.CENTER });
|
||||
this.actor.label_actor = this._clockDisplay;
|
||||
this.actor.add_actor(this._clockDisplay);
|
||||
this.actor.add_style_class_name ('clock-display');
|
||||
|
||||
@@ -62,9 +63,8 @@ const DateMenuButton = new Lang.Class({
|
||||
hbox.add(vbox);
|
||||
|
||||
// Date
|
||||
this._date = new St.Label();
|
||||
this.actor.label_actor = this._clockDisplay;
|
||||
this._date.style_class = 'datemenu-date-label';
|
||||
this._date = new St.Label({ style_class: 'datemenu-date-label',
|
||||
can_focus: true });
|
||||
vbox.add(this._date);
|
||||
|
||||
this._eventList = new Calendar.EventsList();
|
||||
|
10
js/ui/dnd.js
10
js/ui/dnd.js
@@ -517,11 +517,6 @@ const _Draggable = new Lang.Class({
|
||||
},
|
||||
|
||||
_cancelDrag: function(eventTime) {
|
||||
if (this._updateHoverId) {
|
||||
GLib.source_remove(this._updateHoverId);
|
||||
this._updateHoverId = 0;
|
||||
}
|
||||
|
||||
this.emit('drag-cancelled', eventTime);
|
||||
this._dragInProgress = false;
|
||||
let [snapBackX, snapBackY, snapBackScale] = this._getRestoreLocation();
|
||||
@@ -617,6 +612,11 @@ const _Draggable = new Lang.Class({
|
||||
this._lastEnterActor = null;
|
||||
}
|
||||
|
||||
if (this._updateHoverId) {
|
||||
GLib.source_remove(this._updateHoverId);
|
||||
this._updateHoverId = 0;
|
||||
}
|
||||
|
||||
this._dragActor = undefined;
|
||||
currentDraggable = null;
|
||||
}
|
||||
|
@@ -20,7 +20,6 @@
|
||||
|
||||
const Lang = imports.lang;
|
||||
const Mainloop = imports.mainloop;
|
||||
const Signals = imports.signals;
|
||||
|
||||
const AccountsService = imports.gi.AccountsService;
|
||||
const Clutter = imports.gi.Clutter;
|
||||
@@ -32,7 +31,7 @@ const St = imports.gi.St;
|
||||
const Shell = imports.gi.Shell;
|
||||
|
||||
const GnomeSession = imports.misc.gnomeSession;
|
||||
const Main = imports.ui.main;
|
||||
const LoginManager = imports.misc.loginManager;
|
||||
const ModalDialog = imports.ui.modalDialog;
|
||||
const Tweener = imports.ui.tweener;
|
||||
const UserWidget = imports.ui.userWidget;
|
||||
@@ -62,63 +61,96 @@ const EndSessionDialogIface = <interface name="org.gnome.SessionManager.EndSessi
|
||||
const logoutDialogContent = {
|
||||
subjectWithUser: C_("title", "Log Out %s"),
|
||||
subject: C_("title", "Log Out"),
|
||||
inhibitedDescription: _("Click Log Out to quit these applications and log out of the system."),
|
||||
uninhibitedDescriptionWithUser: function(user, seconds) {
|
||||
descriptionWithUser: function(user, seconds) {
|
||||
return ngettext("%s will be logged out automatically in %d second.",
|
||||
"%s will be logged out automatically in %d seconds.",
|
||||
seconds).format(user, seconds);
|
||||
},
|
||||
uninhibitedDescription: function(seconds) {
|
||||
description: function(seconds) {
|
||||
return ngettext("You will be logged out automatically in %d second.",
|
||||
"You will be logged out automatically in %d seconds.",
|
||||
seconds).format(seconds);
|
||||
},
|
||||
endDescription: _("Logging out of the system."),
|
||||
confirmButtons: [{ signal: 'ConfirmedLogout',
|
||||
label: C_("button", "Log Out") }],
|
||||
iconStyleClass: 'end-session-dialog-logout-icon'
|
||||
iconStyleClass: 'end-session-dialog-logout-icon',
|
||||
showOtherSessions: false,
|
||||
};
|
||||
|
||||
const shutdownDialogContent = {
|
||||
subject: C_("title", "Power Off"),
|
||||
inhibitedDescription: _("Click Power Off to quit these applications and power off the system."),
|
||||
uninhibitedDescription: function(seconds) {
|
||||
description: function(seconds) {
|
||||
return ngettext("The system will power off automatically in %d second.",
|
||||
"The system will power off automatically in %d seconds.",
|
||||
seconds).format(seconds);
|
||||
},
|
||||
endDescription: _("Powering off the system."),
|
||||
confirmButtons: [{ signal: 'ConfirmedReboot',
|
||||
label: C_("button", "Restart") },
|
||||
{ signal: 'ConfirmedShutdown',
|
||||
label: C_("button", "Power Off") }],
|
||||
iconName: 'system-shutdown-symbolic',
|
||||
iconStyleClass: 'end-session-dialog-shutdown-icon'
|
||||
iconStyleClass: 'end-session-dialog-shutdown-icon',
|
||||
showOtherSessions: true,
|
||||
};
|
||||
|
||||
const restartDialogContent = {
|
||||
subject: C_("title", "Restart"),
|
||||
inhibitedDescription: _("Click Restart to quit these applications and restart the system."),
|
||||
uninhibitedDescription: function(seconds) {
|
||||
description: function(seconds) {
|
||||
return ngettext("The system will restart automatically in %d second.",
|
||||
"The system will restart automatically in %d seconds.",
|
||||
seconds).format(seconds);
|
||||
},
|
||||
endDescription: _("Restarting the system."),
|
||||
confirmButtons: [{ signal: 'ConfirmedReboot',
|
||||
label: C_("button", "Restart") }],
|
||||
iconName: 'view-refresh-symbolic',
|
||||
iconStyleClass: 'end-session-dialog-shutdown-icon'
|
||||
iconStyleClass: 'end-session-dialog-shutdown-icon',
|
||||
showOtherSessions: true,
|
||||
};
|
||||
|
||||
const restartInstallDialogContent = {
|
||||
|
||||
subject: C_("title", "Restart & Install Updates"),
|
||||
description: function(seconds) {
|
||||
return ngettext("The system will automatically restart and install updates in %d second.",
|
||||
"The system will automatically restart and install updates in %d seconds.",
|
||||
seconds).format(seconds);
|
||||
},
|
||||
confirmButtons: [{ signal: 'ConfirmedReboot',
|
||||
label: C_("button", "Restart & Install") }],
|
||||
iconName: 'view-refresh-symbolic',
|
||||
iconStyleClass: 'end-session-dialog-shutdown-icon',
|
||||
showOtherSessions: true,
|
||||
};
|
||||
|
||||
const DialogContent = {
|
||||
0 /* GSM_SHELL_END_SESSION_DIALOG_TYPE_LOGOUT */: logoutDialogContent,
|
||||
1 /* GSM_SHELL_END_SESSION_DIALOG_TYPE_SHUTDOWN */: shutdownDialogContent,
|
||||
2 /* GSM_SHELL_END_SESSION_DIALOG_TYPE_RESTART */: restartDialogContent
|
||||
2 /* GSM_SHELL_END_SESSION_DIALOG_TYPE_RESTART */: restartDialogContent,
|
||||
3: restartInstallDialogContent
|
||||
};
|
||||
|
||||
const MAX_USERS_IN_SESSION_DIALOG = 5;
|
||||
|
||||
const LogindSessionIface = <interface name='org.freedesktop.login1.Session'>
|
||||
<property name="Id" type="s" access="read"/>
|
||||
<property name="Remote" type="b" access="read"/>
|
||||
<property name="Class" type="s" access="read"/>
|
||||
<property name="Type" type="s" access="read"/>
|
||||
<property name="State" type="s" access="read"/>
|
||||
</interface>;
|
||||
|
||||
const LogindSession = Gio.DBusProxy.makeProxyWrapper(LogindSessionIface);
|
||||
|
||||
function findAppFromInhibitor(inhibitor) {
|
||||
let [desktopFile] = inhibitor.GetAppIdSync();
|
||||
let desktopFile;
|
||||
try {
|
||||
[desktopFile] = inhibitor.GetAppIdSync();
|
||||
} catch(e) {
|
||||
// XXX -- sometimes JIT inhibitors generated by gnome-session
|
||||
// get removed too soon. Don't fail in this case.
|
||||
log('gnome-session gave us a dead inhibitor: %s'.format(inhibitor.get_object_path()));
|
||||
return null;
|
||||
}
|
||||
|
||||
if (!GLib.str_has_suffix(desktopFile, '.desktop'))
|
||||
desktopFile += '.desktop';
|
||||
@@ -126,58 +158,6 @@ function findAppFromInhibitor(inhibitor) {
|
||||
return Shell.AppSystem.get_default().lookup_heuristic_basename(desktopFile);
|
||||
}
|
||||
|
||||
const ListItem = new Lang.Class({
|
||||
Name: 'ListItem',
|
||||
|
||||
_init: function(app, reason) {
|
||||
this._app = app;
|
||||
this._reason = reason;
|
||||
|
||||
if (this._reason == null)
|
||||
this._reason = '';
|
||||
|
||||
let layout = new St.BoxLayout({ vertical: false});
|
||||
|
||||
this.actor = new St.Button({ style_class: 'end-session-dialog-app-list-item',
|
||||
can_focus: true,
|
||||
child: layout,
|
||||
reactive: true,
|
||||
x_align: St.Align.START,
|
||||
x_fill: true });
|
||||
|
||||
this._icon = this._app.create_icon_texture(_ITEM_ICON_SIZE);
|
||||
|
||||
let iconBin = new St.Bin({ style_class: 'end-session-dialog-app-list-item-icon',
|
||||
child: this._icon });
|
||||
layout.add(iconBin);
|
||||
|
||||
let textLayout = new St.BoxLayout({ style_class: 'end-session-dialog-app-list-item-text-box',
|
||||
vertical: true });
|
||||
layout.add(textLayout);
|
||||
|
||||
this._nameLabel = new St.Label({ text: this._app.get_name(),
|
||||
style_class: 'end-session-dialog-app-list-item-name' });
|
||||
textLayout.add(this._nameLabel,
|
||||
{ expand: false,
|
||||
x_fill: true });
|
||||
|
||||
this._descriptionLabel = new St.Label({ text: this._reason,
|
||||
style_class: 'end-session-dialog-app-list-item-description' });
|
||||
this.actor.label_actor = this._nameLabel;
|
||||
textLayout.add(this._descriptionLabel,
|
||||
{ expand: true,
|
||||
x_fill: true });
|
||||
|
||||
this.actor.connect('clicked', Lang.bind(this, this._onClicked));
|
||||
},
|
||||
|
||||
_onClicked: function() {
|
||||
this.emit('activate');
|
||||
this._app.activate();
|
||||
}
|
||||
});
|
||||
Signals.addSignalMethods(ListItem.prototype);
|
||||
|
||||
// The logout timer only shows updates every 10 seconds
|
||||
// until the last 10 seconds, then it shows updates every
|
||||
// second. This function takes a given time and returns
|
||||
@@ -228,22 +208,23 @@ const EndSessionDialog = new Lang.Class({
|
||||
this.parent({ styleClass: 'end-session-dialog',
|
||||
destroyOnClose: false });
|
||||
|
||||
this._user = AccountsService.UserManager.get_default().get_user(GLib.get_user_name());
|
||||
this._loginManager = LoginManager.getLoginManager();
|
||||
this._userManager = AccountsService.UserManager.get_default();
|
||||
this._user = this._userManager.get_user(GLib.get_user_name());
|
||||
this._updatesFile = Gio.File.new_for_path('/system-update');
|
||||
|
||||
this._secondsLeft = 0;
|
||||
this._totalSecondsToStayOpen = 0;
|
||||
this._inhibitors = [];
|
||||
this._applications = [];
|
||||
this._sessions = [];
|
||||
|
||||
this.connect('destroy',
|
||||
Lang.bind(this, this._onDestroy));
|
||||
this.connect('opened',
|
||||
Lang.bind(this, this._onOpened));
|
||||
|
||||
this._userLoadedId = this._user.connect('notify::is_loaded',
|
||||
Lang.bind(this, this._updateContent));
|
||||
|
||||
this._userChangedId = this._user.connect('changed',
|
||||
Lang.bind(this, this._updateContent));
|
||||
this._userLoadedId = this._user.connect('notify::is_loaded', Lang.bind(this, this._sync));
|
||||
this._userChangedId = this._user.connect('changed', Lang.bind(this, this._sync));
|
||||
|
||||
let mainContentLayout = new St.BoxLayout({ vertical: false });
|
||||
this.contentLayout.add(mainContentLayout,
|
||||
@@ -275,28 +256,28 @@ const EndSessionDialog = new Lang.Class({
|
||||
{ y_fill: true,
|
||||
y_align: St.Align.START });
|
||||
|
||||
let scrollView = new St.ScrollView({ style_class: 'end-session-dialog-app-list'});
|
||||
scrollView.set_policy(Gtk.PolicyType.NEVER,
|
||||
Gtk.PolicyType.AUTOMATIC);
|
||||
this.contentLayout.add(scrollView,
|
||||
this._scrollView = new St.ScrollView({ style_class: 'end-session-dialog-list' });
|
||||
this._scrollView.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC);
|
||||
this.contentLayout.add(this._scrollView,
|
||||
{ x_fill: true,
|
||||
y_fill: true });
|
||||
scrollView.hide();
|
||||
this._scrollView.hide();
|
||||
|
||||
this._inhibitorSection = new St.BoxLayout({ vertical: true,
|
||||
style_class: 'end-session-dialog-inhibitor-layout' });
|
||||
this._scrollView.add_actor(this._inhibitorSection);
|
||||
|
||||
this._applicationHeader = new St.Label({ style_class: 'end-session-dialog-list-header',
|
||||
text: _("Some applications are busy or have unsaved work.") });
|
||||
this._applicationList = new St.BoxLayout({ vertical: true });
|
||||
scrollView.add_actor(this._applicationList);
|
||||
this._inhibitorSection.add_actor(this._applicationHeader);
|
||||
this._inhibitorSection.add_actor(this._applicationList);
|
||||
|
||||
this._applicationList.connect('actor-added',
|
||||
Lang.bind(this, function() {
|
||||
if (this._applicationList.get_n_children() == 1)
|
||||
scrollView.show();
|
||||
}));
|
||||
|
||||
this._applicationList.connect('actor-removed',
|
||||
Lang.bind(this, function() {
|
||||
if (this._applicationList.get_n_children() == 0)
|
||||
scrollView.hide();
|
||||
}));
|
||||
this._sessionHeader = new St.Label({ style_class: 'end-session-dialog-list-header',
|
||||
text: _("Other users are logged in.") });
|
||||
this._sessionList = new St.BoxLayout({ vertical: true });
|
||||
this._inhibitorSection.add_actor(this._sessionHeader);
|
||||
this._inhibitorSection.add_actor(this._sessionList);
|
||||
|
||||
this._dbusImpl = Gio.DBusExportedObject.wrapJSObject(EndSessionDialogIface, this);
|
||||
this._dbusImpl.export(Gio.DBus.session, '/org/gnome/SessionManager/EndSessionDialog');
|
||||
@@ -307,52 +288,42 @@ const EndSessionDialog = new Lang.Class({
|
||||
this._user.disconnect(this._userChangedId);
|
||||
},
|
||||
|
||||
_updateDescription: function() {
|
||||
if (this.state != ModalDialog.State.OPENING &&
|
||||
this.state != ModalDialog.State.OPENED)
|
||||
_sync: function() {
|
||||
let open = (this.state == ModalDialog.State.OPENING || this.state == ModalDialog.State.OPENED);
|
||||
if (!open)
|
||||
return;
|
||||
|
||||
if (this._type == 2 && this._updatesFile.query_exists(null))
|
||||
this._type = 3;
|
||||
|
||||
let dialogContent = DialogContent[this._type];
|
||||
|
||||
let subject = dialogContent.subject;
|
||||
|
||||
let description;
|
||||
let displayTime = _roundSecondsToInterval(this._totalSecondsToStayOpen,
|
||||
this._secondsLeft,
|
||||
10);
|
||||
|
||||
if (this._inhibitors.length > 0) {
|
||||
this._stopTimer();
|
||||
description = dialogContent.inhibitedDescription;
|
||||
} else if (this._secondsLeft > 0 && this._inhibitors.length == 0) {
|
||||
let displayTime = _roundSecondsToInterval(this._totalSecondsToStayOpen,
|
||||
this._secondsLeft,
|
||||
10);
|
||||
if (this._user.is_loaded) {
|
||||
let realName = this._user.get_real_name();
|
||||
|
||||
if (this._user.is_loaded) {
|
||||
let realName = this._user.get_real_name();
|
||||
if (realName != null) {
|
||||
if (dialogContent.subjectWithUser)
|
||||
subject = dialogContent.subjectWithUser.format(realName);
|
||||
|
||||
if (realName != null) {
|
||||
if (dialogContent.subjectWithUser)
|
||||
subject = dialogContent.subjectWithUser.format(realName);
|
||||
|
||||
if (dialogContent.uninhibitedDescriptionWithUser)
|
||||
description = dialogContent.uninhibitedDescriptionWithUser(realName, displayTime);
|
||||
else
|
||||
description = dialogContent.uninhibitedDescription(displayTime);
|
||||
}
|
||||
if (dialogContent.descriptionWithUser)
|
||||
description = dialogContent.descriptionWithUser(realName, displayTime);
|
||||
else
|
||||
description = dialogContent.description(displayTime);
|
||||
}
|
||||
|
||||
if (!description)
|
||||
description = dialogContent.uninhibitedDescription(displayTime);
|
||||
} else {
|
||||
description = dialogContent.endDescription;
|
||||
}
|
||||
|
||||
_setLabelText(this._subjectLabel, subject);
|
||||
_setLabelText(this._descriptionLabel, description);
|
||||
},
|
||||
if (!description)
|
||||
description = dialogContent.description(displayTime);
|
||||
|
||||
_updateContent: function() {
|
||||
if (this.state != ModalDialog.State.OPENING &&
|
||||
this.state != ModalDialog.State.OPENED)
|
||||
return;
|
||||
_setLabelText(this._descriptionLabel, description);
|
||||
_setLabelText(this._subjectLabel, subject);
|
||||
|
||||
let dialogContent = DialogContent[this._type];
|
||||
if (dialogContent.iconName) {
|
||||
@@ -367,7 +338,11 @@ const EndSessionDialog = new Lang.Class({
|
||||
avatarWidget.update();
|
||||
}
|
||||
|
||||
this._updateDescription();
|
||||
let hasApplications = this._applications.length > 0;
|
||||
let hasSessions = this._sessions.length > 0;
|
||||
this._scrollView.visible = hasApplications || hasSessions;
|
||||
this._applicationHeader.visible = hasApplications;
|
||||
this._sessionHeader.visible = hasSessions;
|
||||
},
|
||||
|
||||
_updateButtons: function() {
|
||||
@@ -413,14 +388,12 @@ const EndSessionDialog = new Lang.Class({
|
||||
},
|
||||
|
||||
_onOpened: function() {
|
||||
if (this._inhibitors.length == 0)
|
||||
this._startTimer();
|
||||
this._sync();
|
||||
},
|
||||
|
||||
_startTimer: function() {
|
||||
let startTime = GLib.get_monotonic_time();
|
||||
this._secondsLeft = this._totalSecondsToStayOpen;
|
||||
this._updateDescription();
|
||||
|
||||
this._timerId = Mainloop.timeout_add_seconds(1, Lang.bind(this,
|
||||
function() {
|
||||
@@ -429,7 +402,7 @@ const EndSessionDialog = new Lang.Class({
|
||||
|
||||
this._secondsLeft = this._totalSecondsToStayOpen - secondsElapsed;
|
||||
if (this._secondsLeft > 0) {
|
||||
this._updateDescription();
|
||||
this._sync();
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -442,7 +415,7 @@ const EndSessionDialog = new Lang.Class({
|
||||
},
|
||||
|
||||
_stopTimer: function() {
|
||||
if (this._timerId != 0) {
|
||||
if (this._timerId > 0) {
|
||||
Mainloop.source_remove(this._timerId);
|
||||
this._timerId = 0;
|
||||
}
|
||||
@@ -450,8 +423,33 @@ const EndSessionDialog = new Lang.Class({
|
||||
this._secondsLeft = 0;
|
||||
},
|
||||
|
||||
_constructListItemForApp: function(inhibitor, app) {
|
||||
let actor = new St.BoxLayout({ style_class: 'end-session-dialog-app-list-item',
|
||||
can_focus: true });
|
||||
actor.add(app.create_icon_texture(_ITEM_ICON_SIZE));
|
||||
|
||||
let textLayout = new St.BoxLayout({ vertical: true,
|
||||
y_expand: true,
|
||||
y_align: Clutter.ActorAlign.CENTER });
|
||||
actor.add(textLayout);
|
||||
|
||||
let nameLabel = new St.Label({ text: app.get_name(),
|
||||
style_class: 'end-session-dialog-app-list-item-name' });
|
||||
textLayout.add(nameLabel);
|
||||
actor.label_actor = nameLabel;
|
||||
|
||||
let [reason] = inhibitor.GetReasonSync();
|
||||
if (reason) {
|
||||
let reasonLabel = new St.Label({ text: reason,
|
||||
style_class: 'end-session-dialog-app-list-item-description' });
|
||||
textLayout.add(reasonLabel);
|
||||
}
|
||||
|
||||
return actor;
|
||||
},
|
||||
|
||||
_onInhibitorLoaded: function(inhibitor) {
|
||||
if (this._inhibitors.indexOf(inhibitor) < 0) {
|
||||
if (this._applications.indexOf(inhibitor) < 0) {
|
||||
// Stale inhibitor
|
||||
return;
|
||||
}
|
||||
@@ -459,29 +457,92 @@ const EndSessionDialog = new Lang.Class({
|
||||
let app = findAppFromInhibitor(inhibitor);
|
||||
|
||||
if (app) {
|
||||
let [reason] = inhibitor.GetReasonSync();
|
||||
let item = new ListItem(app, reason);
|
||||
item.connect('activate',
|
||||
Lang.bind(this, function() {
|
||||
this.close();
|
||||
}));
|
||||
this._applicationList.add(item.actor, { x_fill: true });
|
||||
this._stopTimer();
|
||||
let actor = this._constructListItemForApp(inhibitor, app);
|
||||
this._applicationList.add(actor);
|
||||
} else {
|
||||
// inhibiting app is a service, not an application
|
||||
this._inhibitors.splice(this._inhibitors.indexOf(inhibitor), 1);
|
||||
this._applications.splice(this._applications.indexOf(inhibitor), 1);
|
||||
}
|
||||
|
||||
this._updateContent();
|
||||
this._sync();
|
||||
},
|
||||
|
||||
_constructListItemForSession: function(session) {
|
||||
let avatar = new UserWidget.Avatar(session.user, { iconSize: _ITEM_ICON_SIZE });
|
||||
avatar.update();
|
||||
|
||||
let userName = session.user.get_real_name() ? session.user.get_real_name() : session.username;
|
||||
let userLabelText;
|
||||
|
||||
if (session.remote)
|
||||
/* Translators: Remote here refers to a remote session, like a ssh login */
|
||||
userLabelText = _("%s (remote)").format(userName);
|
||||
else if (session.type == "tty")
|
||||
/* Translators: Console here refers to a tty like a VT console */
|
||||
userLabelText = _("%s (console)").format(userName);
|
||||
else
|
||||
userLabelText = userName;
|
||||
|
||||
let actor = new St.BoxLayout({ style_class: 'end-session-dialog-session-list-item',
|
||||
can_focus: true });
|
||||
actor.add(avatar.actor);
|
||||
|
||||
let nameLabel = new St.Label({ text: userLabelText,
|
||||
style_class: 'end-session-dialog-session-list-item-name',
|
||||
y_expand: true,
|
||||
y_align: Clutter.ActorAlign.CENTER });
|
||||
actor.add(nameLabel);
|
||||
actor.label_actor = nameLabel;
|
||||
|
||||
return actor;
|
||||
},
|
||||
|
||||
_loadSessions: function() {
|
||||
this._loginManager.listSessions(Lang.bind(this, function(result) {
|
||||
let n = 0;
|
||||
for (let i = 0; i < result.length; i++) {
|
||||
let[id, uid, userName, seat, sessionPath] = result[i];
|
||||
let proxy = new LogindSession(Gio.DBus.system, 'org.freedesktop.login1', sessionPath);
|
||||
|
||||
if (proxy.Class != 'user')
|
||||
continue;
|
||||
|
||||
if (proxy.State == 'closing')
|
||||
continue;
|
||||
|
||||
if (proxy.Id == GLib.getenv('XDG_SESSION_ID'))
|
||||
continue;
|
||||
|
||||
let session = { user: this._userManager.get_user(userName),
|
||||
username: userName,
|
||||
type: proxy.Type,
|
||||
remote: proxy.Remote };
|
||||
this._sessions.push(session);
|
||||
|
||||
let actor = this._constructListItemForSession(session);
|
||||
this._sessionList.add(actor);
|
||||
|
||||
// limit the number of entries
|
||||
n++;
|
||||
if (n == MAX_USERS_IN_SESSION_DIALOG)
|
||||
break;
|
||||
}
|
||||
|
||||
this._sync();
|
||||
}));
|
||||
},
|
||||
|
||||
OpenAsync: function(parameters, invocation) {
|
||||
let [type, timestamp, totalSecondsToStayOpen, inhibitorObjectPaths] = parameters;
|
||||
this._totalSecondsToStayOpen = totalSecondsToStayOpen;
|
||||
this._inhibitors = [];
|
||||
this._applicationList.destroy_all_children();
|
||||
this._type = type;
|
||||
|
||||
this._applications = [];
|
||||
this._applicationList.destroy_all_children();
|
||||
|
||||
this._sessions = [];
|
||||
this._sessionList.destroy_all_children();
|
||||
|
||||
if (!(this._type in DialogContent)) {
|
||||
invocation.return_dbus_error('org.gnome.Shell.ModalDialog.TypeError',
|
||||
"Unknown dialog type requested");
|
||||
@@ -493,9 +554,12 @@ const EndSessionDialog = new Lang.Class({
|
||||
this._onInhibitorLoaded(proxy);
|
||||
}));
|
||||
|
||||
this._inhibitors.push(inhibitor);
|
||||
this._applications.push(inhibitor);
|
||||
}
|
||||
|
||||
if (DialogContent[type].showOtherSessions)
|
||||
this._loadSessions();
|
||||
|
||||
this._updateButtons();
|
||||
|
||||
if (!this.open(timestamp)) {
|
||||
@@ -504,7 +568,8 @@ const EndSessionDialog = new Lang.Class({
|
||||
return;
|
||||
}
|
||||
|
||||
this._updateContent();
|
||||
this._startTimer();
|
||||
this._sync();
|
||||
|
||||
let signalId = this.connect('opened',
|
||||
Lang.bind(this, function() {
|
||||
|
64
js/ui/focusCaretTracker.js
Normal file
64
js/ui/focusCaretTracker.js
Normal file
@@ -0,0 +1,64 @@
|
||||
/** -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
|
||||
/*
|
||||
* Copyright 2012 Inclusive Design Research Centre, OCAD University.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
* Author:
|
||||
* Joseph Scheuhammer <clown@alum.mit.edu>
|
||||
* Contributor:
|
||||
* Magdalen Berns <m.berns@sms.ed.ac.uk>
|
||||
*/
|
||||
|
||||
const Atspi = imports.gi.Atspi;
|
||||
const Lang = imports.lang;
|
||||
const Signals = imports.signals;
|
||||
|
||||
const CARETMOVED = 'object:text-caret-moved';
|
||||
const STATECHANGED = 'object:state-changed';
|
||||
|
||||
const FocusCaretTracker = new Lang.Class({
|
||||
Name: 'FocusCaretTracker',
|
||||
|
||||
_init: function() {
|
||||
Atspi.init();
|
||||
this._atspiListener = Atspi.EventListener.new(Lang.bind(this, this._onChanged));
|
||||
},
|
||||
|
||||
_onChanged: function(event) {
|
||||
if (event.type.indexOf(STATECHANGED) == 0)
|
||||
this.emit('focus-changed', event);
|
||||
else if (event.type == CARETMOVED)
|
||||
this.emit('caret-moved', event);
|
||||
},
|
||||
|
||||
registerFocusListener: function() {
|
||||
return this._atspiListener.register(STATECHANGED + ':focused') &&
|
||||
this._atspiListener.register(STATECHANGED + ':selected');
|
||||
},
|
||||
|
||||
registerCaretListener: function() {
|
||||
return this._atspiListener.register(CARETMOVED);
|
||||
},
|
||||
|
||||
deregisterFocusListener: function() {
|
||||
return this._atspiListener.deregister(STATECHANGED + ':focused') &&
|
||||
this._atspiListener.deregister(STATECHANGED + ':selected');
|
||||
},
|
||||
|
||||
deregisterCaretListener: function() {
|
||||
return this._atspiListener.deregister(CARETMOVED);
|
||||
}
|
||||
});
|
||||
Signals.addSignalMethods(FocusCaretTracker.prototype);
|
@@ -1,14 +1,20 @@
|
||||
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
|
||||
|
||||
const Clutter = imports.gi.Clutter;
|
||||
const Gtk = imports.gi.Gtk;
|
||||
const Meta = imports.gi.Meta;
|
||||
const Shell = imports.gi.Shell;
|
||||
const Signals = imports.signals;
|
||||
const St = imports.gi.St;
|
||||
|
||||
const Lang = imports.lang;
|
||||
const Params = imports.misc.params;
|
||||
const Tweener = imports.ui.tweener;
|
||||
|
||||
const ICON_SIZE = 48;
|
||||
const ICON_SIZE = 96;
|
||||
const MIN_ICON_SIZE = 16;
|
||||
|
||||
const EXTRA_SPACE_ANIMATION_TIME = 0.25;
|
||||
|
||||
const BaseIcon = new Lang.Class({
|
||||
Name: 'BaseIcon',
|
||||
@@ -17,7 +23,12 @@ const BaseIcon = new Lang.Class({
|
||||
params = Params.parse(params, { createIcon: null,
|
||||
setSizeManually: false,
|
||||
showLabel: true });
|
||||
this.actor = new St.Bin({ style_class: 'overview-icon',
|
||||
|
||||
let styleClass = 'overview-icon';
|
||||
if (params.showLabel)
|
||||
styleClass += ' overview-icon-with-label';
|
||||
|
||||
this.actor = new St.Bin({ style_class: styleClass,
|
||||
x_fill: true,
|
||||
y_fill: true });
|
||||
this.actor._delegate = this;
|
||||
@@ -176,19 +187,31 @@ const IconGrid = new Lang.Class({
|
||||
_init: function(params) {
|
||||
params = Params.parse(params, { rowLimit: null,
|
||||
columnLimit: null,
|
||||
minRows: 1,
|
||||
minColumns: 1,
|
||||
fillParent: false,
|
||||
xAlign: St.Align.MIDDLE });
|
||||
xAlign: St.Align.MIDDLE,
|
||||
padWithSpacing: false });
|
||||
this._rowLimit = params.rowLimit;
|
||||
this._colLimit = params.columnLimit;
|
||||
this._minRows = params.minRows;
|
||||
this._minColumns = params.minColumns;
|
||||
this._xAlign = params.xAlign;
|
||||
this._fillParent = params.fillParent;
|
||||
this._padWithSpacing = params.padWithSpacing;
|
||||
|
||||
this.topPadding = 0;
|
||||
this.bottomPadding = 0;
|
||||
this.rightPadding = 0;
|
||||
this.leftPadding = 0;
|
||||
|
||||
this.actor = new St.BoxLayout({ style_class: 'icon-grid',
|
||||
vertical: true });
|
||||
|
||||
this._items = [];
|
||||
// Pulled from CSS, but hardcode some defaults here
|
||||
this._spacing = 0;
|
||||
this._hItemSize = this._vItemSize = ICON_SIZE;
|
||||
this._fixedHItemSize = this._fixedVItemSize = undefined;
|
||||
this._grid = new Shell.GenericContainer();
|
||||
this.actor.add(this._grid, { expand: true, y_align: St.Align.START });
|
||||
this.actor.connect('style-changed', Lang.bind(this, this._onStyleChanged));
|
||||
@@ -208,12 +231,12 @@ const IconGrid = new Lang.Class({
|
||||
let nColumns = this._colLimit ? Math.min(this._colLimit,
|
||||
nChildren)
|
||||
: nChildren;
|
||||
let totalSpacing = Math.max(0, nColumns - 1) * this._spacing;
|
||||
let totalSpacing = Math.max(0, nColumns - 1) * this._getSpacing();
|
||||
// Kind of a lie, but not really an issue right now. If
|
||||
// we wanted to support some sort of hidden/overflow that would
|
||||
// need higher level design
|
||||
alloc.min_size = this._hItemSize;
|
||||
alloc.natural_size = nColumns * this._hItemSize + totalSpacing;
|
||||
alloc.min_size = this._getHItemSize() + this.leftPadding + this.rightPadding;
|
||||
alloc.natural_size = nColumns * this._getHItemSize() + totalSpacing + this.leftPadding + this.rightPadding;
|
||||
},
|
||||
|
||||
_getVisibleChildren: function() {
|
||||
@@ -231,13 +254,11 @@ const IconGrid = new Lang.Class({
|
||||
return;
|
||||
|
||||
let children = this._getVisibleChildren();
|
||||
let nColumns, spacing;
|
||||
if (forWidth < 0) {
|
||||
let nColumns;
|
||||
if (forWidth < 0)
|
||||
nColumns = children.length;
|
||||
spacing = this._spacing;
|
||||
} else {
|
||||
[nColumns, , spacing] = this._computeLayout(forWidth);
|
||||
}
|
||||
else
|
||||
[nColumns, ] = this._computeLayout(forWidth);
|
||||
|
||||
let nRows;
|
||||
if (nColumns > 0)
|
||||
@@ -246,8 +267,8 @@ const IconGrid = new Lang.Class({
|
||||
nRows = 0;
|
||||
if (this._rowLimit)
|
||||
nRows = Math.min(nRows, this._rowLimit);
|
||||
let totalSpacing = Math.max(0, nRows - 1) * spacing;
|
||||
let height = nRows * this._vItemSize + totalSpacing;
|
||||
let totalSpacing = Math.max(0, nRows - 1) * this._getSpacing();
|
||||
let height = nRows * this._getVItemSize() + totalSpacing + this.topPadding + this.bottomPadding;
|
||||
alloc.min_size = height;
|
||||
alloc.natural_size = height;
|
||||
},
|
||||
@@ -263,48 +284,30 @@ const IconGrid = new Lang.Class({
|
||||
let children = this._getVisibleChildren();
|
||||
let availWidth = box.x2 - box.x1;
|
||||
let availHeight = box.y2 - box.y1;
|
||||
let spacing = this._getSpacing();
|
||||
let [nColumns, usedWidth] = this._computeLayout(availWidth);
|
||||
|
||||
let [nColumns, usedWidth, spacing] = this._computeLayout(availWidth);
|
||||
|
||||
let leftPadding;
|
||||
let leftEmptySpace;
|
||||
switch(this._xAlign) {
|
||||
case St.Align.START:
|
||||
leftPadding = 0;
|
||||
leftEmptySpace = 0;
|
||||
break;
|
||||
case St.Align.MIDDLE:
|
||||
leftPadding = Math.floor((availWidth - usedWidth) / 2);
|
||||
leftEmptySpace = Math.floor((availWidth - usedWidth) / 2);
|
||||
break;
|
||||
case St.Align.END:
|
||||
leftPadding = availWidth - usedWidth;
|
||||
leftEmptySpace = availWidth - usedWidth;
|
||||
}
|
||||
|
||||
let x = box.x1 + leftPadding;
|
||||
let y = box.y1;
|
||||
let x = box.x1 + leftEmptySpace + this.leftPadding;
|
||||
let y = box.y1 + this.topPadding;
|
||||
let columnIndex = 0;
|
||||
let rowIndex = 0;
|
||||
for (let i = 0; i < children.length; i++) {
|
||||
let [childMinWidth, childMinHeight, childNaturalWidth, childNaturalHeight]
|
||||
= children[i].get_preferred_size();
|
||||
|
||||
/* Center the item in its allocation horizontally */
|
||||
let width = Math.min(this._hItemSize, childNaturalWidth);
|
||||
let childXSpacing = Math.max(0, width - childNaturalWidth) / 2;
|
||||
let height = Math.min(this._vItemSize, childNaturalHeight);
|
||||
let childYSpacing = Math.max(0, height - childNaturalHeight) / 2;
|
||||
|
||||
let childBox = new Clutter.ActorBox();
|
||||
if (Clutter.get_default_text_direction() == Clutter.TextDirection.RTL) {
|
||||
let _x = box.x2 - (x + width);
|
||||
childBox.x1 = Math.floor(_x - childXSpacing);
|
||||
} else {
|
||||
childBox.x1 = Math.floor(x + childXSpacing);
|
||||
}
|
||||
childBox.y1 = Math.floor(y + childYSpacing);
|
||||
childBox.x2 = childBox.x1 + width;
|
||||
childBox.y2 = childBox.y1 + height;
|
||||
let childBox = this._calculateChildBox(children[i], x, y, box);
|
||||
|
||||
if (this._rowLimit && rowIndex >= this._rowLimit ||
|
||||
this._fillParent && childBox.y2 > availHeight) {
|
||||
this._fillParent && childBox.y2 > availHeight - this.bottomPadding) {
|
||||
this._grid.set_skip_paint(children[i], true);
|
||||
} else {
|
||||
children[i].allocate(childBox, flags);
|
||||
@@ -318,15 +321,38 @@ const IconGrid = new Lang.Class({
|
||||
}
|
||||
|
||||
if (columnIndex == 0) {
|
||||
y += this._vItemSize + spacing;
|
||||
x = box.x1 + leftPadding;
|
||||
y += this._getVItemSize() + spacing;
|
||||
x = box.x1 + leftEmptySpace + this.leftPadding;
|
||||
} else {
|
||||
x += this._hItemSize + spacing;
|
||||
x += this._getHItemSize() + spacing;
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
childrenInRow: function(rowWidth) {
|
||||
_calculateChildBox: function(child, x, y, box) {
|
||||
let [childMinWidth, childMinHeight, childNaturalWidth, childNaturalHeight] =
|
||||
child.get_preferred_size();
|
||||
|
||||
/* Center the item in its allocation horizontally */
|
||||
let width = Math.min(this._getHItemSize(), childNaturalWidth);
|
||||
let childXSpacing = Math.max(0, width - childNaturalWidth) / 2;
|
||||
let height = Math.min(this._getVItemSize(), childNaturalHeight);
|
||||
let childYSpacing = Math.max(0, height - childNaturalHeight) / 2;
|
||||
|
||||
let childBox = new Clutter.ActorBox();
|
||||
if (Clutter.get_default_text_direction() == Clutter.TextDirection.RTL) {
|
||||
let _x = box.x2 - (x + width);
|
||||
childBox.x1 = Math.floor(_x - childXSpacing);
|
||||
} else {
|
||||
childBox.x1 = Math.floor(x + childXSpacing);
|
||||
}
|
||||
childBox.y1 = Math.floor(y + childYSpacing);
|
||||
childBox.x2 = childBox.x1 + width;
|
||||
childBox.y2 = childBox.y1 + height;
|
||||
return childBox;
|
||||
},
|
||||
|
||||
columnsForWidth: function(rowWidth) {
|
||||
return this._computeLayout(rowWidth)[0];
|
||||
},
|
||||
|
||||
@@ -336,26 +362,19 @@ const IconGrid = new Lang.Class({
|
||||
|
||||
_computeLayout: function (forWidth) {
|
||||
let nColumns = 0;
|
||||
let usedWidth = 0;
|
||||
let spacing = this._spacing;
|
||||
|
||||
if (this._colLimit) {
|
||||
let itemWidth = this._hItemSize * this._colLimit;
|
||||
let emptyArea = forWidth - itemWidth;
|
||||
spacing = Math.max(this._spacing, emptyArea / (2 * this._colLimit));
|
||||
spacing = Math.round(spacing);
|
||||
}
|
||||
let usedWidth = this.leftPadding + this.rightPadding;
|
||||
let spacing = this._getSpacing();
|
||||
|
||||
while ((this._colLimit == null || nColumns < this._colLimit) &&
|
||||
(usedWidth + this._hItemSize <= forWidth)) {
|
||||
usedWidth += this._hItemSize + spacing;
|
||||
(usedWidth + this._getHItemSize() <= forWidth)) {
|
||||
usedWidth += this._getHItemSize() + spacing;
|
||||
nColumns += 1;
|
||||
}
|
||||
|
||||
if (nColumns > 0)
|
||||
usedWidth -= spacing;
|
||||
|
||||
return [nColumns, usedWidth, spacing];
|
||||
return [nColumns, usedWidth];
|
||||
},
|
||||
|
||||
_onStyleChanged: function() {
|
||||
@@ -366,15 +385,49 @@ const IconGrid = new Lang.Class({
|
||||
this._grid.queue_relayout();
|
||||
},
|
||||
|
||||
nRows: function(forWidth) {
|
||||
let children = this._getVisibleChildren();
|
||||
let nColumns = (forWidth < 0) ? children.length : this._computeLayout(forWidth)[0];
|
||||
let nRows = (nColumns > 0) ? Math.ceil(children.length / nColumns) : 0;
|
||||
if (this._rowLimit)
|
||||
nRows = Math.min(nRows, this._rowLimit);
|
||||
return nRows;
|
||||
},
|
||||
|
||||
rowsForHeight: function(forHeight) {
|
||||
return Math.floor((forHeight - (this.topPadding + this.bottomPadding) + this._getSpacing()) / (this._getVItemSize() + this._getSpacing()));
|
||||
},
|
||||
|
||||
usedHeightForNRows: function(nRows) {
|
||||
return (this._getVItemSize() + this._getSpacing()) * nRows - this._getSpacing() + this.topPadding + this.bottomPadding;
|
||||
},
|
||||
|
||||
usedWidth: function(forWidth) {
|
||||
return this.usedWidthForNColumns(this.columnsForWidth(forWidth));
|
||||
},
|
||||
|
||||
usedWidthForNColumns: function(columns) {
|
||||
let usedWidth = columns * (this._getHItemSize() + this._getSpacing());
|
||||
usedWidth -= this._getSpacing();
|
||||
return usedWidth + this.leftPadding + this.rightPadding;
|
||||
},
|
||||
|
||||
removeAll: function() {
|
||||
this._items = [];
|
||||
this._grid.destroy_all_children();
|
||||
},
|
||||
|
||||
addItem: function(actor, index) {
|
||||
addItem: function(item, index) {
|
||||
if (!item.icon || !item.icon instanceof BaseIcon) {
|
||||
log('Only items with a BaseIcon icon property can be added to IconGrid');
|
||||
return;
|
||||
}
|
||||
|
||||
this._items.push(item);
|
||||
if (index !== undefined)
|
||||
this._grid.insert_child_at_index(actor, index);
|
||||
this._grid.insert_child_at_index(item.actor, index);
|
||||
else
|
||||
this._grid.add_actor(actor);
|
||||
this._grid.add_actor(item.actor);
|
||||
},
|
||||
|
||||
getItemAtIndex: function(index) {
|
||||
@@ -383,5 +436,311 @@ const IconGrid = new Lang.Class({
|
||||
|
||||
visibleItemsCount: function() {
|
||||
return this._grid.get_n_children() - this._grid.get_n_skip_paint();
|
||||
},
|
||||
|
||||
setSpacing: function(spacing) {
|
||||
this._fixedSpacing = spacing;
|
||||
},
|
||||
|
||||
_getSpacing: function() {
|
||||
return this._fixedSpacing ? this._fixedSpacing : this._spacing;
|
||||
},
|
||||
|
||||
_getHItemSize: function() {
|
||||
return this._fixedHItemSize ? this._fixedHItemSize : this._hItemSize;
|
||||
},
|
||||
|
||||
_getVItemSize: function() {
|
||||
return this._fixedVItemSize ? this._fixedVItemSize : this._vItemSize;
|
||||
},
|
||||
|
||||
_updateSpacingForSize: function(availWidth, availHeight) {
|
||||
let maxEmptyVArea = availHeight - this._minRows * this._getVItemSize();
|
||||
let maxEmptyHArea = availWidth - this._minColumns * this._getHItemSize();
|
||||
let maxHSpacing, maxVSpacing;
|
||||
|
||||
if (this._padWithSpacing) {
|
||||
// minRows + 1 because we want to put spacing before the first row, so it is like we have one more row
|
||||
// to divide the empty space
|
||||
maxVSpacing = Math.floor(maxEmptyVArea / (this._minRows +1));
|
||||
maxHSpacing = Math.floor(maxEmptyHArea / (this._minColumns +1));
|
||||
} else {
|
||||
if (this._minRows <= 1)
|
||||
maxVSpacing = maxEmptyVArea;
|
||||
else
|
||||
maxVSpacing = Math.floor(maxEmptyVArea / (this._minRows - 1));
|
||||
|
||||
if (this._minColumns <= 1)
|
||||
maxHSpacing = maxEmptyHArea;
|
||||
else
|
||||
maxHSpacing = Math.floor(maxEmptyHArea / (this._minColumns - 1));
|
||||
}
|
||||
|
||||
let maxSpacing = Math.min(maxHSpacing, maxVSpacing);
|
||||
// Limit spacing to the item size
|
||||
maxSpacing = Math.min(maxSpacing, Math.min(this._getVItemSize(), this._getHItemSize()));
|
||||
// The minimum spacing, regardless of whether it satisfies the row/columng minima,
|
||||
// is the spacing we get from CSS.
|
||||
let spacing = Math.max(this._spacing, maxSpacing);
|
||||
this.setSpacing(spacing);
|
||||
if (this._padWithSpacing)
|
||||
this.topPadding = this.rightPadding = this.bottomPadding = this.leftPadding = spacing;
|
||||
},
|
||||
|
||||
/**
|
||||
* This function must to be called before iconGrid allocation,
|
||||
* to know how much spacing can the grid has
|
||||
*/
|
||||
adaptToSize: function(availWidth, availHeight) {
|
||||
this._fixedHItemSize = this._hItemSize;
|
||||
this._fixedVItemSize = this._vItemSize;
|
||||
this._updateSpacingForSize(availWidth, availHeight);
|
||||
let spacing = this._getSpacing();
|
||||
|
||||
if (this.columnsForWidth(availWidth) < this._minColumns || this.rowsForHeight(availHeight) < this._minRows) {
|
||||
let neededWidth = this.usedWidthForNColumns(this._minColumns) - availWidth ;
|
||||
let neededHeight = this.usedHeightForNRows(this._minRows) - availHeight ;
|
||||
|
||||
let neededSpacePerItem = (neededWidth > neededHeight) ? Math.ceil(neededWidth / this._minColumns)
|
||||
: Math.ceil(neededHeight / this._minRows);
|
||||
this._fixedHItemSize = Math.max(this._hItemSize - neededSpacePerItem, MIN_ICON_SIZE);
|
||||
this._fixedVItemSize = Math.max(this._vItemSize - neededSpacePerItem, MIN_ICON_SIZE);
|
||||
|
||||
if (this._fixedHItemSize < MIN_ICON_SIZE)
|
||||
this._fixedHItemSize = MIN_ICON_SIZE;
|
||||
if (this._fixedVItemSize < MIN_ICON_SIZE)
|
||||
this._fixedVItemSize = MIN_ICON_SIZE;
|
||||
|
||||
this._updateSpacingForSize(availWidth, availHeight);
|
||||
}
|
||||
let scale = Math.min(this._fixedHItemSize, this._fixedVItemSize) / Math.max(this._hItemSize, this._vItemSize);
|
||||
Meta.later_add(Meta.LaterType.BEFORE_REDRAW, Lang.bind(this, function() { this._updateChildrenScale(scale); }));
|
||||
},
|
||||
|
||||
// Note that this is ICON_SIZE as used by BaseIcon, not elsewhere in IconGrid; it's a bit messed up
|
||||
_updateChildrenScale: function(scale) {
|
||||
for (let i in this._items) {
|
||||
let newIconSize = Math.floor(ICON_SIZE * scale);
|
||||
this._items[i].icon.setIconSize(newIconSize);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
const PaginatedIconGrid = new Lang.Class({
|
||||
Name: 'PaginatedIconGrid',
|
||||
Extends: IconGrid,
|
||||
|
||||
_init: function(params) {
|
||||
this.parent(params);
|
||||
this._nPages = 0;
|
||||
this._rowsPerPage = 0;
|
||||
this._spaceBetweenPages = 0;
|
||||
this._childrenPerPage = 0;
|
||||
},
|
||||
|
||||
_getPreferredHeight: function (grid, forWidth, alloc) {
|
||||
alloc.min_size = (this._availableHeightPerPageForItems() + this.bottomPadding + this.topPadding) * this._nPages + this._spaceBetweenPages * this._nPages;
|
||||
alloc.natural_size = (this._availableHeightPerPageForItems() + this.bottomPadding + this.topPadding) * this._nPages + this._spaceBetweenPages * this._nPages;
|
||||
},
|
||||
|
||||
_allocate: function (grid, box, flags) {
|
||||
if (this._childrenPerPage == 0)
|
||||
log('computePages() must be called before allocate(); pagination will not work.');
|
||||
|
||||
if (this._fillParent) {
|
||||
// Reset the passed in box to fill the parent
|
||||
let parentBox = this.actor.get_parent().allocation;
|
||||
let gridBox = this.actor.get_theme_node().get_content_box(parentBox);
|
||||
box = this._grid.get_theme_node().get_content_box(gridBox);
|
||||
}
|
||||
let children = this._getVisibleChildren();
|
||||
let availWidth = box.x2 - box.x1;
|
||||
let availHeight = box.y2 - box.y1;
|
||||
let spacing = this._getSpacing();
|
||||
let [nColumns, usedWidth] = this._computeLayout(availWidth);
|
||||
|
||||
let leftEmptySpace;
|
||||
switch(this._xAlign) {
|
||||
case St.Align.START:
|
||||
leftEmptySpace = 0;
|
||||
break;
|
||||
case St.Align.MIDDLE:
|
||||
leftEmptySpace = Math.floor((availWidth - usedWidth) / 2);
|
||||
break;
|
||||
case St.Align.END:
|
||||
leftEmptySpace = availWidth - usedWidth;
|
||||
}
|
||||
|
||||
let x = box.x1 + leftEmptySpace + this.leftPadding;
|
||||
let y = box.y1 + this.topPadding;
|
||||
let columnIndex = 0;
|
||||
let rowIndex = 0;
|
||||
|
||||
for (let i = 0; i < children.length; i++) {
|
||||
let childBox = this._calculateChildBox(children[i], x, y, box);
|
||||
children[i].allocate(childBox, flags);
|
||||
this._grid.set_skip_paint(children[i], false);
|
||||
|
||||
columnIndex++;
|
||||
if (columnIndex == nColumns) {
|
||||
columnIndex = 0;
|
||||
rowIndex++;
|
||||
}
|
||||
if (columnIndex == 0) {
|
||||
y += this._getVItemSize() + spacing;
|
||||
if ((i + 1) % this._childrenPerPage == 0)
|
||||
y += this._spaceBetweenPages - spacing + this.bottomPadding + this.topPadding;
|
||||
x = box.x1 + leftEmptySpace + this.leftPadding;
|
||||
} else
|
||||
x += this._getHItemSize() + spacing;
|
||||
}
|
||||
},
|
||||
|
||||
_computePages: function (availWidthPerPage, availHeightPerPage) {
|
||||
let [nColumns, usedWidth] = this._computeLayout(availWidthPerPage);
|
||||
let nRows;
|
||||
let children = this._getVisibleChildren();
|
||||
if (nColumns > 0)
|
||||
nRows = Math.ceil(children.length / nColumns);
|
||||
else
|
||||
nRows = 0;
|
||||
if (this._rowLimit)
|
||||
nRows = Math.min(nRows, this._rowLimit);
|
||||
|
||||
let spacing = this._getSpacing();
|
||||
// We want to contain the grid inside the parent box with padding
|
||||
this._rowsPerPage = this.rowsForHeight(availHeightPerPage);
|
||||
this._nPages = Math.ceil(nRows / this._rowsPerPage);
|
||||
this._spaceBetweenPages = availHeightPerPage - (this.topPadding + this.bottomPadding) - this._availableHeightPerPageForItems();
|
||||
this._childrenPerPage = nColumns * this._rowsPerPage;
|
||||
},
|
||||
|
||||
adaptToSize: function(availWidth, availHeight) {
|
||||
this.parent(availWidth, availHeight);
|
||||
this._computePages(availWidth, availHeight);
|
||||
},
|
||||
|
||||
_availableHeightPerPageForItems: function() {
|
||||
return this.usedHeightForNRows(this._rowsPerPage) - (this.topPadding + this.bottomPadding);
|
||||
},
|
||||
|
||||
nPages: function() {
|
||||
return this._nPages;
|
||||
},
|
||||
|
||||
getPageY: function(pageNumber) {
|
||||
if (!this._nPages)
|
||||
return 0;
|
||||
|
||||
let firstPageItem = pageNumber * this._childrenPerPage
|
||||
let childBox = this._getVisibleChildren()[firstPageItem].get_allocation_box();
|
||||
return childBox.y1 - this.topPadding;
|
||||
},
|
||||
|
||||
getItemPage: function(item) {
|
||||
let children = this._getVisibleChildren();
|
||||
let index = children.indexOf(item);
|
||||
if (index == -1) {
|
||||
throw new Error('Item not found.');
|
||||
return 0;
|
||||
}
|
||||
return Math.floor(index / this._childrenPerPage);
|
||||
},
|
||||
|
||||
/**
|
||||
* openExtraSpace:
|
||||
* @sourceItem: the item for which to create extra space
|
||||
* @side: where @sourceItem should be located relative to the created space
|
||||
* @nRows: the amount of space to create
|
||||
*
|
||||
* Pan view to create extra space for @nRows above or below @sourceItem.
|
||||
*/
|
||||
openExtraSpace: function(sourceItem, side, nRows) {
|
||||
let children = this._getVisibleChildren();
|
||||
let index = children.indexOf(sourceItem.actor);
|
||||
if (index == -1) {
|
||||
throw new Error('Item not found.');
|
||||
return;
|
||||
}
|
||||
let pageIndex = Math.floor(index / this._childrenPerPage);
|
||||
let pageOffset = pageIndex * this._childrenPerPage;
|
||||
|
||||
let childrenPerRow = this._childrenPerPage / this._rowsPerPage;
|
||||
let sourceRow = Math.floor((index - pageOffset) / childrenPerRow);
|
||||
|
||||
let nRowsAbove = (side == St.Side.TOP) ? sourceRow + 1
|
||||
: sourceRow;
|
||||
let nRowsBelow = this._rowsPerPage - nRowsAbove;
|
||||
|
||||
let nRowsUp, nRowsDown;
|
||||
if (side == St.Side.TOP) {
|
||||
nRowsDown = Math.min(nRowsBelow, nRows);
|
||||
nRowsUp = nRows - nRowsDown;
|
||||
} else {
|
||||
nRowsUp = Math.min(nRowsAbove, nRows);
|
||||
nRowsDown = nRows - nRowsUp;
|
||||
}
|
||||
|
||||
let childrenDown = children.splice(pageOffset +
|
||||
nRowsAbove * childrenPerRow,
|
||||
nRowsBelow * childrenPerRow);
|
||||
let childrenUp = children.splice(pageOffset,
|
||||
nRowsAbove * childrenPerRow);
|
||||
|
||||
// Special case: On the last row with no rows below the icon,
|
||||
// there's no need to move any rows either up or down
|
||||
if (childrenDown.length == 0 && nRowsUp == 0) {
|
||||
this._translatedChildren = [];
|
||||
this.emit('space-opened');
|
||||
} else {
|
||||
this._translateChildren(childrenUp, Gtk.DirectionType.UP, nRowsUp);
|
||||
this._translateChildren(childrenDown, Gtk.DirectionType.DOWN, nRowsDown);
|
||||
this._translatedChildren = childrenUp.concat(childrenDown);
|
||||
}
|
||||
},
|
||||
|
||||
_translateChildren: function(children, direction, nRows) {
|
||||
let translationY = nRows * (this._getVItemSize() + this._getSpacing());
|
||||
if (translationY == 0)
|
||||
return;
|
||||
|
||||
if (direction == Gtk.DirectionType.UP)
|
||||
translationY *= -1;
|
||||
|
||||
for (let i = 0; i < children.length; i++) {
|
||||
children[i].translation_y = 0;
|
||||
let params = { translation_y: translationY,
|
||||
time: EXTRA_SPACE_ANIMATION_TIME,
|
||||
transition: 'easeInOutQuad'
|
||||
};
|
||||
if (i == (children.length - 1))
|
||||
params.onComplete = Lang.bind(this,
|
||||
function() {
|
||||
this.emit('space-opened');
|
||||
});
|
||||
Tweener.addTween(children[i], params);
|
||||
}
|
||||
},
|
||||
|
||||
closeExtraSpace: function() {
|
||||
if (!this._translatedChildren || !this._translatedChildren.length) {
|
||||
this.emit('space-closed');
|
||||
return;
|
||||
}
|
||||
|
||||
for (let i = 0; i < this._translatedChildren.length; i++) {
|
||||
if (!this._translatedChildren[i].translation_y)
|
||||
continue;
|
||||
Tweener.addTween(this._translatedChildren[i],
|
||||
{ translation_y: 0,
|
||||
time: EXTRA_SPACE_ANIMATION_TIME,
|
||||
transition: 'easeInOutQuad',
|
||||
onComplete: Lang.bind(this,
|
||||
function() {
|
||||
this.emit('space-closed');
|
||||
})
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
Signals.addSignalMethods(PaginatedIconGrid.prototype);
|
||||
|
@@ -920,7 +920,7 @@ const LookingGlass = new Lang.Class({
|
||||
let text = o.get_text();
|
||||
// Ensure we don't get newlines in the command; the history file is
|
||||
// newline-separated.
|
||||
text.replace('\n', ' ');
|
||||
text = text.replace('\n', ' ');
|
||||
// Strip leading and trailing whitespace
|
||||
text = text.replace(/^\s+/g, '').replace(/\s+$/g, '');
|
||||
if (text == '')
|
||||
|
@@ -1,5 +1,6 @@
|
||||
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
|
||||
|
||||
const Atspi = imports.gi.Atspi;
|
||||
const Clutter = imports.gi.Clutter;
|
||||
const GDesktopEnums = imports.gi.GDesktopEnums;
|
||||
const Gio = imports.gi.Gio;
|
||||
@@ -10,6 +11,7 @@ const Mainloop = imports.mainloop;
|
||||
const Meta = imports.gi.Meta;
|
||||
const Signals = imports.signals;
|
||||
|
||||
const FocusCaretTracker = imports.ui.focusCaretTracker;
|
||||
const Main = imports.ui.main;
|
||||
const MagnifierDBus = imports.ui.magnifierDBus;
|
||||
const Params = imports.misc.params;
|
||||
@@ -37,6 +39,8 @@ const CONTRAST_BLUE_KEY = 'contrast-blue';
|
||||
const LENS_MODE_KEY = 'lens-mode';
|
||||
const CLAMP_MODE_KEY = 'scroll-at-edges';
|
||||
const MOUSE_TRACKING_KEY = 'mouse-tracking';
|
||||
const FOCUS_TRACKING_KEY = 'focus-tracking';
|
||||
const CARET_TRACKING_KEY = 'caret-tracking';
|
||||
const SHOW_CROSS_HAIRS_KEY = 'show-cross-hairs';
|
||||
const CROSS_HAIRS_THICKNESS_KEY = 'cross-hairs-thickness';
|
||||
const CROSS_HAIRS_COLOR_KEY = 'cross-hairs-color';
|
||||
@@ -449,6 +453,14 @@ const Magnifier = new Lang.Class({
|
||||
if (aPref)
|
||||
zoomRegion.setMouseTrackingMode(aPref);
|
||||
|
||||
aPref = this._settings.get_enum(FOCUS_TRACKING_KEY);
|
||||
if (aPref)
|
||||
zoomRegion.setFocusTrackingMode(aPref);
|
||||
|
||||
aPref = this._settings.get_enum(CARET_TRACKING_KEY);
|
||||
if (aPref)
|
||||
zoomRegion.setCaretTrackingMode(aPref);
|
||||
|
||||
aPref = this._settings.get_boolean(INVERT_LIGHTNESS_KEY);
|
||||
if (aPref)
|
||||
zoomRegion.setInvertLightness(aPref);
|
||||
@@ -488,6 +500,10 @@ const Magnifier = new Lang.Class({
|
||||
Lang.bind(this, this._updateClampMode));
|
||||
this._settings.connect('changed::' + MOUSE_TRACKING_KEY,
|
||||
Lang.bind(this, this._updateMouseTrackingMode));
|
||||
this._settings.connect('changed::' + FOCUS_TRACKING_KEY,
|
||||
Lang.bind(this, this._updateFocusTrackingMode));
|
||||
this._settings.connect('changed::' + CARET_TRACKING_KEY,
|
||||
Lang.bind(this, this._updateCaretTrackingMode));
|
||||
|
||||
this._settings.connect('changed::' + INVERT_LIGHTNESS_KEY,
|
||||
Lang.bind(this, this._updateInvertLightness));
|
||||
@@ -585,6 +601,24 @@ const Magnifier = new Lang.Class({
|
||||
}
|
||||
},
|
||||
|
||||
_updateFocusTrackingMode: function() {
|
||||
// Applies only to the first zoom region.
|
||||
if (this._zoomRegions.length) {
|
||||
this._zoomRegions[0].setFocusTrackingMode(
|
||||
this._settings.get_enum(FOCUS_TRACKING_KEY)
|
||||
);
|
||||
}
|
||||
},
|
||||
|
||||
_updateCaretTrackingMode: function() {
|
||||
// Applies only to the first zoom region.
|
||||
if (this._zoomRegions.length) {
|
||||
this._zoomRegions[0].setCaretTrackingMode(
|
||||
this._settings.get_enum(CARET_TRACKING_KEY)
|
||||
);
|
||||
}
|
||||
},
|
||||
|
||||
_updateInvertLightness: function() {
|
||||
// Applies only to the first zoom region.
|
||||
if (this._zoomRegions.length) {
|
||||
@@ -623,7 +657,7 @@ const Magnifier = new Lang.Class({
|
||||
contrast.b = this._settings.get_double(CONTRAST_BLUE_KEY);
|
||||
this._zoomRegions[0].setContrast(contrast);
|
||||
}
|
||||
},
|
||||
}
|
||||
});
|
||||
Signals.addSignalMethods(Magnifier.prototype);
|
||||
|
||||
@@ -632,8 +666,11 @@ const ZoomRegion = new Lang.Class({
|
||||
|
||||
_init: function(magnifier, mouseSourceActor) {
|
||||
this._magnifier = magnifier;
|
||||
this._focusCaretTracker = new FocusCaretTracker.FocusCaretTracker();
|
||||
|
||||
this._mouseTrackingMode = GDesktopEnums.MagnifierMouseTrackingMode.NONE;
|
||||
this._focusTrackingMode = GDesktopEnums.MagnifierFocusTrackingMode.NONE;
|
||||
this._caretTrackingMode = GDesktopEnums.MagnifierCaretTrackingMode.NONE;
|
||||
this._clampScrollingAtEdges = false;
|
||||
this._lensMode = false;
|
||||
this._screenPosition = GDesktopEnums.MagnifierScreenPosition.FULL_SCREEN;
|
||||
@@ -659,9 +696,35 @@ const ZoomRegion = new Lang.Class({
|
||||
this._xMagFactor = 1;
|
||||
this._yMagFactor = 1;
|
||||
this._followingCursor = false;
|
||||
this._xFocus = 0;
|
||||
this._yFocus = 0;
|
||||
this._xCaret = 0;
|
||||
this._yCaret = 0;
|
||||
|
||||
Main.layoutManager.connect('monitors-changed',
|
||||
Lang.bind(this, this._monitorsChanged));
|
||||
this._focusCaretTracker.connect('caret-moved',
|
||||
Lang.bind(this, this._updateCaret));
|
||||
this._focusCaretTracker.connect('focus-changed',
|
||||
Lang.bind(this, this._updateFocus));
|
||||
},
|
||||
|
||||
_updateFocus: function(caller, event) {
|
||||
let component = event.source.get_component_iface();
|
||||
if (!component || event.detail1 != 1)
|
||||
return;
|
||||
let extents = component.get_extents(Atspi.CoordType.SCREEN);
|
||||
[this._xFocus, this._yFocus] = [extents.x, extents.y]
|
||||
this._centerFromFocusPosition();
|
||||
},
|
||||
|
||||
_updateCaret: function(caller, event) {
|
||||
let text = event.source.get_text_iface();
|
||||
if (!text)
|
||||
return;
|
||||
let extents = text.get_character_extents(text.get_caret_offset(), 0);
|
||||
[this._xCaret, this._yCaret] = [extents.x, extents.y];
|
||||
this._centerFromCaretPosition();
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -732,6 +795,30 @@ const ZoomRegion = new Lang.Class({
|
||||
return this._mouseTrackingMode;
|
||||
},
|
||||
|
||||
/**
|
||||
* setFocusTrackingMode
|
||||
* @mode: One of the enum FocusTrackingMode values.
|
||||
*/
|
||||
setFocusTrackingMode: function(mode) {
|
||||
this._focusTrackingMode = mode;
|
||||
if (this._focusTrackingMode == GDesktopEnums.MagnifierFocusTrackingMode.NONE)
|
||||
this._focusCaretTracker.deregisterFocusListener();
|
||||
else
|
||||
this._focusCaretTracker.registerFocusListener();
|
||||
},
|
||||
|
||||
/**
|
||||
* setCaretTrackingMode
|
||||
* @mode: One of the enum CaretTrackingMode values.
|
||||
*/
|
||||
setCaretTrackingMode: function(mode) {
|
||||
this._caretTrackingMode = mode;
|
||||
if (this._caretTrackingMode == GDesktopEnums.MagnifierCaretTrackingMode.NONE)
|
||||
this._focusCaretTracker.deregisterCaretListener();
|
||||
else
|
||||
this._focusCaretTracker.registerCaretListener();
|
||||
},
|
||||
|
||||
/**
|
||||
* setViewPort
|
||||
* Sets the position and size of the ZoomRegion on screen.
|
||||
@@ -1023,20 +1110,6 @@ const ZoomRegion = new Lang.Class({
|
||||
this._magShaderEffects.setBrightness(this._brightness);
|
||||
},
|
||||
|
||||
/**
|
||||
* getBrightness:
|
||||
* Retrive the current brightness of the Zoom Region.
|
||||
* @return Object containing the brightness change for the red, green,
|
||||
* and blue channels.
|
||||
*/
|
||||
getBrightness: function() {
|
||||
let brightness = {};
|
||||
brightness.r = this._brightness.r;
|
||||
brightness.g = this._brightness.g;
|
||||
brightness.b = this._brightness.b;
|
||||
return brightness;
|
||||
},
|
||||
|
||||
/**
|
||||
* setContrast:
|
||||
* Alter the contrast of the magnified view.
|
||||
@@ -1243,19 +1316,47 @@ const ZoomRegion = new Lang.Class({
|
||||
let yMouse = this._magnifier.yMouse;
|
||||
|
||||
if (this._mouseTrackingMode == GDesktopEnums.MagnifierMouseTrackingMode.PROPORTIONAL) {
|
||||
return this._centerFromMouseProportional(xMouse, yMouse);
|
||||
return this._centerFromPointProportional(xMouse, yMouse);
|
||||
}
|
||||
else if (this._mouseTrackingMode == GDesktopEnums.MagnifierMouseTrackingMode.PUSH) {
|
||||
return this._centerFromMousePush(xMouse, yMouse);
|
||||
return this._centerFromPointPush(xMouse, yMouse);
|
||||
}
|
||||
else if (this._mouseTrackingMode == GDesktopEnums.MagnifierMouseTrackingMode.CENTERED) {
|
||||
return this._centerFromMouseCentered(xMouse, yMouse);
|
||||
return this._centerFromPointCentered(xMouse, yMouse);
|
||||
}
|
||||
|
||||
return null; // Should never be hit
|
||||
},
|
||||
|
||||
_centerFromMousePush: function(xMouse, yMouse) {
|
||||
_centerFromCaretPosition: function() {
|
||||
let xCaret = this._xCaret;
|
||||
let yCaret = this._yCaret;
|
||||
|
||||
if (this._caretTrackingMode == GDesktopEnums.MagnifierCaretTrackingMode.PROPORTIONAL)
|
||||
[xCaret, yCaret] = this._centerFromPointProportional(xCaret, yCaret);
|
||||
else if (this._caretTrackingMode == GDesktopEnums.MagnifierCaretTrackingMode.PUSH)
|
||||
[xCaret, yCaret] = this._centerFromPointPush(xCaret, yCaret);
|
||||
else if (this._caretTrackingMode == GDesktopEnums.MagnifierCaretTrackingMode.CENTERED)
|
||||
[xCaret, yCaret] = this._centerFromPointCentered(xCaret, yCaret);
|
||||
|
||||
this.scrollContentsTo(xCaret, yCaret);
|
||||
},
|
||||
|
||||
_centerFromFocusPosition: function() {
|
||||
let xFocus = this._xFocus;
|
||||
let yFocus = this._yFocus;
|
||||
|
||||
if (this._focusTrackingMode == GDesktopEnums.MagnifierFocusTrackingMode.PROPORTIONAL)
|
||||
[xFocus, yFocus] = this._centerFromPointProportional(xFocus, yFocus);
|
||||
else if (this._focusTrackingMode == GDesktopEnums.MagnifierFocusTrackingMode.PUSH)
|
||||
[xFocus, yFocus] = this._centerFromPointPush(xFocus, yFocus);
|
||||
else if (this._focusTrackingMode == GDesktopEnums.MagnifierFocusTrackingMode.CENTERED)
|
||||
[xFocus, yFocus] = this._centerFromPointCentered(xFocus, yFocus);
|
||||
|
||||
this.scrollContentsTo(xFocus, yFocus);
|
||||
},
|
||||
|
||||
_centerFromPointPush: function(xPoint, yPoint) {
|
||||
let [xRoi, yRoi, widthRoi, heightRoi] = this.getROI();
|
||||
let [cursorWidth, cursorHeight] = this._mouseSourceActor.get_size();
|
||||
let xPos = xRoi + widthRoi / 2;
|
||||
@@ -1263,20 +1364,20 @@ const ZoomRegion = new Lang.Class({
|
||||
let xRoiRight = xRoi + widthRoi - cursorWidth;
|
||||
let yRoiBottom = yRoi + heightRoi - cursorHeight;
|
||||
|
||||
if (xMouse < xRoi)
|
||||
xPos -= (xRoi - xMouse);
|
||||
else if (xMouse > xRoiRight)
|
||||
xPos += (xMouse - xRoiRight);
|
||||
if (xPoint < xRoi)
|
||||
xPos -= (xRoi - xPoint);
|
||||
else if (xPoint > xRoiRight)
|
||||
xPos += (xPoint - xRoiRight);
|
||||
|
||||
if (yMouse < yRoi)
|
||||
yPos -= (yRoi - yMouse);
|
||||
else if (yMouse > yRoiBottom)
|
||||
yPos += (yMouse - yRoiBottom);
|
||||
if (yPoint < yRoi)
|
||||
yPos -= (yRoi - yPoint);
|
||||
else if (yPoint > yRoiBottom)
|
||||
yPos += (yPoint - yRoiBottom);
|
||||
|
||||
return [xPos, yPos];
|
||||
},
|
||||
|
||||
_centerFromMouseProportional: function(xMouse, yMouse) {
|
||||
_centerFromPointProportional: function(xPoint, yPoint) {
|
||||
let [xRoi, yRoi, widthRoi, heightRoi] = this.getROI();
|
||||
let halfScreenWidth = global.screen_width / 2;
|
||||
let halfScreenHeight = global.screen_height / 2;
|
||||
@@ -1285,16 +1386,16 @@ const ZoomRegion = new Lang.Class({
|
||||
let unscaledPadding = Math.min(this._viewPortWidth, this._viewPortHeight) / 5;
|
||||
let xPadding = unscaledPadding / this._xMagFactor;
|
||||
let yPadding = unscaledPadding / this._yMagFactor;
|
||||
let xProportion = (xMouse - halfScreenWidth) / halfScreenWidth; // -1 ... 1
|
||||
let yProportion = (yMouse - halfScreenHeight) / halfScreenHeight; // -1 ... 1
|
||||
let xPos = xMouse - xProportion * (widthRoi / 2 - xPadding);
|
||||
let yPos = yMouse - yProportion * (heightRoi /2 - yPadding);
|
||||
let xProportion = (xPoint - halfScreenWidth) / halfScreenWidth; // -1 ... 1
|
||||
let yProportion = (yPoint - halfScreenHeight) / halfScreenHeight; // -1 ... 1
|
||||
let xPos = xPoint - xProportion * (widthRoi / 2 - xPadding);
|
||||
let yPos = yPoint - yProportion * (heightRoi /2 - yPadding);
|
||||
|
||||
return [xPos, yPos];
|
||||
},
|
||||
|
||||
_centerFromMouseCentered: function(xMouse, yMouse) {
|
||||
return [xMouse, yMouse];
|
||||
_centerFromPointCentered: function(xPoint, yPoint) {
|
||||
return [xPoint, yPoint];
|
||||
},
|
||||
|
||||
_screenToViewPort: function(screenX, screenY) {
|
||||
@@ -1511,15 +1612,6 @@ const Crosshairs = new Lang.Class({
|
||||
this._vertBottomHair.set_opacity(opacity);
|
||||
},
|
||||
|
||||
/**
|
||||
* getOpacity:
|
||||
* Retriev how opaque the crosshairs are.
|
||||
* @return: A value between 0 (transparent) and 255 (opaque).
|
||||
*/
|
||||
getOpacity: function() {
|
||||
return this._horizLeftHair.get_opacity();
|
||||
},
|
||||
|
||||
/**
|
||||
* setLength:
|
||||
* Set the length of the vertical and horizontal lines in the crosshairs.
|
||||
@@ -1563,15 +1655,6 @@ const Crosshairs = new Lang.Class({
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* getClip:
|
||||
* Get the dimensions of the clip rectangle.
|
||||
* @return: An array of the form [width, height].
|
||||
*/
|
||||
getClip: function() {
|
||||
return this._clipSize;
|
||||
},
|
||||
|
||||
/**
|
||||
* show:
|
||||
* Show the crosshairs.
|
||||
@@ -1667,23 +1750,10 @@ const MagShaderEffects = new Lang.Class({
|
||||
this._inverse.set_enabled(invertFlag);
|
||||
},
|
||||
|
||||
/**
|
||||
* getInvertLightness:
|
||||
* Report whether the inversion effect is enabled.
|
||||
* @return: Boolean.
|
||||
*/
|
||||
getInvertLightness: function() {
|
||||
return this._inverse.get_enabled();
|
||||
},
|
||||
|
||||
setColorSaturation: function(factor) {
|
||||
this._colorDesaturation.set_factor(1.0 - factor);
|
||||
},
|
||||
|
||||
getColorSaturation: function() {
|
||||
return 1.0 - this._colorDesaturation.get_factor();
|
||||
},
|
||||
|
||||
/**
|
||||
* setBrightness:
|
||||
* Set the brightness of the magnified view.
|
||||
@@ -1708,24 +1778,6 @@ const MagShaderEffects = new Lang.Class({
|
||||
);
|
||||
},
|
||||
|
||||
/**
|
||||
* getBrightness:
|
||||
* Retrieve current brightness of the magnified view.
|
||||
* @return: Object containing the brightness for the red, green,
|
||||
* and blue channels. Values of 0.0 represent "standard"
|
||||
* brightness (no change), whereas values less or greater than
|
||||
* 0.0 indicate decreased or incresaed brightness, respectively.
|
||||
*/
|
||||
getBrightness: function() {
|
||||
let result = {};
|
||||
let [bRed, bGreen, bBlue] = this._brightnessContrast.get_brightness();
|
||||
result.r = bRed;
|
||||
result.g = bGreen;
|
||||
result.b = bBlue;
|
||||
|
||||
return result;
|
||||
},
|
||||
|
||||
/**
|
||||
* Set the contrast of the magnified view.
|
||||
* @contrast: Object containing the contrast for the red, green,
|
||||
@@ -1750,21 +1802,4 @@ const MagShaderEffects = new Lang.Class({
|
||||
bRed != NO_CHANGE || bGreen != NO_CHANGE || bBlue != NO_CHANGE
|
||||
);
|
||||
},
|
||||
|
||||
/**
|
||||
* Retrieve current contrast of the magnified view.
|
||||
* @return: Object containing the contrast for the red, green,
|
||||
* and blue channels. Values of 0.0 represent "standard"
|
||||
* contrast (no change), whereas values less or greater than
|
||||
* 0.0 indicate decreased or incresaed contrast, respectively.
|
||||
*/
|
||||
getContrast: function() {
|
||||
let resutl = {};
|
||||
let [cRed, cGreen, cBlue] = this._brightnessContrast.get_contrast();
|
||||
result.r = cRed;
|
||||
result.g = cGreen;
|
||||
result.b = cBlue;
|
||||
|
||||
return result;
|
||||
}
|
||||
});
|
||||
|
@@ -4,14 +4,12 @@ const Gio = imports.gi.Gio;
|
||||
const Lang = imports.lang;
|
||||
const Main = imports.ui.main;
|
||||
|
||||
const MAG_SERVICE_NAME = 'org.gnome.Magnifier';
|
||||
const MAG_SERVICE_PATH = '/org/gnome/Magnifier';
|
||||
const ZOOM_SERVICE_NAME = 'org.gnome.Magnifier.ZoomRegion';
|
||||
const ZOOM_SERVICE_PATH = '/org/gnome/Magnifier/ZoomRegion';
|
||||
|
||||
// Subset of gnome-mag's Magnifier dbus interface -- to be expanded. See:
|
||||
// http://git.gnome.org/browse/gnome-mag/tree/xml/...Magnifier.xml
|
||||
const MagnifierIface = <interface name={MAG_SERVICE_NAME}>
|
||||
const MagnifierIface = <interface name="org.gnome.Magnifier">
|
||||
<method name="setActive">
|
||||
<arg type="b" direction="in" />
|
||||
</method>
|
||||
@@ -66,7 +64,7 @@ const MagnifierIface = <interface name={MAG_SERVICE_NAME}>
|
||||
|
||||
// Subset of gnome-mag's ZoomRegion dbus interface -- to be expanded. See:
|
||||
// http://git.gnome.org/browse/gnome-mag/tree/xml/...ZoomRegion.xml
|
||||
const ZoomRegionIface = <interface name={ZOOM_SERVICE_NAME}>
|
||||
const ZoomRegionIface = <interface name="org.gnome.Magnifier.ZoomRegion">
|
||||
<method name="setMagFactor">
|
||||
<arg type="d" direction="in" />
|
||||
<arg type="d" direction="in" />
|
||||
|
@@ -99,6 +99,9 @@ function start() {
|
||||
global.logError = window.log;
|
||||
global.log = window.log;
|
||||
|
||||
if (!Meta.is_wayland_compositor)
|
||||
Meta.is_wayland_compositor = function () { return false; };
|
||||
|
||||
// Chain up async errors reported from C
|
||||
global.connect('notify-error', function (global, msg, detail) { notifyError(msg, detail); });
|
||||
|
||||
|
@@ -1685,7 +1685,7 @@ const MessageTray = new Lang.Class({
|
||||
|
||||
this._userActiveWhileNotificationShown = false;
|
||||
|
||||
this.idleMonitor = new GnomeDesktop.IdleMonitor();
|
||||
this.idleMonitor = Meta.IdleMonitor.get_core();
|
||||
|
||||
this._grabHelper = new GrabHelper.GrabHelper(this.actor,
|
||||
{ keybindingMode: Shell.KeyBindingMode.MESSAGE_TRAY });
|
||||
@@ -2732,6 +2732,7 @@ const MessageTray = new Lang.Class({
|
||||
|
||||
_onSummaryBoxPointerUngrabbed: function() {
|
||||
this._summaryBoxPointerState = State.HIDING;
|
||||
this._setClickedSummaryItem(null);
|
||||
|
||||
if (this._summaryBoxPointerContentUpdatedId) {
|
||||
this._summaryBoxPointerItem.disconnect(this._summaryBoxPointerContentUpdatedId);
|
||||
|
@@ -265,7 +265,7 @@ const Overview = new Lang.Class({
|
||||
// Create controls
|
||||
this._controls = new OverviewControls.ControlsManager(this._searchEntry);
|
||||
this._dash = this._controls.dash;
|
||||
this._viewSelector = this._controls.viewSelector;
|
||||
this.viewSelector = this._controls.viewSelector;
|
||||
|
||||
// Add our same-line elements after the search entry
|
||||
this._overview.add(this._controls.actor, { y_fill: true, expand: true });
|
||||
@@ -285,11 +285,11 @@ const Overview = new Lang.Class({
|
||||
},
|
||||
|
||||
addSearchProvider: function(provider) {
|
||||
this._viewSelector.addSearchProvider(provider);
|
||||
this.viewSelector.addSearchProvider(provider);
|
||||
},
|
||||
|
||||
removeSearchProvider: function(provider) {
|
||||
this._viewSelector.removeSearchProvider(provider);
|
||||
this.viewSelector.removeSearchProvider(provider);
|
||||
},
|
||||
|
||||
//
|
||||
@@ -513,7 +513,7 @@ const Overview = new Lang.Class({
|
||||
this._activationTime = Date.now() / 1000;
|
||||
|
||||
Meta.disable_unredirect_for_screen(global.screen);
|
||||
this._viewSelector.show();
|
||||
this.viewSelector.show();
|
||||
|
||||
this._stack.opacity = 0;
|
||||
Tweener.addTween(this._stack,
|
||||
@@ -620,7 +620,7 @@ const Overview = new Lang.Class({
|
||||
this.animationInProgress = true;
|
||||
this.visibleTarget = false;
|
||||
|
||||
this._viewSelector.zoomFromOverview();
|
||||
this.viewSelector.zoomFromOverview();
|
||||
|
||||
// Make other elements fade out.
|
||||
Tweener.addTween(this._stack,
|
||||
@@ -655,7 +655,7 @@ const Overview = new Lang.Class({
|
||||
// Re-enable unredirection
|
||||
Meta.enable_unredirect_for_screen(global.screen);
|
||||
|
||||
this._viewSelector.hide();
|
||||
this.viewSelector.hide();
|
||||
this._desktopFade.hide();
|
||||
this._coverPane.hide();
|
||||
|
||||
|
@@ -249,6 +249,7 @@ const AppMenuButton = new Lang.Class({
|
||||
this._visible = true;
|
||||
this.actor.reactive = true;
|
||||
this.actor.show();
|
||||
Tweener.removeTweens(this.actor);
|
||||
Tweener.addTween(this.actor,
|
||||
{ opacity: 255,
|
||||
time: Overview.ANIMATION_TIME,
|
||||
@@ -261,6 +262,7 @@ const AppMenuButton = new Lang.Class({
|
||||
|
||||
this._visible = false;
|
||||
this.actor.reactive = false;
|
||||
Tweener.removeTweens(this.actor);
|
||||
Tweener.addTween(this.actor,
|
||||
{ opacity: 0,
|
||||
time: Overview.ANIMATION_TIME,
|
||||
@@ -809,7 +811,12 @@ const AggregateMenu = new Lang.Class({
|
||||
this.actor.add_child(this._indicators);
|
||||
|
||||
this._network = new imports.ui.status.network.NMApplet();
|
||||
this._bluetooth = new imports.ui.status.bluetooth.Indicator();
|
||||
if (Config.HAVE_BLUETOOTH) {
|
||||
this._bluetooth = new imports.ui.status.bluetooth.Indicator();
|
||||
} else {
|
||||
this._bluetooth = null;
|
||||
}
|
||||
|
||||
this._power = new imports.ui.status.power.Indicator();
|
||||
this._rfkill = new imports.ui.status.rfkill.Indicator();
|
||||
this._volume = new imports.ui.status.volume.Indicator();
|
||||
@@ -819,7 +826,9 @@ const AggregateMenu = new Lang.Class({
|
||||
|
||||
this._indicators.add_child(this._screencast.indicators);
|
||||
this._indicators.add_child(this._network.indicators);
|
||||
this._indicators.add_child(this._bluetooth.indicators);
|
||||
if (this._bluetooth) {
|
||||
this._indicators.add_child(this._bluetooth.indicators);
|
||||
}
|
||||
this._indicators.add_child(this._rfkill.indicators);
|
||||
this._indicators.add_child(this._volume.indicators);
|
||||
this._indicators.add_child(this._power.indicators);
|
||||
@@ -831,7 +840,9 @@ const AggregateMenu = new Lang.Class({
|
||||
this.menu.addMenuItem(this._brightness.menu);
|
||||
this.menu.addMenuItem(new PopupMenu.PopupSeparatorMenuItem());
|
||||
this.menu.addMenuItem(this._network.menu);
|
||||
this.menu.addMenuItem(this._bluetooth.menu);
|
||||
if (this._bluetooth) {
|
||||
this.menu.addMenuItem(this._bluetooth.menu);
|
||||
}
|
||||
this.menu.addMenuItem(this._rfkill.menu);
|
||||
this.menu.addMenuItem(this._power.menu);
|
||||
this.menu.addMenuItem(new PopupMenu.PopupSeparatorMenuItem());
|
||||
|
@@ -2,6 +2,7 @@
|
||||
|
||||
const Lang = imports.lang;
|
||||
const Mainloop = imports.mainloop;
|
||||
const Meta = imports.gi.Meta;
|
||||
const GnomeDesktop = imports.gi.GnomeDesktop;
|
||||
const Shell = imports.gi.Shell;
|
||||
|
||||
@@ -41,7 +42,7 @@ const PointerWatcher = new Lang.Class({
|
||||
Name: 'PointerWatcher',
|
||||
|
||||
_init: function() {
|
||||
this._idleMonitor = new GnomeDesktop.IdleMonitor();
|
||||
this._idleMonitor = Meta.IdleMonitor.get_core();
|
||||
this._idleMonitor.add_idle_watch(IDLE_TIME, Lang.bind(this, this._onIdleMonitorBecameIdle));
|
||||
this._idle = this._idleMonitor.get_idletime() > IDLE_TIME;
|
||||
this._watches = [];
|
||||
|
@@ -35,6 +35,13 @@ function _ensureStyle(actor) {
|
||||
actor.ensure_style();
|
||||
}
|
||||
|
||||
function isPopupMenuItemVisible(child) {
|
||||
if (child._delegate instanceof PopupMenuSection)
|
||||
if (child._delegate.isEmpty())
|
||||
return false;
|
||||
return child.visible;
|
||||
}
|
||||
|
||||
const PopupBaseMenuItem = new Lang.Class({
|
||||
Name: 'PopupBaseMenuItem',
|
||||
|
||||
@@ -437,7 +444,7 @@ const PopupMenuBase = new Lang.Class({
|
||||
let hasVisibleChildren = this.box.get_children().some(function(child) {
|
||||
if (child._delegate instanceof PopupSeparatorMenuItem)
|
||||
return false;
|
||||
return child.visible;
|
||||
return isPopupMenuItemVisible(child);
|
||||
});
|
||||
|
||||
return !hasVisibleChildren;
|
||||
@@ -518,7 +525,7 @@ const PopupMenuBase = new Lang.Class({
|
||||
|
||||
let childBeforeIndex = index - 1;
|
||||
|
||||
while (childBeforeIndex >= 0 && !children[childBeforeIndex].visible)
|
||||
while (childBeforeIndex >= 0 && !isPopupMenuItemVisible(children[childBeforeIndex]))
|
||||
childBeforeIndex--;
|
||||
|
||||
if (childBeforeIndex < 0
|
||||
@@ -529,7 +536,7 @@ const PopupMenuBase = new Lang.Class({
|
||||
|
||||
let childAfterIndex = index + 1;
|
||||
|
||||
while (childAfterIndex < children.length && !children[childAfterIndex].visible)
|
||||
while (childAfterIndex < children.length && !isPopupMenuItemVisible(children[childAfterIndex]))
|
||||
childAfterIndex++;
|
||||
|
||||
if (childAfterIndex >= children.length
|
||||
@@ -872,20 +879,20 @@ const PopupSubMenu = new Lang.Class({
|
||||
{ _arrow_rotation: 0,
|
||||
height: 0,
|
||||
time: 0.25,
|
||||
onUpdateScope: this,
|
||||
onUpdate: function() {
|
||||
this._arrow.rotation_angle_z = this.actor._arrow_rotation;
|
||||
},
|
||||
onCompleteScope: this,
|
||||
onComplete: function() {
|
||||
this.actor.hide();
|
||||
this.actor.set_height(-1);
|
||||
},
|
||||
onUpdateScope: this,
|
||||
onUpdate: function() {
|
||||
this._arrow.rotation_angle_z = this.actor._arrow_rotation;
|
||||
}
|
||||
});
|
||||
} else {
|
||||
this._arrow.rotation_angle_z = 0;
|
||||
this.actor.hide();
|
||||
}
|
||||
} else {
|
||||
this._arrow.rotation_angle_z = 0;
|
||||
this.actor.hide();
|
||||
}
|
||||
},
|
||||
|
||||
_onKeyPressEvent: function(actor, event) {
|
||||
|
@@ -52,12 +52,10 @@ const SUMMARY_ICON_SIZE = 48;
|
||||
// or when cancelling the dialog
|
||||
// - BACKGROUND_FADE_TIME is used when the background changes to crossfade to new background
|
||||
// - CURTAIN_SLIDE_TIME is used when raising the shield before unlocking
|
||||
// - INITIAL_FADE_IN_TIME is used for the initial fade in at startup
|
||||
const STANDARD_FADE_TIME = 10;
|
||||
const MANUAL_FADE_TIME = 0.3;
|
||||
const BACKGROUND_FADE_TIME = 1.0;
|
||||
const CURTAIN_SLIDE_TIME = 0.3;
|
||||
const INITIAL_FADE_IN_TIME = 0.25;
|
||||
|
||||
const Clock = new Lang.Class({
|
||||
Name: 'ScreenShieldClock',
|
||||
@@ -520,16 +518,9 @@ const ScreenShield = new Lang.Class({
|
||||
this._lockDialogGroup = new St.Widget({ x_expand: true,
|
||||
y_expand: true,
|
||||
reactive: true,
|
||||
opacity: 0,
|
||||
pivot_point: new Clutter.Point({ x: 0.5, y: 0.5 }),
|
||||
name: 'lockDialogGroup' });
|
||||
|
||||
Tweener.addTween(this._lockDialogGroup,
|
||||
{ opacity: 255,
|
||||
time: INITIAL_FADE_IN_TIME,
|
||||
transition: 'easeInQuad',
|
||||
});
|
||||
|
||||
this.actor.add_actor(this._lockDialogGroup);
|
||||
this.actor.add_actor(this._lockScreenGroup);
|
||||
|
||||
@@ -592,7 +583,7 @@ const ScreenShield = new Lang.Class({
|
||||
fadeFactor: 1 });
|
||||
this._shortLightbox.connect('shown', Lang.bind(this, this._onShortLightboxShown));
|
||||
|
||||
this.idleMonitor = new GnomeDesktop.IdleMonitor();
|
||||
this.idleMonitor = Meta.IdleMonitor.get_core();
|
||||
},
|
||||
|
||||
_createBackground: function(monitorIndex) {
|
||||
@@ -732,6 +723,8 @@ const ScreenShield = new Lang.Class({
|
||||
this.lock(true);
|
||||
} else {
|
||||
this._inhibitSuspend();
|
||||
|
||||
this._onUserBecameActive();
|
||||
}
|
||||
},
|
||||
|
||||
@@ -993,7 +986,6 @@ const ScreenShield = new Lang.Class({
|
||||
|
||||
_onUnlockFailed: function() {
|
||||
this._resetLockScreen({ animateLockScreen: true,
|
||||
animateLockDialog: false,
|
||||
fadeToBlack: false });
|
||||
},
|
||||
|
||||
@@ -1033,17 +1025,6 @@ const ScreenShield = new Lang.Class({
|
||||
animateFade: false });
|
||||
}
|
||||
|
||||
if (params.animateLockDialog) {
|
||||
this._lockDialogGroup.opacity = 0;
|
||||
Tweener.removeTweens(this._lockDialogGroup);
|
||||
Tweener.addTween(this._lockDialogGroup,
|
||||
{ opacity: 255,
|
||||
time: MANUAL_FADE_TIME,
|
||||
transition: 'easeOutQuad' });
|
||||
} else {
|
||||
this._lockDialogGroup.opacity = 255;
|
||||
}
|
||||
|
||||
this._lockScreenGroup.grab_key_focus();
|
||||
|
||||
if (Main.sessionMode.currentMode != 'lock-screen')
|
||||
@@ -1294,7 +1275,6 @@ const ScreenShield = new Lang.Class({
|
||||
}
|
||||
|
||||
this._resetLockScreen({ animateLockScreen: animate,
|
||||
animateLockDialog: animate,
|
||||
fadeToBlack: true });
|
||||
global.set_runtime_state(LOCKED_STATE_STR, GLib.Variant.new('b', true));
|
||||
|
||||
|
@@ -126,23 +126,25 @@ const GridSearchResult = new Lang.Class({
|
||||
|
||||
this.actor.style_class = 'grid-search-result';
|
||||
|
||||
let content = provider.createResultActor(metaInfo, terms);
|
||||
let content = provider.createResultObject(metaInfo, terms);
|
||||
let dragSource = null;
|
||||
|
||||
if (content == null) {
|
||||
content = new St.Bin();
|
||||
let actor = new St.Bin();
|
||||
let icon = new IconGrid.BaseIcon(this.metaInfo['name'],
|
||||
{ createIcon: this.metaInfo['createIcon'] });
|
||||
content.set_child(icon.actor);
|
||||
content.label_actor = icon.label;
|
||||
actor.set_child(icon.actor);
|
||||
actor.label_actor = icon.label;
|
||||
dragSource = icon.icon;
|
||||
content = { actor: actor, icon: icon };
|
||||
} else {
|
||||
if (content._delegate && content._delegate.getDragActorSource)
|
||||
dragSource = content._delegate.getDragActorSource();
|
||||
}
|
||||
|
||||
this.actor.set_child(content);
|
||||
this.actor.label_actor = content.label_actor;
|
||||
this.actor.set_child(content.actor);
|
||||
this.actor.label_actor = content.actor.label_actor;
|
||||
this.icon = content.icon;
|
||||
|
||||
let draggable = DND.makeDraggable(this.actor);
|
||||
draggable.connect('drag-begin',
|
||||
@@ -320,14 +322,14 @@ const GridSearchResults = new Lang.Class({
|
||||
},
|
||||
|
||||
_getMaxDisplayedResults: function() {
|
||||
return this._grid.childrenInRow(this._bin.width) * this._grid.getRowLimit();
|
||||
return this._grid.columnsForWidth(this._bin.width) * this._grid.getRowLimit();
|
||||
},
|
||||
|
||||
_renderResults: function(metas) {
|
||||
for (let i = 0; i < metas.length; i++) {
|
||||
let display = new GridSearchResult(this.provider, metas[i], this._terms);
|
||||
display.actor.connect('key-focus-in', Lang.bind(this, this._keyFocusIn));
|
||||
this._grid.addItem(display.actor);
|
||||
this._grid.addItem(display);
|
||||
}
|
||||
},
|
||||
|
||||
|
@@ -13,6 +13,7 @@ const ExtensionUtils = imports.misc.extensionUtils;
|
||||
const Hash = imports.misc.hash;
|
||||
const Main = imports.ui.main;
|
||||
const Screenshot = imports.ui.screenshot;
|
||||
const ViewSelector = imports.ui.viewSelector;
|
||||
|
||||
const GnomeShellIface = <interface name="org.gnome.Shell">
|
||||
<method name="Eval">
|
||||
@@ -24,6 +25,10 @@ const GnomeShellIface = <interface name="org.gnome.Shell">
|
||||
<method name="ShowOSD">
|
||||
<arg type="a{sv}" direction="in" name="params"/>
|
||||
</method>
|
||||
<method name="FocusApp">
|
||||
<arg type="s" direction="in" name="id"/>
|
||||
</method>
|
||||
<method name="ShowApplications" />
|
||||
<method name="GrabAccelerator">
|
||||
<arg type="s" direction="in" name="accelerator"/>
|
||||
<arg type="u" direction="in" name="flags"/>
|
||||
@@ -135,6 +140,15 @@ const GnomeShell = new Lang.Class({
|
||||
Main.osdWindow.show();
|
||||
},
|
||||
|
||||
FocusApp: function(id) {
|
||||
this.ShowApplications();
|
||||
Main.overview.viewSelector.appDisplay.selectApp(id);
|
||||
},
|
||||
|
||||
ShowApplications: function() {
|
||||
Main.overview.viewSelector.showApps();
|
||||
},
|
||||
|
||||
GrabAcceleratorAsync: function(params, invocation) {
|
||||
let [accel, flags] = params;
|
||||
let sender = invocation.get_sender();
|
||||
|
@@ -5,6 +5,7 @@ const Clutter = imports.gi.Clutter;
|
||||
const Lang = imports.lang;
|
||||
const St = imports.gi.St;
|
||||
const Signals = imports.signals;
|
||||
const Atk = imports.gi.Atk;
|
||||
|
||||
const SLIDER_SCROLL_STEP = 0.05; /* Slider scrolling step in % */
|
||||
|
||||
@@ -19,14 +20,26 @@ const Slider = new Lang.Class({
|
||||
|
||||
this.actor = new St.DrawingArea({ style_class: 'slider',
|
||||
can_focus: true,
|
||||
reactive: true });
|
||||
reactive: true,
|
||||
accessible_role: Atk.Role.SLIDER });
|
||||
this.actor.connect('repaint', Lang.bind(this, this._sliderRepaint));
|
||||
this.actor.connect('button-press-event', Lang.bind(this, this._startDragging));
|
||||
this.actor.connect('scroll-event', Lang.bind(this, this._onScrollEvent));
|
||||
this.actor.connect('key-press-event', Lang.bind(this, this._onKeyPressEvent));
|
||||
this.actor.connect('key-press-event', Lang.bind(this, this.onKeyPressEvent));
|
||||
|
||||
this._releaseId = this._motionId = 0;
|
||||
this._dragging = false;
|
||||
|
||||
this._customAccessible = St.GenericAccessible.new_for_actor(this.actor);
|
||||
this.actor.set_accessible(this._customAccessible);
|
||||
|
||||
this._customAccessible.connect('get-current-value', Lang.bind(this, this._getCurrentValue));
|
||||
this._customAccessible.connect('get-minimum-value', Lang.bind(this, this._getMinimumValue));
|
||||
this._customAccessible.connect('get-maximum-value', Lang.bind(this, this._getMaximumValue));
|
||||
this._customAccessible.connect('get-minimum-increment', Lang.bind(this, this._getMinimumIncrement));
|
||||
this._customAccessible.connect('set-current-value', Lang.bind(this, this._setCurrentValue));
|
||||
|
||||
this.connect('value-changed', Lang.bind(this, this._valueChanged));
|
||||
},
|
||||
|
||||
setValue: function(value) {
|
||||
@@ -168,12 +181,12 @@ const Slider = new Lang.Class({
|
||||
return true;
|
||||
},
|
||||
|
||||
_onKeyPressEvent: function (actor, event) {
|
||||
onKeyPressEvent: function (actor, event) {
|
||||
let key = event.get_key_symbol();
|
||||
if (key == Clutter.KEY_Right || key == Clutter.KEY_Left) {
|
||||
let delta = key == Clutter.KEY_Right ? 0.1 : -0.1;
|
||||
this._value = Math.max(0, Math.min(this._value + delta, 1));
|
||||
this._slider.queue_repaint();
|
||||
this.actor.queue_repaint();
|
||||
this.emit('value-changed', this._value);
|
||||
this.emit('drag-end');
|
||||
return true;
|
||||
@@ -202,6 +215,30 @@ const Slider = new Lang.Class({
|
||||
this.emit('value-changed', this._value);
|
||||
},
|
||||
|
||||
_getCurrentValue: function (actor) {
|
||||
return this._value;
|
||||
},
|
||||
|
||||
_getMinimumValue: function (actor) {
|
||||
return 0;
|
||||
},
|
||||
|
||||
_getMaximumValue: function (actor) {
|
||||
return 1;
|
||||
},
|
||||
|
||||
_getMinimumIncrement: function (actor) {
|
||||
return 0.1;
|
||||
},
|
||||
|
||||
_setCurrentValue: function (actor, value) {
|
||||
this._value = value;
|
||||
},
|
||||
|
||||
_valueChanged: function (slider, value, property) {
|
||||
this._customAccessible.notify ("accessible-value");
|
||||
},
|
||||
|
||||
get value() {
|
||||
return this._value;
|
||||
}
|
||||
|
@@ -39,6 +39,7 @@ const Indicator = new Lang.Class({
|
||||
|
||||
this._slider = new Slider.Slider(0);
|
||||
this._slider.connect('value-changed', Lang.bind(this, this._sliderChanged));
|
||||
this._slider.actor.accessible_name = _("Brightness");
|
||||
|
||||
let icon = new St.Icon({ icon_name: 'display-brightness-symbolic',
|
||||
style_class: 'popup-menu-icon' });
|
||||
@@ -47,6 +48,10 @@ const Indicator = new Lang.Class({
|
||||
this._item.actor.connect('button-press-event', Lang.bind(this, function(actor, event) {
|
||||
this._slider.startDragging(event);
|
||||
}));
|
||||
this._item.actor.connect('key-press-event', Lang.bind(this, function(actor, event) {
|
||||
return this._slider.onKeyPressEvent(actor, event);
|
||||
}));
|
||||
|
||||
},
|
||||
|
||||
_sliderChanged: function(slider, value) {
|
||||
|
@@ -41,8 +41,7 @@ const MAX_INPUT_SOURCE_ACTIVATION_TIME = 4000; // ms
|
||||
const BUS_NAME = 'org.gnome.SettingsDaemon.Keyboard';
|
||||
const OBJECT_PATH = '/org/gnome/SettingsDaemon/Keyboard';
|
||||
|
||||
const KeyboardManagerInterface =
|
||||
<interface name="org.gnome.SettingsDaemon.Keyboard">
|
||||
const KeyboardManagerInterface = <interface name="org.gnome.SettingsDaemon.Keyboard">
|
||||
<method name="SetInputSource">
|
||||
<arg type="u" direction="in" />
|
||||
</method>
|
||||
|
@@ -97,14 +97,14 @@ const NMConnectionItem = new Lang.Class({
|
||||
},
|
||||
|
||||
getName: function() {
|
||||
return this.connection.get_id();
|
||||
return this._connection.get_id();
|
||||
},
|
||||
|
||||
isActive: function() {
|
||||
if (this._activeConnection == null)
|
||||
return false;
|
||||
|
||||
return this._activeConnection.state == NetworkManager.ActiveConnectionState.ACTIVATED;
|
||||
return this._activeConnection.state <= NetworkManager.ActiveConnectionState.ACTIVATED;
|
||||
},
|
||||
|
||||
_sync: function() {
|
||||
@@ -141,7 +141,7 @@ const NMConnectionItem = new Lang.Class({
|
||||
this._activeConnection = activeConnection;
|
||||
|
||||
if (this._activeConnection)
|
||||
this._activeConnectionChangedId = this._activeConnection.connect('state-changed',
|
||||
this._activeConnectionChangedId = this._activeConnection.connect('notify::state',
|
||||
Lang.bind(this, this._connectionStateChanged));
|
||||
|
||||
this._sync();
|
||||
@@ -182,7 +182,14 @@ const NMConnectionSection = new Lang.Class({
|
||||
|
||||
this.item.status.text = this._getStatus();
|
||||
this.item.icon.icon_name = this._getMenuIcon();
|
||||
this.item.label.text = this._getDescription();
|
||||
|
||||
// desc can be undefined at cold-plug, before we called
|
||||
// NMGtk.disambiguate_device_names() at least once
|
||||
let desc = this._getDescription();
|
||||
if (desc)
|
||||
this.item.label.text = desc;
|
||||
else
|
||||
this.item.label.text = '';
|
||||
},
|
||||
|
||||
_getStatus: function() {
|
||||
@@ -237,7 +244,7 @@ const NMConnectionSection = new Lang.Class({
|
||||
this.emit('activation-failed', reason);
|
||||
}));
|
||||
|
||||
let pos = Util.insertSorted(this._connections, connection, this._connectionSortFunction);
|
||||
let pos = Util.insertSorted(this._connections, connection, Lang.bind(this, this._connectionSortFunction));
|
||||
this._labelSection.addMenuItem(item.labelItem, pos);
|
||||
this._switchSection.addMenuItem(item.switchItem, pos);
|
||||
this._connectionItems.set(connection.get_uuid(), item);
|
||||
@@ -345,12 +352,12 @@ const NMConnectionDevice = new Lang.Class({
|
||||
|
||||
_getStatus: function() {
|
||||
if (!this._device)
|
||||
return null;
|
||||
return '';
|
||||
|
||||
switch(this._device.state) {
|
||||
case NetworkManager.DeviceState.DISCONNECTED:
|
||||
case NetworkManager.DeviceState.ACTIVATED:
|
||||
return null;
|
||||
return '';
|
||||
case NetworkManager.DeviceState.UNMANAGED:
|
||||
/* 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) */
|
||||
@@ -1076,7 +1083,7 @@ const NMVPNConnectionItem = new Lang.Class({
|
||||
if (this._activeConnection == null)
|
||||
return false;
|
||||
|
||||
return this._activeConnection.vpn_state == NetworkManager.VPNConnectionState.ACTIVATED;
|
||||
return this._activeConnection.vpn_state != NetworkManager.VPNConnectionState.DISCONNECTED;
|
||||
},
|
||||
|
||||
_getStatus: function() {
|
||||
@@ -1130,7 +1137,7 @@ const NMVPNConnectionItem = new Lang.Class({
|
||||
|
||||
getIndicatorIcon: function() {
|
||||
if (this._activeConnection) {
|
||||
if (this._activeConnection.state == NetworkManager.ActiveConnectionState.ACTIVATING)
|
||||
if (this._activeConnection.vpn_state < NetworkManager.VPNConnectionState.ACTIVATED)
|
||||
return 'network-vpn-acquiring-symbolic';
|
||||
else
|
||||
return 'network-vpn-symbolic';
|
||||
@@ -1172,14 +1179,14 @@ const NMVPNSection = new Lang.Class({
|
||||
this._client.deactivate_connection(activeConnection);
|
||||
},
|
||||
|
||||
addActiveConnection: function(activeConnection) {
|
||||
let item = this._connectionItems.get(activeConnection._connection.get_uuid());
|
||||
item.setActiveConnection(activeConnection);
|
||||
},
|
||||
|
||||
removeActiveConnection: function(activeConnection) {
|
||||
let item = this._connectionItems.get(activeConnection._connection.get_uuid());
|
||||
item.setActiveConnection(null);
|
||||
setActiveConnections: function(vpnConnections) {
|
||||
this._connectionItems.values().forEach(function(item) {
|
||||
item.setActiveConnection(null);
|
||||
});
|
||||
vpnConnections.forEach(Lang.bind(this, function(a) {
|
||||
let item = this._connectionItems.get(a._connection.get_uuid());
|
||||
item.setActiveConnection(a);
|
||||
}));
|
||||
},
|
||||
|
||||
_makeConnectionItem: function(connection) {
|
||||
@@ -1250,6 +1257,8 @@ const NMApplet = new Lang.Class({
|
||||
this._mainConnection = null;
|
||||
this._mainConnectionIconChangedId = 0;
|
||||
|
||||
this._notification = null;
|
||||
|
||||
this._nmDevices = [];
|
||||
this._devices = { };
|
||||
|
||||
@@ -1277,7 +1286,8 @@ const NMApplet = new Lang.Class({
|
||||
this._client.connect('notify::manager-running', Lang.bind(this, this._syncNMState));
|
||||
this._client.connect('notify::networking-enabled', Lang.bind(this, this._syncNMState));
|
||||
this._client.connect('notify::state', Lang.bind(this, this._syncNMState));
|
||||
this._client.connect('notify::active-connections', Lang.bind(this, this._syncActiveConnections));
|
||||
this._client.connect('notify::primary-connection', Lang.bind(this, this._syncMainConnection));
|
||||
this._client.connect('notify::active-connections', Lang.bind(this, this._syncVPNConnections));
|
||||
this._client.connect('device-added', Lang.bind(this, this._deviceAdded));
|
||||
this._client.connect('device-removed', Lang.bind(this, this._deviceRemoved));
|
||||
this._settings.connect('new-connection', Lang.bind(this, this._newConnection));
|
||||
@@ -1312,32 +1322,29 @@ const NMApplet = new Lang.Class({
|
||||
this._syncDeviceNames();
|
||||
},
|
||||
|
||||
_notifyForDevice: function(device, iconName, title, text, urgency) {
|
||||
if (device._notification)
|
||||
device._notification.destroy();
|
||||
_notify: function(iconName, title, text, urgency) {
|
||||
if (this._notification)
|
||||
this._notification.destroy();
|
||||
|
||||
/* must call after destroying previous notification,
|
||||
or this._source will be cleared */
|
||||
this._ensureSource();
|
||||
|
||||
let gicon = new Gio.ThemedIcon({ name: iconName });
|
||||
device._notification = new MessageTray.Notification(this._source, title, text,
|
||||
{ gicon: gicon });
|
||||
device._notification.setUrgency(urgency);
|
||||
device._notification.setTransient(true);
|
||||
device._notification.connect('destroy', function() {
|
||||
device._notification = null;
|
||||
this._notification = new MessageTray.Notification(this._source, title, text, { gicon: gicon });
|
||||
this._notification.setUrgency(urgency);
|
||||
this._notification.setTransient(true);
|
||||
this._notification.connect('destroy', function() {
|
||||
this._notification = null;
|
||||
});
|
||||
this._source.notify(device._notification);
|
||||
this._source.notify(this._notification);
|
||||
},
|
||||
|
||||
_onActivationFailed: function(device, reason) {
|
||||
// XXX: nm-applet has no special text depending on reason
|
||||
// but I'm not sure of this generic message
|
||||
this._notifyForDevice(device, 'network-error-symbolic',
|
||||
_("Connection failed"),
|
||||
_("Activation of network connection failed"),
|
||||
MessageTray.Urgency.HIGH);
|
||||
this._notify('network-error-symbolic',
|
||||
_("Connection failed"),
|
||||
_("Activation of network connection failed"),
|
||||
MessageTray.Urgency.HIGH);
|
||||
},
|
||||
|
||||
_syncDeviceNames: function() {
|
||||
@@ -1410,136 +1417,73 @@ const NMApplet = new Lang.Class({
|
||||
devices.splice(pos, 1);
|
||||
},
|
||||
|
||||
_getSupportedActiveConnections: function() {
|
||||
let activeConnections = this._client.get_active_connections() || [ ];
|
||||
let supportedConnections = [];
|
||||
_ensureActiveConnectionProps: function(a) {
|
||||
if (!a._connection) {
|
||||
a._connection = this._settings.get_connection_by_path(a.connection);
|
||||
|
||||
for (let i = 0; i < activeConnections.length; i++) {
|
||||
let devices = activeConnections[i].get_devices();
|
||||
if (!devices || !devices[0])
|
||||
continue;
|
||||
// Ignore connections via unrecognized device types
|
||||
if (!this._dtypes[devices[0].device_type])
|
||||
continue;
|
||||
|
||||
// Ignore slave connections
|
||||
let connectionPath = activeConnections[i].connection;
|
||||
let connection = this._settings.get_connection_by_path(connectionPath);
|
||||
|
||||
// connection might be null, if libnm-glib fails to create
|
||||
// the object due to version incompatibility, or if the
|
||||
// connection is not visible to the current user
|
||||
if (connection && this._ignoreConnection(connection))
|
||||
continue;
|
||||
|
||||
supportedConnections.push(activeConnections[i]);
|
||||
// This list is guaranteed to have only one device in it.
|
||||
let device = a.get_devices()[0]._delegate;
|
||||
a._primaryDevice = device;
|
||||
}
|
||||
return supportedConnections;
|
||||
},
|
||||
|
||||
_syncActiveConnections: function() {
|
||||
let closedConnections = [ ];
|
||||
let newActiveConnections = this._getSupportedActiveConnections();
|
||||
for (let i = 0; i < this._activeConnections.length; i++) {
|
||||
let a = this._activeConnections[i];
|
||||
if (newActiveConnections.indexOf(a) == -1) // connection is removed
|
||||
closedConnections.push(a);
|
||||
_getMainConnection: function() {
|
||||
let connection;
|
||||
|
||||
connection = this._client.get_primary_connection();
|
||||
if (connection) {
|
||||
this._ensureActiveConnectionProps(connection);
|
||||
return connection;
|
||||
}
|
||||
|
||||
for (let i = 0; i < closedConnections.length; i++) {
|
||||
let a = closedConnections[i];
|
||||
if (a._type == NetworkManager.SETTING_VPN_SETTING_NAME)
|
||||
this._vpnSection.removeActiveConnection(a);
|
||||
if (a._inited) {
|
||||
a.disconnect(a._notifyStateId);
|
||||
a.disconnect(a._notifyDefaultId);
|
||||
a.disconnect(a._notifyDefault6Id);
|
||||
a._inited = false;
|
||||
}
|
||||
connection = this._client.get_activating_connection();
|
||||
if (connection) {
|
||||
this._ensureActiveConnectionProps(connection);
|
||||
return connection;
|
||||
}
|
||||
|
||||
return null;
|
||||
},
|
||||
|
||||
_syncMainConnection: function() {
|
||||
if (this._mainConnectionIconChangedId > 0) {
|
||||
this._mainConnection._primaryDevice.disconnect(this._mainConnectionIconChangedId);
|
||||
this._mainConnectionIconChangedId = 0;
|
||||
}
|
||||
|
||||
this._activeConnections = newActiveConnections;
|
||||
this._mainConnection = null;
|
||||
|
||||
let activating = null;
|
||||
let default_ip4 = null;
|
||||
let default_ip6 = null;
|
||||
let active_any = null;
|
||||
for (let i = 0; i < this._activeConnections.length; i++) {
|
||||
let a = this._activeConnections[i];
|
||||
|
||||
if (!a._inited) {
|
||||
a._notifyDefaultId = a.connect('notify::default', Lang.bind(this, this._syncActiveConnections));
|
||||
a._notifyDefault6Id = a.connect('notify::default6', Lang.bind(this, this._syncActiveConnections));
|
||||
a._notifyStateId = a.connect('notify::state', Lang.bind(this, this._notifyActivated));
|
||||
|
||||
a._inited = true;
|
||||
}
|
||||
|
||||
if (!a._connection) {
|
||||
a._connection = this._settings.get_connection_by_path(a.connection);
|
||||
|
||||
if (a._connection) {
|
||||
a._type = a._connection._type;
|
||||
a._section = this._ctypes[a._type];
|
||||
} else {
|
||||
a._connection = null;
|
||||
a._type = null;
|
||||
a._section = null;
|
||||
log('Cannot find connection for active (or connection cannot be read)');
|
||||
}
|
||||
}
|
||||
|
||||
if (a['default'])
|
||||
default_ip4 = a;
|
||||
if (a.default6)
|
||||
default_ip6 = a;
|
||||
|
||||
if (a.state == NetworkManager.ActiveConnectionState.ACTIVATING)
|
||||
activating = a;
|
||||
else if (a.state == NetworkManager.ActiveConnectionState.ACTIVATED)
|
||||
active_any = a;
|
||||
|
||||
if (!a._primaryDevice) {
|
||||
if (a._type != NetworkManager.SETTING_VPN_SETTING_NAME) {
|
||||
// This list is guaranteed to have one device in it.
|
||||
a._primaryDevice = a.get_devices()[0]._delegate;
|
||||
} else {
|
||||
a._primaryDevice = this._vpnSection;
|
||||
this._vpnSection.addActiveConnection(a);
|
||||
}
|
||||
|
||||
if (a.state == NetworkManager.ActiveConnectionState.ACTIVATED
|
||||
&& a._primaryDevice && a._primaryDevice._notification) {
|
||||
a._primaryDevice._notification.destroy();
|
||||
a._primaryDevice._notification = null;
|
||||
}
|
||||
}
|
||||
if (this._mainConnectionStateChangedId > 0) {
|
||||
this._mainConnection.disconnect(this._mainConnectionStateChangedId);
|
||||
this._mainConnectionStateChangedId = 0;
|
||||
}
|
||||
|
||||
this._mainConnection = default_ip4 || default_ip6 || active_any || activating || null;
|
||||
this._mainConnection = this._getMainConnection();
|
||||
|
||||
if (this._mainConnection) {
|
||||
let dev = this._mainConnection._primaryDevice;
|
||||
this._mainConnectionIconChangedId = dev.connect('icon-changed', Lang.bind(this, this._updateIcon));
|
||||
if (this._mainConnection._primaryDevice)
|
||||
this._mainConnectionIconChangedId = this._mainConnection._primaryDevice.connect('icon-changed', Lang.bind(this, this._updateIcon));
|
||||
this._mainConnectionStateChangedId = this._mainConnection.connect('notify::state', Lang.bind(this, this._mainConnectionStateChanged));
|
||||
this._mainConnectionStateChanged();
|
||||
}
|
||||
|
||||
this._updateIcon();
|
||||
},
|
||||
|
||||
_notifyActivated: function(activeConnection) {
|
||||
if (activeConnection.state == NetworkManager.ActiveConnectionState.ACTIVATED
|
||||
&& activeConnection._primaryDevice && activeConnection._primaryDevice._notification) {
|
||||
activeConnection._primaryDevice._notification.destroy();
|
||||
activeConnection._primaryDevice._notification = null;
|
||||
}
|
||||
_syncVPNConnections: function() {
|
||||
let activeConnections = this._client.get_active_connections() || [];
|
||||
let vpnConnections = activeConnections.filter(function(a) {
|
||||
return (a instanceof NMClient.VPNConnection);
|
||||
});
|
||||
vpnConnections.forEach(Lang.bind(this, function(a) {
|
||||
this._ensureActiveConnectionProps(a);
|
||||
}));
|
||||
this._vpnSection.setActiveConnections(vpnConnections);
|
||||
|
||||
this._syncActiveConnections();
|
||||
this._updateIcon();
|
||||
},
|
||||
|
||||
_mainConnectionStateChanged: function() {
|
||||
if (this._mainConnection.state == NetworkManager.ActiveConnectionState.ACTIVATED && this._notification)
|
||||
this._notification.destroy();
|
||||
},
|
||||
|
||||
_ignoreConnection: function(connection) {
|
||||
@@ -1576,7 +1520,6 @@ const NMApplet = new Lang.Class({
|
||||
|
||||
_newConnection: function(settings, connection) {
|
||||
this._addConnection(connection);
|
||||
this._syncActiveConnections();
|
||||
},
|
||||
|
||||
_connectionRemoved: function(connection) {
|
||||
@@ -1627,24 +1570,18 @@ const NMApplet = new Lang.Class({
|
||||
},
|
||||
|
||||
_syncNMState: function() {
|
||||
this._syncActiveConnections();
|
||||
|
||||
this.indicators.visible = this._client.manager_running;
|
||||
this.menu.actor.visible = this._client.networking_enabled;
|
||||
},
|
||||
|
||||
_updateIcon: function() {
|
||||
let mc = this._mainConnection;
|
||||
|
||||
if (!this._client.networking_enabled || !mc) {
|
||||
if (!this._client.networking_enabled || !this._mainConnection) {
|
||||
this._primaryIndicator.icon_name = 'network-offline-symbolic';
|
||||
} else {
|
||||
let dev = this._mainConnection._primaryDevice;
|
||||
if (!dev) {
|
||||
log('Active connection with no primary device?');
|
||||
return;
|
||||
}
|
||||
this._primaryIndicator.icon_name = dev.getIndicatorIcon(mc);
|
||||
this._primaryIndicator.visible = (dev != null);
|
||||
if (dev)
|
||||
this._primaryIndicator.icon_name = dev.getIndicatorIcon();
|
||||
}
|
||||
|
||||
this._vpnIndicator.icon_name = this._vpnSection.getIndicatorIcon();
|
||||
|
@@ -74,12 +74,12 @@ const Indicator = new Lang.Class({
|
||||
|
||||
if (state == UPower.DeviceState.DISCHARGING) {
|
||||
// Translators: this is <hours>:<minutes> Remaining (<percentage>)
|
||||
return _("%d\u2236%02d Remaining (%d%%)".format(hours, minutes, percentage));
|
||||
return _("%d\u2236%02d Remaining (%d%%)").format(hours, minutes, percentage);
|
||||
}
|
||||
|
||||
if (state == UPower.DeviceState.CHARGING) {
|
||||
// Translators: this is <hours>:<minutes> Until Full (<percentage>)
|
||||
return _("%d\u2236%02d Until Full (%d%%)".format(hours, minutes, percentage));
|
||||
return _("%d\u2236%02d Until Full (%d%%)").format(hours, minutes, percentage);
|
||||
}
|
||||
|
||||
// state is one of PENDING_CHARGING, PENDING_DISCHARGING
|
||||
|
@@ -1,24 +1,20 @@
|
||||
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
|
||||
|
||||
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 Gtk = imports.gi.Gtk;
|
||||
const Lang = imports.lang;
|
||||
const Shell = imports.gi.Shell;
|
||||
const St = imports.gi.St;
|
||||
const Clutter = imports.gi.Clutter;
|
||||
|
||||
const BoxPointer = imports.ui.boxpointer;
|
||||
const GnomeSession = imports.misc.gnomeSession;
|
||||
const LoginManager = imports.misc.loginManager;
|
||||
const Main = imports.ui.main;
|
||||
const ModalDialog = imports.ui.modalDialog;
|
||||
const PanelMenu = imports.ui.panelMenu;
|
||||
const PopupMenu = imports.ui.popupMenu;
|
||||
const Util = imports.misc.util;
|
||||
const UserWidget = imports.ui.userWidget;
|
||||
|
||||
const LOCKDOWN_SCHEMA = 'org.gnome.desktop.lockdown';
|
||||
const SCREENSAVER_SCHEMA = 'org.gnome.desktop.screensaver';
|
||||
@@ -28,17 +24,64 @@ const DISABLE_LOCK_SCREEN_KEY = 'disable-lock-screen';
|
||||
const DISABLE_LOG_OUT_KEY = 'disable-log-out';
|
||||
const ALWAYS_SHOW_LOG_OUT_KEY = 'always-show-log-out';
|
||||
|
||||
const MAX_USERS_IN_SESSION_DIALOG = 5;
|
||||
const AltSwitcher = new Lang.Class({
|
||||
Name: 'AltSwitcher',
|
||||
|
||||
const SystemdLoginSessionIface = <interface name='org.freedesktop.login1.Session'>
|
||||
<property name="Id" type="s" access="read"/>
|
||||
<property name="Remote" type="b" access="read"/>
|
||||
<property name="Class" type="s" access="read"/>
|
||||
<property name="Type" type="s" access="read"/>
|
||||
<property name="State" type="s" access="read"/>
|
||||
</interface>;
|
||||
_init: function(standard, alternate) {
|
||||
this._standard = standard;
|
||||
this._standard.connect('notify::visible', Lang.bind(this, this._sync));
|
||||
|
||||
const SystemdLoginSession = Gio.DBusProxy.makeProxyWrapper(SystemdLoginSessionIface);
|
||||
this._alternate = alternate;
|
||||
this._alternate.connect('notify::visible', Lang.bind(this, this._sync));
|
||||
|
||||
this._capturedEventId = global.stage.connect('captured-event', Lang.bind(this, this._onCapturedEvent));
|
||||
|
||||
this.actor = new St.Bin();
|
||||
this.actor.connect('destroy', Lang.bind(this, this._onDestroy));
|
||||
},
|
||||
|
||||
_sync: function() {
|
||||
let childToShow = null;
|
||||
|
||||
if (this._standard.visible && this._alternate.visible) {
|
||||
let [x, y, mods] = global.get_pointer();
|
||||
let altPressed = (mods & Clutter.ModifierType.MOD1_MASK) != 0;
|
||||
childToShow = altPressed ? this._alternate : this._standard;
|
||||
} else if (this._standard.visible) {
|
||||
childToShow = this._standard;
|
||||
} else if (this._alternate.visible) {
|
||||
childToShow = this._alternate;
|
||||
}
|
||||
|
||||
if (this.actor.get_child() != childToShow) {
|
||||
this.actor.set_child(childToShow);
|
||||
|
||||
// The actors might respond to hover, so
|
||||
// sync the pointer to make sure they update.
|
||||
global.sync_pointer();
|
||||
}
|
||||
|
||||
this.actor.visible = (childToShow != null);
|
||||
},
|
||||
|
||||
_onDestroy: function() {
|
||||
if (this._capturedEventId > 0) {
|
||||
global.stage.disconnect(this._capturedEventId);
|
||||
this._capturedEventId = 0;
|
||||
}
|
||||
},
|
||||
|
||||
_onCapturedEvent: function(actor, event) {
|
||||
let type = event.type();
|
||||
if (type == Clutter.EventType.KEY_PRESS || type == Clutter.EventType.KEY_RELEASE) {
|
||||
let key = event.get_key_symbol();
|
||||
if (key == Clutter.KEY_Alt_L || key == Clutter.KEY_Alt_R)
|
||||
this._sync();
|
||||
}
|
||||
|
||||
return false;
|
||||
},
|
||||
});
|
||||
|
||||
const Indicator = new Lang.Class({
|
||||
Name: 'SystemIndicator',
|
||||
@@ -53,9 +96,10 @@ const Indicator = new Lang.Class({
|
||||
this._orientationSettings = new Gio.Settings({ schema: 'org.gnome.settings-daemon.peripherals.touchscreen' });
|
||||
|
||||
this._session = new GnomeSession.SessionManager();
|
||||
this._haveShutdown = true;
|
||||
|
||||
this._loginManager = LoginManager.getLoginManager();
|
||||
this._haveShutdown = true;
|
||||
this._haveSuspend = true;
|
||||
|
||||
this._userManager = AccountsService.UserManager.get_default();
|
||||
this._user = this._userManager.get_user(GLib.get_user_name());
|
||||
|
||||
@@ -90,6 +134,7 @@ const Indicator = new Lang.Class({
|
||||
return;
|
||||
|
||||
this._updateHaveShutdown();
|
||||
this._updateHaveSuspend();
|
||||
}));
|
||||
this._lockdownSettings.connect('changed::' + DISABLE_LOG_OUT_KEY,
|
||||
Lang.bind(this, this._updateHaveShutdown));
|
||||
@@ -117,7 +162,7 @@ const Indicator = new Lang.Class({
|
||||
let visible = (this._settingsAction.visible ||
|
||||
this._orientationLockAction.visible ||
|
||||
this._lockScreenAction.visible ||
|
||||
this._powerOffAction.visible);
|
||||
this._altSwitcher.actor.visible);
|
||||
|
||||
this._actionsItem.actor.visible = visible;
|
||||
},
|
||||
@@ -125,6 +170,7 @@ const Indicator = new Lang.Class({
|
||||
_sessionUpdated: function() {
|
||||
this._updateLockScreen();
|
||||
this._updatePowerOff();
|
||||
this._updateSuspend();
|
||||
this._updateMultiUser();
|
||||
this._settingsAction.visible = Main.sessionMode.allowSettings;
|
||||
this._updateActionsVisibility();
|
||||
@@ -205,13 +251,13 @@ const Indicator = new Lang.Class({
|
||||
},
|
||||
|
||||
_updateHaveShutdown: function() {
|
||||
this._session.CanShutdownRemote(Lang.bind(this,
|
||||
function(result, error) {
|
||||
if (!error) {
|
||||
this._haveShutdown = result[0];
|
||||
this._updatePowerOff();
|
||||
}
|
||||
}));
|
||||
this._session.CanShutdownRemote(Lang.bind(this, function(result, error) {
|
||||
if (error)
|
||||
return;
|
||||
|
||||
this._haveShutdown = result[0];
|
||||
this._updatePowerOff();
|
||||
}));
|
||||
},
|
||||
|
||||
_updatePowerOff: function() {
|
||||
@@ -219,6 +265,18 @@ const Indicator = new Lang.Class({
|
||||
this._updateActionsVisibility();
|
||||
},
|
||||
|
||||
_updateHaveSuspend: function() {
|
||||
this._loginManager.canSuspend(Lang.bind(this, function(result) {
|
||||
this._haveSuspend = result;
|
||||
this._updateSuspend();
|
||||
}));
|
||||
},
|
||||
|
||||
_updateSuspend: function() {
|
||||
this._suspendAction.visible = this._haveSuspend && !Main.sessionMode.isLocked;
|
||||
this._updateActionsVisibility();
|
||||
},
|
||||
|
||||
_createActionButton: function(iconName, accessibleName) {
|
||||
let icon = new St.Button({ reactive: true,
|
||||
can_focus: true,
|
||||
@@ -276,9 +334,14 @@ const Indicator = new Lang.Class({
|
||||
this._lockScreenAction.connect('clicked', Lang.bind(this, this._onLockScreenClicked));
|
||||
item.actor.add(this._lockScreenAction, { expand: true, x_fill: false });
|
||||
|
||||
this._suspendAction = this._createActionButton('media-playback-pause-symbolic', _("Suspend"));
|
||||
this._suspendAction.connect('clicked', Lang.bind(this, this._onSuspendClicked));
|
||||
|
||||
this._powerOffAction = this._createActionButton('system-shutdown-symbolic', _("Power Off"));
|
||||
this._powerOffAction.connect('clicked', Lang.bind(this, this._onPowerOffClicked));
|
||||
item.actor.add(this._powerOffAction, { expand: true, x_fill: false });
|
||||
|
||||
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);
|
||||
@@ -317,110 +380,14 @@ const Indicator = new Lang.Class({
|
||||
this._session.LogoutRemote(0);
|
||||
},
|
||||
|
||||
_openSessionWarnDialog: function(sessions) {
|
||||
let dialog = new ModalDialog.ModalDialog();
|
||||
let subjectLabel = new St.Label({ style_class: 'end-session-dialog-subject',
|
||||
text: _("Other users are logged in.") });
|
||||
dialog.contentLayout.add(subjectLabel, { y_fill: true,
|
||||
y_align: St.Align.START });
|
||||
|
||||
let descriptionLabel = new St.Label({ style_class: 'end-session-dialog-description'});
|
||||
descriptionLabel.set_text(_("Shutting down might cause them to lose unsaved work."));
|
||||
descriptionLabel.clutter_text.line_wrap = true;
|
||||
dialog.contentLayout.add(descriptionLabel, { x_fill: true,
|
||||
y_fill: true,
|
||||
y_align: St.Align.START });
|
||||
|
||||
let scrollView = new St.ScrollView({ style_class: 'end-session-dialog-app-list' });
|
||||
scrollView.add_style_class_name('vfade');
|
||||
scrollView.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC);
|
||||
dialog.contentLayout.add(scrollView, { x_fill: true, y_fill: true });
|
||||
|
||||
let userList = new St.BoxLayout({ vertical: true });
|
||||
scrollView.add_actor(userList);
|
||||
|
||||
for (let i = 0; i < sessions.length; i++) {
|
||||
let session = sessions[i];
|
||||
let userEntry = new St.BoxLayout({ style_class: 'login-dialog-user-list-item',
|
||||
vertical: false });
|
||||
let avatar = new UserWidget.Avatar(session.user);
|
||||
avatar.update();
|
||||
userEntry.add(avatar.actor);
|
||||
|
||||
let userLabelText = "";;
|
||||
let userName = session.user.get_real_name() ?
|
||||
session.user.get_real_name() : session.username;
|
||||
|
||||
if (session.info.remote)
|
||||
/* Translators: Remote here refers to a remote session, like a ssh login */
|
||||
userLabelText = _("%s (remote)").format(userName);
|
||||
else if (session.info.type == "tty")
|
||||
/* Translators: Console here refers to a tty like a VT console */
|
||||
userLabelText = _("%s (console)").format(userName);
|
||||
else
|
||||
userLabelText = userName;
|
||||
|
||||
let textLayout = new St.BoxLayout({ style_class: 'login-dialog-user-list-item-text-box',
|
||||
vertical: true });
|
||||
textLayout.add(new St.Label({ text: userLabelText }),
|
||||
{ y_fill: false,
|
||||
y_align: St.Align.MIDDLE,
|
||||
expand: true });
|
||||
userEntry.add(textLayout, { expand: true });
|
||||
userList.add(userEntry, { x_fill: true });
|
||||
}
|
||||
|
||||
let cancelButton = { label: _("Cancel"),
|
||||
action: function() { dialog.close(); },
|
||||
key: Clutter.Escape };
|
||||
|
||||
let powerOffButton = { label: _("Power Off"), action: Lang.bind(this, function() {
|
||||
dialog.close();
|
||||
this._session.ShutdownRemote();
|
||||
}), default: true };
|
||||
|
||||
dialog.setButtons([cancelButton, powerOffButton]);
|
||||
|
||||
dialog.open();
|
||||
},
|
||||
|
||||
_onPowerOffClicked: function() {
|
||||
this.menu.itemActivated();
|
||||
Main.overview.hide();
|
||||
this._loginManager.listSessions(Lang.bind(this, function(result) {
|
||||
let sessions = [];
|
||||
let n = 0;
|
||||
for (let i = 0; i < result.length; i++) {
|
||||
let[id, uid, userName, seat, sessionPath] = result[i];
|
||||
let proxy = new SystemdLoginSession(Gio.DBus.system,
|
||||
'org.freedesktop.login1',
|
||||
sessionPath);
|
||||
this._session.ShutdownRemote(0);
|
||||
},
|
||||
|
||||
if (proxy.Class != 'user')
|
||||
continue;
|
||||
|
||||
if (proxy.State == 'closing')
|
||||
continue;
|
||||
|
||||
if (proxy.Id == GLib.getenv('XDG_SESSION_ID'))
|
||||
continue;
|
||||
|
||||
sessions.push({ user: this._userManager.get_user(userName),
|
||||
username: userName,
|
||||
info: { type: proxy.Type,
|
||||
remote: proxy.Remote }
|
||||
});
|
||||
|
||||
// limit the number of entries
|
||||
n++;
|
||||
if (n == MAX_USERS_IN_SESSION_DIALOG)
|
||||
break;
|
||||
}
|
||||
|
||||
if (n != 0)
|
||||
this._openSessionWarnDialog(sessions);
|
||||
else
|
||||
this._session.ShutdownRemote();
|
||||
}));
|
||||
}
|
||||
_onSuspendClicked: function() {
|
||||
this.menu.itemActivated();
|
||||
this._loginManager.suspend();
|
||||
},
|
||||
});
|
||||
|
@@ -44,6 +44,9 @@ const StreamSlider = new Lang.Class({
|
||||
this.item.actor.connect('button-press-event', Lang.bind(this, function(actor, event) {
|
||||
this._slider.startDragging(event);
|
||||
}));
|
||||
this.item.actor.connect('key-press-event', Lang.bind(this, function(actor, event) {
|
||||
return this._slider.onKeyPressEvent(actor, event);
|
||||
}));
|
||||
|
||||
this._stream = null;
|
||||
},
|
||||
@@ -154,6 +157,11 @@ const OutputStreamSlider = new Lang.Class({
|
||||
Name: 'OutputStreamSlider',
|
||||
Extends: StreamSlider,
|
||||
|
||||
_init: function(control) {
|
||||
this.parent(control);
|
||||
this._slider.actor.accessible_name = _("Volume");
|
||||
},
|
||||
|
||||
_connectStream: function(stream) {
|
||||
this.parent(stream);
|
||||
this._portChangedId = stream.connect('notify::port', Lang.bind(this, this._portChanged));
|
||||
@@ -202,6 +210,7 @@ const InputStreamSlider = new Lang.Class({
|
||||
|
||||
_init: function(control) {
|
||||
this.parent(control);
|
||||
this._slider.actor.accessible_name = _("Microphone");
|
||||
this._control.connect('stream-added', Lang.bind(this, this._maybeShowInput));
|
||||
this._control.connect('stream-removed', Lang.bind(this, this._maybeShowInput));
|
||||
this._icon.icon_name = 'audio-input-microphone-symbolic';
|
||||
|
@@ -9,6 +9,7 @@ const GLib = imports.gi.GLib;
|
||||
const GnomeDesktop = imports.gi.GnomeDesktop;
|
||||
const Gtk = imports.gi.Gtk;
|
||||
const Lang = imports.lang;
|
||||
const Meta = imports.gi.Meta;
|
||||
const Signals = imports.signals;
|
||||
const Shell = imports.gi.Shell;
|
||||
const St = imports.gi.St;
|
||||
@@ -33,6 +34,7 @@ const UnlockDialog = new Lang.Class({
|
||||
_init: function(parentActor) {
|
||||
this.actor = new St.Widget({ accessible_role: Atk.Role.WINDOW,
|
||||
style_class: 'login-dialog',
|
||||
layout_manager: new Clutter.BoxLayout(),
|
||||
visible: false });
|
||||
|
||||
this.actor.add_constraint(new Layout.MonitorConstraint({ primary: true }));
|
||||
@@ -42,11 +44,12 @@ const UnlockDialog = new Lang.Class({
|
||||
this._userName = GLib.get_user_name();
|
||||
this._user = this._userManager.get_user(this._userName);
|
||||
|
||||
this._promptBox = new St.BoxLayout({ vertical: true });
|
||||
this._promptBox = new St.BoxLayout({ vertical: true,
|
||||
x_align: Clutter.ActorAlign.CENTER,
|
||||
y_align: Clutter.ActorAlign.CENTER,
|
||||
x_expand: true,
|
||||
y_expand: true });
|
||||
this.actor.add_child(this._promptBox);
|
||||
this._promptBox.add_constraint(new Clutter.AlignConstraint({ source: this.actor,
|
||||
align_axis: Clutter.AlignAxis.BOTH,
|
||||
factor: 0.5 }));
|
||||
|
||||
this._authPrompt = new AuthPrompt.AuthPrompt(new Gdm.Client(), AuthPrompt.AuthPromptMode.UNLOCK_ONLY);
|
||||
this._authPrompt.connect('failed', Lang.bind(this, this._fail));
|
||||
@@ -80,7 +83,7 @@ const UnlockDialog = new Lang.Class({
|
||||
|
||||
Main.ctrlAltTabManager.addGroup(this.actor, _("Unlock Window"), 'dialog-password-symbolic');
|
||||
|
||||
this._idleMonitor = new GnomeDesktop.IdleMonitor();
|
||||
this._idleMonitor = Meta.IdleMonitor.get_core();
|
||||
this._idleWatchId = this._idleMonitor.add_idle_watch(IDLE_TIMEOUT * 1000, Lang.bind(this, this._escape));
|
||||
},
|
||||
|
||||
|
@@ -29,7 +29,9 @@ const Avatar = new Lang.Class({
|
||||
|
||||
this.actor = new St.Bin({ style_class: params.styleClass,
|
||||
track_hover: params.reactive,
|
||||
reactive: params.reactive });
|
||||
reactive: params.reactive,
|
||||
width: this._iconSize,
|
||||
height: this._iconSize });
|
||||
},
|
||||
|
||||
setSensitive: function(sensitive) {
|
||||
|
@@ -85,8 +85,12 @@ const ViewSelector = new Lang.Class({
|
||||
|
||||
this._entry.set_primary_icon(new St.Icon({ style_class: 'search-entry-icon',
|
||||
icon_name: 'edit-find-symbolic' }));
|
||||
this._clearIcon = new St.Icon({ style_class: 'search-entry-icon',
|
||||
icon_name: 'edit-clear-symbolic' });
|
||||
if (this._entry.get_text_direction() == Clutter.TextDirection.RTL)
|
||||
this._clearIcon = new St.Icon({ style_class: 'search-entry-icon',
|
||||
icon_name: 'edit-clear-rtl-symbolic' });
|
||||
else
|
||||
this._clearIcon = new St.Icon({ style_class: 'search-entry-icon',
|
||||
icon_name: 'edit-clear-symbolic' });
|
||||
|
||||
this._iconClickedId = 0;
|
||||
this._capturedEventId = 0;
|
||||
@@ -95,8 +99,8 @@ const ViewSelector = new Lang.Class({
|
||||
this._workspacesPage = this._addPage(this._workspacesDisplay.actor,
|
||||
_("Windows"), 'emblem-documents-symbolic');
|
||||
|
||||
this._appDisplay = new AppDisplay.AppDisplay();
|
||||
this._appsPage = this._addPage(this._appDisplay.actor,
|
||||
this.appDisplay = new AppDisplay.AppDisplay();
|
||||
this._appsPage = this._addPage(this.appDisplay.actor,
|
||||
_("Applications"), 'view-grid-symbolic');
|
||||
|
||||
this._searchResults = new SearchDisplay.SearchResults(this._searchSystem);
|
||||
@@ -165,6 +169,11 @@ const ViewSelector = new Lang.Class({
|
||||
this._showAppsButton.checked = !this._showAppsButton.checked;
|
||||
},
|
||||
|
||||
showApps: function() {
|
||||
Main.overview.show();
|
||||
this._showAppsButton.checked = true;
|
||||
},
|
||||
|
||||
show: function() {
|
||||
this._activePage = this._workspacesPage;
|
||||
|
||||
@@ -525,6 +534,13 @@ const ViewSelector = new Lang.Class({
|
||||
return ViewPage.SEARCH;
|
||||
},
|
||||
|
||||
setActivePage: function(page) {
|
||||
if (page == ViewPage.WINDOWS)
|
||||
this._showPage(this._workspacesPage);
|
||||
else
|
||||
this._showPage(this._appsPage);
|
||||
},
|
||||
|
||||
fadeIn: function() {
|
||||
let actor = this._activePage;
|
||||
Tweener.addTween(actor, { opacity: 255,
|
||||
|
@@ -150,8 +150,7 @@ const WandaSearchProvider = new Lang.Class({
|
||||
this._dialog = new FortuneDialog(capitalize(fish), FISH_COMMAND);
|
||||
},
|
||||
|
||||
createResultActor: function (resultMeta, terms) {
|
||||
let icon = new WandaIconBin(resultMeta.id, resultMeta.name);
|
||||
return icon.actor;
|
||||
createResultObject: function (resultMeta, terms) {
|
||||
return new WandaIconBin(resultMeta.id, resultMeta.name);
|
||||
}
|
||||
});
|
||||
|
@@ -250,9 +250,6 @@ const WorkspaceTracker = new Lang.Class({
|
||||
let activeWorkspaceIndex = global.screen.get_active_workspace_index();
|
||||
let removingCurrentWorkspace = (emptyWorkspaces[activeWorkspaceIndex] &&
|
||||
activeWorkspaceIndex < emptyWorkspaces.length - 1);
|
||||
// Don't enter the overview when removing multiple empty workspaces at startup
|
||||
let showOverview = (removingCurrentWorkspace &&
|
||||
!emptyWorkspaces.every(function(x) { return x; }));
|
||||
|
||||
if (removingCurrentWorkspace) {
|
||||
// "Merge" the empty workspace we are removing with the one at the end
|
||||
@@ -268,9 +265,6 @@ const WorkspaceTracker = new Lang.Class({
|
||||
if (removingCurrentWorkspace) {
|
||||
global.screen.get_workspace_by_index(global.screen.n_workspaces - 1).activate(global.get_current_time());
|
||||
this._wm.unblockAnimations();
|
||||
|
||||
if (!Main.overview.visible && showOverview)
|
||||
Main.overview.show();
|
||||
}
|
||||
|
||||
this._checkWorkspacesId = 0;
|
||||
|
@@ -876,7 +876,6 @@ const UnalignedLayoutStrategy = new Lang.Class({
|
||||
row.windows.push(window);
|
||||
row.fullWidth += width;
|
||||
} else {
|
||||
this._sortRow(row);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -886,6 +885,8 @@ const UnalignedLayoutStrategy = new Lang.Class({
|
||||
let maxRow;
|
||||
for (let i = 0; i < numRows; i++) {
|
||||
let row = rows[i];
|
||||
this._sortRow(row);
|
||||
|
||||
if (!maxRow || row.fullWidth > maxRow.fullWidth)
|
||||
maxRow = row;
|
||||
gridHeight += row.fullHeight;
|
||||
@@ -1433,6 +1434,10 @@ const Workspace = new Lang.Class({
|
||||
|
||||
if (this._positionWindowsId > 0)
|
||||
Meta.later_remove(this._positionWindowsId);
|
||||
|
||||
if (this._actualGeometryLater > 0)
|
||||
Meta.later_remove(this._actualGeometryLater);
|
||||
|
||||
this._windows = [];
|
||||
},
|
||||
|
||||
|
@@ -540,12 +540,6 @@ const WorkspacesDisplay = new Lang.Class({
|
||||
for (let i = 0; i < this._workspacesViews.length; i++)
|
||||
this._workspacesViews[i].destroy();
|
||||
this._workspacesViews = [];
|
||||
|
||||
for (let i = 0; i < this._workspaces.length; i++)
|
||||
for (let w = 0; w < this._workspaces[i].length; w++) {
|
||||
this._workspaces[i][w].disconnectAll();
|
||||
this._workspaces[i][w].destroy();
|
||||
}
|
||||
},
|
||||
|
||||
_workspacesOnlyOnPrimaryChanged: function() {
|
||||
@@ -561,10 +555,6 @@ const WorkspacesDisplay = new Lang.Class({
|
||||
for (let i = 0; i < this._workspacesViews.length; i++)
|
||||
this._workspacesViews[i].destroy();
|
||||
|
||||
for (let i = 0; i < this._workspaces.length; i++)
|
||||
for (let w = 0; w < this._workspaces[i].length; w++)
|
||||
this._workspaces[i][w].destroy();
|
||||
|
||||
this._workspacesViews = [];
|
||||
this._workspaces = [];
|
||||
let monitors = Main.layoutManager.monitors;
|
||||
|
@@ -42,6 +42,7 @@ js/ui/shellEntry.js
|
||||
js/ui/shellMountOperation.js
|
||||
js/ui/status/accessibility.js
|
||||
js/ui/status/bluetooth.js
|
||||
js/ui/status/brightness.js
|
||||
js/ui/status/keyboard.js
|
||||
js/ui/status/network.js
|
||||
js/ui/status/power.js
|
||||
|
4
po/ca.po
4
po/ca.po
@@ -160,7 +160,7 @@ msgid ""
|
||||
"Internally used to store the last session presence status for the user. The "
|
||||
"value here is from the GsmPresenceStatus enumeration."
|
||||
msgstr ""
|
||||
"S'utilitza internament per desar l'últim estat de presencia de la sessió de "
|
||||
"S'utilitza internament per desar l'últim estat de presència de la sessió de "
|
||||
"l'usuari. El valor prové de l'enumeració «GsmPresenceStatus»."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:15
|
||||
@@ -994,7 +994,7 @@ msgstr "S'ha revocat el certificat"
|
||||
msgid ""
|
||||
"Certificate uses an insecure cipher algorithm or is cryptographically weak"
|
||||
msgstr ""
|
||||
"El certificat utilitza un algorisme criptògraf no segur o la seva fortalesa "
|
||||
"El certificat utilitza un algorisme criptogràfic no segur o la seva fortalesa "
|
||||
"criptogràfica és feble"
|
||||
|
||||
#: ../js/ui/components/telepathyClient.js:1342
|
||||
|
393
po/gl.po
393
po/gl.po
@@ -11,8 +11,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: gnome-shell master\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2013-08-21 01:10+0200\n"
|
||||
"PO-Revision-Date: 2013-08-21 01:12+0200\n"
|
||||
"POT-Creation-Date: 2013-09-03 12:56+0200\n"
|
||||
"PO-Revision-Date: 2013-09-03 12:57+0200\n"
|
||||
"Last-Translator: Fran Dieguez <frandieguez@gnome.org>\n"
|
||||
"Language-Team: gnome-l10n-gl@gnome.org\n"
|
||||
"Language: gl\n"
|
||||
@@ -127,27 +127,10 @@ msgid "History for the looking glass dialog"
|
||||
msgstr "Historial do diálogo de «looking glass»"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:11
|
||||
msgid ""
|
||||
"Internally used to store the last IM presence explicitly set by the user. "
|
||||
"The value here is from the TpConnectionPresenceType enumeration."
|
||||
msgstr ""
|
||||
"Usado internamente para gardar o último IM de presenza estabelecido "
|
||||
"explícitamente polo usuario. O valor aquí é da enumeración "
|
||||
"TpConnectionPresenceType."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:12
|
||||
msgid ""
|
||||
"Internally used to store the last session presence status for the user. The "
|
||||
"value here is from the GsmPresenceStatus enumeration."
|
||||
msgstr ""
|
||||
"Usado internamente para gardar o último estado de presenza da sesión do "
|
||||
"usuario. O valor aquí é da GsmPresenceStatus."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:13
|
||||
msgid "Always show the 'Log out' menuitem in the user menu."
|
||||
msgstr "Mostrar sempre o elemento de menú «Saír da sesión» no menú de usuario."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:14
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:12
|
||||
msgid ""
|
||||
"This key overrides the automatic hiding of the 'Log out' menuitem in single-"
|
||||
"user, single-session situations."
|
||||
@@ -156,14 +139,14 @@ msgstr ""
|
||||
"sesión» en situacións de existir un único usuario ou existir unha única "
|
||||
"sesión. "
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:15
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:13
|
||||
msgid ""
|
||||
"Whether to remember password for mounting encrypted or remote filesystems"
|
||||
msgstr ""
|
||||
"Indica se se debe lembrar o contrasinal para montar os sistemas de ficheiros "
|
||||
"cifrados ou remotos"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:16
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:14
|
||||
msgid ""
|
||||
"The shell will request a password when an encrypted device or a remote "
|
||||
"filesystem is mounted. If the password can be saved for future use a "
|
||||
@@ -175,70 +158,70 @@ msgstr ""
|
||||
"futuro aparecerá a opción «Lembrar contrasinal» Esta chave estabelece o "
|
||||
"estado por omisión da opción. "
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:17
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:15
|
||||
msgid "Show the week date in the calendar"
|
||||
msgstr "Mostrar a data da semana no calendario"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:18
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:16
|
||||
msgid "If true, display the ISO week date in the calendar."
|
||||
msgstr "Se é verdadeiro, móstrase a data da semana ISO no calendario."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:19
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:17
|
||||
msgid "Keybinding to open the application menu"
|
||||
msgstr "Combinación de teclas para abrir o menú de aplicativo"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:20
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:18
|
||||
msgid "Keybinding to open the application menu."
|
||||
msgstr "Combinación de teclas para abrir o menú de aplicativo."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:21
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:19
|
||||
msgid "Keybinding to open the \"Show Applications\" view"
|
||||
msgstr "Combinación de teclas para abrir a vista «Mostrar aplicativos»"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:22
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:20
|
||||
msgid ""
|
||||
"Keybinding to open the \"Show Applications\" view of the Activities Overview."
|
||||
msgstr ""
|
||||
"Combinación de teclas para abrir a vista \"Mostrar aplicativos\" da Vista "
|
||||
"xera de Actividades."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:23
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:21
|
||||
msgid "Keybinding to open the overview"
|
||||
msgstr "Combinación de teclas para abrir a Vista xeral"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:24
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:22
|
||||
msgid "Keybinding to open the Activities Overview."
|
||||
msgstr "Combinación de teclas para abrir a Vista de actividades."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:25
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:23
|
||||
msgid "Keybinding to toggle the visibility of the message tray"
|
||||
msgstr "Combinación de teclas para mostrar/ocultar a área de mensaxes"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:26
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:24
|
||||
msgid "Keybinding to toggle the visibility of the message tray."
|
||||
msgstr "Combinación de teclas para mostrar/ocultar a área de mensaxes."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:27
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:25
|
||||
msgid "Keybinding to focus the active notification"
|
||||
msgstr "Combinación de teclas para enfocar a notificación activa"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:28
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:26
|
||||
msgid "Keybinding to focus the active notification."
|
||||
msgstr "Combinación de teclas para enfocar a notificación activa."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:29
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:27
|
||||
msgid "Which keyboard to use"
|
||||
msgstr "Que teclado usar"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:30
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:28
|
||||
msgid "The type of keyboard to use."
|
||||
msgstr "O tipo de teclado a usar."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:31
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:29
|
||||
msgid "The application icon mode."
|
||||
msgstr "O modo da icona do aplicativo."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:32
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:30
|
||||
msgid ""
|
||||
"Configures how the windows are shown in the switcher. Valid possibilities "
|
||||
"are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-"
|
||||
@@ -248,21 +231,21 @@ msgstr ""
|
||||
"son «thumbnail-only» (mostra unha miniatura da xanela, «app-icon-only» (só "
|
||||
"mostra a icona do aplicativo) ou «both» (móstranse ambas cosas)."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:33
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:31
|
||||
msgid "Attach modal dialog to the parent window"
|
||||
msgstr "Anexar o diálogo modal á xanela pai"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:34
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:32
|
||||
msgid ""
|
||||
"This key overrides the key in org.gnome.mutter when running GNOME Shell."
|
||||
msgstr ""
|
||||
"Esta chave sobrescribe a chave en org.gnome.mutter cando executa GNOME Shell."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:35
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:33
|
||||
msgid "Arrangement of buttons on the titlebar"
|
||||
msgstr "Distribución dos botóns na barra de títulos"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:36
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:34
|
||||
msgid ""
|
||||
"This key overrides the key in org.gnome.desktop.wm.preferences when running "
|
||||
"GNOME Shell."
|
||||
@@ -270,15 +253,15 @@ msgstr ""
|
||||
"Esta chave sobrescribe a chave en org.gnome.wm.preferences cando executa "
|
||||
"GNOME Shell."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:35
|
||||
msgid "Enable edge tiling when dropping windows on screen edges"
|
||||
msgstr "Activar o mosaico nos bordos ao arrastrar xanelas aos bordos da xanela"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:38
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:36
|
||||
msgid "Workspaces are managed dynamically"
|
||||
msgstr "Os espazos de traballo xestiónanse dinamicamente"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:39
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37
|
||||
msgid "Workspaces only on primary monitor"
|
||||
msgstr "Espazos de traballo só no monitor primario"
|
||||
|
||||
@@ -296,46 +279,41 @@ msgid "Select an extension to configure using the combobox above."
|
||||
msgstr ""
|
||||
"Seleccione unha extensión que configurar usando a caixa combinada de arriba."
|
||||
|
||||
#: ../js/gdm/authPrompt.js:146 ../js/ui/components/networkAgent.js:132
|
||||
#: ../js/ui/components/polkitAgent.js:161 ../js/ui/endSessionDialog.js:376
|
||||
#: ../js/gdm/authPrompt.js:145 ../js/ui/components/networkAgent.js:132
|
||||
#: ../js/ui/components/polkitAgent.js:161 ../js/ui/endSessionDialog.js:351
|
||||
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
|
||||
#: ../js/ui/status/bluetooth.js:221 ../js/ui/status/network.js:679
|
||||
#: ../js/ui/status/system.js:373
|
||||
#: ../js/ui/status/bluetooth.js:221 ../js/ui/status/network.js:686
|
||||
msgid "Cancel"
|
||||
msgstr "Cancelar"
|
||||
|
||||
#: ../js/gdm/authPrompt.js:168 ../js/gdm/authPrompt.js:216
|
||||
#: ../js/gdm/authPrompt.js:167 ../js/gdm/authPrompt.js:215
|
||||
msgid "Next"
|
||||
msgstr "Seguinte"
|
||||
|
||||
#: ../js/gdm/authPrompt.js:212 ../js/ui/shellMountOperation.js:403
|
||||
#: ../js/ui/unlockDialog.js:56
|
||||
#: ../js/gdm/authPrompt.js:211 ../js/ui/shellMountOperation.js:403
|
||||
#: ../js/ui/unlockDialog.js:59
|
||||
msgid "Unlock"
|
||||
msgstr "Desbloquear"
|
||||
|
||||
#: ../js/gdm/authPrompt.js:214
|
||||
#: ../js/gdm/authPrompt.js:213
|
||||
msgctxt "button"
|
||||
msgid "Sign In"
|
||||
msgstr "Iniciar sesión"
|
||||
|
||||
#: ../js/gdm/loginDialog.js:299
|
||||
#: ../js/gdm/loginDialog.js:294
|
||||
msgid "Choose Session"
|
||||
msgstr "Escolla unha sesión"
|
||||
|
||||
#: ../js/gdm/loginDialog.js:317
|
||||
msgid "Session"
|
||||
msgstr "Sesión"
|
||||
|
||||
#. translators: this message is shown below the user list on the
|
||||
#. login screen. It can be activated to reveal an entry for
|
||||
#. manually entering the username.
|
||||
#: ../js/gdm/loginDialog.js:468
|
||||
#: ../js/gdm/loginDialog.js:454
|
||||
msgid "Not listed?"
|
||||
msgstr "Non está na lista?"
|
||||
|
||||
#. Translators: this message is shown below the username entry field
|
||||
#. to clue the user in on how to login to the local network realm
|
||||
#: ../js/gdm/loginDialog.js:641
|
||||
#: ../js/gdm/loginDialog.js:622
|
||||
#, c-format
|
||||
msgid "(e.g., user or %s)"
|
||||
msgstr "(p.ex., usuario ou %s)"
|
||||
@@ -343,12 +321,12 @@ msgstr "(p.ex., usuario ou %s)"
|
||||
#. TTLS and PEAP are actually much more complicated, but this complication
|
||||
#. is not visible here since we only care about phase2 authentication
|
||||
#. (and don't even care of which one)
|
||||
#: ../js/gdm/loginDialog.js:646 ../js/ui/components/networkAgent.js:255
|
||||
#: ../js/gdm/loginDialog.js:627 ../js/ui/components/networkAgent.js:255
|
||||
#: ../js/ui/components/networkAgent.js:273
|
||||
msgid "Username: "
|
||||
msgstr "Nome de usuario: "
|
||||
|
||||
#: ../js/gdm/loginDialog.js:909
|
||||
#: ../js/gdm/loginDialog.js:891
|
||||
msgid "Login Window"
|
||||
msgstr "Xanela de inicio de sesión"
|
||||
|
||||
@@ -361,7 +339,7 @@ msgstr "Erro de autenticación"
|
||||
#. as a cue to display our own message.
|
||||
#. Translators: this message is shown below the password entry field
|
||||
#. to indicate the user can swipe their finger instead
|
||||
#: ../js/gdm/util.js:419
|
||||
#: ../js/gdm/util.js:436
|
||||
msgid "(or swipe finger)"
|
||||
msgstr "(ou pase o dedo)"
|
||||
|
||||
@@ -380,23 +358,27 @@ msgstr "Non foi posíbel analizar a orde:"
|
||||
msgid "Execution of '%s' failed:"
|
||||
msgstr "Produciuse un fallo na execución de «%s»:"
|
||||
|
||||
#: ../js/ui/appDisplay.js:386
|
||||
#: ../js/ui/appDisplay.js:579
|
||||
msgid "Frequently used applications will appear here"
|
||||
msgstr "Os aplicativos usados recentemente aparecerán aquí"
|
||||
|
||||
#: ../js/ui/appDisplay.js:695
|
||||
msgid "Frequent"
|
||||
msgstr "Frecuentes"
|
||||
|
||||
#: ../js/ui/appDisplay.js:393
|
||||
#: ../js/ui/appDisplay.js:702
|
||||
msgid "All"
|
||||
msgstr "Todos"
|
||||
|
||||
#: ../js/ui/appDisplay.js:986
|
||||
#: ../js/ui/appDisplay.js:1489
|
||||
msgid "New Window"
|
||||
msgstr "Xanela nova"
|
||||
|
||||
#: ../js/ui/appDisplay.js:989 ../js/ui/dash.js:284
|
||||
#: ../js/ui/appDisplay.js:1492 ../js/ui/dash.js:284
|
||||
msgid "Remove from Favorites"
|
||||
msgstr "Retirar dos marcadores"
|
||||
|
||||
#: ../js/ui/appDisplay.js:990
|
||||
#: ../js/ui/appDisplay.js:1493
|
||||
msgid "Add to Favorites"
|
||||
msgstr "Engadir aos favoritos"
|
||||
|
||||
@@ -410,7 +392,7 @@ msgstr "%s foi engadido aos seus favoritos."
|
||||
msgid "%s has been removed from your favorites."
|
||||
msgstr "%s retirouse dos seus marcadores."
|
||||
|
||||
#: ../js/ui/backgroundMenu.js:19 ../js/ui/status/system.js:267
|
||||
#: ../js/ui/backgroundMenu.js:19 ../js/ui/status/system.js:325
|
||||
msgid "Settings"
|
||||
msgstr "Preferencias"
|
||||
|
||||
@@ -534,36 +516,44 @@ msgctxt "list saturday"
|
||||
msgid "S"
|
||||
msgstr "S"
|
||||
|
||||
#: ../js/ui/calendar.js:447
|
||||
msgid "Previous month"
|
||||
msgstr "Anterior mes"
|
||||
|
||||
#: ../js/ui/calendar.js:457
|
||||
msgid "Next month"
|
||||
msgstr "Seguinte mes"
|
||||
|
||||
#. Translators: Text to show if there are no events
|
||||
#: ../js/ui/calendar.js:750
|
||||
#: ../js/ui/calendar.js:753
|
||||
msgid "Nothing Scheduled"
|
||||
msgstr "Nada programado"
|
||||
|
||||
#. Translators: Shown on calendar heading when selected day occurs on current year
|
||||
#: ../js/ui/calendar.js:768
|
||||
#: ../js/ui/calendar.js:771
|
||||
msgctxt "calendar heading"
|
||||
msgid "%A, %B %d"
|
||||
msgstr "%A, %d de %B"
|
||||
|
||||
#. Translators: Shown on calendar heading when selected day occurs on different year
|
||||
#: ../js/ui/calendar.js:771
|
||||
#: ../js/ui/calendar.js:774
|
||||
msgctxt "calendar heading"
|
||||
msgid "%A, %B %d, %Y"
|
||||
msgstr "%A, %d de %B de %Y"
|
||||
|
||||
#: ../js/ui/calendar.js:782
|
||||
#: ../js/ui/calendar.js:785
|
||||
msgid "Today"
|
||||
msgstr "Hoxe"
|
||||
|
||||
#: ../js/ui/calendar.js:786
|
||||
#: ../js/ui/calendar.js:789
|
||||
msgid "Tomorrow"
|
||||
msgstr "Mañá"
|
||||
|
||||
#: ../js/ui/calendar.js:797
|
||||
#: ../js/ui/calendar.js:800
|
||||
msgid "This week"
|
||||
msgstr "Esta semana"
|
||||
|
||||
#: ../js/ui/calendar.js:805
|
||||
#: ../js/ui/calendar.js:808
|
||||
msgid "Next week"
|
||||
msgstr "A vindeira semana"
|
||||
|
||||
@@ -597,7 +587,7 @@ msgid "Type again:"
|
||||
msgstr "Escriba de novo:"
|
||||
|
||||
#: ../js/ui/components/networkAgent.js:127 ../js/ui/status/network.js:112
|
||||
#: ../js/ui/status/network.js:268 ../js/ui/status/network.js:682
|
||||
#: ../js/ui/status/network.js:275 ../js/ui/status/network.js:689
|
||||
msgid "Connect"
|
||||
msgstr "Conectar"
|
||||
|
||||
@@ -945,7 +935,7 @@ msgstr "Mostrar aplicativos"
|
||||
|
||||
#. Translators: this is the name of the dock/favorites area on
|
||||
#. the left of the overview
|
||||
#: ../js/ui/dash.js:439
|
||||
#: ../js/ui/dash.js:442
|
||||
msgid "Dash"
|
||||
msgstr "Taboleiro"
|
||||
|
||||
@@ -968,95 +958,111 @@ msgstr "Preferencias de data e hora"
|
||||
msgid "%A %B %e, %Y"
|
||||
msgstr "%a, %e de %B, %Y"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:63
|
||||
#: ../js/ui/endSessionDialog.js:62
|
||||
#, c-format
|
||||
msgctxt "title"
|
||||
msgid "Log Out %s"
|
||||
msgstr "Saír da sesión %s"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:64
|
||||
#: ../js/ui/endSessionDialog.js:63
|
||||
msgctxt "title"
|
||||
msgid "Log Out"
|
||||
msgstr "Saír da sesión"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:65
|
||||
msgid "Click Log Out to quit these applications and log out of the system."
|
||||
msgstr ""
|
||||
"Prema en «Saír da sesión» para pechar estes aplicativos e saír da sesión do "
|
||||
"sistema."
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:67
|
||||
#, c-format
|
||||
msgid "%s will be logged out automatically in %d second."
|
||||
msgid_plural "%s will be logged out automatically in %d seconds."
|
||||
msgstr[0] "Vaise pechar a sesión de %s en %d segundo."
|
||||
msgstr[1] "Vaise pechar a sesión de %s en %d segundos."
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:72
|
||||
#: ../js/ui/endSessionDialog.js:70
|
||||
#, c-format
|
||||
msgid "You will be logged out automatically in %d second."
|
||||
msgid_plural "You will be logged out automatically in %d seconds."
|
||||
msgstr[0] "A súa sesión pecharase automaticamente en %d segundo."
|
||||
msgstr[1] "A súa sesión pecharase automaticamente en %d segundos."
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:76
|
||||
msgid "Logging out of the system."
|
||||
msgstr "Saíndo da sesión do sistema."
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:78
|
||||
#: ../js/ui/endSessionDialog.js:75
|
||||
msgctxt "button"
|
||||
msgid "Log Out"
|
||||
msgstr "Saír da sesión"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:83
|
||||
#: ../js/ui/endSessionDialog.js:81
|
||||
msgctxt "title"
|
||||
msgid "Power Off"
|
||||
msgstr "Apagar"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:84
|
||||
msgid "Click Power Off to quit these applications and power off the system."
|
||||
msgstr "Prema sobre «Apagar» para pechar estes aplicativos e apagar o sistema."
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:86
|
||||
#: ../js/ui/endSessionDialog.js:83
|
||||
#, c-format
|
||||
msgid "The system will power off automatically in %d second."
|
||||
msgid_plural "The system will power off automatically in %d seconds."
|
||||
msgstr[0] "O sistema apagarase automaticamente en %d segundo."
|
||||
msgstr[1] "O sistema apagarase automaticamente en %d segundos."
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:90
|
||||
msgid "Powering off the system."
|
||||
msgstr "Apagando o sistema."
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:92 ../js/ui/endSessionDialog.js:109
|
||||
#: ../js/ui/endSessionDialog.js:88 ../js/ui/endSessionDialog.js:104
|
||||
msgctxt "button"
|
||||
msgid "Restart"
|
||||
msgstr "Reiniciar"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:94
|
||||
#: ../js/ui/endSessionDialog.js:90
|
||||
msgctxt "button"
|
||||
msgid "Power Off"
|
||||
msgstr "Apagar"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:100
|
||||
#: ../js/ui/endSessionDialog.js:97
|
||||
msgctxt "title"
|
||||
msgid "Restart"
|
||||
msgstr "Reiniciar"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:101
|
||||
msgid "Click Restart to quit these applications and restart the system."
|
||||
msgstr "Prema «Reiniciar» para pechar estes aplicativos e reiniciar o sistema."
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:103
|
||||
#: ../js/ui/endSessionDialog.js:99
|
||||
#, c-format
|
||||
msgid "The system will restart automatically in %d second."
|
||||
msgid_plural "The system will restart automatically in %d seconds."
|
||||
msgstr[0] "O sistema reiniciarase automaticamente en %d segundo."
|
||||
msgstr[1] "O sistema reiniciarase automaticamente en %d segundos."
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:107
|
||||
msgid "Restarting the system."
|
||||
msgstr "Reiniciando o sistema."
|
||||
#: ../js/ui/endSessionDialog.js:112
|
||||
msgctxt "title"
|
||||
msgid "Restart & Install Updates"
|
||||
msgstr "Reiniciar e instalar actualizacións"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:114
|
||||
#, c-format
|
||||
msgid "The system will automatically restart and install updates in %d second."
|
||||
msgid_plural ""
|
||||
"The system will automatically restart and install updates in %d seconds."
|
||||
msgstr[0] ""
|
||||
"O sistema reiniciarase automaticamente e instalará as actualizacións en %d "
|
||||
"segundo."
|
||||
msgstr[1] ""
|
||||
"O sistema reiniciarase automaticamente e instalará as actualizacións en %d "
|
||||
"segundos."
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:119
|
||||
msgctxt "button"
|
||||
msgid "Restart & Install"
|
||||
msgstr "Reiniciar e instalar"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:271
|
||||
msgid "Some applications are busy or have unsaved work."
|
||||
msgstr "Algúns aplicativos están ocupados ou teñen traballo sen gardar."
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:277
|
||||
msgid "Other users are logged in."
|
||||
msgstr "Hai outros usuarios conectados."
|
||||
|
||||
#. Translators: Remote here refers to a remote session, like a ssh login
|
||||
#: ../js/ui/endSessionDialog.js:479
|
||||
#, c-format
|
||||
msgid "%s (remote)"
|
||||
msgstr "%s (remoto)"
|
||||
|
||||
#. Translators: Console here refers to a tty like a VT console
|
||||
#: ../js/ui/endSessionDialog.js:482
|
||||
#, c-format
|
||||
msgid "%s (console)"
|
||||
msgstr "%s (consola)"
|
||||
|
||||
#: ../js/ui/extensionDownloader.js:199
|
||||
msgid "Install"
|
||||
@@ -1156,7 +1162,7 @@ msgctxt "program"
|
||||
msgid "Unknown"
|
||||
msgstr "Descoñecido"
|
||||
|
||||
#: ../js/ui/overviewControls.js:491 ../js/ui/screenShield.js:154
|
||||
#: ../js/ui/overviewControls.js:491 ../js/ui/screenShield.js:152
|
||||
#, c-format
|
||||
msgid "%d new message"
|
||||
msgid_plural "%d new messages"
|
||||
@@ -1216,22 +1222,22 @@ msgstr "Pechar"
|
||||
|
||||
#. Translators: This is a time format for a date in
|
||||
#. long format
|
||||
#: ../js/ui/screenShield.js:90
|
||||
#: ../js/ui/screenShield.js:88
|
||||
msgid "%A, %B %d"
|
||||
msgstr "%A, %d de %B"
|
||||
|
||||
#: ../js/ui/screenShield.js:156
|
||||
#: ../js/ui/screenShield.js:154
|
||||
#, c-format
|
||||
msgid "%d new notification"
|
||||
msgid_plural "%d new notifications"
|
||||
msgstr[0] "%d notificación nova"
|
||||
msgstr[1] "%d notificacións novas"
|
||||
|
||||
#: ../js/ui/screenShield.js:479 ../js/ui/status/system.js:275
|
||||
#: ../js/ui/screenShield.js:477 ../js/ui/status/system.js:333
|
||||
msgid "Lock"
|
||||
msgstr "Bloquear"
|
||||
|
||||
#: ../js/ui/screenShield.js:712
|
||||
#: ../js/ui/screenShield.js:703
|
||||
msgid "GNOME needs to lock the screen"
|
||||
msgstr "GNOME precisa bloquear a pantalla"
|
||||
|
||||
@@ -1242,19 +1248,19 @@ msgstr "GNOME precisa bloquear a pantalla"
|
||||
#.
|
||||
#. XXX: another option is to kick the user into the gdm login
|
||||
#. screen, where we're not affected by grabs
|
||||
#: ../js/ui/screenShield.js:837 ../js/ui/screenShield.js:1316
|
||||
#: ../js/ui/screenShield.js:830 ../js/ui/screenShield.js:1296
|
||||
msgid "Unable to lock"
|
||||
msgstr "Non foi posíbel bloquear"
|
||||
|
||||
#: ../js/ui/screenShield.js:838 ../js/ui/screenShield.js:1317
|
||||
#: ../js/ui/screenShield.js:831 ../js/ui/screenShield.js:1297
|
||||
msgid "Lock was blocked by an application"
|
||||
msgstr "Un aplicativo impediu o bloqueo"
|
||||
|
||||
#: ../js/ui/searchDisplay.js:445
|
||||
#: ../js/ui/searchDisplay.js:447
|
||||
msgid "Searching…"
|
||||
msgstr "Buscando…"
|
||||
|
||||
#: ../js/ui/searchDisplay.js:489
|
||||
#: ../js/ui/searchDisplay.js:491
|
||||
msgid "No results."
|
||||
msgstr "Sen resultados."
|
||||
|
||||
@@ -1335,7 +1341,7 @@ msgid "Bluetooth"
|
||||
msgstr "Bluetooth"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:30 ../js/ui/status/network.js:112
|
||||
#: ../js/ui/status/network.js:1027 ../js/ui/status/rfkill.js:46
|
||||
#: ../js/ui/status/network.js:1034 ../js/ui/status/rfkill.js:46
|
||||
msgid "Turn Off"
|
||||
msgstr "Apagar"
|
||||
|
||||
@@ -1421,6 +1427,10 @@ msgstr "Escriba o PIN mencionado no dispositivo."
|
||||
msgid "OK"
|
||||
msgstr "Aceptar"
|
||||
|
||||
#: ../js/ui/status/brightness.js:42
|
||||
msgid "Brightness"
|
||||
msgstr "Brillo"
|
||||
|
||||
#: ../js/ui/status/keyboard.js:404
|
||||
msgid "Show Keyboard Layout"
|
||||
msgstr "Mostrar a distribución do teclado"
|
||||
@@ -1429,83 +1439,83 @@ msgstr "Mostrar a distribución do teclado"
|
||||
msgid "<unknown>"
|
||||
msgstr "<descoñecido>"
|
||||
|
||||
#: ../js/ui/status/network.js:196 ../js/ui/status/network.js:1042
|
||||
#: ../js/ui/status/network.js:203 ../js/ui/status/network.js:1049
|
||||
msgid "Off"
|
||||
msgstr "Desactivar"
|
||||
|
||||
#: ../js/ui/status/network.js:269 ../js/ui/status/network.js:948
|
||||
#: ../js/ui/status/network.js:276 ../js/ui/status/network.js:955
|
||||
#: ../js/ui/status/rfkill.js:49
|
||||
msgid "Network Settings"
|
||||
msgstr "Preferencias da rede"
|
||||
|
||||
#. 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)
|
||||
#: ../js/ui/status/network.js:357
|
||||
#: ../js/ui/status/network.js:364
|
||||
msgid "unmanaged"
|
||||
msgstr "non xestionada"
|
||||
|
||||
#: ../js/ui/status/network.js:359
|
||||
#: ../js/ui/status/network.js:366
|
||||
msgid "disconnecting..."
|
||||
msgstr "desconectando…"
|
||||
|
||||
#: ../js/ui/status/network.js:365 ../js/ui/status/network.js:1093
|
||||
#: ../js/ui/status/network.js:372 ../js/ui/status/network.js:1100
|
||||
msgid "connecting..."
|
||||
msgstr "conectando…"
|
||||
|
||||
#. Translators: this is for network connections that require some kind of key or password
|
||||
#: ../js/ui/status/network.js:368 ../js/ui/status/network.js:1096
|
||||
#: ../js/ui/status/network.js:375 ../js/ui/status/network.js:1103
|
||||
msgid "authentication required"
|
||||
msgstr "requírese autenticación"
|
||||
|
||||
#. Translators: this is for devices that require some kind of firmware or kernel
|
||||
#. module, which is missing
|
||||
#: ../js/ui/status/network.js:376
|
||||
#: ../js/ui/status/network.js:383
|
||||
msgid "firmware missing"
|
||||
msgstr "falta o «firmware»"
|
||||
|
||||
#. Translators: this is for a network device that cannot be activated (for example it
|
||||
#. is disabled by rfkill, or it has no coverage
|
||||
#: ../js/ui/status/network.js:380
|
||||
#: ../js/ui/status/network.js:387
|
||||
msgid "unavailable"
|
||||
msgstr "non dispoñíbel"
|
||||
|
||||
#: ../js/ui/status/network.js:382 ../js/ui/status/network.js:1098
|
||||
#: ../js/ui/status/network.js:389 ../js/ui/status/network.js:1105
|
||||
msgid "connection failed"
|
||||
msgstr "conexión fallada"
|
||||
|
||||
#: ../js/ui/status/network.js:647
|
||||
#: ../js/ui/status/network.js:654
|
||||
msgid "Wi-Fi Networks"
|
||||
msgstr "Redes WiFi"
|
||||
|
||||
#: ../js/ui/status/network.js:649
|
||||
#: ../js/ui/status/network.js:656
|
||||
msgid "Select a network"
|
||||
msgstr "Seleccione unha rede"
|
||||
|
||||
#: ../js/ui/status/network.js:673
|
||||
#: ../js/ui/status/network.js:680
|
||||
msgid "No Networks"
|
||||
msgstr "Sen redes"
|
||||
|
||||
#: ../js/ui/status/network.js:942
|
||||
#: ../js/ui/status/network.js:949
|
||||
msgid "Select Network"
|
||||
msgstr "Seleccione unha rede"
|
||||
|
||||
#: ../js/ui/status/network.js:1027
|
||||
#: ../js/ui/status/network.js:1034
|
||||
msgid "Turn On"
|
||||
msgstr "Activar"
|
||||
|
||||
#: ../js/ui/status/network.js:1160
|
||||
#: ../js/ui/status/network.js:1167
|
||||
msgid "VPN"
|
||||
msgstr "VPN"
|
||||
|
||||
#: ../js/ui/status/network.js:1296
|
||||
#: ../js/ui/status/network.js:1306
|
||||
msgid "Network Manager"
|
||||
msgstr "Xestor da rede"
|
||||
|
||||
#: ../js/ui/status/network.js:1338
|
||||
#: ../js/ui/status/network.js:1345
|
||||
msgid "Connection failed"
|
||||
msgstr "Produciuse un fallo na conexión"
|
||||
|
||||
#: ../js/ui/status/network.js:1339
|
||||
#: ../js/ui/status/network.js:1346
|
||||
msgid "Activation of network connection failed"
|
||||
msgstr "Produciuse un fallo na activación da conexión de rede"
|
||||
|
||||
@@ -1551,51 +1561,43 @@ msgstr "Modo avión"
|
||||
msgid "On"
|
||||
msgstr "Activado"
|
||||
|
||||
#: ../js/ui/status/system.js:247
|
||||
#: ../js/ui/status/system.js:305
|
||||
msgid "Switch User"
|
||||
msgstr "Cambiar de usuario"
|
||||
|
||||
#: ../js/ui/status/system.js:252
|
||||
#: ../js/ui/status/system.js:310
|
||||
msgid "Log Out"
|
||||
msgstr "Saír da sesión"
|
||||
|
||||
#: ../js/ui/status/system.js:271
|
||||
#: ../js/ui/status/system.js:329
|
||||
msgid "Orientation Lock"
|
||||
msgstr "Bloqueo de orientación"
|
||||
|
||||
#: ../js/ui/status/system.js:279 ../js/ui/status/system.js:377
|
||||
#: ../js/ui/status/system.js:337
|
||||
msgid "Suspend"
|
||||
msgstr "Suspender"
|
||||
|
||||
#: ../js/ui/status/system.js:340
|
||||
msgid "Power Off"
|
||||
msgstr "Apagar"
|
||||
|
||||
#: ../js/ui/status/system.js:323
|
||||
msgid "Other users are logged in."
|
||||
msgstr "Hai outros usuarios conectados."
|
||||
|
||||
#: ../js/ui/status/system.js:328
|
||||
msgid "Shutting down might cause them to lose unsaved work."
|
||||
msgstr "Se apaga o computador pode perder o traballo que non gardou."
|
||||
|
||||
#. Translators: Remote here refers to a remote session, like a ssh login
|
||||
#: ../js/ui/status/system.js:356
|
||||
#, c-format
|
||||
msgid "%s (remote)"
|
||||
msgstr "%s (remoto)"
|
||||
|
||||
#. Translators: Console here refers to a tty like a VT console
|
||||
#: ../js/ui/status/system.js:359
|
||||
#, c-format
|
||||
msgid "%s (console)"
|
||||
msgstr "%s (consola)"
|
||||
|
||||
#: ../js/ui/status/volume.js:124
|
||||
#: ../js/ui/status/volume.js:127
|
||||
msgid "Volume changed"
|
||||
msgstr "Volume cambiado"
|
||||
|
||||
#: ../js/ui/unlockDialog.js:64
|
||||
#: ../js/ui/status/volume.js:162
|
||||
msgid "Volume"
|
||||
msgstr "Volume"
|
||||
|
||||
#: ../js/ui/status/volume.js:213
|
||||
msgid "Microphone"
|
||||
msgstr "Micrófono"
|
||||
|
||||
#: ../js/ui/unlockDialog.js:67
|
||||
msgid "Log in as another user"
|
||||
msgstr "Iniciar sesión como outro usuario"
|
||||
|
||||
#: ../js/ui/unlockDialog.js:81
|
||||
#: ../js/ui/unlockDialog.js:84
|
||||
msgid "Unlock Window"
|
||||
msgstr "Desbloquear xanela"
|
||||
|
||||
@@ -1709,6 +1711,49 @@ msgstr "O contrasinal non pode estar baleiro"
|
||||
msgid "Authentication dialog was dismissed by the user"
|
||||
msgstr "O usuario rexeitou o diálogo de autenticación"
|
||||
|
||||
#~ msgid "Session"
|
||||
#~ msgstr "Sesión"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "Internally used to store the last IM presence explicitly set by the user. "
|
||||
#~ "The value here is from the TpConnectionPresenceType enumeration."
|
||||
#~ msgstr ""
|
||||
#~ "Usado internamente para gardar o último IM de presenza estabelecido "
|
||||
#~ "explícitamente polo usuario. O valor aquí é da enumeración "
|
||||
#~ "TpConnectionPresenceType."
|
||||
|
||||
#~ msgid ""
|
||||
#~ "Internally used to store the last session presence status for the user. "
|
||||
#~ "The value here is from the GsmPresenceStatus enumeration."
|
||||
#~ msgstr ""
|
||||
#~ "Usado internamente para gardar o último estado de presenza da sesión do "
|
||||
#~ "usuario. O valor aquí é da GsmPresenceStatus."
|
||||
|
||||
#~ msgid "Click Log Out to quit these applications and log out of the system."
|
||||
#~ msgstr ""
|
||||
#~ "Prema en «Saír da sesión» para pechar estes aplicativos e saír da sesión "
|
||||
#~ "do sistema."
|
||||
|
||||
#~ msgid "Logging out of the system."
|
||||
#~ msgstr "Saíndo da sesión do sistema."
|
||||
|
||||
#~ msgid "Click Power Off to quit these applications and power off the system."
|
||||
#~ msgstr ""
|
||||
#~ "Prema sobre «Apagar» para pechar estes aplicativos e apagar o sistema."
|
||||
|
||||
#~ msgid "Powering off the system."
|
||||
#~ msgstr "Apagando o sistema."
|
||||
|
||||
#~ msgid "Click Restart to quit these applications and restart the system."
|
||||
#~ msgstr ""
|
||||
#~ "Prema «Reiniciar» para pechar estes aplicativos e reiniciar o sistema."
|
||||
|
||||
#~ msgid "Restarting the system."
|
||||
#~ msgstr "Reiniciando o sistema."
|
||||
|
||||
#~ msgid "Shutting down might cause them to lose unsaved work."
|
||||
#~ msgstr "Se apaga o computador pode perder o traballo que non gardou."
|
||||
|
||||
#~ msgid "Screenshots"
|
||||
#~ msgstr "Capturas de pantalla"
|
||||
|
||||
@@ -1776,9 +1821,6 @@ msgstr "O usuario rexeitou o diálogo de autenticación"
|
||||
#~ msgid "Power"
|
||||
#~ msgstr "Apagar"
|
||||
|
||||
#~ msgid "Suspend"
|
||||
#~ msgstr "Suspender"
|
||||
|
||||
#~ msgid "Restart"
|
||||
#~ msgstr "Reiniciar"
|
||||
|
||||
@@ -1788,9 +1830,6 @@ msgstr "O usuario rexeitou o diálogo de autenticación"
|
||||
#~ msgid "Volume, network, battery"
|
||||
#~ msgstr "Volume, rede, batería"
|
||||
|
||||
#~ msgid "Volume"
|
||||
#~ msgstr "Volume"
|
||||
|
||||
#~ msgid "Universal Access Settings"
|
||||
#~ msgstr "Preferencias do acceso universal"
|
||||
|
||||
@@ -1903,9 +1942,6 @@ msgstr "O usuario rexeitou o diálogo de autenticación"
|
||||
#~ msgid "Unknown"
|
||||
#~ msgstr "Descoñecido"
|
||||
|
||||
#~ msgid "Microphone"
|
||||
#~ msgstr "Micrófono"
|
||||
|
||||
#~ msgid "Available"
|
||||
#~ msgstr "Dispoñíbel"
|
||||
|
||||
@@ -1924,9 +1960,6 @@ msgstr "O usuario rexeitou o diálogo de autenticación"
|
||||
#~ msgid "Notifications"
|
||||
#~ msgstr "Notificacións"
|
||||
|
||||
#~ msgid "Install Updates & Restart"
|
||||
#~ msgstr "Instalar actualizacións e reiniciar"
|
||||
|
||||
#~ msgid "Your chat status will be set to busy"
|
||||
#~ msgstr "O seu estado de conversa estabelecerase a «ocupado»"
|
||||
|
||||
|
342
po/id.po
342
po/id.po
@@ -10,8 +10,8 @@ msgstr ""
|
||||
"Project-Id-Version: gnome-shell master\n"
|
||||
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
|
||||
"shell&keywords=I18N+L10N&component=general\n"
|
||||
"POT-Creation-Date: 2013-08-20 18:21+0000\n"
|
||||
"PO-Revision-Date: 2013-08-21 17:36+0700\n"
|
||||
"POT-Creation-Date: 2013-09-02 19:28+0000\n"
|
||||
"PO-Revision-Date: 2013-09-10 13:06+0700\n"
|
||||
"Last-Translator: Andika Triwidada <andika@gmail.com>\n"
|
||||
"Language-Team: Indonesian <gnome@i15n.org>\n"
|
||||
"Language: id\n"
|
||||
@@ -126,27 +126,10 @@ msgid "History for the looking glass dialog"
|
||||
msgstr "Riwayat untuk dialog yang berpenampilan gelas kaca"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:11
|
||||
msgid ""
|
||||
"Internally used to store the last IM presence explicitly set by the user. "
|
||||
"The value here is from the TpConnectionPresenceType enumeration."
|
||||
msgstr ""
|
||||
"Secara internal dipakai untuk menyimpan kehadiran PI terakhir yang "
|
||||
"ditentukan oleh pengguna. Nilainya berasal dari enumerasi "
|
||||
"TpConnectionPresemceType."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:12
|
||||
msgid ""
|
||||
"Internally used to store the last session presence status for the user. The "
|
||||
"value here is from the GsmPresenceStatus enumeration."
|
||||
msgstr ""
|
||||
"Secara internal dipakai untuk menyimpan status sesi terakhir bagi pengguna. "
|
||||
"Nilainya berasal dari enumerasi GsmPresenceStatus."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:13
|
||||
msgid "Always show the 'Log out' menuitem in the user menu."
|
||||
msgstr "Selalku tampilkan butir menu 'Log keluar' dalam menu pengguna."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:14
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:12
|
||||
msgid ""
|
||||
"This key overrides the automatic hiding of the 'Log out' menuitem in single-"
|
||||
"user, single-session situations."
|
||||
@@ -154,14 +137,14 @@ msgstr ""
|
||||
"Kunci ini menimpa penyembunyian otomatis dari butir menu 'Log keluar' dalam "
|
||||
"situasi pengguna tunggal, sesi tunggal."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:15
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:13
|
||||
msgid ""
|
||||
"Whether to remember password for mounting encrypted or remote filesystems"
|
||||
msgstr ""
|
||||
"Apakah mengingat sandi untuk mengait sistem berkas terenkripsi atau jarak "
|
||||
"jauh"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:16
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:14
|
||||
msgid ""
|
||||
"The shell will request a password when an encrypted device or a remote "
|
||||
"filesystem is mounted. If the password can be saved for future use a "
|
||||
@@ -173,70 +156,70 @@ msgstr ""
|
||||
"dimasa depan, suatu kotak contreng 'Ingat Sandi' akan tampil. Kunci ini "
|
||||
"menata keadaan baku dari kontak contreng."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:17
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:15
|
||||
msgid "Show the week date in the calendar"
|
||||
msgstr "Menampilkan tanggal pada kalender"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:18
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:16
|
||||
msgid "If true, display the ISO week date in the calendar."
|
||||
msgstr "Jika \"true\", menampilkan tanggal berformat ISO pada kalender."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:19
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:17
|
||||
msgid "Keybinding to open the application menu"
|
||||
msgstr "Kombinasi tombol untuk membuka menu aplikasi"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:20
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:18
|
||||
msgid "Keybinding to open the application menu."
|
||||
msgstr "Kombinasi tombol untuk membuka menu aplikasi."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:21
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:19
|
||||
msgid "Keybinding to open the \"Show Applications\" view"
|
||||
msgstr "Kombinasi tombol untuk membuka tilikan \"Tampilkan Aplikasi\""
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:22
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:20
|
||||
msgid ""
|
||||
"Keybinding to open the \"Show Applications\" view of the Activities Overview."
|
||||
msgstr ""
|
||||
"Kombinasi tombol untuk membuka tilikan Ringkasan Aktivitas \"Tampilkan "
|
||||
"Aplikasi\"."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:23
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:21
|
||||
msgid "Keybinding to open the overview"
|
||||
msgstr "Kombinasi tombol untuk membuka ringkasan"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:24
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:22
|
||||
msgid "Keybinding to open the Activities Overview."
|
||||
msgstr "Kombinasi tombol untuk membuka Ringkasan Aktivitas."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:25
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:23
|
||||
msgid "Keybinding to toggle the visibility of the message tray"
|
||||
msgstr "Kombinasi tombol untuk kenampakan baki pesan"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:26
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:24
|
||||
msgid "Keybinding to toggle the visibility of the message tray."
|
||||
msgstr "Kombinasi tombol untuk kenampakan baki pesan."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:27
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:25
|
||||
msgid "Keybinding to focus the active notification"
|
||||
msgstr "Kombinasi tombol untuk fokus pada pemberitahuan yang aktif"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:28
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:26
|
||||
msgid "Keybinding to focus the active notification."
|
||||
msgstr "Kombinasi tombol untuk fokus pada pemberitahuan yang aktif."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:29
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:27
|
||||
msgid "Which keyboard to use"
|
||||
msgstr "Papan tik mana yang akan dipakai"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:30
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:28
|
||||
msgid "The type of keyboard to use."
|
||||
msgstr "Jenis papan tik yang akan dipakai."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:31
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:29
|
||||
msgid "The application icon mode."
|
||||
msgstr "Mode ikon aplikasi."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:32
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:30
|
||||
msgid ""
|
||||
"Configures how the windows are shown in the switcher. Valid possibilities "
|
||||
"are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-"
|
||||
@@ -246,22 +229,22 @@ msgstr ""
|
||||
"adalah 'thumbnail-only' (menampilkan gambar mini dari jendela), 'app-icon-"
|
||||
"only' (hanya menampilkan ikon aplikasi), atau 'both' (keduanya)."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:33
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:31
|
||||
msgid "Attach modal dialog to the parent window"
|
||||
msgstr "Mencantolkan dialog modal ke jendela induk"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:34
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:32
|
||||
msgid ""
|
||||
"This key overrides the key in org.gnome.mutter when running GNOME Shell."
|
||||
msgstr ""
|
||||
"Kunci ini menimpa kunci dalam org.gnome.mutter ketika menjalankan GNOME "
|
||||
"Shell."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:35
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:33
|
||||
msgid "Arrangement of buttons on the titlebar"
|
||||
msgstr "Pengaturan tombol pada bilah judul"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:36
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:34
|
||||
msgid ""
|
||||
"This key overrides the key in org.gnome.desktop.wm.preferences when running "
|
||||
"GNOME Shell."
|
||||
@@ -269,16 +252,16 @@ msgstr ""
|
||||
"Kunci ini menimpa kunci dalam org.gnome.desktop.wm.preferences ketika "
|
||||
"menjalankan GNOME Shell."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:35
|
||||
msgid "Enable edge tiling when dropping windows on screen edges"
|
||||
msgstr ""
|
||||
"Memfungsikan pengubinan tepi ketika menjatuhkan jendela pada tepi layar"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:38
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:36
|
||||
msgid "Workspaces are managed dynamically"
|
||||
msgstr "Ruang kerja dikelola secara dinamis"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:39
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37
|
||||
msgid "Workspaces only on primary monitor"
|
||||
msgstr "Ruang kerja hanya pada monitor primer"
|
||||
|
||||
@@ -295,46 +278,41 @@ msgstr "Ekstensi"
|
||||
msgid "Select an extension to configure using the combobox above."
|
||||
msgstr "Pilih ekstensi yang ingin dikonfigurasi pada kotak di atas."
|
||||
|
||||
#: ../js/gdm/authPrompt.js:146 ../js/ui/components/networkAgent.js:132
|
||||
#: ../js/ui/components/polkitAgent.js:161 ../js/ui/endSessionDialog.js:376
|
||||
#: ../js/gdm/authPrompt.js:145 ../js/ui/components/networkAgent.js:132
|
||||
#: ../js/ui/components/polkitAgent.js:161 ../js/ui/endSessionDialog.js:351
|
||||
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
|
||||
#: ../js/ui/status/bluetooth.js:221 ../js/ui/status/network.js:679
|
||||
#: ../js/ui/status/system.js:373
|
||||
#: ../js/ui/status/bluetooth.js:221 ../js/ui/status/network.js:686
|
||||
msgid "Cancel"
|
||||
msgstr "Batal"
|
||||
|
||||
#: ../js/gdm/authPrompt.js:168 ../js/gdm/authPrompt.js:216
|
||||
#: ../js/gdm/authPrompt.js:167 ../js/gdm/authPrompt.js:215
|
||||
msgid "Next"
|
||||
msgstr "Selanjutnya"
|
||||
|
||||
#: ../js/gdm/authPrompt.js:212 ../js/ui/shellMountOperation.js:403
|
||||
#: ../js/ui/unlockDialog.js:56
|
||||
#: ../js/gdm/authPrompt.js:211 ../js/ui/shellMountOperation.js:403
|
||||
#: ../js/ui/unlockDialog.js:59
|
||||
msgid "Unlock"
|
||||
msgstr "Buka Kunci"
|
||||
|
||||
#: ../js/gdm/authPrompt.js:214
|
||||
#: ../js/gdm/authPrompt.js:213
|
||||
msgctxt "button"
|
||||
msgid "Sign In"
|
||||
msgstr "Masuk"
|
||||
|
||||
#: ../js/gdm/loginDialog.js:299
|
||||
#: ../js/gdm/loginDialog.js:294
|
||||
msgid "Choose Session"
|
||||
msgstr "Pilih Sesi"
|
||||
|
||||
#: ../js/gdm/loginDialog.js:317
|
||||
msgid "Session"
|
||||
msgstr "Sesi"
|
||||
|
||||
#. translators: this message is shown below the user list on the
|
||||
#. login screen. It can be activated to reveal an entry for
|
||||
#. manually entering the username.
|
||||
#: ../js/gdm/loginDialog.js:468
|
||||
#: ../js/gdm/loginDialog.js:454
|
||||
msgid "Not listed?"
|
||||
msgstr "Tak masuk daftar?"
|
||||
|
||||
#. Translators: this message is shown below the username entry field
|
||||
#. to clue the user in on how to login to the local network realm
|
||||
#: ../js/gdm/loginDialog.js:641
|
||||
#: ../js/gdm/loginDialog.js:622
|
||||
#, c-format
|
||||
msgid "(e.g., user or %s)"
|
||||
msgstr "(cth., pengguna dari %s)"
|
||||
@@ -342,12 +320,12 @@ msgstr "(cth., pengguna dari %s)"
|
||||
#. TTLS and PEAP are actually much more complicated, but this complication
|
||||
#. is not visible here since we only care about phase2 authentication
|
||||
#. (and don't even care of which one)
|
||||
#: ../js/gdm/loginDialog.js:646 ../js/ui/components/networkAgent.js:255
|
||||
#: ../js/gdm/loginDialog.js:627 ../js/ui/components/networkAgent.js:255
|
||||
#: ../js/ui/components/networkAgent.js:273
|
||||
msgid "Username: "
|
||||
msgstr "Nama pengguna: "
|
||||
|
||||
#: ../js/gdm/loginDialog.js:909
|
||||
#: ../js/gdm/loginDialog.js:891
|
||||
msgid "Login Window"
|
||||
msgstr "Jendela Log Masuk"
|
||||
|
||||
@@ -360,7 +338,7 @@ msgstr "Galat otentikasi"
|
||||
#. as a cue to display our own message.
|
||||
#. Translators: this message is shown below the password entry field
|
||||
#. to indicate the user can swipe their finger instead
|
||||
#: ../js/gdm/util.js:419
|
||||
#: ../js/gdm/util.js:436
|
||||
msgid "(or swipe finger)"
|
||||
msgstr "(atau gesekkan jari)"
|
||||
|
||||
@@ -379,23 +357,27 @@ msgstr "Tidak dapat mengurai perintah:"
|
||||
msgid "Execution of '%s' failed:"
|
||||
msgstr "Eksekusi '%s' gagal:"
|
||||
|
||||
#: ../js/ui/appDisplay.js:386
|
||||
#: ../js/ui/appDisplay.js:578
|
||||
msgid "Frequently used applications will appear here"
|
||||
msgstr "Aplikasi yang sering dipakai akan muncul di sini"
|
||||
|
||||
#: ../js/ui/appDisplay.js:694
|
||||
msgid "Frequent"
|
||||
msgstr "Sering"
|
||||
|
||||
#: ../js/ui/appDisplay.js:393
|
||||
#: ../js/ui/appDisplay.js:701
|
||||
msgid "All"
|
||||
msgstr "Semua"
|
||||
|
||||
#: ../js/ui/appDisplay.js:986
|
||||
#: ../js/ui/appDisplay.js:1488
|
||||
msgid "New Window"
|
||||
msgstr "Jendela Baru"
|
||||
|
||||
#: ../js/ui/appDisplay.js:989 ../js/ui/dash.js:284
|
||||
#: ../js/ui/appDisplay.js:1491 ../js/ui/dash.js:284
|
||||
msgid "Remove from Favorites"
|
||||
msgstr "Hapus dari Favorit"
|
||||
|
||||
#: ../js/ui/appDisplay.js:990
|
||||
#: ../js/ui/appDisplay.js:1492
|
||||
msgid "Add to Favorites"
|
||||
msgstr "Tambah ke Favorit"
|
||||
|
||||
@@ -409,7 +391,7 @@ msgstr "%s telah ditambahkan ke favorit Anda."
|
||||
msgid "%s has been removed from your favorites."
|
||||
msgstr "%s telah dihapus dari favorit Anda."
|
||||
|
||||
#: ../js/ui/backgroundMenu.js:19 ../js/ui/status/system.js:267
|
||||
#: ../js/ui/backgroundMenu.js:19 ../js/ui/status/system.js:325
|
||||
msgid "Settings"
|
||||
msgstr "Pengaturan"
|
||||
|
||||
@@ -533,36 +515,44 @@ msgctxt "list saturday"
|
||||
msgid "S"
|
||||
msgstr "Sab"
|
||||
|
||||
#: ../js/ui/calendar.js:447
|
||||
msgid "Previous month"
|
||||
msgstr "Bulan sebelumnya"
|
||||
|
||||
#: ../js/ui/calendar.js:457
|
||||
msgid "Next month"
|
||||
msgstr "Bulan selanjutnya"
|
||||
|
||||
#. Translators: Text to show if there are no events
|
||||
#: ../js/ui/calendar.js:750
|
||||
#: ../js/ui/calendar.js:753
|
||||
msgid "Nothing Scheduled"
|
||||
msgstr "Tidak Ada Jadwal"
|
||||
|
||||
#. Translators: Shown on calendar heading when selected day occurs on current year
|
||||
#: ../js/ui/calendar.js:768
|
||||
#: ../js/ui/calendar.js:771
|
||||
msgctxt "calendar heading"
|
||||
msgid "%A, %B %d"
|
||||
msgstr "%A, %d %B"
|
||||
|
||||
#. Translators: Shown on calendar heading when selected day occurs on different year
|
||||
#: ../js/ui/calendar.js:771
|
||||
#: ../js/ui/calendar.js:774
|
||||
msgctxt "calendar heading"
|
||||
msgid "%A, %B %d, %Y"
|
||||
msgstr "%A, %d %B %Y"
|
||||
|
||||
#: ../js/ui/calendar.js:782
|
||||
#: ../js/ui/calendar.js:785
|
||||
msgid "Today"
|
||||
msgstr "Hari ini"
|
||||
|
||||
#: ../js/ui/calendar.js:786
|
||||
#: ../js/ui/calendar.js:789
|
||||
msgid "Tomorrow"
|
||||
msgstr "Besok"
|
||||
|
||||
#: ../js/ui/calendar.js:797
|
||||
#: ../js/ui/calendar.js:800
|
||||
msgid "This week"
|
||||
msgstr "Minggu ini"
|
||||
|
||||
#: ../js/ui/calendar.js:805
|
||||
#: ../js/ui/calendar.js:808
|
||||
msgid "Next week"
|
||||
msgstr "Minggu depan"
|
||||
|
||||
@@ -596,7 +586,7 @@ msgid "Type again:"
|
||||
msgstr "Ketik lagi:"
|
||||
|
||||
#: ../js/ui/components/networkAgent.js:127 ../js/ui/status/network.js:112
|
||||
#: ../js/ui/status/network.js:268 ../js/ui/status/network.js:682
|
||||
#: ../js/ui/status/network.js:275 ../js/ui/status/network.js:689
|
||||
msgid "Connect"
|
||||
msgstr "Sambung"
|
||||
|
||||
@@ -942,7 +932,7 @@ msgstr "Tampilkan Aplikasi"
|
||||
|
||||
#. Translators: this is the name of the dock/favorites area on
|
||||
#. the left of the overview
|
||||
#: ../js/ui/dash.js:439
|
||||
#: ../js/ui/dash.js:442
|
||||
msgid "Dash"
|
||||
msgstr "Dash"
|
||||
|
||||
@@ -965,91 +955,104 @@ msgstr "Pengaturan Waktu & Tanggal"
|
||||
msgid "%A %B %e, %Y"
|
||||
msgstr "%A, %e %B %Y"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:63
|
||||
#: ../js/ui/endSessionDialog.js:62
|
||||
#, c-format
|
||||
msgctxt "title"
|
||||
msgid "Log Out %s"
|
||||
msgstr "Keluar %s"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:64
|
||||
#: ../js/ui/endSessionDialog.js:63
|
||||
msgctxt "title"
|
||||
msgid "Log Out"
|
||||
msgstr "Keluar"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:65
|
||||
msgid "Click Log Out to quit these applications and log out of the system."
|
||||
msgstr "Klik Keluar untuk menutup aplikasi ini serta keluar dari sistem."
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:67
|
||||
#, c-format
|
||||
msgid "%s will be logged out automatically in %d second."
|
||||
msgid_plural "%s will be logged out automatically in %d seconds."
|
||||
msgstr[0] "%s akan log keluar otomatis dalam %d detik.\t\t"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:72
|
||||
#: ../js/ui/endSessionDialog.js:70
|
||||
#, c-format
|
||||
msgid "You will be logged out automatically in %d second."
|
||||
msgid_plural "You will be logged out automatically in %d seconds."
|
||||
msgstr[0] "Anda akan log keluar otomatis dalam %d detik."
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:76
|
||||
msgid "Logging out of the system."
|
||||
msgstr "Keluar dari sistem."
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:78
|
||||
#: ../js/ui/endSessionDialog.js:75
|
||||
msgctxt "button"
|
||||
msgid "Log Out"
|
||||
msgstr "Keluar"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:83
|
||||
#: ../js/ui/endSessionDialog.js:81
|
||||
msgctxt "title"
|
||||
msgid "Power Off"
|
||||
msgstr "Matikan"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:84
|
||||
msgid "Click Power Off to quit these applications and power off the system."
|
||||
msgstr "Klik Matikan untuk keluar dari aplikasi dan mematikan sistem."
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:86
|
||||
#: ../js/ui/endSessionDialog.js:83
|
||||
#, c-format
|
||||
msgid "The system will power off automatically in %d second."
|
||||
msgid_plural "The system will power off automatically in %d seconds."
|
||||
msgstr[0] "Sistem ini akan otomatis dimatikan dalam %d detik."
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:90
|
||||
msgid "Powering off the system."
|
||||
msgstr "Mematikan sistem."
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:92 ../js/ui/endSessionDialog.js:109
|
||||
#: ../js/ui/endSessionDialog.js:88 ../js/ui/endSessionDialog.js:104
|
||||
msgctxt "button"
|
||||
msgid "Restart"
|
||||
msgstr "Nyalakan Ulang"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:94
|
||||
#: ../js/ui/endSessionDialog.js:90
|
||||
msgctxt "button"
|
||||
msgid "Power Off"
|
||||
msgstr "Matikan"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:100
|
||||
#: ../js/ui/endSessionDialog.js:97
|
||||
msgctxt "title"
|
||||
msgid "Restart"
|
||||
msgstr "Nyalakan Ulang"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:101
|
||||
msgid "Click Restart to quit these applications and restart the system."
|
||||
msgstr ""
|
||||
"Klik Nyalakan Ulang untuk menutup aplikasi ini serta menyalakan kembali "
|
||||
"sistem."
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:103
|
||||
#: ../js/ui/endSessionDialog.js:99
|
||||
#, c-format
|
||||
msgid "The system will restart automatically in %d second."
|
||||
msgid_plural "The system will restart automatically in %d seconds."
|
||||
msgstr[0] "Sistem ini akan otomatis dimulai ulang dalam %d detik."
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:107
|
||||
msgid "Restarting the system."
|
||||
msgstr "Menyalan ulang sistem."
|
||||
#: ../js/ui/endSessionDialog.js:112
|
||||
msgctxt "title"
|
||||
msgid "Restart & Install Updates"
|
||||
msgstr "Start Ulang & Pasang Pemutakhiran"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:114
|
||||
#, c-format
|
||||
msgid "The system will automatically restart and install updates in %d second."
|
||||
msgid_plural ""
|
||||
"The system will automatically restart and install updates in %d seconds."
|
||||
msgstr[0] ""
|
||||
"Sistem ini akan otomatis dimulai ulang dan memasang pemutakhiran dalam %d "
|
||||
"detik."
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:119
|
||||
msgctxt "button"
|
||||
msgid "Restart & Install"
|
||||
msgstr "Start Ulang & Pasang"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:271
|
||||
msgid "Some applications are busy or have unsaved work."
|
||||
msgstr "Beberapa aplikasi sedang sibuk atau belum disimpan perubahannya."
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:277
|
||||
msgid "Other users are logged in."
|
||||
msgstr "Pengguna lain sedang log masuk."
|
||||
|
||||
#. Translators: Remote here refers to a remote session, like a ssh login
|
||||
#: ../js/ui/endSessionDialog.js:479
|
||||
#, c-format
|
||||
msgid "%s (remote)"
|
||||
msgstr "%s (jarak jauh)"
|
||||
|
||||
#. Translators: Console here refers to a tty like a VT console
|
||||
#: ../js/ui/endSessionDialog.js:482
|
||||
#, c-format
|
||||
msgid "%s (console)"
|
||||
msgstr "%s (konsol)"
|
||||
|
||||
#: ../js/ui/extensionDownloader.js:199
|
||||
msgid "Install"
|
||||
@@ -1132,15 +1135,15 @@ msgstr "Pengaturan Pemberitahuan"
|
||||
msgid "Tray Menu"
|
||||
msgstr "Menu Baki"
|
||||
|
||||
#: ../js/ui/messageTray.js:1777
|
||||
#: ../js/ui/messageTray.js:1775
|
||||
msgid "No Messages"
|
||||
msgstr "Tiada Pesan"
|
||||
|
||||
#: ../js/ui/messageTray.js:1814
|
||||
#: ../js/ui/messageTray.js:1812
|
||||
msgid "Message Tray"
|
||||
msgstr "Baki Pesan"
|
||||
|
||||
#: ../js/ui/messageTray.js:2788
|
||||
#: ../js/ui/messageTray.js:2786
|
||||
msgid "System Information"
|
||||
msgstr "Informasi Sistem"
|
||||
|
||||
@@ -1149,7 +1152,7 @@ msgctxt "program"
|
||||
msgid "Unknown"
|
||||
msgstr "Tak dikenal"
|
||||
|
||||
#: ../js/ui/overviewControls.js:491 ../js/ui/screenShield.js:154
|
||||
#: ../js/ui/overviewControls.js:491 ../js/ui/screenShield.js:152
|
||||
#, c-format
|
||||
msgid "%d new message"
|
||||
msgid_plural "%d new messages"
|
||||
@@ -1209,21 +1212,21 @@ msgstr "Tutup"
|
||||
|
||||
#. Translators: This is a time format for a date in
|
||||
#. long format
|
||||
#: ../js/ui/screenShield.js:90
|
||||
#: ../js/ui/screenShield.js:88
|
||||
msgid "%A, %B %d"
|
||||
msgstr "%A, %d %B"
|
||||
|
||||
#: ../js/ui/screenShield.js:156
|
||||
#: ../js/ui/screenShield.js:154
|
||||
#, c-format
|
||||
msgid "%d new notification"
|
||||
msgid_plural "%d new notifications"
|
||||
msgstr[0] "%d pemberitahuan baru"
|
||||
|
||||
#: ../js/ui/screenShield.js:479 ../js/ui/status/system.js:275
|
||||
#: ../js/ui/screenShield.js:477 ../js/ui/status/system.js:333
|
||||
msgid "Lock"
|
||||
msgstr "Kunci"
|
||||
|
||||
#: ../js/ui/screenShield.js:706
|
||||
#: ../js/ui/screenShield.js:703
|
||||
msgid "GNOME needs to lock the screen"
|
||||
msgstr "GNOME perlu mengunci layar"
|
||||
|
||||
@@ -1234,19 +1237,19 @@ msgstr "GNOME perlu mengunci layar"
|
||||
#.
|
||||
#. XXX: another option is to kick the user into the gdm login
|
||||
#. screen, where we're not affected by grabs
|
||||
#: ../js/ui/screenShield.js:831 ../js/ui/screenShield.js:1279
|
||||
#: ../js/ui/screenShield.js:830 ../js/ui/screenShield.js:1296
|
||||
msgid "Unable to lock"
|
||||
msgstr "Tak bisa mengunci"
|
||||
|
||||
#: ../js/ui/screenShield.js:832 ../js/ui/screenShield.js:1280
|
||||
#: ../js/ui/screenShield.js:831 ../js/ui/screenShield.js:1297
|
||||
msgid "Lock was blocked by an application"
|
||||
msgstr "Kunci diblokir oleh suatu aplikasi"
|
||||
|
||||
#: ../js/ui/searchDisplay.js:445
|
||||
#: ../js/ui/searchDisplay.js:447
|
||||
msgid "Searching…"
|
||||
msgstr "Mencari…"
|
||||
|
||||
#: ../js/ui/searchDisplay.js:489
|
||||
#: ../js/ui/searchDisplay.js:491
|
||||
msgid "No results."
|
||||
msgstr "Tidak ada yang cocok."
|
||||
|
||||
@@ -1327,7 +1330,7 @@ msgid "Bluetooth"
|
||||
msgstr "Bluetooth"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:30 ../js/ui/status/network.js:112
|
||||
#: ../js/ui/status/network.js:1027 ../js/ui/status/rfkill.js:46
|
||||
#: ../js/ui/status/network.js:1034 ../js/ui/status/rfkill.js:46
|
||||
msgid "Turn Off"
|
||||
msgstr "Matikan"
|
||||
|
||||
@@ -1412,6 +1415,10 @@ msgstr "Ketikkan PIN yang disebutkan oleh perangkat."
|
||||
msgid "OK"
|
||||
msgstr "Oke"
|
||||
|
||||
#: ../js/ui/status/brightness.js:42
|
||||
msgid "Brightness"
|
||||
msgstr "Kecerahan"
|
||||
|
||||
#: ../js/ui/status/keyboard.js:404
|
||||
msgid "Show Keyboard Layout"
|
||||
msgstr "Tampilkan Tata Letak Papan Tik"
|
||||
@@ -1420,83 +1427,83 @@ msgstr "Tampilkan Tata Letak Papan Tik"
|
||||
msgid "<unknown>"
|
||||
msgstr "<tak dikenal>"
|
||||
|
||||
#: ../js/ui/status/network.js:196 ../js/ui/status/network.js:1042
|
||||
#: ../js/ui/status/network.js:203 ../js/ui/status/network.js:1049
|
||||
msgid "Off"
|
||||
msgstr "Mati"
|
||||
|
||||
#: ../js/ui/status/network.js:269 ../js/ui/status/network.js:948
|
||||
#: ../js/ui/status/network.js:276 ../js/ui/status/network.js:955
|
||||
#: ../js/ui/status/rfkill.js:49
|
||||
msgid "Network Settings"
|
||||
msgstr "Pengaturan Jaringan"
|
||||
|
||||
#. 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)
|
||||
#: ../js/ui/status/network.js:357
|
||||
#: ../js/ui/status/network.js:364
|
||||
msgid "unmanaged"
|
||||
msgstr "tak dikelola"
|
||||
|
||||
#: ../js/ui/status/network.js:359
|
||||
#: ../js/ui/status/network.js:366
|
||||
msgid "disconnecting..."
|
||||
msgstr "memutus..."
|
||||
|
||||
#: ../js/ui/status/network.js:365 ../js/ui/status/network.js:1093
|
||||
#: ../js/ui/status/network.js:372 ../js/ui/status/network.js:1100
|
||||
msgid "connecting..."
|
||||
msgstr "menghubungi..."
|
||||
|
||||
#. Translators: this is for network connections that require some kind of key or password
|
||||
#: ../js/ui/status/network.js:368 ../js/ui/status/network.js:1096
|
||||
#: ../js/ui/status/network.js:375 ../js/ui/status/network.js:1103
|
||||
msgid "authentication required"
|
||||
msgstr "diperlukan otentikasi"
|
||||
|
||||
#. Translators: this is for devices that require some kind of firmware or kernel
|
||||
#. module, which is missing
|
||||
#: ../js/ui/status/network.js:376
|
||||
#: ../js/ui/status/network.js:383
|
||||
msgid "firmware missing"
|
||||
msgstr "firmware hilang"
|
||||
|
||||
#. Translators: this is for a network device that cannot be activated (for example it
|
||||
#. is disabled by rfkill, or it has no coverage
|
||||
#: ../js/ui/status/network.js:380
|
||||
#: ../js/ui/status/network.js:387
|
||||
msgid "unavailable"
|
||||
msgstr "tidak tersedia"
|
||||
|
||||
#: ../js/ui/status/network.js:382 ../js/ui/status/network.js:1098
|
||||
#: ../js/ui/status/network.js:389 ../js/ui/status/network.js:1105
|
||||
msgid "connection failed"
|
||||
msgstr "koneksi gagal"
|
||||
|
||||
#: ../js/ui/status/network.js:647
|
||||
#: ../js/ui/status/network.js:654
|
||||
msgid "Wi-Fi Networks"
|
||||
msgstr "Jaringan Wi-Fi"
|
||||
|
||||
#: ../js/ui/status/network.js:649
|
||||
#: ../js/ui/status/network.js:656
|
||||
msgid "Select a network"
|
||||
msgstr "Pilih jaringan"
|
||||
|
||||
#: ../js/ui/status/network.js:673
|
||||
#: ../js/ui/status/network.js:680
|
||||
msgid "No Networks"
|
||||
msgstr "Tiada Jaringan"
|
||||
|
||||
#: ../js/ui/status/network.js:942
|
||||
#: ../js/ui/status/network.js:949
|
||||
msgid "Select Network"
|
||||
msgstr "Pilih Jaringan"
|
||||
|
||||
#: ../js/ui/status/network.js:1027
|
||||
#: ../js/ui/status/network.js:1034
|
||||
msgid "Turn On"
|
||||
msgstr "Nyalakan"
|
||||
|
||||
#: ../js/ui/status/network.js:1160
|
||||
#: ../js/ui/status/network.js:1167
|
||||
msgid "VPN"
|
||||
msgstr "VPN"
|
||||
|
||||
#: ../js/ui/status/network.js:1296
|
||||
#: ../js/ui/status/network.js:1306
|
||||
msgid "Network Manager"
|
||||
msgstr "Manajer Jaringan"
|
||||
|
||||
#: ../js/ui/status/network.js:1338
|
||||
#: ../js/ui/status/network.js:1345
|
||||
msgid "Connection failed"
|
||||
msgstr "Koneksi gagal"
|
||||
|
||||
#: ../js/ui/status/network.js:1339
|
||||
#: ../js/ui/status/network.js:1346
|
||||
msgid "Activation of network connection failed"
|
||||
msgstr "Aktivasi koneksi jaringan gagal"
|
||||
|
||||
@@ -1542,52 +1549,43 @@ msgstr "Mode Pesawat Terbang"
|
||||
msgid "On"
|
||||
msgstr "Nyala"
|
||||
|
||||
#: ../js/ui/status/system.js:247
|
||||
#: ../js/ui/status/system.js:305
|
||||
msgid "Switch User"
|
||||
msgstr "Ganti Pengguna"
|
||||
|
||||
#: ../js/ui/status/system.js:252
|
||||
#: ../js/ui/status/system.js:310
|
||||
msgid "Log Out"
|
||||
msgstr "Keluar"
|
||||
|
||||
#: ../js/ui/status/system.js:271
|
||||
#: ../js/ui/status/system.js:329
|
||||
msgid "Orientation Lock"
|
||||
msgstr "Kunci Orientasi"
|
||||
|
||||
#: ../js/ui/status/system.js:279 ../js/ui/status/system.js:377
|
||||
#: ../js/ui/status/system.js:337
|
||||
msgid "Suspend"
|
||||
msgstr "Suspensi"
|
||||
|
||||
#: ../js/ui/status/system.js:340
|
||||
msgid "Power Off"
|
||||
msgstr "Matikan"
|
||||
|
||||
#: ../js/ui/status/system.js:323
|
||||
msgid "Other users are logged in."
|
||||
msgstr "Pengguna lain sedang log masuk."
|
||||
|
||||
#: ../js/ui/status/system.js:328
|
||||
msgid "Shutting down might cause them to lose unsaved work."
|
||||
msgstr ""
|
||||
"Mematikan dapat menyebabkan mereka kehilangan pekerjaan yang belum disimpan."
|
||||
|
||||
#. Translators: Remote here refers to a remote session, like a ssh login
|
||||
#: ../js/ui/status/system.js:356
|
||||
#, c-format
|
||||
msgid "%s (remote)"
|
||||
msgstr "%s (jarak jauh)"
|
||||
|
||||
#. Translators: Console here refers to a tty like a VT console
|
||||
#: ../js/ui/status/system.js:359
|
||||
#, c-format
|
||||
msgid "%s (console)"
|
||||
msgstr "%s (konsol)"
|
||||
|
||||
#: ../js/ui/status/volume.js:124
|
||||
#: ../js/ui/status/volume.js:127
|
||||
msgid "Volume changed"
|
||||
msgstr "Volume diubah"
|
||||
|
||||
#: ../js/ui/unlockDialog.js:64
|
||||
#: ../js/ui/status/volume.js:162
|
||||
msgid "Volume"
|
||||
msgstr "Volume"
|
||||
|
||||
#: ../js/ui/status/volume.js:213
|
||||
msgid "Microphone"
|
||||
msgstr "Mikrofon"
|
||||
|
||||
#: ../js/ui/unlockDialog.js:67
|
||||
msgid "Log in as another user"
|
||||
msgstr "Masuk sebagai pengguna lain"
|
||||
|
||||
#: ../js/ui/unlockDialog.js:81
|
||||
#: ../js/ui/unlockDialog.js:84
|
||||
msgid "Unlock Window"
|
||||
msgstr "Buka Kunci Jendela"
|
||||
|
||||
|
399
po/pt_BR.po
399
po/pt_BR.po
@@ -19,16 +19,16 @@ msgstr ""
|
||||
"Project-Id-Version: gnome-shell\n"
|
||||
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
|
||||
"shell&keywords=I18N+L10N&component=general\n"
|
||||
"POT-Creation-Date: 2013-08-21 00:22+0000\n"
|
||||
"PO-Revision-Date: 2013-08-03 10:03-0300\n"
|
||||
"Last-Translator: Enrico Nicoletto <liverig@gmail.com>\n"
|
||||
"POT-Creation-Date: 2013-09-02 19:28+0000\n"
|
||||
"PO-Revision-Date: 2013-09-02 20:50-0300\n"
|
||||
"Last-Translator: Rafael Ferreira <rafael.f.f1@gmail.com>\n"
|
||||
"Language-Team: Brazilian Portuguese <gnome-pt_br-list@gnome.org>\n"
|
||||
"Language: pt_BR\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n>1);\n"
|
||||
"X-Generator: Poedit 1.5.4\n"
|
||||
"X-Generator: Poedit 1.5.7\n"
|
||||
"X-Project-Style: gnome\n"
|
||||
|
||||
#: ../data/50-gnome-shell-system.xml.in.h:1
|
||||
@@ -57,7 +57,7 @@ msgstr "Abre o menu do aplicativo"
|
||||
|
||||
#: ../data/gnome-shell.desktop.in.in.h:1
|
||||
msgid "GNOME Shell"
|
||||
msgstr "Shell do GNOME"
|
||||
msgstr "GNOME Shell"
|
||||
|
||||
#: ../data/gnome-shell.desktop.in.in.h:2
|
||||
msgid "Window management and application launching"
|
||||
@@ -66,11 +66,11 @@ msgstr "Gerenciamento de janelas e lançador de aplicativos"
|
||||
#: ../data/gnome-shell-extension-prefs.desktop.in.in.h:1
|
||||
#: ../js/extensionPrefs/main.js:153
|
||||
msgid "GNOME Shell Extension Preferences"
|
||||
msgstr "Preferências de extensões do Shell do GNOME"
|
||||
msgstr "Preferências de extensões do GNOME Shell"
|
||||
|
||||
#: ../data/gnome-shell-extension-prefs.desktop.in.in.h:2
|
||||
msgid "Configure GNOME Shell Extensions"
|
||||
msgstr "Configurar extensões do Shell do GNOME"
|
||||
msgstr "Configurar extensões do GNOME Shell"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:1
|
||||
msgid "Enable internal tools useful for developers and testers from Alt-F2"
|
||||
@@ -97,7 +97,7 @@ msgid ""
|
||||
"list. You can also manipulate this list with the EnableExtension and "
|
||||
"DisableExtension DBus methods on org.gnome.Shell."
|
||||
msgstr ""
|
||||
"As extensões do Shell do GNOME tem uma propriedade uuid; esta chave lista as "
|
||||
"As extensões do GNOME Shell tem uma propriedade uuid; esta chave lista as "
|
||||
"extensões que devem ser carregadas. Qualquer extensão que quiser ser "
|
||||
"carregada precisa estar nessa lista. Você pode também manipular essa lista "
|
||||
"com os métodos EnableExtension e DisableExtensions do DBus em org.gnome."
|
||||
@@ -137,27 +137,10 @@ msgid "History for the looking glass dialog"
|
||||
msgstr "Histórico do diálogo do shell looking glass"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:11
|
||||
msgid ""
|
||||
"Internally used to store the last IM presence explicitly set by the user. "
|
||||
"The value here is from the TpConnectionPresenceType enumeration."
|
||||
msgstr ""
|
||||
"Usado internamente para armazenar a última presença de MI explicitamente "
|
||||
"definida pelo usuário. O valor aqui é de uma enumeração "
|
||||
"TpConnectionPresenceType."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:12
|
||||
msgid ""
|
||||
"Internally used to store the last session presence status for the user. The "
|
||||
"value here is from the GsmPresenceStatus enumeration."
|
||||
msgstr ""
|
||||
"Usado internamente para armazenar o último status de presença de sessão "
|
||||
"definida pelo usuário. O valor aqui é de uma enumeração GsmPresenceStatus."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:13
|
||||
msgid "Always show the 'Log out' menuitem in the user menu."
|
||||
msgstr "Sempre mostrar o item de menu \"Encerrar sessão\" no menu do usuário."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:14
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:12
|
||||
msgid ""
|
||||
"This key overrides the automatic hiding of the 'Log out' menuitem in single-"
|
||||
"user, single-session situations."
|
||||
@@ -166,14 +149,14 @@ msgstr ""
|
||||
"sessão\" quando houver somente um usuário, em situações de somente uma "
|
||||
"sessão."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:15
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:13
|
||||
msgid ""
|
||||
"Whether to remember password for mounting encrypted or remote filesystems"
|
||||
msgstr ""
|
||||
"Se lembra ou não as senhas para montar sistemas de arquivos criptografados "
|
||||
"ou remotos"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:16
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:14
|
||||
msgid ""
|
||||
"The shell will request a password when an encrypted device or a remote "
|
||||
"filesystem is mounted. If the password can be saved for future use a "
|
||||
@@ -185,70 +168,70 @@ msgstr ""
|
||||
"posterior, a caixa de seleção 'Lembrar senha' estará presente. Esta chave "
|
||||
"ajusta o estado padrão da caixa de seleção."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:17
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:15
|
||||
msgid "Show the week date in the calendar"
|
||||
msgstr "Mostrar o número da semana na agenda"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:18
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:16
|
||||
msgid "If true, display the ISO week date in the calendar."
|
||||
msgstr "Se verdadeiro, exibe o número da semana na agenda."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:19
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:17
|
||||
msgid "Keybinding to open the application menu"
|
||||
msgstr "Atalho de teclado para abrir um menu de aplicativo"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:20
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:18
|
||||
msgid "Keybinding to open the application menu."
|
||||
msgstr "Atalho de teclado para abrir um menu de aplicativo."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:21
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:19
|
||||
msgid "Keybinding to open the \"Show Applications\" view"
|
||||
msgstr "Atalho de teclado para abrir a visualização \"Mostrar aplicativos\""
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:22
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:20
|
||||
msgid ""
|
||||
"Keybinding to open the \"Show Applications\" view of the Activities Overview."
|
||||
msgstr ""
|
||||
"Atalho de teclado para abrir a visualização \"Mostrar aplicativos\" do "
|
||||
"panorama de atividades."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:23
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:21
|
||||
msgid "Keybinding to open the overview"
|
||||
msgstr "Atalho de teclado para abrir o panorama"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:24
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:22
|
||||
msgid "Keybinding to open the Activities Overview."
|
||||
msgstr "Atalho de teclado para abrir o panorama de atividades."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:25
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:23
|
||||
msgid "Keybinding to toggle the visibility of the message tray"
|
||||
msgstr "Atalho de teclado para alternar a visibilidade da área de notificação"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:26
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:24
|
||||
msgid "Keybinding to toggle the visibility of the message tray."
|
||||
msgstr "Atalho de teclado para alternar a visibilidade da área de notificação."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:27
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:25
|
||||
msgid "Keybinding to focus the active notification"
|
||||
msgstr "Atalho de teclado para ativar a notificação ativa"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:28
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:26
|
||||
msgid "Keybinding to focus the active notification."
|
||||
msgstr "Atalho de teclado para ativar a notificação ativa."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:29
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:27
|
||||
msgid "Which keyboard to use"
|
||||
msgstr "Qual teclado usar"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:30
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:28
|
||||
msgid "The type of keyboard to use."
|
||||
msgstr "O tipo do teclado para usar."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:31
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:29
|
||||
msgid "The application icon mode."
|
||||
msgstr "O modo ícone do aplicativo."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:32
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:30
|
||||
msgid ""
|
||||
"Configures how the windows are shown in the switcher. Valid possibilities "
|
||||
"are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-"
|
||||
@@ -258,22 +241,22 @@ msgstr ""
|
||||
"válidas são 'thumbnail-only' (mostra uma miniatura da janela), 'app-icon-"
|
||||
"only' (mostra apenas o ícone do aplicativo) ou 'both'."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:33
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:31
|
||||
msgid "Attach modal dialog to the parent window"
|
||||
msgstr "Anexar diálogo modal à janela pai"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:34
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:32
|
||||
msgid ""
|
||||
"This key overrides the key in org.gnome.mutter when running GNOME Shell."
|
||||
msgstr ""
|
||||
"Esta chave sobrescreve a chave em org.gnome.mutter ao executar o Shell do "
|
||||
"GNOME."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:35
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:33
|
||||
msgid "Arrangement of buttons on the titlebar"
|
||||
msgstr "Organização dos botões na barra de título"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:36
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:34
|
||||
msgid ""
|
||||
"This key overrides the key in org.gnome.desktop.wm.preferences when running "
|
||||
"GNOME Shell."
|
||||
@@ -281,16 +264,16 @@ msgstr ""
|
||||
"Esta chave sobrescreve a chave em org.gnome.desktop.wm.preferences ao "
|
||||
"executar o Shell do GNOME."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:35
|
||||
msgid "Enable edge tiling when dropping windows on screen edges"
|
||||
msgstr ""
|
||||
"Habilitar contorno ladrilhado ao arrastar janelas sobre as bordas da tela"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:38
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:36
|
||||
msgid "Workspaces are managed dynamically"
|
||||
msgstr "Espaços de trabalho são gerenciados dinamicamente"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:39
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37
|
||||
msgid "Workspaces only on primary monitor"
|
||||
msgstr "Espaços de trabalho apenas no monitor primário"
|
||||
|
||||
@@ -308,46 +291,41 @@ msgid "Select an extension to configure using the combobox above."
|
||||
msgstr ""
|
||||
"Selecione uma extensão para configurar usando a caixa de seleção abaixo."
|
||||
|
||||
#: ../js/gdm/authPrompt.js:146 ../js/ui/components/networkAgent.js:132
|
||||
#: ../js/ui/components/polkitAgent.js:161 ../js/ui/endSessionDialog.js:376
|
||||
#: ../js/gdm/authPrompt.js:145 ../js/ui/components/networkAgent.js:132
|
||||
#: ../js/ui/components/polkitAgent.js:161 ../js/ui/endSessionDialog.js:351
|
||||
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
|
||||
#: ../js/ui/status/bluetooth.js:221 ../js/ui/status/network.js:679
|
||||
#: ../js/ui/status/system.js:373
|
||||
#: ../js/ui/status/bluetooth.js:221 ../js/ui/status/network.js:686
|
||||
msgid "Cancel"
|
||||
msgstr "Cancelar"
|
||||
|
||||
#: ../js/gdm/authPrompt.js:168 ../js/gdm/authPrompt.js:216
|
||||
#: ../js/gdm/authPrompt.js:167 ../js/gdm/authPrompt.js:215
|
||||
msgid "Next"
|
||||
msgstr "Próximo"
|
||||
|
||||
#: ../js/gdm/authPrompt.js:212 ../js/ui/shellMountOperation.js:403
|
||||
#: ../js/ui/unlockDialog.js:56
|
||||
#: ../js/gdm/authPrompt.js:211 ../js/ui/shellMountOperation.js:403
|
||||
#: ../js/ui/unlockDialog.js:59
|
||||
msgid "Unlock"
|
||||
msgstr "Desbloquear"
|
||||
|
||||
#: ../js/gdm/authPrompt.js:214
|
||||
#: ../js/gdm/authPrompt.js:213
|
||||
msgctxt "button"
|
||||
msgid "Sign In"
|
||||
msgstr "Entrar"
|
||||
|
||||
#: ../js/gdm/loginDialog.js:299
|
||||
#: ../js/gdm/loginDialog.js:294
|
||||
msgid "Choose Session"
|
||||
msgstr "Escolher sessão"
|
||||
|
||||
#: ../js/gdm/loginDialog.js:317
|
||||
msgid "Session"
|
||||
msgstr "Sessão"
|
||||
|
||||
#. translators: this message is shown below the user list on the
|
||||
#. login screen. It can be activated to reveal an entry for
|
||||
#. manually entering the username.
|
||||
#: ../js/gdm/loginDialog.js:468
|
||||
#: ../js/gdm/loginDialog.js:454
|
||||
msgid "Not listed?"
|
||||
msgstr "Não está listado?"
|
||||
|
||||
#. Translators: this message is shown below the username entry field
|
||||
#. to clue the user in on how to login to the local network realm
|
||||
#: ../js/gdm/loginDialog.js:641
|
||||
#: ../js/gdm/loginDialog.js:622
|
||||
#, c-format
|
||||
msgid "(e.g., user or %s)"
|
||||
msgstr "(ex.: usuário ou %s)"
|
||||
@@ -355,12 +333,12 @@ msgstr "(ex.: usuário ou %s)"
|
||||
#. TTLS and PEAP are actually much more complicated, but this complication
|
||||
#. is not visible here since we only care about phase2 authentication
|
||||
#. (and don't even care of which one)
|
||||
#: ../js/gdm/loginDialog.js:646 ../js/ui/components/networkAgent.js:255
|
||||
#: ../js/gdm/loginDialog.js:627 ../js/ui/components/networkAgent.js:255
|
||||
#: ../js/ui/components/networkAgent.js:273
|
||||
msgid "Username: "
|
||||
msgstr "Nome de usuário: "
|
||||
|
||||
#: ../js/gdm/loginDialog.js:909
|
||||
#: ../js/gdm/loginDialog.js:891
|
||||
msgid "Login Window"
|
||||
msgstr "Janela de sessão"
|
||||
|
||||
@@ -373,7 +351,7 @@ msgstr "Erro de autenticação"
|
||||
#. as a cue to display our own message.
|
||||
#. Translators: this message is shown below the password entry field
|
||||
#. to indicate the user can swipe their finger instead
|
||||
#: ../js/gdm/util.js:419
|
||||
#: ../js/gdm/util.js:436
|
||||
msgid "(or swipe finger)"
|
||||
msgstr "(ou deslize o dedo)"
|
||||
|
||||
@@ -392,23 +370,27 @@ msgstr "Não foi possível analisar comando:"
|
||||
msgid "Execution of '%s' failed:"
|
||||
msgstr "A execução de \"%s\" falhou:"
|
||||
|
||||
#: ../js/ui/appDisplay.js:386
|
||||
#: ../js/ui/appDisplay.js:578
|
||||
msgid "Frequently used applications will appear here"
|
||||
msgstr "Aplicativos usados frequentemente vão aparecer aqui"
|
||||
|
||||
#: ../js/ui/appDisplay.js:694
|
||||
msgid "Frequent"
|
||||
msgstr "Frequente"
|
||||
|
||||
#: ../js/ui/appDisplay.js:393
|
||||
#: ../js/ui/appDisplay.js:701
|
||||
msgid "All"
|
||||
msgstr "Todos"
|
||||
|
||||
#: ../js/ui/appDisplay.js:986
|
||||
#: ../js/ui/appDisplay.js:1488
|
||||
msgid "New Window"
|
||||
msgstr "Nova janela"
|
||||
|
||||
#: ../js/ui/appDisplay.js:989 ../js/ui/dash.js:284
|
||||
#: ../js/ui/appDisplay.js:1491 ../js/ui/dash.js:284
|
||||
msgid "Remove from Favorites"
|
||||
msgstr "Remover dos favoritos"
|
||||
|
||||
#: ../js/ui/appDisplay.js:990
|
||||
#: ../js/ui/appDisplay.js:1492
|
||||
msgid "Add to Favorites"
|
||||
msgstr "Adicionar aos favoritos"
|
||||
|
||||
@@ -422,7 +404,7 @@ msgstr "%s foi adicionado aos seus favoritos."
|
||||
msgid "%s has been removed from your favorites."
|
||||
msgstr "%s foi removido dos seus favoritos."
|
||||
|
||||
#: ../js/ui/backgroundMenu.js:19 ../js/ui/status/system.js:267
|
||||
#: ../js/ui/backgroundMenu.js:19 ../js/ui/status/system.js:325
|
||||
msgid "Settings"
|
||||
msgstr "Configurações"
|
||||
|
||||
@@ -546,36 +528,44 @@ msgctxt "list saturday"
|
||||
msgid "S"
|
||||
msgstr "Sab"
|
||||
|
||||
#: ../js/ui/calendar.js:447
|
||||
msgid "Previous month"
|
||||
msgstr "Mês anterior"
|
||||
|
||||
#: ../js/ui/calendar.js:457
|
||||
msgid "Next month"
|
||||
msgstr "Próximo mês"
|
||||
|
||||
#. Translators: Text to show if there are no events
|
||||
#: ../js/ui/calendar.js:750
|
||||
#: ../js/ui/calendar.js:753
|
||||
msgid "Nothing Scheduled"
|
||||
msgstr "Nada agendado"
|
||||
|
||||
#. Translators: Shown on calendar heading when selected day occurs on current year
|
||||
#: ../js/ui/calendar.js:768
|
||||
#: ../js/ui/calendar.js:771
|
||||
msgctxt "calendar heading"
|
||||
msgid "%A, %B %d"
|
||||
msgstr "%A, %d de %B"
|
||||
|
||||
#. Translators: Shown on calendar heading when selected day occurs on different year
|
||||
#: ../js/ui/calendar.js:771
|
||||
#: ../js/ui/calendar.js:774
|
||||
msgctxt "calendar heading"
|
||||
msgid "%A, %B %d, %Y"
|
||||
msgstr "%A, %d de %B de %Y"
|
||||
|
||||
#: ../js/ui/calendar.js:782
|
||||
#: ../js/ui/calendar.js:785
|
||||
msgid "Today"
|
||||
msgstr "Hoje"
|
||||
|
||||
#: ../js/ui/calendar.js:786
|
||||
#: ../js/ui/calendar.js:789
|
||||
msgid "Tomorrow"
|
||||
msgstr "Amanhã"
|
||||
|
||||
#: ../js/ui/calendar.js:797
|
||||
#: ../js/ui/calendar.js:800
|
||||
msgid "This week"
|
||||
msgstr "Esta semana"
|
||||
|
||||
#: ../js/ui/calendar.js:805
|
||||
#: ../js/ui/calendar.js:808
|
||||
msgid "Next week"
|
||||
msgstr "Próxima semana"
|
||||
|
||||
@@ -609,7 +599,7 @@ msgid "Type again:"
|
||||
msgstr "Digite novamente:"
|
||||
|
||||
#: ../js/ui/components/networkAgent.js:127 ../js/ui/status/network.js:112
|
||||
#: ../js/ui/status/network.js:268 ../js/ui/status/network.js:682
|
||||
#: ../js/ui/status/network.js:275 ../js/ui/status/network.js:689
|
||||
msgid "Connect"
|
||||
msgstr "Conectar"
|
||||
|
||||
@@ -954,7 +944,7 @@ msgstr "Mostrar aplicativos"
|
||||
|
||||
#. Translators: this is the name of the dock/favorites area on
|
||||
#. the left of the overview
|
||||
#: ../js/ui/dash.js:439
|
||||
#: ../js/ui/dash.js:442
|
||||
msgid "Dash"
|
||||
msgstr "Dash"
|
||||
|
||||
@@ -978,94 +968,111 @@ msgstr "Configurações de data & hora"
|
||||
msgid "%A %B %e, %Y"
|
||||
msgstr "%A, %e de %B de %Y"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:63
|
||||
#: ../js/ui/endSessionDialog.js:62
|
||||
#, c-format
|
||||
msgctxt "title"
|
||||
msgid "Log Out %s"
|
||||
msgstr "Encerrar sessão de %s"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:64
|
||||
#: ../js/ui/endSessionDialog.js:63
|
||||
msgctxt "title"
|
||||
msgid "Log Out"
|
||||
msgstr "Encerrar sessão"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:65
|
||||
msgid "Click Log Out to quit these applications and log out of the system."
|
||||
msgstr ""
|
||||
"Clique em Encerrar sessão para finalizar estes aplicativos e sair do sistema."
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:67
|
||||
#, c-format
|
||||
msgid "%s will be logged out automatically in %d second."
|
||||
msgid_plural "%s will be logged out automatically in %d seconds."
|
||||
msgstr[0] "%s encerrará a sessão automaticamente em %d segundo."
|
||||
msgstr[1] "%s encerrará a sessão automaticamente em %d segundos."
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:72
|
||||
#: ../js/ui/endSessionDialog.js:70
|
||||
#, c-format
|
||||
msgid "You will be logged out automatically in %d second."
|
||||
msgid_plural "You will be logged out automatically in %d seconds."
|
||||
msgstr[0] "Sua sessão será encerrada automaticamente em %d segundo."
|
||||
msgstr[1] "Sua sessão será encerrada automaticamente em %d segundos."
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:76
|
||||
msgid "Logging out of the system."
|
||||
msgstr "Encerrando sessão do sistema."
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:78
|
||||
#: ../js/ui/endSessionDialog.js:75
|
||||
msgctxt "button"
|
||||
msgid "Log Out"
|
||||
msgstr "Encerrar sessão"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:83
|
||||
#: ../js/ui/endSessionDialog.js:81
|
||||
msgctxt "title"
|
||||
msgid "Power Off"
|
||||
msgstr "Desligar"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:84
|
||||
msgid "Click Power Off to quit these applications and power off the system."
|
||||
msgstr "Clique em Desligar para fechar os aplicativos e desligar o sistema."
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:86
|
||||
#: ../js/ui/endSessionDialog.js:83
|
||||
#, c-format
|
||||
msgid "The system will power off automatically in %d second."
|
||||
msgid_plural "The system will power off automatically in %d seconds."
|
||||
msgstr[0] "O sistema será desligado automaticamente em %d segundo."
|
||||
msgstr[1] "O sistema será desligado automaticamente em %d segundos."
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:90
|
||||
msgid "Powering off the system."
|
||||
msgstr "Desligando o sistema."
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:92 ../js/ui/endSessionDialog.js:109
|
||||
#: ../js/ui/endSessionDialog.js:88 ../js/ui/endSessionDialog.js:104
|
||||
msgctxt "button"
|
||||
msgid "Restart"
|
||||
msgstr "Reiniciar"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:94
|
||||
#: ../js/ui/endSessionDialog.js:90
|
||||
msgctxt "button"
|
||||
msgid "Power Off"
|
||||
msgstr "Desligar"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:100
|
||||
#: ../js/ui/endSessionDialog.js:97
|
||||
msgctxt "title"
|
||||
msgid "Restart"
|
||||
msgstr "Reiniciar"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:101
|
||||
msgid "Click Restart to quit these applications and restart the system."
|
||||
msgstr "Clique em Reiniciar para fechar os aplicativos e reiniciar o sistema."
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:103
|
||||
#: ../js/ui/endSessionDialog.js:99
|
||||
#, c-format
|
||||
msgid "The system will restart automatically in %d second."
|
||||
msgid_plural "The system will restart automatically in %d seconds."
|
||||
msgstr[0] "O sistema irá reiniciar automaticamente em %d segundo."
|
||||
msgstr[1] "O sistema irá reiniciar automaticamente em %d segundos."
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:107
|
||||
msgid "Restarting the system."
|
||||
msgstr "Reiniciando o sistema."
|
||||
#: ../js/ui/endSessionDialog.js:112
|
||||
msgctxt "title"
|
||||
msgid "Restart & Install Updates"
|
||||
msgstr "Reiniciar & Instalar atualizações"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:114
|
||||
#, c-format
|
||||
msgid "The system will automatically restart and install updates in %d second."
|
||||
msgid_plural ""
|
||||
"The system will automatically restart and install updates in %d seconds."
|
||||
msgstr[0] ""
|
||||
"O sistema irá reiniciar e instalar atualizações automaticamente em %d "
|
||||
"segundo."
|
||||
msgstr[1] ""
|
||||
"O sistema irá reiniciar e instalar atualizações automaticamente em %d "
|
||||
"segundos."
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:119
|
||||
msgctxt "button"
|
||||
msgid "Restart & Install"
|
||||
msgstr "Reiniciar & Instalar"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:271
|
||||
msgid "Some applications are busy or have unsaved work."
|
||||
msgstr "Alguns aplicativos estão ocupados ou possuem trabalhos não salvos."
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:277
|
||||
msgid "Other users are logged in."
|
||||
msgstr "Outros usuários estão com sessão aberta."
|
||||
|
||||
#. Translators: Remote here refers to a remote session, like a ssh login
|
||||
#: ../js/ui/endSessionDialog.js:479
|
||||
#, c-format
|
||||
msgid "%s (remote)"
|
||||
msgstr "%s (remoto)"
|
||||
|
||||
#. Translators: Console here refers to a tty like a VT console
|
||||
#: ../js/ui/endSessionDialog.js:482
|
||||
#, c-format
|
||||
msgid "%s (console)"
|
||||
msgstr "%s (console)"
|
||||
|
||||
#: ../js/ui/extensionDownloader.js:199
|
||||
msgid "Install"
|
||||
@@ -1165,7 +1172,7 @@ msgctxt "program"
|
||||
msgid "Unknown"
|
||||
msgstr "Desconhecido"
|
||||
|
||||
#: ../js/ui/overviewControls.js:491 ../js/ui/screenShield.js:154
|
||||
#: ../js/ui/overviewControls.js:491 ../js/ui/screenShield.js:152
|
||||
#, c-format
|
||||
msgid "%d new message"
|
||||
msgid_plural "%d new messages"
|
||||
@@ -1225,22 +1232,22 @@ msgstr "Fechar"
|
||||
|
||||
#. Translators: This is a time format for a date in
|
||||
#. long format
|
||||
#: ../js/ui/screenShield.js:90
|
||||
#: ../js/ui/screenShield.js:88
|
||||
msgid "%A, %B %d"
|
||||
msgstr "%A, %d de %B"
|
||||
|
||||
#: ../js/ui/screenShield.js:156
|
||||
#: ../js/ui/screenShield.js:154
|
||||
#, c-format
|
||||
msgid "%d new notification"
|
||||
msgid_plural "%d new notifications"
|
||||
msgstr[0] "%d nova notificação"
|
||||
msgstr[1] "%d novas notificações"
|
||||
|
||||
#: ../js/ui/screenShield.js:479 ../js/ui/status/system.js:275
|
||||
#: ../js/ui/screenShield.js:477 ../js/ui/status/system.js:333
|
||||
msgid "Lock"
|
||||
msgstr "Bloquear"
|
||||
|
||||
#: ../js/ui/screenShield.js:712
|
||||
#: ../js/ui/screenShield.js:703
|
||||
msgid "GNOME needs to lock the screen"
|
||||
msgstr "GNOME precisa bloquear a tela"
|
||||
|
||||
@@ -1251,19 +1258,19 @@ msgstr "GNOME precisa bloquear a tela"
|
||||
#.
|
||||
#. XXX: another option is to kick the user into the gdm login
|
||||
#. screen, where we're not affected by grabs
|
||||
#: ../js/ui/screenShield.js:837 ../js/ui/screenShield.js:1316
|
||||
#: ../js/ui/screenShield.js:830 ../js/ui/screenShield.js:1296
|
||||
msgid "Unable to lock"
|
||||
msgstr "Não foi possível bloquear"
|
||||
|
||||
#: ../js/ui/screenShield.js:838 ../js/ui/screenShield.js:1317
|
||||
#: ../js/ui/screenShield.js:831 ../js/ui/screenShield.js:1297
|
||||
msgid "Lock was blocked by an application"
|
||||
msgstr "O bloqueio foi impedido por um aplicativo"
|
||||
|
||||
#: ../js/ui/searchDisplay.js:445
|
||||
#: ../js/ui/searchDisplay.js:447
|
||||
msgid "Searching…"
|
||||
msgstr "Pesquisando…"
|
||||
|
||||
#: ../js/ui/searchDisplay.js:489
|
||||
#: ../js/ui/searchDisplay.js:491
|
||||
msgid "No results."
|
||||
msgstr "Nenhum resultado."
|
||||
|
||||
@@ -1344,7 +1351,7 @@ msgid "Bluetooth"
|
||||
msgstr "Bluetooth"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:30 ../js/ui/status/network.js:112
|
||||
#: ../js/ui/status/network.js:1027 ../js/ui/status/rfkill.js:46
|
||||
#: ../js/ui/status/network.js:1034 ../js/ui/status/rfkill.js:46
|
||||
msgid "Turn Off"
|
||||
msgstr "Desligar"
|
||||
|
||||
@@ -1431,6 +1438,10 @@ msgstr "Por favor, informe o PIN mencionado no dispositivo."
|
||||
msgid "OK"
|
||||
msgstr "OK"
|
||||
|
||||
#: ../js/ui/status/brightness.js:42
|
||||
msgid "Brightness"
|
||||
msgstr "Brilho"
|
||||
|
||||
#: ../js/ui/status/keyboard.js:404
|
||||
msgid "Show Keyboard Layout"
|
||||
msgstr "Exibir disposição de teclado"
|
||||
@@ -1439,83 +1450,83 @@ msgstr "Exibir disposição de teclado"
|
||||
msgid "<unknown>"
|
||||
msgstr "<desconhecido>"
|
||||
|
||||
#: ../js/ui/status/network.js:196 ../js/ui/status/network.js:1042
|
||||
#: ../js/ui/status/network.js:203 ../js/ui/status/network.js:1049
|
||||
msgid "Off"
|
||||
msgstr "Desligar"
|
||||
|
||||
#: ../js/ui/status/network.js:269 ../js/ui/status/network.js:948
|
||||
#: ../js/ui/status/network.js:276 ../js/ui/status/network.js:955
|
||||
#: ../js/ui/status/rfkill.js:49
|
||||
msgid "Network Settings"
|
||||
msgstr "Configurações de rede"
|
||||
|
||||
#. 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)
|
||||
#: ../js/ui/status/network.js:357
|
||||
#: ../js/ui/status/network.js:364
|
||||
msgid "unmanaged"
|
||||
msgstr "não gerenciado"
|
||||
|
||||
#: ../js/ui/status/network.js:359
|
||||
#: ../js/ui/status/network.js:366
|
||||
msgid "disconnecting..."
|
||||
msgstr "desconectando..."
|
||||
|
||||
#: ../js/ui/status/network.js:365 ../js/ui/status/network.js:1093
|
||||
#: ../js/ui/status/network.js:372 ../js/ui/status/network.js:1100
|
||||
msgid "connecting..."
|
||||
msgstr "conectando..."
|
||||
|
||||
#. Translators: this is for network connections that require some kind of key or password
|
||||
#: ../js/ui/status/network.js:368 ../js/ui/status/network.js:1096
|
||||
#: ../js/ui/status/network.js:375 ../js/ui/status/network.js:1103
|
||||
msgid "authentication required"
|
||||
msgstr "autenticação necessária"
|
||||
|
||||
#. Translators: this is for devices that require some kind of firmware or kernel
|
||||
#. module, which is missing
|
||||
#: ../js/ui/status/network.js:376
|
||||
#: ../js/ui/status/network.js:383
|
||||
msgid "firmware missing"
|
||||
msgstr "firmware faltando"
|
||||
|
||||
#. Translators: this is for a network device that cannot be activated (for example it
|
||||
#. is disabled by rfkill, or it has no coverage
|
||||
#: ../js/ui/status/network.js:380
|
||||
#: ../js/ui/status/network.js:387
|
||||
msgid "unavailable"
|
||||
msgstr "indisponível"
|
||||
|
||||
#: ../js/ui/status/network.js:382 ../js/ui/status/network.js:1098
|
||||
#: ../js/ui/status/network.js:389 ../js/ui/status/network.js:1105
|
||||
msgid "connection failed"
|
||||
msgstr "conexão falhou"
|
||||
|
||||
#: ../js/ui/status/network.js:647
|
||||
#: ../js/ui/status/network.js:654
|
||||
msgid "Wi-Fi Networks"
|
||||
msgstr "Redes Wi-Fi"
|
||||
|
||||
#: ../js/ui/status/network.js:649
|
||||
#: ../js/ui/status/network.js:656
|
||||
msgid "Select a network"
|
||||
msgstr "Selecione uma rede"
|
||||
|
||||
#: ../js/ui/status/network.js:673
|
||||
#: ../js/ui/status/network.js:680
|
||||
msgid "No Networks"
|
||||
msgstr "Nenhuma rede"
|
||||
|
||||
#: ../js/ui/status/network.js:942
|
||||
#: ../js/ui/status/network.js:949
|
||||
msgid "Select Network"
|
||||
msgstr "Selecione a rede"
|
||||
|
||||
#: ../js/ui/status/network.js:1027
|
||||
#: ../js/ui/status/network.js:1034
|
||||
msgid "Turn On"
|
||||
msgstr "Ligar"
|
||||
|
||||
#: ../js/ui/status/network.js:1160
|
||||
#: ../js/ui/status/network.js:1167
|
||||
msgid "VPN"
|
||||
msgstr "VPN"
|
||||
|
||||
#: ../js/ui/status/network.js:1296
|
||||
#: ../js/ui/status/network.js:1306
|
||||
msgid "Network Manager"
|
||||
msgstr "Gerenciador de rede"
|
||||
|
||||
#: ../js/ui/status/network.js:1338
|
||||
#: ../js/ui/status/network.js:1345
|
||||
msgid "Connection failed"
|
||||
msgstr "Falha de conexão"
|
||||
|
||||
#: ../js/ui/status/network.js:1339
|
||||
#: ../js/ui/status/network.js:1346
|
||||
msgid "Activation of network connection failed"
|
||||
msgstr "Falha ao ativar a conexão da rede"
|
||||
|
||||
@@ -1561,52 +1572,43 @@ msgstr "Modo avião"
|
||||
msgid "On"
|
||||
msgstr "On"
|
||||
|
||||
#: ../js/ui/status/system.js:247
|
||||
#: ../js/ui/status/system.js:305
|
||||
msgid "Switch User"
|
||||
msgstr "Alternar usuário"
|
||||
|
||||
#: ../js/ui/status/system.js:252
|
||||
#: ../js/ui/status/system.js:310
|
||||
msgid "Log Out"
|
||||
msgstr "Encerrar sessão"
|
||||
|
||||
#: ../js/ui/status/system.js:271
|
||||
#: ../js/ui/status/system.js:329
|
||||
msgid "Orientation Lock"
|
||||
msgstr "Bloqueio da orientação"
|
||||
|
||||
#: ../js/ui/status/system.js:279 ../js/ui/status/system.js:377
|
||||
#: ../js/ui/status/system.js:337
|
||||
msgid "Suspend"
|
||||
msgstr "Suspender"
|
||||
|
||||
#: ../js/ui/status/system.js:340
|
||||
msgid "Power Off"
|
||||
msgstr "Desligar"
|
||||
|
||||
#: ../js/ui/status/system.js:323
|
||||
msgid "Other users are logged in."
|
||||
msgstr "Outros usuários estão com sessão aberta."
|
||||
|
||||
#: ../js/ui/status/system.js:328
|
||||
msgid "Shutting down might cause them to lose unsaved work."
|
||||
msgstr ""
|
||||
"O desligamento pode fazer com que eles percam seus trabalhos não salvos."
|
||||
|
||||
#. Translators: Remote here refers to a remote session, like a ssh login
|
||||
#: ../js/ui/status/system.js:356
|
||||
#, c-format
|
||||
msgid "%s (remote)"
|
||||
msgstr "%s (remoto)"
|
||||
|
||||
#. Translators: Console here refers to a tty like a VT console
|
||||
#: ../js/ui/status/system.js:359
|
||||
#, c-format
|
||||
msgid "%s (console)"
|
||||
msgstr "%s (console)"
|
||||
|
||||
#: ../js/ui/status/volume.js:124
|
||||
#: ../js/ui/status/volume.js:127
|
||||
msgid "Volume changed"
|
||||
msgstr "Volume alterado"
|
||||
|
||||
#: ../js/ui/unlockDialog.js:64
|
||||
#: ../js/ui/status/volume.js:162
|
||||
msgid "Volume"
|
||||
msgstr "Volume"
|
||||
|
||||
#: ../js/ui/status/volume.js:213
|
||||
msgid "Microphone"
|
||||
msgstr "Microfone"
|
||||
|
||||
#: ../js/ui/unlockDialog.js:67
|
||||
msgid "Log in as another user"
|
||||
msgstr "Iniciar sessão como outro usuário"
|
||||
|
||||
#: ../js/ui/unlockDialog.js:81
|
||||
#: ../js/ui/unlockDialog.js:84
|
||||
msgid "Unlock Window"
|
||||
msgstr "Desbloquear janela"
|
||||
|
||||
@@ -1718,6 +1720,49 @@ msgstr "A senha não pode estar em branco"
|
||||
msgid "Authentication dialog was dismissed by the user"
|
||||
msgstr "O diálogo de autenticação foi descartado pelo usuário"
|
||||
|
||||
#~ msgid "Session"
|
||||
#~ msgstr "Sessão"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "Internally used to store the last IM presence explicitly set by the user. "
|
||||
#~ "The value here is from the TpConnectionPresenceType enumeration."
|
||||
#~ msgstr ""
|
||||
#~ "Usado internamente para armazenar a última presença de MI explicitamente "
|
||||
#~ "definida pelo usuário. O valor aqui é de uma enumeração "
|
||||
#~ "TpConnectionPresenceType."
|
||||
|
||||
#~ msgid ""
|
||||
#~ "Internally used to store the last session presence status for the user. "
|
||||
#~ "The value here is from the GsmPresenceStatus enumeration."
|
||||
#~ msgstr ""
|
||||
#~ "Usado internamente para armazenar o último status de presença de sessão "
|
||||
#~ "definida pelo usuário. O valor aqui é de uma enumeração GsmPresenceStatus."
|
||||
|
||||
#~ msgid "Click Log Out to quit these applications and log out of the system."
|
||||
#~ msgstr ""
|
||||
#~ "Clique em Encerrar sessão para finalizar estes aplicativos e sair do "
|
||||
#~ "sistema."
|
||||
|
||||
#~ msgid "Logging out of the system."
|
||||
#~ msgstr "Encerrando sessão do sistema."
|
||||
|
||||
#~ msgid "Click Power Off to quit these applications and power off the system."
|
||||
#~ msgstr "Clique em Desligar para fechar os aplicativos e desligar o sistema."
|
||||
|
||||
#~ msgid "Powering off the system."
|
||||
#~ msgstr "Desligando o sistema."
|
||||
|
||||
#~ msgid "Click Restart to quit these applications and restart the system."
|
||||
#~ msgstr ""
|
||||
#~ "Clique em Reiniciar para fechar os aplicativos e reiniciar o sistema."
|
||||
|
||||
#~ msgid "Restarting the system."
|
||||
#~ msgstr "Reiniciando o sistema."
|
||||
|
||||
#~ msgid "Shutting down might cause them to lose unsaved work."
|
||||
#~ msgstr ""
|
||||
#~ "O desligamento pode fazer com que eles percam seus trabalhos não salvos."
|
||||
|
||||
#~ msgid "Screenshots"
|
||||
#~ msgstr "Capturas de tela"
|
||||
|
||||
@@ -1784,9 +1829,6 @@ msgstr "O diálogo de autenticação foi descartado pelo usuário"
|
||||
#~ msgid "Power"
|
||||
#~ msgstr "Desligar"
|
||||
|
||||
#~ msgid "Suspend"
|
||||
#~ msgstr "Suspender"
|
||||
|
||||
#~ msgid "Restart"
|
||||
#~ msgstr "Reiniciar"
|
||||
|
||||
@@ -1796,9 +1838,6 @@ msgstr "O diálogo de autenticação foi descartado pelo usuário"
|
||||
#~ msgid "Volume, network, battery"
|
||||
#~ msgstr "Volume, rede, bateria"
|
||||
|
||||
#~ msgid "Volume"
|
||||
#~ msgstr "Volume"
|
||||
|
||||
#~ msgid "Visibility"
|
||||
#~ msgstr "Visibilidade"
|
||||
|
||||
|
482
po/sk.po
482
po/sk.po
@@ -10,8 +10,8 @@ msgstr ""
|
||||
"Project-Id-Version: gnome-shell\n"
|
||||
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
|
||||
"shell&keywords=I18N+L10N&component=general\n"
|
||||
"POT-Creation-Date: 2013-08-20 19:53+0000\n"
|
||||
"PO-Revision-Date: 2013-08-01 18:49+0100\n"
|
||||
"POT-Creation-Date: 2013-09-04 09:34+0000\n"
|
||||
"PO-Revision-Date: 2013-08-29 20:44+0100\n"
|
||||
"Last-Translator: Dušan Kazik <prescott66@gmail.com>\n"
|
||||
"Language-Team: Slovak <gnome-sk-list@gnome.org>\n"
|
||||
"Language: sk\n"
|
||||
@@ -135,28 +135,10 @@ msgid "History for the looking glass dialog"
|
||||
msgstr "História dialógového okna integrovaného odlaďovača"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:11
|
||||
msgid ""
|
||||
"Internally used to store the last IM presence explicitly set by the user. "
|
||||
"The value here is from the TpConnectionPresenceType enumeration."
|
||||
msgstr ""
|
||||
"Vnútorne použité na uloženie posledného stavu prítomnosti internetového "
|
||||
"komunikátora výlučne nastavenej používateľom. Táto hodnota je z vymenovaných "
|
||||
"hodnôt typu TpConnectionPresenceType."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:12
|
||||
msgid ""
|
||||
"Internally used to store the last session presence status for the user. The "
|
||||
"value here is from the GsmPresenceStatus enumeration."
|
||||
msgstr ""
|
||||
"Vnútorne použité na uloženie posledného stavu prítomnosti relácie "
|
||||
"používateľa. Táto hodnota je z vymenovaných hodnôt typu "
|
||||
"GsmPresenceStatusType."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:13
|
||||
msgid "Always show the 'Log out' menuitem in the user menu."
|
||||
msgstr "Vždy zobraziť položku „Odhlásiť sa“ v ponuke používateľa"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:14
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:12
|
||||
msgid ""
|
||||
"This key overrides the automatic hiding of the 'Log out' menuitem in single-"
|
||||
"user, single-session situations."
|
||||
@@ -165,7 +147,7 @@ msgstr ""
|
||||
"s jedným používateľom alebo jednou reláciou."
|
||||
|
||||
# summary
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:15
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:13
|
||||
msgid ""
|
||||
"Whether to remember password for mounting encrypted or remote filesystems"
|
||||
msgstr ""
|
||||
@@ -173,7 +155,7 @@ msgstr ""
|
||||
"prenosných súborových systémov"
|
||||
|
||||
# description
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:16
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:14
|
||||
msgid ""
|
||||
"The shell will request a password when an encrypted device or a remote "
|
||||
"filesystem is mounted. If the password can be saved for future use a "
|
||||
@@ -185,71 +167,71 @@ msgstr ""
|
||||
"zobrazí sa zaškrtávacie pole „Zapamätať heslo“. Tento kľúč nastaví "
|
||||
"predvolený stav zaškrtávacieho poľa."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:17
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:15
|
||||
msgid "Show the week date in the calendar"
|
||||
msgstr "Zobraziť čísla týždňov v kalendári"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:18
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:16
|
||||
msgid "If true, display the ISO week date in the calendar."
|
||||
msgstr ""
|
||||
"Ak je true, zobrazí v kalendári poradie dní v týždni podľa štandardu ISO."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:19
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:17
|
||||
msgid "Keybinding to open the application menu"
|
||||
msgstr "Klávesová skratka na otvorenie ponuky aplikácií"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:20
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:18
|
||||
msgid "Keybinding to open the application menu."
|
||||
msgstr "Klávesová skratka na otvorenie ponuky aplikácií."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:21
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:19
|
||||
msgid "Keybinding to open the \"Show Applications\" view"
|
||||
msgstr "Klávesová skratka na otvorenie pohľadu „Zobraziť aplikácie“"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:22
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:20
|
||||
msgid ""
|
||||
"Keybinding to open the \"Show Applications\" view of the Activities Overview."
|
||||
msgstr ""
|
||||
"Klávesová skratka na otvorenie pohľadu „Zobraziť aplikácie“ v prehľade "
|
||||
"aktivít."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:23
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:21
|
||||
msgid "Keybinding to open the overview"
|
||||
msgstr "Klávesová skratka na otvorenie prehľadu"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:24
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:22
|
||||
msgid "Keybinding to open the Activities Overview."
|
||||
msgstr "Klávesová skratka na otvorenie prehľadu aktivít."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:25
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:23
|
||||
msgid "Keybinding to toggle the visibility of the message tray"
|
||||
msgstr "Klávesová skratka na prepnutie viditeľnosti lišty správ"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:26
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:24
|
||||
msgid "Keybinding to toggle the visibility of the message tray."
|
||||
msgstr "Klávesová skratka na prepnutie viditeľnosti lišty správ."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:27
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:25
|
||||
msgid "Keybinding to focus the active notification"
|
||||
msgstr "Klávesová skratka na zameranie aktívnych oznámení"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:28
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:26
|
||||
msgid "Keybinding to focus the active notification."
|
||||
msgstr "Klávesová skratka, s ktorou sa zamerá na aktívne oznámenia."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:29
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:27
|
||||
msgid "Which keyboard to use"
|
||||
msgstr "Ktorú klávesnicu používať"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:30
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:28
|
||||
msgid "The type of keyboard to use."
|
||||
msgstr "Typ klávesnice, ktorá sa má používať."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:31
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:29
|
||||
msgid "The application icon mode."
|
||||
msgstr "Režim ikonizácie aplikácií."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:32
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:30
|
||||
msgid ""
|
||||
"Configures how the windows are shown in the switcher. Valid possibilities "
|
||||
"are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-"
|
||||
@@ -259,22 +241,22 @@ msgstr ""
|
||||
"„thumbnail-only“ (zobrazí miniatúru okna), „app-icon-only“ (zobrazí iba "
|
||||
"ikonu aplikácie) alebo „both“ (zobrazí oboje)."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:33
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:31
|
||||
msgid "Attach modal dialog to the parent window"
|
||||
msgstr "Pripojiť modálne dialógové okno k rodičovskému oknu"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:34
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:32
|
||||
msgid ""
|
||||
"This key overrides the key in org.gnome.mutter when running GNOME Shell."
|
||||
msgstr ""
|
||||
"Tento kľúč preváži kľúč v org.gnome.mutter po spustení Shellu prostredia "
|
||||
"GNOME."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:35
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:33
|
||||
msgid "Arrangement of buttons on the titlebar"
|
||||
msgstr "Usporiadanie tlačidiel na titulku okna"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:36
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:34
|
||||
msgid ""
|
||||
"This key overrides the key in org.gnome.desktop.wm.preferences when running "
|
||||
"GNOME Shell."
|
||||
@@ -282,15 +264,15 @@ msgstr ""
|
||||
"Tento kľúč preváži kľúč v org.gnome.desktop.wm.preferences po spustení "
|
||||
"Shellu prostredia GNOME."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:35
|
||||
msgid "Enable edge tiling when dropping windows on screen edges"
|
||||
msgstr "Povoliť natiahnutie k okraju pri pustení okien na okrajoch obrazovky"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:38
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:36
|
||||
msgid "Workspaces are managed dynamically"
|
||||
msgstr "Pracovné priestory sú spravované dynamicky"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:39
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37
|
||||
msgid "Workspaces only on primary monitor"
|
||||
msgstr "Pracovné priestory sú iba na primárnom monitore"
|
||||
|
||||
@@ -307,50 +289,43 @@ msgstr "Rozšírenie"
|
||||
msgid "Select an extension to configure using the combobox above."
|
||||
msgstr "Použitím ponuky vyberte rozšírenie na nastavenie"
|
||||
|
||||
#: ../js/gdm/authPrompt.js:146 ../js/ui/components/networkAgent.js:132
|
||||
#: ../js/ui/components/polkitAgent.js:161 ../js/ui/endSessionDialog.js:376
|
||||
#: ../js/gdm/authPrompt.js:145 ../js/ui/components/networkAgent.js:132
|
||||
#: ../js/ui/components/polkitAgent.js:161 ../js/ui/endSessionDialog.js:351
|
||||
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
|
||||
#: ../js/ui/status/bluetooth.js:221 ../js/ui/status/network.js:679
|
||||
#: ../js/ui/status/system.js:373
|
||||
#: ../js/ui/status/bluetooth.js:221 ../js/ui/status/network.js:686
|
||||
msgid "Cancel"
|
||||
msgstr "Zrušiť"
|
||||
|
||||
#: ../js/gdm/authPrompt.js:168 ../js/gdm/authPrompt.js:216
|
||||
#: ../js/gdm/authPrompt.js:167 ../js/gdm/authPrompt.js:215
|
||||
msgid "Next"
|
||||
msgstr "Ďalej"
|
||||
|
||||
# PM: prečo nie odomknúť?
|
||||
#: ../js/gdm/authPrompt.js:212 ../js/ui/shellMountOperation.js:403
|
||||
#: ../js/ui/unlockDialog.js:56
|
||||
#, fuzzy
|
||||
#: ../js/gdm/authPrompt.js:211 ../js/ui/shellMountOperation.js:403
|
||||
#: ../js/ui/unlockDialog.js:59
|
||||
msgid "Unlock"
|
||||
msgstr "Odblokovať"
|
||||
msgstr "Odomknúť"
|
||||
|
||||
#: ../js/gdm/authPrompt.js:214
|
||||
#: ../js/gdm/authPrompt.js:213
|
||||
msgctxt "button"
|
||||
msgid "Sign In"
|
||||
msgstr "Prihlásiť sa"
|
||||
|
||||
# button
|
||||
#: ../js/gdm/loginDialog.js:299
|
||||
#: ../js/gdm/loginDialog.js:294
|
||||
msgid "Choose Session"
|
||||
msgstr "Vybrať reláciu"
|
||||
|
||||
#: ../js/gdm/loginDialog.js:317
|
||||
msgid "Session"
|
||||
msgstr "Relácia"
|
||||
|
||||
# https://bugzilla.gnome.org/show_bug.cgi?id=659972
|
||||
#. translators: this message is shown below the user list on the
|
||||
#. login screen. It can be activated to reveal an entry for
|
||||
#. manually entering the username.
|
||||
#: ../js/gdm/loginDialog.js:468
|
||||
#: ../js/gdm/loginDialog.js:454
|
||||
msgid "Not listed?"
|
||||
msgstr "Nie ste v zozname?"
|
||||
|
||||
#. Translators: this message is shown below the username entry field
|
||||
#. to clue the user in on how to login to the local network realm
|
||||
#: ../js/gdm/loginDialog.js:641
|
||||
#: ../js/gdm/loginDialog.js:622
|
||||
#, c-format
|
||||
msgid "(e.g., user or %s)"
|
||||
msgstr "(napr., používateľ alebo %s)"
|
||||
@@ -358,12 +333,12 @@ msgstr "(napr., používateľ alebo %s)"
|
||||
#. TTLS and PEAP are actually much more complicated, but this complication
|
||||
#. is not visible here since we only care about phase2 authentication
|
||||
#. (and don't even care of which one)
|
||||
#: ../js/gdm/loginDialog.js:646 ../js/ui/components/networkAgent.js:255
|
||||
#: ../js/gdm/loginDialog.js:627 ../js/ui/components/networkAgent.js:255
|
||||
#: ../js/ui/components/networkAgent.js:273
|
||||
msgid "Username: "
|
||||
msgstr "Používateľské meno: "
|
||||
|
||||
#: ../js/gdm/loginDialog.js:909
|
||||
#: ../js/gdm/loginDialog.js:891
|
||||
msgid "Login Window"
|
||||
msgstr "Prihlasovacie okno"
|
||||
|
||||
@@ -376,7 +351,7 @@ msgstr "Chyba pri overovaní totožnosti"
|
||||
#. as a cue to display our own message.
|
||||
#. Translators: this message is shown below the password entry field
|
||||
#. to indicate the user can swipe their finger instead
|
||||
#: ../js/gdm/util.js:419
|
||||
#: ../js/gdm/util.js:436
|
||||
msgid "(or swipe finger)"
|
||||
msgstr "(alebo prejdite prstom)"
|
||||
|
||||
@@ -395,23 +370,27 @@ msgstr "Nepodarilo sa analyzovať príkaz:"
|
||||
msgid "Execution of '%s' failed:"
|
||||
msgstr "Spustenie „%s“ zlyhalo:"
|
||||
|
||||
#: ../js/ui/appDisplay.js:386
|
||||
#: ../js/ui/appDisplay.js:580
|
||||
msgid "Frequently used applications will appear here"
|
||||
msgstr "Tu sa objavia často používané aplikácie"
|
||||
|
||||
#: ../js/ui/appDisplay.js:696
|
||||
msgid "Frequent"
|
||||
msgstr "Často používané"
|
||||
|
||||
#: ../js/ui/appDisplay.js:393
|
||||
#: ../js/ui/appDisplay.js:703
|
||||
msgid "All"
|
||||
msgstr "Všetky"
|
||||
|
||||
#: ../js/ui/appDisplay.js:986
|
||||
#: ../js/ui/appDisplay.js:1490
|
||||
msgid "New Window"
|
||||
msgstr "Nové okno"
|
||||
|
||||
#: ../js/ui/appDisplay.js:989 ../js/ui/dash.js:284
|
||||
#: ../js/ui/appDisplay.js:1493 ../js/ui/dash.js:284
|
||||
msgid "Remove from Favorites"
|
||||
msgstr "Odstrániť z obľúbených"
|
||||
|
||||
#: ../js/ui/appDisplay.js:990
|
||||
#: ../js/ui/appDisplay.js:1494
|
||||
msgid "Add to Favorites"
|
||||
msgstr "Pridať do obľúbených"
|
||||
|
||||
@@ -425,7 +404,7 @@ msgstr "Program %s bol pridaný medzi obľúbené."
|
||||
msgid "%s has been removed from your favorites."
|
||||
msgstr "Program %s bol odstránený z obľúbených."
|
||||
|
||||
#: ../js/ui/backgroundMenu.js:19 ../js/ui/status/system.js:267
|
||||
#: ../js/ui/backgroundMenu.js:19 ../js/ui/status/system.js:325
|
||||
msgid "Settings"
|
||||
msgstr "Nastavenia"
|
||||
|
||||
@@ -549,36 +528,44 @@ msgctxt "list saturday"
|
||||
msgid "S"
|
||||
msgstr "So"
|
||||
|
||||
#: ../js/ui/calendar.js:447
|
||||
msgid "Previous month"
|
||||
msgstr "Predchádzajúci mesiac"
|
||||
|
||||
#: ../js/ui/calendar.js:457
|
||||
msgid "Next month"
|
||||
msgstr "Nasledujúci mesiac"
|
||||
|
||||
#. Translators: Text to show if there are no events
|
||||
#: ../js/ui/calendar.js:750
|
||||
#: ../js/ui/calendar.js:753
|
||||
msgid "Nothing Scheduled"
|
||||
msgstr "Žiadne naplánované udalosti"
|
||||
|
||||
#. Translators: Shown on calendar heading when selected day occurs on current year
|
||||
#: ../js/ui/calendar.js:768
|
||||
#: ../js/ui/calendar.js:771
|
||||
msgctxt "calendar heading"
|
||||
msgid "%A, %B %d"
|
||||
msgstr "%A, %e. %B"
|
||||
|
||||
#. Translators: Shown on calendar heading when selected day occurs on different year
|
||||
#: ../js/ui/calendar.js:771
|
||||
#: ../js/ui/calendar.js:774
|
||||
msgctxt "calendar heading"
|
||||
msgid "%A, %B %d, %Y"
|
||||
msgstr "%A, %e. %B %Y"
|
||||
|
||||
#: ../js/ui/calendar.js:782
|
||||
#: ../js/ui/calendar.js:785
|
||||
msgid "Today"
|
||||
msgstr "Dnes"
|
||||
|
||||
#: ../js/ui/calendar.js:786
|
||||
#: ../js/ui/calendar.js:789
|
||||
msgid "Tomorrow"
|
||||
msgstr "Zajtra"
|
||||
|
||||
#: ../js/ui/calendar.js:797
|
||||
#: ../js/ui/calendar.js:800
|
||||
msgid "This week"
|
||||
msgstr "Tento týždeň"
|
||||
|
||||
#: ../js/ui/calendar.js:805
|
||||
#: ../js/ui/calendar.js:808
|
||||
msgid "Next week"
|
||||
msgstr "Ďalší týždeň"
|
||||
|
||||
@@ -613,7 +600,7 @@ msgid "Type again:"
|
||||
msgstr "Zadajte znovu:"
|
||||
|
||||
#: ../js/ui/components/networkAgent.js:127 ../js/ui/status/network.js:112
|
||||
#: ../js/ui/status/network.js:268 ../js/ui/status/network.js:682
|
||||
#: ../js/ui/status/network.js:275 ../js/ui/status/network.js:689
|
||||
msgid "Connect"
|
||||
msgstr "Pripojiť"
|
||||
|
||||
@@ -960,7 +947,7 @@ msgstr "Zobrazí aplikácie"
|
||||
|
||||
#. Translators: this is the name of the dock/favorites area on
|
||||
#. the left of the overview
|
||||
#: ../js/ui/dash.js:439
|
||||
#: ../js/ui/dash.js:442
|
||||
msgid "Dash"
|
||||
msgstr "Dok"
|
||||
|
||||
@@ -983,24 +970,18 @@ msgstr "Nastavenia dátumu a času"
|
||||
msgid "%A %B %e, %Y"
|
||||
msgstr "%A, %e. %B %Y"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:63
|
||||
#: ../js/ui/endSessionDialog.js:62
|
||||
#, c-format
|
||||
msgctxt "title"
|
||||
msgid "Log Out %s"
|
||||
msgstr "Odhlásenie používateľa %s"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:64
|
||||
#: ../js/ui/endSessionDialog.js:63
|
||||
msgctxt "title"
|
||||
msgid "Log Out"
|
||||
msgstr "Odhlásenie"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:65
|
||||
msgid "Click Log Out to quit these applications and log out of the system."
|
||||
msgstr ""
|
||||
"Po kliknutí na „Odhlásiť sa“ sa ukončia tieto aplikácie a budete odhlásení "
|
||||
"zo systému."
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:67
|
||||
#, c-format
|
||||
msgid "%s will be logged out automatically in %d second."
|
||||
msgid_plural "%s will be logged out automatically in %d seconds."
|
||||
@@ -1008,7 +989,7 @@ msgstr[0] "Používateľ %s bude automaticky odhlásený o %d sekúnd."
|
||||
msgstr[1] "Používateľ %s bude automaticky odhlásený o %d sekundu."
|
||||
msgstr[2] "Používateľ %s bude automaticky odhlásený o %d sekundy."
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:72
|
||||
#: ../js/ui/endSessionDialog.js:70
|
||||
#, c-format
|
||||
msgid "You will be logged out automatically in %d second."
|
||||
msgid_plural "You will be logged out automatically in %d seconds."
|
||||
@@ -1016,25 +997,17 @@ msgstr[0] "Budete automaticky odhlásený o %d sekúnd."
|
||||
msgstr[1] "Budete automaticky odhlásený o %d sekundu."
|
||||
msgstr[2] "Budete automaticky odhlásený o %d sekundy."
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:76
|
||||
msgid "Logging out of the system."
|
||||
msgstr "Prebieha odhlásenie zo systému."
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:78
|
||||
#: ../js/ui/endSessionDialog.js:75
|
||||
msgctxt "button"
|
||||
msgid "Log Out"
|
||||
msgstr "Odhlásiť sa"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:83
|
||||
#: ../js/ui/endSessionDialog.js:81
|
||||
msgctxt "title"
|
||||
msgid "Power Off"
|
||||
msgstr "Vypnutie"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:84
|
||||
msgid "Click Power Off to quit these applications and power off the system."
|
||||
msgstr "Po kliknutí na „Vypnúť“ sa ukončia tieto aplikácie a systém sa vypne."
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:86
|
||||
#: ../js/ui/endSessionDialog.js:83
|
||||
#, c-format
|
||||
msgid "The system will power off automatically in %d second."
|
||||
msgid_plural "The system will power off automatically in %d seconds."
|
||||
@@ -1042,32 +1015,22 @@ msgstr[0] "Systém sa automaticky vypne o %d sekúnd."
|
||||
msgstr[1] "Systém sa automaticky vypne o %d sekundu."
|
||||
msgstr[2] "Systém sa automaticky vypne o %d sekundy."
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:90
|
||||
msgid "Powering off the system."
|
||||
msgstr "Vypína sa systém."
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:92 ../js/ui/endSessionDialog.js:109
|
||||
#: ../js/ui/endSessionDialog.js:88 ../js/ui/endSessionDialog.js:104
|
||||
msgctxt "button"
|
||||
msgid "Restart"
|
||||
msgstr "Reštartovať"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:94
|
||||
#: ../js/ui/endSessionDialog.js:90
|
||||
msgctxt "button"
|
||||
msgid "Power Off"
|
||||
msgstr "Vypnúť"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:100
|
||||
#: ../js/ui/endSessionDialog.js:97
|
||||
msgctxt "title"
|
||||
msgid "Restart"
|
||||
msgstr "Reštart"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:101
|
||||
msgid "Click Restart to quit these applications and restart the system."
|
||||
msgstr ""
|
||||
"Po kliknutí na „Reštartovať“ sa ukončia tieto aplikácie a systém sa "
|
||||
"reštartuje."
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:103
|
||||
#: ../js/ui/endSessionDialog.js:99
|
||||
#, c-format
|
||||
msgid "The system will restart automatically in %d second."
|
||||
msgid_plural "The system will restart automatically in %d seconds."
|
||||
@@ -1075,9 +1038,47 @@ msgstr[0] "Systém sa automaticky reštartuje o %d sekúnd."
|
||||
msgstr[1] "Systém sa automaticky reštartuje o %d sekundu."
|
||||
msgstr[2] "Systém sa automaticky reštartuje o %d sekundy."
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:107
|
||||
msgid "Restarting the system."
|
||||
msgstr "Reštartuje sa systém."
|
||||
#: ../js/ui/endSessionDialog.js:112
|
||||
msgctxt "title"
|
||||
msgid "Restart & Install Updates"
|
||||
msgstr "Reštart a inštalácia aktualizácií"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:114
|
||||
#, c-format
|
||||
msgid "The system will automatically restart and install updates in %d second."
|
||||
msgid_plural ""
|
||||
"The system will automatically restart and install updates in %d seconds."
|
||||
msgstr[0] ""
|
||||
"Systém sa automaticky reštartuje a nainštaluje aktualizácie o %d sekúnd."
|
||||
msgstr[1] ""
|
||||
"Systém sa automaticky reštartuje a nainštaluje aktualizácie o %d sekundu."
|
||||
msgstr[2] ""
|
||||
"Systém sa automaticky reštartuje a nainštaluje aktualizácie o %d sekundy."
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:119
|
||||
msgctxt "button"
|
||||
msgid "Restart & Install"
|
||||
msgstr "Reštartovať a inštalovať"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:271
|
||||
msgid "Some applications are busy or have unsaved work."
|
||||
msgstr "Niektoré aplikácie sú zaneprázdnené, alebo obsahujú neuloženú prácu."
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:277
|
||||
msgid "Other users are logged in."
|
||||
msgstr "Sú prihlásení iní používatelia."
|
||||
|
||||
#. Translators: Remote here refers to a remote session, like a ssh login
|
||||
#: ../js/ui/endSessionDialog.js:479
|
||||
#, c-format
|
||||
msgid "%s (remote)"
|
||||
msgstr "%s (vzdialená relácia)"
|
||||
|
||||
#. Translators: Console here refers to a tty like a VT console
|
||||
#: ../js/ui/endSessionDialog.js:482
|
||||
#, c-format
|
||||
msgid "%s (console)"
|
||||
msgstr "%s (konzola)"
|
||||
|
||||
#: ../js/ui/extensionDownloader.js:199
|
||||
msgid "Install"
|
||||
@@ -1157,9 +1158,10 @@ msgstr "Vymazať správy"
|
||||
msgid "Notification Settings"
|
||||
msgstr "Nastavenia oznámení"
|
||||
|
||||
# MČ" zd sa mi to čudné. tuším som videl preklady „oznamovacia oblasť“, čo mi viac sedí. Toto je trošku akoby zavádzajúce, ale možno to s okolím ozrejmuje výsledok. Možno by som tam ponechal len „ponuka“ ak akolie jednoznačne naznačuje, že ide o „lištu správ“
|
||||
#: ../js/ui/messageTray.js:1559
|
||||
msgid "Tray Menu"
|
||||
msgstr ""
|
||||
msgstr "Ponuka v lište"
|
||||
|
||||
#: ../js/ui/messageTray.js:1775
|
||||
msgid "No Messages"
|
||||
@@ -1180,7 +1182,7 @@ msgctxt "program"
|
||||
msgid "Unknown"
|
||||
msgstr "Neznámy"
|
||||
|
||||
#: ../js/ui/overviewControls.js:491 ../js/ui/screenShield.js:154
|
||||
#: ../js/ui/overviewControls.js:491 ../js/ui/screenShield.js:152
|
||||
#, c-format
|
||||
msgid "%d new message"
|
||||
msgid_plural "%d new messages"
|
||||
@@ -1216,11 +1218,10 @@ msgid "Activities"
|
||||
msgstr "Aktivity"
|
||||
|
||||
#: ../js/ui/panel.js:805
|
||||
#| msgid "Settings"
|
||||
msgid "Settings Menu"
|
||||
msgstr "Ponuka nastavení"
|
||||
|
||||
#: ../js/ui/panel.js:892
|
||||
#: ../js/ui/panel.js:901
|
||||
msgid "Top Bar"
|
||||
msgstr "Horná lišta"
|
||||
|
||||
@@ -1246,11 +1247,11 @@ msgstr "Zavrieť"
|
||||
# v ostatnych retazcoch je pouzite %e, tak to bude asi OK
|
||||
#. Translators: This is a time format for a date in
|
||||
#. long format
|
||||
#: ../js/ui/screenShield.js:90
|
||||
#: ../js/ui/screenShield.js:88
|
||||
msgid "%A, %B %d"
|
||||
msgstr "%A, %e. %B"
|
||||
|
||||
#: ../js/ui/screenShield.js:156
|
||||
#: ../js/ui/screenShield.js:154
|
||||
#, c-format
|
||||
msgid "%d new notification"
|
||||
msgid_plural "%d new notifications"
|
||||
@@ -1258,11 +1259,11 @@ msgstr[0] "%d nových oznámení"
|
||||
msgstr[1] "%d nové oznámenie"
|
||||
msgstr[2] "%d nové oznámenia"
|
||||
|
||||
#: ../js/ui/screenShield.js:479 ../js/ui/status/system.js:275
|
||||
#: ../js/ui/screenShield.js:477 ../js/ui/status/system.js:333
|
||||
msgid "Lock"
|
||||
msgstr "Uzamknúť"
|
||||
|
||||
#: ../js/ui/screenShield.js:712
|
||||
#: ../js/ui/screenShield.js:703
|
||||
msgid "GNOME needs to lock the screen"
|
||||
msgstr "Prostredie GNOME vyžaduje uzamknutie obrazovky"
|
||||
|
||||
@@ -1273,19 +1274,19 @@ msgstr "Prostredie GNOME vyžaduje uzamknutie obrazovky"
|
||||
#.
|
||||
#. XXX: another option is to kick the user into the gdm login
|
||||
#. screen, where we're not affected by grabs
|
||||
#: ../js/ui/screenShield.js:837 ../js/ui/screenShield.js:1316
|
||||
#: ../js/ui/screenShield.js:830 ../js/ui/screenShield.js:1296
|
||||
msgid "Unable to lock"
|
||||
msgstr "Nepodarilo sa uzamknúť obrazovku"
|
||||
|
||||
#: ../js/ui/screenShield.js:838 ../js/ui/screenShield.js:1317
|
||||
#: ../js/ui/screenShield.js:831 ../js/ui/screenShield.js:1297
|
||||
msgid "Lock was blocked by an application"
|
||||
msgstr "Uzamknutie bolo zablokované aplikáciou"
|
||||
|
||||
#: ../js/ui/searchDisplay.js:445
|
||||
#: ../js/ui/searchDisplay.js:447
|
||||
msgid "Searching…"
|
||||
msgstr "Hľadá sa…"
|
||||
|
||||
#: ../js/ui/searchDisplay.js:489
|
||||
#: ../js/ui/searchDisplay.js:491
|
||||
msgid "No results."
|
||||
msgstr "Žiadne výsledky."
|
||||
|
||||
@@ -1369,7 +1370,7 @@ msgid "Bluetooth"
|
||||
msgstr "Bluetooth"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:30 ../js/ui/status/network.js:112
|
||||
#: ../js/ui/status/network.js:1027 ../js/ui/status/rfkill.js:46
|
||||
#: ../js/ui/status/network.js:1034 ../js/ui/status/rfkill.js:46
|
||||
msgid "Turn Off"
|
||||
msgstr "Vypnúť"
|
||||
|
||||
@@ -1457,6 +1458,10 @@ msgstr "Zadajte PIN, ktoré je uvedené na zariadení."
|
||||
msgid "OK"
|
||||
msgstr "Ok"
|
||||
|
||||
#: ../js/ui/status/brightness.js:42
|
||||
msgid "Brightness"
|
||||
msgstr "Jas"
|
||||
|
||||
#: ../js/ui/status/keyboard.js:404
|
||||
msgid "Show Keyboard Layout"
|
||||
msgstr "Zobraziť rozloženie klávesnice"
|
||||
@@ -1466,87 +1471,85 @@ msgstr "Zobraziť rozloženie klávesnice"
|
||||
msgid "<unknown>"
|
||||
msgstr "<neznáme>"
|
||||
|
||||
# PM: je v oboch prípadoch správny rod? mne sa zdá že raz sa to vzťahuje k sieti a druhý raz k zariadeniu
|
||||
#: ../js/ui/status/network.js:196 ../js/ui/status/network.js:1042
|
||||
#, fuzzy
|
||||
# DK: pripojenie, zariadenie
|
||||
#: ../js/ui/status/network.js:203 ../js/ui/status/network.js:1049
|
||||
msgid "Off"
|
||||
msgstr "Vypnuté"
|
||||
|
||||
#: ../js/ui/status/network.js:269 ../js/ui/status/network.js:948
|
||||
#: ../js/ui/status/network.js:276 ../js/ui/status/network.js:955
|
||||
#: ../js/ui/status/rfkill.js:49
|
||||
msgid "Network Settings"
|
||||
msgstr "Nastavenia siete"
|
||||
|
||||
#. 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)
|
||||
#: ../js/ui/status/network.js:357
|
||||
#: ../js/ui/status/network.js:364
|
||||
msgid "unmanaged"
|
||||
msgstr "nespravované"
|
||||
|
||||
#: ../js/ui/status/network.js:359
|
||||
#: ../js/ui/status/network.js:366
|
||||
msgid "disconnecting..."
|
||||
msgstr "odpája sa…"
|
||||
|
||||
#: ../js/ui/status/network.js:365 ../js/ui/status/network.js:1093
|
||||
#: ../js/ui/status/network.js:372 ../js/ui/status/network.js:1100
|
||||
msgid "connecting..."
|
||||
msgstr "pripája sa…"
|
||||
|
||||
#. Translators: this is for network connections that require some kind of key or password
|
||||
#: ../js/ui/status/network.js:368 ../js/ui/status/network.js:1096
|
||||
#: ../js/ui/status/network.js:375 ../js/ui/status/network.js:1103
|
||||
msgid "authentication required"
|
||||
msgstr "požaduje sa overenie totožnosti"
|
||||
|
||||
#. Translators: this is for devices that require some kind of firmware or kernel
|
||||
#. module, which is missing
|
||||
#: ../js/ui/status/network.js:376
|
||||
#: ../js/ui/status/network.js:383
|
||||
msgid "firmware missing"
|
||||
msgstr "chýba firmvér"
|
||||
|
||||
#. Translators: this is for a network device that cannot be activated (for example it
|
||||
#. is disabled by rfkill, or it has no coverage
|
||||
#: ../js/ui/status/network.js:380
|
||||
#: ../js/ui/status/network.js:387
|
||||
msgid "unavailable"
|
||||
msgstr "nedostupné"
|
||||
|
||||
#: ../js/ui/status/network.js:382 ../js/ui/status/network.js:1098
|
||||
#: ../js/ui/status/network.js:389 ../js/ui/status/network.js:1105
|
||||
msgid "connection failed"
|
||||
msgstr "pripojenie zlyhalo"
|
||||
|
||||
#: ../js/ui/status/network.js:647
|
||||
#: ../js/ui/status/network.js:654
|
||||
msgid "Wi-Fi Networks"
|
||||
msgstr "Siete Wi-Fi"
|
||||
|
||||
#: ../js/ui/status/network.js:649
|
||||
#: ../js/ui/status/network.js:656
|
||||
msgid "Select a network"
|
||||
msgstr "Vyberte sieť"
|
||||
|
||||
#: ../js/ui/status/network.js:673
|
||||
#| msgid "Wi-Fi Networks"
|
||||
#: ../js/ui/status/network.js:680
|
||||
msgid "No Networks"
|
||||
msgstr "Žiadne siete"
|
||||
|
||||
# item menu
|
||||
#: ../js/ui/status/network.js:942
|
||||
#: ../js/ui/status/network.js:949
|
||||
msgid "Select Network"
|
||||
msgstr "Vybrať sieť"
|
||||
|
||||
#: ../js/ui/status/network.js:1027
|
||||
#: ../js/ui/status/network.js:1034
|
||||
msgid "Turn On"
|
||||
msgstr "Zapnúť"
|
||||
|
||||
#: ../js/ui/status/network.js:1160
|
||||
#: ../js/ui/status/network.js:1167
|
||||
msgid "VPN"
|
||||
msgstr "VPN"
|
||||
|
||||
#: ../js/ui/status/network.js:1296
|
||||
#: ../js/ui/status/network.js:1306
|
||||
msgid "Network Manager"
|
||||
msgstr "Správca siete"
|
||||
|
||||
#: ../js/ui/status/network.js:1338
|
||||
#: ../js/ui/status/network.js:1345
|
||||
msgid "Connection failed"
|
||||
msgstr "Pripojenie zlyhalo"
|
||||
|
||||
#: ../js/ui/status/network.js:1339
|
||||
#: ../js/ui/status/network.js:1346
|
||||
msgid "Activation of network connection failed"
|
||||
msgstr "Aktivácia pripojenia k sieti zlyhala"
|
||||
|
||||
@@ -1572,14 +1575,12 @@ msgstr "Odhaduje sa…"
|
||||
#. Translators: this is <hours>:<minutes> Remaining (<percentage>)
|
||||
#: ../js/ui/status/power.js:77
|
||||
#, c-format
|
||||
#| msgid "%d\\u2236%d Remaining (%d%%)"
|
||||
msgid "%d\\u2236%02d Remaining (%d%%)"
|
||||
msgstr "%d\\u2236%02d Zostáva (%d%%)"
|
||||
|
||||
#. Translators: this is <hours>:<minutes> Until Full (<percentage>)
|
||||
#: ../js/ui/status/power.js:82
|
||||
#, c-format
|
||||
#| msgid "%d\\u2236%d Until Full (%d%%)"
|
||||
msgid "%d\\u2236%02d Until Full (%d%%)"
|
||||
msgstr "%d\\u2236%02d Do plného nabitia (%d%%)"
|
||||
|
||||
@@ -1592,56 +1593,47 @@ msgstr "Režim v lietadle"
|
||||
|
||||
# režim v lietadle
|
||||
#: ../js/ui/status/rfkill.js:45
|
||||
#| msgid "Open"
|
||||
msgid "On"
|
||||
msgstr "Zapnutý"
|
||||
|
||||
#: ../js/ui/status/system.js:247
|
||||
#: ../js/ui/status/system.js:305
|
||||
msgid "Switch User"
|
||||
msgstr "Prepnúť používateľa"
|
||||
|
||||
#: ../js/ui/status/system.js:252
|
||||
#: ../js/ui/status/system.js:310
|
||||
msgid "Log Out"
|
||||
msgstr "Odhlásiť sa"
|
||||
|
||||
# action button
|
||||
#: ../js/ui/status/system.js:271
|
||||
#: ../js/ui/status/system.js:329
|
||||
msgid "Orientation Lock"
|
||||
msgstr "Uzamknutie orientácie"
|
||||
|
||||
#: ../js/ui/status/system.js:279 ../js/ui/status/system.js:377
|
||||
#: ../js/ui/status/system.js:337
|
||||
msgid "Suspend"
|
||||
msgstr "Uspať"
|
||||
|
||||
#: ../js/ui/status/system.js:340
|
||||
msgid "Power Off"
|
||||
msgstr "Vypnúť"
|
||||
|
||||
#: ../js/ui/status/system.js:323
|
||||
msgid "Other users are logged in."
|
||||
msgstr "Sú prihlásení iní používatelia."
|
||||
|
||||
#: ../js/ui/status/system.js:328
|
||||
msgid "Shutting down might cause them to lose unsaved work."
|
||||
msgstr "Vypnutie môže spôsobiť stratu neuloženej práce."
|
||||
|
||||
#. Translators: Remote here refers to a remote session, like a ssh login
|
||||
#: ../js/ui/status/system.js:356
|
||||
#, c-format
|
||||
msgid "%s (remote)"
|
||||
msgstr "%s (vzdialená relácia)"
|
||||
|
||||
#. Translators: Console here refers to a tty like a VT console
|
||||
#: ../js/ui/status/system.js:359
|
||||
#, c-format
|
||||
msgid "%s (console)"
|
||||
msgstr "%s (konzola)"
|
||||
|
||||
#: ../js/ui/status/volume.js:124
|
||||
#: ../js/ui/status/volume.js:127
|
||||
msgid "Volume changed"
|
||||
msgstr "Hlasitosť bola zmenená"
|
||||
|
||||
#: ../js/ui/unlockDialog.js:64
|
||||
#: ../js/ui/status/volume.js:162
|
||||
msgid "Volume"
|
||||
msgstr "Hlasitosť"
|
||||
|
||||
#: ../js/ui/status/volume.js:213
|
||||
msgid "Microphone"
|
||||
msgstr "Mikrofón"
|
||||
|
||||
#: ../js/ui/unlockDialog.js:67
|
||||
msgid "Log in as another user"
|
||||
msgstr "Prihlásiť ako iný používateľ"
|
||||
|
||||
#: ../js/ui/unlockDialog.js:81
|
||||
#: ../js/ui/unlockDialog.js:84
|
||||
msgid "Unlock Window"
|
||||
msgstr "Odomykacie okno"
|
||||
|
||||
@@ -1682,7 +1674,6 @@ msgstr "Chcete ponechať tieto nastavenia displeja?"
|
||||
#. to avoid ellipsizing the labels.
|
||||
#.
|
||||
#: ../js/ui/windowManager.js:75
|
||||
#| msgid "Power Settings"
|
||||
msgid "Revert Settings"
|
||||
msgstr "Vrátiť nastavenia"
|
||||
|
||||
@@ -1760,6 +1751,51 @@ msgstr "Heslo nemôže byť prázdne"
|
||||
msgid "Authentication dialog was dismissed by the user"
|
||||
msgstr "Dialógové okno overenia totožnosti bolo zatvorené používateľom"
|
||||
|
||||
#~ msgid "Session"
|
||||
#~ msgstr "Relácia"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "Internally used to store the last IM presence explicitly set by the user. "
|
||||
#~ "The value here is from the TpConnectionPresenceType enumeration."
|
||||
#~ msgstr ""
|
||||
#~ "Vnútorne použité na uloženie posledného stavu prítomnosti internetového "
|
||||
#~ "komunikátora výlučne nastavenej používateľom. Táto hodnota je z "
|
||||
#~ "vymenovaných hodnôt typu TpConnectionPresenceType."
|
||||
|
||||
#~ msgid ""
|
||||
#~ "Internally used to store the last session presence status for the user. "
|
||||
#~ "The value here is from the GsmPresenceStatus enumeration."
|
||||
#~ msgstr ""
|
||||
#~ "Vnútorne použité na uloženie posledného stavu prítomnosti relácie "
|
||||
#~ "používateľa. Táto hodnota je z vymenovaných hodnôt typu "
|
||||
#~ "GsmPresenceStatusType."
|
||||
|
||||
#~ msgid "Click Log Out to quit these applications and log out of the system."
|
||||
#~ msgstr ""
|
||||
#~ "Po kliknutí na „Odhlásiť sa“ sa ukončia tieto aplikácie a budete "
|
||||
#~ "odhlásení zo systému."
|
||||
|
||||
#~ msgid "Logging out of the system."
|
||||
#~ msgstr "Prebieha odhlásenie zo systému."
|
||||
|
||||
#~ msgid "Click Power Off to quit these applications and power off the system."
|
||||
#~ msgstr ""
|
||||
#~ "Po kliknutí na „Vypnúť“ sa ukončia tieto aplikácie a systém sa vypne."
|
||||
|
||||
#~ msgid "Powering off the system."
|
||||
#~ msgstr "Vypína sa systém."
|
||||
|
||||
#~ msgid "Click Restart to quit these applications and restart the system."
|
||||
#~ msgstr ""
|
||||
#~ "Po kliknutí na „Reštartovať“ sa ukončia tieto aplikácie a systém sa "
|
||||
#~ "reštartuje."
|
||||
|
||||
#~ msgid "Restarting the system."
|
||||
#~ msgstr "Reštartuje sa systém."
|
||||
|
||||
#~ msgid "Shutting down might cause them to lose unsaved work."
|
||||
#~ msgstr "Vypnutie môže spôsobiť stratu neuloženej práce."
|
||||
|
||||
#~ msgid "Screenshots"
|
||||
#~ msgstr "Snímky obrazovky"
|
||||
|
||||
@@ -1788,81 +1824,3 @@ msgstr "Dialógové okno overenia totožnosti bolo zatvorené používateľom"
|
||||
#~ msgstr ""
|
||||
#~ "Zreťazenie systému gstreamer, určená na kódovanie záznamu diania na "
|
||||
#~ "obrazovke"
|
||||
|
||||
# PK: rura, skor zretazenie, alebo take nec; viackrat
|
||||
# Peter: vo všetkých prekladoch je myslím rúra - oprav ma ak sa mýlim
|
||||
# PK: to neviem, len ak obezny user by som to nepochopil (mam sice IQ 103 :-D); nechavam na PŠ
|
||||
# PŠ: zreťazenie je pekný preklad, zišlo by sa to použiť (zmeniť?) aj v iných moduloch
|
||||
#~ msgid ""
|
||||
#~ "Sets the GStreamer pipeline used to encode recordings. It follows the "
|
||||
#~ "syntax used for gst-launch. The pipeline should have an unconnected sink "
|
||||
#~ "pad where the recorded video is recorded. It will normally have a "
|
||||
#~ "unconnected source pad; output from that pad will be written into the "
|
||||
#~ "output file. However the pipeline can also take care of its own output - "
|
||||
#~ "this might be used to send the output to an icecast server via shout2send "
|
||||
#~ "or similar. When unset or set to an empty value, the default pipeline "
|
||||
#~ "will be used. This is currently 'vp8enc min_quantizer=13 max_quantizer=13 "
|
||||
#~ "cpu-used=5 deadline=1000000 threads=%T ! queue ! webmmux' and records to "
|
||||
#~ "WEBM using the VP8 codec. %T is used as a placeholder for a guess at the "
|
||||
#~ "optimal thread count on the system."
|
||||
#~ msgstr ""
|
||||
#~ "Nastavuje zreťazenie systému GStreamer určené pre kódované nahrávok. "
|
||||
#~ "Používa rovnakú syntax ako gst-launch. Zreťazenie by malo mať ďalej "
|
||||
#~ "nepripojený cieľ, v ktorom sa video nahráva. Obvykle má nepripojený "
|
||||
#~ "zdroj; výstup z takého zdroja sa bude zapisovať do výstupného súboru. "
|
||||
#~ "Zreťazenie je ale schopné zabezpečiť i vlastný výstup, čo sa dá využiť na "
|
||||
#~ "odosielanie výstupu na server icecast cez shout2send a pod. Ak toto nie "
|
||||
#~ "je nastavené, alebo je to nastavené na prázdnu hodnotu, použije sa "
|
||||
#~ "predvolené zreťazenie. Teraz je to „vp8enc min_quantizer=13 "
|
||||
#~ "max_quantizer=13 cpu-used=5 deadline=1000000 threads=%T ! queue ! "
|
||||
#~ "webmmux“, čo nahráva do WEBM použitím kodeku VP8. %T sa použije ako "
|
||||
#~ "zástupný symbol odhadu najvhodnejšieho počtu vlákien v systéme."
|
||||
|
||||
#~ msgid "File extension used for storing the screencast"
|
||||
#~ msgstr "Prípona súboru použitá na ukladanie záznamu diania na obrazovke"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "The filename for recorded screencasts will be a unique filename based on "
|
||||
#~ "the current date, and use this extension. It should be changed when "
|
||||
#~ "recording to a different container format."
|
||||
#~ msgstr ""
|
||||
#~ "Súbor pre nahrané záznamy diania na obrazovke bude mať jedinečný názov na "
|
||||
#~ "základe aktuálneho dátumu a použije túto príponu. Pri nahrávaní do iného "
|
||||
#~ "formátu kontajneru by mala byť zmenená."
|
||||
|
||||
#~ msgid "Power"
|
||||
#~ msgstr "Napájanie"
|
||||
|
||||
#~ msgid "Suspend"
|
||||
#~ msgstr "Uspať"
|
||||
|
||||
#~ msgid "Restart"
|
||||
#~ msgstr "Reštartovať"
|
||||
|
||||
# %d je datum, %t je cas
|
||||
#~ msgid "Screencast from %d %t"
|
||||
#~ msgstr "Záznam videa obrazovky dňa %d o %t"
|
||||
|
||||
#~ msgid "Volume, network, battery"
|
||||
#~ msgstr "Hlasitosť, sieť, batéria"
|
||||
|
||||
#~ msgid "Volume"
|
||||
#~ msgstr "Hlasitosť"
|
||||
|
||||
#~ msgid "Universal Access Settings"
|
||||
#~ msgstr "Nastavenia bezbariérového prístupu"
|
||||
|
||||
#~ msgid "Visibility"
|
||||
#~ msgstr "Viditeľnosť"
|
||||
|
||||
#~ msgid "Send Files to Device…"
|
||||
#~ msgstr "Odoslať súbory do zariadenia…"
|
||||
|
||||
#~ msgid "Set Up a New Device…"
|
||||
#~ msgstr "Nastaviť nové zariadenie…"
|
||||
|
||||
#~ msgid "hardware disabled"
|
||||
#~ msgstr "hardvér zakázaný"
|
||||
|
||||
#~ msgid "Connection"
|
||||
#~ msgstr "Pripojenie"
|
||||
|
465
po/sl.po
465
po/sl.po
@@ -9,8 +9,8 @@ msgstr ""
|
||||
"Project-Id-Version: gnome-shell master\n"
|
||||
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
|
||||
"shell&keywords=I18N+L10N&component=general\n"
|
||||
"POT-Creation-Date: 2013-08-19 19:13+0000\n"
|
||||
"PO-Revision-Date: 2013-08-19 21:49+0100\n"
|
||||
"POT-Creation-Date: 2013-09-02 19:28+0000\n"
|
||||
"PO-Revision-Date: 2013-09-02 22:41+0100\n"
|
||||
"Last-Translator: Matej Urbančič <mateju@svn.gnome.org>\n"
|
||||
"Language-Team: Slovenian GNOME Translation Team <gnome-si@googlegroups.com>\n"
|
||||
"Language: Slovenian\n"
|
||||
@@ -125,26 +125,10 @@ msgid "History for the looking glass dialog"
|
||||
msgstr "Zgodovina za pogovorno okno povečevalnega stekla"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:11
|
||||
msgid ""
|
||||
"Internally used to store the last IM presence explicitly set by the user. "
|
||||
"The value here is from the TpConnectionPresenceType enumeration."
|
||||
msgstr ""
|
||||
"Uporabljeno za shranjevanje stanja prisotnosti na hipnem sporočanju na "
|
||||
"zahtevo uporabnika. Vrednost določa števec predmeta TpConnectionPresenceType."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:12
|
||||
msgid ""
|
||||
"Internally used to store the last session presence status for the user. The "
|
||||
"value here is from the GsmPresenceStatus enumeration."
|
||||
msgstr ""
|
||||
"Uporabljeno za shranjevanje stanja prisotnosti zadnje seje uporabnika. "
|
||||
"Vrednost določa števec predmeta GsmPresenceStatus."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:13
|
||||
msgid "Always show the 'Log out' menuitem in the user menu."
|
||||
msgstr "Vedno pokaži možnost 'Odjava' v meniju uporabnika."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:14
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:12
|
||||
msgid ""
|
||||
"This key overrides the automatic hiding of the 'Log out' menuitem in single-"
|
||||
"user, single-session situations."
|
||||
@@ -152,14 +136,14 @@ msgstr ""
|
||||
"Ključ prepiše možnost samodejnega skrivanja predmeta menija 'Odjava' na "
|
||||
"enouporabniški in enosejni namestitvi."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:15
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:13
|
||||
msgid ""
|
||||
"Whether to remember password for mounting encrypted or remote filesystems"
|
||||
msgstr ""
|
||||
"Ali naj se geslo za priklapljanje šifriranih in oddaljenih datotečnih "
|
||||
"sistemov shrani"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:16
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:14
|
||||
msgid ""
|
||||
"The shell will request a password when an encrypted device or a remote "
|
||||
"filesystem is mounted. If the password can be saved for future use a "
|
||||
@@ -170,70 +154,70 @@ msgstr ""
|
||||
"izbiri možnosti zahtevano geslo. Na pogovornem oknu bo prikazana možnost "
|
||||
"'Shrani geslo'. S tem bo nastavljeno privzeto stanje za uporabo."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:17
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:15
|
||||
msgid "Show the week date in the calendar"
|
||||
msgstr "Pokaži tedenski datum v koledarju"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:18
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:16
|
||||
msgid "If true, display the ISO week date in the calendar."
|
||||
msgstr "Izbrana možnost določa prikaz ISO tedenski datum v koledarju."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:19
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:17
|
||||
msgid "Keybinding to open the application menu"
|
||||
msgstr "Tipkovna bližnjica, ki odpre meni programov"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:20
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:18
|
||||
msgid "Keybinding to open the application menu."
|
||||
msgstr "Tipkovna bližnjica, ki odpre meni programov."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:21
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:19
|
||||
msgid "Keybinding to open the \"Show Applications\" view"
|
||||
msgstr "Tipkovna bližnjica, ki odpre pogled \"Pokaži programe\""
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:22
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:20
|
||||
msgid ""
|
||||
"Keybinding to open the \"Show Applications\" view of the Activities Overview."
|
||||
msgstr ""
|
||||
"Tipkovna bližnjica, ki odpre pogled \"Pokaži programe\" v pregledu "
|
||||
"dejavnosti."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:23
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:21
|
||||
msgid "Keybinding to open the overview"
|
||||
msgstr "Tipkovna bližnjica, ki odpre pogled pregleda"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:24
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:22
|
||||
msgid "Keybinding to open the Activities Overview."
|
||||
msgstr "Tipkovna bližnjica, ki odpre pogled pregleda dejavnosti."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:25
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:23
|
||||
msgid "Keybinding to toggle the visibility of the message tray"
|
||||
msgstr "Tipkovna bližnjica za preklop vidnosti sistemske sporočilne vrstice"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:26
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:24
|
||||
msgid "Keybinding to toggle the visibility of the message tray."
|
||||
msgstr "Tipkovna bližnjica za preklop vidnosti sistemske sporočilne vrstice."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:27
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:25
|
||||
msgid "Keybinding to focus the active notification"
|
||||
msgstr "Tipkovna bližnjica za prikaz dejavnega obvestila"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:28
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:26
|
||||
msgid "Keybinding to focus the active notification."
|
||||
msgstr "Tipkovna bližnjica za prikaz dejavnega obvestila."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:29
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:27
|
||||
msgid "Which keyboard to use"
|
||||
msgstr "Katera tipkovnica naj bo uporabljena?"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:30
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:28
|
||||
msgid "The type of keyboard to use."
|
||||
msgstr "Vrsta tipkovnice za uporabo."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:31
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:29
|
||||
msgid "The application icon mode."
|
||||
msgstr "Ikonski način programa."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:32
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:30
|
||||
msgid ""
|
||||
"Configures how the windows are shown in the switcher. Valid possibilities "
|
||||
"are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-"
|
||||
@@ -243,21 +227,21 @@ msgstr ""
|
||||
"sličice' (pokaže le sličice oken), 'le ikona' (pokaže ikono programa) in pa "
|
||||
"možnost 'oboje'."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:33
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:31
|
||||
msgid "Attach modal dialog to the parent window"
|
||||
msgstr "Pripni modalno pogovorno okno na glavno okno"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:34
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:32
|
||||
msgid ""
|
||||
"This key overrides the key in org.gnome.mutter when running GNOME Shell."
|
||||
msgstr ""
|
||||
"Ključ prepiše vrednost v org.gnome.mutter med zaganjanjem lupine GNOME."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:35
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:33
|
||||
msgid "Arrangement of buttons on the titlebar"
|
||||
msgstr "Razporeditev gumbov v nazivni vrstici"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:36
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:34
|
||||
msgid ""
|
||||
"This key overrides the key in org.gnome.desktop.wm.preferences when running "
|
||||
"GNOME Shell."
|
||||
@@ -265,15 +249,15 @@ msgstr ""
|
||||
"Ključ prepiše vrednost v org.gnome.desktop.wm.preferences med zaganjanjem "
|
||||
"lupine GNOME."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:35
|
||||
msgid "Enable edge tiling when dropping windows on screen edges"
|
||||
msgstr "Omogoči utripanje črte med spuščanjem okna na robove zaslona"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:38
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:36
|
||||
msgid "Workspaces are managed dynamically"
|
||||
msgstr "Delovne površine se obravnavajo dinamično"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:39
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37
|
||||
msgid "Workspaces only on primary monitor"
|
||||
msgstr "Delovne površine so le na osnovnem zaslonu"
|
||||
|
||||
@@ -291,46 +275,41 @@ msgid "Select an extension to configure using the combobox above."
|
||||
msgstr ""
|
||||
"Razširitev za nastavljanje je mogoče izbrati iz spustnega seznama zgoraj."
|
||||
|
||||
#: ../js/gdm/authPrompt.js:146 ../js/ui/components/networkAgent.js:137
|
||||
#: ../js/ui/components/polkitAgent.js:161 ../js/ui/endSessionDialog.js:376
|
||||
#: ../js/gdm/authPrompt.js:145 ../js/ui/components/networkAgent.js:132
|
||||
#: ../js/ui/components/polkitAgent.js:161 ../js/ui/endSessionDialog.js:351
|
||||
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
|
||||
#: ../js/ui/status/bluetooth.js:221 ../js/ui/status/network.js:679
|
||||
#: ../js/ui/status/system.js:373
|
||||
#: ../js/ui/status/bluetooth.js:221 ../js/ui/status/network.js:686
|
||||
msgid "Cancel"
|
||||
msgstr "Prekliči"
|
||||
|
||||
#: ../js/gdm/authPrompt.js:168 ../js/gdm/authPrompt.js:216
|
||||
#: ../js/gdm/authPrompt.js:167 ../js/gdm/authPrompt.js:215
|
||||
msgid "Next"
|
||||
msgstr "Naslednji"
|
||||
|
||||
#: ../js/gdm/authPrompt.js:212 ../js/ui/shellMountOperation.js:403
|
||||
#: ../js/ui/unlockDialog.js:56
|
||||
#: ../js/gdm/authPrompt.js:211 ../js/ui/shellMountOperation.js:403
|
||||
#: ../js/ui/unlockDialog.js:59
|
||||
msgid "Unlock"
|
||||
msgstr "Odkleni"
|
||||
|
||||
#: ../js/gdm/authPrompt.js:214
|
||||
#: ../js/gdm/authPrompt.js:213
|
||||
msgctxt "button"
|
||||
msgid "Sign In"
|
||||
msgstr "Prijava"
|
||||
|
||||
#: ../js/gdm/loginDialog.js:299
|
||||
#: ../js/gdm/loginDialog.js:294
|
||||
msgid "Choose Session"
|
||||
msgstr "Izbor seje"
|
||||
|
||||
#: ../js/gdm/loginDialog.js:317
|
||||
msgid "Session"
|
||||
msgstr "Seja"
|
||||
|
||||
#. translators: this message is shown below the user list on the
|
||||
#. login screen. It can be activated to reveal an entry for
|
||||
#. manually entering the username.
|
||||
#: ../js/gdm/loginDialog.js:468
|
||||
#: ../js/gdm/loginDialog.js:454
|
||||
msgid "Not listed?"
|
||||
msgstr "Ali je ni na seznamu?"
|
||||
|
||||
#. Translators: this message is shown below the username entry field
|
||||
#. to clue the user in on how to login to the local network realm
|
||||
#: ../js/gdm/loginDialog.js:641
|
||||
#: ../js/gdm/loginDialog.js:622
|
||||
#, c-format
|
||||
msgid "(e.g., user or %s)"
|
||||
msgstr "(na primer, uporabnika ali %s)"
|
||||
@@ -338,12 +317,12 @@ msgstr "(na primer, uporabnika ali %s)"
|
||||
#. TTLS and PEAP are actually much more complicated, but this complication
|
||||
#. is not visible here since we only care about phase2 authentication
|
||||
#. (and don't even care of which one)
|
||||
#: ../js/gdm/loginDialog.js:646 ../js/ui/components/networkAgent.js:260
|
||||
#: ../js/ui/components/networkAgent.js:278
|
||||
#: ../js/gdm/loginDialog.js:627 ../js/ui/components/networkAgent.js:255
|
||||
#: ../js/ui/components/networkAgent.js:273
|
||||
msgid "Username: "
|
||||
msgstr "Uporabniško ime: "
|
||||
|
||||
#: ../js/gdm/loginDialog.js:909
|
||||
#: ../js/gdm/loginDialog.js:891
|
||||
msgid "Login Window"
|
||||
msgstr "Prijavno okno"
|
||||
|
||||
@@ -356,7 +335,7 @@ msgstr "Napaka overitve"
|
||||
#. as a cue to display our own message.
|
||||
#. Translators: this message is shown below the password entry field
|
||||
#. to indicate the user can swipe their finger instead
|
||||
#: ../js/gdm/util.js:419
|
||||
#: ../js/gdm/util.js:436
|
||||
msgid "(or swipe finger)"
|
||||
msgstr "(ali pa povlecite prst)"
|
||||
|
||||
@@ -375,23 +354,27 @@ msgstr "Ukaza ni mogoče razčleniti:"
|
||||
msgid "Execution of '%s' failed:"
|
||||
msgstr "Izvedba '%s' je spodletela:"
|
||||
|
||||
#: ../js/ui/appDisplay.js:386
|
||||
#: ../js/ui/appDisplay.js:578
|
||||
msgid "Frequently used applications will appear here"
|
||||
msgstr "Pogosto uporabljeni programi bodo prikazani tu"
|
||||
|
||||
#: ../js/ui/appDisplay.js:694
|
||||
msgid "Frequent"
|
||||
msgstr "Pogosto"
|
||||
|
||||
#: ../js/ui/appDisplay.js:393
|
||||
#: ../js/ui/appDisplay.js:701
|
||||
msgid "All"
|
||||
msgstr "Vse"
|
||||
|
||||
#: ../js/ui/appDisplay.js:986
|
||||
#: ../js/ui/appDisplay.js:1488
|
||||
msgid "New Window"
|
||||
msgstr "Novo okno"
|
||||
|
||||
#: ../js/ui/appDisplay.js:989 ../js/ui/dash.js:284
|
||||
#: ../js/ui/appDisplay.js:1491 ../js/ui/dash.js:284
|
||||
msgid "Remove from Favorites"
|
||||
msgstr "Odstrani iz priljubljenih"
|
||||
|
||||
#: ../js/ui/appDisplay.js:990
|
||||
#: ../js/ui/appDisplay.js:1492
|
||||
msgid "Add to Favorites"
|
||||
msgstr "Dodaj med priljubljene"
|
||||
|
||||
@@ -405,7 +388,7 @@ msgstr "Program \"%s\" je dodan med priljubljeno."
|
||||
msgid "%s has been removed from your favorites."
|
||||
msgstr "Program \"%s\" je odstranjen iz priljubljenih."
|
||||
|
||||
#: ../js/ui/backgroundMenu.js:19 ../js/ui/status/system.js:267
|
||||
#: ../js/ui/backgroundMenu.js:19 ../js/ui/status/system.js:325
|
||||
msgid "Settings"
|
||||
msgstr "Nastavitve"
|
||||
|
||||
@@ -529,36 +512,44 @@ msgctxt "list saturday"
|
||||
msgid "S"
|
||||
msgstr "S"
|
||||
|
||||
#: ../js/ui/calendar.js:447
|
||||
msgid "Previous month"
|
||||
msgstr "Predhodni mesec"
|
||||
|
||||
#: ../js/ui/calendar.js:457
|
||||
msgid "Next month"
|
||||
msgstr "Naslednji mesec"
|
||||
|
||||
#. Translators: Text to show if there are no events
|
||||
#: ../js/ui/calendar.js:750
|
||||
#: ../js/ui/calendar.js:753
|
||||
msgid "Nothing Scheduled"
|
||||
msgstr "Nič ni razporejeno"
|
||||
|
||||
#. Translators: Shown on calendar heading when selected day occurs on current year
|
||||
#: ../js/ui/calendar.js:768
|
||||
#: ../js/ui/calendar.js:771
|
||||
msgctxt "calendar heading"
|
||||
msgid "%A, %B %d"
|
||||
msgstr "%A, %d. %m."
|
||||
|
||||
#. Translators: Shown on calendar heading when selected day occurs on different year
|
||||
#: ../js/ui/calendar.js:771
|
||||
#: ../js/ui/calendar.js:774
|
||||
msgctxt "calendar heading"
|
||||
msgid "%A, %B %d, %Y"
|
||||
msgstr "%A, %d %B %Y"
|
||||
|
||||
#: ../js/ui/calendar.js:782
|
||||
#: ../js/ui/calendar.js:785
|
||||
msgid "Today"
|
||||
msgstr "Danes"
|
||||
|
||||
#: ../js/ui/calendar.js:786
|
||||
#: ../js/ui/calendar.js:789
|
||||
msgid "Tomorrow"
|
||||
msgstr "Jutri"
|
||||
|
||||
#: ../js/ui/calendar.js:797
|
||||
#: ../js/ui/calendar.js:800
|
||||
msgid "This week"
|
||||
msgstr "Ta teden"
|
||||
|
||||
#: ../js/ui/calendar.js:805
|
||||
#: ../js/ui/calendar.js:808
|
||||
msgid "Next week"
|
||||
msgstr "Naslednji teden"
|
||||
|
||||
@@ -591,42 +582,42 @@ msgstr "Geslo:"
|
||||
msgid "Type again:"
|
||||
msgstr "Vpišite znova:"
|
||||
|
||||
#: ../js/ui/components/networkAgent.js:132 ../js/ui/status/network.js:112
|
||||
#: ../js/ui/status/network.js:268 ../js/ui/status/network.js:682
|
||||
#: ../js/ui/components/networkAgent.js:127 ../js/ui/status/network.js:112
|
||||
#: ../js/ui/status/network.js:275 ../js/ui/status/network.js:689
|
||||
msgid "Connect"
|
||||
msgstr "Poveži"
|
||||
|
||||
#. Cisco LEAP
|
||||
#: ../js/ui/components/networkAgent.js:223
|
||||
#: ../js/ui/components/networkAgent.js:235
|
||||
#: ../js/ui/components/networkAgent.js:262
|
||||
#: ../js/ui/components/networkAgent.js:282
|
||||
#: ../js/ui/components/networkAgent.js:292
|
||||
#: ../js/ui/components/networkAgent.js:218
|
||||
#: ../js/ui/components/networkAgent.js:230
|
||||
#: ../js/ui/components/networkAgent.js:257
|
||||
#: ../js/ui/components/networkAgent.js:277
|
||||
#: ../js/ui/components/networkAgent.js:287
|
||||
msgid "Password: "
|
||||
msgstr "Geslo:"
|
||||
|
||||
#. static WEP
|
||||
#: ../js/ui/components/networkAgent.js:228
|
||||
#: ../js/ui/components/networkAgent.js:223
|
||||
msgid "Key: "
|
||||
msgstr "Ključ:"
|
||||
|
||||
#: ../js/ui/components/networkAgent.js:266
|
||||
#: ../js/ui/components/networkAgent.js:261
|
||||
msgid "Identity: "
|
||||
msgstr "_Istovetnost:"
|
||||
|
||||
#: ../js/ui/components/networkAgent.js:268
|
||||
#: ../js/ui/components/networkAgent.js:263
|
||||
msgid "Private key password: "
|
||||
msgstr "Geslo zasebnega ključa:"
|
||||
|
||||
#: ../js/ui/components/networkAgent.js:280
|
||||
#: ../js/ui/components/networkAgent.js:275
|
||||
msgid "Service: "
|
||||
msgstr "Storitev:"
|
||||
|
||||
#: ../js/ui/components/networkAgent.js:309
|
||||
#: ../js/ui/components/networkAgent.js:304
|
||||
msgid "Authentication required by wireless network"
|
||||
msgstr "Zahtevana overitev za brezžično omrežje"
|
||||
|
||||
#: ../js/ui/components/networkAgent.js:310
|
||||
#: ../js/ui/components/networkAgent.js:305
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Passwords or encryption keys are required to access the wireless network "
|
||||
@@ -635,35 +626,35 @@ msgstr ""
|
||||
"Za povezavo v brezžično omrežje '%s' je zahtevana overitev ali nastavitev "
|
||||
"šifrirnega ključa."
|
||||
|
||||
#: ../js/ui/components/networkAgent.js:314
|
||||
#: ../js/ui/components/networkAgent.js:309
|
||||
msgid "Wired 802.1X authentication"
|
||||
msgstr "Žična overitev 802.1X"
|
||||
|
||||
#: ../js/ui/components/networkAgent.js:316
|
||||
#: ../js/ui/components/networkAgent.js:311
|
||||
msgid "Network name: "
|
||||
msgstr "Ime omrežja:"
|
||||
|
||||
#: ../js/ui/components/networkAgent.js:321
|
||||
#: ../js/ui/components/networkAgent.js:316
|
||||
msgid "DSL authentication"
|
||||
msgstr "DSL overitev"
|
||||
|
||||
#: ../js/ui/components/networkAgent.js:328
|
||||
#: ../js/ui/components/networkAgent.js:323
|
||||
msgid "PIN code required"
|
||||
msgstr "Zahtevana koda PIN"
|
||||
|
||||
#: ../js/ui/components/networkAgent.js:329
|
||||
#: ../js/ui/components/networkAgent.js:324
|
||||
msgid "PIN code is needed for the mobile broadband device"
|
||||
msgstr "Za napravo mobilnega širokopasovnega dostopa je zahtevana koda PIN."
|
||||
|
||||
#: ../js/ui/components/networkAgent.js:330
|
||||
#: ../js/ui/components/networkAgent.js:325
|
||||
msgid "PIN: "
|
||||
msgstr "PIN: "
|
||||
|
||||
#: ../js/ui/components/networkAgent.js:336
|
||||
#: ../js/ui/components/networkAgent.js:331
|
||||
msgid "Mobile broadband network password"
|
||||
msgstr "Geslo mobilnega širokopasovnega dostopa"
|
||||
|
||||
#: ../js/ui/components/networkAgent.js:337
|
||||
#: ../js/ui/components/networkAgent.js:332
|
||||
#, c-format
|
||||
msgid "A password is required to connect to '%s'."
|
||||
msgstr "Za povezavo z omrežjem '%s' je zahtevano geslo."
|
||||
@@ -936,7 +927,7 @@ msgstr "Pokaži programe"
|
||||
|
||||
#. Translators: this is the name of the dock/favorites area on
|
||||
#. the left of the overview
|
||||
#: ../js/ui/dash.js:439
|
||||
#: ../js/ui/dash.js:442
|
||||
msgid "Dash"
|
||||
msgstr "Pregledna plošča"
|
||||
|
||||
@@ -959,22 +950,18 @@ msgstr "Nastavitve časa in datuma"
|
||||
msgid "%A %B %e, %Y"
|
||||
msgstr "%a, %e. %b., %R"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:63
|
||||
#: ../js/ui/endSessionDialog.js:62
|
||||
#, c-format
|
||||
msgctxt "title"
|
||||
msgid "Log Out %s"
|
||||
msgstr "Odjava %s"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:64
|
||||
#: ../js/ui/endSessionDialog.js:63
|
||||
msgctxt "title"
|
||||
msgid "Log Out"
|
||||
msgstr "Odjava"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:65
|
||||
msgid "Click Log Out to quit these applications and log out of the system."
|
||||
msgstr "Kliknite Odjava za končanje teh programov in odjavo iz sistema."
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:67
|
||||
#, c-format
|
||||
msgid "%s will be logged out automatically in %d second."
|
||||
msgid_plural "%s will be logged out automatically in %d seconds."
|
||||
@@ -983,7 +970,7 @@ msgstr[1] "Uporabnik %s bo samodejno odjavljen čez %d sekundo."
|
||||
msgstr[2] "Uporabnik %s bo samodejno odjavljen čez %d sekundi."
|
||||
msgstr[3] "Uporabnik %s bo samodejno odjavljen čez %d sekunde."
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:72
|
||||
#: ../js/ui/endSessionDialog.js:70
|
||||
#, c-format
|
||||
msgid "You will be logged out automatically in %d second."
|
||||
msgid_plural "You will be logged out automatically in %d seconds."
|
||||
@@ -992,26 +979,17 @@ msgstr[1] "Uporabnik bo samodejno odjavljen čez %d sekundo."
|
||||
msgstr[2] "Uporabnik bo samodejno odjavljen čez %d sekundi."
|
||||
msgstr[3] "Uporabnik bo samodejno odjavljen čez %d sekunde."
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:76
|
||||
msgid "Logging out of the system."
|
||||
msgstr "Odjavljanje iz sistema."
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:78
|
||||
#: ../js/ui/endSessionDialog.js:75
|
||||
msgctxt "button"
|
||||
msgid "Log Out"
|
||||
msgstr "Odjava"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:83
|
||||
#: ../js/ui/endSessionDialog.js:81
|
||||
msgctxt "title"
|
||||
msgid "Power Off"
|
||||
msgstr "Izklop"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:84
|
||||
msgid "Click Power Off to quit these applications and power off the system."
|
||||
msgstr ""
|
||||
"Kliknite na gumb za izklop za končanje teh programov in izklop iz sistema."
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:86
|
||||
#: ../js/ui/endSessionDialog.js:83
|
||||
#, c-format
|
||||
msgid "The system will power off automatically in %d second."
|
||||
msgid_plural "The system will power off automatically in %d seconds."
|
||||
@@ -1020,31 +998,22 @@ msgstr[1] "Sistem se bo samodejno izklopil čez %d sekundo."
|
||||
msgstr[2] "Sistem se bo samodejno izklopil čez %d sekundi."
|
||||
msgstr[3] "Sistem se bo samodejno izklopil čez %d sekunde."
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:90
|
||||
msgid "Powering off the system."
|
||||
msgstr "Izklapljanje sistema"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:92 ../js/ui/endSessionDialog.js:109
|
||||
#: ../js/ui/endSessionDialog.js:88 ../js/ui/endSessionDialog.js:104
|
||||
msgctxt "button"
|
||||
msgid "Restart"
|
||||
msgstr "Ponoven zagon"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:94
|
||||
#: ../js/ui/endSessionDialog.js:90
|
||||
msgctxt "button"
|
||||
msgid "Power Off"
|
||||
msgstr "Izklop"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:100
|
||||
#: ../js/ui/endSessionDialog.js:97
|
||||
msgctxt "title"
|
||||
msgid "Restart"
|
||||
msgstr "Ponoven zagon"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:101
|
||||
msgid "Click Restart to quit these applications and restart the system."
|
||||
msgstr ""
|
||||
"Kliknite Zaženi znova za končanje teh programov in ponoven zagon sistema. "
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:103
|
||||
#: ../js/ui/endSessionDialog.js:99
|
||||
#, c-format
|
||||
msgid "The system will restart automatically in %d second."
|
||||
msgid_plural "The system will restart automatically in %d seconds."
|
||||
@@ -1053,9 +1022,50 @@ msgstr[1] "Sistem se bo samodejno ponovno zagnal čez %d sekundo."
|
||||
msgstr[2] "Sistem se bo samodejno ponovno zagnal čez %d sekundi."
|
||||
msgstr[3] "Sistem se bo samodejno ponovno zagnal čez %d sekunde."
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:107
|
||||
msgid "Restarting the system."
|
||||
msgstr "Ponoven zagon sistema."
|
||||
#: ../js/ui/endSessionDialog.js:112
|
||||
msgctxt "title"
|
||||
msgid "Restart & Install Updates"
|
||||
msgstr "Namesti posodobitve in ponovno zaženi"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:114
|
||||
#, c-format
|
||||
msgid "The system will automatically restart and install updates in %d second."
|
||||
msgid_plural ""
|
||||
"The system will automatically restart and install updates in %d seconds."
|
||||
msgstr[0] ""
|
||||
"Sistem bo samodejno namestil pakete in se nato ponovno zagnal čez %d sekund."
|
||||
msgstr[1] ""
|
||||
"Sistem bo samodejno namestil pakete in se nato ponovno zagnal %d sekundo."
|
||||
msgstr[2] ""
|
||||
"Sistem bo samodejno namestil pakete in se nato ponovno zagnal %d sekundi."
|
||||
msgstr[3] ""
|
||||
"Sistem bo samodejno namestil pakete in se nato ponovno zagnal %d sekunde."
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:119
|
||||
msgctxt "button"
|
||||
msgid "Restart & Install"
|
||||
msgstr "Namesti in ponovno zaženi"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:271
|
||||
msgid "Some applications are busy or have unsaved work."
|
||||
msgstr ""
|
||||
"Nekateri programi se ne odzivajo ali pa so odprte neshranjene datoteke."
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:277
|
||||
msgid "Other users are logged in."
|
||||
msgstr "Prijavljeni so tudi drugi uporabniki."
|
||||
|
||||
#. Translators: Remote here refers to a remote session, like a ssh login
|
||||
#: ../js/ui/endSessionDialog.js:479
|
||||
#, c-format
|
||||
msgid "%s (remote)"
|
||||
msgstr "%s (oddaljeno)"
|
||||
|
||||
#. Translators: Console here refers to a tty like a VT console
|
||||
#: ../js/ui/endSessionDialog.js:482
|
||||
#, c-format
|
||||
msgid "%s (console)"
|
||||
msgstr "%s (konzola)"
|
||||
|
||||
#: ../js/ui/extensionDownloader.js:199
|
||||
msgid "Install"
|
||||
@@ -1139,15 +1149,15 @@ msgstr "Nastavitve obvestil"
|
||||
msgid "Tray Menu"
|
||||
msgstr "Meni sistemske vrstice"
|
||||
|
||||
#: ../js/ui/messageTray.js:1777
|
||||
#: ../js/ui/messageTray.js:1775
|
||||
msgid "No Messages"
|
||||
msgstr "Ni sporočil"
|
||||
|
||||
#: ../js/ui/messageTray.js:1814
|
||||
#: ../js/ui/messageTray.js:1812
|
||||
msgid "Message Tray"
|
||||
msgstr "Sporočilna vrstica"
|
||||
|
||||
#: ../js/ui/messageTray.js:2788
|
||||
#: ../js/ui/messageTray.js:2786
|
||||
msgid "System Information"
|
||||
msgstr "Podrobnosti sistema"
|
||||
|
||||
@@ -1156,7 +1166,7 @@ msgctxt "program"
|
||||
msgid "Unknown"
|
||||
msgstr "Neznano"
|
||||
|
||||
#: ../js/ui/overviewControls.js:491 ../js/ui/screenShield.js:154
|
||||
#: ../js/ui/overviewControls.js:491 ../js/ui/screenShield.js:152
|
||||
#, c-format
|
||||
msgid "%d new message"
|
||||
msgid_plural "%d new messages"
|
||||
@@ -1218,11 +1228,11 @@ msgstr "Zapri"
|
||||
|
||||
#. Translators: This is a time format for a date in
|
||||
#. long format
|
||||
#: ../js/ui/screenShield.js:90
|
||||
#: ../js/ui/screenShield.js:88
|
||||
msgid "%A, %B %d"
|
||||
msgstr "%A, %d. %m."
|
||||
|
||||
#: ../js/ui/screenShield.js:156
|
||||
#: ../js/ui/screenShield.js:154
|
||||
#, c-format
|
||||
msgid "%d new notification"
|
||||
msgid_plural "%d new notifications"
|
||||
@@ -1231,11 +1241,11 @@ msgstr[1] "%d novo obvestilo"
|
||||
msgstr[2] "%d novi obvestili"
|
||||
msgstr[3] "%d nova obvestila"
|
||||
|
||||
#: ../js/ui/screenShield.js:479 ../js/ui/status/system.js:275
|
||||
#: ../js/ui/screenShield.js:477 ../js/ui/status/system.js:333
|
||||
msgid "Lock"
|
||||
msgstr "Zakleni"
|
||||
|
||||
#: ../js/ui/screenShield.js:705
|
||||
#: ../js/ui/screenShield.js:703
|
||||
msgid "GNOME needs to lock the screen"
|
||||
msgstr "Zakleniti je treba zaslon"
|
||||
|
||||
@@ -1246,19 +1256,19 @@ msgstr "Zakleniti je treba zaslon"
|
||||
#.
|
||||
#. XXX: another option is to kick the user into the gdm login
|
||||
#. screen, where we're not affected by grabs
|
||||
#: ../js/ui/screenShield.js:830 ../js/ui/screenShield.js:1278
|
||||
#: ../js/ui/screenShield.js:830 ../js/ui/screenShield.js:1296
|
||||
msgid "Unable to lock"
|
||||
msgstr "Zaklep ni mogoč"
|
||||
|
||||
#: ../js/ui/screenShield.js:831 ../js/ui/screenShield.js:1279
|
||||
#: ../js/ui/screenShield.js:831 ../js/ui/screenShield.js:1297
|
||||
msgid "Lock was blocked by an application"
|
||||
msgstr "Zaklep je preprečil program"
|
||||
|
||||
#: ../js/ui/searchDisplay.js:445
|
||||
#: ../js/ui/searchDisplay.js:447
|
||||
msgid "Searching…"
|
||||
msgstr "Iskanje ..."
|
||||
|
||||
#: ../js/ui/searchDisplay.js:489
|
||||
#: ../js/ui/searchDisplay.js:491
|
||||
msgid "No results."
|
||||
msgstr "Ni najdenih zadetkov."
|
||||
|
||||
@@ -1339,7 +1349,7 @@ msgid "Bluetooth"
|
||||
msgstr "Bluetooth"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:30 ../js/ui/status/network.js:112
|
||||
#: ../js/ui/status/network.js:1027 ../js/ui/status/rfkill.js:46
|
||||
#: ../js/ui/status/network.js:1034 ../js/ui/status/rfkill.js:46
|
||||
msgid "Turn Off"
|
||||
msgstr "Onemogoči"
|
||||
|
||||
@@ -1426,6 +1436,10 @@ msgstr "Vnesite PIN, ki je naveden na napravi."
|
||||
msgid "OK"
|
||||
msgstr "V redu"
|
||||
|
||||
#: ../js/ui/status/brightness.js:42
|
||||
msgid "Brightness"
|
||||
msgstr "Svetlost"
|
||||
|
||||
#: ../js/ui/status/keyboard.js:404
|
||||
msgid "Show Keyboard Layout"
|
||||
msgstr "Pokaži razporeditev tipkovnice"
|
||||
@@ -1434,83 +1448,83 @@ msgstr "Pokaži razporeditev tipkovnice"
|
||||
msgid "<unknown>"
|
||||
msgstr "<neznano>"
|
||||
|
||||
#: ../js/ui/status/network.js:196 ../js/ui/status/network.js:1042
|
||||
#: ../js/ui/status/network.js:203 ../js/ui/status/network.js:1049
|
||||
msgid "Off"
|
||||
msgstr "Nepovezano"
|
||||
|
||||
#: ../js/ui/status/network.js:269 ../js/ui/status/network.js:948
|
||||
#: ../js/ui/status/network.js:276 ../js/ui/status/network.js:955
|
||||
#: ../js/ui/status/rfkill.js:49
|
||||
msgid "Network Settings"
|
||||
msgstr "Omrežne nastavitve"
|
||||
|
||||
#. 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)
|
||||
#: ../js/ui/status/network.js:357
|
||||
#: ../js/ui/status/network.js:364
|
||||
msgid "unmanaged"
|
||||
msgstr "neupravljano"
|
||||
|
||||
#: ../js/ui/status/network.js:359
|
||||
#: ../js/ui/status/network.js:366
|
||||
msgid "disconnecting..."
|
||||
msgstr "prekinjanje povezave ..."
|
||||
|
||||
#: ../js/ui/status/network.js:365 ../js/ui/status/network.js:1093
|
||||
#: ../js/ui/status/network.js:372 ../js/ui/status/network.js:1100
|
||||
msgid "connecting..."
|
||||
msgstr "povezovanje ..."
|
||||
|
||||
#. Translators: this is for network connections that require some kind of key or password
|
||||
#: ../js/ui/status/network.js:368 ../js/ui/status/network.js:1096
|
||||
#: ../js/ui/status/network.js:375 ../js/ui/status/network.js:1103
|
||||
msgid "authentication required"
|
||||
msgstr "zahtevana je overitev"
|
||||
|
||||
#. Translators: this is for devices that require some kind of firmware or kernel
|
||||
#. module, which is missing
|
||||
#: ../js/ui/status/network.js:376
|
||||
#: ../js/ui/status/network.js:383
|
||||
msgid "firmware missing"
|
||||
msgstr "manjka strojna programska oprema"
|
||||
|
||||
#. Translators: this is for a network device that cannot be activated (for example it
|
||||
#. is disabled by rfkill, or it has no coverage
|
||||
#: ../js/ui/status/network.js:380
|
||||
#: ../js/ui/status/network.js:387
|
||||
msgid "unavailable"
|
||||
msgstr "ni na voljo"
|
||||
|
||||
#: ../js/ui/status/network.js:382 ../js/ui/status/network.js:1098
|
||||
#: ../js/ui/status/network.js:389 ../js/ui/status/network.js:1105
|
||||
msgid "connection failed"
|
||||
msgstr "povezovanje je spodletelo"
|
||||
|
||||
#: ../js/ui/status/network.js:647
|
||||
#: ../js/ui/status/network.js:654
|
||||
msgid "Wi-Fi Networks"
|
||||
msgstr "Omrežja Wi-Fi"
|
||||
|
||||
#: ../js/ui/status/network.js:649
|
||||
#: ../js/ui/status/network.js:656
|
||||
msgid "Select a network"
|
||||
msgstr "Izbor omrežja"
|
||||
|
||||
#: ../js/ui/status/network.js:673
|
||||
#: ../js/ui/status/network.js:680
|
||||
msgid "No Networks"
|
||||
msgstr "Ni omrežij"
|
||||
|
||||
#: ../js/ui/status/network.js:942
|
||||
#: ../js/ui/status/network.js:949
|
||||
msgid "Select Network"
|
||||
msgstr "Izbor omrežja"
|
||||
|
||||
#: ../js/ui/status/network.js:1027
|
||||
#: ../js/ui/status/network.js:1034
|
||||
msgid "Turn On"
|
||||
msgstr "Omogoči"
|
||||
|
||||
#: ../js/ui/status/network.js:1160
|
||||
#: ../js/ui/status/network.js:1167
|
||||
msgid "VPN"
|
||||
msgstr "VPN"
|
||||
|
||||
#: ../js/ui/status/network.js:1296
|
||||
#: ../js/ui/status/network.js:1306
|
||||
msgid "Network Manager"
|
||||
msgstr "Upravljalnik omrežij"
|
||||
|
||||
#: ../js/ui/status/network.js:1338
|
||||
#: ../js/ui/status/network.js:1345
|
||||
msgid "Connection failed"
|
||||
msgstr "Povezava je spodletela"
|
||||
|
||||
#: ../js/ui/status/network.js:1339
|
||||
#: ../js/ui/status/network.js:1346
|
||||
msgid "Activation of network connection failed"
|
||||
msgstr "Omogočanje omrežne povezave je spodletelo."
|
||||
|
||||
@@ -1556,51 +1570,43 @@ msgstr "Način letala"
|
||||
msgid "On"
|
||||
msgstr "Povezano"
|
||||
|
||||
#: ../js/ui/status/system.js:247
|
||||
#: ../js/ui/status/system.js:305
|
||||
msgid "Switch User"
|
||||
msgstr "Preklopi uporabnika"
|
||||
|
||||
#: ../js/ui/status/system.js:252
|
||||
#: ../js/ui/status/system.js:310
|
||||
msgid "Log Out"
|
||||
msgstr "Odjava"
|
||||
|
||||
#: ../js/ui/status/system.js:271
|
||||
#: ../js/ui/status/system.js:329
|
||||
msgid "Orientation Lock"
|
||||
msgstr "Zaklep položaja"
|
||||
|
||||
#: ../js/ui/status/system.js:279 ../js/ui/status/system.js:377
|
||||
#: ../js/ui/status/system.js:337
|
||||
msgid "Suspend"
|
||||
msgstr "Zaustavi"
|
||||
|
||||
#: ../js/ui/status/system.js:340
|
||||
msgid "Power Off"
|
||||
msgstr "Izklop"
|
||||
|
||||
#: ../js/ui/status/system.js:323
|
||||
msgid "Other users are logged in."
|
||||
msgstr "Prijavljeni so tudi drugi uporabniki."
|
||||
|
||||
#: ../js/ui/status/system.js:328
|
||||
msgid "Shutting down might cause them to lose unsaved work."
|
||||
msgstr "Z izklopom je njihovo delo lahko izgubljeno."
|
||||
|
||||
#. Translators: Remote here refers to a remote session, like a ssh login
|
||||
#: ../js/ui/status/system.js:356
|
||||
#, c-format
|
||||
msgid "%s (remote)"
|
||||
msgstr "%s (oddaljeno)"
|
||||
|
||||
#. Translators: Console here refers to a tty like a VT console
|
||||
#: ../js/ui/status/system.js:359
|
||||
#, c-format
|
||||
msgid "%s (console)"
|
||||
msgstr "%s (konzola)"
|
||||
|
||||
#: ../js/ui/status/volume.js:124
|
||||
#: ../js/ui/status/volume.js:127
|
||||
msgid "Volume changed"
|
||||
msgstr "Glasnost je spremenjena"
|
||||
|
||||
#: ../js/ui/unlockDialog.js:64
|
||||
#: ../js/ui/status/volume.js:162
|
||||
msgid "Volume"
|
||||
msgstr "Glasnost"
|
||||
|
||||
#: ../js/ui/status/volume.js:213
|
||||
msgid "Microphone"
|
||||
msgstr "Mikrofon"
|
||||
|
||||
#: ../js/ui/unlockDialog.js:67
|
||||
msgid "Log in as another user"
|
||||
msgstr "Prijava kot drug uporabnik"
|
||||
|
||||
#: ../js/ui/unlockDialog.js:81
|
||||
#: ../js/ui/unlockDialog.js:84
|
||||
msgid "Unlock Window"
|
||||
msgstr "Odkleni okno"
|
||||
|
||||
@@ -1631,6 +1637,30 @@ msgstr "Riba %s pravi"
|
||||
msgid "'%s' is ready"
|
||||
msgstr "'%s' storitev je pripravljena"
|
||||
|
||||
#: ../js/ui/windowManager.js:56
|
||||
msgid "Do you want to keep these display settings?"
|
||||
msgstr "Ali želite ohraniti te nastavitve zaslona?"
|
||||
|
||||
#. Translators: this and the following message should be limited in lenght,
|
||||
#. to avoid ellipsizing the labels.
|
||||
#.
|
||||
#: ../js/ui/windowManager.js:75
|
||||
msgid "Revert Settings"
|
||||
msgstr "Povrni nastavitve"
|
||||
|
||||
#: ../js/ui/windowManager.js:79
|
||||
msgid "Keep Changes"
|
||||
msgstr "Sledi spremembam"
|
||||
|
||||
#: ../js/ui/windowManager.js:97
|
||||
#, c-format
|
||||
msgid "Settings changes will revert in %d second"
|
||||
msgid_plural "Settings changes will revert in %d seconds"
|
||||
msgstr[0] "Spremembe nastavitev bodo povrnjene v %d sekundah."
|
||||
msgstr[1] "Spremembe nastavitev bodo povrnjene v %d sekundi."
|
||||
msgstr[2] "Spremembe nastavitev bodo povrnjene v %d sekundah."
|
||||
msgstr[3] "Spremembe nastavitev bodo povrnjene v %d sekundah."
|
||||
|
||||
#: ../src/calendar-server/evolution-calendar.desktop.in.in.h:1
|
||||
msgid "Evolution Calendar"
|
||||
msgstr "Koledar Evolution "
|
||||
@@ -1694,6 +1724,47 @@ msgstr "Geslo ne more biti prazno"
|
||||
msgid "Authentication dialog was dismissed by the user"
|
||||
msgstr "Uporabnik je zavrnil pogovorno okno overitve"
|
||||
|
||||
#~ msgid "Session"
|
||||
#~ msgstr "Seja"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "Internally used to store the last IM presence explicitly set by the user. "
|
||||
#~ "The value here is from the TpConnectionPresenceType enumeration."
|
||||
#~ msgstr ""
|
||||
#~ "Uporabljeno za shranjevanje stanja prisotnosti na hipnem sporočanju na "
|
||||
#~ "zahtevo uporabnika. Vrednost določa števec predmeta "
|
||||
#~ "TpConnectionPresenceType."
|
||||
|
||||
#~ msgid ""
|
||||
#~ "Internally used to store the last session presence status for the user. "
|
||||
#~ "The value here is from the GsmPresenceStatus enumeration."
|
||||
#~ msgstr ""
|
||||
#~ "Uporabljeno za shranjevanje stanja prisotnosti zadnje seje uporabnika. "
|
||||
#~ "Vrednost določa števec predmeta GsmPresenceStatus."
|
||||
|
||||
#~ msgid "Click Log Out to quit these applications and log out of the system."
|
||||
#~ msgstr "Kliknite Odjava za končanje teh programov in odjavo iz sistema."
|
||||
|
||||
#~ msgid "Logging out of the system."
|
||||
#~ msgstr "Odjavljanje iz sistema."
|
||||
|
||||
#~ msgid "Click Power Off to quit these applications and power off the system."
|
||||
#~ msgstr ""
|
||||
#~ "Kliknite na gumb za izklop za končanje teh programov in izklop iz sistema."
|
||||
|
||||
#~ msgid "Powering off the system."
|
||||
#~ msgstr "Izklapljanje sistema"
|
||||
|
||||
#~ msgid "Click Restart to quit these applications and restart the system."
|
||||
#~ msgstr ""
|
||||
#~ "Kliknite Zaženi znova za končanje teh programov in ponoven zagon sistema. "
|
||||
|
||||
#~ msgid "Restarting the system."
|
||||
#~ msgstr "Ponoven zagon sistema."
|
||||
|
||||
#~ msgid "Shutting down might cause them to lose unsaved work."
|
||||
#~ msgstr "Z izklopom je njihovo delo lahko izgubljeno."
|
||||
|
||||
#~ msgid "Screenshots"
|
||||
#~ msgstr "Zajete slike"
|
||||
|
||||
@@ -1760,9 +1831,6 @@ msgstr "Uporabnik je zavrnil pogovorno okno overitve"
|
||||
#~ msgid "Power"
|
||||
#~ msgstr "Napajanje"
|
||||
|
||||
#~ msgid "Suspend"
|
||||
#~ msgstr "Zaustavi"
|
||||
|
||||
#~ msgid "Restart"
|
||||
#~ msgstr "Zaženi znova"
|
||||
|
||||
@@ -1895,12 +1963,6 @@ msgstr "Uporabnik je zavrnil pogovorno okno overitve"
|
||||
#~ msgid "Unknown"
|
||||
#~ msgstr "Neznano"
|
||||
|
||||
#~ msgid "Volume"
|
||||
#~ msgstr "Glasnost"
|
||||
|
||||
#~ msgid "Microphone"
|
||||
#~ msgstr "Mikrofon"
|
||||
|
||||
#~ msgid "Available"
|
||||
#~ msgstr "Na voljo"
|
||||
|
||||
@@ -1919,9 +1981,6 @@ msgstr "Uporabnik je zavrnil pogovorno okno overitve"
|
||||
#~ msgid "Notifications"
|
||||
#~ msgstr "Obvestila"
|
||||
|
||||
#~ msgid "Install Updates & Restart"
|
||||
#~ msgstr "Namesti posodobitve in ponovno zaženi"
|
||||
|
||||
#~ msgid "Your chat status will be set to busy"
|
||||
#~ msgstr "Stanje vašega klepeta bo nastavljeno na zasedeno"
|
||||
|
||||
|
1224
po/sr@latin.po
1224
po/sr@latin.po
File diff suppressed because it is too large
Load Diff
410
po/tg.po
410
po/tg.po
@@ -8,8 +8,8 @@ msgstr ""
|
||||
"Project-Id-Version: Tajik Gnome\n"
|
||||
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
|
||||
"shell&keywords=I18N+L10N&component=general\n"
|
||||
"POT-Creation-Date: 2013-08-20 18:21+0000\n"
|
||||
"PO-Revision-Date: 2013-08-21 12:07+0500\n"
|
||||
"POT-Creation-Date: 2013-09-08 10:42+0000\n"
|
||||
"PO-Revision-Date: 2013-09-08 15:44+0500\n"
|
||||
"Last-Translator: Victor Ibragimov <victor.ibragimov@gmail.com>\n"
|
||||
"Language-Team: \n"
|
||||
"Language: Tajik\n"
|
||||
@@ -124,28 +124,10 @@ msgid "History for the looking glass dialog"
|
||||
msgstr "Таърих барои равзанаи гуфтугӯи оина"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:11
|
||||
msgid ""
|
||||
"Internally used to store the last IM presence explicitly set by the user. "
|
||||
"The value here is from the TpConnectionPresenceType enumeration."
|
||||
msgstr ""
|
||||
"Ба таври дохилӣ барои нигоҳ доштани мавҷудияти охирини IM, ки бо корбар ба "
|
||||
"таври бевосита таъин шудааст, истифода мешавад. Дар ин ҷо қимат аз шумориши "
|
||||
"TpConnectionPresenceType ба вуҷуд меояд."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:12
|
||||
msgid ""
|
||||
"Internally used to store the last session presence status for the user. The "
|
||||
"value here is from the GsmPresenceStatus enumeration."
|
||||
msgstr ""
|
||||
"Ба таври дохилӣ барои нигоҳ доштани вазъияти мавҷудияти ҷаласаи охирин барои "
|
||||
"корбар истифода мешавад. Дар ин ҷо қимат аз шумориши GsmPresenceStatus ба "
|
||||
"вуҷуд меояд."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:13
|
||||
msgid "Always show the 'Log out' menuitem in the user menu."
|
||||
msgstr "Ҳамеша намоиш додани объекти менюи \"Баромадан\" дар менюи корбар."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:14
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:12
|
||||
msgid ""
|
||||
"This key overrides the automatic hiding of the 'Log out' menuitem in single-"
|
||||
"user, single-session situations."
|
||||
@@ -153,14 +135,14 @@ msgstr ""
|
||||
"Ин калид пинҳонкунии худкори объекти менюи \"Баромадан\"-ро дар вазъиятҳои "
|
||||
"корбари ягона ва ҷаласаи ягона бекор мекунад."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:15
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:13
|
||||
msgid ""
|
||||
"Whether to remember password for mounting encrypted or remote filesystems"
|
||||
msgstr ""
|
||||
"Дар ёд доштан ё дар ёд надоштани парол барои васл кардани системаҳои файлии "
|
||||
"рамздор ё дурдаст"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:16
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:14
|
||||
msgid ""
|
||||
"The shell will request a password when an encrypted device or a remote "
|
||||
"filesystem is mounted. If the password can be saved for future use a "
|
||||
@@ -172,69 +154,69 @@ msgstr ""
|
||||
"доштани парол\" мавҷуд мешавад. Ин калид ҳолати пешфарзи байрақчаро таъин "
|
||||
"мекунад."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:17
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:15
|
||||
msgid "Show the week date in the calendar"
|
||||
msgstr "Намоиш додани ҳафта дар тақвим"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:18
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:16
|
||||
msgid "If true, display the ISO week date in the calendar."
|
||||
msgstr "Агар дуруст бошад, санаи ҳафтаи ISO дар тақвим намоиш дода мешавад."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:19
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:17
|
||||
msgid "Keybinding to open the application menu"
|
||||
msgstr "Тугма барои кушодани менюи барнома"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:20
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:18
|
||||
msgid "Keybinding to open the application menu."
|
||||
msgstr "Тугма барои кушодани менюи барнома."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:21
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:19
|
||||
msgid "Keybinding to open the \"Show Applications\" view"
|
||||
msgstr "Тугма барои кушодани намуди \"Намоиш додани барномаҳо\""
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:22
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:20
|
||||
msgid ""
|
||||
"Keybinding to open the \"Show Applications\" view of the Activities Overview."
|
||||
msgstr ""
|
||||
"Тугма барои кушодани намуди \"Намоиш додани барномаҳо\"-и Хулосаи фаъолият."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:23
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:21
|
||||
msgid "Keybinding to open the overview"
|
||||
msgstr "Тугмабандӣ барои кушодани хулоса"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:24
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:22
|
||||
msgid "Keybinding to open the Activities Overview."
|
||||
msgstr "Тугмабандӣ барои кушодани хулосаи фаъолият."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:25
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:23
|
||||
msgid "Keybinding to toggle the visibility of the message tray"
|
||||
msgstr "Тугма барои иваз кардани намоёнии қуттии паёмҳо"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:26
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:24
|
||||
msgid "Keybinding to toggle the visibility of the message tray."
|
||||
msgstr "Тугма барои иваз кардани намоёнии қуттии паёмҳо."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:27
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:25
|
||||
msgid "Keybinding to focus the active notification"
|
||||
msgstr "Тугма барои гузоштани фокус ба огоҳии фаъол"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:28
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:26
|
||||
msgid "Keybinding to focus the active notification."
|
||||
msgstr "Тугма барои гузоштани фокус ба огоҳии фаъол."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:29
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:27
|
||||
msgid "Which keyboard to use"
|
||||
msgstr "Клавиатураро интихоб кунед"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:30
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:28
|
||||
msgid "The type of keyboard to use."
|
||||
msgstr "Намуди клавиатура барои истифода."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:31
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:29
|
||||
msgid "The application icon mode."
|
||||
msgstr "Ҳолати нишонаи барнома."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:32
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:30
|
||||
msgid ""
|
||||
"Configures how the windows are shown in the switcher. Valid possibilities "
|
||||
"are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-"
|
||||
@@ -245,22 +227,22 @@ msgstr ""
|
||||
"равзанаро намоиш медиҳад), \"танҳо нишонаи барнома\" (танҳо нишонаи "
|
||||
"барномаро намоиш медиҳад) ё \"ҳар ду\"."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:33
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:31
|
||||
msgid "Attach modal dialog to the parent window"
|
||||
msgstr "Замима кардани равзанаи гуфтугӯи модалӣ ба равзанаи асосӣ"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:34
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:32
|
||||
msgid ""
|
||||
"This key overrides the key in org.gnome.mutter when running GNOME Shell."
|
||||
msgstr ""
|
||||
"Ин калид ҳангоми иҷроиши GNOME Shell калиди дар org.gnome.mutter "
|
||||
"ҷойгирбударо бекор мекунад."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:35
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:33
|
||||
msgid "Arrangement of buttons on the titlebar"
|
||||
msgstr "Мураттабсозии тугмаҳо дар сарлавҳаи равзана"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:36
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:34
|
||||
msgid ""
|
||||
"This key overrides the key in org.gnome.desktop.wm.preferences when running "
|
||||
"GNOME Shell."
|
||||
@@ -268,17 +250,17 @@ msgstr ""
|
||||
"Ин калид ҳангоми иҷроиши GNOME Shell калиди дар org.gnome.desktop.wm."
|
||||
"preferences ҷойгирбударо бекор мекунад."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:35
|
||||
msgid "Enable edge tiling when dropping windows on screen edges"
|
||||
msgstr ""
|
||||
"Фаъол кардани лавҳабандии канорӣ ҳангоми гузоштани равзанаҳо ба канорҳои "
|
||||
"экран"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:38
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:36
|
||||
msgid "Workspaces are managed dynamically"
|
||||
msgstr "Фазоҳои корӣ ба таври серамалӣ идора мешаванд"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:39
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37
|
||||
msgid "Workspaces only on primary monitor"
|
||||
msgstr "Танҳо фазоҳои корӣ дар монитори асосӣ"
|
||||
|
||||
@@ -299,46 +281,41 @@ msgstr ""
|
||||
"Пасвандеро интихоб кунед, то ин ки бо ҷаъбаи мураккаби боло онро "
|
||||
"конфигуратсия кунед."
|
||||
|
||||
#: ../js/gdm/authPrompt.js:146 ../js/ui/components/networkAgent.js:132
|
||||
#: ../js/ui/components/polkitAgent.js:161 ../js/ui/endSessionDialog.js:376
|
||||
#: ../js/gdm/authPrompt.js:145 ../js/ui/components/networkAgent.js:132
|
||||
#: ../js/ui/components/polkitAgent.js:161 ../js/ui/endSessionDialog.js:351
|
||||
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
|
||||
#: ../js/ui/status/bluetooth.js:221 ../js/ui/status/network.js:679
|
||||
#: ../js/ui/status/system.js:373
|
||||
#: ../js/ui/status/bluetooth.js:221 ../js/ui/status/network.js:686
|
||||
msgid "Cancel"
|
||||
msgstr "Бекор кардан"
|
||||
|
||||
#: ../js/gdm/authPrompt.js:168 ../js/gdm/authPrompt.js:216
|
||||
#: ../js/gdm/authPrompt.js:167 ../js/gdm/authPrompt.js:215
|
||||
msgid "Next"
|
||||
msgstr "Навбатӣ"
|
||||
|
||||
#: ../js/gdm/authPrompt.js:212 ../js/ui/shellMountOperation.js:403
|
||||
#: ../js/ui/unlockDialog.js:56
|
||||
#: ../js/gdm/authPrompt.js:211 ../js/ui/shellMountOperation.js:403
|
||||
#: ../js/ui/unlockDialog.js:59
|
||||
msgid "Unlock"
|
||||
msgstr "Кушодан"
|
||||
|
||||
#: ../js/gdm/authPrompt.js:214
|
||||
#: ../js/gdm/authPrompt.js:213
|
||||
msgctxt "button"
|
||||
msgid "Sign In"
|
||||
msgstr "Ворид шудан"
|
||||
|
||||
#: ../js/gdm/loginDialog.js:299
|
||||
#: ../js/gdm/loginDialog.js:294
|
||||
msgid "Choose Session"
|
||||
msgstr "Интихоби ҷаласа"
|
||||
|
||||
#: ../js/gdm/loginDialog.js:317
|
||||
msgid "Session"
|
||||
msgstr "Ҷаласа"
|
||||
|
||||
#. translators: this message is shown below the user list on the
|
||||
#. login screen. It can be activated to reveal an entry for
|
||||
#. manually entering the username.
|
||||
#: ../js/gdm/loginDialog.js:468
|
||||
#: ../js/gdm/loginDialog.js:454
|
||||
msgid "Not listed?"
|
||||
msgstr "Вуҷуд надора?"
|
||||
|
||||
#. Translators: this message is shown below the username entry field
|
||||
#. to clue the user in on how to login to the local network realm
|
||||
#: ../js/gdm/loginDialog.js:641
|
||||
#: ../js/gdm/loginDialog.js:622
|
||||
#, c-format
|
||||
msgid "(e.g., user or %s)"
|
||||
msgstr "(масалан, корбар ё %s)"
|
||||
@@ -346,12 +323,12 @@ msgstr "(масалан, корбар ё %s)"
|
||||
#. TTLS and PEAP are actually much more complicated, but this complication
|
||||
#. is not visible here since we only care about phase2 authentication
|
||||
#. (and don't even care of which one)
|
||||
#: ../js/gdm/loginDialog.js:646 ../js/ui/components/networkAgent.js:255
|
||||
#: ../js/gdm/loginDialog.js:627 ../js/ui/components/networkAgent.js:255
|
||||
#: ../js/ui/components/networkAgent.js:273
|
||||
msgid "Username: "
|
||||
msgstr "Номи корбар:"
|
||||
|
||||
#: ../js/gdm/loginDialog.js:909
|
||||
#: ../js/gdm/loginDialog.js:891
|
||||
msgid "Login Window"
|
||||
msgstr "Равзанаи воридшавӣ"
|
||||
|
||||
@@ -364,7 +341,7 @@ msgstr "Хатои санҷиши ҳаққоният"
|
||||
#. as a cue to display our own message.
|
||||
#. Translators: this message is shown below the password entry field
|
||||
#. to indicate the user can swipe their finger instead
|
||||
#: ../js/gdm/util.js:419
|
||||
#: ../js/gdm/util.js:436
|
||||
msgid "(or swipe finger)"
|
||||
msgstr "(ё бо ангут ламс кунед)"
|
||||
|
||||
@@ -383,23 +360,27 @@ msgstr "Фармон иҷро нашудааст:"
|
||||
msgid "Execution of '%s' failed:"
|
||||
msgstr "Иҷрокунии '%s' қатъ шудааст:"
|
||||
|
||||
#: ../js/ui/appDisplay.js:386
|
||||
#: ../js/ui/appDisplay.js:573
|
||||
msgid "Frequently used applications will appear here"
|
||||
msgstr "Барномаҳои бештар истифодашуда ин ҷо намоиш дода мешаванд"
|
||||
|
||||
#: ../js/ui/appDisplay.js:689
|
||||
msgid "Frequent"
|
||||
msgstr "Роиҷ"
|
||||
|
||||
#: ../js/ui/appDisplay.js:393
|
||||
#: ../js/ui/appDisplay.js:696
|
||||
msgid "All"
|
||||
msgstr "Ҳама"
|
||||
|
||||
#: ../js/ui/appDisplay.js:986
|
||||
#: ../js/ui/appDisplay.js:1491
|
||||
msgid "New Window"
|
||||
msgstr "Равзанаи нав"
|
||||
|
||||
#: ../js/ui/appDisplay.js:989 ../js/ui/dash.js:284
|
||||
#: ../js/ui/appDisplay.js:1494 ../js/ui/dash.js:284
|
||||
msgid "Remove from Favorites"
|
||||
msgstr "Тоза кардан аз Баргузидаҳо"
|
||||
|
||||
#: ../js/ui/appDisplay.js:990
|
||||
#: ../js/ui/appDisplay.js:1495
|
||||
msgid "Add to Favorites"
|
||||
msgstr "Илова кардан ба Баргузидаҳо"
|
||||
|
||||
@@ -413,7 +394,7 @@ msgstr "%s ба баргузидаҳои шумо илова шудааст."
|
||||
msgid "%s has been removed from your favorites."
|
||||
msgstr "%s аз баргузидаҳои шумо тоза шудааст."
|
||||
|
||||
#: ../js/ui/backgroundMenu.js:19 ../js/ui/status/system.js:267
|
||||
#: ../js/ui/backgroundMenu.js:19 ../js/ui/status/system.js:325
|
||||
msgid "Settings"
|
||||
msgstr "Танзимот"
|
||||
|
||||
@@ -537,36 +518,44 @@ msgctxt "list saturday"
|
||||
msgid "S"
|
||||
msgstr "Ш"
|
||||
|
||||
#: ../js/ui/calendar.js:447
|
||||
msgid "Previous month"
|
||||
msgstr "Моҳи қаблӣ"
|
||||
|
||||
#: ../js/ui/calendar.js:457
|
||||
msgid "Next month"
|
||||
msgstr "Моҳи навбатӣ"
|
||||
|
||||
#. Translators: Text to show if there are no events
|
||||
#: ../js/ui/calendar.js:750
|
||||
#: ../js/ui/calendar.js:753
|
||||
msgid "Nothing Scheduled"
|
||||
msgstr "Ягон чиз ба нақша нагирифтааст"
|
||||
|
||||
#. Translators: Shown on calendar heading when selected day occurs on current year
|
||||
#: ../js/ui/calendar.js:768
|
||||
#: ../js/ui/calendar.js:771
|
||||
msgctxt "calendar heading"
|
||||
msgid "%A, %B %d"
|
||||
msgstr "%A, %B %d"
|
||||
|
||||
#. Translators: Shown on calendar heading when selected day occurs on different year
|
||||
#: ../js/ui/calendar.js:771
|
||||
#: ../js/ui/calendar.js:774
|
||||
msgctxt "calendar heading"
|
||||
msgid "%A, %B %d, %Y"
|
||||
msgstr "%A, %B %d, %Y"
|
||||
|
||||
#: ../js/ui/calendar.js:782
|
||||
#: ../js/ui/calendar.js:785
|
||||
msgid "Today"
|
||||
msgstr "Имрӯз"
|
||||
|
||||
#: ../js/ui/calendar.js:786
|
||||
#: ../js/ui/calendar.js:789
|
||||
msgid "Tomorrow"
|
||||
msgstr "Фардо"
|
||||
|
||||
#: ../js/ui/calendar.js:797
|
||||
#: ../js/ui/calendar.js:800
|
||||
msgid "This week"
|
||||
msgstr "Ҳафтаи ҷорӣ"
|
||||
|
||||
#: ../js/ui/calendar.js:805
|
||||
#: ../js/ui/calendar.js:808
|
||||
msgid "Next week"
|
||||
msgstr "Ҳафтаи навбатӣ"
|
||||
|
||||
@@ -600,7 +589,7 @@ msgid "Type again:"
|
||||
msgstr "Аз нав ворид кунед:"
|
||||
|
||||
#: ../js/ui/components/networkAgent.js:127 ../js/ui/status/network.js:112
|
||||
#: ../js/ui/status/network.js:268 ../js/ui/status/network.js:682
|
||||
#: ../js/ui/status/network.js:275 ../js/ui/status/network.js:689
|
||||
msgid "Connect"
|
||||
msgstr "Пайваст шудан"
|
||||
|
||||
@@ -945,7 +934,7 @@ msgstr "Намоиш додани барномаҳо"
|
||||
|
||||
#. Translators: this is the name of the dock/favorites area on
|
||||
#. the left of the overview
|
||||
#: ../js/ui/dash.js:439
|
||||
#: ../js/ui/dash.js:442
|
||||
msgid "Dash"
|
||||
msgstr "Рах"
|
||||
|
||||
@@ -968,99 +957,111 @@ msgstr "Танзимоти сана ва вақт"
|
||||
msgid "%A %B %e, %Y"
|
||||
msgstr "%A %B %e, %Y"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:63
|
||||
#: ../js/ui/endSessionDialog.js:62
|
||||
#, c-format
|
||||
msgctxt "title"
|
||||
msgid "Log Out %s"
|
||||
msgstr "Баромадан аз %s"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:64
|
||||
#: ../js/ui/endSessionDialog.js:63
|
||||
msgctxt "title"
|
||||
msgid "Log Out"
|
||||
msgstr "Баромад"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:65
|
||||
msgid "Click Log Out to quit these applications and log out of the system."
|
||||
msgstr ""
|
||||
"Барои баромадан аз ин барномаҳо ва баромадан аз система, \"Баромадан\"-ро "
|
||||
"зер кунед."
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:67
|
||||
#, c-format
|
||||
msgid "%s will be logged out automatically in %d second."
|
||||
msgid_plural "%s will be logged out automatically in %d seconds."
|
||||
msgstr[0] "%s аз система баъд аз %d сония ба таври худкор мебарояд."
|
||||
msgstr[1] "%s аз система баъд аз %d сония ба таври худкор мебарояд."
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:72
|
||||
#: ../js/ui/endSessionDialog.js:70
|
||||
#, c-format
|
||||
msgid "You will be logged out automatically in %d second."
|
||||
msgid_plural "You will be logged out automatically in %d seconds."
|
||||
msgstr[0] "Шумо аз система баъд аз %d сония ба таври худкор мебароед."
|
||||
msgstr[1] "Шумо аз система баъд аз %d сония ба таври худкор мебароед."
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:76
|
||||
msgid "Logging out of the system."
|
||||
msgstr "Баромад аз система."
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:78
|
||||
#: ../js/ui/endSessionDialog.js:75
|
||||
msgctxt "button"
|
||||
msgid "Log Out"
|
||||
msgstr "Баромад"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:83
|
||||
#: ../js/ui/endSessionDialog.js:81
|
||||
msgctxt "title"
|
||||
msgid "Power Off"
|
||||
msgstr "Хомӯш кардан"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:84
|
||||
msgid "Click Power Off to quit these applications and power off the system."
|
||||
msgstr ""
|
||||
"Барои баромадан аз ин барномаҳо ва анҷом додани кори система, \"Анҷоми кор\"-"
|
||||
"ро зер кунед."
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:86
|
||||
#: ../js/ui/endSessionDialog.js:83
|
||||
#, c-format
|
||||
msgid "The system will power off automatically in %d second."
|
||||
msgid_plural "The system will power off automatically in %d seconds."
|
||||
msgstr[0] "Система ба таври худкор баъд аз %d сония корро анҷом медиҳад."
|
||||
msgstr[1] "Система ба таври худкор баъд аз %d сония корро анҷом медиҳад."
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:90
|
||||
msgid "Powering off the system."
|
||||
msgstr "Хомӯш кардани система."
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:92 ../js/ui/endSessionDialog.js:109
|
||||
#: ../js/ui/endSessionDialog.js:88 ../js/ui/endSessionDialog.js:104
|
||||
msgctxt "button"
|
||||
msgid "Restart"
|
||||
msgstr "Бозоғозидан"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:94
|
||||
#: ../js/ui/endSessionDialog.js:90
|
||||
msgctxt "button"
|
||||
msgid "Power Off"
|
||||
msgstr "Хомӯш кардан"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:100
|
||||
#: ../js/ui/endSessionDialog.js:97
|
||||
msgctxt "title"
|
||||
msgid "Restart"
|
||||
msgstr "Бозоғозидан"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:101
|
||||
msgid "Click Restart to quit these applications and restart the system."
|
||||
msgstr ""
|
||||
"Барои баромадан аз ин барномаҳо ва бозоғозидани система, \"Бозоғозидан\"-ро "
|
||||
"зер кунед."
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:103
|
||||
#: ../js/ui/endSessionDialog.js:99
|
||||
#, c-format
|
||||
msgid "The system will restart automatically in %d second."
|
||||
msgid_plural "The system will restart automatically in %d seconds."
|
||||
msgstr[0] "Система ба таври худкор баъд аз %d сония бозоғозӣ мешавад."
|
||||
msgstr[1] "Система ба таври худкор баъд аз %d сония бозоғозӣ мешавад."
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:107
|
||||
msgid "Restarting the system."
|
||||
msgstr "Бозоғозии система."
|
||||
#: ../js/ui/endSessionDialog.js:112
|
||||
msgctxt "title"
|
||||
msgid "Restart & Install Updates"
|
||||
msgstr "Бозоғозӣ кардан ва насб кардани навсозиҳо"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:114
|
||||
#, c-format
|
||||
msgid "The system will automatically restart and install updates in %d second."
|
||||
msgid_plural ""
|
||||
"The system will automatically restart and install updates in %d seconds."
|
||||
msgstr[0] ""
|
||||
"Система баъд аз %d сония ба таври худкор бозоғозӣ мешавад ва навсозиҳоро "
|
||||
"насб мекунад."
|
||||
msgstr[1] ""
|
||||
"Система баъд аз %d сония ба таври худкор бозоғозӣ мешавад ва навсозиҳоро "
|
||||
"насб мекунад."
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:119
|
||||
msgctxt "button"
|
||||
msgid "Restart & Install"
|
||||
msgstr "Бозоғозӣ ва насб кардан"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:271
|
||||
msgid "Some applications are busy or have unsaved work."
|
||||
msgstr "Баъзе барномаҳо банданд ё дорои корҳои захиранашуда мебошанд."
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:277
|
||||
msgid "Other users are logged in."
|
||||
msgstr "Корбарони дигар ворид шудаанд."
|
||||
|
||||
#. Translators: Remote here refers to a remote session, like a ssh login
|
||||
#: ../js/ui/endSessionDialog.js:479
|
||||
#, c-format
|
||||
msgid "%s (remote)"
|
||||
msgstr "%s (дурдаст)"
|
||||
|
||||
#. Translators: Console here refers to a tty like a VT console
|
||||
#: ../js/ui/endSessionDialog.js:482
|
||||
#, c-format
|
||||
msgid "%s (console)"
|
||||
msgstr "%s (консол)"
|
||||
|
||||
#: ../js/ui/extensionDownloader.js:199
|
||||
msgid "Install"
|
||||
@@ -1143,15 +1144,15 @@ msgstr "Танзимоти огоҳиҳо"
|
||||
msgid "Tray Menu"
|
||||
msgstr "Менюи қуттӣ"
|
||||
|
||||
#: ../js/ui/messageTray.js:1777
|
||||
#: ../js/ui/messageTray.js:1775
|
||||
msgid "No Messages"
|
||||
msgstr "Ягон паём нест"
|
||||
|
||||
#: ../js/ui/messageTray.js:1814
|
||||
#: ../js/ui/messageTray.js:1812
|
||||
msgid "Message Tray"
|
||||
msgstr "Қуттии паёмҳо"
|
||||
|
||||
#: ../js/ui/messageTray.js:2788
|
||||
#: ../js/ui/messageTray.js:2787
|
||||
msgid "System Information"
|
||||
msgstr "Маълумоти система"
|
||||
|
||||
@@ -1160,7 +1161,7 @@ msgctxt "program"
|
||||
msgid "Unknown"
|
||||
msgstr "Номаълум"
|
||||
|
||||
#: ../js/ui/overviewControls.js:491 ../js/ui/screenShield.js:154
|
||||
#: ../js/ui/overviewControls.js:491 ../js/ui/screenShield.js:152
|
||||
#, c-format
|
||||
msgid "%d new message"
|
||||
msgid_plural "%d new messages"
|
||||
@@ -1197,7 +1198,7 @@ msgstr "Фаъолиятҳо"
|
||||
msgid "Settings Menu"
|
||||
msgstr "Менюи танзимот"
|
||||
|
||||
#: ../js/ui/panel.js:892
|
||||
#: ../js/ui/panel.js:901
|
||||
msgid "Top Bar"
|
||||
msgstr "Панели боло"
|
||||
|
||||
@@ -1220,22 +1221,22 @@ msgstr "Пӯшидан"
|
||||
|
||||
#. Translators: This is a time format for a date in
|
||||
#. long format
|
||||
#: ../js/ui/screenShield.js:90
|
||||
#: ../js/ui/screenShield.js:88
|
||||
msgid "%A, %B %d"
|
||||
msgstr "%A, %B %d"
|
||||
|
||||
#: ../js/ui/screenShield.js:156
|
||||
#: ../js/ui/screenShield.js:154
|
||||
#, c-format
|
||||
msgid "%d new notification"
|
||||
msgid_plural "%d new notifications"
|
||||
msgstr[0] "%d огоҳии нав"
|
||||
msgstr[1] "%d огоҳии нав"
|
||||
|
||||
#: ../js/ui/screenShield.js:479 ../js/ui/status/system.js:275
|
||||
#: ../js/ui/screenShield.js:477 ../js/ui/status/system.js:333
|
||||
msgid "Lock"
|
||||
msgstr "Қулф кардан"
|
||||
|
||||
#: ../js/ui/screenShield.js:706
|
||||
#: ../js/ui/screenShield.js:703
|
||||
msgid "GNOME needs to lock the screen"
|
||||
msgstr "GNOME бояд экранро қулф кунад"
|
||||
|
||||
@@ -1246,19 +1247,19 @@ msgstr "GNOME бояд экранро қулф кунад"
|
||||
#.
|
||||
#. XXX: another option is to kick the user into the gdm login
|
||||
#. screen, where we're not affected by grabs
|
||||
#: ../js/ui/screenShield.js:831 ../js/ui/screenShield.js:1279
|
||||
#: ../js/ui/screenShield.js:830 ../js/ui/screenShield.js:1296
|
||||
msgid "Unable to lock"
|
||||
msgstr "Қулф карда намешавад"
|
||||
|
||||
#: ../js/ui/screenShield.js:832 ../js/ui/screenShield.js:1280
|
||||
#: ../js/ui/screenShield.js:831 ../js/ui/screenShield.js:1297
|
||||
msgid "Lock was blocked by an application"
|
||||
msgstr "Қулф аз тарави барнома баста шудааст"
|
||||
|
||||
#: ../js/ui/searchDisplay.js:445
|
||||
#: ../js/ui/searchDisplay.js:447
|
||||
msgid "Searching…"
|
||||
msgstr "Ҷустуҷӯ рафта истодааст..."
|
||||
|
||||
#: ../js/ui/searchDisplay.js:489
|
||||
#: ../js/ui/searchDisplay.js:491
|
||||
msgid "No results."
|
||||
msgstr "Ягон натиҷа нест."
|
||||
|
||||
@@ -1339,7 +1340,7 @@ msgid "Bluetooth"
|
||||
msgstr "Bluetooth"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:30 ../js/ui/status/network.js:112
|
||||
#: ../js/ui/status/network.js:1027 ../js/ui/status/rfkill.js:46
|
||||
#: ../js/ui/status/network.js:1034 ../js/ui/status/rfkill.js:46
|
||||
msgid "Turn Off"
|
||||
msgstr "Хомӯш кардан"
|
||||
|
||||
@@ -1426,6 +1427,10 @@ msgstr "Лутфан, рамзи PIN-ро, ки дар дастгоҳ гуфта
|
||||
msgid "OK"
|
||||
msgstr "OK"
|
||||
|
||||
#: ../js/ui/status/brightness.js:42
|
||||
msgid "Brightness"
|
||||
msgstr "Дурахшонӣ"
|
||||
|
||||
#: ../js/ui/status/keyboard.js:404
|
||||
msgid "Show Keyboard Layout"
|
||||
msgstr "Намоиш додани тарҳбандии клавиатура"
|
||||
@@ -1434,83 +1439,83 @@ msgstr "Намоиш додани тарҳбандии клавиатура"
|
||||
msgid "<unknown>"
|
||||
msgstr "<номаълум>"
|
||||
|
||||
#: ../js/ui/status/network.js:196 ../js/ui/status/network.js:1042
|
||||
#: ../js/ui/status/network.js:203 ../js/ui/status/network.js:1049
|
||||
msgid "Off"
|
||||
msgstr "Хомӯш"
|
||||
|
||||
#: ../js/ui/status/network.js:269 ../js/ui/status/network.js:948
|
||||
#: ../js/ui/status/network.js:276 ../js/ui/status/network.js:955
|
||||
#: ../js/ui/status/rfkill.js:49
|
||||
msgid "Network Settings"
|
||||
msgstr "Танзимоти шабака"
|
||||
|
||||
#. 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)
|
||||
#: ../js/ui/status/network.js:357
|
||||
#: ../js/ui/status/network.js:364
|
||||
msgid "unmanaged"
|
||||
msgstr "идоранашуда"
|
||||
|
||||
#: ../js/ui/status/network.js:359
|
||||
#: ../js/ui/status/network.js:366
|
||||
msgid "disconnecting..."
|
||||
msgstr "қатъ кардани пайваст..."
|
||||
|
||||
#: ../js/ui/status/network.js:365 ../js/ui/status/network.js:1093
|
||||
#: ../js/ui/status/network.js:372 ../js/ui/status/network.js:1100
|
||||
msgid "connecting..."
|
||||
msgstr "пайвастшавӣ..."
|
||||
|
||||
#. Translators: this is for network connections that require some kind of key or password
|
||||
#: ../js/ui/status/network.js:368 ../js/ui/status/network.js:1096
|
||||
#: ../js/ui/status/network.js:375 ../js/ui/status/network.js:1103
|
||||
msgid "authentication required"
|
||||
msgstr "санҷиши ҳаққоният лозим аст"
|
||||
|
||||
#. Translators: this is for devices that require some kind of firmware or kernel
|
||||
#. module, which is missing
|
||||
#: ../js/ui/status/network.js:376
|
||||
#: ../js/ui/status/network.js:383
|
||||
msgid "firmware missing"
|
||||
msgstr "нармафзори дарунсохт вуҷуд надорад"
|
||||
|
||||
#. Translators: this is for a network device that cannot be activated (for example it
|
||||
#. is disabled by rfkill, or it has no coverage
|
||||
#: ../js/ui/status/network.js:380
|
||||
#: ../js/ui/status/network.js:387
|
||||
msgid "unavailable"
|
||||
msgstr "дастнорас"
|
||||
|
||||
#: ../js/ui/status/network.js:382 ../js/ui/status/network.js:1098
|
||||
#: ../js/ui/status/network.js:389 ../js/ui/status/network.js:1105
|
||||
msgid "connection failed"
|
||||
msgstr "пайваст қатъ шудааст"
|
||||
|
||||
#: ../js/ui/status/network.js:647
|
||||
#: ../js/ui/status/network.js:654
|
||||
msgid "Wi-Fi Networks"
|
||||
msgstr "Шабакаҳои Wi-Fi"
|
||||
|
||||
#: ../js/ui/status/network.js:649
|
||||
#: ../js/ui/status/network.js:656
|
||||
msgid "Select a network"
|
||||
msgstr "Интихоб кардани шабака"
|
||||
|
||||
#: ../js/ui/status/network.js:673
|
||||
#: ../js/ui/status/network.js:680
|
||||
msgid "No Networks"
|
||||
msgstr "Ягон шабака нест"
|
||||
|
||||
#: ../js/ui/status/network.js:942
|
||||
#: ../js/ui/status/network.js:949
|
||||
msgid "Select Network"
|
||||
msgstr "Интихоби шабака"
|
||||
|
||||
#: ../js/ui/status/network.js:1027
|
||||
#: ../js/ui/status/network.js:1034
|
||||
msgid "Turn On"
|
||||
msgstr "Фаъол кардан"
|
||||
|
||||
#: ../js/ui/status/network.js:1160
|
||||
#: ../js/ui/status/network.js:1167
|
||||
msgid "VPN"
|
||||
msgstr "VPN"
|
||||
|
||||
#: ../js/ui/status/network.js:1296
|
||||
#: ../js/ui/status/network.js:1306
|
||||
msgid "Network Manager"
|
||||
msgstr "Мудири шабака"
|
||||
|
||||
#: ../js/ui/status/network.js:1338
|
||||
#: ../js/ui/status/network.js:1345
|
||||
msgid "Connection failed"
|
||||
msgstr "Пайваст қатъ шудааст"
|
||||
|
||||
#: ../js/ui/status/network.js:1339
|
||||
#: ../js/ui/status/network.js:1346
|
||||
msgid "Activation of network connection failed"
|
||||
msgstr "Фаъолсозии пайвасти шабака қатъ шудааст."
|
||||
|
||||
@@ -1556,51 +1561,43 @@ msgstr "Ҳолати ҳавопаймо"
|
||||
msgid "On"
|
||||
msgstr "Фаъол"
|
||||
|
||||
#: ../js/ui/status/system.js:247
|
||||
#: ../js/ui/status/system.js:305
|
||||
msgid "Switch User"
|
||||
msgstr "Таъвизи корбар"
|
||||
|
||||
#: ../js/ui/status/system.js:252
|
||||
#: ../js/ui/status/system.js:310
|
||||
msgid "Log Out"
|
||||
msgstr "Баромад"
|
||||
|
||||
#: ../js/ui/status/system.js:271
|
||||
#: ../js/ui/status/system.js:329
|
||||
msgid "Orientation Lock"
|
||||
msgstr "Қулфи самт"
|
||||
|
||||
#: ../js/ui/status/system.js:279 ../js/ui/status/system.js:377
|
||||
#: ../js/ui/status/system.js:337
|
||||
msgid "Suspend"
|
||||
msgstr "Таваққуф"
|
||||
|
||||
#: ../js/ui/status/system.js:340
|
||||
msgid "Power Off"
|
||||
msgstr "Хомӯш кардан"
|
||||
|
||||
#: ../js/ui/status/system.js:323
|
||||
msgid "Other users are logged in."
|
||||
msgstr "Корбарони дигар ворид шудаанд."
|
||||
|
||||
#: ../js/ui/status/system.js:328
|
||||
msgid "Shutting down might cause them to lose unsaved work."
|
||||
msgstr "Анҷоми кор метавонад сабаби гум шудани кори захиранашуда гардад."
|
||||
|
||||
#. Translators: Remote here refers to a remote session, like a ssh login
|
||||
#: ../js/ui/status/system.js:356
|
||||
#, c-format
|
||||
msgid "%s (remote)"
|
||||
msgstr "%s (дурдаст)"
|
||||
|
||||
#. Translators: Console here refers to a tty like a VT console
|
||||
#: ../js/ui/status/system.js:359
|
||||
#, c-format
|
||||
msgid "%s (console)"
|
||||
msgstr "%s (консол)"
|
||||
|
||||
#: ../js/ui/status/volume.js:124
|
||||
#: ../js/ui/status/volume.js:127
|
||||
msgid "Volume changed"
|
||||
msgstr "Ҳаҷм тағйир ёфт"
|
||||
|
||||
#: ../js/ui/unlockDialog.js:64
|
||||
#: ../js/ui/status/volume.js:162
|
||||
msgid "Volume"
|
||||
msgstr "Баландии садо"
|
||||
|
||||
#: ../js/ui/status/volume.js:213
|
||||
msgid "Microphone"
|
||||
msgstr "Микрофон"
|
||||
|
||||
#: ../js/ui/unlockDialog.js:67
|
||||
msgid "Log in as another user"
|
||||
msgstr "Ворид шудан бо корбари дигар"
|
||||
|
||||
#: ../js/ui/unlockDialog.js:81
|
||||
#: ../js/ui/unlockDialog.js:84
|
||||
msgid "Unlock Window"
|
||||
msgstr "Кушодани равзана"
|
||||
|
||||
@@ -1639,7 +1636,6 @@ msgstr "Шумо мехоҳед, ки ин танзимоти дисплейро
|
||||
#. to avoid ellipsizing the labels.
|
||||
#.
|
||||
#: ../js/ui/windowManager.js:75
|
||||
#| msgid "Power Settings"
|
||||
msgid "Revert Settings"
|
||||
msgstr "Барқарор кардани тағйирот"
|
||||
|
||||
@@ -1714,6 +1710,52 @@ msgstr "Парол бояд холӣ набошад"
|
||||
msgid "Authentication dialog was dismissed by the user"
|
||||
msgstr "Равзанаи гуфтугӯи санҷиши ҳакконият бо корбар бекор карда шуд"
|
||||
|
||||
#~ msgid "Session"
|
||||
#~ msgstr "Ҷаласа"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "Internally used to store the last IM presence explicitly set by the user. "
|
||||
#~ "The value here is from the TpConnectionPresenceType enumeration."
|
||||
#~ msgstr ""
|
||||
#~ "Ба таври дохилӣ барои нигоҳ доштани мавҷудияти охирини IM, ки бо корбар "
|
||||
#~ "ба таври бевосита таъин шудааст, истифода мешавад. Дар ин ҷо қимат аз "
|
||||
#~ "шумориши TpConnectionPresenceType ба вуҷуд меояд."
|
||||
|
||||
#~ msgid ""
|
||||
#~ "Internally used to store the last session presence status for the user. "
|
||||
#~ "The value here is from the GsmPresenceStatus enumeration."
|
||||
#~ msgstr ""
|
||||
#~ "Ба таври дохилӣ барои нигоҳ доштани вазъияти мавҷудияти ҷаласаи охирин "
|
||||
#~ "барои корбар истифода мешавад. Дар ин ҷо қимат аз шумориши "
|
||||
#~ "GsmPresenceStatus ба вуҷуд меояд."
|
||||
|
||||
#~ msgid "Click Log Out to quit these applications and log out of the system."
|
||||
#~ msgstr ""
|
||||
#~ "Барои баромадан аз ин барномаҳо ва баромадан аз система, \"Баромадан\"-ро "
|
||||
#~ "зер кунед."
|
||||
|
||||
#~ msgid "Logging out of the system."
|
||||
#~ msgstr "Баромад аз система."
|
||||
|
||||
#~ msgid "Click Power Off to quit these applications and power off the system."
|
||||
#~ msgstr ""
|
||||
#~ "Барои баромадан аз ин барномаҳо ва анҷом додани кори система, \"Анҷоми кор"
|
||||
#~ "\"-ро зер кунед."
|
||||
|
||||
#~ msgid "Powering off the system."
|
||||
#~ msgstr "Хомӯш кардани система."
|
||||
|
||||
#~ msgid "Click Restart to quit these applications and restart the system."
|
||||
#~ msgstr ""
|
||||
#~ "Барои баромадан аз ин барномаҳо ва бозоғозидани система, \"Бозоғозидан\"-"
|
||||
#~ "ро зер кунед."
|
||||
|
||||
#~ msgid "Restarting the system."
|
||||
#~ msgstr "Бозоғозии система."
|
||||
|
||||
#~ msgid "Shutting down might cause them to lose unsaved work."
|
||||
#~ msgstr "Анҷоми кор метавонад сабаби гум шудани кори захиранашуда гардад."
|
||||
|
||||
#~ msgid "Screenshots"
|
||||
#~ msgstr "Суратҳои экран"
|
||||
|
||||
@@ -1790,18 +1832,12 @@ msgstr "Равзанаи гуфтугӯи санҷиши ҳакконият бо
|
||||
#~ msgid "Power"
|
||||
#~ msgstr "Барқ"
|
||||
|
||||
#~ msgid "Suspend"
|
||||
#~ msgstr "Таваққуф"
|
||||
|
||||
#~ msgid "Restart"
|
||||
#~ msgstr "Бозоғозидан"
|
||||
|
||||
#~ msgid "Volume, network, battery"
|
||||
#~ msgstr "Ҳаҷм, шабака, батарея"
|
||||
|
||||
#~ msgid "Volume"
|
||||
#~ msgstr "Баландии садо"
|
||||
|
||||
#~ msgid "Wi-Fi"
|
||||
#~ msgstr "Wi-Fi"
|
||||
|
||||
@@ -1913,9 +1949,6 @@ msgstr "Равзанаи гуфтугӯи санҷиши ҳакконият бо
|
||||
#~ msgid "Unknown"
|
||||
#~ msgstr "Номаълум"
|
||||
|
||||
#~ msgid "Microphone"
|
||||
#~ msgstr "Микрофон"
|
||||
|
||||
#~ msgid "Available"
|
||||
#~ msgstr "Дастрас"
|
||||
|
||||
@@ -1934,9 +1967,6 @@ msgstr "Равзанаи гуфтугӯи санҷиши ҳакконият бо
|
||||
#~ msgid "Notifications"
|
||||
#~ msgstr "Огоҳиҳо"
|
||||
|
||||
#~ msgid "Install Updates & Restart"
|
||||
#~ msgstr "Насб кардани навсозиҳо ва бозоғозидан"
|
||||
|
||||
#~ msgid "Your chat status will be set to busy"
|
||||
#~ msgstr "Вазъияти чати шумо ба \"машғул\" тағйир дода мешавад"
|
||||
|
||||
|
1293
po/zh_HK.po
1293
po/zh_HK.po
File diff suppressed because it is too large
Load Diff
1310
po/zh_TW.po
1310
po/zh_TW.po
File diff suppressed because it is too large
Load Diff
@@ -1,4 +1,7 @@
|
||||
st_cflags = \
|
||||
-DCLUTTER_ENABLE_EXPERIMENTAL_API \
|
||||
-DCOGL_ENABLE_EXPERIMENTAL_API \
|
||||
-DCOGL_ENABLE_EXPERIMENTAL_2_0_API \
|
||||
-I$(top_srcdir)/src \
|
||||
-DPREFIX=\""$(prefix)"\" \
|
||||
-DLIBDIR=\""$(libdir)"\" \
|
||||
@@ -52,6 +55,7 @@ st_source_h = \
|
||||
st/st-drawing-area.h \
|
||||
st/st-entry.h \
|
||||
st/st-focus-manager.h \
|
||||
st/st-generic-accessible.h \
|
||||
st/st-icon.h \
|
||||
st/st-icon-colors.h \
|
||||
st/st-im-text.h \
|
||||
@@ -120,6 +124,7 @@ st_source_c = \
|
||||
st/st-drawing-area.c \
|
||||
st/st-entry.c \
|
||||
st/st-focus-manager.c \
|
||||
st/st-generic-accessible.c \
|
||||
st/st-icon.c \
|
||||
st/st-icon-colors.c \
|
||||
st/st-im-text.c \
|
||||
|
154
src/Makefile.am
154
src/Makefile.am
@@ -33,23 +33,11 @@ bin_SCRIPTS += gnome-shell-extension-tool gnome-shell-extension-prefs \
|
||||
gnome-shell-perf-tool
|
||||
EXTRA_DIST += gnome-shell-extension-tool.in gnome-shell-extension-prefs.in \
|
||||
gnome-shell-perf-tool.in
|
||||
bin_PROGRAMS = gnome-shell-real
|
||||
bin_PROGRAMS = gnome-shell
|
||||
|
||||
if USE_JHBUILD_WRAPPER_SCRIPT
|
||||
gnome_shell = gnome-shell-jhbuild
|
||||
bin_SCRIPTS += gnome-shell-jhbuild
|
||||
else
|
||||
gnome_shell = gnome-shell-real
|
||||
endif
|
||||
EXTRA_DIST += gnome-shell-jhbuild.in
|
||||
|
||||
noinst_DATA = gnome-shell
|
||||
gnome-shell: $(gnome_shell) Makefile
|
||||
$(AM_V_GEN) cp $< $@.tmp && mv $@.tmp $@
|
||||
install-exec-hook:
|
||||
mv $(DESTDIR)$(bindir)/$(gnome_shell) $(DESTDIR)$(bindir)/gnome-shell
|
||||
uninstall-hook:
|
||||
rm -f $(DESTDIR)$(bindir)/gnome-shell
|
||||
if HAVE_MUTTER_WAYLAND
|
||||
bin_PROGRAMS += gnome-shell-wayland
|
||||
endif HAVE_MUTTER_WAYLAND
|
||||
|
||||
generated_script_substitutions = \
|
||||
-e "s|@bindir[@]|$(bindir)|g" \
|
||||
@@ -63,11 +51,6 @@ generated_script_substitutions = \
|
||||
-e "s|@sysconfdir[@]|$(sysconfdir)|g" \
|
||||
-e "s|@GJS_CONSOLE[@]|$(GJS_CONSOLE)|g"
|
||||
|
||||
gnome-shell-jhbuild: gnome-shell-jhbuild.in gnome-shell-real Makefile
|
||||
$(AM_V_GEN) sed $(generated_script_substitutions) $< > $@.tmp && mv $@.tmp $@ && chmod a+x $@
|
||||
@# Regenerate libtool wrapper so Alt+F2 restart will work
|
||||
@$(LIBTOOL) --mode=execute test -f gnome-shell-real
|
||||
|
||||
gnome-shell-extension-tool: gnome-shell-extension-tool.in Makefile
|
||||
$(AM_V_GEN) sed $(generated_script_substitutions) $< > $@.tmp && mv $@.tmp $@ && chmod a+x $@
|
||||
|
||||
@@ -85,6 +68,9 @@ include Makefile-calendar-server.am
|
||||
include Makefile-hotplug-sniffer.am
|
||||
|
||||
gnome_shell_cflags = \
|
||||
-DCLUTTER_ENABLE_EXPERIMENTAL_API \
|
||||
-DCOGL_ENABLE_EXPERIMENTAL_API \
|
||||
-DCOGL_ENABLE_EXPERIMENTAL_2_0_API \
|
||||
$(GNOME_SHELL_CFLAGS) \
|
||||
-I$(srcdir)/tray \
|
||||
-DVERSION=\"$(VERSION)\" \
|
||||
@@ -93,11 +79,15 @@ gnome_shell_cflags = \
|
||||
-DGNOME_SHELL_LIBEXECDIR=\"$(libexecdir)\" \
|
||||
-DGNOME_SHELL_DATADIR=\"$(pkgdatadir)\" \
|
||||
-DGNOME_SHELL_PKGLIBDIR=\"$(pkglibdir)\" \
|
||||
-DJSDIR=\"$(pkgdatadir)/js\" \
|
||||
-DMUTTER_TYPELIB_DIR=\"$(MUTTER_TYPELIB_DIR)\"
|
||||
-DJSDIR=\"$(pkgdatadir)/js\"
|
||||
|
||||
privlibdir = $(pkglibdir)
|
||||
privlib_LTLIBRARIES = libgnome-shell.la libgnome-shell-js.la
|
||||
privlib_LTLIBRARIES = libgnome-shell-js.la libgnome-shell-menu.la libgnome-shell.la
|
||||
noinst_LTLIBRARIES += libgnome-shell-base.la
|
||||
|
||||
if HAVE_MUTTER_WAYLAND
|
||||
privlib_LTLIBRARIES += libgnome-shell-wayland.la
|
||||
endif HAVE_MUTTER_WAYLAND
|
||||
|
||||
shell_built_sources = \
|
||||
shell-enum-types.h \
|
||||
@@ -128,7 +118,7 @@ shell_public_headers_h = \
|
||||
shell-window-tracker.h \
|
||||
shell-wm.h
|
||||
|
||||
shell_private_sources = \
|
||||
libgnome_shell_menu_la_SOURCES = \
|
||||
gtkactionmuxer.h \
|
||||
gtkactionmuxer.c \
|
||||
gtkactionobservable.h \
|
||||
@@ -141,24 +131,12 @@ shell_private_sources = \
|
||||
gtkmenutracker.h \
|
||||
$(NULL)
|
||||
|
||||
libgnome_shell_la_SOURCES = \
|
||||
$(shell_built_sources) \
|
||||
libgnome_shell_base_la_SOURCES = \
|
||||
$(shell_public_headers_h) \
|
||||
$(shell_private_sources) \
|
||||
shell-app-private.h \
|
||||
shell-app-system-private.h \
|
||||
shell-embedded-window-private.h \
|
||||
shell-global-private.h \
|
||||
shell-window-tracker-private.h \
|
||||
shell-wm-private.h \
|
||||
gnome-shell-plugin.c \
|
||||
shell-app.c \
|
||||
shell-app-system.c \
|
||||
shell-app-usage.c \
|
||||
shell-embedded-window.c \
|
||||
shell-generic-container.c \
|
||||
shell-gtk-embed.c \
|
||||
shell-global.c \
|
||||
shell-invert-lightness-effect.c \
|
||||
shell-keyring-prompt.h \
|
||||
shell-keyring-prompt.c \
|
||||
@@ -169,12 +147,28 @@ libgnome_shell_la_SOURCES = \
|
||||
shell-perf-log.c \
|
||||
shell-polkit-authentication-agent.h \
|
||||
shell-polkit-authentication-agent.c \
|
||||
shell-screenshot.c \
|
||||
shell-secure-text-buffer.c \
|
||||
shell-secure-text-buffer.h \
|
||||
shell-slicer.c \
|
||||
shell-stack.c \
|
||||
shell-tp-client.c \
|
||||
shell-tp-client.c \
|
||||
$(NULL)
|
||||
|
||||
libgnome_shell_sources = \
|
||||
$(shell_built_sources) \
|
||||
$(shell_public_headers_h) \
|
||||
shell-app-private.h \
|
||||
shell-app-system-private.h \
|
||||
shell-global-private.h \
|
||||
shell-window-tracker-private.h \
|
||||
shell-wm-private.h \
|
||||
gnome-shell-plugin.c \
|
||||
shell-app.c \
|
||||
shell-app-system.c \
|
||||
shell-app-usage.c \
|
||||
shell-global.c \
|
||||
shell-gtk-embed.c \
|
||||
shell-screenshot.c \
|
||||
shell-tray-icon.c \
|
||||
shell-tray-manager.c \
|
||||
shell-util.c \
|
||||
@@ -182,14 +176,35 @@ libgnome_shell_la_SOURCES = \
|
||||
shell-wm.c \
|
||||
$(NULL)
|
||||
|
||||
libgnome_shell_la_gir_sources = \
|
||||
$(filter-out %-private.h $(shell_private_sources), $(shell_public_headers_h) $(libgnome_shell_la_SOURCES))
|
||||
libgnome_shell_la_SOURCES = $(libgnome_shell_sources)
|
||||
|
||||
gnome_shell_real_SOURCES = \
|
||||
main.c
|
||||
gnome_shell_real_CPPFLAGS = $(gnome_shell_cflags)
|
||||
gnome_shell_real_LDADD = libgnome-shell.la libgnome-shell-js.la $(libgnome_shell_la_LIBADD)
|
||||
gnome_shell_real_DEPENDENCIES = libgnome-shell.la
|
||||
libgnome_shell_la_gir_sources = \
|
||||
$(filter-out %-private.h $(shell_private_sources), $(shell_public_headers_h) $(libgnome_shell_base_la_SOURCES) $(libgnome_shell_sources))
|
||||
|
||||
gnome_shell_SOURCES = main.c
|
||||
gnome_shell_CPPFLAGS = \
|
||||
-DMUTTER_TYPELIB_DIR=\"$(MUTTER_TYPELIB_DIR)\" \
|
||||
$(MUTTER_CFLAGS) \
|
||||
$(gnome_shell_cflags)
|
||||
|
||||
# Here, and after, we repeat mutter and bluetooth libraries just for the rpath
|
||||
# The dependency is already pulled in by libtool
|
||||
gnome_shell_LDADD = libgnome-shell.la libgnome-shell-js.la $(GNOME_SHELL_LIBS) $(MUTTER_LIBS) $(BLUETOOTH_LIBS)
|
||||
gnome_shell_DEPENDENCIES = libgnome-shell.la
|
||||
|
||||
if HAVE_MUTTER_WAYLAND
|
||||
libgnome_shell_wayland_la_SOURCES = $(libgnome_shell_sources)
|
||||
|
||||
gnome_shell_wayland_SOURCES = main.c
|
||||
gnome_shell_wayland_CPPFLAGS = \
|
||||
-DHAVE_WAYLAND \
|
||||
-DMUTTER_TYPELIB_DIR=\"$(MUTTER_WAYLAND_TYPELIB_DIR)\" \
|
||||
$(MUTTER_WAYLAND_CFLAGS) \
|
||||
$(gnome_shell_cflags)
|
||||
|
||||
gnome_shell_wayland_LDADD = libgnome-shell-wayland.la libgnome-shell-js.la $(GNOME_SHELL_LIBS) $(MUTTER_WAYLAND_LIBS) $(BLUETOOTH_LIBS)
|
||||
gnome_shell_wayland_DEPENDENCIES = libgnome-shell-wayland.la
|
||||
endif HAVE_MUTTER_WAYLAND
|
||||
|
||||
########################################
|
||||
|
||||
@@ -217,14 +232,14 @@ shell_recorder_sources = \
|
||||
# Custom element is an internal detail
|
||||
|
||||
if BUILD_RECORDER
|
||||
libgnome_shell_la_SOURCES += $(shell_recorder_sources)
|
||||
libgnome_shell_sources += $(shell_recorder_sources)
|
||||
|
||||
shell_recorder_private_sources = \
|
||||
shell-recorder-src.c \
|
||||
shell-recorder-src.h \
|
||||
$(NULL)
|
||||
|
||||
shell_private_sources += $(shell_recorder_private_sources)
|
||||
shell_private_sources = $(shell_recorder_private_sources)
|
||||
|
||||
endif BUILD_RECORDER
|
||||
|
||||
@@ -240,8 +255,8 @@ gnome_shell_perf_helper_LDADD = $(SHELL_PERF_HELPER_LIBS)
|
||||
|
||||
noinst_PROGRAMS += run-js-test
|
||||
|
||||
run_js_test_CPPFLAGS = $(gnome_shell_cflags)
|
||||
run_js_test_LDADD = libgnome-shell.la $(libgnome_shell_la_LIBADD)
|
||||
run_js_test_CPPFLAGS = $(MUTTER_CFLAGS) $(gnome_shell_cflags)
|
||||
run_js_test_LDADD = libgnome-shell.la $(GNOME_SHELL_JS_LIBS) $(MUTTER_LIBS) $(BLUETOOTH_LIBS)
|
||||
run_js_test_LDFLAGS = -export-dynamic
|
||||
|
||||
run_js_test_SOURCES = \
|
||||
@@ -271,22 +286,37 @@ shell-enum-types.c: $(srcdir)/shell-enum-types.c.in stamp-shell-enum-types.h
|
||||
rm -f $(@F).tmp
|
||||
EXTRA_DIST += shell-enum-types.c.in
|
||||
|
||||
libgnome_shell_la_LDFLAGS = -avoid-version
|
||||
libgnome_shell_la_LIBADD = \
|
||||
libgnome_shell_ldflags = -avoid-version
|
||||
libgnome_shell_libadd = \
|
||||
-lm \
|
||||
$(GNOME_SHELL_LIBS) \
|
||||
$(BLUETOOTH_LIBS) \
|
||||
libgnome-shell-menu.la \
|
||||
libst-1.0.la \
|
||||
libtray.la \
|
||||
gvc/libgvc.la \
|
||||
$(NULL)
|
||||
|
||||
libgnome_shell_la_CPPFLAGS = $(gnome_shell_cflags)
|
||||
libgnome_shell_menu_la_LDFLAGS = $(libgnome_shell_ldflags)
|
||||
libgnome_shell_menu_la_LIBADD = $(GNOME_SHELL_LIBS)
|
||||
libgnome_shell_menu_la_CPPFLAGS = $(GNOME_SHELL_CFLAGS)
|
||||
|
||||
ShellMenu-0.1.gir: libgnome-shell.la
|
||||
libgnome_shell_base_la_LIBADD = $(libgnome_shell_libadd)
|
||||
libgnome_shell_base_la_CPPFLAGS = $(gnome_shell_cflags)
|
||||
|
||||
libgnome_shell_la_LDFLAGS = $(libgnome_shell_ldflags)
|
||||
libgnome_shell_la_LIBADD = $(GNOME_SHELL_LIBS) $(MUTTER_LIBS) libgnome-shell-base.la
|
||||
libgnome_shell_la_CPPFLAGS = $(MUTTER_CFLAGS) $(gnome_shell_cflags)
|
||||
|
||||
if HAVE_MUTTER_WAYLAND
|
||||
libgnome_shell_wayland_la_LDFLAGS = $(libgnome_shell_ldflags)
|
||||
libgnome_shell_wayland_la_LIBADD = $(MUTTER_WAYLAND_LIBS) libgnome-shell-base.la
|
||||
libgnome_shell_wayland_la_CPPFLAGS = $(MUTTER_WAYLAND_CFLAGS) -DHAVE_WAYLAND $(gnome_shell_cflags)
|
||||
endif HAVE_MUTTER_WAYLAND
|
||||
|
||||
ShellMenu-0.1.gir: libgnome-shell-menu.la
|
||||
ShellMenu_0_1_gir_INCLUDES = Gio-2.0
|
||||
ShellMenu_0_1_gir_CFLAGS = $(libgnome_shell_la_CPPFLAGS) -I $(srcdir)
|
||||
ShellMenu_0_1_gir_LIBS = libgnome-shell.la
|
||||
ShellMenu_0_1_gir_CFLAGS = $(libgnome_shell_menu_la_CPPFLAGS) -I $(srcdir)
|
||||
ShellMenu_0_1_gir_LIBS = libgnome-shell-menu.la
|
||||
ShellMenu_0_1_gir_FILES = \
|
||||
gtkactionmuxer.h \
|
||||
gtkactionmuxer.c \
|
||||
@@ -303,10 +333,14 @@ ShellMenu_0_1_gir_SCANNERFLAGS = \
|
||||
INTROSPECTION_GIRS += ShellMenu-0.1.gir
|
||||
CLEANFILES += ShellMenu-0.1.gir
|
||||
|
||||
Shell-0.1.gir: libgnome-shell.la St-1.0.gir ShellMenu-0.1.gir
|
||||
Shell-0.1.gir: gnome-shell St-1.0.gir ShellMenu-0.1.gir
|
||||
Shell_0_1_gir_INCLUDES = Clutter-1.0 ClutterX11-1.0 Meta-3.0 TelepathyGLib-0.12 Soup-2.4 GMenu-3.0 NetworkManager-1.0 NMClient-1.0
|
||||
Shell_0_1_gir_CFLAGS = $(libgnome_shell_la_CPPFLAGS) -I $(srcdir)
|
||||
Shell_0_1_gir_LIBS = libgnome-shell.la
|
||||
# Hack! we use PROGRAM instead of LIBS so that the soname is not included
|
||||
# in the typelib. This way the symbols will be resolved with the libgnome-shell
|
||||
# linked against the executable (which will be libgnome-shell-wayland for
|
||||
# gnome-shell-wayland)
|
||||
Shell_0_1_gir_PROGRAM = $(builddir)/gnome-shell
|
||||
Shell_0_1_gir_FILES = $(libgnome_shell_la_gir_sources)
|
||||
Shell_0_1_gir_SCANNERFLAGS = \
|
||||
--include-uninstalled=$(builddir)/St-1.0.gir \
|
||||
|
@@ -1,175 +0,0 @@
|
||||
#!@PYTHON@
|
||||
# -*- mode: Python; indent-tabs-mode: nil; -*-
|
||||
|
||||
import optparse
|
||||
import os
|
||||
import re
|
||||
import signal
|
||||
import subprocess
|
||||
import sys
|
||||
import termios
|
||||
|
||||
def show_version(option, opt_str, value, parser):
|
||||
print "GNOME Shell @VERSION@"
|
||||
sys.exit()
|
||||
|
||||
def get_running_session_environs():
|
||||
wanted_environment = ['DBUS_SESSION_BUS_ADDRESS', 'DISPLAY', 'XDG_DATA_DIRS',
|
||||
'XAUTHORITY', 'XDG_SESSION_COOKIE', 'ORBIT_SOCKETDIR',
|
||||
'SESSION_MANAGER']
|
||||
num_re = re.compile('^[0-9]+$')
|
||||
myuid = os.getuid()
|
||||
if not os.path.isdir('/proc'):
|
||||
return {}
|
||||
for filename in os.listdir('/proc'):
|
||||
if not num_re.match(filename):
|
||||
continue
|
||||
piddir = '/proc/' + filename
|
||||
try:
|
||||
stat = os.stat(piddir)
|
||||
except OSError, e:
|
||||
continue
|
||||
if not stat.st_uid == myuid:
|
||||
continue
|
||||
try:
|
||||
f = open(piddir + "/cmdline")
|
||||
command = f.read()
|
||||
f.close()
|
||||
except IOError, e:
|
||||
continue
|
||||
# /proc/cmdline is separated and terminated by NULs
|
||||
command = command.split("\x00")[0]
|
||||
command = os.path.basename(command)
|
||||
if command != 'gnome-session':
|
||||
continue
|
||||
try:
|
||||
f = open(os.path.join(piddir, 'environ'))
|
||||
except OSError, e:
|
||||
continue
|
||||
environ_data = f.read()
|
||||
f.close()
|
||||
# There's a trailing null at the last one, so remove the
|
||||
# empty string
|
||||
environs = environ_data.split('\0')[:-1]
|
||||
# Rumor has it the presence of just FOO (instead of FOO=bar)
|
||||
# represents a deleted environment variable
|
||||
environs = filter(lambda x: '=' in x, environs)
|
||||
# Turn it into a dictionary
|
||||
environs = dict(map(lambda x: x.split('=', 1), environs))
|
||||
result = {}
|
||||
for key in wanted_environment:
|
||||
if key in environs:
|
||||
result[key] = environs[key]
|
||||
return result
|
||||
|
||||
def start_shell():
|
||||
self_dir = os.path.dirname(os.path.abspath(sys.argv[0]))
|
||||
running_from_source_tree = os.path.exists(os.path.join(self_dir, 'gnome-shell-jhbuild.in'))
|
||||
|
||||
# Set up environment
|
||||
env = dict(os.environ)
|
||||
if running_from_source_tree:
|
||||
top_dir = os.path.dirname(self_dir)
|
||||
|
||||
typelib_dir = os.path.join(top_dir, "src")
|
||||
if 'GI_TYPELIB_PATH' in os.environ:
|
||||
typelib_dir += ':%s' % (os.environ['GI_TYPELIB_PATH'],)
|
||||
|
||||
env.update({'GI_TYPELIB_PATH' : typelib_dir,
|
||||
'GNOME_SHELL_JS' : os.path.join(top_dir, "js"),
|
||||
'GNOME_SHELL_DATADIR' : os.path.join(top_dir, "data"),
|
||||
'GSETTINGS_SCHEMA_DIR' : os.path.join(top_dir, "data") })
|
||||
|
||||
args = []
|
||||
if options.debug:
|
||||
debug_command = options.debug_command.split()
|
||||
if running_from_source_tree:
|
||||
args += [os.path.join(top_dir, 'libtool'), '--mode=execute']
|
||||
args += debug_command
|
||||
|
||||
args.append(os.path.join(self_dir, 'gnome-shell-real'))
|
||||
if options.replace:
|
||||
args.append('--replace')
|
||||
if options.sync:
|
||||
args.append('--sync')
|
||||
args += params
|
||||
return subprocess.Popen(args, env=env)
|
||||
|
||||
def run_shell():
|
||||
if options.debug:
|
||||
# Record initial terminal state so we can reset it to that
|
||||
# later, in case we kill gdb at a bad time
|
||||
termattrs = termios.tcgetattr(0);
|
||||
|
||||
normal_exit = False
|
||||
|
||||
if options.verbose:
|
||||
print "Starting shell"
|
||||
|
||||
shell = None
|
||||
try:
|
||||
shell = start_shell()
|
||||
|
||||
# Wait for shell to exit
|
||||
if options.verbose:
|
||||
print "Waiting for shell to exit"
|
||||
shell.wait()
|
||||
|
||||
except KeyboardInterrupt, e:
|
||||
try:
|
||||
os.kill(shell.pid, signal.SIGKILL)
|
||||
except:
|
||||
pass
|
||||
shell.wait()
|
||||
finally:
|
||||
if shell is None:
|
||||
print "Failed to start shell"
|
||||
elif shell.returncode == 0:
|
||||
normal_exit = True
|
||||
if options.verbose:
|
||||
print "Shell exited normally"
|
||||
elif shell.returncode < 0:
|
||||
# Python has no mapping for strsignal; not worth using
|
||||
# ctypes for this.
|
||||
print "Shell killed with signal %d" % - shell.returncode
|
||||
else:
|
||||
# Normal reason here would be losing connection the X server
|
||||
if options.verbose:
|
||||
print "Shell exited with return code %d" % shell.returncode
|
||||
|
||||
if options.debug:
|
||||
termios.tcsetattr(0, termios.TCSANOW, termattrs);
|
||||
|
||||
return normal_exit
|
||||
|
||||
# Main program
|
||||
|
||||
parser = optparse.OptionParser()
|
||||
parser.add_option("-r", "--replace", action="store_true",
|
||||
help="Replace the running metacity/gnome-panel")
|
||||
parser.add_option("-g", "--debug", action="store_true",
|
||||
help="Run under a debugger")
|
||||
parser.add_option("", "--debug-command", metavar="COMMAND",
|
||||
help="Command to use for debugging (defaults to 'gdb --args')")
|
||||
parser.add_option("-v", "--verbose", action="store_true")
|
||||
parser.add_option("", "--sync", action="store_true")
|
||||
parser.add_option("", "--version", action="callback", callback=show_version,
|
||||
help="Display version and exit")
|
||||
|
||||
options, params = parser.parse_args()
|
||||
|
||||
# Handle ssh logins
|
||||
if 'DISPLAY' not in os.environ:
|
||||
running_env = get_running_session_environs()
|
||||
os.environ.update(running_env)
|
||||
|
||||
if options.debug_command:
|
||||
options.debug = True
|
||||
elif options.debug:
|
||||
options.debug_command = "gdb --args"
|
||||
|
||||
normal_exit = run_shell()
|
||||
if normal_exit:
|
||||
sys.exit(0)
|
||||
else:
|
||||
sys.exit(1)
|
@@ -28,8 +28,6 @@
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#define CLUTTER_ENABLE_EXPERIMENTAL_API
|
||||
#define COGL_ENABLE_EXPERIMENTAL_API
|
||||
#include <clutter/clutter.h>
|
||||
#include <clutter/x11/clutter-x11.h>
|
||||
#include <gjs/gjs.h>
|
||||
@@ -324,10 +322,8 @@ static gboolean
|
||||
gnome_shell_plugin_xevent_filter (MetaPlugin *plugin,
|
||||
XEvent *xev)
|
||||
{
|
||||
MetaScreen *screen = meta_plugin_get_screen (plugin);
|
||||
MetaDisplay *display = meta_screen_get_display (screen);
|
||||
|
||||
GnomeShellPlugin *shell_plugin = GNOME_SHELL_PLUGIN (plugin);
|
||||
|
||||
#ifdef GLX_INTEL_swap_event
|
||||
if (shell_plugin->have_swap_event &&
|
||||
xev->type == (shell_plugin->glx_event_base + GLX_BufferSwapComplete))
|
||||
@@ -351,7 +347,7 @@ gnome_shell_plugin_xevent_filter (MetaPlugin *plugin,
|
||||
if (_shell_global_check_xdnd_event (shell_plugin->global, xev))
|
||||
return TRUE;
|
||||
|
||||
return clutter_x11_handle_event (xev) != CLUTTER_X11_FILTER_CONTINUE;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
|
2
src/gvc
2
src/gvc
Submodule src/gvc updated: 6826d0a5fe...e14dbe8aa6
@@ -388,6 +388,7 @@ main (int argc, char **argv)
|
||||
|
||||
ctx = meta_get_option_context ();
|
||||
g_option_context_add_main_entries (ctx, gnome_shell_options, GETTEXT_PACKAGE);
|
||||
g_option_context_add_group (ctx, g_irepository_get_option_group ());
|
||||
if (!g_option_context_parse (ctx, &argc, &argv, &error))
|
||||
{
|
||||
g_printerr ("%s: %s\n", argv[0], error->message);
|
||||
|
@@ -419,14 +419,13 @@ shell_app_usage_init (ShellAppUsage *self)
|
||||
self->currently_idle = FALSE;
|
||||
self->enable_monitoring = FALSE;
|
||||
|
||||
g_object_get (shell_global_get(), "userdatadir", &shell_userdata_dir, NULL),
|
||||
g_object_get (global, "userdatadir", &shell_userdata_dir, NULL),
|
||||
path = g_build_filename (shell_userdata_dir, DATA_FILENAME, NULL);
|
||||
g_free (shell_userdata_dir);
|
||||
self->configfile = g_file_new_for_path (path);
|
||||
g_free (path);
|
||||
restore_from_file (self);
|
||||
|
||||
|
||||
self->privacy_settings = g_settings_new(PRIVACY_SCHEMA);
|
||||
g_signal_connect (self->privacy_settings,
|
||||
"changed::" ENABLE_MONITORING_KEY,
|
||||
|
@@ -217,7 +217,7 @@ typedef struct {
|
||||
ClutterTextDirection direction;
|
||||
} CreateFadedIconData;
|
||||
|
||||
static CoglHandle
|
||||
static CoglTexture *
|
||||
shell_app_create_faded_icon_cpu (StTextureCache *cache,
|
||||
const char *key,
|
||||
void *datap,
|
||||
@@ -227,7 +227,7 @@ shell_app_create_faded_icon_cpu (StTextureCache *cache,
|
||||
ShellApp *app;
|
||||
GdkPixbuf *pixbuf;
|
||||
int size;
|
||||
CoglHandle texture;
|
||||
CoglTexture *texture;
|
||||
gint width, height, rowstride;
|
||||
guint8 n_channels;
|
||||
gboolean have_alpha;
|
||||
@@ -263,13 +263,13 @@ shell_app_create_faded_icon_cpu (StTextureCache *cache,
|
||||
}
|
||||
|
||||
if (info == NULL)
|
||||
return COGL_INVALID_HANDLE;
|
||||
return NULL;
|
||||
|
||||
pixbuf = gtk_icon_info_load_icon (info, NULL);
|
||||
gtk_icon_info_free (info);
|
||||
g_object_unref (info);
|
||||
|
||||
if (pixbuf == NULL)
|
||||
return COGL_INVALID_HANDLE;
|
||||
return NULL;
|
||||
|
||||
width = gdk_pixbuf_get_width (pixbuf);
|
||||
height = gdk_pixbuf_get_height (pixbuf);
|
||||
@@ -338,7 +338,7 @@ shell_app_create_faded_icon_cpu (StTextureCache *cache,
|
||||
ClutterActor *
|
||||
shell_app_get_faded_icon (ShellApp *app, int size, ClutterTextDirection direction)
|
||||
{
|
||||
CoglHandle texture;
|
||||
CoglTexture *texture;
|
||||
ClutterActor *result;
|
||||
char *cache_key;
|
||||
CreateFadedIconData data;
|
||||
@@ -367,7 +367,7 @@ shell_app_get_faded_icon (ShellApp *app, int size, ClutterTextDirection directio
|
||||
NULL);
|
||||
g_free (cache_key);
|
||||
|
||||
if (texture != COGL_INVALID_HANDLE)
|
||||
if (texture != NULL)
|
||||
{
|
||||
result = clutter_texture_new ();
|
||||
clutter_texture_set_cogl_texture (CLUTTER_TEXTURE (result), texture);
|
||||
@@ -771,25 +771,6 @@ shell_app_get_n_windows (ShellApp *app)
|
||||
return g_slist_length (app->running_state->windows);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
shell_app_has_visible_windows (ShellApp *app)
|
||||
{
|
||||
GSList *iter;
|
||||
|
||||
if (app->running_state == NULL)
|
||||
return FALSE;
|
||||
|
||||
for (iter = app->running_state->windows; iter; iter = iter->next)
|
||||
{
|
||||
MetaWindow *window = iter->data;
|
||||
|
||||
if (meta_window_showing_on_its_workspace (window))
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
gboolean
|
||||
shell_app_is_on_workspace (ShellApp *app,
|
||||
MetaWorkspace *workspace)
|
||||
@@ -841,17 +822,13 @@ shell_app_get_last_user_time (ShellApp *app)
|
||||
*
|
||||
* Compare one #ShellApp instance to another, in the following way:
|
||||
* - Running applications sort before not-running applications.
|
||||
* - If one of them has visible windows and the other does not, the one
|
||||
* with visible windows is first.
|
||||
* - Finally, the application which the user interacted with most recently
|
||||
* - The application which the user interacted with most recently
|
||||
* compares earlier.
|
||||
*/
|
||||
int
|
||||
shell_app_compare (ShellApp *app,
|
||||
ShellApp *other)
|
||||
{
|
||||
gboolean vis_app, vis_other;
|
||||
|
||||
if (app->state != other->state)
|
||||
{
|
||||
if (app->state == SHELL_APP_STATE_RUNNING)
|
||||
@@ -859,14 +836,6 @@ shell_app_compare (ShellApp *app,
|
||||
return 1;
|
||||
}
|
||||
|
||||
vis_app = shell_app_has_visible_windows (app);
|
||||
vis_other = shell_app_has_visible_windows (other);
|
||||
|
||||
if (vis_app && !vis_other)
|
||||
return -1;
|
||||
else if (!vis_app && vis_other)
|
||||
return 1;
|
||||
|
||||
if (app->state == SHELL_APP_STATE_RUNNING)
|
||||
{
|
||||
if (app->running_state->windows && !other->running_state->windows)
|
||||
|
@@ -119,6 +119,7 @@ shell_embedded_window_constructor (GType gtype,
|
||||
* idle resize anyways.
|
||||
*/
|
||||
g_object_set (object,
|
||||
"app-paintable", TRUE,
|
||||
"resize-mode", GTK_RESIZE_IMMEDIATE,
|
||||
"type", GTK_WINDOW_POPUP,
|
||||
NULL);
|
||||
|
@@ -1018,8 +1018,6 @@ void
|
||||
shell_global_end_modal (ShellGlobal *global,
|
||||
guint32 timestamp)
|
||||
{
|
||||
ClutterActor *actor;
|
||||
|
||||
if (!global->has_modal)
|
||||
return;
|
||||
|
||||
|
@@ -35,8 +35,6 @@
|
||||
#define SHELL_IS_INVERT_EFFECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SHELL_TYPE_INVERT_LIGHTNESS_EFFECT))
|
||||
#define SHELL_INVERT_LIGHTNESS_EFFECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SHELL_TYPE_INVERT_LIGHTNESS_EFFEC, ShellInvertLightnessEffectClass))
|
||||
|
||||
#define CLUTTER_ENABLE_EXPERIMENTAL_API
|
||||
|
||||
#include "shell-invert-lightness-effect.h"
|
||||
|
||||
#include <cogl/cogl.h>
|
||||
@@ -124,6 +122,7 @@ shell_invert_lightness_effect_paint_target (ClutterOffscreenEffect *effect)
|
||||
ShellInvertLightnessEffect *self = SHELL_INVERT_LIGHTNESS_EFFECT (effect);
|
||||
ClutterActor *actor;
|
||||
guint8 paint_opacity;
|
||||
CoglFramebuffer *fb = cogl_get_draw_framebuffer ();
|
||||
|
||||
actor = clutter_actor_meta_get_actor (CLUTTER_ACTOR_META (effect));
|
||||
paint_opacity = clutter_actor_get_paint_opacity (actor);
|
||||
@@ -133,11 +132,8 @@ shell_invert_lightness_effect_paint_target (ClutterOffscreenEffect *effect)
|
||||
paint_opacity,
|
||||
paint_opacity,
|
||||
paint_opacity);
|
||||
cogl_push_source (self->pipeline);
|
||||
|
||||
cogl_rectangle (0, 0, self->tex_width, self->tex_height);
|
||||
|
||||
cogl_pop_source ();
|
||||
cogl_framebuffer_draw_rectangle (fb, self->pipeline,
|
||||
0, 0, self->tex_width, self->tex_height);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@@ -21,7 +21,6 @@
|
||||
#ifndef __SHELL_INVERT_LIGHTNESS_EFFECT_H__
|
||||
#define __SHELL_INVERT_LIGHTNESS_EFFECT_H__
|
||||
|
||||
#define COGL_ENABLE_EXPERIMENTAL_API
|
||||
#include <clutter/clutter.h>
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
@@ -441,15 +441,19 @@ recorder_record_frame (ShellRecorder *recorder)
|
||||
recorder->last_frame_time = now;
|
||||
|
||||
size = recorder->area.width * recorder->area.height * 4;
|
||||
|
||||
data = g_malloc (recorder->area.width * 4 * recorder->area.height);
|
||||
cogl_read_pixels (recorder->area.x,
|
||||
recorder->area.y,
|
||||
recorder->area.width,
|
||||
recorder->area.height,
|
||||
COGL_READ_PIXELS_COLOR_BUFFER,
|
||||
CLUTTER_CAIRO_FORMAT_ARGB32,
|
||||
data);
|
||||
data = g_malloc (size);
|
||||
if (!cogl_framebuffer_read_pixels (cogl_get_draw_framebuffer (),
|
||||
recorder->area.x,
|
||||
recorder->area.y,
|
||||
recorder->area.width,
|
||||
recorder->area.height,
|
||||
CLUTTER_CAIRO_FORMAT_ARGB32,
|
||||
data))
|
||||
{
|
||||
g_warning ("Could not retrieve pixel data");
|
||||
g_free (data);
|
||||
return;
|
||||
}
|
||||
|
||||
buffer = gst_buffer_new();
|
||||
gst_buffer_insert_memory (buffer, -1,
|
||||
|
@@ -1,8 +1,5 @@
|
||||
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
|
||||
|
||||
#define COGL_ENABLE_EXPERIMENTAL_API
|
||||
#define CLUTTER_ENABLE_EXPERIMENTAL_API
|
||||
|
||||
#include <clutter/clutter.h>
|
||||
#include <cogl/cogl.h>
|
||||
#include <meta/display.h>
|
||||
|
@@ -97,6 +97,7 @@ shell_slicer_paint_child (ShellSlicer *self)
|
||||
float width, height, child_width, child_height;
|
||||
StAlign x_align, y_align;
|
||||
double x_align_factor, y_align_factor;
|
||||
CoglFramebuffer *fb = cogl_get_draw_framebuffer ();
|
||||
|
||||
child = st_bin_get_child (ST_BIN (self));
|
||||
|
||||
@@ -115,18 +116,17 @@ shell_slicer_paint_child (ShellSlicer *self)
|
||||
child_width = child_box.x2 - child_box.x1;
|
||||
child_height = child_box.y2 - child_box.y1;
|
||||
|
||||
cogl_push_matrix ();
|
||||
|
||||
cogl_clip_push_rectangle (0, 0, width, height);
|
||||
cogl_translate ((int)(0.5 + x_align_factor * (width - child_width)),
|
||||
(int)(0.5 + y_align_factor * (height - child_height)),
|
||||
0);
|
||||
cogl_framebuffer_push_matrix (fb);
|
||||
cogl_framebuffer_push_rectangle_clip (fb, 0, 0, width, height);
|
||||
cogl_framebuffer_translate (fb,
|
||||
(int)(0.5 + x_align_factor * (width - child_width)),
|
||||
(int)(0.5 + y_align_factor * (height - child_height)),
|
||||
0);
|
||||
|
||||
clutter_actor_paint (child);
|
||||
|
||||
cogl_clip_pop ();
|
||||
|
||||
cogl_pop_matrix ();
|
||||
cogl_framebuffer_pop_clip (fb);
|
||||
cogl_framebuffer_pop_matrix (fb);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@@ -4,7 +4,6 @@
|
||||
|
||||
#include "shell-tray-icon.h"
|
||||
#include "shell-gtk-embed.h"
|
||||
#include "shell-window-tracker.h"
|
||||
#include "tray/na-tray-child.h"
|
||||
#include <gdk/gdkx.h>
|
||||
#include <X11/Xatom.h>
|
||||
|
@@ -191,10 +191,8 @@ get_app_from_window_wmclass (MetaWindow *window)
|
||||
{
|
||||
ShellApp *app;
|
||||
ShellAppSystem *appsys;
|
||||
char *appid;
|
||||
const char *wm_class;
|
||||
const char *wm_instance;
|
||||
char *with_desktop;
|
||||
|
||||
appsys = shell_app_system_get_default ();
|
||||
|
||||
@@ -372,12 +370,9 @@ static ShellApp *
|
||||
get_app_for_window (ShellWindowTracker *tracker,
|
||||
MetaWindow *window)
|
||||
{
|
||||
ShellAppSystem *app_system;
|
||||
ShellApp *result = NULL;
|
||||
const char *startup_id;
|
||||
|
||||
app_system = shell_app_system_get_default ();
|
||||
|
||||
/* First, we check whether we already know about this window,
|
||||
* if so, just return that.
|
||||
*/
|
||||
|
@@ -189,7 +189,6 @@ st_box_layout_get_property (GObject *object,
|
||||
GValue *value,
|
||||
GParamSpec *pspec)
|
||||
{
|
||||
StBoxLayoutPrivate *priv = ST_BOX_LAYOUT (object)->priv;
|
||||
ClutterLayoutManager *layout;
|
||||
StAdjustment *adjustment;
|
||||
ClutterOrientation orientation;
|
||||
@@ -388,19 +387,20 @@ st_box_layout_paint (ClutterActor *actor)
|
||||
ClutterActorBox allocation_box;
|
||||
ClutterActorBox content_box;
|
||||
ClutterActor *child;
|
||||
CoglFramebuffer *fb = cogl_get_draw_framebuffer ();
|
||||
|
||||
get_border_paint_offsets (self, &x, &y);
|
||||
if (x != 0 || y != 0)
|
||||
{
|
||||
cogl_push_matrix ();
|
||||
cogl_translate ((int)x, (int)y, 0);
|
||||
cogl_framebuffer_push_matrix (fb);
|
||||
cogl_framebuffer_translate (fb, (int)x, (int)y, 0);
|
||||
}
|
||||
|
||||
st_widget_paint_background (ST_WIDGET (actor));
|
||||
|
||||
if (x != 0 || y != 0)
|
||||
{
|
||||
cogl_pop_matrix ();
|
||||
cogl_framebuffer_pop_matrix (fb);
|
||||
}
|
||||
|
||||
if (clutter_actor_get_n_children (actor) == 0)
|
||||
@@ -418,10 +418,11 @@ st_box_layout_paint (ClutterActor *actor)
|
||||
* the borders and background stay in place; after drawing the borders and
|
||||
* background, we clip to the content area */
|
||||
if (priv->hadjustment || priv->vadjustment)
|
||||
cogl_clip_push_rectangle ((int)content_box.x1,
|
||||
(int)content_box.y1,
|
||||
(int)content_box.x2,
|
||||
(int)content_box.y2);
|
||||
cogl_framebuffer_push_rectangle_clip (fb,
|
||||
(int)content_box.x1,
|
||||
(int)content_box.y1,
|
||||
(int)content_box.x2,
|
||||
(int)content_box.y2);
|
||||
|
||||
for (child = clutter_actor_get_first_child (actor);
|
||||
child != NULL;
|
||||
@@ -429,7 +430,7 @@ st_box_layout_paint (ClutterActor *actor)
|
||||
clutter_actor_paint (child);
|
||||
|
||||
if (priv->hadjustment || priv->vadjustment)
|
||||
cogl_clip_pop ();
|
||||
cogl_framebuffer_pop_clip (fb);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -443,19 +444,20 @@ st_box_layout_pick (ClutterActor *actor,
|
||||
ClutterActorBox allocation_box;
|
||||
ClutterActorBox content_box;
|
||||
ClutterActor *child;
|
||||
CoglFramebuffer *fb = cogl_get_draw_framebuffer ();
|
||||
|
||||
get_border_paint_offsets (self, &x, &y);
|
||||
if (x != 0 || y != 0)
|
||||
{
|
||||
cogl_push_matrix ();
|
||||
cogl_translate ((int)x, (int)y, 0);
|
||||
cogl_framebuffer_push_matrix (fb);
|
||||
cogl_framebuffer_translate (fb, (int)x, (int)y, 0);
|
||||
}
|
||||
|
||||
CLUTTER_ACTOR_CLASS (st_box_layout_parent_class)->pick (actor, color);
|
||||
|
||||
if (x != 0 || y != 0)
|
||||
{
|
||||
cogl_pop_matrix ();
|
||||
cogl_framebuffer_pop_matrix (fb);
|
||||
}
|
||||
|
||||
if (clutter_actor_get_n_children (actor) == 0)
|
||||
@@ -470,10 +472,11 @@ st_box_layout_pick (ClutterActor *actor,
|
||||
content_box.y2 += y;
|
||||
|
||||
if (priv->hadjustment || priv->vadjustment)
|
||||
cogl_clip_push_rectangle ((int)content_box.x1,
|
||||
(int)content_box.y1,
|
||||
(int)content_box.x2,
|
||||
(int)content_box.y2);
|
||||
cogl_framebuffer_push_rectangle_clip (fb,
|
||||
(int)content_box.x1,
|
||||
(int)content_box.y1,
|
||||
(int)content_box.x2,
|
||||
(int)content_box.y2);
|
||||
|
||||
for (child = clutter_actor_get_first_child (actor);
|
||||
child != NULL;
|
||||
@@ -481,7 +484,7 @@ st_box_layout_pick (ClutterActor *actor,
|
||||
clutter_actor_paint (child);
|
||||
|
||||
if (priv->hadjustment || priv->vadjustment)
|
||||
cogl_clip_pop ();
|
||||
cogl_framebuffer_pop_clip (fb);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
@@ -531,7 +534,6 @@ st_box_layout_get_paint_volume (ClutterActor *actor,
|
||||
static void
|
||||
st_box_layout_style_changed (StWidget *self)
|
||||
{
|
||||
StBoxLayoutPrivate *priv = ST_BOX_LAYOUT (self)->priv;
|
||||
StThemeNode *theme_node = st_widget_get_theme_node (self);
|
||||
ClutterBoxLayout *layout;
|
||||
double spacing;
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user