Compare commits

..

1 Commits

Author SHA1 Message Date
389539d1a0 mutter/clutter/cogl merge build fixes 2016-04-11 23:12:23 +02:00
128 changed files with 18906 additions and 21460 deletions

4
.gitignore vendored
View File

@ -16,6 +16,7 @@ config.log
config.status
config
configure
data/50-gnome-shell-*.xml
data/org.gnome.Shell.desktop
data/org.gnome.Shell.desktop.in
data/gnome-shell-extension-prefs.desktop
@ -25,6 +26,8 @@ data/gschemas.compiled
data/perf-background.xml
data/org.gnome.shell.gschema.xml
data/org.gnome.shell.gschema.valid
data/org.gnome.shell.evolution.calendar.gschema.xml
data/org.gnome.shell.evolution.calendar.gschema.valid
data/org.gnome.Shell.PortalHelper.desktop
data/org.gnome.Shell.PortalHelper.service
data/theme/.sass-cache
@ -71,6 +74,7 @@ src/*-marshal.[ch]
src/Makefile
src/Makefile.in
src/calendar-server/evolution-calendar.desktop
src/calendar-server/evolution-calendar.desktop.in
src/calendar-server/org.gnome.Shell.CalendarServer.service
src/gnome-shell
src/gnome-shell-calendar-server

140
NEWS
View File

@ -1,143 +1,3 @@
3.22.0
======
* Misc. bug fixes [Florian, Rui; #771391, #771536] #771656]
Contributors:
Rui Matos, Florian Müllner
Translations:
Ask Hjorth Larsen [da], GNOME Translation Robot [gd], Alexandre Franke [fr],
Daniel Korostil [uk], Jordi Mas [ca], Khaled Hosny [ar], David King [en_GB]
3.21.92
=======
* Adjust screen capture to work with multiple stage views [Jonas; #770128]
* Improve handling of cycle shortcuts [Florian; #771063]
* Fix windows not getting undimmed in some cases [Rui; #770163, #752524]
* Disable extension version check by default [Florian; #770887]
* Misc. bug fixes [Rui, Florian, Michael; #770382, #770888, #770328]
Contributors:
Jonas Ådahl, Michael Catanzaro, Fran Dieguez, Olivier Fourdan, Rui Matos,
Florian Müllner
Translations:
Changwoo Ryu [ko], Baurzhan Muftakhidinov [kk], Aurimas Černius [lt],
Muhammet Kara [tr], Trần Ngọc Quân [vi], A S Alam [pa], Yosef Or Boczko [he],
Anders Jonsson [sv], Tiago Santos [pt], Hannie Dumoleyn [nl],
Rūdolfs Mazurs [lv], Claude Paroz [fr], Arash Mousavi [fa],
Fran Dieguez [gl], Stas Solovey [ru], Tom Tryfonidis [el]
3.21.91
=======
Translations:
Mario Blättermann [de], Jiri Grönroos [fi], Dušan Kazik [sk],
Andika Triwidada [id], Daniel Mustieles [es], Fabio Tomat [fur],
Enrico Nicoletto [pt_BR], Matej Urbančič [sl], Мирослав Николић [sr, sr@latin]
3.21.90.1
=========
Contributors:
Piotr Drąg
Translations:
Marek Černocký [cs], Balázs Úr [hu]
3.21.90
=======
* Improve on-screen keyboard on wayland [Carlos; #765009]
* Misc. bug fixes [Florian; #769156, #769216, #769074]
Contributors:
Carlos Garnacho, Florian Müllner
Translations:
Fabio Tomat [fur], Tiago Santos [pt], Daniel Mustieles [es],
Bernd Homuth [de], Aurimas Černius [lt], Balázs Úr [hu],
Yosef Or Boczko [he], Jiri Grönroos [fi], Marek Cernocky [cs],
Muhammet Kara [tr], Enrico Nicoletto [pt_BR], Andika Triwidada [id]
3.21.4
======
* overview: Fix switching workspaces when scrolling on non-primary monitors
[Florian; #766883, #768316]
* Fix crash when using screen recorder under wayland [Rui; #767001]
* Update theme on video memory purge errors [Rui; #739178]
* Free old backgrounds immediately [Hyungwon; #766353]
* Add support for system upgrades to end session dialog [Kalev; #763611]
* Fix maximized windows flickering to the wrong size on restart [Owen; #761566]
* Hide ignored events in calendar as well [Florian; #768538]
* calendar: Only hide dismissed occurrence of recurring event [Florian; #748226]
* Provide org.freedesktop.impl.portal.access implementation [Florian; #768669]
* Misc. bug fixes and cleanups [Rui, Florian, Marinus, Jonas; #767954, #768317,
#746867, #762206, #768956, #768979]
Contributors:
Jonas Ådahl, Piotr Drąg, Hyungwon Hwang, Kalev Lember, Rui Matos,
Florian Müllner, Marinus Schraal, Owen W. Taylor
Translations:
Andika Triwidada [id], Daniel Mustieles [es], Bruce Cowan [en_GB],
Dušan Kazik [sk], Piotr Drąg [pl], Chao-Hsiung Liao [zh_HK]
3.21.3
======
* Do not disable suspend action when locked [Florian; #725960]
* Remember input sources MRU list [Cosimo; #766826]
* networkAgent: Handle VPN service aliases [David; #658484]
* Plug a memory leak [Hans; #710230]
Contributors:
Cosimo Cecchi, Florian Müllner, Hans Petter Jansson, David Woodhouse
Translations:
Tiago Santos [pt], Cédric Valmary [oc], Muhammet Kara [tr],
Daniel Mustieles [es], Rafael Fontenelle [pt_BR]
3.21.2
======
* Fix sorting of hidden apps in app switcher [Florian; #766238]
* Set logind's LockedHint property when locked [Victor; #764773]
* Allocate framebuffers early to fix a crash on NVIDIA [Martin; #764898]
* Fix cycle-windows/cycle-group keybindings [Florian; #730739]
* Switch to shared desktop schema for calendar settings [Iain; #766318]
* Misc. bug fixes [Florian, Cosimo, Michele; #766325, #758471, #757556,
#757019, #766598]
Contributors:
Cosimo Cecchi, Michele Gaio, Iain Lane, Florian Müllner, Martin Szulecki,
Victor Toso
Translations:
Tiago Santos [pt], Kjartan Maraas [nb], Jiro Matsuzawa [ja],
Cédric Valmary [oc], Sveinn í Felli [is]
3.21.1
======
* Save screencasts in HOME if XDG_VIDEO_DIR doesn't exist [Florian; #765015]
* Don't show orientation lock when g-s-d won't rotate [Florian; #765267]
* Misc. bug fixes [Heiher, Florian, Marek, Rui; #722752, #765061, #763068,
#765607, #757676, #760439]
Contributors:
Heiher, Marek Chalupa, Rui Matos, Florian Müllner
Translations:
Arash Mousavi [fa], Kristjan SCHMIDT [eo], GNOME Translation Robot [gd]
3.20.1
======
* Plug a memory leak [Aaron; #735705]
Contributors:
Aaron Plattner
Translations:
Daniel Korostil [uk], Matej Urbančič [sl], Inaki Larranaga Murgoitio [eu],
Cheng-Chia Tseng [zh_TW], Fabio Tomat [fur], Trần Ngọc Quân [vi],
YunQiang Su [zh_CN], Marek Černocký [cs], Arash Mousavi [fa],
Alexander Shopov [bg], Khaled Hosny [ar]
3.20.0
======

View File

@ -1,5 +1,5 @@
AC_PREREQ(2.63)
AC_INIT([gnome-shell],[3.22.0],[https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell],[gnome-shell])
AC_INIT([gnome-shell],[3.20.0],[https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell],[gnome-shell])
AX_IS_RELEASE([git-directory])
AC_CONFIG_HEADERS([config.h])
@ -24,14 +24,13 @@ LT_PREREQ([2.2.6])
LT_INIT([disable-static])
# i18n
IT_PROG_INTLTOOL([0.40])
GETTEXT_PACKAGE=gnome-shell
AC_SUBST(GETTEXT_PACKAGE)
AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE",
[The prefix for our gettext translation domains.])
AM_GNU_GETTEXT_VERSION([0.19.6])
AM_GNU_GETTEXT([external])
PKG_PROG_PKG_CONFIG([0.22])
AC_PATH_PROG([XSLTPROC], [xsltproc])
@ -76,9 +75,9 @@ AS_IF([test x$enable_systemd != xno], [
AC_MSG_RESULT($enable_systemd)
CLUTTER_MIN_VERSION=1.21.5
GOBJECT_INTROSPECTION_MIN_VERSION=1.49.1
GOBJECT_INTROSPECTION_MIN_VERSION=1.45.4
GJS_MIN_VERSION=1.39.0
MUTTER_MIN_VERSION=3.22.0
MUTTER_MIN_VERSION=3.20.0
GTK_MIN_VERSION=3.15.0
GIO_MIN_VERSION=2.45.3
LIBECAL_MIN_VERSION=3.5.3
@ -100,7 +99,6 @@ SHARED_PCS="gio-unix-2.0 >= $GIO_MIN_VERSION
$recorder_modules
gdk-x11-3.0 libsoup-2.4
mutter-clutter-1.0 >= $CLUTTER_MIN_VERSION
mutter-cogl-pango-1.0
libstartup-notification-1.0 >= $STARTUP_NOTIFICATION_MIN_VERSION
gobject-introspection-1.0 >= $GOBJECT_INTROSPECTION_MIN_VERSION
libcanberra libcanberra-gtk3
@ -120,7 +118,7 @@ PKG_CHECK_MODULES(SHELL_PERF_HELPER, gtk+-3.0 gio-2.0)
PKG_CHECK_MODULES(SHELL_HOTPLUG_SNIFFER, gio-2.0 gdk-pixbuf-2.0)
PKG_CHECK_MODULES(TRAY, mutter-clutter-1.0 gtk+-3.0)
PKG_CHECK_MODULES(GVC, libpulse >= $PULSE_MIN_VERS libpulse-mainloop-glib gobject-2.0)
PKG_CHECK_MODULES(DESKTOP_SCHEMAS, gsettings-desktop-schemas >= 3.21.3)
PKG_CHECK_MODULES(DESKTOP_SCHEMAS, gsettings-desktop-schemas >= 3.19.2)
AC_ARG_ENABLE(browser-plugin,
[AS_HELP_STRING([--enable-browser-plugin],
@ -255,6 +253,7 @@ AC_CONFIG_FILES([
docs/reference/st/Makefile
docs/reference/st/st-docs.sgml
js/Makefile
src/calendar-server/evolution-calendar.desktop.in
src/Makefile
src/gvc/Makefile
browser-plugin/Makefile

View File

@ -1,24 +1,24 @@
<?xml version="1.0" encoding="UTF-8" ?>
<KeyListEntries schema="org.gnome.shell.keybindings"
group="system"
name="System"
_name="System"
wm_name="GNOME Shell"
package="gnome-shell">
<KeyListEntry name="toggle-message-tray"
description="Show the notification list"/>
_description="Show the notification list"/>
<KeyListEntry name="focus-active-notification"
description="Focus the active notification"/>
_description="Focus the active notification"/>
<KeyListEntry name="toggle-overview"
description="Show the overview"/>
_description="Show the overview"/>
<KeyListEntry name="toggle-application-view"
description="Show all applications"/>
_description="Show all applications"/>
<KeyListEntry name="open-application-menu"
description="Open the application menu"/>
_description="Open the application menu"/>
</KeyListEntries>

View File

@ -7,16 +7,12 @@ desktop_DATA = org.gnome.Shell.desktop gnome-shell-extension-prefs.desktop
if HAVE_NETWORKMANAGER
desktop_DATA += org.gnome.Shell.PortalHelper.desktop
portaldir = $(datadir)/xdg-desktop-portal/portals
portal_DATA = gnome-shell.portal
servicedir = $(datadir)/dbus-1/services
service_DATA = org.gnome.Shell.PortalHelper.service
CLEANFILES += \
org.gnome.Shell.PortalHelper.service \
org.gnome.Shell.PortalHelper.desktop \
org.gnome.Shell.PortalHelper.desktop.in \
org.gnome.Shell.PortalHelper.service \
org.gnome.Shell.PortalHelper.desktop \
$(NULL)
endif
@ -32,9 +28,7 @@ endif
-e "s|@VERSION[@]|$(VERSION)|" \
$< > $@ || rm $@
%.desktop:%.desktop.in
$(AM_V_GEN) $(MSGFMT) --desktop --template $(builddir)/$< \
-d $(top_srcdir)/po -o $@
@INTLTOOL_DESKTOP_RULE@
introspectiondir = $(datadir)/dbus-1/interfaces
introspection_DATA = \
@ -86,11 +80,14 @@ perf-background.xml: perf-background.xml.in
$< > $@ || rm $@
keysdir = @GNOME_KEYBINDINGS_KEYSDIR@
keys_DATA = 50-gnome-shell-system.xml
keys_in_files = 50-gnome-shell-system.xml.in
keys_DATA = $(keys_in_files:.xml.in=.xml)
gsettings_SCHEMAS = org.gnome.shell.gschema.xml
%.gschema.xml: %.gschema.xml.in Makefile
@INTLTOOL_XML_NOMERGE_RULE@
%.gschema.xml.in: %.gschema.xml.in.in Makefile
$(AM_V_GEN) sed -e 's|@GETTEXT_PACKAGE[@]|$(GETTEXT_PACKAGE)|g' \
$< > $@ || rm $@
@ -109,16 +106,15 @@ convert_DATA = gnome-shell-overrides.convert
EXTRA_DIST = \
org.gnome.Shell.desktop.in.in \
gnome-shell-extension-prefs.desktop.in.in \
$(portal_DATA) \
$(introspection_DATA) \
$(menu_DATA) \
$(convert_DATA) \
$(keys_DATA) \
$(keys_in_files) \
$(dist_theme_files) \
perf-background.xml.in \
org.gnome.Shell.PortalHelper.desktop.in.in \
org.gnome.Shell.PortalHelper.desktop.in \
org.gnome.Shell.PortalHelper.service.in \
org.gnome.shell.gschema.xml.in \
org.gnome.shell.gschema.xml.in.in \
gnome-shell-theme.gresource.xml \
$(resource_files) \
$(NULL)
@ -127,9 +123,11 @@ CLEANFILES += \
org.gnome.Shell.desktop.in \
gnome-shell-extension-prefs.in \
$(desktop_DATA) \
$(keys_DATA) \
$(gsettings_SCHEMAS) \
perf-background.xml \
gschemas.compiled \
org.gnome.shell.gschema.valid \
org.gnome.shell.gschema.xml.in \
gnome-shell-theme.gresource \
$(NULL)

View File

@ -1,7 +1,7 @@
[Desktop Entry]
Type=Application
Name=GNOME Shell Extension Preferences
Comment=Configure GNOME Shell Extensions
_Name=GNOME Shell Extension Preferences
_Comment=Configure GNOME Shell Extensions
Exec=@bindir@/gnome-shell-extension-prefs %u
X-GNOME-Bugzilla-Bugzilla=GNOME
X-GNOME-Bugzilla-Product=gnome-shell

View File

@ -1,4 +0,0 @@
[portal]
DBusName=org.freedesktop.impl.portal.desktop.gnome
Interfaces=org.freedesktop.impl.portal.Access
UseIn=gnome

View File

@ -1,10 +1,9 @@
[Desktop Entry]
Name=Network Login
_Name=Network Login
Type=Application
Exec=gapplication launch org.gnome.Shell.PortalHelper
DBusActivatable=true
NoDisplay=true
# Translators: Do NOT translate or transliterate this text (this is an icon file name)!
Icon=network-workgroup
StartupNotify=true
OnlyShowIn=GNOME;

View File

@ -1,7 +1,7 @@
[Desktop Entry]
Type=Application
Name=GNOME Shell
Comment=Window management and application launching
_Name=GNOME Shell
_Comment=Window management and application launching
Exec=@bindir@/gnome-shell
X-GNOME-Bugzilla-Bugzilla=GNOME
X-GNOME-Bugzilla-Product=gnome-shell

View File

@ -3,131 +3,143 @@
gettext-domain="@GETTEXT_PACKAGE@">
<key name="development-tools" type="b">
<default>true</default>
<summary>
<_summary>
Enable internal tools useful for developers and testers from Alt-F2
</summary>
<description>
</_summary>
<_description>
Allows access to internal debugging and monitoring tools
using the Alt-F2 dialog.
</description>
</_description>
</key>
<key name="enabled-extensions" type="as">
<default>[]</default>
<summary>UUIDs of extensions to enable</summary>
<description>
<_summary>UUIDs of extensions to enable</_summary>
<_description>
GNOME Shell extensions have a UUID property; this key lists extensions
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 D-Bus methods on org.gnome.Shell.
</description>
</_description>
</key>
<key name="disable-extension-version-validation" type="b">
<default>true</default>
<summary>Disables the validation of extension version compatibility</summary>
<description>
<default>false</default>
<_summary>Disables the validation of extension version compatibility</_summary>
<_description>
GNOME Shell will only load extensions that claim to support the current
running version. Enabling this option will disable this check and try to
load all extensions regardless of the versions they claim to support.
</description>
</_description>
</key>
<key name="favorite-apps" type="as">
<default>[ 'epiphany.desktop', 'evolution.desktop', 'rhythmbox.desktop', 'shotwell.desktop', 'org.gnome.Nautilus.desktop', 'org.gnome.Software.desktop' ]</default>
<summary>List of desktop file IDs for favorite applications</summary>
<description>
<_summary>List of desktop file IDs for favorite applications</_summary>
<_description>
The applications corresponding to these identifiers
will be displayed in the favorites area.
</description>
</_description>
</key>
<key name="app-picker-view" type="u">
<default>0</default>
<summary>App Picker View</summary>
<description>
<_summary>App Picker View</_summary>
<_description>
Index of the currently selected view in the application picker.
</description>
</_description>
</key>
<key name="command-history" type="as">
<default>[]</default>
<summary>History for command (Alt-F2) dialog</summary>
<_summary>History for command (Alt-F2) dialog</_summary>
</key>
<key name="looking-glass-history" type="as">
<default>[]</default>
<!-- Translators: looking glass is a debugger and inspector tool, see https://wiki.gnome.org/Projects/GnomeShell/LookingGlass -->
<summary>History for the looking glass dialog</summary>
<!-- Translators: looking glass is a debugger and inspector tool, see https://live.gnome.org/GnomeShell/LookingGlass -->
<_summary>History for the looking glass dialog</_summary>
</key>
<key name="always-show-log-out" type="b">
<default>false</default>
<summary>Always show the 'Log out' menu item in the user menu.</summary>
<description>
<_summary>Always show the 'Log out' menu item in the user menu.</_summary>
<_description>
This key overrides the automatic hiding of the 'Log out'
menu item in single-user, single-session situations.
</description>
</_description>
</key>
<key name="remember-mount-password" type="b">
<default>false</default>
<summary>Whether to remember password for mounting encrypted or remote filesystems</summary>
<description>
<_summary>Whether to remember password for mounting encrypted or remote filesystems</_summary>
<_description>
The shell will request a password when an encrypted device or a
remote filesystem is mounted. If the password can be saved for
future use a 'Remember Password' checkbox will be present.
This key sets the default state of the checkbox.
</description>
</_description>
</key>
<key name="had-bluetooth-devices-setup" type="b">
<default>false</default>
<summary>Whether the default Bluetooth adapter had set up devices associated to it</summary>
<description>
<_summary>Whether the default Bluetooth adapter had set up devices associated to it</_summary>
<_description>
The shell will only show a Bluetooth menu item if a Bluetooth
adapter is powered, or if there were devices set up associated
with the default adapter. This will be reset if the default
adapter is ever seen not to have devices associated to it.
</description>
</_description>
</key>
<child name="calendar" schema="org.gnome.shell.calendar"/>
<child name="keybindings" schema="org.gnome.shell.keybindings"/>
<child name="keyboard" schema="org.gnome.shell.keyboard"/>
</schema>
<schema id="org.gnome.shell.calendar" path="/org/gnome/shell/calendar/"
gettext-domain="@GETTEXT_PACKAGE@">
<key name="show-weekdate" type="b">
<default>false</default>
<_summary>Show the week date in the calendar</_summary>
<_description>
If true, display the ISO week date in the calendar.
</_description>
</key>
</schema>
<schema id="org.gnome.shell.keybindings" path="/org/gnome/shell/keybindings/"
gettext-domain="@GETTEXT_PACKAGE@">
<key name="open-application-menu" type="as">
<default>["&lt;Super&gt;F10"]</default>
<summary>Keybinding to open the application menu</summary>
<description>
<_summary>Keybinding to open the application menu</_summary>
<_description>
Keybinding to open the application menu.
</description>
</_description>
</key>
<key name="toggle-application-view" type="as">
<default>["&lt;Super&gt;a"]</default>
<summary>Keybinding to open the "Show Applications" view</summary>
<description>
<_summary>Keybinding to open the "Show Applications" view</_summary>
<_description>
Keybinding to open the "Show Applications" view of the Activities
Overview.
</description>
</_description>
</key>
<key name="toggle-overview" type="as">
<default>["&lt;Super&gt;s"]</default>
<summary>Keybinding to open the overview</summary>
<description>
<_summary>Keybinding to open the overview</_summary>
<_description>
Keybinding to open the Activities Overview.
</description>
</_description>
</key>
<key name="toggle-message-tray" type="as">
<default>["&lt;Super&gt;v","&lt;Super&gt;m"]</default>
<summary>Keybinding to toggle the visibility of the notification list</summary>
<description>
<_summary>Keybinding to toggle the visibility of the notification list</_summary>
<_description>
Keybinding to toggle the visibility of the notification list.
</description>
</_description>
</key>
<key name="focus-active-notification" type="as">
<default>["&lt;Super&gt;n"]</default>
<summary>Keybinding to focus the active notification</summary>
<description>
<_summary>Keybinding to focus the active notification</_summary>
<_description>
Keybinding to focus the active notification.
</description>
</_description>
</key>
<key name="pause-resume-tweens" type="as">
<default>[]</default>
<summary>Keybinding that pauses and resumes all running tweens, for debugging purposes</summary>
<description></description>
<_summary>Keybinding that pauses and resumes all running tweens, for debugging purposes</_summary>
<_description></_description>
</key>
</schema>
@ -135,10 +147,10 @@
gettext-domain="@GETTEXT_PACKAGE@">
<key name="keyboard-type" type="s">
<default>'touch'</default>
<summary>Which keyboard to use</summary>
<description>
<_summary>Which keyboard to use</_summary>
<_description>
The type of keyboard to use.
</description>
</_description>
</key>
</schema>
@ -147,11 +159,11 @@
gettext-domain="@GETTEXT_PACKAGE@">
<key type="b" name="current-workspace-only">
<default>false</default>
<summary>Limit switcher to current workspace.</summary>
<description>
<_summary>Limit switcher to current workspace.</_summary>
<_description>
If true, only applications that have windows on the current workspace are shown in the switcher.
Otherwise, all applications are included.
</description>
</_description>
</key>
</schema>
@ -165,20 +177,20 @@
gettext-domain="@GETTEXT_PACKAGE@">
<key name="app-icon-mode" enum="org.gnome.shell.window-switcher.AppIconMode">
<default>'both'</default>
<summary>The application icon mode.</summary>
<description>
<_summary>The application icon mode.</_summary>
<_description>
Configures how the windows are shown in the switcher. Valid possibilities
are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-only'
(shows only the application icon) or 'both'.
</description>
</_description>
</key>
<key type="b" name="current-workspace-only">
<default>true</default>
<summary>Limit switcher to current workspace.</summary>
<description>
<_summary>Limit switcher to current workspace.</_summary>
<_description>
If true, only windows from the current workspace are shown in the switcher.
Otherwise, all windows are included.
</description>
</_description>
</key>
</schema>
@ -186,43 +198,43 @@
gettext-domain="@GETTEXT_PACKAGE@">
<key name="attach-modal-dialogs" type="b">
<default>true</default>
<summary>Attach modal dialog to the parent window</summary>
<description>
<_summary>Attach modal dialog to the parent window</_summary>
<_description>
This key overrides the key in org.gnome.mutter when running
GNOME Shell.
</description>
</_description>
</key>
<key name="edge-tiling" type="b">
<default>true</default>
<summary>Enable edge tiling when dropping windows on screen edges</summary>
<description>
<_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>
</_description>
</key>
<key name="dynamic-workspaces" type="b">
<default>true</default>
<summary>Workspaces are managed dynamically</summary>
<description>
<_summary>Workspaces are managed dynamically</_summary>
<_description>
This key overrides the key in org.gnome.mutter when running GNOME Shell.
</description>
</_description>
</key>
<key name="workspaces-only-on-primary" type="b">
<default>true</default>
<summary>Workspaces only on primary monitor</summary>
<description>
<_summary>Workspaces only on primary monitor</_summary>
<_description>
This key overrides the key in org.gnome.mutter when running GNOME Shell.
</description>
</_description>
</key>
<key name="focus-change-on-pointer-rest" type="b">
<default>true</default>
<summary>Delay focus changes in mouse mode until the pointer stops moving</summary>
<description>
<_summary>Delay focus changes in mouse mode until the pointer stops moving</_summary>
<_description>
This key overrides the key in org.gnome.mutter when running GNOME Shell.
</description>
</_description>
</key>
</schema>
</schemalist>

View File

@ -427,29 +427,6 @@ StScrollBar {
.audio-selection-device-icon {
icon-size: 64px; }
/* Access Dialog */
.access-dialog {
spacing: 30px; }
.access-dialog-main-layout {
padding: 12px 20px 0;
spacing: 12px; }
.access-dialog-content {
max-width: 28em;
spacing: 20px; }
.access-dialog-icon {
min-width: 48px;
icon-size: 48px; }
.access-dialog-title {
font-weight: bold; }
.access-dialog-subtitle {
color: #999999;
font-weight: bold; }
/* Geolocation Dialog */
.geolocation-dialog {
spacing: 30px; }
@ -558,9 +535,6 @@ StScrollBar {
border-radius: 0.3em;
background-color: rgba(11, 12, 13, 0.5);
color: #eeeeec; }
.osd-window .level-bar {
background-color: #eeeeec;
border-radius: 0.3em; }
/* App Switcher */
.switcher-popup {
@ -604,10 +578,6 @@ StScrollBar {
width: 96px;
height: 96px; }
/* Window Cycler */
.cycler-highlight {
border: 5px solid #215d9c; }
/* Workspace Switcher */
.workspace-switcher-group {
padding: 12px; }
@ -796,7 +766,7 @@ StScrollBar {
border-radius: 1.4em; }
.calendar-day-base:hover, .calendar-day-base:focus {
background-color: #0d0d0d; }
.calendar-day-base:active, .calendar-day-base:selected {
.calendar-day-base:active {
color: white;
background-color: #215d9c;
border-color: transparent; }

View File

@ -427,29 +427,6 @@ StScrollBar {
.audio-selection-device-icon {
icon-size: 64px; }
/* Access Dialog */
.access-dialog {
spacing: 30px; }
.access-dialog-main-layout {
padding: 12px 20px 0;
spacing: 12px; }
.access-dialog-content {
max-width: 28em;
spacing: 20px; }
.access-dialog-icon {
min-width: 48px;
icon-size: 48px; }
.access-dialog-title {
font-weight: bold; }
.access-dialog-subtitle {
color: #8e8e80;
font-weight: bold; }
/* Geolocation Dialog */
.geolocation-dialog {
spacing: 30px; }
@ -558,9 +535,6 @@ StScrollBar {
border-radius: 0.3em;
background-color: rgba(11, 12, 13, 0.5);
color: #eeeeec; }
.osd-window .level-bar {
background-color: #eeeeec;
border-radius: 0.3em; }
/* App Switcher */
.switcher-popup {
@ -604,10 +578,6 @@ StScrollBar {
width: 96px;
height: 96px; }
/* Window Cycler */
.cycler-highlight {
border: 5px solid #215d9c; }
/* Workspace Switcher */
.workspace-switcher-group {
padding: 12px; }
@ -796,7 +766,7 @@ StScrollBar {
border-radius: 1.4em; }
.calendar-day-base:hover, .calendar-day-base:focus {
background-color: #454c4c; }
.calendar-day-base:active, .calendar-day-base:selected {
.calendar-day-base:active {
color: white;
background-color: #215d9c;
border-color: transparent; }

View File

@ -113,7 +113,7 @@ expand_content_files=
# e.g. GTKDOC_CFLAGS=-I$(top_srcdir) -I$(top_builddir) $(GTK_DEBUG_FLAGS)
# e.g. GTKDOC_LIBS=$(top_builddir)/gtk/$(gtktargetlib)
GTKDOC_CFLAGS=$(GNOME_SHELL_CFLAGS)
GTKDOC_LIBS=$(GNOME_SHELL_LIBS) $(top_builddir)/src/libgnome-shell-menu.la $(top_builddir)/src/libgnome-shell-base.la $(top_builddir)/src/libgnome-shell.la -rpath $(MUTTER_TYPELIB_DIR)
GTKDOC_LIBS=$(GNOME_SHELL_LIBS) $(top_builddir)/src/libgnome-shell-menu.la $(top_builddir)/src/libgnome-shell-base.la $(top_builddir)/src/libgnome-shell.la
# This includes the standard gtk-doc make rules, copied by gtkdocize.
include $(top_srcdir)/gtk-doc.make

View File

@ -78,7 +78,7 @@ expand_content_files=
# e.g. GTKDOC_CFLAGS=-I$(top_srcdir) -I$(top_builddir) $(GTK_DEBUG_FLAGS)
# e.g. GTKDOC_LIBS=$(top_builddir)/gtk/$(gtktargetlib)
GTKDOC_CFLAGS=
GTKDOC_LIBS=$(top_builddir)/src/libst-1.0.la -rpath $(MUTTER_TYPELIB_DIR)
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

View File

@ -152,7 +152,6 @@ const Application = new Lang.Class({
let scroll = new Gtk.ScrolledWindow({ hscrollbar_policy: Gtk.PolicyType.NEVER,
shadow_type: Gtk.ShadowType.IN,
halign: Gtk.Align.CENTER,
propagate_natural_width: true,
margin: 18 });
this._window.add(scroll);

View File

@ -804,11 +804,6 @@ const LoginDialog = new Lang.Class({
this._user = null;
if (this._nextSignalId) {
this._authPrompt.disconnect(this._nextSignalId);
this._nextSignalId = 0;
}
if (beginRequest == AuthPrompt.BeginRequestType.PROVIDE_USERNAME) {
if (!this._disableUserList)
this._showUserList();

View File

@ -31,7 +31,6 @@
<file>portalHelper/main.js</file>
<file>ui/accessDialog.js</file>
<file>ui/altTab.js</file>
<file>ui/animation.js</file>
<file>ui/appDisplay.js</file>

View File

@ -6,7 +6,9 @@
const Lang = imports.lang;
const Signals = imports.signals;
const GLib = imports.gi.GLib;
const Gio = imports.gi.Gio;
const ShellJS = imports.gi.ShellJS;
const Config = imports.misc.config;
const FileUtils = imports.misc.fileUtils;
@ -138,11 +140,12 @@ function createExtensionObject(uuid, dir, type) {
return extension;
}
var _extension = null;
function installImporter(extension) {
let oldSearchPath = imports.searchPath.slice(); // make a copy
imports.searchPath = [extension.path];
extension.imports = imports['.']; // "subdir" creates a new importer object
imports.searchPath = oldSearchPath;
_extension = extension;
ShellJS.add_extension_importer('imports.misc.extensionUtils._extension', 'imports', extension.path);
_extension = null;
}
const ExtensionFinder = new Lang.Class({

View File

@ -40,9 +40,6 @@ const SystemdLoginSessionIface = '<node> \
<signal name="Lock" /> \
<signal name="Unlock" /> \
<property name="Active" type="b" access="read" /> \
<method name="SetLockedHint"> \
<arg type="b" direction="in"/> \
</method> \
</interface> \
</node>';
@ -134,13 +131,10 @@ const LoginManagerSystemd = new Lang.Class({
canSuspend: function(asyncCallback) {
this._proxy.CanSuspendRemote(function(result, error) {
if (error) {
asyncCallback(false, false);
} else {
let needsAuth = result[0] == 'challenge';
let canSuspend = needsAuth || result[0] == 'yes';
asyncCallback(canSuspend, needsAuth);
}
if (error)
asyncCallback(false);
else
asyncCallback(result[0] != 'no' && result[0] != 'na');
});
},
@ -193,7 +187,7 @@ const LoginManagerDummy = new Lang.Class({
},
canSuspend: function(asyncCallback) {
asyncCallback(false, false);
asyncCallback(false);
},
listSessions: function(asyncCallback) {

View File

@ -1,202 +0,0 @@
const Clutter = imports.gi.Clutter;
const Gio = imports.gi.Gio;
const GLib = imports.gi.GLib;
const Lang = imports.lang;
const Pango = imports.gi.Pango;
const Shell = imports.gi.Shell;
const St = imports.gi.St;
const CheckBox = imports.ui.checkBox;
const ModalDialog = imports.ui.modalDialog;
const RequestIface = '<node> \
<interface name="org.freedesktop.impl.portal.Request"> \
<method name="Close"/> \
</interface> \
</node>';
const AccessIface = '<node> \
<interface name="org.freedesktop.impl.portal.Access"> \
<method name="AccessDialog"> \
<arg type="o" name="handle" direction="in"/> \
<arg type="s" name="app_id" direction="in"/> \
<arg type="s" name="parent_window" direction="in"/> \
<arg type="s" name="title" direction="in"/> \
<arg type="s" name="subtitle" direction="in"/> \
<arg type="s" name="body" direction="in"/> \
<arg type="a{sv}" name="options" direction="in"/> \
<arg type="u" name="response" direction="out"/> \
<arg type="a{sv}" name="results" direction="out"/> \
</method> \
</interface> \
</node>';
const DialogResponse = {
OK: 0,
CANCEL: 1,
CLOSED: 2
};
const AccessDialog = new Lang.Class({
Name: 'AccessDialog',
Extends: ModalDialog.ModalDialog,
_init: function(invocation, handle, title, subtitle, body, options) {
this.parent({ styleClass: 'access-dialog' });
this._invocation = invocation;
this._handle = handle;
this._requestExported = false;
this._request = Gio.DBusExportedObject.wrapJSObject(RequestIface, this);
for (let option in options)
options[option] = options[option].deep_unpack();
this._buildLayout(title, subtitle, body, options);
},
_buildLayout: function(title, subtitle, body, options) {
// No support for non-modal system dialogs, so ignore the option
//let modal = options['modal'] || true;
let denyLabel = options['deny_label'] || _("Deny Access");
let grantLabel = options['grant_label'] || _("Grant Access");
let iconName = options['icon'] || null;
let choices = options['choices'] || [];
let mainContentBox = new St.BoxLayout();
mainContentBox.style_class = 'access-dialog-main-layout';
this.contentLayout.add_actor(mainContentBox);
let icon = new St.Icon({ style_class: 'access-dialog-icon',
icon_name: iconName,
y_align: Clutter.ActorAlign.START });
mainContentBox.add_actor(icon);
let messageBox = new St.BoxLayout({ vertical: true });
messageBox.style_class = 'access-dialog-content',
mainContentBox.add_actor(messageBox);
let label;
label = new St.Label({ style_class: 'access-dialog-title headline',
text: title });
messageBox.add_actor(label);
label = new St.Label({ style_class: 'access-dialog-subtitle',
text: subtitle });
label.clutter_text.ellipsize = Pango.EllipsizeMode.NONE;
label.clutter_text.line_wrap = true;
messageBox.add_actor(label);
this._choices = new Map();
for (let i = 0; i < choices.length; i++) {
let [id, name, opts, selected] = choices[i];
if (opts.length > 0)
continue; // radio buttons, not implemented
let check = new CheckBox.CheckBox();
check.getLabelActor().text = name;
check.actor.checked = selected == "true";
messageBox.add_actor(check.actor);
this._choices.set(id, check);
}
label = new St.Label({ text: body });
label.clutter_text.ellipsize = Pango.EllipsizeMode.NONE;
label.clutter_text.line_wrap = true;
messageBox.add_actor(label);
this.addButton({ label: denyLabel,
action: () => {
this._sendResponse(DialogResponse.CANCEL);
},
key: Clutter.KEY_Escape });
this.addButton({ label: grantLabel,
action: () => {
this._sendResponse(DialogResponse.OK);
}});
},
open: function() {
this.parent();
let connection = this._invocation.get_connection();
this._requestExported = this._request.export(connection, this._handle);
},
CloseAsync: function(invocation, params) {
if (this._invocation.get_sender() != invocation.get_sender()) {
invocation.return_error_literal(Gio.DBusError,
Gio.DBusError.ACCESS_DENIED,
'');
return;
}
this._sendResponse(DialogResponse.CLOSED);
},
_sendResponse: function(response) {
if (this._requestExported)
this._request.unexport();
this._requestExported = false;
let results = {};
if (response == DialogResponse.OK) {
for (let [id, check] of this._choices) {
let checked = check.actor.checked ? 'true' : 'false';
results[id] = new GLib.Variant('s', checked);
}
}
// Delay actual response until the end of the close animation (if any)
this.connect('closed', () => {
this._invocation.return_value(new GLib.Variant('(ua{sv})',
[response, results]));
});
this.close();
}
});
const AccessDialogDBus = new Lang.Class({
Name: 'AccessDialogDBus',
_init: function() {
this._accessDialog = null;
this._windowTracker = Shell.WindowTracker.get_default();
this._dbusImpl = Gio.DBusExportedObject.wrapJSObject(AccessIface, this);
this._dbusImpl.export(Gio.DBus.session, '/org/freedesktop/portal/desktop');
Gio.DBus.session.own_name('org.freedesktop.impl.portal.desktop.gnome', Gio.BusNameOwnerFlags.REPLACE, null, null);
},
AccessDialogAsync: function(params, invocation) {
if (this._accessDialog) {
invocation.return_error_literal(Gio.DBusError,
Gio.DBusError.LIMITS_EXCEEDED,
'Already showing a system access dialog');
return;
}
let [handle, appId, parentWindow, title, subtitle, body, options] = params;
// We probably want to use parentWindow and global.display.focus_window
// for this check in the future
if (appId && appId + '.desktop' != this._windowTracker.focus_app.id) {
invocation.return_error_literal(Gio.DBusError,
Gio.DBusError.ACCESS_DENIED,
'Only the focused app is allowed to show a system access dialog');
return;
}
let dialog = new AccessDialog(invocation, handle, title,
subtitle, body, options);
dialog.open();
dialog.connect('closed', () => { this._accessDialog = null; });
this._accessDialog = dialog;
}
});

View File

@ -354,149 +354,6 @@ const AppSwitcherPopup = new Lang.Class({
}
});
const CyclerHighlight = new Lang.Class({
Name: 'CyclerHighlight',
_init: function() {
this._window = null;
this.actor = new St.Widget({ layout_manager: new Clutter.BinLayout() });
this._clone = new Clutter.Clone();
this.actor.add_actor(this._clone);
this._highlight = new St.Widget({ style_class: 'cycler-highlight' });
this.actor.add_actor(this._highlight);
let coordinate = Clutter.BindCoordinate.ALL;
let constraint = new Clutter.BindConstraint({ coordinate: coordinate });
this._clone.bind_property('source', constraint, 'source', 0);
this.actor.add_constraint(constraint);
this.actor.connect('notify::allocation',
Lang.bind(this, this._onAllocationChanged));
this.actor.connect('destroy', Lang.bind(this, this._onDestroy));
},
set window(w) {
if (this._window == w)
return;
this._window = w;
if (this._clone.source)
this._clone.source.sync_visibility();
let windowActor = this._window ? this._window.get_compositor_private()
: null;
if (windowActor)
windowActor.hide();
this._clone.source = windowActor;
},
_onAllocationChanged: function() {
if (!this._window) {
this._highlight.set_size(0, 0);
this._highlight.hide();
} else {
let [x, y] = this.actor.allocation.get_origin();
let rect = this._window.get_frame_rect();
this._highlight.set_size(rect.width, rect.height);
this._highlight.set_position(rect.x - x, rect.y - y);
this._highlight.show();
}
},
_onDestroy: function() {
this.window = null;
}
});
const CyclerPopup = new Lang.Class({
Name: 'CyclerPopup',
Extends: SwitcherPopup.SwitcherPopup,
Abstract: true,
_init : function() {
this.parent();
this._items = this._getWindows();
if (this._items.length == 0)
return;
this._highlight = new CyclerHighlight();
global.window_group.add_actor(this._highlight.actor);
// We don't show an actual popup, so just provide what SwitcherPopup
// expects instead of inheriting from SwitcherList
this._switcherList = { actor: new St.Widget(),
highlight: Lang.bind(this, this._highlightItem),
connect: function() {} };
},
_highlightItem: function(index, justOutline) {
this._highlight.window = this._items[index];
global.window_group.set_child_above_sibling(this._highlight.actor, null);
},
_finish: function() {
let window = this._items[this._selectedIndex];
let ws = window.get_workspace();
let activeWs = global.screen.get_active_workspace();
if (window.minimized) {
Main.wm.skipNextEffect(window.get_compositor_private());
window.unminimize();
}
if (activeWs == ws) {
Main.activateWindow(window);
} else {
// If the selected window is on a different workspace, we don't
// want it to disappear, then slide in with the workspace; instead,
// always activate it on the active workspace ...
activeWs.activate_with_focus(window, global.get_current_time());
// ... then slide it over to the original workspace if necessary
Main.wm.actionMoveWindow(window, ws);
}
this.parent();
},
_onDestroy: function() {
this._highlight.actor.destroy();
this.parent();
}
});
const GroupCyclerPopup = new Lang.Class({
Name: 'GroupCyclerPopup',
Extends: CyclerPopup,
_getWindows: function() {
let app = Shell.WindowTracker.get_default().focus_app;
return app ? app.get_windows() : [];
},
_keyPressHandler: function(keysym, action) {
if (action == Meta.KeyBindingAction.CYCLE_GROUP)
this._select(this._next());
else if (action == Meta.KeyBindingAction.CYCLE_GROUP_BACKWARD)
this._select(this._previous());
else
return Clutter.EVENT_PROPAGATE;
return Clutter.EVENT_STOP;
}
});
const WindowSwitcherPopup = new Lang.Class({
Name: 'WindowSwitcherPopup',
Extends: SwitcherPopup.SwitcherPopup,
@ -544,32 +401,6 @@ const WindowSwitcherPopup = new Lang.Class({
}
});
const WindowCyclerPopup = new Lang.Class({
Name: 'WindowCyclerPopup',
Extends: CyclerPopup,
_init: function() {
this._settings = new Gio.Settings({ schema_id: 'org.gnome.shell.window-switcher' });
this.parent();
},
_getWindows: function() {
let workspace = this._settings.get_boolean('current-workspace-only') ? global.screen.get_active_workspace() : null;
return global.display.get_tab_list(Meta.TabList.NORMAL, workspace);
},
_keyPressHandler: function(keysym, action) {
if (action == Meta.KeyBindingAction.CYCLE_WINDOWS)
this._select(this._next());
else if (action == Meta.KeyBindingAction.CYCLE_WINDOWS_BACKWARD)
this._select(this._previous());
else
return Clutter.EVENT_PROPAGATE;
return Clutter.EVENT_STOP;
}
});
const AppIcon = new Lang.Class({
Name: 'AppIcon',

View File

@ -1814,7 +1814,7 @@ const AppIconMenu = new Lang.Class({
if (!source.actor.mapped)
this.close();
}));
source.actor.connect('destroy', Lang.bind(this, this.destroy));
source.actor.connect('destroy', Lang.bind(this, function () { this.actor.destroy(); }));
Main.uiGroup.add_actor(this.actor);
},

View File

@ -696,7 +696,6 @@ const BackgroundManager = new Lang.Class({
time: FADE_ANIMATION_TIME,
transition: 'easeOutQuad',
onComplete: function() {
oldBackgroundActor.background.run_dispose();
oldBackgroundActor.destroy();
}
});

View File

@ -120,9 +120,6 @@ const EmptyEventSource = new Lang.Class({
destroy: function() {
},
ignoreEvent: function(event) {
},
requestRange: function(begin, end) {
},
@ -187,15 +184,6 @@ const DBusEventSource = new Lang.Class({
this.isLoading = false;
this.isDummy = false;
this._ignoredEvents = new Map();
let savedState = global.get_persistent_state('as', 'ignored_events');
if (savedState)
savedState.deep_unpack().forEach(Lang.bind(this,
function(eventId) {
this._ignoredEvents.set(eventId, true);
}));
this._initialized = false;
this._dbusProxy = new CalendarServer();
this._dbusProxy.init_async(GLib.PRIORITY_DEFAULT, null, Lang.bind(this, function(object, result) {
@ -310,16 +298,6 @@ const DBusEventSource = new Lang.Class({
}
},
ignoreEvent: function(event) {
if (this._ignoredEvents.get(event.id))
return;
this._ignoredEvents.set(event.id, true);
let savedState = new GLib.Variant('as', [...this._ignoredEvents.keys()]);
global.set_persistent_state('ignored_events', savedState);
this.emit('changed');
},
requestRange: function(begin, end) {
if (!(_datesEqual(begin, this._lastRequestBegin) && _datesEqual(end, this._lastRequestEnd))) {
this.isLoading = true;
@ -335,10 +313,6 @@ const DBusEventSource = new Lang.Class({
let result = [];
for(let n = 0; n < this._events.length; n++) {
let event = this._events[n];
if (this._ignoredEvents.has(event.id))
continue;
if (_dateIntervalsOverlap (event.date, event.end, begin, end)) {
result.push(event);
}
@ -371,7 +345,7 @@ const Calendar = new Lang.Class({
_init: function() {
this._weekStart = Shell.util_get_week_start();
this._settings = new Gio.Settings({ schema_id: 'org.gnome.desktop.calendar' });
this._settings = new Gio.Settings({ schema_id: 'org.gnome.shell.calendar' });
this._settings.connect('changed::' + SHOW_WEEKDATE_KEY, Lang.bind(this, this._onSettingsChange));
this._useWeekdate = this._settings.get_boolean(SHOW_WEEKDATE_KEY);
@ -686,12 +660,12 @@ const Calendar = new Lang.Class({
this._buttons.forEach(Lang.bind(this, function(button) {
if (sameDay(button._date, this._selectedDate)) {
button.add_style_pseudo_class('selected');
button.add_style_pseudo_class('active');
if (this._shouldDateGrabFocus)
button.grab_key_focus();
}
else
button.remove_style_pseudo_class('selected');
button.remove_style_pseudo_class('active');
}));
}
});
@ -811,6 +785,15 @@ const EventsSection = new Lang.Class({
this._desktopSettings.connect('changed', Lang.bind(this, this._reloadEvents));
this._eventSource = new EmptyEventSource();
this._ignoredEvents = new Map();
let savedState = global.get_persistent_state('as', 'ignored_events');
if (savedState)
savedState.deep_unpack().forEach(Lang.bind(this,
function(eventId) {
this._ignoredEvents.set(eventId, true);
}));
this.parent('');
Shell.AppSystem.get_default().connect('installed-changed',
@ -819,7 +802,9 @@ const EventsSection = new Lang.Class({
},
_ignoreEvent: function(event) {
this._eventSource.ignoreEvent(event);
this._ignoredEvents.set(event.id, true);
let savedState = new GLib.Variant('as', [...this._ignoredEvents.keys()]);
global.set_persistent_state('ignored_events', savedState);
},
setEventSource: function(eventSource) {
@ -865,6 +850,9 @@ const EventsSection = new Lang.Class({
for (let i = 0; i < events.length; i++) {
let event = events[i];
if (this._ignoredEvents.has(event.id))
continue;
let message = new EventMessage(event, this._date);
message.connect('close', Lang.bind(this, function() {
this._ignoreEvent(event);

View File

@ -796,18 +796,10 @@ const NetworkAgent = new Lang.Class({
path = GLib.build_filenamev([Config.LIBEXECDIR, path]);
}
if (GLib.file_test(path, GLib.FileTest.IS_EXECUTABLE)) {
if (GLib.file_test(path, GLib.FileTest.IS_EXECUTABLE))
this._vpnBinaries[service] = { fileName: path, externalUIMode: externalUIMode, supportsHints: hints };
try {
let aliases = keyfile.get_string_list('VPN Connection', 'aliases');
for (let alias of aliases) {
this._vpnBinaries[alias] = { fileName: path, externalUIMode: externalUIMode, supportsHints: hints };
}
} catch(e) { } // ignore errors if key does not exist
} else {
else
throw new Error('VPN plugin at %s is not executable'.format(path));
}
} catch(e) {
log('Error \'%s\' while processing VPN keyfile \'%s\''.
format(e.message, dir.get_child(name).get_path()));

View File

@ -475,11 +475,6 @@ const ChatSource = new Lang.Class({
this._channel.close_async(function(channel, result) {
channel.close_finish(result);
});
} else {
// Don't indicate any unread messages when the notification
// that represents them has been destroyed.
this._pendingMessages = [];
this.countUpdated();
}
// Keep source alive while the channel is open

View File

@ -571,13 +571,20 @@ const _Draggable = new Lang.Class({
return;
}
this._animateDragEnd(eventTime,
{ x: snapBackX,
y: snapBackY,
scale_x: snapBackScale,
scale_y: snapBackScale,
time: SNAP_BACK_ANIMATION_TIME,
});
this._animationInProgress = true;
// No target, so snap back
Tweener.addTween(this._dragActor,
{ x: snapBackX,
y: snapBackY,
scale_x: snapBackScale,
scale_y: snapBackScale,
opacity: this._dragOrigOpacity,
time: SNAP_BACK_ANIMATION_TIME,
transition: 'easeOutQuad',
onComplete: this._onAnimationComplete,
onCompleteScope: this,
onCompleteParams: [this._dragActor, eventTime]
});
},
_restoreDragActor: function(eventTime) {
@ -589,44 +596,18 @@ const _Draggable = new Lang.Class({
this._dragActor.set_scale(restoreScale, restoreScale);
this._dragActor.opacity = 0;
this._animateDragEnd(eventTime,
{ time: REVERT_ANIMATION_TIME });
},
_animateDragEnd: function (eventTime, params) {
this._animationInProgress = true;
// finish animation if the actor gets destroyed
// during it
this._dragActorDestroyId =
this._dragActor.connect('destroy',
Lang.bind(this, this._finishAnimation));
params['opacity'] = this._dragOrigOpacity;
params['transition'] = 'easeOutQuad';
params['onComplete'] = this._onAnimationComplete;
params['onCompleteScope'] = this;
params['onCompleteParams'] = [this._dragActor, eventTime];
// start the animation
Tweener.addTween(this._dragActor, params)
},
_finishAnimation : function () {
if (!this._animationInProgress)
return
this._animationInProgress = false;
if (!this._buttonDown)
this._dragComplete();
global.screen.set_cursor(Meta.Cursor.DEFAULT);
Tweener.addTween(this._dragActor,
{ opacity: this._dragOrigOpacity,
time: REVERT_ANIMATION_TIME,
transition: 'easeOutQuad',
onComplete: this._onAnimationComplete,
onCompleteScope: this,
onCompleteParams: [this._dragActor, eventTime]
});
},
_onAnimationComplete : function (dragActor, eventTime) {
dragActor.disconnect(this._dragActorDestroyId);
this._dragActorDestroyId = 0;
if (this._dragOrigParent) {
Main.uiGroup.remove_child(this._dragActor);
this._dragOrigParent.add_actor(this._dragActor);
@ -635,9 +616,12 @@ const _Draggable = new Lang.Class({
} else {
dragActor.destroy();
}
global.screen.set_cursor(Meta.Cursor.DEFAULT);
this.emit('drag-end', eventTime, false);
this._finishAnimation();
this._animationInProgress = false;
if (!this._buttonDown)
this._dragComplete();
},
_dragComplete: function() {

View File

@ -1,6 +1,6 @@
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
/*
* Copyright 2010-2016 Red Hat, Inc
* Copyright 2010 Red Hat, Inc
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -114,7 +114,7 @@ const restartDialogContent = {
showOtherSessions: true,
};
const restartUpdateDialogContent = {
const restartInstallDialogContent = {
subject: C_("title", "Restart & Install Updates"),
description: function(seconds) {
@ -132,38 +132,18 @@ const restartUpdateDialogContent = {
showOtherSessions: true,
};
const restartUpgradeDialogContent = {
subject: C_("title", "Restart & Install Upgrade"),
upgradeDescription: function(distroName, distroVersion) {
/* Translators: This is the text displayed for system upgrades in the
shut down dialog. First %s gets replaced with the distro name and
second %s with the distro version to upgrade to */
return _("%s %s will be installed after restart. Upgrade installation can take a long time: ensure that you have backed up and that the computer is plugged in.").format(distroName, distroVersion);
},
disableTimer: true,
showBatteryWarning: false,
confirmButtons: [{ signal: 'ConfirmedReboot',
label: C_("button", "Restart &amp; Install") }],
iconName: 'view-refresh-symbolic',
iconStyleClass: 'end-session-dialog-shutdown-icon',
showOtherSessions: true,
};
const DialogType = {
LOGOUT: 0 /* GSM_SHELL_END_SESSION_DIALOG_TYPE_LOGOUT */,
SHUTDOWN: 1 /* GSM_SHELL_END_SESSION_DIALOG_TYPE_SHUTDOWN */,
RESTART: 2 /* GSM_SHELL_END_SESSION_DIALOG_TYPE_RESTART */,
UPDATE_RESTART: 3,
UPGRADE_RESTART: 4
UPDATE_RESTART: 3
};
const DialogContent = {
0 /* DialogType.LOGOUT */: logoutDialogContent,
1 /* DialogType.SHUTDOWN */: shutdownDialogContent,
2 /* DialogType.RESTART */: restartDialogContent,
3 /* DialogType.UPDATE_RESTART */: restartUpdateDialogContent,
4 /* DialogType.UPGRADE_RESTART */: restartUpgradeDialogContent
3 /* DialogType.UPDATE_RESTART */: restartInstallDialogContent
};
const MAX_USERS_IN_SESSION_DIALOG = 5;
@ -183,10 +163,7 @@ const LogindSession = Gio.DBusProxy.makeProxyWrapper(LogindSessionIface);
const PkOfflineIface = '<node> \
<interface name="org.freedesktop.PackageKit.Offline"> \
<property name="UpdatePrepared" type="b" access="read"/> \
<property name="UpdateTriggered" type="b" access="read"/> \
<property name="UpgradePrepared" type="b" access="read"/> \
<property name="UpgradeTriggered" type="b" access="read"/> \
<property name="PreparedUpgrade" type="a{sv}" access="read"/> \
<property name="TriggerAction" type="s" access="read"/> \
<method name="Trigger"> \
<arg type="s" name="action" direction="in"/> \
</method> \
@ -438,19 +415,11 @@ const EndSessionDialog = new Lang.Class({
if (dialogContent.descriptionWithUser)
description = dialogContent.descriptionWithUser(realName, displayTime);
else
description = dialogContent.description(displayTime);
}
}
// Use a different description when we are installing a system upgrade
if (dialogContent.upgradeDescription) {
let name = this._pkOfflineProxy.PreparedUpgrade['name'].deep_unpack();
let version = this._pkOfflineProxy.PreparedUpgrade['version'].deep_unpack();
if (name != null && version != null)
description = dialogContent.upgradeDescription(name, version);
}
// Fall back to regular description
if (!description)
description = dialogContent.description(displayTime);
@ -729,12 +698,9 @@ const EndSessionDialog = new Lang.Class({
this._totalSecondsToStayOpen = totalSecondsToStayOpen;
this._type = type;
if (this._type == DialogType.RESTART) {
if (this._pkOfflineProxy.UpdateTriggered)
this._type = DialogType.UPDATE_RESTART;
else if (this._pkOfflineProxy.UpgradeTriggered)
this._type = DialogType.UPGRADE_RESTART;
}
if (this._type == DialogType.RESTART &&
this._pkOfflineProxy.TriggerAction == 'reboot')
this._type = DialogType.UPDATE_RESTART;
this._applications = [];
this._applicationList.destroy_all_children();
@ -761,19 +727,19 @@ const EndSessionDialog = new Lang.Class({
if (dialogContent.showOtherSessions)
this._loadSessions();
let updateTriggered = this._pkOfflineProxy.UpdateTriggered;
let updateAlreadyTriggered = this._pkOfflineProxy.TriggerAction == 'power-off' || this._pkOfflineProxy.TriggerAction == 'reboot';
let updatePrepared = this._pkOfflineProxy.UpdatePrepared;
let updatesAllowed = this._updatesPermission && this._updatesPermission.allowed;
_setCheckBoxLabel(this._checkBox, dialogContent.checkBoxText);
this._checkBox.actor.visible = (dialogContent.checkBoxText && updatePrepared && updatesAllowed);
this._checkBox.actor.checked = (updatePrepared && updateTriggered);
this._checkBox.actor.checked = (updatePrepared && updateAlreadyTriggered);
// We show the warning either together with the checkbox, or when
// updates have already been triggered, but the user doesn't have
// enough permissions to cancel them.
this._batteryWarning.visible = (dialogContent.showBatteryWarning &&
(this._checkBox.actor.visible || updatePrepared && updateTriggered && !updatesAllowed));
(this._checkBox.actor.visible || updatePrepared && updateAlreadyTriggered && !updatesAllowed));
this._updateButtons();
@ -783,9 +749,7 @@ const EndSessionDialog = new Lang.Class({
return;
}
if (!dialogContent.disableTimer)
this._startTimer();
this._startTimer();
this._sync();
let signalId = this.connect('opened',

View File

@ -10,7 +10,6 @@ const Meta = imports.gi.Meta;
const Shell = imports.gi.Shell;
const Signals = imports.signals;
const St = imports.gi.St;
const InputSourceManager = imports.ui.status.keyboard;
const BoxPointer = imports.ui.boxpointer;
const Layout = imports.ui.layout;
@ -758,48 +757,19 @@ const ShellWaylandAdapter = new Lang.Class({
Name: 'ShellWaylandAdapter',
Extends: Caribou.XAdapter,
_init: function () {
this.parent();
let deviceManager = Clutter.DeviceManager.get_default();
this._virtualDevice = deviceManager.create_virtual_device(Clutter.InputDeviceType.KEYBOARD_DEVICE);
this._inputSourceManager = InputSourceManager.getInputSourceManager();
this._sourceChangedId = this._inputSourceManager.connect('current-source-changed',
Lang.bind(this, this._onSourceChanged));
this._sourcesModifiedId = this._inputSourceManager.connect ('sources-changed',
Lang.bind(this, this._onSourcesModified));
},
_onSourcesModified: function () {
this.emit('config-changed');
},
_onSourceChanged: function (inputSourceManager, oldSource) {
let source = inputSourceManager.currentSource;
this.emit('group-changed', source.index, source.id, '');
},
vfunc_get_groups: function () {
let inputSources = this._inputSourceManager.inputSources;
let groups = []
let variants = [];
for (let i in inputSources) {
let is = inputSources[i];
groups[is.index] = is.id;
variants[is.index] = '';
}
return [groups, groups.length, variants, variants.length];
},
vfunc_keyval_press: function(keyval) {
this._virtualDevice.notify_keyval(Clutter.get_current_event_time(),
keyval, Clutter.KeyState.PRESSED);
let focus = global.stage.get_key_focus();
if (focus instanceof Clutter.Text)
Shell.util_text_insert_keyval(focus, keyval);
else
this.parent(keyval);
},
vfunc_keyval_release: function(keyval) {
this._virtualDevice.notify_keyval(Clutter.get_current_event_time(),
keyval, Clutter.KeyState.RELEASED);
let focus = global.stage.get_key_focus();
if (focus instanceof Clutter.Text)
return; // do nothing
else
this.parent(keyval);
},
});

View File

@ -220,8 +220,7 @@ const LayoutManager = new Lang.Class({
global.stage.add_child(this.uiGroup);
this.overviewGroup = new St.Widget({ name: 'overviewGroup',
visible: false,
reactive: true });
visible: false });
this.addChrome(this.overviewGroup);
this.screenShieldGroup = new St.Widget({ name: 'screenShieldGroup',
@ -592,10 +591,7 @@ const LayoutManager = new Lang.Class({
this.addChrome(this._coverPane);
if (Meta.is_restart()) {
// On restart, we don't do an animation. Force an update of the
// regions immediately so that maximized windows restore to the
// right size taking struts into account.
this._updateRegions();
// On restart, we don't do an animation
} else if (Main.sessionMode.isGreeter) {
this.panelBox.translation_y = -this.panelBox.height;
} else {
@ -942,11 +938,6 @@ const LayoutManager = new Lang.Class({
if (Main.modalCount > 0)
return GLib.SOURCE_REMOVE;
// Bug workaround - get_transformed_position()/get_transformed_size() don't work after
// a change in stage size until the first pick or paint.
// https://bugzilla.gnome.org/show_bug.cgi?id=761565
global.stage.get_actor_at_pos(Clutter.PickMode.ALL, 0, 0);
let rects = [], struts = [], i;
let isPopupMenuVisible = global.top_window_group.get_children().some(isPopupMetaWindow);
let wantsInputRegion = !isPopupMenuVisible;

View File

@ -11,7 +11,6 @@ const Meta = imports.gi.Meta;
const Shell = imports.gi.Shell;
const St = imports.gi.St;
const AccessDialog = imports.ui.accessDialog;
const AudioDeviceSelection = imports.ui.audioDeviceSelection;
const Components = imports.ui.components;
const CtrlAltTab = imports.ui.ctrlAltTab;
@ -64,7 +63,6 @@ let ctrlAltTabManager = null;
let osdWindowManager = null;
let osdMonitorLabeler = null;
let sessionMode = null;
let shellAccessDialogDBusService = null;
let shellAudioSelectionDBusService = null;
let shellDBusService = null;
let shellMountOpDBusService = null;
@ -124,7 +122,6 @@ function start() {
_loadDefaultStylesheet);
_initializeUI();
shellAccessDialogDBusService = new AccessDialog.AccessDialogDBus();
shellAudioSelectionDBusService = new AudioDeviceSelection.AudioDeviceSelectionDBus();
shellDBusService = new ShellDBus.GnomeShell();
shellMountOpDBusService = new ShellMountOperation.GnomeShellMountOpHandler();
@ -194,8 +191,6 @@ function _initializeUI() {
return true;
});
global.display.connect('gl-video-memory-purged', loadTheme);
// Provide the bus object for gnome-session to
// initiate logouts.
EndSessionDialog.init();

View File

@ -259,7 +259,7 @@ const ModalDialog = new Lang.Class({
if (this.state == State.OPENED || this.state == State.OPENING)
return true;
if (!this.pushModal(timestamp))
if (!this.pushModal({ timestamp: timestamp }))
return false;
this._fadeOpen(onPrimary);
@ -318,11 +318,8 @@ const ModalDialog = new Lang.Class({
pushModal: function (timestamp) {
if (this._hasModal)
return true;
let params = { actionMode: this._actionMode };
if (timestamp)
params['timestamp'] = timestamp;
if (!Main.pushModal(this._group, params))
if (!Main.pushModal(this._group, { timestamp: timestamp,
actionMode: this._actionMode }))
return false;
this._hasModal = true;

View File

@ -22,13 +22,11 @@ const LevelBar = new Lang.Class({
this._level = 0;
this.actor = new St.Bin({ style_class: 'level',
x_align: St.Align.START,
y_fill: true });
this._bar = new St.Widget({ style_class: 'level-bar' });
x_fill: true, y_fill: true });
this._bar = new St.DrawingArea();
this._bar.connect('repaint', Lang.bind(this, this._repaint));
this.actor.set_child(this._bar);
this.actor.connect('notify::width', () => { this.level = this.level; });
},
get level() {
@ -36,44 +34,39 @@ const LevelBar = new Lang.Class({
},
set level(value) {
this._level = Math.max(0, Math.min(value, 100));
let alloc = this.actor.get_allocation_box();
let newWidth = Math.round((alloc.x2 - alloc.x1) * this._level / 100);
if (newWidth != this._bar.width)
this._bar.width = newWidth;
}
});
const OsdWindowConstraint = new Lang.Class({
Name: 'OsdWindowConstraint',
Extends: Clutter.Constraint,
_init: function(props) {
this._minSize = 0;
this.parent(props);
let newValue = Math.max(0, Math.min(value, 100));
if (newValue == this._level)
return;
this._level = newValue;
this._bar.queue_repaint();
},
set minSize(v) {
this._minSize = v;
if (this.actor)
this.actor.queue_relayout();
},
_repaint: function() {
let cr = this._bar.get_context();
vfunc_update_allocation: function(actor, actorBox) {
// Clutter will adjust the allocation for margins,
// so add it to our minimum size
let minSize = this._minSize + actor.margin_top + actor.margin_bottom;
let [width, height] = actorBox.get_size();
let node = this.actor.get_theme_node();
let radius = node.get_border_radius(0); // assume same radius for all corners
Clutter.cairo_set_source_color(cr, node.get_foreground_color());
// Enforce a ratio of 1
let size = Math.ceil(Math.max(minSize, height));
actorBox.set_size(size, size);
let [w, h] = this._bar.get_surface_size();
w *= (this._level / 100.);
// Recenter
let [x, y] = actorBox.get_origin();
actorBox.set_origin(Math.floor(x + width / 2 - size / 2),
Math.floor(y + height / 2 - size / 2));
if (w == 0)
return;
cr.moveTo(radius, 0);
if (w >= radius)
cr.arc(w - radius, radius, radius, 1.5 * Math.PI, 2. * Math.PI);
else
cr.lineTo(w, 0);
if (w >= radius)
cr.arc(w - radius, h - radius, radius, 0, 0.5 * Math.PI);
else
cr.lineTo(w, h);
cr.arc(radius, h - radius, radius, 0.5 * Math.PI, Math.PI);
cr.arc(radius, radius, radius, Math.PI, 1.5 * Math.PI);
cr.fill();
cr.$dispose();
}
});
@ -81,6 +74,7 @@ const OsdWindow = new Lang.Class({
Name: 'OsdWindow',
_init: function(monitorIndex) {
this._popupSize = 0;
this.actor = new St.Widget({ x_expand: true,
y_expand: true,
x_align: Clutter.ActorAlign.CENTER,
@ -90,12 +84,19 @@ const OsdWindow = new Lang.Class({
let constraint = new Layout.MonitorConstraint({ index: monitorIndex });
this.actor.add_constraint(constraint);
this._boxConstraint = new OsdWindowConstraint();
this._box = new St.BoxLayout({ style_class: 'osd-window',
vertical: true });
this._box.add_constraint(this._boxConstraint);
this.actor.add_actor(this._box);
this._box.connect('style-changed', Lang.bind(this, this._onStyleChanged));
this._box.connect('notify::height', Lang.bind(this,
function() {
Meta.later_add(Meta.LaterType.BEFORE_REDRAW, Lang.bind(this,
function() {
this._box.width = this._box.height;
}));
}));
this._icon = new St.Icon();
this._box.add(this._icon, { expand: true });
@ -197,12 +198,30 @@ const OsdWindow = new Lang.Class({
let scalew = monitor.width / 640.0;
let scaleh = monitor.height / 480.0;
let scale = Math.min(scalew, scaleh);
let popupSize = 110 * Math.max(1, scale);
this._popupSize = 110 * Math.max(1, scale);
let scaleFactor = St.ThemeContext.get_for_stage(global.stage).scale_factor;
this._icon.icon_size = popupSize / (2 * scaleFactor);
this._icon.icon_size = this._popupSize / (2 * scaleFactor);
this._box.translation_y = monitor.height / 4;
this._boxConstraint.minSize = popupSize;
this._box.style_changed();
},
_onStyleChanged: function() {
let themeNode = this._box.get_theme_node();
let horizontalPadding = themeNode.get_horizontal_padding();
let verticalPadding = themeNode.get_vertical_padding();
let topBorder = themeNode.get_border_width(St.Side.TOP);
let bottomBorder = themeNode.get_border_width(St.Side.BOTTOM);
let leftBorder = themeNode.get_border_width(St.Side.LEFT);
let rightBorder = themeNode.get_border_width(St.Side.RIGHT);
let minWidth = this._popupSize - verticalPadding - leftBorder - rightBorder;
let minHeight = this._popupSize - horizontalPadding - topBorder - bottomBorder;
// minWidth/minHeight here are in real pixels,
// but the theme takes measures in unscaled dimensions
let scaleFactor = St.ThemeContext.get_for_stage(global.stage).scale_factor;
this._box.style = 'min-height: %dpx;'.format(Math.max(minWidth, minHeight) / scaleFactor);
}
});

View File

@ -107,12 +107,18 @@ const Overview = new Lang.Class({
this._overviewCreated = true;
let layout = new Clutter.BinLayout();
this._stack = new Clutter.Actor({ layout_manager: layout });
this._stack.add_constraint(new LayoutManager.MonitorConstraint({ primary: true }));
/* Translators: This is the main view to select
activities. See also note for "Activities" string. */
this._overview = new St.BoxLayout({ name: 'overview',
accessible_name: _("Overview"),
vertical: true });
this._overview.add_constraint(new LayoutManager.MonitorConstraint({ primary: true }));
reactive: true,
vertical: true,
x_expand: true,
y_expand: true });
this._overview._delegate = this;
// The main Background actors are inside global.window_group which are
@ -120,7 +126,7 @@ const Overview = new Lang.Class({
// one. Instances of this class share a single CoglTexture behind the
// scenes which allows us to show the background with different
// rendering options without duplicating the texture data.
this._backgroundGroup = new Meta.BackgroundGroup({ reactive: true });
this._backgroundGroup = new Meta.BackgroundGroup();
Main.layoutManager.overviewGroup.add_child(this._backgroundGroup);
this._bgManagers = [];
@ -143,7 +149,8 @@ const Overview = new Lang.Class({
Main.layoutManager.overviewGroup.add_child(this._coverPane);
this._coverPane.connect('event', Lang.bind(this, function (actor, event) { return Clutter.EVENT_STOP; }));
Main.layoutManager.overviewGroup.add_child(this._overview);
this._stack.add_actor(this._overview);
Main.layoutManager.overviewGroup.add_child(this._stack);
this._coverPane.hide();
@ -152,9 +159,6 @@ const Overview = new Lang.Class({
dragMotion: Lang.bind(this, this._onDragMotion)
};
Main.layoutManager.overviewGroup.connect('scroll-event',
Lang.bind(this, this._onScrollEvent));
Main.xdndHandler.connect('drag-begin', Lang.bind(this, this._onDragBegin));
Main.xdndHandler.connect('drag-end', Lang.bind(this, this._onDragEnd));
@ -251,6 +255,7 @@ const Overview = new Lang.Class({
// Add our same-line elements after the search entry
this._overview.add(this._controls.actor, { y_fill: true, expand: true });
this._controls.actor.connect('scroll-event', Lang.bind(this, this._onScrollEvent));
// TODO - recalculate everything when desktop size changes
this.dashIconSize = this._dash.iconSize;
@ -367,7 +372,7 @@ const Overview = new Lang.Class({
if (this.isDummy)
return;
this._backgroundGroup.add_action(action);
this._overview.add_action(action);
},
_getDesktopClone: function() {
@ -547,8 +552,8 @@ const Overview = new Lang.Class({
Meta.disable_unredirect_for_screen(global.screen);
this.viewSelector.show();
this._overview.opacity = 0;
Tweener.addTween(this._overview,
this._stack.opacity = 0;
Tweener.addTween(this._stack,
{ opacity: 255,
transition: 'easeOutQuad',
time: ANIMATION_TIME,
@ -613,7 +618,7 @@ const Overview = new Lang.Class({
this.viewSelector.animateFromOverview();
// Make other elements fade out.
Tweener.addTween(this._overview,
Tweener.addTween(this._stack,
{ opacity: 0,
transition: 'easeOutQuad',
time: ANIMATION_TIME,

View File

@ -421,6 +421,7 @@ const ControlsManager = new Lang.Class({
let layout = new ControlsLayout();
this.actor = new St.Widget({ layout_manager: layout,
reactive: true,
x_expand: true, y_expand: true,
clip_to_allocation: true });
this._group = new St.BoxLayout({ name: 'overview-group',

View File

@ -349,6 +349,7 @@ const Arrow = new Lang.Class({
_init: function(params) {
this.parent(params);
this.x_fill = this.y_fill = true;
this.set_offscreen_redirect(Clutter.OffscreenRedirect.ALWAYS);
this._drawingArea = new St.DrawingArea();
this._drawingArea.connect('repaint', Lang.bind(this, this._drawArrow));
@ -376,22 +377,6 @@ const Arrow = new Lang.Class({
cr.$dispose();
},
vfunc_get_paint_volume: function(volume) {
if (!this.parent(volume))
return false;
if (!this._shadow)
return true;
let shadow_box = new Clutter.ActorBox();
this._shadow.get_box(this._drawingArea.get_allocation_box(), shadow_box);
volume.set_width(Math.max(shadow_box.x2 - shadow_box.x1, volume.get_width()));
volume.set_height(Math.max(shadow_box.y2 - shadow_box.y1, volume.get_height()));
return true;
},
vfunc_style_changed: function() {
let node = this.get_theme_node();
this._shadow = node.get_shadow('-arrow-shadow');
@ -399,8 +384,6 @@ const Arrow = new Lang.Class({
this._shadowHelper = St.ShadowHelper.new(this._shadow);
else
this._shadowHelper = null;
this.parent();
},
vfunc_paint: function() {
@ -576,9 +559,6 @@ const ScreenShield = new Lang.Class({
if (prevIsActive != this._isActive)
this.emit('active-changed');
if (this._loginSession)
this._loginSession.SetLockedHintRemote(active);
this._syncInhibitor();
},
@ -728,7 +708,7 @@ const ScreenShield = new Lang.Class({
let unitaryDelay = ARROW_ANIMATION_TIME / (arrows.length + 1);
let maxOpacity = 255 * ARROW_ANIMATION_PEAK_OPACITY;
for (let i = 0; i < arrows.length; i++) {
arrows[i].opacity = 0;
arrows.opacity = 0;
Tweener.addTween(arrows[i],
{ opacity: 0,
delay: unitaryDelay * (N_ARROWS - (i + 1)),

View File

@ -61,8 +61,8 @@ const InputSource = new Lang.Class({
this.emit('changed');
},
activate: function(interactive) {
this.emit('activate', !!interactive);
activate: function() {
this.emit('activate');
},
_getXkbId: function() {
@ -109,7 +109,7 @@ const InputSourcePopup = new Lang.Class({
_finish : function() {
this.parent();
this._items[this._selectedIndex].activate(true);
this._items[this._selectedIndex].activate();
},
});
@ -159,14 +159,6 @@ const InputSourceSettings = new Lang.Class({
return [];
},
get mruSources() {
return [];
},
set mruSources(sourcesList) {
// do nothing
},
get keyboardOptions() {
return [];
},
@ -259,7 +251,6 @@ const InputSourceSessionSettings = new Lang.Class({
_DESKTOP_INPUT_SOURCES_SCHEMA: 'org.gnome.desktop.input-sources',
_KEY_INPUT_SOURCES: 'sources',
_KEY_MRU_SOURCES: 'mru-sources',
_KEY_KEYBOARD_OPTIONS: 'xkb-options',
_KEY_PER_WINDOW: 'per-window',
@ -270,9 +261,9 @@ const InputSourceSessionSettings = new Lang.Class({
this._settings.connect('changed::' + this._KEY_PER_WINDOW, Lang.bind(this, this._emitPerWindowChanged));
},
_getSourcesList: function(key) {
get inputSources() {
let sourcesList = [];
let sources = this._settings.get_value(key);
let sources = this._settings.get_value(this._KEY_INPUT_SOURCES);
let nSources = sources.n_children();
for (let i = 0; i < nSources; i++) {
@ -282,19 +273,6 @@ const InputSourceSessionSettings = new Lang.Class({
return sourcesList;
},
get inputSources() {
return this._getSourcesList(this._KEY_INPUT_SOURCES);
},
get mruSources() {
return this._getSourcesList(this._KEY_MRU_SOURCES);
},
set mruSources(sourcesList) {
let sources = GLib.Variant.new('a(ss)', sourcesList);
this._settings.set_value(this._KEY_MRU_SOURCES, sources);
},
get keyboardOptions() {
return this._settings.get_strv(this._KEY_KEYBOARD_OPTIONS);
},
@ -394,7 +372,7 @@ const InputSourceManager = new Lang.Class({
while (!(is = this._inputSources[nextIndex]))
nextIndex += 1;
is.activate(true);
is.activate();
return true;
},
@ -422,25 +400,6 @@ const InputSourceManager = new Lang.Class({
this._keyboardManager.reapply();
},
_updateMruSettings: function() {
// If IBus is not ready we don't have a full picture of all
// the available sources, so don't update the setting
if (!this._ibusReady)
return;
// If IBus is temporarily disabled, don't update the setting
if (this._disableIBus)
return;
let sourcesList = [];
for (let i = 0; i < this._mruSources.length; ++i) {
let source = this._mruSources[i];
sourcesList.push([source.type, source.id]);
}
this._settings.mruSources = sourcesList;
},
_currentInputSourceChanged: function(newSource) {
let oldSource;
[oldSource, this._currentSource] = [this._currentSource, newSource];
@ -457,7 +416,7 @@ const InputSourceManager = new Lang.Class({
this._changePerWindowSource();
},
_activateInputSource: function(is, interactive) {
_activateInputSource: function(is) {
KeyboardManager.holdKeyboard();
this._keyboardManager.apply(is.xkbId);
@ -475,54 +434,6 @@ const InputSourceManager = new Lang.Class({
this._ibusManager.setEngine(engine, KeyboardManager.releaseKeyboard);
this._currentInputSourceChanged(is);
if (interactive)
this._updateMruSettings();
},
_updateMruSources: function() {
let sourcesList = [];
for (let i in this._inputSources)
sourcesList.push(this._inputSources[i]);
this._keyboardManager.setUserLayouts(sourcesList.map(function(x) { return x.xkbId; }));
if (!this._disableIBus && this._mruSourcesBackup) {
this._mruSources = this._mruSourcesBackup;
this._mruSourcesBackup = null;
}
// Initialize from settings when we have no MRU sources list
if (this._mruSources.length == 0) {
let mruSettings = this._settings.mruSources;
for (let i = 0; i < mruSettings.length; i++) {
let mruSettingSource = mruSettings[i];
let mruSource = null;
for (let j = 0; j < sourcesList.length; j++) {
let source = sourcesList[j];
if (source.type == mruSettingSource.type &&
source.id == mruSettingSource.id) {
mruSource = source;
break;
}
}
if (mruSource)
this._mruSources.push(mruSource);
}
}
let mruSources = [];
for (let i = 0; i < this._mruSources.length; i++) {
for (let j = 0; j < sourcesList.length; j++)
if (this._mruSources[i].type == sourcesList[j].type &&
this._mruSources[i].id == sourcesList[j].id) {
mruSources = mruSources.concat(sourcesList.splice(j, 1));
break;
}
}
this._mruSources = mruSources.concat(sourcesList);
},
_inputSourcesChanged: function() {
@ -599,10 +510,30 @@ const InputSourceManager = new Lang.Class({
this.emit('sources-changed');
this._updateMruSources();
let sourcesList = [];
for (let i in this._inputSources)
sourcesList.push(this._inputSources[i]);
this._keyboardManager.setUserLayouts(sourcesList.map(function(x) { return x.xkbId; }));
if (!this._disableIBus && this._mruSourcesBackup) {
this._mruSources = this._mruSourcesBackup;
this._mruSourcesBackup = null;
}
let mruSources = [];
for (let i = 0; i < this._mruSources.length; i++) {
for (let j = 0; j < sourcesList.length; j++)
if (this._mruSources[i].type == sourcesList[j].type &&
this._mruSources[i].id == sourcesList[j].id) {
mruSources = mruSources.concat(sourcesList.splice(j, 1));
break;
}
}
this._mruSources = mruSources.concat(sourcesList);
if (this._mruSources.length > 0)
this._mruSources[0].activate(false);
this._mruSources[0].activate();
// All ibus engines are preloaded here to reduce the launching time
// when users switch the input sources.
@ -711,7 +642,7 @@ const InputSourceManager = new Lang.Class({
}
if (window._currentSource)
window._currentSource.activate(false);
window._currentSource.activate();
},
_sourcesPerWindowChanged: function() {
@ -832,10 +763,7 @@ const InputSourceIndicator = new Lang.Class({
let is = this._inputSourceManager.inputSources[i];
let menuItem = new LayoutMenuItem(is.displayName, is.shortName);
menuItem.connect('activate', function() {
is.activate(true);
});
menuItem.connect('activate', Lang.bind(is, is.activate));
let indicatorLabel = new St.Label({ text: is.shortName,
visible: false });

View File

@ -62,8 +62,8 @@ var AgentIface = '<node> \
</interface> \
</node>';
var PermissionStoreIface = '<node> \
<interface name="org.freedesktop.impl.portal.PermissionStore"> \
var XdgAppIface = '<node> \
<interface name="org.freedesktop.XdgApp.PermissionStore"> \
<method name="Lookup"> \
<arg name="table" type="s" direction="in"/> \
<arg name="id" type="s" direction="in"/> \
@ -80,7 +80,7 @@ var PermissionStoreIface = '<node> \
</interface> \
</node>';
const PermissionStore = Gio.DBusProxy.makeProxyWrapper(PermissionStoreIface);
const PermissionStore = Gio.DBusProxy.makeProxyWrapper(XdgAppIface);
const Indicator = new Lang.Class({
Name: 'LocationIndicator',
@ -254,8 +254,8 @@ const Indicator = new Lang.Class({
_connectToPermissionStore: function() {
this._permStoreProxy = null;
new PermissionStore(Gio.DBus.session,
'org.freedesktop.impl.portal.PermissionStore',
'/org/freedesktop/impl/portal/PermissionStore',
'org.freedesktop.XdgApp',
'/org/freedesktop/XdgApp/PermissionStore',
Lang.bind(this, this._onPermStoreProxyReady));
},

View File

@ -621,7 +621,7 @@ const NMDeviceBluetooth = new Lang.Class({
_init: function(client, device, settings) {
this.parent(client, device, settings);
this.item.menu.addMenuItem(createSettingsAction(_("Bluetooth Settings"), device));
this.item.menu.addMenuItem(createSettingsAction(_("Mobile Broadband Settings"), device));
},
_getDescription: function() {
@ -629,7 +629,7 @@ const NMDeviceBluetooth = new Lang.Class({
},
getConnectLabel: function() {
return _("Connect to Internet");
return _("Use as Internet connection");
},
getIndicatorIcon: function() {
@ -1632,8 +1632,6 @@ const NMApplet = new Lang.Class({
this._readConnections();
this._readDevices();
this._syncNMState();
this._syncMainConnection();
this._syncVPNConnections();
this._client.connect('notify::manager-running', Lang.bind(this, this._syncNMState));
this._client.connect('notify::networking-enabled', Lang.bind(this, this._syncNMState));

View File

@ -6,7 +6,6 @@ const Gdm = imports.gi.Gdm;
const Gio = imports.gi.Gio;
const GLib = imports.gi.GLib;
const Lang = imports.lang;
const Meta = imports.gi.Meta;
const Shell = imports.gi.Shell;
const St = imports.gi.St;
@ -111,7 +110,6 @@ const Indicator = new Lang.Class({
this._session = new GnomeSession.SessionManager();
this._loginManager = LoginManager.getLoginManager();
this._monitorManager = Meta.MonitorManager.get();
this._haveShutdown = true;
this._haveSuspend = true;
@ -157,8 +155,6 @@ const Indicator = new Lang.Class({
this._orientationSettings.connect('changed::orientation-lock',
Lang.bind(this, this._updateOrientationLock));
Main.layoutManager.connect('monitors-changed',
Lang.bind(this, this._updateOrientationLock));
Gio.DBus.system.watch_name(SENSOR_BUS_NAME,
Gio.BusNameWatcherFlags.NONE,
Lang.bind(this, this._sensorProxyAppeared),
@ -268,8 +264,7 @@ const Indicator = new Lang.Class({
_updateOrientationLock: function() {
if (this._sensorProxy)
this._orientationLockAction.visible = this._sensorProxy.HasAccelerometer &&
this._monitorManager.get_is_builtin_display_on();
this._orientationLockAction.visible = this._sensorProxy.HasAccelerometer;
else
this._orientationLockAction.visible = false;
@ -306,17 +301,14 @@ const Indicator = new Lang.Class({
},
_updateHaveSuspend: function() {
this._loginManager.canSuspend(Lang.bind(this,
function(canSuspend, needsAuth) {
this._haveSuspend = canSuspend;
this._suspendNeedsAuth = needsAuth;
this._updateSuspend();
}));
this._loginManager.canSuspend(Lang.bind(this, function(result) {
this._haveSuspend = result;
this._updateSuspend();
}));
},
_updateSuspend: function() {
let disabled = (Main.sessionMode.isLocked &&
this._suspendNeedsAuth) ||
let disabled = Main.sessionMode.isLocked ||
(Main.sessionMode.isGreeter &&
this._loginScreenSettings.get_boolean(DISABLE_RESTART_KEY));
this._suspendAction.visible = this._haveSuspend && !disabled;

View File

@ -683,8 +683,6 @@ const WindowManager = new Lang.Class({
this._dimmedWindows = [];
this._skippedActors = [];
this._allowedKeybindings = {};
this._isWorkspacePrepended = false;
@ -852,34 +850,22 @@ const WindowManager = new Lang.Class({
Lang.bind(this, this._showWorkspaceSwitcher));
this.setCustomKeybindingHandler('switch-applications',
Shell.ActionMode.NORMAL,
Lang.bind(this, this._startSwitcher));
Lang.bind(this, this._startAppSwitcher));
this.setCustomKeybindingHandler('switch-group',
Shell.ActionMode.NORMAL,
Lang.bind(this, this._startSwitcher));
Lang.bind(this, this._startAppSwitcher));
this.setCustomKeybindingHandler('switch-applications-backward',
Shell.ActionMode.NORMAL,
Lang.bind(this, this._startSwitcher));
Lang.bind(this, this._startAppSwitcher));
this.setCustomKeybindingHandler('switch-group-backward',
Shell.ActionMode.NORMAL,
Lang.bind(this, this._startSwitcher));
Lang.bind(this, this._startAppSwitcher));
this.setCustomKeybindingHandler('switch-windows',
Shell.ActionMode.NORMAL,
Lang.bind(this, this._startSwitcher));
Lang.bind(this, this._startWindowSwitcher));
this.setCustomKeybindingHandler('switch-windows-backward',
Shell.ActionMode.NORMAL,
Lang.bind(this, this._startSwitcher));
this.setCustomKeybindingHandler('cycle-windows',
Shell.ActionMode.NORMAL,
Lang.bind(this, this._startSwitcher));
this.setCustomKeybindingHandler('cycle-windows-backward',
Shell.ActionMode.NORMAL,
Lang.bind(this, this._startSwitcher));
this.setCustomKeybindingHandler('cycle-group',
Shell.ActionMode.NORMAL,
Lang.bind(this, this._startSwitcher));
this.setCustomKeybindingHandler('cycle-group-backward',
Shell.ActionMode.NORMAL,
Lang.bind(this, this._startSwitcher));
Lang.bind(this, this._startWindowSwitcher));
this.setCustomKeybindingHandler('switch-panels',
Shell.ActionMode.NORMAL |
Shell.ActionMode.OVERVIEW |
@ -1037,10 +1023,6 @@ const WindowManager = new Lang.Class({
this._workspaceTracker.keepWorkspaceAlive(workspace, duration);
},
skipNextEffect: function(actor) {
this._skippedActors.push(actor);
},
setCustomKeybindingHandler: function(name, modes, handler) {
if (Meta.keybindings_set_custom_handler(name, handler))
this.allowKeybinding(name, modes);
@ -1067,9 +1049,6 @@ const WindowManager = new Lang.Class({
},
_shouldAnimateActor: function(actor, types) {
if (this._removeEffect(this._skippedActors, actor))
return false;
if (!this._shouldAnimate())
return false;
@ -1358,13 +1337,9 @@ const WindowManager = new Lang.Class({
_hasAttachedDialogs: function(window, ignoreWindow) {
var count = 0;
window.foreach_transient(function(win) {
if (win != ignoreWindow &&
win.is_attached_dialog() &&
win.get_transient_for() == window) {
if (win != ignoreWindow && win.is_attached_dialog())
count++;
return false;
}
return true;
return false;
});
return count != 0;
},
@ -1433,11 +1408,6 @@ const WindowManager = new Lang.Class({
actor._windowType = type;
}));
actor.meta_window.connect('unmanaged', Lang.bind(this, function(window) {
let parent = window.get_transient_for();
if (parent)
this._checkDimming(parent);
}));
if (actor.meta_window.is_attached_dialog())
this._checkDimming(actor.get_meta_window().get_transient_for());
@ -1774,37 +1744,23 @@ const WindowManager = new Lang.Class({
this._windowMenuManager.showWindowMenuForWindow(window, menu, rect);
},
_startSwitcher: function(display, screen, window, binding) {
let constructor = null;
switch (binding.get_name()) {
case 'switch-applications':
case 'switch-applications-backward':
case 'switch-group':
case 'switch-group-backward':
constructor = AltTab.AppSwitcherPopup;
break;
case 'switch-windows':
case 'switch-windows-backward':
constructor = AltTab.WindowSwitcherPopup;
break;
case 'cycle-windows':
case 'cycle-windows-backward':
constructor = AltTab.WindowCyclerPopup;
break;
case 'cycle-group':
case 'cycle-group-backward':
constructor = AltTab.GroupCyclerPopup;
break;
}
if (!constructor)
return;
_startAppSwitcher : function(display, screen, window, binding) {
/* prevent a corner case where both popups show up at once */
if (this._workspaceSwitcherPopup != null)
this._workspaceSwitcherPopup.destroy();
let tabPopup = new constructor();
let tabPopup = new AltTab.AppSwitcherPopup();
if (!tabPopup.show(binding.is_reversed(), binding.get_name(), binding.get_mask()))
tabPopup.destroy();
},
_startWindowSwitcher : function(display, screen, window, binding) {
/* prevent a corner case where both popups show up at once */
if (this._workspaceSwitcherPopup != null)
this._workspaceSwitcherPopup.destroy();
let tabPopup = new AltTab.WindowSwitcherPopup();
if (!tabPopup.show(binding.is_reversed(), binding.get_name(), binding.get_mask()))
tabPopup.destroy();

View File

@ -19,7 +19,8 @@ const WorkspaceSwitcherPopup = new Lang.Class({
Name: 'WorkspaceSwitcherPopup',
_init : function() {
this.actor = new St.Widget({ x: 0,
this.actor = new St.Widget({ reactive: true,
x: 0,
y: 0,
width: global.screen_width,
height: global.screen_height,

View File

@ -45,11 +45,11 @@ const PrimaryActorLayout = new Lang.Class({
this.primaryActor = primaryActor;
},
vfunc_get_preferred_width: function(container, forHeight) {
vfunc_get_preferred_width: function(forHeight) {
return this.primaryActor.get_preferred_width(forHeight);
},
vfunc_get_preferred_height: function(container, forWidth) {
vfunc_get_preferred_height: function(forWidth) {
return this.primaryActor.get_preferred_height(forWidth);
},
});

View File

@ -103,7 +103,7 @@ const WorkspacesView = new Lang.Class({
page_increment: 1,
page_size: 1,
step_increment: 0,
upper: global.screen.n_workspaces });
upper: 0 });
this.scrollAdjustment.connect('notify::value',
Lang.bind(this, this._onScroll));
@ -374,10 +374,6 @@ const ExtraWorkspaceView = new Lang.Class({
this._workspace.setActualGeometry(this._actualGeometry);
},
getActiveWorkspace: function() {
return this._workspace;
},
animateToOverview: function(animationType) {
if (animationType == AnimationType.ZOOM)
this._workspace.zoomToOverview();
@ -425,10 +421,8 @@ const WorkspacesDisplay = new Lang.Class({
// Only switch to the workspace when there's no application
// windows open. The problem is that it's too easy to miss
// an app window and get the wrong one focused.
let event = Clutter.get_current_event();
let index = this._getMonitorIndexForEvent(event);
if ((action.get_button() == 1 || action.get_button() == 0) &&
this._workspacesViews[index].getActiveWorkspace().isEmpty())
this._getPrimaryView().getActiveWorkspace().isEmpty())
Main.overview.hide();
}));
Main.overview.addAction(clickAction);
@ -437,18 +431,11 @@ const WorkspacesDisplay = new Lang.Class({
let panAction = new Clutter.PanAction({ threshold_trigger_edge: Clutter.GestureTriggerEdge.AFTER });
panAction.connect('pan', Lang.bind(this, this._onPan));
panAction.connect('gesture-begin', Lang.bind(this, function() {
if (this._workspacesOnlyOnPrimary) {
let event = Clutter.get_current_event();
if (this._getMonitorIndexForEvent(event) != this._primaryIndex)
return false;
}
for (let i = 0; i < this._workspacesViews.length; i++)
this._workspacesViews[i].startSwipeScroll();
return true;
}));
panAction.connect('gesture-cancel', Lang.bind(this, function() {
clickAction.release();
for (let i = 0; i < this._workspacesViews.length; i++)
this._workspacesViews[i].endSwipeScroll();
}));
@ -594,12 +581,6 @@ const WorkspacesDisplay = new Lang.Class({
}
},
_getMonitorIndexForEvent: function(event) {
let [x, y] = event.get_coords();
let rect = new Meta.Rectangle({ x: x, y: y, width: 1, height: 1 });
return global.screen.get_monitor_index_for_rect(rect);
},
_getPrimaryView: function() {
if (!this._workspacesViews.length)
return null;
@ -680,11 +661,6 @@ const WorkspacesDisplay = new Lang.Class({
_onScrollEvent: function(actor, event) {
if (!this.actor.mapped)
return Clutter.EVENT_PROPAGATE;
if (this._workspacesOnlyOnPrimary &&
this._getMonitorIndexForEvent(event) != this._primaryIndex)
return Clutter.EVENT_PROPAGATE;
let activeWs = global.screen.get_active_workspace();
let ws;
switch (event.get_scroll_direction()) {

View File

@ -1,68 +0,0 @@
# Makefile variables for PO directory in any package using GNU gettext.
# Usually the message domain is the same as the package name.
DOMAIN = $(PACKAGE)
# These two variables depend on the location of this directory.
subdir = po
top_builddir = ..
# These options get passed to xgettext.
XGETTEXT_OPTIONS = --from-code=UTF-8 --keyword=_ --keyword=N_ \
--keyword=C_:1c,2 --keyword=NC_:1c,2 \
--keyword=g_dngettext:2,3 --add-comments \
--flag=g_dngettext:2:pass-c-format \
--flag=g_strdup_printf:1:c-format \
--flag=g_string_printf:2:c-format \
--flag=g_string_append_printf:2:c-format \
--flag=g_error_new:3:c-format \
--flag=g_set_error:4:c-format \
--flag=g_markup_printf_escaped:1:c-format \
--flag=g_log:3:c-format \
--flag=g_print:1:c-format \
--flag=g_printerr:1:c-format \
--flag=g_printf:1:c-format \
--flag=g_fprintf:2:c-format \
--flag=g_sprintf:2:c-format \
--flag=g_snprintf:3:c-format
# This is the copyright holder that gets inserted into the header of the
# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding
# package. (Note that the msgstr strings, extracted from the package's
# sources, belong to the copyright holder of the package.) Translators are
# expected to transfer the copyright for their translations to this person
# or entity, or to disclaim their copyright. The empty string stands for
# the public domain; in this case the translators are expected to disclaim
# their copyright.
COPYRIGHT_HOLDER = Translation copyright holder
# This is the email address or URL to which the translators shall report
# bugs in the untranslated strings:
# - Strings which are not entire sentences, see the maintainer guidelines
# in the GNU gettext documentation, section 'Preparing Strings'.
# - Strings which use unclear terms or require additional context to be
# understood.
# - Strings which make invalid assumptions about notation of date, time or
# money.
# - Pluralisation problems.
# - Incorrect English spelling.
# - Incorrect formatting.
# It can be your email address, or a mailing list address where translators
# can write to without being subscribed, or the URL of a web page through
# which the translators can contact you.
MSGID_BUGS_ADDRESS = http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell&keywords=I18N+L10N&component=general
# This is the list of locale categories, beyond LC_MESSAGES, for which the
# message catalogs shall be used. It is usually empty.
EXTRA_LOCALE_CATEGORIES =
# Ignore the timestamp of the .pot file, as git clones do not have
# deterministic timestamps, and .po files are updated by translators
# (only) in GNOME projects.
PO_DEPENDS_ON_POT = no
# This tells whether or not to forcibly update $(DOMAIN).pot and
# regenerate PO files on "make dist". Possible values are "yes" and
# "no". Set this to no if the POT file and PO files are maintained
# externally.
DIST_DEPENDS_ON_UPDATE_PO = no

View File

@ -1,17 +1,17 @@
# List of source files containing translatable strings.
# Please keep this file sorted alphabetically.
data/50-gnome-shell-system.xml
[encoding: UTF-8]
data/50-gnome-shell-system.xml.in
data/gnome-shell-extension-prefs.desktop.in.in
data/org.gnome.Shell.desktop.in.in
data/org.gnome.shell.gschema.xml.in
data/org.gnome.Shell.PortalHelper.desktop.in.in
data/org.gnome.shell.gschema.xml.in.in
data/org.gnome.Shell.PortalHelper.desktop.in
js/extensionPrefs/main.js
js/gdm/authPrompt.js
js/gdm/loginDialog.js
js/gdm/util.js
js/misc/util.js
js/portalHelper/main.js
js/ui/accessDialog.js
js/ui/appDisplay.js
js/ui/appFavorites.js
js/ui/audioDeviceSelection.js
@ -61,7 +61,7 @@ js/ui/viewSelector.js
js/ui/windowAttentionHandler.js
js/ui/windowManager.js
js/ui/windowMenu.js
src/calendar-server/evolution-calendar.desktop.in
src/calendar-server/evolution-calendar.desktop.in.in
# Please do not remove this file from POTFILES.in. Run "git submodule init && git submodule update" to get it.
src/gvc/gvc-mixer-control.c
src/main.c

4
po/POTFILES.skip Normal file
View File

@ -0,0 +1,4 @@
data/org.gnome.shell.evolution.calendar.gschema.xml.in
src/calendar-server/evolution-calendar.desktop.in
# Meh, autofools :-(
sub/src/calendar-server/evolution-calendar.desktop.in

798
po/ar.po

File diff suppressed because it is too large Load Diff

View File

@ -13,7 +13,7 @@ msgstr ""
"PO-Revision-Date: 2014-09-15 14:59+0530\n"
"Last-Translator: Nilamdyuti Goswami <ngoswami@redhat.com>\n"
"Language-Team: Assamese <kde-i18n-doc@kde.org>\n"
"Language: as\n"
"Language: as_IN\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"

View File

@ -7,7 +7,6 @@ msgstr ""
"PO-Revision-Date: 2011-04-04 11:04+0600\n"
"Last-Translator: Israt Jahan <israt@ankur.org.bd>\n"
"Language-Team: Bengali <ankur-bd-l10n@googlegroups.com>\n"
"Language: bn\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"

View File

@ -11,7 +11,7 @@ msgstr ""
"PO-Revision-Date: 2014-12-30 16:45+0000\n"
"Last-Translator: \n"
"Language-Team: American English <kde-i18n-doc@kde.org>\n"
"Language: bn_IN\n"
"Language: en_US\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"

713
po/ca.po
View File

@ -10,16 +10,324 @@ msgstr ""
"Project-Id-Version: HEAD\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2016-09-16 21:22+0200\n"
"PO-Revision-Date: 2016-09-16 21:22+0200\n"
"Last-Translator: Jordi Mas <jmas@softcatala.org>\n"
"POT-Creation-Date: 2016-03-13 10:20+0000\n"
"PO-Revision-Date: 2016-03-13 14:47+0100\n"
"Last-Translator: Gil Forcada <gilforcada@guifi.net>\n"
"Language-Team: Catalan <tradgnome@softcatala.org>\n"
"Language: ca\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Content-Transfer-Encoding: 8bits\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Poedit 1.8.7.1\n"
"X-Generator: Gtranslator 2.91.6\n"
#: ../data/50-gnome-shell-system.xml.in.h:1
msgid "System"
msgstr "Sistema"
#: ../data/50-gnome-shell-system.xml.in.h:2
msgid "Show the notification list"
msgstr "Mostra la llista de notificacions"
#: ../data/50-gnome-shell-system.xml.in.h:3
msgid "Focus the active notification"
msgstr "Posa el focus en la notificació activa"
#: ../data/50-gnome-shell-system.xml.in.h:4
msgid "Show the overview"
msgstr "Mostra la vista general"
#: ../data/50-gnome-shell-system.xml.in.h:5
msgid "Show all applications"
msgstr "Mostra totes les aplicacions"
#: ../data/50-gnome-shell-system.xml.in.h:6
msgid "Open the application menu"
msgstr "Obre el menú d'aplicació"
#: ../data/gnome-shell-extension-prefs.desktop.in.in.h:1
msgid "GNOME Shell Extension Preferences"
msgstr "Preferències de les extensions del GNOME Shell"
#: ../data/gnome-shell-extension-prefs.desktop.in.in.h:2
msgid "Configure GNOME Shell Extensions"
msgstr "Configureu les extensions del GNOME Shell"
#: ../data/org.gnome.Shell.desktop.in.in.h:1
msgid "GNOME Shell"
msgstr "GNOME Shell"
#: ../data/org.gnome.Shell.desktop.in.in.h:2
msgid "Window management and application launching"
msgstr "Gestor de finestres i llançador d'aplicacions"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:1
msgid "Enable internal tools useful for developers and testers from Alt-F2"
msgstr ""
"Habilita les eines internes en el diàleg de l'Alt+F2 que són útils per als "
"desenvolupadors i provadors"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:2
msgid ""
"Allows access to internal debugging and monitoring tools using the Alt-F2 "
"dialog."
msgstr ""
"Permet l'accés a les eines de depuració i de seguiment internes a través del "
"diàleg de l'Alt+F2."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:3
msgid "UUIDs of extensions to enable"
msgstr ""
"Identificadors universals únics de les extensions que s'han d'habilitar"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:4
msgid ""
"GNOME Shell extensions have a UUID property; this key lists extensions 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 D-Bus methods on org.gnome.Shell."
msgstr ""
"Les extensions del GNOME Shell tenen un identificador universal. Aquesta "
"clau conté una llista de les extensions que s'han de carregar. Qualsevol "
"extensió que s'hagi de carregar ha de ser a la llista. Podeu modificar "
"aquesta llista amb els mètodes de D-Bus «EnableExtension» (activa una "
"extensió) i «DisableExtension» (desactiva una extensió) a org.gnome.Shell."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:5
msgid "Disables the validation of extension version compatibility"
msgstr "Desactiva la validació de la compatibilitat de versió d'extensions"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:6
msgid ""
"GNOME Shell will only load extensions that claim to support the current "
"running version. Enabling this option will disable this check and try to "
"load all extensions regardless of the versions they claim to support."
msgstr ""
"El GNOME Shell només carregarà extensions que afirmin ser compatibles amb la "
"versió en execució. Si s'activa aquesta opció, es desactivarà la comprovació "
"i es provarà de carregar totes les extensions sense tenir en compte les "
"versions amb què afirmin ser compatibles."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:7
msgid "List of desktop file IDs for favorite applications"
msgstr ""
"Llista d'identificadors de fitxers d'escriptori de les aplicacions preferides"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:8
msgid ""
"The applications corresponding to these identifiers will be displayed in the "
"favorites area."
msgstr ""
"Es mostraran, a l'àrea de preferits, les aplicacions que corresponguin a "
"aquests identificadors."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:9
msgid "App Picker View"
msgstr "Vista del seleccionador d'aplicacions"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:10
msgid "Index of the currently selected view in the application picker."
msgstr ""
"Índex de la vista seleccionada actualment en el seleccionador d'aplicacions."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:11
msgid "History for command (Alt-F2) dialog"
msgstr "Historial de les ordres utilitzades en el diàleg de l'Alt+F2"
#. Translators: looking glass is a debugger and inspector tool, see https://live.gnome.org/GnomeShell/LookingGlass
#: ../data/org.gnome.shell.gschema.xml.in.in.h:13
msgid "History for the looking glass dialog"
msgstr "Historial del depurador del GNOME Shell"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:14
msgid "Always show the 'Log out' menu item in the user menu."
msgstr "Mostra sempre l'element de menú «Surt» al menú d'usuari."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:15
msgid ""
"This key overrides the automatic hiding of the 'Log out' menu item in single-"
"user, single-session situations."
msgstr ""
"Aquesta clau sobreescriu l'ocultació automàtica de l'element de menú «Surt» "
"quan només hi ha un usuari i un sol tipus de sessió."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:16
msgid ""
"Whether to remember password for mounting encrypted or remote filesystems"
msgstr ""
"Si s'han de recordar les contrasenyes dels punts de muntatge encriptats o "
"els sistemes de fitxers remots"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:17
msgid ""
"The shell will request a password when an encrypted device or a remote "
"filesystem is mounted. If the password can be saved for future use a "
"'Remember Password' checkbox will be present. This key sets the default "
"state of the checkbox."
msgstr ""
"El GNOME Shell us demanarà la contrasenya quan es munti un dispositiu "
"encriptat o un sistema de fitxers remot. Si es pot desar la contrasenya per "
"utilitzar-lo en el futur, es mostrarà la casella de verificació «Recorda la "
"contrasenya». Aquesta clau estableix el valor per defecte d'aquesta casella "
"de verificació."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:18
msgid ""
"Whether the default Bluetooth adapter had set up devices associated to it"
msgstr ""
"Si l'adaptador de Bluetooth predeterminat té dispositius configurats "
"associats"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:19
msgid ""
"The shell will only show a Bluetooth menu item if a Bluetooth adapter is "
"powered, or if there were devices set up associated with the default "
"adapter. This will be reset if the default adapter is ever seen not to have "
"devices associated to it."
msgstr ""
"El Shell només mostrà una entrada de menú Bluetooth si un adaptador Bluetooh "
"està engegat, o si hi ha dispositius configurats associats a l'adaptador "
"predeterminat. Això es reiniciarà si l'adaptador predeterminat té "
"dispositius associats."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:20
msgid "Show the week date in the calendar"
msgstr "Mostra el número de la setmana al calendari"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:21
msgid "If true, display the ISO week date in the calendar."
msgstr "Si és «true» (cert) es mostra el número de la setmana al calendari."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:22
msgid "Keybinding to open the application menu"
msgstr "Vinculació per obrir el menú d'aplicació"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:23
msgid "Keybinding to open the application menu."
msgstr "La vinculació per obrir el menú d'aplicació."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:24
msgid "Keybinding to open the \"Show Applications\" view"
msgstr "Vinculació per obrir la vista «Mostra les aplicacions»"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:25
msgid ""
"Keybinding to open the \"Show Applications\" view of the Activities Overview."
msgstr ""
"Vinculació per obrir la vista «Mostra les aplicacions» de les activitats de "
"la vista general."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:26
msgid "Keybinding to open the overview"
msgstr "Vinculació per obrir la vista general"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:27
msgid "Keybinding to open the Activities Overview."
msgstr "Vinculació per obrir la vista general d'activitats."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:28
msgid "Keybinding to toggle the visibility of the notification list"
msgstr ""
"La vinculació per commutar la visibilitat de la llista de notificacions"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:29
msgid "Keybinding to toggle the visibility of the notification list."
msgstr ""
"La vinculació per commutar la visibilitat de la llista de notificacions."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:30
msgid "Keybinding to focus the active notification"
msgstr "Vinculació per posar el focus a la notificació activa"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:31
msgid "Keybinding to focus the active notification."
msgstr "Vinculació per posar el focus a la notificació activa."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:32
msgid ""
"Keybinding that pauses and resumes all running tweens, for debugging purposes"
msgstr ""
"Vinculació que fa una pausa i continua tots els «tweens» en execució, per "
"motius de depuració"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:33
msgid "Which keyboard to use"
msgstr "Quin tipus de teclat s'ha d'utilitzar"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:34
msgid "The type of keyboard to use."
msgstr "El tipus de teclat que s'utilitzarà."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:35
msgid "Limit switcher to current workspace."
msgstr "Limita el canviador a l'espai de treball actual."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:36
msgid ""
"If true, only applications that have windows on the current workspace are "
"shown in the switcher. Otherwise, all applications are included."
msgstr ""
"Si és «true» (cert), només les aplicacions que tinguin finestres en l'espai "
"de treball actual es mostren en el canviador. En cas contrari es mostren "
"totes les aplicacions."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37
msgid "The application icon mode."
msgstr "El mode d'icona de les aplicacions."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:38
msgid ""
"Configures how the windows are shown in the switcher. Valid possibilities "
"are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-"
"only' (shows only the application icon) or 'both'."
msgstr ""
"Configureu com es mostren les finestres en l'intercanviador. Els valors "
"possibles són: «thumbnail-only» (mostra una miniatura de la finestra), «app-"
"icon-only» (mostra la icona de l'aplicació) o «both» (ambdues coses: mostra "
"la miniatura de la finestra i la icona de l'aplicació)."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:39
msgid ""
"If true, only windows from the current workspace are shown in the switcher. "
"Otherwise, all windows are included."
msgstr ""
"Si és «true» (cert), només les finestres de l'espai de treball actual es "
"mostren en el canviador. En cas contrari, es mostren totes les finestres."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:40
msgid "Attach modal dialog to the parent window"
msgstr "Adjunta el diàleg modal a la finestra pare"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:41
msgid ""
"This key overrides the key in org.gnome.mutter when running GNOME Shell."
msgstr ""
"Si s'executa el GNOME Shell, aquesta clau sobreescriu la clau «org.gnome."
"mutter»."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:42
msgid "Enable edge tiling when dropping windows on screen edges"
msgstr ""
"Habilita la tesselització a les vores en deixar anar les finestres a les "
"vores de la pantalla"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:43
msgid "Workspaces are managed dynamically"
msgstr "Els espais de treball es gestionen dinàmicament"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:44
msgid "Workspaces only on primary monitor"
msgstr "Només en el monitor principal hi ha espais de treball"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:45
msgid "Delay focus changes in mouse mode until the pointer stops moving"
msgstr ""
"Retarda el canvi del focus, quan s'està en mode ratolí, fins que el punter "
"no estigui quiet"
#: ../data/org.gnome.Shell.PortalHelper.desktop.in.h:1
msgid "Network Login"
msgstr "Inici de sessió de la xarxa"
#: ../js/extensionPrefs/main.js:117
#, javascript-format
@ -32,7 +340,7 @@ msgstr "Extensions del GNOME Shell"
#: ../js/gdm/authPrompt.js:147 ../js/ui/audioDeviceSelection.js:71
#: ../js/ui/components/networkAgent.js:145
#: ../js/ui/components/polkitAgent.js:179 ../js/ui/endSessionDialog.js:483
#: ../js/ui/components/polkitAgent.js:179 ../js/ui/endSessionDialog.js:452
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
#: ../js/ui/status/network.js:916
msgid "Cancel"
@ -66,7 +374,7 @@ msgstr "No esteu llistat?"
#. Translators: this message is shown below the username entry field
#. to clue the user in on how to login to the local network realm
#: ../js/gdm/loginDialog.js:859
#: ../js/gdm/loginDialog.js:854
#, javascript-format
msgid "(e.g., user or %s)"
msgstr "(p. ex. l'usuari o %s)"
@ -74,12 +382,12 @@ msgstr "(p. ex. l'usuari o %s)"
#. TTLS and PEAP are actually much more complicated, but this complication
#. is not visible here since we only care about phase2 authentication
#. (and don't even care of which one)
#: ../js/gdm/loginDialog.js:864 ../js/ui/components/networkAgent.js:271
#: ../js/gdm/loginDialog.js:859 ../js/ui/components/networkAgent.js:271
#: ../js/ui/components/networkAgent.js:289
msgid "Username: "
msgstr "Nom d'usuari:"
#: ../js/gdm/loginDialog.js:1201
#: ../js/gdm/loginDialog.js:1196
msgid "Login Window"
msgstr "Finestra d'entrada"
@ -187,16 +495,6 @@ msgstr "%d de %B de %Y, a les %l%M %p"
msgid "Web Authentication Redirect"
msgstr "Redirecció per l'autenticació web"
#. No support for non-modal system dialogs, so ignore the option
#. let modal = options['modal'] || true;
#: ../js/ui/accessDialog.js:62 ../js/ui/status/location.js:426
msgid "Deny Access"
msgstr "Denega l'accés"
#: ../js/ui/accessDialog.js:63 ../js/ui/status/location.js:429
msgid "Grant Access"
msgstr "Permetre l'accés"
#: ../js/ui/appDisplay.js:794
msgid "Frequently used applications will appear here"
msgstr "Les aplicacions utilitzades freqüentment apareixeran aquí"
@ -263,7 +561,7 @@ msgstr "Canvia el fons de l'escriptori…"
msgid "Display Settings"
msgstr "Paràmetres de la pantalla"
#: ../js/ui/backgroundMenu.js:22 ../js/ui/status/system.js:374
#: ../js/ui/backgroundMenu.js:22 ../js/ui/status/system.js:366
msgid "Settings"
msgstr "Paràmetres"
@ -319,55 +617,55 @@ msgctxt "grid saturday"
msgid "S"
msgstr "Ds"
#: ../js/ui/calendar.js:442
#: ../js/ui/calendar.js:416
msgid "Previous month"
msgstr "Mes anterior"
#: ../js/ui/calendar.js:452
#: ../js/ui/calendar.js:426
msgid "Next month"
msgstr "Mes següent"
#: ../js/ui/calendar.js:605
#: ../js/ui/calendar.js:579
#, no-javascript-format
msgctxt "date day number format"
msgid "%d"
msgstr "%d"
#: ../js/ui/calendar.js:660
#: ../js/ui/calendar.js:634
msgid "Week %V"
msgstr "Setmana %V"
#. Translators: Shown in calendar event list for all day events
#. * Keep it short, best if you can use less then 10 characters
#.
#: ../js/ui/calendar.js:721
#: ../js/ui/calendar.js:695
msgctxt "event list time"
msgid "All Day"
msgstr "Tot el dia"
#: ../js/ui/calendar.js:836
#: ../js/ui/calendar.js:821
msgid "Events"
msgstr "Cites"
#: ../js/ui/calendar.js:845
#: ../js/ui/calendar.js:830
msgctxt "calendar heading"
msgid "%A, %B %d"
msgstr "%A %d de %B"
#: ../js/ui/calendar.js:849
#: ../js/ui/calendar.js:834
msgctxt "calendar heading"
msgid "%A, %B %d, %Y"
msgstr "%A %d de %B de %Y"
#: ../js/ui/calendar.js:931
#: ../js/ui/calendar.js:919
msgid "Notifications"
msgstr "Notificacions"
#: ../js/ui/calendar.js:1082
#: ../js/ui/calendar.js:1070
msgid "No Notifications"
msgstr "Cap notificació"
#: ../js/ui/calendar.js:1085
#: ../js/ui/calendar.js:1073
msgid "No Events"
msgstr "Cap cita"
@ -505,7 +803,7 @@ msgstr "No ha funcionat. Torneu-ho a provar."
#. Translators: this is the other person changing their old IM name to their new
#. IM name.
#: ../js/ui/components/telepathyClient.js:765
#: ../js/ui/components/telepathyClient.js:759
#, javascript-format
msgid "%s is now known as %s"
msgstr "En/na %s ara es diu %s"
@ -638,7 +936,7 @@ msgstr[1] ""
"Es reiniciarà l'ordinador automàticament i s'instal·laran les "
"actualitzacions d'aquí %d segons."
#: ../js/ui/endSessionDialog.js:127 ../js/ui/endSessionDialog.js:147
#: ../js/ui/endSessionDialog.js:127
msgctxt "button"
msgid "Restart &amp; Install"
msgstr "Reinicia i instal·la"
@ -653,45 +951,30 @@ msgctxt "checkbox"
msgid "Power off after updates are installed"
msgstr "Apaga després d'instal·lar les actualitzacions"
#: ../js/ui/endSessionDialog.js:137
msgctxt "title"
msgid "Restart & Install Upgrade"
msgstr "Reinicia i instal·la l'actualització"
#. Translators: This is the text displayed for system upgrades in the
#. shut down dialog. First %s gets replaced with the distro name and
#. second %s with the distro version to upgrade to
#: ../js/ui/endSessionDialog.js:142
#, javascript-format
msgid ""
"%s %s will be installed after restart. Upgrade installation can take a long "
"time: ensure that you have backed up and that the computer is plugged in."
msgstr ""
#: ../js/ui/endSessionDialog.js:361
#: ../js/ui/endSessionDialog.js:338
msgid "Running on battery power: please plug in before installing updates."
msgstr ""
"S'està utilitzant la bateria: connecteu l'ordinador a la xarxa elèctrica "
"abans d'instal·lar les actualitzacions."
#: ../js/ui/endSessionDialog.js:378
#: ../js/ui/endSessionDialog.js:355
msgid "Some applications are busy or have unsaved work."
msgstr ""
"Hi ha algunes aplicacions que estan ocupades o que tenen documents sense "
"desar."
#: ../js/ui/endSessionDialog.js:385
#: ../js/ui/endSessionDialog.js:362
msgid "Other users are logged in."
msgstr "Altres usuaris tenen la sessió oberta."
#. Translators: Remote here refers to a remote session, like a ssh login
#: ../js/ui/endSessionDialog.js:671
#: ../js/ui/endSessionDialog.js:640
#, javascript-format
msgid "%s (remote)"
msgstr "%s (remot)"
#. Translators: Console here refers to a tty like a VT console
#: ../js/ui/endSessionDialog.js:674
#: ../js/ui/endSessionDialog.js:643
#, javascript-format
msgid "%s (console)"
msgstr "%s (consola)"
@ -705,7 +988,7 @@ msgstr "Instal·la"
msgid "Download and install “%s” from extensions.gnome.org?"
msgstr "Voleu baixar i instal·lar «%s» d'extensions.gnome.org?"
#: ../js/ui/keyboard.js:742 ../js/ui/status/keyboard.js:782
#: ../js/ui/keyboard.js:741 ../js/ui/status/keyboard.js:713
msgid "Keyboard"
msgstr "Teclat"
@ -742,7 +1025,7 @@ msgstr "Habilitat"
#. translators:
#. * The device has been disabled
#: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1866
#: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1828
msgid "Disabled"
msgstr "Inhabilitat"
@ -790,7 +1073,7 @@ msgstr "Multimèdia"
msgid "Undo"
msgstr "Desfés"
#: ../js/ui/overview.js:113
#: ../js/ui/overview.js:117
msgid "Overview"
msgstr "Vista general"
@ -798,7 +1081,7 @@ msgstr "Vista general"
#. in the search entry when no search is
#. active; it should not exceed ~30
#. characters.
#: ../js/ui/overview.js:240
#: ../js/ui/overview.js:244
msgid "Type to search…"
msgstr "Teclegeu per cercar…"
@ -862,11 +1145,11 @@ msgid_plural "%d new notifications"
msgstr[0] "%d notificació nova"
msgstr[1] "%d notificacions noves"
#: ../js/ui/screenShield.js:449 ../js/ui/status/system.js:382
#: ../js/ui/screenShield.js:432 ../js/ui/status/system.js:374
msgid "Lock"
msgstr "Bloqueja"
#: ../js/ui/screenShield.js:704
#: ../js/ui/screenShield.js:684
msgid "GNOME needs to lock the screen"
msgstr "El GNOME necessita bloquejar la pantalla"
@ -877,11 +1160,11 @@ msgstr "El GNOME necessita bloquejar la pantalla"
#.
#. XXX: another option is to kick the user into the gdm login
#. screen, where we're not affected by grabs
#: ../js/ui/screenShield.js:825 ../js/ui/screenShield.js:1291
#: ../js/ui/screenShield.js:805 ../js/ui/screenShield.js:1271
msgid "Unable to lock"
msgstr "No es pot blocar"
#: ../js/ui/screenShield.js:826 ../js/ui/screenShield.js:1292
#: ../js/ui/screenShield.js:806 ../js/ui/screenShield.js:1272
msgid "Lock was blocked by an application"
msgstr "Una aplicació està bloquejant el bloqueig"
@ -965,7 +1248,7 @@ msgstr "Text gran"
msgid "Bluetooth"
msgstr "Bluetooth"
#: ../js/ui/status/bluetooth.js:56 ../js/ui/status/network.js:624
#: ../js/ui/status/bluetooth.js:56
msgid "Bluetooth Settings"
msgstr "Paràmetres del Bluetooth"
@ -1000,7 +1283,7 @@ msgstr "Desactiva"
msgid "Brightness"
msgstr "Brillantor"
#: ../js/ui/status/keyboard.js:805
#: ../js/ui/status/keyboard.js:736
msgid "Show Keyboard Layout"
msgstr "Mostra la disposició del teclat"
@ -1028,6 +1311,14 @@ msgstr "Ubicació inhabilitada"
msgid "Enable"
msgstr "Habilita"
#: ../js/ui/status/location.js:426
msgid "Deny Access"
msgstr "Denega l'accés"
#: ../js/ui/status/location.js:429
msgid "Grant Access"
msgstr "Permetre l'accés"
#. Translators: %s is an application name
#: ../js/ui/status/location.js:435
#, javascript-format
@ -1038,7 +1329,7 @@ msgstr "Voleu donar a %s accés a la vostra ubicació?"
msgid "Location access can be changed at any time from the privacy settings."
msgstr ""
"Podeu canviar la configuració de l'accés a la ubicació sempre que vulgueu "
"des de la configuració de la privacitat."
"des del la configuració de la privacitat."
#: ../js/ui/status/network.js:101
msgid "<unknown>"
@ -1106,7 +1397,7 @@ msgstr "%s ha fallat la connexió"
msgid "Wired Settings"
msgstr "Paràmetres de la xarxa amb fils"
#: ../js/ui/status/network.js:545
#: ../js/ui/status/network.js:545 ../js/ui/status/network.js:624
msgid "Mobile Broadband Settings"
msgstr "Configuració de la xarxa de banda ampla mòbil"
@ -1124,8 +1415,8 @@ msgid "%s Disabled"
msgstr "%s Inhabilitat"
#: ../js/ui/status/network.js:632
msgid "Connect to Internet"
msgstr "Connecta a l'Internet"
msgid "Use as Internet connection"
msgstr "Utilitza com a connexió a Internet"
#: ../js/ui/status/network.js:813
msgid "Airplane Mode is On"
@ -1262,27 +1553,27 @@ msgstr "%d%%"
msgid "Airplane Mode On"
msgstr "El mode d'avió és actiu"
#: ../js/ui/status/system.js:351
#: ../js/ui/status/system.js:343
msgid "Switch User"
msgstr "Canvia d'usuari"
#: ../js/ui/status/system.js:356
#: ../js/ui/status/system.js:348
msgid "Log Out"
msgstr "Surt"
#: ../js/ui/status/system.js:361
#: ../js/ui/status/system.js:353
msgid "Account Settings"
msgstr "Paràmetres del compte"
#: ../js/ui/status/system.js:378
#: ../js/ui/status/system.js:370
msgid "Orientation Lock"
msgstr "Bloqueja l'orientació"
#: ../js/ui/status/system.js:386
#: ../js/ui/status/system.js:378
msgid "Suspend"
msgstr "Atura temporalment"
#: ../js/ui/status/system.js:389
#: ../js/ui/status/system.js:381
msgid "Power Off"
msgstr "Apaga"
@ -1408,9 +1699,13 @@ msgstr "Mou a la pantalla de l'esquerra"
msgid "Move to Monitor Right"
msgstr "Mou a la pantalla de la dreta"
#: ../src/calendar-server/evolution-calendar.desktop.in.in.h:1
msgid "Evolution Calendar"
msgstr "Calendari de l'Evolution"
#. translators:
#. * The number of sound outputs on a particular device
#: ../src/gvc/gvc-mixer-control.c:1873
#: ../src/gvc/gvc-mixer-control.c:1835
#, c-format
msgid "%u Output"
msgid_plural "%u Outputs"
@ -1419,14 +1714,14 @@ msgstr[1] "%u sortides"
#. translators:
#. * The number of sound inputs on a particular device
#: ../src/gvc/gvc-mixer-control.c:1883
#: ../src/gvc/gvc-mixer-control.c:1845
#, c-format
msgid "%u Input"
msgid_plural "%u Inputs"
msgstr[0] "%u entrada"
msgstr[1] "%u entrades"
#: ../src/gvc/gvc-mixer-control.c:2738
#: ../src/gvc/gvc-mixer-control.c:2371
msgid "System Sounds"
msgstr "Sons del sistema"
@ -1446,12 +1741,12 @@ msgstr "Utilitza un mode específic, p. ex. «gdm» per la pantalla d'entrada"
msgid "List possible modes"
msgstr "Llista els modes possibles"
#: ../src/shell-app.c:270
#: ../src/shell-app.c:246
msgctxt "program"
msgid "Unknown"
msgstr "Desconegut"
#: ../src/shell-app.c:511
#: ../src/shell-app.c:487
#, c-format
msgid "Failed to launch “%s”"
msgstr "No s'ha pogut iniciar «%s»"
@ -1468,268 +1763,6 @@ msgstr "La contrasenya no pot ser buida"
msgid "Authentication dialog was dismissed by the user"
msgstr "L'usuari ha descartat el diàleg d'autenticació"
#~ msgid "System"
#~ msgstr "Sistema"
#~ msgid "Show the notification list"
#~ msgstr "Mostra la llista de notificacions"
#~ msgid "Focus the active notification"
#~ msgstr "Posa el focus en la notificació activa"
#~ msgid "Show the overview"
#~ msgstr "Mostra la vista general"
#~ msgid "Show all applications"
#~ msgstr "Mostra totes les aplicacions"
#~ msgid "Open the application menu"
#~ msgstr "Obre el menú d'aplicació"
#~ msgid "GNOME Shell Extension Preferences"
#~ msgstr "Preferències de les extensions del GNOME Shell"
#~ msgid "Configure GNOME Shell Extensions"
#~ msgstr "Configureu les extensions del GNOME Shell"
#~ msgid "GNOME Shell"
#~ msgstr "GNOME Shell"
#~ msgid "Window management and application launching"
#~ msgstr "Gestor de finestres i llançador d'aplicacions"
#~ msgid "Enable internal tools useful for developers and testers from Alt-F2"
#~ msgstr ""
#~ "Habilita les eines internes en el diàleg de l'Alt+F2 que són útils per "
#~ "als desenvolupadors i provadors"
#~ msgid ""
#~ "Allows access to internal debugging and monitoring tools using the Alt-F2 "
#~ "dialog."
#~ msgstr ""
#~ "Permet l'accés a les eines de depuració i de seguiment internes a través "
#~ "del diàleg de l'Alt+F2."
#~ msgid "UUIDs of extensions to enable"
#~ msgstr ""
#~ "Identificadors universals únics de les extensions que s'han d'habilitar"
#~ msgid ""
#~ "GNOME Shell extensions have a UUID property; this key lists extensions "
#~ "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 D-Bus methods on org.gnome.Shell."
#~ msgstr ""
#~ "Les extensions del GNOME Shell tenen un identificador universal. Aquesta "
#~ "clau conté una llista de les extensions que s'han de carregar. Qualsevol "
#~ "extensió que s'hagi de carregar ha de ser a la llista. Podeu modificar "
#~ "aquesta llista amb els mètodes de D-Bus «EnableExtension» (activa una "
#~ "extensió) i «DisableExtension» (desactiva una extensió) a org.gnome.Shell."
#~ msgid "Disables the validation of extension version compatibility"
#~ msgstr "Desactiva la validació de la compatibilitat de versió d'extensions"
#~ msgid ""
#~ "GNOME Shell will only load extensions that claim to support the current "
#~ "running version. Enabling this option will disable this check and try to "
#~ "load all extensions regardless of the versions they claim to support."
#~ msgstr ""
#~ "El GNOME Shell només carregarà extensions que afirmin ser compatibles amb "
#~ "la versió en execució. Si s'activa aquesta opció, es desactivarà la "
#~ "comprovació i es provarà de carregar totes les extensions sense tenir en "
#~ "compte les versions amb què afirmin ser compatibles."
#~ msgid "List of desktop file IDs for favorite applications"
#~ msgstr ""
#~ "Llista d'identificadors de fitxers d'escriptori de les aplicacions "
#~ "preferides"
#~ msgid ""
#~ "The applications corresponding to these identifiers will be displayed in "
#~ "the favorites area."
#~ msgstr ""
#~ "Es mostraran, a l'àrea de preferits, les aplicacions que corresponguin a "
#~ "aquests identificadors."
#~ msgid "App Picker View"
#~ msgstr "Vista del seleccionador d'aplicacions"
#~ msgid "Index of the currently selected view in the application picker."
#~ msgstr ""
#~ "Índex de la vista seleccionada actualment en el seleccionador "
#~ "d'aplicacions."
#~ msgid "History for command (Alt-F2) dialog"
#~ msgstr "Historial de les ordres utilitzades en el diàleg de l'Alt+F2"
#~ msgid "History for the looking glass dialog"
#~ msgstr "Historial del depurador del GNOME Shell"
#~ msgid "Always show the 'Log out' menu item in the user menu."
#~ msgstr "Mostra sempre l'element de menú «Surt» al menú d'usuari."
#~ msgid ""
#~ "This key overrides the automatic hiding of the 'Log out' menu item in "
#~ "single-user, single-session situations."
#~ msgstr ""
#~ "Aquesta clau sobreescriu l'ocultació automàtica de l'element de menú "
#~ "«Surt» quan només hi ha un usuari i un sol tipus de sessió."
#~ msgid ""
#~ "Whether to remember password for mounting encrypted or remote filesystems"
#~ msgstr ""
#~ "Si s'han de recordar les contrasenyes dels punts de muntatge encriptats o "
#~ "els sistemes de fitxers remots"
#~ msgid ""
#~ "The shell will request a password when an encrypted device or a remote "
#~ "filesystem is mounted. If the password can be saved for future use a "
#~ "'Remember Password' checkbox will be present. This key sets the default "
#~ "state of the checkbox."
#~ msgstr ""
#~ "El GNOME Shell us demanarà la contrasenya quan es munti un dispositiu "
#~ "encriptat o un sistema de fitxers remot. Si es pot desar la contrasenya "
#~ "per utilitzar-lo en el futur, es mostrarà la casella de verificació "
#~ "«Recorda la contrasenya». Aquesta clau estableix el valor per defecte "
#~ "d'aquesta casella de verificació."
#~ msgid ""
#~ "Whether the default Bluetooth adapter had set up devices associated to it"
#~ msgstr ""
#~ "Si l'adaptador de Bluetooth predeterminat té dispositius configurats "
#~ "associats"
#~ msgid ""
#~ "The shell will only show a Bluetooth menu item if a Bluetooth adapter is "
#~ "powered, or if there were devices set up associated with the default "
#~ "adapter. This will be reset if the default adapter is ever seen not to "
#~ "have devices associated to it."
#~ msgstr ""
#~ "El Shell només mostrà una entrada de menú Bluetooth si un adaptador "
#~ "Bluetooh està engegat, o si hi ha dispositius configurats associats a "
#~ "l'adaptador predeterminat. Això es reiniciarà si l'adaptador "
#~ "predeterminat té dispositius associats."
#~ msgid "Show the week date in the calendar"
#~ msgstr "Mostra el número de la setmana al calendari"
#~ msgid "If true, display the ISO week date in the calendar."
#~ msgstr "Si és «true» (cert) es mostra el número de la setmana al calendari."
#~ msgid "Keybinding to open the application menu"
#~ msgstr "Vinculació per obrir el menú d'aplicació"
#~ msgid "Keybinding to open the application menu."
#~ msgstr "La vinculació per obrir el menú d'aplicació."
#~ msgid "Keybinding to open the \"Show Applications\" view"
#~ msgstr "Vinculació per obrir la vista «Mostra les aplicacions»"
#~ msgid ""
#~ "Keybinding to open the \"Show Applications\" view of the Activities "
#~ "Overview."
#~ msgstr ""
#~ "Vinculació per obrir la vista «Mostra les aplicacions» de les activitats "
#~ "de la vista general."
#~ msgid "Keybinding to open the overview"
#~ msgstr "Vinculació per obrir la vista general"
#~ msgid "Keybinding to open the Activities Overview."
#~ msgstr "Vinculació per obrir la vista general d'activitats."
#~ msgid "Keybinding to toggle the visibility of the notification list"
#~ msgstr ""
#~ "La vinculació per commutar la visibilitat de la llista de notificacions"
#~ msgid "Keybinding to toggle the visibility of the notification list."
#~ msgstr ""
#~ "La vinculació per commutar la visibilitat de la llista de notificacions."
#~ msgid "Keybinding to focus the active notification"
#~ msgstr "Vinculació per posar el focus a la notificació activa"
#~ msgid "Keybinding to focus the active notification."
#~ msgstr "Vinculació per posar el focus a la notificació activa."
#~ msgid ""
#~ "Keybinding that pauses and resumes all running tweens, for debugging "
#~ "purposes"
#~ msgstr ""
#~ "Vinculació que fa una pausa i continua tots els «tweens» en execució, per "
#~ "motius de depuració"
#~ msgid "Which keyboard to use"
#~ msgstr "Quin tipus de teclat s'ha d'utilitzar"
#~ msgid "The type of keyboard to use."
#~ msgstr "El tipus de teclat que s'utilitzarà."
#~ msgid "Limit switcher to current workspace."
#~ msgstr "Limita el canviador a l'espai de treball actual."
#~ msgid ""
#~ "If true, only applications that have windows on the current workspace are "
#~ "shown in the switcher. Otherwise, all applications are included."
#~ msgstr ""
#~ "Si és «true» (cert), només les aplicacions que tinguin finestres en "
#~ "l'espai de treball actual es mostren en el canviador. En cas contrari es "
#~ "mostren totes les aplicacions."
#~ msgid "The application icon mode."
#~ msgstr "El mode d'icona de les aplicacions."
#~ msgid ""
#~ "Configures how the windows are shown in the switcher. Valid possibilities "
#~ "are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-"
#~ "only' (shows only the application icon) or 'both'."
#~ msgstr ""
#~ "Configureu com es mostren les finestres en l'intercanviador. Els valors "
#~ "possibles són: «thumbnail-only» (mostra una miniatura de la finestra), "
#~ "«app-icon-only» (mostra la icona de l'aplicació) o «both» (ambdues coses: "
#~ "mostra la miniatura de la finestra i la icona de l'aplicació)."
#~ msgid ""
#~ "If true, only windows from the current workspace are shown in the "
#~ "switcher. Otherwise, all windows are included."
#~ msgstr ""
#~ "Si és «true» (cert), només les finestres de l'espai de treball actual es "
#~ "mostren en el canviador. En cas contrari, es mostren totes les finestres."
#~ msgid "Attach modal dialog to the parent window"
#~ msgstr "Adjunta el diàleg modal a la finestra pare"
#~ msgid ""
#~ "This key overrides the key in org.gnome.mutter when running GNOME Shell."
#~ msgstr ""
#~ "Si s'executa el GNOME Shell, aquesta clau sobreescriu la clau «org.gnome."
#~ "mutter»."
#~ msgid "Enable edge tiling when dropping windows on screen edges"
#~ msgstr ""
#~ "Habilita la tesselització a les vores en deixar anar les finestres a les "
#~ "vores de la pantalla"
#~ msgid "Workspaces are managed dynamically"
#~ msgstr "Els espais de treball es gestionen dinàmicament"
#~ msgid "Workspaces only on primary monitor"
#~ msgstr "Només en el monitor principal hi ha espais de treball"
#~ msgid "Delay focus changes in mouse mode until the pointer stops moving"
#~ msgstr ""
#~ "Retarda el canvi del focus, quan s'està en mode ratolí, fins que el "
#~ "punter no estigui quiet"
#~ msgid "Network Login"
#~ msgstr "Inici de sessió de la xarxa"
#~ msgid "Use as Internet connection"
#~ msgstr "Utilitza com a connexió a Internet"
#~ msgid "Evolution Calendar"
#~ msgstr "Calendari de l'Evolution"
#~ msgid "%s is requesting access to your location."
#~ msgstr "%s està demanant accés a la vostra ubicació."

View File

@ -14,7 +14,7 @@ msgstr ""
"PO-Revision-Date: 2014-09-14 23:32+0200\n"
"Last-Translator: Gil Forcada <gilforcada@guifi.net>\n"
"Language-Team: Catalan <tradgnome@softcatala.org>\n"
"Language: ca@valencia\n"
"Language: ca-XV\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bits\n"

825
po/cs.po

File diff suppressed because it is too large Load Diff

803
po/da.po

File diff suppressed because it is too large Load Diff

838
po/de.po

File diff suppressed because it is too large Load Diff

836
po/el.po

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

435
po/eo.po

File diff suppressed because it is too large Load Diff

842
po/es.po

File diff suppressed because it is too large Load Diff

829
po/eu.po

File diff suppressed because it is too large Load Diff

786
po/fa.po

File diff suppressed because it is too large Load Diff

844
po/fi.po

File diff suppressed because it is too large Load Diff

809
po/fr.po

File diff suppressed because it is too large Load Diff

911
po/fur.po

File diff suppressed because it is too large Load Diff

784
po/gd.po

File diff suppressed because it is too large Load Diff

813
po/gl.po

File diff suppressed because it is too large Load Diff

View File

@ -13,7 +13,7 @@ msgstr ""
"PO-Revision-Date: 2014-10-01 15:51+0530\n"
"Last-Translator: \n"
"Language-Team: American English <kde-i18n-doc@kde.org>\n"
"Language: gu\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"

854
po/he.po

File diff suppressed because it is too large Load Diff

836
po/hu.po

File diff suppressed because it is too large Load Diff

892
po/id.po

File diff suppressed because it is too large Load Diff

856
po/is.po

File diff suppressed because it is too large Load Diff

797
po/it.po

File diff suppressed because it is too large Load Diff

176
po/ja.po
View File

@ -14,10 +14,9 @@
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: 2016-05-02 22:01+0000\n"
"PO-Revision-Date: 2016-05-08 15:12+0900\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2016-03-11 22:17+0000\n"
"PO-Revision-Date: 2016-03-12 14:12+0900\n"
"Last-Translator: Jiro Matsuzawa <jmatsuzawa@gnome.org>\n"
"Language-Team: Japanese <gnome-translation@gnome.gr.jp>\n"
"Language: ja\n"
@ -71,51 +70,31 @@ msgid "Enable internal tools useful for developers and testers from Alt-F2"
msgstr "Alt-F2 から開発・テスト用の内部ツールを利用可能にする"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:2
msgid ""
"Allows access to internal debugging and monitoring tools using the Alt-F2 "
"dialog."
msgstr ""
"Alt-F2 ダイアログを利用した内部のデバッグツールとモニターツールへのアクセスを"
"許可します。"
msgid "Allows access to internal debugging and monitoring tools using the Alt-F2 dialog."
msgstr "Alt-F2 ダイアログを利用した内部のデバッグツールとモニターツールへのアクセスを許可します。"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:3
msgid "UUIDs of extensions to enable"
msgstr "有効にする拡張機能の UUID"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:4
msgid ""
"GNOME Shell extensions have a UUID property; this key lists extensions 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 D-Bus methods on org.gnome.Shell."
msgstr ""
"GNOME Shell の拡張機能には UUID プロパティがあり、このキーは、ロードしたい拡"
"張機能の UUID のリストです。ロードしたい拡張機能はこのリストに含めなければな"
"りません。このリストは org.gnome.Shell の EnableExtensions や "
"DisableExtensions といった DBus メソッドでも操作できます。"
msgid "GNOME Shell extensions have a UUID property; this key lists extensions 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 D-Bus methods on org.gnome.Shell."
msgstr "GNOME Shell の拡張機能には UUID プロパティがあり、このキーは、ロードしたい拡張機能の UUID のリストです。ロードしたい拡張機能はこのリストに含めなければなりません。このリストは org.gnome.Shell の EnableExtensions や DisableExtensions といった DBus メソッドでも操作できます。"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:5
msgid "Disables the validation of extension version compatibility"
msgstr "拡張機能のバージョン互換の検証を無効にする"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:6
msgid ""
"GNOME Shell will only load extensions that claim to support the current "
"running version. Enabling this option will disable this check and try to "
"load all extensions regardless of the versions they claim to support."
msgstr ""
"通常では、現在起動中の GNOME Shell のバージョンをサポートする拡張機能だけが"
"ロードされます。この設定を true にした場合、バージョンチェック機能が無効にな"
"り、拡張機能のサポートバージョンに関係なくすべての拡張機能をロードします。"
msgid "GNOME Shell will only load extensions that claim to support the current running version. Enabling this option will disable this check and try to load all extensions regardless of the versions they claim to support."
msgstr "通常では、現在起動中の GNOME Shell のバージョンをサポートする拡張機能だけがロードされます。この設定を true にした場合、バージョンチェック機能が無効になり、拡張機能のサポートバージョンに関係なくすべての拡張機能をロードします。"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:7
msgid "List of desktop file IDs for favorite applications"
msgstr "お気に入りのアプリケーションの .desktop ファイル ID の一覧"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:8
msgid ""
"The applications corresponding to these identifiers will be displayed in the "
"favorites area."
msgid "The applications corresponding to these identifiers will be displayed in the favorites area."
msgstr "これらの ID で示されるアプリケーションは「お気に入り」に表示されます。"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:9
@ -140,49 +119,24 @@ msgid "Always show the 'Log out' menu item in the user menu."
msgstr "ユーザーメニューに「ログアウト」を常に表示する"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:15
msgid ""
"This key overrides the automatic hiding of the 'Log out' menu item in single-"
"user, single-session situations."
msgstr ""
"このキーは、単一ユーザー、単一セッション状況で「ログアウト」メニューアイテム"
"を自動的に非表示にする機能よりも優先します。"
msgid "This key overrides the automatic hiding of the 'Log out' menu item in single-user, single-session situations."
msgstr "このキーは、単一ユーザー、単一セッション状況で「ログアウト」メニューアイテムを自動的に非表示にする機能よりも優先します。"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:16
msgid ""
"Whether to remember password for mounting encrypted or remote filesystems"
msgstr ""
"マウント対象の暗号化されたファイルシステムやリモートファイルシステムのパス"
"ワードを記憶する"
msgid "Whether to remember password for mounting encrypted or remote filesystems"
msgstr "マウント対象の暗号化されたファイルシステムやリモートファイルシステムのパスワードを記憶する"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:17
msgid ""
"The shell will request a password when an encrypted device or a remote "
"filesystem is mounted. If the password can be saved for future use a "
"'Remember Password' checkbox will be present. This key sets the default "
"state of the checkbox."
msgstr ""
"GNOME Shell は、暗号化されたデバイスやリモートファイルシステムのマウント時に"
"パスワードを要求します。パスワードを保存できる場合は、「パスワードを保存」"
"チェックボックスが表示されます。このキーは、チェックボックスのデフォルト値と"
"なります。"
msgid "The shell will request a password when an encrypted device or a remote filesystem is mounted. If the password can be saved for future use a 'Remember Password' checkbox will be present. This key sets the default state of the checkbox."
msgstr "GNOME Shell は、暗号化されたデバイスやリモートファイルシステムのマウント時にパスワードを要求します。パスワードを保存できる場合は、「パスワードを保存」チェックボックスが表示されます。このキーは、チェックボックスのデフォルト値となります。"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:18
msgid ""
"Whether the default Bluetooth adapter had set up devices associated to it"
msgstr ""
"デフォルトの Bluetooth アダプターにデバイスが関連付けられているかどうか"
msgid "Whether the default Bluetooth adapter had set up devices associated to it"
msgstr "デフォルトの Bluetooth アダプターにデバイスが関連付けられているかどうか"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:19
msgid ""
"The shell will only show a Bluetooth menu item if a Bluetooth adapter is "
"powered, or if there were devices set up associated with the default "
"adapter. This will be reset if the default adapter is ever seen not to have "
"devices associated to it."
msgstr ""
"Bluetooth アダプターの電源がオンになっているか、あるいはデフォルトのアダプ"
"ターに関連付けられたデバイスがある場合にのみ、GNOME Shell は Bluetooth メ"
"ニューを表示します。デフォルトのアダプターに関連付けられたデバイスがなくなっ"
"た場合に、この値はリセットされます。"
msgid "The shell will only show a Bluetooth menu item if a Bluetooth adapter is powered, or if there were devices set up associated with the default adapter. This will be reset if the default adapter is ever seen not to have devices associated to it."
msgstr "Bluetooth アダプターの電源がオンになっているか、あるいはデフォルトのアダプターに関連付けられたデバイスがある場合にのみ、GNOME Shell は Bluetooth メニューを表示します。デフォルトのアダプターに関連付けられたデバイスがなくなった場合に、この値はリセットされます。"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:20
msgid "Show the week date in the calendar"
@ -205,8 +159,7 @@ msgid "Keybinding to open the \"Show Applications\" view"
msgstr "アプリケーション一覧を開くキーバインド"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:25
msgid ""
"Keybinding to open the \"Show Applications\" view of the Activities Overview."
msgid "Keybinding to open the \"Show Applications\" view of the Activities Overview."
msgstr "アプリケーション一覧を開くキーバインドです。"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:26
@ -234,10 +187,8 @@ msgid "Keybinding to focus the active notification."
msgstr "アクティブな通知にフォーカスを当てるキーバインドです。"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:32
msgid ""
"Keybinding that pauses and resumes all running tweens, for debugging purposes"
msgstr ""
"Tween の一時停止および再開を行うキーバインドです。デバッグ用途で使用します。"
msgid "Keybinding that pauses and resumes all running tweens, for debugging purposes"
msgstr "Tween の一時停止および再開を行うキーバインドです。デバッグ用途で使用します。"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:33
msgid "Which keyboard to use"
@ -252,46 +203,28 @@ msgid "Limit switcher to current workspace."
msgstr "スイッチャーを現在のワークスペース内に制限する"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:36
msgid ""
"If true, only applications that have windows on the current workspace are "
"shown in the switcher. Otherwise, all applications are included."
msgstr ""
"true に設定した場合、現在のワークスペースにウィンドウのあるアプリケーションだ"
"けをスイッチャーに表示します。false に設定した場合はすべてのアプリケーション"
"を表示します。"
msgid "If true, only applications that have windows on the current workspace are shown in the switcher. Otherwise, all applications are included."
msgstr "true に設定した場合、現在のワークスペースにウィンドウのあるアプリケーションだけをスイッチャーに表示します。false に設定した場合はすべてのアプリケーションを表示します。"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37
msgid "The application icon mode."
msgstr "アプリケーションアイコンモード"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:38
msgid ""
"Configures how the windows are shown in the switcher. Valid possibilities "
"are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-"
"only' (shows only the application icon) or 'both'."
msgstr ""
"ウィンドウスイッチャーでのウィンドウの表示方法を設定します。指定可能な値"
"は、'thumbnail-only' (ウィンドウのサムネイルを表示します)、'app-icon-"
"only' (アプリケーションアイコンを表示します)、あるいは 'both' です。"
msgid "Configures how the windows are shown in the switcher. Valid possibilities are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-only' (shows only the application icon) or 'both'."
msgstr "ウィンドウスイッチャーでのウィンドウの表示方法を設定します。指定可能な値は、'thumbnail-only' (ウィンドウのサムネイルを表示します)、'app-icon-only' (アプリケーションアイコンを表示します)、あるいは 'both' です。"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:39
msgid ""
"If true, only windows from the current workspace are shown in the switcher. "
"Otherwise, all windows are included."
msgstr ""
"true に設定した場合、現在のワークスペースのウィンドウだけをスイッチャーに表示"
"します。false に設定した場合はすべてのアプリケーションを表示します。"
msgid "If true, only windows from the current workspace are shown in the switcher. Otherwise, all windows are included."
msgstr "true に設定した場合、現在のワークスペースのウィンドウだけをスイッチャーに表示します。false に設定した場合はすべてのアプリケーションを表示します。"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:40
msgid "Attach modal dialog to the parent window"
msgstr "モーダルダイアログを親ウィンドウに結び付ける"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:41
msgid ""
"This key overrides the key in org.gnome.mutter when running GNOME Shell."
msgstr ""
"GNOME Shell 使用時は、 このキーが、org.gnome.mutter の同じキーよりも優先しま"
"す。"
msgid "This key overrides the key in org.gnome.mutter when running GNOME Shell."
msgstr "GNOME Shell 使用時は、 このキーが、org.gnome.mutter の同じキーよりも優先します。"
#: ../data/org.gnome.shell.gschema.xml.in.in.h:42
msgid "Enable edge tiling when dropping windows on screen edges"
@ -545,7 +478,7 @@ msgstr "背景の変更…"
msgid "Display Settings"
msgstr "ディスプレイ設定"
#: ../js/ui/backgroundMenu.js:22 ../js/ui/status/system.js:371
#: ../js/ui/backgroundMenu.js:22 ../js/ui/status/system.js:366
msgid "Settings"
msgstr "設定"
@ -713,12 +646,8 @@ msgstr "無線ネットワークでは認証が要求されます"
#: ../js/ui/components/networkAgent.js:321
#: ../js/ui/components/networkAgent.js:659
#, javascript-format
msgid ""
"Passwords or encryption keys are required to access the wireless network "
"“%s”."
msgstr ""
"無線ネットワーク ”%s” にアクセスするにはパスワードか、または暗号化キーが必要"
"です。"
msgid "Passwords or encryption keys are required to access the wireless network “%s”."
msgstr "無線ネットワーク ”%s” にアクセスするにはパスワードか、または暗号化キーが必要です。"
#: ../js/ui/components/networkAgent.js:325
#: ../js/ui/components/networkAgent.js:662
@ -787,7 +716,7 @@ msgstr "申し訳ありません、認証できませんでした。再試行し
#. Translators: this is the other person changing their old IM name to their new
#. IM name.
#: ../js/ui/components/telepathyClient.js:760
#: ../js/ui/components/telepathyClient.js:759
#, javascript-format
msgid "%s is now known as %s"
msgstr "%s は %s になりました"
@ -907,8 +836,7 @@ msgstr "再起動して更新をインストールする"
#: ../js/ui/endSessionDialog.js:121
#, javascript-format
msgid "The system will automatically restart and install updates in %d second."
msgid_plural ""
"The system will automatically restart and install updates in %d seconds."
msgid_plural "The system will automatically restart and install updates in %d seconds."
msgstr[0] "%d 秒後にシステムを再起動して更新をインストールします。"
#: ../js/ui/endSessionDialog.js:127
@ -928,8 +856,7 @@ msgstr "更新をインストール後電源をオフにする"
#: ../js/ui/endSessionDialog.js:338
msgid "Running on battery power: please plug in before installing updates."
msgstr ""
"バッテリーで動作中です: 更新をインストールする前に電源に接続してください。"
msgstr "バッテリーで動作中です: 更新をインストールする前に電源に接続してください。"
#: ../js/ui/endSessionDialog.js:355
msgid "Some applications are busy or have unsaved work."
@ -997,7 +924,7 @@ msgstr "有効"
#. translators:
#. * The device has been disabled
#: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1866
#: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1828
msgid "Disabled"
msgstr "無効"
@ -1115,7 +1042,7 @@ msgid "%d new notification"
msgid_plural "%d new notifications"
msgstr[0] "%d 件の新しい通知"
#: ../js/ui/screenShield.js:432 ../js/ui/status/system.js:379
#: ../js/ui/screenShield.js:432 ../js/ui/status/system.js:374
msgid "Lock"
msgstr "ロック"
@ -1296,8 +1223,7 @@ msgstr "%s が現在の位置情報を取得することを許可しますか?"
#: ../js/ui/status/location.js:437
msgid "Location access can be changed at any time from the privacy settings."
msgstr ""
"位置情報のアクセス許可設定は、プライバシー設定からいつでも変更できます。"
msgstr "位置情報のアクセス許可設定は、プライバシー設定からいつでも変更できます。"
#: ../js/ui/status/network.js:101
msgid "<unknown>"
@ -1521,27 +1447,27 @@ msgstr "%d%%"
msgid "Airplane Mode On"
msgstr "機内モードオン"
#: ../js/ui/status/system.js:348
#: ../js/ui/status/system.js:343
msgid "Switch User"
msgstr "ユーザーの切り替え"
#: ../js/ui/status/system.js:353
#: ../js/ui/status/system.js:348
msgid "Log Out"
msgstr "ログアウト"
#: ../js/ui/status/system.js:358
#: ../js/ui/status/system.js:353
msgid "Account Settings"
msgstr "アカウント設定"
#: ../js/ui/status/system.js:375
#: ../js/ui/status/system.js:370
msgid "Orientation Lock"
msgstr "画面方向ロック"
#: ../js/ui/status/system.js:383
#: ../js/ui/status/system.js:378
msgid "Suspend"
msgstr "サスペンド"
#: ../js/ui/status/system.js:386
#: ../js/ui/status/system.js:381
msgid "Power Off"
msgstr "電源オフ"
@ -1628,11 +1554,11 @@ msgstr "画面上でタイトルバーを移動する"
#: ../js/ui/windowMenu.js:70
msgid "Always on Top"
msgstr "最前面に維持する"
msgstr "最前面に配置する"
#: ../js/ui/windowMenu.js:89
msgid "Always on Visible Workspace"
msgstr "すべてのワークスペースに表示する"
msgstr "すべてのワークスペースに配置する"
#: ../js/ui/windowMenu.js:105
msgid "Move to Workspace Left"
@ -1672,7 +1598,7 @@ msgstr "Evolution カレンダー"
#. translators:
#. * The number of sound outputs on a particular device
#: ../src/gvc/gvc-mixer-control.c:1873
#: ../src/gvc/gvc-mixer-control.c:1835
#, c-format
msgid "%u Output"
msgid_plural "%u Outputs"
@ -1680,13 +1606,13 @@ msgstr[0] "出力数: %u"
#. translators:
#. * The number of sound inputs on a particular device
#: ../src/gvc/gvc-mixer-control.c:1883
#: ../src/gvc/gvc-mixer-control.c:1845
#, c-format
msgid "%u Input"
msgid_plural "%u Inputs"
msgstr[0] "入力数: %u"
#: ../src/gvc/gvc-mixer-control.c:2738
#: ../src/gvc/gvc-mixer-control.c:2371
msgid "System Sounds"
msgstr "システムのサウンド"

831
po/kk.po

File diff suppressed because it is too large Load Diff

816
po/ko.po

File diff suppressed because it is too large Load Diff

View File

@ -14,7 +14,7 @@ msgstr ""
"PO-Revision-Date: 2012-09-24 14:29+0600\n"
"Last-Translator: Timur Zhamakeev <ztimur@gmail.com>\n"
"Language-Team: Kirghiz <gnome-i18n@gnome.org>\n"
"Language: ky\n"
"Language: ky_KG\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"

829
po/lt.po

File diff suppressed because it is too large Load Diff

805
po/lv.po

File diff suppressed because it is too large Load Diff

View File

@ -11,7 +11,6 @@ msgstr ""
"PO-Revision-Date: 2011-12-08 22:37+0100\n"
"Last-Translator: Jovan N\n"
"Language-Team: mk_MK <jovan@lugola.net>\n"
"Language: mk\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"

View File

@ -11,7 +11,7 @@ msgstr ""
"PO-Revision-Date: 2014-09-15 19:21+0730\n"
"Last-Translator: Umarzuki Mochlis Moktar <umar@umarzuki.org>\n"
"Language-Team: GNOME Malay Team <gnome-ms@googlegroups.com>\n"
"Language: ms\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"

159
po/nb.po
View File

@ -9,11 +9,11 @@ msgid ""
msgstr ""
"Project-Id-Version: gnome-shell 3.19.x\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-05-01 14:12+0200\n"
"PO-Revision-Date: 2016-05-01 14:21+0200\n"
"POT-Creation-Date: 2016-01-07 22:59+0100\n"
"PO-Revision-Date: 2016-01-07 22:59+0100\n"
"Last-Translator: Kjartan Maraas <kmaraas@gnome.org>\n"
"Language-Team: Norwegian bokmål <i18n-nb@lister.ping.uio.no>\n"
"Language: nb\n"
"Language: Norwegian bokmål\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@ -305,34 +305,33 @@ msgstr "Utsett fokusendringer i musmodus til peker slutter å bevege seg"
msgid "Network Login"
msgstr "Nettverkspålogging"
#: ../js/extensionPrefs/main.js:117
#: ../js/extensionPrefs/main.js:122
#, javascript-format
msgid "There was an error loading the preferences dialog for %s:"
msgstr "Det oppsto en feil ved lasting av brukervalgdialog for %s:"
#: ../js/extensionPrefs/main.js:149
#: ../js/extensionPrefs/main.js:154
msgid "GNOME Shell Extensions"
msgstr "Utvidelser for GNOME Shell"
#: ../js/gdm/authPrompt.js:147 ../js/ui/audioDeviceSelection.js:71
#: ../js/ui/components/networkAgent.js:145
#: ../js/gdm/authPrompt.js:147 ../js/ui/components/networkAgent.js:145
#: ../js/ui/components/polkitAgent.js:179 ../js/ui/endSessionDialog.js:452
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
#: ../js/ui/status/network.js:916
msgid "Cancel"
msgstr "Avbryt"
#: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:216
#: ../js/gdm/authPrompt.js:448
#: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:215
#: ../js/gdm/authPrompt.js:447
msgid "Next"
msgstr "Neste"
#: ../js/gdm/authPrompt.js:212 ../js/ui/shellMountOperation.js:403
#: ../js/gdm/authPrompt.js:211 ../js/ui/shellMountOperation.js:403
#: ../js/ui/unlockDialog.js:59
msgid "Unlock"
msgstr "Lås opp"
#: ../js/gdm/authPrompt.js:214
#: ../js/gdm/authPrompt.js:213
msgctxt "button"
msgid "Sign In"
msgstr "Logg inn"
@ -499,36 +498,16 @@ msgstr "Legg til i favoritter"
msgid "Show Details"
msgstr "Vis detaljer"
#: ../js/ui/appFavorites.js:134
#: ../js/ui/appFavorites.js:133
#, javascript-format
msgid "%s has been added to your favorites."
msgstr "%s ble lagt til i favoritter."
#: ../js/ui/appFavorites.js:168
#: ../js/ui/appFavorites.js:167
#, javascript-format
msgid "%s has been removed from your favorites."
msgstr "%s ble fjernet fra favoritter."
#: ../js/ui/audioDeviceSelection.js:59
msgid "Select Audio Device"
msgstr "Velg lydenhet"
#: ../js/ui/audioDeviceSelection.js:69
msgid "Sound Settings"
msgstr "Innstillinger for lyd"
#: ../js/ui/audioDeviceSelection.js:78
msgid "Headphones"
msgstr "Hodetelefoner"
#: ../js/ui/audioDeviceSelection.js:80
msgid "Headset"
msgstr "Headset"
#: ../js/ui/audioDeviceSelection.js:82 ../js/ui/status/volume.js:213
msgid "Microphone"
msgstr "Mikrofon"
#: ../js/ui/backgroundMenu.js:19
msgid "Change Background…"
msgstr "Bytt bakgrunn …"
@ -537,12 +516,12 @@ msgstr "Bytt bakgrunn …"
msgid "Display Settings"
msgstr "Innstillinger for skjerm"
#: ../js/ui/backgroundMenu.js:22 ../js/ui/status/system.js:371
#: ../js/ui/backgroundMenu.js:22 ../js/ui/status/system.js:366
msgid "Settings"
msgstr "Innstillinger"
#. Translators: Enter 0-6 (Sunday-Saturday) for non-work days. Examples: "0" (Sunday) "6" (Saturday) "06" (Sunday and Saturday).
#: ../js/ui/calendar.js:47
#: ../js/ui/calendar.js:55
msgctxt "calendar-no-work"
msgid "06"
msgstr "06"
@ -552,96 +531,100 @@ msgstr "06"
#. * NOTE: These grid abbreviations are always shown together
#. * and in order, e.g. "S M T W T F S".
#.
#: ../js/ui/calendar.js:76
#: ../js/ui/calendar.js:84
msgctxt "grid sunday"
msgid "S"
msgstr "S"
#. Translators: Calendar grid abbreviation for Monday
#: ../js/ui/calendar.js:78
#: ../js/ui/calendar.js:86
msgctxt "grid monday"
msgid "M"
msgstr "M"
#. Translators: Calendar grid abbreviation for Tuesday
#: ../js/ui/calendar.js:80
#: ../js/ui/calendar.js:88
msgctxt "grid tuesday"
msgid "T"
msgstr "T"
#. Translators: Calendar grid abbreviation for Wednesday
#: ../js/ui/calendar.js:82
#: ../js/ui/calendar.js:90
msgctxt "grid wednesday"
msgid "W"
msgstr "O"
#. Translators: Calendar grid abbreviation for Thursday
#: ../js/ui/calendar.js:84
#: ../js/ui/calendar.js:92
msgctxt "grid thursday"
msgid "T"
msgstr "T"
#. Translators: Calendar grid abbreviation for Friday
#: ../js/ui/calendar.js:86
#: ../js/ui/calendar.js:94
msgctxt "grid friday"
msgid "F"
msgstr "F"
#. Translators: Calendar grid abbreviation for Saturday
#: ../js/ui/calendar.js:88
#: ../js/ui/calendar.js:96
msgctxt "grid saturday"
msgid "S"
msgstr "L"
#: ../js/ui/calendar.js:416
#: ../js/ui/calendar.js:566
msgid "Previous month"
msgstr "Forrige måned"
#: ../js/ui/calendar.js:426
#: ../js/ui/calendar.js:576
msgid "Next month"
msgstr "Neste måned"
#: ../js/ui/calendar.js:579
#: ../js/ui/calendar.js:729
#, no-javascript-format
msgctxt "date day number format"
msgid "%d"
msgstr "%d"
#: ../js/ui/calendar.js:634
#: ../js/ui/calendar.js:784
msgid "Week %V"
msgstr "Uke %V"
#. Translators: Shown in calendar event list for all day events
#. * Keep it short, best if you can use less then 10 characters
#.
#: ../js/ui/calendar.js:695
#: ../js/ui/calendar.js:1189
msgctxt "event list time"
msgid "All Day"
msgstr "Hele dagen"
#: ../js/ui/calendar.js:821
#: ../js/ui/calendar.js:1296
msgid "Clear section"
msgstr "Tøm seksjon"
#: ../js/ui/calendar.js:1523
msgid "Events"
msgstr "Hendelser"
#: ../js/ui/calendar.js:830
#: ../js/ui/calendar.js:1532
msgctxt "calendar heading"
msgid "%A, %B %d"
msgstr "%A %B %d"
#: ../js/ui/calendar.js:834
#: ../js/ui/calendar.js:1536
msgctxt "calendar heading"
msgid "%A, %B %d, %Y"
msgstr "%A %B %d, %Y"
#: ../js/ui/calendar.js:919
#: ../js/ui/calendar.js:1621
msgid "Notifications"
msgstr "Varslinger"
#: ../js/ui/calendar.js:1070
#: ../js/ui/calendar.js:1772
msgid "No Notifications"
msgstr "Ingen varslinger"
#: ../js/ui/calendar.js:1073
#: ../js/ui/calendar.js:1775
msgid "No Events"
msgstr "Ingen hendelser"
@ -779,7 +762,7 @@ msgstr "Beklager, det virket ikke. Prøv igjen."
#. Translators: this is the other person changing their old IM name to their new
#. IM name.
#: ../js/ui/components/telepathyClient.js:760
#: ../js/ui/components/telepathyClient.js:759
#, javascript-format
msgid "%s is now known as %s"
msgstr "%s er nå kjent som %s"
@ -966,11 +949,11 @@ msgid "Keyboard"
msgstr "Tastatur"
#. translators: 'Hide' is a verb
#: ../js/ui/legacyTray.js:65
#: ../js/ui/legacyTray.js:66
msgid "Hide tray"
msgstr "Skjul statusområde"
#: ../js/ui/legacyTray.js:106
#: ../js/ui/legacyTray.js:107
msgid "Status Icons"
msgstr "Statusikoner"
@ -1022,26 +1005,10 @@ msgstr "Vis kildekode"
msgid "Web Page"
msgstr "Nettside"
#: ../js/ui/messageList.js:543
msgid "Clear section"
msgstr "Tøm seksjon"
#: ../js/ui/messageTray.js:1486
msgid "System Information"
msgstr "Systeminformasjon"
#: ../js/ui/mpris.js:194
msgid "Unknown artist"
msgstr "Ukjent artist"
#: ../js/ui/mpris.js:195
msgid "Unknown title"
msgstr "Ukjent tittel"
#: ../js/ui/mpris.js:217
msgid "Media"
msgstr "Media"
#: ../js/ui/overview.js:84
msgid "Undo"
msgstr "Angre"
@ -1118,7 +1085,7 @@ msgid_plural "%d new notifications"
msgstr[0] "%d ny varsling"
msgstr[1] "%d nye varslinger"
#: ../js/ui/screenShield.js:432 ../js/ui/status/system.js:379
#: ../js/ui/screenShield.js:432 ../js/ui/status/system.js:374
msgid "Lock"
msgstr "Lås"
@ -1260,48 +1227,30 @@ msgstr "Lysstyrke"
msgid "Show Keyboard Layout"
msgstr "Vis tastaturutforming"
#: ../js/ui/status/location.js:107 ../js/ui/status/location.js:215
#: ../js/ui/status/location.js:71 ../js/ui/status/location.js:177
msgid "Location Enabled"
msgstr "Plassering slått på"
#: ../js/ui/status/location.js:108 ../js/ui/status/location.js:216
#: ../js/ui/status/location.js:72 ../js/ui/status/location.js:178
msgid "Disable"
msgstr "Slå av"
#: ../js/ui/status/location.js:109
#: ../js/ui/status/location.js:73
msgid "Privacy Settings"
msgstr "Innstillinger for personvern"
#: ../js/ui/status/location.js:214
#: ../js/ui/status/location.js:176
msgid "Location In Use"
msgstr "Plassering i bruk"
#: ../js/ui/status/location.js:218
#: ../js/ui/status/location.js:180
msgid "Location Disabled"
msgstr "Plassering slått av"
#: ../js/ui/status/location.js:219
#: ../js/ui/status/location.js:181
msgid "Enable"
msgstr "Slå på"
#: ../js/ui/status/location.js:426
msgid "Deny Access"
msgstr "Nekt tilgang"
#: ../js/ui/status/location.js:429
msgid "Grant Access"
msgstr "Gi tilgang"
#. Translators: %s is an application name
#: ../js/ui/status/location.js:435
#, javascript-format
msgid "Give %s access to your location?"
msgstr "Gi %s tilgang til din plassering?"
#: ../js/ui/status/location.js:437
msgid "Location access can be changed at any time from the privacy settings."
msgstr "Tilgang til plassering kan endres når som helst fra innstillinger for personvern."
#: ../js/ui/status/network.js:101
msgid "<unknown>"
msgstr "<ukjent>"
@ -1524,27 +1473,27 @@ msgstr "%d %%"
msgid "Airplane Mode On"
msgstr "Flymodus er slått på"
#: ../js/ui/status/system.js:348
#: ../js/ui/status/system.js:343
msgid "Switch User"
msgstr "Bytt bruker"
#: ../js/ui/status/system.js:353
#: ../js/ui/status/system.js:348
msgid "Log Out"
msgstr "Logg ut"
#: ../js/ui/status/system.js:358
#: ../js/ui/status/system.js:353
msgid "Account Settings"
msgstr "Innstillinger for konto"
#: ../js/ui/status/system.js:375
#: ../js/ui/status/system.js:370
msgid "Orientation Lock"
msgstr "Lås for orientering"
#: ../js/ui/status/system.js:383
#: ../js/ui/status/system.js:378
msgid "Suspend"
msgstr "Hvilemodus"
#: ../js/ui/status/system.js:386
#: ../js/ui/status/system.js:381
msgid "Power Off"
msgstr "Slå av"
@ -1556,6 +1505,10 @@ msgstr "Volum endret"
msgid "Volume"
msgstr "Volum"
#: ../js/ui/status/volume.js:213
msgid "Microphone"
msgstr "Mikrofon"
#: ../js/ui/unlockDialog.js:67
msgid "Log in as another user"
msgstr "Logg inn som en annen bruker"

808
po/nl.po

File diff suppressed because it is too large Load Diff

374
po/oc.po

File diff suppressed because it is too large Load Diff

904
po/pa.po

File diff suppressed because it is too large Load Diff

892
po/pl.po

File diff suppressed because it is too large Load Diff

876
po/pt.po

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

799
po/ru.po

File diff suppressed because it is too large Load Diff

841
po/sk.po

File diff suppressed because it is too large Load Diff

827
po/sl.po

File diff suppressed because it is too large Load Diff

836
po/sr.po

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

827
po/sv.po

File diff suppressed because it is too large Load Diff

837
po/tr.po

File diff suppressed because it is too large Load Diff

View File

@ -15,7 +15,7 @@ msgstr ""
"PO-Revision-Date: 2013-03-07 21:01+0900\n"
"Last-Translator: Gheyret Kenji <gheyret@gmail.com>\n"
"Language-Team: Uyghur Computer Science Association <UKIJ@yahoogroups.com>\n"
"Language: ug\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"

805
po/uk.po

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

831
po/vi.po

File diff suppressed because it is too large Load Diff

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