Compare commits
132 Commits
Author | SHA1 | Date | |
---|---|---|---|
4c7cc94cdc | |||
5ff2285707 | |||
d714dfd82e | |||
b1064cbe50 | |||
8d3e5ea507 | |||
001b6afc7e | |||
55d6c5ea8f | |||
fa2ff8158f | |||
97e7ea0b5d | |||
65dec2b72a | |||
5fd3ca8d09 | |||
dc9a8d505d | |||
fc8d13f4bd | |||
d1aa7de5d0 | |||
e279ef1c7c | |||
b88657ab83 | |||
d20e646ed6 | |||
8678b87120 | |||
960571a589 | |||
d856338f86 | |||
2b6b2d93a9 | |||
363bd04166 | |||
9bc1a68fe4 | |||
2c2729f7be | |||
9011959356 | |||
c79b8bbe7e | |||
da59eebf8e | |||
7854024326 | |||
a9ab8784c4 | |||
de5b00fd52 | |||
6547f75b12 | |||
827bf506a7 | |||
adc187c32e | |||
5350302b09 | |||
167ca75388 | |||
46cea67258 | |||
463e0919d4 | |||
98906c1da3 | |||
b71e66c335 | |||
2b6c5bb416 | |||
628e59894b | |||
703d2ead33 | |||
43f53a708f | |||
07e7331e7b | |||
c516af3130 | |||
39727d1156 | |||
85cd189a69 | |||
a8e35422f2 | |||
3941961f8b | |||
d9c6485cbf | |||
c52ccc76a3 | |||
be1c4f26b5 | |||
a6ee6739e0 | |||
54a8ad8bc6 | |||
2541bfcdf2 | |||
d7d5da0301 | |||
d2bd9efc25 | |||
779b18bf48 | |||
618a53b34f | |||
f4eaadb948 | |||
ea061b0f46 | |||
3652e42699 | |||
398489f661 | |||
70fc13500d | |||
18541c447e | |||
3294a6e1a7 | |||
38563c38e8 | |||
a465c5f996 | |||
1760ba1279 | |||
3d3c9546a2 | |||
203c5db5eb | |||
cf44234323 | |||
cc94076ffb | |||
8d137eae5b | |||
51fa9ae513 | |||
9951c92459 | |||
ee77e5d582 | |||
d74721f229 | |||
1aa97b19f7 | |||
95de48e986 | |||
a147d0428d | |||
90b3f7b7f6 | |||
c80acfda08 | |||
8a39145e3c | |||
b62f5ef07d | |||
bd5c6c5cd6 | |||
f874a57439 | |||
6a4525e554 | |||
d553a5bdc0 | |||
80076965a7 | |||
84e8d38d4c | |||
33f3f9d997 | |||
be72b1d066 | |||
dc5d2b83ef | |||
3dabe645c2 | |||
e9ede362dc | |||
01357aca35 | |||
c944dd6768 | |||
ff01ed5e4b | |||
d23c374326 | |||
a69ebc8a68 | |||
f4d8a35b9d | |||
2b140f8fb7 | |||
ab603bdbbf | |||
44e2f7f555 | |||
fd1b3b4fee | |||
4ae2a0b2a5 | |||
0cb415b3bd | |||
c1fa9a82e6 | |||
dde124ab5a | |||
668920cec4 | |||
9b38c5b304 | |||
e63c2da433 | |||
38c768fdb3 | |||
0dd4584157 | |||
b7bf712b97 | |||
615723d8df | |||
de352a309d | |||
c573e7f9a1 | |||
d59fd1a75d | |||
18d69d7032 | |||
5d25716cee | |||
840e79c18c | |||
ddf562e306 | |||
20a6ce7003 | |||
8c43298af0 | |||
4bb48e56d2 | |||
338ba10ca2 | |||
36eb745ecc | |||
b07e45e214 | |||
bba5198e63 | |||
9e2bab008a |
13
.gitignore
vendored
13
.gitignore
vendored
@ -21,6 +21,19 @@ data/gnome-shell.desktop.in
|
||||
data/gschemas.compiled
|
||||
data/org.gnome.shell.gschema.xml
|
||||
data/org.gnome.shell.gschema.valid
|
||||
docs/reference/*/*.args
|
||||
docs/reference/*/*.bak
|
||||
docs/reference/*/*.hierarchy
|
||||
docs/reference/*/*.interfaces
|
||||
docs/reference/*/*.prerequisites
|
||||
docs/reference/*/*.sgml
|
||||
docs/reference/*/*.signals
|
||||
docs/reference/*/*.stamp
|
||||
docs/reference/*/*.txt
|
||||
docs/reference/*/*.types
|
||||
docs/reference/*/html/
|
||||
docs/reference/*/xml/
|
||||
gtk-doc.make
|
||||
js/misc/config.js
|
||||
intltool-extract.in
|
||||
intltool-merge.in
|
||||
|
@ -1,7 +1,7 @@
|
||||
# Point to our macro directory and pick up user flags from the environment
|
||||
ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS}
|
||||
|
||||
SUBDIRS = data js src browser-plugin tests po man
|
||||
SUBDIRS = data js src browser-plugin tests po man docs
|
||||
|
||||
EXTRA_DIST = \
|
||||
.project \
|
||||
@ -19,3 +19,5 @@ DIST_EXCLUDE = \
|
||||
distcheck-hook:
|
||||
@echo "Checking disted files against files in git"
|
||||
@$(srcdir)/tools/check-for-missing.py $(srcdir) $(distdir) $(DIST_EXCLUDE)
|
||||
|
||||
DISTCHECK_CONFIGURE_FLAGS = --enable-gtk-doc
|
||||
|
63
NEWS
63
NEWS
@ -1,3 +1,66 @@
|
||||
3.3.2
|
||||
=====
|
||||
* Port D-Bus usage in the shell to GDBus [Giovanni, Marc-Antoine, Florian,
|
||||
Jasper, Matthias; #648651, #658078, #663902, #663941]
|
||||
* Message tray
|
||||
- Add right-click option to chats to mute the conversation [Ana; #659962]
|
||||
- Don't steal the focus when popping up under the pointer [Rui; #661358]
|
||||
* Looking Glass
|
||||
- Add alt-Tab completion [Jason; #661054]
|
||||
- Show errors from extensions in the extensions tab [Jasper; #660546]
|
||||
- Allow switching tabs with <Control>PageUp/PageDown
|
||||
- Theme consistently with the rest of the shell [Jason; 650900]
|
||||
* Extension system
|
||||
- Don't try to load disabled extensions at all [Jasper; #661815, #662704]
|
||||
- Enable and disable plugins in a consistent order [Jasper; #661815, #662704]
|
||||
- Add options to enable/disable extensions to gnome-shell-extension-tool
|
||||
[Jasper; #661815]
|
||||
* Adapt to Mutter change to GSettings [Florian, Matthias; #663429]
|
||||
* Allow creating a new workspace by dragging a window or launcher in the
|
||||
middle of two existing ones [Jasper; #646409]
|
||||
* Allow using Alt-Tab while during drag-and-drop and other operations
|
||||
that grab the pointer [Adel; #660457]
|
||||
* Do a better job of finding the right user to authenticate
|
||||
as when showing a PolKit dialog [Matthias; #651547]
|
||||
* Control the D-Bus Eval() method by the developer-tools GSetting which
|
||||
is used for looking glass and screen recorder. [Jasper; #662891]
|
||||
* Fix browser plugin to work under WebKit-based browser [Jasper; #663823]
|
||||
* Fix certain stacking issues with alt-Tab [Jasper; #660650]
|
||||
* Fixes for GLib deprecations [Jasper; #662011]p
|
||||
* Fixes for GTK+ deprecations [Florian, Rico; #662245]p
|
||||
* Fixes for Clutter deprecations [Jasper; #662627]
|
||||
* Visual improvements and UI tweaks [Florian, Jakub, Jasper;
|
||||
#662800, #658096, #662226]
|
||||
* Hard-code "Home" as the name for the home dir, rather than looking
|
||||
it up via GSettings; avoids schema dependency [Cosimo; #559895]
|
||||
* Don't show "Switch User" on single user machines [Florian; #657011]
|
||||
* Generate documentation for St toolkit [Florian]
|
||||
* Improve marking of strings for translation [Matthias, Piotr; #658664]
|
||||
* Networking menu bug fixes [Giovanni; #650007, #651378, #659277, #663278]
|
||||
* Code cleanups and leak fixes to StTextureCache
|
||||
[Jasper, Florian; #660968, #662998]
|
||||
* Code cleanups [Adel, Florian, Jasper; #662238, #663584]
|
||||
* Build fixes [Adel, Colin, Florian, Ming Han]
|
||||
* Misc bug fixes [Adel, Florian, "Fry", Jasper, Giovanni, Ray, Rui, Stefan;
|
||||
#660520, #661029, #661231, #661623, #661921, #662235, #662236, #662502,
|
||||
#662394, #662799, #662969, #663175, #663277, #663815, #663891, #662967]
|
||||
|
||||
Contributors:
|
||||
Giovanni Campagna, Cosimo Cecchi, Matthias Clasen, Piotr Drąg, Adel Gadllah,
|
||||
Rui Matos, Florian Müllner, Marc-Antoine Perennou, Ana Risteska,
|
||||
Jason Siefken, Jakub Steiner, Ray Strode, Jasper St. Pierre, Ming Han Teh,
|
||||
Rico Tzschichholz, Colin Walters, Stefan Zwanenburg
|
||||
|
||||
Translation:
|
||||
Alexander Shopov [bg], Marek Černocký [cs], Mario Blättermann [de],
|
||||
Kostas Papadimas [el], Bruce Cowan [en_GB], Kristjan Schmidt [eo],
|
||||
Jorge González, Daniel Mustieles, Benjamín Valero Espinosa [es],
|
||||
Mattias Põldaru [et], Arash Mousavi [fa], Ville-Pekka Vainio [fi],
|
||||
Fran Diéguez [gl], Yaron Shahrabani [he], Hideki Yamane [ja],
|
||||
Algimantas Margevičius [lt], Kjartan Maraas [nb], Daniel Nylander [se],
|
||||
Matej Urbančič [sl], Praveen Illa [te], Muhammet Kara [tr],
|
||||
Nguyễn Thái Ngọc Duy [vi], Cheng-Chia Tseng [zh_HK, zh_TW]
|
||||
|
||||
3.2.1
|
||||
=====
|
||||
* Restore the IM state on startup - if you were available in when you logged
|
||||
|
@ -47,8 +47,6 @@ typedef struct {
|
||||
GDBusProxy *proxy;
|
||||
} PluginData;
|
||||
|
||||
/* =============== public entry points =================== */
|
||||
|
||||
static NPNetscapeFuncs funcs;
|
||||
|
||||
static inline gchar *
|
||||
@ -71,10 +69,7 @@ get_string_property (NPP instance,
|
||||
goto out;
|
||||
|
||||
result_str = NPVARIANT_TO_STRING (result);
|
||||
if (strlen (result_str.UTF8Characters) != result_str.UTF8Length)
|
||||
goto out;
|
||||
|
||||
result_copy = g_strdup (result_str.UTF8Characters);
|
||||
result_copy = g_strndup (result_str.UTF8Characters, result_str.UTF8Length);
|
||||
|
||||
out:
|
||||
funcs.releasevariantvalue (&result);
|
||||
@ -150,6 +145,8 @@ check_origin_and_protocol (NPP instance)
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* =============== public entry points =================== */
|
||||
|
||||
NPError
|
||||
NP_Initialize(NPNetscapeFuncs *pfuncs, NPPluginFuncs *plugin)
|
||||
{
|
||||
@ -816,6 +813,11 @@ NPP_GetValue(NPP instance,
|
||||
|
||||
*(NPObject**)value = funcs.createobject (instance, &plugin_class);
|
||||
break;
|
||||
|
||||
case NPPVpluginNeedsXEmbed:
|
||||
*(bool *)value = TRUE;
|
||||
break;
|
||||
|
||||
default:
|
||||
;
|
||||
}
|
||||
|
28
configure.ac
28
configure.ac
@ -1,5 +1,5 @@
|
||||
AC_PREREQ(2.63)
|
||||
AC_INIT([gnome-shell],[3.2.1],[https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell],[gnome-shell])
|
||||
AC_INIT([gnome-shell],[3.3.2],[https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell],[gnome-shell])
|
||||
|
||||
AC_CONFIG_HEADERS([config.h])
|
||||
AC_CONFIG_SRCDIR([src/shell-global.c])
|
||||
@ -36,10 +36,6 @@ AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE",
|
||||
|
||||
PKG_PROG_PKG_CONFIG([0.22])
|
||||
|
||||
# GConf stuff
|
||||
AC_PATH_PROG(GCONFTOOL, gconftool-2, no)
|
||||
AM_GCONF_SOURCE_2
|
||||
|
||||
GLIB_GSETTINGS
|
||||
|
||||
# Get a value to substitute into gnome-shell.in
|
||||
@ -67,10 +63,10 @@ AM_CONDITIONAL(BUILD_RECORDER, $build_recorder)
|
||||
CLUTTER_MIN_VERSION=1.7.5
|
||||
GOBJECT_INTROSPECTION_MIN_VERSION=0.10.1
|
||||
GJS_MIN_VERSION=1.29.18
|
||||
MUTTER_MIN_VERSION=3.2.1
|
||||
MUTTER_MIN_VERSION=3.3.2
|
||||
FOLKS_MIN_VERSION=0.5.2
|
||||
GTK_MIN_VERSION=3.0.0
|
||||
GIO_MIN_VERSION=2.29.10
|
||||
GIO_MIN_VERSION=2.31.0
|
||||
LIBECAL_MIN_VERSION=2.32.0
|
||||
LIBEDATASERVER_MIN_VERSION=1.2.0
|
||||
LIBEDATASERVERUI_MIN_VERSION=2.91.6
|
||||
@ -80,13 +76,13 @@ POLKIT_MIN_VERSION=0.100
|
||||
STARTUP_NOTIFICATION_MIN_VERSION=0.11
|
||||
|
||||
# Collect more than 20 libraries for a prize!
|
||||
PKG_CHECK_MODULES(GNOME_SHELL, gio-2.0 >= $GIO_MIN_VERSION
|
||||
gio-unix-2.0 dbus-glib-1 libxml-2.0
|
||||
PKG_CHECK_MODULES(GNOME_SHELL, gio-unix-2.0 >= $GIO_MIN_VERSION
|
||||
libxml-2.0
|
||||
gtk+-3.0 >= $GTK_MIN_VERSION
|
||||
folks >= $FOLKS_MIN_VERSION
|
||||
libmutter >= $MUTTER_MIN_VERSION
|
||||
gjs-internals-1.0 >= $GJS_MIN_VERSION
|
||||
libgnome-menu-3.0 $recorder_modules gconf-2.0
|
||||
libgnome-menu-3.0 $recorder_modules
|
||||
gdk-x11-3.0 libsoup-2.4
|
||||
clutter-x11-1.0 >= $CLUTTER_MIN_VERSION
|
||||
clutter-glx-1.0 >= $CLUTTER_MIN_VERSION
|
||||
@ -121,7 +117,6 @@ CFLAGS=$saved_CFLAGS
|
||||
LIBS=$saved_LIBS
|
||||
|
||||
PKG_CHECK_MODULES(ST, clutter-1.0 gtk+-3.0 libcroco-0.6 >= 0.6.2 gnome-desktop-3.0 >= 2.90.0 x11)
|
||||
PKG_CHECK_MODULES(GDMUSER, dbus-glib-1 gtk+-3.0)
|
||||
PKG_CHECK_MODULES(TRAY, gtk+-3.0)
|
||||
PKG_CHECK_MODULES(GVC, libpulse libpulse-mainloop-glib gobject-2.0)
|
||||
PKG_CHECK_MODULES(DESKTOP_SCHEMAS, gsettings-desktop-schemas >= 0.1.7)
|
||||
@ -131,6 +126,7 @@ PKG_CHECK_EXISTS([gnome-bluetooth-1.0 >= 3.1.0],
|
||||
[BLUETOOTH_DIR=`$PKG_CONFIG --variable=applet_libdir gnome-bluetooth-1.0`
|
||||
BLUETOOTH_LIBS=`$PKG_CONFIG --variable=applet_libs gnome-bluetooth-1.0`
|
||||
AC_SUBST([BLUETOOTH_LIBS],["$BLUETOOTH_LIBS"])
|
||||
AC_SUBST([BLUETOOTH_DIR],["$BLUETOOTH_DIR"])
|
||||
AC_DEFINE_UNQUOTED([BLUETOOTH_DIR],["$BLUETOOTH_DIR"],[Path to installed GnomeBluetooth typelib and library])
|
||||
AC_DEFINE([HAVE_BLUETOOTH],[1],[Define if you have libgnome-bluetooth-applet])
|
||||
AC_SUBST([HAVE_BLUETOOTH],[1])
|
||||
@ -179,11 +175,13 @@ AC_SUBST(GIRDIR)
|
||||
TYPELIBDIR="$($PKG_CONFIG --variable=typelibdir gobject-introspection-1.0)"
|
||||
AC_SUBST(TYPELIBDIR)
|
||||
|
||||
GTK_DOC_CHECK([1.15], [--flavour no-tmpl])
|
||||
|
||||
# Stay command-line compatible with the gnome-common configure option. Here
|
||||
# minimum/yes/maximum are the same, however.
|
||||
AC_ARG_ENABLE(compile_warnings,
|
||||
AS_HELP_STRING([--enable-compile-warnings=@<:@no/minimum/yes/maximum/error@:>@],[Turn on compiler warnings]),,
|
||||
enable_compile_warnings=error)
|
||||
enable_compile_warnings=maximum)
|
||||
|
||||
changequote(,)dnl
|
||||
if test "$enable_compile_warnings" != no ; then
|
||||
@ -241,6 +239,12 @@ AC_ARG_VAR([BROWSER_PLUGIN_DIR],[Where to install the plugin to])
|
||||
AC_CONFIG_FILES([
|
||||
Makefile
|
||||
data/Makefile
|
||||
docs/Makefile
|
||||
docs/reference/Makefile
|
||||
docs/reference/shell/Makefile
|
||||
docs/reference/shell/shell-docs.sgml
|
||||
docs/reference/st/Makefile
|
||||
docs/reference/st/st-docs.sgml
|
||||
js/Makefile
|
||||
js/misc/config.js
|
||||
src/Makefile
|
||||
|
@ -60,23 +60,14 @@ gschemas.compiled: $(gsettings_SCHEMAS:.xml=.valid)
|
||||
all-local: gschemas.compiled
|
||||
|
||||
|
||||
# GConf schemas: provide defaults for keys from Metacity we are overriding
|
||||
gconfschemadir = @GCONF_SCHEMA_FILE_DIR@
|
||||
gconfschema_DATA = gnome-shell.schemas
|
||||
|
||||
shadersdir = $(pkgdatadir)/shaders
|
||||
shaders_DATA = \
|
||||
shaders/dim-window.glsl
|
||||
|
||||
install-data-local:
|
||||
GCONF_CONFIG_SOURCE=$(GCONF_SCHEMA_CONFIG_SOURCE) $(GCONFTOOL) --makefile-install-rule $(srcdir)/$(gconfschema_DATA)
|
||||
|
||||
|
||||
|
||||
EXTRA_DIST = \
|
||||
gnome-shell.desktop.in.in \
|
||||
$(menu_DATA) \
|
||||
$(gconfschema_DATA) \
|
||||
$(shaders_DATA) \
|
||||
org.gnome.shell.gschema.xml.in
|
||||
|
||||
|
@ -1,100 +0,0 @@
|
||||
<gconfschemafile>
|
||||
<schemalist>
|
||||
|
||||
<!-- Metacity overrides -->
|
||||
<schema>
|
||||
<key>/schemas/desktop/gnome/shell/windows/attach_modal_dialogs</key>
|
||||
<applyto>/desktop/gnome/shell/windows/attach_modal_dialogs</applyto>
|
||||
<owner>gnome-shell</owner>
|
||||
<type>bool</type>
|
||||
<default>true</default>
|
||||
<locale name="C">
|
||||
<short>Attach modal dialog to the parent window</short>
|
||||
<long>
|
||||
This key overrides /apps/mutter/general/attach_modal_dialogs when
|
||||
running GNOME Shell.
|
||||
</long>
|
||||
</locale>
|
||||
</schema>
|
||||
|
||||
<schema>
|
||||
<key>/schemas/desktop/gnome/shell/windows/button_layout</key>
|
||||
<applyto>/desktop/gnome/shell/windows/button_layout</applyto>
|
||||
<owner>gnome-shell</owner>
|
||||
<type>string</type>
|
||||
<default>:close</default>
|
||||
<locale name="C">
|
||||
<short>Arrangement of buttons on the titlebar</short>
|
||||
<long>
|
||||
Arrangement of buttons on the titlebar. The
|
||||
value should be a string, such as
|
||||
"menu:minimize,maximize,spacer,close"; the colon separates the
|
||||
left corner of the window from the right corner, and
|
||||
the button names are comma-separated. Duplicate buttons
|
||||
are not allowed. Unknown button names are silently ignored
|
||||
so that buttons can be added in future gnome-shell versions
|
||||
without breaking older versions.
|
||||
A special spacer tag can be used to insert some space between
|
||||
two adjacent buttons.
|
||||
|
||||
This key overrides /apps/metacity/general/button_layout when
|
||||
running GNOME Shell.
|
||||
</long>
|
||||
</locale>
|
||||
</schema>
|
||||
|
||||
<schema>
|
||||
<key>/schemas/desktop/gnome/shell/windows/edge_tiling</key>
|
||||
<applyto>/desktop/gnome/shell/windows/edge_tiling</applyto>
|
||||
<owner>gnome-shell</owner>
|
||||
<type>bool</type>
|
||||
<default>true</default>
|
||||
<locale name="C">
|
||||
<short>enable edge tiling when dropping windows on screen edges</short>
|
||||
<long>
|
||||
If enabled, dropping windows on vertical screen edges maximizes them
|
||||
vertically and resizes them horizontally to cover half of the
|
||||
available area. Dropping windows on the top screen edge maximizes them
|
||||
completely.
|
||||
|
||||
This key overrides /apps/metacity/general/edge_tiling when
|
||||
running GNOME Shell.
|
||||
</long>
|
||||
</locale>
|
||||
</schema>
|
||||
|
||||
<schema>
|
||||
<key>/schemas/desktop/gnome/shell/windows/theme</key>
|
||||
<applyto>/desktop/gnome/shell/windows/theme</applyto>
|
||||
<owner>gnome-shell</owner>
|
||||
<type>string</type>
|
||||
<default>Adwaita</default>
|
||||
<locale name="C">
|
||||
<short>Current theme</short>
|
||||
<long>
|
||||
The theme determines the appearance of window borders,
|
||||
titlebar, and so forth.
|
||||
|
||||
This key overrides /apps/metacity/general/theme when
|
||||
running GNOME Shell.
|
||||
</long>
|
||||
</locale>
|
||||
</schema>
|
||||
|
||||
<schema>
|
||||
<key>/schemas/desktop/gnome/shell/windows/workspaces_only_on_primary</key>
|
||||
<applyto>/desktop/gnome/shell/windows/workspaces_only_on_primary</applyto>
|
||||
<owner>gnome-shell</owner>
|
||||
<type>bool</type>
|
||||
<default>true</default>
|
||||
<locale name="C">
|
||||
<short>Workspaces only on primary monitor</short>
|
||||
<long>
|
||||
This key overrides /apps/mutter/general/workspaces_only_on_primary when
|
||||
running GNOME Shell.
|
||||
</long>
|
||||
</locale>
|
||||
</schema>
|
||||
|
||||
</schemalist>
|
||||
</gconfschemafile>
|
@ -16,8 +16,9 @@
|
||||
<_summary>Uuids of extensions to enable</_summary>
|
||||
<_description>
|
||||
GNOME Shell extensions have a uuid property; this key lists extensions
|
||||
which should be loaded. disabled-extensions overrides this setting for
|
||||
extensions that appear in both lists.
|
||||
which should be loaded. Any extension that wants to be loaded needs
|
||||
to be in this list. You can also manipulate this list with the
|
||||
EnableExtension and DisableExtension DBus methods on org.gnome.Shell.
|
||||
</_description>
|
||||
</key>
|
||||
<key name="enable-app-monitoring" type="b">
|
||||
@ -141,4 +142,40 @@
|
||||
</_description>
|
||||
</key>
|
||||
</schema>
|
||||
|
||||
<schema id="org.gnome.shell.overrides" path="/org/gnome/shell/overrides/">
|
||||
<key name="attach-modal-dialogs" type="b">
|
||||
<default>true</default>
|
||||
<summary>Attach modal dialog to the parent window</summary>
|
||||
<description>
|
||||
This key overrides the key in org.gnome.mutter when running
|
||||
GNOME Shell.
|
||||
</description>
|
||||
</key>
|
||||
|
||||
<key name="button-layout" type="s">
|
||||
<default>":close"</default>
|
||||
<summary>Arrangement of buttons on the titlebar</summary>
|
||||
<description>
|
||||
This key overrides the key in org.gnome.desktop.wm.preferences when
|
||||
running GNOME Shell.
|
||||
</description>
|
||||
</key>
|
||||
|
||||
<key name="edge-tiling" type="b">
|
||||
<default>true</default>
|
||||
<summary>Enable edge tiling when dropping windows on screen edges</summary>
|
||||
<description>
|
||||
This key overrides the key in org.gnome.mutter when running GNOME Shell.
|
||||
</description>
|
||||
</key>
|
||||
|
||||
<key name="workspaces-only-on-primary" type="b">
|
||||
<default>true</default>
|
||||
<summary>Workspaces only on primary monitor</summary>
|
||||
<description>
|
||||
This key overrides the key in org.gnome.mutter when running GNOME Shell.
|
||||
</description>
|
||||
</key>
|
||||
</schema>
|
||||
</schemalist>
|
||||
|
@ -36,18 +36,18 @@ stage {
|
||||
|
||||
StScrollBar
|
||||
{
|
||||
padding: 0px;
|
||||
padding: 0px;
|
||||
}
|
||||
|
||||
StScrollView.vfade
|
||||
{
|
||||
-st-vfade-offset: 68px;
|
||||
-st-vfade-offset: 68px;
|
||||
}
|
||||
|
||||
StScrollView StScrollBar
|
||||
{
|
||||
min-width: 16px;
|
||||
min-height: 16px;
|
||||
min-width: 16px;
|
||||
min-height: 16px;
|
||||
}
|
||||
|
||||
|
||||
@ -509,8 +509,9 @@ StTooltip StLabel {
|
||||
width: 60px;
|
||||
}
|
||||
|
||||
.dash-placeholder {
|
||||
.placeholder {
|
||||
background-image: url("dash-placeholder.svg");
|
||||
height: 24px;
|
||||
}
|
||||
|
||||
#viewSelector {
|
||||
@ -742,24 +743,24 @@ StTooltip StLabel {
|
||||
}
|
||||
|
||||
.contact-icon {
|
||||
border-radius: 4px;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.contact-details {
|
||||
padding: 6px 8px 11px 8px;
|
||||
padding: 6px 8px 11px 8px;
|
||||
}
|
||||
|
||||
.contact-details-alias {
|
||||
font-size: 16px;
|
||||
padding-bottom: 11px;
|
||||
font-size: 16px;
|
||||
padding-bottom: 11px;
|
||||
}
|
||||
|
||||
.contact-details-status {
|
||||
font-size: 11pt;
|
||||
font-size: 11pt;
|
||||
}
|
||||
|
||||
.contact-details-status-icon {
|
||||
padding-right: 2px;
|
||||
padding-right: 2px;
|
||||
}
|
||||
|
||||
.contact:hover {
|
||||
@ -800,37 +801,45 @@ StTooltip StLabel {
|
||||
|
||||
#LookingGlassDialog
|
||||
{
|
||||
background-color: rgba(0,0,0,0.85);
|
||||
spacing: 4px;
|
||||
padding: 4px;
|
||||
border: 2px solid grey;
|
||||
border-radius: 4px;
|
||||
background-color: rgba(0,0,0,0.80);
|
||||
spacing: 4px;
|
||||
padding: 4px;
|
||||
border: 2px solid grey;
|
||||
border-radius: 4px;
|
||||
|
||||
color: #88ff66;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
#LookingGlassDialog > #Toolbar
|
||||
{
|
||||
border: 1px solid grey;
|
||||
border-radius: 4px;
|
||||
border: 1px solid grey;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
#LookingGlassDialog .labels {
|
||||
spacing: 4px;
|
||||
spacing: 4px;
|
||||
}
|
||||
|
||||
#LookingGlassDialog .notebook-tab {
|
||||
padding: 2px;
|
||||
-natural-hpadding: 12px;
|
||||
-minimum-hpadding: 6px;
|
||||
font-weight: bold;
|
||||
color: #ccc;
|
||||
transition-duration: 100;
|
||||
padding-left: .3em;
|
||||
padding-right: .3em;
|
||||
}
|
||||
|
||||
#LookingGlassDialog .notebook-tab:hover {
|
||||
color: #00ff00;
|
||||
color: white;
|
||||
text-shadow: black 0px 2px 2px;
|
||||
}
|
||||
|
||||
#LookingGlassDialog .notebook-tab:selected {
|
||||
border: 1px solid #88ff66;
|
||||
border-radius: 4px;
|
||||
padding: 5px;
|
||||
border-image: url("panel-button-border.svg") 10 10 0 2;
|
||||
background-image: url("panel-button-highlight-wide.svg");
|
||||
color: white;
|
||||
text-shadow: black 0px 2px 2px;
|
||||
}
|
||||
|
||||
#LookingGlassDialog .lg-inspector-title {
|
||||
@ -840,52 +849,58 @@ StTooltip StLabel {
|
||||
|
||||
.lg-dialog StLabel
|
||||
{
|
||||
color: #88ff66;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
.lg-dialog StEntry
|
||||
{
|
||||
color: #88ff66;
|
||||
selection-background-color: #88ff66;
|
||||
selected-color: black;
|
||||
color: #ffffff;
|
||||
selection-background-color: #bbbbbb;
|
||||
selected-color: #333333;
|
||||
}
|
||||
|
||||
.lg-completions-text
|
||||
{
|
||||
font-size: .9em;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.lg-obj-inspector-title
|
||||
{
|
||||
spacing: 4px;
|
||||
spacing: 4px;
|
||||
}
|
||||
|
||||
.lg-obj-inspector-button
|
||||
{
|
||||
border: 1px solid #88ff66;
|
||||
padding: 4px;
|
||||
border-radius: 4px;
|
||||
border: 1px solid gray;
|
||||
padding: 4px;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.lg-obj-inspector-button:hover
|
||||
{
|
||||
border: 1px solid #00ff00;
|
||||
border: 1px solid #ffffff;
|
||||
}
|
||||
|
||||
.lg-dialog .shell-link
|
||||
{
|
||||
color: #88ff66;
|
||||
color: #999999;
|
||||
}
|
||||
|
||||
.lg-dialog .shell-link:hover
|
||||
{
|
||||
color: #00ff00;
|
||||
color: #dddddd;
|
||||
}
|
||||
|
||||
#LookingGlassDialog StBoxLayout#EvalBox
|
||||
{
|
||||
padding: 4px;
|
||||
spacing: 4px;
|
||||
padding: 4px;
|
||||
spacing: 4px;
|
||||
}
|
||||
|
||||
#LookingGlassDialog StBoxLayout#ResultsArea
|
||||
{
|
||||
spacing: 4px;
|
||||
spacing: 4px;
|
||||
}
|
||||
|
||||
#lookingGlassExtensions {
|
||||
@ -912,11 +927,11 @@ StTooltip StLabel {
|
||||
}
|
||||
|
||||
#LookingGlassPropertyInspector {
|
||||
background: rgba(0, 0, 0, 0.9);
|
||||
background: rgba(0, 0, 0, 0.8);
|
||||
border: 2px solid grey;
|
||||
border-radius: 4px;
|
||||
padding: 6px;
|
||||
color: #88ff66;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
/* Calendar popup */
|
||||
@ -1209,6 +1224,7 @@ StTooltip StLabel {
|
||||
|
||||
#notification-scrollview {
|
||||
max-height: 10em;
|
||||
-st-vfade-offset: 24px;
|
||||
}
|
||||
|
||||
#notification-scrollview > .top-shadow, #notification-scrollview > .bottom-shadow {
|
||||
@ -1251,7 +1267,8 @@ StTooltip StLabel {
|
||||
}
|
||||
|
||||
.notification-icon-button > StIcon {
|
||||
icon-size: 36px;
|
||||
icon-size: 16px;
|
||||
padding: 8px;
|
||||
}
|
||||
|
||||
.hotplug-transient-box {
|
||||
@ -1321,9 +1338,8 @@ StTooltip StLabel {
|
||||
padding: 8px 0;
|
||||
}
|
||||
|
||||
.chat-sent {
|
||||
.chat-received {
|
||||
padding-left: 4px;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.chat-received:rtl {
|
||||
@ -1333,8 +1349,7 @@ StTooltip StLabel {
|
||||
|
||||
.chat-sent {
|
||||
padding-left: 18pt;
|
||||
border-radius: 4px;
|
||||
color: #7E7E7E;
|
||||
color: #959595;
|
||||
}
|
||||
|
||||
.chat-sent:rtl {
|
||||
@ -1344,7 +1359,6 @@ StTooltip StLabel {
|
||||
|
||||
.chat-meta-message {
|
||||
padding-left: 4px;
|
||||
border-radius: 4px;
|
||||
font-size: 9pt;
|
||||
color: #bbbbbb;
|
||||
}
|
||||
@ -1899,6 +1913,7 @@ StTooltip StLabel {
|
||||
background-gradient-end: white;
|
||||
background-gradient-direction: vertical;
|
||||
color: black;
|
||||
selected-color: white;
|
||||
border-radius: 5px;
|
||||
border: 2px solid #555753;
|
||||
}
|
||||
|
1
docs/Makefile.am
Normal file
1
docs/Makefile.am
Normal file
@ -0,0 +1 @@
|
||||
SUBDIRS = reference
|
1
docs/reference/Makefile.am
Normal file
1
docs/reference/Makefile.am
Normal file
@ -0,0 +1 @@
|
||||
SUBDIRS = shell st
|
105
docs/reference/shell/Makefile.am
Normal file
105
docs/reference/shell/Makefile.am
Normal file
@ -0,0 +1,105 @@
|
||||
## Process this file with automake to produce Makefile.in
|
||||
|
||||
# We require automake 1.6 at least.
|
||||
AUTOMAKE_OPTIONS = 1.6
|
||||
|
||||
# This is a blank Makefile.am for using gtk-doc.
|
||||
# Copy this to your project's API docs directory and modify the variables to
|
||||
# suit your project. See the GTK+ Makefiles in gtk+/docs/reference for examples
|
||||
# of using the various options.
|
||||
|
||||
# The name of the module, e.g. 'glib'.
|
||||
DOC_MODULE=shell
|
||||
|
||||
# Uncomment for versioned docs and specify the version of the module, e.g. '2'.
|
||||
#DOC_MODULE_VERSION=2
|
||||
|
||||
|
||||
# The top-level SGML file. You can change this if you want to.
|
||||
DOC_MAIN_SGML_FILE=$(DOC_MODULE)-docs.sgml
|
||||
|
||||
# Directories containing the source code, relative to $(srcdir).
|
||||
# gtk-doc will search all .c and .h files beneath these paths
|
||||
# for inline comments documenting functions and macros.
|
||||
# e.g. DOC_SOURCE_DIR=../../../gtk ../../../gdk
|
||||
DOC_SOURCE_DIR=../../../src
|
||||
|
||||
# Extra options to pass to gtkdoc-scangobj. Not normally needed.
|
||||
SCANGOBJ_OPTIONS=
|
||||
|
||||
# Extra options to supply to gtkdoc-scan.
|
||||
# e.g. SCAN_OPTIONS=--deprecated-guards="GTK_DISABLE_DEPRECATED"
|
||||
SCAN_OPTIONS=--rebuild-types
|
||||
|
||||
# Extra options to supply to gtkdoc-mkdb.
|
||||
# e.g. MKDB_OPTIONS=--xml-mode --output-format=xml
|
||||
MKDB_OPTIONS=--xml-mode --output-format=xml
|
||||
|
||||
# Extra options to supply to gtkdoc-mktmpl
|
||||
# e.g. MKTMPL_OPTIONS=--only-section-tmpl
|
||||
MKTMPL_OPTIONS=
|
||||
|
||||
# Extra options to supply to gtkdoc-mkhtml
|
||||
MKHTML_OPTIONS=
|
||||
|
||||
# Extra options to supply to gtkdoc-fixref. Not normally needed.
|
||||
# e.g. FIXXREF_OPTIONS=--extra-dir=../gdk-pixbuf/html --extra-dir=../gdk/html
|
||||
FIXXREF_OPTIONS=
|
||||
|
||||
# Used for dependencies. The docs will be rebuilt if any of these change.
|
||||
# e.g. HFILE_GLOB=$(top_srcdir)/gtk/*.h
|
||||
# e.g. CFILE_GLOB=$(top_srcdir)/gtk/*.c
|
||||
HFILE_GLOB=$(top_srcdir)/src/*.h
|
||||
CFILE_GLOB=$(top_srcdir)/src/*.c
|
||||
|
||||
# Extra header to include when scanning, which are not under DOC_SOURCE_DIR
|
||||
# e.g. EXTRA_HFILES=$(top_srcdir}/contrib/extra.h
|
||||
EXTRA_HFILES=
|
||||
|
||||
# Header files or dirs to ignore when scanning. Use base file/dir names
|
||||
# e.g. IGNORE_HFILES=gtkdebug.h gtkintl.h private_code
|
||||
IGNORE_HFILES=calendar-server gvc hotplug-sniffer st tray
|
||||
|
||||
# Images to copy into HTML directory.
|
||||
# e.g. HTML_IMAGES=$(top_srcdir)/gtk/stock-icons/stock_about_24.png
|
||||
HTML_IMAGES=
|
||||
|
||||
# Extra SGML files that are included by $(DOC_MAIN_SGML_FILE).
|
||||
# e.g. content_files=running.sgml building.sgml changes-2.0.sgml
|
||||
content_files=
|
||||
|
||||
# SGML files where gtk-doc abbrevations (#GtkWidget) are expanded
|
||||
# These files must be listed here *and* in content_files
|
||||
# e.g. expand_content_files=running.sgml
|
||||
expand_content_files=
|
||||
|
||||
# CFLAGS and LDFLAGS for compiling gtkdoc-scangobj with your library.
|
||||
# Only needed if you are using gtkdoc-scangobj to dynamically query widget
|
||||
# signals and properties.
|
||||
# e.g. GTKDOC_CFLAGS=-I$(top_srcdir) -I$(top_builddir) $(GTK_DEBUG_FLAGS)
|
||||
# e.g. GTKDOC_LIBS=$(top_builddir)/gtk/$(gtktargetlib)
|
||||
GTKDOC_CFLAGS=$(GNOME_SHELL_CFLAGS)
|
||||
GTKDOC_LIBS=$(GNOME_SHELL_LIBS) $(top_builddir)/src/libgnome-shell.la
|
||||
|
||||
# This includes the standard gtk-doc make rules, copied by gtkdocize.
|
||||
include $(top_srcdir)/gtk-doc.make
|
||||
|
||||
# Other files to distribute
|
||||
# e.g. EXTRA_DIST += version.xml.in
|
||||
EXTRA_DIST +=
|
||||
|
||||
# Files not to distribute
|
||||
# for --rebuild-types in $(SCAN_OPTIONS), e.g. $(DOC_MODULE).types
|
||||
# for --rebuild-sections in $(SCAN_OPTIONS) e.g. $(DOC_MODULE)-sections.txt
|
||||
DISTCLEANFILES = $(DOC_MODULES).types
|
||||
|
||||
# Comment this out if you want 'make check' to test you doc status
|
||||
# and run some sanity checks
|
||||
if ENABLE_GTK_DOC
|
||||
TESTS_ENVIRONMENT = cd $(srcdir) && \
|
||||
DOC_MODULE=$(DOC_MODULE) DOC_MAIN_SGML_FILE=$(DOC_MAIN_SGML_FILE) \
|
||||
SRCDIR=$(abs_srcdir) BUILDDIR=$(abs_builddir)
|
||||
#TESTS = $(GTKDOC_CHECK)
|
||||
endif
|
||||
|
||||
-include $(top_srcdir)/git.mk
|
73
docs/reference/shell/shell-docs.sgml.in
Normal file
73
docs/reference/shell/shell-docs.sgml.in
Normal file
@ -0,0 +1,73 @@
|
||||
<?xml version="1.0"?>
|
||||
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd"
|
||||
[
|
||||
<!ENTITY % local.common.attrib "xmlns:xi CDATA #FIXED 'http://www.w3.org/2003/XInclude'">
|
||||
]>
|
||||
<book id="index">
|
||||
<bookinfo>
|
||||
<title>Shell Reference Manual</title>
|
||||
<releaseinfo>
|
||||
for Shell @VERSION@.
|
||||
<!--The latest version of this documentation can be found on-line at
|
||||
<ulink role="online-location" url="http://[SERVER]/shell/index.html">http://[SERVER]/shell/</ulink>.-->
|
||||
</releaseinfo>
|
||||
</bookinfo>
|
||||
|
||||
<chapter>
|
||||
<title>Actors</title>
|
||||
<xi:include href="xml/shell-generic-container.xml"/>
|
||||
<xi:include href="xml/shell-slicer.xml"/>
|
||||
<xi:include href="xml/shell-stack.xml"/>
|
||||
</chapter>
|
||||
<chapter>
|
||||
<title>Application tracking</title>
|
||||
<xi:include href="xml/shell-app.xml"/>
|
||||
<xi:include href="xml/shell-app-usage.xml"/>
|
||||
<xi:include href="xml/shell-window-tracker.xml"/>
|
||||
</chapter>
|
||||
<chapter>
|
||||
<title>Search</title>
|
||||
<xi:include href="xml/shell-app-system.xml"/>
|
||||
<xi:include href="xml/shell-contact-system.xml"/>
|
||||
<xi:include href="xml/shell-doc-system.xml"/>
|
||||
</chapter>
|
||||
<chapter>
|
||||
<title>Tray Icons</title>
|
||||
<xi:include href="xml/shell-embedded-window.xml"/>
|
||||
<xi:include href="xml/shell-gtk-embed.xml"/>
|
||||
<xi:include href="xml/shell-tray-icon.xml"/>
|
||||
<xi:include href="xml/shell-tray-manager.xml"/>
|
||||
</chapter>
|
||||
<chapter>
|
||||
<title>Recorder</title>
|
||||
<xi:include href="xml/shell-recorder.xml"/>
|
||||
<xi:include href="xml/shell-recorder-src.xml"/>
|
||||
</chapter>
|
||||
<chapter>
|
||||
<title>Integration helpers and utilities</title>
|
||||
<xi:include href="xml/shell-global.xml"/>
|
||||
<xi:include href="xml/shell-wm.xml"/>
|
||||
<xi:include href="xml/shell-xfixes-cursor.xml"/>
|
||||
<xi:include href="xml/shell-util.xml"/>
|
||||
<xi:include href="xml/shell-mount-operation.xml"/>
|
||||
<xi:include href="xml/shell-mobile-providers.xml"/>
|
||||
<xi:include href="xml/shell-network-agent.xml"/>
|
||||
<xi:include href="xml/shell-polkit-authentication-agent.xml"/>
|
||||
<xi:include href="xml/shell-tp-client.xml"/>
|
||||
</chapter>
|
||||
<chapter id="object-tree">
|
||||
<title>Object Hierarchy</title>
|
||||
<xi:include href="xml/tree_index.sgml"/>
|
||||
</chapter>
|
||||
<index id="api-index-full">
|
||||
<title>API Index</title>
|
||||
<xi:include href="xml/api-index-full.xml"><xi:fallback /></xi:include>
|
||||
</index>
|
||||
<index id="deprecated-api-index" role="deprecated">
|
||||
<title>Index of deprecated API</title>
|
||||
<xi:include href="xml/api-index-deprecated.xml"><xi:fallback /></xi:include>
|
||||
</index>
|
||||
|
||||
<xi:include href="xml/annotation-glossary.xml"><xi:fallback /></xi:include>
|
||||
</book>
|
105
docs/reference/st/Makefile.am
Normal file
105
docs/reference/st/Makefile.am
Normal file
@ -0,0 +1,105 @@
|
||||
## Process this file with automake to produce Makefile.in
|
||||
|
||||
# We require automake 1.6 at least.
|
||||
AUTOMAKE_OPTIONS = 1.6
|
||||
|
||||
# This is a blank Makefile.am for using gtk-doc.
|
||||
# Copy this to your project's API docs directory and modify the variables to
|
||||
# suit your project. See the GTK+ Makefiles in gtk+/docs/reference for examples
|
||||
# of using the various options.
|
||||
|
||||
# The name of the module, e.g. 'glib'.
|
||||
DOC_MODULE=st
|
||||
|
||||
# Uncomment for versioned docs and specify the version of the module, e.g. '2'.
|
||||
#DOC_MODULE_VERSION=2
|
||||
|
||||
|
||||
# The top-level SGML file. You can change this if you want to.
|
||||
DOC_MAIN_SGML_FILE=$(DOC_MODULE)-docs.sgml
|
||||
|
||||
# Directories containing the source code, relative to $(srcdir).
|
||||
# gtk-doc will search all .c and .h files beneath these paths
|
||||
# for inline comments documenting functions and macros.
|
||||
# e.g. DOC_SOURCE_DIR=../../../gtk ../../../gdk
|
||||
DOC_SOURCE_DIR=../../../src/st
|
||||
|
||||
# Extra options to pass to gtkdoc-scangobj. Not normally needed.
|
||||
SCANGOBJ_OPTIONS=
|
||||
|
||||
# Extra options to supply to gtkdoc-scan.
|
||||
# e.g. SCAN_OPTIONS=--deprecated-guards="GTK_DISABLE_DEPRECATED"
|
||||
SCAN_OPTIONS=--rebuild-types --rebuild-sections
|
||||
|
||||
# Extra options to supply to gtkdoc-mkdb.
|
||||
# e.g. MKDB_OPTIONS=--xml-mode --output-format=xml
|
||||
MKDB_OPTIONS=--xml-mode --output-format=xml
|
||||
|
||||
# Extra options to supply to gtkdoc-mktmpl
|
||||
# e.g. MKTMPL_OPTIONS=--only-section-tmpl
|
||||
MKTMPL_OPTIONS=
|
||||
|
||||
# Extra options to supply to gtkdoc-mkhtml
|
||||
MKHTML_OPTIONS=
|
||||
|
||||
# Extra options to supply to gtkdoc-fixref. Not normally needed.
|
||||
# e.g. FIXXREF_OPTIONS=--extra-dir=../gdk-pixbuf/html --extra-dir=../gdk/html
|
||||
FIXXREF_OPTIONS=
|
||||
|
||||
# Used for dependencies. The docs will be rebuilt if any of these change.
|
||||
# e.g. HFILE_GLOB=$(top_srcdir)/gtk/*.h
|
||||
# e.g. CFILE_GLOB=$(top_srcdir)/gtk/*.c
|
||||
HFILE_GLOB=$(top_srcdir)/src/st/*.h
|
||||
CFILE_GLOB=$(top_srcdir)/src/st/*.c
|
||||
|
||||
# Extra header to include when scanning, which are not under DOC_SOURCE_DIR
|
||||
# e.g. EXTRA_HFILES=$(top_srcdir}/contrib/extra.h
|
||||
EXTRA_HFILES=
|
||||
|
||||
# Header files or dirs to ignore when scanning. Use base file/dir names
|
||||
# e.g. IGNORE_HFILES=gtkdebug.h gtkintl.h private_code
|
||||
IGNORE_HFILES=st-private.h st-theme-node-private.h
|
||||
|
||||
# Images to copy into HTML directory.
|
||||
# e.g. HTML_IMAGES=$(top_srcdir)/gtk/stock-icons/stock_about_24.png
|
||||
HTML_IMAGES=
|
||||
|
||||
# Extra SGML files that are included by $(DOC_MAIN_SGML_FILE).
|
||||
# e.g. content_files=running.sgml building.sgml changes-2.0.sgml
|
||||
content_files=
|
||||
|
||||
# SGML files where gtk-doc abbrevations (#GtkWidget) are expanded
|
||||
# These files must be listed here *and* in content_files
|
||||
# e.g. expand_content_files=running.sgml
|
||||
expand_content_files=
|
||||
|
||||
# CFLAGS and LDFLAGS for compiling gtkdoc-scangobj with your library.
|
||||
# Only needed if you are using gtkdoc-scangobj to dynamically query widget
|
||||
# signals and properties.
|
||||
# e.g. GTKDOC_CFLAGS=-I$(top_srcdir) -I$(top_builddir) $(GTK_DEBUG_FLAGS)
|
||||
# e.g. GTKDOC_LIBS=$(top_builddir)/gtk/$(gtktargetlib)
|
||||
GTKDOC_CFLAGS=
|
||||
GTKDOC_LIBS=$(top_builddir)/src/libst-1.0.la
|
||||
|
||||
# This includes the standard gtk-doc make rules, copied by gtkdocize.
|
||||
include $(top_srcdir)/gtk-doc.make
|
||||
|
||||
# Other files to distribute
|
||||
# e.g. EXTRA_DIST += version.xml.in
|
||||
EXTRA_DIST +=
|
||||
|
||||
# Files not to distribute
|
||||
# for --rebuild-types in $(SCAN_OPTIONS), e.g. $(DOC_MODULE).types
|
||||
# for --rebuild-sections in $(SCAN_OPTIONS) e.g. $(DOC_MODULE)-sections.txt
|
||||
DISTCLEANFILES = $(DOC_MODULE).types $(DOC_MODULE)-sections.txt
|
||||
|
||||
# Comment this out if you want 'make check' to test you doc status
|
||||
# and run some sanity checks
|
||||
if ENABLE_GTK_DOC
|
||||
TESTS_ENVIRONMENT = cd $(srcdir) && \
|
||||
DOC_MODULE=$(DOC_MODULE) DOC_MAIN_SGML_FILE=$(DOC_MAIN_SGML_FILE) \
|
||||
SRCDIR=$(abs_srcdir) BUILDDIR=$(abs_builddir)
|
||||
#TESTS = $(GTKDOC_CHECK)
|
||||
endif
|
||||
|
||||
-include $(top_srcdir)/git.mk
|
68
docs/reference/st/st-docs.sgml.in
Normal file
68
docs/reference/st/st-docs.sgml.in
Normal file
@ -0,0 +1,68 @@
|
||||
<?xml version="1.0"?>
|
||||
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd"
|
||||
[
|
||||
<!ENTITY % local.common.attrib "xmlns:xi CDATA #FIXED 'http://www.w3.org/2003/XInclude'">
|
||||
]>
|
||||
<book id="index">
|
||||
<bookinfo>
|
||||
<title>St Reference Manual</title>
|
||||
<releaseinfo>
|
||||
for St @VERSION@.
|
||||
<!--The latest version of this documentation can be found on-line at
|
||||
<ulink role="online-location" url="http://[SERVER]/st/index.html">http://[SERVER]/st/</ulink>.-->
|
||||
</releaseinfo>
|
||||
</bookinfo>
|
||||
|
||||
<part>
|
||||
<title>API reference</title>
|
||||
<chapter id="base">
|
||||
<title>Abstract classes and Interfaces</title>
|
||||
<xi:include href="xml/st-widget.xml"/>
|
||||
<xi:include href="xml/st-widget-accessible.xml"/>
|
||||
<xi:include href="xml/st-container.xml"/>
|
||||
<xi:include href="xml/st-scrollable.xml"/>
|
||||
</chapter>
|
||||
<chapter id="widgets">
|
||||
<title>Widgets</title>
|
||||
<xi:include href="xml/st-button.xml"/>
|
||||
<xi:include href="xml/st-drawing-area.xml"/>
|
||||
<xi:include href="xml/st-entry.xml"/>
|
||||
<xi:include href="xml/st-icon.xml"/>
|
||||
<xi:include href="xml/st-label.xml"/>
|
||||
<xi:include href="xml/st-tooltip.xml"/>
|
||||
</chapter>
|
||||
<chapter id="containers">
|
||||
<title>Containers</title>
|
||||
<xi:include href="xml/st-bin.xml"/>
|
||||
<xi:include href="xml/st-box-layout.xml"/>
|
||||
<xi:include href="xml/st-group.xml"/>
|
||||
<xi:include href="xml/st-overflow-box.xml"/>
|
||||
<xi:include href="xml/st-scroll-view.xml"/>
|
||||
<xi:include href="xml/st-table.xml"/>
|
||||
</chapter>
|
||||
|
||||
<chapter id="styling">
|
||||
<title>Styling</title>
|
||||
<xi:include href="xml/st-theme.xml"/>
|
||||
<xi:include href="xml/st-theme-context.xml"/>
|
||||
<xi:include href="xml/st-theme-node.xml"/>
|
||||
<xi:include href="xml/st-theme-node-transition.xml"/>
|
||||
<xi:include href="xml/st-texture-cache.xml"/>
|
||||
</chapter>
|
||||
</part>
|
||||
<chapter id="object-tree">
|
||||
<title>Object Hierarchy</title>
|
||||
<xi:include href="xml/tree_index.sgml"/>
|
||||
</chapter>
|
||||
<index id="api-index-full">
|
||||
<title>API Index</title>
|
||||
<xi:include href="xml/api-index-full.xml"><xi:fallback /></xi:include>
|
||||
</index>
|
||||
<index id="deprecated-api-index" role="deprecated">
|
||||
<title>Index of deprecated API</title>
|
||||
<xi:include href="xml/api-index-deprecated.xml"><xi:fallback /></xi:include>
|
||||
</index>
|
||||
|
||||
<xi:include href="xml/annotation-glossary.xml"><xi:fallback /></xi:include>
|
||||
</book>
|
@ -13,6 +13,7 @@ nobase_dist_js_DATA = \
|
||||
misc/format.js \
|
||||
misc/gnomeSession.js \
|
||||
misc/history.js \
|
||||
misc/jsParse.js \
|
||||
misc/modemManager.js \
|
||||
misc/params.js \
|
||||
misc/screenSaver.js \
|
||||
|
@ -844,7 +844,7 @@ LoginDialog.prototype = {
|
||||
x_fill: true,
|
||||
y_fill: false,
|
||||
x_align: St.Align.START });
|
||||
// translators: this message is shown below the password entry field
|
||||
// Translators: this message is shown below the password entry field
|
||||
// to indicate the user can swipe their finger instead
|
||||
this._promptFingerprintMessage = new St.Label({ text: _("(or swipe finger)"),
|
||||
style_class: 'login-dialog-prompt-fingerprint-message' });
|
||||
@ -864,6 +864,9 @@ LoginDialog.prototype = {
|
||||
x_align: St.Align.START });
|
||||
this._promptBox.hide();
|
||||
|
||||
// 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.
|
||||
let notListedLabel = new St.Label({ text: _("Not listed?"),
|
||||
style_class: 'login-dialog-not-listed-label' });
|
||||
this._notListedButton = new St.Button({ style_class: 'login-dialog-not-listed-button',
|
||||
|
@ -1,20 +1,18 @@
|
||||
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
|
||||
|
||||
const DBus = imports.dbus;
|
||||
const Gio = imports.gi.Gio;
|
||||
const Lang = imports.lang;
|
||||
const Signals = imports.signals;
|
||||
|
||||
const PresenceIface = {
|
||||
name: 'org.gnome.SessionManager.Presence',
|
||||
methods: [{ name: 'SetStatus',
|
||||
inSignature: 'u',
|
||||
outSignature: '' }],
|
||||
properties: [{ name: 'status',
|
||||
signature: 'u',
|
||||
access: 'readwrite' }],
|
||||
signals: [{ name: 'StatusChanged',
|
||||
inSignature: 'u' }]
|
||||
};
|
||||
const PresenceIface = <interface name="org.gnome.SessionManager.Presence">
|
||||
<method name="SetStatus">
|
||||
<arg type="u" direction="in"/>
|
||||
</method>
|
||||
<property name="status" type="u" access="readwrite"/>
|
||||
<signal name="StatusChanged">
|
||||
<arg type="u" direction="out"/>
|
||||
</signal>
|
||||
</interface>;
|
||||
|
||||
const PresenceStatus = {
|
||||
AVAILABLE: 0,
|
||||
@ -23,104 +21,41 @@ const PresenceStatus = {
|
||||
IDLE: 3
|
||||
};
|
||||
|
||||
function Presence() {
|
||||
this._init();
|
||||
var PresenceProxy = Gio.DBusProxy.makeProxyWrapper(PresenceIface);
|
||||
function Presence(initCallback, cancellable) {
|
||||
return new PresenceProxy(Gio.DBus.session, 'org.gnome.SessionManager',
|
||||
'/org/gnome/SessionManager/Presence', initCallback, cancellable);
|
||||
}
|
||||
|
||||
Presence.prototype = {
|
||||
_init: function() {
|
||||
DBus.session.proxifyObject(this, 'org.gnome.SessionManager', '/org/gnome/SessionManager/Presence', this);
|
||||
},
|
||||
|
||||
getStatus: function(callback) {
|
||||
this.GetRemote('status', Lang.bind(this,
|
||||
function(status, ex) {
|
||||
if (!ex)
|
||||
callback(this, status);
|
||||
}));
|
||||
},
|
||||
|
||||
setStatus: function(status) {
|
||||
this.SetStatusRemote(status);
|
||||
}
|
||||
};
|
||||
DBus.proxifyPrototype(Presence.prototype, PresenceIface);
|
||||
|
||||
// Note inhibitors are immutable objects, so they don't
|
||||
// change at runtime (changes always come in the form
|
||||
// of new inhibitors)
|
||||
const InhibitorIface = {
|
||||
name: 'org.gnome.SessionManager.Inhibitor',
|
||||
properties: [{ name: 'app_id',
|
||||
signature: 's',
|
||||
access: 'readonly' },
|
||||
{ name: 'client_id',
|
||||
signature: 's',
|
||||
access: 'readonly' },
|
||||
{ name: 'reason',
|
||||
signature: 's',
|
||||
access: 'readonly' },
|
||||
{ name: 'flags',
|
||||
signature: 'u',
|
||||
access: 'readonly' },
|
||||
{ name: 'toplevel_xid',
|
||||
signature: 'u',
|
||||
access: 'readonly' },
|
||||
{ name: 'cookie',
|
||||
signature: 'u',
|
||||
access: 'readonly' }],
|
||||
};
|
||||
const InhibitorIface = <interface name="org.gnome.SessionManager.Inhibitor">
|
||||
<property name="app_id" type="s" access="read" />
|
||||
<property name="client_id" type="s" access="read" />
|
||||
<property name="reason" type="s" access="read" />
|
||||
<property name="flags" type="u" access="read" />
|
||||
<property name="toplevel_xid" type="u" access="read" />
|
||||
<property name="cookie" type="u" access="read" />
|
||||
</interface>;
|
||||
|
||||
function Inhibitor(objectPath) {
|
||||
this._init(objectPath);
|
||||
var InhibitorProxy = Gio.DBusProxy.makeProxyWrapper(InhibitorIface);
|
||||
function Inhibitor(objectPath, initCallback, cancellable) {
|
||||
return new InhibitorProxy(Gio.DBus.session, 'org.gnome.SessionManager', objectPath, initCallback, cancellable);
|
||||
}
|
||||
|
||||
Inhibitor.prototype = {
|
||||
_init: function(objectPath) {
|
||||
DBus.session.proxifyObject(this,
|
||||
'org.gnome.SessionManager',
|
||||
objectPath);
|
||||
this.isLoaded = false;
|
||||
this._loadingPropertiesCount = InhibitorIface.properties.length;
|
||||
for (let i = 0; i < InhibitorIface.properties.length; i++) {
|
||||
let propertyName = InhibitorIface.properties[i].name;
|
||||
this.GetRemote(propertyName, Lang.bind(this,
|
||||
function(value, exception) {
|
||||
if (exception)
|
||||
return;
|
||||
|
||||
this[propertyName] = value;
|
||||
this._loadingPropertiesCount--;
|
||||
|
||||
if (this._loadingPropertiesCount == 0) {
|
||||
this.isLoaded = true;
|
||||
this.emit('is-loaded');
|
||||
}
|
||||
}));
|
||||
}
|
||||
},
|
||||
};
|
||||
DBus.proxifyPrototype(Inhibitor.prototype, InhibitorIface);
|
||||
Signals.addSignalMethods(Inhibitor.prototype);
|
||||
|
||||
|
||||
// Not the full interface, only the methods we use
|
||||
const SessionManagerIface = {
|
||||
name: 'org.gnome.SessionManager',
|
||||
methods: [
|
||||
{ name: 'Logout', inSignature: 'u', outSignature: '' },
|
||||
{ name: 'Shutdown', inSignature: '', outSignature: '' },
|
||||
{ name: 'CanShutdown', inSignature: '', outSignature: 'b' }
|
||||
]
|
||||
};
|
||||
const SessionManagerIface = <interface name="org.gnome.SessionManager">
|
||||
<method name="Logout">
|
||||
<arg type="u" direction="in" />
|
||||
</method>
|
||||
<method name="Shutdown" />
|
||||
<method name="CanShutdown">
|
||||
<arg type="b" direction="out" />
|
||||
</method>
|
||||
</interface>;
|
||||
|
||||
function SessionManager() {
|
||||
this._init();
|
||||
var SessionManagerProxy = Gio.DBusProxy.makeProxyWrapper(SessionManagerIface);
|
||||
function SessionManager(initCallback, cancellable) {
|
||||
return new SessionManagerProxy(Gio.DBus.session, 'org.gnome.SessionManager', '/org/gnome/SessionManager', initCallback, cancellable);
|
||||
}
|
||||
|
||||
SessionManager.prototype = {
|
||||
_init: function() {
|
||||
DBus.session.proxifyObject(this, 'org.gnome.SessionManager', '/org/gnome/SessionManager');
|
||||
}
|
||||
};
|
||||
DBus.proxifyPrototype(SessionManager.prototype, SessionManagerIface);
|
246
js/misc/jsParse.js
Normal file
246
js/misc/jsParse.js
Normal file
@ -0,0 +1,246 @@
|
||||
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
|
||||
|
||||
// Returns a list of potential completions for text. Completions either
|
||||
// follow a dot (e.g. foo.ba -> bar) or they are picked from globalCompletionList (e.g. fo -> foo)
|
||||
// commandHeader is prefixed on any expression before it is eval'ed. It will most likely
|
||||
// consist of global constants that might not carry over from the calling environment.
|
||||
//
|
||||
// This function is likely the one you want to call from external modules
|
||||
function getCompletions(text, commandHeader, globalCompletionList) {
|
||||
let methods = [];
|
||||
let expr, base;
|
||||
let attrHead = '';
|
||||
if (globalCompletionList == null) {
|
||||
globalCompletionList = [];
|
||||
}
|
||||
|
||||
let offset = getExpressionOffset(text, text.length - 1);
|
||||
if (offset >= 0) {
|
||||
text = text.slice(offset);
|
||||
|
||||
// Look for expressions like "Main.panel.foo" and match Main.panel and foo
|
||||
let matches = text.match(/(.*)\.(.*)/);
|
||||
if (matches) {
|
||||
[expr, base, attrHead] = matches;
|
||||
|
||||
methods = getPropertyNamesFromExpression(base, commandHeader).filter(function(attr) {
|
||||
return attr.slice(0, attrHead.length) == attrHead;
|
||||
});
|
||||
}
|
||||
|
||||
// Look for the empty expression or partially entered words
|
||||
// not proceeded by a dot and match them against global constants
|
||||
matches = text.match(/^(\w*)$/);
|
||||
if (text == '' || matches) {
|
||||
[expr, attrHead] = matches;
|
||||
methods = globalCompletionList.filter(function(attr) {
|
||||
return attr.slice(0, attrHead.length) == attrHead;
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
return [methods, attrHead];
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// A few functions for parsing strings of javascript code.
|
||||
//
|
||||
|
||||
// Identify characters that delimit an expression. That is,
|
||||
// if we encounter anything that isn't a letter, '.', ')', or ']',
|
||||
// we should stop parsing.
|
||||
function isStopChar(c) {
|
||||
return !c.match(/[\w\.\)\]]/);
|
||||
}
|
||||
|
||||
// Given the ending position of a quoted string, find where it starts
|
||||
function findMatchingQuote(expr, offset) {
|
||||
let quoteChar = expr.charAt(offset);
|
||||
for (let i = offset - 1; i >= 0; --i) {
|
||||
if (expr.charAt(i) == quoteChar && expr.charAt(i-1) != '\\'){
|
||||
return i;
|
||||
}
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
// Given the ending position of a regex, find where it starts
|
||||
function findMatchingSlash(expr, offset) {
|
||||
for (let i = offset - 1; i >= 0; --i) {
|
||||
if (expr.charAt(i) == '/' && expr.charAt(i-1) != '\\'){
|
||||
return i;
|
||||
}
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
// If expr.charAt(offset) is ')' or ']',
|
||||
// return the position of the corresponding '(' or '[' bracket.
|
||||
// This function does not check for syntactic correctness. e.g.,
|
||||
// findMatchingBrace("[(])", 3) returns 1.
|
||||
function findMatchingBrace(expr, offset) {
|
||||
let closeBrace = expr.charAt(offset);
|
||||
let openBrace = ({')': '(', ']': '['})[closeBrace];
|
||||
|
||||
function findTheBrace(expr, offset) {
|
||||
if (offset < 0) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (expr.charAt(offset) == openBrace) {
|
||||
return offset;
|
||||
}
|
||||
if (expr.charAt(offset).match(/['"]/)) {
|
||||
return findTheBrace(expr, findMatchingQuote(expr, offset) - 1);
|
||||
}
|
||||
if (expr.charAt(offset) == '/') {
|
||||
return findTheBrace(expr, findMatchingSlash(expr, offset) - 1);
|
||||
}
|
||||
if (expr.charAt(offset) == closeBrace) {
|
||||
return findTheBrace(expr, findTheBrace(expr, offset - 1) - 1);
|
||||
}
|
||||
|
||||
return findTheBrace(expr, offset - 1);
|
||||
|
||||
}
|
||||
|
||||
return findTheBrace(expr, offset - 1);
|
||||
}
|
||||
|
||||
// Walk expr backwards from offset looking for the beginning of an
|
||||
// expression suitable for passing to eval.
|
||||
// There is no guarantee of correct javascript syntax between the return
|
||||
// value and offset. This function is meant to take a string like
|
||||
// "foo(Obj.We.Are.Completing" and allow you to extract "Obj.We.Are.Completing"
|
||||
function getExpressionOffset(expr, offset) {
|
||||
while (offset >= 0) {
|
||||
let currChar = expr.charAt(offset);
|
||||
|
||||
if (isStopChar(currChar)){
|
||||
return offset + 1;
|
||||
}
|
||||
|
||||
if (currChar.match(/[\)\]]/)) {
|
||||
offset = findMatchingBrace(expr, offset);
|
||||
}
|
||||
|
||||
--offset;
|
||||
}
|
||||
|
||||
return offset + 1;
|
||||
}
|
||||
|
||||
// Things with non-word characters or that start with a number
|
||||
// are not accessible via .foo notation and so aren't returned
|
||||
function isValidPropertyName(w) {
|
||||
return !(w.match(/\W/) || w.match(/^\d/));
|
||||
}
|
||||
|
||||
// To get all properties (enumerable and not), we need to walk
|
||||
// the prototype chain ourselves
|
||||
function getAllProps(obj) {
|
||||
if (obj === null || obj === undefined) {
|
||||
return [];
|
||||
}
|
||||
return Object.getOwnPropertyNames(obj).concat( getAllProps(Object.getPrototypeOf(obj)) );
|
||||
}
|
||||
|
||||
// Given a string _expr_, returns all methods
|
||||
// that can be accessed via '.' notation.
|
||||
// e.g., expr="({ foo: null, bar: null, 4: null })" will
|
||||
// return ["foo", "bar", ...] but the list will not include "4",
|
||||
// since methods accessed with '.' notation must star with a letter or _.
|
||||
function getPropertyNamesFromExpression(expr, commandHeader) {
|
||||
if (commandHeader == null) {
|
||||
commandHeader = '';
|
||||
}
|
||||
|
||||
let obj = {};
|
||||
if (!isUnsafeExpression(expr)) {
|
||||
try {
|
||||
obj = eval(commandHeader + expr);
|
||||
} catch (e) {
|
||||
return [];
|
||||
}
|
||||
} else {
|
||||
return [];
|
||||
}
|
||||
|
||||
let propsUnique = {};
|
||||
if (typeof obj === 'object'){
|
||||
let allProps = getAllProps(obj);
|
||||
// Get only things we are allowed to complete following a '.'
|
||||
allProps = allProps.filter( isValidPropertyName );
|
||||
|
||||
// Make sure propsUnique contains one key for every
|
||||
// property so we end up with a unique list of properties
|
||||
allProps.map(function(p){ propsUnique[p] = null; });
|
||||
}
|
||||
return Object.keys(propsUnique).sort();
|
||||
}
|
||||
|
||||
// Given a list of words, returns the longest prefix they all have in common
|
||||
function getCommonPrefix(words) {
|
||||
let word = words[0];
|
||||
for (let i = 0; i < word.length; i++) {
|
||||
for (let w = 1; w < words.length; w++) {
|
||||
if (words[w].charAt(i) != word.charAt(i))
|
||||
return word.slice(0, i);
|
||||
}
|
||||
}
|
||||
return word;
|
||||
}
|
||||
|
||||
// Returns true if there is reason to think that eval(str)
|
||||
// will modify the global scope
|
||||
function isUnsafeExpression(str) {
|
||||
// Remove any blocks that are quoted or are in a regex
|
||||
function removeLiterals(str) {
|
||||
if (str.length == 0) {
|
||||
return '';
|
||||
}
|
||||
|
||||
let currChar = str.charAt(str.length - 1);
|
||||
if (currChar == '"' || currChar == '\'') {
|
||||
return removeLiterals(str.slice(0, findMatchingQuote(str, str.length - 1)));
|
||||
} else if (currChar == '/') {
|
||||
return removeLiterals(str.slice(0, findMatchingSlash(str, str.length - 1)));
|
||||
}
|
||||
|
||||
return removeLiterals(str.slice(0, str.length - 1)) + currChar;
|
||||
}
|
||||
|
||||
// Check for any sort of assignment
|
||||
// The strategy used is dumb: remove any quotes
|
||||
// or regexs and comparison operators and see if there is an '=' character.
|
||||
// If there is, it might be an unsafe assignment.
|
||||
|
||||
let prunedStr = removeLiterals(str);
|
||||
prunedStr = prunedStr.replace(/[=!]==/g, ''); //replace === and !== with nothing
|
||||
prunedStr = prunedStr.replace(/[=<>!]=/g, ''); //replace ==, <=, >=, != with nothing
|
||||
|
||||
if (prunedStr.match(/=/)) {
|
||||
return true;
|
||||
} else if (prunedStr.match(/;/)) {
|
||||
// If we contain a semicolon not inside of a quote/regex, assume we're unsafe as well
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
// Returns a list of global keywords derived from str
|
||||
function getDeclaredConstants(str) {
|
||||
let ret = [];
|
||||
str.split(';').forEach(function(s) {
|
||||
let base, keyword;
|
||||
let match = s.match(/const\s+(\w+)\s*=/);
|
||||
if (match) {
|
||||
[base, keyword] = match;
|
||||
ret.push(keyword);
|
||||
}
|
||||
});
|
||||
|
||||
return ret;
|
||||
}
|
@ -1,6 +1,6 @@
|
||||
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
|
||||
|
||||
const DBus = imports.dbus;
|
||||
const Gio = imports.gi.Gio;
|
||||
const Lang = imports.lang;
|
||||
const Shell = imports.gi.Shell;
|
||||
const Signals = imports.signals;
|
||||
@ -8,33 +8,43 @@ const Signals = imports.signals;
|
||||
// The following are not the complete interfaces, just the methods we need
|
||||
// (or may need in the future)
|
||||
|
||||
const ModemGsmNetworkInterface = {
|
||||
name: 'org.freedesktop.ModemManager.Modem.Gsm.Network',
|
||||
methods: [
|
||||
{ name: 'GetRegistrationInfo', inSignature: '', outSignature: 'uss' },
|
||||
{ name: 'GetSignalQuality', inSignature: '', outSignature: 'u' }
|
||||
],
|
||||
properties: [
|
||||
{ name: 'AccessTechnology', signature: 'u', access: 'read' }
|
||||
],
|
||||
signals: [
|
||||
{ name: 'SignalQuality', inSignature: 'u' },
|
||||
{ name: 'RegistrationInfo', inSignature: 'uss' }
|
||||
]
|
||||
};
|
||||
const ModemGsmNetworkProxy = DBus.makeProxyClass(ModemGsmNetworkInterface);
|
||||
const ModemGsmNetworkInterface = <interface name="org.freedesktop.ModemManager.Modem.Gsm.Network">
|
||||
<method name="GetRegistrationInfo">
|
||||
<arg type="u" direction="out" />
|
||||
<arg type="s" direction="out" />
|
||||
<arg type="s" direction="out" />
|
||||
</method>
|
||||
<method name="GetSignalQuality">
|
||||
<arg type="u" direction="out" />
|
||||
</method>
|
||||
<property name="AccessTechnology" type="u" access="read" />
|
||||
<signal name="SignalQuality">
|
||||
<arg type="u" direction="out" />
|
||||
</signal>
|
||||
<signal name="RegistrationInfo">
|
||||
<arg type="u" direction="out" />
|
||||
<arg type="s" direction="out" />
|
||||
<arg type="s" direction="out" />
|
||||
</signal>
|
||||
</interface>;
|
||||
|
||||
const ModemCdmaInterface = {
|
||||
name: 'org.freedesktop.ModemManager.Modem.Cdma',
|
||||
methods: [
|
||||
{ name: 'GetSignalQuality', inSignature: '', outSignature: 'u' },
|
||||
{ name: 'GetServingSystem', inSignature: '', outSignature: 'usu' }
|
||||
],
|
||||
signals: [
|
||||
{ name: 'SignalQuality', inSignature: 'u' }
|
||||
]
|
||||
};
|
||||
const ModemCdmaProxy = DBus.makeProxyClass(ModemCdmaInterface);
|
||||
const ModemGsmNetworkProxy = Gio.DBusProxy.makeProxyWrapper(ModemGsmNetworkInterface);
|
||||
|
||||
const ModemCdmaInterface = <interface name="org.freedesktop.ModemManager.Modem.Cdma">
|
||||
<method name="GetSignalQuality">
|
||||
<arg type="u" direction="out" />
|
||||
</method>
|
||||
<method name="GetServingSystem">
|
||||
<arg type="u" direction="out" />
|
||||
<arg type="s" direction="out" />
|
||||
<arg type="u" direction="out" />
|
||||
</method>
|
||||
<signal name="SignalQuality">
|
||||
<arg type="u" direction="out" />
|
||||
</signal>
|
||||
</interface>;
|
||||
|
||||
const ModemCdmaProxy = Gio.DBusProxy.makeProxyWrapper(ModemCdmaInterface);
|
||||
|
||||
let _providersTable;
|
||||
function _getProvidersTable() {
|
||||
@ -50,17 +60,17 @@ function ModemGsm() {
|
||||
|
||||
ModemGsm.prototype = {
|
||||
_init: function(path) {
|
||||
this._proxy = new ModemGsmNetworkProxy(DBus.system, 'org.freedesktop.ModemManager', path);
|
||||
this._proxy = new ModemGsmNetworkProxy(Gio.DBus.system, 'org.freedesktop.ModemManager', path);
|
||||
|
||||
this.signal_quality = 0;
|
||||
this.operator_name = null;
|
||||
|
||||
// Code is duplicated because the function have different signatures
|
||||
this._proxy.connect('SignalQuality', Lang.bind(this, function(proxy, quality) {
|
||||
this._proxy.connectSignal('SignalQuality', Lang.bind(this, function(proxy, sender, [quality]) {
|
||||
this.signal_quality = quality;
|
||||
this.emit('notify::signal-quality');
|
||||
}));
|
||||
this._proxy.connect('RegistrationInfo', Lang.bind(this, function(proxy, status, code, name) {
|
||||
this._proxy.connectSignal('RegistrationInfo', Lang.bind(this, function(proxy, sender, [status, code, name]) {
|
||||
this.operator_name = this._findOperatorName(name, code);
|
||||
this.emit('notify::operator-name');
|
||||
}));
|
||||
@ -155,12 +165,12 @@ function ModemCdma() {
|
||||
|
||||
ModemCdma.prototype = {
|
||||
_init: function(path) {
|
||||
this._proxy = new ModemCdmaProxy(DBus.system, 'org.freedesktop.ModemManager', path);
|
||||
this._proxy = new ModemCdmaProxy(Gio.DBus.system, 'org.freedesktop.ModemManager', path);
|
||||
|
||||
this.signal_quality = 0;
|
||||
this.operator_name = null;
|
||||
this._proxy.connect('SignalQuality', Lang.bind(this, function(proxy, quality) {
|
||||
this.signal_quality = quality;
|
||||
this._proxy.connect('SignalQuality', Lang.bind(this, function(proxy, sender, params) {
|
||||
this.signal_quality = params[0];
|
||||
this.emit('notify::signal-quality');
|
||||
|
||||
// receiving this signal means the device got activated
|
||||
|
@ -1,53 +1,48 @@
|
||||
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
|
||||
|
||||
const DBus = imports.dbus;
|
||||
const Gio = imports.gi.Gio;
|
||||
const Lang = imports.lang;
|
||||
|
||||
const ScreenSaverIface = {
|
||||
name: 'org.gnome.ScreenSaver',
|
||||
methods: [{ name: 'GetActive',
|
||||
inSignature: '',
|
||||
outSignature: 'b' },
|
||||
{ name: 'Lock',
|
||||
inSignature: '' },
|
||||
{ name: 'SetActive',
|
||||
inSignature: 'b' }],
|
||||
signals: [{ name: 'ActiveChanged',
|
||||
inSignature: 'b' }]
|
||||
};
|
||||
const ScreenSaverIface = <interface name="org.gnome.ScreenSaver">
|
||||
<method name="GetActive">
|
||||
<arg type="b" direction="out" />
|
||||
</method>
|
||||
<method name="Lock" />
|
||||
<method name="SetActive">
|
||||
<arg type="b" direction="in" />
|
||||
</method>
|
||||
<signal name="ActiveChanged">
|
||||
<arg type="b" direction="out" />
|
||||
</signal>
|
||||
</interface>;
|
||||
|
||||
const ScreenSaverInfo = Gio.DBusInterfaceInfo.new_for_xml(ScreenSaverIface);
|
||||
|
||||
function ScreenSaverProxy() {
|
||||
this._init();
|
||||
var self = new Gio.DBusProxy({ g_connection: Gio.DBus.session,
|
||||
g_interface_name: ScreenSaverInfo.name,
|
||||
g_interface_info: ScreenSaverInfo,
|
||||
g_name: 'org.gnome.ScreenSaver',
|
||||
g_object_path: '/org/gnome/ScreenSaver',
|
||||
g_flags: (Gio.DBusProxyFlags.DO_NOT_AUTO_START |
|
||||
Gio.DBusProxyFlags.DO_NOT_LOAD_PROPERTIES) });
|
||||
self.init(null);
|
||||
self.screenSaverActive = false;
|
||||
|
||||
self.connectSignal('ActiveChanged', function(proxy, senderName, [isActive]) {
|
||||
self.screenSaverActive = isActive;
|
||||
});
|
||||
self.connect('notify::g-name-owner', function() {
|
||||
if (self.g_name_owner) {
|
||||
self.GetActiveRemote(function(result, excp) {
|
||||
if (result) {
|
||||
let [isActive] = result;
|
||||
self.screenSaverActive = isActive;
|
||||
}
|
||||
});
|
||||
} else
|
||||
self.screenSaverActive = false;
|
||||
});
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
ScreenSaverProxy.prototype = {
|
||||
_init: function() {
|
||||
DBus.session.proxifyObject(this,
|
||||
'org.gnome.ScreenSaver',
|
||||
'/org/gnome/ScreenSaver');
|
||||
|
||||
DBus.session.watch_name('org.gnome.ScreenSaver',
|
||||
false, // do not launch a name-owner if none exists
|
||||
Lang.bind(this, this._onSSAppeared),
|
||||
Lang.bind(this, this._onSSVanished));
|
||||
|
||||
this.screenSaverActive = false;
|
||||
this.connect('ActiveChanged',
|
||||
Lang.bind(this, this._onActiveChanged));
|
||||
},
|
||||
|
||||
_onSSAppeared: function(owner) {
|
||||
this.GetActiveRemote(Lang.bind(this, function(isActive) {
|
||||
this.screenSaverActive = isActive;
|
||||
}))
|
||||
},
|
||||
|
||||
_onSSVanished: function(oldOwner) {
|
||||
this.screenSaverActive = false;
|
||||
},
|
||||
|
||||
_onActiveChanged: function(object, isActive) {
|
||||
this.screenSaverActive = isActive;
|
||||
}
|
||||
};
|
||||
DBus.proxifyPrototype(ScreenSaverProxy.prototype, ScreenSaverIface);
|
||||
|
@ -170,8 +170,12 @@ AltTabPopup.prototype = {
|
||||
if (localApps.length == 0 && otherApps.length == 0)
|
||||
return false;
|
||||
|
||||
if (!Main.pushModal(this.actor))
|
||||
return false;
|
||||
if (!Main.pushModal(this.actor)) {
|
||||
// Probably someone else has a pointer grab, try again with keyboard only
|
||||
if (!Main.pushModal(this.actor, global.get_current_time(), Meta.ModalOptions.POINTER_ALREADY_GRABBED)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
this._haveModal = true;
|
||||
this._modifierMask = primaryModifier(mask);
|
||||
|
||||
@ -195,7 +199,7 @@ AltTabPopup.prototype = {
|
||||
this.actor.get_allocation_box();
|
||||
|
||||
// Make the initial selection
|
||||
if (binding == 'switch_group') {
|
||||
if (binding == 'switch-group') {
|
||||
if (backward) {
|
||||
this._select(0, this._appIcons[0].cachedWindows.length - 1);
|
||||
} else {
|
||||
@ -204,9 +208,9 @@ AltTabPopup.prototype = {
|
||||
else
|
||||
this._select(0, 0);
|
||||
}
|
||||
} else if (binding == 'switch_group_backward') {
|
||||
} else if (binding == 'switch-group-backward') {
|
||||
this._select(0, this._appIcons[0].cachedWindows.length - 1);
|
||||
} else if (binding == 'switch_windows_backward') {
|
||||
} else if (binding == 'switch-windows-backward') {
|
||||
this._select(this._appIcons.length - 1);
|
||||
} else if (this._appIcons.length == 1) {
|
||||
this._select(0);
|
||||
|
@ -1,7 +1,6 @@
|
||||
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
|
||||
|
||||
const Lang = imports.lang;
|
||||
const DBus = imports.dbus;
|
||||
const Mainloop = imports.mainloop;
|
||||
const Gio = imports.gi.Gio;
|
||||
const Params = imports.misc.params;
|
||||
@ -16,63 +15,54 @@ const SETTING_ENABLE_AUTOMOUNT = 'automount';
|
||||
|
||||
const AUTORUN_EXPIRE_TIMEOUT_SECS = 10;
|
||||
|
||||
const ConsoleKitSessionIface = {
|
||||
name: 'org.freedesktop.ConsoleKit.Session',
|
||||
methods: [{ name: 'IsActive',
|
||||
inSignature: '',
|
||||
outSignature: 'b' }],
|
||||
signals: [{ name: 'ActiveChanged',
|
||||
inSignature: 'b' }]
|
||||
};
|
||||
const ConsoleKitSessionIface = <interface name="org.freedesktop.ConsoleKit.Session">
|
||||
<method name="IsActive">
|
||||
<arg type="b" direction="out" />
|
||||
</method>
|
||||
<signal name="ActiveChanged">
|
||||
<arg type="b" direction="out" />
|
||||
</signal>
|
||||
</interface>;
|
||||
|
||||
const ConsoleKitSessionProxy = DBus.makeProxyClass(ConsoleKitSessionIface);
|
||||
const ConsoleKitSessionProxy = Gio.DBusProxy.makeProxyWrapper(ConsoleKitSessionIface);
|
||||
|
||||
const ConsoleKitManagerIface = {
|
||||
name: 'org.freedesktop.ConsoleKit.Manager',
|
||||
methods: [{ name: 'GetCurrentSession',
|
||||
inSignature: '',
|
||||
outSignature: 'o' }]
|
||||
};
|
||||
const ConsoleKitManagerIface = <interface name="org.freedesktop.ConsoleKit.Manager">
|
||||
<method name="GetCurrentSession">
|
||||
<arg type="o" direction="out" />
|
||||
</method>
|
||||
</interface>;
|
||||
|
||||
const ConsoleKitManagerInfo = Gio.DBusInterfaceInfo.new_for_xml(ConsoleKitManagerIface);
|
||||
|
||||
function ConsoleKitManager() {
|
||||
this._init();
|
||||
};
|
||||
var self = new Gio.DBusProxy({ g_connection: Gio.DBus.system,
|
||||
g_interface_name: ConsoleKitManagerInfo.name,
|
||||
g_interface_info: ConsoleKitManagerInfo,
|
||||
g_name: 'org.freedesktop.ConsoleKit',
|
||||
g_object_path: '/org/freedesktop/ConsoleKit/Manager',
|
||||
g_flags: (Gio.DBusProxyFlags.DO_NOT_AUTO_START |
|
||||
Gio.DBusProxyFlags.DO_NOT_LOAD_PROPERTIES) });
|
||||
|
||||
ConsoleKitManager.prototype = {
|
||||
_init: function() {
|
||||
this.sessionActive = true;
|
||||
self.connect('notify::g-name-owner', function() {
|
||||
if (self.g_name_owner) {
|
||||
self.GetCurrentSessionRemote(function([session]) {
|
||||
self._ckSession = new ConsoleKitSessionProxy(Gio.DBus.system, 'org.freedesktop.ConsoleKit', session);
|
||||
|
||||
DBus.system.proxifyObject(this,
|
||||
'org.freedesktop.ConsoleKit',
|
||||
'/org/freedesktop/ConsoleKit/Manager');
|
||||
self._ckSession.connectSignal('ActiveChanged', function(object, senderName, [isActive]) {
|
||||
self.sessionActive = isActive;
|
||||
});
|
||||
self._ckSession.IsActiveRemote(function([isActive]) {
|
||||
self.sessionActive = isActive;
|
||||
});
|
||||
});
|
||||
} else {
|
||||
self.sessionActive = true;
|
||||
}
|
||||
});
|
||||
|
||||
DBus.system.watch_name('org.freedesktop.ConsoleKit',
|
||||
false, // do not launch a name-owner if none exists
|
||||
Lang.bind(this, this._onManagerAppeared),
|
||||
Lang.bind(this, this._onManagerVanished));
|
||||
},
|
||||
|
||||
_onManagerAppeared: function(owner) {
|
||||
this.GetCurrentSessionRemote(Lang.bind(this, this._onCurrentSession));
|
||||
},
|
||||
|
||||
_onManagerVanished: function(oldOwner) {
|
||||
this.sessionActive = true;
|
||||
},
|
||||
|
||||
_onCurrentSession: function(session) {
|
||||
this._ckSession = new ConsoleKitSessionProxy(DBus.system, 'org.freedesktop.ConsoleKit', session);
|
||||
|
||||
this._ckSession.connect
|
||||
('ActiveChanged', Lang.bind(this, function(object, isActive) {
|
||||
this.sessionActive = isActive;
|
||||
}));
|
||||
this._ckSession.IsActiveRemote(Lang.bind(this, function(isActive) {
|
||||
this.sessionActive = isActive;
|
||||
}));
|
||||
}
|
||||
};
|
||||
DBus.proxifyPrototype(ConsoleKitManager.prototype, ConsoleKitManagerIface);
|
||||
self.init(null);
|
||||
return self;
|
||||
}
|
||||
|
||||
function AutomountManager() {
|
||||
this._init();
|
||||
@ -86,9 +76,8 @@ AutomountManager.prototype = {
|
||||
this.ckListener = new ConsoleKitManager();
|
||||
|
||||
this._ssProxy = new ScreenSaver.ScreenSaverProxy();
|
||||
this._ssProxy.connect('ActiveChanged',
|
||||
Lang.bind(this,
|
||||
this._screenSaverActiveChanged));
|
||||
this._ssProxy.connectSignal('ActiveChanged',
|
||||
Lang.bind(this, this._screenSaverActiveChanged));
|
||||
|
||||
this._volumeMonitor = Gio.VolumeMonitor.get();
|
||||
|
||||
@ -111,7 +100,7 @@ AutomountManager.prototype = {
|
||||
Mainloop.idle_add(Lang.bind(this, this._startupMountAll));
|
||||
},
|
||||
|
||||
_screenSaverActiveChanged: function(object, isActive) {
|
||||
_screenSaverActiveChanged: function(object, senderName, [isActive]) {
|
||||
if (!isActive) {
|
||||
this._volumeQueue.forEach(Lang.bind(this, function(volume) {
|
||||
this._checkAndMountVolume(volume);
|
||||
|
@ -1,7 +1,6 @@
|
||||
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
|
||||
|
||||
const Lang = imports.lang;
|
||||
const DBus = imports.dbus;
|
||||
const Gio = imports.gi.Gio;
|
||||
const St = imports.gi.St;
|
||||
|
||||
@ -62,25 +61,19 @@ function startAppForMount(app, mount) {
|
||||
|
||||
/******************************************/
|
||||
|
||||
const HotplugSnifferIface = {
|
||||
name: 'org.gnome.Shell.HotplugSniffer',
|
||||
methods: [{ name: 'SniffURI',
|
||||
inSignature: 's',
|
||||
outSignature: 'as' }]
|
||||
};
|
||||
const HotplugSnifferIface = <interface name="org.gnome.Shell.HotplugSniffer">
|
||||
<method name="SniffURI">
|
||||
<arg type="s" direction="in" />
|
||||
<arg type="as" direction="out" />
|
||||
</method>
|
||||
</interface>;
|
||||
|
||||
const HotplugSniffer = function() {
|
||||
this._init();
|
||||
};
|
||||
|
||||
HotplugSniffer.prototype = {
|
||||
_init: function() {
|
||||
DBus.session.proxifyObject(this,
|
||||
const HotplugSnifferProxy = Gio.DBusProxy.makeProxyWrapper(HotplugSnifferIface);
|
||||
function HotplugSniffer() {
|
||||
return new HotplugSnifferProxy(Gio.DBus.session,
|
||||
'org.gnome.Shell.HotplugSniffer',
|
||||
'/org/gnome/Shell/HotplugSniffer');
|
||||
},
|
||||
};
|
||||
DBus.proxifyPrototype(HotplugSniffer.prototype, HotplugSnifferIface);
|
||||
}
|
||||
|
||||
function ContentTypeDiscoverer(callback) {
|
||||
this._init(callback);
|
||||
@ -114,9 +107,8 @@ ContentTypeDiscoverer.prototype = {
|
||||
let root = mount.get_root();
|
||||
|
||||
let hotplugSniffer = new HotplugSniffer();
|
||||
hotplugSniffer.SniffURIRemote
|
||||
(root.get_uri(), DBus.CALL_FLAG_START,
|
||||
Lang.bind(this, function(contentTypes) {
|
||||
hotplugSniffer.SniffURIRemote(root.get_uri(),
|
||||
Lang.bind(this, function([contentTypes]) {
|
||||
this._emitCallback(mount, contentTypes);
|
||||
}));
|
||||
}
|
||||
|
@ -1,6 +1,5 @@
|
||||
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
|
||||
|
||||
const DBus = imports.dbus;
|
||||
const Clutter = imports.gi.Clutter;
|
||||
const Gio = imports.gi.Gio;
|
||||
const Lang = imports.lang;
|
||||
@ -195,30 +194,34 @@ EmptyEventSource.prototype = {
|
||||
};
|
||||
Signals.addSignalMethods(EmptyEventSource.prototype);
|
||||
|
||||
const CalendarServerIface = {
|
||||
name: 'org.gnome.Shell.CalendarServer',
|
||||
methods: [{ name: 'GetEvents',
|
||||
inSignature: 'xxb',
|
||||
outSignature: 'a(sssbxxa{sv})' }],
|
||||
signals: [{ name: 'Changed',
|
||||
inSignature: '' }]
|
||||
};
|
||||
const CalendarServerIface = <interface name="org.gnome.Shell.CalendarServer">
|
||||
<method name="GetEvents">
|
||||
<arg type="x" direction="in" />
|
||||
<arg type="x" direction="in" />
|
||||
<arg type="b" direction="in" />
|
||||
<arg type="a(sssbxxa{sv})" direction="out" />
|
||||
</method>
|
||||
<signal name="Changed" />
|
||||
</interface>;
|
||||
|
||||
const CalendarServer = function () {
|
||||
this._init();
|
||||
};
|
||||
const CalendarServerInfo = Gio.DBusInterfaceInfo.new_for_xml(CalendarServerIface);
|
||||
|
||||
CalendarServer.prototype = {
|
||||
_init: function() {
|
||||
DBus.session.proxifyObject(this, 'org.gnome.Shell.CalendarServer', '/org/gnome/Shell/CalendarServer');
|
||||
}
|
||||
};
|
||||
function CalendarServer() {
|
||||
var self = new Gio.DBusProxy({ g_connection: Gio.DBus.session,
|
||||
g_interface_name: CalendarServerInfo.name,
|
||||
g_interface_info: CalendarServerInfo,
|
||||
g_name: 'org.gnome.Shell.CalendarServer',
|
||||
g_object_path: '/org/gnome/Shell/CalendarServer',
|
||||
g_flags: (Gio.DBusProxyFlags.DO_NOT_AUTO_START |
|
||||
Gio.DBusProxyFlags.DO_NOT_LOAD_PROPERTIES) });
|
||||
|
||||
DBus.proxifyPrototype(CalendarServer.prototype, CalendarServerIface);
|
||||
self.init(null);
|
||||
return self;
|
||||
}
|
||||
|
||||
// an implementation that reads data from a session bus service
|
||||
function DBusEventSource(owner) {
|
||||
this._init(owner);
|
||||
function DBusEventSource() {
|
||||
this._init();
|
||||
}
|
||||
|
||||
function _datesEqual(a, b) {
|
||||
@ -241,16 +244,18 @@ function _dateIntervalsOverlap(a0, a1, b0, b1)
|
||||
|
||||
|
||||
DBusEventSource.prototype = {
|
||||
_init: function(owner) {
|
||||
_init: function() {
|
||||
this._resetCache();
|
||||
|
||||
this._dbusProxy = new CalendarServer(owner);
|
||||
this._dbusProxy.connect('Changed', Lang.bind(this, this._onChanged));
|
||||
this._dbusProxy = new CalendarServer();
|
||||
this._dbusProxy.connectSignal('Changed', Lang.bind(this, this._onChanged));
|
||||
|
||||
DBus.session.watch_name('org.gnome.Shell.CalendarServer',
|
||||
false, // do not launch a name-owner if none exists
|
||||
Lang.bind(this, this._onNameAppeared),
|
||||
Lang.bind(this, this._onNameVanished));
|
||||
this._dbusProxy.connect('notify::g-name-owner', Lang.bind(this, function() {
|
||||
if (this._dbusProxy.g_name_owner)
|
||||
this._onNameAppeared();
|
||||
else
|
||||
this._onNameVanished();
|
||||
}));
|
||||
},
|
||||
|
||||
_resetCache: function() {
|
||||
@ -273,7 +278,7 @@ DBusEventSource.prototype = {
|
||||
this._loadEvents(false);
|
||||
},
|
||||
|
||||
_onEventsReceived: function(appointments) {
|
||||
_onEventsReceived: function([appointments]) {
|
||||
let newEvents = [];
|
||||
if (appointments != null) {
|
||||
for (let n = 0; n < appointments.length; n++) {
|
||||
@ -296,9 +301,9 @@ DBusEventSource.prototype = {
|
||||
|
||||
_loadEvents: function(forceReload) {
|
||||
if (this._curRequestBegin && this._curRequestEnd){
|
||||
let callFlags = 0;
|
||||
let callFlags = Gio.DBusCallFlags.NO_AUTO_START;
|
||||
if (forceReload)
|
||||
callFlags |= DBus.CALL_FLAG_START;
|
||||
callFlags = Gio.DBusCallFlags.NONE;
|
||||
this._dbusProxy.GetEventsRemote(this._curRequestBegin.getTime() / 1000,
|
||||
this._curRequestEnd.getTime() / 1000,
|
||||
forceReload,
|
||||
|
@ -187,7 +187,7 @@ CtrlAltTabPopup.prototype = {
|
||||
let [childMinHeight, childNaturalHeight] = this._switcher.actor.get_preferred_height(primary.width - hPadding);
|
||||
let [childMinWidth, childNaturalWidth] = this._switcher.actor.get_preferred_width(childNaturalHeight);
|
||||
childBox.x1 = Math.max(primary.x + leftPadding, primary.x + Math.floor((primary.width - childNaturalWidth) / 2));
|
||||
childBox.x2 = Math.min(primary.width - hPadding, childBox.x1 + childNaturalWidth);
|
||||
childBox.x2 = Math.min(primary.x + primary.width - hPadding, childBox.x1 + childNaturalWidth);
|
||||
childBox.y1 = primary.y + Math.floor((primary.height - childNaturalHeight) / 2);
|
||||
childBox.y2 = childBox.y1 + childNaturalHeight;
|
||||
this._switcher.actor.allocate(childBox, flags);
|
||||
|
@ -231,7 +231,7 @@ DragPlaceholderItem.prototype = {
|
||||
|
||||
_init: function() {
|
||||
DashItemContainer.prototype._init.call(this);
|
||||
this.setChild(new St.Bin({ style_class: 'dash-placeholder' }));
|
||||
this.setChild(new St.Bin({ style_class: 'placeholder' }));
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -18,19 +18,19 @@
|
||||
* 02111-1307, USA.
|
||||
*/
|
||||
|
||||
const DBus = imports.dbus;
|
||||
const Lang = imports.lang;
|
||||
const Signals = imports.signals;
|
||||
|
||||
const AccountsService = imports.gi.AccountsService;
|
||||
const Clutter = imports.gi.Clutter;
|
||||
const Gio = imports.gi.Gio;
|
||||
const GLib = imports.gi.GLib;
|
||||
const Gtk = imports.gi.Gtk;
|
||||
const Pango = imports.gi.Pango;
|
||||
const St = imports.gi.St;
|
||||
const Shell = imports.gi.Shell;
|
||||
|
||||
const GnomeSession = imports.misc.gnomeSession
|
||||
const GnomeSession = imports.misc.gnomeSession;
|
||||
const Lightbox = imports.ui.lightbox;
|
||||
const Main = imports.ui.main;
|
||||
const ModalDialog = imports.ui.modalDialog;
|
||||
@ -43,22 +43,23 @@ const _DIALOG_ICON_SIZE = 32;
|
||||
|
||||
const GSM_SESSION_MANAGER_LOGOUT_FORCE = 2;
|
||||
|
||||
const EndSessionDialogIface = {
|
||||
name: 'org.gnome.SessionManager.EndSessionDialog',
|
||||
methods: [{ name: 'Open',
|
||||
inSignature: 'uuuao',
|
||||
outSignature: ''
|
||||
}
|
||||
],
|
||||
signals: [{ name: 'Canceled',
|
||||
inSignature: '',
|
||||
}],
|
||||
properties: []
|
||||
};
|
||||
const EndSessionDialogIface = <interface name="org.gnome.SessionManager.EndSessionDialog">
|
||||
<method name="Open">
|
||||
<arg type="u" direction="in" />
|
||||
<arg type="u" direction="in" />
|
||||
<arg type="u" direction="in" />
|
||||
<arg type="ao" direction="in" />
|
||||
</method>
|
||||
<signal name="ConfirmedLogout" />
|
||||
<signal name="ConfirmedReboot" />
|
||||
<signal name="ConfirmedShutdown" />
|
||||
<signal name="Canceled" />
|
||||
<signal name="Closed" />
|
||||
</interface>;
|
||||
|
||||
const logoutDialogContent = {
|
||||
subjectWithUser: _("Log Out %s"),
|
||||
subject: _("Log Out"),
|
||||
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) {
|
||||
return ngettext("%s will be logged out automatically in %d second.",
|
||||
@ -72,12 +73,12 @@ const logoutDialogContent = {
|
||||
},
|
||||
endDescription: _("Logging out of the system."),
|
||||
confirmButtons: [{ signal: 'ConfirmedLogout',
|
||||
label: _("Log Out") }],
|
||||
label: C_("button", "Log Out") }],
|
||||
iconStyleClass: 'end-session-dialog-logout-icon'
|
||||
};
|
||||
|
||||
const shutdownDialogContent = {
|
||||
subject: _("Power Off"),
|
||||
subject: C_("title", "Power Off"),
|
||||
inhibitedDescription: _("Click Power Off to quit these applications and power off the system."),
|
||||
uninhibitedDescription: function(seconds) {
|
||||
return ngettext("The system will power off automatically in %d second.",
|
||||
@ -86,15 +87,15 @@ const shutdownDialogContent = {
|
||||
},
|
||||
endDescription: _("Powering off the system."),
|
||||
confirmButtons: [{ signal: 'ConfirmedReboot',
|
||||
label: _("Restart") },
|
||||
label: C_("button", "Restart") },
|
||||
{ signal: 'ConfirmedShutdown',
|
||||
label: _("Power Off") }],
|
||||
label: C_("button", "Power Off") }],
|
||||
iconName: 'system-shutdown',
|
||||
iconStyleClass: 'end-session-dialog-shutdown-icon'
|
||||
};
|
||||
|
||||
const restartDialogContent = {
|
||||
subject: _("Restart"),
|
||||
subject: C_("title", "Restart"),
|
||||
inhibitedDescription: _("Click Restart to quit these applications and restart the system."),
|
||||
uninhibitedDescription: function(seconds) {
|
||||
return ngettext("The system will restart automatically in %d second.",
|
||||
@ -103,7 +104,7 @@ const restartDialogContent = {
|
||||
},
|
||||
endDescription: _("Restarting the system."),
|
||||
confirmButtons: [{ signal: 'ConfirmedReboot',
|
||||
label: _("Restart") }],
|
||||
label: C_("button", "Restart") }],
|
||||
iconName: 'system-shutdown',
|
||||
iconStyleClass: 'end-session-dialog-shutdown-icon'
|
||||
};
|
||||
@ -232,8 +233,6 @@ function _setLabelText(label, text) {
|
||||
function EndSessionDialog() {
|
||||
if (_endSessionDialog == null) {
|
||||
this._init();
|
||||
DBus.session.exportObject('/org/gnome/SessionManager/EndSessionDialog',
|
||||
this);
|
||||
_endSessionDialog = this;
|
||||
}
|
||||
|
||||
@ -326,6 +325,9 @@ EndSessionDialog.prototype = {
|
||||
if (this._applicationList.get_children().length == 0)
|
||||
scrollView.hide();
|
||||
}));
|
||||
|
||||
this._dbusImpl = Gio.DBusExportedObject.wrapJSObject(EndSessionDialogIface, this);
|
||||
this._dbusImpl.export(Gio.DBus.session, '/org/gnome/SessionManager/EndSessionDialog');
|
||||
},
|
||||
|
||||
_onDestroy: function() {
|
||||
@ -440,25 +442,19 @@ EndSessionDialog.prototype = {
|
||||
|
||||
close: function() {
|
||||
ModalDialog.ModalDialog.prototype.close.call(this);
|
||||
DBus.session.emit_signal('/org/gnome/SessionManager/EndSessionDialog',
|
||||
'org.gnome.SessionManager.EndSessionDialog',
|
||||
'Closed', '', []);
|
||||
this._dbusImpl.emit_signal('Closed', null);
|
||||
},
|
||||
|
||||
cancel: function() {
|
||||
this._stopTimer();
|
||||
DBus.session.emit_signal('/org/gnome/SessionManager/EndSessionDialog',
|
||||
'org.gnome.SessionManager.EndSessionDialog',
|
||||
'Canceled', '', []);
|
||||
this._dbusImpl.emit_signal('Canceled', null);
|
||||
this.close(global.get_current_time());
|
||||
},
|
||||
|
||||
_confirm: function(signal) {
|
||||
this._fadeOutDialog();
|
||||
this._stopTimer();
|
||||
DBus.session.emit_signal('/org/gnome/SessionManager/EndSessionDialog',
|
||||
'org.gnome.SessionManager.EndSessionDialog',
|
||||
signal, '', []);
|
||||
this._dbusImpl.emit_signal(signal, null);
|
||||
},
|
||||
|
||||
_onOpened: function() {
|
||||
@ -510,39 +506,41 @@ EndSessionDialog.prototype = {
|
||||
this._updateContent();
|
||||
},
|
||||
|
||||
OpenAsync: function(type, timestamp, totalSecondsToStayOpen, inhibitorObjectPaths, callback) {
|
||||
OpenAsync: function(parameters, invocation) {
|
||||
let [type, timestamp, totalSecondsToStayOpen, inhibitorObjectPaths] = parameters;
|
||||
this._totalSecondsToStayOpen = totalSecondsToStayOpen;
|
||||
this._inhibitors = [];
|
||||
this._applicationList.destroy_children();
|
||||
this._type = type;
|
||||
|
||||
if (!(this._type in DialogContent))
|
||||
throw new DBus.DBusError('org.gnome.Shell.ModalDialog.TypeError',
|
||||
"Unknown dialog type requested");
|
||||
if (!(this._type in DialogContent)) {
|
||||
invocation.report_dbus_error('org.gnome.Shell.ModalDialog.TypeError',
|
||||
"Unknown dialog type requested");
|
||||
return;
|
||||
}
|
||||
|
||||
for (let i = 0; i < inhibitorObjectPaths.length; i++) {
|
||||
let inhibitor = new GnomeSession.Inhibitor(inhibitorObjectPaths[i]);
|
||||
let inhibitor = new GnomeSession.Inhibitor(inhibitorObjectPaths[i], Lang.bind(this, function(proxy, error) {
|
||||
this._onInhibitorLoaded(proxy);
|
||||
}));
|
||||
|
||||
inhibitor.connect('is-loaded',
|
||||
Lang.bind(this, function() {
|
||||
this._onInhibitorLoaded(inhibitor);
|
||||
}));
|
||||
this._inhibitors.push(inhibitor);
|
||||
}
|
||||
|
||||
this._updateButtons();
|
||||
|
||||
if (!this.open(timestamp))
|
||||
throw new DBus.DBusError('org.gnome.Shell.ModalDialog.GrabError',
|
||||
"Cannot grab pointer and keyboard");
|
||||
if (!this.open(timestamp)) {
|
||||
invocation.report_dbus_error('org.gnome.Shell.ModalDialog.GrabError',
|
||||
"Cannot grab pointer and keyboard");
|
||||
return;
|
||||
}
|
||||
|
||||
this._updateContent();
|
||||
|
||||
let signalId = this.connect('opened',
|
||||
Lang.bind(this, function() {
|
||||
callback();
|
||||
invocation.return_value(null);
|
||||
this.disconnect(signalId);
|
||||
}));
|
||||
}
|
||||
};
|
||||
DBus.conformExport(EndSessionDialog.prototype, EndSessionDialogIface);
|
||||
|
@ -22,6 +22,7 @@ const ExtensionState = {
|
||||
ERROR: 3,
|
||||
OUT_OF_DATE: 4,
|
||||
DOWNLOADING: 5,
|
||||
INITIALIZED: 6,
|
||||
|
||||
// Used as an error state for operations on unknown extensions,
|
||||
// should never be in a real extensionMeta object.
|
||||
@ -62,6 +63,9 @@ const extensionMeta = {};
|
||||
const extensions = {};
|
||||
// Maps uuid -> extension state object (returned from init())
|
||||
const extensionStateObjs = {};
|
||||
// Contains the order that extensions were enabled in.
|
||||
const extensionOrder = [];
|
||||
|
||||
// Arrays of uuids
|
||||
var enabledExtensions;
|
||||
// GFile for user extensions
|
||||
@ -212,6 +216,27 @@ function disableExtension(uuid) {
|
||||
|
||||
let extensionState = extensionStateObjs[uuid];
|
||||
|
||||
// "Rebase" the extension order by disabling and then enabling extensions
|
||||
// in order to help prevent conflicts.
|
||||
|
||||
// Example:
|
||||
// order = [A, B, C, D, E]
|
||||
// user disables C
|
||||
// this should: disable E, disable D, disable C, enable D, enable E
|
||||
|
||||
let orderIdx = extensionOrder.indexOf(uuid);
|
||||
let order = extensionOrder.slice(orderIdx + 1);
|
||||
let orderReversed = order.slice().reverse();
|
||||
|
||||
for (let i = 0; i < orderReversed.length; i++) {
|
||||
let uuid = orderReversed[i];
|
||||
try {
|
||||
extensionStateObjs[uuid].disable();
|
||||
} catch(e) {
|
||||
logExtensionError(uuid, e.toString());
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
extensionState.disable();
|
||||
} catch(e) {
|
||||
@ -219,6 +244,17 @@ function disableExtension(uuid) {
|
||||
return;
|
||||
}
|
||||
|
||||
for (let i = 0; i < order.length; i++) {
|
||||
let uuid = order[i];
|
||||
try {
|
||||
extensionStateObjs[uuid].enable();
|
||||
} catch(e) {
|
||||
logExtensionError(uuid, e.toString());
|
||||
}
|
||||
}
|
||||
|
||||
extensionOrder.splice(orderIdx, 1);
|
||||
|
||||
meta.state = ExtensionState.DISABLED;
|
||||
_signals.emit('extension-state-changed', meta);
|
||||
}
|
||||
@ -228,11 +264,18 @@ function enableExtension(uuid) {
|
||||
if (!meta)
|
||||
return;
|
||||
|
||||
if (meta.state == ExtensionState.INITIALIZED) {
|
||||
loadExtension(meta.dir, meta.type, true);
|
||||
return;
|
||||
}
|
||||
|
||||
if (meta.state != ExtensionState.DISABLED)
|
||||
return;
|
||||
|
||||
let extensionState = extensionStateObjs[uuid];
|
||||
|
||||
extensionOrder.push(uuid);
|
||||
|
||||
try {
|
||||
extensionState.enable();
|
||||
} catch(e) {
|
||||
@ -254,7 +297,7 @@ function logExtensionError(uuid, message, state) {
|
||||
state: state });
|
||||
}
|
||||
|
||||
function loadExtension(dir, enabled, type) {
|
||||
function loadExtension(dir, type, enabled) {
|
||||
let info;
|
||||
let uuid = dir.get_basename();
|
||||
|
||||
@ -303,14 +346,9 @@ function loadExtension(dir, enabled, type) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!versionCheck(meta['shell-version'], Config.PACKAGE_VERSION) ||
|
||||
(meta['js-version'] && !versionCheck(meta['js-version'], Config.GJS_VERSION))) {
|
||||
logExtensionError(uuid, 'extension is not compatible with current GNOME Shell and/or GJS version');
|
||||
return;
|
||||
}
|
||||
|
||||
extensionMeta[uuid] = meta;
|
||||
meta.type = type;
|
||||
meta.dir = dir;
|
||||
meta.path = dir.get_path();
|
||||
meta.error = '';
|
||||
|
||||
@ -324,6 +362,11 @@ function loadExtension(dir, enabled, type) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!enabled) {
|
||||
meta.state = ExtensionState.INITIALIZED;
|
||||
return;
|
||||
}
|
||||
|
||||
let extensionJs = dir.get_child('extension.js');
|
||||
if (!extensionJs.query_exists(null)) {
|
||||
logExtensionError(uuid, 'Missing extension.js');
|
||||
@ -383,8 +426,7 @@ function loadExtension(dir, enabled, type) {
|
||||
|
||||
meta.state = ExtensionState.DISABLED;
|
||||
|
||||
if (enabled)
|
||||
enableExtension(uuid);
|
||||
enableExtension(uuid);
|
||||
|
||||
_signals.emit('extension-loaded', meta.uuid);
|
||||
_signals.emit('extension-state-changed', meta);
|
||||
@ -444,7 +486,7 @@ function _loadExtensionsIn(dir, type) {
|
||||
let name = info.get_name();
|
||||
let child = dir.get_child(name);
|
||||
let enabled = enabledExtensions.indexOf(name) != -1;
|
||||
loadExtension(child, enabled, type);
|
||||
loadExtension(child, type, enabled);
|
||||
}
|
||||
fileEnum.close(null);
|
||||
}
|
||||
|
@ -289,7 +289,7 @@ Keyboard.prototype = {
|
||||
if (focus && (focus._extended_keys || (focus._key && focus._key.extended_key)))
|
||||
return;
|
||||
|
||||
let time = global.current_event_time();
|
||||
let time = global.get_current_time();
|
||||
if (focus instanceof Clutter.Text)
|
||||
this.Show(time);
|
||||
else
|
||||
|
@ -587,12 +587,13 @@ Chrome.prototype = {
|
||||
|
||||
this._screenSaverActive = false;
|
||||
this._screenSaverProxy = new ScreenSaver.ScreenSaverProxy();
|
||||
this._screenSaverProxy.connect('ActiveChanged', Lang.bind(this, this._onScreenSaverActiveChanged));
|
||||
this._screenSaverProxy.GetActiveRemote(Lang.bind(this,
|
||||
function(result, err) {
|
||||
if (!err)
|
||||
this._onScreenSaverActiveChanged(this._screenSaverProxy, result);
|
||||
}));
|
||||
this._screenSaverProxy.connectSignal('ActiveChanged', Lang.bind(this, function(proxy, senderName, [isActive]) {
|
||||
this._onScreenSaverActiveChanged(isActive);
|
||||
}));
|
||||
this._screenSaverProxy.GetActiveRemote(Lang.bind(this, function(result, err) {
|
||||
if (!err)
|
||||
this._onScreenSaverActiveChanged(result[0]);
|
||||
}));
|
||||
|
||||
this._relayout();
|
||||
},
|
||||
@ -733,7 +734,7 @@ Chrome.prototype = {
|
||||
this._queueUpdateRegions();
|
||||
},
|
||||
|
||||
_onScreenSaverActiveChanged: function(proxy, screenSaverActive) {
|
||||
_onScreenSaverActiveChanged: function(screenSaverActive) {
|
||||
this._screenSaverActive = screenSaverActive;
|
||||
this._updateVisibility();
|
||||
this._queueUpdateRegions();
|
||||
|
@ -2,7 +2,6 @@
|
||||
|
||||
const Clutter = imports.gi.Clutter;
|
||||
const Cogl = imports.gi.Cogl;
|
||||
const GConf = imports.gi.GConf;
|
||||
const GLib = imports.gi.GLib;
|
||||
const Gio = imports.gi.Gio;
|
||||
const Gtk = imports.gi.Gtk;
|
||||
@ -20,6 +19,7 @@ const Link = imports.ui.link;
|
||||
const ShellEntry = imports.ui.shellEntry;
|
||||
const Tweener = imports.ui.tweener;
|
||||
const Main = imports.ui.main;
|
||||
const JsParse = imports.misc.jsParse;
|
||||
|
||||
/* Imports...feel free to add here as needed */
|
||||
var commandHeader = 'const Clutter = imports.gi.Clutter; ' +
|
||||
@ -41,6 +41,86 @@ var commandHeader = 'const Clutter = imports.gi.Clutter; ' +
|
||||
'const r = Lang.bind(Main.lookingGlass, Main.lookingGlass.getResult); ';
|
||||
|
||||
const HISTORY_KEY = 'looking-glass-history';
|
||||
// Time between tabs for them to count as a double-tab event
|
||||
const AUTO_COMPLETE_DOUBLE_TAB_DELAY = 500;
|
||||
const AUTO_COMPLETE_SHOW_COMPLETION_ANIMATION_DURATION = 0.2;
|
||||
const AUTO_COMPLETE_GLOBAL_KEYWORDS = _getAutoCompleteGlobalKeywords();
|
||||
|
||||
function _getAutoCompleteGlobalKeywords() {
|
||||
const keywords = ['true', 'false', 'null', 'new'];
|
||||
// Don't add the private properties of window (i.e., ones starting with '_')
|
||||
const windowProperties = Object.getOwnPropertyNames(window).filter(function(a){ return a.charAt(0) != '_' });
|
||||
const headerProperties = JsParse.getDeclaredConstants(commandHeader);
|
||||
|
||||
return keywords.concat(windowProperties).concat(headerProperties);
|
||||
}
|
||||
|
||||
function AutoComplete(entry) {
|
||||
this._init(entry);
|
||||
}
|
||||
|
||||
AutoComplete.prototype = {
|
||||
_init: function(entry) {
|
||||
this._entry = entry;
|
||||
this._entry.connect('key-press-event', Lang.bind(this, this._entryKeyPressEvent));
|
||||
this._lastTabTime = global.get_current_time();
|
||||
},
|
||||
|
||||
_processCompletionRequest: function(event) {
|
||||
if (event.completions.length == 0) {
|
||||
return;
|
||||
}
|
||||
// Unique match = go ahead and complete; multiple matches + single tab = complete the common starting string;
|
||||
// multiple matches + double tab = emit a suggest event with all possible options
|
||||
if (event.completions.length == 1) {
|
||||
this.additionalCompletionText(event.completions[0], event.attrHead);
|
||||
this.emit('completion', { completion: event.completions[0], type: 'whole-word' });
|
||||
} else if (event.completions.length > 1 && event.tabType === 'single') {
|
||||
let commonPrefix = JsParse.getCommonPrefix(event.completions);
|
||||
|
||||
if (commonPrefix.length > 0) {
|
||||
this.additionalCompletionText(commonPrefix, event.attrHead);
|
||||
this.emit('completion', { completion: commonPrefix, type: 'prefix' });
|
||||
this.emit('suggest', { completions: event.completions});
|
||||
}
|
||||
} else if (event.completions.length > 1 && event.tabType === 'double') {
|
||||
this.emit('suggest', { completions: event.completions});
|
||||
}
|
||||
},
|
||||
|
||||
_entryKeyPressEvent: function(actor, event) {
|
||||
let cursorPos = this._entry.clutter_text.get_cursor_position();
|
||||
let text = this._entry.get_text();
|
||||
if (cursorPos != -1) {
|
||||
text = text.slice(0, cursorPos);
|
||||
}
|
||||
if (event.get_key_symbol() == Clutter.Tab) {
|
||||
let [completions, attrHead] = JsParse.getCompletions(text, commandHeader, AUTO_COMPLETE_GLOBAL_KEYWORDS);
|
||||
let currTime = global.get_current_time();
|
||||
if ((currTime - this._lastTabTime) < AUTO_COMPLETE_DOUBLE_TAB_DELAY) {
|
||||
this._processCompletionRequest({ tabType: 'double',
|
||||
completions: completions,
|
||||
attrHead: attrHead });
|
||||
} else {
|
||||
this._processCompletionRequest({ tabType: 'single',
|
||||
completions: completions,
|
||||
attrHead: attrHead });
|
||||
}
|
||||
this._lastTabTime = currTime;
|
||||
}
|
||||
},
|
||||
|
||||
// Insert characters of text not already included in head at cursor position. i.e., if text="abc" and head="a",
|
||||
// the string "bc" will be appended to this._entry
|
||||
additionalCompletionText: function(text, head) {
|
||||
let additionalCompletionText = text.slice(head.length);
|
||||
let cursorPos = this._entry.clutter_text.get_cursor_position();
|
||||
|
||||
this._entry.clutter_text.insert_text(additionalCompletionText, cursorPos);
|
||||
}
|
||||
};
|
||||
Signals.addSignalMethods(AutoComplete.prototype);
|
||||
|
||||
|
||||
function Notebook() {
|
||||
this._init();
|
||||
@ -151,6 +231,24 @@ Notebook.prototype = {
|
||||
return;
|
||||
let vAdjust = tabData.scrollView.vscroll.adjustment;
|
||||
vAdjust.value = vAdjust.upper - vAdjust.page_size;
|
||||
},
|
||||
|
||||
nextTab: function() {
|
||||
let nextIndex = this._selectedIndex;
|
||||
if (nextIndex < this._tabs.length - 1) {
|
||||
++nextIndex;
|
||||
}
|
||||
|
||||
this.selectIndex(nextIndex);
|
||||
},
|
||||
|
||||
prevTab: function() {
|
||||
let prevIndex = this._selectedIndex;
|
||||
if (prevIndex > 0) {
|
||||
--prevIndex;
|
||||
}
|
||||
|
||||
this.selectIndex(prevIndex);
|
||||
}
|
||||
};
|
||||
Signals.addSignalMethods(Notebook.prototype);
|
||||
@ -686,11 +784,40 @@ Extensions.prototype = {
|
||||
Main.lookingGlass.close();
|
||||
},
|
||||
|
||||
_onViewErrors: function (actor) {
|
||||
let meta = actor._extensionMeta;
|
||||
let shouldShow = !actor._isShowing;
|
||||
|
||||
if (shouldShow) {
|
||||
let errors = ExtensionSystem.errors[meta.uuid];
|
||||
let errorDisplay = new St.BoxLayout({ vertical: true });
|
||||
if (errors && errors.length) {
|
||||
for (let i = 0; i < errors.length; i ++)
|
||||
errorDisplay.add(new St.Label({ text: errors[i] }));
|
||||
} else {
|
||||
/* Translators: argument is an extension UUID. */
|
||||
let message = _("%s has not emitted any errors.").format(meta.uuid);
|
||||
errorDisplay.add(new St.Label({ text: message }));
|
||||
}
|
||||
|
||||
actor._errorDisplay = errorDisplay;
|
||||
actor._parentBox.add(errorDisplay);
|
||||
actor.label = _("Hide Errors");
|
||||
} else {
|
||||
actor._errorDisplay.destroy();
|
||||
actor._errorDisplay = null;
|
||||
actor.label = _("Show Errors");
|
||||
}
|
||||
|
||||
actor._isShowing = shouldShow;
|
||||
},
|
||||
|
||||
_stateToString: function(extensionState) {
|
||||
switch (extensionState) {
|
||||
case ExtensionSystem.ExtensionState.ENABLED:
|
||||
return _("Enabled");
|
||||
case ExtensionSystem.ExtensionState.DISABLED:
|
||||
case ExtensionSystem.ExtensionState.INITIALIZED:
|
||||
return _("Disabled");
|
||||
case ExtensionSystem.ExtensionState.ERROR:
|
||||
return _("Error");
|
||||
@ -730,6 +857,13 @@ Extensions.prototype = {
|
||||
metaBox.add(webpage.actor);
|
||||
}
|
||||
|
||||
let viewerrors = new Link.Link({ label: _("Show Errors") });
|
||||
viewerrors.actor._extensionMeta = meta;
|
||||
viewerrors.actor._parentBox = box;
|
||||
viewerrors.actor._isShowing = false;
|
||||
viewerrors.actor.connect('clicked', Lang.bind(this, this._onViewErrors));
|
||||
metaBox.add(viewerrors.actor);
|
||||
|
||||
return box;
|
||||
}
|
||||
};
|
||||
@ -810,15 +944,15 @@ LookingGlass.prototype = {
|
||||
this._resultsArea = new St.BoxLayout({ name: 'ResultsArea', vertical: true });
|
||||
this._evalBox.add(this._resultsArea, { expand: true });
|
||||
|
||||
let entryArea = new St.BoxLayout({ name: 'EntryArea' });
|
||||
this._evalBox.add_actor(entryArea);
|
||||
this._entryArea = new St.BoxLayout({ name: 'EntryArea' });
|
||||
this._evalBox.add_actor(this._entryArea);
|
||||
|
||||
let label = new St.Label({ text: 'js>>> ' });
|
||||
entryArea.add(label);
|
||||
this._entryArea.add(label);
|
||||
|
||||
this._entry = new St.Entry({ can_focus: true });
|
||||
ShellEntry.addContextMenu(this._entry);
|
||||
entryArea.add(this._entry, { expand: true });
|
||||
this._entryArea.add(this._entry, { expand: true });
|
||||
|
||||
this._windowList = new WindowList();
|
||||
this._windowList.connect('selected', Lang.bind(this, function(list, window) {
|
||||
@ -837,6 +971,9 @@ LookingGlass.prototype = {
|
||||
notebook.appendPage('Extensions', this._extensions.actor);
|
||||
|
||||
this._entry.clutter_text.connect('activate', Lang.bind(this, function (o, e) {
|
||||
// Hide any completions we are currently showing
|
||||
this._hideCompletions();
|
||||
|
||||
let text = o.get_text();
|
||||
// Ensure we don't get newlines in the command; the history file is
|
||||
// newline-separated.
|
||||
@ -852,6 +989,17 @@ LookingGlass.prototype = {
|
||||
this._history = new History.HistoryManager({ gsettingsKey: HISTORY_KEY,
|
||||
entry: this._entry.clutter_text });
|
||||
|
||||
this._autoComplete = new AutoComplete(this._entry);
|
||||
this._autoComplete.connect('suggest', Lang.bind(this, function(a,e) {
|
||||
this._showCompletions(e.completions);
|
||||
}));
|
||||
// If a completion is completed unambiguously, the currently-displayed completion
|
||||
// suggestions become irrelevant.
|
||||
this._autoComplete.connect('completion', Lang.bind(this, function(a,e) {
|
||||
if (e.type == 'whole-word')
|
||||
this._hideCompletions();
|
||||
}));
|
||||
|
||||
this._resize();
|
||||
},
|
||||
|
||||
@ -896,6 +1044,59 @@ LookingGlass.prototype = {
|
||||
this._notebook.scrollToBottom(0);
|
||||
},
|
||||
|
||||
_showCompletions: function(completions) {
|
||||
if (!this._completionActor) {
|
||||
let actor = new St.BoxLayout({ vertical: true });
|
||||
|
||||
this._completionText = new St.Label({ name: 'LookingGlassAutoCompletionText', style_class: 'lg-completions-text' });
|
||||
this._completionText.clutter_text.ellipsize = Pango.EllipsizeMode.NONE;
|
||||
this._completionText.clutter_text.line_wrap = true;
|
||||
actor.add(this._completionText);
|
||||
|
||||
let line = new Clutter.Rectangle();
|
||||
let padBin = new St.Bin({ x_fill: true, y_fill: true });
|
||||
padBin.add_actor(line);
|
||||
actor.add(padBin);
|
||||
|
||||
this._completionActor = actor;
|
||||
this._evalBox.insert_before(this._completionActor, this._entryArea);
|
||||
}
|
||||
|
||||
this._completionText.set_text(completions.join(', '));
|
||||
|
||||
// Setting the height to -1 allows us to get its actual preferred height rather than
|
||||
// whatever was last given in set_height by Tweener.
|
||||
this._completionActor.set_height(-1);
|
||||
let [minHeight, naturalHeight] = this._completionText.get_preferred_height(this._resultsArea.get_width());
|
||||
|
||||
// Don't reanimate if we are already visible
|
||||
if (this._completionActor.visible) {
|
||||
this._completionActor.height = naturalHeight;
|
||||
} else {
|
||||
this._completionActor.show();
|
||||
Tweener.removeTweens(this._completionActor);
|
||||
Tweener.addTween(this._completionActor, { time: AUTO_COMPLETE_SHOW_COMPLETION_ANIMATION_DURATION / St.get_slow_down_factor(),
|
||||
transition: 'easeOutQuad',
|
||||
height: naturalHeight,
|
||||
opacity: 255
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
_hideCompletions: function() {
|
||||
if (this._completionActor) {
|
||||
Tweener.removeTweens(this._completionActor);
|
||||
Tweener.addTween(this._completionActor, { time: AUTO_COMPLETE_SHOW_COMPLETION_ANIMATION_DURATION / St.get_slow_down_factor(),
|
||||
transition: 'easeOutQuad',
|
||||
height: 0,
|
||||
opacity: 0,
|
||||
onComplete: Lang.bind(this, function () {
|
||||
this._completionActor.hide();
|
||||
})
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
_evaluate : function(command) {
|
||||
this._history.addItem(command);
|
||||
|
||||
@ -960,6 +1161,7 @@ LookingGlass.prototype = {
|
||||
// Handle key events which are relevant for all tabs of the LookingGlass
|
||||
_globalKeyPressEvent : function(actor, event) {
|
||||
let symbol = event.get_key_symbol();
|
||||
let modifierState = Shell.get_event_state(event);
|
||||
if (symbol == Clutter.Escape) {
|
||||
if (this._objInspector.actor.visible) {
|
||||
this._objInspector.close();
|
||||
@ -968,6 +1170,14 @@ LookingGlass.prototype = {
|
||||
}
|
||||
return true;
|
||||
}
|
||||
// Ctrl+PgUp and Ctrl+PgDown switches tabs in the notebook view
|
||||
if (modifierState & Clutter.ModifierType.CONTROL_MASK) {
|
||||
if (symbol == Clutter.KEY_Page_Up) {
|
||||
this._notebook.prevTab();
|
||||
} else if (symbol == Clutter.KEY_Page_Down) {
|
||||
this._notebook.nextTab();
|
||||
}
|
||||
}
|
||||
return false;
|
||||
},
|
||||
|
||||
|
@ -1,6 +1,7 @@
|
||||
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
|
||||
|
||||
const Clutter = imports.gi.Clutter;
|
||||
const GDesktopEnums = imports.gi.GDesktopEnums;
|
||||
const Gio = imports.gi.Gio;
|
||||
const Shell = imports.gi.Shell;
|
||||
const St = imports.gi.St;
|
||||
@ -12,22 +13,6 @@ const Main = imports.ui.main;
|
||||
const MagnifierDBus = imports.ui.magnifierDBus;
|
||||
const Params = imports.misc.params;
|
||||
|
||||
// Keep enums in sync with GSettings schemas
|
||||
const MouseTrackingMode = {
|
||||
NONE: 0,
|
||||
CENTERED: 1,
|
||||
PROPORTIONAL: 2,
|
||||
PUSH: 3
|
||||
};
|
||||
|
||||
const ScreenPosition = {
|
||||
NONE: 0,
|
||||
FULL_SCREEN: 1,
|
||||
TOP_HALF: 2,
|
||||
BOTTOM_HALF: 3,
|
||||
LEFT_HALF: 4,
|
||||
RIGHT_HALF: 5
|
||||
};
|
||||
|
||||
const MOUSE_POLL_FREQUENCY = 50;
|
||||
const CROSSHAIRS_CLIP_SIZE = [100, 100];
|
||||
@ -520,7 +505,7 @@ Magnifier.prototype = {
|
||||
if (this._zoomRegions.length) {
|
||||
let position = this._settings.get_enum(SCREEN_POSITION_KEY);
|
||||
this._zoomRegions[0].setScreenPosition(position);
|
||||
if (position != ScreenPosition.FULL_SCREEN)
|
||||
if (position != GDesktopEnums.MagnifierScreenPosition.FULL_SCREEN)
|
||||
this._updateLensMode();
|
||||
}
|
||||
},
|
||||
@ -569,10 +554,10 @@ ZoomRegion.prototype = {
|
||||
_init: function(magnifier, mouseSourceActor) {
|
||||
this._magnifier = magnifier;
|
||||
|
||||
this._mouseTrackingMode = MouseTrackingMode.NONE;
|
||||
this._mouseTrackingMode = GDesktopEnums.MagnifierMouseTrackingMode.NONE;
|
||||
this._clampScrollingAtEdges = false;
|
||||
this._lensMode = false;
|
||||
this._screenPosition = ScreenPosition.FULL_SCREEN;
|
||||
this._screenPosition = GDesktopEnums.MagnifierScreenPosition.FULL_SCREEN;
|
||||
|
||||
this._magView = null;
|
||||
this._uiGroupClone = null;
|
||||
@ -647,7 +632,8 @@ ZoomRegion.prototype = {
|
||||
* @mode: One of the enum MouseTrackingMode values.
|
||||
*/
|
||||
setMouseTrackingMode: function(mode) {
|
||||
if (mode >= MouseTrackingMode.NONE && mode <= MouseTrackingMode.PUSH)
|
||||
if (mode >= GDesktopEnums.MagnifierMouseTrackingMode.NONE &&
|
||||
mode <= GDesktopEnums.MagnifierMouseTrackingMode.PUSH)
|
||||
this._mouseTrackingMode = mode;
|
||||
},
|
||||
|
||||
@ -668,7 +654,7 @@ ZoomRegion.prototype = {
|
||||
*/
|
||||
setViewPort: function(viewPort) {
|
||||
this._setViewPort(viewPort);
|
||||
this._screenPosition = ScreenPosition.NONE;
|
||||
this._screenPosition = GDesktopEnums.MagnifierScreenPosition.NONE;
|
||||
},
|
||||
|
||||
/**
|
||||
@ -750,7 +736,7 @@ ZoomRegion.prototype = {
|
||||
viewPort.width = global.screen_width;
|
||||
viewPort.height = global.screen_height/2;
|
||||
this._setViewPort(viewPort);
|
||||
this._screenPosition = ScreenPosition.TOP_HALF;
|
||||
this._screenPosition = GDesktopEnums.MagnifierScreenPosition.TOP_HALF;
|
||||
},
|
||||
|
||||
/**
|
||||
@ -764,7 +750,7 @@ ZoomRegion.prototype = {
|
||||
viewPort.width = global.screen_width;
|
||||
viewPort.height = global.screen_height/2;
|
||||
this._setViewPort(viewPort);
|
||||
this._screenPosition = ScreenPosition.BOTTOM_HALF;
|
||||
this._screenPosition = GDesktopEnums.MagnifierScreenPosition.BOTTOM_HALF;
|
||||
},
|
||||
|
||||
/**
|
||||
@ -778,7 +764,7 @@ ZoomRegion.prototype = {
|
||||
viewPort.width = global.screen_width/2;
|
||||
viewPort.height = global.screen_height;
|
||||
this._setViewPort(viewPort);
|
||||
this._screenPosition = ScreenPosition.LEFT_HALF;
|
||||
this._screenPosition = GDesktopEnums.MagnifierScreenPosition.LEFT_HALF;
|
||||
},
|
||||
|
||||
/**
|
||||
@ -792,7 +778,7 @@ ZoomRegion.prototype = {
|
||||
viewPort.width = global.screen_width/2;
|
||||
viewPort.height = global.screen_height;
|
||||
this._setViewPort(viewPort);
|
||||
this._screenPosition = ScreenPosition.RIGHT_HALF;
|
||||
this._screenPosition = GDesktopEnums.MagnifierScreenPosition.RIGHT_HALF;
|
||||
},
|
||||
|
||||
/**
|
||||
@ -808,7 +794,7 @@ ZoomRegion.prototype = {
|
||||
viewPort.height = global.screen_height;
|
||||
this.setViewPort(viewPort);
|
||||
|
||||
this._screenPosition = ScreenPosition.FULL_SCREEN;
|
||||
this._screenPosition = GDesktopEnums.MagnifierScreenPosition.FULL_SCREEN;
|
||||
},
|
||||
|
||||
/**
|
||||
@ -821,19 +807,19 @@ ZoomRegion.prototype = {
|
||||
*/
|
||||
setScreenPosition: function(inPosition) {
|
||||
switch (inPosition) {
|
||||
case ScreenPosition.FULL_SCREEN:
|
||||
case GDesktopEnums.MagnifierScreenPosition.FULL_SCREEN:
|
||||
this.setFullScreenMode();
|
||||
break;
|
||||
case ScreenPosition.TOP_HALF:
|
||||
case GDesktopEnums.MagnifierScreenPosition.TOP_HALF:
|
||||
this.setTopHalf();
|
||||
break;
|
||||
case ScreenPosition.BOTTOM_HALF:
|
||||
case GDesktopEnums.MagnifierScreenPosition.BOTTOM_HALF:
|
||||
this.setBottomHalf();
|
||||
break;
|
||||
case ScreenPosition.LEFT_HALF:
|
||||
case GDesktopEnums.MagnifierScreenPosition.LEFT_HALF:
|
||||
this.setLeftHalf();
|
||||
break;
|
||||
case ScreenPosition.RIGHT_HALF:
|
||||
case GDesktopEnums.MagnifierScreenPosition.RIGHT_HALF:
|
||||
this.setRightHalf();
|
||||
break;
|
||||
}
|
||||
@ -856,7 +842,7 @@ ZoomRegion.prototype = {
|
||||
*/
|
||||
scrollToMousePos: function() {
|
||||
this._followingCursor = true;
|
||||
if (this._mouseTrackingMode != MouseTrackingMode.NONE)
|
||||
if (this._mouseTrackingMode != GDesktopEnums.MagnifierMouseTrackingMode.NONE)
|
||||
this._changeROI({ redoCursorTracking: true });
|
||||
else
|
||||
this._updateMousePosition();
|
||||
@ -991,7 +977,7 @@ ZoomRegion.prototype = {
|
||||
this._yMagFactor = params.yMagFactor;
|
||||
|
||||
if (params.redoCursorTracking &&
|
||||
this._mouseTrackingMode != MouseTrackingMode.NONE) {
|
||||
this._mouseTrackingMode != GDesktopEnums.MagnifierMouseTrackingMode.NONE) {
|
||||
// This depends on this.xMagFactor/yMagFactor already being updated
|
||||
[params.xCenter, params.yCenter] = this._centerFromMousePosition();
|
||||
}
|
||||
@ -1041,7 +1027,7 @@ ZoomRegion.prototype = {
|
||||
_isFullScreen: function() {
|
||||
// Does the magnified view occupy the whole screen? Note that this
|
||||
// doesn't necessarily imply
|
||||
// this._screenPosition = ScreenPosition.FULL_SCREEN;
|
||||
// this._screenPosition = GDesktopEnums.MagnifierScreenPosition.FULL_SCREEN;
|
||||
|
||||
if (this._viewPortX != 0 || this._viewPortY != 0)
|
||||
return false;
|
||||
@ -1058,13 +1044,13 @@ ZoomRegion.prototype = {
|
||||
let xMouse = this._magnifier.xMouse;
|
||||
let yMouse = this._magnifier.yMouse;
|
||||
|
||||
if (this._mouseTrackingMode == MouseTrackingMode.PROPORTIONAL) {
|
||||
if (this._mouseTrackingMode == GDesktopEnums.MagnifierMouseTrackingMode.PROPORTIONAL) {
|
||||
return this._centerFromMouseProportional(xMouse, yMouse);
|
||||
}
|
||||
else if (this._mouseTrackingMode == MouseTrackingMode.PUSH) {
|
||||
else if (this._mouseTrackingMode == GDesktopEnums.MagnifierMouseTrackingMode.PUSH) {
|
||||
return this._centerFromMousePush(xMouse, yMouse);
|
||||
}
|
||||
else if (this._mouseTrackingMode == MouseTrackingMode.CENTERED) {
|
||||
else if (this._mouseTrackingMode == GDesktopEnums.MagnifierMouseTrackingMode.CENTERED) {
|
||||
return this._centerFromMouseCentered(xMouse, yMouse);
|
||||
}
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
|
||||
|
||||
const DBus = imports.dbus;
|
||||
const Gio = imports.gi.Gio;
|
||||
const Main = imports.ui.main;
|
||||
|
||||
const MAG_SERVICE_NAME = 'org.gnome.Magnifier';
|
||||
@ -10,47 +10,85 @@ 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 = {
|
||||
name: MAG_SERVICE_NAME,
|
||||
methods: [
|
||||
{ name: 'setActive', inSignature: 'b', outSignature: '' },
|
||||
{ name: 'isActive', inSignature: '', outSignature: 'b' },
|
||||
{ name: 'showCursor', inSignature: '', outSignature: '' },
|
||||
{ name: 'hideCursor', inSignature: '', outSignature: '' },
|
||||
{ name: 'createZoomRegion', inSignature: 'ddaiai', outSignature: 'o' },
|
||||
{ name: 'addZoomRegion', inSignature: 'o', outSignature: 'b' },
|
||||
{ name: 'getZoomRegions', inSignature: '', outSignature: 'ao' },
|
||||
{ name: 'clearAllZoomRegions', inSignature: '', outSignature: '' },
|
||||
{ name: 'fullScreenCapable', inSignature: '', outSignature: 'b' },
|
||||
|
||||
{ name: 'setCrosswireSize', inSignature: 'i', outSignature: '' },
|
||||
{ name: 'getCrosswireSize', inSignature: '', outSignature: 'i' },
|
||||
{ name: 'setCrosswireLength', inSignature: 'i', outSignature: '' },
|
||||
{ name: 'getCrosswireLength', inSignature: '', outSignature: 'i' },
|
||||
{ name: 'setCrosswireClip', inSignature: 'b', outSignature: '' },
|
||||
{ name: 'getCrosswireClip', inSignature: '', outSignature: 'b' },
|
||||
{ name: 'setCrosswireColor', inSignature: 'u', outSignature: '' },
|
||||
{ name: 'getCrosswireColor', inSignature: '', outSignature: 'u' }
|
||||
],
|
||||
signals: [],
|
||||
properties: []
|
||||
};
|
||||
const MagnifierIface = <interface name={MAG_SERVICE_NAME}>
|
||||
<method name="setActive">
|
||||
<arg type="b" direction="in" />
|
||||
</method>
|
||||
<method name="isActive">
|
||||
<arg type="b" direction="out" />
|
||||
</method>
|
||||
<method name="showCursor" />
|
||||
<method name="hideCursor" />
|
||||
<method name="createZoomRegion">
|
||||
<arg type="d" direction="in" />
|
||||
<arg type="d" direction="in" />
|
||||
<arg type="ai" direction="in" />
|
||||
<arg type="ai" direction="in" />
|
||||
<arg type="o" direction="out" />
|
||||
</method>
|
||||
<method name="addZoomRegion">
|
||||
<arg type="o" direction="in" />
|
||||
<arg type="b" direction="out" />
|
||||
</method>
|
||||
<method name="getZoomRegions">
|
||||
<arg type="ao" direction="out" />
|
||||
</method>
|
||||
<method name="clearAllZoomRegions" />
|
||||
<method name="fullScreenCapable">
|
||||
<arg type="b" direction="out" />
|
||||
</method>
|
||||
<method name="setCrosswireSize">
|
||||
<arg type="i" direction="in" />
|
||||
</method>
|
||||
<method name="getCrosswireSize">
|
||||
<arg type="i" direction="out" />
|
||||
</method>
|
||||
<method name="setCrosswireLength">
|
||||
<arg type="i" direction="in" />
|
||||
</method>
|
||||
<method name="getCrosswireLength">
|
||||
<arg type="i" direction="out" />
|
||||
</method>
|
||||
<method name="setCrosswireClip">
|
||||
<arg type="b" direction="in" />
|
||||
</method>
|
||||
<method name="getCrosswireClip">
|
||||
<arg type="b" direction="out" />
|
||||
</method>
|
||||
<method name="setCrosswireColor">
|
||||
<arg type="u" direction="in" />
|
||||
</method>
|
||||
<method name="getCrosswireColor">
|
||||
<arg type="u" direction="out" />
|
||||
</method>
|
||||
</interface>;
|
||||
|
||||
// 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 = {
|
||||
name: ZOOM_SERVICE_NAME,
|
||||
methods: [
|
||||
{ name: 'setMagFactor', inSignature: 'dd', outSignature: ''},
|
||||
{ name: 'getMagFactor', inSignature: '', outSignature: 'dd' },
|
||||
{ name: 'setRoi', inSignature: 'ai', outSignature: '' },
|
||||
{ name: 'getRoi', inSignature: '', outSignature: 'ai' },
|
||||
{ name: 'shiftContentsTo', inSignature: 'ii', outSignature: 'b' },
|
||||
{ name: 'moveResize', inSignature: 'ai', outSignature: '' }
|
||||
],
|
||||
signals: [],
|
||||
properties: []
|
||||
};
|
||||
const ZoomRegionIface = <interface name={ZOOM_SERVICE_NAME}>
|
||||
<method name="setMagFactor">
|
||||
<arg type="d" direction="in" />
|
||||
<arg type="d" direction="in" />
|
||||
</method>
|
||||
<method name="getMagFactor">
|
||||
<arg type="d" direction="out" />
|
||||
<arg type="d" direction="out" />
|
||||
</method>
|
||||
<method name="setRoi">
|
||||
<arg type="ai" direction="in" />
|
||||
</method>
|
||||
<method name="getRoi">
|
||||
<arg type="ai" direction="out" />
|
||||
</method>
|
||||
<method name="shiftContentsTo">
|
||||
<arg type="i" direction="in" />
|
||||
<arg type="i" direction="in" />
|
||||
<arg type="b" direction="out" />
|
||||
</method>
|
||||
<method name="moveResize">
|
||||
<arg type="ai" direction="in" />
|
||||
</method>
|
||||
</interface>;
|
||||
|
||||
// For making unique ZoomRegion DBus proxy object paths of the form:
|
||||
// '/org/gnome/Magnifier/ZoomRegion/zoomer0',
|
||||
@ -64,7 +102,9 @@ function ShellMagnifier() {
|
||||
ShellMagnifier.prototype = {
|
||||
_init: function() {
|
||||
this._zoomers = {};
|
||||
DBus.session.exportObject(MAG_SERVICE_PATH, this);
|
||||
|
||||
this._dbusImpl = Gio.DBusExportedObject.wrapJSObject(MagnifierIface, this);
|
||||
this._dbusImpl.export(Gio.DBus.session, MAG_SERVICE_PATH);
|
||||
},
|
||||
|
||||
/**
|
||||
@ -195,10 +235,10 @@ ShellMagnifier.prototype = {
|
||||
Main.magnifier.clearAllZoomRegions();
|
||||
for (let objectPath in this._zoomers) {
|
||||
let proxyAndZoomer = this._zoomers[objectPath];
|
||||
proxyAndZoomer.proxy.destroy();
|
||||
proxyAndZoomer.proxy = null;
|
||||
proxyAndZoomer.zoomRegion = null;
|
||||
delete this._zoomers[objectPath];
|
||||
DBus.session.unexportObject(proxyAndZoomer);
|
||||
}
|
||||
this._zoomers = {};
|
||||
},
|
||||
@ -300,8 +340,9 @@ function ShellMagnifierZoomRegion(zoomerObjectPath, zoomRegion) {
|
||||
ShellMagnifierZoomRegion.prototype = {
|
||||
_init: function(zoomerObjectPath, zoomRegion) {
|
||||
this._zoomRegion = zoomRegion;
|
||||
DBus.session.proxifyObject(this, ZOOM_SERVICE_NAME, zoomerObjectPath);
|
||||
DBus.session.exportObject(zoomerObjectPath, this);
|
||||
|
||||
this._dbusImpl = Gio.DBusExportedObject.wrapJSObject(ZoomRegionIface, this);
|
||||
this._dbusImpl.export(Gio.DBus.session, zoomerObjectPath);
|
||||
},
|
||||
|
||||
/**
|
||||
@ -376,8 +417,9 @@ ShellMagnifierZoomRegion.prototype = {
|
||||
moveResize: function(viewPort) {
|
||||
let viewRect = { x: viewPort[0], y: viewPort[1], width: viewPort[2] - viewPort[0], height: viewPort[3] - viewPort[1] };
|
||||
this._zoomRegion.setViewPort(viewRect);
|
||||
},
|
||||
|
||||
destroy: function() {
|
||||
this._dbusImpl.unexport();
|
||||
}
|
||||
};
|
||||
|
||||
DBus.conformExport(ShellMagnifier.prototype, MagnifierIface);
|
||||
DBus.conformExport(ShellMagnifierZoomRegion.prototype, ZoomRegionIface);
|
||||
|
@ -1,11 +1,9 @@
|
||||
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
|
||||
|
||||
const Clutter = imports.gi.Clutter;
|
||||
const DBus = imports.dbus;
|
||||
const Gdk = imports.gi.Gdk;
|
||||
const Gio = imports.gi.Gio;
|
||||
const GLib = imports.gi.GLib;
|
||||
const GConf = imports.gi.GConf;
|
||||
const Lang = imports.lang;
|
||||
const Mainloop = imports.mainloop;
|
||||
const Meta = imports.gi.Meta;
|
||||
@ -134,15 +132,11 @@ function _initUserSession() {
|
||||
ExtensionSystem.init();
|
||||
ExtensionSystem.loadExtensions();
|
||||
|
||||
let shellwm = global.window_manager;
|
||||
|
||||
shellwm.takeover_keybinding('panel_run_dialog');
|
||||
shellwm.connect('keybinding::panel_run_dialog', function () {
|
||||
Meta.keybindings_set_custom_handler('panel-run-dialog', function() {
|
||||
getRunDialog().open();
|
||||
});
|
||||
|
||||
shellwm.takeover_keybinding('panel_main_menu');
|
||||
shellwm.connect('keybinding::panel_main_menu', function () {
|
||||
Meta.keybindings_set_custom_handler('panel-main-menu', function () {
|
||||
overview.toggle();
|
||||
});
|
||||
|
||||
@ -163,11 +157,6 @@ function start() {
|
||||
Gio.DesktopAppInfo.set_desktop_env('GNOME');
|
||||
|
||||
shellDBusService = new ShellDBus.GnomeShell();
|
||||
// Force a connection now; dbus.js will do this internally
|
||||
// if we use its name acquisition stuff but we aren't right
|
||||
// now; to do so we'd need to convert from its async calls
|
||||
// back into sync ones.
|
||||
DBus.session.flush();
|
||||
|
||||
// Ensure ShellWindowTracker and ShellAppUsage are initialized; this will
|
||||
// also initialize ShellAppSystem first. ShellAppSystem
|
||||
@ -583,16 +572,6 @@ function _globalKeyPressHandler(actor, event) {
|
||||
// This relies on the fact that Clutter.ModifierType is the same as Gdk.ModifierType
|
||||
let action = global.display.get_keybinding_action(keyCode, modifierState);
|
||||
|
||||
// The screenshot action should always be available (even if a
|
||||
// modal dialog is present)
|
||||
if (action == Meta.KeyBindingAction.COMMAND_SCREENSHOT) {
|
||||
let gconf = GConf.Client.get_default();
|
||||
let command = gconf.get_string('/apps/metacity/keybinding_commands/command_screenshot');
|
||||
if (command != null && command != '')
|
||||
Util.spawnCommandLine(command);
|
||||
return true;
|
||||
}
|
||||
|
||||
// Other bindings are only available to the user session when the overview is up and
|
||||
// no modal dialog is present.
|
||||
if (global.session_type == Shell.SessionType.USER && (!overview.visible || modalCount > 1))
|
||||
@ -668,14 +647,17 @@ function _findModal(actor) {
|
||||
* initiated event. If not provided then the value of
|
||||
* global.get_current_time() is assumed.
|
||||
*
|
||||
* @options: optional Meta.ModalOptions flags to indicate that the
|
||||
* pointer is alrady grabbed
|
||||
*
|
||||
* Returns: true iff we successfully acquired a grab or already had one
|
||||
*/
|
||||
function pushModal(actor, timestamp) {
|
||||
function pushModal(actor, timestamp, options) {
|
||||
if (timestamp == undefined)
|
||||
timestamp = global.get_current_time();
|
||||
|
||||
if (modalCount == 0) {
|
||||
if (!global.begin_modal(timestamp)) {
|
||||
if (!global.begin_modal(timestamp, options ? options : 0)) {
|
||||
log('pushModal: invocation of begin_modal failed');
|
||||
return false;
|
||||
}
|
||||
|
@ -597,8 +597,7 @@ Notification.prototype = {
|
||||
this._table.add_style_class_name('multi-line-notification');
|
||||
this._scrollArea = new St.ScrollView({ name: 'notification-scrollview',
|
||||
vscrollbar_policy: this._scrollPolicy,
|
||||
hscrollbar_policy: Gtk.PolicyType.NEVER,
|
||||
style_class: 'vfade' });
|
||||
hscrollbar_policy: Gtk.PolicyType.NEVER });
|
||||
this._table.add(this._scrollArea, { row: 1,
|
||||
col: 2 });
|
||||
this._updateLastColumnSettings();
|
||||
@ -992,6 +991,7 @@ Source.prototype = {
|
||||
|
||||
this.isTransient = false;
|
||||
this.isChat = false;
|
||||
this.isMuted = false;
|
||||
|
||||
this.notifications = [];
|
||||
},
|
||||
@ -1056,6 +1056,13 @@ Source.prototype = {
|
||||
this.emit('title-changed');
|
||||
},
|
||||
|
||||
setMuted: function(muted) {
|
||||
if (!this.isChat || this.isMuted == muted)
|
||||
return;
|
||||
this.isMuted = muted;
|
||||
this.emit('muted-changed');
|
||||
},
|
||||
|
||||
// Called to create a new icon actor (of size this.ICON_SIZE).
|
||||
// Must be overridden by the subclass if you do not pass icons
|
||||
// explicitly to the Notification() constructor.
|
||||
@ -1094,7 +1101,8 @@ Source.prototype = {
|
||||
|
||||
notify: function(notification) {
|
||||
this.pushNotification(notification);
|
||||
this.emit('notify', notification);
|
||||
if (!this.isMuted)
|
||||
this.emit('notify', notification);
|
||||
},
|
||||
|
||||
destroy: function(reason) {
|
||||
@ -1210,6 +1218,18 @@ SummaryItem.prototype = {
|
||||
}));
|
||||
this.rightClickMenu.add(item.actor);
|
||||
|
||||
if (source.isChat) {
|
||||
item = new PopupMenu.PopupMenuItem('');
|
||||
item.actor.connect('notify::mapped', Lang.bind(this, function() {
|
||||
item.label.set_text(source.isMuted ? _("Unmute") : _("Mute"));
|
||||
}));
|
||||
item.connect('activate', Lang.bind(this, function() {
|
||||
source.setMuted(!source.isMuted);
|
||||
this.emit('done-displaying-content');
|
||||
}));
|
||||
this.rightClickMenu.add(item.actor);
|
||||
}
|
||||
|
||||
let focusManager = St.FocusManager.get_for_stage(global.stage);
|
||||
focusManager.add_group(this.rightClickMenu);
|
||||
},
|
||||
@ -1329,12 +1349,15 @@ function MessageTray() {
|
||||
|
||||
MessageTray.prototype = {
|
||||
_init: function() {
|
||||
this._presence = new GnomeSession.Presence();
|
||||
this._presence = new GnomeSession.Presence(Lang.bind(this, function(proxy, error) {
|
||||
this._onStatusChanged(proxy.status);
|
||||
}));
|
||||
this._userStatus = GnomeSession.PresenceStatus.AVAILABLE;
|
||||
this._busy = false;
|
||||
this._backFromAway = false;
|
||||
this._presence.connect('StatusChanged', Lang.bind(this, this._onStatusChanged));
|
||||
this._presence.getStatus(Lang.bind(this, this._onStatusChanged));
|
||||
this._presence.connectSignal('StatusChanged', Lang.bind(this, function(proxy, senderName, [status]) {
|
||||
this._onStatusChanged(status);
|
||||
}));
|
||||
|
||||
this.actor = new St.Group({ name: 'message-tray',
|
||||
reactive: true,
|
||||
@ -1518,6 +1541,14 @@ MessageTray.prototype = {
|
||||
|
||||
source.connect('notify', Lang.bind(this, this._onNotify));
|
||||
|
||||
source.connect('muted-changed', Lang.bind(this,
|
||||
function () {
|
||||
if (source.isMuted)
|
||||
this._notificationQueue = this._notificationQueue.filter(function(notification) {
|
||||
return source != notification.source;
|
||||
});
|
||||
}));
|
||||
|
||||
summaryItem.actor.connect('notify::hover', Lang.bind(this,
|
||||
function () {
|
||||
this._onSummaryItemHoverChanged(summaryItem);
|
||||
@ -1832,7 +1863,7 @@ MessageTray.prototype = {
|
||||
// automatically. Instead, the user is able to expand the notification by mousing away from it and then
|
||||
// mousing back in. Because this is an expected action, we set the boolean flag that indicates that a longer
|
||||
// timeout should be used before popping down the notification.
|
||||
if (this._notificationBin.contains(actorAtShowNotificationPosition)) {
|
||||
if (this.actor.contains(actorAtShowNotificationPosition)) {
|
||||
this._useLongerTrayLeftTimeout = true;
|
||||
return;
|
||||
}
|
||||
@ -1874,7 +1905,7 @@ MessageTray.prototype = {
|
||||
this._updateState();
|
||||
},
|
||||
|
||||
_onStatusChanged: function(presence, status) {
|
||||
_onStatusChanged: function(status) {
|
||||
this._backFromAway = (this._userStatus == GnomeSession.PresenceStatus.IDLE && this._userStatus != status);
|
||||
this._userStatus = status;
|
||||
|
||||
|
@ -110,7 +110,7 @@ ModalDialog.prototype = {
|
||||
this._buttonLayout.destroy_children();
|
||||
this._actionKeys = {};
|
||||
|
||||
for (let i = 0; i < buttons.length; i ++) {
|
||||
for (let i = 0; i < buttons.length; i++) {
|
||||
let buttonInfo = buttons[i];
|
||||
let label = buttonInfo['label'];
|
||||
let action = buttonInfo['action'];
|
||||
|
@ -1,7 +1,7 @@
|
||||
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
|
||||
|
||||
const Clutter = imports.gi.Clutter;
|
||||
const DBus = imports.dbus;
|
||||
const Gio = imports.gi.Gio;
|
||||
const GLib = imports.gi.GLib;
|
||||
const Lang = imports.lang;
|
||||
const Shell = imports.gi.Shell;
|
||||
@ -16,49 +16,52 @@ const Util = imports.misc.util;
|
||||
|
||||
let nextNotificationId = 1;
|
||||
|
||||
// Should really be defined in dbus.js
|
||||
const BusIface = {
|
||||
name: 'org.freedesktop.DBus',
|
||||
methods: [{ name: 'GetConnectionUnixProcessID',
|
||||
inSignature: 's',
|
||||
outSignature: 'i' }]
|
||||
};
|
||||
// Should really be defined in Gio.js
|
||||
const BusIface = <interface name="org.freedesktop.DBus">
|
||||
<method name="GetConnectionUnixProcessID">
|
||||
<arg type="s" direction="in" />
|
||||
<arg type="u" direction="out" />
|
||||
</method>
|
||||
</interface>;
|
||||
|
||||
const Bus = function () {
|
||||
this._init();
|
||||
};
|
||||
var BusProxy = Gio.DBusProxy.makeProxyWrapper(BusIface);
|
||||
function Bus() {
|
||||
return new BusProxy(Gio.DBus.session, 'org.freedesktop.DBus', '/org/freedesktop/DBus');
|
||||
}
|
||||
|
||||
Bus.prototype = {
|
||||
_init: function() {
|
||||
DBus.session.proxifyObject(this, 'org.freedesktop.DBus', '/org/freedesktop/DBus');
|
||||
}
|
||||
};
|
||||
|
||||
DBus.proxifyPrototype(Bus.prototype, BusIface);
|
||||
|
||||
const NotificationDaemonIface = {
|
||||
name: 'org.freedesktop.Notifications',
|
||||
methods: [{ name: 'Notify',
|
||||
inSignature: 'susssasa{sv}i',
|
||||
outSignature: 'u'
|
||||
},
|
||||
{ name: 'CloseNotification',
|
||||
inSignature: 'u',
|
||||
outSignature: ''
|
||||
},
|
||||
{ name: 'GetCapabilities',
|
||||
inSignature: '',
|
||||
outSignature: 'as'
|
||||
},
|
||||
{ name: 'GetServerInformation',
|
||||
inSignature: '',
|
||||
outSignature: 'ssss'
|
||||
}],
|
||||
signals: [{ name: 'NotificationClosed',
|
||||
inSignature: 'uu' },
|
||||
{ name: 'ActionInvoked',
|
||||
inSignature: 'us' }]
|
||||
};
|
||||
const NotificationDaemonIface = <interface name="org.freedesktop.Notifications">
|
||||
<method name="Notify">
|
||||
<arg type="s" direction="in"/>
|
||||
<arg type="u" direction="in"/>
|
||||
<arg type="s" direction="in"/>
|
||||
<arg type="s" direction="in"/>
|
||||
<arg type="s" direction="in"/>
|
||||
<arg type="as" direction="in"/>
|
||||
<arg type="a{sv}" direction="in"/>
|
||||
<arg type="i" direction="in"/>
|
||||
<arg type="u" direction="out"/>
|
||||
</method>
|
||||
<method name="CloseNotification">
|
||||
<arg type="u" direction="in"/>
|
||||
</method>
|
||||
<method name="GetCapabilities">
|
||||
<arg type="as" direction="out"/>
|
||||
</method>
|
||||
<method name="GetServerInformation">
|
||||
<arg type="s" direction="out"/>
|
||||
<arg type="s" direction="out"/>
|
||||
<arg type="s" direction="out"/>
|
||||
<arg type="s" direction="out"/>
|
||||
</method>
|
||||
<signal name="NotificationClosed">
|
||||
<arg type="u"/>
|
||||
<arg type="u"/>
|
||||
</signal>
|
||||
<signal name="ActionInvoked">
|
||||
<arg type="u"/>
|
||||
<arg type="s"/>
|
||||
</signal>
|
||||
</interface>;
|
||||
|
||||
const NotificationClosedReason = {
|
||||
EXPIRED: 1,
|
||||
@ -90,7 +93,8 @@ function NotificationDaemon() {
|
||||
|
||||
NotificationDaemon.prototype = {
|
||||
_init: function() {
|
||||
DBus.session.exportObject('/org/freedesktop/Notifications', this);
|
||||
this._dbusImpl = Gio.DBusExportedObject.wrapJSObject(NotificationDaemonIface, this);
|
||||
this._dbusImpl.export(Gio.DBus.session, '/org/freedesktop/Notifications');
|
||||
|
||||
this._sources = {};
|
||||
this._senderToPid = {};
|
||||
@ -195,8 +199,8 @@ NotificationDaemon.prototype = {
|
||||
return source;
|
||||
},
|
||||
|
||||
Notify: function(appName, replacesId, icon, summary, body,
|
||||
actions, hints, timeout) {
|
||||
NotifyAsync: function(params, invocation) {
|
||||
let [appName, replacesId, icon, summary, body, actions, hints, timeout] = params;
|
||||
let id;
|
||||
|
||||
// Filter out chat, presence, calls and invitation notifications from
|
||||
@ -215,7 +219,7 @@ NotificationDaemon.prototype = {
|
||||
function () {
|
||||
this._emitNotificationClosed(id, NotificationClosedReason.DISMISSED);
|
||||
}));
|
||||
return id;
|
||||
return invocation.return_value(GLib.Variant.new('(u)', [id]));
|
||||
}
|
||||
|
||||
let rewrites = rewriteRules[appName];
|
||||
@ -227,6 +231,11 @@ NotificationDaemon.prototype = {
|
||||
}
|
||||
}
|
||||
|
||||
for (let hint in hints) {
|
||||
// unpack the variants
|
||||
hints[hint] = hints[hint].deep_unpack();
|
||||
}
|
||||
|
||||
hints = Params.parse(hints, { urgency: Urgency.NORMAL }, true);
|
||||
|
||||
// Be compatible with the various hints for image data and image path
|
||||
@ -258,51 +267,55 @@ NotificationDaemon.prototype = {
|
||||
}
|
||||
this._notifications[id] = ndata;
|
||||
|
||||
let sender = DBus.getCurrentMessageContext().sender;
|
||||
let sender = invocation.get_sender();
|
||||
let pid = this._senderToPid[sender];
|
||||
|
||||
let source = this._getSource(appName, pid, ndata, sender);
|
||||
|
||||
if (source) {
|
||||
this._notifyForSource(source, ndata);
|
||||
return id;
|
||||
return invocation.return_value(GLib.Variant.new('(u)', [id]));
|
||||
}
|
||||
|
||||
if (replacesId) {
|
||||
// There's already a pending call to GetConnectionUnixProcessID,
|
||||
// which will see the new notification data when it finishes,
|
||||
// so we don't have to do anything.
|
||||
return id;
|
||||
return invocation.return_value(GLib.Variant.new('(u)', [id]));;
|
||||
}
|
||||
|
||||
this._busProxy.GetConnectionUnixProcessIDRemote(sender, Lang.bind(this,
|
||||
function (pid, ex) {
|
||||
// The app may have updated or removed the notification
|
||||
ndata = this._notifications[id];
|
||||
if (!ndata)
|
||||
return;
|
||||
this._busProxy.GetConnectionUnixProcessIDRemote(sender, Lang.bind(this, function (result, excp) {
|
||||
// The app may have updated or removed the notification
|
||||
ndata = this._notifications[id];
|
||||
if (!ndata)
|
||||
return;
|
||||
|
||||
source = this._getSource(appName, pid, ndata, sender);
|
||||
if (excp) {
|
||||
logError(excp, 'Call to GetConnectionUnixProcessID failed');
|
||||
return;
|
||||
}
|
||||
|
||||
// We only store sender-pid entries for persistent sources.
|
||||
// Removing the entries once the source is destroyed
|
||||
// would result in the entries associated with transient
|
||||
// sources removed once the notification is shown anyway.
|
||||
// However, keeping these pairs would mean that we would
|
||||
// possibly remove an entry associated with a persistent
|
||||
// source when a transient source for the same sender is
|
||||
// distroyed.
|
||||
if (!source.isTransient) {
|
||||
this._senderToPid[sender] = pid;
|
||||
source.connect('destroy', Lang.bind(this,
|
||||
function() {
|
||||
delete this._senderToPid[sender];
|
||||
}));
|
||||
}
|
||||
this._notifyForSource(source, ndata);
|
||||
}));
|
||||
let [pid] = result;
|
||||
source = this._getSource(appName, pid, ndata, sender);
|
||||
|
||||
return id;
|
||||
// We only store sender-pid entries for persistent sources.
|
||||
// Removing the entries once the source is destroyed
|
||||
// would result in the entries associated with transient
|
||||
// sources removed once the notification is shown anyway.
|
||||
// However, keeping these pairs would mean that we would
|
||||
// possibly remove an entry associated with a persistent
|
||||
// source when a transient source for the same sender is
|
||||
// distroyed.
|
||||
if (!source.isTransient) {
|
||||
this._senderToPid[sender] = pid;
|
||||
source.connect('destroy', Lang.bind(this, function() {
|
||||
delete this._senderToPid[sender];
|
||||
}));
|
||||
}
|
||||
this._notifyForSource(source, ndata);
|
||||
}));
|
||||
|
||||
return invocation.return_value(GLib.Variant.new('(u)', [id]));
|
||||
},
|
||||
|
||||
_notifyForSource: function(source, ndata) {
|
||||
@ -442,17 +455,13 @@ NotificationDaemon.prototype = {
|
||||
},
|
||||
|
||||
_emitNotificationClosed: function(id, reason) {
|
||||
DBus.session.emit_signal('/org/freedesktop/Notifications',
|
||||
'org.freedesktop.Notifications',
|
||||
'NotificationClosed', 'uu',
|
||||
[id, reason]);
|
||||
this._dbusImpl.emit_signal('NotificationClosed',
|
||||
GLib.Variant.new('(uu)', [id, reason]));
|
||||
},
|
||||
|
||||
_emitActionInvoked: function(id, action) {
|
||||
DBus.session.emit_signal('/org/freedesktop/Notifications',
|
||||
'org.freedesktop.Notifications',
|
||||
'ActionInvoked', 'us',
|
||||
[id, action]);
|
||||
this._dbusImpl.emit_signal('ActionInvoked',
|
||||
GLib.Variant.new('(us)', [id, action]));
|
||||
},
|
||||
|
||||
_onTrayIconAdded: function(o, icon) {
|
||||
@ -467,8 +476,6 @@ NotificationDaemon.prototype = {
|
||||
}
|
||||
};
|
||||
|
||||
DBus.conformExport(NotificationDaemon.prototype, NotificationDaemonIface);
|
||||
|
||||
function Source(title, pid, sender) {
|
||||
this._init(title, pid, sender);
|
||||
}
|
||||
@ -481,15 +488,12 @@ Source.prototype = {
|
||||
|
||||
this._pid = pid;
|
||||
if (sender)
|
||||
// TODO: dbus-glib implementation of watch_name() doesn’t return an id to be used for
|
||||
// unwatch_name() or implement unwatch_name(), however when we move to using GDBus implementation,
|
||||
// we should save the id here and call unwatch_name() with it in destroy().
|
||||
// Moving to GDBus is the work in progress: https://bugzilla.gnome.org/show_bug.cgi?id=648651
|
||||
// and https://bugzilla.gnome.org/show_bug.cgi?id=622921 .
|
||||
DBus.session.watch_name(sender,
|
||||
false,
|
||||
null,
|
||||
Lang.bind(this, this._onNameVanished));
|
||||
this._nameWatcherId = Gio.DBus.session.watch_name(sender,
|
||||
Gio.BusNameWatcherFlags.NONE,
|
||||
null,
|
||||
Lang.bind(this, this._onNameVanished));
|
||||
else
|
||||
this._nameWatcherId = 0;
|
||||
|
||||
this._setApp();
|
||||
if (this.app)
|
||||
@ -597,6 +601,11 @@ Source.prototype = {
|
||||
},
|
||||
|
||||
destroy: function() {
|
||||
if (this._nameWatcherId) {
|
||||
Gio.DBus.session.unwatch_name(this._nameWatcherId);
|
||||
this._nameWatcherId = 0;
|
||||
}
|
||||
|
||||
MessageTray.Source.prototype.destroy.call(this);
|
||||
}
|
||||
};
|
||||
|
@ -195,9 +195,9 @@ PlacesManager.prototype = {
|
||||
|
||||
this._bookmarksPath = GLib.build_filenamev([GLib.get_home_dir(), '.gtk-bookmarks']);
|
||||
this._bookmarksFile = Gio.file_new_for_path(this._bookmarksPath);
|
||||
let monitor = this._bookmarksFile.monitor_file(Gio.FileMonitorFlags.NONE, null);
|
||||
this._monitor = this._bookmarksFile.monitor_file(Gio.FileMonitorFlags.NONE, null);
|
||||
this._bookmarkTimeoutId = 0;
|
||||
monitor.connect('changed', Lang.bind(this, function () {
|
||||
this._monitor.connect('changed', Lang.bind(this, function () {
|
||||
if (this._bookmarkTimeoutId > 0)
|
||||
return;
|
||||
/* Defensive event compression */
|
||||
|
@ -27,6 +27,7 @@ const AccountsService = imports.gi.AccountsService;
|
||||
const Clutter = imports.gi.Clutter;
|
||||
const St = imports.gi.St;
|
||||
const Pango = imports.gi.Pango;
|
||||
const GLib = imports.gi.GLib;
|
||||
const Gio = imports.gi.Gio;
|
||||
const Mainloop = imports.mainloop;
|
||||
const Polkit = imports.gi.Polkit;
|
||||
@ -88,10 +89,14 @@ AuthenticationDialog.prototype = {
|
||||
if (userNames.length > 1) {
|
||||
log('polkitAuthenticationAgent: Received ' + userNames.length +
|
||||
' identities that can be used for authentication. Only ' +
|
||||
'considering the first one.');
|
||||
'considering one.');
|
||||
}
|
||||
|
||||
let userName = userNames[0];
|
||||
let userName = GLib.get_user_name();
|
||||
if (userNames.indexOf(userName) < 0)
|
||||
userName = 'root';
|
||||
if (userNames.indexOf(userName) < 0)
|
||||
userName = userNames[0];
|
||||
|
||||
this._user = AccountsService.UserManager.get_default().get_user(userName);
|
||||
let userRealName = this._user.get_real_name()
|
||||
|
@ -108,14 +108,16 @@ PopupBaseMenuItem.prototype = {
|
||||
this.emit('activate', event);
|
||||
},
|
||||
|
||||
setActive: function (active) {
|
||||
setActive: function (active, params) {
|
||||
let activeChanged = active != this.active;
|
||||
params = Params.parse (params, { grabKeyboard: true });
|
||||
|
||||
if (activeChanged) {
|
||||
this.active = active;
|
||||
if (active) {
|
||||
this.actor.add_style_pseudo_class('active');
|
||||
this.actor.grab_key_focus();
|
||||
if (params.grabKeyboard)
|
||||
this.actor.grab_key_focus();
|
||||
} else
|
||||
this.actor.remove_style_pseudo_class('active');
|
||||
this.emit('active-changed', active);
|
||||
@ -1019,6 +1021,11 @@ PopupMenuBase.prototype = {
|
||||
}
|
||||
if (menuItem instanceof PopupMenuSection) {
|
||||
this._connectSubMenuSignals(menuItem, menuItem);
|
||||
menuItem._closingId = this.connect('open-state-changed',
|
||||
function(self, open) {
|
||||
if (!open)
|
||||
menuItem.close(false);
|
||||
});
|
||||
menuItem.connect('destroy', Lang.bind(this, function() {
|
||||
menuItem.disconnect(menuItem._subMenuActivateId);
|
||||
menuItem.disconnect(menuItem._subMenuActiveChangeId);
|
||||
@ -1418,9 +1425,10 @@ PopupMenuSection.prototype = {
|
||||
this.isOpen = true;
|
||||
},
|
||||
|
||||
// deliberately ignore any attempt to open() or close()
|
||||
open: function(animate) { },
|
||||
close: function() { },
|
||||
// deliberately ignore any attempt to open() or close(), but emit the
|
||||
// corresponding signal so children can still pick it up
|
||||
open: function(animate) { this.emit('open-state-changed', true); },
|
||||
close: function() { this.emit('open-state-changed', false); },
|
||||
}
|
||||
|
||||
function PopupSubMenuMenuItem() {
|
||||
@ -1494,6 +1502,8 @@ PopupComboMenu.prototype = {
|
||||
this.actor._delegate = this;
|
||||
this.actor.connect('key-press-event', Lang.bind(this, this._onKeyPressEvent));
|
||||
this.actor.connect('key-focus-in', Lang.bind(this, this._onKeyFocusIn));
|
||||
sourceActor.connect('style-changed',
|
||||
Lang.bind(this, this._onSourceActorStyleChanged));
|
||||
this._activeItemPos = -1;
|
||||
global.focus_manager.add_group(this.actor);
|
||||
},
|
||||
@ -1513,6 +1523,26 @@ PopupComboMenu.prototype = {
|
||||
activeItem.actor.grab_key_focus();
|
||||
},
|
||||
|
||||
_onSourceActorStyleChanged: function() {
|
||||
// PopupComboBoxMenuItem clones the active item's actors
|
||||
// to work with arbitrary items in the menu; this means
|
||||
// that we need to propagate some style information and
|
||||
// enforce style updates even when the menu is closed
|
||||
let activeItem = this._getMenuItems()[this._activeItemPos];
|
||||
if (this.sourceActor.has_style_pseudo_class('insensitive'))
|
||||
activeItem.actor.add_style_pseudo_class('insensitive');
|
||||
else
|
||||
activeItem.actor.remove_style_pseudo_class('insensitive');
|
||||
|
||||
// To propagate the :active style, we need to make sure that the
|
||||
// internal state of the PopupComboMenu is updated as well, but
|
||||
// we must not move the keyboard grab
|
||||
activeItem.setActive(this.sourceActor.has_style_pseudo_class('active'),
|
||||
{ grabKeyboard: false });
|
||||
|
||||
_ensureStyle(this.actor);
|
||||
},
|
||||
|
||||
open: function() {
|
||||
if (this.isOpen)
|
||||
return;
|
||||
|
@ -1,6 +1,5 @@
|
||||
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
|
||||
|
||||
const DBus = imports.dbus;
|
||||
const Gio = imports.gi.Gio;
|
||||
const Mainloop = imports.mainloop;
|
||||
const Meta = imports.gi.Meta;
|
||||
@ -70,24 +69,21 @@ function waitLeisure() {
|
||||
};
|
||||
}
|
||||
|
||||
const PerfHelperIface = {
|
||||
name: 'org.gnome.Shell.PerfHelper',
|
||||
methods: [{ name: 'CreateWindow', inSignature: 'iibb', outSignature: '' },
|
||||
{ name: 'WaitWindows', inSignature: '', outSignature: '' },
|
||||
{ name: 'DestroyWindows', inSignature: '', outSignature: ''}]
|
||||
};
|
||||
const PerfHelperIface = <interface name="org.gnome.Shell.PerfHelper">
|
||||
<method name="CreateWindow">
|
||||
<arg type="i" direction="in" />
|
||||
<arg type="i" direction="in" />
|
||||
<arg type="b" direction="in" />
|
||||
<arg type="b" direction="in" />
|
||||
</method>
|
||||
<method name="WaitWindows" />
|
||||
<method name="DestroyWindows" />
|
||||
</interface>;
|
||||
|
||||
const PerfHelper = function () {
|
||||
this._init();
|
||||
};
|
||||
|
||||
PerfHelper.prototype = {
|
||||
_init: function() {
|
||||
DBus.session.proxifyObject(this, 'org.gnome.Shell.PerfHelper', '/org/gnome/Shell/PerfHelper');
|
||||
}
|
||||
};
|
||||
|
||||
DBus.proxifyPrototype(PerfHelper.prototype, PerfHelperIface);
|
||||
var PerfHelperProxy = Gio.DBusProxy.makeProxyWrapper(PerfHelperIface);
|
||||
function PerfHelper() {
|
||||
return new PerfHelperProxy(Gio.DBus.session, 'org.gnome.Shell.PerfHelper', '/org/gnome/Shell/PerfHelper');
|
||||
}
|
||||
|
||||
let _perfHelper = null;
|
||||
function _getPerfHelper() {
|
||||
|
@ -1,71 +1,70 @@
|
||||
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
|
||||
|
||||
const DBus = imports.dbus;
|
||||
const Lang = imports.lang;
|
||||
const Gio = imports.gi.Gio;
|
||||
const GLib = imports.gi.GLib;
|
||||
|
||||
const Config = imports.misc.config;
|
||||
const ExtensionSystem = imports.ui.extensionSystem;
|
||||
const Main = imports.ui.main;
|
||||
|
||||
const GnomeShellIface = {
|
||||
name: 'org.gnome.Shell',
|
||||
methods: [{ name: 'Eval',
|
||||
inSignature: 's',
|
||||
outSignature: 'bs'
|
||||
},
|
||||
{ name: 'ListExtensions',
|
||||
inSignature: '',
|
||||
outSignature: 'a{sa{sv}}'
|
||||
},
|
||||
{ name: 'GetExtensionInfo',
|
||||
inSignature: 's',
|
||||
outSignature: 'a{sv}'
|
||||
},
|
||||
{ name: 'GetExtensionErrors',
|
||||
inSignature: 's',
|
||||
outSignature: 'as'
|
||||
},
|
||||
{ name: 'ScreenshotArea',
|
||||
inSignature: 'iiiis',
|
||||
outSignature: 'b'
|
||||
},
|
||||
{ name: 'ScreenshotWindow',
|
||||
inSignature: 'bs',
|
||||
outSignature: 'b'
|
||||
},
|
||||
{ name: 'Screenshot',
|
||||
inSignature: 's',
|
||||
outSignature: 'b'
|
||||
},
|
||||
{ name: 'EnableExtension',
|
||||
inSignature: 's',
|
||||
outSignature: ''
|
||||
},
|
||||
{ name: 'DisableExtension',
|
||||
inSignature: 's',
|
||||
outSignature: ''
|
||||
},
|
||||
{ name: 'InstallRemoteExtension',
|
||||
inSignature: 'ss',
|
||||
outSignature: ''
|
||||
},
|
||||
{ name: 'UninstallExtension',
|
||||
inSignature: 's',
|
||||
outSignature: 'b'
|
||||
}
|
||||
],
|
||||
signals: [{ name: 'ExtensionStatusChanged',
|
||||
inSignature: 'sis' }],
|
||||
properties: [{ name: 'OverviewActive',
|
||||
signature: 'b',
|
||||
access: 'readwrite' },
|
||||
{ name: 'ApiVersion',
|
||||
signature: 'i',
|
||||
access: 'read' },
|
||||
{ name: 'ShellVersion',
|
||||
signature: 's',
|
||||
access: 'read' }]
|
||||
};
|
||||
const GnomeShellIface = <interface name="org.gnome.Shell">
|
||||
<method name="Eval">
|
||||
<arg type="s" direction="in" name="script" />
|
||||
<arg type="b" direction="out" name="success" />
|
||||
<arg type="s" direction="out" name="result" />
|
||||
</method>
|
||||
<method name="ListExtensions">
|
||||
<arg type="a{sa{sv}}" direction="out" name="extensions" />
|
||||
</method>
|
||||
<method name="GetExtensionInfo">
|
||||
<arg type="s" direction="in" name="extension" />
|
||||
<arg type="a{sv}" direction="out" name="info" />
|
||||
</method>
|
||||
<method name="GetExtensionErrors">
|
||||
<arg type="s" direction="in" name="extension" />
|
||||
<arg type="as" direction="out" name="errors" />
|
||||
</method>
|
||||
<method name="ScreenshotArea">
|
||||
<arg type="i" direction="in" name="x"/>
|
||||
<arg type="i" direction="in" name="y"/>
|
||||
<arg type="i" direction="in" name="width"/>
|
||||
<arg type="i" direction="in" name="height"/>
|
||||
<arg type="s" direction="in" name="filename"/>
|
||||
<arg type="b" direction="out" name="success"/>
|
||||
</method>
|
||||
<method name="ScreenshotWindow">
|
||||
<arg type="b" direction="in" name="include_frame"/>
|
||||
<arg type="s" direction="in" name="filename"/>
|
||||
<arg type="b" direction="out" name="success"/>
|
||||
</method>
|
||||
<method name="Screenshot">
|
||||
<arg type="s" direction="in" name="filename"/>
|
||||
<arg type="b" direction="out" name="success"/>
|
||||
</method>
|
||||
<method name="EnableExtension">
|
||||
<arg type="s" direction="in" name="uuid"/>
|
||||
</method>
|
||||
<method name="DisableExtension">
|
||||
<arg type="s" direction="in" name="uuid"/>
|
||||
</method>
|
||||
<method name="InstallRemoteExtension">
|
||||
<arg type="s" direction="in" name="uuid"/>
|
||||
<arg type="s" direction="in" name="version"/>
|
||||
</method>
|
||||
<method name="UninstallExtension">
|
||||
<arg type="s" direction="in" name="uuid"/>
|
||||
<arg type="b" direction="out" name="success"/>
|
||||
</method>
|
||||
<property name="OverviewActive" type="b" access="readwrite" />
|
||||
<property name="ApiVersion" type="i" access="read" />
|
||||
<property name="ShellVersion" type="s" access="read" />
|
||||
<signal name="ExtensionStatusChanged">
|
||||
<arg type="s" name="uuid"/>
|
||||
<arg type="i" name="state"/>
|
||||
<arg type="s" name="error"/>
|
||||
</signal>
|
||||
</interface>;
|
||||
|
||||
function GnomeShell() {
|
||||
this._init();
|
||||
@ -73,7 +72,8 @@ function GnomeShell() {
|
||||
|
||||
GnomeShell.prototype = {
|
||||
_init: function() {
|
||||
DBus.session.exportObject('/org/gnome/Shell', this);
|
||||
this._dbusImpl = Gio.DBusExportedObject.wrapJSObject(GnomeShellIface, this);
|
||||
this._dbusImpl.export(Gio.DBus.session, '/org/gnome/Shell');
|
||||
ExtensionSystem.connect('extension-state-changed',
|
||||
Lang.bind(this, this._extensionStateChanged));
|
||||
},
|
||||
@ -93,6 +93,9 @@ GnomeShell.prototype = {
|
||||
*
|
||||
*/
|
||||
Eval: function(code) {
|
||||
if (!global.settings.get_boolean('development-tools'))
|
||||
return [false, null];
|
||||
|
||||
let returnValue;
|
||||
let success;
|
||||
try {
|
||||
@ -153,11 +156,33 @@ GnomeShell.prototype = {
|
||||
},
|
||||
|
||||
ListExtensions: function() {
|
||||
return ExtensionSystem.extensionMeta;
|
||||
let out = {};
|
||||
for (let uuid in ExtensionSystem.extensionMeta) {
|
||||
let dbusObj = this.GetExtensionInfo(uuid);
|
||||
out[uuid] = dbusObj;
|
||||
}
|
||||
return out;
|
||||
},
|
||||
|
||||
GetExtensionInfo: function(uuid) {
|
||||
return ExtensionSystem.extensionMeta[uuid] || {};
|
||||
let meta = ExtensionSystem.extensionMeta[uuid] || {};
|
||||
let out = {};
|
||||
for (let key in meta) {
|
||||
let val = meta[key];
|
||||
let type;
|
||||
switch (typeof val) {
|
||||
case 'string':
|
||||
type = 's';
|
||||
break;
|
||||
case 'number':
|
||||
type = 'd';
|
||||
break;
|
||||
default:
|
||||
continue;
|
||||
}
|
||||
out[key] = GLib.Variant.new(type, val);
|
||||
}
|
||||
return out;
|
||||
},
|
||||
|
||||
GetExtensionErrors: function(uuid) {
|
||||
@ -202,12 +227,7 @@ GnomeShell.prototype = {
|
||||
ShellVersion: Config.PACKAGE_VERSION,
|
||||
|
||||
_extensionStateChanged: function(_, newState) {
|
||||
DBus.session.emit_signal('/org/gnome/Shell',
|
||||
'org.gnome.Shell',
|
||||
'ExtensionStatusChanged', 'sis',
|
||||
[newState.uuid, newState.state, newState.error]);
|
||||
this._dbusImpl.emit_signal('ExtensionStatusChanged',
|
||||
GLib.Variant.new('(sis)', [newState.uuid, newState.state, newState.error]));
|
||||
}
|
||||
};
|
||||
|
||||
DBus.conformExport(GnomeShell.prototype, GnomeShellIface);
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
|
||||
|
||||
const DBus = imports.dbus;
|
||||
const GConf = imports.gi.GConf;
|
||||
const GDesktopEnums = imports.gi.GDesktopEnums;
|
||||
const Gio = imports.gi.Gio;
|
||||
const Gtk = imports.gi.Gtk;
|
||||
const Lang = imports.lang;
|
||||
@ -30,8 +30,8 @@ const DPI_FACTOR_LARGE = 1.25;
|
||||
const DPI_FACTOR_LARGER = 1.5;
|
||||
const DPI_FACTOR_LARGEST = 2.0;
|
||||
|
||||
const KEY_META_DIR = '/apps/metacity/general';
|
||||
const KEY_VISUAL_BELL = KEY_META_DIR + '/visual_bell';
|
||||
const WM_SCHEMA = 'org.gnome.desktop.wm.preferences';
|
||||
const KEY_VISUAL_BELL = 'visual-bell';
|
||||
|
||||
const DESKTOP_INTERFACE_SCHEMA = 'org.gnome.desktop.interface';
|
||||
const KEY_GTK_THEME = 'gtk-theme';
|
||||
@ -50,10 +50,6 @@ ATIndicator.prototype = {
|
||||
_init: function() {
|
||||
PanelMenu.SystemStatusButton.prototype._init.call(this, 'preferences-desktop-accessibility', null);
|
||||
|
||||
let client = GConf.Client.get_default();
|
||||
client.add_dir(KEY_META_DIR, GConf.ClientPreloadType.PRELOAD_ONELEVEL, null);
|
||||
client.notify_add(KEY_META_DIR, Lang.bind(this, this._keyChanged), null, null);
|
||||
|
||||
let highContrast = this._buildHCItem();
|
||||
this.menu.addMenuItem(highContrast);
|
||||
|
||||
@ -72,7 +68,7 @@ ATIndicator.prototype = {
|
||||
'screen-keyboard-enabled');
|
||||
this.menu.addMenuItem(screenKeyboard);
|
||||
|
||||
let visualBell = this._buildItemGConf(_("Visual Alerts"), client, KEY_VISUAL_BELL);
|
||||
let visualBell = this._buildItem(_("Visual Alerts"), WM_SCHEMA, KEY_VISUAL_BELL);
|
||||
this.menu.addMenuItem(visualBell);
|
||||
|
||||
let stickyKeys = this._buildItem(_("Sticky Keys"), A11Y_SCHEMA, KEY_STICKY_KEYS_ENABLED);
|
||||
@ -102,22 +98,6 @@ ATIndicator.prototype = {
|
||||
return widget;
|
||||
},
|
||||
|
||||
_buildItemGConf: function(string, client, key) {
|
||||
function on_get() {
|
||||
return client.get_bool(key);
|
||||
}
|
||||
let widget = this._buildItemExtended(string,
|
||||
client.get_bool(key),
|
||||
client.key_is_writable(key),
|
||||
function(enabled) {
|
||||
client.set_bool(key, enabled);
|
||||
});
|
||||
this.connect('gconf-changed', function() {
|
||||
widget.setToggleState(client.get_bool(key));
|
||||
});
|
||||
return widget;
|
||||
},
|
||||
|
||||
_buildItem: function(string, schema, key) {
|
||||
let settings = new Gio.Settings({ schema: schema });
|
||||
let widget = this._buildItemExtended(string,
|
||||
@ -191,10 +171,6 @@ ATIndicator.prototype = {
|
||||
widget.setToggleState(active);
|
||||
});
|
||||
return widget;
|
||||
},
|
||||
|
||||
_keyChanged: function() {
|
||||
this.emit('gconf-changed');
|
||||
}
|
||||
};
|
||||
Signals.addSignalMethods(ATIndicator.prototype);
|
||||
|
@ -204,9 +204,10 @@ Indicator.prototype = {
|
||||
|
||||
_buildDeviceSubMenu: function(item, device) {
|
||||
if (device.can_connect) {
|
||||
let menuitem = new PopupMenu.PopupSwitchMenuItem(_("Connection"), device.connected);
|
||||
item._connected = device.connected;
|
||||
item._connectedMenuitem = new PopupMenu.PopupSwitchMenuItem(_("Connection"), device.connected);
|
||||
item._connectedMenuitem.connect('toggled', Lang.bind(this, function() {
|
||||
item._connectedMenuItem = menuitem;
|
||||
menuitem.connect('toggled', Lang.bind(this, function() {
|
||||
if (item._connected > ConnectionState.CONNECTED) {
|
||||
// operation already in progress, revert
|
||||
// (should not happen anyway)
|
||||
@ -241,7 +242,7 @@ Indicator.prototype = {
|
||||
}
|
||||
}));
|
||||
|
||||
item.menu.addMenuItem(item._connectedMenuitem);
|
||||
item.menu.addMenuItem(menuitem);
|
||||
}
|
||||
|
||||
if (device.capabilities & GnomeBluetoothApplet.Capabilities.OBEX_PUSH) {
|
||||
|
@ -1,6 +1,5 @@
|
||||
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
|
||||
const ByteArray = imports.byteArray;
|
||||
const DBus = imports.dbus;
|
||||
const GLib = imports.gi.GLib;
|
||||
const GObject = imports.gi.GObject;
|
||||
const Lang = imports.lang;
|
||||
@ -1104,10 +1103,10 @@ NMDeviceWireless.prototype = {
|
||||
let activeAp = this.device.active_access_point;
|
||||
|
||||
if (activeAp) {
|
||||
let pos = this._findNetwork(activeAp);
|
||||
let res = this._findExistingNetwork(activeAp);
|
||||
|
||||
if (pos != -1)
|
||||
this._activeNetwork = this._networks[pos];
|
||||
if (res != null)
|
||||
this._activeNetwork = this._networks[res.network];
|
||||
}
|
||||
|
||||
// we don't refresh the view here, setActiveConnection will
|
||||
@ -1181,6 +1180,18 @@ NMDeviceWireless.prototype = {
|
||||
return true;
|
||||
},
|
||||
|
||||
_findExistingNetwork: function(accessPoint) {
|
||||
for (let i = 0; i < this._networks.length; i++) {
|
||||
let apObj = this._networks[i];
|
||||
for (let j = 0; j < apObj.accessPoints.length; j++) {
|
||||
if (apObj.accessPoints[j] == accessPoint)
|
||||
return { network: i, ap: j };
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
},
|
||||
|
||||
_findNetwork: function(accessPoint) {
|
||||
if (accessPoint.get_ssid() == null)
|
||||
return -1;
|
||||
@ -1273,22 +1284,15 @@ NMDeviceWireless.prototype = {
|
||||
},
|
||||
|
||||
_accessPointRemoved: function(device, accessPoint) {
|
||||
let pos = this._findNetwork(accessPoint);
|
||||
let res = this._findExistingNetwork(accessPoint);
|
||||
|
||||
if (pos == -1) {
|
||||
if (res == null) {
|
||||
log('Removing an access point that was never added');
|
||||
return;
|
||||
}
|
||||
|
||||
let apObj = this._networks[pos];
|
||||
let i = apObj.accessPoints.indexOf(accessPoint);
|
||||
|
||||
if (i == -1) {
|
||||
log('Removing an access point that was never added');
|
||||
return;
|
||||
}
|
||||
|
||||
apObj.accessPoints.splice(i, 1);
|
||||
let apObj = this._networks[res.network];
|
||||
apObj.accessPoints.splice(res.ap, 1);
|
||||
|
||||
if (apObj.accessPoints.length == 0) {
|
||||
if (this._activeNetwork == apObj)
|
||||
@ -1302,22 +1306,26 @@ NMDeviceWireless.prototype = {
|
||||
// we removed an item in the main menu, and we have a more submenu
|
||||
// we need to extract the first item in more and move it to the submenu
|
||||
|
||||
let apObj = this._overflowItem.menu.firstMenuItem;
|
||||
if (apObj.item) {
|
||||
apObj.item.destroy();
|
||||
let item = this._overflowItem.menu.firstMenuItem;
|
||||
if (item && item._apObj) {
|
||||
item.destroy();
|
||||
// clear the cycle, and allow the construction of the new item
|
||||
item._apObj.item = null;
|
||||
|
||||
this._createNetworkItem(apObj, NUM_VISIBLE_NETWORKS-1);
|
||||
this._createNetworkItem(item._apObj, NUM_VISIBLE_NETWORKS-1);
|
||||
} else {
|
||||
log('The more... menu was existing and empty! This should not happen');
|
||||
}
|
||||
}
|
||||
|
||||
// This can happen if the removed connection is from the overflow
|
||||
// menu, or if we just moved the last connection out from the menu
|
||||
if (this._overflowItem.menu.length == 0) {
|
||||
if (this._overflowItem.menu.numMenuItems == 0) {
|
||||
this._overflowItem.destroy();
|
||||
this._overflowItem = null;
|
||||
}
|
||||
}
|
||||
this._networks.splice(pos, 1);
|
||||
this._networks.splice(res.network, 1);
|
||||
|
||||
} else if (apObj.item)
|
||||
apObj.item.updateAccessPoints(apObj.accessPoints);
|
||||
@ -1489,18 +1497,16 @@ NMDeviceWireless.prototype = {
|
||||
}
|
||||
|
||||
if(apObj.connections.length > 0) {
|
||||
if (apObj.connections.length == 1)
|
||||
if (apObj.connections.length == 1) {
|
||||
apObj.item = this._createAPItem(apObj.connections[0], apObj, false);
|
||||
else {
|
||||
} else {
|
||||
let title = apObj.ssidText;
|
||||
apObj.item = new PopupMenu.PopupSubMenuMenuItem(title);
|
||||
apObj.item._apObj = apObj;
|
||||
for (let i = 0; i < apObj.connections.length; i++)
|
||||
apObj.item.menu.addMenuItem(this._createAPItem(apObj.connections[i], apObj, true));
|
||||
}
|
||||
} else {
|
||||
apObj.item = new NMNetworkMenuItem(apObj.accessPoints);
|
||||
apObj.item._apObj = apObj;
|
||||
apObj.item.connect('activate', Lang.bind(this, function() {
|
||||
let accessPoints = sortAccessPoints(apObj.accessPoints);
|
||||
if ( (accessPoints[0]._secType == NMAccessPointSecurity.WPA2_ENT)
|
||||
@ -1515,6 +1521,8 @@ NMDeviceWireless.prototype = {
|
||||
}
|
||||
}));
|
||||
}
|
||||
apObj.item._apObj = apObj;
|
||||
|
||||
if (position < NUM_VISIBLE_NETWORKS) {
|
||||
apObj.isMore = false;
|
||||
this.section.addMenuItem(apObj.item, position);
|
||||
@ -2056,10 +2064,11 @@ NMApplet.prototype = {
|
||||
}
|
||||
this.setIcon('network-wireless-connected');
|
||||
} else {
|
||||
if (this._accessPointUpdateId && this._activeAccessPoint != ap) {
|
||||
this._activeAccessPoint.disconnect(this._accessPointUpdateId);
|
||||
if (this._activeAccessPoint != ap) {
|
||||
if (this._accessPointUpdateId)
|
||||
this._activeAccessPoint.disconnect(this._accessPointUpdateId);
|
||||
this._activeAccessPoint = ap;
|
||||
this._activeAccessPointUpdateId = ap.connect('notify::strength', Lang.bind(function() {
|
||||
this._activeAccessPointUpdateId = ap.connect('notify::strength', Lang.bind(this, function() {
|
||||
this.setIcon('network-wireless-signal-' + signalToIcon(ap.strength));
|
||||
}));
|
||||
}
|
||||
@ -2086,8 +2095,9 @@ NMApplet.prototype = {
|
||||
break;
|
||||
}
|
||||
|
||||
if (this._mobileUpdateId && this._mobileUpdateDevice != dev) {
|
||||
this._mobileUpdateDevice.disconnect(this._mobileUpdateId);
|
||||
if (dev.mobileDevice != this._mobileUpdateDevice) {
|
||||
if (this._mobileUpdateId)
|
||||
this._mobileUpdateDevice.disconnect(this._mobileUpdateId);
|
||||
this._mobileUpdateDevice = dev.mobileDevice;
|
||||
this._mobileUpdateId = dev.mobileDevice.connect('notify::signal-quality', Lang.bind(this, function() {
|
||||
this.setIcon('network-cellular-signal-' + signalToIcon(dev.mobileDevice.signal_quality));
|
||||
|
@ -1,7 +1,6 @@
|
||||
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
|
||||
|
||||
const Gio = imports.gi.Gio;
|
||||
const DBus = imports.dbus;
|
||||
const Lang = imports.lang;
|
||||
const Mainloop = imports.mainloop;
|
||||
const Shell = imports.gi.Shell;
|
||||
@ -40,20 +39,18 @@ const UPDeviceState = {
|
||||
PENDING_DISCHARGE: 6
|
||||
};
|
||||
|
||||
const PowerManagerInterface = {
|
||||
name: 'org.gnome.SettingsDaemon.Power',
|
||||
methods: [
|
||||
{ name: 'GetDevices', inSignature: '', outSignature: 'a(susdut)' },
|
||||
{ name: 'GetPrimaryDevice', inSignature: '', outSignature: '(susdut)' },
|
||||
],
|
||||
signals: [
|
||||
{ name: 'Changed', inSignature: '' },
|
||||
],
|
||||
properties: [
|
||||
{ name: 'Icon', signature: 's', access: 'read' },
|
||||
]
|
||||
};
|
||||
let PowerManagerProxy = DBus.makeProxyClass(PowerManagerInterface);
|
||||
const PowerManagerInterface = <interface name="org.gnome.SettingsDaemon.Power">
|
||||
<method name="GetDevices">
|
||||
<arg type="a(susdut)" direction="out" />
|
||||
</method>
|
||||
<method name="GetPrimaryDevice">
|
||||
<arg type="(susdut)" direction="out" />
|
||||
</method>
|
||||
<signal name="Changed" />
|
||||
<property name="Icon" type="s" access="read" />
|
||||
</interface>;
|
||||
|
||||
const PowerManagerProxy = Gio.DBusProxy.makeProxyWrapper(PowerManagerInterface);
|
||||
|
||||
function Indicator() {
|
||||
this._init.apply(this, arguments);
|
||||
@ -64,7 +61,7 @@ Indicator.prototype = {
|
||||
|
||||
_init: function() {
|
||||
PanelMenu.SystemStatusButton.prototype._init.call(this, 'battery-missing');
|
||||
this._proxy = new PowerManagerProxy(DBus.session, BUS_NAME, OBJECT_PATH);
|
||||
this._proxy = new PowerManagerProxy(Gio.DBus.session, BUS_NAME, OBJECT_PATH);
|
||||
|
||||
this._deviceItems = [ ];
|
||||
this._hasPrimary = false;
|
||||
@ -81,19 +78,19 @@ Indicator.prototype = {
|
||||
this.menu.addMenuItem(new PopupMenu.PopupSeparatorMenuItem());
|
||||
this.menu.addSettingsAction(_("Power Settings"), 'gnome-power-panel.desktop');
|
||||
|
||||
this._proxy.connect('Changed', Lang.bind(this, this._devicesChanged));
|
||||
this._proxy.connectSignal('Changed', Lang.bind(this, this._devicesChanged));
|
||||
this._devicesChanged();
|
||||
},
|
||||
|
||||
_readPrimaryDevice: function() {
|
||||
this._proxy.GetPrimaryDeviceRemote(Lang.bind(this, function(device, error) {
|
||||
this._proxy.GetPrimaryDeviceRemote(Lang.bind(this, function(result, error) {
|
||||
if (error) {
|
||||
this._hasPrimary = false;
|
||||
this._primaryDeviceId = null;
|
||||
this._batteryItem.actor.hide();
|
||||
return;
|
||||
}
|
||||
let [device_id, device_type, icon, percentage, state, seconds] = device;
|
||||
let [[device_id, device_type, icon, percentage, state, seconds]] = result;
|
||||
if (device_type == UPDeviceType.BATTERY) {
|
||||
this._hasPrimary = true;
|
||||
let time = Math.round(seconds / 60);
|
||||
@ -130,7 +127,7 @@ Indicator.prototype = {
|
||||
},
|
||||
|
||||
_readOtherDevices: function() {
|
||||
this._proxy.GetDevicesRemote(Lang.bind(this, function(devices, error) {
|
||||
this._proxy.GetDevicesRemote(Lang.bind(this, function(result, error) {
|
||||
this._deviceItems.forEach(function(i) { i.destroy(); });
|
||||
this._deviceItems = [];
|
||||
|
||||
@ -139,6 +136,7 @@ Indicator.prototype = {
|
||||
}
|
||||
|
||||
let position = 0;
|
||||
let [devices] = result;
|
||||
for (let i = 0; i < devices.length; i++) {
|
||||
let [device_id, device_type] = devices[i];
|
||||
if (device_type == UPDeviceType.AC_POWER || device_id == this._primaryDeviceId)
|
||||
@ -153,16 +151,15 @@ Indicator.prototype = {
|
||||
},
|
||||
|
||||
_devicesChanged: function() {
|
||||
this._proxy.GetRemote('Icon', Lang.bind(this, function(icon, error) {
|
||||
if (icon) {
|
||||
let gicon = Gio.icon_new_for_string(icon);
|
||||
this.setGIcon(gicon);
|
||||
this.actor.show();
|
||||
} else {
|
||||
this.menu.close();
|
||||
this.actor.hide();
|
||||
}
|
||||
}));
|
||||
let icon = this._proxy.Icon;
|
||||
if (icon) {
|
||||
let gicon = Gio.icon_new_for_string(icon);
|
||||
this.setGIcon(gicon);
|
||||
this.actor.show();
|
||||
} else {
|
||||
this.menu.close();
|
||||
this.actor.hide();
|
||||
}
|
||||
this._readPrimaryDevice();
|
||||
this._readOtherDevices();
|
||||
}
|
||||
|
@ -1,7 +1,6 @@
|
||||
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
|
||||
|
||||
const Clutter = imports.gi.Clutter;
|
||||
const DBus = imports.dbus;
|
||||
const Lang = imports.lang;
|
||||
const Mainloop = imports.mainloop;
|
||||
const Shell = imports.gi.Shell;
|
||||
|
@ -1,6 +1,5 @@
|
||||
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
|
||||
|
||||
const DBus = imports.dbus;
|
||||
const Gio = imports.gi.Gio;
|
||||
const GLib = imports.gi.GLib;
|
||||
const Lang = imports.lang;
|
||||
@ -900,7 +899,7 @@ ChatNotification.prototype = {
|
||||
}
|
||||
|
||||
let groups = this._contentArea.get_children();
|
||||
for (let i = 0; i < groups.length; i ++) {
|
||||
for (let i = 0; i < groups.length; i++) {
|
||||
let group = groups[i];
|
||||
if (group.get_children().length == 0)
|
||||
group.destroy();
|
||||
@ -938,7 +937,7 @@ ChatNotification.prototype = {
|
||||
let body = highlighter.actor;
|
||||
|
||||
let styles = props.styles;
|
||||
for (let i = 0; i < styles.length; i ++)
|
||||
for (let i = 0; i < styles.length; i++)
|
||||
body.add_style_class_name(styles[i]);
|
||||
|
||||
let group = props.group;
|
||||
@ -1297,7 +1296,7 @@ MultiNotificationSource.prototype = {
|
||||
},
|
||||
|
||||
createNotificationIcon: function() {
|
||||
return new St.Icon({ gicon: Shell.util_icon_from_string(this._icon),
|
||||
return new St.Icon({ gicon: Gio.icon_new_for_string(this._icon),
|
||||
icon_type: St.IconType.FULLCOLOR,
|
||||
icon_size: this.ICON_SIZE });
|
||||
}
|
||||
|
@ -1,7 +1,6 @@
|
||||
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
|
||||
|
||||
const AccountsService = imports.gi.AccountsService;
|
||||
const DBus = imports.dbus;
|
||||
const Gio = imports.gi.Gio;
|
||||
const GLib = imports.gi.GLib;
|
||||
const Lang = imports.lang;
|
||||
@ -158,21 +157,31 @@ IMStatusChooserItem.prototype = {
|
||||
Lang.bind(this, this._changeIMStatus));
|
||||
|
||||
this._presence = new GnomeSession.Presence();
|
||||
this._presence.connect('StatusChanged',
|
||||
Lang.bind(this, this._sessionStatusChanged));
|
||||
this._presence.connectSignal('StatusChanged', Lang.bind(this, function(proxy, senderName, [status]) {
|
||||
this._sessionStatusChanged(status);
|
||||
}));
|
||||
|
||||
this._sessionPresenceRestored = false;
|
||||
this._imPresenceRestored = false;
|
||||
this._currentPresence = undefined;
|
||||
|
||||
this._accountMgr = Tp.AccountManager.dup()
|
||||
this._accountMgr = Tp.AccountManager.dup();
|
||||
this._accountMgr.connect('most-available-presence-changed',
|
||||
Lang.bind(this, this._IMStatusChanged));
|
||||
this._accountMgr.connect('account-enabled',
|
||||
Lang.bind(this, this._IMAccountsChanged));
|
||||
this._accountMgr.connect('account-disabled',
|
||||
Lang.bind(this, this._IMAccountsChanged));
|
||||
this._accountMgr.connect('account-removed',
|
||||
Lang.bind(this, this._IMAccountsChanged));
|
||||
this._accountMgr.prepare_async(null, Lang.bind(this,
|
||||
function(mgr) {
|
||||
let [presence, status, msg] = mgr.get_most_available_presence();
|
||||
|
||||
let savedPresence = global.settings.get_int('saved-im-presence');
|
||||
|
||||
this._IMAccountsChanged(mgr);
|
||||
|
||||
if (savedPresence == presence) {
|
||||
this._IMStatusChanged(mgr, presence, status, msg);
|
||||
} else {
|
||||
@ -199,6 +208,21 @@ IMStatusChooserItem.prototype = {
|
||||
}));
|
||||
},
|
||||
|
||||
destroy: function() {
|
||||
// clean up signal handlers
|
||||
if (this._userLoadedId != 0) {
|
||||
this._user.disconnect(this._userLoadedId);
|
||||
this._userLoadedId = 0;
|
||||
}
|
||||
|
||||
if (this._userChangedId != 0) {
|
||||
this._user.disconnect(this._userChangedId);
|
||||
this._userChangedId = 0;
|
||||
}
|
||||
|
||||
PopupMenu.PopupBaseMenuItem.prototype.destroy.call(this);
|
||||
},
|
||||
|
||||
// Override getColumnWidths()/setColumnWidths() to make the item
|
||||
// independent from the overall column layout of the menu
|
||||
getColumnWidths: function() {
|
||||
@ -267,6 +291,13 @@ IMStatusChooserItem.prototype = {
|
||||
}
|
||||
},
|
||||
|
||||
_IMAccountsChanged: function(mgr) {
|
||||
let accounts = mgr.get_valid_accounts().filter(function(account) {
|
||||
return account.enabled;
|
||||
});
|
||||
this._combo.setSensitive(accounts.length > 0);
|
||||
},
|
||||
|
||||
_IMStatusChanged: function(accountMgr, presence, status, message) {
|
||||
if (!this._imPresenceRestored)
|
||||
this._imPresenceRestored = true;
|
||||
@ -278,12 +309,12 @@ IMStatusChooserItem.prototype = {
|
||||
this._setComboboxPresence(presence);
|
||||
|
||||
if (!this._sessionPresenceRestored) {
|
||||
this._presence.getStatus(Lang.bind(this, this._sessionStatusChanged));
|
||||
this._sessionStatusChanged(this._presence.status);
|
||||
return;
|
||||
}
|
||||
|
||||
if (presence == Tp.ConnectionPresenceType.AVAILABLE)
|
||||
this._presence.setStatus(GnomeSession.PresenceStatus.AVAILABLE);
|
||||
this._presence.status = GnomeSession.PresenceStatus.AVAILABLE;
|
||||
|
||||
// We ignore the actual value of _expectedPresence and never safe
|
||||
// the first presence change after an "automatic" change, assuming
|
||||
@ -362,14 +393,14 @@ IMStatusChooserItem.prototype = {
|
||||
return this._currentPresence;
|
||||
},
|
||||
|
||||
_sessionStatusChanged: function(sessionPresence, sessionStatus) {
|
||||
_sessionStatusChanged: function(sessionStatus) {
|
||||
if (!this._imPresenceRestored)
|
||||
return;
|
||||
|
||||
if (!this._sessionPresenceRestored) {
|
||||
let savedStatus = global.settings.get_int('saved-session-presence');
|
||||
if (sessionStatus != savedStatus) {
|
||||
this._presence.setStatus(savedStatus);
|
||||
this._presence.status = savedStatus;
|
||||
return;
|
||||
}
|
||||
this._sessionPresenceRestored = true;
|
||||
@ -415,7 +446,7 @@ UserMenuButton.prototype = {
|
||||
this._session = new GnomeSession.SessionManager();
|
||||
this._haveShutdown = true;
|
||||
|
||||
this._account_mgr = Tp.AccountManager.dup()
|
||||
this._accountMgr = Tp.AccountManager.dup();
|
||||
|
||||
this._upClient = new UPowerGlib.Client();
|
||||
this._screenSaverProxy = new ScreenSaver.ScreenSaverProxy();
|
||||
@ -438,13 +469,9 @@ UserMenuButton.prototype = {
|
||||
this._idleIcon = new St.Icon({ icon_name: 'user-idle',
|
||||
style_class: 'popup-menu-icon' });
|
||||
|
||||
this._presence.connect('StatusChanged',
|
||||
Lang.bind(this, this._updateSwitch));
|
||||
this._presence.getStatus(Lang.bind(this, this._updateSwitch));
|
||||
|
||||
this._account_mgr.connect('most-available-presence-changed',
|
||||
this._accountMgr.connect('most-available-presence-changed',
|
||||
Lang.bind(this, this._updatePresenceIcon));
|
||||
this._account_mgr.prepare_async(null, Lang.bind(this,
|
||||
this._accountMgr.prepare_async(null, Lang.bind(this,
|
||||
function(mgr) {
|
||||
let [presence, s, msg] = mgr.get_most_available_presence();
|
||||
this._updatePresenceIcon(mgr, presence, s, msg);
|
||||
@ -457,8 +484,16 @@ UserMenuButton.prototype = {
|
||||
this._updateUserName();
|
||||
|
||||
this._createSubMenu();
|
||||
|
||||
this._updateSwitch(this._presence.status);
|
||||
this._presence.connectSignal('StatusChanged', Lang.bind(this, function (proxy, senderName, [status]) {
|
||||
this._updateSwitch(status);
|
||||
}));
|
||||
|
||||
this._userManager.connect('notify::is-loaded',
|
||||
Lang.bind(this, this._updateSwitchUser));
|
||||
this._userManager.connect('notify::has-multiple-users',
|
||||
Lang.bind(this, this._updateSwitchUser));
|
||||
this._userManager.connect('user-added',
|
||||
Lang.bind(this, this._updateSwitchUser));
|
||||
this._userManager.connect('user-removed',
|
||||
@ -503,7 +538,9 @@ UserMenuButton.prototype = {
|
||||
|
||||
_updateSwitchUser: function() {
|
||||
let allowSwitch = !this._lockdownSettings.get_boolean(DISABLE_USER_SWITCH_KEY);
|
||||
if (allowSwitch && this._userManager.can_switch ())
|
||||
if (allowSwitch &&
|
||||
this._userManager.can_switch() &&
|
||||
this._userManager.has_multiple_users)
|
||||
this._loginScreenItem.actor.show();
|
||||
else
|
||||
this._loginScreenItem.actor.hide();
|
||||
@ -557,7 +594,7 @@ UserMenuButton.prototype = {
|
||||
}
|
||||
},
|
||||
|
||||
_updateSwitch: function(presence, status) {
|
||||
_updateSwitch: function(status) {
|
||||
let active = status == GnomeSession.PresenceStatus.AVAILABLE;
|
||||
this._notificationsSwitch.setToggleState(active);
|
||||
},
|
||||
@ -638,7 +675,7 @@ UserMenuButton.prototype = {
|
||||
} else {
|
||||
status = GnomeSession.PresenceStatus.BUSY;
|
||||
|
||||
let [presence, s, msg] = this._account_mgr.get_most_available_presence();
|
||||
let [presence, s, msg] = this._accountMgr.get_most_available_presence();
|
||||
let newPresence = this._statusChooser.getIMPresenceForSessionStatus(status);
|
||||
if (newPresence != presence &&
|
||||
newPresence == Tp.ConnectionPresenceType.BUSY)
|
||||
@ -646,7 +683,7 @@ UserMenuButton.prototype = {
|
||||
_("Notifications are now disabled, including chat messages. Your online status has been adjusted to let others know that you might not see their messages."));
|
||||
}
|
||||
|
||||
this._presence.setStatus(status);
|
||||
this._presence.status = status;
|
||||
},
|
||||
|
||||
_onMyAccountActivate: function() {
|
||||
|
@ -92,7 +92,6 @@ WindowManager.prototype = {
|
||||
_init : function() {
|
||||
this._shellwm = global.window_manager;
|
||||
|
||||
this._keyBindingHandlers = [];
|
||||
this._minimizing = [];
|
||||
this._maximizing = [];
|
||||
this._unmaximizing = [];
|
||||
@ -121,15 +120,24 @@ WindowManager.prototype = {
|
||||
this._shellwm.connect('destroy', Lang.bind(this, this._destroyWindow));
|
||||
|
||||
this._workspaceSwitcherPopup = null;
|
||||
this.setKeybindingHandler('switch_to_workspace_left', Lang.bind(this, this._showWorkspaceSwitcher));
|
||||
this.setKeybindingHandler('switch_to_workspace_right', Lang.bind(this, this._showWorkspaceSwitcher));
|
||||
this.setKeybindingHandler('switch_to_workspace_up', Lang.bind(this, this._showWorkspaceSwitcher));
|
||||
this.setKeybindingHandler('switch_to_workspace_down', Lang.bind(this, this._showWorkspaceSwitcher));
|
||||
this.setKeybindingHandler('switch_windows', Lang.bind(this, this._startAppSwitcher));
|
||||
this.setKeybindingHandler('switch_group', Lang.bind(this, this._startAppSwitcher));
|
||||
this.setKeybindingHandler('switch_windows_backward', Lang.bind(this, this._startAppSwitcher));
|
||||
this.setKeybindingHandler('switch_group_backward', Lang.bind(this, this._startAppSwitcher));
|
||||
this.setKeybindingHandler('switch_panels', Lang.bind(this, this._startA11ySwitcher));
|
||||
Meta.keybindings_set_custom_handler('switch-to-workspace-left',
|
||||
Lang.bind(this, this._showWorkspaceSwitcher));
|
||||
Meta.keybindings_set_custom_handler('switch-to-workspace-right',
|
||||
Lang.bind(this, this._showWorkspaceSwitcher));
|
||||
Meta.keybindings_set_custom_handler('switch-to-workspace-up',
|
||||
Lang.bind(this, this._showWorkspaceSwitcher));
|
||||
Meta.keybindings_set_custom_handler('switch-to-workspace-down',
|
||||
Lang.bind(this, this._showWorkspaceSwitcher));
|
||||
Meta.keybindings_set_custom_handler('switch-windows',
|
||||
Lang.bind(this, this._startAppSwitcher));
|
||||
Meta.keybindings_set_custom_handler('switch-group',
|
||||
Lang.bind(this, this._startAppSwitcher));
|
||||
Meta.keybindings_set_custom_handler('switch-windows-backward',
|
||||
Lang.bind(this, this._startAppSwitcher));
|
||||
Meta.keybindings_set_custom_handler('switch-group-backward',
|
||||
Lang.bind(this, this._startAppSwitcher));
|
||||
Meta.keybindings_set_custom_handler('switch-panels',
|
||||
Lang.bind(this, this._startA11ySwitcher));
|
||||
|
||||
Main.overview.connect('showing', Lang.bind(this, function() {
|
||||
for (let i = 0; i < this._dimmedWindows.length; i++)
|
||||
@ -141,16 +149,6 @@ WindowManager.prototype = {
|
||||
}));
|
||||
},
|
||||
|
||||
setKeybindingHandler: function(keybinding, handler){
|
||||
if (this._keyBindingHandlers[keybinding])
|
||||
this._shellwm.disconnect(this._keyBindingHandlers[keybinding]);
|
||||
else
|
||||
this._shellwm.takeover_keybinding(keybinding);
|
||||
|
||||
this._keyBindingHandlers[keybinding] =
|
||||
this._shellwm.connect('keybinding::' + keybinding, handler);
|
||||
},
|
||||
|
||||
blockAnimations: function() {
|
||||
this._animationBlockCount++;
|
||||
},
|
||||
@ -160,7 +158,7 @@ WindowManager.prototype = {
|
||||
},
|
||||
|
||||
_shouldAnimate : function(actor) {
|
||||
if (Main.overview.visible || this._animationsBlocked > 0)
|
||||
if (Main.overview.visible || this._animationBlockCount > 0)
|
||||
return false;
|
||||
if (actor && (actor.meta_window.get_window_type() != Meta.WindowType.NORMAL))
|
||||
return false;
|
||||
@ -534,37 +532,41 @@ WindowManager.prototype = {
|
||||
shellwm.completed_switch_workspace();
|
||||
},
|
||||
|
||||
_startAppSwitcher : function(shellwm, binding, mask, window, backwards) {
|
||||
_startAppSwitcher : function(display, screen, window, binding) {
|
||||
/* prevent a corner case where both popups show up at once */
|
||||
if (this._workspaceSwitcherPopup != null)
|
||||
this._workspaceSwitcherPopup.actor.hide();
|
||||
|
||||
let tabPopup = new AltTab.AltTabPopup();
|
||||
|
||||
if (!tabPopup.show(backwards, binding, mask))
|
||||
let modifiers = binding.get_modifiers();
|
||||
let backwards = modifiers & Meta.VirtualModifier.SHIFT_MASK;
|
||||
if (!tabPopup.show(backwards, binding.get_name(), binding.get_mask()))
|
||||
tabPopup.destroy();
|
||||
},
|
||||
|
||||
_startA11ySwitcher : function(shellwm, binding, mask, window, backwards) {
|
||||
Main.ctrlAltTabManager.popup(backwards, mask);
|
||||
_startA11ySwitcher : function(display, screen, window, binding) {
|
||||
let modifiers = binding.get_modifiers();
|
||||
let backwards = modifiers & Meta.VirtualModifier.SHIFT_MASK;
|
||||
Main.ctrlAltTabManager.popup(backwards, binding.get_mask());
|
||||
},
|
||||
|
||||
_showWorkspaceSwitcher : function(shellwm, binding, mask, window, backwards) {
|
||||
if (global.screen.n_workspaces == 1)
|
||||
_showWorkspaceSwitcher : function(display, screen, window, binding) {
|
||||
if (screen.n_workspaces == 1)
|
||||
return;
|
||||
|
||||
if (this._workspaceSwitcherPopup == null)
|
||||
this._workspaceSwitcherPopup = new WorkspaceSwitcherPopup.WorkspaceSwitcherPopup();
|
||||
|
||||
if (binding == 'switch_to_workspace_up')
|
||||
if (binding.get_name() == 'switch-to-workspace-up')
|
||||
this.actionMoveWorkspaceUp();
|
||||
else if (binding == 'switch_to_workspace_down')
|
||||
else if (binding.get_name() == 'switch-to-workspace-down')
|
||||
this.actionMoveWorkspaceDown();
|
||||
// left/right would effectively act as synonyms for up/down if we enabled them;
|
||||
// but that could be considered confusing.
|
||||
// else if (binding == 'switch_to_workspace_left')
|
||||
// else if (binding.get_name() == 'switch-to-workspace-left')
|
||||
// this.actionMoveWorkspaceLeft();
|
||||
// else if (binding == 'switch_to_workspace_right')
|
||||
// else if (binding.get_name() == 'switch-to-workspace-right')
|
||||
// this.actionMoveWorkspaceRight();
|
||||
},
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
|
||||
|
||||
const Clutter = imports.gi.Clutter;
|
||||
const GConf = imports.gi.GConf;
|
||||
const Gio = imports.gi.Gio;
|
||||
const Lang = imports.lang;
|
||||
const Mainloop = imports.mainloop;
|
||||
const Meta = imports.gi.Meta;
|
||||
@ -28,7 +28,8 @@ const CLOSE_BUTTON_FADE_TIME = 0.1;
|
||||
|
||||
const DRAGGING_WINDOW_OPACITY = 100;
|
||||
|
||||
const BUTTON_LAYOUT_KEY = '/desktop/gnome/shell/windows/button_layout';
|
||||
const BUTTON_LAYOUT_SCHEMA = 'org.gnome.shell.overrides';
|
||||
const BUTTON_LAYOUT_KEY = 'button-layout';
|
||||
|
||||
// Define a layout scheme for small window counts. For larger
|
||||
// counts we fall back to an algorithm. We need more schemes here
|
||||
@ -527,8 +528,8 @@ WindowOverlay.prototype = {
|
||||
let button = this.closeButton;
|
||||
let title = this.title;
|
||||
|
||||
let gconf = GConf.Client.get_default();
|
||||
let layout = gconf.get_string(BUTTON_LAYOUT_KEY);
|
||||
let settings = new Gio.Settings({ schema: BUTTON_LAYOUT_SCHEMA });
|
||||
let layout = settings.get_string(BUTTON_LAYOUT_KEY);
|
||||
let rtl = St.Widget.get_default_direction() == St.TextDirection.RTL;
|
||||
|
||||
let split = layout.split(":");
|
||||
|
@ -20,6 +20,11 @@ let MAX_THUMBNAIL_SCALE = 1/8.;
|
||||
const RESCALE_ANIMATION_TIME = 0.2;
|
||||
const SLIDE_ANIMATION_TIME = 0.2;
|
||||
|
||||
// When we create workspaces by dragging, we add a "cut" into the top and
|
||||
// bottom of each workspace so that the user doesn't have to hit the
|
||||
// placeholder exactly.
|
||||
const WORKSPACE_CUT_SIZE = 10;
|
||||
|
||||
function WindowClone(realWindow) {
|
||||
this._init(realWindow);
|
||||
}
|
||||
@ -422,6 +427,11 @@ WorkspaceThumbnail.prototype = {
|
||||
if (this.state > ThumbnailState.NORMAL)
|
||||
return DND.DragMotionResult.CONTINUE;
|
||||
|
||||
let [w, h] = this.actor.get_transformed_size();
|
||||
// Bubble up if we're in the "workspace cut".
|
||||
if (y < WORKSPACE_CUT_SIZE || y > h - WORKSPACE_CUT_SIZE)
|
||||
return DND.DragMotionResult.CONTINUE;
|
||||
|
||||
if (source.realWindow && !this._isMyWindow(source.realWindow))
|
||||
return DND.DragMotionResult.MOVE_DROP;
|
||||
if (source.shellWorkspaceLaunch)
|
||||
@ -475,6 +485,7 @@ ThumbnailsBox.prototype = {
|
||||
this.actor.connect('get-preferred-width', Lang.bind(this, this._getPreferredWidth));
|
||||
this.actor.connect('get-preferred-height', Lang.bind(this, this._getPreferredHeight));
|
||||
this.actor.connect('allocate', Lang.bind(this, this._allocate));
|
||||
this.actor._delegate = this;
|
||||
|
||||
// When we animate the scale, we don't animate the requested size of the thumbnails, rather
|
||||
// we ask for our final size and then animate within that size. This slightly simplifies the
|
||||
@ -498,6 +509,10 @@ ThumbnailsBox.prototype = {
|
||||
this._indicator = indicator;
|
||||
this.actor.add_actor(indicator);
|
||||
|
||||
this._dropPlaceholderPos = -1;
|
||||
this._dropPlaceholder = new St.Bin({ style_class: 'placeholder' });
|
||||
this.actor.add_actor(this._dropPlaceholder);
|
||||
|
||||
this._targetScale = 0;
|
||||
this._scale = 0;
|
||||
this._pendingScaleUpdate = false;
|
||||
@ -512,6 +527,83 @@ ThumbnailsBox.prototype = {
|
||||
this._thumbnails = [];
|
||||
},
|
||||
|
||||
// Draggable target interface
|
||||
handleDragOver : function(source, actor, x, y, time) {
|
||||
if (!source.realWindow && !source.shellWorkspaceLaunch)
|
||||
return DND.DragMotionResult.CONTINUE;
|
||||
|
||||
let spacing = this.actor.get_theme_node().get_length('spacing');
|
||||
let thumbHeight = this._porthole.height * this._scale;
|
||||
|
||||
let workspace = -1;
|
||||
let firstThumbY = this._thumbnails[0].actor.y;
|
||||
for (let i = 0; i < this._thumbnails.length; i ++) {
|
||||
let targetBase = firstThumbY + (thumbHeight + spacing) * i;
|
||||
|
||||
// Allow the reorder target to have a 10px "cut" into
|
||||
// each side of the thumbnail, to make dragging onto the
|
||||
// placeholder easier
|
||||
let targetTop = targetBase - spacing - WORKSPACE_CUT_SIZE;
|
||||
let targetBottom = targetBase + WORKSPACE_CUT_SIZE;
|
||||
|
||||
// Expand the target to include the placeholder, if it exists.
|
||||
if (i == this._dropPlaceholderPos)
|
||||
targetBottom += this._dropPlaceholder.get_height();
|
||||
|
||||
if (y > targetTop && y <= targetBottom) {
|
||||
workspace = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
this._dropPlaceholderPos = workspace;
|
||||
this.actor.queue_relayout();
|
||||
|
||||
if (workspace == -1)
|
||||
return DND.DragMotionResult.CONTINUE;
|
||||
|
||||
return DND.DragMotionResult.MOVE_DROP;
|
||||
},
|
||||
|
||||
acceptDrop: function(source, actor, x, y, time) {
|
||||
if (this._dropPlaceholderPos == -1)
|
||||
return false;
|
||||
|
||||
if (!source.realWindow && !source.shellWorkspaceLaunch)
|
||||
return false;
|
||||
|
||||
let isWindow = !!source.realWindow;
|
||||
|
||||
// To create a new workspace, we first slide all the windows on workspaces
|
||||
// below us to the next workspace, leaving a blank workspace for us to recycle.
|
||||
let newWorkspaceIndex;
|
||||
[newWorkspaceIndex, this._dropPlaceholderPos] = [this._dropPlaceholderPos, -1];
|
||||
|
||||
// Nab all the windows below us.
|
||||
let windows = global.get_window_actors().filter(function(win) {
|
||||
if (isWindow)
|
||||
return win.get_workspace() >= newWorkspaceIndex && win != source;
|
||||
else
|
||||
return win.get_workspace() >= newWorkspaceIndex;
|
||||
});
|
||||
|
||||
// ... move them down one.
|
||||
windows.forEach(function(win) {
|
||||
win.meta_window.change_workspace_by_index(win.get_workspace() + 1,
|
||||
true, time);
|
||||
});
|
||||
|
||||
if (isWindow)
|
||||
// ... and bam, a workspace, good as new.
|
||||
source.metaWindow.change_workspace_by_index(newWorkspaceIndex,
|
||||
true, time);
|
||||
else if (source.shellWorkspaceLaunch)
|
||||
source.shellWorkspaceLaunch({ workspace: newWorkspaceIndex,
|
||||
timestamp: time });
|
||||
|
||||
return true;
|
||||
},
|
||||
|
||||
show: function() {
|
||||
this._switchWorkspaceNotifyId =
|
||||
global.window_manager.connect('switch-workspace',
|
||||
@ -840,20 +932,18 @@ ThumbnailsBox.prototype = {
|
||||
|
||||
let y = contentBox.y1;
|
||||
|
||||
if (this._dropPlaceholderPos == -1) {
|
||||
Meta.later_add(Meta.LaterType.BEFORE_REDRAW, Lang.bind(this, function() {
|
||||
this._dropPlaceholder.hide();
|
||||
}));
|
||||
}
|
||||
|
||||
for (let i = 0; i < this._thumbnails.length; i++) {
|
||||
let thumbnail = this._thumbnails[i];
|
||||
|
||||
if (i > 0)
|
||||
y += spacing - Math.round(thumbnail.collapseFraction * spacing);
|
||||
|
||||
// We might end up with thumbnailHeight being something like 99.33
|
||||
// pixels. To make this work and not end up with a gap at the bottom,
|
||||
// we need some thumbnails to be 99 pixels and some 100 pixels height;
|
||||
// we compute an actual scale separately for each thumbnail.
|
||||
let y1 = Math.round(y);
|
||||
let y2 = Math.round(y + thumbnailHeight);
|
||||
let roundedVScale = (y2 - y1) / portholeHeight;
|
||||
|
||||
let x1, x2;
|
||||
if (rtl) {
|
||||
x1 = contentBox.x1 + slideOffset * thumbnail.slidePosition;
|
||||
@ -863,6 +953,27 @@ ThumbnailsBox.prototype = {
|
||||
x2 = x1 + thumbnailWidth;
|
||||
}
|
||||
|
||||
if (i == this._dropPlaceholderPos) {
|
||||
let [minHeight, placeholderHeight] = this._dropPlaceholder.get_preferred_height(-1);
|
||||
childBox.x1 = x1;
|
||||
childBox.x2 = x1 + thumbnailWidth;
|
||||
childBox.y1 = Math.round(y);
|
||||
childBox.y2 = Math.round(y + placeholderHeight);
|
||||
this._dropPlaceholder.allocate(childBox, flags);
|
||||
Meta.later_add(Meta.LaterType.BEFORE_REDRAW, Lang.bind(this, function() {
|
||||
this._dropPlaceholder.show();
|
||||
}));
|
||||
y += placeholderHeight + spacing;
|
||||
}
|
||||
|
||||
// We might end up with thumbnailHeight being something like 99.33
|
||||
// pixels. To make this work and not end up with a gap at the bottom,
|
||||
// we need some thumbnails to be 99 pixels and some 100 pixels height;
|
||||
// we compute an actual scale separately for each thumbnail.
|
||||
let y1 = Math.round(y);
|
||||
let y2 = Math.round(y + thumbnailHeight);
|
||||
let roundedVScale = (y2 - y1) / portholeHeight;
|
||||
|
||||
if (thumbnail.metaWorkspace == indicatorWorkspace)
|
||||
indicatorY = y1;
|
||||
|
||||
|
218
po/bg.po
218
po/bg.po
@ -7,8 +7,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: gnome-shell master\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2011-10-15 10:43+0300\n"
|
||||
"PO-Revision-Date: 2011-10-05 13:04+0300\n"
|
||||
"POT-Creation-Date: 2011-10-21 23:34+0300\n"
|
||||
"PO-Revision-Date: 2011-10-21 23:34+0300\n"
|
||||
"Last-Translator: Ivaylo Valkov <ivaylo@e-valkov.org>\n"
|
||||
"Language-Team: Bulgarian <dict@fsa-bg.org>\n"
|
||||
"Language: bg\n"
|
||||
@ -184,52 +184,50 @@ msgstr "Коя клавиатура да бъде да се ползва"
|
||||
msgid "disabled OpenSearch providers"
|
||||
msgstr "изключени доставчици на OpenSearch"
|
||||
|
||||
#: ../js/gdm/loginDialog.js:617
|
||||
#: ../js/gdm/loginDialog.js:633
|
||||
msgid "Session..."
|
||||
msgstr "Сесия…"
|
||||
|
||||
#: ../js/gdm/loginDialog.js:788
|
||||
#: ../js/gdm/loginDialog.js:804
|
||||
msgctxt "title"
|
||||
msgid "Sign In"
|
||||
msgstr "Регистриране"
|
||||
|
||||
#. translators: this message is shown below the password entry field
|
||||
#. to indicate the user can swipe their finger instead
|
||||
#: ../js/gdm/loginDialog.js:833
|
||||
#: ../js/gdm/loginDialog.js:849
|
||||
msgid "(or swipe finger)"
|
||||
msgstr "(или се регистрирайте с пръстов отпечатък)"
|
||||
|
||||
#: ../js/gdm/loginDialog.js:851
|
||||
#: ../js/gdm/loginDialog.js:867
|
||||
msgid "Not listed?"
|
||||
msgstr "Липсва в списъка?"
|
||||
|
||||
#: ../js/gdm/loginDialog.js:1019 ../js/ui/endSessionDialog.js:426
|
||||
#: ../js/ui/extensionSystem.js:477 ../js/ui/networkAgent.js:165
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:171 ../js/ui/status/bluetooth.js:480
|
||||
#: ../js/gdm/loginDialog.js:1035 ../js/ui/endSessionDialog.js:426
|
||||
#: ../js/ui/extensionSystem.js:520 ../js/ui/networkAgent.js:148
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:173 ../js/ui/status/bluetooth.js:480
|
||||
msgid "Cancel"
|
||||
msgstr "Отказване"
|
||||
|
||||
#: ../js/gdm/loginDialog.js:1024
|
||||
#: ../js/gdm/loginDialog.js:1040
|
||||
msgctxt "button"
|
||||
msgid "Sign In"
|
||||
msgstr "Регистриране"
|
||||
|
||||
#: ../js/gdm/loginDialog.js:1373
|
||||
#: ../js/gdm/loginDialog.js:1392
|
||||
msgid "Login Window"
|
||||
msgstr "Екран за идентификация"
|
||||
|
||||
#: ../js/gdm/powerMenu.js:116 ../js/ui/userMenu.js:549
|
||||
#: ../js/ui/userMenu.js:551 ../js/ui/userMenu.js:620
|
||||
#: ../js/gdm/powerMenu.js:116 ../js/ui/userMenu.js:569
|
||||
#: ../js/ui/userMenu.js:571 ../js/ui/userMenu.js:640
|
||||
msgid "Suspend"
|
||||
msgstr "Приспиване"
|
||||
|
||||
#: ../js/gdm/powerMenu.js:121 ../js/ui/endSessionDialog.js:89
|
||||
#: ../js/ui/endSessionDialog.js:97 ../js/ui/endSessionDialog.js:106
|
||||
#: ../js/gdm/powerMenu.js:121
|
||||
msgid "Restart"
|
||||
msgstr "Рестартиране"
|
||||
|
||||
#: ../js/gdm/powerMenu.js:126 ../js/ui/endSessionDialog.js:80
|
||||
#: ../js/ui/endSessionDialog.js:91
|
||||
#: ../js/gdm/powerMenu.js:126
|
||||
msgid "Power Off"
|
||||
msgstr "Изключване"
|
||||
|
||||
@ -442,7 +440,7 @@ msgstr "Тази седмица"
|
||||
msgid "Next week"
|
||||
msgstr "Следващата седмица"
|
||||
|
||||
#: ../js/ui/contactDisplay.js:65 ../js/ui/notificationDaemon.js:444
|
||||
#: ../js/ui/contactDisplay.js:65 ../js/ui/notificationDaemon.js:459
|
||||
#: ../js/ui/status/power.js:223 ../src/shell-app.c:353
|
||||
msgid "Unknown"
|
||||
msgstr "Неизвестно"
|
||||
@ -467,7 +465,7 @@ msgstr "Извън мрежата"
|
||||
msgid "CONTACTS"
|
||||
msgstr "КОНТАКТИ"
|
||||
|
||||
#: ../js/ui/dash.js:172 ../js/ui/messageTray.js:1204
|
||||
#: ../js/ui/dash.js:174 ../js/ui/messageTray.js:1206
|
||||
msgid "Remove"
|
||||
msgstr "Изтриване"
|
||||
|
||||
@ -532,10 +530,12 @@ msgstr "СКОРО ОТВАРЯНИ"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:60
|
||||
#, c-format
|
||||
msgctxt "title"
|
||||
msgid "Log Out %s"
|
||||
msgstr "Изход на „%s“"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:61 ../js/ui/endSessionDialog.js:75
|
||||
#: ../js/ui/endSessionDialog.js:61
|
||||
msgctxt "title"
|
||||
msgid "Log Out"
|
||||
msgstr "Изход"
|
||||
|
||||
@ -564,6 +564,16 @@ msgstr[1] "Ще излезете от системата автоматично
|
||||
msgid "Logging out of the system."
|
||||
msgstr "Излизане от системата."
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:75
|
||||
msgctxt "button"
|
||||
msgid "Log Out"
|
||||
msgstr "Изход"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:80
|
||||
msgctxt "title"
|
||||
msgid "Power Off"
|
||||
msgstr "Изключване"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:81
|
||||
msgid "Click Power Off to quit these applications and power off the system."
|
||||
msgstr ""
|
||||
@ -581,6 +591,21 @@ msgstr[1] "Системата ще се изключи автоматично с
|
||||
msgid "Powering off the system."
|
||||
msgstr "Изключване на системата."
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:89 ../js/ui/endSessionDialog.js:106
|
||||
msgctxt "button"
|
||||
msgid "Restart"
|
||||
msgstr "Рестартиране"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:91
|
||||
msgctxt "button"
|
||||
msgid "Power Off"
|
||||
msgstr "Изключване"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:97
|
||||
msgctxt "title"
|
||||
msgid "Restart"
|
||||
msgstr "Рестартиране"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:98
|
||||
msgid "Click Restart to quit these applications and restart the system."
|
||||
msgstr ""
|
||||
@ -598,109 +623,119 @@ msgstr[1] "Системата ще се рестартира автоматич
|
||||
msgid "Restarting the system."
|
||||
msgstr "Рестартиране на системата."
|
||||
|
||||
#: ../js/ui/extensionSystem.js:481
|
||||
#: ../js/ui/extensionSystem.js:524
|
||||
msgid "Install"
|
||||
msgstr "Инсталиране"
|
||||
|
||||
#: ../js/ui/extensionSystem.js:485
|
||||
#: ../js/ui/extensionSystem.js:528
|
||||
#, c-format
|
||||
msgid "Download and install '%s' from extensions.gnome.org?"
|
||||
msgstr "Да се изтегли и инсталира ли „%s“ от from extensions.gnome.org?"
|
||||
|
||||
#: ../js/ui/keyboard.js:309
|
||||
#: ../js/ui/keyboard.js:325
|
||||
msgid "tray"
|
||||
msgstr "област за уведомяване"
|
||||
|
||||
#: ../js/ui/keyboard.js:531 ../js/ui/status/power.js:211
|
||||
#: ../js/ui/keyboard.js:547 ../js/ui/status/power.js:211
|
||||
msgid "Keyboard"
|
||||
msgstr "Клавиатура"
|
||||
|
||||
#: ../js/ui/lookingGlass.js:645
|
||||
#: ../js/ui/lookingGlass.js:664
|
||||
msgid "No extensions installed"
|
||||
msgstr "Няма инсталирани разширения"
|
||||
|
||||
#: ../js/ui/lookingGlass.js:691
|
||||
#. Translators: argument is an extension UUID.
|
||||
#: ../js/ui/lookingGlass.js:719
|
||||
#, c-format
|
||||
msgid "%s has not emitted any errors."
|
||||
msgstr "Разширението %s не е обозначило никави грешки."
|
||||
|
||||
#: ../js/ui/lookingGlass.js:725
|
||||
msgid "Hide Errors"
|
||||
msgstr "Скриване на грешките"
|
||||
|
||||
#: ../js/ui/lookingGlass.js:729 ../js/ui/lookingGlass.js:779
|
||||
msgid "Show Errors"
|
||||
msgstr "Показване на грешките"
|
||||
|
||||
#: ../js/ui/lookingGlass.js:738
|
||||
msgid "Enabled"
|
||||
msgstr "Включено"
|
||||
|
||||
#. translators:
|
||||
#. * The device has been disabled
|
||||
#: ../js/ui/lookingGlass.js:693 ../src/gvc/gvc-mixer-control.c:1093
|
||||
#: ../js/ui/lookingGlass.js:740 ../src/gvc/gvc-mixer-control.c:1093
|
||||
msgid "Disabled"
|
||||
msgstr "Изключено"
|
||||
|
||||
#: ../js/ui/lookingGlass.js:695
|
||||
#: ../js/ui/lookingGlass.js:742
|
||||
msgid "Error"
|
||||
msgstr "Грешка"
|
||||
|
||||
#: ../js/ui/lookingGlass.js:697
|
||||
#: ../js/ui/lookingGlass.js:744
|
||||
msgid "Out of date"
|
||||
msgstr "Остаряло"
|
||||
|
||||
#: ../js/ui/lookingGlass.js:699
|
||||
#: ../js/ui/lookingGlass.js:746
|
||||
msgid "Downloading"
|
||||
msgstr "Изтегляне"
|
||||
|
||||
#: ../js/ui/lookingGlass.js:720
|
||||
#: ../js/ui/lookingGlass.js:767
|
||||
msgid "View Source"
|
||||
msgstr "Преглед на изходния код"
|
||||
|
||||
#: ../js/ui/lookingGlass.js:726
|
||||
#: ../js/ui/lookingGlass.js:773
|
||||
msgid "Web Page"
|
||||
msgstr "Домашна страница"
|
||||
|
||||
#: ../js/ui/messageTray.js:1197
|
||||
#: ../js/ui/messageTray.js:1199
|
||||
msgid "Open"
|
||||
msgstr "Отваряне"
|
||||
|
||||
#: ../js/ui/messageTray.js:2406
|
||||
#: ../js/ui/messageTray.js:2408
|
||||
msgid "System Information"
|
||||
msgstr "Информация за системата"
|
||||
|
||||
#: ../js/ui/networkAgent.js:145
|
||||
msgid "Show password"
|
||||
msgstr "Показване на парола"
|
||||
|
||||
#: ../js/ui/networkAgent.js:160
|
||||
#: ../js/ui/networkAgent.js:143
|
||||
msgid "Connect"
|
||||
msgstr "Свързване"
|
||||
|
||||
#. Cisco LEAP
|
||||
#: ../js/ui/networkAgent.js:255 ../js/ui/networkAgent.js:267
|
||||
#: ../js/ui/networkAgent.js:294 ../js/ui/networkAgent.js:314
|
||||
#: ../js/ui/networkAgent.js:324
|
||||
#: ../js/ui/networkAgent.js:238 ../js/ui/networkAgent.js:250
|
||||
#: ../js/ui/networkAgent.js:277 ../js/ui/networkAgent.js:297
|
||||
#: ../js/ui/networkAgent.js:307
|
||||
msgid "Password: "
|
||||
msgstr "Парола: "
|
||||
|
||||
#. static WEP
|
||||
#: ../js/ui/networkAgent.js:260
|
||||
#: ../js/ui/networkAgent.js:243
|
||||
msgid "Key: "
|
||||
msgstr "Ключ: "
|
||||
|
||||
#. 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/ui/networkAgent.js:292 ../js/ui/networkAgent.js:310
|
||||
#: ../js/ui/networkAgent.js:275 ../js/ui/networkAgent.js:293
|
||||
msgid "Username: "
|
||||
msgstr "Потребител: "
|
||||
|
||||
#: ../js/ui/networkAgent.js:298
|
||||
#: ../js/ui/networkAgent.js:281
|
||||
msgid "Identity: "
|
||||
msgstr "Самоличност: "
|
||||
|
||||
#: ../js/ui/networkAgent.js:300
|
||||
#: ../js/ui/networkAgent.js:283
|
||||
msgid "Private key password: "
|
||||
msgstr "Парола за частният ключ: "
|
||||
|
||||
#: ../js/ui/networkAgent.js:312
|
||||
#: ../js/ui/networkAgent.js:295
|
||||
msgid "Service: "
|
||||
msgstr "Услуга: "
|
||||
|
||||
#: ../js/ui/networkAgent.js:341
|
||||
#: ../js/ui/networkAgent.js:324
|
||||
msgid "Authentication required by wireless network"
|
||||
msgstr "Изисква се удостоверяване за безжична мрежа"
|
||||
|
||||
#: ../js/ui/networkAgent.js:342
|
||||
#: ../js/ui/networkAgent.js:325
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Passwords or encryption keys are required to access the wireless network "
|
||||
@ -709,35 +744,35 @@ msgstr ""
|
||||
"За достъп до безжичната мрежа „%s“ са необходими пароли или криптирани "
|
||||
"ключове."
|
||||
|
||||
#: ../js/ui/networkAgent.js:346
|
||||
#: ../js/ui/networkAgent.js:329
|
||||
msgid "Wired 802.1X authentication"
|
||||
msgstr "Жична идентификация 802.1Х"
|
||||
|
||||
#: ../js/ui/networkAgent.js:348
|
||||
#: ../js/ui/networkAgent.js:331
|
||||
msgid "Network name: "
|
||||
msgstr "Име на мрежата: "
|
||||
|
||||
#: ../js/ui/networkAgent.js:353
|
||||
#: ../js/ui/networkAgent.js:336
|
||||
msgid "DSL authentication"
|
||||
msgstr "Удостоверяване за DSL"
|
||||
|
||||
#: ../js/ui/networkAgent.js:360
|
||||
#: ../js/ui/networkAgent.js:343
|
||||
msgid "PIN code required"
|
||||
msgstr "Необходим е PIN"
|
||||
|
||||
#: ../js/ui/networkAgent.js:361
|
||||
#: ../js/ui/networkAgent.js:344
|
||||
msgid "PIN code is needed for the mobile broadband device"
|
||||
msgstr "Мобилното устройство изисква ПИН"
|
||||
|
||||
#: ../js/ui/networkAgent.js:362
|
||||
#: ../js/ui/networkAgent.js:345
|
||||
msgid "PIN: "
|
||||
msgstr "ПИН: "
|
||||
|
||||
#: ../js/ui/networkAgent.js:368
|
||||
#: ../js/ui/networkAgent.js:351
|
||||
msgid "Mobile broadband network password"
|
||||
msgstr "Парола за мобилна широколентова връзка"
|
||||
|
||||
#: ../js/ui/networkAgent.js:369
|
||||
#: ../js/ui/networkAgent.js:352
|
||||
#, c-format
|
||||
msgid "A password is required to connect to '%s'."
|
||||
msgstr "За свързване към „%s“ се изисква парола."
|
||||
@ -793,15 +828,15 @@ msgstr "Свързване към…"
|
||||
msgid "PLACES & DEVICES"
|
||||
msgstr "МЕСТА И УСТРОЙСТВА"
|
||||
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:72
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:73
|
||||
msgid "Authentication Required"
|
||||
msgstr "Необходимо е удостоверяване"
|
||||
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:106
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:107
|
||||
msgid "Administrator"
|
||||
msgstr "Администратор"
|
||||
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:175
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:177
|
||||
msgid "Authenticate"
|
||||
msgstr "Удостоверяване"
|
||||
|
||||
@ -809,11 +844,11 @@ msgstr "Удостоверяване"
|
||||
#. * requested authentication was not gained; this can happen
|
||||
#. * because of an authentication error (like invalid password),
|
||||
#. * for instance.
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:256
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:258
|
||||
msgid "Sorry, that didn't work. Please try again."
|
||||
msgstr "Действието не беше успешно. Опитайте отново."
|
||||
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:268
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:270
|
||||
msgid "Password:"
|
||||
msgstr "Парола:"
|
||||
|
||||
@ -826,7 +861,7 @@ msgstr "Парола:"
|
||||
msgid "toggle-switch-us"
|
||||
msgstr "toggle-switch-intl"
|
||||
|
||||
#: ../js/ui/runDialog.js:208
|
||||
#: ../js/ui/runDialog.js:209
|
||||
msgid "Please enter a command:"
|
||||
msgstr "Въведете команда:"
|
||||
|
||||
@ -838,6 +873,22 @@ msgstr "Търсене…"
|
||||
msgid "No matching results."
|
||||
msgstr "Няма съвпадения."
|
||||
|
||||
#: ../js/ui/shellEntry.js:30
|
||||
msgid "Copy"
|
||||
msgstr "Копиране"
|
||||
|
||||
#: ../js/ui/shellEntry.js:35
|
||||
msgid "Paste"
|
||||
msgstr "Поставяне"
|
||||
|
||||
#: ../js/ui/shellEntry.js:81
|
||||
msgid "Show Text"
|
||||
msgstr "Показване на текста"
|
||||
|
||||
#: ../js/ui/shellEntry.js:83
|
||||
msgid "Hide Text"
|
||||
msgstr "Скриване на текста"
|
||||
|
||||
#: ../js/ui/shellMountOperation.js:285
|
||||
msgid "Wrong password, please try again"
|
||||
msgstr "Грешна парола. Опитайте отново."
|
||||
@ -1494,39 +1545,39 @@ msgstr "Бездействие"
|
||||
msgid "Unavailable"
|
||||
msgstr "Недостъпно"
|
||||
|
||||
#: ../js/ui/userMenu.js:547 ../js/ui/userMenu.js:551 ../js/ui/userMenu.js:621
|
||||
#: ../js/ui/userMenu.js:567 ../js/ui/userMenu.js:571 ../js/ui/userMenu.js:641
|
||||
msgid "Power Off..."
|
||||
msgstr "Изключване..."
|
||||
|
||||
#: ../js/ui/userMenu.js:583
|
||||
#: ../js/ui/userMenu.js:603
|
||||
msgid "Notifications"
|
||||
msgstr "Известяване"
|
||||
|
||||
#: ../js/ui/userMenu.js:591
|
||||
#: ../js/ui/userMenu.js:611
|
||||
msgid "Online Accounts"
|
||||
msgstr "Мрежови регистрации"
|
||||
|
||||
#: ../js/ui/userMenu.js:595
|
||||
#: ../js/ui/userMenu.js:615
|
||||
msgid "System Settings"
|
||||
msgstr "Настройки на системата"
|
||||
|
||||
#: ../js/ui/userMenu.js:602
|
||||
#: ../js/ui/userMenu.js:622
|
||||
msgid "Lock Screen"
|
||||
msgstr "Заключване на екрана"
|
||||
|
||||
#: ../js/ui/userMenu.js:607
|
||||
#: ../js/ui/userMenu.js:627
|
||||
msgid "Switch User"
|
||||
msgstr "Смяна на потребител"
|
||||
|
||||
#: ../js/ui/userMenu.js:612
|
||||
#: ../js/ui/userMenu.js:632
|
||||
msgid "Log Out..."
|
||||
msgstr "Изход…"
|
||||
|
||||
#: ../js/ui/userMenu.js:640
|
||||
#: ../js/ui/userMenu.js:660
|
||||
msgid "Your chat status will be set to busy"
|
||||
msgstr "Състоянието ви ще се зададе да е „Зает“"
|
||||
|
||||
#: ../js/ui/userMenu.js:641
|
||||
#: ../js/ui/userMenu.js:661
|
||||
msgid ""
|
||||
"Notifications are now disabled, including chat messages. Your online status "
|
||||
"has been adjusted to let others know that you might not see their messages."
|
||||
@ -1539,11 +1590,11 @@ msgstr ""
|
||||
#. in the search entry when no search is
|
||||
#. active; it should not exceed ~30
|
||||
#. characters.
|
||||
#: ../js/ui/viewSelector.js:120
|
||||
#: ../js/ui/viewSelector.js:121
|
||||
msgid "Type to search..."
|
||||
msgstr "Търсене на написаното…"
|
||||
|
||||
#: ../js/ui/viewSelector.js:140 ../src/shell-util.c:261
|
||||
#: ../js/ui/viewSelector.js:142 ../src/shell-util.c:244
|
||||
msgid "Search"
|
||||
msgstr "Търсене"
|
||||
|
||||
@ -1599,13 +1650,15 @@ msgstr "Стандартно"
|
||||
msgid "Authentication dialog was dismissed by the user"
|
||||
msgstr "Прозорецът за упълномощаване беше затворен от потребителя"
|
||||
|
||||
#: ../src/shell-util.c:100
|
||||
msgid "Home Folder"
|
||||
#. Translators: this is the same string as the one found in
|
||||
#. * nautilus
|
||||
#: ../src/shell-util.c:89
|
||||
msgid "Home"
|
||||
msgstr "Домашна папка"
|
||||
|
||||
#. Translators: this is the same string as the one found in
|
||||
#. * nautilus
|
||||
#: ../src/shell-util.c:115
|
||||
#: ../src/shell-util.c:98
|
||||
msgid "File System"
|
||||
msgstr "Файлова система"
|
||||
|
||||
@ -1614,16 +1667,7 @@ msgstr "Файлова система"
|
||||
#. * example, "Trash: some-directory". It means that the
|
||||
#. * directory called "some-directory" is in the trash.
|
||||
#.
|
||||
#: ../src/shell-util.c:311
|
||||
#: ../src/shell-util.c:294
|
||||
#, c-format
|
||||
msgid "%1$s: %2$s"
|
||||
msgstr "%1$s: %2$s"
|
||||
|
||||
#~ msgid "%s has not emitted any errors."
|
||||
#~ msgstr "Разширение %s не е давало грешки."
|
||||
|
||||
#~ msgid "Hide Errors"
|
||||
#~ msgstr "Скриване на грешките"
|
||||
|
||||
#~ msgid "Show Errors"
|
||||
#~ msgstr "Показване на грешките"
|
||||
|
221
po/de.po
221
po/de.po
@ -6,7 +6,7 @@
|
||||
#
|
||||
# Hendrik Brandt <heb@gnome-de.org>, 2009.
|
||||
# Hendrik Richter <hendrikr@gnome.org>, 2009, 2010, 2011.
|
||||
# Mario Blättermann <mariobl@freenet.de>, 2009, 2010, 2011.
|
||||
# Mario Blättermann <mario.blaettermann@gmail.com>, 2009-2011.
|
||||
# Mario Klug <mario@klug.me>, 2010.
|
||||
# Jakob Kramer <jakob.kramer@gmx.de>, 2010.
|
||||
# Paul Seyfert <pseyfert@mathphys.fsk.uni-heidelberg.de>, 2010, 2011.
|
||||
@ -17,9 +17,9 @@ 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: 2011-10-17 20:04+0000\n"
|
||||
"PO-Revision-Date: 2011-10-17 22:05+0100\n"
|
||||
"Last-Translator: Paul Seyfert <pseyfert@mathphys.fsk.uni-heidelberg.de>\n"
|
||||
"POT-Creation-Date: 2011-11-05 13:23+0000\n"
|
||||
"PO-Revision-Date: 2011-11-05 21:08+0100\n"
|
||||
"Last-Translator: Mario Blättermann <mario.blaettermann@gmail.com>\n"
|
||||
"Language-Team: Deutsch <gnome-de@gnome.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
@ -56,10 +56,12 @@ msgid "Framerate used for recording screencasts."
|
||||
msgstr "Bildwiederholungsrate zur Aufnahme von Screencasts"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.h:5
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"GNOME Shell extensions have a uuid property; this key lists extensions which "
|
||||
"should be loaded. disabled-extensions overrides this setting for extensions "
|
||||
"that appear in both lists."
|
||||
"should be loaded. Any extension that wants to be loaded needs to be in this "
|
||||
"list. You can also manipulate this list with the EnableExtension and "
|
||||
"DisableExtension DBus methods on org.gnome.Shell."
|
||||
msgstr ""
|
||||
"Die Erweiterungen der GNOME-Shell besitzen eine UUID-Eigenschaft. Dieser "
|
||||
"Schlüssel listet Erweiterungen auf, welche geladen werden sollen. »disabled-"
|
||||
@ -113,11 +115,11 @@ msgstr ""
|
||||
"Auffüllung haben; die Ausgabe dieser Auffüllung wird in die Ausgabedatei "
|
||||
"geschrieben. Die Weiterleitung kann auch mit ihrer eigenen Ausgabe umgehen. "
|
||||
"Das kann zum Senden der Ausgabe über shout2send an einen Icecast-Server oder "
|
||||
"Ähnliches verwendet werden. Falls nicht (oder auf einen leeren Wert) "
|
||||
"gesetzt, so wird die vorgegebene Weiterleitung verwendet, welche derzeit "
|
||||
"»videorate ! vp8enc quality=10 speed=2 threads=%T ! queue ! webmmux« lautet "
|
||||
"und nach WEBM mittels des VP8-Codecs aufzeichnet. %T wird als Platzhalter "
|
||||
"für die vermutete optimale Threadanzahl auf dem System verwendet."
|
||||
"Ähnliches verwendet werden. Falls nicht (oder auf einen leeren Wert) gesetzt, "
|
||||
"so wird die vorgegebene Weiterleitung verwendet, welche derzeit »videorate ! "
|
||||
"vp8enc quality=10 speed=2 threads=%T ! queue ! webmmux« lautet und nach WEBM "
|
||||
"mittels des VP8-Codecs aufzeichnet. %T wird als Platzhalter für die vermutete "
|
||||
"optimale Threadanzahl auf dem System verwendet."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.h:14
|
||||
msgid "Show date in clock"
|
||||
@ -136,8 +138,8 @@ msgid ""
|
||||
"The applications corresponding to these identifiers will be displayed in the "
|
||||
"favorites area."
|
||||
msgstr ""
|
||||
"Programme, welche auf diese Bezeichner zutreffen, werden im Favoriten-"
|
||||
"Bereich angezeigt."
|
||||
"Programme, welche auf diese Bezeichner zutreffen, werden im Favoriten-Bereich "
|
||||
"angezeigt."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.h:18
|
||||
msgid ""
|
||||
@ -196,52 +198,50 @@ msgstr "Zu verwendende Tastatur"
|
||||
msgid "disabled OpenSearch providers"
|
||||
msgstr "deaktivierte OpenSearch-Provider"
|
||||
|
||||
#: ../js/gdm/loginDialog.js:617
|
||||
#: ../js/gdm/loginDialog.js:633
|
||||
msgid "Session..."
|
||||
msgstr "Sitzung …"
|
||||
|
||||
#: ../js/gdm/loginDialog.js:788
|
||||
#: ../js/gdm/loginDialog.js:804
|
||||
msgctxt "title"
|
||||
msgid "Sign In"
|
||||
msgstr "Anmelden"
|
||||
|
||||
#. translators: this message is shown below the password entry field
|
||||
#. to indicate the user can swipe their finger instead
|
||||
#: ../js/gdm/loginDialog.js:833
|
||||
#: ../js/gdm/loginDialog.js:849
|
||||
msgid "(or swipe finger)"
|
||||
msgstr "(oder benutzen Sie den Fingerabdruckleser)"
|
||||
|
||||
#: ../js/gdm/loginDialog.js:851
|
||||
#: ../js/gdm/loginDialog.js:867
|
||||
msgid "Not listed?"
|
||||
msgstr "Nicht aufgeführt?"
|
||||
|
||||
#: ../js/gdm/loginDialog.js:1019 ../js/ui/endSessionDialog.js:426
|
||||
#: ../js/ui/extensionSystem.js:477 ../js/ui/networkAgent.js:148
|
||||
#: ../js/gdm/loginDialog.js:1035 ../js/ui/endSessionDialog.js:426
|
||||
#: ../js/ui/extensionSystem.js:519 ../js/ui/networkAgent.js:148
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:173 ../js/ui/status/bluetooth.js:480
|
||||
msgid "Cancel"
|
||||
msgstr "Abbrechen"
|
||||
|
||||
#: ../js/gdm/loginDialog.js:1024
|
||||
#: ../js/gdm/loginDialog.js:1040
|
||||
msgctxt "button"
|
||||
msgid "Sign In"
|
||||
msgstr "Anmelden"
|
||||
|
||||
#: ../js/gdm/loginDialog.js:1373
|
||||
#: ../js/gdm/loginDialog.js:1392
|
||||
msgid "Login Window"
|
||||
msgstr "Anmeldefenster"
|
||||
|
||||
#: ../js/gdm/powerMenu.js:116 ../js/ui/userMenu.js:549
|
||||
#: ../js/ui/userMenu.js:551 ../js/ui/userMenu.js:620
|
||||
#: ../js/gdm/powerMenu.js:116 ../js/ui/userMenu.js:573 ../js/ui/userMenu.js:575
|
||||
#: ../js/ui/userMenu.js:644
|
||||
msgid "Suspend"
|
||||
msgstr "Bereitschaft"
|
||||
|
||||
#: ../js/gdm/powerMenu.js:121 ../js/ui/endSessionDialog.js:89
|
||||
#: ../js/ui/endSessionDialog.js:97 ../js/ui/endSessionDialog.js:106
|
||||
#: ../js/gdm/powerMenu.js:121
|
||||
msgid "Restart"
|
||||
msgstr "Neu starten"
|
||||
|
||||
#: ../js/gdm/powerMenu.js:126 ../js/ui/endSessionDialog.js:80
|
||||
#: ../js/ui/endSessionDialog.js:91
|
||||
#: ../js/gdm/powerMenu.js:126
|
||||
msgid "Power Off"
|
||||
msgstr "Ausschalten"
|
||||
|
||||
@ -458,8 +458,8 @@ msgstr "Diese Woche"
|
||||
msgid "Next week"
|
||||
msgstr "Nächste Woche"
|
||||
|
||||
#: ../js/ui/contactDisplay.js:65 ../js/ui/notificationDaemon.js:444
|
||||
#: ../js/ui/status/power.js:223 ../src/shell-app.c:353
|
||||
#: ../js/ui/contactDisplay.js:65 ../js/ui/notificationDaemon.js:459
|
||||
#: ../js/ui/status/power.js:223 ../src/shell-app.c:350
|
||||
msgid "Unknown"
|
||||
msgstr "Unbekannt"
|
||||
|
||||
@ -483,7 +483,7 @@ msgstr "Abgemeldet"
|
||||
msgid "CONTACTS"
|
||||
msgstr "KONTAKTE"
|
||||
|
||||
#: ../js/ui/dash.js:174 ../js/ui/messageTray.js:1205
|
||||
#: ../js/ui/dash.js:174 ../js/ui/messageTray.js:1214
|
||||
msgid "Remove"
|
||||
msgstr "Entfernen"
|
||||
|
||||
@ -548,10 +548,12 @@ msgstr "ZULETZT GEÖFFNETE DOKUMENTE"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:60
|
||||
#, c-format
|
||||
msgctxt "title"
|
||||
msgid "Log Out %s"
|
||||
msgstr "%s abmelden"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:61 ../js/ui/endSessionDialog.js:75
|
||||
#: ../js/ui/endSessionDialog.js:61
|
||||
msgctxt "title"
|
||||
msgid "Log Out"
|
||||
msgstr "Abmelden"
|
||||
|
||||
@ -579,6 +581,16 @@ msgstr[1] "Sie werden automatisch in %d Sekunden abgemeldet."
|
||||
msgid "Logging out of the system."
|
||||
msgstr "Abmeldung vom System."
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:75
|
||||
msgctxt "button"
|
||||
msgid "Log Out"
|
||||
msgstr "Abmelden"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:80
|
||||
msgctxt "title"
|
||||
msgid "Power Off"
|
||||
msgstr "Ausschalten"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:81
|
||||
msgid "Click Power Off to quit these applications and power off the system."
|
||||
msgstr ""
|
||||
@ -596,6 +608,21 @@ msgstr[1] "Das System wird automatisch in %d Sekunden ausgeschaltet."
|
||||
msgid "Powering off the system."
|
||||
msgstr "Das System wird ausgeschaltet."
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:89 ../js/ui/endSessionDialog.js:106
|
||||
msgctxt "button"
|
||||
msgid "Restart"
|
||||
msgstr "Neu starten"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:91
|
||||
msgctxt "button"
|
||||
msgid "Power Off"
|
||||
msgstr "Ausschalten"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:97
|
||||
msgctxt "title"
|
||||
msgid "Restart"
|
||||
msgstr "Neu starten"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:98
|
||||
msgid "Click Restart to quit these applications and restart the system."
|
||||
msgstr ""
|
||||
@ -613,11 +640,11 @@ msgstr[1] "Das System wird automatisch in %d Sekunden neu gestartet."
|
||||
msgid "Restarting the system."
|
||||
msgstr "Neustart des Systems."
|
||||
|
||||
#: ../js/ui/extensionSystem.js:481
|
||||
#: ../js/ui/extensionSystem.js:523
|
||||
msgid "Install"
|
||||
msgstr "Installieren"
|
||||
|
||||
#: ../js/ui/extensionSystem.js:485
|
||||
#: ../js/ui/extensionSystem.js:527
|
||||
#, c-format
|
||||
msgid "Download and install '%s' from extensions.gnome.org?"
|
||||
msgstr "»%s« von extensions.gnome.org herunterladen und installieren?"
|
||||
@ -630,45 +657,68 @@ msgstr "Benachrichtigungsfeld"
|
||||
msgid "Keyboard"
|
||||
msgstr "Tastatur"
|
||||
|
||||
#: ../js/ui/lookingGlass.js:646
|
||||
#: ../js/ui/lookingGlass.js:664
|
||||
msgid "No extensions installed"
|
||||
msgstr "Keine Erweiterungen installiert"
|
||||
|
||||
#: ../js/ui/lookingGlass.js:692
|
||||
#. Translators: argument is an extension UUID.
|
||||
#: ../js/ui/lookingGlass.js:719
|
||||
#, c-format
|
||||
msgid "%s has not emitted any errors."
|
||||
msgstr "%s hat keine Fehler ausgegeben."
|
||||
|
||||
#: ../js/ui/lookingGlass.js:725
|
||||
msgid "Hide Errors"
|
||||
msgstr "Fehler verbergen"
|
||||
|
||||
#: ../js/ui/lookingGlass.js:729 ../js/ui/lookingGlass.js:780
|
||||
msgid "Show Errors"
|
||||
msgstr "Fehler anzeigen"
|
||||
|
||||
#: ../js/ui/lookingGlass.js:738
|
||||
msgid "Enabled"
|
||||
msgstr "Aktiviert"
|
||||
|
||||
#. translators:
|
||||
#. * The device has been disabled
|
||||
#: ../js/ui/lookingGlass.js:694 ../src/gvc/gvc-mixer-control.c:1093
|
||||
#: ../js/ui/lookingGlass.js:741 ../src/gvc/gvc-mixer-control.c:1093
|
||||
msgid "Disabled"
|
||||
msgstr "Deaktiviert"
|
||||
|
||||
#: ../js/ui/lookingGlass.js:696
|
||||
#: ../js/ui/lookingGlass.js:743
|
||||
msgid "Error"
|
||||
msgstr "Fehler"
|
||||
|
||||
#: ../js/ui/lookingGlass.js:698
|
||||
#: ../js/ui/lookingGlass.js:745
|
||||
msgid "Out of date"
|
||||
msgstr "Veraltet"
|
||||
|
||||
#: ../js/ui/lookingGlass.js:700
|
||||
#: ../js/ui/lookingGlass.js:747
|
||||
msgid "Downloading"
|
||||
msgstr "Herunterladen"
|
||||
|
||||
#: ../js/ui/lookingGlass.js:721
|
||||
#: ../js/ui/lookingGlass.js:768
|
||||
msgid "View Source"
|
||||
msgstr "Quelle zeigen"
|
||||
|
||||
#: ../js/ui/lookingGlass.js:727
|
||||
#: ../js/ui/lookingGlass.js:774
|
||||
msgid "Web Page"
|
||||
msgstr "Webseite"
|
||||
|
||||
#: ../js/ui/messageTray.js:1198
|
||||
#: ../js/ui/messageTray.js:1207
|
||||
msgid "Open"
|
||||
msgstr "Öffnen"
|
||||
|
||||
#: ../js/ui/messageTray.js:2407
|
||||
#: ../js/ui/messageTray.js:1224
|
||||
#, fuzzy
|
||||
msgid "Unmute"
|
||||
msgstr "Minute"
|
||||
|
||||
#: ../js/ui/messageTray.js:1224
|
||||
msgid "Mute"
|
||||
msgstr "Stumm"
|
||||
|
||||
#: ../js/ui/messageTray.js:2436
|
||||
msgid "System Information"
|
||||
msgstr "Systeminformationen"
|
||||
|
||||
@ -714,8 +764,7 @@ msgstr "Legitimierung für Funknetzwerk wird benötigt"
|
||||
#: ../js/ui/networkAgent.js:325
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Passwords or encryption keys are required to access the wireless network '%"
|
||||
"s'."
|
||||
"Passwords or encryption keys are required to access the wireless network '%s'."
|
||||
msgstr ""
|
||||
"Passwörter oder Schlüssel sind erforderlich, um auf das Funknetzwerk »%s« "
|
||||
"zuzugreifen."
|
||||
@ -1090,13 +1139,13 @@ msgstr "nicht verfügbar"
|
||||
msgid "connection failed"
|
||||
msgstr "Verbindung gescheitert"
|
||||
|
||||
#: ../js/ui/status/network.js:575 ../js/ui/status/network.js:1523
|
||||
#: ../js/ui/status/network.js:575 ../js/ui/status/network.js:1532
|
||||
msgid "More..."
|
||||
msgstr "Mehr ..."
|
||||
|
||||
#. TRANSLATORS: this is the indication that a connection for another logged in user is active,
|
||||
#. and we cannot access its settings (including the name)
|
||||
#: ../js/ui/status/network.js:611 ../js/ui/status/network.js:1458
|
||||
#: ../js/ui/status/network.js:611 ../js/ui/status/network.js:1467
|
||||
msgid "Connected (private)"
|
||||
msgstr "Verbunden (privat)"
|
||||
|
||||
@ -1113,7 +1162,7 @@ msgid "Auto dial-up"
|
||||
msgstr "Einwählverbindung (automatisch)"
|
||||
|
||||
#. TRANSLATORS: this the automatic wireless connection name (including the network name)
|
||||
#: ../js/ui/status/network.js:878 ../js/ui/status/network.js:1470
|
||||
#: ../js/ui/status/network.js:878 ../js/ui/status/network.js:1479
|
||||
#, c-format
|
||||
msgid "Auto %s"
|
||||
msgstr "%s (automatisch)"
|
||||
@ -1122,47 +1171,47 @@ msgstr "%s (automatisch)"
|
||||
msgid "Auto bluetooth"
|
||||
msgstr "Bluetooth (automatisch)"
|
||||
|
||||
#: ../js/ui/status/network.js:1472
|
||||
#: ../js/ui/status/network.js:1481
|
||||
msgid "Auto wireless"
|
||||
msgstr "Drahtlos (automatisch)"
|
||||
|
||||
#: ../js/ui/status/network.js:1566
|
||||
#: ../js/ui/status/network.js:1575
|
||||
msgid "Enable networking"
|
||||
msgstr "Netzwerk aktivieren"
|
||||
|
||||
#: ../js/ui/status/network.js:1578
|
||||
#: ../js/ui/status/network.js:1587
|
||||
msgid "Wired"
|
||||
msgstr "Kabelgebunden"
|
||||
|
||||
#: ../js/ui/status/network.js:1589
|
||||
#: ../js/ui/status/network.js:1598
|
||||
msgid "Wireless"
|
||||
msgstr "Drahtlos"
|
||||
|
||||
#: ../js/ui/status/network.js:1599
|
||||
#: ../js/ui/status/network.js:1608
|
||||
msgid "Mobile broadband"
|
||||
msgstr "Mobiles Breitband"
|
||||
|
||||
#: ../js/ui/status/network.js:1609
|
||||
#: ../js/ui/status/network.js:1618
|
||||
msgid "VPN Connections"
|
||||
msgstr "VPN-Verbindungen"
|
||||
|
||||
#: ../js/ui/status/network.js:1620
|
||||
#: ../js/ui/status/network.js:1629
|
||||
msgid "Network Settings"
|
||||
msgstr "Netzwerkeinstellungen"
|
||||
|
||||
#: ../js/ui/status/network.js:1757
|
||||
#: ../js/ui/status/network.js:1766
|
||||
msgid "Connection failed"
|
||||
msgstr "Verbindung gescheitert"
|
||||
|
||||
#: ../js/ui/status/network.js:1758
|
||||
#: ../js/ui/status/network.js:1767
|
||||
msgid "Activation of network connection failed"
|
||||
msgstr "Aktivierung der Netzwerkverbindung ist gescheitert"
|
||||
|
||||
#: ../js/ui/status/network.js:2008
|
||||
#: ../js/ui/status/network.js:2017
|
||||
msgid "Networking is disabled"
|
||||
msgstr "Netzwerk ist deaktiviert"
|
||||
|
||||
#: ../js/ui/status/network.js:2133
|
||||
#: ../js/ui/status/network.js:2144
|
||||
msgid "Network Manager"
|
||||
msgstr "Netzwerk-Verwaltung"
|
||||
|
||||
@ -1463,8 +1512,7 @@ msgid "This resource is already connected to the server"
|
||||
msgstr "Diese Ressource ist bereits mit dem Server verbunden"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1449
|
||||
msgid ""
|
||||
"Connection has been replaced by a new connection using the same resource"
|
||||
msgid "Connection has been replaced by a new connection using the same resource"
|
||||
msgstr ""
|
||||
"Die Verbindung wurde durch eine neue Verbindung mit der gleichen Ressource "
|
||||
"ersetzt"
|
||||
@ -1529,39 +1577,39 @@ msgstr "Untätig"
|
||||
msgid "Unavailable"
|
||||
msgstr "Nicht verfügbar"
|
||||
|
||||
#: ../js/ui/userMenu.js:547 ../js/ui/userMenu.js:551 ../js/ui/userMenu.js:621
|
||||
#: ../js/ui/userMenu.js:571 ../js/ui/userMenu.js:575 ../js/ui/userMenu.js:645
|
||||
msgid "Power Off..."
|
||||
msgstr "Ausschalten …"
|
||||
|
||||
#: ../js/ui/userMenu.js:583
|
||||
#: ../js/ui/userMenu.js:607
|
||||
msgid "Notifications"
|
||||
msgstr "Benachrichtigungen"
|
||||
|
||||
#: ../js/ui/userMenu.js:591
|
||||
#: ../js/ui/userMenu.js:615
|
||||
msgid "Online Accounts"
|
||||
msgstr "Online-Konten"
|
||||
|
||||
#: ../js/ui/userMenu.js:595
|
||||
#: ../js/ui/userMenu.js:619
|
||||
msgid "System Settings"
|
||||
msgstr "Systemeinstellungen"
|
||||
|
||||
#: ../js/ui/userMenu.js:602
|
||||
#: ../js/ui/userMenu.js:626
|
||||
msgid "Lock Screen"
|
||||
msgstr "Bildschirm sperren"
|
||||
|
||||
#: ../js/ui/userMenu.js:607
|
||||
#: ../js/ui/userMenu.js:631
|
||||
msgid "Switch User"
|
||||
msgstr "Benutzer wechseln"
|
||||
|
||||
#: ../js/ui/userMenu.js:612
|
||||
#: ../js/ui/userMenu.js:636
|
||||
msgid "Log Out..."
|
||||
msgstr "Abmelden …"
|
||||
|
||||
#: ../js/ui/userMenu.js:640
|
||||
#: ../js/ui/userMenu.js:664
|
||||
msgid "Your chat status will be set to busy"
|
||||
msgstr "Ihr Anwesenheitsstatus wird auf »Beschäftigt« gesetzt"
|
||||
|
||||
#: ../js/ui/userMenu.js:641
|
||||
#: ../js/ui/userMenu.js:665
|
||||
msgid ""
|
||||
"Notifications are now disabled, including chat messages. Your online status "
|
||||
"has been adjusted to let others know that you might not see their messages."
|
||||
@ -1578,7 +1626,7 @@ msgstr ""
|
||||
msgid "Type to search..."
|
||||
msgstr "Suchbegriff eingeben …"
|
||||
|
||||
#: ../js/ui/viewSelector.js:142 ../src/shell-util.c:261
|
||||
#: ../js/ui/viewSelector.js:142 ../src/shell-util.c:244
|
||||
msgid "Search"
|
||||
msgstr "Suchen"
|
||||
|
||||
@ -1609,15 +1657,15 @@ msgstr[1] "%u Eingänge"
|
||||
msgid "System Sounds"
|
||||
msgstr "Systemklänge"
|
||||
|
||||
#: ../src/main.c:480
|
||||
#: ../src/main.c:483
|
||||
msgid "Print version"
|
||||
msgstr "Version ausgeben"
|
||||
|
||||
#: ../src/main.c:486
|
||||
#: ../src/main.c:489
|
||||
msgid "Mode used by GDM for login screen"
|
||||
msgstr "Der durch GDM im Anmeldefenster verwendete Modus"
|
||||
|
||||
#: ../src/shell-app.c:579
|
||||
#: ../src/shell-app.c:567
|
||||
#, c-format
|
||||
msgid "Failed to launch '%s'"
|
||||
msgstr "»%s« konnte nicht gestartet werden"
|
||||
@ -1634,13 +1682,16 @@ msgstr "Vorgabe"
|
||||
msgid "Authentication dialog was dismissed by the user"
|
||||
msgstr "Der Dialog zur Legitimierung wurde vom Benutzer geschlossen"
|
||||
|
||||
#: ../src/shell-util.c:100
|
||||
msgid "Home Folder"
|
||||
msgstr "Persönlicher Ordner"
|
||||
#. Translators: this is the same string as the one found in
|
||||
#. * nautilus
|
||||
#: ../src/shell-util.c:89
|
||||
#, fuzzy
|
||||
msgid "Home"
|
||||
msgstr "Lautstärke"
|
||||
|
||||
#. Translators: this is the same string as the one found in
|
||||
#. * nautilus
|
||||
#: ../src/shell-util.c:115
|
||||
#: ../src/shell-util.c:98
|
||||
msgid "File System"
|
||||
msgstr "Dateisystem"
|
||||
|
||||
@ -1649,23 +1700,17 @@ msgstr "Dateisystem"
|
||||
#. * example, "Trash: some-directory". It means that the
|
||||
#. * directory called "some-directory" is in the trash.
|
||||
#.
|
||||
#: ../src/shell-util.c:311
|
||||
#: ../src/shell-util.c:294
|
||||
#, c-format
|
||||
msgid "%1$s: %2$s"
|
||||
msgstr "%1$s: %2$s"
|
||||
|
||||
#~ msgid "Home Folder"
|
||||
#~ msgstr "Persönlicher Ordner"
|
||||
|
||||
#~ msgid "Show password"
|
||||
#~ msgstr "Passwort anzeigen"
|
||||
|
||||
#~ msgid "%s has not emitted any errors."
|
||||
#~ msgstr "%s hat keine Fehler ausgegeben."
|
||||
|
||||
#~ msgid "Hide Errors"
|
||||
#~ msgstr "Fehler verbergen"
|
||||
|
||||
#~ msgid "Show Errors"
|
||||
#~ msgstr "Fehler anzeigen"
|
||||
|
||||
#~ msgid "%s has finished starting"
|
||||
#~ msgstr "Start von %s ist abgeschlossen"
|
||||
|
||||
|
154
po/en_GB.po
154
po/en_GB.po
@ -7,8 +7,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: gnome-shell master\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2011-10-14 19:11+0100\n"
|
||||
"PO-Revision-Date: 2011-10-14 19:12+0100\n"
|
||||
"POT-Creation-Date: 2011-11-12 07:44+0000\n"
|
||||
"PO-Revision-Date: 2011-11-12 07:47+0100\n"
|
||||
"Last-Translator: Bruce Cowan <bruce@bcowan.me.uk>\n"
|
||||
"Language-Team: British English <en@li.org>\n"
|
||||
"Language: en_GB\n"
|
||||
@ -16,7 +16,7 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Generator: Virtaal 0.7.1-rc1\n"
|
||||
"X-Generator: Virtaal 0.7.0\n"
|
||||
"X-Project-Style: gnome\n"
|
||||
|
||||
#: ../data/gnome-shell.desktop.in.in.h:1
|
||||
@ -180,42 +180,42 @@ msgstr "Which keyboard to use"
|
||||
msgid "disabled OpenSearch providers"
|
||||
msgstr "disabled OpenSearch providers"
|
||||
|
||||
#: ../js/gdm/loginDialog.js:617
|
||||
#: ../js/gdm/loginDialog.js:633
|
||||
msgid "Session..."
|
||||
msgstr "Session…"
|
||||
|
||||
#: ../js/gdm/loginDialog.js:788
|
||||
#: ../js/gdm/loginDialog.js:804
|
||||
msgctxt "title"
|
||||
msgid "Sign In"
|
||||
msgstr "Sign In"
|
||||
|
||||
#. translators: this message is shown below the password entry field
|
||||
#. to indicate the user can swipe their finger instead
|
||||
#: ../js/gdm/loginDialog.js:833
|
||||
#: ../js/gdm/loginDialog.js:849
|
||||
msgid "(or swipe finger)"
|
||||
msgstr "(or swipe finger)"
|
||||
|
||||
#: ../js/gdm/loginDialog.js:851
|
||||
#: ../js/gdm/loginDialog.js:867
|
||||
msgid "Not listed?"
|
||||
msgstr "Not listed?"
|
||||
|
||||
#: ../js/gdm/loginDialog.js:1019 ../js/ui/endSessionDialog.js:426
|
||||
#: ../js/ui/extensionSystem.js:477 ../js/ui/networkAgent.js:165
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:171 ../js/ui/status/bluetooth.js:480
|
||||
#: ../js/gdm/loginDialog.js:1035 ../js/ui/endSessionDialog.js:426
|
||||
#: ../js/ui/extensionSystem.js:477 ../js/ui/networkAgent.js:148
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:173 ../js/ui/status/bluetooth.js:480
|
||||
msgid "Cancel"
|
||||
msgstr "Cancel"
|
||||
|
||||
#: ../js/gdm/loginDialog.js:1024
|
||||
#: ../js/gdm/loginDialog.js:1040
|
||||
msgctxt "button"
|
||||
msgid "Sign In"
|
||||
msgstr "Sign In"
|
||||
|
||||
#: ../js/gdm/loginDialog.js:1373
|
||||
#: ../js/gdm/loginDialog.js:1392
|
||||
msgid "Login Window"
|
||||
msgstr "Login Window"
|
||||
|
||||
#: ../js/gdm/powerMenu.js:116 ../js/ui/userMenu.js:549
|
||||
#: ../js/ui/userMenu.js:551 ../js/ui/userMenu.js:620
|
||||
#: ../js/gdm/powerMenu.js:116 ../js/ui/userMenu.js:554
|
||||
#: ../js/ui/userMenu.js:556 ../js/ui/userMenu.js:625
|
||||
msgid "Suspend"
|
||||
msgstr "Suspend"
|
||||
|
||||
@ -438,7 +438,7 @@ msgstr "This week"
|
||||
msgid "Next week"
|
||||
msgstr "Next week"
|
||||
|
||||
#: ../js/ui/contactDisplay.js:65 ../js/ui/notificationDaemon.js:444
|
||||
#: ../js/ui/contactDisplay.js:65 ../js/ui/notificationDaemon.js:459
|
||||
#: ../js/ui/status/power.js:223 ../src/shell-app.c:353
|
||||
msgid "Unknown"
|
||||
msgstr "Unknown"
|
||||
@ -463,7 +463,7 @@ msgstr "Offline"
|
||||
msgid "CONTACTS"
|
||||
msgstr "CONTACTS"
|
||||
|
||||
#: ../js/ui/dash.js:172 ../js/ui/messageTray.js:1204
|
||||
#: ../js/ui/dash.js:174 ../js/ui/messageTray.js:1206
|
||||
msgid "Remove"
|
||||
msgstr "Remove"
|
||||
|
||||
@ -596,100 +596,96 @@ msgstr "Install"
|
||||
msgid "Download and install '%s' from extensions.gnome.org?"
|
||||
msgstr "Download and install '%s' from extensions.gnome.org?"
|
||||
|
||||
#: ../js/ui/keyboard.js:309
|
||||
#: ../js/ui/keyboard.js:325
|
||||
msgid "tray"
|
||||
msgstr "tray"
|
||||
|
||||
#: ../js/ui/keyboard.js:531 ../js/ui/status/power.js:211
|
||||
#: ../js/ui/keyboard.js:547 ../js/ui/status/power.js:211
|
||||
msgid "Keyboard"
|
||||
msgstr "Keyboard"
|
||||
|
||||
#: ../js/ui/lookingGlass.js:645
|
||||
#: ../js/ui/lookingGlass.js:646
|
||||
msgid "No extensions installed"
|
||||
msgstr "No extensions installed"
|
||||
|
||||
#: ../js/ui/lookingGlass.js:691
|
||||
#: ../js/ui/lookingGlass.js:692
|
||||
msgid "Enabled"
|
||||
msgstr "Enabled"
|
||||
|
||||
#. translators:
|
||||
#. * The device has been disabled
|
||||
#: ../js/ui/lookingGlass.js:693 ../src/gvc/gvc-mixer-control.c:1093
|
||||
#: ../js/ui/lookingGlass.js:694 ../src/gvc/gvc-mixer-control.c:1093
|
||||
msgid "Disabled"
|
||||
msgstr "Disabled"
|
||||
|
||||
#: ../js/ui/lookingGlass.js:695
|
||||
#: ../js/ui/lookingGlass.js:696
|
||||
msgid "Error"
|
||||
msgstr "Error"
|
||||
|
||||
#: ../js/ui/lookingGlass.js:697
|
||||
#: ../js/ui/lookingGlass.js:698
|
||||
msgid "Out of date"
|
||||
msgstr "Out of date"
|
||||
|
||||
#: ../js/ui/lookingGlass.js:699
|
||||
#: ../js/ui/lookingGlass.js:700
|
||||
msgid "Downloading"
|
||||
msgstr "Downloading"
|
||||
|
||||
#: ../js/ui/lookingGlass.js:720
|
||||
#: ../js/ui/lookingGlass.js:721
|
||||
msgid "View Source"
|
||||
msgstr "View Source"
|
||||
|
||||
#: ../js/ui/lookingGlass.js:726
|
||||
#: ../js/ui/lookingGlass.js:727
|
||||
msgid "Web Page"
|
||||
msgstr "Web Page"
|
||||
|
||||
#: ../js/ui/messageTray.js:1197
|
||||
#: ../js/ui/messageTray.js:1199
|
||||
msgid "Open"
|
||||
msgstr "Open"
|
||||
|
||||
#: ../js/ui/messageTray.js:2406
|
||||
#: ../js/ui/messageTray.js:2408
|
||||
msgid "System Information"
|
||||
msgstr "System Information"
|
||||
|
||||
#: ../js/ui/networkAgent.js:145
|
||||
msgid "Show password"
|
||||
msgstr "Show password"
|
||||
|
||||
#: ../js/ui/networkAgent.js:160
|
||||
#: ../js/ui/networkAgent.js:143
|
||||
msgid "Connect"
|
||||
msgstr "Connect"
|
||||
|
||||
#. Cisco LEAP
|
||||
#: ../js/ui/networkAgent.js:255 ../js/ui/networkAgent.js:267
|
||||
#: ../js/ui/networkAgent.js:294 ../js/ui/networkAgent.js:314
|
||||
#: ../js/ui/networkAgent.js:324
|
||||
#: ../js/ui/networkAgent.js:238 ../js/ui/networkAgent.js:250
|
||||
#: ../js/ui/networkAgent.js:277 ../js/ui/networkAgent.js:297
|
||||
#: ../js/ui/networkAgent.js:307
|
||||
msgid "Password: "
|
||||
msgstr "Password: "
|
||||
|
||||
#. static WEP
|
||||
#: ../js/ui/networkAgent.js:260
|
||||
#: ../js/ui/networkAgent.js:243
|
||||
msgid "Key: "
|
||||
msgstr "Key: "
|
||||
|
||||
#. 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/ui/networkAgent.js:292 ../js/ui/networkAgent.js:310
|
||||
#: ../js/ui/networkAgent.js:275 ../js/ui/networkAgent.js:293
|
||||
msgid "Username: "
|
||||
msgstr "Username: "
|
||||
|
||||
#: ../js/ui/networkAgent.js:298
|
||||
#: ../js/ui/networkAgent.js:281
|
||||
msgid "Identity: "
|
||||
msgstr "Identity: "
|
||||
|
||||
#: ../js/ui/networkAgent.js:300
|
||||
#: ../js/ui/networkAgent.js:283
|
||||
msgid "Private key password: "
|
||||
msgstr "Private key password: "
|
||||
|
||||
#: ../js/ui/networkAgent.js:312
|
||||
#: ../js/ui/networkAgent.js:295
|
||||
msgid "Service: "
|
||||
msgstr "Service: "
|
||||
|
||||
#: ../js/ui/networkAgent.js:341
|
||||
#: ../js/ui/networkAgent.js:324
|
||||
msgid "Authentication required by wireless network"
|
||||
msgstr "Authentication required by wireless network"
|
||||
|
||||
#: ../js/ui/networkAgent.js:342
|
||||
#: ../js/ui/networkAgent.js:325
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Passwords or encryption keys are required to access the wireless network "
|
||||
@ -698,35 +694,35 @@ msgstr ""
|
||||
"Passwords or encryption keys are required to access the wireless network "
|
||||
"'%s'."
|
||||
|
||||
#: ../js/ui/networkAgent.js:346
|
||||
#: ../js/ui/networkAgent.js:329
|
||||
msgid "Wired 802.1X authentication"
|
||||
msgstr "Wired 802.1X authentication"
|
||||
|
||||
#: ../js/ui/networkAgent.js:348
|
||||
#: ../js/ui/networkAgent.js:331
|
||||
msgid "Network name: "
|
||||
msgstr "Network name: "
|
||||
|
||||
#: ../js/ui/networkAgent.js:353
|
||||
#: ../js/ui/networkAgent.js:336
|
||||
msgid "DSL authentication"
|
||||
msgstr "DSL authentication"
|
||||
|
||||
#: ../js/ui/networkAgent.js:360
|
||||
#: ../js/ui/networkAgent.js:343
|
||||
msgid "PIN code required"
|
||||
msgstr "PIN code required"
|
||||
|
||||
#: ../js/ui/networkAgent.js:361
|
||||
#: ../js/ui/networkAgent.js:344
|
||||
msgid "PIN code is needed for the mobile broadband device"
|
||||
msgstr "PIN code is needed for the mobile broadband device"
|
||||
|
||||
#: ../js/ui/networkAgent.js:362
|
||||
#: ../js/ui/networkAgent.js:345
|
||||
msgid "PIN: "
|
||||
msgstr "PIN: "
|
||||
|
||||
#: ../js/ui/networkAgent.js:368
|
||||
#: ../js/ui/networkAgent.js:351
|
||||
msgid "Mobile broadband network password"
|
||||
msgstr "Mobile broadband network password"
|
||||
|
||||
#: ../js/ui/networkAgent.js:369
|
||||
#: ../js/ui/networkAgent.js:352
|
||||
#, c-format
|
||||
msgid "A password is required to connect to '%s'."
|
||||
msgstr "A password is required to connect to '%s'."
|
||||
@ -782,15 +778,15 @@ msgstr "Connect to…"
|
||||
msgid "PLACES & DEVICES"
|
||||
msgstr "PLACES & DEVICES"
|
||||
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:72
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:73
|
||||
msgid "Authentication Required"
|
||||
msgstr "Authentication Required"
|
||||
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:106
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:107
|
||||
msgid "Administrator"
|
||||
msgstr "Administrator"
|
||||
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:175
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:177
|
||||
msgid "Authenticate"
|
||||
msgstr "Authenticate"
|
||||
|
||||
@ -798,11 +794,11 @@ msgstr "Authenticate"
|
||||
#. * requested authentication was not gained; this can happen
|
||||
#. * because of an authentication error (like invalid password),
|
||||
#. * for instance.
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:256
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:258
|
||||
msgid "Sorry, that didn't work. Please try again."
|
||||
msgstr "Sorry, that didn't work. Please try again."
|
||||
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:268
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:270
|
||||
msgid "Password:"
|
||||
msgstr "Password:"
|
||||
|
||||
@ -815,7 +811,7 @@ msgstr "Password:"
|
||||
msgid "toggle-switch-us"
|
||||
msgstr "toggle-switch-us"
|
||||
|
||||
#: ../js/ui/runDialog.js:208
|
||||
#: ../js/ui/runDialog.js:209
|
||||
msgid "Please enter a command:"
|
||||
msgstr "Please enter a command:"
|
||||
|
||||
@ -827,6 +823,22 @@ msgstr "Searching…"
|
||||
msgid "No matching results."
|
||||
msgstr "No matching results."
|
||||
|
||||
#: ../js/ui/shellEntry.js:30
|
||||
msgid "Copy"
|
||||
msgstr "Copy"
|
||||
|
||||
#: ../js/ui/shellEntry.js:35
|
||||
msgid "Paste"
|
||||
msgstr "Paste"
|
||||
|
||||
#: ../js/ui/shellEntry.js:81
|
||||
msgid "Show Text"
|
||||
msgstr "Show Text"
|
||||
|
||||
#: ../js/ui/shellEntry.js:83
|
||||
msgid "Hide Text"
|
||||
msgstr "Hide Text"
|
||||
|
||||
#: ../js/ui/shellMountOperation.js:285
|
||||
msgid "Wrong password, please try again"
|
||||
msgstr "Wrong password, please try again"
|
||||
@ -1484,39 +1496,39 @@ msgstr "Idle"
|
||||
msgid "Unavailable"
|
||||
msgstr "Unavailable"
|
||||
|
||||
#: ../js/ui/userMenu.js:547 ../js/ui/userMenu.js:551 ../js/ui/userMenu.js:621
|
||||
#: ../js/ui/userMenu.js:552 ../js/ui/userMenu.js:556 ../js/ui/userMenu.js:626
|
||||
msgid "Power Off..."
|
||||
msgstr "Power Off…"
|
||||
|
||||
#: ../js/ui/userMenu.js:583
|
||||
#: ../js/ui/userMenu.js:588
|
||||
msgid "Notifications"
|
||||
msgstr "Notifications"
|
||||
|
||||
#: ../js/ui/userMenu.js:591
|
||||
#: ../js/ui/userMenu.js:596
|
||||
msgid "Online Accounts"
|
||||
msgstr "Online Accounts"
|
||||
|
||||
#: ../js/ui/userMenu.js:595
|
||||
#: ../js/ui/userMenu.js:600
|
||||
msgid "System Settings"
|
||||
msgstr "System Settings"
|
||||
|
||||
#: ../js/ui/userMenu.js:602
|
||||
#: ../js/ui/userMenu.js:607
|
||||
msgid "Lock Screen"
|
||||
msgstr "Lock Screen"
|
||||
|
||||
#: ../js/ui/userMenu.js:607
|
||||
#: ../js/ui/userMenu.js:612
|
||||
msgid "Switch User"
|
||||
msgstr "Switch User"
|
||||
|
||||
#: ../js/ui/userMenu.js:612
|
||||
#: ../js/ui/userMenu.js:617
|
||||
msgid "Log Out..."
|
||||
msgstr "Log Out…"
|
||||
|
||||
#: ../js/ui/userMenu.js:640
|
||||
#: ../js/ui/userMenu.js:645
|
||||
msgid "Your chat status will be set to busy"
|
||||
msgstr "Your chat status will be set to busy"
|
||||
|
||||
#: ../js/ui/userMenu.js:641
|
||||
#: ../js/ui/userMenu.js:646
|
||||
msgid ""
|
||||
"Notifications are now disabled, including chat messages. Your online status "
|
||||
"has been adjusted to let others know that you might not see their messages."
|
||||
@ -1528,11 +1540,11 @@ msgstr ""
|
||||
#. in the search entry when no search is
|
||||
#. active; it should not exceed ~30
|
||||
#. characters.
|
||||
#: ../js/ui/viewSelector.js:120
|
||||
#: ../js/ui/viewSelector.js:121
|
||||
msgid "Type to search..."
|
||||
msgstr "Type to search…"
|
||||
|
||||
#: ../js/ui/viewSelector.js:140 ../src/shell-util.c:261
|
||||
#: ../js/ui/viewSelector.js:142 ../src/shell-util.c:261
|
||||
msgid "Search"
|
||||
msgstr "Search"
|
||||
|
||||
@ -1608,6 +1620,9 @@ msgstr "File System"
|
||||
msgid "%1$s: %2$s"
|
||||
msgstr "%1$s: %2$s"
|
||||
|
||||
#~ msgid "Show password"
|
||||
#~ msgstr "Show password"
|
||||
|
||||
#~ msgid "If true, display onscreen keyboard."
|
||||
#~ msgstr "If true, display on-screen keyboard."
|
||||
|
||||
@ -1749,9 +1764,6 @@ msgstr "%1$s: %2$s"
|
||||
#~ msgid "Show seco_nds"
|
||||
#~ msgstr "Show seco_nds"
|
||||
|
||||
#~ msgid "Show the _date"
|
||||
#~ msgstr "Show the _date"
|
||||
|
||||
#~ msgid "_12 hour format"
|
||||
#~ msgstr "_12 hour format"
|
||||
|
||||
|
355
po/eo.po
355
po/eo.po
@ -3,21 +3,22 @@
|
||||
# This file is distributed under the same license as the gnome-shell package.
|
||||
# Tiffany Antopolski <tiffany.antopolski@gmail.com>, 2011.
|
||||
# Kristjan SCHMIDT <kristjan.schmidt@googlemail.com>, 2011.
|
||||
#
|
||||
msgid ""
|
||||
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: 2011-10-02 16:05+0000\n"
|
||||
"PO-Revision-Date: 2011-10-03 10:32-0400\n"
|
||||
"Last-Translator: Tiffany Antopolski <tiffany.antopolski@gmail.com>\n"
|
||||
"Language-Team: Esperanto\n"
|
||||
"POT-Creation-Date: 2011-10-26 09:56+0000\n"
|
||||
"PO-Revision-Date: 2011-10-26 19:08+0200\n"
|
||||
"Last-Translator: Kristjan SCHMIDT <kristjan.schmidt@googlemail.com>\n"
|
||||
"Language-Team: Esperanto <ubuntu-l10n-eo@lists.launchpad.net>\n"
|
||||
"Language: eo\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: eo\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Generator: Virtaal 0.7.0\n"
|
||||
"Content-Transfer-Encoding: 8bits\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
|
||||
"X-Generator: Virtaal 0.7.1-rc1\n"
|
||||
"X-DamnedLies-Scope: partial\n"
|
||||
"X-Project-Style: gnome\n"
|
||||
|
||||
@ -140,10 +141,10 @@ msgid ""
|
||||
"want to disable this for privacy reasons. Please note that doing so won't "
|
||||
"remove already saved data."
|
||||
msgstr ""
|
||||
"La ŝelo kutime kontrolas la ruliĝaj aplikaĵoj por montri plej uzitaj "
|
||||
"aplikaĵoj (ekz. en lanĉiloj). Kvankam ĉi tiu datumoj estos tenata privata, "
|
||||
"vi pove volos malŝalti ĉi tiu pro privatado kielo. Bonvole atentu ke faranta "
|
||||
"ĉi tiu ne forigos jam konservitaj datumoj ."
|
||||
"La ŝelo kutime kontrolas la ruliĝajn aplikaĵojn por montri la plej uzitajn "
|
||||
"aplikaĵojn (ekz. en lanĉiloj). Kvankam ĉi tiu datumoj estos tenata privata, "
|
||||
"vi eble volas elŝalti ĉi tion pro privateca kialo. Bonvole atentu ke faranta "
|
||||
"ĉi tion ne forigos jam konservitajn datumojn."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.h:22
|
||||
msgid "The type of keyboard to use."
|
||||
@ -165,52 +166,50 @@ msgstr "Uzi kiun klavaron"
|
||||
msgid "disabled OpenSearch providers"
|
||||
msgstr "elŝaltitaj OpenSearch-provizantoj"
|
||||
|
||||
#: ../js/gdm/loginDialog.js:617
|
||||
#: ../js/gdm/loginDialog.js:633
|
||||
msgid "Session..."
|
||||
msgstr "Seanco..."
|
||||
|
||||
#: ../js/gdm/loginDialog.js:785
|
||||
#: ../js/gdm/loginDialog.js:804
|
||||
msgctxt "title"
|
||||
msgid "Sign In"
|
||||
msgstr "Ensaluti"
|
||||
|
||||
#. translators: this message is shown below the password entry field
|
||||
#. to indicate the user can swipe their finger instead
|
||||
#: ../js/gdm/loginDialog.js:830
|
||||
#: ../js/gdm/loginDialog.js:849
|
||||
msgid "(or swipe finger)"
|
||||
msgstr "(aŭ pasu fingron)"
|
||||
|
||||
#: ../js/gdm/loginDialog.js:848
|
||||
#: ../js/gdm/loginDialog.js:867
|
||||
msgid "Not listed?"
|
||||
msgstr "Ĉu ne en listo?"
|
||||
|
||||
#: ../js/gdm/loginDialog.js:1004 ../js/ui/endSessionDialog.js:426
|
||||
#: ../js/ui/extensionSystem.js:477 ../js/ui/networkAgent.js:165
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:171 ../js/ui/status/bluetooth.js:480
|
||||
#: ../js/gdm/loginDialog.js:1035 ../js/ui/endSessionDialog.js:426
|
||||
#: ../js/ui/extensionSystem.js:520 ../js/ui/networkAgent.js:148
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:173 ../js/ui/status/bluetooth.js:480
|
||||
msgid "Cancel"
|
||||
msgstr "Nuligi"
|
||||
|
||||
#: ../js/gdm/loginDialog.js:1009
|
||||
#: ../js/gdm/loginDialog.js:1040
|
||||
msgctxt "button"
|
||||
msgid "Sign In"
|
||||
msgstr "Ensaluti"
|
||||
|
||||
#: ../js/gdm/loginDialog.js:1358
|
||||
#: ../js/gdm/loginDialog.js:1392
|
||||
msgid "Login Window"
|
||||
msgstr "Ensalutfenestro"
|
||||
|
||||
#: ../js/gdm/powerMenu.js:116 ../js/ui/userMenu.js:514
|
||||
#: ../js/ui/userMenu.js:516 ../js/ui/userMenu.js:585
|
||||
#: ../js/gdm/powerMenu.js:116 ../js/ui/userMenu.js:573
|
||||
#: ../js/ui/userMenu.js:575 ../js/ui/userMenu.js:644
|
||||
msgid "Suspend"
|
||||
msgstr "Dormeti"
|
||||
|
||||
#: ../js/gdm/powerMenu.js:121 ../js/ui/endSessionDialog.js:89
|
||||
#: ../js/ui/endSessionDialog.js:97 ../js/ui/endSessionDialog.js:106
|
||||
#: ../js/gdm/powerMenu.js:121
|
||||
msgid "Restart"
|
||||
msgstr "Restartigi"
|
||||
|
||||
#: ../js/gdm/powerMenu.js:126 ../js/ui/endSessionDialog.js:80
|
||||
#: ../js/ui/endSessionDialog.js:91
|
||||
#: ../js/gdm/powerMenu.js:126
|
||||
msgid "Power Off"
|
||||
msgstr "Elŝalti"
|
||||
|
||||
@ -427,32 +426,32 @@ msgstr "Ĉi tiu semajno"
|
||||
msgid "Next week"
|
||||
msgstr "Sekva semajno"
|
||||
|
||||
#: ../js/ui/contactDisplay.js:59 ../js/ui/notificationDaemon.js:444
|
||||
#: ../js/ui/status/power.js:223 ../src/shell-app.c:355
|
||||
#: ../js/ui/contactDisplay.js:65 ../js/ui/notificationDaemon.js:459
|
||||
#: ../js/ui/status/power.js:223 ../src/shell-app.c:350
|
||||
msgid "Unknown"
|
||||
msgstr "Nekonata"
|
||||
|
||||
#: ../js/ui/contactDisplay.js:80 ../js/ui/userMenu.js:139
|
||||
#: ../js/ui/contactDisplay.js:86 ../js/ui/userMenu.js:139
|
||||
msgid "Available"
|
||||
msgstr "Disponebla"
|
||||
|
||||
#: ../js/ui/contactDisplay.js:85 ../js/ui/userMenu.js:148
|
||||
#: ../js/ui/contactDisplay.js:91 ../js/ui/userMenu.js:148
|
||||
msgid "Away"
|
||||
msgstr "Fora"
|
||||
|
||||
#: ../js/ui/contactDisplay.js:89 ../js/ui/userMenu.js:142
|
||||
#: ../js/ui/contactDisplay.js:95 ../js/ui/userMenu.js:142
|
||||
msgid "Busy"
|
||||
msgstr "Okupita"
|
||||
|
||||
#: ../js/ui/contactDisplay.js:93
|
||||
#: ../js/ui/contactDisplay.js:99
|
||||
msgid "Offline"
|
||||
msgstr "Nekonektite"
|
||||
|
||||
#: ../js/ui/contactDisplay.js:140
|
||||
#: ../js/ui/contactDisplay.js:146
|
||||
msgid "CONTACTS"
|
||||
msgstr "KONTAKTOJ"
|
||||
|
||||
#: ../js/ui/dash.js:172 ../js/ui/messageTray.js:1204
|
||||
#: ../js/ui/dash.js:174 ../js/ui/messageTray.js:1206
|
||||
msgid "Remove"
|
||||
msgstr "Forigi"
|
||||
|
||||
@ -517,10 +516,12 @@ msgstr "LASTATEMPAJ ELEMENTOJ"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:60
|
||||
#, c-format
|
||||
msgctxt "title"
|
||||
msgid "Log Out %s"
|
||||
msgstr "Elsaluti %s"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:61 ../js/ui/endSessionDialog.js:75
|
||||
#: ../js/ui/endSessionDialog.js:61
|
||||
msgctxt "title"
|
||||
msgid "Log Out"
|
||||
msgstr "Elsaluti"
|
||||
|
||||
@ -547,6 +548,16 @@ msgstr[1] "Vi aŭtomate elsalutos post %d sekundoj."
|
||||
msgid "Logging out of the system."
|
||||
msgstr "Elsalutanta de la sistemo."
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:75
|
||||
msgctxt "button"
|
||||
msgid "Log Out"
|
||||
msgstr "Elsaluti"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:80
|
||||
msgctxt "title"
|
||||
msgid "Power Off"
|
||||
msgstr "Elŝalti"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:81
|
||||
msgid "Click Power Off to quit these applications and power off the system."
|
||||
msgstr "Alklaku \"Elŝalti\" por ĉesi tiujn aplikaĵojn kaj elŝalti la sistemon."
|
||||
@ -562,6 +573,21 @@ msgstr[1] "La sistemo aŭtomate elŝaltiĝos post %d sekundoj."
|
||||
msgid "Powering off the system."
|
||||
msgstr "Elŝaltanta la sistemon."
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:89 ../js/ui/endSessionDialog.js:106
|
||||
msgctxt "button"
|
||||
msgid "Restart"
|
||||
msgstr "Restartigi"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:91
|
||||
msgctxt "button"
|
||||
msgid "Power Off"
|
||||
msgstr "Elŝalti"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:97
|
||||
msgctxt "title"
|
||||
msgid "Restart"
|
||||
msgstr "Restartigi"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:98
|
||||
msgid "Click Restart to quit these applications and restart the system."
|
||||
msgstr ""
|
||||
@ -578,156 +604,156 @@ msgstr[1] "La sistemo aŭtomate restartos post %d sekundoj."
|
||||
msgid "Restarting the system."
|
||||
msgstr "Restartiganta la sistemon."
|
||||
|
||||
#: ../js/ui/extensionSystem.js:481
|
||||
#: ../js/ui/extensionSystem.js:524
|
||||
msgid "Install"
|
||||
msgstr "Instali"
|
||||
|
||||
#: ../js/ui/extensionSystem.js:485
|
||||
#: ../js/ui/extensionSystem.js:528
|
||||
#, c-format
|
||||
msgid "Download and install '%s' from extensions.gnome.org?"
|
||||
msgstr "Elŝuti kaj instali '%s' de extensions.gnome.org?"
|
||||
|
||||
#: ../js/ui/keyboard.js:529 ../js/ui/status/power.js:211
|
||||
#: ../js/ui/keyboard.js:325
|
||||
msgid "tray"
|
||||
msgstr "pleto"
|
||||
|
||||
#: ../js/ui/keyboard.js:547 ../js/ui/status/power.js:211
|
||||
msgid "Keyboard"
|
||||
msgstr "Klavaro"
|
||||
|
||||
#: ../js/ui/lookingGlass.js:645
|
||||
#: ../js/ui/lookingGlass.js:664
|
||||
msgid "No extensions installed"
|
||||
msgstr "Neniu kromprogramo instalita"
|
||||
|
||||
#. Translators: argument is an extension UUID.
|
||||
#: ../js/ui/lookingGlass.js:700
|
||||
#: ../js/ui/lookingGlass.js:719
|
||||
#, c-format
|
||||
msgid "%s has not emitted any errors."
|
||||
msgstr "%s ne eligintaj ajnaj eraroj."
|
||||
|
||||
#: ../js/ui/lookingGlass.js:706
|
||||
#: ../js/ui/lookingGlass.js:725
|
||||
msgid "Hide Errors"
|
||||
msgstr "Kaŝi Erarojn"
|
||||
msgstr "Kaŝi erarojn"
|
||||
|
||||
#: ../js/ui/lookingGlass.js:710 ../js/ui/lookingGlass.js:764
|
||||
#: ../js/ui/lookingGlass.js:729 ../js/ui/lookingGlass.js:779
|
||||
msgid "Show Errors"
|
||||
msgstr "Montri erarojn"
|
||||
|
||||
#: ../js/ui/lookingGlass.js:719
|
||||
#: ../js/ui/lookingGlass.js:738
|
||||
msgid "Enabled"
|
||||
msgstr "Enŝaltita"
|
||||
|
||||
#. translators:
|
||||
#. * The device has been disabled
|
||||
#: ../js/ui/lookingGlass.js:721 ../src/gvc/gvc-mixer-control.c:1093
|
||||
#: ../js/ui/lookingGlass.js:740 ../src/gvc/gvc-mixer-control.c:1093
|
||||
msgid "Disabled"
|
||||
msgstr "Elŝaltita"
|
||||
|
||||
#: ../js/ui/lookingGlass.js:723
|
||||
#: ../js/ui/lookingGlass.js:742
|
||||
msgid "Error"
|
||||
msgstr "Eraro"
|
||||
|
||||
#: ../js/ui/lookingGlass.js:725
|
||||
#: ../js/ui/lookingGlass.js:744
|
||||
msgid "Out of date"
|
||||
msgstr "Neaktuala"
|
||||
|
||||
#: ../js/ui/lookingGlass.js:727
|
||||
#: ../js/ui/lookingGlass.js:746
|
||||
msgid "Downloading"
|
||||
msgstr "Elŝutanta"
|
||||
|
||||
#: ../js/ui/lookingGlass.js:752
|
||||
#: ../js/ui/lookingGlass.js:767
|
||||
msgid "View Source"
|
||||
msgstr "Montri fonton"
|
||||
|
||||
#: ../js/ui/lookingGlass.js:758
|
||||
#: ../js/ui/lookingGlass.js:773
|
||||
msgid "Web Page"
|
||||
msgstr "Retpaĝo"
|
||||
|
||||
#: ../js/ui/messageTray.js:1197
|
||||
#: ../js/ui/messageTray.js:1199
|
||||
msgid "Open"
|
||||
msgstr "Malfermi"
|
||||
|
||||
#: ../js/ui/messageTray.js:2406
|
||||
#: ../js/ui/messageTray.js:2408
|
||||
msgid "System Information"
|
||||
msgstr "Sisteminformoj"
|
||||
|
||||
#: ../js/ui/networkAgent.js:145
|
||||
msgid "Show password"
|
||||
msgstr "Montri pasvorton"
|
||||
|
||||
#: ../js/ui/networkAgent.js:160
|
||||
#: ../js/ui/networkAgent.js:143
|
||||
msgid "Connect"
|
||||
msgstr "Konekti"
|
||||
|
||||
#. Cisco LEAP
|
||||
#: ../js/ui/networkAgent.js:255 ../js/ui/networkAgent.js:267
|
||||
#: ../js/ui/networkAgent.js:294 ../js/ui/networkAgent.js:314
|
||||
#: ../js/ui/networkAgent.js:324
|
||||
#: ../js/ui/networkAgent.js:238 ../js/ui/networkAgent.js:250
|
||||
#: ../js/ui/networkAgent.js:277 ../js/ui/networkAgent.js:297
|
||||
#: ../js/ui/networkAgent.js:307
|
||||
msgid "Password: "
|
||||
msgstr "Pasvorto: "
|
||||
|
||||
#. static WEP
|
||||
#: ../js/ui/networkAgent.js:260
|
||||
#: ../js/ui/networkAgent.js:243
|
||||
msgid "Key: "
|
||||
msgstr "Ŝlosilo: "
|
||||
|
||||
#. 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/ui/networkAgent.js:292 ../js/ui/networkAgent.js:310
|
||||
#: ../js/ui/networkAgent.js:275 ../js/ui/networkAgent.js:293
|
||||
msgid "Username: "
|
||||
msgstr "Uzantnomo: "
|
||||
|
||||
#: ../js/ui/networkAgent.js:298
|
||||
#: ../js/ui/networkAgent.js:281
|
||||
msgid "Identity: "
|
||||
msgstr "Idento:"
|
||||
|
||||
#: ../js/ui/networkAgent.js:300
|
||||
#: ../js/ui/networkAgent.js:283
|
||||
msgid "Private key password: "
|
||||
msgstr "Pasvorto por privata ŝlosilo:"
|
||||
|
||||
#: ../js/ui/networkAgent.js:312
|
||||
#: ../js/ui/networkAgent.js:295
|
||||
msgid "Service: "
|
||||
msgstr "Servo:"
|
||||
|
||||
#: ../js/ui/networkAgent.js:341
|
||||
#: ../js/ui/networkAgent.js:324
|
||||
msgid "Authentication required by wireless network"
|
||||
msgstr "Aŭtentokontrolo bezonitas de sendrata reto"
|
||||
|
||||
#: ../js/ui/networkAgent.js:342
|
||||
#: ../js/ui/networkAgent.js:325
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Passwords or encryption keys are required to access the wireless network '%"
|
||||
"s'."
|
||||
"Passwords or encryption keys are required to access the wireless network "
|
||||
"'%s'."
|
||||
msgstr ""
|
||||
"Pasvortoj aŭ ĉifrado-ŝlosiloj estas necesaĵoj por aliro al sendrata reto '%"
|
||||
"s'."
|
||||
"Pasvortoj aŭ ĉifrado-ŝlosiloj estas necesaĵoj por aliro al sendrata reto "
|
||||
"'%s'."
|
||||
|
||||
#: ../js/ui/networkAgent.js:346
|
||||
#: ../js/ui/networkAgent.js:329
|
||||
msgid "Wired 802.1X authentication"
|
||||
msgstr "Dratita 802.1X aŭtentokontrolo"
|
||||
|
||||
#: ../js/ui/networkAgent.js:348
|
||||
#: ../js/ui/networkAgent.js:331
|
||||
msgid "Network name: "
|
||||
msgstr "Reta nomo: "
|
||||
|
||||
#: ../js/ui/networkAgent.js:353
|
||||
#: ../js/ui/networkAgent.js:336
|
||||
msgid "DSL authentication"
|
||||
msgstr "DSL-a aŭtentokontrolo"
|
||||
|
||||
#: ../js/ui/networkAgent.js:360
|
||||
#: ../js/ui/networkAgent.js:343
|
||||
msgid "PIN code required"
|
||||
msgstr "PIN-kodo bezonita"
|
||||
|
||||
#: ../js/ui/networkAgent.js:361
|
||||
#: ../js/ui/networkAgent.js:344
|
||||
msgid "PIN code is needed for the mobile broadband device"
|
||||
msgstr "PIN-kodo estas bezonita por la portebla larĝkapacita aparato"
|
||||
|
||||
#: ../js/ui/networkAgent.js:362
|
||||
#: ../js/ui/networkAgent.js:345
|
||||
msgid "PIN: "
|
||||
msgstr "PIN: "
|
||||
|
||||
#: ../js/ui/networkAgent.js:368
|
||||
#: ../js/ui/networkAgent.js:351
|
||||
msgid "Mobile broadband network password"
|
||||
msgstr "Portebla larĝkapacita retopasvorto"
|
||||
|
||||
#: ../js/ui/networkAgent.js:369
|
||||
#: ../js/ui/networkAgent.js:352
|
||||
#, c-format
|
||||
msgid "A password is required to connect to '%s'."
|
||||
msgstr "Pasvorto estas bezonita por konekti al '%s'."
|
||||
@ -784,15 +810,15 @@ msgstr "Konekti al..."
|
||||
msgid "PLACES & DEVICES"
|
||||
msgstr "EJOJ kaj APARATOJ"
|
||||
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:72
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:73
|
||||
msgid "Authentication Required"
|
||||
msgstr "Aŭtentigo bezonita"
|
||||
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:106
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:107
|
||||
msgid "Administrator"
|
||||
msgstr "Administranto"
|
||||
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:175
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:177
|
||||
msgid "Authenticate"
|
||||
msgstr "Aŭtentigi"
|
||||
|
||||
@ -800,11 +826,11 @@ msgstr "Aŭtentigi"
|
||||
#. * requested authentication was not gained; this can happen
|
||||
#. * because of an authentication error (like invalid password),
|
||||
#. * for instance.
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:256
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:258
|
||||
msgid "Sorry, that didn't work. Please try again."
|
||||
msgstr "Pardonu, tio ne funkcis. Bonvole provu denove."
|
||||
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:268
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:270
|
||||
msgid "Password:"
|
||||
msgstr "Pasvorto:"
|
||||
|
||||
@ -817,7 +843,7 @@ msgstr "Pasvorto:"
|
||||
msgid "toggle-switch-us"
|
||||
msgstr "toggle-switch-intl"
|
||||
|
||||
#: ../js/ui/runDialog.js:208
|
||||
#: ../js/ui/runDialog.js:209
|
||||
msgid "Please enter a command:"
|
||||
msgstr "Bonvole enigu komandon:"
|
||||
|
||||
@ -829,6 +855,22 @@ msgstr "Serĉanta..."
|
||||
msgid "No matching results."
|
||||
msgstr "Neniuj rezultoj kongruas."
|
||||
|
||||
#: ../js/ui/shellEntry.js:30
|
||||
msgid "Copy"
|
||||
msgstr "Kopii"
|
||||
|
||||
#: ../js/ui/shellEntry.js:35
|
||||
msgid "Paste"
|
||||
msgstr "Alglui"
|
||||
|
||||
#: ../js/ui/shellEntry.js:81
|
||||
msgid "Show Text"
|
||||
msgstr "Montri tekston"
|
||||
|
||||
#: ../js/ui/shellEntry.js:83
|
||||
msgid "Hide Text"
|
||||
msgstr "Kaŝi tekston"
|
||||
|
||||
#: ../js/ui/shellMountOperation.js:285
|
||||
msgid "Wrong password, please try again"
|
||||
msgstr "Erara pasvorto, bonvole provu denove"
|
||||
@ -962,7 +1004,7 @@ msgstr "Ĉiam konsenti aliron"
|
||||
msgid "Grant this time only"
|
||||
msgstr "Konsenti nur ĉi tiun fojon"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:392 ../js/ui/telepathyClient.js:1200
|
||||
#: ../js/ui/status/bluetooth.js:392 ../js/ui/telepathyClient.js:1204
|
||||
msgid "Reject"
|
||||
msgstr "Rifuzi"
|
||||
|
||||
@ -1249,22 +1291,22 @@ msgstr "Abonopeto"
|
||||
msgid "Connection error"
|
||||
msgstr "Konekta eraro"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:737
|
||||
#: ../js/ui/telepathyClient.js:741
|
||||
#, c-format
|
||||
msgid "%s is online."
|
||||
msgstr "%s estas konektita."
|
||||
|
||||
#: ../js/ui/telepathyClient.js:742
|
||||
#: ../js/ui/telepathyClient.js:746
|
||||
#, c-format
|
||||
msgid "%s is offline."
|
||||
msgstr "%s estas nekonektita."
|
||||
|
||||
#: ../js/ui/telepathyClient.js:745
|
||||
#: ../js/ui/telepathyClient.js:749
|
||||
#, c-format
|
||||
msgid "%s is away."
|
||||
msgstr "%s estas fora."
|
||||
|
||||
#: ../js/ui/telepathyClient.js:748
|
||||
#: ../js/ui/telepathyClient.js:752
|
||||
#, c-format
|
||||
msgid "%s is busy."
|
||||
msgstr "%s estas okupata."
|
||||
@ -1272,35 +1314,35 @@ msgstr "%s estas okupata."
|
||||
#. Translators: this is a time format string followed by a date.
|
||||
#. If applicable, replace %X with a strftime format valid for your
|
||||
#. locale, without seconds.
|
||||
#: ../js/ui/telepathyClient.js:982
|
||||
#: ../js/ui/telepathyClient.js:986
|
||||
#, no-c-format
|
||||
msgid "Sent at <b>%X</b> on <b>%A</b>"
|
||||
msgstr "Sendita je <b>%X</b> je <b>A</b>"
|
||||
|
||||
#. Translators: this is a time format in the style of "Wednesday, May 25",
|
||||
#. shown when you get a chat message in the same year.
|
||||
#: ../js/ui/telepathyClient.js:988
|
||||
#: ../js/ui/telepathyClient.js:992
|
||||
#, no-c-format
|
||||
msgid "Sent on <b>%A</b>, <b>%B %d</b>"
|
||||
msgstr "Sendita je <b>%A</b>, <b>%B %d</b>"
|
||||
|
||||
#. Translators: this is a time format in the style of "Wednesday, May 25, 2012",
|
||||
#. shown when you get a chat message in a different year.
|
||||
#: ../js/ui/telepathyClient.js:993
|
||||
#: ../js/ui/telepathyClient.js:997
|
||||
#, no-c-format
|
||||
msgid "Sent on <b>%A</b>, <b>%B %d</b>, %Y"
|
||||
msgstr "Sendita je <b>%A</b>, </b>%B %d</b>, %Y"
|
||||
|
||||
#. Translators: this is the other person changing their old IM name to their new
|
||||
#. IM name.
|
||||
#: ../js/ui/telepathyClient.js:1035
|
||||
#: ../js/ui/telepathyClient.js:1039
|
||||
#, c-format
|
||||
msgid "%s is now known as %s"
|
||||
msgstr "%s estas konata kiel %s"
|
||||
|
||||
#. translators: argument is a room name like
|
||||
#. * room@jabber.org for example.
|
||||
#: ../js/ui/telepathyClient.js:1144
|
||||
#: ../js/ui/telepathyClient.js:1148
|
||||
#, c-format
|
||||
msgid "Invitation to %s"
|
||||
msgstr "Invito al %s"
|
||||
@ -1308,34 +1350,35 @@ msgstr "Invito al %s"
|
||||
#. translators: first argument is the name of a contact and the second
|
||||
#. * one the name of a room. "Alice is inviting you to join room@jabber.org
|
||||
#. * for example.
|
||||
#: ../js/ui/telepathyClient.js:1152
|
||||
#: ../js/ui/telepathyClient.js:1156
|
||||
#, c-format
|
||||
msgid "%s is inviting you to join %s"
|
||||
msgstr "%s invitas vin aliĝi al %s"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1154 ../js/ui/telepathyClient.js:1243
|
||||
#: ../js/ui/telepathyClient.js:1347
|
||||
#: ../js/ui/telepathyClient.js:1158 ../js/ui/telepathyClient.js:1248
|
||||
#: ../js/ui/telepathyClient.js:1352
|
||||
msgid "Decline"
|
||||
msgstr "Refuzi"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1155 ../js/ui/telepathyClient.js:1244
|
||||
#: ../js/ui/telepathyClient.js:1348
|
||||
#: ../js/ui/telepathyClient.js:1159 ../js/ui/telepathyClient.js:1249
|
||||
#: ../js/ui/telepathyClient.js:1353
|
||||
msgid "Accept"
|
||||
msgstr "Akcepti"
|
||||
|
||||
#. translators: argument is a contact name like Alice for example.
|
||||
#: ../js/ui/telepathyClient.js:1188
|
||||
#: ../js/ui/telepathyClient.js:1192
|
||||
#, c-format
|
||||
msgid "Video call from %s"
|
||||
msgstr "Videa voko de %s"
|
||||
|
||||
#. translators: argument is a contact name like Alice for example.
|
||||
#: ../js/ui/telepathyClient.js:1191
|
||||
#: ../js/ui/telepathyClient.js:1195
|
||||
#, c-format
|
||||
msgid "Call from %s"
|
||||
msgstr "Voko de %s"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1201
|
||||
#. translators: this is a button label (verb), not a noun
|
||||
#: ../js/ui/telepathyClient.js:1206
|
||||
msgid "Answer"
|
||||
msgstr "Repondo"
|
||||
|
||||
@ -1344,109 +1387,109 @@ msgstr "Repondo"
|
||||
#. * file name. The string will be something
|
||||
#. * like: "Alice is sending you test.ogg"
|
||||
#.
|
||||
#: ../js/ui/telepathyClient.js:1237
|
||||
#: ../js/ui/telepathyClient.js:1242
|
||||
#, c-format
|
||||
msgid "%s is sending you %s"
|
||||
msgstr "%s sendas %s al vi"
|
||||
|
||||
#. To translators: The parameter is the contact's alias
|
||||
#: ../js/ui/telepathyClient.js:1312
|
||||
#: ../js/ui/telepathyClient.js:1317
|
||||
#, c-format
|
||||
msgid "%s would like permission to see when you are online"
|
||||
msgstr "%s volus permiso por vidi kiam vi estas konektita"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1410
|
||||
#: ../js/ui/telepathyClient.js:1415
|
||||
msgid "Network error"
|
||||
msgstr "Reta eraro"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1412
|
||||
#: ../js/ui/telepathyClient.js:1417
|
||||
msgid "Authentication failed"
|
||||
msgstr "Aŭtentigo malsukcesis"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1414
|
||||
#: ../js/ui/telepathyClient.js:1419
|
||||
msgid "Encryption error"
|
||||
msgstr "Ĉifrado-eraro"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1416
|
||||
#: ../js/ui/telepathyClient.js:1421
|
||||
msgid "Certificate not provided"
|
||||
msgstr "Atestilo ne donita"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1418
|
||||
#: ../js/ui/telepathyClient.js:1423
|
||||
msgid "Certificate untrusted"
|
||||
msgstr "Malfidita atestilo"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1420
|
||||
#: ../js/ui/telepathyClient.js:1425
|
||||
msgid "Certificate expired"
|
||||
msgstr "Posttempa atestilo"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1422
|
||||
#: ../js/ui/telepathyClient.js:1427
|
||||
msgid "Certificate not activated"
|
||||
msgstr "Atestilo ne aktivigita"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1424
|
||||
#: ../js/ui/telepathyClient.js:1429
|
||||
msgid "Certificate hostname mismatch"
|
||||
msgstr "Atestilo-nomo de gastiga komputilo miskongruas"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1426
|
||||
#: ../js/ui/telepathyClient.js:1431
|
||||
msgid "Certificate fingerprint mismatch"
|
||||
msgstr "Atestilo-fingropremo miskongruas"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1428
|
||||
#: ../js/ui/telepathyClient.js:1433
|
||||
msgid "Certificate self-signed"
|
||||
msgstr "Memsubskribita atestilo"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1430
|
||||
#: ../js/ui/telepathyClient.js:1435
|
||||
msgid "Status is set to offline"
|
||||
msgstr "Stato agordas kiam nekonektita."
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1432
|
||||
#: ../js/ui/telepathyClient.js:1437
|
||||
msgid "Encryption is not available"
|
||||
msgstr "Ĉifrado nehavebla"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1434
|
||||
#: ../js/ui/telepathyClient.js:1439
|
||||
msgid "Certificate is invalid"
|
||||
msgstr "Nevalida atestilo"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1436
|
||||
#: ../js/ui/telepathyClient.js:1441
|
||||
msgid "Connection has been refused"
|
||||
msgstr "Refuzinta konekto"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1438
|
||||
#: ../js/ui/telepathyClient.js:1443
|
||||
msgid "Connection can't be established"
|
||||
msgstr "Ne povas establi konekton"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1440
|
||||
#: ../js/ui/telepathyClient.js:1445
|
||||
msgid "Connection has been lost"
|
||||
msgstr "Konekto perdiĝis"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1442
|
||||
#: ../js/ui/telepathyClient.js:1447
|
||||
msgid "This resource is already connected to the server"
|
||||
msgstr "Ĉi tio risurco jam konektata al servilo"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1444
|
||||
#: ../js/ui/telepathyClient.js:1449
|
||||
msgid ""
|
||||
"Connection has been replaced by a new connection using the same resource"
|
||||
msgstr "Konekto anstataŭigis per nova konekto uzanta la saman risurcon"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1446
|
||||
#: ../js/ui/telepathyClient.js:1451
|
||||
msgid "The account already exists on the server"
|
||||
msgstr "La konto jam ekzistas sur la servilo"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1448
|
||||
#: ../js/ui/telepathyClient.js:1453
|
||||
msgid "Server is currently too busy to handle the connection"
|
||||
msgstr "Servilo estas nun tro okupata por akcepti la konekton"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1450
|
||||
#: ../js/ui/telepathyClient.js:1455
|
||||
msgid "Certificate has been revoked"
|
||||
msgstr "Atestilo senvalidigita"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1452
|
||||
#: ../js/ui/telepathyClient.js:1457
|
||||
msgid ""
|
||||
"Certificate uses an insecure cipher algorithm or is cryptographically weak"
|
||||
msgstr ""
|
||||
"Atestilo uzas malsekuran ĉifrigan algoritmon aŭ estas kriptografie malforta."
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1454
|
||||
#: ../js/ui/telepathyClient.js:1459
|
||||
msgid ""
|
||||
"The length of the server certificate, or the depth of the server certificate "
|
||||
"chain, exceed the limits imposed by the cryptography library"
|
||||
@ -1456,20 +1499,20 @@ msgstr ""
|
||||
|
||||
#. translators: argument is the account name, like
|
||||
#. * name@jabber.org for example.
|
||||
#: ../js/ui/telepathyClient.js:1463
|
||||
#: ../js/ui/telepathyClient.js:1468
|
||||
#, c-format
|
||||
msgid "Connection to %s failed"
|
||||
msgstr "Malsukcesis konekton al %s"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1472
|
||||
#: ../js/ui/telepathyClient.js:1477
|
||||
msgid "Reconnect"
|
||||
msgstr "Rekonekti"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1473
|
||||
#: ../js/ui/telepathyClient.js:1478
|
||||
msgid "Edit account"
|
||||
msgstr "Redakti konton"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1519
|
||||
#: ../js/ui/telepathyClient.js:1524
|
||||
msgid "Unknown reason"
|
||||
msgstr "Nekonata kialo"
|
||||
|
||||
@ -1485,39 +1528,39 @@ msgstr "Neokupita"
|
||||
msgid "Unavailable"
|
||||
msgstr "Nedisponebla"
|
||||
|
||||
#: ../js/ui/userMenu.js:512 ../js/ui/userMenu.js:516 ../js/ui/userMenu.js:586
|
||||
#: ../js/ui/userMenu.js:571 ../js/ui/userMenu.js:575 ../js/ui/userMenu.js:645
|
||||
msgid "Power Off..."
|
||||
msgstr "Elŝalti..."
|
||||
|
||||
#: ../js/ui/userMenu.js:548
|
||||
#: ../js/ui/userMenu.js:607
|
||||
msgid "Notifications"
|
||||
msgstr "Avizoj"
|
||||
|
||||
#: ../js/ui/userMenu.js:556
|
||||
#: ../js/ui/userMenu.js:615
|
||||
msgid "Online Accounts"
|
||||
msgstr "Retaj kontoj"
|
||||
|
||||
#: ../js/ui/userMenu.js:560
|
||||
#: ../js/ui/userMenu.js:619
|
||||
msgid "System Settings"
|
||||
msgstr "Sistem-agordoj"
|
||||
|
||||
#: ../js/ui/userMenu.js:567
|
||||
#: ../js/ui/userMenu.js:626
|
||||
msgid "Lock Screen"
|
||||
msgstr "Ŝlosi ekranon"
|
||||
|
||||
#: ../js/ui/userMenu.js:572
|
||||
#: ../js/ui/userMenu.js:631
|
||||
msgid "Switch User"
|
||||
msgstr "Ŝanĝi uzanton"
|
||||
|
||||
#: ../js/ui/userMenu.js:577
|
||||
#: ../js/ui/userMenu.js:636
|
||||
msgid "Log Out..."
|
||||
msgstr "Elsaluti..."
|
||||
|
||||
#: ../js/ui/userMenu.js:605
|
||||
#: ../js/ui/userMenu.js:664
|
||||
msgid "Your chat status will be set to busy"
|
||||
msgstr "Vi babila stato agordos okupita"
|
||||
|
||||
#: ../js/ui/userMenu.js:606
|
||||
#: ../js/ui/userMenu.js:665
|
||||
msgid ""
|
||||
"Notifications are now disabled, including chat messages. Your online status "
|
||||
"has been adjusted to let others know that you might not see their messages."
|
||||
@ -1529,11 +1572,11 @@ msgstr ""
|
||||
#. in the search entry when no search is
|
||||
#. active; it should not exceed ~30
|
||||
#. characters.
|
||||
#: ../js/ui/viewSelector.js:120
|
||||
#: ../js/ui/viewSelector.js:121
|
||||
msgid "Type to search..."
|
||||
msgstr "Tajpi por serĉi..."
|
||||
|
||||
#: ../js/ui/viewSelector.js:140 ../src/shell-util.c:261
|
||||
#: ../js/ui/viewSelector.js:142 ../src/shell-util.c:244
|
||||
msgid "Search"
|
||||
msgstr "Serĉi"
|
||||
|
||||
@ -1564,15 +1607,15 @@ msgstr[1] "%u enigoj"
|
||||
msgid "System Sounds"
|
||||
msgstr "Sistemsonoj"
|
||||
|
||||
#: ../src/main.c:480
|
||||
#: ../src/main.c:483
|
||||
msgid "Print version"
|
||||
msgstr "Presi version"
|
||||
|
||||
#: ../src/main.c:486
|
||||
#: ../src/main.c:489
|
||||
msgid "Mode used by GDM for login screen"
|
||||
msgstr "Reĝimo uzata de GDM por la ensalutekrano"
|
||||
|
||||
#: ../src/shell-app.c:581
|
||||
#: ../src/shell-app.c:567
|
||||
#, c-format
|
||||
msgid "Failed to launch '%s'"
|
||||
msgstr "Malsukcesis lanĉi '%s'"
|
||||
@ -1589,13 +1632,15 @@ msgstr "Defaŭlto"
|
||||
msgid "Authentication dialog was dismissed by the user"
|
||||
msgstr "La dialogo de la aŭtentokontrolo malakceptis de la uzanto"
|
||||
|
||||
#: ../src/shell-util.c:100
|
||||
msgid "Home Folder"
|
||||
msgstr "Hejma dosierujo"
|
||||
#. Translators: this is the same string as the one found in
|
||||
#. * nautilus
|
||||
#: ../src/shell-util.c:89
|
||||
msgid "Home"
|
||||
msgstr "Hejmo"
|
||||
|
||||
#. Translators: this is the same string as the one found in
|
||||
#. * nautilus
|
||||
#: ../src/shell-util.c:115
|
||||
#: ../src/shell-util.c:98
|
||||
msgid "File System"
|
||||
msgstr "Dosiersistemo"
|
||||
|
||||
@ -1604,10 +1649,16 @@ msgstr "Dosiersistemo"
|
||||
#. * example, "Trash: some-directory". It means that the
|
||||
#. * directory called "some-directory" is in the trash.
|
||||
#.
|
||||
#: ../src/shell-util.c:311
|
||||
#: ../src/shell-util.c:294
|
||||
#, c-format
|
||||
msgid "%1$s: %2$s"
|
||||
msgstr "%1$s: %2$s"
|
||||
|
||||
#~ msgid "Home Folder"
|
||||
#~ msgstr "Hejma dosierujo"
|
||||
|
||||
#~ msgid "Show password"
|
||||
#~ msgstr "Montri pasvorton"
|
||||
|
||||
#~ msgid "%s has finished starting"
|
||||
#~ msgstr "Starto de %s finiĝis"
|
||||
|
283
po/fa.po
283
po/fa.po
@ -8,10 +8,10 @@ msgid ""
|
||||
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: 2011-10-04 20:49+0000\n"
|
||||
"PO-Revision-Date: 2011-10-15 16:02+0330\n"
|
||||
"POT-Creation-Date: 2011-10-18 19:39+0000\n"
|
||||
"PO-Revision-Date: 2011-10-24 21:11+0330\n"
|
||||
"Last-Translator: Arash Mousavi <mousavi.arash@gmail.com>\n"
|
||||
"Language-Team: Persian <>\n"
|
||||
"Language-Team: Persian\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
@ -130,47 +130,47 @@ msgstr "استفاده از کدام صفحهکلید"
|
||||
msgid "disabled OpenSearch providers"
|
||||
msgstr "غیرفعال کردنِ تامینکنندهگان OpenSearch"
|
||||
|
||||
#: ../js/gdm/loginDialog.js:617
|
||||
#: ../js/gdm/loginDialog.js:633
|
||||
msgid "Session..."
|
||||
msgstr "نشست..."
|
||||
|
||||
#: ../js/gdm/loginDialog.js:785
|
||||
#: ../js/gdm/loginDialog.js:804
|
||||
msgctxt "title"
|
||||
msgid "Sign In"
|
||||
msgstr "ورود"
|
||||
|
||||
#. translators: this message is shown below the password entry field
|
||||
#. to indicate the user can swipe their finger instead
|
||||
#: ../js/gdm/loginDialog.js:830
|
||||
#: ../js/gdm/loginDialog.js:849
|
||||
msgid "(or swipe finger)"
|
||||
msgstr "(یا انگشتتان را بکشید)"
|
||||
|
||||
#: ../js/gdm/loginDialog.js:848
|
||||
#: ../js/gdm/loginDialog.js:867
|
||||
msgid "Not listed?"
|
||||
msgstr "فهرست نشده؟"
|
||||
|
||||
#: ../js/gdm/loginDialog.js:1004
|
||||
#: ../js/gdm/loginDialog.js:1035
|
||||
#: ../js/ui/endSessionDialog.js:426
|
||||
#: ../js/ui/extensionSystem.js:477
|
||||
#: ../js/ui/networkAgent.js:165
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:171
|
||||
#: ../js/ui/networkAgent.js:148
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:173
|
||||
#: ../js/ui/status/bluetooth.js:480
|
||||
msgid "Cancel"
|
||||
msgstr "لغو"
|
||||
|
||||
#: ../js/gdm/loginDialog.js:1009
|
||||
#: ../js/gdm/loginDialog.js:1040
|
||||
msgctxt "button"
|
||||
msgid "Sign In"
|
||||
msgstr "ورود"
|
||||
|
||||
#: ../js/gdm/loginDialog.js:1358
|
||||
#: ../js/gdm/loginDialog.js:1392
|
||||
msgid "Login Window"
|
||||
msgstr "پنجرهی ورود به سیستم"
|
||||
|
||||
#: ../js/gdm/powerMenu.js:116
|
||||
#: ../js/ui/userMenu.js:514
|
||||
#: ../js/ui/userMenu.js:516
|
||||
#: ../js/ui/userMenu.js:585
|
||||
#: ../js/ui/userMenu.js:554
|
||||
#: ../js/ui/userMenu.js:556
|
||||
#: ../js/ui/userMenu.js:625
|
||||
msgid "Suspend"
|
||||
msgstr "تعلیق"
|
||||
|
||||
@ -396,38 +396,38 @@ msgstr "این هفته"
|
||||
msgid "Next week"
|
||||
msgstr "هفته آینده"
|
||||
|
||||
#: ../js/ui/contactDisplay.js:59
|
||||
#: ../js/ui/notificationDaemon.js:444
|
||||
#: ../js/ui/contactDisplay.js:65
|
||||
#: ../js/ui/notificationDaemon.js:459
|
||||
#: ../js/ui/status/power.js:223
|
||||
#: ../src/shell-app.c:355
|
||||
#: ../src/shell-app.c:353
|
||||
msgid "Unknown"
|
||||
msgstr "ناشناخته"
|
||||
|
||||
#: ../js/ui/contactDisplay.js:80
|
||||
#: ../js/ui/contactDisplay.js:86
|
||||
#: ../js/ui/userMenu.js:139
|
||||
msgid "Available"
|
||||
msgstr "در دسترس"
|
||||
|
||||
#: ../js/ui/contactDisplay.js:85
|
||||
#: ../js/ui/contactDisplay.js:91
|
||||
#: ../js/ui/userMenu.js:148
|
||||
msgid "Away"
|
||||
msgstr "غائب"
|
||||
|
||||
#: ../js/ui/contactDisplay.js:89
|
||||
#: ../js/ui/contactDisplay.js:95
|
||||
#: ../js/ui/userMenu.js:142
|
||||
msgid "Busy"
|
||||
msgstr "مشغول"
|
||||
|
||||
#: ../js/ui/contactDisplay.js:93
|
||||
#: ../js/ui/contactDisplay.js:99
|
||||
msgid "Offline"
|
||||
msgstr "برونخط"
|
||||
|
||||
#: ../js/ui/contactDisplay.js:140
|
||||
#: ../js/ui/contactDisplay.js:146
|
||||
msgid "CONTACTS"
|
||||
msgstr "CONTACTS"
|
||||
|
||||
#: ../js/ui/dash.js:172
|
||||
#: ../js/ui/messageTray.js:1204
|
||||
#: ../js/ui/dash.js:174
|
||||
#: ../js/ui/messageTray.js:1206
|
||||
msgid "Remove"
|
||||
msgstr "حذف"
|
||||
|
||||
@ -561,139 +561,134 @@ msgstr "نصب"
|
||||
msgid "Download and install '%s' from extensions.gnome.org?"
|
||||
msgstr "بارگیری و نصب «%s» از extensions.gnome.org؟"
|
||||
|
||||
#: ../js/ui/keyboard.js:308
|
||||
#| msgid "Retry"
|
||||
#: ../js/ui/keyboard.js:325
|
||||
msgid "tray"
|
||||
msgstr "سینی"
|
||||
|
||||
#: ../js/ui/keyboard.js:530
|
||||
#: ../js/ui/keyboard.js:547
|
||||
#: ../js/ui/status/power.js:211
|
||||
msgid "Keyboard"
|
||||
msgstr "صفحهکلید"
|
||||
|
||||
#: ../js/ui/lookingGlass.js:645
|
||||
#: ../js/ui/lookingGlass.js:646
|
||||
msgid "No extensions installed"
|
||||
msgstr "هیچ افزونهای نصب نشده است"
|
||||
|
||||
#: ../js/ui/lookingGlass.js:691
|
||||
#: ../js/ui/lookingGlass.js:692
|
||||
msgid "Enabled"
|
||||
msgstr "به کار انداختن"
|
||||
|
||||
#. translators:
|
||||
#. * The device has been disabled
|
||||
#: ../js/ui/lookingGlass.js:693
|
||||
#: ../js/ui/lookingGlass.js:694
|
||||
#: ../src/gvc/gvc-mixer-control.c:1093
|
||||
msgid "Disabled"
|
||||
msgstr "از کار انداختن"
|
||||
|
||||
#: ../js/ui/lookingGlass.js:695
|
||||
#: ../js/ui/lookingGlass.js:696
|
||||
msgid "Error"
|
||||
msgstr "خطا"
|
||||
|
||||
#: ../js/ui/lookingGlass.js:697
|
||||
#: ../js/ui/lookingGlass.js:698
|
||||
msgid "Out of date"
|
||||
msgstr "قدیمی"
|
||||
|
||||
#: ../js/ui/lookingGlass.js:699
|
||||
#: ../js/ui/lookingGlass.js:700
|
||||
msgid "Downloading"
|
||||
msgstr "در حال بارگیری"
|
||||
|
||||
#: ../js/ui/lookingGlass.js:720
|
||||
#: ../js/ui/lookingGlass.js:721
|
||||
msgid "View Source"
|
||||
msgstr "نمایش منبع"
|
||||
|
||||
#: ../js/ui/lookingGlass.js:726
|
||||
#: ../js/ui/lookingGlass.js:727
|
||||
msgid "Web Page"
|
||||
msgstr "صفحهی وب"
|
||||
|
||||
#: ../js/ui/messageTray.js:1197
|
||||
#: ../js/ui/messageTray.js:1199
|
||||
msgid "Open"
|
||||
msgstr "بازکردن"
|
||||
|
||||
#: ../js/ui/messageTray.js:2406
|
||||
#: ../js/ui/messageTray.js:2408
|
||||
msgid "System Information"
|
||||
msgstr "اطلاعات سیستم"
|
||||
|
||||
#: ../js/ui/networkAgent.js:145
|
||||
msgid "Show password"
|
||||
msgstr "نمایش گذرواژه"
|
||||
|
||||
#: ../js/ui/networkAgent.js:160
|
||||
#: ../js/ui/networkAgent.js:143
|
||||
msgid "Connect"
|
||||
msgstr "اتصال"
|
||||
|
||||
#. Cisco LEAP
|
||||
#: ../js/ui/networkAgent.js:255
|
||||
#: ../js/ui/networkAgent.js:267
|
||||
#: ../js/ui/networkAgent.js:294
|
||||
#: ../js/ui/networkAgent.js:314
|
||||
#: ../js/ui/networkAgent.js:324
|
||||
#: ../js/ui/networkAgent.js:238
|
||||
#: ../js/ui/networkAgent.js:250
|
||||
#: ../js/ui/networkAgent.js:277
|
||||
#: ../js/ui/networkAgent.js:297
|
||||
#: ../js/ui/networkAgent.js:307
|
||||
msgid "Password: "
|
||||
msgstr "گذرواژه: "
|
||||
|
||||
#. static WEP
|
||||
#: ../js/ui/networkAgent.js:260
|
||||
#: ../js/ui/networkAgent.js:243
|
||||
msgid "Key: "
|
||||
msgstr "کلید: "
|
||||
|
||||
#. 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/ui/networkAgent.js:292
|
||||
#: ../js/ui/networkAgent.js:310
|
||||
#: ../js/ui/networkAgent.js:275
|
||||
#: ../js/ui/networkAgent.js:293
|
||||
msgid "Username: "
|
||||
msgstr "نامکاربری: "
|
||||
|
||||
#: ../js/ui/networkAgent.js:298
|
||||
#: ../js/ui/networkAgent.js:281
|
||||
msgid "Identity: "
|
||||
msgstr "شناسه: "
|
||||
|
||||
#: ../js/ui/networkAgent.js:300
|
||||
#: ../js/ui/networkAgent.js:283
|
||||
msgid "Private key password: "
|
||||
msgstr "گذرواژه کلید خصوصی: "
|
||||
|
||||
#: ../js/ui/networkAgent.js:312
|
||||
#: ../js/ui/networkAgent.js:295
|
||||
msgid "Service: "
|
||||
msgstr "سرویس: "
|
||||
|
||||
#: ../js/ui/networkAgent.js:341
|
||||
#: ../js/ui/networkAgent.js:324
|
||||
msgid "Authentication required by wireless network"
|
||||
msgstr "تایید هویت برای شبکه بیسیم لازم است"
|
||||
|
||||
#: ../js/ui/networkAgent.js:342
|
||||
#: ../js/ui/networkAgent.js:325
|
||||
#, c-format
|
||||
msgid "Passwords or encryption keys are required to access the wireless network '%s'."
|
||||
msgstr "گذرواژه یا کلیدهای رمزنگاری برای دسترسی به شبکه «%s» لازم است."
|
||||
|
||||
#: ../js/ui/networkAgent.js:346
|
||||
#: ../js/ui/networkAgent.js:329
|
||||
msgid "Wired 802.1X authentication"
|
||||
msgstr "تایید هویت 802.1X سیمی"
|
||||
|
||||
#: ../js/ui/networkAgent.js:348
|
||||
#: ../js/ui/networkAgent.js:331
|
||||
msgid "Network name: "
|
||||
msgstr "نام شبکه: "
|
||||
|
||||
#: ../js/ui/networkAgent.js:353
|
||||
#: ../js/ui/networkAgent.js:336
|
||||
msgid "DSL authentication"
|
||||
msgstr "تایید هویت DSL"
|
||||
|
||||
#: ../js/ui/networkAgent.js:360
|
||||
#: ../js/ui/networkAgent.js:343
|
||||
msgid "PIN code required"
|
||||
msgstr "کد پین لازم است"
|
||||
|
||||
#: ../js/ui/networkAgent.js:361
|
||||
#: ../js/ui/networkAgent.js:344
|
||||
msgid "PIN code is needed for the mobile broadband device"
|
||||
msgstr "کد پین برای دستگاه پهنباند تلفنهمراه لازم است"
|
||||
|
||||
#: ../js/ui/networkAgent.js:362
|
||||
#: ../js/ui/networkAgent.js:345
|
||||
msgid "PIN: "
|
||||
msgstr "پین: "
|
||||
|
||||
#: ../js/ui/networkAgent.js:368
|
||||
#: ../js/ui/networkAgent.js:351
|
||||
msgid "Mobile broadband network password"
|
||||
msgstr "گذرواژه شبکه پهنباند تلفن همراه"
|
||||
|
||||
#: ../js/ui/networkAgent.js:369
|
||||
#: ../js/ui/networkAgent.js:352
|
||||
#, c-format
|
||||
msgid "A password is required to connect to '%s'."
|
||||
msgstr "برای اتصال به «%s» گذرواژه لازم است."
|
||||
@ -749,15 +744,15 @@ msgstr "اتصال به..."
|
||||
msgid "PLACES & DEVICES"
|
||||
msgstr "محلها و ابزارها"
|
||||
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:72
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:73
|
||||
msgid "Authentication Required"
|
||||
msgstr "تایید هویت لازم است"
|
||||
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:106
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:107
|
||||
msgid "Administrator"
|
||||
msgstr "مدیر"
|
||||
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:175
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:177
|
||||
msgid "Authenticate"
|
||||
msgstr "تایید هویت"
|
||||
|
||||
@ -765,11 +760,11 @@ msgstr "تایید هویت"
|
||||
#. * requested authentication was not gained; this can happen
|
||||
#. * because of an authentication error (like invalid password),
|
||||
#. * for instance.
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:256
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:258
|
||||
msgid "Sorry, that didn't work. Please try again."
|
||||
msgstr "متاسفتم، تاثیری نداشت! مجددا تلاش کنید."
|
||||
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:268
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:270
|
||||
msgid "Password:"
|
||||
msgstr "گذرواژه"
|
||||
|
||||
@ -782,7 +777,7 @@ msgstr "گذرواژه"
|
||||
msgid "toggle-switch-us"
|
||||
msgstr "toggle-switch-intl"
|
||||
|
||||
#: ../js/ui/runDialog.js:208
|
||||
#: ../js/ui/runDialog.js:209
|
||||
msgid "Please enter a command:"
|
||||
msgstr "لطفا یک فرمان وارد کنید:"
|
||||
|
||||
@ -794,6 +789,23 @@ msgstr "درحال حستجو..."
|
||||
msgid "No matching results."
|
||||
msgstr "نتیجهی منطبقی پیدا نشد."
|
||||
|
||||
#: ../js/ui/shellEntry.js:30
|
||||
msgid "Copy"
|
||||
msgstr "رونوشت"
|
||||
|
||||
#: ../js/ui/shellEntry.js:35
|
||||
msgid "Paste"
|
||||
msgstr "چسباندن"
|
||||
|
||||
#: ../js/ui/shellEntry.js:81
|
||||
msgid "Show Text"
|
||||
msgstr "نمایش متن"
|
||||
|
||||
#: ../js/ui/shellEntry.js:83
|
||||
#| msgid "Large Text"
|
||||
msgid "Hide Text"
|
||||
msgstr "مخفیکردن متن"
|
||||
|
||||
#: ../js/ui/shellMountOperation.js:285
|
||||
msgid "Wrong password, please try again"
|
||||
msgstr "گذرواژهی نادرست، لطفا دوباره تلاش کنید"
|
||||
@ -806,7 +818,6 @@ msgstr "بزرگنمایی"
|
||||
#. 'screen-reader-enabled');
|
||||
#. this.menu.addMenuItem(screenReader);
|
||||
#: ../js/ui/status/accessibility.js:71
|
||||
#| msgid "Keyboard"
|
||||
msgid "Screen Keyboard"
|
||||
msgstr "صفحهکلید مجازی"
|
||||
|
||||
@ -935,7 +946,7 @@ msgid "Grant this time only"
|
||||
msgstr "موافقت تنها در همین زمان"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:392
|
||||
#: ../js/ui/telepathyClient.js:1200
|
||||
#: ../js/ui/telepathyClient.js:1204
|
||||
msgid "Reject"
|
||||
msgstr "رد کردن"
|
||||
|
||||
@ -1226,22 +1237,22 @@ msgstr "درخواست اشتراک"
|
||||
msgid "Connection error"
|
||||
msgstr "خطا اتصال"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:737
|
||||
#: ../js/ui/telepathyClient.js:741
|
||||
#, c-format
|
||||
msgid "%s is online."
|
||||
msgstr "%s بر خط است."
|
||||
|
||||
#: ../js/ui/telepathyClient.js:742
|
||||
#: ../js/ui/telepathyClient.js:746
|
||||
#, c-format
|
||||
msgid "%s is offline."
|
||||
msgstr "%s برون خط است."
|
||||
|
||||
#: ../js/ui/telepathyClient.js:745
|
||||
#: ../js/ui/telepathyClient.js:749
|
||||
#, c-format
|
||||
msgid "%s is away."
|
||||
msgstr "%s غایب است."
|
||||
|
||||
#: ../js/ui/telepathyClient.js:748
|
||||
#: ../js/ui/telepathyClient.js:752
|
||||
#, c-format
|
||||
msgid "%s is busy."
|
||||
msgstr "%s مشغول است."
|
||||
@ -1249,35 +1260,35 @@ msgstr "%s مشغول است."
|
||||
#. Translators: this is a time format string followed by a date.
|
||||
#. If applicable, replace %X with a strftime format valid for your
|
||||
#. locale, without seconds.
|
||||
#: ../js/ui/telepathyClient.js:982
|
||||
#: ../js/ui/telepathyClient.js:986
|
||||
#, no-c-format
|
||||
msgid "Sent at <b>%X</b> on <b>%A</b>"
|
||||
msgstr "ارسال در <b>%OH:%OM</b> در <b>%A</b>"
|
||||
|
||||
#. Translators: this is a time format in the style of "Wednesday, May 25",
|
||||
#. shown when you get a chat message in the same year.
|
||||
#: ../js/ui/telepathyClient.js:988
|
||||
#: ../js/ui/telepathyClient.js:992
|
||||
#, no-c-format
|
||||
msgid "Sent on <b>%A</b>, <b>%B %d</b>"
|
||||
msgstr "ارسال در <b>%A</b>, <b>%B %d</b>"
|
||||
|
||||
#. Translators: this is a time format in the style of "Wednesday, May 25, 2012",
|
||||
#. shown when you get a chat message in a different year.
|
||||
#: ../js/ui/telepathyClient.js:993
|
||||
#: ../js/ui/telepathyClient.js:997
|
||||
#, no-c-format
|
||||
msgid "Sent on <b>%A</b>, <b>%B %d</b>, %Y"
|
||||
msgstr "ارسال در <b>%A</b>, <b>%B %d</b>, %Y"
|
||||
|
||||
#. Translators: this is the other person changing their old IM name to their new
|
||||
#. IM name.
|
||||
#: ../js/ui/telepathyClient.js:1035
|
||||
#: ../js/ui/telepathyClient.js:1039
|
||||
#, c-format
|
||||
msgid "%s is now known as %s"
|
||||
msgstr "%s با عنوان %s شناخته میشود"
|
||||
|
||||
#. translators: argument is a room name like
|
||||
#. * room@jabber.org for example.
|
||||
#: ../js/ui/telepathyClient.js:1144
|
||||
#: ../js/ui/telepathyClient.js:1148
|
||||
#, c-format
|
||||
msgid "Invitation to %s"
|
||||
msgstr "دعوتنامه به %s"
|
||||
@ -1285,36 +1296,37 @@ msgstr "دعوتنامه به %s"
|
||||
#. translators: first argument is the name of a contact and the second
|
||||
#. * one the name of a room. "Alice is inviting you to join room@jabber.org
|
||||
#. * for example.
|
||||
#: ../js/ui/telepathyClient.js:1152
|
||||
#: ../js/ui/telepathyClient.js:1156
|
||||
#, c-format
|
||||
msgid "%s is inviting you to join %s"
|
||||
msgstr "%s از شما دعوت میکند که به %s بپیوندید"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1154
|
||||
#: ../js/ui/telepathyClient.js:1243
|
||||
#: ../js/ui/telepathyClient.js:1347
|
||||
#: ../js/ui/telepathyClient.js:1158
|
||||
#: ../js/ui/telepathyClient.js:1248
|
||||
#: ../js/ui/telepathyClient.js:1352
|
||||
msgid "Decline"
|
||||
msgstr "رد کردن"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1155
|
||||
#: ../js/ui/telepathyClient.js:1244
|
||||
#: ../js/ui/telepathyClient.js:1348
|
||||
#: ../js/ui/telepathyClient.js:1159
|
||||
#: ../js/ui/telepathyClient.js:1249
|
||||
#: ../js/ui/telepathyClient.js:1353
|
||||
msgid "Accept"
|
||||
msgstr "پذیرفتن"
|
||||
|
||||
#. translators: argument is a contact name like Alice for example.
|
||||
#: ../js/ui/telepathyClient.js:1188
|
||||
#: ../js/ui/telepathyClient.js:1192
|
||||
#, c-format
|
||||
msgid "Video call from %s"
|
||||
msgstr "تماس ویدئویی از طریق %s"
|
||||
|
||||
#. translators: argument is a contact name like Alice for example.
|
||||
#: ../js/ui/telepathyClient.js:1191
|
||||
#: ../js/ui/telepathyClient.js:1195
|
||||
#, c-format
|
||||
msgid "Call from %s"
|
||||
msgstr "تماس از طرف %s"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1201
|
||||
#. translators: this is a button label (verb), not a noun
|
||||
#: ../js/ui/telepathyClient.js:1206
|
||||
msgid "Answer"
|
||||
msgstr "پاسخگویی"
|
||||
|
||||
@ -1323,125 +1335,125 @@ msgstr "پاسخگویی"
|
||||
#. * file name. The string will be something
|
||||
#. * like: "Alice is sending you test.ogg"
|
||||
#.
|
||||
#: ../js/ui/telepathyClient.js:1237
|
||||
#: ../js/ui/telepathyClient.js:1242
|
||||
#, c-format
|
||||
msgid "%s is sending you %s"
|
||||
msgstr "%s در حال ارسال %s به شما است"
|
||||
|
||||
#. To translators: The parameter is the contact's alias
|
||||
#: ../js/ui/telepathyClient.js:1312
|
||||
#: ../js/ui/telepathyClient.js:1317
|
||||
#, c-format
|
||||
msgid "%s would like permission to see when you are online"
|
||||
msgstr "%s اجازه دسترسی برای دیدن زمانهایی که شما برخط هستید را دارد"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1410
|
||||
#: ../js/ui/telepathyClient.js:1415
|
||||
msgid "Network error"
|
||||
msgstr "خطا شبکه"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1412
|
||||
#: ../js/ui/telepathyClient.js:1417
|
||||
msgid "Authentication failed"
|
||||
msgstr "تایید هویت شکست خورد"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1414
|
||||
#: ../js/ui/telepathyClient.js:1419
|
||||
msgid "Encryption error"
|
||||
msgstr "خطا رمزنگاری"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1416
|
||||
#: ../js/ui/telepathyClient.js:1421
|
||||
msgid "Certificate not provided"
|
||||
msgstr "گواهینامه ارائه نشده"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1418
|
||||
#: ../js/ui/telepathyClient.js:1423
|
||||
msgid "Certificate untrusted"
|
||||
msgstr "گواهینامه نامعتبر است"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1420
|
||||
#: ../js/ui/telepathyClient.js:1425
|
||||
msgid "Certificate expired"
|
||||
msgstr "گواهینامه منقضی شده"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1422
|
||||
#: ../js/ui/telepathyClient.js:1427
|
||||
msgid "Certificate not activated"
|
||||
msgstr "گواهینامه فعال نشده"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1424
|
||||
#: ../js/ui/telepathyClient.js:1429
|
||||
msgid "Certificate hostname mismatch"
|
||||
msgstr "نام کارگزار گواهینامه نامنطبق است"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1426
|
||||
#: ../js/ui/telepathyClient.js:1431
|
||||
msgid "Certificate fingerprint mismatch"
|
||||
msgstr "اثرانگشت گواهینامه نامنطبق است"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1428
|
||||
#: ../js/ui/telepathyClient.js:1433
|
||||
msgid "Certificate self-signed"
|
||||
msgstr "گواهینامه خود-امضا شده"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1430
|
||||
#: ../js/ui/telepathyClient.js:1435
|
||||
msgid "Status is set to offline"
|
||||
msgstr "وضعیت بر روی برون خط تنظیم شده"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1432
|
||||
#: ../js/ui/telepathyClient.js:1437
|
||||
msgid "Encryption is not available"
|
||||
msgstr "رمزنگاری موجود نیست"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1434
|
||||
#: ../js/ui/telepathyClient.js:1439
|
||||
msgid "Certificate is invalid"
|
||||
msgstr "گواهینامه نامعتبر است"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1436
|
||||
#: ../js/ui/telepathyClient.js:1441
|
||||
msgid "Connection has been refused"
|
||||
msgstr "اتصال رد شده است"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1438
|
||||
#: ../js/ui/telepathyClient.js:1443
|
||||
msgid "Connection can't be established"
|
||||
msgstr "اتصال نمیتواند برقرار شود"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1440
|
||||
#: ../js/ui/telepathyClient.js:1445
|
||||
msgid "Connection has been lost"
|
||||
msgstr "اتصال از دست رفته است"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1442
|
||||
#: ../js/ui/telepathyClient.js:1447
|
||||
msgid "This resource is already connected to the server"
|
||||
msgstr "این منبع از قبل به کارگزار متصل شده است"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1444
|
||||
#: ../js/ui/telepathyClient.js:1449
|
||||
msgid "Connection has been replaced by a new connection using the same resource"
|
||||
msgstr "اتصال توسط یک اتصال جدید که از منبع مشابه استفاده میکند، جایگزین شده است"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1446
|
||||
#: ../js/ui/telepathyClient.js:1451
|
||||
msgid "The account already exists on the server"
|
||||
msgstr "حساب از قبل بر روی کارگزار وجود دارد"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1448
|
||||
#: ../js/ui/telepathyClient.js:1453
|
||||
msgid "Server is currently too busy to handle the connection"
|
||||
msgstr "کارگزار در حال حاضر برای دست گرفتن اتصال بسیار مشغول است"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1450
|
||||
#: ../js/ui/telepathyClient.js:1455
|
||||
msgid "Certificate has been revoked"
|
||||
msgstr "گواهینامه لغو شده است"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1452
|
||||
#: ../js/ui/telepathyClient.js:1457
|
||||
msgid "Certificate uses an insecure cipher algorithm or is cryptographically weak"
|
||||
msgstr "گواهینامه از الگوریتم رمزی نامطمئنی استفاده میکند یا از نظر cryptography ضعیف است"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1454
|
||||
#: ../js/ui/telepathyClient.js:1459
|
||||
msgid "The length of the server certificate, or the depth of the server certificate chain, exceed the limits imposed by the cryptography library"
|
||||
msgstr "اندازه گواهینامه کارگزار، یا عمق حلقهی گواهینامه کارگزار، از محدودیت اعمال شده توسط کتابخانه cryptography تجاوز کرد"
|
||||
|
||||
#. translators: argument is the account name, like
|
||||
#. * name@jabber.org for example.
|
||||
#: ../js/ui/telepathyClient.js:1463
|
||||
#: ../js/ui/telepathyClient.js:1468
|
||||
#, c-format
|
||||
msgid "Connection to %s failed"
|
||||
msgstr "اتصال به %s شکست خورد"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1472
|
||||
#: ../js/ui/telepathyClient.js:1477
|
||||
msgid "Reconnect"
|
||||
msgstr "اتصال مجدد"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1473
|
||||
#: ../js/ui/telepathyClient.js:1478
|
||||
msgid "Edit account"
|
||||
msgstr "ویرایش حساب"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1519
|
||||
#: ../js/ui/telepathyClient.js:1524
|
||||
msgid "Unknown reason"
|
||||
msgstr "دلیل ناشناخته"
|
||||
|
||||
@ -1457,41 +1469,41 @@ msgstr "بیکار"
|
||||
msgid "Unavailable"
|
||||
msgstr "خارج از دسترس"
|
||||
|
||||
#: ../js/ui/userMenu.js:512
|
||||
#: ../js/ui/userMenu.js:516
|
||||
#: ../js/ui/userMenu.js:586
|
||||
#: ../js/ui/userMenu.js:552
|
||||
#: ../js/ui/userMenu.js:556
|
||||
#: ../js/ui/userMenu.js:626
|
||||
msgid "Power Off..."
|
||||
msgstr "خاموش کردن..."
|
||||
|
||||
#: ../js/ui/userMenu.js:548
|
||||
#: ../js/ui/userMenu.js:588
|
||||
msgid "Notifications"
|
||||
msgstr "اعلانها"
|
||||
|
||||
#: ../js/ui/userMenu.js:556
|
||||
#: ../js/ui/userMenu.js:596
|
||||
msgid "Online Accounts"
|
||||
msgstr "حسابهای برخط"
|
||||
|
||||
#: ../js/ui/userMenu.js:560
|
||||
#: ../js/ui/userMenu.js:600
|
||||
msgid "System Settings"
|
||||
msgstr "تنظیمات سیستم"
|
||||
|
||||
#: ../js/ui/userMenu.js:567
|
||||
#: ../js/ui/userMenu.js:607
|
||||
msgid "Lock Screen"
|
||||
msgstr "قفل کردن صفحه"
|
||||
|
||||
#: ../js/ui/userMenu.js:572
|
||||
#: ../js/ui/userMenu.js:612
|
||||
msgid "Switch User"
|
||||
msgstr "تعویض کاربر"
|
||||
|
||||
#: ../js/ui/userMenu.js:577
|
||||
#: ../js/ui/userMenu.js:617
|
||||
msgid "Log Out..."
|
||||
msgstr "خروج از سیستم..."
|
||||
|
||||
#: ../js/ui/userMenu.js:605
|
||||
#: ../js/ui/userMenu.js:645
|
||||
msgid "Your chat status will be set to busy"
|
||||
msgstr "وضعیت گپ شما «مشغول» تنظیم میشود"
|
||||
|
||||
#: ../js/ui/userMenu.js:606
|
||||
#: ../js/ui/userMenu.js:646
|
||||
msgid "Notifications are now disabled, including chat messages. Your online status has been adjusted to let others know that you might not see their messages."
|
||||
msgstr "هماکنون اعلانها، از جمله پیامهای گپ، غیرفعال هستند. وضعیتِ برخطِ شما به گونهای تنظیم شده است که به دیگران نشان دهد ممکن است شما پیامهایشان را نبینید."
|
||||
|
||||
@ -1499,11 +1511,11 @@ msgstr "هماکنون اعلانها، از جمله پیامهای گ
|
||||
#. in the search entry when no search is
|
||||
#. active; it should not exceed ~30
|
||||
#. characters.
|
||||
#: ../js/ui/viewSelector.js:120
|
||||
#: ../js/ui/viewSelector.js:121
|
||||
msgid "Type to search..."
|
||||
msgstr "برای جستجو تایپ کنید..."
|
||||
|
||||
#: ../js/ui/viewSelector.js:140
|
||||
#: ../js/ui/viewSelector.js:142
|
||||
#: ../src/shell-util.c:261
|
||||
msgid "Search"
|
||||
msgstr "جستجو"
|
||||
@ -1543,7 +1555,7 @@ msgstr "چاپ نسخه"
|
||||
msgid "Mode used by GDM for login screen"
|
||||
msgstr "حالت استفاده شده توسط GDM برای صفحه ورود به سیستم"
|
||||
|
||||
#: ../src/shell-app.c:581
|
||||
#: ../src/shell-app.c:579
|
||||
#, c-format
|
||||
msgid "Failed to launch '%s'"
|
||||
msgstr "راهاندازی «%s» شکست خورد"
|
||||
@ -1580,6 +1592,9 @@ msgstr "سیستم پروندهها"
|
||||
msgid "%1$s: %2$s"
|
||||
msgstr "%1$s: %2$s"
|
||||
|
||||
#~ msgid "Show password"
|
||||
#~ msgstr "نمایش گذرواژه"
|
||||
|
||||
#~ msgid "If true, display onscreen keyboard."
|
||||
#~ msgstr "در صورت تنظیم بر روی «درست»، صفحهکلید مجازی نمایش داده میشود."
|
||||
|
||||
|
298
po/fi.po
298
po/fi.po
@ -19,18 +19,20 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: gnome-shell\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2011-09-26 15:40+0300\n"
|
||||
"PO-Revision-Date: 2011-09-26 15:39+0300\n"
|
||||
"Last-Translator: Tommi Vainikainen <thv@iki.fi>\n"
|
||||
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
|
||||
"shell&keywords=I18N+L10N&component=general\n"
|
||||
"POT-Creation-Date: 2011-10-18 19:39+0000\n"
|
||||
"PO-Revision-Date: 2011-11-15 22:19+0200\n"
|
||||
"Last-Translator: Ville-Pekka Vainio <vpvainio@iki.fi>\n"
|
||||
"Language-Team: Finnish <gnome-fi-laatu@lists.sourceforge.net>\n"
|
||||
"Language: fi\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: Virtaal 0.6.1\n"
|
||||
"X-Generator: Virtaal 0.7.1-rc1\n"
|
||||
"X-DamnedLies-Scope: partial\n"
|
||||
"X-Project-Style: gnome\n"
|
||||
|
||||
#: ../data/gnome-shell.desktop.in.in.h:1
|
||||
msgid "GNOME Shell"
|
||||
@ -40,6 +42,7 @@ msgstr "Gnomen ikkunanhallinta"
|
||||
msgid "Window management and application launching"
|
||||
msgstr "Ikkunanhallinta ja sovelluksien käynnistäminen"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.h:1
|
||||
msgid ""
|
||||
"Allows access to internal debugging and monitoring tools using the Alt-F2 "
|
||||
"dialog."
|
||||
@ -47,16 +50,20 @@ msgstr ""
|
||||
"Salli pääsy sisäiseen vianselvitys- ja monitorointityökaluun Alt-F2-ikkunan "
|
||||
"kautta."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.h:2
|
||||
msgid "Enable internal tools useful for developers and testers from Alt-F2"
|
||||
msgstr ""
|
||||
"Ota käyttöön sisäiset kehittäjiä ja testaajia hyödyttävät työkalut Alt-F2:sta"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.h:3
|
||||
msgid "File extension used for storing the screencast"
|
||||
msgstr "Tiedostopääte ruutunauhoitusten tallentamiseen"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.h:4
|
||||
msgid "Framerate used for recording screencasts."
|
||||
msgstr "Ruutunauhoitusten kuvataajuus."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.h:5
|
||||
msgid ""
|
||||
"GNOME Shell extensions have a uuid property; this key lists extensions which "
|
||||
"should be loaded. disabled-extensions overrides this setting for extensions "
|
||||
@ -67,24 +74,31 @@ msgstr ""
|
||||
"kytketyt laajennukset) ylittää tämän asetuksen mikäli laajennus esiintyy "
|
||||
"molemmissa luetteloissa."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.h:6
|
||||
msgid "History for command (Alt-F2) dialog"
|
||||
msgstr "Historia komentoikkunalle (Alt-F2)"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.h:7
|
||||
msgid "History for the looking glass dialog"
|
||||
msgstr "Historia näyttölasi-ikkunalle"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.h:8
|
||||
msgid "If true, display date in the clock, in addition to time."
|
||||
msgstr "Jos tosi, näytä päivämäärä kellossa ajan lisäksi."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.h:9
|
||||
msgid "If true, display seconds in time."
|
||||
msgstr "Jos tosi, näytä sekunnit ajassa."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.h:10
|
||||
msgid "If true, display the ISO week date in the calendar."
|
||||
msgstr "Jos tosi, näytä ISO-viikonpäivät kalenterissa."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.h:11
|
||||
msgid "List of desktop file IDs for favorite applications"
|
||||
msgstr "Luettelo työpöytätiedostojen tunnisteista lempisovelluksille"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.h:13
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Sets the GStreamer pipeline used to encode recordings. It follows the syntax "
|
||||
@ -110,20 +124,25 @@ msgstr ""
|
||||
"muotoon VP8-koodekilla. %T korvautuu arvauksella parhaan suorituskyvy "
|
||||
"antavasta säiemäärästä järjestelmässä."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.h:14
|
||||
msgid "Show date in clock"
|
||||
msgstr "Näytä päivämäärä kellossa"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.h:15
|
||||
msgid "Show the week date in the calendar"
|
||||
msgstr "Näytä viikonpäivä kalenterissa"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.h:16
|
||||
msgid "Show time with seconds"
|
||||
msgstr "Näytä aika sekuntien kera"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.h:17
|
||||
msgid ""
|
||||
"The applications corresponding to these identifiers will be displayed in the "
|
||||
"favorites area."
|
||||
msgstr "Näitä tunnisteita vastaavat sovellukset näytetään suosikkien alueella."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.h:18
|
||||
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 "
|
||||
@ -133,6 +152,7 @@ msgstr ""
|
||||
"nykyisen päivämäärän ja tämän tiedostopäätteen mukaisesti. Tiedostopääte "
|
||||
"tulisi vaihtaa mikäli nauhoitetaan eri tallennusmuotoon."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.h:19
|
||||
msgid ""
|
||||
"The framerate of the resulting screencast recordered by GNOME Shell's "
|
||||
"screencast recorder in frames-per-second."
|
||||
@ -140,9 +160,11 @@ msgstr ""
|
||||
"Nauhoituksesta tuloksena saatavan ruutunauhoituksen kuvataajuus kun käytössä "
|
||||
"on GNOMEn ikkunanhallinnan nauhoitin, kuvaa per sekunti."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.h:20
|
||||
msgid "The gstreamer pipeline used to encode the screencast"
|
||||
msgstr "Gstreamer-liukuhihna jolla ruutunauhoitukset pakataan"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.h:21
|
||||
msgid ""
|
||||
"The shell normally monitors active applications in order to present the most "
|
||||
"used ones (e.g. in launchers). While this data will be kept private, you may "
|
||||
@ -155,52 +177,72 @@ msgstr ""
|
||||
"yksityisyyden vuoksi. Huomaa että pois kytkeminen ei poista aiemmin "
|
||||
"tallennettuja tietoja."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.h:22
|
||||
msgid "The type of keyboard to use."
|
||||
msgstr "Käytettävän näppäimistön tyyppi."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.h:23
|
||||
msgid "Uuids of extensions to enable"
|
||||
msgstr "Käyttöön otettavien laajennosten UUID:t"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.h:24
|
||||
msgid "Whether to collect stats about applications usage"
|
||||
msgstr "Kerätäänkö sovellusten käytöstä tilastoja"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.h:25
|
||||
msgid "Which keyboard to use"
|
||||
msgstr "Mitä näppäimistöä käytetään"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.h:26
|
||||
msgid "disabled OpenSearch providers"
|
||||
msgstr "käytöstä poistetut OpenSearch-tarjoajat"
|
||||
|
||||
#: ../js/gdm/loginDialog.js:633
|
||||
msgid "Session..."
|
||||
msgstr "Istunto…"
|
||||
|
||||
#: ../js/gdm/loginDialog.js:804
|
||||
msgctxt "title"
|
||||
msgid "Sign In"
|
||||
msgstr "Kirjaudu sisään"
|
||||
|
||||
#. translators: this message is shown below the password entry field
|
||||
#. to indicate the user can swipe their finger instead
|
||||
#: ../js/gdm/loginDialog.js:849
|
||||
msgid "(or swipe finger)"
|
||||
msgstr "(tai pyyhkäise sormella)"
|
||||
|
||||
#: ../js/gdm/loginDialog.js:867
|
||||
msgid "Not listed?"
|
||||
msgstr "Ei luettelossa?"
|
||||
|
||||
#: ../js/gdm/loginDialog.js:1035 ../js/ui/endSessionDialog.js:426
|
||||
#: ../js/ui/extensionSystem.js:477 ../js/ui/networkAgent.js:148
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:173 ../js/ui/status/bluetooth.js:480
|
||||
msgid "Cancel"
|
||||
msgstr "Peru"
|
||||
|
||||
#: ../js/gdm/loginDialog.js:1040
|
||||
msgctxt "button"
|
||||
msgid "Sign In"
|
||||
msgstr "Kirjaudu sisään"
|
||||
|
||||
#: ../js/gdm/loginDialog.js:1392
|
||||
msgid "Login Window"
|
||||
msgstr "Kirjautumisikkuna"
|
||||
|
||||
#: ../js/gdm/powerMenu.js:116 ../js/ui/userMenu.js:554
|
||||
#: ../js/ui/userMenu.js:556 ../js/ui/userMenu.js:625
|
||||
msgid "Suspend"
|
||||
msgstr "Valmiustila"
|
||||
|
||||
#: ../js/gdm/powerMenu.js:121 ../js/ui/endSessionDialog.js:89
|
||||
#: ../js/ui/endSessionDialog.js:97 ../js/ui/endSessionDialog.js:106
|
||||
msgid "Restart"
|
||||
msgstr "Käynnistä uudelleen"
|
||||
|
||||
#: ../js/gdm/powerMenu.js:126 ../js/ui/endSessionDialog.js:80
|
||||
#: ../js/ui/endSessionDialog.js:91
|
||||
msgid "Power Off"
|
||||
msgstr "Sammuta"
|
||||
|
||||
@ -254,13 +296,16 @@ msgstr "%s on lisätty suosikkeihin."
|
||||
msgid "%s has been removed from your favorites."
|
||||
msgstr "%s on poistettu suosikeista."
|
||||
|
||||
#: ../js/ui/autorunManager.js:280
|
||||
msgid "Removable Devices"
|
||||
msgstr "Irroitettavat laitteet"
|
||||
|
||||
#: ../js/ui/autorunManager.js:590
|
||||
#, c-format
|
||||
msgid "Open with %s"
|
||||
msgstr "Avaa käyttäen %s"
|
||||
msgstr "Avaa käyttäen sovellusta %s"
|
||||
|
||||
#: ../js/ui/autorunManager.js:616
|
||||
msgid "Eject"
|
||||
msgstr "Poista asemasta"
|
||||
|
||||
@ -412,28 +457,32 @@ msgstr "Tällä viikolla"
|
||||
msgid "Next week"
|
||||
msgstr "Ensi viikolla"
|
||||
|
||||
#: ../js/ui/contactDisplay.js:59 ../js/ui/notificationDaemon.js:444
|
||||
#: ../js/ui/status/power.js:223 ../src/shell-app.c:355
|
||||
#: ../js/ui/contactDisplay.js:65 ../js/ui/notificationDaemon.js:459
|
||||
#: ../js/ui/status/power.js:223 ../src/shell-app.c:353
|
||||
msgid "Unknown"
|
||||
msgstr "Tuntematon"
|
||||
|
||||
#: ../js/ui/contactDisplay.js:86 ../js/ui/userMenu.js:139
|
||||
msgid "Available"
|
||||
msgstr "Tavoitettavissa"
|
||||
|
||||
#: ../js/ui/contactDisplay.js:91 ../js/ui/userMenu.js:148
|
||||
msgid "Away"
|
||||
msgstr "Poissa"
|
||||
|
||||
#: ../js/ui/contactDisplay.js:95 ../js/ui/userMenu.js:142
|
||||
msgid "Busy"
|
||||
msgstr "Kiireinen"
|
||||
|
||||
#: ../js/ui/contactDisplay.js:93
|
||||
#: ../js/ui/contactDisplay.js:99
|
||||
msgid "Offline"
|
||||
msgstr "Ei linjoilla"
|
||||
|
||||
#: ../js/ui/contactDisplay.js:140
|
||||
#: ../js/ui/contactDisplay.js:146
|
||||
msgid "CONTACTS"
|
||||
msgstr "YHTEYSTIEDOT"
|
||||
|
||||
#: ../js/ui/dash.js:174 ../js/ui/messageTray.js:1206
|
||||
msgid "Remove"
|
||||
msgstr "Poista"
|
||||
|
||||
@ -583,108 +632,131 @@ msgstr "Asenna"
|
||||
msgid "Download and install '%s' from extensions.gnome.org?"
|
||||
msgstr "Lataa ja asenna ”%s” sivustolta extensions.gnome.org?"
|
||||
|
||||
#: ../js/ui/keyboard.js:325
|
||||
msgid "tray"
|
||||
msgstr "ilmoitusalue"
|
||||
|
||||
#: ../js/ui/keyboard.js:547 ../js/ui/status/power.js:211
|
||||
msgid "Keyboard"
|
||||
msgstr "Näppäimistö"
|
||||
|
||||
#: ../js/ui/lookingGlass.js:645
|
||||
#: ../js/ui/lookingGlass.js:646
|
||||
msgid "No extensions installed"
|
||||
msgstr "Laajennuksia ei asennettu"
|
||||
|
||||
#: ../js/ui/lookingGlass.js:691
|
||||
#: ../js/ui/lookingGlass.js:692
|
||||
msgid "Enabled"
|
||||
msgstr "Käytössä"
|
||||
|
||||
#. translators:
|
||||
#. * The device has been disabled
|
||||
#: ../js/ui/lookingGlass.js:693 ../src/gvc/gvc-mixer-control.c:1093
|
||||
#: ../js/ui/lookingGlass.js:694 ../src/gvc/gvc-mixer-control.c:1093
|
||||
msgid "Disabled"
|
||||
msgstr "Ei käytössä"
|
||||
|
||||
#: ../js/ui/lookingGlass.js:695
|
||||
#: ../js/ui/lookingGlass.js:696
|
||||
msgid "Error"
|
||||
msgstr "Virhe"
|
||||
|
||||
#: ../js/ui/lookingGlass.js:697
|
||||
#: ../js/ui/lookingGlass.js:698
|
||||
msgid "Out of date"
|
||||
msgstr "Ei ajan tasalla"
|
||||
|
||||
#: ../js/ui/lookingGlass.js:699
|
||||
#: ../js/ui/lookingGlass.js:700
|
||||
msgid "Downloading"
|
||||
msgstr "Noudetaan"
|
||||
|
||||
#: ../js/ui/lookingGlass.js:724
|
||||
#: ../js/ui/lookingGlass.js:721
|
||||
msgid "View Source"
|
||||
msgstr "Näytä lähde"
|
||||
|
||||
#: ../js/ui/lookingGlass.js:730
|
||||
#: ../js/ui/lookingGlass.js:727
|
||||
msgid "Web Page"
|
||||
msgstr "WWW-sivu"
|
||||
|
||||
#: ../js/ui/messageTray.js:1199
|
||||
msgid "Open"
|
||||
msgstr "Avaa"
|
||||
|
||||
#: ../js/ui/messageTray.js:2408
|
||||
msgid "System Information"
|
||||
msgstr "Järjestelmän tiedot"
|
||||
|
||||
msgid "Show password"
|
||||
msgstr "Näytä salasana"
|
||||
|
||||
#: ../js/ui/networkAgent.js:143
|
||||
msgid "Connect"
|
||||
msgstr "Yhdistä"
|
||||
|
||||
#. Cisco LEAP
|
||||
#: ../js/ui/networkAgent.js:238 ../js/ui/networkAgent.js:250
|
||||
#: ../js/ui/networkAgent.js:277 ../js/ui/networkAgent.js:297
|
||||
#: ../js/ui/networkAgent.js:307
|
||||
msgid "Password: "
|
||||
msgstr "Salasana: "
|
||||
|
||||
#. static WEP
|
||||
#: ../js/ui/networkAgent.js:243
|
||||
msgid "Key: "
|
||||
msgstr "Avain: "
|
||||
|
||||
#. 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/ui/networkAgent.js:275 ../js/ui/networkAgent.js:293
|
||||
msgid "Username: "
|
||||
msgstr "Käyttäjänimi: "
|
||||
|
||||
#: ../js/ui/networkAgent.js:281
|
||||
msgid "Identity: "
|
||||
msgstr "Henkilöllisyys: "
|
||||
|
||||
#: ../js/ui/networkAgent.js:283
|
||||
msgid "Private key password: "
|
||||
msgstr "Salaisen avaimen salasana: "
|
||||
|
||||
#: ../js/ui/networkAgent.js:295
|
||||
msgid "Service: "
|
||||
msgstr "Palvelu: "
|
||||
|
||||
#: ../js/ui/networkAgent.js:324
|
||||
msgid "Authentication required by wireless network"
|
||||
msgstr "Langaton verkko vaatii tunnistautumisen"
|
||||
|
||||
#: ../js/ui/networkAgent.js:325
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Passwords or encryption keys are required to access the wireless network "
|
||||
"'%s'."
|
||||
"Passwords or encryption keys are required to access the wireless network '%"
|
||||
"s'."
|
||||
msgstr "Langaton verkko %s vaatii salasanan tai salausavaimia."
|
||||
|
||||
#: ../js/ui/networkAgent.js:329
|
||||
msgid "Wired 802.1X authentication"
|
||||
msgstr "Kiinteän 802.1X-yhteyden tunnistautuminen"
|
||||
|
||||
#: ../js/ui/networkAgent.js:331
|
||||
msgid "Network name: "
|
||||
msgstr "Verkon nimi: "
|
||||
|
||||
#: ../js/ui/networkAgent.js:336
|
||||
msgid "DSL authentication"
|
||||
msgstr "DSL-tunnistautuminen"
|
||||
|
||||
#: ../js/ui/networkAgent.js:343
|
||||
msgid "PIN code required"
|
||||
msgstr "PIN-koodi vaaditaan"
|
||||
|
||||
#: ../js/ui/networkAgent.js:344
|
||||
msgid "PIN code is needed for the mobile broadband device"
|
||||
msgstr "Mobiililaajakaista vaatii PIN-koodin"
|
||||
|
||||
#: ../js/ui/networkAgent.js:345
|
||||
msgid "PIN: "
|
||||
msgstr "PIN: "
|
||||
|
||||
#: ../js/ui/networkAgent.js:351
|
||||
msgid "Mobile broadband network password"
|
||||
msgstr "Mobiililaajakaistan verkkosalasana"
|
||||
|
||||
#: ../js/ui/networkAgent.js:352
|
||||
#, c-format
|
||||
msgid "A password is required to connect to '%s'."
|
||||
msgstr "Salasana vaaditaan kohteeseen %s yhdistämiseksi."
|
||||
@ -708,15 +780,18 @@ msgid "Dash"
|
||||
msgstr "Pikavalikko"
|
||||
|
||||
#. TODO - _quit() doesn't really work on apps in state STARTING yet
|
||||
#: ../js/ui/panel.js:539
|
||||
#, c-format
|
||||
msgid "Quit %s"
|
||||
msgstr "Lopeta %s"
|
||||
|
||||
#. Translators: If there is no suitable word for "Activities"
|
||||
#. in your language, you can use the word for "Overview".
|
||||
#: ../js/ui/panel.js:575
|
||||
msgid "Activities"
|
||||
msgstr "Toiminnot"
|
||||
|
||||
#: ../js/ui/panel.js:967
|
||||
msgid "Top Bar"
|
||||
msgstr "Yläpalkki"
|
||||
|
||||
@ -737,14 +812,15 @@ msgstr "Yhdistä…"
|
||||
msgid "PLACES & DEVICES"
|
||||
msgstr "SIJAINNIT JA LAITTEET"
|
||||
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:72
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:73
|
||||
msgid "Authentication Required"
|
||||
msgstr "Tunnistautuminen vaaditaan"
|
||||
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:106
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:107
|
||||
msgid "Administrator"
|
||||
msgstr "Ylläpitäjä"
|
||||
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:177
|
||||
msgid "Authenticate"
|
||||
msgstr "Tunnistaudu"
|
||||
|
||||
@ -752,9 +828,11 @@ msgstr "Tunnistaudu"
|
||||
#. * requested authentication was not gained; this can happen
|
||||
#. * because of an authentication error (like invalid password),
|
||||
#. * for instance.
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:258
|
||||
msgid "Sorry, that didn't work. Please try again."
|
||||
msgstr "Tunnistautuminen epäonnistui. Yritä uudelleen."
|
||||
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:270
|
||||
msgid "Password:"
|
||||
msgstr "Salasana:"
|
||||
|
||||
@ -763,10 +841,11 @@ msgstr "Salasana:"
|
||||
#. "ON" and "OFF") or "toggle-switch-intl" (for toggle
|
||||
#. switches containing "◯" and "|"). Other values will
|
||||
#. simply result in invisible toggle switches.
|
||||
#: ../js/ui/popupMenu.js:731
|
||||
msgid "toggle-switch-us"
|
||||
msgstr "toggle-switch-intl"
|
||||
|
||||
#: ../js/ui/runDialog.js:208
|
||||
#: ../js/ui/runDialog.js:209
|
||||
msgid "Please enter a command:"
|
||||
msgstr "Syötä komento:"
|
||||
|
||||
@ -778,6 +857,22 @@ msgstr "Haetaan…"
|
||||
msgid "No matching results."
|
||||
msgstr "Ei tuloksia."
|
||||
|
||||
#: ../js/ui/shellEntry.js:30
|
||||
msgid "Copy"
|
||||
msgstr "Kopioi"
|
||||
|
||||
#: ../js/ui/shellEntry.js:35
|
||||
msgid "Paste"
|
||||
msgstr "Liitä"
|
||||
|
||||
#: ../js/ui/shellEntry.js:81
|
||||
msgid "Show Text"
|
||||
msgstr "Näytä teksti"
|
||||
|
||||
#: ../js/ui/shellEntry.js:83
|
||||
msgid "Hide Text"
|
||||
msgstr "Piilota teksti"
|
||||
|
||||
#: ../js/ui/shellMountOperation.js:285
|
||||
msgid "Wrong password, please try again"
|
||||
msgstr "Väärä salasana, yritä uudelleen"
|
||||
@ -789,6 +884,7 @@ msgstr "Lähennys"
|
||||
#. let screenReader = this._buildItem(_("Screen Reader"), APPLICATIONS_SCHEMA,
|
||||
#. 'screen-reader-enabled');
|
||||
#. this.menu.addMenuItem(screenReader);
|
||||
#: ../js/ui/status/accessibility.js:71
|
||||
msgid "Screen Keyboard"
|
||||
msgstr "Näyttönäppäimistö"
|
||||
|
||||
@ -910,7 +1006,7 @@ msgstr "Salli pääsy aina"
|
||||
msgid "Grant this time only"
|
||||
msgstr "Salli vain tällä kerralla"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:392 ../js/ui/telepathyClient.js:1196
|
||||
#: ../js/ui/status/bluetooth.js:392 ../js/ui/telepathyClient.js:1204
|
||||
msgid "Reject"
|
||||
msgstr "Hylkää"
|
||||
|
||||
@ -950,9 +1046,11 @@ msgstr "Kirjoita laitteella mainittu PIN-koodi."
|
||||
msgid "OK"
|
||||
msgstr "OK"
|
||||
|
||||
#: ../js/ui/status/keyboard.js:73
|
||||
msgid "Show Keyboard Layout"
|
||||
msgstr "Näytä näppäimistön asettelu"
|
||||
|
||||
#: ../js/ui/status/keyboard.js:78
|
||||
msgid "Region and Language Settings"
|
||||
msgstr "Kielen ja alueen asetukset"
|
||||
|
||||
@ -997,11 +1095,13 @@ msgstr "ei käytettävissä"
|
||||
msgid "connection failed"
|
||||
msgstr "yhteys katkesi"
|
||||
|
||||
#: ../js/ui/status/network.js:575 ../js/ui/status/network.js:1523
|
||||
msgid "More..."
|
||||
msgstr "Lisää…"
|
||||
|
||||
#. TRANSLATORS: this is the indication that a connection for another logged in user is active,
|
||||
#. and we cannot access its settings (including the name)
|
||||
#: ../js/ui/status/network.js:611 ../js/ui/status/network.js:1458
|
||||
msgid "Connected (private)"
|
||||
msgstr "Yhdistetty (yksityinen)"
|
||||
|
||||
@ -1018,6 +1118,7 @@ msgid "Auto dial-up"
|
||||
msgstr "Automaattinen, puhelinverkko"
|
||||
|
||||
#. TRANSLATORS: this the automatic wireless connection name (including the network name)
|
||||
#: ../js/ui/status/network.js:878 ../js/ui/status/network.js:1470
|
||||
#, c-format
|
||||
msgid "Auto %s"
|
||||
msgstr "Automaattinen: %s"
|
||||
@ -1026,36 +1127,47 @@ msgstr "Automaattinen: %s"
|
||||
msgid "Auto bluetooth"
|
||||
msgstr "Automaattinen: Bluetooth"
|
||||
|
||||
#: ../js/ui/status/network.js:1472
|
||||
msgid "Auto wireless"
|
||||
msgstr "Automaattinen: langaton"
|
||||
|
||||
#: ../js/ui/status/network.js:1566
|
||||
msgid "Enable networking"
|
||||
msgstr "Ota verkko käyttöön"
|
||||
|
||||
#: ../js/ui/status/network.js:1578
|
||||
msgid "Wired"
|
||||
msgstr "Kiinteä"
|
||||
|
||||
#: ../js/ui/status/network.js:1589
|
||||
msgid "Wireless"
|
||||
msgstr "Langaton"
|
||||
|
||||
#: ../js/ui/status/network.js:1599
|
||||
msgid "Mobile broadband"
|
||||
msgstr "Mobiililaajakaista"
|
||||
|
||||
#: ../js/ui/status/network.js:1609
|
||||
msgid "VPN Connections"
|
||||
msgstr "VPN-yhteydet"
|
||||
|
||||
#: ../js/ui/status/network.js:1620
|
||||
msgid "Network Settings"
|
||||
msgstr "Verkkoasetukset"
|
||||
|
||||
#: ../js/ui/status/network.js:1757
|
||||
msgid "Connection failed"
|
||||
msgstr "Yhteys epäonnistui"
|
||||
|
||||
#: ../js/ui/status/network.js:1758
|
||||
msgid "Activation of network connection failed"
|
||||
msgstr "Verkkoyhteyden aktivointi epäonnistui"
|
||||
|
||||
#: ../js/ui/status/network.js:2008
|
||||
msgid "Networking is disabled"
|
||||
msgstr "Verkko ei ole käytössä"
|
||||
|
||||
#: ../js/ui/status/network.js:2133
|
||||
msgid "Network Manager"
|
||||
msgstr "Verkon hallinta"
|
||||
|
||||
@ -1163,39 +1275,39 @@ msgid "Invitation"
|
||||
msgstr "Kutsu"
|
||||
|
||||
#. We got the TpContact
|
||||
#: ../js/ui/telepathyClient.js:325
|
||||
#: ../js/ui/telepathyClient.js:327
|
||||
msgid "Call"
|
||||
msgstr "Soita"
|
||||
|
||||
#. We got the TpContact
|
||||
#: ../js/ui/telepathyClient.js:353
|
||||
#: ../js/ui/telepathyClient.js:357
|
||||
msgid "File Transfer"
|
||||
msgstr "Tiedostonsiirto"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:434
|
||||
#: ../js/ui/telepathyClient.js:438
|
||||
msgid "Subscription request"
|
||||
msgstr "Tilauspyyntö"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:470
|
||||
#: ../js/ui/telepathyClient.js:474
|
||||
msgid "Connection error"
|
||||
msgstr "Yhteysvirhe"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:733
|
||||
#: ../js/ui/telepathyClient.js:741
|
||||
#, c-format
|
||||
msgid "%s is online."
|
||||
msgstr "%s on linjoilla."
|
||||
|
||||
#: ../js/ui/telepathyClient.js:738
|
||||
#: ../js/ui/telepathyClient.js:746
|
||||
#, c-format
|
||||
msgid "%s is offline."
|
||||
msgstr "%s on poissa linjoilta."
|
||||
|
||||
#: ../js/ui/telepathyClient.js:741
|
||||
#: ../js/ui/telepathyClient.js:749
|
||||
#, c-format
|
||||
msgid "%s is away."
|
||||
msgstr "%s on poissa."
|
||||
|
||||
#: ../js/ui/telepathyClient.js:744
|
||||
#: ../js/ui/telepathyClient.js:752
|
||||
#, c-format
|
||||
msgid "%s is busy."
|
||||
msgstr "%s on kiireinen."
|
||||
@ -1203,35 +1315,35 @@ msgstr "%s on kiireinen."
|
||||
#. Translators: this is a time format string followed by a date.
|
||||
#. If applicable, replace %X with a strftime format valid for your
|
||||
#. locale, without seconds.
|
||||
#: ../js/ui/telepathyClient.js:978
|
||||
#: ../js/ui/telepathyClient.js:986
|
||||
#, no-c-format
|
||||
msgid "Sent at <b>%X</b> on <b>%A</b>"
|
||||
msgstr "Lähetetty <b>%Ana</b> kello <b>%H.%M</b>"
|
||||
|
||||
#. Translators: this is a time format in the style of "Wednesday, May 25",
|
||||
#. shown when you get a chat message in the same year.
|
||||
#: ../js/ui/telepathyClient.js:984
|
||||
#: ../js/ui/telepathyClient.js:992
|
||||
#, no-c-format
|
||||
msgid "Sent on <b>%A</b>, <b>%B %d</b>"
|
||||
msgstr "Lähetetty <b>%Ana</b> <b>%d. %Bta</b>"
|
||||
|
||||
#. Translators: this is a time format in the style of "Wednesday, May 25, 2012",
|
||||
#. shown when you get a chat message in a different year.
|
||||
#: ../js/ui/telepathyClient.js:989
|
||||
#: ../js/ui/telepathyClient.js:997
|
||||
#, no-c-format
|
||||
msgid "Sent on <b>%A</b>, <b>%B %d</b>, %Y"
|
||||
msgstr "Lähetetty <b>%Ana</b> <b>%d. %Bta</b> %Y"
|
||||
|
||||
#. Translators: this is the other person changing their old IM name to their new
|
||||
#. IM name.
|
||||
#: ../js/ui/telepathyClient.js:1031
|
||||
#: ../js/ui/telepathyClient.js:1039
|
||||
#, c-format
|
||||
msgid "%s is now known as %s"
|
||||
msgstr "%s on nyt nimeltään %s"
|
||||
|
||||
#. translators: argument is a room name like
|
||||
#. * room@jabber.org for example.
|
||||
#: ../js/ui/telepathyClient.js:1140
|
||||
#: ../js/ui/telepathyClient.js:1148
|
||||
#, c-format
|
||||
msgid "Invitation to %s"
|
||||
msgstr "Kutsu huoneeseen %s"
|
||||
@ -1239,34 +1351,35 @@ msgstr "Kutsu huoneeseen %s"
|
||||
#. translators: first argument is the name of a contact and the second
|
||||
#. * one the name of a room. "Alice is inviting you to join room@jabber.org
|
||||
#. * for example.
|
||||
#: ../js/ui/telepathyClient.js:1148
|
||||
#: ../js/ui/telepathyClient.js:1156
|
||||
#, c-format
|
||||
msgid "%s is inviting you to join %s"
|
||||
msgstr "%s kutsuu sinut huoneeseen %s"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1150 ../js/ui/telepathyClient.js:1239
|
||||
#: ../js/ui/telepathyClient.js:1343
|
||||
#: ../js/ui/telepathyClient.js:1158 ../js/ui/telepathyClient.js:1248
|
||||
#: ../js/ui/telepathyClient.js:1352
|
||||
msgid "Decline"
|
||||
msgstr "Kieltäydy"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1151 ../js/ui/telepathyClient.js:1240
|
||||
#: ../js/ui/telepathyClient.js:1344
|
||||
#: ../js/ui/telepathyClient.js:1159 ../js/ui/telepathyClient.js:1249
|
||||
#: ../js/ui/telepathyClient.js:1353
|
||||
msgid "Accept"
|
||||
msgstr "Hyväksy"
|
||||
|
||||
#. translators: argument is a contact name like Alice for example.
|
||||
#: ../js/ui/telepathyClient.js:1184
|
||||
#: ../js/ui/telepathyClient.js:1192
|
||||
#, c-format
|
||||
msgid "Video call from %s"
|
||||
msgstr "Videopuhelu käyttäjältä %s"
|
||||
|
||||
#. translators: argument is a contact name like Alice for example.
|
||||
#: ../js/ui/telepathyClient.js:1187
|
||||
#: ../js/ui/telepathyClient.js:1195
|
||||
#, c-format
|
||||
msgid "Call from %s"
|
||||
msgstr "Puhelu käyttäjältä %s"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1197
|
||||
#. translators: this is a button label (verb), not a noun
|
||||
#: ../js/ui/telepathyClient.js:1206
|
||||
msgid "Answer"
|
||||
msgstr "Vastaa"
|
||||
|
||||
@ -1275,108 +1388,108 @@ msgstr "Vastaa"
|
||||
#. * file name. The string will be something
|
||||
#. * like: "Alice is sending you test.ogg"
|
||||
#.
|
||||
#: ../js/ui/telepathyClient.js:1233
|
||||
#: ../js/ui/telepathyClient.js:1242
|
||||
#, c-format
|
||||
msgid "%s is sending you %s"
|
||||
msgstr "%s on lähettämässä sinulle tiedostoa %s"
|
||||
|
||||
#. To translators: The parameter is the contact's alias
|
||||
#: ../js/ui/telepathyClient.js:1308
|
||||
#: ../js/ui/telepathyClient.js:1317
|
||||
#, c-format
|
||||
msgid "%s would like permission to see when you are online"
|
||||
msgstr "%s haluaisi saada luvan nähdä, milloin olet linjoilla"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1406
|
||||
#: ../js/ui/telepathyClient.js:1415
|
||||
msgid "Network error"
|
||||
msgstr "Verkkovirhe"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1408
|
||||
#: ../js/ui/telepathyClient.js:1417
|
||||
msgid "Authentication failed"
|
||||
msgstr "Tunnistautuminen epäonnistui"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1410
|
||||
#: ../js/ui/telepathyClient.js:1419
|
||||
msgid "Encryption error"
|
||||
msgstr "Salausvirhe"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1412
|
||||
#: ../js/ui/telepathyClient.js:1421
|
||||
msgid "Certificate not provided"
|
||||
msgstr "Varmennetta ei annettu"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1414
|
||||
#: ../js/ui/telepathyClient.js:1423
|
||||
msgid "Certificate untrusted"
|
||||
msgstr "Varmenteeseen ei luoteta"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1416
|
||||
#: ../js/ui/telepathyClient.js:1425
|
||||
msgid "Certificate expired"
|
||||
msgstr "Varmenne on vanhentunut"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1418
|
||||
#: ../js/ui/telepathyClient.js:1427
|
||||
msgid "Certificate not activated"
|
||||
msgstr "Varmennetta ei ole aktivoitu"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1420
|
||||
#: ../js/ui/telepathyClient.js:1429
|
||||
msgid "Certificate hostname mismatch"
|
||||
msgstr "Varmenteen konenimiristiriita"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1422
|
||||
#: ../js/ui/telepathyClient.js:1431
|
||||
msgid "Certificate fingerprint mismatch"
|
||||
msgstr "Varmenteen sormenjälkiristiriita"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1424
|
||||
#: ../js/ui/telepathyClient.js:1433
|
||||
msgid "Certificate self-signed"
|
||||
msgstr "Varmenne on itseallekirjoitettu"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1426
|
||||
#: ../js/ui/telepathyClient.js:1435
|
||||
msgid "Status is set to offline"
|
||||
msgstr "Tilaksi on asetettu ”poissa linjoilta”"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1428
|
||||
#: ../js/ui/telepathyClient.js:1437
|
||||
msgid "Encryption is not available"
|
||||
msgstr "Salaus ei ole käytettävissä"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1430
|
||||
#: ../js/ui/telepathyClient.js:1439
|
||||
msgid "Certificate is invalid"
|
||||
msgstr "Varmenne ei kelpaa"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1432
|
||||
#: ../js/ui/telepathyClient.js:1441
|
||||
msgid "Connection has been refused"
|
||||
msgstr "Yhteys on evätty"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1434
|
||||
#: ../js/ui/telepathyClient.js:1443
|
||||
msgid "Connection can't be established"
|
||||
msgstr "Yhteyttä ei voida muodostaa"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1436
|
||||
#: ../js/ui/telepathyClient.js:1445
|
||||
msgid "Connection has been lost"
|
||||
msgstr "Yhteys on katkennut"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1438
|
||||
#: ../js/ui/telepathyClient.js:1447
|
||||
msgid "This resource is already connected to the server"
|
||||
msgstr "Tämä resurssi on jo yhteydessä palvelimeen"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1440
|
||||
#: ../js/ui/telepathyClient.js:1449
|
||||
msgid ""
|
||||
"Connection has been replaced by a new connection using the same resource"
|
||||
msgstr "Yhteys on korvattu uudella samaa resurssia käyttävällä yhteydellä"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1442
|
||||
#: ../js/ui/telepathyClient.js:1451
|
||||
msgid "The account already exists on the server"
|
||||
msgstr "Tili on jo olemassa palvelimella"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1444
|
||||
#: ../js/ui/telepathyClient.js:1453
|
||||
msgid "Server is currently too busy to handle the connection"
|
||||
msgstr "Palvelin on tällä hetkellä liian kiireinen käsittelemään yhteyttä"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1446
|
||||
#: ../js/ui/telepathyClient.js:1455
|
||||
msgid "Certificate has been revoked"
|
||||
msgstr "Varmenne on kumottu"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1448
|
||||
#: ../js/ui/telepathyClient.js:1457
|
||||
msgid ""
|
||||
"Certificate uses an insecure cipher algorithm or is cryptographically weak"
|
||||
msgstr "Varmenne käyttää turvatonta salausmenetelmää"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1450
|
||||
#: ../js/ui/telepathyClient.js:1459
|
||||
msgid ""
|
||||
"The length of the server certificate, or the depth of the server certificate "
|
||||
"chain, exceed the limits imposed by the cryptography library"
|
||||
@ -1385,56 +1498,68 @@ msgstr ""
|
||||
|
||||
#. translators: argument is the account name, like
|
||||
#. * name@jabber.org for example.
|
||||
#: ../js/ui/telepathyClient.js:1459
|
||||
#: ../js/ui/telepathyClient.js:1468
|
||||
#, c-format
|
||||
msgid "Connection to %s failed"
|
||||
msgstr "Yhteys kohteeseen %s katkesi"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1468
|
||||
#: ../js/ui/telepathyClient.js:1477
|
||||
msgid "Reconnect"
|
||||
msgstr "Yhdistä uudelleen"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1469
|
||||
#: ../js/ui/telepathyClient.js:1478
|
||||
msgid "Edit account"
|
||||
msgstr "Muokkaa tiliä"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1515
|
||||
#: ../js/ui/telepathyClient.js:1524
|
||||
msgid "Unknown reason"
|
||||
msgstr "Tuntematon syy"
|
||||
|
||||
#: ../js/ui/userMenu.js:145
|
||||
msgid "Hidden"
|
||||
msgstr "Piilotettu"
|
||||
|
||||
#: ../js/ui/userMenu.js:151
|
||||
msgid "Idle"
|
||||
msgstr "Jouten"
|
||||
|
||||
#: ../js/ui/userMenu.js:154
|
||||
msgid "Unavailable"
|
||||
msgstr "Ei tavoitettavissa"
|
||||
|
||||
#: ../js/ui/userMenu.js:552 ../js/ui/userMenu.js:556 ../js/ui/userMenu.js:626
|
||||
msgid "Power Off..."
|
||||
msgstr "Sammuta…"
|
||||
|
||||
#: ../js/ui/userMenu.js:588
|
||||
msgid "Notifications"
|
||||
msgstr "Ilmoitukset"
|
||||
|
||||
#: ../js/ui/userMenu.js:596
|
||||
msgid "Online Accounts"
|
||||
msgstr "Verkkotilit"
|
||||
|
||||
#: ../js/ui/userMenu.js:600
|
||||
msgid "System Settings"
|
||||
msgstr "Järjestelmän asetukset"
|
||||
|
||||
#: ../js/ui/userMenu.js:607
|
||||
msgid "Lock Screen"
|
||||
msgstr "Lukitse näyttö"
|
||||
|
||||
#: ../js/ui/userMenu.js:612
|
||||
msgid "Switch User"
|
||||
msgstr "Vaihda käyttäjää"
|
||||
|
||||
#: ../js/ui/userMenu.js:617
|
||||
msgid "Log Out..."
|
||||
msgstr "Kirjaudu ulos…"
|
||||
|
||||
#: ../js/ui/userMenu.js:645
|
||||
msgid "Your chat status will be set to busy"
|
||||
msgstr "Pikaviestitilaksi asetetaan ”kiireinen”"
|
||||
|
||||
#: ../js/ui/userMenu.js:646
|
||||
msgid ""
|
||||
"Notifications are now disabled, including chat messages. Your online status "
|
||||
"has been adjusted to let others know that you might not see their messages."
|
||||
@ -1447,20 +1572,15 @@ msgstr ""
|
||||
#. in the search entry when no search is
|
||||
#. active; it should not exceed ~30
|
||||
#. characters.
|
||||
#: ../js/ui/viewSelector.js:120
|
||||
#: ../js/ui/viewSelector.js:121
|
||||
msgid "Type to search..."
|
||||
msgstr "Kirjoita hakeaksesi…"
|
||||
|
||||
#: ../js/ui/viewSelector.js:140 ../src/shell-util.c:261
|
||||
#: ../js/ui/viewSelector.js:142 ../src/shell-util.c:261
|
||||
msgid "Search"
|
||||
msgstr "Haku"
|
||||
|
||||
#: ../js/ui/windowAttentionHandler.js:39
|
||||
#, c-format
|
||||
msgid "%s has finished starting"
|
||||
msgstr "%s on käynnistynyt"
|
||||
|
||||
#: ../js/ui/windowAttentionHandler.js:41
|
||||
#: ../js/ui/windowAttentionHandler.js:35
|
||||
#, c-format
|
||||
msgid "'%s' is ready"
|
||||
msgstr "%s on valmis"
|
||||
@ -1495,7 +1615,7 @@ msgstr "Tulosta versio"
|
||||
msgid "Mode used by GDM for login screen"
|
||||
msgstr "GDM:n kirjautumisruudussa käyttämä tila"
|
||||
|
||||
#: ../src/shell-app.c:581
|
||||
#: ../src/shell-app.c:579
|
||||
#, c-format
|
||||
msgid "Failed to launch '%s'"
|
||||
msgstr "Sovelluksen ”%s” käynnistäminen epäonnistui"
|
||||
@ -1532,6 +1652,12 @@ msgstr "Tiedostojärjestelmä"
|
||||
msgid "%1$s: %2$s"
|
||||
msgstr "%1$s: %2$s"
|
||||
|
||||
#~ msgid "Show password"
|
||||
#~ msgstr "Näytä salasana"
|
||||
|
||||
#~ msgid "%s has finished starting"
|
||||
#~ msgstr "%s on käynnistynyt"
|
||||
|
||||
#~ msgid "Connectivity lost"
|
||||
#~ msgstr "Yhteys katkesi"
|
||||
|
||||
|
103
po/ja.po
103
po/ja.po
@ -5,20 +5,21 @@
|
||||
# Kiyotaka NISHIBORI <ml.nishibori.kiyotaka@gmail.com>, 2011.
|
||||
# Jiro Matsuzawa <jmatsuzawa@src.gnome.org>, 2011.
|
||||
# Takayuki KUSANO <AE5T-KSN@asahi-net.or.jp>, 2011.
|
||||
# Hideki Yamane <henrich@debian.org>, 2011.
|
||||
#
|
||||
msgid ""
|
||||
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: 2011-10-17 14:02+0000\n"
|
||||
"PO-Revision-Date: 2011-10-17 23:22+0900\n"
|
||||
"Last-Translator: Takayuki KUSANO <AE5T-KSN@asahi-net.or.jp>\n"
|
||||
"POT-Creation-Date: 2011-11-08 00:01+0000\n"
|
||||
"PO-Revision-Date: 2011-11-03 10:22+0900\n"
|
||||
"Last-Translator: Hideki Yamane <henrich@debian.org>\n"
|
||||
"Language-Team: Japanese <gnome-translation@gnome.gr.jp>\n"
|
||||
"Language: ja\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: ja\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
"X-DamnedLies-Scope: partial\n"
|
||||
|
||||
@ -140,9 +141,7 @@ msgstr ""
|
||||
msgid ""
|
||||
"The framerate of the resulting screencast recordered by GNOME Shell's "
|
||||
"screencast recorder in frames-per-second."
|
||||
msgstr ""
|
||||
"GNOME Shell のスクリーンキャスト・レコーダーで録画するスクリーンキャストの 1"
|
||||
"秒あたりのフレーム数です。"
|
||||
msgstr "GNOME Shell のスクリーンキャストレコーダーで録画するスクリーンキャストの 1秒あたりのフレーム数です。"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.h:20
|
||||
msgid "The gstreamer pipeline used to encode the screencast"
|
||||
@ -179,42 +178,42 @@ msgstr "使いたいキーボードの種類"
|
||||
msgid "disabled OpenSearch providers"
|
||||
msgstr "OpenSearch プロバイダーを無効にする"
|
||||
|
||||
#: ../js/gdm/loginDialog.js:617
|
||||
#: ../js/gdm/loginDialog.js:633
|
||||
msgid "Session..."
|
||||
msgstr "セッション..."
|
||||
|
||||
#: ../js/gdm/loginDialog.js:788
|
||||
#: ../js/gdm/loginDialog.js:804
|
||||
msgctxt "title"
|
||||
msgid "Sign In"
|
||||
msgstr "サインイン"
|
||||
|
||||
#. translators: this message is shown below the password entry field
|
||||
#. to indicate the user can swipe their finger instead
|
||||
#: ../js/gdm/loginDialog.js:833
|
||||
#: ../js/gdm/loginDialog.js:849
|
||||
msgid "(or swipe finger)"
|
||||
msgstr "(あるいは指でスワイプする)"
|
||||
|
||||
#: ../js/gdm/loginDialog.js:851
|
||||
#: ../js/gdm/loginDialog.js:867
|
||||
msgid "Not listed?"
|
||||
msgstr "アカウントが見つかりませんか?"
|
||||
|
||||
#: ../js/gdm/loginDialog.js:1019 ../js/ui/endSessionDialog.js:426
|
||||
#: ../js/gdm/loginDialog.js:1035 ../js/ui/endSessionDialog.js:426
|
||||
#: ../js/ui/extensionSystem.js:477 ../js/ui/networkAgent.js:148
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:173 ../js/ui/status/bluetooth.js:480
|
||||
msgid "Cancel"
|
||||
msgstr "キャンセル"
|
||||
|
||||
#: ../js/gdm/loginDialog.js:1024
|
||||
#: ../js/gdm/loginDialog.js:1040
|
||||
msgctxt "button"
|
||||
msgid "Sign In"
|
||||
msgstr "サインイン"
|
||||
|
||||
#: ../js/gdm/loginDialog.js:1373
|
||||
#: ../js/gdm/loginDialog.js:1392
|
||||
msgid "Login Window"
|
||||
msgstr "ログインウィンドウ"
|
||||
|
||||
#: ../js/gdm/powerMenu.js:116 ../js/ui/userMenu.js:549
|
||||
#: ../js/ui/userMenu.js:551 ../js/ui/userMenu.js:620
|
||||
#: ../js/gdm/powerMenu.js:116 ../js/ui/userMenu.js:554
|
||||
#: ../js/ui/userMenu.js:556 ../js/ui/userMenu.js:625
|
||||
msgid "Suspend"
|
||||
msgstr "サスペンド"
|
||||
|
||||
@ -437,7 +436,7 @@ msgstr "今週"
|
||||
msgid "Next week"
|
||||
msgstr "来週"
|
||||
|
||||
#: ../js/ui/contactDisplay.js:65 ../js/ui/notificationDaemon.js:444
|
||||
#: ../js/ui/contactDisplay.js:65 ../js/ui/notificationDaemon.js:459
|
||||
#: ../js/ui/status/power.js:223 ../src/shell-app.c:353
|
||||
msgid "Unknown"
|
||||
msgstr "不明なデバイス"
|
||||
@ -462,7 +461,7 @@ msgstr "オフライン"
|
||||
msgid "CONTACTS"
|
||||
msgstr "連絡先"
|
||||
|
||||
#: ../js/ui/dash.js:172 ../js/ui/messageTray.js:1204
|
||||
#: ../js/ui/dash.js:174 ../js/ui/messageTray.js:1206
|
||||
msgid "Remove"
|
||||
msgstr "削除"
|
||||
|
||||
@ -593,15 +592,16 @@ msgid "Install"
|
||||
msgstr "インストール"
|
||||
|
||||
#: ../js/ui/extensionSystem.js:485
|
||||
#: ../js/ui/extensionSystem.js:527
|
||||
#, c-format
|
||||
msgid "Download and install '%s' from extensions.gnome.org?"
|
||||
msgstr "extensions.gnome.org から '%s' をダウンロードし、インストールしますか?"
|
||||
msgstr "extensions.gnome.org から '%s' をダウンロードしてインストールしますか?"
|
||||
|
||||
#: ../js/ui/keyboard.js:309
|
||||
#: ../js/ui/keyboard.js:325
|
||||
msgid "tray"
|
||||
msgstr "トレイ"
|
||||
|
||||
#: ../js/ui/keyboard.js:531 ../js/ui/status/power.js:211
|
||||
#: ../js/ui/keyboard.js:547 ../js/ui/status/power.js:211
|
||||
msgid "Keyboard"
|
||||
msgstr "キーボード"
|
||||
|
||||
@ -639,11 +639,11 @@ msgstr "ソースの表示"
|
||||
msgid "Web Page"
|
||||
msgstr "ウェブページ"
|
||||
|
||||
#: ../js/ui/messageTray.js:1197
|
||||
#: ../js/ui/messageTray.js:1199
|
||||
msgid "Open"
|
||||
msgstr "開く"
|
||||
|
||||
#: ../js/ui/messageTray.js:2406
|
||||
#: ../js/ui/messageTray.js:2408
|
||||
msgid "System Information"
|
||||
msgstr "システム情報"
|
||||
|
||||
@ -689,8 +689,8 @@ msgstr "無線ネットワークでは認証が要求されます"
|
||||
#: ../js/ui/networkAgent.js:325
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Passwords or encryption keys are required to access the wireless network "
|
||||
"'%s'."
|
||||
"Passwords or encryption keys are required to access the wireless network '%"
|
||||
"s'."
|
||||
msgstr ""
|
||||
"無線ネットワーク '%s' にアクセスするにはパスワードか、または暗号化キーが必要"
|
||||
"です。"
|
||||
@ -785,7 +785,7 @@ msgstr "認証が要求されました"
|
||||
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:107
|
||||
msgid "Administrator"
|
||||
msgstr "アドミニストレーター"
|
||||
msgstr "管理者"
|
||||
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:177
|
||||
msgid "Authenticate"
|
||||
@ -824,6 +824,22 @@ msgstr "検索しています..."
|
||||
msgid "No matching results."
|
||||
msgstr "一致するものがありません。"
|
||||
|
||||
#: ../js/ui/shellEntry.js:30
|
||||
msgid "Copy"
|
||||
msgstr "コピー"
|
||||
|
||||
#: ../js/ui/shellEntry.js:35
|
||||
msgid "Paste"
|
||||
msgstr "貼り付け"
|
||||
|
||||
#: ../js/ui/shellEntry.js:81
|
||||
msgid "Show Text"
|
||||
msgstr "文字を表示"
|
||||
|
||||
#: ../js/ui/shellEntry.js:83
|
||||
msgid "Hide Text"
|
||||
msgstr "文字を非表示"
|
||||
|
||||
#: ../js/ui/shellMountOperation.js:285
|
||||
msgid "Wrong password, please try again"
|
||||
msgstr "パスワードが間違っています、再度試してください"
|
||||
@ -1023,7 +1039,7 @@ msgstr "管理対象外"
|
||||
#. Translators: this is for network connections that require some kind of key or password
|
||||
#: ../js/ui/status/network.js:495
|
||||
msgid "authentication required"
|
||||
msgstr "認証要求"
|
||||
msgstr "認証の要求"
|
||||
|
||||
#. Translators: this is for devices that require some kind of firmware or kernel
|
||||
#. module, which is missing
|
||||
@ -1176,7 +1192,7 @@ msgstr "バッテリー"
|
||||
|
||||
#: ../js/ui/status/power.js:205
|
||||
msgid "UPS"
|
||||
msgstr "無停電電源装置"
|
||||
msgstr "UPS"
|
||||
|
||||
#: ../js/ui/status/power.js:207
|
||||
msgid "Monitor"
|
||||
@ -1317,7 +1333,7 @@ msgstr "受け入れる"
|
||||
#: ../js/ui/telepathyClient.js:1192
|
||||
#, c-format
|
||||
msgid "Video call from %s"
|
||||
msgstr "%s さんから映像での呼び出し"
|
||||
msgstr "%s さんからビデオでの呼び出し"
|
||||
|
||||
#. translators: argument is a contact name like Alice for example.
|
||||
#: ../js/ui/telepathyClient.js:1195
|
||||
@ -1441,9 +1457,7 @@ msgstr "証明書が安全でない暗号のアルゴリズムを使っている
|
||||
msgid ""
|
||||
"The length of the server certificate, or the depth of the server certificate "
|
||||
"chain, exceed the limits imposed by the cryptography library"
|
||||
msgstr ""
|
||||
"サーバー証明書の長さや、サーバー証明書のチェインの深さが暗号ライブラリで規定"
|
||||
"されている長さを越えています"
|
||||
msgstr "サーバー証明書の長さや、サーバー証明書のチェーンの深さが暗号ライブラリで規定されている長さを越えています"
|
||||
|
||||
#. translators: argument is the account name, like
|
||||
#. * name@jabber.org for example.
|
||||
@ -1476,39 +1490,39 @@ msgstr "待機中"
|
||||
msgid "Unavailable"
|
||||
msgstr "オフライン"
|
||||
|
||||
#: ../js/ui/userMenu.js:547 ../js/ui/userMenu.js:551 ../js/ui/userMenu.js:621
|
||||
#: ../js/ui/userMenu.js:552 ../js/ui/userMenu.js:556 ../js/ui/userMenu.js:626
|
||||
msgid "Power Off..."
|
||||
msgstr "電源オフ..."
|
||||
|
||||
#: ../js/ui/userMenu.js:583
|
||||
#: ../js/ui/userMenu.js:588
|
||||
msgid "Notifications"
|
||||
msgstr "メッセージ通知"
|
||||
|
||||
#: ../js/ui/userMenu.js:591
|
||||
#: ../js/ui/userMenu.js:596
|
||||
msgid "Online Accounts"
|
||||
msgstr "オンラインアカウント"
|
||||
|
||||
#: ../js/ui/userMenu.js:595
|
||||
#: ../js/ui/userMenu.js:600
|
||||
msgid "System Settings"
|
||||
msgstr "システム設定"
|
||||
|
||||
#: ../js/ui/userMenu.js:602
|
||||
#: ../js/ui/userMenu.js:607
|
||||
msgid "Lock Screen"
|
||||
msgstr "画面のロック"
|
||||
|
||||
#: ../js/ui/userMenu.js:607
|
||||
#: ../js/ui/userMenu.js:612
|
||||
msgid "Switch User"
|
||||
msgstr "ユーザーの切り替え"
|
||||
|
||||
#: ../js/ui/userMenu.js:612
|
||||
#: ../js/ui/userMenu.js:617
|
||||
msgid "Log Out..."
|
||||
msgstr "ログアウト..."
|
||||
|
||||
#: ../js/ui/userMenu.js:640
|
||||
#: ../js/ui/userMenu.js:645
|
||||
msgid "Your chat status will be set to busy"
|
||||
msgstr "取り込み中に設定されます"
|
||||
|
||||
#: ../js/ui/userMenu.js:641
|
||||
#: ../js/ui/userMenu.js:646
|
||||
msgid ""
|
||||
"Notifications are now disabled, including chat messages. Your online status "
|
||||
"has been adjusted to let others know that you might not see their messages."
|
||||
@ -1678,9 +1692,6 @@ msgstr "%1$s: %2$s"
|
||||
#~ msgid "Confirm"
|
||||
#~ msgstr "確定"
|
||||
|
||||
#~ msgid "Panel"
|
||||
#~ msgstr "パネル"
|
||||
|
||||
#~ msgid "No such application"
|
||||
#~ msgstr "アプリケーションが見当たりません"
|
||||
|
||||
@ -1719,9 +1730,6 @@ msgstr "%1$s: %2$s"
|
||||
#~ msgid "Show seco_nds"
|
||||
#~ msgstr "秒の表示(_n)"
|
||||
|
||||
#~ msgid "Show the _date"
|
||||
#~ msgstr "日付の表示(_d)"
|
||||
|
||||
#~ msgid "_12 hour format"
|
||||
#~ msgstr "12時間形式(_1)"
|
||||
|
||||
@ -1758,3 +1766,4 @@ msgstr "%1$s: %2$s"
|
||||
|
||||
#~ msgid "Recent Documents"
|
||||
#~ msgstr "最近利用したドキュメント"
|
||||
|
||||
|
429
po/lt.po
429
po/lt.po
@ -7,18 +7,16 @@
|
||||
msgid ""
|
||||
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: 2011-10-08 07:34+0000\n"
|
||||
"PO-Revision-Date: 2011-10-08 19:48+0300\n"
|
||||
"Last-Translator: Algimantas Margevičius <gymka@mail.ru>\n"
|
||||
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell&keywords=I18N+L10N&component=general\n"
|
||||
"POT-Creation-Date: 2011-10-22 09:53+0000\n"
|
||||
"PO-Revision-Date: 2011-10-22 22:55+0300\n"
|
||||
"Last-Translator: Aurimas Černius <aurisc4@gmail.com>\n"
|
||||
"Language-Team: Lietuvių <>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bits\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: lt\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%"
|
||||
"100<10 || n%100>=20) ? 1 : 2)\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2)\n"
|
||||
"X-Generator: Virtaal 0.6.1\n"
|
||||
|
||||
#: ../data/gnome-shell.desktop.in.in.h:1
|
||||
@ -30,18 +28,12 @@ msgid "Window management and application launching"
|
||||
msgstr "Langų valdymas ir programų paleidimas"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.h:1
|
||||
msgid ""
|
||||
"Allows access to internal debugging and monitoring tools using the Alt-F2 "
|
||||
"dialog."
|
||||
msgstr ""
|
||||
"Suteikia prieigą prie vidinio derinimo ir stebėjimo įrankių, naudojant Alt-"
|
||||
"F2 dialogą."
|
||||
msgid "Allows access to internal debugging and monitoring tools using the Alt-F2 dialog."
|
||||
msgstr "Suteikia prieigą prie vidinio derinimo ir stebėjimo įrankių, naudojant Alt-F2 dialogą."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.h:2
|
||||
msgid "Enable internal tools useful for developers and testers from Alt-F2"
|
||||
msgstr ""
|
||||
"Įjungti vidinius, Alt-F2 klavišų pagalba pasiekiamus įrankius, naudingus "
|
||||
"programuotojams ir bandytojams "
|
||||
msgstr "Įjungti vidinius, Alt-F2 klavišų pagalba pasiekiamus įrankius, naudingus programuotojams ir bandytojams "
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.h:3
|
||||
msgid "File extension used for storing the screencast"
|
||||
@ -52,14 +44,8 @@ msgid "Framerate used for recording screencasts."
|
||||
msgstr "Kadrų dažnis, naudojamas norint įrašyti ekrano vaizdo įrašą."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.h:5
|
||||
msgid ""
|
||||
"GNOME Shell extensions have a uuid property; this key lists extensions which "
|
||||
"should be loaded. disabled-extensions overrides this setting for extensions "
|
||||
"that appear in both lists."
|
||||
msgstr ""
|
||||
"GNOME Shell plėtiniai turi uuid savybę; šiame rakte išvardinti plėtiniai, "
|
||||
"kurie neturėtų būti įkelti. Raktas disabled-extensions turi pirmenybę prieš "
|
||||
"šį plėtiniams, kurie yra abiejuose sąrašuose."
|
||||
msgid "GNOME Shell extensions have a uuid property; this key lists extensions which should be loaded. disabled-extensions overrides this setting for extensions that appear in both lists."
|
||||
msgstr "GNOME Shell plėtiniai turi uuid savybę; šiame rakte išvardinti plėtiniai, kurie neturėtų būti įkelti. Raktas disabled-extensions turi pirmenybę prieš šį plėtiniams, kurie yra abiejuose sąrašuose."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.h:6
|
||||
msgid "History for command (Alt-F2) dialog"
|
||||
@ -87,29 +73,8 @@ msgstr "Mėgstamų programų darbastalio failų ID sąrašas"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.h:13
|
||||
#, no-c-format
|
||||
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 "
|
||||
"'videorate ! vp8enc quality=10 speed=2 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 ""
|
||||
"Nurodo GStreamer konvejerį, naudojamą įrašams koduoti. Jame naudojama gst-"
|
||||
"launch naudojama sintaksė. Konvejeryje turėtų būti neprijungtas apjungiantis "
|
||||
"elementas, kuriame įrašomas vaizdo įrašas. Paprastai jame yra neprijungtas "
|
||||
"šaltinio elementas; išvestis iš to elemento bus įrašyta į išvesties failą. "
|
||||
"Tačiau konvejeris taip pat gali pasirūpinti savo paties išvestimi – tai gali "
|
||||
"būti panaudota norint perduoti išvestį icecast serveriui per shout2send ar "
|
||||
"pan. elementą. Kai reikšmė nenustatyta ar nustatyta tuščia reikšmė, "
|
||||
"naudojamas numatytasis konvejeris. Šiuo metu tai yra „videorate ! vp8enc "
|
||||
"quality=10 speed=2 threads=%T ! queue ! webmmux“ ir įrašo į WEBM naudojant "
|
||||
"VP8 kodeką. %T yra naudojamas kaip žymeklis optimalaus gijų skaičiaus "
|
||||
"sistemoje spėjimui."
|
||||
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 'videorate ! vp8enc quality=10 speed=2 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 "Nurodo GStreamer konvejerį, naudojamą įrašams koduoti. Jame naudojama gst-launch naudojama sintaksė. Konvejeryje turėtų būti neprijungtas apjungiantis elementas, kuriame įrašomas vaizdo įrašas. Paprastai jame yra neprijungtas šaltinio elementas; išvestis iš to elemento bus įrašyta į išvesties failą. Tačiau konvejeris taip pat gali pasirūpinti savo paties išvestimi – tai gali būti panaudota norint perduoti išvestį icecast serveriui per shout2send ar pan. elementą. Kai reikšmė nenustatyta ar nustatyta tuščia reikšmė, naudojamas numatytasis konvejeris. Šiuo metu tai yra „videorate ! vp8enc quality=10 speed=2 threads=%T ! queue ! webmmux“ ir įrašo į WEBM naudojant VP8 kodeką. %T yra naudojamas kaip žymeklis optimalaus gijų skaičiaus sistemoje spėjimui."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.h:14
|
||||
msgid "Show date in clock"
|
||||
@ -124,46 +89,24 @@ msgid "Show time with seconds"
|
||||
msgstr "Rodyti laiką su sekundėmis"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.h:17
|
||||
msgid ""
|
||||
"The applications corresponding to these identifiers will be displayed in the "
|
||||
"favorites area."
|
||||
msgstr ""
|
||||
"Programos, atitinkančios šiuos identifikatorius, bus rodomos mėgstamų "
|
||||
"srityje."
|
||||
msgid "The applications corresponding to these identifiers will be displayed in the favorites area."
|
||||
msgstr "Programos, atitinkančios šiuos identifikatorius, bus rodomos mėgstamų srityje."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.h:18
|
||||
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 ""
|
||||
"Įrašytų ekrano vaizdo įrašų failų vardas bus unikalus, sudaromas "
|
||||
"atsižvelgiant į dabartinę datą ir naudojantis šį plėtinį. Rašant į kitą "
|
||||
"konteinerio formatą jį reikėtų pakeisti."
|
||||
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 "Įrašytų ekrano vaizdo įrašų failų vardas bus unikalus, sudaromas atsižvelgiant į dabartinę datą ir naudojantis šį plėtinį. Rašant į kitą konteinerio formatą jį reikėtų pakeisti."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.h:19
|
||||
msgid ""
|
||||
"The framerate of the resulting screencast recordered by GNOME Shell's "
|
||||
"screencast recorder in frames-per-second."
|
||||
msgstr ""
|
||||
"GNOME Shell ekranų įrašymo programa sukurto ekrano įrašo kadrų dažnis "
|
||||
"kadrais per sekundę."
|
||||
msgid "The framerate of the resulting screencast recordered by GNOME Shell's screencast recorder in frames-per-second."
|
||||
msgstr "GNOME Shell ekranų įrašymo programa sukurto ekrano įrašo kadrų dažnis kadrais per sekundę."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.h:20
|
||||
msgid "The gstreamer pipeline used to encode the screencast"
|
||||
msgstr "Gstreamer konvejeris, naudojamas užkoduojant ekrano vaizdo įrašą."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.h:21
|
||||
msgid ""
|
||||
"The shell normally monitors active applications in order to present the most "
|
||||
"used ones (e.g. in launchers). While this data will be kept private, you may "
|
||||
"want to disable this for privacy reasons. Please note that doing so won't "
|
||||
"remove already saved data."
|
||||
msgstr ""
|
||||
"Apvalkalas paprastai stebi aktyvias programas siekiant pateikti dažniausiai "
|
||||
"naudojamas (pvz., leistukuose). Nors šie duomenys konfidencialiai saugomi, "
|
||||
"jei norite, saugumo sumetimais galite šią funkciją išjungti. Atminkite, kad "
|
||||
"tai padarius jau įrašyti duomenys jau nebus įrašyti."
|
||||
msgid "The shell normally monitors active applications in order to present the most used ones (e.g. in launchers). While this data will be kept private, you may want to disable this for privacy reasons. Please note that doing so won't remove already saved data."
|
||||
msgstr "Apvalkalas paprastai stebi aktyvias programas siekiant pateikti dažniausiai naudojamas (pvz., leistukuose). Nors šie duomenys konfidencialiai saugomi, jei norite, saugumo sumetimais galite šią funkciją išjungti. Atminkite, kad tai padarius jau įrašyti duomenys jau nebus įrašyti."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.h:22
|
||||
msgid "The type of keyboard to use."
|
||||
@ -185,52 +128,55 @@ msgstr "Kurią klaviatūrą naudoti"
|
||||
msgid "disabled OpenSearch providers"
|
||||
msgstr "išjungti OpenSearch tiekėjai"
|
||||
|
||||
#: ../js/gdm/loginDialog.js:617
|
||||
#: ../js/gdm/loginDialog.js:633
|
||||
msgid "Session..."
|
||||
msgstr "Seansas..."
|
||||
|
||||
#: ../js/gdm/loginDialog.js:785
|
||||
#: ../js/gdm/loginDialog.js:804
|
||||
msgctxt "title"
|
||||
msgid "Sign In"
|
||||
msgstr "Prisijungti"
|
||||
|
||||
#. translators: this message is shown below the password entry field
|
||||
#. to indicate the user can swipe their finger instead
|
||||
#: ../js/gdm/loginDialog.js:830
|
||||
#: ../js/gdm/loginDialog.js:849
|
||||
msgid "(or swipe finger)"
|
||||
msgstr "(arba perbraukite pirštu)"
|
||||
|
||||
#: ../js/gdm/loginDialog.js:848
|
||||
#: ../js/gdm/loginDialog.js:867
|
||||
msgid "Not listed?"
|
||||
msgstr "Nėra sąraše?"
|
||||
|
||||
#: ../js/gdm/loginDialog.js:1004 ../js/ui/endSessionDialog.js:426
|
||||
#: ../js/ui/extensionSystem.js:477 ../js/ui/networkAgent.js:165
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:171 ../js/ui/status/bluetooth.js:480
|
||||
#: ../js/gdm/loginDialog.js:1035
|
||||
#: ../js/ui/endSessionDialog.js:426
|
||||
#: ../js/ui/extensionSystem.js:520
|
||||
#: ../js/ui/networkAgent.js:148
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:173
|
||||
#: ../js/ui/status/bluetooth.js:480
|
||||
msgid "Cancel"
|
||||
msgstr "Atšaukti"
|
||||
|
||||
#: ../js/gdm/loginDialog.js:1009
|
||||
#: ../js/gdm/loginDialog.js:1040
|
||||
msgctxt "button"
|
||||
msgid "Sign In"
|
||||
msgstr "Prisijungti"
|
||||
|
||||
#: ../js/gdm/loginDialog.js:1358
|
||||
#: ../js/gdm/loginDialog.js:1392
|
||||
msgid "Login Window"
|
||||
msgstr "Prisijungimo langas"
|
||||
|
||||
#: ../js/gdm/powerMenu.js:116 ../js/ui/userMenu.js:549
|
||||
#: ../js/ui/userMenu.js:551 ../js/ui/userMenu.js:620
|
||||
#: ../js/gdm/powerMenu.js:116
|
||||
#: ../js/ui/userMenu.js:573
|
||||
#: ../js/ui/userMenu.js:575
|
||||
#: ../js/ui/userMenu.js:644
|
||||
msgid "Suspend"
|
||||
msgstr "Užmigdyti"
|
||||
|
||||
#: ../js/gdm/powerMenu.js:121 ../js/ui/endSessionDialog.js:89
|
||||
#: ../js/ui/endSessionDialog.js:97 ../js/ui/endSessionDialog.js:106
|
||||
#: ../js/gdm/powerMenu.js:121
|
||||
msgid "Restart"
|
||||
msgstr "Įkelti iš naujo"
|
||||
|
||||
#: ../js/gdm/powerMenu.js:126 ../js/ui/endSessionDialog.js:80
|
||||
#: ../js/ui/endSessionDialog.js:91
|
||||
#: ../js/gdm/powerMenu.js:126
|
||||
msgid "Power Off"
|
||||
msgstr "Išjungti"
|
||||
|
||||
@ -443,20 +389,25 @@ msgstr "Šią savaitę"
|
||||
msgid "Next week"
|
||||
msgstr "Kitą savaitę"
|
||||
|
||||
#: ../js/ui/contactDisplay.js:65 ../js/ui/notificationDaemon.js:444
|
||||
#: ../js/ui/status/power.js:223 ../src/shell-app.c:355
|
||||
#: ../js/ui/contactDisplay.js:65
|
||||
#: ../js/ui/notificationDaemon.js:459
|
||||
#: ../js/ui/status/power.js:223
|
||||
#: ../src/shell-app.c:353
|
||||
msgid "Unknown"
|
||||
msgstr "Nežinoma"
|
||||
|
||||
#: ../js/ui/contactDisplay.js:86 ../js/ui/userMenu.js:139
|
||||
#: ../js/ui/contactDisplay.js:86
|
||||
#: ../js/ui/userMenu.js:139
|
||||
msgid "Available"
|
||||
msgstr "Esu"
|
||||
|
||||
#: ../js/ui/contactDisplay.js:91 ../js/ui/userMenu.js:148
|
||||
#: ../js/ui/contactDisplay.js:91
|
||||
#: ../js/ui/userMenu.js:148
|
||||
msgid "Away"
|
||||
msgstr "Išėjęs"
|
||||
|
||||
#: ../js/ui/contactDisplay.js:95 ../js/ui/userMenu.js:142
|
||||
#: ../js/ui/contactDisplay.js:95
|
||||
#: ../js/ui/userMenu.js:142
|
||||
msgid "Busy"
|
||||
msgstr "Užsiėmęs (-usi)"
|
||||
|
||||
@ -468,7 +419,8 @@ msgstr "Atsijungęs"
|
||||
msgid "CONTACTS"
|
||||
msgstr "ADRESATAI"
|
||||
|
||||
#: ../js/ui/dash.js:172 ../js/ui/messageTray.js:1204
|
||||
#: ../js/ui/dash.js:174
|
||||
#: ../js/ui/messageTray.js:1206
|
||||
msgid "Remove"
|
||||
msgstr "Pašalinti"
|
||||
|
||||
@ -533,18 +485,18 @@ msgstr "PASKUTINIEJI ELEMENTAI"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:60
|
||||
#, c-format
|
||||
msgctxt "title"
|
||||
msgid "Log Out %s"
|
||||
msgstr "Atjungti %s"
|
||||
msgstr "Atsijungti %s"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:61 ../js/ui/endSessionDialog.js:75
|
||||
#: ../js/ui/endSessionDialog.js:61
|
||||
msgctxt "title"
|
||||
msgid "Log Out"
|
||||
msgstr "Atsijungti"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:62
|
||||
msgid "Click Log Out to quit these applications and log out of the system."
|
||||
msgstr ""
|
||||
"Spauskite „išeiti“, jei norite užverti šias programas ir atsijungti nuo "
|
||||
"sistemos."
|
||||
msgstr "Spauskite „išeiti“, jei norite užverti šias programas ir atsijungti nuo sistemos."
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:64
|
||||
#, c-format
|
||||
@ -566,10 +518,19 @@ msgstr[2] "Jūs būsite automatiškai atjungtas po %d sekundžių."
|
||||
msgid "Logging out of the system."
|
||||
msgstr "Atsijungiama nuo sistemos."
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:75
|
||||
msgctxt "button"
|
||||
msgid "Log Out"
|
||||
msgstr "Atsijungti"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:80
|
||||
msgctxt "title"
|
||||
msgid "Power Off"
|
||||
msgstr "Išjungti"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:81
|
||||
msgid "Click Power Off to quit these applications and power off the system."
|
||||
msgstr ""
|
||||
"Spauskite „Išjungti“, jei norite užverti šias programas ir išjungti sistemą."
|
||||
msgstr "Spauskite „Išjungti“, jei norite užverti šias programas ir išjungti sistemą."
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:83
|
||||
#, c-format
|
||||
@ -583,11 +544,25 @@ msgstr[2] "Sistema automatiškai išsijungs po %d sekundžių."
|
||||
msgid "Powering off the system."
|
||||
msgstr "Sistema išjungiama."
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:89
|
||||
#: ../js/ui/endSessionDialog.js:106
|
||||
msgctxt "button"
|
||||
msgid "Restart"
|
||||
msgstr "Įkelti iš naujo"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:91
|
||||
msgctxt "button"
|
||||
msgid "Power Off"
|
||||
msgstr "Išjungti"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:97
|
||||
msgctxt "title"
|
||||
msgid "Restart"
|
||||
msgstr "Įkelti iš naujo"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:98
|
||||
msgid "Click Restart to quit these applications and restart the system."
|
||||
msgstr ""
|
||||
"Spauskite „įkelti iš naujo“, jei norite užverti šias programas ir įkelti "
|
||||
"sistemą iš naujo."
|
||||
msgstr "Spauskite „įkelti iš naujo“, jei norite užverti šias programas ir įkelti sistemą iš naujo."
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:100
|
||||
#, c-format
|
||||
@ -601,146 +576,158 @@ msgstr[2] "Sistema bus įkelta iš naujo po %d sekundžių."
|
||||
msgid "Restarting the system."
|
||||
msgstr "Sistemos įkėlimas iš naujo"
|
||||
|
||||
#: ../js/ui/extensionSystem.js:481
|
||||
#: ../js/ui/extensionSystem.js:524
|
||||
msgid "Install"
|
||||
msgstr "Įdiegti"
|
||||
|
||||
#: ../js/ui/extensionSystem.js:485
|
||||
#: ../js/ui/extensionSystem.js:528
|
||||
#, c-format
|
||||
msgid "Download and install '%s' from extensions.gnome.org?"
|
||||
msgstr "Parsiųsti ir įdiegti „%s“ iš extensions.gnome.org?"
|
||||
|
||||
#: ../js/ui/keyboard.js:308
|
||||
#: ../js/ui/keyboard.js:325
|
||||
msgid "tray"
|
||||
msgstr "dėklas"
|
||||
|
||||
#: ../js/ui/keyboard.js:530 ../js/ui/status/power.js:211
|
||||
#: ../js/ui/keyboard.js:547
|
||||
#: ../js/ui/status/power.js:211
|
||||
msgid "Keyboard"
|
||||
msgstr "Klaviatūra"
|
||||
|
||||
#: ../js/ui/lookingGlass.js:645
|
||||
#: ../js/ui/lookingGlass.js:664
|
||||
msgid "No extensions installed"
|
||||
msgstr "Nėra įdiegtų plėtinių"
|
||||
|
||||
#: ../js/ui/lookingGlass.js:691
|
||||
#. Translators: argument is an extension UUID.
|
||||
#: ../js/ui/lookingGlass.js:719
|
||||
#, c-format
|
||||
msgid "%s has not emitted any errors."
|
||||
msgstr "%s nesukėlė jokių klaidų."
|
||||
|
||||
#: ../js/ui/lookingGlass.js:725
|
||||
msgid "Hide Errors"
|
||||
msgstr "Slėpti klaidas"
|
||||
|
||||
#: ../js/ui/lookingGlass.js:729
|
||||
#: ../js/ui/lookingGlass.js:779
|
||||
msgid "Show Errors"
|
||||
msgstr "Rodyti klaidas"
|
||||
|
||||
#: ../js/ui/lookingGlass.js:738
|
||||
msgid "Enabled"
|
||||
msgstr "Įjungta"
|
||||
|
||||
#. translators:
|
||||
#. * The device has been disabled
|
||||
#: ../js/ui/lookingGlass.js:693 ../src/gvc/gvc-mixer-control.c:1093
|
||||
#: ../js/ui/lookingGlass.js:740
|
||||
#: ../src/gvc/gvc-mixer-control.c:1093
|
||||
msgid "Disabled"
|
||||
msgstr "Išjungta"
|
||||
|
||||
#: ../js/ui/lookingGlass.js:695
|
||||
#: ../js/ui/lookingGlass.js:742
|
||||
msgid "Error"
|
||||
msgstr "Klaida"
|
||||
|
||||
#: ../js/ui/lookingGlass.js:697
|
||||
#: ../js/ui/lookingGlass.js:744
|
||||
msgid "Out of date"
|
||||
msgstr "Pasenęs"
|
||||
|
||||
#: ../js/ui/lookingGlass.js:699
|
||||
#: ../js/ui/lookingGlass.js:746
|
||||
msgid "Downloading"
|
||||
msgstr "Parsiunčiama"
|
||||
|
||||
#: ../js/ui/lookingGlass.js:720
|
||||
#: ../js/ui/lookingGlass.js:767
|
||||
msgid "View Source"
|
||||
msgstr "Žiūrėti šaltinį"
|
||||
|
||||
#: ../js/ui/lookingGlass.js:726
|
||||
#: ../js/ui/lookingGlass.js:773
|
||||
msgid "Web Page"
|
||||
msgstr "Tinklalapis"
|
||||
|
||||
#: ../js/ui/messageTray.js:1197
|
||||
#: ../js/ui/messageTray.js:1199
|
||||
msgid "Open"
|
||||
msgstr "Atverti"
|
||||
|
||||
#: ../js/ui/messageTray.js:2406
|
||||
#: ../js/ui/messageTray.js:2408
|
||||
msgid "System Information"
|
||||
msgstr "Sistemos informacija"
|
||||
|
||||
#: ../js/ui/networkAgent.js:145
|
||||
msgid "Show password"
|
||||
msgstr "Rodyti slaptažodį"
|
||||
|
||||
#: ../js/ui/networkAgent.js:160
|
||||
#: ../js/ui/networkAgent.js:143
|
||||
msgid "Connect"
|
||||
msgstr "Prisijungti"
|
||||
|
||||
#. Cisco LEAP
|
||||
#: ../js/ui/networkAgent.js:255 ../js/ui/networkAgent.js:267
|
||||
#: ../js/ui/networkAgent.js:294 ../js/ui/networkAgent.js:314
|
||||
#: ../js/ui/networkAgent.js:324
|
||||
#: ../js/ui/networkAgent.js:238
|
||||
#: ../js/ui/networkAgent.js:250
|
||||
#: ../js/ui/networkAgent.js:277
|
||||
#: ../js/ui/networkAgent.js:297
|
||||
#: ../js/ui/networkAgent.js:307
|
||||
msgid "Password: "
|
||||
msgstr "Slaptažodis: "
|
||||
|
||||
#. static WEP
|
||||
#: ../js/ui/networkAgent.js:260
|
||||
#: ../js/ui/networkAgent.js:243
|
||||
msgid "Key: "
|
||||
msgstr "Raktas: "
|
||||
|
||||
#. 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/ui/networkAgent.js:292 ../js/ui/networkAgent.js:310
|
||||
#: ../js/ui/networkAgent.js:275
|
||||
#: ../js/ui/networkAgent.js:293
|
||||
msgid "Username: "
|
||||
msgstr "Naudotojo vardas: "
|
||||
|
||||
#: ../js/ui/networkAgent.js:298
|
||||
#: ../js/ui/networkAgent.js:281
|
||||
msgid "Identity: "
|
||||
msgstr "Identitetas: "
|
||||
|
||||
#: ../js/ui/networkAgent.js:300
|
||||
#: ../js/ui/networkAgent.js:283
|
||||
msgid "Private key password: "
|
||||
msgstr "Privataus rakto slaptažodis: "
|
||||
|
||||
#: ../js/ui/networkAgent.js:312
|
||||
#: ../js/ui/networkAgent.js:295
|
||||
msgid "Service: "
|
||||
msgstr "Tarnyba: "
|
||||
|
||||
#: ../js/ui/networkAgent.js:341
|
||||
#: ../js/ui/networkAgent.js:324
|
||||
msgid "Authentication required by wireless network"
|
||||
msgstr "Belaidžiam tinklui reikia patvirtinti tapatybę"
|
||||
|
||||
#: ../js/ui/networkAgent.js:342
|
||||
#: ../js/ui/networkAgent.js:325
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Passwords or encryption keys are required to access the wireless network '%"
|
||||
"s'."
|
||||
msgstr ""
|
||||
"Slaptažodžiai arba šifravimo raktai yra būtini priėjimui prie belaidžio "
|
||||
"tinklo „%s“."
|
||||
msgid "Passwords or encryption keys are required to access the wireless network '%s'."
|
||||
msgstr "Slaptažodžiai arba šifravimo raktai yra būtini priėjimui prie belaidžio tinklo „%s“."
|
||||
|
||||
#: ../js/ui/networkAgent.js:346
|
||||
#: ../js/ui/networkAgent.js:329
|
||||
msgid "Wired 802.1X authentication"
|
||||
msgstr "Laidinis 802.1X tapatybės patvirtinimas"
|
||||
|
||||
#: ../js/ui/networkAgent.js:348
|
||||
#: ../js/ui/networkAgent.js:331
|
||||
msgid "Network name: "
|
||||
msgstr "Tinklo vardas: "
|
||||
|
||||
#: ../js/ui/networkAgent.js:353
|
||||
#: ../js/ui/networkAgent.js:336
|
||||
msgid "DSL authentication"
|
||||
msgstr "DSL tapatybės patvirtinimas"
|
||||
|
||||
#: ../js/ui/networkAgent.js:360
|
||||
#: ../js/ui/networkAgent.js:343
|
||||
msgid "PIN code required"
|
||||
msgstr "Būtinas PIN kodas"
|
||||
|
||||
#: ../js/ui/networkAgent.js:361
|
||||
#: ../js/ui/networkAgent.js:344
|
||||
msgid "PIN code is needed for the mobile broadband device"
|
||||
msgstr "Būtinas PIN kodas mobiliam plačiajuosčiam įrenginiui"
|
||||
|
||||
#: ../js/ui/networkAgent.js:362
|
||||
#: ../js/ui/networkAgent.js:345
|
||||
msgid "PIN: "
|
||||
msgstr "PIN: "
|
||||
|
||||
#: ../js/ui/networkAgent.js:368
|
||||
#: ../js/ui/networkAgent.js:351
|
||||
msgid "Mobile broadband network password"
|
||||
msgstr "Mobilaus plačiajuosčio tinklo slaptažodis"
|
||||
|
||||
#: ../js/ui/networkAgent.js:369
|
||||
#: ../js/ui/networkAgent.js:352
|
||||
#, c-format
|
||||
msgid "A password is required to connect to '%s'."
|
||||
msgstr "Būtinas slaptažodis norint prisijungti prie „%s“"
|
||||
@ -796,15 +783,15 @@ msgstr "Prisijungti prie..."
|
||||
msgid "PLACES & DEVICES"
|
||||
msgstr "VIETOS ir ĮRENGINIAI"
|
||||
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:72
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:73
|
||||
msgid "Authentication Required"
|
||||
msgstr "Reikia patvirtinti tapatybę"
|
||||
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:106
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:107
|
||||
msgid "Administrator"
|
||||
msgstr "Administratorius"
|
||||
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:175
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:177
|
||||
msgid "Authenticate"
|
||||
msgstr "Patvirtinti tapatybę"
|
||||
|
||||
@ -812,11 +799,11 @@ msgstr "Patvirtinti tapatybę"
|
||||
#. * requested authentication was not gained; this can happen
|
||||
#. * because of an authentication error (like invalid password),
|
||||
#. * for instance.
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:256
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:258
|
||||
msgid "Sorry, that didn't work. Please try again."
|
||||
msgstr "Atsiprašome, tai nesuveikė. Pabandykite dar kartą."
|
||||
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:268
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:270
|
||||
msgid "Password:"
|
||||
msgstr "Slaptažodis:"
|
||||
|
||||
@ -829,7 +816,7 @@ msgstr "Slaptažodis:"
|
||||
msgid "toggle-switch-us"
|
||||
msgstr "toggle-switch-us"
|
||||
|
||||
#: ../js/ui/runDialog.js:208
|
||||
#: ../js/ui/runDialog.js:209
|
||||
msgid "Please enter a command:"
|
||||
msgstr "Įveskite komandą:"
|
||||
|
||||
@ -841,6 +828,22 @@ msgstr "Ieškoma..."
|
||||
msgid "No matching results."
|
||||
msgstr "Nerasta atitikmenų."
|
||||
|
||||
#: ../js/ui/shellEntry.js:30
|
||||
msgid "Copy"
|
||||
msgstr "Kopijuoti"
|
||||
|
||||
#: ../js/ui/shellEntry.js:35
|
||||
msgid "Paste"
|
||||
msgstr "Įdėti"
|
||||
|
||||
#: ../js/ui/shellEntry.js:81
|
||||
msgid "Show Text"
|
||||
msgstr "Rodyti tekstą"
|
||||
|
||||
#: ../js/ui/shellEntry.js:83
|
||||
msgid "Hide Text"
|
||||
msgstr "Slėpti tekstą"
|
||||
|
||||
#: ../js/ui/shellMountOperation.js:285
|
||||
msgid "Wrong password, please try again"
|
||||
msgstr "Neteisingas slaptažodis, badykite dar kartą"
|
||||
@ -888,9 +891,12 @@ msgstr "Didelis kontrastas"
|
||||
msgid "Large Text"
|
||||
msgstr "Didelis tekstas"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:39 ../js/ui/status/bluetooth.js:261
|
||||
#: ../js/ui/status/bluetooth.js:347 ../js/ui/status/bluetooth.js:381
|
||||
#: ../js/ui/status/bluetooth.js:421 ../js/ui/status/bluetooth.js:454
|
||||
#: ../js/ui/status/bluetooth.js:39
|
||||
#: ../js/ui/status/bluetooth.js:261
|
||||
#: ../js/ui/status/bluetooth.js:347
|
||||
#: ../js/ui/status/bluetooth.js:381
|
||||
#: ../js/ui/status/bluetooth.js:421
|
||||
#: ../js/ui/status/bluetooth.js:454
|
||||
msgid "Bluetooth"
|
||||
msgstr "Bluetooth"
|
||||
|
||||
@ -919,11 +925,13 @@ msgstr "įrenginys išjungtas"
|
||||
msgid "Connection"
|
||||
msgstr "Ryšys"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:217 ../js/ui/status/network.js:486
|
||||
#: ../js/ui/status/bluetooth.js:217
|
||||
#: ../js/ui/status/network.js:486
|
||||
msgid "disconnecting..."
|
||||
msgstr "atsijungiama..."
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:230 ../js/ui/status/network.js:492
|
||||
#: ../js/ui/status/bluetooth.js:230
|
||||
#: ../js/ui/status/network.js:492
|
||||
msgid "connecting..."
|
||||
msgstr "jungiamasi..."
|
||||
|
||||
@ -952,7 +960,8 @@ msgstr "Klaviatūros nustatymai"
|
||||
msgid "Mouse Settings"
|
||||
msgstr "Pelės nustatymai"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:279 ../js/ui/status/volume.js:62
|
||||
#: ../js/ui/status/bluetooth.js:279
|
||||
#: ../js/ui/status/volume.js:62
|
||||
msgid "Sound Settings"
|
||||
msgstr "Garso nustatymai"
|
||||
|
||||
@ -974,7 +983,8 @@ msgstr "Visada leisti prieigą"
|
||||
msgid "Grant this time only"
|
||||
msgstr "Leisti tik šį kartą"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:392 ../js/ui/telepathyClient.js:1204
|
||||
#: ../js/ui/status/bluetooth.js:392
|
||||
#: ../js/ui/telepathyClient.js:1204
|
||||
msgid "Reject"
|
||||
msgstr "Atmesti"
|
||||
|
||||
@ -983,7 +993,8 @@ msgstr "Atmesti"
|
||||
msgid "Pairing confirmation for %s"
|
||||
msgstr "Suporavimo patvirtinimas įrenginiui %s"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:428 ../js/ui/status/bluetooth.js:462
|
||||
#: ../js/ui/status/bluetooth.js:428
|
||||
#: ../js/ui/status/bluetooth.js:462
|
||||
#, c-format
|
||||
msgid "Device %s wants to pair with this computer"
|
||||
msgstr "Įrenginys %s nori susiporuoti su šiuo kompiuteriu"
|
||||
@ -1063,13 +1074,15 @@ msgstr "nepasiekiamas"
|
||||
msgid "connection failed"
|
||||
msgstr "nepavyko prisijungti"
|
||||
|
||||
#: ../js/ui/status/network.js:575 ../js/ui/status/network.js:1523
|
||||
#: ../js/ui/status/network.js:575
|
||||
#: ../js/ui/status/network.js:1523
|
||||
msgid "More..."
|
||||
msgstr "Daugiau..."
|
||||
|
||||
#. TRANSLATORS: this is the indication that a connection for another logged in user is active,
|
||||
#. and we cannot access its settings (including the name)
|
||||
#: ../js/ui/status/network.js:611 ../js/ui/status/network.js:1458
|
||||
#: ../js/ui/status/network.js:611
|
||||
#: ../js/ui/status/network.js:1458
|
||||
msgid "Connected (private)"
|
||||
msgstr "Prisijungta (privatus)"
|
||||
|
||||
@ -1086,7 +1099,8 @@ msgid "Auto dial-up"
|
||||
msgstr "Automatinis telefoninis"
|
||||
|
||||
#. TRANSLATORS: this the automatic wireless connection name (including the network name)
|
||||
#: ../js/ui/status/network.js:878 ../js/ui/status/network.js:1470
|
||||
#: ../js/ui/status/network.js:878
|
||||
#: ../js/ui/status/network.js:1470
|
||||
#, c-format
|
||||
msgid "Auto %s"
|
||||
msgstr "Automatinis %s"
|
||||
@ -1185,7 +1199,8 @@ msgstr[0] "liko %d minutė"
|
||||
msgstr[1] "liko %d minutės"
|
||||
msgstr[2] "liko %d minučių"
|
||||
|
||||
#: ../js/ui/status/power.js:121 ../js/ui/status/power.js:194
|
||||
#: ../js/ui/status/power.js:121
|
||||
#: ../js/ui/status/power.js:194
|
||||
#, c-format
|
||||
msgctxt "percent of battery remaining"
|
||||
msgid "%d%%"
|
||||
@ -1328,12 +1343,14 @@ msgstr "Kvietimas į %s"
|
||||
msgid "%s is inviting you to join %s"
|
||||
msgstr "%s jus kviečia prisijungti prie %s"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1158 ../js/ui/telepathyClient.js:1248
|
||||
#: ../js/ui/telepathyClient.js:1158
|
||||
#: ../js/ui/telepathyClient.js:1248
|
||||
#: ../js/ui/telepathyClient.js:1352
|
||||
msgid "Decline"
|
||||
msgstr "Atmesti"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1159 ../js/ui/telepathyClient.js:1249
|
||||
#: ../js/ui/telepathyClient.js:1159
|
||||
#: ../js/ui/telepathyClient.js:1249
|
||||
#: ../js/ui/telepathyClient.js:1353
|
||||
msgid "Accept"
|
||||
msgstr "Priimti"
|
||||
@ -1440,8 +1457,7 @@ msgid "This resource is already connected to the server"
|
||||
msgstr "Resursas jau prijungtas prie serverio"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1449
|
||||
msgid ""
|
||||
"Connection has been replaced by a new connection using the same resource"
|
||||
msgid "Connection has been replaced by a new connection using the same resource"
|
||||
msgstr "Ryšys pakeistas nauju ryšiu naudojant tą patį resursą"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1451
|
||||
@ -1457,19 +1473,12 @@ msgid "Certificate has been revoked"
|
||||
msgstr "Liudijimas atšauktas"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1457
|
||||
msgid ""
|
||||
"Certificate uses an insecure cipher algorithm or is cryptographically weak"
|
||||
msgstr ""
|
||||
"Liudijimas naudoja nesaugų šifravimo algoritmą arba yra kriptografiškai "
|
||||
"silpnas"
|
||||
msgid "Certificate uses an insecure cipher algorithm or is cryptographically weak"
|
||||
msgstr "Liudijimas naudoja nesaugų šifravimo algoritmą arba yra kriptografiškai silpnas"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1459
|
||||
msgid ""
|
||||
"The length of the server certificate, or the depth of the server certificate "
|
||||
"chain, exceed the limits imposed by the cryptography library"
|
||||
msgstr ""
|
||||
"Serverio liudijimo ilgis arba liudijimų grandinės gylis viršija "
|
||||
"kriptografijos bibliotekos apribojimus"
|
||||
msgid "The length of the server certificate, or the depth of the server certificate chain, exceed the limits imposed by the cryptography library"
|
||||
msgstr "Serverio liudijimo ilgis arba liudijimų grandinės gylis viršija kriptografijos bibliotekos apribojimus"
|
||||
|
||||
#. translators: argument is the account name, like
|
||||
#. * name@jabber.org for example.
|
||||
@ -1502,56 +1511,54 @@ msgstr "Neužimtas"
|
||||
msgid "Unavailable"
|
||||
msgstr "Nepasiekiamas"
|
||||
|
||||
#: ../js/ui/userMenu.js:547 ../js/ui/userMenu.js:551 ../js/ui/userMenu.js:621
|
||||
#: ../js/ui/userMenu.js:571
|
||||
#: ../js/ui/userMenu.js:575
|
||||
#: ../js/ui/userMenu.js:645
|
||||
msgid "Power Off..."
|
||||
msgstr "Išjungti..."
|
||||
|
||||
#: ../js/ui/userMenu.js:583
|
||||
#: ../js/ui/userMenu.js:607
|
||||
msgid "Notifications"
|
||||
msgstr "Pranešimai"
|
||||
|
||||
#: ../js/ui/userMenu.js:591
|
||||
#: ../js/ui/userMenu.js:615
|
||||
msgid "Online Accounts"
|
||||
msgstr "Tinklo paskyros"
|
||||
|
||||
#: ../js/ui/userMenu.js:595
|
||||
#: ../js/ui/userMenu.js:619
|
||||
msgid "System Settings"
|
||||
msgstr "Sistemos nustatymai"
|
||||
|
||||
#: ../js/ui/userMenu.js:602
|
||||
#: ../js/ui/userMenu.js:626
|
||||
msgid "Lock Screen"
|
||||
msgstr "Užrakinti ekraną"
|
||||
|
||||
#: ../js/ui/userMenu.js:607
|
||||
#: ../js/ui/userMenu.js:631
|
||||
msgid "Switch User"
|
||||
msgstr "Keisti naudotoją"
|
||||
|
||||
#: ../js/ui/userMenu.js:612
|
||||
#: ../js/ui/userMenu.js:636
|
||||
msgid "Log Out..."
|
||||
msgstr "Atsijungti ..."
|
||||
|
||||
#: ../js/ui/userMenu.js:640
|
||||
#: ../js/ui/userMenu.js:664
|
||||
msgid "Your chat status will be set to busy"
|
||||
msgstr "Jūsų pokalbio būsena bus nustatyta į užimtą"
|
||||
|
||||
#: ../js/ui/userMenu.js:641
|
||||
msgid ""
|
||||
"Notifications are now disabled, including chat messages. Your online status "
|
||||
"has been adjusted to let others know that you might not see their messages."
|
||||
msgstr ""
|
||||
"Pranešimai šiuo metu yra išjungti, įskaitant pokalbių pranešimus. Jūsų "
|
||||
"būsena internete atitinkamai pakoreguota, kad kiti galėtų žinoti, jog jūs "
|
||||
"galite nepamatyti jų pranešimų."
|
||||
#: ../js/ui/userMenu.js:665
|
||||
msgid "Notifications are now disabled, including chat messages. Your online status has been adjusted to let others know that you might not see their messages."
|
||||
msgstr "Pranešimai šiuo metu yra išjungti, įskaitant pokalbių pranešimus. Jūsų būsena internete atitinkamai pakoreguota, kad kiti galėtų žinoti, jog jūs galite nepamatyti jų pranešimų."
|
||||
|
||||
#. Translators: this is the text displayed
|
||||
#. in the search entry when no search is
|
||||
#. active; it should not exceed ~30
|
||||
#. characters.
|
||||
#: ../js/ui/viewSelector.js:120
|
||||
#: ../js/ui/viewSelector.js:121
|
||||
msgid "Type to search..."
|
||||
msgstr "Ieškoti..."
|
||||
|
||||
#: ../js/ui/viewSelector.js:140 ../src/shell-util.c:261
|
||||
#: ../js/ui/viewSelector.js:142
|
||||
#: ../src/shell-util.c:244
|
||||
msgid "Search"
|
||||
msgstr "Ieškoti"
|
||||
|
||||
@ -1592,7 +1599,7 @@ msgstr "Atspausdinti versiją"
|
||||
msgid "Mode used by GDM for login screen"
|
||||
msgstr "Veiksena, naudojama GDM prisijungimo ekrane"
|
||||
|
||||
#: ../src/shell-app.c:581
|
||||
#: ../src/shell-app.c:579
|
||||
#, c-format
|
||||
msgid "Failed to launch '%s'"
|
||||
msgstr "Nepavyko paleisti „%s“"
|
||||
@ -1609,13 +1616,15 @@ msgstr "Numatyta"
|
||||
msgid "Authentication dialog was dismissed by the user"
|
||||
msgstr "Naudotojas užvėrė tapatybės patvirtinimo dialogą"
|
||||
|
||||
#: ../src/shell-util.c:100
|
||||
msgid "Home Folder"
|
||||
msgstr "Namų aplankas"
|
||||
#. Translators: this is the same string as the one found in
|
||||
#. * nautilus
|
||||
#: ../src/shell-util.c:89
|
||||
msgid "Home"
|
||||
msgstr "Namai"
|
||||
|
||||
#. Translators: this is the same string as the one found in
|
||||
#. * nautilus
|
||||
#: ../src/shell-util.c:115
|
||||
#: ../src/shell-util.c:98
|
||||
msgid "File System"
|
||||
msgstr "Failų sistema"
|
||||
|
||||
@ -1624,10 +1633,8 @@ msgstr "Failų sistema"
|
||||
#. * example, "Trash: some-directory". It means that the
|
||||
#. * directory called "some-directory" is in the trash.
|
||||
#.
|
||||
#: ../src/shell-util.c:311
|
||||
#: ../src/shell-util.c:294
|
||||
#, c-format
|
||||
msgid "%1$s: %2$s"
|
||||
msgstr "%1$s: %2$s"
|
||||
|
||||
#~ msgid "%s has finished starting"
|
||||
#~ msgstr "%s buvo paleista"
|
||||
|
364
po/sl.po
364
po/sl.po
@ -8,14 +8,14 @@ msgid ""
|
||||
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: 2011-10-04 21:33+0000\n"
|
||||
"PO-Revision-Date: 2011-10-05 09:26+0100\n"
|
||||
"POT-Creation-Date: 2011-10-25 17:15+0000\n"
|
||||
"PO-Revision-Date: 2011-10-25 21:16+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"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: Slovenian\n"
|
||||
"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n%100==4 ? 3 : 0);\n"
|
||||
"X-Poedit-Language: Slovenian\n"
|
||||
"X-Poedit-Country: SLOVENIA\n"
|
||||
@ -130,60 +130,55 @@ msgstr "Katera tipkovnica naj bo uporabljena?"
|
||||
msgid "disabled OpenSearch providers"
|
||||
msgstr "ponudniki OpenSearch so bili onemogočeni"
|
||||
|
||||
#: ../js/gdm/loginDialog.js:617
|
||||
#: ../js/gdm/loginDialog.js:633
|
||||
msgid "Session..."
|
||||
msgstr "Seja ..."
|
||||
|
||||
#: ../js/gdm/loginDialog.js:785
|
||||
#: ../js/gdm/loginDialog.js:804
|
||||
msgctxt "title"
|
||||
msgid "Sign In"
|
||||
msgstr "Prijava"
|
||||
|
||||
#. translators: this message is shown below the password entry field
|
||||
#. to indicate the user can swipe their finger instead
|
||||
#: ../js/gdm/loginDialog.js:830
|
||||
#: ../js/gdm/loginDialog.js:849
|
||||
msgid "(or swipe finger)"
|
||||
msgstr "(ali pa povlecite prst)"
|
||||
|
||||
#: ../js/gdm/loginDialog.js:848
|
||||
#: ../js/gdm/loginDialog.js:867
|
||||
msgid "Not listed?"
|
||||
msgstr "Ali je ni na seznamu?"
|
||||
|
||||
#: ../js/gdm/loginDialog.js:1004
|
||||
#: ../js/gdm/loginDialog.js:1035
|
||||
#: ../js/ui/endSessionDialog.js:426
|
||||
#: ../js/ui/extensionSystem.js:477
|
||||
#: ../js/ui/networkAgent.js:165
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:171
|
||||
#: ../js/ui/extensionSystem.js:520
|
||||
#: ../js/ui/networkAgent.js:148
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:173
|
||||
#: ../js/ui/status/bluetooth.js:480
|
||||
msgid "Cancel"
|
||||
msgstr "Prekliči"
|
||||
|
||||
#: ../js/gdm/loginDialog.js:1009
|
||||
#: ../js/gdm/loginDialog.js:1040
|
||||
msgctxt "button"
|
||||
msgid "Sign In"
|
||||
msgstr "Prijava"
|
||||
|
||||
#: ../js/gdm/loginDialog.js:1358
|
||||
#: ../js/gdm/loginDialog.js:1392
|
||||
msgid "Login Window"
|
||||
msgstr "Prijavno okno"
|
||||
|
||||
#: ../js/gdm/powerMenu.js:116
|
||||
#: ../js/ui/userMenu.js:514
|
||||
#: ../js/ui/userMenu.js:516
|
||||
#: ../js/ui/userMenu.js:585
|
||||
#: ../js/ui/userMenu.js:573
|
||||
#: ../js/ui/userMenu.js:575
|
||||
#: ../js/ui/userMenu.js:644
|
||||
msgid "Suspend"
|
||||
msgstr "Zaustavi"
|
||||
|
||||
#: ../js/gdm/powerMenu.js:121
|
||||
#: ../js/ui/endSessionDialog.js:89
|
||||
#: ../js/ui/endSessionDialog.js:97
|
||||
#: ../js/ui/endSessionDialog.js:106
|
||||
msgid "Restart"
|
||||
msgstr "Zaženi znova"
|
||||
|
||||
#: ../js/gdm/powerMenu.js:126
|
||||
#: ../js/ui/endSessionDialog.js:80
|
||||
#: ../js/ui/endSessionDialog.js:91
|
||||
msgid "Power Off"
|
||||
msgstr "Izklop"
|
||||
|
||||
@ -396,38 +391,38 @@ msgstr "Ta teden"
|
||||
msgid "Next week"
|
||||
msgstr "Naslednji teden"
|
||||
|
||||
#: ../js/ui/contactDisplay.js:59
|
||||
#: ../js/ui/notificationDaemon.js:444
|
||||
#: ../js/ui/contactDisplay.js:65
|
||||
#: ../js/ui/notificationDaemon.js:459
|
||||
#: ../js/ui/status/power.js:223
|
||||
#: ../src/shell-app.c:355
|
||||
#: ../src/shell-app.c:350
|
||||
msgid "Unknown"
|
||||
msgstr "Neznano"
|
||||
|
||||
#: ../js/ui/contactDisplay.js:80
|
||||
#: ../js/ui/contactDisplay.js:86
|
||||
#: ../js/ui/userMenu.js:139
|
||||
msgid "Available"
|
||||
msgstr "Na voljo"
|
||||
|
||||
#: ../js/ui/contactDisplay.js:85
|
||||
#: ../js/ui/contactDisplay.js:91
|
||||
#: ../js/ui/userMenu.js:148
|
||||
msgid "Away"
|
||||
msgstr "Odsotno"
|
||||
|
||||
#: ../js/ui/contactDisplay.js:89
|
||||
#: ../js/ui/contactDisplay.js:95
|
||||
#: ../js/ui/userMenu.js:142
|
||||
msgid "Busy"
|
||||
msgstr "Zaposleno"
|
||||
|
||||
#: ../js/ui/contactDisplay.js:93
|
||||
#: ../js/ui/contactDisplay.js:99
|
||||
msgid "Offline"
|
||||
msgstr "Nepovezano"
|
||||
|
||||
#: ../js/ui/contactDisplay.js:140
|
||||
#: ../js/ui/contactDisplay.js:146
|
||||
msgid "CONTACTS"
|
||||
msgstr "Stiki"
|
||||
|
||||
#: ../js/ui/dash.js:172
|
||||
#: ../js/ui/messageTray.js:1204
|
||||
#: ../js/ui/dash.js:174
|
||||
#: ../js/ui/messageTray.js:1206
|
||||
msgid "Remove"
|
||||
msgstr "Odstrani"
|
||||
|
||||
@ -492,11 +487,12 @@ msgstr "Nedavni predmeti"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:60
|
||||
#, c-format
|
||||
msgctxt "title"
|
||||
msgid "Log Out %s"
|
||||
msgstr "Odjava %s"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:61
|
||||
#: ../js/ui/endSessionDialog.js:75
|
||||
msgctxt "title"
|
||||
msgid "Log Out"
|
||||
msgstr "Odjava"
|
||||
|
||||
@ -526,6 +522,16 @@ msgstr[3] "Uporabnik bo samodejno odjavljen čez %d sekunde."
|
||||
msgid "Logging out of the system."
|
||||
msgstr "Odjavljanje iz sistema."
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:75
|
||||
msgctxt "button"
|
||||
msgid "Log Out"
|
||||
msgstr "Odjava"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:80
|
||||
msgctxt "title"
|
||||
msgid "Power Off"
|
||||
msgstr "Izklop"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:81
|
||||
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."
|
||||
@ -543,6 +549,22 @@ msgstr[3] "Sistem se bo samodejno izklopil čez %d sekunde."
|
||||
msgid "Powering off the system."
|
||||
msgstr "Izklapljanje sistema"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:89
|
||||
#: ../js/ui/endSessionDialog.js:106
|
||||
msgctxt "button"
|
||||
msgid "Restart"
|
||||
msgstr "Ponoven zagon"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:91
|
||||
msgctxt "button"
|
||||
msgid "Power Off"
|
||||
msgstr "Izklop"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:97
|
||||
msgctxt "title"
|
||||
msgid "Restart"
|
||||
msgstr "Ponoven zagon"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:98
|
||||
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. "
|
||||
@ -560,147 +582,158 @@ msgstr[3] "Sistem se bo samodejno ponovno zagnal čez %d sekunde."
|
||||
msgid "Restarting the system."
|
||||
msgstr "Ponoven zagon sistema."
|
||||
|
||||
#: ../js/ui/extensionSystem.js:481
|
||||
#: ../js/ui/extensionSystem.js:524
|
||||
msgid "Install"
|
||||
msgstr "Namesti"
|
||||
|
||||
#: ../js/ui/extensionSystem.js:485
|
||||
#: ../js/ui/extensionSystem.js:528
|
||||
#, c-format
|
||||
msgid "Download and install '%s' from extensions.gnome.org?"
|
||||
msgstr "Ali naj se razširitev '%s' namesti preko povezave z extensions.gnome.org?"
|
||||
|
||||
#: ../js/ui/keyboard.js:308
|
||||
#: ../js/ui/keyboard.js:325
|
||||
msgid "tray"
|
||||
msgstr "sistemska vrstica"
|
||||
|
||||
#: ../js/ui/keyboard.js:530
|
||||
#: ../js/ui/keyboard.js:547
|
||||
#: ../js/ui/status/power.js:211
|
||||
msgid "Keyboard"
|
||||
msgstr "Tipkovnica"
|
||||
|
||||
#: ../js/ui/lookingGlass.js:645
|
||||
#: ../js/ui/lookingGlass.js:664
|
||||
msgid "No extensions installed"
|
||||
msgstr "Ni nameščenih razširitev"
|
||||
|
||||
#: ../js/ui/lookingGlass.js:691
|
||||
#. Translators: argument is an extension UUID.
|
||||
#: ../js/ui/lookingGlass.js:719
|
||||
#, c-format
|
||||
msgid "%s has not emitted any errors."
|
||||
msgstr "%s ni javil napak."
|
||||
|
||||
#: ../js/ui/lookingGlass.js:725
|
||||
msgid "Hide Errors"
|
||||
msgstr "Skrij napake"
|
||||
|
||||
#: ../js/ui/lookingGlass.js:729
|
||||
#: ../js/ui/lookingGlass.js:779
|
||||
msgid "Show Errors"
|
||||
msgstr "Pokaži napake"
|
||||
|
||||
#: ../js/ui/lookingGlass.js:738
|
||||
msgid "Enabled"
|
||||
msgstr "Omogočeno"
|
||||
|
||||
#. translators:
|
||||
#. * The device has been disabled
|
||||
#: ../js/ui/lookingGlass.js:693
|
||||
#: ../js/ui/lookingGlass.js:740
|
||||
#: ../src/gvc/gvc-mixer-control.c:1093
|
||||
msgid "Disabled"
|
||||
msgstr "Onemogočeno"
|
||||
|
||||
#: ../js/ui/lookingGlass.js:695
|
||||
#: ../js/ui/lookingGlass.js:742
|
||||
msgid "Error"
|
||||
msgstr "Napaka"
|
||||
|
||||
#: ../js/ui/lookingGlass.js:697
|
||||
#: ../js/ui/lookingGlass.js:744
|
||||
msgid "Out of date"
|
||||
msgstr "Zastarelo"
|
||||
|
||||
#: ../js/ui/lookingGlass.js:699
|
||||
#: ../js/ui/lookingGlass.js:746
|
||||
msgid "Downloading"
|
||||
msgstr "Prejemanje"
|
||||
|
||||
#: ../js/ui/lookingGlass.js:720
|
||||
#: ../js/ui/lookingGlass.js:767
|
||||
msgid "View Source"
|
||||
msgstr "Poglej vir"
|
||||
|
||||
#: ../js/ui/lookingGlass.js:726
|
||||
#: ../js/ui/lookingGlass.js:773
|
||||
msgid "Web Page"
|
||||
msgstr "Spletna stran"
|
||||
|
||||
#: ../js/ui/messageTray.js:1197
|
||||
#: ../js/ui/messageTray.js:1199
|
||||
msgid "Open"
|
||||
msgstr "Odpri"
|
||||
|
||||
#: ../js/ui/messageTray.js:2406
|
||||
#: ../js/ui/messageTray.js:2408
|
||||
msgid "System Information"
|
||||
msgstr "Podrobnosti sistema"
|
||||
|
||||
#: ../js/ui/networkAgent.js:145
|
||||
msgid "Show password"
|
||||
msgstr "Pokaži geslo"
|
||||
|
||||
#: ../js/ui/networkAgent.js:160
|
||||
#: ../js/ui/networkAgent.js:143
|
||||
msgid "Connect"
|
||||
msgstr "Poveži"
|
||||
|
||||
#. Cisco LEAP
|
||||
#: ../js/ui/networkAgent.js:255
|
||||
#: ../js/ui/networkAgent.js:267
|
||||
#: ../js/ui/networkAgent.js:294
|
||||
#: ../js/ui/networkAgent.js:314
|
||||
#: ../js/ui/networkAgent.js:324
|
||||
#: ../js/ui/networkAgent.js:238
|
||||
#: ../js/ui/networkAgent.js:250
|
||||
#: ../js/ui/networkAgent.js:277
|
||||
#: ../js/ui/networkAgent.js:297
|
||||
#: ../js/ui/networkAgent.js:307
|
||||
msgid "Password: "
|
||||
msgstr "Geslo:"
|
||||
|
||||
#. static WEP
|
||||
#: ../js/ui/networkAgent.js:260
|
||||
#: ../js/ui/networkAgent.js:243
|
||||
msgid "Key: "
|
||||
msgstr "Ključ:"
|
||||
|
||||
#. 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/ui/networkAgent.js:292
|
||||
#: ../js/ui/networkAgent.js:310
|
||||
#: ../js/ui/networkAgent.js:275
|
||||
#: ../js/ui/networkAgent.js:293
|
||||
msgid "Username: "
|
||||
msgstr "Uporabniško ime: "
|
||||
|
||||
#: ../js/ui/networkAgent.js:298
|
||||
#: ../js/ui/networkAgent.js:281
|
||||
msgid "Identity: "
|
||||
msgstr "_Istovetnost:"
|
||||
|
||||
#: ../js/ui/networkAgent.js:300
|
||||
#: ../js/ui/networkAgent.js:283
|
||||
msgid "Private key password: "
|
||||
msgstr "Geslo zasebnega ključa:"
|
||||
|
||||
#: ../js/ui/networkAgent.js:312
|
||||
#: ../js/ui/networkAgent.js:295
|
||||
msgid "Service: "
|
||||
msgstr "Storitev:"
|
||||
|
||||
#: ../js/ui/networkAgent.js:341
|
||||
#: ../js/ui/networkAgent.js:324
|
||||
msgid "Authentication required by wireless network"
|
||||
msgstr "Zahtevana overitev za brezžično omrežje"
|
||||
|
||||
#: ../js/ui/networkAgent.js:342
|
||||
#: ../js/ui/networkAgent.js:325
|
||||
#, c-format
|
||||
msgid "Passwords or encryption keys are required to access the wireless network '%s'."
|
||||
msgstr "Za povezavo v brezžično omrežje '%s' je zahtevana overitev ali nastavitev šifrirnega ključa."
|
||||
|
||||
#: ../js/ui/networkAgent.js:346
|
||||
#: ../js/ui/networkAgent.js:329
|
||||
msgid "Wired 802.1X authentication"
|
||||
msgstr "Žična overitev 802.1X"
|
||||
|
||||
#: ../js/ui/networkAgent.js:348
|
||||
#: ../js/ui/networkAgent.js:331
|
||||
msgid "Network name: "
|
||||
msgstr "Ime omrežja:"
|
||||
|
||||
#: ../js/ui/networkAgent.js:353
|
||||
#: ../js/ui/networkAgent.js:336
|
||||
msgid "DSL authentication"
|
||||
msgstr "DSL overitev"
|
||||
|
||||
#: ../js/ui/networkAgent.js:360
|
||||
#: ../js/ui/networkAgent.js:343
|
||||
msgid "PIN code required"
|
||||
msgstr "Zahtevana koda PIN"
|
||||
|
||||
#: ../js/ui/networkAgent.js:361
|
||||
#: ../js/ui/networkAgent.js:344
|
||||
msgid "PIN code is needed for the mobile broadband device"
|
||||
msgstr "Za napravo mobilnega širokopasovnega dostopa je zahtevana koda PIN."
|
||||
|
||||
#: ../js/ui/networkAgent.js:362
|
||||
#: ../js/ui/networkAgent.js:345
|
||||
msgid "PIN: "
|
||||
msgstr "PIN: "
|
||||
|
||||
#: ../js/ui/networkAgent.js:368
|
||||
#: ../js/ui/networkAgent.js:351
|
||||
msgid "Mobile broadband network password"
|
||||
msgstr "Geslo mobilnega širokopasovnega dostopa"
|
||||
|
||||
#: ../js/ui/networkAgent.js:369
|
||||
#: ../js/ui/networkAgent.js:352
|
||||
#, c-format
|
||||
msgid "A password is required to connect to '%s'."
|
||||
msgstr "Za povezavo z omrežjem '%s' je zahtevano geslo."
|
||||
@ -756,15 +789,15 @@ msgstr "Povezava z ..."
|
||||
msgid "PLACES & DEVICES"
|
||||
msgstr "Mesta in naprave"
|
||||
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:72
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:73
|
||||
msgid "Authentication Required"
|
||||
msgstr "Zahtevana je overitev"
|
||||
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:106
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:107
|
||||
msgid "Administrator"
|
||||
msgstr "Skrbnik"
|
||||
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:175
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:177
|
||||
msgid "Authenticate"
|
||||
msgstr "Overi"
|
||||
|
||||
@ -772,11 +805,11 @@ msgstr "Overi"
|
||||
#. * requested authentication was not gained; this can happen
|
||||
#. * because of an authentication error (like invalid password),
|
||||
#. * for instance.
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:256
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:258
|
||||
msgid "Sorry, that didn't work. Please try again."
|
||||
msgstr "Dejanje je spodletelo. Poskusite znova."
|
||||
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:268
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:270
|
||||
msgid "Password:"
|
||||
msgstr "Geslo:"
|
||||
|
||||
@ -789,7 +822,7 @@ msgstr "Geslo:"
|
||||
msgid "toggle-switch-us"
|
||||
msgstr "toggle-switch-intl"
|
||||
|
||||
#: ../js/ui/runDialog.js:208
|
||||
#: ../js/ui/runDialog.js:209
|
||||
msgid "Please enter a command:"
|
||||
msgstr "Vnos ukaza:"
|
||||
|
||||
@ -801,6 +834,22 @@ msgstr "Iskanje ..."
|
||||
msgid "No matching results."
|
||||
msgstr "Ni zadetkov iskanja"
|
||||
|
||||
#: ../js/ui/shellEntry.js:30
|
||||
msgid "Copy"
|
||||
msgstr "Kopiraj"
|
||||
|
||||
#: ../js/ui/shellEntry.js:35
|
||||
msgid "Paste"
|
||||
msgstr "Prilepi"
|
||||
|
||||
#: ../js/ui/shellEntry.js:81
|
||||
msgid "Show Text"
|
||||
msgstr "Pokaži besedilo"
|
||||
|
||||
#: ../js/ui/shellEntry.js:83
|
||||
msgid "Hide Text"
|
||||
msgstr "Skrij besedilo"
|
||||
|
||||
#: ../js/ui/shellMountOperation.js:285
|
||||
msgid "Wrong password, please try again"
|
||||
msgstr "Napačno geslo; poskusite znova."
|
||||
@ -941,7 +990,7 @@ msgid "Grant this time only"
|
||||
msgstr "Odobri le tokrat"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:392
|
||||
#: ../js/ui/telepathyClient.js:1200
|
||||
#: ../js/ui/telepathyClient.js:1204
|
||||
msgid "Reject"
|
||||
msgstr "Zavrni"
|
||||
|
||||
@ -954,7 +1003,7 @@ msgstr "Potrditev razčlenjevanja za %s"
|
||||
#: ../js/ui/status/bluetooth.js:462
|
||||
#, c-format
|
||||
msgid "Device %s wants to pair with this computer"
|
||||
msgstr "Naprava %s se skuša povezati s tem računalnikom"
|
||||
msgstr "Naprava %s se poskuša seznaniti s tem računalnikom"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:429
|
||||
#, c-format
|
||||
@ -1240,22 +1289,22 @@ msgstr "Zahteva po naročilu"
|
||||
msgid "Connection error"
|
||||
msgstr "Napaka povezovanja"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:737
|
||||
#: ../js/ui/telepathyClient.js:741
|
||||
#, c-format
|
||||
msgid "%s is online."
|
||||
msgstr "%s je povezan."
|
||||
|
||||
#: ../js/ui/telepathyClient.js:742
|
||||
#: ../js/ui/telepathyClient.js:746
|
||||
#, c-format
|
||||
msgid "%s is offline."
|
||||
msgstr "%s ni povezan."
|
||||
|
||||
#: ../js/ui/telepathyClient.js:745
|
||||
#: ../js/ui/telepathyClient.js:749
|
||||
#, c-format
|
||||
msgid "%s is away."
|
||||
msgstr "%s je odsoten."
|
||||
|
||||
#: ../js/ui/telepathyClient.js:748
|
||||
#: ../js/ui/telepathyClient.js:752
|
||||
#, c-format
|
||||
msgid "%s is busy."
|
||||
msgstr "%s je zaposlen."
|
||||
@ -1263,35 +1312,35 @@ msgstr "%s je zaposlen."
|
||||
#. Translators: this is a time format string followed by a date.
|
||||
#. If applicable, replace %X with a strftime format valid for your
|
||||
#. locale, without seconds.
|
||||
#: ../js/ui/telepathyClient.js:982
|
||||
#: ../js/ui/telepathyClient.js:986
|
||||
#, no-c-format
|
||||
msgid "Sent at <b>%X</b> on <b>%A</b>"
|
||||
msgstr "Poslano <b>%A</b> ob <b>%X</b>"
|
||||
|
||||
#. Translators: this is a time format in the style of "Wednesday, May 25",
|
||||
#. shown when you get a chat message in the same year.
|
||||
#: ../js/ui/telepathyClient.js:988
|
||||
#: ../js/ui/telepathyClient.js:992
|
||||
#, no-c-format
|
||||
msgid "Sent on <b>%A</b>, <b>%B %d</b>"
|
||||
msgstr "Poslano <b>%A</b>, <b>%d. %Ba</b>"
|
||||
|
||||
#. Translators: this is a time format in the style of "Wednesday, May 25, 2012",
|
||||
#. shown when you get a chat message in a different year.
|
||||
#: ../js/ui/telepathyClient.js:993
|
||||
#: ../js/ui/telepathyClient.js:997
|
||||
#, no-c-format
|
||||
msgid "Sent on <b>%A</b>, <b>%B %d</b>, %Y"
|
||||
msgstr "Poslano <b>%A</b>, <b>%d. %Ba</b>, %Y"
|
||||
|
||||
#. Translators: this is the other person changing their old IM name to their new
|
||||
#. IM name.
|
||||
#: ../js/ui/telepathyClient.js:1035
|
||||
#: ../js/ui/telepathyClient.js:1039
|
||||
#, c-format
|
||||
msgid "%s is now known as %s"
|
||||
msgstr "%s je sedaj znan kot v %s"
|
||||
|
||||
#. translators: argument is a room name like
|
||||
#. * room@jabber.org for example.
|
||||
#: ../js/ui/telepathyClient.js:1144
|
||||
#: ../js/ui/telepathyClient.js:1148
|
||||
#, c-format
|
||||
msgid "Invitation to %s"
|
||||
msgstr "Povabilo v %s"
|
||||
@ -1299,36 +1348,37 @@ msgstr "Povabilo v %s"
|
||||
#. translators: first argument is the name of a contact and the second
|
||||
#. * one the name of a room. "Alice is inviting you to join room@jabber.org
|
||||
#. * for example.
|
||||
#: ../js/ui/telepathyClient.js:1152
|
||||
#: ../js/ui/telepathyClient.js:1156
|
||||
#, c-format
|
||||
msgid "%s is inviting you to join %s"
|
||||
msgstr "%s vas vabi, da se pridružite v %s"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1154
|
||||
#: ../js/ui/telepathyClient.js:1243
|
||||
#: ../js/ui/telepathyClient.js:1347
|
||||
#: ../js/ui/telepathyClient.js:1158
|
||||
#: ../js/ui/telepathyClient.js:1248
|
||||
#: ../js/ui/telepathyClient.js:1352
|
||||
msgid "Decline"
|
||||
msgstr "Zavrni"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1155
|
||||
#: ../js/ui/telepathyClient.js:1244
|
||||
#: ../js/ui/telepathyClient.js:1348
|
||||
#: ../js/ui/telepathyClient.js:1159
|
||||
#: ../js/ui/telepathyClient.js:1249
|
||||
#: ../js/ui/telepathyClient.js:1353
|
||||
msgid "Accept"
|
||||
msgstr "Sprejmi"
|
||||
|
||||
#. translators: argument is a contact name like Alice for example.
|
||||
#: ../js/ui/telepathyClient.js:1188
|
||||
#: ../js/ui/telepathyClient.js:1192
|
||||
#, c-format
|
||||
msgid "Video call from %s"
|
||||
msgstr "%s želi vzpostaviti video klic"
|
||||
|
||||
#. translators: argument is a contact name like Alice for example.
|
||||
#: ../js/ui/telepathyClient.js:1191
|
||||
#: ../js/ui/telepathyClient.js:1195
|
||||
#, c-format
|
||||
msgid "Call from %s"
|
||||
msgstr "%s kliče"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1201
|
||||
#. translators: this is a button label (verb), not a noun
|
||||
#: ../js/ui/telepathyClient.js:1206
|
||||
msgid "Answer"
|
||||
msgstr "Odgovori"
|
||||
|
||||
@ -1337,125 +1387,125 @@ msgstr "Odgovori"
|
||||
#. * file name. The string will be something
|
||||
#. * like: "Alice is sending you test.ogg"
|
||||
#.
|
||||
#: ../js/ui/telepathyClient.js:1237
|
||||
#: ../js/ui/telepathyClient.js:1242
|
||||
#, c-format
|
||||
msgid "%s is sending you %s"
|
||||
msgstr "%s pošilja %s"
|
||||
|
||||
#. To translators: The parameter is the contact's alias
|
||||
#: ../js/ui/telepathyClient.js:1312
|
||||
#: ../js/ui/telepathyClient.js:1317
|
||||
#, c-format
|
||||
msgid "%s would like permission to see when you are online"
|
||||
msgstr "%s želi dovoljenje za pogled dosegljivosti"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1410
|
||||
#: ../js/ui/telepathyClient.js:1415
|
||||
msgid "Network error"
|
||||
msgstr "Napaka omrežja"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1412
|
||||
#: ../js/ui/telepathyClient.js:1417
|
||||
msgid "Authentication failed"
|
||||
msgstr "Overitev je spodletela"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1414
|
||||
#: ../js/ui/telepathyClient.js:1419
|
||||
msgid "Encryption error"
|
||||
msgstr "Napaka šifriranja"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1416
|
||||
#: ../js/ui/telepathyClient.js:1421
|
||||
msgid "Certificate not provided"
|
||||
msgstr "Potrdilo ni na voljo"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1418
|
||||
#: ../js/ui/telepathyClient.js:1423
|
||||
msgid "Certificate untrusted"
|
||||
msgstr "Potrdilo ni zaupljivo"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1420
|
||||
#: ../js/ui/telepathyClient.js:1425
|
||||
msgid "Certificate expired"
|
||||
msgstr "Potrdilo je preteklo"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1422
|
||||
#: ../js/ui/telepathyClient.js:1427
|
||||
msgid "Certificate not activated"
|
||||
msgstr "Potrdilo ni potrjeno"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1424
|
||||
#: ../js/ui/telepathyClient.js:1429
|
||||
msgid "Certificate hostname mismatch"
|
||||
msgstr "Neustrezno ime gostitelja potrdila"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1426
|
||||
#: ../js/ui/telepathyClient.js:1431
|
||||
msgid "Certificate fingerprint mismatch"
|
||||
msgstr "Neustrezen prstni odtis potrdila"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1428
|
||||
#: ../js/ui/telepathyClient.js:1433
|
||||
msgid "Certificate self-signed"
|
||||
msgstr "Potrdilo je samo-podpisano"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1430
|
||||
#: ../js/ui/telepathyClient.js:1435
|
||||
msgid "Status is set to offline"
|
||||
msgstr "Stanje je nastavljeno na brez povezave"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1432
|
||||
#: ../js/ui/telepathyClient.js:1437
|
||||
msgid "Encryption is not available"
|
||||
msgstr "Šifriranje ni na voljo."
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1434
|
||||
#: ../js/ui/telepathyClient.js:1439
|
||||
msgid "Certificate is invalid"
|
||||
msgstr "Potrdilo je neveljavno."
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1436
|
||||
#: ../js/ui/telepathyClient.js:1441
|
||||
msgid "Connection has been refused"
|
||||
msgstr "Povezava je zavrnjena."
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1438
|
||||
#: ../js/ui/telepathyClient.js:1443
|
||||
msgid "Connection can't be established"
|
||||
msgstr "Povezave ni mogoče vzpostaviti."
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1440
|
||||
#: ../js/ui/telepathyClient.js:1445
|
||||
msgid "Connection has been lost"
|
||||
msgstr "Povezava je prekinjena."
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1442
|
||||
#: ../js/ui/telepathyClient.js:1447
|
||||
msgid "This resource is already connected to the server"
|
||||
msgstr "Vir je s strežnikom že povezan"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1444
|
||||
#: ../js/ui/telepathyClient.js:1449
|
||||
msgid "Connection has been replaced by a new connection using the same resource"
|
||||
msgstr "Povezava je zamenjana z novo povezavo, ki uporablja isti vir."
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1446
|
||||
#: ../js/ui/telepathyClient.js:1451
|
||||
msgid "The account already exists on the server"
|
||||
msgstr "Račun na strežniku že obstaja"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1448
|
||||
#: ../js/ui/telepathyClient.js:1453
|
||||
msgid "Server is currently too busy to handle the connection"
|
||||
msgstr "Strežnik je trenutno preveč zaposlen za upravljanje s povezavo."
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1450
|
||||
#: ../js/ui/telepathyClient.js:1455
|
||||
msgid "Certificate has been revoked"
|
||||
msgstr "Potrdilo je preklicano"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1452
|
||||
#: ../js/ui/telepathyClient.js:1457
|
||||
msgid "Certificate uses an insecure cipher algorithm or is cryptographically weak"
|
||||
msgstr "Potrdilo ne uporablja varnega algoritma ali pa uporablja šibko šifriranje."
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1454
|
||||
#: ../js/ui/telepathyClient.js:1459
|
||||
msgid "The length of the server certificate, or the depth of the server certificate chain, exceed the limits imposed by the cryptography library"
|
||||
msgstr "Dolžina potrdila strežnika ali pa globina verige potrdila presega omejitev, ki je določena s šifrirno knjižnico."
|
||||
|
||||
#. translators: argument is the account name, like
|
||||
#. * name@jabber.org for example.
|
||||
#: ../js/ui/telepathyClient.js:1463
|
||||
#: ../js/ui/telepathyClient.js:1468
|
||||
#, c-format
|
||||
msgid "Connection to %s failed"
|
||||
msgstr "Povezava z %s je spodletela"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1472
|
||||
#: ../js/ui/telepathyClient.js:1477
|
||||
msgid "Reconnect"
|
||||
msgstr "Ponovno se poveži"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1473
|
||||
#: ../js/ui/telepathyClient.js:1478
|
||||
msgid "Edit account"
|
||||
msgstr "Uredi račun"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1519
|
||||
#: ../js/ui/telepathyClient.js:1524
|
||||
msgid "Unknown reason"
|
||||
msgstr "Neznan vzrok"
|
||||
|
||||
@ -1471,41 +1521,41 @@ msgstr "Nedejavno"
|
||||
msgid "Unavailable"
|
||||
msgstr "Nedostopno"
|
||||
|
||||
#: ../js/ui/userMenu.js:512
|
||||
#: ../js/ui/userMenu.js:516
|
||||
#: ../js/ui/userMenu.js:586
|
||||
#: ../js/ui/userMenu.js:571
|
||||
#: ../js/ui/userMenu.js:575
|
||||
#: ../js/ui/userMenu.js:645
|
||||
msgid "Power Off..."
|
||||
msgstr "Izklop ..."
|
||||
|
||||
#: ../js/ui/userMenu.js:548
|
||||
#: ../js/ui/userMenu.js:607
|
||||
msgid "Notifications"
|
||||
msgstr "Obvestila"
|
||||
|
||||
#: ../js/ui/userMenu.js:556
|
||||
#: ../js/ui/userMenu.js:615
|
||||
msgid "Online Accounts"
|
||||
msgstr "Spletni računi"
|
||||
|
||||
#: ../js/ui/userMenu.js:560
|
||||
#: ../js/ui/userMenu.js:619
|
||||
msgid "System Settings"
|
||||
msgstr "Sistemske nastavitve"
|
||||
|
||||
#: ../js/ui/userMenu.js:567
|
||||
#: ../js/ui/userMenu.js:626
|
||||
msgid "Lock Screen"
|
||||
msgstr "Zakleni zaslon"
|
||||
|
||||
#: ../js/ui/userMenu.js:572
|
||||
#: ../js/ui/userMenu.js:631
|
||||
msgid "Switch User"
|
||||
msgstr "Preklopi uporabnika"
|
||||
|
||||
#: ../js/ui/userMenu.js:577
|
||||
#: ../js/ui/userMenu.js:636
|
||||
msgid "Log Out..."
|
||||
msgstr "Odjava ..."
|
||||
|
||||
#: ../js/ui/userMenu.js:605
|
||||
#: ../js/ui/userMenu.js:664
|
||||
msgid "Your chat status will be set to busy"
|
||||
msgstr "Stanje vašega klepeta bo nastavljeno na zasedeno"
|
||||
|
||||
#: ../js/ui/userMenu.js:606
|
||||
#: ../js/ui/userMenu.js:665
|
||||
msgid "Notifications are now disabled, including chat messages. Your online status has been adjusted to let others know that you might not see their messages."
|
||||
msgstr "Obveščanje je zdaj onemogočeno, vključno s sporočili klepeta. Vaše stanje povezanosti se je prilagodilo, da bodo drugi vedeli, da njihovih sporočil morda ne boste opazili."
|
||||
|
||||
@ -1513,12 +1563,12 @@ msgstr "Obveščanje je zdaj onemogočeno, vključno s sporočili klepeta. Vaše
|
||||
#. in the search entry when no search is
|
||||
#. active; it should not exceed ~30
|
||||
#. characters.
|
||||
#: ../js/ui/viewSelector.js:120
|
||||
#: ../js/ui/viewSelector.js:121
|
||||
msgid "Type to search..."
|
||||
msgstr "Vtipkajte za iskanje ..."
|
||||
|
||||
#: ../js/ui/viewSelector.js:140
|
||||
#: ../src/shell-util.c:261
|
||||
#: ../js/ui/viewSelector.js:142
|
||||
#: ../src/shell-util.c:244
|
||||
msgid "Search"
|
||||
msgstr "Poišči"
|
||||
|
||||
@ -1553,15 +1603,15 @@ msgstr[3] "%u dovodi naprave"
|
||||
msgid "System Sounds"
|
||||
msgstr "Sistemski zvoki"
|
||||
|
||||
#: ../src/main.c:480
|
||||
#: ../src/main.c:483
|
||||
msgid "Print version"
|
||||
msgstr "Izpiši različico"
|
||||
|
||||
#: ../src/main.c:486
|
||||
#: ../src/main.c:489
|
||||
msgid "Mode used by GDM for login screen"
|
||||
msgstr "Način uporabljen v GDM za prijavni naslov"
|
||||
|
||||
#: ../src/shell-app.c:581
|
||||
#: ../src/shell-app.c:567
|
||||
#, c-format
|
||||
msgid "Failed to launch '%s'"
|
||||
msgstr "Zaganjanje '%s' je spodletelo"
|
||||
@ -1578,13 +1628,15 @@ msgstr "Privzeto"
|
||||
msgid "Authentication dialog was dismissed by the user"
|
||||
msgstr "Uporabnik je zavrnil pogovorno okno overitve"
|
||||
|
||||
#: ../src/shell-util.c:100
|
||||
msgid "Home Folder"
|
||||
#. Translators: this is the same string as the one found in
|
||||
#. * nautilus
|
||||
#: ../src/shell-util.c:89
|
||||
msgid "Home"
|
||||
msgstr "Domača mapa"
|
||||
|
||||
#. Translators: this is the same string as the one found in
|
||||
#. * nautilus
|
||||
#: ../src/shell-util.c:115
|
||||
#: ../src/shell-util.c:98
|
||||
msgid "File System"
|
||||
msgstr "Datotečni sistem"
|
||||
|
||||
@ -1593,19 +1645,13 @@ msgstr "Datotečni sistem"
|
||||
#. * example, "Trash: some-directory". It means that the
|
||||
#. * directory called "some-directory" is in the trash.
|
||||
#.
|
||||
#: ../src/shell-util.c:311
|
||||
#: ../src/shell-util.c:294
|
||||
#, c-format
|
||||
msgid "%1$s: %2$s"
|
||||
msgstr "%1$s: %2$s"
|
||||
|
||||
#~ msgid "%s has not emitted any errors."
|
||||
#~ msgstr "%s ni vrnil napak."
|
||||
#~ msgid "Show password"
|
||||
#~ msgstr "Pokaži geslo"
|
||||
|
||||
#~ msgid "Hide Errors"
|
||||
#~ msgstr "Skrij napake"
|
||||
|
||||
#~ msgid "Show Errors"
|
||||
#~ msgstr "Pokaži napake"
|
||||
|
||||
#~ msgid "%s has finished starting"
|
||||
#~ msgstr "%s je končal začenjanje"
|
||||
#~ msgid "Home Folder"
|
||||
#~ msgstr "Domača mapa"
|
||||
|
380
po/sv.po
380
po/sv.po
@ -7,8 +7,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: gnome-shell\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2011-10-06 08:08+0200\n"
|
||||
"PO-Revision-Date: 2011-10-06 08:09+0100\n"
|
||||
"POT-Creation-Date: 2011-10-26 11:55+0200\n"
|
||||
"PO-Revision-Date: 2011-10-26 11:55+0100\n"
|
||||
"Last-Translator: Daniel Nylander <po@danielnylander.se>\n"
|
||||
"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
|
||||
"Language: sv\n"
|
||||
@ -126,60 +126,55 @@ msgstr "Vilket tangentbord att använda"
|
||||
msgid "disabled OpenSearch providers"
|
||||
msgstr "inaktiverade OpenSearch-leverantörer"
|
||||
|
||||
#: ../js/gdm/loginDialog.js:617
|
||||
#: ../js/gdm/loginDialog.js:633
|
||||
msgid "Session..."
|
||||
msgstr "Session..."
|
||||
|
||||
#: ../js/gdm/loginDialog.js:785
|
||||
#: ../js/gdm/loginDialog.js:804
|
||||
msgctxt "title"
|
||||
msgid "Sign In"
|
||||
msgstr "Logga in"
|
||||
|
||||
#. translators: this message is shown below the password entry field
|
||||
#. to indicate the user can swipe their finger instead
|
||||
#: ../js/gdm/loginDialog.js:830
|
||||
#: ../js/gdm/loginDialog.js:849
|
||||
msgid "(or swipe finger)"
|
||||
msgstr "(eller dra fingret)"
|
||||
|
||||
#: ../js/gdm/loginDialog.js:848
|
||||
#: ../js/gdm/loginDialog.js:867
|
||||
msgid "Not listed?"
|
||||
msgstr "Inte listad?"
|
||||
|
||||
#: ../js/gdm/loginDialog.js:1004
|
||||
#: ../js/gdm/loginDialog.js:1035
|
||||
#: ../js/ui/endSessionDialog.js:426
|
||||
#: ../js/ui/extensionSystem.js:477
|
||||
#: ../js/ui/networkAgent.js:165
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:171
|
||||
#: ../js/ui/extensionSystem.js:520
|
||||
#: ../js/ui/networkAgent.js:148
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:173
|
||||
#: ../js/ui/status/bluetooth.js:480
|
||||
msgid "Cancel"
|
||||
msgstr "Avbryt"
|
||||
|
||||
#: ../js/gdm/loginDialog.js:1009
|
||||
#: ../js/gdm/loginDialog.js:1040
|
||||
msgctxt "button"
|
||||
msgid "Sign In"
|
||||
msgstr "Logga in"
|
||||
|
||||
#: ../js/gdm/loginDialog.js:1358
|
||||
#: ../js/gdm/loginDialog.js:1392
|
||||
msgid "Login Window"
|
||||
msgstr "Inloggningsfönster"
|
||||
|
||||
#: ../js/gdm/powerMenu.js:116
|
||||
#: ../js/ui/userMenu.js:514
|
||||
#: ../js/ui/userMenu.js:516
|
||||
#: ../js/ui/userMenu.js:585
|
||||
#: ../js/ui/userMenu.js:573
|
||||
#: ../js/ui/userMenu.js:575
|
||||
#: ../js/ui/userMenu.js:644
|
||||
msgid "Suspend"
|
||||
msgstr "Vänteläge"
|
||||
|
||||
#: ../js/gdm/powerMenu.js:121
|
||||
#: ../js/ui/endSessionDialog.js:89
|
||||
#: ../js/ui/endSessionDialog.js:97
|
||||
#: ../js/ui/endSessionDialog.js:106
|
||||
msgid "Restart"
|
||||
msgstr "Starta om"
|
||||
|
||||
#: ../js/gdm/powerMenu.js:126
|
||||
#: ../js/ui/endSessionDialog.js:80
|
||||
#: ../js/ui/endSessionDialog.js:91
|
||||
msgid "Power Off"
|
||||
msgstr "Stäng av"
|
||||
|
||||
@ -393,9 +388,9 @@ msgid "Next week"
|
||||
msgstr "Nästa vecka"
|
||||
|
||||
#: ../js/ui/contactDisplay.js:65
|
||||
#: ../js/ui/notificationDaemon.js:444
|
||||
#: ../js/ui/notificationDaemon.js:459
|
||||
#: ../js/ui/status/power.js:223
|
||||
#: ../src/shell-app.c:355
|
||||
#: ../src/shell-app.c:350
|
||||
msgid "Unknown"
|
||||
msgstr "Okänt"
|
||||
|
||||
@ -422,8 +417,8 @@ msgstr "Frånkopplad"
|
||||
msgid "CONTACTS"
|
||||
msgstr "KONTAKTER"
|
||||
|
||||
#: ../js/ui/dash.js:172
|
||||
#: ../js/ui/messageTray.js:1204
|
||||
#: ../js/ui/dash.js:174
|
||||
#: ../js/ui/messageTray.js:1206
|
||||
msgid "Remove"
|
||||
msgstr "Ta bort"
|
||||
|
||||
@ -488,11 +483,12 @@ msgstr "TIDIGARE OBJEKT"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:60
|
||||
#, c-format
|
||||
msgctxt "title"
|
||||
msgid "Log Out %s"
|
||||
msgstr "Logga ut %s"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:61
|
||||
#: ../js/ui/endSessionDialog.js:75
|
||||
msgctxt "title"
|
||||
msgid "Log Out"
|
||||
msgstr "Logga ut"
|
||||
|
||||
@ -518,6 +514,16 @@ msgstr[1] "Du kommer att loggas ut automatiskt om %d sekunder."
|
||||
msgid "Logging out of the system."
|
||||
msgstr "Loggar ut från systemet."
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:75
|
||||
msgctxt "button"
|
||||
msgid "Log Out"
|
||||
msgstr "Logga ut"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:80
|
||||
msgctxt "title"
|
||||
msgid "Power Off"
|
||||
msgstr "Stäng av"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:81
|
||||
msgid "Click Power Off to quit these applications and power off the system."
|
||||
msgstr "Klicka på Stäng av för att avsluta dessa program och stänga av systemet."
|
||||
@ -533,6 +539,22 @@ msgstr[1] "Systemet kommer att stängas av automatiskt om %d sekunder."
|
||||
msgid "Powering off the system."
|
||||
msgstr "Stänger av systemet."
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:89
|
||||
#: ../js/ui/endSessionDialog.js:106
|
||||
msgctxt "button"
|
||||
msgid "Restart"
|
||||
msgstr "Starta om"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:91
|
||||
msgctxt "button"
|
||||
msgid "Power Off"
|
||||
msgstr "Stäng av"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:97
|
||||
msgctxt "title"
|
||||
msgid "Restart"
|
||||
msgstr "Starta om"
|
||||
|
||||
#: ../js/ui/endSessionDialog.js:98
|
||||
msgid "Click Restart to quit these applications and restart the system."
|
||||
msgstr "Klicka på Starta om för att avsluta dessa program och starta om systemet."
|
||||
@ -548,147 +570,158 @@ msgstr[1] "Systemet kommer att startas om automatiskt om %d sekunder."
|
||||
msgid "Restarting the system."
|
||||
msgstr "Starta om systemet."
|
||||
|
||||
#: ../js/ui/extensionSystem.js:481
|
||||
#: ../js/ui/extensionSystem.js:524
|
||||
msgid "Install"
|
||||
msgstr "Installera"
|
||||
|
||||
#: ../js/ui/extensionSystem.js:485
|
||||
#: ../js/ui/extensionSystem.js:528
|
||||
#, c-format
|
||||
msgid "Download and install '%s' from extensions.gnome.org?"
|
||||
msgstr "Hämta och installera \"%s\" från extensions.gnome.org?"
|
||||
|
||||
#: ../js/ui/keyboard.js:308
|
||||
#: ../js/ui/keyboard.js:325
|
||||
msgid "tray"
|
||||
msgstr "bricka"
|
||||
|
||||
#: ../js/ui/keyboard.js:530
|
||||
#: ../js/ui/keyboard.js:547
|
||||
#: ../js/ui/status/power.js:211
|
||||
msgid "Keyboard"
|
||||
msgstr "Tangentbord"
|
||||
|
||||
#: ../js/ui/lookingGlass.js:645
|
||||
#: ../js/ui/lookingGlass.js:664
|
||||
msgid "No extensions installed"
|
||||
msgstr "Inga tillägg installerade"
|
||||
|
||||
#: ../js/ui/lookingGlass.js:691
|
||||
#. Translators: argument is an extension UUID.
|
||||
#: ../js/ui/lookingGlass.js:719
|
||||
#, c-format
|
||||
msgid "%s has not emitted any errors."
|
||||
msgstr "%s har inte skickat ut några fel."
|
||||
|
||||
#: ../js/ui/lookingGlass.js:725
|
||||
msgid "Hide Errors"
|
||||
msgstr "Dölj fel"
|
||||
|
||||
#: ../js/ui/lookingGlass.js:729
|
||||
#: ../js/ui/lookingGlass.js:779
|
||||
msgid "Show Errors"
|
||||
msgstr "Visa fel"
|
||||
|
||||
#: ../js/ui/lookingGlass.js:738
|
||||
msgid "Enabled"
|
||||
msgstr "Aktiverad"
|
||||
|
||||
#. translators:
|
||||
#. * The device has been disabled
|
||||
#: ../js/ui/lookingGlass.js:693
|
||||
#: ../js/ui/lookingGlass.js:740
|
||||
#: ../src/gvc/gvc-mixer-control.c:1093
|
||||
msgid "Disabled"
|
||||
msgstr "Inaktiverad"
|
||||
|
||||
#: ../js/ui/lookingGlass.js:695
|
||||
#: ../js/ui/lookingGlass.js:742
|
||||
msgid "Error"
|
||||
msgstr "Fel"
|
||||
|
||||
#: ../js/ui/lookingGlass.js:697
|
||||
#: ../js/ui/lookingGlass.js:744
|
||||
msgid "Out of date"
|
||||
msgstr "Utanför datumintervallet"
|
||||
|
||||
#: ../js/ui/lookingGlass.js:699
|
||||
#: ../js/ui/lookingGlass.js:746
|
||||
msgid "Downloading"
|
||||
msgstr "Hämtar"
|
||||
|
||||
#: ../js/ui/lookingGlass.js:720
|
||||
#: ../js/ui/lookingGlass.js:767
|
||||
msgid "View Source"
|
||||
msgstr "Visa källa"
|
||||
|
||||
#: ../js/ui/lookingGlass.js:726
|
||||
#: ../js/ui/lookingGlass.js:773
|
||||
msgid "Web Page"
|
||||
msgstr "Webbsida"
|
||||
|
||||
#: ../js/ui/messageTray.js:1197
|
||||
#: ../js/ui/messageTray.js:1199
|
||||
msgid "Open"
|
||||
msgstr "Öppna"
|
||||
|
||||
#: ../js/ui/messageTray.js:2406
|
||||
#: ../js/ui/messageTray.js:2408
|
||||
msgid "System Information"
|
||||
msgstr "Systeminformation"
|
||||
|
||||
#: ../js/ui/networkAgent.js:145
|
||||
msgid "Show password"
|
||||
msgstr "Visa lösenord"
|
||||
|
||||
#: ../js/ui/networkAgent.js:160
|
||||
#: ../js/ui/networkAgent.js:143
|
||||
msgid "Connect"
|
||||
msgstr "Anslut"
|
||||
|
||||
#. Cisco LEAP
|
||||
#: ../js/ui/networkAgent.js:255
|
||||
#: ../js/ui/networkAgent.js:267
|
||||
#: ../js/ui/networkAgent.js:294
|
||||
#: ../js/ui/networkAgent.js:314
|
||||
#: ../js/ui/networkAgent.js:324
|
||||
#: ../js/ui/networkAgent.js:238
|
||||
#: ../js/ui/networkAgent.js:250
|
||||
#: ../js/ui/networkAgent.js:277
|
||||
#: ../js/ui/networkAgent.js:297
|
||||
#: ../js/ui/networkAgent.js:307
|
||||
msgid "Password: "
|
||||
msgstr "Lösenord: "
|
||||
|
||||
#. static WEP
|
||||
#: ../js/ui/networkAgent.js:260
|
||||
#: ../js/ui/networkAgent.js:243
|
||||
msgid "Key: "
|
||||
msgstr "Nyckel: "
|
||||
|
||||
#. 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/ui/networkAgent.js:292
|
||||
#: ../js/ui/networkAgent.js:310
|
||||
#: ../js/ui/networkAgent.js:275
|
||||
#: ../js/ui/networkAgent.js:293
|
||||
msgid "Username: "
|
||||
msgstr "Användarnamn: "
|
||||
|
||||
#: ../js/ui/networkAgent.js:298
|
||||
#: ../js/ui/networkAgent.js:281
|
||||
msgid "Identity: "
|
||||
msgstr "Identitet: "
|
||||
|
||||
#: ../js/ui/networkAgent.js:300
|
||||
#: ../js/ui/networkAgent.js:283
|
||||
msgid "Private key password: "
|
||||
msgstr "Lösenord för privat nyckel: "
|
||||
|
||||
#: ../js/ui/networkAgent.js:312
|
||||
#: ../js/ui/networkAgent.js:295
|
||||
msgid "Service: "
|
||||
msgstr "Tjänst: "
|
||||
|
||||
#: ../js/ui/networkAgent.js:341
|
||||
#: ../js/ui/networkAgent.js:324
|
||||
msgid "Authentication required by wireless network"
|
||||
msgstr "Autentisering krävs av trådlöst nätverk"
|
||||
|
||||
#: ../js/ui/networkAgent.js:342
|
||||
#: ../js/ui/networkAgent.js:325
|
||||
#, c-format
|
||||
msgid "Passwords or encryption keys are required to access the wireless network '%s'."
|
||||
msgstr "Lösenord eller krypteringsnycklar krävs för att komma åt det trådlösa nätverket \"%s\"."
|
||||
|
||||
#: ../js/ui/networkAgent.js:346
|
||||
#: ../js/ui/networkAgent.js:329
|
||||
msgid "Wired 802.1X authentication"
|
||||
msgstr "Trådbunden 802.1X-autentisering"
|
||||
|
||||
#: ../js/ui/networkAgent.js:348
|
||||
#: ../js/ui/networkAgent.js:331
|
||||
msgid "Network name: "
|
||||
msgstr "Nätverksnamn: "
|
||||
|
||||
#: ../js/ui/networkAgent.js:353
|
||||
#: ../js/ui/networkAgent.js:336
|
||||
msgid "DSL authentication"
|
||||
msgstr "DSL-autentisering"
|
||||
|
||||
#: ../js/ui/networkAgent.js:360
|
||||
#: ../js/ui/networkAgent.js:343
|
||||
msgid "PIN code required"
|
||||
msgstr "PIN-kod krävs"
|
||||
|
||||
#: ../js/ui/networkAgent.js:361
|
||||
#: ../js/ui/networkAgent.js:344
|
||||
msgid "PIN code is needed for the mobile broadband device"
|
||||
msgstr "PIN-koden krävs för den mobila bredbandsenheten"
|
||||
|
||||
#: ../js/ui/networkAgent.js:362
|
||||
#: ../js/ui/networkAgent.js:345
|
||||
msgid "PIN: "
|
||||
msgstr "PIN-kod: "
|
||||
|
||||
#: ../js/ui/networkAgent.js:368
|
||||
#: ../js/ui/networkAgent.js:351
|
||||
msgid "Mobile broadband network password"
|
||||
msgstr "Lösenord för mobilt bredbandsnätverk"
|
||||
|
||||
#: ../js/ui/networkAgent.js:369
|
||||
#: ../js/ui/networkAgent.js:352
|
||||
#, c-format
|
||||
msgid "A password is required to connect to '%s'."
|
||||
msgstr "Ett lösenord krävs för att ansluta till \"%s\"."
|
||||
@ -744,15 +777,15 @@ msgstr "Anslut till..."
|
||||
msgid "PLACES & DEVICES"
|
||||
msgstr "PLATSER OCH ENHETER"
|
||||
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:72
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:73
|
||||
msgid "Authentication Required"
|
||||
msgstr "Autentisering krävs"
|
||||
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:106
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:107
|
||||
msgid "Administrator"
|
||||
msgstr "Administratör"
|
||||
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:175
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:177
|
||||
msgid "Authenticate"
|
||||
msgstr "Autentisera"
|
||||
|
||||
@ -760,11 +793,11 @@ msgstr "Autentisera"
|
||||
#. * requested authentication was not gained; this can happen
|
||||
#. * because of an authentication error (like invalid password),
|
||||
#. * for instance.
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:256
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:258
|
||||
msgid "Sorry, that didn't work. Please try again."
|
||||
msgstr "Tyvärr, det fungerade inte. Försök igen."
|
||||
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:268
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:270
|
||||
msgid "Password:"
|
||||
msgstr "Lösenord:"
|
||||
|
||||
@ -777,7 +810,7 @@ msgstr "Lösenord:"
|
||||
msgid "toggle-switch-us"
|
||||
msgstr "toggle-switch-intl"
|
||||
|
||||
#: ../js/ui/runDialog.js:208
|
||||
#: ../js/ui/runDialog.js:209
|
||||
msgid "Please enter a command:"
|
||||
msgstr "Ange ett kommando:"
|
||||
|
||||
@ -789,6 +822,22 @@ msgstr "Söker..."
|
||||
msgid "No matching results."
|
||||
msgstr "Inga sökträffar."
|
||||
|
||||
#: ../js/ui/shellEntry.js:30
|
||||
msgid "Copy"
|
||||
msgstr "Kopiera"
|
||||
|
||||
#: ../js/ui/shellEntry.js:35
|
||||
msgid "Paste"
|
||||
msgstr "Klistra in"
|
||||
|
||||
#: ../js/ui/shellEntry.js:81
|
||||
msgid "Show Text"
|
||||
msgstr "Visa text"
|
||||
|
||||
#: ../js/ui/shellEntry.js:83
|
||||
msgid "Hide Text"
|
||||
msgstr "Dölj text"
|
||||
|
||||
#: ../js/ui/shellMountOperation.js:285
|
||||
msgid "Wrong password, please try again"
|
||||
msgstr "Felaktigt lösenord. Försök igen"
|
||||
@ -826,7 +875,7 @@ msgstr "Mustangenter"
|
||||
|
||||
#: ../js/ui/status/accessibility.js:91
|
||||
msgid "Universal Access Settings"
|
||||
msgstr "Inställningar för allmän åtkomst"
|
||||
msgstr "Inställningar för hjälpmedel"
|
||||
|
||||
#: ../js/ui/status/accessibility.js:141
|
||||
msgid "High Contrast"
|
||||
@ -1285,14 +1334,14 @@ msgid "%s is inviting you to join %s"
|
||||
msgstr "%s bjuder in dig till %s"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1158
|
||||
#: ../js/ui/telepathyClient.js:1247
|
||||
#: ../js/ui/telepathyClient.js:1351
|
||||
#: ../js/ui/telepathyClient.js:1248
|
||||
#: ../js/ui/telepathyClient.js:1352
|
||||
msgid "Decline"
|
||||
msgstr "Neka"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1159
|
||||
#: ../js/ui/telepathyClient.js:1248
|
||||
#: ../js/ui/telepathyClient.js:1352
|
||||
#: ../js/ui/telepathyClient.js:1249
|
||||
#: ../js/ui/telepathyClient.js:1353
|
||||
msgid "Accept"
|
||||
msgstr "Acceptera"
|
||||
|
||||
@ -1308,7 +1357,8 @@ msgstr "Videosamtal från %s"
|
||||
msgid "Call from %s"
|
||||
msgstr "Samtal från %s"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1205
|
||||
#. translators: this is a button label (verb), not a noun
|
||||
#: ../js/ui/telepathyClient.js:1206
|
||||
msgid "Answer"
|
||||
msgstr "Svara"
|
||||
|
||||
@ -1317,125 +1367,125 @@ msgstr "Svara"
|
||||
#. * file name. The string will be something
|
||||
#. * like: "Alice is sending you test.ogg"
|
||||
#.
|
||||
#: ../js/ui/telepathyClient.js:1241
|
||||
#: ../js/ui/telepathyClient.js:1242
|
||||
#, c-format
|
||||
msgid "%s is sending you %s"
|
||||
msgstr "%s skickar dig %s"
|
||||
|
||||
#. To translators: The parameter is the contact's alias
|
||||
#: ../js/ui/telepathyClient.js:1316
|
||||
#: ../js/ui/telepathyClient.js:1317
|
||||
#, c-format
|
||||
msgid "%s would like permission to see when you are online"
|
||||
msgstr "%s vill få behörighet att se när du är ansluten"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1414
|
||||
#: ../js/ui/telepathyClient.js:1415
|
||||
msgid "Network error"
|
||||
msgstr "Nätverksfel"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1416
|
||||
#: ../js/ui/telepathyClient.js:1417
|
||||
msgid "Authentication failed"
|
||||
msgstr "Autentisering misslyckades"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1418
|
||||
#: ../js/ui/telepathyClient.js:1419
|
||||
msgid "Encryption error"
|
||||
msgstr "Krypteringsfel"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1420
|
||||
#: ../js/ui/telepathyClient.js:1421
|
||||
msgid "Certificate not provided"
|
||||
msgstr "Certifikat tillhandahålls inte"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1422
|
||||
#: ../js/ui/telepathyClient.js:1423
|
||||
msgid "Certificate untrusted"
|
||||
msgstr "Certifikatet är inte pålitligt"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1424
|
||||
#: ../js/ui/telepathyClient.js:1425
|
||||
msgid "Certificate expired"
|
||||
msgstr "Certifikatet är utgånget"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1426
|
||||
#: ../js/ui/telepathyClient.js:1427
|
||||
msgid "Certificate not activated"
|
||||
msgstr "Certifikatet är inte aktiverat"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1428
|
||||
#: ../js/ui/telepathyClient.js:1429
|
||||
msgid "Certificate hostname mismatch"
|
||||
msgstr "Certifikatets värdnamn stämmer inte"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1430
|
||||
#: ../js/ui/telepathyClient.js:1431
|
||||
msgid "Certificate fingerprint mismatch"
|
||||
msgstr "Certifikatets fingeravtryck stämmer inte"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1432
|
||||
#: ../js/ui/telepathyClient.js:1433
|
||||
msgid "Certificate self-signed"
|
||||
msgstr "Certifikatet är självsignerat"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1434
|
||||
#: ../js/ui/telepathyClient.js:1435
|
||||
msgid "Status is set to offline"
|
||||
msgstr "Status är inställd till frånkopplad"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1436
|
||||
#: ../js/ui/telepathyClient.js:1437
|
||||
msgid "Encryption is not available"
|
||||
msgstr "Kryptering är inte tillgänglig"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1438
|
||||
#: ../js/ui/telepathyClient.js:1439
|
||||
msgid "Certificate is invalid"
|
||||
msgstr "Certifikatet är ogiltigt"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1440
|
||||
#: ../js/ui/telepathyClient.js:1441
|
||||
msgid "Connection has been refused"
|
||||
msgstr "Anslutningen har nekats"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1442
|
||||
#: ../js/ui/telepathyClient.js:1443
|
||||
msgid "Connection can't be established"
|
||||
msgstr "Anslutningen kan inte etableras"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1444
|
||||
#: ../js/ui/telepathyClient.js:1445
|
||||
msgid "Connection has been lost"
|
||||
msgstr "Anslutningen har förlorats"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1446
|
||||
#: ../js/ui/telepathyClient.js:1447
|
||||
msgid "This resource is already connected to the server"
|
||||
msgstr "Denna resurs är redan ansluten till servern"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1448
|
||||
#: ../js/ui/telepathyClient.js:1449
|
||||
msgid "Connection has been replaced by a new connection using the same resource"
|
||||
msgstr "Anslutningen har ersatts av en ny anslutning med samma resurs"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1450
|
||||
#: ../js/ui/telepathyClient.js:1451
|
||||
msgid "The account already exists on the server"
|
||||
msgstr "Kontot finns redan på servern"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1452
|
||||
#: ../js/ui/telepathyClient.js:1453
|
||||
msgid "Server is currently too busy to handle the connection"
|
||||
msgstr "Servern är för närvarande för upptagen för att hantera anslutningen"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1454
|
||||
#: ../js/ui/telepathyClient.js:1455
|
||||
msgid "Certificate has been revoked"
|
||||
msgstr "Certifikatet har spärrats"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1456
|
||||
#: ../js/ui/telepathyClient.js:1457
|
||||
msgid "Certificate uses an insecure cipher algorithm or is cryptographically weak"
|
||||
msgstr "Certifikatet använder en osäker skifferalgoritm eller är kryptografiskt svagt"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1458
|
||||
#: ../js/ui/telepathyClient.js:1459
|
||||
msgid "The length of the server certificate, or the depth of the server certificate chain, exceed the limits imposed by the cryptography library"
|
||||
msgstr "Längden på serverns certifikat, eller djupet av serverns certifikatkedja, överstiger gränserna som satts av det kryptografiska biblioteket"
|
||||
|
||||
#. translators: argument is the account name, like
|
||||
#. * name@jabber.org for example.
|
||||
#: ../js/ui/telepathyClient.js:1467
|
||||
#: ../js/ui/telepathyClient.js:1468
|
||||
#, c-format
|
||||
msgid "Connection to %s failed"
|
||||
msgstr "Anslutningen till %s misslyckades"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1476
|
||||
#: ../js/ui/telepathyClient.js:1477
|
||||
msgid "Reconnect"
|
||||
msgstr "Återanslut"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1477
|
||||
#: ../js/ui/telepathyClient.js:1478
|
||||
msgid "Edit account"
|
||||
msgstr "Redigera konto"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1523
|
||||
#: ../js/ui/telepathyClient.js:1524
|
||||
msgid "Unknown reason"
|
||||
msgstr "Okänd anledning"
|
||||
|
||||
@ -1451,41 +1501,41 @@ msgstr "Overksam"
|
||||
msgid "Unavailable"
|
||||
msgstr "Inte tillgänglig"
|
||||
|
||||
#: ../js/ui/userMenu.js:512
|
||||
#: ../js/ui/userMenu.js:516
|
||||
#: ../js/ui/userMenu.js:586
|
||||
#: ../js/ui/userMenu.js:571
|
||||
#: ../js/ui/userMenu.js:575
|
||||
#: ../js/ui/userMenu.js:645
|
||||
msgid "Power Off..."
|
||||
msgstr "Stäng av..."
|
||||
|
||||
#: ../js/ui/userMenu.js:548
|
||||
#: ../js/ui/userMenu.js:607
|
||||
msgid "Notifications"
|
||||
msgstr "Notifieringar"
|
||||
|
||||
#: ../js/ui/userMenu.js:556
|
||||
#: ../js/ui/userMenu.js:615
|
||||
msgid "Online Accounts"
|
||||
msgstr "Nätkonton"
|
||||
|
||||
#: ../js/ui/userMenu.js:560
|
||||
#: ../js/ui/userMenu.js:619
|
||||
msgid "System Settings"
|
||||
msgstr "Systeminställningar"
|
||||
|
||||
#: ../js/ui/userMenu.js:567
|
||||
#: ../js/ui/userMenu.js:626
|
||||
msgid "Lock Screen"
|
||||
msgstr "Lås skärmen"
|
||||
|
||||
#: ../js/ui/userMenu.js:572
|
||||
#: ../js/ui/userMenu.js:631
|
||||
msgid "Switch User"
|
||||
msgstr "Växla användare"
|
||||
|
||||
#: ../js/ui/userMenu.js:577
|
||||
#: ../js/ui/userMenu.js:636
|
||||
msgid "Log Out..."
|
||||
msgstr "Logga ut..."
|
||||
|
||||
#: ../js/ui/userMenu.js:605
|
||||
#: ../js/ui/userMenu.js:664
|
||||
msgid "Your chat status will be set to busy"
|
||||
msgstr "Din chattstatus kommer att ställas in till upptagen"
|
||||
|
||||
#: ../js/ui/userMenu.js:606
|
||||
#: ../js/ui/userMenu.js:665
|
||||
msgid "Notifications are now disabled, including chat messages. Your online status has been adjusted to let others know that you might not see their messages."
|
||||
msgstr "Notifieringar är nu inaktiverade, inklusive chattmeddelanden. Din anslutningsstatus har ändrats till att låta andra veta att du kanske inte ser deras meddelanden."
|
||||
|
||||
@ -1493,12 +1543,12 @@ msgstr "Notifieringar är nu inaktiverade, inklusive chattmeddelanden. Din anslu
|
||||
#. in the search entry when no search is
|
||||
#. active; it should not exceed ~30
|
||||
#. characters.
|
||||
#: ../js/ui/viewSelector.js:120
|
||||
#: ../js/ui/viewSelector.js:121
|
||||
msgid "Type to search..."
|
||||
msgstr "Skriv för att söka..."
|
||||
|
||||
#: ../js/ui/viewSelector.js:140
|
||||
#: ../src/shell-util.c:261
|
||||
#: ../js/ui/viewSelector.js:142
|
||||
#: ../src/shell-util.c:244
|
||||
msgid "Search"
|
||||
msgstr "Sök"
|
||||
|
||||
@ -1529,15 +1579,15 @@ msgstr[1] "%u ingångar"
|
||||
msgid "System Sounds"
|
||||
msgstr "Systemljud"
|
||||
|
||||
#: ../src/main.c:480
|
||||
#: ../src/main.c:483
|
||||
msgid "Print version"
|
||||
msgstr "Skriv ut version"
|
||||
|
||||
#: ../src/main.c:486
|
||||
#: ../src/main.c:489
|
||||
msgid "Mode used by GDM for login screen"
|
||||
msgstr "Läge som används av GDM för inloggningsskärmen"
|
||||
|
||||
#: ../src/shell-app.c:581
|
||||
#: ../src/shell-app.c:567
|
||||
#, c-format
|
||||
msgid "Failed to launch '%s'"
|
||||
msgstr "Misslyckades med att starta \"%s\""
|
||||
@ -1554,13 +1604,15 @@ msgstr "Standard"
|
||||
msgid "Authentication dialog was dismissed by the user"
|
||||
msgstr "Autentiseringsdialogen stängdes av användaren"
|
||||
|
||||
#: ../src/shell-util.c:100
|
||||
msgid "Home Folder"
|
||||
msgstr "Hemmapp"
|
||||
#. Translators: this is the same string as the one found in
|
||||
#. * nautilus
|
||||
#: ../src/shell-util.c:89
|
||||
msgid "Home"
|
||||
msgstr "Hem"
|
||||
|
||||
#. Translators: this is the same string as the one found in
|
||||
#. * nautilus
|
||||
#: ../src/shell-util.c:115
|
||||
#: ../src/shell-util.c:98
|
||||
msgid "File System"
|
||||
msgstr "Filsystem"
|
||||
|
||||
@ -1569,31 +1621,38 @@ msgstr "Filsystem"
|
||||
#. * example, "Trash: some-directory". It means that the
|
||||
#. * directory called "some-directory" is in the trash.
|
||||
#.
|
||||
#: ../src/shell-util.c:311
|
||||
#: ../src/shell-util.c:294
|
||||
#, c-format
|
||||
msgid "%1$s: %2$s"
|
||||
msgstr "%1$s: %2$s"
|
||||
|
||||
#~ msgid "%s has not emitted any errors."
|
||||
#~ msgstr "%s har inte skickat ut några fel."
|
||||
#~ msgid "Hide Errors"
|
||||
#~ msgstr "Dölj fel"
|
||||
#~ msgid "Show Errors"
|
||||
#~ msgstr "Visa fel"
|
||||
#~ msgid "Show password"
|
||||
#~ msgstr "Visa lösenord"
|
||||
|
||||
#~ msgid "Home Folder"
|
||||
#~ msgstr "Hemmapp"
|
||||
|
||||
#~ msgid "%s has finished starting"
|
||||
#~ msgstr "%s har startat"
|
||||
|
||||
#~ msgid "If true, display onscreen keyboard."
|
||||
#~ msgstr "Om true, visa skärmtangentbord."
|
||||
|
||||
#~ msgid "Show the onscreen keyboard"
|
||||
#~ msgstr "Visa skärmtangentbordet"
|
||||
|
||||
#~ msgid "Connectivity lost"
|
||||
#~ msgstr "Anslutningen förlorades"
|
||||
|
||||
#~ msgid "You're no longer connected to the network"
|
||||
#~ msgstr "Du är inte längre ansluten till nätverket"
|
||||
|
||||
#~ msgid "Do Not Disturb"
|
||||
#~ msgstr "Stör inte"
|
||||
|
||||
#~ msgid "calendar:week_start:0"
|
||||
#~ msgstr "calendar:week_start:1"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "GNOME Shell extensions have a uuid property; this key lists extensions "
|
||||
#~ "which should not be loaded. This setting overrides enabled-extensions for "
|
||||
@ -1602,31 +1661,45 @@ msgstr "%1$s: %2$s"
|
||||
#~ "GNOME Shell-tillägg har en uuid-egenskap; denna nyckel listar tillägg som "
|
||||
#~ "inte ska läsas in. Denna inställning åsidosätter enabled-extensions för "
|
||||
#~ "tillägg som visas i båda listorna."
|
||||
|
||||
#~ msgid "Uuids of extensions to disable"
|
||||
#~ msgstr "Uuid:er för tillägg att inaktivera"
|
||||
|
||||
#~ msgid "You're now connected to mobile broadband connection '%s'"
|
||||
#~ msgstr "Du är nu ansluten till mobila bredbandsanslutningen \"%s\""
|
||||
|
||||
#~ msgid "You're now connected to wireless network '%s'"
|
||||
#~ msgstr "Du är nu ansluten till trådlösa nätverket \"%s\""
|
||||
|
||||
#~ msgid "You're now connected to VPN network '%s'"
|
||||
#~ msgstr "Du är nu ansluten till VPN-nätverket \"%s\""
|
||||
|
||||
#~ msgid "Localization Settings"
|
||||
#~ msgstr "Språkinställningar"
|
||||
|
||||
#~ msgid "Less than a minute ago"
|
||||
#~ msgstr "Mindre än en minut sedan"
|
||||
|
||||
#~ msgid "%d minute ago"
|
||||
|
||||
#~ msgid_plural "%d minutes ago"
|
||||
#~ msgstr[0] "%d minut sedan"
|
||||
#~ msgstr[1] "%d minuter sedan"
|
||||
|
||||
#~ msgid "%d hour ago"
|
||||
|
||||
#~ msgid_plural "%d hours ago"
|
||||
#~ msgstr[0] "%d timme sedan"
|
||||
#~ msgstr[1] "%d timmar sedan"
|
||||
|
||||
#~ msgid "%d day ago"
|
||||
|
||||
#~ msgid_plural "%d days ago"
|
||||
#~ msgstr[0] "%d dag sedan"
|
||||
#~ msgstr[1] "%d dagar sedan"
|
||||
|
||||
#~ msgid "%d week ago"
|
||||
|
||||
#~ msgid_plural "%d weeks ago"
|
||||
#~ msgstr[0] "%d vecka sedan"
|
||||
#~ msgstr[1] "%d veckor sedan"
|
||||
@ -1638,86 +1711,119 @@ msgstr "%1$s: %2$s"
|
||||
#, fuzzy
|
||||
#~ msgid "Shut Down"
|
||||
#~ msgstr "Stäng av..."
|
||||
|
||||
#~ msgid "Clock"
|
||||
#~ msgstr "Klocka"
|
||||
|
||||
#~ msgid "Customize the panel clock"
|
||||
#~ msgstr "Anpassa panelklockan"
|
||||
|
||||
#~ msgid "Custom format of the clock"
|
||||
#~ msgstr "Anpassat format för klockan"
|
||||
|
||||
#~ msgid "Hour format"
|
||||
#~ msgstr "Timmesformat"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "If true and format is either \"12-hour\" or \"24-hour\", display seconds "
|
||||
#~ "in time."
|
||||
#~ msgstr ""
|
||||
#~ "Om true och formatet antingen är \"12-hour\" eller \"24-hour\", visa "
|
||||
#~ "sekunder i tiden."
|
||||
|
||||
#~ msgid "Enable lens mode"
|
||||
#~ msgstr "Aktivera linsläge"
|
||||
|
||||
#~ msgid "Magnification factor"
|
||||
#~ msgstr "Förstoringsfaktor"
|
||||
|
||||
#~ msgid "Screen position"
|
||||
#~ msgstr "Skärmposition"
|
||||
|
||||
#~ msgid "Clock Format"
|
||||
#~ msgstr "Klockformat"
|
||||
|
||||
#~ msgid "Clock Preferences"
|
||||
#~ msgstr "Klockinställningar"
|
||||
|
||||
#~ msgid "Panel Display"
|
||||
#~ msgstr "Panelvisning"
|
||||
|
||||
#~ msgid "Show seco_nds"
|
||||
#~ msgstr "Visa seku_nder"
|
||||
#~ msgid "Show the _date"
|
||||
#~ msgstr "Visa _datum"
|
||||
|
||||
#~ msgid "_12 hour format"
|
||||
#~ msgstr "_12-timmarsformat"
|
||||
|
||||
#~ msgid "_24 hour format"
|
||||
#~ msgstr "_24-timmarsformat"
|
||||
|
||||
#~ msgid "PREFERENCES"
|
||||
#~ msgstr "INSTÄLLNINGAR"
|
||||
|
||||
#~ msgid "Preferences"
|
||||
#~ msgstr "Inställningar"
|
||||
|
||||
#~ msgid "Search your computer"
|
||||
#~ msgstr "Sök i din dator"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "Can't add a new workspace because maximum workspaces limit has been "
|
||||
#~ "reached."
|
||||
#~ msgstr ""
|
||||
#~ "Kan inte lägga till en ny arbetsyta eftersom maximalt antal arbetsytor "
|
||||
#~ "har uppnåtts."
|
||||
|
||||
#~ msgid "Can't remove the first workspace."
|
||||
#~ msgstr "Kan inte ta bort första arbetsytan."
|
||||
|
||||
#~ msgid "Drag here to add favorites"
|
||||
#~ msgstr "Dra hit för att lägga till favorit"
|
||||
|
||||
#~ msgid "Find"
|
||||
#~ msgstr "Sök"
|
||||
|
||||
#~ msgid "ON"
|
||||
#~ msgstr "PÅ"
|
||||
|
||||
#~ msgid "OFF"
|
||||
#~ msgstr "AV"
|
||||
|
||||
#~ msgid "Invisible"
|
||||
#~ msgstr "Osynlig"
|
||||
|
||||
#~ msgid "PLACES"
|
||||
#~ msgstr "PLATSER"
|
||||
|
||||
#~ msgid "SEARCH RESULTS"
|
||||
#~ msgstr "SÖKRESULTAT"
|
||||
|
||||
#~ msgid "Recent Documents"
|
||||
#~ msgstr "Senaste dokument"
|
||||
|
||||
#~ msgid "(see all)"
|
||||
#~ msgstr "(se alla)"
|
||||
|
||||
#~ msgid "Can't lock screen: %s"
|
||||
#~ msgstr "Kan inte låsa skärmen: %s"
|
||||
|
||||
#~ msgid "Can't temporarily set screensaver to blank screen: %s"
|
||||
#~ msgstr "Kan inte temporärt ställa in skärmsläckaren till blank skärm: %s"
|
||||
|
||||
#~ msgid "Can't logout: %s"
|
||||
#~ msgstr "Kan inte logga ut: %s"
|
||||
|
||||
#~ msgid "Sidebar"
|
||||
#~ msgstr "Sidopanel"
|
||||
|
||||
#~ msgid "Browse"
|
||||
#~ msgstr "Bläddra"
|
||||
|
||||
#~ msgid "Find apps or documents"
|
||||
#~ msgstr "Hitta program eller dokument"
|
||||
|
||||
#~ msgid "DOCUMENTS"
|
||||
#~ msgstr "DOKUMENT"
|
||||
|
||||
#~ msgid "The user manager object this user is controlled by."
|
||||
#~ msgstr "Användarhanteringsobjektet som denna användare styrs av."
|
||||
|
||||
|
294
po/vi.po
294
po/vi.po
@ -9,8 +9,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: 2011-09-30 16:20+0000\n"
|
||||
"PO-Revision-Date: 2011-10-01 10:31+1000\n"
|
||||
"POT-Creation-Date: 2011-10-18 19:39+0000\n"
|
||||
"PO-Revision-Date: 2011-10-19 19:39+1100\n"
|
||||
"Last-Translator: Ngô Chin <ndtrung4419@gmail.com>\n"
|
||||
"Language-Team: Vietnamese <vi-VN@googlegroups.com>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@ -177,42 +177,42 @@ msgstr "Loại bàn phím cần dùng"
|
||||
msgid "disabled OpenSearch providers"
|
||||
msgstr "Phần cung cấp OpenSearch bị tắt"
|
||||
|
||||
#: ../js/gdm/loginDialog.js:617
|
||||
#: ../js/gdm/loginDialog.js:633
|
||||
msgid "Session..."
|
||||
msgstr "Phiên làm việc..."
|
||||
|
||||
#: ../js/gdm/loginDialog.js:785
|
||||
#: ../js/gdm/loginDialog.js:804
|
||||
msgctxt "title"
|
||||
msgid "Sign In"
|
||||
msgstr "Đăng nhập"
|
||||
|
||||
#. translators: this message is shown below the password entry field
|
||||
#. to indicate the user can swipe their finger instead
|
||||
#: ../js/gdm/loginDialog.js:830
|
||||
#: ../js/gdm/loginDialog.js:849
|
||||
msgid "(or swipe finger)"
|
||||
msgstr "(hoặc quẹt ngón tay)"
|
||||
|
||||
#: ../js/gdm/loginDialog.js:848
|
||||
#: ../js/gdm/loginDialog.js:867
|
||||
msgid "Not listed?"
|
||||
msgstr "Không có trong danh sách?"
|
||||
|
||||
#: ../js/gdm/loginDialog.js:1004 ../js/ui/endSessionDialog.js:426
|
||||
#: ../js/ui/extensionSystem.js:477 ../js/ui/networkAgent.js:165
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:171 ../js/ui/status/bluetooth.js:480
|
||||
#: ../js/gdm/loginDialog.js:1035 ../js/ui/endSessionDialog.js:426
|
||||
#: ../js/ui/extensionSystem.js:477 ../js/ui/networkAgent.js:148
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:173 ../js/ui/status/bluetooth.js:480
|
||||
msgid "Cancel"
|
||||
msgstr "Thôi"
|
||||
|
||||
#: ../js/gdm/loginDialog.js:1009
|
||||
#: ../js/gdm/loginDialog.js:1040
|
||||
msgctxt "button"
|
||||
msgid "Sign In"
|
||||
msgstr "Đăng nhập"
|
||||
|
||||
#: ../js/gdm/loginDialog.js:1358
|
||||
#: ../js/gdm/loginDialog.js:1392
|
||||
msgid "Login Window"
|
||||
msgstr "Cửa sổ đặt nhập"
|
||||
|
||||
#: ../js/gdm/powerMenu.js:116 ../js/ui/userMenu.js:514
|
||||
#: ../js/ui/userMenu.js:516 ../js/ui/userMenu.js:585
|
||||
#: ../js/gdm/powerMenu.js:116 ../js/ui/userMenu.js:554
|
||||
#: ../js/ui/userMenu.js:556 ../js/ui/userMenu.js:625
|
||||
msgid "Suspend"
|
||||
msgstr "Ngưng"
|
||||
|
||||
@ -435,32 +435,32 @@ msgstr "Tuần này"
|
||||
msgid "Next week"
|
||||
msgstr "Tuần tới"
|
||||
|
||||
#: ../js/ui/contactDisplay.js:59 ../js/ui/notificationDaemon.js:444
|
||||
#: ../js/ui/status/power.js:223 ../src/shell-app.c:355
|
||||
#: ../js/ui/contactDisplay.js:65 ../js/ui/notificationDaemon.js:459
|
||||
#: ../js/ui/status/power.js:223 ../src/shell-app.c:353
|
||||
msgid "Unknown"
|
||||
msgstr "Không biết"
|
||||
|
||||
#: ../js/ui/contactDisplay.js:80 ../js/ui/userMenu.js:139
|
||||
#: ../js/ui/contactDisplay.js:86 ../js/ui/userMenu.js:139
|
||||
msgid "Available"
|
||||
msgstr "Có mặt"
|
||||
|
||||
#: ../js/ui/contactDisplay.js:85 ../js/ui/userMenu.js:148
|
||||
#: ../js/ui/contactDisplay.js:91 ../js/ui/userMenu.js:148
|
||||
msgid "Away"
|
||||
msgstr "Vắng mặt"
|
||||
|
||||
#: ../js/ui/contactDisplay.js:89 ../js/ui/userMenu.js:142
|
||||
#: ../js/ui/contactDisplay.js:95 ../js/ui/userMenu.js:142
|
||||
msgid "Busy"
|
||||
msgstr "Bận"
|
||||
|
||||
#: ../js/ui/contactDisplay.js:93
|
||||
#: ../js/ui/contactDisplay.js:99
|
||||
msgid "Offline"
|
||||
msgstr "Ngoại tuyến"
|
||||
|
||||
#: ../js/ui/contactDisplay.js:140
|
||||
#: ../js/ui/contactDisplay.js:146
|
||||
msgid "CONTACTS"
|
||||
msgstr "LIÊN LẠC"
|
||||
|
||||
#: ../js/ui/dash.js:172 ../js/ui/messageTray.js:1204
|
||||
#: ../js/ui/dash.js:174 ../js/ui/messageTray.js:1206
|
||||
msgid "Remove"
|
||||
msgstr "Loại bỏ"
|
||||
|
||||
@ -590,147 +590,132 @@ msgstr "Cài đặt"
|
||||
msgid "Download and install '%s' from extensions.gnome.org?"
|
||||
msgstr "Tải và cài đặt '%s' từ extensions.gnome.org chứ?"
|
||||
|
||||
#: ../js/ui/keyboard.js:529 ../js/ui/status/power.js:211
|
||||
#: ../js/ui/keyboard.js:325
|
||||
#| msgid "Retry"
|
||||
msgid "tray"
|
||||
msgstr "khay"
|
||||
|
||||
#: ../js/ui/keyboard.js:547 ../js/ui/status/power.js:211
|
||||
msgid "Keyboard"
|
||||
msgstr "Bàn phím"
|
||||
|
||||
#: ../js/ui/lookingGlass.js:645
|
||||
#: ../js/ui/lookingGlass.js:646
|
||||
msgid "No extensions installed"
|
||||
msgstr "Chưa cài phần mở rộng"
|
||||
|
||||
#. Translators: argument is an extension UUID.
|
||||
#: ../js/ui/lookingGlass.js:700
|
||||
#, c-format
|
||||
msgid "%s has not emitted any errors."
|
||||
msgstr "%s không tạo ra bất kỳ lỗi gì."
|
||||
|
||||
#: ../js/ui/lookingGlass.js:706
|
||||
#| msgid "Error"
|
||||
msgid "Hide Errors"
|
||||
msgstr "Ẩn lỗi"
|
||||
|
||||
#: ../js/ui/lookingGlass.js:710 ../js/ui/lookingGlass.js:760
|
||||
#| msgid "Error"
|
||||
msgid "Show Errors"
|
||||
msgstr "Hiện lỗi"
|
||||
|
||||
#: ../js/ui/lookingGlass.js:719
|
||||
#: ../js/ui/lookingGlass.js:692
|
||||
msgid "Enabled"
|
||||
msgstr "Bật"
|
||||
|
||||
#. translators:
|
||||
#. * The device has been disabled
|
||||
#: ../js/ui/lookingGlass.js:721 ../src/gvc/gvc-mixer-control.c:1093
|
||||
#: ../js/ui/lookingGlass.js:694 ../src/gvc/gvc-mixer-control.c:1093
|
||||
msgid "Disabled"
|
||||
msgstr "Tắt"
|
||||
|
||||
#: ../js/ui/lookingGlass.js:723
|
||||
#: ../js/ui/lookingGlass.js:696
|
||||
msgid "Error"
|
||||
msgstr "Lỗi"
|
||||
|
||||
#: ../js/ui/lookingGlass.js:725
|
||||
#: ../js/ui/lookingGlass.js:698
|
||||
msgid "Out of date"
|
||||
msgstr "Hết hạn"
|
||||
|
||||
#: ../js/ui/lookingGlass.js:727
|
||||
#: ../js/ui/lookingGlass.js:700
|
||||
msgid "Downloading"
|
||||
msgstr "Đang tải về"
|
||||
|
||||
#: ../js/ui/lookingGlass.js:748
|
||||
#: ../js/ui/lookingGlass.js:721
|
||||
msgid "View Source"
|
||||
msgstr "Xem mã nguồn"
|
||||
|
||||
#: ../js/ui/lookingGlass.js:754
|
||||
#: ../js/ui/lookingGlass.js:727
|
||||
msgid "Web Page"
|
||||
msgstr "Trang Web"
|
||||
|
||||
#: ../js/ui/messageTray.js:1197
|
||||
#: ../js/ui/messageTray.js:1199
|
||||
msgid "Open"
|
||||
msgstr "Mở"
|
||||
|
||||
#: ../js/ui/messageTray.js:2406
|
||||
#: ../js/ui/messageTray.js:2408
|
||||
msgid "System Information"
|
||||
msgstr "Thông tin hệ thống"
|
||||
|
||||
#: ../js/ui/networkAgent.js:145
|
||||
msgid "Show password"
|
||||
msgstr "Hiện mật khẩu"
|
||||
|
||||
#: ../js/ui/networkAgent.js:160
|
||||
#: ../js/ui/networkAgent.js:143
|
||||
msgid "Connect"
|
||||
msgstr "Kết nối"
|
||||
|
||||
#. Cisco LEAP
|
||||
#: ../js/ui/networkAgent.js:255 ../js/ui/networkAgent.js:267
|
||||
#: ../js/ui/networkAgent.js:294 ../js/ui/networkAgent.js:314
|
||||
#: ../js/ui/networkAgent.js:324
|
||||
#: ../js/ui/networkAgent.js:238 ../js/ui/networkAgent.js:250
|
||||
#: ../js/ui/networkAgent.js:277 ../js/ui/networkAgent.js:297
|
||||
#: ../js/ui/networkAgent.js:307
|
||||
msgid "Password: "
|
||||
msgstr "Mật khẩu: "
|
||||
|
||||
#. static WEP
|
||||
#: ../js/ui/networkAgent.js:260
|
||||
#: ../js/ui/networkAgent.js:243
|
||||
msgid "Key: "
|
||||
msgstr "Khoá: "
|
||||
|
||||
#. 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/ui/networkAgent.js:292 ../js/ui/networkAgent.js:310
|
||||
#: ../js/ui/networkAgent.js:275 ../js/ui/networkAgent.js:293
|
||||
msgid "Username: "
|
||||
msgstr "Tên người dùng: "
|
||||
|
||||
#: ../js/ui/networkAgent.js:298
|
||||
#: ../js/ui/networkAgent.js:281
|
||||
msgid "Identity: "
|
||||
msgstr "Định danh: "
|
||||
|
||||
#: ../js/ui/networkAgent.js:300
|
||||
#: ../js/ui/networkAgent.js:283
|
||||
msgid "Private key password: "
|
||||
msgstr "Mật khẩu khoá riêng: "
|
||||
|
||||
#: ../js/ui/networkAgent.js:312
|
||||
#: ../js/ui/networkAgent.js:295
|
||||
msgid "Service: "
|
||||
msgstr "Dịch vụ: "
|
||||
|
||||
#: ../js/ui/networkAgent.js:341
|
||||
#: ../js/ui/networkAgent.js:324
|
||||
msgid "Authentication required by wireless network"
|
||||
msgstr "Mạng không dây cần xác thực"
|
||||
|
||||
#: ../js/ui/networkAgent.js:342
|
||||
#: ../js/ui/networkAgent.js:325
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Passwords or encryption keys are required to access the wireless network "
|
||||
"'%s'."
|
||||
msgstr "Cần mật mã hoặc khoá mã để truy cập mạng không dây '%s'"
|
||||
|
||||
#: ../js/ui/networkAgent.js:346
|
||||
#: ../js/ui/networkAgent.js:329
|
||||
msgid "Wired 802.1X authentication"
|
||||
msgstr "Xác thực Wired 802.1X"
|
||||
|
||||
#: ../js/ui/networkAgent.js:348
|
||||
#: ../js/ui/networkAgent.js:331
|
||||
msgid "Network name: "
|
||||
msgstr "Tên mạng: "
|
||||
|
||||
#: ../js/ui/networkAgent.js:353
|
||||
#: ../js/ui/networkAgent.js:336
|
||||
msgid "DSL authentication"
|
||||
msgstr "Xác thực DSL"
|
||||
|
||||
#: ../js/ui/networkAgent.js:360
|
||||
#: ../js/ui/networkAgent.js:343
|
||||
msgid "PIN code required"
|
||||
msgstr "Cần mã PIN"
|
||||
|
||||
#: ../js/ui/networkAgent.js:361
|
||||
#: ../js/ui/networkAgent.js:344
|
||||
msgid "PIN code is needed for the mobile broadband device"
|
||||
msgstr "Thiết bị di động băng thông rộng cần mã PIN"
|
||||
|
||||
#: ../js/ui/networkAgent.js:362
|
||||
#: ../js/ui/networkAgent.js:345
|
||||
msgid "PIN: "
|
||||
msgstr "PIN: "
|
||||
|
||||
#: ../js/ui/networkAgent.js:368
|
||||
#: ../js/ui/networkAgent.js:351
|
||||
msgid "Mobile broadband network password"
|
||||
msgstr "Mật khẩu mạng băng thông rộng"
|
||||
|
||||
#: ../js/ui/networkAgent.js:369
|
||||
#: ../js/ui/networkAgent.js:352
|
||||
#, c-format
|
||||
msgid "A password is required to connect to '%s'."
|
||||
msgstr "Cần mật khẩu để kết nối đến '%s'."
|
||||
@ -786,15 +771,15 @@ msgstr "Kết nối đến..."
|
||||
msgid "PLACES & DEVICES"
|
||||
msgstr "ĐỊA ĐIỂM & THIẾT BỊ"
|
||||
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:72
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:73
|
||||
msgid "Authentication Required"
|
||||
msgstr "Cần xác thực"
|
||||
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:106
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:107
|
||||
msgid "Administrator"
|
||||
msgstr "Quản trị"
|
||||
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:175
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:177
|
||||
msgid "Authenticate"
|
||||
msgstr "Xác thực"
|
||||
|
||||
@ -802,11 +787,11 @@ msgstr "Xác thực"
|
||||
#. * requested authentication was not gained; this can happen
|
||||
#. * because of an authentication error (like invalid password),
|
||||
#. * for instance.
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:256
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:258
|
||||
msgid "Sorry, that didn't work. Please try again."
|
||||
msgstr "Rất tiếc, không được. Vui lòng thử lại."
|
||||
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:268
|
||||
#: ../js/ui/polkitAuthenticationAgent.js:270
|
||||
msgid "Password:"
|
||||
msgstr "Mật khẩu:"
|
||||
|
||||
@ -819,7 +804,7 @@ msgstr "Mật khẩu:"
|
||||
msgid "toggle-switch-us"
|
||||
msgstr "toggle-switch-intl"
|
||||
|
||||
#: ../js/ui/runDialog.js:208
|
||||
#: ../js/ui/runDialog.js:209
|
||||
msgid "Please enter a command:"
|
||||
msgstr "Vui lòng nhập lệnh:"
|
||||
|
||||
@ -831,6 +816,24 @@ msgstr "Đang tìm..."
|
||||
msgid "No matching results."
|
||||
msgstr "Không tìm thấy."
|
||||
|
||||
#: ../js/ui/shellEntry.js:30
|
||||
msgid "Copy"
|
||||
msgstr "Chép"
|
||||
|
||||
#: ../js/ui/shellEntry.js:35
|
||||
msgid "Paste"
|
||||
msgstr "Dán"
|
||||
|
||||
#: ../js/ui/shellEntry.js:81
|
||||
#| msgid "Show the _date"
|
||||
msgid "Show Text"
|
||||
msgstr "Hiện chữ"
|
||||
|
||||
#: ../js/ui/shellEntry.js:83
|
||||
#| msgid "Large Text"
|
||||
msgid "Hide Text"
|
||||
msgstr "Ẩn chữ"
|
||||
|
||||
#: ../js/ui/shellMountOperation.js:285
|
||||
msgid "Wrong password, please try again"
|
||||
msgstr "Nhập sai mật khẩu, xin hãy thử lại"
|
||||
@ -843,7 +846,6 @@ msgstr "Phóng to"
|
||||
#. 'screen-reader-enabled');
|
||||
#. this.menu.addMenuItem(screenReader);
|
||||
#: ../js/ui/status/accessibility.js:71
|
||||
#| msgid "Screen Reader"
|
||||
msgid "Screen Keyboard"
|
||||
msgstr "Bàn phím màn hình"
|
||||
|
||||
@ -965,7 +967,7 @@ msgstr "Luôn cho phép"
|
||||
msgid "Grant this time only"
|
||||
msgstr "Chỉ cho phép lần này"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:392 ../js/ui/telepathyClient.js:1200
|
||||
#: ../js/ui/status/bluetooth.js:392 ../js/ui/telepathyClient.js:1204
|
||||
msgid "Reject"
|
||||
msgstr "Từ chối"
|
||||
|
||||
@ -1247,22 +1249,22 @@ msgstr "Yêu cầu đăng ký"
|
||||
msgid "Connection error"
|
||||
msgstr "Lỗi kết nối"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:737
|
||||
#: ../js/ui/telepathyClient.js:741
|
||||
#, c-format
|
||||
msgid "%s is online."
|
||||
msgstr "%s đang trực tuyến."
|
||||
|
||||
#: ../js/ui/telepathyClient.js:742
|
||||
#: ../js/ui/telepathyClient.js:746
|
||||
#, c-format
|
||||
msgid "%s is offline."
|
||||
msgstr "%s đã ngoại tuyến."
|
||||
|
||||
#: ../js/ui/telepathyClient.js:745
|
||||
#: ../js/ui/telepathyClient.js:749
|
||||
#, c-format
|
||||
msgid "%s is away."
|
||||
msgstr "%s đi vắng."
|
||||
|
||||
#: ../js/ui/telepathyClient.js:748
|
||||
#: ../js/ui/telepathyClient.js:752
|
||||
#, c-format
|
||||
msgid "%s is busy."
|
||||
msgstr "%s bận."
|
||||
@ -1270,35 +1272,35 @@ msgstr "%s bận."
|
||||
#. Translators: this is a time format string followed by a date.
|
||||
#. If applicable, replace %X with a strftime format valid for your
|
||||
#. locale, without seconds.
|
||||
#: ../js/ui/telepathyClient.js:982
|
||||
#: ../js/ui/telepathyClient.js:986
|
||||
#, no-c-format
|
||||
msgid "Sent at <b>%X</b> on <b>%A</b>"
|
||||
msgstr "Đã gửi <b>%X</b> lúc <b>%A</b>"
|
||||
|
||||
#. Translators: this is a time format in the style of "Wednesday, May 25",
|
||||
#. shown when you get a chat message in the same year.
|
||||
#: ../js/ui/telepathyClient.js:988
|
||||
#: ../js/ui/telepathyClient.js:992
|
||||
#, no-c-format
|
||||
msgid "Sent on <b>%A</b>, <b>%B %d</b>"
|
||||
msgstr "Đã gửi <b>%A</b>, <b>%d %B</b>"
|
||||
|
||||
#. Translators: this is a time format in the style of "Wednesday, May 25, 2012",
|
||||
#. shown when you get a chat message in a different year.
|
||||
#: ../js/ui/telepathyClient.js:993
|
||||
#: ../js/ui/telepathyClient.js:997
|
||||
#, no-c-format
|
||||
msgid "Sent on <b>%A</b>, <b>%B %d</b>, %Y"
|
||||
msgstr "Đã gửi <b>%A</b>, <b>%d %B</b>, %Y"
|
||||
|
||||
#. Translators: this is the other person changing their old IM name to their new
|
||||
#. IM name.
|
||||
#: ../js/ui/telepathyClient.js:1035
|
||||
#: ../js/ui/telepathyClient.js:1039
|
||||
#, c-format
|
||||
msgid "%s is now known as %s"
|
||||
msgstr "%s bây giờ đổi thành %s"
|
||||
|
||||
#. translators: argument is a room name like
|
||||
#. * room@jabber.org for example.
|
||||
#: ../js/ui/telepathyClient.js:1144
|
||||
#: ../js/ui/telepathyClient.js:1148
|
||||
#, c-format
|
||||
msgid "Invitation to %s"
|
||||
msgstr "Mời vào phòng %s"
|
||||
@ -1306,34 +1308,35 @@ msgstr "Mời vào phòng %s"
|
||||
#. translators: first argument is the name of a contact and the second
|
||||
#. * one the name of a room. "Alice is inviting you to join room@jabber.org
|
||||
#. * for example.
|
||||
#: ../js/ui/telepathyClient.js:1152
|
||||
#: ../js/ui/telepathyClient.js:1156
|
||||
#, c-format
|
||||
msgid "%s is inviting you to join %s"
|
||||
msgstr "%s đang mời bạn vào phòng %s"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1154 ../js/ui/telepathyClient.js:1243
|
||||
#: ../js/ui/telepathyClient.js:1347
|
||||
#: ../js/ui/telepathyClient.js:1158 ../js/ui/telepathyClient.js:1248
|
||||
#: ../js/ui/telepathyClient.js:1352
|
||||
msgid "Decline"
|
||||
msgstr "Từ chối"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1155 ../js/ui/telepathyClient.js:1244
|
||||
#: ../js/ui/telepathyClient.js:1348
|
||||
#: ../js/ui/telepathyClient.js:1159 ../js/ui/telepathyClient.js:1249
|
||||
#: ../js/ui/telepathyClient.js:1353
|
||||
msgid "Accept"
|
||||
msgstr "Đồng ý"
|
||||
|
||||
#. translators: argument is a contact name like Alice for example.
|
||||
#: ../js/ui/telepathyClient.js:1188
|
||||
#: ../js/ui/telepathyClient.js:1192
|
||||
#, c-format
|
||||
msgid "Video call from %s"
|
||||
msgstr "Cuộc gọi video từ %s"
|
||||
|
||||
#. translators: argument is a contact name like Alice for example.
|
||||
#: ../js/ui/telepathyClient.js:1191
|
||||
#: ../js/ui/telepathyClient.js:1195
|
||||
#, c-format
|
||||
msgid "Call from %s"
|
||||
msgstr "Cuộc gọi từ %s"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1201
|
||||
#. translators: this is a button label (verb), not a noun
|
||||
#: ../js/ui/telepathyClient.js:1206
|
||||
msgid "Answer"
|
||||
msgstr "Trả lời"
|
||||
|
||||
@ -1342,108 +1345,108 @@ msgstr "Trả lời"
|
||||
#. * file name. The string will be something
|
||||
#. * like: "Alice is sending you test.ogg"
|
||||
#.
|
||||
#: ../js/ui/telepathyClient.js:1237
|
||||
#: ../js/ui/telepathyClient.js:1242
|
||||
#, c-format
|
||||
msgid "%s is sending you %s"
|
||||
msgstr "%s đang gửi bạn %s"
|
||||
|
||||
#. To translators: The parameter is the contact's alias
|
||||
#: ../js/ui/telepathyClient.js:1312
|
||||
#: ../js/ui/telepathyClient.js:1317
|
||||
#, c-format
|
||||
msgid "%s would like permission to see when you are online"
|
||||
msgstr "%s muốn được phép được thông báo khi bạn trực tuyến"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1410
|
||||
#: ../js/ui/telepathyClient.js:1415
|
||||
msgid "Network error"
|
||||
msgstr "Lỗi mạng"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1412
|
||||
#: ../js/ui/telepathyClient.js:1417
|
||||
msgid "Authentication failed"
|
||||
msgstr "Lỗi xác thực"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1414
|
||||
#: ../js/ui/telepathyClient.js:1419
|
||||
msgid "Encryption error"
|
||||
msgstr "Lỗi mã hoá"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1416
|
||||
#: ../js/ui/telepathyClient.js:1421
|
||||
msgid "Certificate not provided"
|
||||
msgstr "Chưa cung cấp chứng nhận"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1418
|
||||
#: ../js/ui/telepathyClient.js:1423
|
||||
msgid "Certificate untrusted"
|
||||
msgstr "Chứng nhận không đáng tin"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1420
|
||||
#: ../js/ui/telepathyClient.js:1425
|
||||
msgid "Certificate expired"
|
||||
msgstr "Chứng nhận hết hạn"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1422
|
||||
#: ../js/ui/telepathyClient.js:1427
|
||||
msgid "Certificate not activated"
|
||||
msgstr "Chứng nhận chưa kích hoạt"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1424
|
||||
#: ../js/ui/telepathyClient.js:1429
|
||||
msgid "Certificate hostname mismatch"
|
||||
msgstr "Tên máy của chứng nhận không khớp"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1426
|
||||
#: ../js/ui/telepathyClient.js:1431
|
||||
msgid "Certificate fingerprint mismatch"
|
||||
msgstr "Dấu vân tay chứng nhận không khớp"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1428
|
||||
#: ../js/ui/telepathyClient.js:1433
|
||||
msgid "Certificate self-signed"
|
||||
msgstr "Chứng nhận tự ký"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1430
|
||||
#: ../js/ui/telepathyClient.js:1435
|
||||
msgid "Status is set to offline"
|
||||
msgstr "Đã đặt trạng thái là ngoại tuyến"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1432
|
||||
#: ../js/ui/telepathyClient.js:1437
|
||||
msgid "Encryption is not available"
|
||||
msgstr "Không hỗ trợ mã hoá"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1434
|
||||
#: ../js/ui/telepathyClient.js:1439
|
||||
msgid "Certificate is invalid"
|
||||
msgstr "Chứng nhận không hợp lệ"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1436
|
||||
#: ../js/ui/telepathyClient.js:1441
|
||||
msgid "Connection has been refused"
|
||||
msgstr "Kết nối bị từ chối"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1438
|
||||
#: ../js/ui/telepathyClient.js:1443
|
||||
msgid "Connection can't be established"
|
||||
msgstr "Không thể tạo kết nối"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1440
|
||||
#: ../js/ui/telepathyClient.js:1445
|
||||
msgid "Connection has been lost"
|
||||
msgstr "Mất kết nối"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1442
|
||||
#: ../js/ui/telepathyClient.js:1447
|
||||
msgid "This resource is already connected to the server"
|
||||
msgstr "Tài nguyên này đã kết nối đến máy chủ"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1444
|
||||
#: ../js/ui/telepathyClient.js:1449
|
||||
msgid ""
|
||||
"Connection has been replaced by a new connection using the same resource"
|
||||
msgstr "Kết nối bị thay thế bằng một kết nối mới cùng tài nguyên"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1446
|
||||
#: ../js/ui/telepathyClient.js:1451
|
||||
msgid "The account already exists on the server"
|
||||
msgstr "Tài khoản đã có trên máy chủ"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1448
|
||||
#: ../js/ui/telepathyClient.js:1453
|
||||
msgid "Server is currently too busy to handle the connection"
|
||||
msgstr "Máy chủ đang bận không thể xử lý kết nối"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1450
|
||||
#: ../js/ui/telepathyClient.js:1455
|
||||
msgid "Certificate has been revoked"
|
||||
msgstr "Chứng nhận bị thu hồi"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1452
|
||||
#: ../js/ui/telepathyClient.js:1457
|
||||
msgid ""
|
||||
"Certificate uses an insecure cipher algorithm or is cryptographically weak"
|
||||
msgstr "Chứng nhận dùng thuật toán mật mã yếu hoặc không an toàn"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1454
|
||||
#: ../js/ui/telepathyClient.js:1459
|
||||
msgid ""
|
||||
"The length of the server certificate, or the depth of the server certificate "
|
||||
"chain, exceed the limits imposed by the cryptography library"
|
||||
@ -1453,20 +1456,20 @@ msgstr ""
|
||||
|
||||
#. translators: argument is the account name, like
|
||||
#. * name@jabber.org for example.
|
||||
#: ../js/ui/telepathyClient.js:1463
|
||||
#: ../js/ui/telepathyClient.js:1468
|
||||
#, c-format
|
||||
msgid "Connection to %s failed"
|
||||
msgstr "Kết nối %s thất bại"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1472
|
||||
#: ../js/ui/telepathyClient.js:1477
|
||||
msgid "Reconnect"
|
||||
msgstr "Tái kết nối"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1473
|
||||
#: ../js/ui/telepathyClient.js:1478
|
||||
msgid "Edit account"
|
||||
msgstr "Sửa tài khoản"
|
||||
|
||||
#: ../js/ui/telepathyClient.js:1519
|
||||
#: ../js/ui/telepathyClient.js:1524
|
||||
msgid "Unknown reason"
|
||||
msgstr "Lý do không biết"
|
||||
|
||||
@ -1482,39 +1485,39 @@ msgstr "Nhàn rỗi"
|
||||
msgid "Unavailable"
|
||||
msgstr "Không có mặt"
|
||||
|
||||
#: ../js/ui/userMenu.js:512 ../js/ui/userMenu.js:516 ../js/ui/userMenu.js:586
|
||||
#: ../js/ui/userMenu.js:552 ../js/ui/userMenu.js:556 ../js/ui/userMenu.js:626
|
||||
msgid "Power Off..."
|
||||
msgstr "Tắt máy..."
|
||||
|
||||
#: ../js/ui/userMenu.js:548
|
||||
#: ../js/ui/userMenu.js:588
|
||||
msgid "Notifications"
|
||||
msgstr "Thông báo"
|
||||
|
||||
#: ../js/ui/userMenu.js:556
|
||||
#: ../js/ui/userMenu.js:596
|
||||
msgid "Online Accounts"
|
||||
msgstr "Tài khoản trực tuyến"
|
||||
|
||||
#: ../js/ui/userMenu.js:560
|
||||
#: ../js/ui/userMenu.js:600
|
||||
msgid "System Settings"
|
||||
msgstr "Thiết lập hệ thống"
|
||||
|
||||
#: ../js/ui/userMenu.js:567
|
||||
#: ../js/ui/userMenu.js:607
|
||||
msgid "Lock Screen"
|
||||
msgstr "Khoá màn hình"
|
||||
|
||||
#: ../js/ui/userMenu.js:572
|
||||
#: ../js/ui/userMenu.js:612
|
||||
msgid "Switch User"
|
||||
msgstr "Chuyển người dùng"
|
||||
|
||||
#: ../js/ui/userMenu.js:577
|
||||
#: ../js/ui/userMenu.js:617
|
||||
msgid "Log Out..."
|
||||
msgstr "Đăng xuất..."
|
||||
|
||||
#: ../js/ui/userMenu.js:605
|
||||
#: ../js/ui/userMenu.js:645
|
||||
msgid "Your chat status will be set to busy"
|
||||
msgstr "Trạng thái nhắn tin của bạn sẽ được đặt là bận"
|
||||
|
||||
#: ../js/ui/userMenu.js:606
|
||||
#: ../js/ui/userMenu.js:646
|
||||
msgid ""
|
||||
"Notifications are now disabled, including chat messages. Your online status "
|
||||
"has been adjusted to let others know that you might not see their messages."
|
||||
@ -1526,11 +1529,11 @@ msgstr ""
|
||||
#. in the search entry when no search is
|
||||
#. active; it should not exceed ~30
|
||||
#. characters.
|
||||
#: ../js/ui/viewSelector.js:120
|
||||
#: ../js/ui/viewSelector.js:121
|
||||
msgid "Type to search..."
|
||||
msgstr "Nhập để tìm..."
|
||||
|
||||
#: ../js/ui/viewSelector.js:140 ../src/shell-util.c:261
|
||||
#: ../js/ui/viewSelector.js:142 ../src/shell-util.c:261
|
||||
msgid "Search"
|
||||
msgstr "Tìm"
|
||||
|
||||
@ -1567,7 +1570,7 @@ msgstr "In phiên bản"
|
||||
msgid "Mode used by GDM for login screen"
|
||||
msgstr "Chể độ dùng bởi GDM cho màn hình đăng nhập"
|
||||
|
||||
#: ../src/shell-app.c:581
|
||||
#: ../src/shell-app.c:579
|
||||
#, c-format
|
||||
msgid "Failed to launch '%s'"
|
||||
msgstr "Lỗi chạy '%s'"
|
||||
@ -1604,6 +1607,20 @@ msgstr "Hệ thống tập tin"
|
||||
msgid "%1$s: %2$s"
|
||||
msgstr "%1$s: %2$s"
|
||||
|
||||
#~ msgid "%s has not emitted any errors."
|
||||
#~ msgstr "%s không tạo ra bất kỳ lỗi gì."
|
||||
|
||||
#~| msgid "Error"
|
||||
#~ msgid "Hide Errors"
|
||||
#~ msgstr "Ẩn lỗi"
|
||||
|
||||
#~| msgid "Error"
|
||||
#~ msgid "Show Errors"
|
||||
#~ msgstr "Hiện lỗi"
|
||||
|
||||
#~ msgid "Show password"
|
||||
#~ msgstr "Hiện mật khẩu"
|
||||
|
||||
#~| msgid "If true, display seconds in time."
|
||||
#~ msgid "If true, display onscreen keyboard."
|
||||
#~ msgstr "Nếu đúng (true), hiện bàn phím màn hình."
|
||||
@ -1742,9 +1759,6 @@ msgstr "%1$s: %2$s"
|
||||
#~ msgid "Show seco_nds"
|
||||
#~ msgstr "Hiện _giây"
|
||||
|
||||
#~ msgid "Show the _date"
|
||||
#~ msgstr "Hiện _ngày"
|
||||
|
||||
#~ msgid "_12 hour format"
|
||||
#~ msgstr "Dạng _12 giờ"
|
||||
|
||||
|
599
po/zh_HK.po
599
po/zh_HK.po
File diff suppressed because it is too large
Load Diff
601
po/zh_TW.po
601
po/zh_TW.po
File diff suppressed because it is too large
Load Diff
@ -101,7 +101,6 @@ shell_public_headers_h = \
|
||||
shell-app.h \
|
||||
shell-app-system.h \
|
||||
shell-app-usage.h \
|
||||
shell-arrow.h \
|
||||
shell-contact-system.h \
|
||||
shell-doc-system.h \
|
||||
shell-embedded-window.h \
|
||||
@ -138,7 +137,6 @@ libgnome_shell_la_SOURCES = \
|
||||
shell-a11y.c \
|
||||
shell-app-system.c \
|
||||
shell-app-usage.c \
|
||||
shell-arrow.c \
|
||||
shell-contact-system.c \
|
||||
shell-doc-system.c \
|
||||
shell-embedded-window.c \
|
||||
@ -277,7 +275,7 @@ Shell_0_1_gir_CFLAGS = $(libgnome_shell_la_CPPFLAGS) -I $(srcdir)
|
||||
Shell_0_1_gir_LIBS = libgnome-shell.la
|
||||
Shell_0_1_gir_FILES = $(libgnome_shell_la_gir_sources)
|
||||
Shell_0_1_gir_SCANNERFLAGS = --include-uninstalled=$(builddir)/St-1.0.gir \
|
||||
--add-include-path=$(MUTTER_GIR_DIR)
|
||||
--add-include-path=$(MUTTER_GIR_DIR) $(if $(BLUETOOTH_DIR),-L $(BLUETOOTH_DIR),)
|
||||
INTROSPECTION_GIRS += Shell-0.1.gir
|
||||
CLEANFILES += Shell-0.1.gir
|
||||
|
||||
|
@ -17,15 +17,7 @@ except ImportError:
|
||||
print 'The Python simplejson module is required'
|
||||
sys.exit(1)
|
||||
|
||||
parser = optparse.OptionParser()
|
||||
parser.add_option("", "--create-extension", action="store_true",
|
||||
help="Create a new GNOME Shell extension")
|
||||
|
||||
options, args = parser.parse_args()
|
||||
|
||||
if args:
|
||||
parser.print_usage()
|
||||
sys.exit(1)
|
||||
from gi.repository import Gio
|
||||
|
||||
SAMPLE_EXTENSION_FILES = {
|
||||
"extension.js": """
|
||||
@ -96,7 +88,7 @@ function disable() {
|
||||
""",
|
||||
}
|
||||
|
||||
if options.create_extension:
|
||||
def create_extension():
|
||||
print
|
||||
print '''Name should be a very short (ideally descriptive) string.
|
||||
Examples are: "Click To Focus", "Adblock", "Shell Window Shrinker".
|
||||
@ -148,5 +140,65 @@ use an extension title clicktofocus@janedoe.example.com.'''
|
||||
f.close()
|
||||
|
||||
print "Created extension in %r" % (extension_path, )
|
||||
subprocess.Popen(['gnome-open', extensionjs_path])
|
||||
sys.exit(0)
|
||||
extensionjs_path = os.path.join(extension_path, 'extension.js')
|
||||
subprocess.Popen(['xdg-open', extensionjs_path])
|
||||
|
||||
ENABLED_EXTENSIONS_KEY = 'enabled-extensions'
|
||||
|
||||
def enable_extension(uuid):
|
||||
settings = Gio.Settings(schema='org.gnome.shell')
|
||||
extensions = settings.get_strv(ENABLED_EXTENSIONS_KEY)
|
||||
|
||||
if uuid in extensions:
|
||||
print >> sys.stderr, "%r is already enabled." % (uuid,)
|
||||
sys.exit(1)
|
||||
|
||||
extensions.append(uuid)
|
||||
settings.set_strv(ENABLED_EXTENSIONS_KEY, extensions)
|
||||
print >> sys.stderr, "%r is now enabled." % (uuid,)
|
||||
|
||||
def disable_extension(uuid):
|
||||
settings = Gio.Settings(schema='org.gnome.shell')
|
||||
extensions = settings.get_strv(ENABLED_EXTENSIONS_KEY)
|
||||
|
||||
if uuid not in extensions:
|
||||
print >> sys.stderr, "%r is not enabled or installed." % (uuid,)
|
||||
sys.exit(1)
|
||||
|
||||
# Use a while loop here to remove *all* mentions instances
|
||||
# of the extension. Some faulty tools like to append more than one.
|
||||
while uuid in extensions:
|
||||
extensions.remove(uuid)
|
||||
|
||||
settings.set_strv(ENABLED_EXTENSIONS_KEY, extensions)
|
||||
print >> sys.stderr, "%r is now disabled." % (uuid,)
|
||||
|
||||
def main():
|
||||
parser = optparse.OptionParser()
|
||||
parser.add_option("-d", "--disable-extension", dest="disable",
|
||||
help="Disable a GNOME Shell extension")
|
||||
parser.add_option("-e", "--enable-extension", dest="enable",
|
||||
help="Enable a GNOME Shell extension")
|
||||
parser.add_option("-c", "--create-extension", dest="create", action="store_true",
|
||||
help="Create a new GNOME Shell extension")
|
||||
options, args = parser.parse_args()
|
||||
|
||||
if args:
|
||||
parser.print_usage()
|
||||
sys.exit(1)
|
||||
|
||||
if options.disable:
|
||||
disable_extension(options.disable)
|
||||
|
||||
elif options.enable:
|
||||
enable_extension(options.enable)
|
||||
|
||||
elif options.create:
|
||||
create_extension()
|
||||
|
||||
else:
|
||||
parser.print_usage()
|
||||
sys.exit(1)
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
202
src/main.c
202
src/main.c
@ -8,9 +8,9 @@
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#include <cogl-pango/cogl-pango.h>
|
||||
#include <clutter/clutter.h>
|
||||
#include <clutter/x11/clutter-x11.h>
|
||||
#include <dbus/dbus-glib.h>
|
||||
#include <gdk/gdk.h>
|
||||
#include <gdk/gdkx.h>
|
||||
#include <gtk/gtk.h>
|
||||
@ -33,102 +33,130 @@ extern GType gnome_shell_plugin_get_type (void);
|
||||
#define SHELL_DBUS_SERVICE "org.gnome.Shell"
|
||||
#define MAGNIFIER_DBUS_SERVICE "org.gnome.Magnifier"
|
||||
|
||||
#define OVERRIDES_SCHEMA "org.gnome.shell.overrides"
|
||||
|
||||
static gboolean is_gdm_mode = FALSE;
|
||||
|
||||
#define DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER 1
|
||||
#define DBUS_REQUEST_NAME_REPLY_ALREADY_OWNER 4
|
||||
|
||||
static void
|
||||
shell_dbus_acquire_name (GDBusProxy *bus,
|
||||
guint32 request_name_flags,
|
||||
guint32 *request_name_result,
|
||||
gchar *name,
|
||||
gboolean fatal)
|
||||
{
|
||||
GError *error = NULL;
|
||||
GVariant *request_name_variant;
|
||||
|
||||
if (!(request_name_variant = g_dbus_proxy_call_sync (bus,
|
||||
"RequestName",
|
||||
g_variant_new ("(su)", name, request_name_flags),
|
||||
0, /* call flags */
|
||||
-1, /* timeout */
|
||||
NULL, /* cancellable */
|
||||
&error)))
|
||||
{
|
||||
g_printerr ("failed to acquire %s: %s\n", name, error->message);
|
||||
if (!fatal)
|
||||
return;
|
||||
exit (1);
|
||||
}
|
||||
g_variant_get (request_name_variant, "(u)", request_name_result);
|
||||
}
|
||||
|
||||
static void
|
||||
shell_dbus_acquire_names (GDBusProxy *bus,
|
||||
guint32 request_name_flags,
|
||||
gchar *name,
|
||||
gboolean fatal, ...) G_GNUC_NULL_TERMINATED;
|
||||
|
||||
static void
|
||||
shell_dbus_acquire_names (GDBusProxy *bus,
|
||||
guint32 request_name_flags,
|
||||
gchar *name,
|
||||
gboolean fatal, ...)
|
||||
{
|
||||
va_list al;
|
||||
guint32 request_name_result;
|
||||
va_start (al, fatal);
|
||||
for (;;)
|
||||
{
|
||||
shell_dbus_acquire_name (bus,
|
||||
request_name_flags,
|
||||
&request_name_result,
|
||||
name, fatal);
|
||||
name = va_arg (al, gchar *);
|
||||
if (!name)
|
||||
break;
|
||||
fatal = va_arg (al, gboolean);
|
||||
}
|
||||
va_end (al);
|
||||
}
|
||||
|
||||
static void
|
||||
shell_dbus_init (gboolean replace)
|
||||
{
|
||||
GDBusConnection *session;
|
||||
GDBusProxy *bus;
|
||||
GError *error = NULL;
|
||||
DBusGConnection *session;
|
||||
DBusGProxy *bus;
|
||||
guint32 request_name_flags;
|
||||
guint32 request_name_result;
|
||||
|
||||
/** TODO:
|
||||
* In the future we should use GDBus for this. However, in
|
||||
* order to do that, we need to port all of the JavaScript
|
||||
* code. Otherwise, the name will be claimed on the wrong
|
||||
* connection.
|
||||
*/
|
||||
session = dbus_g_bus_get (DBUS_BUS_SESSION, NULL);
|
||||
session = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, &error);
|
||||
|
||||
bus = dbus_g_proxy_new_for_name (session,
|
||||
DBUS_SERVICE_DBUS,
|
||||
DBUS_PATH_DBUS,
|
||||
DBUS_INTERFACE_DBUS);
|
||||
if (error) {
|
||||
g_printerr ("Failed to connect to session bus: %s", error->message);
|
||||
exit (1);
|
||||
}
|
||||
|
||||
request_name_flags = DBUS_NAME_FLAG_DO_NOT_QUEUE | DBUS_NAME_FLAG_ALLOW_REPLACEMENT;
|
||||
bus = g_dbus_proxy_new_sync (session,
|
||||
G_DBUS_PROXY_FLAGS_NONE,
|
||||
NULL, /* interface info */
|
||||
"org.freedesktop.DBus",
|
||||
"/org/freedesktop/DBus",
|
||||
"org.freedesktop.DBus",
|
||||
NULL, /* cancellable */
|
||||
&error);
|
||||
|
||||
request_name_flags = G_BUS_NAME_OWNER_FLAGS_ALLOW_REPLACEMENT;
|
||||
if (replace)
|
||||
request_name_flags |= DBUS_NAME_FLAG_REPLACE_EXISTING;
|
||||
if (!dbus_g_proxy_call (bus, "RequestName", &error,
|
||||
G_TYPE_STRING, SHELL_DBUS_SERVICE,
|
||||
G_TYPE_UINT, request_name_flags,
|
||||
G_TYPE_INVALID,
|
||||
G_TYPE_UINT, &request_name_result,
|
||||
G_TYPE_INVALID))
|
||||
{
|
||||
g_printerr ("failed to acquire org.gnome.Shell: %s\n", error->message);
|
||||
exit (1);
|
||||
}
|
||||
|
||||
shell_dbus_acquire_name (bus,
|
||||
request_name_flags,
|
||||
&request_name_result,
|
||||
SHELL_DBUS_SERVICE, TRUE);
|
||||
if (!(request_name_result == DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER
|
||||
|| request_name_result == DBUS_REQUEST_NAME_REPLY_ALREADY_OWNER))
|
||||
{
|
||||
g_printerr ("%s already exists on bus and --replace not specified\n",
|
||||
SHELL_DBUS_SERVICE);
|
||||
g_printerr (SHELL_DBUS_SERVICE " already exists on bus and --replace not specified\n");
|
||||
exit (1);
|
||||
}
|
||||
|
||||
/*
|
||||
* We always specify REPLACE_EXISTING to ensure we kill off
|
||||
* the existing service if it was running.
|
||||
*/
|
||||
request_name_flags |= G_BUS_NAME_OWNER_FLAGS_REPLACE;
|
||||
|
||||
shell_dbus_acquire_names (bus,
|
||||
request_name_flags,
|
||||
/* Also grab org.gnome.Panel to replace any existing panel process */
|
||||
if (!dbus_g_proxy_call (bus, "RequestName", &error, G_TYPE_STRING,
|
||||
"org.gnome.Panel", G_TYPE_UINT,
|
||||
DBUS_NAME_FLAG_REPLACE_EXISTING | request_name_flags,
|
||||
G_TYPE_INVALID, G_TYPE_UINT,
|
||||
&request_name_result, G_TYPE_INVALID))
|
||||
{
|
||||
g_print ("failed to acquire org.gnome.Panel: %s\n", error->message);
|
||||
exit (1);
|
||||
}
|
||||
|
||||
/* ...and the org.gnome.Magnifier service.
|
||||
*/
|
||||
if (!dbus_g_proxy_call (bus, "RequestName", &error,
|
||||
G_TYPE_STRING, MAGNIFIER_DBUS_SERVICE,
|
||||
G_TYPE_UINT, DBUS_NAME_FLAG_REPLACE_EXISTING | request_name_flags,
|
||||
G_TYPE_INVALID,
|
||||
G_TYPE_UINT, &request_name_result,
|
||||
G_TYPE_INVALID))
|
||||
{
|
||||
g_print ("failed to acquire %s: %s\n", MAGNIFIER_DBUS_SERVICE, error->message);
|
||||
/* Failing to acquire the magnifer service is not fatal. Log the error,
|
||||
* but keep going. */
|
||||
}
|
||||
|
||||
/* ...and the org.freedesktop.Notifications service; we always
|
||||
* specify REPLACE_EXISTING to ensure we kill off
|
||||
* notification-daemon if it was running.
|
||||
*/
|
||||
if (!dbus_g_proxy_call (bus, "RequestName", &error,
|
||||
G_TYPE_STRING, "org.freedesktop.Notifications",
|
||||
G_TYPE_UINT, DBUS_NAME_FLAG_REPLACE_EXISTING | request_name_flags,
|
||||
G_TYPE_INVALID,
|
||||
G_TYPE_UINT, &request_name_result,
|
||||
G_TYPE_INVALID))
|
||||
{
|
||||
g_print ("failed to acquire org.freedesktop.Notifications: %s\n", error->message);
|
||||
}
|
||||
|
||||
"org.gnome.Panel", TRUE,
|
||||
/* ...and the org.gnome.Magnifier service. */
|
||||
MAGNIFIER_DBUS_SERVICE, FALSE,
|
||||
/* ...and the org.freedesktop.Notifications service. */
|
||||
"org.freedesktop.Notifications", FALSE,
|
||||
NULL);
|
||||
/* ...and the on-screen keyboard service */
|
||||
if (!dbus_g_proxy_call (bus, "RequestName", &error,
|
||||
G_TYPE_STRING, "org.gnome.Caribou.Keyboard",
|
||||
G_TYPE_UINT, DBUS_NAME_FLAG_REPLACE_EXISTING,
|
||||
G_TYPE_INVALID,
|
||||
G_TYPE_UINT, &request_name_result,
|
||||
G_TYPE_INVALID))
|
||||
{
|
||||
g_print ("failed to acquire org.gnome.Caribou.Keyboard: %s\n", error->message);
|
||||
}
|
||||
|
||||
shell_dbus_acquire_name (bus,
|
||||
DBUS_NAME_FLAG_REPLACE_EXISTING,
|
||||
&request_name_result,
|
||||
"org.gnome.Caribou.Keyboard", FALSE);
|
||||
g_object_unref (bus);
|
||||
g_object_unref (session);
|
||||
}
|
||||
|
||||
static void
|
||||
@ -258,13 +286,15 @@ static void
|
||||
shell_fonts_init (void)
|
||||
{
|
||||
GtkSettings *settings;
|
||||
CoglPangoFontMap *fontmap;
|
||||
|
||||
/* Disable text mipmapping; it causes problems on pre-GEM Intel
|
||||
* drivers and we should just be rendering text at the right
|
||||
* size rather than scaling it. If we do effects where we dynamically
|
||||
* zoom labels, then we might want to reconsider.
|
||||
*/
|
||||
clutter_set_font_flags (clutter_get_font_flags () & ~CLUTTER_FONT_MIPMAPPING);
|
||||
fontmap = COGL_PANGO_FONT_MAP (clutter_get_font_map ());
|
||||
cogl_pango_font_map_set_use_mipmapping (fontmap, FALSE);
|
||||
|
||||
settings = gtk_settings_get_default ();
|
||||
g_object_connect (settings,
|
||||
@ -283,16 +313,14 @@ shell_fonts_init (void)
|
||||
static void
|
||||
shell_prefs_init (void)
|
||||
{
|
||||
meta_prefs_override_preference_location ("/apps/mutter/general/attach_modal_dialogs",
|
||||
"/desktop/gnome/shell/windows/attach_modal_dialogs");
|
||||
meta_prefs_override_preference_location ("/apps/mutter/general/workspaces_only_on_primary",
|
||||
"/desktop/gnome/shell/windows/workspaces_only_on_primary");
|
||||
meta_prefs_override_preference_location ("/apps/metacity/general/button_layout",
|
||||
"/desktop/gnome/shell/windows/button_layout");
|
||||
meta_prefs_override_preference_location ("/apps/metacity/general/edge_tiling",
|
||||
"/desktop/gnome/shell/windows/edge_tiling");
|
||||
meta_prefs_override_preference_location ("/apps/metacity/general/theme",
|
||||
"/desktop/gnome/shell/windows/theme");
|
||||
meta_prefs_override_preference_schema ("attach-modal-dialogs",
|
||||
OVERRIDES_SCHEMA);
|
||||
meta_prefs_override_preference_schema ("workspaces-only-on-primary",
|
||||
OVERRIDES_SCHEMA);
|
||||
meta_prefs_override_preference_schema ("button-layout",
|
||||
OVERRIDES_SCHEMA);
|
||||
meta_prefs_override_preference_schema ("edge-tiling",
|
||||
OVERRIDES_SCHEMA);
|
||||
}
|
||||
|
||||
/* This is an IBus workaround. The flow of events with IBus is that every time
|
||||
@ -551,6 +579,8 @@ main (int argc, char **argv)
|
||||
muted_log_handler, NULL);
|
||||
g_log_set_handler ("tp-glib/proxy", G_LOG_LEVEL_DEBUG,
|
||||
muted_log_handler, NULL);
|
||||
g_log_set_handler ("GnomeShellBrowserPlugin", G_LOG_LEVEL_DEBUG,
|
||||
muted_log_handler, NULL);
|
||||
|
||||
/* Turn on telepathy-glib debugging but filter it out in
|
||||
* default_log_handler. This handler also exposes all the logs over D-Bus
|
||||
|
@ -73,8 +73,6 @@ main(int argc, char **argv)
|
||||
gsize len;
|
||||
int code;
|
||||
|
||||
g_thread_init (NULL);
|
||||
|
||||
gtk_init (&argc, &argv);
|
||||
|
||||
clutter_x11_set_display (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()));
|
||||
|
@ -30,9 +30,6 @@ typedef enum {
|
||||
typedef struct {
|
||||
guint refcount;
|
||||
|
||||
/* Last time the user interacted with any of this application's windows */
|
||||
guint32 last_user_time;
|
||||
|
||||
/* Signal connection to dirty window sort list on workspace changes */
|
||||
guint workspace_switch_id;
|
||||
|
||||
@ -509,15 +506,6 @@ shell_app_activate_window (ShellApp *app,
|
||||
window = most_recent_transient;
|
||||
|
||||
|
||||
if (!shell_window_tracker_is_window_interesting (window))
|
||||
{
|
||||
/* We won't get notify::user-time signals for uninteresting windows,
|
||||
* which means that an app's last_user_time won't get updated.
|
||||
* Update it here instead.
|
||||
*/
|
||||
app->running_state->last_user_time = timestamp;
|
||||
}
|
||||
|
||||
if (active != workspace)
|
||||
meta_workspace_activate_with_focus (workspace, window, timestamp);
|
||||
else
|
||||
@ -752,6 +740,23 @@ shell_app_is_on_workspace (ShellApp *app,
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static int
|
||||
shell_app_get_last_user_time (ShellApp *app)
|
||||
{
|
||||
GSList *iter;
|
||||
int last_user_time;
|
||||
|
||||
last_user_time = 0;
|
||||
|
||||
if (app->running_state != NULL)
|
||||
{
|
||||
for (iter = app->running_state->windows; iter; iter = iter->next)
|
||||
last_user_time = MAX (last_user_time, meta_window_get_user_time (iter->data));
|
||||
}
|
||||
|
||||
return last_user_time;
|
||||
}
|
||||
|
||||
/**
|
||||
* shell_app_compare:
|
||||
* @app:
|
||||
@ -791,7 +796,8 @@ shell_app_compare (ShellApp *app,
|
||||
return -1;
|
||||
else if (!app->running_state->windows && other->running_state->windows)
|
||||
return 1;
|
||||
return other->running_state->last_user_time - app->running_state->last_user_time;
|
||||
|
||||
return shell_app_get_last_user_time (other) - shell_app_get_last_user_time (app);
|
||||
}
|
||||
|
||||
return 0;
|
||||
@ -871,8 +877,6 @@ shell_app_on_user_time_changed (MetaWindow *window,
|
||||
{
|
||||
g_assert (app->running_state != NULL);
|
||||
|
||||
app->running_state->last_user_time = meta_window_get_user_time (window);
|
||||
|
||||
/* Ideally we don't want to emit windows-changed if the sort order
|
||||
* isn't actually changing. This check catches most of those.
|
||||
*/
|
||||
@ -903,8 +907,6 @@ void
|
||||
_shell_app_add_window (ShellApp *app,
|
||||
MetaWindow *window)
|
||||
{
|
||||
guint32 user_time;
|
||||
|
||||
if (app->running_state && g_slist_find (app->running_state->windows, window))
|
||||
return;
|
||||
|
||||
@ -918,10 +920,6 @@ _shell_app_add_window (ShellApp *app,
|
||||
g_signal_connect (window, "unmanaged", G_CALLBACK(shell_app_on_unmanaged), app);
|
||||
g_signal_connect (window, "notify::user-time", G_CALLBACK(shell_app_on_user_time_changed), app);
|
||||
|
||||
user_time = meta_window_get_user_time (window);
|
||||
if (user_time > app->running_state->last_user_time)
|
||||
app->running_state->last_user_time = user_time;
|
||||
|
||||
if (app->state != SHELL_APP_STATE_STARTING)
|
||||
shell_app_state_transition (app, SHELL_APP_STATE_RUNNING);
|
||||
|
||||
@ -1081,6 +1079,7 @@ shell_app_launch (ShellApp *app,
|
||||
gboolean ret;
|
||||
ShellGlobal *global;
|
||||
MetaScreen *screen;
|
||||
GdkDisplay *gdisplay;
|
||||
|
||||
if (startup_id)
|
||||
*startup_id = NULL;
|
||||
@ -1099,6 +1098,7 @@ shell_app_launch (ShellApp *app,
|
||||
|
||||
global = shell_global_get ();
|
||||
screen = shell_global_get_screen (global);
|
||||
gdisplay = gdk_screen_get_display (shell_global_get_gdk_screen (global));
|
||||
|
||||
if (timestamp == 0)
|
||||
timestamp = shell_global_get_current_time (global);
|
||||
@ -1106,7 +1106,7 @@ shell_app_launch (ShellApp *app,
|
||||
if (workspace < 0)
|
||||
workspace = meta_screen_get_active_workspace_index (screen);
|
||||
|
||||
context = gdk_app_launch_context_new ();
|
||||
context = gdk_display_get_app_launch_context (gdisplay);
|
||||
gdk_app_launch_context_set_timestamp (context, timestamp);
|
||||
gdk_app_launch_context_set_desktop (context, workspace);
|
||||
|
||||
@ -1220,12 +1220,13 @@ shell_app_init_search_data (ShellApp *app)
|
||||
|
||||
/**
|
||||
* shell_app_compare_by_name:
|
||||
* @app:
|
||||
* @other:
|
||||
* @app: One app
|
||||
* @other: The other app
|
||||
*
|
||||
* Order two applications by name.
|
||||
*
|
||||
* Returns: -1, 0, or 1; suitable for use as a comparison function for e.g. g_slist_sort()
|
||||
* Returns: -1, 0, or 1; suitable for use as a comparison function
|
||||
* for e.g. g_slist_sort()
|
||||
*/
|
||||
int
|
||||
shell_app_compare_by_name (ShellApp *app, ShellApp *other)
|
||||
@ -1261,13 +1262,16 @@ _shell_app_match_search_terms (ShellApp *app,
|
||||
current_match = MATCH_SUBSTRING;
|
||||
}
|
||||
|
||||
p = strstr (app->casefolded_exec, term);
|
||||
if (p != NULL)
|
||||
if (app->casefolded_exec)
|
||||
{
|
||||
if (p == app->casefolded_exec || *(p - 1) == '-')
|
||||
current_match = MATCH_PREFIX;
|
||||
else if (current_match < MATCH_PREFIX)
|
||||
current_match = MATCH_SUBSTRING;
|
||||
p = strstr (app->casefolded_exec, term);
|
||||
if (p != NULL)
|
||||
{
|
||||
if (p == app->casefolded_exec || *(p - 1) == '-')
|
||||
current_match = MATCH_PREFIX;
|
||||
else if (current_match < MATCH_PREFIX)
|
||||
current_match = MATCH_SUBSTRING;
|
||||
}
|
||||
}
|
||||
|
||||
if (app->casefolded_description && current_match < MATCH_PREFIX)
|
||||
|
@ -1,143 +0,0 @@
|
||||
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
|
||||
|
||||
#include "config.h"
|
||||
|
||||
#include "shell-arrow.h"
|
||||
|
||||
#include <clutter/clutter.h>
|
||||
#include <gtk/gtk.h>
|
||||
#include <cairo.h>
|
||||
|
||||
enum {
|
||||
PROP_0,
|
||||
|
||||
PROP_DIRECTION
|
||||
};
|
||||
|
||||
G_DEFINE_TYPE(ShellArrow, shell_arrow, CLUTTER_TYPE_CAIRO_TEXTURE);
|
||||
|
||||
struct _ShellArrowPrivate {
|
||||
GtkArrowType direction;
|
||||
};
|
||||
|
||||
static void shell_arrow_redraw (ShellArrow *self);
|
||||
|
||||
static void
|
||||
shell_arrow_set_property (GObject *object,
|
||||
guint prop_id,
|
||||
const GValue *value,
|
||||
GParamSpec *pspec)
|
||||
{
|
||||
ShellArrow *self = SHELL_ARROW (object);
|
||||
|
||||
switch (prop_id)
|
||||
{
|
||||
case PROP_DIRECTION:
|
||||
self->priv->direction = g_value_get_enum (value);
|
||||
break;
|
||||
|
||||
default:
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||
break;
|
||||
}
|
||||
|
||||
shell_arrow_redraw (self);
|
||||
}
|
||||
|
||||
static void
|
||||
shell_arrow_get_property (GObject *object,
|
||||
guint prop_id,
|
||||
GValue *value,
|
||||
GParamSpec *pspec)
|
||||
{
|
||||
ShellArrow *self = SHELL_ARROW (object);
|
||||
|
||||
switch (prop_id)
|
||||
{
|
||||
case PROP_DIRECTION:
|
||||
g_value_set_enum (value, self->priv->direction);
|
||||
break;
|
||||
|
||||
default:
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
shell_arrow_redraw (ShellArrow *self)
|
||||
{
|
||||
cairo_t *cr;
|
||||
guint width, height;
|
||||
|
||||
g_object_get (G_OBJECT (self), "surface-width", &width,
|
||||
"surface-height", &height,
|
||||
NULL);
|
||||
|
||||
if (width == 0)
|
||||
return;
|
||||
|
||||
cr = clutter_cairo_texture_create (CLUTTER_CAIRO_TEXTURE (self));
|
||||
|
||||
cairo_set_source_rgb (cr, 1, 1, 1);
|
||||
|
||||
switch (self->priv->direction)
|
||||
{
|
||||
case GTK_ARROW_RIGHT:
|
||||
cairo_move_to (cr, 0, 0);
|
||||
cairo_line_to (cr, width, height*0.5);
|
||||
cairo_line_to (cr, 0, height);
|
||||
break;
|
||||
case GTK_ARROW_LEFT:
|
||||
cairo_move_to (cr, width, 0);
|
||||
cairo_line_to (cr, 0, height*0.5);
|
||||
cairo_line_to (cr, width, height);
|
||||
break;
|
||||
case GTK_ARROW_UP:
|
||||
cairo_move_to (cr, 0, height);
|
||||
cairo_line_to (cr, width*0.5, 0);
|
||||
cairo_line_to (cr, width, height);
|
||||
break;
|
||||
case GTK_ARROW_DOWN:
|
||||
cairo_move_to (cr, 0, 0);
|
||||
cairo_line_to (cr, width*0.5, height);
|
||||
cairo_line_to (cr, width, height);
|
||||
break;
|
||||
case GTK_ARROW_NONE:
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
cairo_close_path (cr);
|
||||
cairo_fill (cr);
|
||||
|
||||
cairo_destroy (cr);
|
||||
}
|
||||
|
||||
static void
|
||||
shell_arrow_class_init (ShellArrowClass *klass)
|
||||
{
|
||||
GObjectClass *object_class = G_OBJECT_CLASS (klass);
|
||||
|
||||
g_type_class_add_private (klass, sizeof (ShellArrowPrivate));
|
||||
|
||||
object_class->get_property = shell_arrow_get_property;
|
||||
object_class->set_property = shell_arrow_set_property;
|
||||
|
||||
g_object_class_install_property (object_class,
|
||||
PROP_DIRECTION,
|
||||
g_param_spec_enum ("direction",
|
||||
"Direction",
|
||||
"Direction",
|
||||
GTK_TYPE_ARROW_TYPE,
|
||||
GTK_ARROW_NONE,
|
||||
G_PARAM_READWRITE));
|
||||
}
|
||||
|
||||
static void
|
||||
shell_arrow_init (ShellArrow *actor)
|
||||
{
|
||||
actor->priv = G_TYPE_INSTANCE_GET_PRIVATE (actor, SHELL_TYPE_ARROW,
|
||||
ShellArrowPrivate);
|
||||
g_signal_connect (actor, "notify::surface-width", G_CALLBACK (shell_arrow_redraw), NULL);
|
||||
}
|
@ -1,34 +0,0 @@
|
||||
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
|
||||
#ifndef __SHELL_ARROW_H__
|
||||
#define __SHELL_ARROW_H__
|
||||
|
||||
#include <clutter/clutter.h>
|
||||
#include <gtk/gtk.h>
|
||||
|
||||
#define SHELL_TYPE_ARROW (shell_arrow_get_type ())
|
||||
#define SHELL_ARROW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SHELL_TYPE_ARROW, ShellArrow))
|
||||
#define SHELL_ARROW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SHELL_TYPE_ARROW, ShellArrowClass))
|
||||
#define SHELL_IS_ARROW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SHELL_TYPE_ARROW))
|
||||
#define SHELL_IS_ARROW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SHELL_TYPE_ARROW))
|
||||
#define SHELL_ARROW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SHELL_TYPE_ARROW, ShellArrowClass))
|
||||
|
||||
typedef struct _ShellArrow ShellArrow;
|
||||
typedef struct _ShellArrowClass ShellArrowClass;
|
||||
|
||||
typedef struct _ShellArrowPrivate ShellArrowPrivate;
|
||||
|
||||
struct _ShellArrow
|
||||
{
|
||||
ClutterCairoTexture parent;
|
||||
|
||||
ShellArrowPrivate *priv;
|
||||
};
|
||||
|
||||
struct _ShellArrowClass
|
||||
{
|
||||
ClutterCairoTextureClass parent_class;
|
||||
};
|
||||
|
||||
GType shell_arrow_get_type (void) G_GNUC_CONST;
|
||||
|
||||
#endif /* __SHELL_ARROW_H__ */
|
@ -52,16 +52,17 @@ shell_doc_system_get_all (ShellDocSystem *self)
|
||||
}
|
||||
|
||||
/**
|
||||
* @self: A #ShellDocSystem
|
||||
* @uri: Url
|
||||
* shell_doc_system_lookup_by_uri:
|
||||
* @system: A #ShellDocSystem
|
||||
* @uri: URI
|
||||
*
|
||||
* Returns: (transfer none): Recent file info corresponding to given @uri
|
||||
*/
|
||||
GtkRecentInfo *
|
||||
shell_doc_system_lookup_by_uri (ShellDocSystem *self,
|
||||
shell_doc_system_lookup_by_uri (ShellDocSystem *system,
|
||||
const char *uri)
|
||||
{
|
||||
return g_hash_table_lookup (self->priv->infos_by_uri, uri);
|
||||
return g_hash_table_lookup (system->priv->infos_by_uri, uri);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
|
@ -636,6 +636,7 @@ shell_global_set_cursor (ShellGlobal *global,
|
||||
break;
|
||||
case SHELL_CURSOR_POINTING_HAND:
|
||||
cursor_type = GDK_HAND2;
|
||||
break;
|
||||
case SHELL_CURSOR_DND_UNSUPPORTED_TARGET:
|
||||
cursor_type = GDK_X_CURSOR;
|
||||
break;
|
||||
@ -647,7 +648,7 @@ shell_global_set_cursor (ShellGlobal *global,
|
||||
|
||||
gdk_window_set_cursor (global->stage_gdk_window, cursor);
|
||||
|
||||
gdk_cursor_unref (cursor);
|
||||
g_object_unref (cursor);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -856,18 +857,18 @@ _shell_global_get_gjs_context (ShellGlobal *global)
|
||||
* overview mode or the "looking glass" debug overlay, that block
|
||||
* application and normal key shortcuts.
|
||||
*
|
||||
* Returns value: %TRUE if we succesfully entered the mode. %FALSE if we couldn't
|
||||
* Returns: %TRUE if we succesfully entered the mode. %FALSE if we couldn't
|
||||
* enter the mode. Failure may occur because an application has the pointer
|
||||
* or keyboard grabbed, because Mutter is in a mode itself like moving a
|
||||
* window or alt-Tab window selection, or because shell_global_begin_modal()
|
||||
* was previouly called.
|
||||
*/
|
||||
gboolean
|
||||
shell_global_begin_modal (ShellGlobal *global,
|
||||
guint32 timestamp)
|
||||
shell_global_begin_modal (ShellGlobal *global,
|
||||
guint32 timestamp,
|
||||
MetaModalOptions options)
|
||||
{
|
||||
return meta_plugin_begin_modal (global->plugin, global->stage_xwindow,
|
||||
None, 0, timestamp);
|
||||
return meta_plugin_begin_modal (global->plugin, global->stage_xwindow, None, options, timestamp);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -1181,12 +1182,13 @@ shell_global_get_memory_info (ShellGlobal *global,
|
||||
JSContext *context;
|
||||
gint64 now;
|
||||
|
||||
memset (meminfo, 0, sizeof (meminfo));
|
||||
#ifdef HAVE_MALLINFO
|
||||
{
|
||||
struct mallinfo info = mallinfo ();
|
||||
meminfo->glibc_uordblks = info.uordblks;
|
||||
}
|
||||
#else
|
||||
meminfo->glibc_uordblks = 0;
|
||||
#endif
|
||||
|
||||
context = gjs_context_get_native_context (global->js_context);
|
||||
@ -1280,9 +1282,17 @@ shell_global_get_pointer (ShellGlobal *global,
|
||||
int *y,
|
||||
ClutterModifierType *mods)
|
||||
{
|
||||
GdkDeviceManager *gmanager;
|
||||
GdkDevice *gdevice;
|
||||
GdkScreen *gscreen;
|
||||
GdkModifierType raw_mods;
|
||||
|
||||
gdk_display_get_pointer (global->gdk_display, NULL, x, y, &raw_mods);
|
||||
gmanager = gdk_display_get_device_manager (global->gdk_display);
|
||||
gdevice = gdk_device_manager_get_client_pointer (gmanager);
|
||||
gdk_device_get_position (gdevice, &gscreen, x, y);
|
||||
gdk_device_get_state (gdevice,
|
||||
gdk_screen_get_root_window (gscreen),
|
||||
NULL, &raw_mods);
|
||||
*mods = raw_mods & GDK_MODIFIER_MASK;
|
||||
}
|
||||
|
||||
@ -1299,9 +1309,18 @@ shell_global_sync_pointer (ShellGlobal *global)
|
||||
{
|
||||
int x, y;
|
||||
GdkModifierType mods;
|
||||
GdkDeviceManager *gmanager;
|
||||
GdkDevice *gdevice;
|
||||
GdkScreen *gscreen;
|
||||
ClutterMotionEvent event;
|
||||
|
||||
gdk_display_get_pointer (global->gdk_display, NULL, &x, &y, &mods);
|
||||
gmanager = gdk_display_get_device_manager (global->gdk_display);
|
||||
gdevice = gdk_device_manager_get_client_pointer (gmanager);
|
||||
|
||||
gdk_device_get_position (gdevice, &gscreen, &x, &y);
|
||||
gdk_device_get_state (gdevice,
|
||||
gdk_screen_get_root_window (gscreen),
|
||||
NULL, &mods);
|
||||
|
||||
event.type = CLUTTER_MOTION;
|
||||
event.time = shell_global_get_current_time (global);
|
||||
@ -1403,7 +1422,7 @@ shell_global_create_app_launch_context (ShellGlobal *global)
|
||||
{
|
||||
GdkAppLaunchContext *context;
|
||||
|
||||
context = gdk_app_launch_context_new ();
|
||||
context = gdk_display_get_app_launch_context (global->gdk_display);
|
||||
gdk_app_launch_context_set_timestamp (context, shell_global_get_current_time (global));
|
||||
|
||||
// Make sure that the app is opened on the current workspace even if
|
||||
@ -1945,7 +1964,7 @@ shell_global_screenshot_window (ShellGlobal *global,
|
||||
* will enable a login dialog and run in a more confined
|
||||
* way. This type is suitable for the display manager.
|
||||
*
|
||||
* Returns the type of session gnome-shell is providing.
|
||||
* Returns: the type of session gnome-shell is providing.
|
||||
*/
|
||||
ShellSessionType
|
||||
shell_global_get_session_type (ShellGlobal *global)
|
||||
|
@ -39,7 +39,8 @@ guint32 shell_global_get_current_time (ShellGlobal *global);
|
||||
|
||||
/* Input/event handling */
|
||||
gboolean shell_global_begin_modal (ShellGlobal *global,
|
||||
guint32 timestamp);
|
||||
guint32 timestamp,
|
||||
MetaModalOptions options);
|
||||
void shell_global_end_modal (ShellGlobal *global,
|
||||
guint32 timestamp);
|
||||
|
||||
|
@ -136,10 +136,11 @@ shell_gtk_embed_get_preferred_width (ClutterActor *actor,
|
||||
if (embed->priv->window
|
||||
&& gtk_widget_get_visible (GTK_WIDGET (embed->priv->window)))
|
||||
{
|
||||
GtkRequisition requisition;
|
||||
gtk_widget_size_request (GTK_WIDGET (embed->priv->window), &requisition);
|
||||
GtkRequisition min_req, natural_req;
|
||||
gtk_widget_get_preferred_size (GTK_WIDGET (embed->priv->window), &min_req, &natural_req);
|
||||
|
||||
*min_width_p = *natural_width_p = requisition.width;
|
||||
*min_width_p = min_req.width;
|
||||
*natural_width_p = natural_req.width;
|
||||
}
|
||||
else
|
||||
*min_width_p = *natural_width_p = 0;
|
||||
@ -156,10 +157,11 @@ shell_gtk_embed_get_preferred_height (ClutterActor *actor,
|
||||
if (embed->priv->window
|
||||
&& gtk_widget_get_visible (GTK_WIDGET (embed->priv->window)))
|
||||
{
|
||||
GtkRequisition requisition;
|
||||
gtk_widget_size_request (GTK_WIDGET (embed->priv->window), &requisition);
|
||||
GtkRequisition min_req, natural_req;
|
||||
gtk_widget_get_preferred_size (GTK_WIDGET (embed->priv->window), &min_req, &natural_req);
|
||||
|
||||
*min_height_p = *natural_height_p = requisition.height;
|
||||
*min_height_p = min_req.height;
|
||||
*natural_height_p = natural_req.height;
|
||||
}
|
||||
else
|
||||
*min_height_p = *natural_height_p = 0;
|
||||
|
@ -619,9 +619,9 @@ static const GMarkupParser mobile_parser = {
|
||||
* @out_ccs: (out) (allow-none): (element-type utf8 utf8): a #GHashTable containing
|
||||
* country codes
|
||||
*
|
||||
* Returns: (element-type utf8 GList<Shell.MobileProvider>) (transfer container): a
|
||||
* hash table where keys are country names 'char *', values are a 'GSList *'
|
||||
* of 'ShellMobileProvider *'. Everything is destroyed with g_hash_table_destroy ().
|
||||
* Returns: (element-type utf8 GList) (transfer container): a
|
||||
* hash table where keys are country names #gchar, values are a #GSList
|
||||
* of #ShellMobileProvider. Everything is destroyed with g_hash_table_destroy().
|
||||
*/
|
||||
GHashTable *
|
||||
shell_mobile_providers_parse (GHashTable **out_ccs)
|
||||
|
@ -590,7 +590,7 @@ shell_perf_log_update_statistic_x (ShellPerfLog *perf_log,
|
||||
}
|
||||
|
||||
/**
|
||||
* shell_perf_log_add statistics_callback:
|
||||
* shell_perf_log_add_statistics_callback:
|
||||
* @perf_log: a #ShellPerfLog
|
||||
* @callback: function to call before recording statistics
|
||||
* @user_data: data to pass to @callback
|
||||
|
@ -10,6 +10,7 @@ struct _ShellRecorderSrc
|
||||
{
|
||||
GstPushSrc parent;
|
||||
|
||||
GMutex mutex_data;
|
||||
GMutex *mutex;
|
||||
|
||||
GstCaps *caps;
|
||||
@ -40,7 +41,8 @@ shell_recorder_src_init (ShellRecorderSrc *src,
|
||||
ShellRecorderSrcClass *klass)
|
||||
{
|
||||
src->queue = g_async_queue_new ();
|
||||
src->mutex = g_mutex_new ();
|
||||
src->mutex = &src->mutex_data;
|
||||
g_mutex_init (src->mutex);
|
||||
}
|
||||
|
||||
static void
|
||||
@ -140,7 +142,7 @@ shell_recorder_src_finalize (GObject *object)
|
||||
shell_recorder_src_set_caps (src, NULL);
|
||||
g_async_queue_unref (src->queue);
|
||||
|
||||
g_mutex_free (src->mutex);
|
||||
g_mutex_clear (src->mutex);
|
||||
|
||||
G_OBJECT_CLASS (parent_class)->finalize (object);
|
||||
}
|
||||
@ -280,6 +282,7 @@ plugin_init (GstPlugin *plugin)
|
||||
|
||||
/**
|
||||
* shell_recorder_src_register:
|
||||
*
|
||||
* Registers a plugin holding our single element to use privately in
|
||||
* this application. Can safely be called multiple times.
|
||||
*/
|
||||
|
@ -341,7 +341,7 @@ recorder_update_memory_used (ShellRecorder *recorder,
|
||||
* seems like a bad idea.
|
||||
*/
|
||||
recorder->only_paint = TRUE;
|
||||
clutter_redraw (recorder->stage);
|
||||
clutter_stage_ensure_redraw (recorder->stage);
|
||||
recorder->only_paint = FALSE;
|
||||
}
|
||||
}
|
||||
|
@ -7,8 +7,8 @@
|
||||
G_BEGIN_DECLS
|
||||
|
||||
/**
|
||||
* SECTION:ShellRecorder
|
||||
* short_description: Record from a #ClutterStage
|
||||
* SECTION:shell-recorder
|
||||
* @short_description: Record from a #ClutterStage
|
||||
*
|
||||
* The #ShellRecorder object is used to make recordings ("screencasts")
|
||||
* of a #ClutterStage. Recording is done via #GStreamer. The default is
|
||||
|
@ -75,8 +75,6 @@ shell_util_get_file_display_name_if_mount (GFile *file)
|
||||
return ret;
|
||||
}
|
||||
|
||||
#define HOME_NAME_SCHEMA "org.gnome.nautilus.desktop"
|
||||
#define HOME_NAME_KEY "home-icon-name"
|
||||
static char *
|
||||
shell_util_get_file_display_for_common_files (GFile *file)
|
||||
{
|
||||
@ -85,26 +83,11 @@ shell_util_get_file_display_for_common_files (GFile *file)
|
||||
compare = g_file_new_for_path (g_get_home_dir ());
|
||||
if (g_file_equal (file, compare))
|
||||
{
|
||||
GSettings *settings;
|
||||
char *name;
|
||||
|
||||
g_object_unref (compare);
|
||||
|
||||
settings = g_settings_new (HOME_NAME_SCHEMA);
|
||||
name = g_settings_get_string (settings, HOME_NAME_KEY);
|
||||
g_object_unref (settings);
|
||||
|
||||
if (!(name && name[0]))
|
||||
{
|
||||
g_free (name);
|
||||
return g_strdup (_("Home Folder"));
|
||||
}
|
||||
else
|
||||
{
|
||||
return name;
|
||||
}
|
||||
/* Translators: this is the same string as the one found in
|
||||
* nautilus */
|
||||
return g_strdup (_("Home"));
|
||||
}
|
||||
g_object_unref (compare);
|
||||
|
||||
compare = g_file_new_for_path ("/");
|
||||
if (g_file_equal (file, compare))
|
||||
|
@ -639,7 +639,7 @@ shell_window_tracker_get_window_app (ShellWindowTracker *tracker,
|
||||
|
||||
/**
|
||||
* shell_window_tracker_get_app_from_pid:
|
||||
* @self; A #ShellAppSystem
|
||||
* @tracker: A #ShellAppSystem
|
||||
* @pid: A Unix process identifier
|
||||
*
|
||||
* Look up the application corresponding to a process.
|
||||
@ -647,7 +647,7 @@ shell_window_tracker_get_window_app (ShellWindowTracker *tracker,
|
||||
* Returns: (transfer none): A #ShellApp, or %NULL if none
|
||||
*/
|
||||
ShellApp *
|
||||
shell_window_tracker_get_app_from_pid (ShellWindowTracker *self,
|
||||
shell_window_tracker_get_app_from_pid (ShellWindowTracker *tracker,
|
||||
int pid)
|
||||
{
|
||||
GSList *running = shell_app_system_get_running (shell_app_system_get_default());
|
||||
|
@ -28,8 +28,6 @@ enum
|
||||
KILL_SWITCH_WORKSPACE,
|
||||
KILL_WINDOW_EFFECTS,
|
||||
|
||||
KEYBINDING,
|
||||
|
||||
LAST_SIGNAL
|
||||
};
|
||||
|
||||
@ -126,34 +124,6 @@ shell_wm_class_init (ShellWMClass *klass)
|
||||
g_cclosure_marshal_VOID__OBJECT,
|
||||
G_TYPE_NONE, 1,
|
||||
META_TYPE_WINDOW_ACTOR);
|
||||
|
||||
/**
|
||||
* ShellWM::keybinding:
|
||||
* @shellwm: the #ShellWM
|
||||
* @binding: the keybinding name
|
||||
* @mask: the modifier mask used
|
||||
* @window: for window keybindings, the #MetaWindow
|
||||
* @backwards: for "reversible" keybindings, whether or not
|
||||
* the backwards (Shifted) variant was invoked
|
||||
*
|
||||
* Emitted when a keybinding captured via
|
||||
* shell_wm_takeover_keybinding() is invoked. The keybinding name
|
||||
* (which has underscores, not hyphens) is also included as the
|
||||
* detail of the signal name, so you can connect just specific
|
||||
* keybindings.
|
||||
*/
|
||||
shell_wm_signals[KEYBINDING] =
|
||||
g_signal_new ("keybinding",
|
||||
G_TYPE_FROM_CLASS (klass),
|
||||
G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
|
||||
0,
|
||||
NULL, NULL,
|
||||
_shell_marshal_VOID__STRING_UINT_OBJECT_BOOLEAN,
|
||||
G_TYPE_NONE, 4,
|
||||
G_TYPE_STRING,
|
||||
G_TYPE_UINT,
|
||||
META_TYPE_WINDOW,
|
||||
G_TYPE_BOOLEAN);
|
||||
}
|
||||
|
||||
void
|
||||
@ -324,37 +294,3 @@ shell_wm_new (MetaPlugin *plugin)
|
||||
|
||||
return wm;
|
||||
}
|
||||
|
||||
static void
|
||||
shell_wm_key_handler (MetaDisplay *display,
|
||||
MetaScreen *screen,
|
||||
MetaWindow *window,
|
||||
XEvent *event,
|
||||
MetaKeyBinding *binding,
|
||||
gpointer data)
|
||||
{
|
||||
ShellWM *wm = data;
|
||||
gboolean backwards = (event->xkey.state & ShiftMask);
|
||||
|
||||
g_signal_emit (wm, shell_wm_signals[KEYBINDING],
|
||||
g_quark_from_string (binding->name),
|
||||
binding->name, binding->mask, window, backwards);
|
||||
}
|
||||
|
||||
/**
|
||||
* shell_wm_takeover_keybinding:
|
||||
* @wm: the #ShellWM
|
||||
* @binding_name: a meta keybinding name
|
||||
*
|
||||
* Tells mutter to forward keypresses for @binding_name to the shell
|
||||
* rather than processing them internally. This will cause a
|
||||
* #ShellWM::keybinding signal to be emitted when that key is pressed.
|
||||
*/
|
||||
void
|
||||
shell_wm_takeover_keybinding (ShellWM *wm,
|
||||
const char *binding_name)
|
||||
{
|
||||
meta_keybindings_set_custom_handler (binding_name,
|
||||
shell_wm_key_handler,
|
||||
wm, NULL);
|
||||
}
|
||||
|
@ -39,10 +39,6 @@ void shell_wm_completed_destroy (ShellWM *wm,
|
||||
MetaWindowActor *actor);
|
||||
void shell_wm_completed_switch_workspace (ShellWM *wm);
|
||||
|
||||
/* Keybinding stuff */
|
||||
void shell_wm_takeover_keybinding (ShellWM *wm,
|
||||
const char *binding_name);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* __SHELL_WM_H__ */
|
||||
|
@ -8,8 +8,8 @@
|
||||
#include <X11/extensions/Xfixes.h>
|
||||
|
||||
/**
|
||||
* SECTION:ShellXFixesCursor
|
||||
* short_description: Capture/manipulate system mouse cursor.
|
||||
* SECTION:shell-xfixes-cursor
|
||||
* @short_description: Capture/manipulate system mouse cursor.
|
||||
*
|
||||
* The #ShellXFixesCursor object uses the XFixes extension to show/hide the
|
||||
* the system mouse pointer, to grab its image as it changes, and emit a
|
||||
|
@ -20,7 +20,7 @@
|
||||
|
||||
/**
|
||||
* SECTION:st-group
|
||||
* SECTION:clutter-group
|
||||
* @see_also:#ClutterGroup
|
||||
* @short_description: A fixed layout container
|
||||
*
|
||||
* A #StGroup is an Actor which contains multiple child actors positioned
|
||||
|
@ -25,7 +25,7 @@
|
||||
*/
|
||||
|
||||
/**
|
||||
* SECTION:StIMText
|
||||
* SECTION:st-im-text
|
||||
* @short_description: Text widget with input method support
|
||||
* @stability: Unstable
|
||||
* @see_also: #ClutterText
|
||||
|
@ -777,16 +777,16 @@ move_slider (StScrollBar *bar,
|
||||
static void
|
||||
stop_scrolling (StScrollBar *bar)
|
||||
{
|
||||
ClutterActor *stage;
|
||||
ClutterStage *stage;
|
||||
|
||||
if (!bar->priv->capture_handler)
|
||||
return;
|
||||
|
||||
stage = clutter_actor_get_stage (bar->priv->trough);
|
||||
stage = CLUTTER_STAGE (clutter_actor_get_stage (bar->priv->trough));
|
||||
g_signal_handler_disconnect (stage, bar->priv->capture_handler);
|
||||
bar->priv->capture_handler = 0;
|
||||
|
||||
clutter_set_motion_events_enabled (TRUE);
|
||||
clutter_stage_set_motion_events_enabled (stage, TRUE);
|
||||
g_signal_emit (bar, signals[SCROLL_STOP], 0);
|
||||
}
|
||||
|
||||
@ -829,6 +829,7 @@ handle_button_press_event_cb (ClutterActor *actor,
|
||||
ClutterButtonEvent *event,
|
||||
StScrollBar *bar)
|
||||
{
|
||||
ClutterStage *stage;
|
||||
StScrollBarPrivate *priv = bar->priv;
|
||||
|
||||
if (event->button != 1)
|
||||
@ -845,8 +846,10 @@ handle_button_press_event_cb (ClutterActor *actor,
|
||||
priv->x_origin += clutter_actor_get_x (priv->trough);
|
||||
priv->y_origin += clutter_actor_get_y (priv->trough);
|
||||
|
||||
stage = CLUTTER_STAGE (clutter_actor_get_stage (bar->priv->trough));
|
||||
|
||||
/* Turn off picking for motion events */
|
||||
clutter_set_motion_events_enabled (FALSE);
|
||||
clutter_stage_set_motion_events_enabled (stage, FALSE);
|
||||
|
||||
priv->capture_handler = g_signal_connect_after (
|
||||
clutter_actor_get_stage (priv->trough),
|
||||
|
@ -963,7 +963,7 @@ st_scroll_view_new (void)
|
||||
*
|
||||
* Gets the horizontal scrollbar of the scrollbiew
|
||||
*
|
||||
* Return value: (transfer none): the horizontal #StScrollbar
|
||||
* Return value: (transfer none): the horizontal #StScrollBar
|
||||
*/
|
||||
ClutterActor *
|
||||
st_scroll_view_get_hscroll_bar (StScrollView *scroll)
|
||||
@ -979,7 +979,7 @@ st_scroll_view_get_hscroll_bar (StScrollView *scroll)
|
||||
*
|
||||
* Gets the vertical scrollbar of the scrollbiew
|
||||
*
|
||||
* Return value: (transfer none): the vertical #StScrollbar
|
||||
* Return value: (transfer none): the vertical #StScrollBar
|
||||
*/
|
||||
ClutterActor *
|
||||
st_scroll_view_get_vscroll_bar (StScrollView *scroll)
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user