Compare commits

...

23 Commits

Author SHA1 Message Date
Ray Strode
82c72f377a dnd: don't try to access destroyed dragActor
The dragComplete handler incorrectly checks
this._actorDestroyed to see if the drag actor
is destroyed.  The drag actor may not be the same
as the main actor.

The end result is an exception in drop handling,
leading to a shell lockup.

This commit changes the code to always set
this._dragActor to undefined when it's destroyed,
and check for that condition instead of
this._actorDestroyed in the dragComplete handler.

Closes https://gitlab.gnome.org/GNOME/gnome-shell/issues/577
2018-09-19 12:52:39 -04:00
Florian Müllner
c2e9e68df7 Bump version to 3.30.0
Update NEWS.
2018-09-04 00:08:01 +02:00
Ask Hjorth Larsen
bdbf804e69 Updated Danish translation 2018-09-02 22:31:00 +02:00
gogo
9718175f4d Update Croatian translation 2018-09-02 16:11:23 +00:00
Anders Jonsson
0ba346b750 Update Swedish translation 2018-09-01 21:55:35 +00:00
Harry Mallon
614c4480e2 Fix README link 2018-09-01 15:01:46 +01:00
Jiri Grönroos
f21f612ef7 Update Finnish translation 2018-08-31 22:14:39 +00:00
Rūdolfs Mazurs
935de3e80f Update Latvian translation 2018-08-31 17:28:23 +00:00
Balázs Meskó
0f541f60e8 Update Hungarian translation 2018-08-31 13:33:08 +00:00
Trần Ngọc Quân
902c99c757 Updated Vietnamese translation
Signed-off-by: Trần Ngọc Quân <vnwildman@gmail.com>
2018-08-31 14:35:16 +07:00
Marco Trevisan (Treviño)
f7029674b0 js, oVirt: Fix ES6 template string alignment
Fix wrong replacement of commit dbf993300a
to be style-contistent with other definitions
2018-08-30 04:49:17 +02:00
Fran Dieguez
dd7ccda168 Update Galician translation 2018-08-29 21:59:01 +00:00
Florian Müllner
e207b45317 Bump version to 3.29.92
Update NEWS.
2018-08-29 18:54:14 +02:00
Marek Cernocky
6b5117677d Updated Czech translation 2018-08-29 07:18:37 +02:00
Jonas Ådahl
900398406c panel: Keep prefs in sync with shell-shows-app-menu state
Previously mutter listened to Xsettings (via GTK) to get notified
whether the shell showed the app menu. After X11 support was changed in
the direction of being less central, listening to this particular
Xsettings were removed with the intention of having the Shell tell
mutter directly whether it was showing the menu or not.

This commit makes that happen. It still travels through Xsettings (still
via Gtk), as the shell still gets that state from Xsettings, but fixing
this is out of scope for this particular fix.

Closes: https://gitlab.gnome.org/GNOME/mutter/issues/276
2018-08-28 23:53:10 +00:00
Mohammed Sadiq
461d2b1945 osk: Add Malayalam layout
The layout is based on inscript layout.

Copyright 2018 ICFOSS (info@icfoss.in)

Fixes #441
2018-08-28 20:52:27 +02:00
Takao Fujiwara
6c2f11e8a4 inputMethod: Fix to hide preedit text
ibus_engine_update_preedit_text() should hide the pre-edit text
when visible == false.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/431
2018-08-28 20:24:35 +02:00
Marco Trevisan (Treviño)
dbf993300a js: use ES6 template strings for dbus interfaces
Use multiline template strings for dbus interfaces as they're easier to maintain
2018-08-27 19:23:00 +02:00
Daniel van Vugt
f77b3da74f js/ui: Choose some actors to cache on the GPU
Flag some actors that are good candidates for caching in texture memory
(what Clutter calls "offscreen redirect"), thereby mostly eliminating
their repaint overhead.

This isn't exactly groundbreaking, it's how you're meant to use
OpenGL in the first place. But the difficulty is in the design of
Clutter which has some peculiarities making universal caching
inefficient at the moment:

 * Repainting an offscreen actor is measurably slower than repainting
   the same actor if it was uncached. But only by less than 100%,
   so if an actor can avoid changing every frame then caching is usually
   more efficient over that timeframe.

 * The cached painting from a container typically includes its children,
   so you can't cache containers whose children are usually animating at
   full frame rate. That results in a performance loss.
     This could be remedied in future by Clutter explicitly separating a
   container's background painting from its child painting and always
   caching the background (as StWidget tries to in some cases already).

So this commit selects just a few areas where caching has been verified
to be beneficial, and many use cases now see their CPU usage halved:

One small window active...... 10% -> 7% (-30%)
...under a panel menu........ 23% -> 9% (-61%)
One maximized window active.. 12% -> 9% (-25%)
...under a panel menu........ 23% -> 11% (-52%)
...under a shell dialog...... 22% -> 12% (-45%)
...in activities overview.... 32% -> 17% (-47%)
(on an i7-7700)

Also a couple of bugs are fixed by this:

https://bugzilla.gnome.org/show_bug.cgi?id=792634
https://bugzilla.gnome.org/show_bug.cgi?id=792633
2018-08-27 14:16:59 +00:00
Changwoo Ryu
bc6a38dda7 Update Korean translation 2018-08-27 14:11:52 +00:00
Milo Casagrande
f3a02057c1 Update Italian translation 2018-08-27 07:55:20 +00:00
Kukuh Syafaat
ad15ce9139 Update Indonesian translation 2018-08-26 13:49:05 +00:00
Baurzhan Muftakhidinov
5d178506bf Update Kazakh translation 2018-08-25 17:27:53 +00:00
61 changed files with 6226 additions and 6456 deletions

25
NEWS
View File

@@ -1,3 +1,28 @@
3.30.0
======
Contributors:
Harry Mallon, Marco Trevisan (Treviño)
Translators:
Fran Dieguez [gl], Trần Ngọc Quân [vi], Balázs Meskó [hu],
Rūdolfs Mazurs [lv], Jiri Grönroos [fi], Anders Jonsson [sv], gogo [hr],
Ask Hjorth Larsen [da]
3.29.92
=======
* Choose some actors to cache on the GPU [Daniel; #792633]
* inputMethod: Hide preedit text if requested [Takao; #431]
* Fix forced fallback app-menus on wayland [Jonas; #276]
Contributors:
Jonas Ådahl, Takao Fujiwara, Mohammed Sadiq, Marco Trevisan (Treviño),
Daniel van Vugt
Translators:
Baurzhan Muftakhidinov [kk], Kukuh Syafaat [id], Milo Casagrande [it],
Changwoo Ryu [ko], Marek Cernocky [cs]
3.29.91
=======
* Fix handling of 0/false options in ShowOSD D-Bus API [Florian; #791669]

View File

@@ -7,7 +7,7 @@ easy to use experience.
For more information about GNOME Shell, including instructions on how
to build GNOME Shell from source and how to get involved with the project,
see the [project wiki][wiki]
see the [project wiki][project-wiki].
Bugs should be reported to the GNOME [bug tracking system][bug-tracker].

View File

@@ -22,6 +22,7 @@
<file>id.json</file>
<file>il.json</file>
<file>in+bolnagri.json</file>
<file>in+mal.json</file>
<file>ir.json</file>
<file>is.json</file>
<file>it.json</file>

View File

@@ -0,0 +1,559 @@
{
"levels": [
{
"level": "",
"mode": "default",
"rows": [
[
[
"െ"
],
[
"ൌ"
],
[
"ൈ"
],
[
"ാ"
],
[
"ീ"
],
[
"ൂ"
],
[
"ബ"
],
[
"ഹ"
],
[
"ഗ"
],
[
"ദ"
],
[
"ജ"
],
[
"ഡ"
],
[
""
]
],
[
[
"ോ"
],
[
"േ"
],
[
"്"
],
[
"ി"
],
[
"ു"
],
[
"പ"
],
[
"ര"
],
[
"ക"
],
[
"ത"
],
[
"ച"
],
[
"ട"
]
],
[
[
"െ"
],
[
""
],
[
"മ",
"ç"
],
[
"ന"
],
[
"വ"
],
[
"ല",
"ñ"
],
[
"സ"
],
[
"ഷ"
],
[
"യ"
]
],
[
[
","
],
[
" "
],
[
".",
"#",
"!",
",",
"?",
"-",
":",
"'",
"@"
]
]
]
},
{
"level": "shift",
"mode": "latched",
"rows": [
[
[
"ഔ"
],
[
"ഐ"
],
[
"ആ"
],
[
"ഈ"
],
[
"ഊ"
],
[
"ഭ"
],
[
"ങ"
],
[
"ഘ"
],
[
"ധ"
],
[
"ഝ"
],
[
"ഢ"
],
[
"ഞ"
]
],
[
[
"ഓ"
],
[
"ഏ"
],
[
"അ"
],
[
"ഇ"
],
[
"ഉ"
],
[
"ഫ"
],
[
"റ"
],
[
"ഖ"
],
[
"ഥ"
],
[
"ഛ"
],
[
""
]
],
[
[
"എ"
],
[
""
],
[
"ണ"
],
[
"ന"
],
[
"ഴ"
],
[
"ള"
],
[
"ശ"
],
[
"ഷ"
],
[
"യ"
]
],
[
[
","
],
[
" "
],
[
".",
"#",
"!",
",",
"?",
"-",
":",
"'",
"@"
]
]
]
},
{
"level": "opt",
"mode": "locked",
"rows": [
[
[
"൧",
"1",
"¹",
"½",
"⅓",
"¼",
"⅛"
],
[
"൨",
"2",
"²",
"⅔"
],
[
"൩",
"3",
"³",
"¾",
"⅜"
],
[
"൪",
"4",
"⁴"
],
[
"൫",
"5",
"⅝"
],
[
"൬",
"6"
],
[
"",
"7",
"⅞"
],
[
"൮",
"8"
],
[
"൯",
"9"
],
[
"",
"0",
"ⁿ",
"∅"
]
],
[
[
"@"
],
[
"#"
],
[
"₹",
"$",
"¢",
"£",
"€",
"¥",
"₱"
],
[
"%",
"‰"
],
[
"&"
],
[
"-",
"_",
"",
"—",
"·"
],
[
"+",
"±"
],
[
"(",
"<",
"{",
"["
],
[
")",
">",
"}",
"]"
]
],
[
[
"*",
"†",
"‡",
"★"
],
[
"\"",
"“",
"”",
"«",
"»"
],
[
"'",
"",
"",
"",
""
],
[
":"
],
[
";"
],
[
"!",
"¡"
],
[
"?",
"¿"
]
],
[
[
"_"
],
[
"/"
],
[
" "
],
[
","
],
[
".",
"…"
]
]
]
},
{
"level": "opt+shift",
"mode": "locked",
"rows": [
[
[
"~"
],
[
"`"
],
[
"|"
],
[
"•",
"♪",
"♥",
"♠",
"♦",
"♣"
],
[
"√"
],
[
"Π",
"π"
],
[
"÷"
],
[
"×"
],
[
"¶",
"§"
],
[
"∆"
]
],
[
[
"£"
],
[
"¢"
],
[
"€"
],
[
"¥"
],
[
"^",
"↑",
"↓",
"←",
"→"
],
[
"°",
"",
"″"
],
[
"=",
"≠",
"≈",
"∞"
],
[
"{"
],
[
"}"
]
],
[
[
"\\"
],
[
"©"
],
[
"®"
],
[
"™"
],
[
"℅"
],
[
"["
],
[
"]"
]
],
[
[
"<",
"",
"≤",
"«"
],
[
">",
"",
"≥",
"»"
],
[
" "
],
[
","
],
[
".",
"…"
]
]
]
}
],
"locale": "ml",
"name": "Malayalam"
}

View File

@@ -14,15 +14,16 @@ const _ = Gettext.gettext;
const Config = imports.misc.config;
const ExtensionUtils = imports.misc.extensionUtils;
const GnomeShellIface = '<node> \
<interface name="org.gnome.Shell.Extensions"> \
<signal name="ExtensionStatusChanged"> \
<arg type="s" name="uuid"/> \
<arg type="i" name="state"/> \
<arg type="s" name="error"/> \
</signal> \
</interface> \
</node>';
const GnomeShellIface = `
<node>
<interface name="org.gnome.Shell.Extensions">
<signal name="ExtensionStatusChanged">
<arg type="s" name="uuid"/>
<arg type="i" name="state"/>
<arg type="s" name="error"/>
</signal>
</interface>
</node>`;
const GnomeShellProxy = Gio.DBusProxy.makeProxyWrapper(GnomeShellIface);

View File

@@ -5,13 +5,14 @@ const Lang = imports.lang;
const Shell = imports.gi.Shell;
const Signals = imports.signals;
const FprintManagerIface = '<node> \
<interface name="net.reactivated.Fprint.Manager"> \
<method name="GetDefaultDevice"> \
<arg type="o" direction="out" /> \
</method> \
</interface> \
</node>';
const FprintManagerIface = `
<node>
<interface name="net.reactivated.Fprint.Manager">
<method name="GetDefaultDevice">
<arg type="o" direction="out" />
</method>
</interface>
</node>`;
const FprintManagerInfo = Gio.DBusInterfaceInfo.new_for_xml(FprintManagerIface);

View File

@@ -4,13 +4,14 @@ const Gio = imports.gi.Gio;
const Lang = imports.lang;
const Signals = imports.signals;
const OVirtCredentialsIface = '<node> \
<interface name="org.ovirt.vdsm.Credentials"> \
<signal name="UserAuthenticated"> \
<arg type="s" name="token"/> \
</signal> \
</interface> \
</node>';
const OVirtCredentialsIface = `
<node>
<interface name="org.ovirt.vdsm.Credentials">
<signal name="UserAuthenticated">
<arg type="s" name="token"/>
</signal>
</interface>
</node>`;
const OVirtCredentialsInfo = Gio.DBusInterfaceInfo.new_for_xml(OVirtCredentialsIface);

View File

@@ -5,58 +5,61 @@ const Lang = imports.lang;
const Shell = imports.gi.Shell;
const Signals = imports.signals;
const ProviderIface = '<node> \
<interface name="org.freedesktop.realmd.Provider"> \
<property name="Name" type="s" access="read"/> \
<property name="Version" type="s" access="read"/> \
<property name="Realms" type="ao" access="read"/> \
<method name="Discover"> \
<arg name="string" type="s" direction="in"/> \
<arg name="options" type="a{sv}" direction="in"/> \
<arg name="relevance" type="i" direction="out"/> \
<arg name="realm" type="ao" direction="out"/> \
</method> \
</interface> \
</node>';
const ProviderIface = `
<node>
<interface name="org.freedesktop.realmd.Provider">
<property name="Name" type="s" access="read"/>
<property name="Version" type="s" access="read"/>
<property name="Realms" type="ao" access="read"/>
<method name="Discover">
<arg name="string" type="s" direction="in"/>
<arg name="options" type="a{sv}" direction="in"/>
<arg name="relevance" type="i" direction="out"/>
<arg name="realm" type="ao" direction="out"/>
</method>
</interface>
</node>`;
const Provider = Gio.DBusProxy.makeProxyWrapper(ProviderIface);
const ServiceIface = '<node> \
<interface name="org.freedesktop.realmd.Service"> \
<method name="Cancel"> \
<arg name="operation" type="s" direction="in"/> \
</method> \
<method name="Release" /> \
<method name="SetLocale"> \
<arg name="locale" type="s" direction="in"/> \
</method> \
<signal name="Diagnostics"> \
<arg name="data" type="s"/> \
<arg name="operation" type="s"/> \
</signal> \
</interface> \
</node>';
const ServiceIface = `
<node>
<interface name="org.freedesktop.realmd.Service">
<method name="Cancel">
<arg name="operation" type="s" direction="in"/>
</method>
<method name="Release" />
<method name="SetLocale">
<arg name="locale" type="s" direction="in"/>
</method>
<signal name="Diagnostics">
<arg name="data" type="s"/>
<arg name="operation" type="s"/>
</signal>
</interface>
</node>`;
const Service = Gio.DBusProxy.makeProxyWrapper(ServiceIface);
const RealmIface = '<node> \
<interface name="org.freedesktop.realmd.Realm"> \
<property name="Name" type="s" access="read"/> \
<property name="Configured" type="s" access="read"/> \
<property name="Details" type="a(ss)" access="read"/> \
<property name="LoginFormats" type="as" access="read"/> \
<property name="LoginPolicy" type="s" access="read"/> \
<property name="PermittedLogins" type="as" access="read"/> \
<property name="SupportedInterfaces" type="as" access="read"/> \
<method name="ChangeLoginPolicy"> \
<arg name="login_policy" type="s" direction="in"/> \
<arg name="permitted_add" type="as" direction="in"/> \
<arg name="permitted_remove" type="as" direction="in"/> \
<arg name="options" type="a{sv}" direction="in"/> \
</method> \
<method name="Deconfigure"> \
<arg name="options" type="a{sv}" direction="in"/> \
</method> \
</interface> \
</node>';
const RealmIface = `
<node>
<interface name="org.freedesktop.realmd.Realm">
<property name="Name" type="s" access="read"/>
<property name="Configured" type="s" access="read"/>
<property name="Details" type="a(ss)" access="read"/>
<property name="LoginFormats" type="as" access="read"/>
<property name="LoginPolicy" type="s" access="read"/>
<property name="PermittedLogins" type="as" access="read"/>
<property name="SupportedInterfaces" type="as" access="read"/>
<method name="ChangeLoginPolicy">
<arg name="login_policy" type="s" direction="in"/>
<arg name="permitted_add" type="as" direction="in"/>
<arg name="permitted_remove" type="as" direction="in"/>
<arg name="options" type="a{sv}" direction="in"/>
</method>
<method name="Deconfigure">
<arg name="options" type="a{sv}" direction="in"/>
</method>
</interface>
</node>`;
const Realm = Gio.DBusProxy.makeProxyWrapper(RealmIface);
var Manager = new Lang.Class({

View File

@@ -4,17 +4,18 @@ const Gio = imports.gi.Gio;
const Lang = imports.lang;
const Signals = imports.signals;
const PresenceIface = '<node> \
<interface name="org.gnome.SessionManager.Presence"> \
<method name="SetStatus"> \
<arg type="u" direction="in"/> \
</method> \
<property name="status" type="u" access="readwrite"/> \
<signal name="StatusChanged"> \
<arg type="u" direction="out"/> \
</signal> \
</interface> \
</node>';
const PresenceIface = `
<node>
<interface name="org.gnome.SessionManager.Presence">
<method name="SetStatus">
<arg type="u" direction="in"/>
</method>
<property name="status" type="u" access="readwrite"/>
<signal name="StatusChanged">
<arg type="u" direction="out"/>
</signal>
</interface>
</node>`;
var PresenceStatus = {
AVAILABLE: 0,
@@ -32,16 +33,17 @@ function Presence(initCallback, cancellable) {
// Note inhibitors are immutable objects, so they don't
// change at runtime (changes always come in the form
// of new inhibitors)
const InhibitorIface = '<node> \
<interface name="org.gnome.SessionManager.Inhibitor"> \
<method name="GetAppId"> \
<arg type="s" direction="out" /> \
</method> \
<method name="GetReason"> \
<arg type="s" direction="out" /> \
</method> \
</interface> \
</node>';
const InhibitorIface = `
<node>
<interface name="org.gnome.SessionManager.Inhibitor">
<method name="GetAppId">
<arg type="s" direction="out" />
</method>
<method name="GetReason">
<arg type="s" direction="out" />
</method>
</interface>
</node>`;
var InhibitorProxy = Gio.DBusProxy.makeProxyWrapper(InhibitorIface);
function Inhibitor(objectPath, initCallback, cancellable) {
@@ -49,29 +51,30 @@ function Inhibitor(objectPath, initCallback, cancellable) {
}
// Not the full interface, only the methods we use
const SessionManagerIface = '<node> \
<interface name="org.gnome.SessionManager"> \
<method name="Logout"> \
<arg type="u" direction="in" /> \
</method> \
<method name="Shutdown" /> \
<method name="Reboot" /> \
<method name="CanShutdown"> \
<arg type="b" direction="out" /> \
</method> \
<method name="IsInhibited"> \
<arg type="u" direction="in" /> \
<arg type="b" direction="out" /> \
</method> \
<property name="SessionIsActive" type="b" access="read"/> \
<signal name="InhibitorAdded"> \
<arg type="o" direction="out"/> \
</signal> \
<signal name="InhibitorRemoved"> \
<arg type="o" direction="out"/> \
</signal> \
</interface> \
</node>';
const SessionManagerIface = `
<node>
<interface name="org.gnome.SessionManager">
<method name="Logout">
<arg type="u" direction="in" />
</method>
<method name="Shutdown" />
<method name="Reboot" />
<method name="CanShutdown">
<arg type="b" direction="out" />
</method>
<method name="IsInhibited">
<arg type="u" direction="in" />
<arg type="b" direction="out" />
</method>
<property name="SessionIsActive" type="b" access="read"/>
<signal name="InhibitorAdded">
<arg type="o" direction="out"/>
</signal>
<signal name="InhibitorRemoved">
<arg type="o" direction="out"/>
</signal>
</interface>
</node>`;
var SessionManagerProxy = Gio.DBusProxy.makeProxyWrapper(SessionManagerIface);
function SessionManager(initCallback, cancellable) {

View File

@@ -17,6 +17,8 @@ var InputMethod = new Lang.Class({
this._currentFocus = null;
this._currentEvent = null;
this._doForwardEvent = false;
this._preeditStr = '';
this._preeditPos = 0;
this._ibus = IBus.Bus.new_async();
this._ibus.connect('connected', this._onConnected.bind(this));
this._ibus.connect('disconnected', this._clear.bind(this));
@@ -69,6 +71,8 @@ var InputMethod = new Lang.Class({
this._context.connect('commit-text', this._onCommitText.bind(this));
this._context.connect('delete-surrounding-text', this._onDeleteSurroundingText.bind(this));
this._context.connect('update-preedit-text', this._onUpdatePreeditText.bind(this));
this._context.connect('show-preedit-text', this._onShowPreeditText.bind(this));
this._context.connect('hide-preedit-text', this._onHidePreeditText.bind(this));
this._context.connect('forward-key-event', this._onForwardKeyEvent.bind(this));
this._updateCapabilities();
@@ -79,6 +83,8 @@ var InputMethod = new Lang.Class({
this._hints = 0;
this._purpose = 0;
this._enabled = false;
this._preeditStr = ''
this._preeditPos = 0;
},
_emitRequestSurrounding() {
@@ -95,11 +101,22 @@ var InputMethod = new Lang.Class({
},
_onUpdatePreeditText(context, text, pos, visible) {
let str = null;
if (visible && text != null)
str = text.get_text();
if (text == null)
return;
this._preeditStr = text.get_text();
this._preeditPos = pos;
if (visible)
this.set_preedit_text(this._preeditStr, pos);
else
this.set_preedit_text(null, pos);
},
this.set_preedit_text(str, pos);
_onShowPreeditText(context) {
this.set_preedit_text(this._preeditStr, this._preeditPos);
},
_onHidePreeditText(context) {
this.set_preedit_text(null, this._preeditPos);
},
_onForwardKeyEvent(context, keyval, keycode, state) {

View File

@@ -7,53 +7,56 @@ const Mainloop = imports.mainloop;
const Shell = imports.gi.Shell;
const Signals = imports.signals;
const SystemdLoginManagerIface = '<node> \
<interface name="org.freedesktop.login1.Manager"> \
<method name="Suspend"> \
<arg type="b" direction="in"/> \
</method> \
<method name="CanSuspend"> \
<arg type="s" direction="out"/> \
</method> \
<method name="Inhibit"> \
<arg type="s" direction="in"/> \
<arg type="s" direction="in"/> \
<arg type="s" direction="in"/> \
<arg type="s" direction="in"/> \
<arg type="h" direction="out"/> \
</method> \
<method name="GetSession"> \
<arg type="s" direction="in"/> \
<arg type="o" direction="out"/> \
</method> \
<method name="ListSessions"> \
<arg name="sessions" type="a(susso)" direction="out"/> \
</method> \
<signal name="PrepareForSleep"> \
<arg type="b" direction="out"/> \
</signal> \
</interface> \
</node>';
const SystemdLoginManagerIface = `
<node>
<interface name="org.freedesktop.login1.Manager">
<method name="Suspend">
<arg type="b" direction="in"/>
</method>
<method name="CanSuspend">
<arg type="s" direction="out"/>
</method>
<method name="Inhibit">
<arg type="s" direction="in"/>
<arg type="s" direction="in"/>
<arg type="s" direction="in"/>
<arg type="s" direction="in"/>
<arg type="h" direction="out"/>
</method>
<method name="GetSession">
<arg type="s" direction="in"/>
<arg type="o" direction="out"/>
</method>
<method name="ListSessions">
<arg name="sessions" type="a(susso)" direction="out"/>
</method>
<signal name="PrepareForSleep">
<arg type="b" direction="out"/>
</signal>
</interface>
</node>`;
const SystemdLoginSessionIface = '<node> \
<interface name="org.freedesktop.login1.Session"> \
<signal name="Lock" /> \
<signal name="Unlock" /> \
<property name="Active" type="b" access="read" /> \
<property name="Class" type="s" access="read" /> \
<property name="Id" type="s" access="read" /> \
<method name="SetLockedHint"> \
<arg type="b" direction="in"/> \
</method> \
</interface> \
</node>';
const SystemdLoginSessionIface = `
<node>
<interface name="org.freedesktop.login1.Session">
<signal name="Lock" />
<signal name="Unlock" />
<property name="Active" type="b" access="read" />
<property name="Class" type="s" access="read" />
<property name="Id" type="s" access="read" />
<method name="SetLockedHint">
<arg type="b" direction="in"/>
</method>
</interface>
</node>`;
const SystemdLoginUserIface = '<node> \
<interface name="org.freedesktop.login1.User"> \
<property name="Display" type="(so)" access="read" /> \
<property name="Sessions" type="a(so)" access="read" /> \
</interface> \
</node>';
const SystemdLoginUserIface = `
<node>
<interface name="org.freedesktop.login1.User">
<property name="Display" type="(so)" access="read" />
<property name="Sessions" type="a(so)" access="read" />
</interface>
</node>`;
const SystemdLoginManager = Gio.DBusProxy.makeProxyWrapper(SystemdLoginManagerIface);
const SystemdLoginSession = Gio.DBusProxy.makeProxyWrapper(SystemdLoginSessionIface);

View File

@@ -92,41 +92,43 @@ function _findProviderForSid(sid) {
// The following are not the complete interfaces, just the methods we need
// (or may need in the future)
const ModemGsmNetworkInterface = '<node> \
<interface name="org.freedesktop.ModemManager.Modem.Gsm.Network"> \
<method name="GetRegistrationInfo"> \
<arg type="(uss)" direction="out" /> \
</method> \
<method name="GetSignalQuality"> \
<arg type="u" direction="out" /> \
</method> \
<property name="AccessTechnology" type="u" access="read" /> \
<signal name="SignalQuality"> \
<arg type="u" direction="out" /> \
</signal> \
<signal name="RegistrationInfo"> \
<arg type="u" direction="out" /> \
<arg type="s" direction="out" /> \
<arg type="s" direction="out" /> \
</signal> \
</interface> \
</node>';
const ModemGsmNetworkInterface = `
<node>
<interface name="org.freedesktop.ModemManager.Modem.Gsm.Network">
<method name="GetRegistrationInfo">
<arg type="(uss)" direction="out" />
</method>
<method name="GetSignalQuality">
<arg type="u" direction="out" />
</method>
<property name="AccessTechnology" type="u" access="read" />
<signal name="SignalQuality">
<arg type="u" direction="out" />
</signal>
<signal name="RegistrationInfo">
<arg type="u" direction="out" />
<arg type="s" direction="out" />
<arg type="s" direction="out" />
</signal>
</interface>
</node>`;
const ModemGsmNetworkProxy = Gio.DBusProxy.makeProxyWrapper(ModemGsmNetworkInterface);
const ModemCdmaInterface = '<node> \
<interface name="org.freedesktop.ModemManager.Modem.Cdma"> \
<method name="GetSignalQuality"> \
<arg type="u" direction="out" /> \
</method> \
<method name="GetServingSystem"> \
<arg type="(usu)" direction="out" /> \
</method> \
<signal name="SignalQuality"> \
<arg type="u" direction="out" /> \
</signal> \
</interface> \
</node>';
const ModemCdmaInterface = `
<node>
<interface name="org.freedesktop.ModemManager.Modem.Cdma">
<method name="GetSignalQuality">
<arg type="u" direction="out" />
</method>
<method name="GetServingSystem">
<arg type="(usu)" direction="out" />
</method>
<signal name="SignalQuality">
<arg type="u" direction="out" />
</signal>
</interface>
</node>`;
const ModemCdmaProxy = Gio.DBusProxy.makeProxyWrapper(ModemCdmaInterface);
@@ -222,26 +224,29 @@ Signals.addSignalMethods(ModemCdma.prototype);
// Support for the new ModemManager1 interface (MM >= 0.7)
//------------------------------------------------------------------------------
const BroadbandModemInterface = '<node> \
<interface name="org.freedesktop.ModemManager1.Modem"> \
<property name="SignalQuality" type="(ub)" access="read" /> \
</interface> \
</node>';
const BroadbandModemInterface = `
<node>
<interface name="org.freedesktop.ModemManager1.Modem">
<property name="SignalQuality" type="(ub)" access="read" />
</interface>
</node>`;
const BroadbandModemProxy = Gio.DBusProxy.makeProxyWrapper(BroadbandModemInterface);
const BroadbandModem3gppInterface = '<node> \
<interface name="org.freedesktop.ModemManager1.Modem.Modem3gpp"> \
<property name="OperatorCode" type="s" access="read" /> \
<property name="OperatorName" type="s" access="read" /> \
</interface> \
</node>';
const BroadbandModem3gppInterface = `
<node>
<interface name="org.freedesktop.ModemManager1.Modem.Modem3gpp">
<property name="OperatorCode" type="s" access="read" />
<property name="OperatorName" type="s" access="read" />
</interface>
</node>`;
const BroadbandModem3gppProxy = Gio.DBusProxy.makeProxyWrapper(BroadbandModem3gppInterface);
const BroadbandModemCdmaInterface = '<node> \
<interface name="org.freedesktop.ModemManager1.Modem.ModemCdma"> \
<property name="Sid" type="u" access="read" /> \
</interface> \
</node>';
const BroadbandModemCdmaInterface = `
<node>
<interface name="org.freedesktop.ModemManager1.Modem.ModemCdma">
<property name="Sid" type="u" access="read" />
</interface>
</node>`;
const BroadbandModemCdmaProxy = Gio.DBusProxy.makeProxyWrapper(BroadbandModemCdmaInterface);
var BroadbandModem = new Lang.Class({

View File

@@ -8,21 +8,22 @@ const Signals = imports.signals;
// Specified in the D-Bus specification here:
// http://dbus.freedesktop.org/doc/dbus-specification.html#standard-interfaces-objectmanager
const ObjectManagerIface = '<node> \
<interface name="org.freedesktop.DBus.ObjectManager"> \
<method name="GetManagedObjects"> \
<arg name="objects" type="a{oa{sa{sv}}}" direction="out"/> \
</method> \
<signal name="InterfacesAdded"> \
<arg name="objectPath" type="o"/> \
<arg name="interfaces" type="a{sa{sv}}" /> \
</signal> \
<signal name="InterfacesRemoved"> \
<arg name="objectPath" type="o"/> \
<arg name="interfaces" type="as" /> \
</signal> \
</interface> \
</node>';
const ObjectManagerIface = `
<node>
<interface name="org.freedesktop.DBus.ObjectManager">
<method name="GetManagedObjects">
<arg name="objects" type="a{oa{sa{sv}}}" direction="out"/>
</method>
<signal name="InterfacesAdded">
<arg name="objectPath" type="o"/>
<arg name="interfaces" type="a{sa{sv}}" />
</signal>
<signal name="InterfacesRemoved">
<arg name="objectPath" type="o"/>
<arg name="interfaces" type="as" />
</signal>
</interface>
</node>`;
const ObjectManagerInfo = Gio.DBusInterfaceInfo.new_for_xml(ObjectManagerIface);

View File

@@ -2,30 +2,31 @@
const Gio = imports.gi.Gio;
const PermissionStoreIface = '<node> \
<interface name="org.freedesktop.impl.portal.PermissionStore"> \
<method name="Lookup"> \
<arg name="table" type="s" direction="in"/> \
<arg name="id" type="s" direction="in"/> \
<arg name="permissions" type="a{sas}" direction="out"/> \
<arg name="data" type="v" direction="out"/> \
</method> \
<method name="Set"> \
<arg name="table" type="s" direction="in"/> \
<arg name="create" type="b" direction="in"/> \
<arg name="id" type="s" direction="in"/> \
<arg name="app_permissions" type="a{sas}" direction="in"/> \
<arg name="data" type="v" direction="in"/> \
</method> \
<signal name="Changed"> \
<arg name="table" type="s" direction="out"/> \
<arg name="id" type="s" direction="out"/> \
<arg name="deleted" type="b" direction="out"/> \
<arg name="data" type="v" direction="out"/> \
<arg name="permissions" type="a{sas}" direction="out"/> \
</signal> \
</interface> \
</node>';
const PermissionStoreIface = `
<node>
<interface name="org.freedesktop.impl.portal.PermissionStore">
<method name="Lookup">
<arg name="table" type="s" direction="in"/>
<arg name="id" type="s" direction="in"/>
<arg name="permissions" type="a{sas}" direction="out"/>
<arg name="data" type="v" direction="out"/>
</method>
<method name="Set">
<arg name="table" type="s" direction="in"/>
<arg name="create" type="b" direction="in"/>
<arg name="id" type="s" direction="in"/>
<arg name="app_permissions" type="a{sas}" direction="in"/>
<arg name="data" type="v" direction="in"/>
</method>
<signal name="Changed">
<arg name="table" type="s" direction="out"/>
<arg name="id" type="s" direction="out"/>
<arg name="deleted" type="b" direction="out"/>
<arg name="data" type="v" direction="out"/>
<arg name="permissions" type="a{sas}" direction="out"/>
</signal>
</interface>
</node>`;
const PermissionStoreProxy = Gio.DBusProxy.makeProxyWrapper(PermissionStoreIface);

View File

@@ -7,14 +7,15 @@ const Signals = imports.signals;
const ObjectManager = imports.misc.objectManager;
const SmartcardTokenIface = '<node> \
<interface name="org.gnome.SettingsDaemon.Smartcard.Token"> \
<property name="Name" type="s" access="read"/> \
<property name="Driver" type="o" access="read"/> \
<property name="IsInserted" type="b" access="read"/> \
<property name="UsedToLogin" type="b" access="read"/> \
</interface> \
</node>';
const SmartcardTokenIface = `
<node>
<interface name="org.gnome.SettingsDaemon.Smartcard.Token">
<property name="Name" type="s" access="read"/>
<property name="Driver" type="o" access="read"/>
<property name="IsInserted" type="b" access="read"/>
<property name="UsedToLogin" type="b" access="read"/>
</interface>
</node>`;
let _smartcardManager = null;

View File

@@ -22,11 +22,12 @@ const ALWAYS_SHOW_LOG_OUT_KEY = 'always-show-log-out';
const SENSOR_BUS_NAME = 'net.hadess.SensorProxy';
const SENSOR_OBJECT_PATH = '/net/hadess/SensorProxy';
const SensorProxyInterface = '<node> \
<interface name="net.hadess.SensorProxy"> \
<property name="HasAccelerometer" type="b" access="read"/> \
</interface> \
</node>';
const SensorProxyInterface = `
<node>
<interface name="net.hadess.SensorProxy">
<property name="HasAccelerometer" type="b" access="read"/>
</interface>
</node>`;
const POWER_OFF_ACTION_ID = 'power-off';
const LOCK_SCREEN_ACTION_ID = 'lock-screen';

View File

@@ -30,25 +30,26 @@ const CONNECTIVITY_CHECK_HOST = 'nmcheck.gnome.org';
const CONNECTIVITY_CHECK_URI = 'http://' + CONNECTIVITY_CHECK_HOST;
const CONNECTIVITY_RECHECK_RATELIMIT_TIMEOUT = 30 * GLib.USEC_PER_SEC;
const HelperDBusInterface = '<node> \
<interface name="org.gnome.Shell.PortalHelper"> \
<method name="Authenticate"> \
<arg type="o" direction="in" name="connection" /> \
<arg type="s" direction="in" name="url" /> \
<arg type="u" direction="in" name="timestamp" /> \
</method> \
<method name="Close"> \
<arg type="o" direction="in" name="connection" /> \
</method> \
<method name="Refresh"> \
<arg type="o" direction="in" name="connection" /> \
</method> \
<signal name="Done"> \
<arg type="o" name="connection" /> \
<arg type="u" name="result" /> \
</signal> \
</interface> \
</node>';
const HelperDBusInterface = `
<node>
<interface name="org.gnome.Shell.PortalHelper">
<method name="Authenticate">
<arg type="o" direction="in" name="connection" />
<arg type="s" direction="in" name="url" />
<arg type="u" direction="in" name="timestamp" />
</method>
<method name="Close">
<arg type="o" direction="in" name="connection" />
</method>
<method name="Refresh">
<arg type="o" direction="in" name="connection" />
</method>
<signal name="Done">
<arg type="o" name="connection" />
<arg type="u" name="result" />
</signal>
</interface>
</node>`;
var PortalHeaderBar = new Lang.Class({
Name: 'PortalHeaderBar',

View File

@@ -10,27 +10,29 @@ const CheckBox = imports.ui.checkBox;
const Dialog = imports.ui.dialog;
const ModalDialog = imports.ui.modalDialog;
const RequestIface = '<node> \
<interface name="org.freedesktop.impl.portal.Request"> \
<method name="Close"/> \
</interface> \
</node>';
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 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>`;
var DialogResponse = {
OK: 0,

View File

@@ -66,11 +66,12 @@ var PAGE_SWITCH_TIME = 0.3;
const SWITCHEROO_BUS_NAME = 'net.hadess.SwitcherooControl';
const SWITCHEROO_OBJECT_PATH = '/net/hadess/SwitcherooControl';
const SwitcherooProxyInterface = '<node> \
<interface name="net.hadess.SwitcherooControl"> \
<property name="HasDualGpu" type="b" access="read"/> \
</interface> \
</node>';
const SwitcherooProxyInterface = `
<node>
<interface name="net.hadess.SwitcherooControl">
<property name="HasDualGpu" type="b" access="read"/>
</interface>
</node>`;
const SwitcherooProxy = Gio.DBusProxy.makeProxyWrapper(SwitcherooProxyInterface);
let discreteGpuAvailable = false;

View File

@@ -15,18 +15,19 @@ var AudioDevice = {
MICROPHONE: 1 << 2
};
const AudioDeviceSelectionIface = '<node> \
<interface name="org.gnome.Shell.AudioDeviceSelection"> \
<method name="Open"> \
<arg name="devices" direction="in" type="as" /> \
</method> \
<method name="Close"> \
</method> \
<signal name="DeviceSelected"> \
<arg name="device" type="s" /> \
</signal> \
</interface> \
</node>';
const AudioDeviceSelectionIface = `
<node>
<interface name="org.gnome.Shell.AudioDeviceSelection">
<method name="Open">
<arg name="devices" direction="in" type="as" />
</method>
<method name="Close">
</method>
<signal name="DeviceSelected">
<arg name="device" type="s" />
</signal>
</interface>
</node>`;
var AudioDeviceSelectionDialog = new Lang.Class({
Name: 'AudioDeviceSelectionDialog',

View File

@@ -44,6 +44,7 @@ var BoxPointer = new Lang.Class({
y_fill: true });
this._container = new Shell.GenericContainer();
this.actor.set_child(this._container);
this.actor.set_offscreen_redirect(Clutter.OffscreenRedirect.ALWAYS);
this._container.connect('get-preferred-width', this._getPreferredWidth.bind(this));
this._container.connect('get-preferred-height', this._getPreferredHeight.bind(this));
this._container.connect('allocate', this._allocate.bind(this));

View File

@@ -134,18 +134,19 @@ var EmptyEventSource = new Lang.Class({
});
Signals.addSignalMethods(EmptyEventSource.prototype);
const CalendarServerIface = '<node> \
<interface name="org.gnome.Shell.CalendarServer"> \
<method name="GetEvents"> \
<arg type="x" direction="in" /> \
<arg type="x" direction="in" /> \
<arg type="b" direction="in" /> \
<arg type="a(sssbxxa{sv})" direction="out" /> \
</method> \
<property name="HasCalendars" type="b" access="read" /> \
<signal name="Changed" /> \
</interface> \
</node>';
const CalendarServerIface = `
<node>
<interface name="org.gnome.Shell.CalendarServer">
<method name="GetEvents">
<arg type="x" direction="in" />
<arg type="x" direction="in" />
<arg type="b" direction="in" />
<arg type="a(sssbxxa{sv})" direction="out" />
</method>
<property name="HasCalendars" type="b" access="read" />
<signal name="Changed" />
</interface>
</node>`;
const CalendarServerInfo = Gio.DBusInterfaceInfo.new_for_xml(CalendarServerIface);

View File

@@ -74,14 +74,15 @@ function startAppForMount(app, mount) {
/******************************************/
const HotplugSnifferIface = '<node> \
<interface name="org.gnome.Shell.HotplugSniffer"> \
<method name="SniffURI"> \
<arg type="s" direction="in" /> \
<arg type="as" direction="out" /> \
</method> \
</interface> \
</node>';
const HotplugSnifferIface = `
<node>
<interface name="org.gnome.Shell.HotplugSniffer">
<method name="SniffURI">
<arg type="s" direction="in" />
<arg type="as" direction="out" />
</method>
</interface>
</node>`;
const HotplugSnifferProxy = Gio.DBusProxy.makeProxyWrapper(HotplugSnifferIface);
function HotplugSniffer() {

View File

@@ -402,6 +402,7 @@ var Dash = new Lang.Class({
clip_to_allocation: true });
this._box._delegate = this;
this._container.add_actor(this._box);
this._container.set_offscreen_redirect(Clutter.OffscreenRedirect.ALWAYS);
this._showAppsIcon = new ShowAppsIcon();
this._showAppsIcon.childScale = 1;

View File

@@ -40,6 +40,7 @@ var Dialog = new Lang.Class({
// mode accordingly so wrapped labels are handled correctly during
// size requests.
this._dialog.request_mode = Clutter.RequestMode.HEIGHT_FOR_WIDTH;
this._dialog.set_offscreen_redirect(Clutter.OffscreenRedirect.ALWAYS);
this.contentLayout = new St.BoxLayout({ vertical: true,
style_class: "modal-dialog-content-box" });

View File

@@ -506,6 +506,7 @@ var _Draggable = new Lang.Class({
return true;
} else
this._dragActor.destroy();
this._dragActor = undefined;
}
this._dragInProgress = false;
@@ -565,8 +566,10 @@ var _Draggable = new Lang.Class({
if (!this._buttonDown)
this._dragComplete();
this.emit('drag-end', eventTime, false);
if (!this._dragOrigParent)
if (!this._dragOrigParent) {
this._dragActor.destroy();
this._dragActor = undefined;
}
return;
}
@@ -634,6 +637,7 @@ var _Draggable = new Lang.Class({
dragActor.set_position(this._dragOrigX, this._dragOrigY);
} else {
dragActor.destroy();
this._dragActor = undefined;
}
this.emit('drag-end', eventTime, false);
@@ -641,7 +645,7 @@ var _Draggable = new Lang.Class({
},
_dragComplete() {
if (!this._actorDestroyed)
if (this._dragActor)
Shell.util_set_hidden_from_pick(this._dragActor, false);
this._ungrabEvents();

View File

@@ -43,22 +43,23 @@ const _DIALOG_ICON_SIZE = 48;
var GSM_SESSION_MANAGER_LOGOUT_FORCE = 2;
const EndSessionDialogIface = '<node> \
<interface name="org.gnome.SessionManager.EndSessionDialog"> \
<method name="Open"> \
<arg type="u" direction="in" /> \
<arg type="u" direction="in" /> \
<arg type="u" direction="in" /> \
<arg type="ao" direction="in" /> \
</method> \
<method name="Close" /> \
<signal name="ConfirmedLogout" /> \
<signal name="ConfirmedReboot" /> \
<signal name="ConfirmedShutdown" /> \
<signal name="Canceled" /> \
<signal name="Closed" /> \
</interface> \
</node>';
const EndSessionDialogIface = `
<node>
<interface name="org.gnome.SessionManager.EndSessionDialog">
<method name="Open">
<arg type="u" direction="in" />
<arg type="u" direction="in" />
<arg type="u" direction="in" />
<arg type="ao" direction="in" />
</method>
<method name="Close" />
<signal name="ConfirmedLogout" />
<signal name="ConfirmedReboot" />
<signal name="ConfirmedShutdown" />
<signal name="Canceled" />
<signal name="Closed" />
</interface>
</node>`;
const logoutDialogContent = {
subjectWithUser: C_("title", "Log Out %s"),
@@ -168,39 +169,42 @@ const DialogContent = {
var MAX_USERS_IN_SESSION_DIALOG = 5;
const LogindSessionIface = '<node> \
<interface name="org.freedesktop.login1.Session"> \
<property name="Id" type="s" access="read"/> \
<property name="Remote" type="b" access="read"/> \
<property name="Class" type="s" access="read"/> \
<property name="Type" type="s" access="read"/> \
<property name="State" type="s" access="read"/> \
</interface> \
</node>';
const LogindSessionIface = `
<node>
<interface name="org.freedesktop.login1.Session">
<property name="Id" type="s" access="read"/>
<property name="Remote" type="b" access="read"/>
<property name="Class" type="s" access="read"/>
<property name="Type" type="s" access="read"/>
<property name="State" type="s" access="read"/>
</interface>
</node>`;
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"/> \
<method name="Trigger"> \
<arg type="s" name="action" direction="in"/> \
</method> \
<method name="Cancel"/> \
</interface> \
</node>';
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"/>
<method name="Trigger">
<arg type="s" name="action" direction="in"/>
</method>
<method name="Cancel"/>
</interface>
</node>`;
const PkOfflineProxy = Gio.DBusProxy.makeProxyWrapper(PkOfflineIface);
const UPowerIface = '<node> \
<interface name="org.freedesktop.UPower"> \
<property name="OnBattery" type="b" access="read"/> \
</interface> \
</node>';
const UPowerIface = `
<node>
<interface name="org.freedesktop.UPower">
<property name="OnBattery" type="b" access="read"/>
</interface>
</node>`;
const UPowerProxy = Gio.DBusProxy.makeProxyWrapper(UPowerIface);

View File

@@ -9,89 +9,91 @@ const ZOOM_SERVICE_PATH = '/org/gnome/Magnifier/ZoomRegion';
// Subset of gnome-mag's Magnifier dbus interface -- to be expanded. See:
// http://git.gnome.org/browse/gnome-mag/tree/xml/...Magnifier.xml
const MagnifierIface = '<node> \
<interface name="org.gnome.Magnifier"> \
<method name="setActive"> \
<arg type="b" direction="in" /> \
</method> \
<method name="isActive"> \
<arg type="b" direction="out" /> \
</method> \
<method name="showCursor" /> \
<method name="hideCursor" /> \
<method name="createZoomRegion"> \
<arg type="d" direction="in" /> \
<arg type="d" direction="in" /> \
<arg type="ai" direction="in" /> \
<arg type="ai" direction="in" /> \
<arg type="o" direction="out" /> \
</method> \
<method name="addZoomRegion"> \
<arg type="o" direction="in" /> \
<arg type="b" direction="out" /> \
</method> \
<method name="getZoomRegions"> \
<arg type="ao" direction="out" /> \
</method> \
<method name="clearAllZoomRegions" /> \
<method name="fullScreenCapable"> \
<arg type="b" direction="out" /> \
</method> \
<method name="setCrosswireSize"> \
<arg type="i" direction="in" /> \
</method> \
<method name="getCrosswireSize"> \
<arg type="i" direction="out" /> \
</method> \
<method name="setCrosswireLength"> \
<arg type="i" direction="in" /> \
</method> \
<method name="getCrosswireLength"> \
<arg type="i" direction="out" /> \
</method> \
<method name="setCrosswireClip"> \
<arg type="b" direction="in" /> \
</method> \
<method name="getCrosswireClip"> \
<arg type="b" direction="out" /> \
</method> \
<method name="setCrosswireColor"> \
<arg type="u" direction="in" /> \
</method> \
<method name="getCrosswireColor"> \
<arg type="u" direction="out" /> \
</method> \
</interface> \
</node>';
const MagnifierIface = `
<node>
<interface name="org.gnome.Magnifier">
<method name="setActive">
<arg type="b" direction="in" />
</method>
<method name="isActive">
<arg type="b" direction="out" />
</method>
<method name="showCursor" />
<method name="hideCursor" />
<method name="createZoomRegion">
<arg type="d" direction="in" />
<arg type="d" direction="in" />
<arg type="ai" direction="in" />
<arg type="ai" direction="in" />
<arg type="o" direction="out" />
</method>
<method name="addZoomRegion">
<arg type="o" direction="in" />
<arg type="b" direction="out" />
</method>
<method name="getZoomRegions">
<arg type="ao" direction="out" />
</method>
<method name="clearAllZoomRegions" />
<method name="fullScreenCapable">
<arg type="b" direction="out" />
</method>
<method name="setCrosswireSize">
<arg type="i" direction="in" />
</method>
<method name="getCrosswireSize">
<arg type="i" direction="out" />
</method>
<method name="setCrosswireLength">
<arg type="i" direction="in" />
</method>
<method name="getCrosswireLength">
<arg type="i" direction="out" />
</method>
<method name="setCrosswireClip">
<arg type="b" direction="in" />
</method>
<method name="getCrosswireClip">
<arg type="b" direction="out" />
</method>
<method name="setCrosswireColor">
<arg type="u" direction="in" />
</method>
<method name="getCrosswireColor">
<arg type="u" direction="out" />
</method>
</interface>
</node>`;
// Subset of gnome-mag's ZoomRegion dbus interface -- to be expanded. See:
// http://git.gnome.org/browse/gnome-mag/tree/xml/...ZoomRegion.xml
const ZoomRegionIface = '<node> \
<interface name="org.gnome.Magnifier.ZoomRegion"> \
<method name="setMagFactor"> \
<arg type="d" direction="in" /> \
<arg type="d" direction="in" /> \
</method> \
<method name="getMagFactor"> \
<arg type="d" direction="out" /> \
<arg type="d" direction="out" /> \
</method> \
<method name="setRoi"> \
<arg type="ai" direction="in" /> \
</method> \
<method name="getRoi"> \
<arg type="ai" direction="out" /> \
</method> \
<method name="shiftContentsTo"> \
<arg type="i" direction="in" /> \
<arg type="i" direction="in" /> \
<arg type="b" direction="out" /> \
</method> \
<method name="moveResize"> \
<arg type="ai" direction="in" /> \
</method> \
</interface> \
</node>';
const ZoomRegionIface = `
<node>
<interface name="org.gnome.Magnifier.ZoomRegion">
<method name="setMagFactor">
<arg type="d" direction="in" />
<arg type="d" direction="in" />
</method>
<method name="getMagFactor">
<arg type="d" direction="out" />
<arg type="d" direction="out" />
</method>
<method name="setRoi">
<arg type="ai" direction="in" />
</method>
<method name="getRoi">
<arg type="ai" direction="out" />
</method>
<method name="shiftContentsTo">
<arg type="i" direction="in" />
<arg type="i" direction="in" />
<arg type="b" direction="out" />
</method>
<method name="moveResize">
<arg type="ai" direction="in" />
</method>
</interface>
</node>`;
// For making unique ZoomRegion DBus proxy object paths of the form:
// '/org/gnome/Magnifier/ZoomRegion/zoomer0',

View File

@@ -8,41 +8,44 @@ const Calendar = imports.ui.calendar;
const Main = imports.ui.main;
const MessageList = imports.ui.messageList;
const DBusIface = '<node> \
<interface name="org.freedesktop.DBus"> \
<method name="ListNames"> \
<arg type="as" direction="out" name="names" /> \
</method> \
<signal name="NameOwnerChanged"> \
<arg type="s" direction="out" name="name" /> \
<arg type="s" direction="out" name="oldOwner" /> \
<arg type="s" direction="out" name="newOwner" /> \
</signal> \
</interface> \
</node>';
const DBusIface = `
<node>
<interface name="org.freedesktop.DBus">
<method name="ListNames">
<arg type="as" direction="out" name="names" />
</method>
<signal name="NameOwnerChanged">
<arg type="s" direction="out" name="name" />
<arg type="s" direction="out" name="oldOwner" />
<arg type="s" direction="out" name="newOwner" />
</signal>
</interface>
</node>`;
const DBusProxy = Gio.DBusProxy.makeProxyWrapper(DBusIface);
const MprisIface = '<node> \
<interface name="org.mpris.MediaPlayer2"> \
<method name="Raise" /> \
<property name="CanRaise" type="b" access="read" /> \
<property name="DesktopEntry" type="s" access="read" /> \
</interface> \
</node>';
const MprisIface = `
<node>
<interface name="org.mpris.MediaPlayer2">
<method name="Raise" />
<property name="CanRaise" type="b" access="read" />
<property name="DesktopEntry" type="s" access="read" />
</interface>
</node>`;
const MprisProxy = Gio.DBusProxy.makeProxyWrapper(MprisIface);
const MprisPlayerIface = '<node> \
<interface name="org.mpris.MediaPlayer2.Player"> \
<method name="PlayPause" /> \
<method name="Next" /> \
<method name="Previous" /> \
<property name="CanGoNext" type="b" access="read" /> \
<property name="CanGoPrevious" type="b" access="read" /> \
<property name="CanPlay" type="b" access="read" /> \
<property name="Metadata" type="a{sv}" access="read" /> \
<property name="PlaybackStatus" type="s" access="read" /> \
</interface> \
</node>';
const MprisPlayerIface = `
<node>
<interface name="org.mpris.MediaPlayer2.Player">
<method name="PlayPause" />
<method name="Next" />
<method name="Previous" />
<property name="CanGoNext" type="b" access="read" />
<property name="CanGoPrevious" type="b" access="read" />
<property name="CanPlay" type="b" access="read" />
<property name="Metadata" type="a{sv}" access="read" />
<property name="PlaybackStatus" type="s" access="read" />
</interface>
</node>`;
const MprisPlayerProxy = Gio.DBusProxy.makeProxyWrapper(MprisPlayerIface);
const MPRIS_PLAYER_PREFIX = 'org.mpris.MediaPlayer2.';

View File

@@ -17,55 +17,57 @@ const Params = imports.misc.params;
const Util = imports.misc.util;
// Should really be defined in Gio.js
const BusIface = '<node> \
<interface name="org.freedesktop.DBus"> \
<method name="GetConnectionUnixProcessID"> \
<arg type="s" direction="in" /> \
<arg type="u" direction="out" /> \
</method> \
</interface> \
</node>';
const BusIface = `
<node>
<interface name="org.freedesktop.DBus">
<method name="GetConnectionUnixProcessID">
<arg type="s" direction="in" />
<arg type="u" direction="out" />
</method>
</interface>
</node>`;
var BusProxy = Gio.DBusProxy.makeProxyWrapper(BusIface);
function Bus() {
return new BusProxy(Gio.DBus.session, 'org.freedesktop.DBus', '/org/freedesktop/DBus');
}
const FdoNotificationsIface = '<node> \
<interface name="org.freedesktop.Notifications"> \
<method name="Notify"> \
<arg type="s" direction="in"/> \
<arg type="u" direction="in"/> \
<arg type="s" direction="in"/> \
<arg type="s" direction="in"/> \
<arg type="s" direction="in"/> \
<arg type="as" direction="in"/> \
<arg type="a{sv}" direction="in"/> \
<arg type="i" direction="in"/> \
<arg type="u" direction="out"/> \
</method> \
<method name="CloseNotification"> \
<arg type="u" direction="in"/> \
</method> \
<method name="GetCapabilities"> \
<arg type="as" direction="out"/> \
</method> \
<method name="GetServerInformation"> \
<arg type="s" direction="out"/> \
<arg type="s" direction="out"/> \
<arg type="s" direction="out"/> \
<arg type="s" direction="out"/> \
</method> \
<signal name="NotificationClosed"> \
<arg type="u"/> \
<arg type="u"/> \
</signal> \
<signal name="ActionInvoked"> \
<arg type="u"/> \
<arg type="s"/> \
</signal> \
</interface> \
</node>';
const FdoNotificationsIface = `
<node>
<interface name="org.freedesktop.Notifications">
<method name="Notify">
<arg type="s" direction="in"/>
<arg type="u" direction="in"/>
<arg type="s" direction="in"/>
<arg type="s" direction="in"/>
<arg type="s" direction="in"/>
<arg type="as" direction="in"/>
<arg type="a{sv}" direction="in"/>
<arg type="i" direction="in"/>
<arg type="u" direction="out"/>
</method>
<method name="CloseNotification">
<arg type="u" direction="in"/>
</method>
<method name="GetCapabilities">
<arg type="as" direction="out"/>
</method>
<method name="GetServerInformation">
<arg type="s" direction="out"/>
<arg type="s" direction="out"/>
<arg type="s" direction="out"/>
<arg type="s" direction="out"/>
</method>
<signal name="NotificationClosed">
<arg type="u"/>
<arg type="u"/>
</signal>
<signal name="ActionInvoked">
<arg type="u"/>
<arg type="s"/>
</signal>
</interface>
</node>`;
var NotificationClosedReason = {
EXPIRED: 1,
@@ -654,18 +656,19 @@ var GtkNotificationDaemonNotification = new Lang.Class({
},
});
const FdoApplicationIface = '<node> \
<interface name="org.freedesktop.Application"> \
<method name="ActivateAction"> \
<arg type="s" direction="in" /> \
<arg type="av" direction="in" /> \
<arg type="a{sv}" direction="in" /> \
</method> \
<method name="Activate"> \
<arg type="a{sv}" direction="in" /> \
</method> \
</interface> \
</node>';
const FdoApplicationIface = `
<node>
<interface name="org.freedesktop.Application">
<method name="ActivateAction">
<arg type="s" direction="in" />
<arg type="av" direction="in" />
<arg type="a{sv}" direction="in" />
</method>
<method name="Activate">
<arg type="a{sv}" direction="in" />
</method>
</interface>
</node>`;
const FdoApplicationProxy = Gio.DBusProxy.makeProxyWrapper(FdoApplicationIface);
function objectPathFromAppId(appId) {
@@ -774,19 +777,20 @@ var GtkNotificationDaemonAppSource = new Lang.Class({
},
});
const GtkNotificationsIface = '<node> \
<interface name="org.gtk.Notifications"> \
<method name="AddNotification"> \
<arg type="s" direction="in" /> \
<arg type="s" direction="in" /> \
<arg type="a{sv}" direction="in" /> \
</method> \
<method name="RemoveNotification"> \
<arg type="s" direction="in" /> \
<arg type="s" direction="in" /> \
</method> \
</interface> \
</node>';
const GtkNotificationsIface = `
<node>
<interface name="org.gtk.Notifications">
<method name="AddNotification">
<arg type="s" direction="in" />
<arg type="s" direction="in" />
<arg type="a{sv}" direction="in" />
</method>
<method name="RemoveNotification">
<arg type="s" direction="in" />
<arg type="s" direction="in" />
</method>
</interface>
</node>`;
var GtkNotificationDaemon = new Lang.Class({
Name: 'GtkNotificationDaemon',

View File

@@ -962,14 +962,15 @@ var PadOsd = new Lang.Class({
});
Signals.addSignalMethods(PadOsd.prototype);
const PadOsdIface = '<node> \
<interface name="org.gnome.Shell.Wacom.PadOsd"> \
<method name="Show"> \
<arg name="device_node" direction="in" type="o"/> \
<arg name="edition_mode" direction="in" type="b"/> \
</method> \
</interface> \
</node>';
const PadOsdIface = `
<node>
<interface name="org.gnome.Shell.Wacom.PadOsd">
<method name="Show">
<arg name="device_node" direction="in" type="o"/>
<arg name="edition_mode" direction="in" type="b"/>
</method>
</interface>
</node>`;
var PadOsdService = new Lang.Class({
Name: 'PadOsdService',

View File

@@ -307,8 +307,11 @@ var AppMenuButton = new Lang.Class({
}
}
let shellShowsAppMenu = this._gtkSettings.gtk_shell_shows_app_menu;
Meta.prefs_set_show_fallback_app_menu(!shellShowsAppMenu);
let visible = (this._targetApp != null &&
this._gtkSettings.gtk_shell_shows_app_menu &&
shellShowsAppMenu &&
!Main.overview.visibleTarget);
if (visible)
this.show();
@@ -776,6 +779,7 @@ var Panel = new Lang.Class({
this.actor = new Shell.GenericContainer({ name: 'panel',
reactive: true });
this.actor._delegate = this;
this.actor.set_offscreen_redirect(Clutter.OffscreenRedirect.ALWAYS);
this._sessionStyle = null;

View File

@@ -12,53 +12,55 @@ const Search = imports.ui.search;
const KEY_FILE_GROUP = 'Shell Search Provider';
const SearchProviderIface = '<node> \
<interface name="org.gnome.Shell.SearchProvider"> \
<method name="GetInitialResultSet"> \
<arg type="as" direction="in" /> \
<arg type="as" direction="out" /> \
</method> \
<method name="GetSubsearchResultSet"> \
<arg type="as" direction="in" /> \
<arg type="as" direction="in" /> \
<arg type="as" direction="out" /> \
</method> \
<method name="GetResultMetas"> \
<arg type="as" direction="in" /> \
<arg type="aa{sv}" direction="out" /> \
</method> \
<method name="ActivateResult"> \
<arg type="s" direction="in" /> \
</method> \
</interface> \
</node>';
const SearchProviderIface = `
<node>
<interface name="org.gnome.Shell.SearchProvider">
<method name="GetInitialResultSet">
<arg type="as" direction="in" />
<arg type="as" direction="out" />
</method>
<method name="GetSubsearchResultSet">
<arg type="as" direction="in" />
<arg type="as" direction="in" />
<arg type="as" direction="out" />
</method>
<method name="GetResultMetas">
<arg type="as" direction="in" />
<arg type="aa{sv}" direction="out" />
</method>
<method name="ActivateResult">
<arg type="s" direction="in" />
</method>
</interface>
</node>`;
const SearchProvider2Iface = '<node> \
<interface name="org.gnome.Shell.SearchProvider2"> \
<method name="GetInitialResultSet"> \
<arg type="as" direction="in" /> \
<arg type="as" direction="out" /> \
</method> \
<method name="GetSubsearchResultSet"> \
<arg type="as" direction="in" /> \
<arg type="as" direction="in" /> \
<arg type="as" direction="out" /> \
</method> \
<method name="GetResultMetas"> \
<arg type="as" direction="in" /> \
<arg type="aa{sv}" direction="out" /> \
</method> \
<method name="ActivateResult"> \
<arg type="s" direction="in" /> \
<arg type="as" direction="in" /> \
<arg type="u" direction="in" /> \
</method> \
<method name="LaunchSearch"> \
<arg type="as" direction="in" /> \
<arg type="u" direction="in" /> \
</method> \
</interface> \
</node>';
const SearchProvider2Iface = `
<node>
<interface name="org.gnome.Shell.SearchProvider2">
<method name="GetInitialResultSet">
<arg type="as" direction="in" />
<arg type="as" direction="out" />
</method>
<method name="GetSubsearchResultSet">
<arg type="as" direction="in" />
<arg type="as" direction="in" />
<arg type="as" direction="out" />
</method>
<method name="GetResultMetas">
<arg type="as" direction="in" />
<arg type="aa{sv}" direction="out" />
</method>
<method name="ActivateResult">
<arg type="s" direction="in" />
<arg type="as" direction="in" />
<arg type="u" direction="in" />
</method>
<method name="LaunchSearch">
<arg type="as" direction="in" />
<arg type="u" direction="in" />
</method>
</interface>
</node>`;
var SearchProviderProxyInfo = Gio.DBusInterfaceInfo.new_for_xml(SearchProviderIface);
var SearchProvider2ProxyInfo = Gio.DBusInterfaceInfo.new_for_xml(SearchProvider2Iface);

View File

@@ -8,29 +8,30 @@ const Signals = imports.signals;
const Main = imports.ui.main;
const ScreencastIface = '<node> \
<interface name="org.gnome.Shell.Screencast"> \
<method name="Screencast"> \
<arg type="s" direction="in" name="file_template"/> \
<arg type="a{sv}" direction="in" name="options"/> \
<arg type="b" direction="out" name="success"/> \
<arg type="s" direction="out" name="filename_used"/> \
</method> \
<method name="ScreencastArea"> \
<arg type="i" direction="in" name="x"/> \
<arg type="i" direction="in" name="y"/> \
<arg type="i" direction="in" name="width"/> \
<arg type="i" direction="in" name="height"/> \
<arg type="s" direction="in" name="file_template"/> \
<arg type="a{sv}" direction="in" name="options"/> \
<arg type="b" direction="out" name="success"/> \
<arg type="s" direction="out" name="filename_used"/> \
</method> \
<method name="StopScreencast"> \
<arg type="b" direction="out" name="success"/> \
</method> \
</interface> \
</node>';
const ScreencastIface = `
<node>
<interface name="org.gnome.Shell.Screencast">
<method name="Screencast">
<arg type="s" direction="in" name="file_template"/>
<arg type="a{sv}" direction="in" name="options"/>
<arg type="b" direction="out" name="success"/>
<arg type="s" direction="out" name="filename_used"/>
</method>
<method name="ScreencastArea">
<arg type="i" direction="in" name="x"/>
<arg type="i" direction="in" name="y"/>
<arg type="i" direction="in" name="width"/>
<arg type="i" direction="in" name="height"/>
<arg type="s" direction="in" name="file_template"/>
<arg type="a{sv}" direction="in" name="options"/>
<arg type="b" direction="out" name="success"/>
<arg type="s" direction="out" name="filename_used"/>
</method>
<method name="StopScreencast">
<arg type="b" direction="out" name="success"/>
</method>
</interface>
</node>`;
var ScreencastService = new Lang.Class({
Name: 'ScreencastService',

View File

@@ -16,50 +16,51 @@ const Lightbox = imports.ui.lightbox;
const Main = imports.ui.main;
const Tweener = imports.ui.tweener;
const ScreenshotIface = '<node> \
<interface name="org.gnome.Shell.Screenshot"> \
<method name="ScreenshotArea"> \
<arg type="i" direction="in" name="x"/> \
<arg type="i" direction="in" name="y"/> \
<arg type="i" direction="in" name="width"/> \
<arg type="i" direction="in" name="height"/> \
<arg type="b" direction="in" name="flash"/> \
<arg type="s" direction="in" name="filename"/> \
<arg type="b" direction="out" name="success"/> \
<arg type="s" direction="out" name="filename_used"/> \
</method> \
<method name="ScreenshotWindow"> \
<arg type="b" direction="in" name="include_frame"/> \
<arg type="b" direction="in" name="include_cursor"/> \
<arg type="b" direction="in" name="flash"/> \
<arg type="s" direction="in" name="filename"/> \
<arg type="b" direction="out" name="success"/> \
<arg type="s" direction="out" name="filename_used"/> \
</method> \
<method name="Screenshot"> \
<arg type="b" direction="in" name="include_cursor"/> \
<arg type="b" direction="in" name="flash"/> \
<arg type="s" direction="in" name="filename"/> \
<arg type="b" direction="out" name="success"/> \
<arg type="s" direction="out" name="filename_used"/> \
</method> \
<method name="SelectArea"> \
<arg type="i" direction="out" name="x"/> \
<arg type="i" direction="out" name="y"/> \
<arg type="i" direction="out" name="width"/> \
<arg type="i" direction="out" name="height"/> \
</method> \
<method name="FlashArea"> \
<arg type="i" direction="in" name="x"/> \
<arg type="i" direction="in" name="y"/> \
<arg type="i" direction="in" name="width"/> \
<arg type="i" direction="in" name="height"/> \
</method> \
<method name="PickColor"> \
<arg type="a{sv}" direction="out" name="result"/> \
</method> \
</interface> \
</node>';
const ScreenshotIface = `
<node>
<interface name="org.gnome.Shell.Screenshot">
<method name="ScreenshotArea">
<arg type="i" direction="in" name="x"/>
<arg type="i" direction="in" name="y"/>
<arg type="i" direction="in" name="width"/>
<arg type="i" direction="in" name="height"/>
<arg type="b" direction="in" name="flash"/>
<arg type="s" direction="in" name="filename"/>
<arg type="b" direction="out" name="success"/>
<arg type="s" direction="out" name="filename_used"/>
</method>
<method name="ScreenshotWindow">
<arg type="b" direction="in" name="include_frame"/>
<arg type="b" direction="in" name="include_cursor"/>
<arg type="b" direction="in" name="flash"/>
<arg type="s" direction="in" name="filename"/>
<arg type="b" direction="out" name="success"/>
<arg type="s" direction="out" name="filename_used"/>
</method>
<method name="Screenshot">
<arg type="b" direction="in" name="include_cursor"/>
<arg type="b" direction="in" name="flash"/>
<arg type="s" direction="in" name="filename"/>
<arg type="b" direction="out" name="success"/>
<arg type="s" direction="out" name="filename_used"/>
</method>
<method name="SelectArea">
<arg type="i" direction="out" name="x"/>
<arg type="i" direction="out" name="y"/>
<arg type="i" direction="out" name="width"/>
<arg type="i" direction="out" name="height"/>
</method>
<method name="FlashArea">
<arg type="i" direction="in" name="x"/>
<arg type="i" direction="in" name="y"/>
<arg type="i" direction="in" name="width"/>
<arg type="i" direction="in" name="height"/>
</method>
<method name="PickColor">
<arg type="a{sv}" direction="out" name="result"/>
</method>
</interface>
</node>`;
var ScreenshotService = new Lang.Class({
Name: 'ScreenshotService',

View File

@@ -68,19 +68,20 @@ function waitLeisure() {
return callback => { cb = callback; };
}
const PerfHelperIface = '<node> \
<interface name="org.gnome.Shell.PerfHelper"> \
<method name="CreateWindow"> \
<arg type="i" direction="in" /> \
<arg type="i" direction="in" /> \
<arg type="b" direction="in" /> \
<arg type="b" direction="in" /> \
<arg type="b" direction="in" /> \
</method> \
<method name="WaitWindows" /> \
<method name="DestroyWindows" /> \
</interface> \
</node>';
const PerfHelperIface = `
<node>
<interface name="org.gnome.Shell.PerfHelper">
<method name="CreateWindow">
<arg type="i" direction="in" />
<arg type="i" direction="in" />
<arg type="b" direction="in" />
<arg type="b" direction="in" />
<arg type="b" direction="in" />
</method>
<method name="WaitWindows" />
<method name="DestroyWindows" />
</interface>
</node>`;
var PerfHelperProxy = Gio.DBusProxy.makeProxyWrapper(PerfHelperIface);
function PerfHelper() {

View File

@@ -14,70 +14,72 @@ const Main = imports.ui.main;
const Screenshot = imports.ui.screenshot;
const ViewSelector = imports.ui.viewSelector;
const GnomeShellIface = '<node> \
<interface name="org.gnome.Shell"> \
<method name="Eval"> \
<arg type="s" direction="in" name="script" /> \
<arg type="b" direction="out" name="success" /> \
<arg type="s" direction="out" name="result" /> \
</method> \
<method name="FocusSearch"/> \
<method name="ShowOSD"> \
<arg type="a{sv}" direction="in" name="params"/> \
</method> \
<method name="ShowMonitorLabels"> \
<arg type="a{uv}" direction="in" name="params" /> \
</method> \
<method name="ShowMonitorLabels2"> \
<arg type="a{sv}" direction="in" name="params" /> \
</method> \
<method name="HideMonitorLabels" /> \
<method name="FocusApp"> \
<arg type="s" direction="in" name="id"/> \
</method> \
<method name="ShowApplications" /> \
<method name="GrabAccelerator"> \
<arg type="s" direction="in" name="accelerator"/> \
<arg type="u" direction="in" name="flags"/> \
<arg type="u" direction="out" name="action"/> \
</method> \
<method name="GrabAccelerators"> \
<arg type="a(su)" direction="in" name="accelerators"/> \
<arg type="au" direction="out" name="actions"/> \
</method> \
<method name="UngrabAccelerator"> \
<arg type="u" direction="in" name="action"/> \
<arg type="b" direction="out" name="success"/> \
</method> \
<signal name="AcceleratorActivated"> \
<arg name="action" type="u" /> \
<arg name="parameters" type="a{sv}" /> \
</signal> \
<property name="Mode" type="s" access="read" /> \
<property name="OverviewActive" type="b" access="readwrite" /> \
<property name="ShellVersion" type="s" access="read" /> \
</interface> \
</node>';
const GnomeShellIface = `
<node>
<interface name="org.gnome.Shell">
<method name="Eval">
<arg type="s" direction="in" name="script" />
<arg type="b" direction="out" name="success" />
<arg type="s" direction="out" name="result" />
</method>
<method name="FocusSearch"/>
<method name="ShowOSD">
<arg type="a{sv}" direction="in" name="params"/>
</method>
<method name="ShowMonitorLabels">
<arg type="a{uv}" direction="in" name="params" />
</method>
<method name="ShowMonitorLabels2">
<arg type="a{sv}" direction="in" name="params" />
</method>
<method name="HideMonitorLabels" />
<method name="FocusApp">
<arg type="s" direction="in" name="id"/>
</method>
<method name="ShowApplications" />
<method name="GrabAccelerator">
<arg type="s" direction="in" name="accelerator"/>
<arg type="u" direction="in" name="flags"/>
<arg type="u" direction="out" name="action"/>
</method>
<method name="GrabAccelerators">
<arg type="a(su)" direction="in" name="accelerators"/>
<arg type="au" direction="out" name="actions"/>
</method>
<method name="UngrabAccelerator">
<arg type="u" direction="in" name="action"/>
<arg type="b" direction="out" name="success"/>
</method>
<signal name="AcceleratorActivated">
<arg name="action" type="u" />
<arg name="parameters" type="a{sv}" />
</signal>
<property name="Mode" type="s" access="read" />
<property name="OverviewActive" type="b" access="readwrite" />
<property name="ShellVersion" type="s" access="read" />
</interface>
</node>`;
const ScreenSaverIface = '<node> \
<interface name="org.gnome.ScreenSaver"> \
<method name="Lock"> \
</method> \
<method name="GetActive"> \
<arg name="active" direction="out" type="b" /> \
</method> \
<method name="SetActive"> \
<arg name="value" direction="in" type="b" /> \
</method> \
<method name="GetActiveTime"> \
<arg name="value" direction="out" type="u" /> \
</method> \
<signal name="ActiveChanged"> \
<arg name="new_value" type="b" /> \
</signal> \
<signal name="WakeUpScreen" /> \
</interface> \
</node>';
const ScreenSaverIface = `
<node>
<interface name="org.gnome.ScreenSaver">
<method name="Lock">
</method>
<method name="GetActive">
<arg name="active" direction="out" type="b" />
</method>
<method name="SetActive">
<arg name="value" direction="in" type="b" />
</method>
<method name="GetActiveTime">
<arg name="value" direction="out" type="u" />
</method>
<signal name="ActiveChanged">
<arg name="new_value" type="b" />
</signal>
<signal name="WakeUpScreen" />
</interface>
</node>`;
var GnomeShell = new Lang.Class({
Name: 'GnomeShellDBus',
@@ -293,43 +295,44 @@ var GnomeShell = new Lang.Class({
ShellVersion: Config.PACKAGE_VERSION
});
const GnomeShellExtensionsIface = '<node> \
<interface name="org.gnome.Shell.Extensions"> \
<method name="ListExtensions"> \
<arg type="a{sa{sv}}" direction="out" name="extensions" /> \
</method> \
<method name="GetExtensionInfo"> \
<arg type="s" direction="in" name="extension" /> \
<arg type="a{sv}" direction="out" name="info" /> \
</method> \
<method name="GetExtensionErrors"> \
<arg type="s" direction="in" name="extension" /> \
<arg type="as" direction="out" name="errors" /> \
</method> \
<signal name="ExtensionStatusChanged"> \
<arg type="s" name="uuid"/> \
<arg type="i" name="state"/> \
<arg type="s" name="error"/> \
</signal> \
<method name="InstallRemoteExtension"> \
<arg type="s" direction="in" name="uuid"/> \
<arg type="s" direction="out" name="result"/> \
</method> \
<method name="UninstallExtension"> \
<arg type="s" direction="in" name="uuid"/> \
<arg type="b" direction="out" name="success"/> \
</method> \
<method name="LaunchExtensionPrefs"> \
<arg type="s" direction="in" name="uuid"/> \
</method> \
<method name="ReloadExtension"> \
<arg type="s" direction="in" name="uuid"/> \
</method> \
<method name="CheckForUpdates"> \
</method> \
<property name="ShellVersion" type="s" access="read" /> \
</interface> \
</node>';
const GnomeShellExtensionsIface = `
<node>
<interface name="org.gnome.Shell.Extensions">
<method name="ListExtensions">
<arg type="a{sa{sv}}" direction="out" name="extensions" />
</method>
<method name="GetExtensionInfo">
<arg type="s" direction="in" name="extension" />
<arg type="a{sv}" direction="out" name="info" />
</method>
<method name="GetExtensionErrors">
<arg type="s" direction="in" name="extension" />
<arg type="as" direction="out" name="errors" />
</method>
<signal name="ExtensionStatusChanged">
<arg type="s" name="uuid"/>
<arg type="i" name="state"/>
<arg type="s" name="error"/>
</signal>
<method name="InstallRemoteExtension">
<arg type="s" direction="in" name="uuid"/>
<arg type="s" direction="out" name="result"/>
</method>
<method name="UninstallExtension">
<arg type="s" direction="in" name="uuid"/>
<arg type="b" direction="out" name="success"/>
</method>
<method name="LaunchExtensionPrefs">
<arg type="s" direction="in" name="uuid"/>
</method>
<method name="ReloadExtension">
<arg type="s" direction="in" name="uuid"/>
</method>
<method name="CheckForUpdates">
</method>
<property name="ShellVersion" type="s" access="read" />
</interface>
</node>`;
var GnomeShellExtensions = new Lang.Class({
Name: 'GnomeShellExtensionsDBus',

View File

@@ -436,38 +436,39 @@ var ShellProcessesDialog = new Lang.Class({
});
Signals.addSignalMethods(ShellProcessesDialog.prototype);
const GnomeShellMountOpIface = '<node> \
<interface name="org.Gtk.MountOperationHandler"> \
<method name="AskPassword"> \
<arg type="s" direction="in" name="object_id"/> \
<arg type="s" direction="in" name="message"/> \
<arg type="s" direction="in" name="icon_name"/> \
<arg type="s" direction="in" name="default_user"/> \
<arg type="s" direction="in" name="default_domain"/> \
<arg type="u" direction="in" name="flags"/> \
<arg type="u" direction="out" name="response"/> \
<arg type="a{sv}" direction="out" name="response_details"/> \
</method> \
<method name="AskQuestion"> \
<arg type="s" direction="in" name="object_id"/> \
<arg type="s" direction="in" name="message"/> \
<arg type="s" direction="in" name="icon_name"/> \
<arg type="as" direction="in" name="choices"/> \
<arg type="u" direction="out" name="response"/> \
<arg type="a{sv}" direction="out" name="response_details"/> \
</method> \
<method name="ShowProcesses"> \
<arg type="s" direction="in" name="object_id"/> \
<arg type="s" direction="in" name="message"/> \
<arg type="s" direction="in" name="icon_name"/> \
<arg type="ai" direction="in" name="application_pids"/> \
<arg type="as" direction="in" name="choices"/> \
<arg type="u" direction="out" name="response"/> \
<arg type="a{sv}" direction="out" name="response_details"/> \
</method> \
<method name="Close"/> \
</interface> \
</node>';
const GnomeShellMountOpIface = `
<node>
<interface name="org.Gtk.MountOperationHandler">
<method name="AskPassword">
<arg type="s" direction="in" name="object_id"/>
<arg type="s" direction="in" name="message"/>
<arg type="s" direction="in" name="icon_name"/>
<arg type="s" direction="in" name="default_user"/>
<arg type="s" direction="in" name="default_domain"/>
<arg type="u" direction="in" name="flags"/>
<arg type="u" direction="out" name="response"/>
<arg type="a{sv}" direction="out" name="response_details"/>
</method>
<method name="AskQuestion">
<arg type="s" direction="in" name="object_id"/>
<arg type="s" direction="in" name="message"/>
<arg type="s" direction="in" name="icon_name"/>
<arg type="as" direction="in" name="choices"/>
<arg type="u" direction="out" name="response"/>
<arg type="a{sv}" direction="out" name="response_details"/>
</method>
<method name="ShowProcesses">
<arg type="s" direction="in" name="object_id"/>
<arg type="s" direction="in" name="message"/>
<arg type="s" direction="in" name="icon_name"/>
<arg type="ai" direction="in" name="application_pids"/>
<arg type="as" direction="in" name="choices"/>
<arg type="u" direction="out" name="response"/>
<arg type="a{sv}" direction="out" name="response_details"/>
</method>
<method name="Close"/>
</interface>
</node>`;
var ShellMountOperationType = {
NONE: 0,

View File

@@ -11,13 +11,14 @@ const PopupMenu = imports.ui.popupMenu;
const BUS_NAME = 'org.gnome.SettingsDaemon.Rfkill';
const OBJECT_PATH = '/org/gnome/SettingsDaemon/Rfkill';
const RfkillManagerInterface = '<node> \
<interface name="org.gnome.SettingsDaemon.Rfkill"> \
<property name="BluetoothAirplaneMode" type="b" access="readwrite" /> \
<property name="BluetoothHasAirplaneMode" type="b" access="read" /> \
<property name="BluetoothHardwareAirplaneMode" type="b" access="readwrite" /> \
</interface> \
</node>';
const RfkillManagerInterface = `
<node>
<interface name="org.gnome.SettingsDaemon.Rfkill">
<property name="BluetoothAirplaneMode" type="b" access="readwrite" />
<property name="BluetoothHasAirplaneMode" type="b" access="read" />
<property name="BluetoothHardwareAirplaneMode" type="b" access="readwrite" />
</interface>
</node>`;
const RfkillManagerProxy = Gio.DBusProxy.makeProxyWrapper(RfkillManagerInterface);

View File

@@ -11,11 +11,12 @@ const Slider = imports.ui.slider;
const BUS_NAME = 'org.gnome.SettingsDaemon.Power';
const OBJECT_PATH = '/org/gnome/SettingsDaemon/Power';
const BrightnessInterface = '<node> \
<interface name="org.gnome.SettingsDaemon.Power.Screen"> \
<property name="Brightness" type="i" access="readwrite"/> \
</interface> \
</node>';
const BrightnessInterface = `
<node>
<interface name="org.gnome.SettingsDaemon.Power.Screen">
<property name="Brightness" type="i" access="readwrite"/>
</interface>
</node>`;
const BrightnessProxy = Gio.DBusProxy.makeProxyWrapper(BrightnessInterface);

View File

@@ -40,29 +40,31 @@ function accuracyLevelToString(accuracyLevel) {
return 'NONE';
}
var GeoclueIface = '<node> \
<interface name="org.freedesktop.GeoClue2.Manager"> \
<property name="InUse" type="b" access="read"/> \
<property name="AvailableAccuracyLevel" type="u" access="read"/> \
<method name="AddAgent"> \
<arg name="id" type="s" direction="in"/> \
</method> \
</interface> \
</node>';
var GeoclueIface = `
<node>
<interface name="org.freedesktop.GeoClue2.Manager">
<property name="InUse" type="b" access="read"/>
<property name="AvailableAccuracyLevel" type="u" access="read"/>
<method name="AddAgent">
<arg name="id" type="s" direction="in"/>
</method>
</interface>
</node>`;
const GeoclueManager = Gio.DBusProxy.makeProxyWrapper(GeoclueIface);
var AgentIface = '<node> \
<interface name="org.freedesktop.GeoClue2.Agent"> \
<property name="MaxAccuracyLevel" type="u" access="read"/> \
<method name="AuthorizeApp"> \
<arg name="desktop_id" type="s" direction="in"/> \
<arg name="req_accuracy_level" type="u" direction="in"/> \
<arg name="authorized" type="b" direction="out"/> \
<arg name="allowed_accuracy_level" type="u" direction="out"/> \
</method> \
</interface> \
</node>';
var AgentIface = `
<node>
<interface name="org.freedesktop.GeoClue2.Agent">
<property name="MaxAccuracyLevel" type="u" access="read"/>
<method name="AuthorizeApp">
<arg name="desktop_id" type="s" direction="in"/>
<arg name="req_accuracy_level" type="u" direction="in"/>
<arg name="authorized" type="b" direction="out"/>
<arg name="allowed_accuracy_level" type="u" direction="out"/>
</method>
</interface>
</node>`;
var Indicator = new Lang.Class({
Name: 'LocationIndicator',

View File

@@ -51,25 +51,26 @@ var PortalHelperResult = {
RECHECK: 2
};
const PortalHelperIface = '<node> \
<interface name="org.gnome.Shell.PortalHelper"> \
<method name="Authenticate"> \
<arg type="o" direction="in" name="connection" /> \
<arg type="s" direction="in" name="url" /> \
<arg type="u" direction="in" name="timestamp" /> \
</method> \
<method name="Close"> \
<arg type="o" direction="in" name="connection" /> \
</method> \
<method name="Refresh"> \
<arg type="o" direction="in" name="connection" /> \
</method> \
<signal name="Done"> \
<arg type="o" name="connection" /> \
<arg type="u" name="result" /> \
</signal> \
</interface> \
</node>';
const PortalHelperIface = `
<node>
<interface name="org.gnome.Shell.PortalHelper">
<method name="Authenticate">
<arg type="o" direction="in" name="connection" />
<arg type="s" direction="in" name="url" />
<arg type="u" direction="in" name="timestamp" />
</method>
<method name="Close">
<arg type="o" direction="in" name="connection" />
</method>
<method name="Refresh">
<arg type="o" direction="in" name="connection" />
</method>
<signal name="Done">
<arg type="o" name="connection" />
<arg type="u" name="result" />
</signal>
</interface>
</node>`;
const PortalHelperProxy = Gio.DBusProxy.makeProxyWrapper(PortalHelperIface);
function signalToIcon(value) {

View File

@@ -10,12 +10,13 @@ const PopupMenu = imports.ui.popupMenu;
const BUS_NAME = 'org.gnome.SettingsDaemon.Color';
const OBJECT_PATH = '/org/gnome/SettingsDaemon/Color';
const ColorInterface = '<node> \
<interface name="org.gnome.SettingsDaemon.Color"> \
<property name="DisabledUntilTomorrow" type="b" access="readwrite"/> \
<property name="NightLightActive" type="b" access="read"/> \
</interface> \
</node>';
const ColorInterface = `
<node>
<interface name="org.gnome.SettingsDaemon.Color">
<property name="DisabledUntilTomorrow" type="b" access="readwrite"/>
<property name="NightLightActive" type="b" access="read"/>
</interface>
</node>`;
const ColorProxy = Gio.DBusProxy.makeProxyWrapper(ColorInterface);

View File

@@ -13,17 +13,18 @@ const PopupMenu = imports.ui.popupMenu;
const BUS_NAME = 'org.freedesktop.UPower';
const OBJECT_PATH = '/org/freedesktop/UPower/devices/DisplayDevice';
const DisplayDeviceInterface = '<node> \
<interface name="org.freedesktop.UPower.Device"> \
<property name="Type" type="u" access="read"/> \
<property name="State" type="u" access="read"/> \
<property name="Percentage" type="d" access="read"/> \
<property name="TimeToEmpty" type="x" access="read"/> \
<property name="TimeToFull" type="x" access="read"/> \
<property name="IsPresent" type="b" access="read"/> \
<property name="IconName" type="s" access="read"/> \
</interface> \
</node>';
const DisplayDeviceInterface = `
<node>
<interface name="org.freedesktop.UPower.Device">
<property name="Type" type="u" access="read"/>
<property name="State" type="u" access="read"/>
<property name="Percentage" type="d" access="read"/>
<property name="TimeToEmpty" type="x" access="read"/>
<property name="TimeToFull" type="x" access="read"/>
<property name="IsPresent" type="b" access="read"/>
<property name="IconName" type="s" access="read"/>
</interface>
</node>`;
const PowerManagerProxy = Gio.DBusProxy.makeProxyWrapper(DisplayDeviceInterface);

View File

@@ -11,13 +11,14 @@ const PopupMenu = imports.ui.popupMenu;
const BUS_NAME = 'org.gnome.SettingsDaemon.Rfkill';
const OBJECT_PATH = '/org/gnome/SettingsDaemon/Rfkill';
const RfkillManagerInterface = '<node> \
<interface name="org.gnome.SettingsDaemon.Rfkill"> \
<property name="AirplaneMode" type="b" access="readwrite" /> \
<property name="HardwareAirplaneMode" type="b" access="read" /> \
<property name="ShouldShowAirplaneMode" type="b" access="read" /> \
</interface> \
</node>';
const RfkillManagerInterface = `
<node>
<interface name="org.gnome.SettingsDaemon.Rfkill">
<property name="AirplaneMode" type="b" access="readwrite" />
<property name="HardwareAirplaneMode" type="b" access="read" />
<property name="ShouldShowAirplaneMode" type="b" access="read" />
</interface>
</node>`;
const RfkillManagerProxy = Gio.DBusProxy.makeProxyWrapper(RfkillManagerInterface);

View File

@@ -14,40 +14,42 @@ const PanelMenu = imports.ui.panelMenu;
/* Keep in sync with data/org.freedesktop.bolt.xml */
const BoltClientInterface = '<node> \
<interface name="org.freedesktop.bolt1.Manager"> \
<property name="Probing" type="b" access="read"></property> \
<property name="AuthMode" type="s" access="readwrite"></property> \
<method name="EnrollDevice"> \
<arg type="s" name="uid" direction="in"> </arg> \
<arg type="s" name="policy" direction="in"> </arg> \
<arg type="s" name="flags" direction="in"> </arg> \
<arg name="device" direction="out" type="o"> </arg> \
</method> \
<signal name="DeviceAdded"> \
<arg name="device" type="o"> </arg> \
</signal> \
</interface> \
</node>';
const BoltClientInterface = `
<node>
<interface name="org.freedesktop.bolt1.Manager">
<property name="Probing" type="b" access="read"></property>
<property name="AuthMode" type="s" access="readwrite"></property>
<method name="EnrollDevice">
<arg type="s" name="uid" direction="in"> </arg>
<arg type="s" name="policy" direction="in"> </arg>
<arg type="s" name="flags" direction="in"> </arg>
<arg name="device" direction="out" type="o"> </arg>
</method>
<signal name="DeviceAdded">
<arg name="device" type="o"> </arg>
</signal>
</interface>
</node>`;
const BoltDeviceInterface = '<node> \
<interface name="org.freedesktop.bolt1.Device"> \
<property name="Uid" type="s" access="read"></property> \
<property name="Name" type="s" access="read"></property> \
<property name="Vendor" type="s" access="read"></property> \
<property name="Type" type="s" access="read"></property> \
<property name="Status" type="s" access="read"></property> \
<property name="Parent" type="s" access="read"></property> \
<property name="SysfsPath" type="s" access="read"></property> \
<property name="Stored" type="b" access="read"></property> \
<property name="Policy" type="s" access="read"></property> \
<property name="Key" type="s" access="read"></property> \
<property name="Label" type="s" access="read"></property> \
<property name="ConnectTime" type="t" access="read"></property> \
<property name="AuthorizeTime" type="t" access="read"></property> \
<property name="StoreTime" type="t" access="read"></property> \
</interface> \
</node>';
const BoltDeviceInterface = `
<node>
<interface name="org.freedesktop.bolt1.Device">
<property name="Uid" type="s" access="read"></property>
<property name="Name" type="s" access="read"></property>
<property name="Vendor" type="s" access="read"></property>
<property name="Type" type="s" access="read"></property>
<property name="Status" type="s" access="read"></property>
<property name="Parent" type="s" access="read"></property>
<property name="SysfsPath" type="s" access="read"></property>
<property name="Stored" type="b" access="read"></property>
<property name="Policy" type="s" access="read"></property>
<property name="Key" type="s" access="read"></property>
<property name="Label" type="s" access="read"></property>
<property name="ConnectTime" type="t" access="read"></property>
<property name="AuthorizeTime" type="t" access="read"></property>
<property name="StoreTime" type="t" access="read"></property>
</interface>
</node>`;
const BoltDeviceProxy = Gio.DBusProxy.makeProxyWrapper(BoltDeviceInterface);

View File

@@ -42,19 +42,20 @@ var ONE_SECOND = 1000; // in ms
const GSD_WACOM_BUS_NAME = 'org.gnome.SettingsDaemon.Wacom';
const GSD_WACOM_OBJECT_PATH = '/org/gnome/SettingsDaemon/Wacom';
const GsdWacomIface = '<node name="/org/gnome/SettingsDaemon/Wacom"> \
<interface name="org.gnome.SettingsDaemon.Wacom"> \
<method name="SetGroupModeLED"> \
<arg name="device_path" direction="in" type="s"/> \
<arg name="group" direction="in" type="u"/> \
<arg name="mode" direction="in" type="u"/> \
</method> \
<method name="SetOLEDLabels"> \
<arg name="device_path" direction="in" type="s"/> \
<arg name="labels" direction="in" type="as"/> \
</method> \
</interface> \
</node>';
const GsdWacomIface = `
<node name="/org/gnome/SettingsDaemon/Wacom">
<interface name="org.gnome.SettingsDaemon.Wacom">
<method name="SetGroupModeLED">
<arg name="device_path" direction="in" type="s"/>
<arg name="group" direction="in" type="u"/>
<arg name="mode" direction="in" type="u"/>
</method>
<method name="SetOLEDLabels">
<arg name="device_path" direction="in" type="s"/>
<arg name="labels" direction="in" type="as"/>
</method>
</interface>
</node>`;
const GsdWacomProxy = Gio.DBusProxy.makeProxyWrapper(GsdWacomIface);

View File

@@ -1,5 +1,5 @@
project('gnome-shell', 'c',
version: '3.29.91',
version: '3.30.0',
meson_version: '>= 0.47.0',
license: 'GPLv2+'
)
@@ -23,7 +23,7 @@ gi_req = '>= 1.49.1'
gjs_req = '>= 1.47.0'
gtk_req = '>= 3.15.0'
json_glib_req = '>= 0.13.2'
mutter_req = '>= 3.29.91'
mutter_req = '>= 3.30.0'
polkit_req = '>= 0.100'
schemas_req = '>= 3.27.90'
startup_req = '>= 0.11'

1000
po/cs.po

File diff suppressed because it is too large Load Diff

1092
po/da.po

File diff suppressed because it is too large Load Diff

1133
po/fi.po

File diff suppressed because it is too large Load Diff

960
po/gl.po

File diff suppressed because it is too large Load Diff

983
po/hr.po

File diff suppressed because it is too large Load Diff

1002
po/hu.po

File diff suppressed because it is too large Load Diff

160
po/id.po
View File

@@ -9,8 +9,8 @@ msgid ""
msgstr ""
"Project-Id-Version: gnome-shell master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell/issues\n"
"POT-Creation-Date: 2018-04-13 19:54+0000\n"
"PO-Revision-Date: 2018-04-23 13:41+0700\n"
"POT-Creation-Date: 2018-07-24 18:34+0000\n"
"PO-Revision-Date: 2018-07-25 16:01+0700\n"
"Last-Translator: Kukuh Syafaat <kukuhsyafaat@gnome.org>\n"
"Language-Team: Indonesian <gnome-l10n-id@googlegroups.com>\n"
"Language: id\n"
@@ -360,20 +360,20 @@ msgctxt "button"
msgid "Sign In"
msgstr "Masuk"
#: js/gdm/loginDialog.js:315
#: js/gdm/loginDialog.js:319
msgid "Choose Session"
msgstr "Pilih Sesi"
#. translators: this message is shown below the user list on the
#. login screen. It can be activated to reveal an entry for
#. manually entering the username.
#: js/gdm/loginDialog.js:458
#: js/gdm/loginDialog.js:462
msgid "Not listed?"
msgstr "Tak masuk daftar?"
#. Translators: this message is shown below the username entry field
#. to clue the user in on how to login to the local network realm
#: js/gdm/loginDialog.js:887
#: js/gdm/loginDialog.js:891
#, javascript-format
msgid "(e.g., user or %s)"
msgstr "(cth., pengguna dari %s)"
@@ -381,12 +381,12 @@ msgstr "(cth., pengguna dari %s)"
#. TTLS and PEAP are actually much more complicated, but this complication
#. is not visible here since we only care about phase2 authentication
#. (and don't even care of which one)
#: js/gdm/loginDialog.js:892 js/ui/components/networkAgent.js:243
#: js/gdm/loginDialog.js:896 js/ui/components/networkAgent.js:243
#: js/ui/components/networkAgent.js:261
msgid "Username: "
msgstr "Nama pengguna: "
#: js/gdm/loginDialog.js:1228
#: js/gdm/loginDialog.js:1234
msgid "Login Window"
msgstr "Jendela Log Masuk"
@@ -399,7 +399,7 @@ msgstr "Galat otentikasi"
#. as a cue to display our own message.
#. Translators: this message is shown below the password entry field
#. to indicate the user can swipe their finger instead
#: js/gdm/util.js:482
#: js/gdm/util.js:485
msgid "(or swipe finger)"
msgstr "(atau gesekkan jari)"
@@ -634,23 +634,23 @@ msgstr "Sering"
msgid "All"
msgstr "Semua"
#: js/ui/appDisplay.js:1886
#: js/ui/appDisplay.js:1890
msgid "New Window"
msgstr "Jendela Baru"
#: js/ui/appDisplay.js:1900
#: js/ui/appDisplay.js:1904
msgid "Launch using Dedicated Graphics Card"
msgstr "Luncurkan menggunakan Kartu Grafis Terdedikasi"
#: js/ui/appDisplay.js:1927 js/ui/dash.js:285
#: js/ui/appDisplay.js:1931 js/ui/dash.js:285
msgid "Remove from Favorites"
msgstr "Hapus dari Favorit"
#: js/ui/appDisplay.js:1933
#: js/ui/appDisplay.js:1937
msgid "Add to Favorites"
msgstr "Tambah ke Favorit"
#: js/ui/appDisplay.js:1943
#: js/ui/appDisplay.js:1947
msgid "Show Details"
msgstr "Tampilkan Rincian"
@@ -797,35 +797,35 @@ msgctxt "event list time"
msgid "All Day"
msgstr "Sepanjang Hari"
#: js/ui/calendar.js:864
#: js/ui/calendar.js:866
msgctxt "calendar heading"
msgid "%A, %B %d"
msgstr "%A, %d %B"
#: js/ui/calendar.js:868
#: js/ui/calendar.js:870
msgctxt "calendar heading"
msgid "%A, %B %d, %Y"
msgstr "%A, %d %B %Y"
#: js/ui/calendar.js:1086
#: js/ui/calendar.js:1100
msgid "No Notifications"
msgstr "Tak Ada Pemberitahuan"
#: js/ui/calendar.js:1089
#: js/ui/calendar.js:1103
msgid "No Events"
msgstr "Tak Ada Kejadian"
#: js/ui/calendar.js:1117
#: js/ui/calendar.js:1131
msgid "Clear All"
msgstr "Bersihkan Semua"
#. Translators: %s is an application name
#: js/ui/closeDialog.js:44
#: js/ui/closeDialog.js:47
#, javascript-format
msgid "“%s” is not responding."
msgstr "\"%s\" tidak merespon."
#: js/ui/closeDialog.js:45
#: js/ui/closeDialog.js:48
msgid ""
"You may choose to wait a short while for it to continue or force the "
"application to quit entirely."
@@ -833,11 +833,11 @@ msgstr ""
"Anda dapat memilih untuk menunggu sebentar untuk melanjutkan atau memaksa "
"aplikasi keluar."
#: js/ui/closeDialog.js:61
#: js/ui/closeDialog.js:64
msgid "Force Quit"
msgstr "Tutup Paksa"
#: js/ui/closeDialog.js:64
#: js/ui/closeDialog.js:67
msgid "Wait"
msgstr "Tunggu"
@@ -854,7 +854,7 @@ msgstr "Drive eksternal terputus"
msgid "Open with %s"
msgstr "Buka dengan %s"
#: js/ui/components/keyring.js:107 js/ui/components/polkitAgent.js:295
#: js/ui/components/keyring.js:107 js/ui/components/polkitAgent.js:297
msgid "Password:"
msgstr "Sandi:"
@@ -891,11 +891,11 @@ msgstr "Sandi kunci privat: "
msgid "Service: "
msgstr "Layanan: "
#: js/ui/components/networkAgent.js:292 js/ui/components/networkAgent.js:659
#: js/ui/components/networkAgent.js:292 js/ui/components/networkAgent.js:664
msgid "Authentication required by wireless network"
msgstr "Otentikasi diperlukan oleh jaringan nirkabel"
#: js/ui/components/networkAgent.js:293 js/ui/components/networkAgent.js:660
#: js/ui/components/networkAgent.js:293 js/ui/components/networkAgent.js:665
#, javascript-format
msgid ""
"Passwords or encryption keys are required to access the wireless network "
@@ -904,7 +904,7 @@ msgstr ""
"Sandi atau kunci enkripsi diperlukan untuk mengakses jaringan nirkabel \"%s"
"\"."
#: js/ui/components/networkAgent.js:297 js/ui/components/networkAgent.js:663
#: js/ui/components/networkAgent.js:297 js/ui/components/networkAgent.js:668
msgid "Wired 802.1X authentication"
msgstr "Otentikasi 802.1X kabel"
@@ -912,15 +912,15 @@ msgstr "Otentikasi 802.1X kabel"
msgid "Network name: "
msgstr "Nama jaringan: "
#: js/ui/components/networkAgent.js:304 js/ui/components/networkAgent.js:667
#: js/ui/components/networkAgent.js:304 js/ui/components/networkAgent.js:672
msgid "DSL authentication"
msgstr "Otentikasi DSL"
#: js/ui/components/networkAgent.js:311 js/ui/components/networkAgent.js:673
#: js/ui/components/networkAgent.js:311 js/ui/components/networkAgent.js:678
msgid "PIN code required"
msgstr "Perlu kode PIN"
#: js/ui/components/networkAgent.js:312 js/ui/components/networkAgent.js:674
#: js/ui/components/networkAgent.js:312 js/ui/components/networkAgent.js:679
msgid "PIN code is needed for the mobile broadband device"
msgstr "Kode PIN diperlukan untuk perangkat data seluler"
@@ -928,17 +928,17 @@ msgstr "Kode PIN diperlukan untuk perangkat data seluler"
msgid "PIN: "
msgstr "PIN: "
#: js/ui/components/networkAgent.js:320 js/ui/components/networkAgent.js:680
#: js/ui/components/networkAgent.js:320 js/ui/components/networkAgent.js:685
msgid "Mobile broadband network password"
msgstr "Sandi jaringan data seluler"
#: js/ui/components/networkAgent.js:321 js/ui/components/networkAgent.js:664
#: js/ui/components/networkAgent.js:668 js/ui/components/networkAgent.js:681
#: js/ui/components/networkAgent.js:321 js/ui/components/networkAgent.js:669
#: js/ui/components/networkAgent.js:673 js/ui/components/networkAgent.js:686
#, javascript-format
msgid "A password is required to connect to “%s”."
msgstr "Perlu suatu sandi untuk menyambung ke \"%s\"."
#: js/ui/components/networkAgent.js:648 js/ui/status/network.js:1691
#: js/ui/components/networkAgent.js:653 js/ui/status/network.js:1704
msgid "Network Manager"
msgstr "Manajer Jaringan"
@@ -958,7 +958,7 @@ msgstr "Otentikasi"
#. * requested authentication was not gained; this can happen
#. * because of an authentication error (like invalid password),
#. * for instance.
#: js/ui/components/polkitAgent.js:281 js/ui/shellMountOperation.js:327
#: js/ui/components/polkitAgent.js:283 js/ui/shellMountOperation.js:327
msgid "Sorry, that didnt work. Please try again."
msgstr "Maaf, tidak berhasil. Silakan coba lagi."
@@ -1281,13 +1281,13 @@ msgid "Leave On"
msgstr "Biarkan Menyala"
#: js/ui/kbdA11yDialog.js:59 js/ui/status/bluetooth.js:143
#: js/ui/status/network.js:1281
#: js/ui/status/network.js:1294
msgid "Turn On"
msgstr "Nyalakan"
#: js/ui/kbdA11yDialog.js:67 js/ui/status/bluetooth.js:143
#: js/ui/status/network.js:154 js/ui/status/network.js:337
#: js/ui/status/network.js:1281 js/ui/status/network.js:1396
#: js/ui/status/network.js:1294 js/ui/status/network.js:1409
#: js/ui/status/nightLight.js:47 js/ui/status/rfkill.js:90
#: js/ui/status/rfkill.js:117
msgid "Turn Off"
@@ -1349,7 +1349,7 @@ msgstr "Tilik Sumber"
msgid "Web Page"
msgstr "Halaman Web"
#: js/ui/messageTray.js:1493
#: js/ui/messageTray.js:1495
msgid "System Information"
msgstr "Informasi Sistem"
@@ -1423,22 +1423,22 @@ msgstr "Tekan Esc untuk keluar"
msgid "Press any key to exit"
msgstr "Tekan tombol apa saja untuk keluar"
#: js/ui/panel.js:355
#: js/ui/panel.js:356
msgid "Quit"
msgstr "Keluar"
#. Translators: If there is no suitable word for "Activities"
#. in your language, you can use the word for "Overview".
#: js/ui/panel.js:411
#: js/ui/panel.js:412
msgid "Activities"
msgstr "Aktivitas"
#: js/ui/panel.js:692
#: js/ui/panel.js:693
msgctxt "System menu in the top bar"
msgid "System"
msgstr "Sistem"
#: js/ui/panel.js:811
#: js/ui/panel.js:816
msgid "Top Bar"
msgstr "Bar Atas"
@@ -1448,7 +1448,7 @@ msgstr "Bar Atas"
#. "ON" and "OFF") or "toggle-switch-intl" (for toggle
#. switches containing "◯" and "|"). Other values will
#. simply result in invisible toggle switches.
#: js/ui/popupMenu.js:291
#: js/ui/popupMenu.js:300
msgid "toggle-switch-us"
msgstr "toggle-switch-intl"
@@ -1456,15 +1456,15 @@ msgstr "toggle-switch-intl"
msgid "Enter a Command"
msgstr "Ketikkan Perintah"
#: js/ui/runDialog.js:110 js/ui/windowMenu.js:175
#: js/ui/runDialog.js:110 js/ui/windowMenu.js:174
msgid "Close"
msgstr "Tutup"
#: js/ui/runDialog.js:273
#: js/ui/runDialog.js:274
msgid "Restart is not available on Wayland"
msgstr "Memulai ulang tidak tersedia di Wayland"
#: js/ui/runDialog.js:278
#: js/ui/runDialog.js:279
msgid "Restarting…"
msgstr "Memulai ulang..."
@@ -1665,7 +1665,7 @@ msgid "<unknown>"
msgstr "<tak dikenal>"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:441 js/ui/status/network.js:1310
#: js/ui/status/network.js:441 js/ui/status/network.js:1323
#, javascript-format
msgid "%s Off"
msgstr "%s Mati"
@@ -1691,7 +1691,7 @@ msgid "%s Disconnecting"
msgstr "%s Memutus"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:459 js/ui/status/network.js:1302
#: js/ui/status/network.js:459 js/ui/status/network.js:1315
#, javascript-format
msgid "%s Connecting"
msgstr "%s Menyambung"
@@ -1731,7 +1731,7 @@ msgid "Mobile Broadband Settings"
msgstr "Pengaturan Data Seluler"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:578 js/ui/status/network.js:1307
#: js/ui/status/network.js:578 js/ui/status/network.js:1320
#, javascript-format
msgid "%s Hardware Disabled"
msgstr "%s Perangkat Keras Dinonaktifkan"
@@ -1787,78 +1787,78 @@ msgstr "Tiada Jaringan"
msgid "Use hardware switch to turn off"
msgstr "Pakai saklar perangkat keras untuk mematikan"
#: js/ui/status/network.js:1173
#: js/ui/status/network.js:1186
msgid "Select Network"
msgstr "Pilih Jaringan"
#: js/ui/status/network.js:1179
#: js/ui/status/network.js:1192
msgid "Wi-Fi Settings"
msgstr "Pengaturan Wi-Fi"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:1298
#: js/ui/status/network.js:1311
#, javascript-format
msgid "%s Hotspot Active"
msgstr "%s Hotspot Aktif"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:1313
#: js/ui/status/network.js:1326
#, javascript-format
msgid "%s Not Connected"
msgstr "%s Tak Tersambung"
#: js/ui/status/network.js:1413
#: js/ui/status/network.js:1426
msgid "connecting…"
msgstr "menghubungi..."
#. Translators: this is for network connections that require some kind of key or password
#: js/ui/status/network.js:1416
#: js/ui/status/network.js:1429
msgid "authentication required"
msgstr "diperlukan otentikasi"
#: js/ui/status/network.js:1418
#: js/ui/status/network.js:1431
msgid "connection failed"
msgstr "koneksi gagal"
#: js/ui/status/network.js:1472
#: js/ui/status/network.js:1485
msgid "VPN Settings"
msgstr "Pengaturan VPN"
#: js/ui/status/network.js:1485
#: js/ui/status/network.js:1498
msgid "VPN"
msgstr "VPN"
#: js/ui/status/network.js:1495
#: js/ui/status/network.js:1508
msgid "VPN Off"
msgstr "VPN Mati"
#: js/ui/status/network.js:1559 js/ui/status/rfkill.js:93
#: js/ui/status/network.js:1572 js/ui/status/rfkill.js:93
msgid "Network Settings"
msgstr "Pengaturan Jaringan"
#: js/ui/status/network.js:1588
#: js/ui/status/network.js:1601
#, javascript-format
msgid "%s Wired Connection"
msgid_plural "%s Wired Connections"
msgstr[0] "%s Koneksi Kabel"
#: js/ui/status/network.js:1592
#: js/ui/status/network.js:1605
#, javascript-format
msgid "%s Wi-Fi Connection"
msgid_plural "%s Wi-Fi Connections"
msgstr[0] "%s Koneksi Wi-Fi"
#: js/ui/status/network.js:1596
#: js/ui/status/network.js:1609
#, javascript-format
msgid "%s Modem Connection"
msgid_plural "%s Modem Connections"
msgstr[0] "%s Koneksi Modem"
#: js/ui/status/network.js:1728
#: js/ui/status/network.js:1741
msgid "Connection failed"
msgstr "Koneksi gagal"
#: js/ui/status/network.js:1729
#: js/ui/status/network.js:1742
msgid "Activation of network connection failed"
msgstr "Aktivasi koneksi jaringan gagal"
@@ -1909,6 +1909,14 @@ msgstr "%d:%02d Sampai Penuh (%d%%)"
msgid "%d%%"
msgstr "%d%%"
#: js/ui/status/remoteAccess.js:45
msgid "Screen is Being Shared"
msgstr "Layar Sedang Dibagi"
#: js/ui/status/remoteAccess.js:47
msgid "Turn off"
msgstr "Matikan"
#. The menu only appears when airplane mode is on, so just
#. statically build it as if it was on, rather than dynamically
#. changing the menu contents.
@@ -1940,16 +1948,16 @@ msgstr "Suspensi"
msgid "Power Off"
msgstr "Matikan"
#: js/ui/status/thunderbolt.js:294
#: js/ui/status/thunderbolt.js:298
msgid "Thunderbolt"
msgstr "Thunderbolt"
#. we are done
#: js/ui/status/thunderbolt.js:350
#: js/ui/status/thunderbolt.js:354
msgid "Unknown Thunderbolt device"
msgstr "Perangkat Thunderbolt tak dikenal"
#: js/ui/status/thunderbolt.js:351
#: js/ui/status/thunderbolt.js:355
msgid ""
"New device has been detected while you were away. Please disconnect and "
"reconnect the device to start using it."
@@ -1957,11 +1965,11 @@ msgstr ""
"Perangkat baru telah terdeteksi saat Anda pergi. Harap lepaskan dan "
"sambungkan kembali perangkat untuk mulai menggunakannya."
#: js/ui/status/thunderbolt.js:356
#: js/ui/status/thunderbolt.js:360
msgid "Thunderbolt authorization error"
msgstr "Autorisasi Thunderbolt galat"
#: js/ui/status/thunderbolt.js:357
#: js/ui/status/thunderbolt.js:361
#, javascript-format
msgid "Could not authorize the Thunderbolt device: %s"
msgstr "Tidak dapat mengautorisasi perangkat Thunderbolt: %s"
@@ -2046,7 +2054,7 @@ msgstr[0] "Perubahan tatanan akan dikembalikan dalam %d detik"
#. Translators: This represents the size of a window. The first number is
#. * the width of the window and the second is the height.
#: js/ui/windowManager.js:660
#: js/ui/windowManager.js:668
#, javascript-format
msgid "%d × %d"
msgstr "%d × %d"
@@ -2099,19 +2107,19 @@ msgstr "Pindah ke Ruang Kerja Atas"
msgid "Move to Workspace Down"
msgstr "Pindah ke Ruang Kerja Bawah"
#: js/ui/windowMenu.js:140
#: js/ui/windowMenu.js:139
msgid "Move to Monitor Up"
msgstr "Pindah ke Ruang Kerja Atas"
#: js/ui/windowMenu.js:149
#: js/ui/windowMenu.js:148
msgid "Move to Monitor Down"
msgstr "Pindah ke Ruang Kerja Bawah"
#: js/ui/windowMenu.js:158
#: js/ui/windowMenu.js:157
msgid "Move to Monitor Left"
msgstr "Pindahkan ke Monitor Kiri"
#: js/ui/windowMenu.js:167
#: js/ui/windowMenu.js:166
msgid "Move to Monitor Right"
msgstr "Pindahkan ke Monitor Kanan"
@@ -2140,12 +2148,12 @@ msgstr "Menggunakan mode tertentu, mis. \"gdm\" untuk layar masuk"
msgid "List possible modes"
msgstr "Menampilkan mode yang mungkin"
#: src/shell-app.c:270
#: src/shell-app.c:272
msgctxt "program"
msgid "Unknown"
msgstr "Tak dikenal"
#: src/shell-app.c:511
#: src/shell-app.c:523
#, c-format
msgid "Failed to launch “%s”"
msgstr "Gagal meluncurkan \"%s\""

734
po/it.po

File diff suppressed because it is too large Load Diff

458
po/kk.po

File diff suppressed because it is too large Load Diff

315
po/ko.po
View File

@@ -14,13 +14,14 @@
# - VPN: 가상사설망
# - pairing (bluetooth 관련): 페어링
# - Wayland: 웨일랜드로 음역
# - Night Light: 야간 모드 (gnome-control-center와 일치)
#
msgid ""
msgstr ""
"Project-Id-Version: gnome-shell\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell/issues\n"
"POT-Creation-Date: 2018-02-22 09:24+0000\n"
"PO-Revision-Date: 2018-02-25 09:21+0900\n"
"POT-Creation-Date: 2018-08-01 18:08+0000\n"
"PO-Revision-Date: 2018-08-26 15:05+0900\n"
"Last-Translator: Changwoo Ryu <cwryu@debian.org>\n"
"Language-Team: GNOME Korea <gnome-kr@googlegroups.com>\n"
"Language: ko\n"
@@ -283,32 +284,32 @@ msgstr ""
"참이면, 현재 작업 공간에 창이 있는 창만 창 전환 창에 표시합니다. 거짓이면 모"
"든 창을 표시합니다."
#: data/org.gnome.shell.gschema.xml.in:197
#: data/org.gnome.shell.gschema.xml.in:198
msgid "Attach modal dialog to the parent window"
msgstr "상위 창에 모달 대화창 붙이기"
#: data/org.gnome.shell.gschema.xml.in:198
#: data/org.gnome.shell.gschema.xml.in:207
#: data/org.gnome.shell.gschema.xml.in:215
#: data/org.gnome.shell.gschema.xml.in:223
#: data/org.gnome.shell.gschema.xml.in:231
#: data/org.gnome.shell.gschema.xml.in:199
#: data/org.gnome.shell.gschema.xml.in:208
#: data/org.gnome.shell.gschema.xml.in:216
#: data/org.gnome.shell.gschema.xml.in:224
#: data/org.gnome.shell.gschema.xml.in:232
msgid ""
"This key overrides the key in org.gnome.mutter when running GNOME Shell."
msgstr "그놈 셸을 실행할 때 org.gnome.mutter의 키 대신 사용됩니다."
#: data/org.gnome.shell.gschema.xml.in:206
#: data/org.gnome.shell.gschema.xml.in:207
msgid "Enable edge tiling when dropping windows on screen edges"
msgstr "화면 가장자리에 창을 놓을 때 가장자리에 맞춥니다"
#: data/org.gnome.shell.gschema.xml.in:214
#: data/org.gnome.shell.gschema.xml.in:215
msgid "Workspaces are managed dynamically"
msgstr "작업 공간을 동적으로 관리"
#: data/org.gnome.shell.gschema.xml.in:222
#: data/org.gnome.shell.gschema.xml.in:223
msgid "Workspaces only on primary monitor"
msgstr "주 모니터에서만 작업 공간 사용"
#: data/org.gnome.shell.gschema.xml.in:230
#: data/org.gnome.shell.gschema.xml.in:231
msgid "Delay focus changes in mouse mode until the pointer stops moving"
msgstr "마우스 포인터가 움직이지 않을 때까지 포커스 전환을 미루기"
@@ -327,7 +328,7 @@ msgid "There was an error loading the preferences dialog for %s:"
msgstr "%s에 대한 기본 설정 대화상자를 불러오는데 오류가 발생했습니다:"
#: js/gdm/authPrompt.js:147 js/ui/audioDeviceSelection.js:71
#: js/ui/components/networkAgent.js:117 js/ui/components/polkitAgent.js:148
#: js/ui/components/networkAgent.js:117 js/ui/components/polkitAgent.js:153
#: js/ui/endSessionDialog.js:482 js/ui/extensionDownloader.js:197
#: js/ui/shellMountOperation.js:343 js/ui/status/network.js:919
msgid "Cancel"
@@ -347,20 +348,20 @@ msgctxt "button"
msgid "Sign In"
msgstr "로그인"
#: js/gdm/loginDialog.js:315
#: js/gdm/loginDialog.js:319
msgid "Choose Session"
msgstr "세션 선택"
#. translators: this message is shown below the user list on the
#. login screen. It can be activated to reveal an entry for
#. manually entering the username.
#: js/gdm/loginDialog.js:458
#: js/gdm/loginDialog.js:462
msgid "Not listed?"
msgstr "목록에 없습니까?"
#. Translators: this message is shown below the username entry field
#. to clue the user in on how to login to the local network realm
#: js/gdm/loginDialog.js:887
#: js/gdm/loginDialog.js:891
#, javascript-format
msgid "(e.g., user or %s)"
msgstr "(예를 들어, 사용자 또는 %s)"
@@ -368,12 +369,12 @@ msgstr "(예를 들어, 사용자 또는 %s)"
#. TTLS and PEAP are actually much more complicated, but this complication
#. is not visible here since we only care about phase2 authentication
#. (and don't even care of which one)
#: js/gdm/loginDialog.js:892 js/ui/components/networkAgent.js:243
#: js/gdm/loginDialog.js:896 js/ui/components/networkAgent.js:243
#: js/ui/components/networkAgent.js:261
msgid "Username: "
msgstr "사용자 이름: "
#: js/gdm/loginDialog.js:1228
#: js/gdm/loginDialog.js:1234
msgid "Login Window"
msgstr "로그인 창"
@@ -386,7 +387,7 @@ msgstr "인증 오류"
#. as a cue to display our own message.
#. Translators: this message is shown below the password entry field
#. to indicate the user can swipe their finger instead
#: js/gdm/util.js:482
#: js/gdm/util.js:485
msgid "(or swipe finger)"
msgstr "(또는 지문을 문지르십시오)"
@@ -621,33 +622,33 @@ msgstr "자주"
msgid "All"
msgstr "모두"
#: js/ui/appDisplay.js:1886
#: js/ui/appDisplay.js:1890
msgid "New Window"
msgstr "새 창"
#: js/ui/appDisplay.js:1900
#: js/ui/appDisplay.js:1904
msgid "Launch using Dedicated Graphics Card"
msgstr "지정한 그래픽 카드를 사용해 시작"
#: js/ui/appDisplay.js:1927 js/ui/dash.js:285
#: js/ui/appDisplay.js:1931 js/ui/dash.js:285
msgid "Remove from Favorites"
msgstr "즐겨찾기에서 제거"
#: js/ui/appDisplay.js:1933
#: js/ui/appDisplay.js:1937
msgid "Add to Favorites"
msgstr "즐겨찾기에 추가"
# 주의: "Show ..." 형태지만 보이기로 번역하지 않는다
#: js/ui/appDisplay.js:1943
#: js/ui/appDisplay.js:1947
msgid "Show Details"
msgstr "자세히 보기"
#: js/ui/appFavorites.js:138
#: js/ui/appFavorites.js:140
#, javascript-format
msgid "%s has been added to your favorites."
msgstr "%s 프로그램을 즐겨찾기에 추가했습니다."
#: js/ui/appFavorites.js:172
#: js/ui/appFavorites.js:174
#, javascript-format
msgid "%s has been removed from your favorites."
msgstr "%s 프로그램을 즐겨찾기에서 제거했습니다."
@@ -668,7 +669,7 @@ msgstr "헤드폰"
msgid "Headset"
msgstr "헤드셋"
#: js/ui/audioDeviceSelection.js:82 js/ui/status/volume.js:221
#: js/ui/audioDeviceSelection.js:82 js/ui/status/volume.js:255
msgid "Microphone"
msgstr "마이크"
@@ -680,7 +681,7 @@ msgstr "배경 바꾸기…"
msgid "Display Settings"
msgstr "디스플레이 설정"
#: js/ui/backgroundMenu.js:22 js/ui/status/system.js:264
#: js/ui/backgroundMenu.js:22
msgid "Settings"
msgstr "설정"
@@ -785,46 +786,46 @@ msgctxt "event list time"
msgid "All Day"
msgstr "종일"
#: js/ui/calendar.js:864
#: js/ui/calendar.js:866
msgctxt "calendar heading"
msgid "%A, %B %d"
msgstr "%B %d일 %A"
#: js/ui/calendar.js:868
#: js/ui/calendar.js:870
msgctxt "calendar heading"
msgid "%A, %B %d, %Y"
msgstr "%Y년 %B %d일 %A"
#: js/ui/calendar.js:1086
#: js/ui/calendar.js:1100
msgid "No Notifications"
msgstr "알림 없음"
#: js/ui/calendar.js:1089
#: js/ui/calendar.js:1103
msgid "No Events"
msgstr "행사 없음"
#: js/ui/calendar.js:1117
#: js/ui/calendar.js:1131
msgid "Clear All"
msgstr "모두 지우기"
#. Translators: %s is an application name
#: js/ui/closeDialog.js:44
#: js/ui/closeDialog.js:47
#, javascript-format
msgid "“%s” is not responding."
msgstr "“%s” 프로그램이 응답하지 않습니다."
#: js/ui/closeDialog.js:45
#: js/ui/closeDialog.js:48
msgid ""
"You may choose to wait a short while for it to continue or force the "
"application to quit entirely."
msgstr ""
"좀 더 기다려서 계속 할 수도 있고, 강제로 프로그램을 끝낼 수도 있습니다."
#: js/ui/closeDialog.js:61
#: js/ui/closeDialog.js:64
msgid "Force Quit"
msgstr "강제로 끝내기"
#: js/ui/closeDialog.js:64
#: js/ui/closeDialog.js:67
msgid "Wait"
msgstr "기다리기"
@@ -841,7 +842,7 @@ msgstr "외부 드라이브 연결 끊김"
msgid "Open with %s"
msgstr "%s 프로그램으로 열기"
#: js/ui/components/keyring.js:107 js/ui/components/polkitAgent.js:284
#: js/ui/components/keyring.js:107 js/ui/components/polkitAgent.js:297
msgid "Password:"
msgstr "암호:"
@@ -878,18 +879,18 @@ msgstr "개인 키 암호: "
msgid "Service: "
msgstr "서비스: "
#: js/ui/components/networkAgent.js:292 js/ui/components/networkAgent.js:659
#: js/ui/components/networkAgent.js:292 js/ui/components/networkAgent.js:664
msgid "Authentication required by wireless network"
msgstr "무선 네트워크에서 인증이 필요합니다"
#: js/ui/components/networkAgent.js:293 js/ui/components/networkAgent.js:660
#: js/ui/components/networkAgent.js:293 js/ui/components/networkAgent.js:665
#, javascript-format
msgid ""
"Passwords or encryption keys are required to access the wireless network "
"“%s”."
msgstr "“%s” 무선 네트워크에 연결하려면 암호 또는 암호화 키가 필요합니다."
#: js/ui/components/networkAgent.js:297 js/ui/components/networkAgent.js:663
#: js/ui/components/networkAgent.js:297 js/ui/components/networkAgent.js:668
msgid "Wired 802.1X authentication"
msgstr "유선 802.1X 인증"
@@ -897,15 +898,15 @@ msgstr "유선 802.1X 인증"
msgid "Network name: "
msgstr "네트워크 이름: "
#: js/ui/components/networkAgent.js:304 js/ui/components/networkAgent.js:667
#: js/ui/components/networkAgent.js:304 js/ui/components/networkAgent.js:672
msgid "DSL authentication"
msgstr "인증이 필요합니다"
#: js/ui/components/networkAgent.js:311 js/ui/components/networkAgent.js:673
#: js/ui/components/networkAgent.js:311 js/ui/components/networkAgent.js:678
msgid "PIN code required"
msgstr "PIN 코드가 필요합니다"
#: js/ui/components/networkAgent.js:312 js/ui/components/networkAgent.js:674
#: js/ui/components/networkAgent.js:312 js/ui/components/networkAgent.js:679
msgid "PIN code is needed for the mobile broadband device"
msgstr "휴대전화 네트워크 장치를 사용하려면 PIN 코드가 필요합니다"
@@ -913,29 +914,29 @@ msgstr "휴대전화 네트워크 장치를 사용하려면 PIN 코드가 필요
msgid "PIN: "
msgstr "PIN: "
#: js/ui/components/networkAgent.js:320 js/ui/components/networkAgent.js:680
#: js/ui/components/networkAgent.js:320 js/ui/components/networkAgent.js:685
msgid "Mobile broadband network password"
msgstr "휴대전화 네트워크 암호"
#: js/ui/components/networkAgent.js:321 js/ui/components/networkAgent.js:664
#: js/ui/components/networkAgent.js:668 js/ui/components/networkAgent.js:681
#: js/ui/components/networkAgent.js:321 js/ui/components/networkAgent.js:669
#: js/ui/components/networkAgent.js:673 js/ui/components/networkAgent.js:686
#, javascript-format
msgid "A password is required to connect to “%s”."
msgstr "“%s”에 연결하려면 암호가 필요합니다."
#: js/ui/components/networkAgent.js:648 js/ui/status/network.js:1691
#: js/ui/components/networkAgent.js:653 js/ui/status/network.js:1704
msgid "Network Manager"
msgstr "네트워크 관리"
#: js/ui/components/polkitAgent.js:43
#: js/ui/components/polkitAgent.js:48
msgid "Authentication Required"
msgstr "인증이 필요합니다"
#: js/ui/components/polkitAgent.js:71
#: js/ui/components/polkitAgent.js:76
msgid "Administrator"
msgstr "관리자"
#: js/ui/components/polkitAgent.js:151
#: js/ui/components/polkitAgent.js:156
msgid "Authenticate"
msgstr "인증"
@@ -943,7 +944,7 @@ msgstr "인증"
#. * requested authentication was not gained; this can happen
#. * because of an authentication error (like invalid password),
#. * for instance.
#: js/ui/components/polkitAgent.js:270 js/ui/shellMountOperation.js:327
#: js/ui/components/polkitAgent.js:283 js/ui/shellMountOperation.js:327
msgid "Sorry, that didnt work. Please try again."
msgstr "죄송합니다. 동작하지 않았습니다. 다시 시도하십시오."
@@ -991,7 +992,7 @@ msgstr "세계 시계 추가…"
msgid "World Clocks"
msgstr "세계 시계"
#: js/ui/dateMenu.js:225
#: js/ui/dateMenu.js:227
msgid "Weather"
msgstr "날씨"
@@ -999,7 +1000,7 @@ msgstr "날씨"
#. libgweather for the possible condition strings. If at all
#. possible, the sentence should match the grammatical case etc. of
#. the inserted conditions.
#: js/ui/dateMenu.js:289
#: js/ui/dateMenu.js:291
#, javascript-format
msgid "%s all day."
msgstr "하루 종일 %s."
@@ -1008,7 +1009,7 @@ msgstr "하루 종일 %s."
#. libgweather for the possible condition strings. If at all
#. possible, the sentence should match the grammatical case etc. of
#. the inserted conditions.
#: js/ui/dateMenu.js:295
#: js/ui/dateMenu.js:297
#, javascript-format
msgid "%s, then %s later."
msgstr "%s, 그리고 나중에 %s."
@@ -1017,30 +1018,30 @@ msgstr "%s, 그리고 나중에 %s."
#. libgweather for the possible condition strings. If at all
#. possible, the sentence should match the grammatical case etc. of
#. the inserted conditions.
#: js/ui/dateMenu.js:301
#: js/ui/dateMenu.js:303
#, javascript-format
msgid "%s, then %s, followed by %s later."
msgstr "%s, 그리고 %s, 또 나중에 %s."
#: js/ui/dateMenu.js:312
#: js/ui/dateMenu.js:314
msgid "Select a location…"
msgstr "위치를 선택하십시오…"
#: js/ui/dateMenu.js:315
#: js/ui/dateMenu.js:317
msgid "Loading…"
msgstr "읽어들이는 중…"
#. Translators: %s is a temperature with unit, e.g. "23℃"
#: js/ui/dateMenu.js:321
#: js/ui/dateMenu.js:323
#, javascript-format
msgid "Feels like %s."
msgstr "체감 온도 %s."
#: js/ui/dateMenu.js:324
#: js/ui/dateMenu.js:326
msgid "Go online for weather information"
msgstr "날씨 정보를 온라인으로 가져옵니다"
#: js/ui/dateMenu.js:326
#: js/ui/dateMenu.js:328
msgid "Weather information is currently unavailable"
msgstr "날씨 정보를 현재 사용할 수 없습니다"
@@ -1228,7 +1229,9 @@ msgstr "느린 키 끔"
msgid ""
"You just held down the Shift key for 8 seconds. This is the shortcut for the "
"Slow Keys feature, which affects the way your keyboard works."
msgstr "Shift 키를 8초 동안 누르고 있었습니다. 느린 키 기능의 바로 가기이고, 이렇게 하면 키보드 동작이 달라집니다."
msgstr ""
"Shift 키를 8초 동안 누르고 있었습니다. 느린 키 기능의 바로 가기이고, 이렇게 "
"하면 키보드 동작이 달라집니다."
#: js/ui/kbdA11yDialog.js:42
msgid "Sticky Keys Turned On"
@@ -1260,13 +1263,13 @@ msgid "Leave On"
msgstr "계속 유지"
#: js/ui/kbdA11yDialog.js:59 js/ui/status/bluetooth.js:143
#: js/ui/status/network.js:1281
#: js/ui/status/network.js:1294
msgid "Turn On"
msgstr "켜기"
#: js/ui/kbdA11yDialog.js:67 js/ui/status/bluetooth.js:143
#: js/ui/status/network.js:154 js/ui/status/network.js:337
#: js/ui/status/network.js:1281 js/ui/status/network.js:1396
#: js/ui/status/network.js:1294 js/ui/status/network.js:1409
#: js/ui/status/nightLight.js:47 js/ui/status/rfkill.js:90
#: js/ui/status/rfkill.js:117
msgid "Turn Off"
@@ -1328,7 +1331,7 @@ msgstr "소스 보기"
msgid "Web Page"
msgstr "웹페이지"
#: js/ui/messageTray.js:1493
#: js/ui/messageTray.js:1495
msgid "System Information"
msgstr "시스템 정보"
@@ -1340,6 +1343,11 @@ msgstr "알 수 없는 음악가"
msgid "Unknown title"
msgstr "알 수 없는 제목"
# 오디오 볼륨
#: js/ui/osdWindow.js:32 js/ui/status/volume.js:204
msgid "Volume"
msgstr "볼륨"
#: js/ui/overview.js:83
msgid "Undo"
msgstr "실행 취소"
@@ -1382,42 +1390,42 @@ msgstr "키 누르기 지정"
msgid "Done"
msgstr "마침"
#: js/ui/padOsd.js:740
#: js/ui/padOsd.js:742
msgid "Edit…"
msgstr "편집…"
#: js/ui/padOsd.js:782 js/ui/padOsd.js:887
#: js/ui/padOsd.js:784 js/ui/padOsd.js:889
msgid "None"
msgstr "없음"
#: js/ui/padOsd.js:841
#: js/ui/padOsd.js:843
msgid "Press a button to configure"
msgstr "설정하려면 단추를 누르십시오"
#: js/ui/padOsd.js:842
#: js/ui/padOsd.js:844
msgid "Press Esc to exit"
msgstr "나가려면 Esc를 누르십시오"
#: js/ui/padOsd.js:845
#: js/ui/padOsd.js:847
msgid "Press any key to exit"
msgstr "나가려면 아무 키나 누르십시오"
#: js/ui/panel.js:355
#: js/ui/panel.js:356
msgid "Quit"
msgstr "끝내기"
#. Translators: If there is no suitable word for "Activities"
#. in your language, you can use the word for "Overview".
#: js/ui/panel.js:411
#: js/ui/panel.js:412
msgid "Activities"
msgstr "현재 활동"
#: js/ui/panel.js:692
#: js/ui/panel.js:693
msgctxt "System menu in the top bar"
msgid "System"
msgstr "시스템"
#: js/ui/panel.js:811
#: js/ui/panel.js:816
msgid "Top Bar"
msgstr "위 막대"
@@ -1426,23 +1434,23 @@ msgstr "위 막대"
#. "ON" and "OFF") or "toggle-switch-intl" (for toggle
#. switches containing "◯" and "|"). Other values will
#. simply result in invisible toggle switches.
#: js/ui/popupMenu.js:291
#: js/ui/popupMenu.js:300
msgid "toggle-switch-us"
msgstr "toggle-switch-intl"
#: js/ui/runDialog.js:70
#: js/ui/runDialog.js:74
msgid "Enter a Command"
msgstr "명령을 입력하십시오"
#: js/ui/runDialog.js:110 js/ui/windowMenu.js:175
#: js/ui/runDialog.js:114 js/ui/windowMenu.js:174
msgid "Close"
msgstr "닫기"
#: js/ui/runDialog.js:273
#: js/ui/runDialog.js:278
msgid "Restart is not available on Wayland"
msgstr "웨일랜드에서는 다시 시작 기능을 사용할 수 없습니다"
#: js/ui/runDialog.js:278
#: js/ui/runDialog.js:283
msgid "Restarting…"
msgstr "다시 시작하는 중…"
@@ -1464,7 +1472,7 @@ msgid "%d new notification"
msgid_plural "%d new notifications"
msgstr[0] "새 알림 %d개"
#: js/ui/screenShield.js:451 js/ui/status/system.js:283
#: js/ui/screenShield.js:451 js/ui/status/system.js:294
msgid "Lock"
msgstr "잠그기"
@@ -1643,7 +1651,7 @@ msgid "<unknown>"
msgstr "<알 수 없음>"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:441 js/ui/status/network.js:1310
#: js/ui/status/network.js:441 js/ui/status/network.js:1323
#, javascript-format
msgid "%s Off"
msgstr "%s 꺼짐"
@@ -1669,7 +1677,7 @@ msgid "%s Disconnecting"
msgstr "%s 연결 끊는 중"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:459 js/ui/status/network.js:1302
#: js/ui/status/network.js:459 js/ui/status/network.js:1315
#, javascript-format
msgid "%s Connecting"
msgstr "%s 연결하는 중"
@@ -1709,7 +1717,7 @@ msgid "Mobile Broadband Settings"
msgstr "휴대전화 네트워크 설정"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:578 js/ui/status/network.js:1307
#: js/ui/status/network.js:578 js/ui/status/network.js:1320
#, javascript-format
msgid "%s Hardware Disabled"
msgstr "%s 하드웨어 사용 않음"
@@ -1765,88 +1773,88 @@ msgstr "네트워크 없음"
msgid "Use hardware switch to turn off"
msgstr "끄려면 하드웨어 스위치를 사용하십시오"
#: js/ui/status/network.js:1173
#: js/ui/status/network.js:1186
msgid "Select Network"
msgstr "네트워크 선택"
#: js/ui/status/network.js:1179
#: js/ui/status/network.js:1192
msgid "Wi-Fi Settings"
msgstr "와이파이 설정"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:1298
#: js/ui/status/network.js:1311
#, javascript-format
msgid "%s Hotspot Active"
msgstr "%s 핫스팟 사용 중"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:1313
#: js/ui/status/network.js:1326
#, javascript-format
msgid "%s Not Connected"
msgstr "%s 연결되지 않음"
#: js/ui/status/network.js:1413
#: js/ui/status/network.js:1426
msgid "connecting…"
msgstr "연결하는 중…"
#. Translators: this is for network connections that require some kind of key or password
#: js/ui/status/network.js:1416
#: js/ui/status/network.js:1429
msgid "authentication required"
msgstr "인증 필요"
#: js/ui/status/network.js:1418
#: js/ui/status/network.js:1431
msgid "connection failed"
msgstr "연결 실패"
#: js/ui/status/network.js:1472
#: js/ui/status/network.js:1485
msgid "VPN Settings"
msgstr "가상사설망 설정"
#: js/ui/status/network.js:1485
#: js/ui/status/network.js:1498
msgid "VPN"
msgstr "가상사설망"
#: js/ui/status/network.js:1495
#: js/ui/status/network.js:1508
msgid "VPN Off"
msgstr "가상사설망 꺼짐"
#: js/ui/status/network.js:1559 js/ui/status/rfkill.js:93
#: js/ui/status/network.js:1572 js/ui/status/rfkill.js:93
msgid "Network Settings"
msgstr "네트워크 설정"
#: js/ui/status/network.js:1588
#: js/ui/status/network.js:1601
#, javascript-format
msgid "%s Wired Connection"
msgid_plural "%s Wired Connections"
msgstr[0] "%s 유선 연결"
#: js/ui/status/network.js:1592
#: js/ui/status/network.js:1605
#, javascript-format
msgid "%s Wi-Fi Connection"
msgid_plural "%s Wi-Fi Connections"
msgstr[0] "%s 와이파이 연결"
#: js/ui/status/network.js:1596
#: js/ui/status/network.js:1609
#, javascript-format
msgid "%s Modem Connection"
msgid_plural "%s Modem Connections"
msgstr[0] "%s 모뎀 연결"
#: js/ui/status/network.js:1728
#: js/ui/status/network.js:1741
msgid "Connection failed"
msgstr "연결이 실패했습니다"
#: js/ui/status/network.js:1729
#: js/ui/status/network.js:1742
msgid "Activation of network connection failed"
msgstr "네트워크 연결이 실패했습니다"
#: js/ui/status/nightLight.js:68
msgid "Night Light Disabled"
msgstr "야간 조명 사용하지 않음"
msgstr "야간 모드 사용하지 않음"
#: js/ui/status/nightLight.js:69
msgid "Night Light On"
msgstr "야간 조명 켬"
msgstr "야간 모드 켬"
#: js/ui/status/nightLight.js:70
msgid "Resume"
@@ -1887,6 +1895,14 @@ msgstr "충전까지 %d:%02d(%d %%)"
msgid "%d%%"
msgstr "%d%%"
#: js/ui/status/remoteAccess.js:46
msgid "Screen is Being Shared"
msgstr "화면을 공유하는 중입니다"
#: js/ui/status/remoteAccess.js:48
msgid "Turn off"
msgstr "끄기"
#. The menu only appears when airplane mode is on, so just
#. statically build it as if it was on, rather than dynamically
#. changing the menu contents.
@@ -1906,28 +1922,28 @@ msgstr "로그아웃"
msgid "Account Settings"
msgstr "계정 설정"
#: js/ui/status/system.js:268
#: js/ui/status/system.js:279
msgid "Orientation Lock"
msgstr "방향 잠금"
#: js/ui/status/system.js:294
#: js/ui/status/system.js:305
msgid "Suspend"
msgstr "절전"
#: js/ui/status/system.js:304
#: js/ui/status/system.js:315
msgid "Power Off"
msgstr "컴퓨터 끄기"
#: js/ui/status/thunderbolt.js:272
#: js/ui/status/thunderbolt.js:298
msgid "Thunderbolt"
msgstr "썬더볼트"
#. we are done
#: js/ui/status/thunderbolt.js:328
#: js/ui/status/thunderbolt.js:354
msgid "Unknown Thunderbolt device"
msgstr "알 수 없는 썬더볼트 장치"
#: js/ui/status/thunderbolt.js:329
#: js/ui/status/thunderbolt.js:355
msgid ""
"New device has been detected while you were away. Please disconnect and "
"reconnect the device to start using it."
@@ -1935,25 +1951,20 @@ msgstr ""
"자리에 없는 동안 새 장치를 검색했습니다. 이 장치를 사용하려면 장치 연결을 끊"
"었다가 다시 연결하십시오."
#: js/ui/status/thunderbolt.js:334
#: js/ui/status/thunderbolt.js:360
msgid "Thunderbolt authorization error"
msgstr "썬더볼트 권한 오류"
#: js/ui/status/thunderbolt.js:335
#: js/ui/status/thunderbolt.js:361
#, javascript-format
msgid "Could not authorize the thunderbolt device: %s"
msgid "Could not authorize the Thunderbolt device: %s"
msgstr "썬더볼트 장치에 권한을 부여할 수 없습니다: %s"
# 오디오 볼륨
#: js/ui/status/volume.js:128
#: js/ui/status/volume.js:135
msgid "Volume changed"
msgstr "볼륨 바꿈"
# 오디오 볼륨
#: js/ui/status/volume.js:170
msgid "Volume"
msgstr "볼륨"
#. Translators: this is for display mirroring i.e. cloning.
#. * Try to keep it under around 15 characters.
#.
@@ -2003,22 +2014,22 @@ msgstr "검색"
msgid "“%s” is ready"
msgstr "“%s” 프로그램이 준비되었습니다"
#: js/ui/windowManager.js:72
#: js/ui/windowManager.js:74
msgid "Do you want to keep these display settings?"
msgstr "이 디스플레이 설정을 유지하시겠습니까?"
#. Translators: this and the following message should be limited in lenght,
#. to avoid ellipsizing the labels.
#.
#: js/ui/windowManager.js:84
#: js/ui/windowManager.js:86
msgid "Revert Settings"
msgstr "설정 되돌리기"
#: js/ui/windowManager.js:87
#: js/ui/windowManager.js:89
msgid "Keep Changes"
msgstr "바뀐 사항 유지"
#: js/ui/windowManager.js:105
#: js/ui/windowManager.js:107
#, javascript-format
msgid "Settings changes will revert in %d second"
msgid_plural "Settings changes will revert in %d seconds"
@@ -2026,7 +2037,7 @@ msgstr[0] "바뀐 설정을 %d초 후에 되돌립니다"
#. Translators: This represents the size of a window. The first number is
#. * the width of the window and the second is the height.
#: js/ui/windowManager.js:660
#: js/ui/windowManager.js:689
#, javascript-format
msgid "%d × %d"
msgstr "%d × %d"
@@ -2079,19 +2090,19 @@ msgstr "위 작업 공간으로 옮기기"
msgid "Move to Workspace Down"
msgstr "아래 작업 공간으로 옮기기"
#: js/ui/windowMenu.js:140
#: js/ui/windowMenu.js:139
msgid "Move to Monitor Up"
msgstr "위 모니터로 옮기기"
#: js/ui/windowMenu.js:149
#: js/ui/windowMenu.js:148
msgid "Move to Monitor Down"
msgstr "아래 모니터로 옮기기"
#: js/ui/windowMenu.js:158
#: js/ui/windowMenu.js:157
msgid "Move to Monitor Left"
msgstr "왼쪽 모니터로 옮기기"
#: js/ui/windowMenu.js:167
#: js/ui/windowMenu.js:166
msgid "Move to Monitor Right"
msgstr "오른쪽 모니터로 옮기기"
@@ -2105,28 +2116,28 @@ msgid "evolution"
msgstr "evolution"
# 커맨드라인 옵션 설명
#: src/main.c:432
#: src/main.c:410
msgid "Print version"
msgstr "버전을 표시합니다"
#: src/main.c:438
#: src/main.c:416
msgid "Mode used by GDM for login screen"
msgstr "GDM에서 로그인 화면에 사용할 모드"
#: src/main.c:444
#: src/main.c:422
msgid "Use a specific mode, e.g. “gdm” for login screen"
msgstr "특정 모드 사용. 예를 들어 로그인 화면에 대해 “gdm”"
#: src/main.c:450
#: src/main.c:428
msgid "List possible modes"
msgstr "가능한 모드 목록 표시"
#: src/shell-app.c:270
#: src/shell-app.c:272
msgctxt "program"
msgid "Unknown"
msgstr "알 수 없음"
#: src/shell-app.c:511
#: src/shell-app.c:523
#, c-format
msgid "Failed to launch “%s”"
msgstr "“%s” 실행에 실패했습니다"
@@ -2162,45 +2173,3 @@ msgstr[0] "%u개 입력"
#: subprojects/gvc/gvc-mixer-control.c:2738
msgid "System Sounds"
msgstr "시스템 소리"
#~ msgctxt "search-result"
#~ msgid "Power off"
#~ msgstr "컴퓨터 끄기"
#~ msgctxt "search-result"
#~ msgid "Log out"
#~ msgstr "로그아웃"
#~ msgctxt "search-result"
#~ msgid "Switch user"
#~ msgstr "사용자 바꾸기"
#~ msgid "Hide tray"
#~ msgstr "트레이 숨기기"
#~ msgid "Status Icons"
#~ msgstr "상태 아이콘"
#~ msgid "GNOME Shell Extension Preferences"
#~ msgstr "그놈 셸 확장 기본 설정"
#~ msgid "Web Authentication Redirect"
#~ msgstr "웹 인증 리다이렉트"
#~ msgid "Events"
#~ msgstr "행사"
#~ msgid "Notifications"
#~ msgstr "알림"
#~ msgid "Clear section"
#~ msgstr "부분 지우기"
#~ msgid "Media"
#~ msgstr "미디어"
#~ msgid "Not In Use"
#~ msgstr "사용 중 아님"
#~ msgid "%d x %d"
#~ msgstr "%d x %d"

1043
po/lv.po

File diff suppressed because it is too large Load Diff

232
po/sv.po
View File

@@ -11,8 +11,8 @@ msgid ""
msgstr ""
"Project-Id-Version: gnome-shell\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell/issues\n"
"POT-Creation-Date: 2018-04-13 19:54+0000\n"
"PO-Revision-Date: 2018-05-20 19:24+0200\n"
"POT-Creation-Date: 2018-08-01 18:08+0000\n"
"PO-Revision-Date: 2018-08-16 01:11+0200\n"
"Last-Translator: Anders Jonsson <anders.jonsson@norsjovallen.se>\n"
"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
"Language: sv\n"
@@ -20,7 +20,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 2.0.7\n"
"X-Generator: Poedit 2.1.1\n"
#: data/50-gnome-shell-system.xml:6
msgid "System"
@@ -287,33 +287,33 @@ msgstr ""
"Om satt till \"true\", visas endast fönster från den aktuella arbetsytan i "
"väljaren. I annat fall inkluderas alla fönster."
#: data/org.gnome.shell.gschema.xml.in:197
#: data/org.gnome.shell.gschema.xml.in:198
msgid "Attach modal dialog to the parent window"
msgstr "Fäst modal dialog till föräldrafönstret"
#: data/org.gnome.shell.gschema.xml.in:198
#: data/org.gnome.shell.gschema.xml.in:207
#: data/org.gnome.shell.gschema.xml.in:215
#: data/org.gnome.shell.gschema.xml.in:223
#: data/org.gnome.shell.gschema.xml.in:231
#: data/org.gnome.shell.gschema.xml.in:199
#: data/org.gnome.shell.gschema.xml.in:208
#: data/org.gnome.shell.gschema.xml.in:216
#: data/org.gnome.shell.gschema.xml.in:224
#: data/org.gnome.shell.gschema.xml.in:232
msgid ""
"This key overrides the key in org.gnome.mutter when running GNOME Shell."
msgstr ""
"Denna nyckel åsidosätter nyckeln i org.gnome.mutter när GNOME-skalet körs."
#: data/org.gnome.shell.gschema.xml.in:206
#: data/org.gnome.shell.gschema.xml.in:207
msgid "Enable edge tiling when dropping windows on screen edges"
msgstr "Slå på kantdockning när fönster släpps på skärmkanter"
#: data/org.gnome.shell.gschema.xml.in:214
#: data/org.gnome.shell.gschema.xml.in:215
msgid "Workspaces are managed dynamically"
msgstr "Arbetsytor hanteras dynamiskt"
#: data/org.gnome.shell.gschema.xml.in:222
#: data/org.gnome.shell.gschema.xml.in:223
msgid "Workspaces only on primary monitor"
msgstr "Arbetsytor endast på primär skärm"
#: data/org.gnome.shell.gschema.xml.in:230
#: data/org.gnome.shell.gschema.xml.in:231
msgid "Delay focus changes in mouse mode until the pointer stops moving"
msgstr "Fördröj fokusändringar i musläge tills pekare slutar röra sig"
@@ -352,20 +352,20 @@ msgctxt "button"
msgid "Sign In"
msgstr "Logga in"
#: js/gdm/loginDialog.js:315
#: js/gdm/loginDialog.js:319
msgid "Choose Session"
msgstr "Välj session"
#. translators: this message is shown below the user list on the
#. login screen. It can be activated to reveal an entry for
#. manually entering the username.
#: js/gdm/loginDialog.js:458
#: js/gdm/loginDialog.js:462
msgid "Not listed?"
msgstr "Inte listad?"
#. 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:887
#: js/gdm/loginDialog.js:891
#, javascript-format
msgid "(e.g., user or %s)"
msgstr "(till exempel användare eller %s)"
@@ -373,12 +373,12 @@ msgstr "(till exempel användare eller %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:892 js/ui/components/networkAgent.js:243
#: js/gdm/loginDialog.js:896 js/ui/components/networkAgent.js:243
#: js/ui/components/networkAgent.js:261
msgid "Username: "
msgstr "Användarnamn: "
#: js/gdm/loginDialog.js:1228
#: js/gdm/loginDialog.js:1234
msgid "Login Window"
msgstr "Inloggningsfönster"
@@ -391,7 +391,7 @@ msgstr "Autentiseringsfel"
#. as a cue to display our own message.
#. Translators: this message is shown below the password entry field
#. to indicate the user can swipe their finger instead
#: js/gdm/util.js:482
#: js/gdm/util.js:485
msgid "(or swipe finger)"
msgstr "(eller dra fingret)"
@@ -632,23 +632,23 @@ msgstr "Ofta använda"
msgid "All"
msgstr "Alla"
#: js/ui/appDisplay.js:1886
#: js/ui/appDisplay.js:1890
msgid "New Window"
msgstr "Nytt fönster"
#: js/ui/appDisplay.js:1900
#: js/ui/appDisplay.js:1904
msgid "Launch using Dedicated Graphics Card"
msgstr "Kör med diskret grafikkort"
#: js/ui/appDisplay.js:1927 js/ui/dash.js:285
#: js/ui/appDisplay.js:1931 js/ui/dash.js:285
msgid "Remove from Favorites"
msgstr "Ta bort från favoriter"
#: js/ui/appDisplay.js:1933
#: js/ui/appDisplay.js:1937
msgid "Add to Favorites"
msgstr "Lägg till som favorit"
#: js/ui/appDisplay.js:1943
#: js/ui/appDisplay.js:1947
msgid "Show Details"
msgstr "Visa detaljer"
@@ -678,7 +678,7 @@ msgstr "Hörlurar"
msgid "Headset"
msgstr "Mikrofonlur"
#: js/ui/audioDeviceSelection.js:82 js/ui/status/volume.js:221
#: js/ui/audioDeviceSelection.js:82 js/ui/status/volume.js:255
msgid "Microphone"
msgstr "Mikrofon"
@@ -690,7 +690,7 @@ msgstr "Ändra bakgrund…"
msgid "Display Settings"
msgstr "Skärminställningar"
#: js/ui/backgroundMenu.js:22 js/ui/status/system.js:264
#: js/ui/backgroundMenu.js:22
msgid "Settings"
msgstr "Inställningar"
@@ -795,35 +795,35 @@ msgctxt "event list time"
msgid "All Day"
msgstr "Hela dagen"
#: js/ui/calendar.js:864
#: js/ui/calendar.js:866
msgctxt "calendar heading"
msgid "%A, %B %d"
msgstr "%A, %d %B"
#: js/ui/calendar.js:868
#: js/ui/calendar.js:870
msgctxt "calendar heading"
msgid "%A, %B %d, %Y"
msgstr "%A, %d %B, %Y"
#: js/ui/calendar.js:1086
#: js/ui/calendar.js:1100
msgid "No Notifications"
msgstr "Inga aviseringar"
#: js/ui/calendar.js:1089
#: js/ui/calendar.js:1103
msgid "No Events"
msgstr "Inga händelser"
#: js/ui/calendar.js:1117
#: js/ui/calendar.js:1131
msgid "Clear All"
msgstr "Töm alla"
#. Translators: %s is an application name
#: js/ui/closeDialog.js:44
#: js/ui/closeDialog.js:47
#, javascript-format
msgid "“%s” is not responding."
msgstr "”%s” svarar inte."
#: js/ui/closeDialog.js:45
#: js/ui/closeDialog.js:48
msgid ""
"You may choose to wait a short while for it to continue or force the "
"application to quit entirely."
@@ -831,11 +831,11 @@ msgstr ""
"Du kan välja att vänta en kort stund på att det ska fortsätta eller tvinga "
"programmet att helt avslutas."
#: js/ui/closeDialog.js:61
#: js/ui/closeDialog.js:64
msgid "Force Quit"
msgstr "Tvinga avslut"
#: js/ui/closeDialog.js:64
#: js/ui/closeDialog.js:67
msgid "Wait"
msgstr "Vänta"
@@ -852,7 +852,7 @@ msgstr "Extern disk frånkopplad"
msgid "Open with %s"
msgstr "Öppna med %s"
#: js/ui/components/keyring.js:107 js/ui/components/polkitAgent.js:295
#: js/ui/components/keyring.js:107 js/ui/components/polkitAgent.js:297
msgid "Password:"
msgstr "Lösenord:"
@@ -889,11 +889,11 @@ msgstr "Lösenord för privat nyckel: "
msgid "Service: "
msgstr "Tjänst: "
#: js/ui/components/networkAgent.js:292 js/ui/components/networkAgent.js:659
#: js/ui/components/networkAgent.js:292 js/ui/components/networkAgent.js:664
msgid "Authentication required by wireless network"
msgstr "Autentisering krävs av trådlöst nätverk"
#: js/ui/components/networkAgent.js:293 js/ui/components/networkAgent.js:660
#: js/ui/components/networkAgent.js:293 js/ui/components/networkAgent.js:665
#, javascript-format
msgid ""
"Passwords or encryption keys are required to access the wireless network "
@@ -902,7 +902,7 @@ msgstr ""
"Lösenord eller krypteringsnycklar krävs för att komma åt det trådlösa "
"nätverket ”%s”."
#: js/ui/components/networkAgent.js:297 js/ui/components/networkAgent.js:663
#: js/ui/components/networkAgent.js:297 js/ui/components/networkAgent.js:668
msgid "Wired 802.1X authentication"
msgstr "Trådbunden 802.1X-autentisering"
@@ -910,15 +910,15 @@ msgstr "Trådbunden 802.1X-autentisering"
msgid "Network name: "
msgstr "Nätverksnamn: "
#: js/ui/components/networkAgent.js:304 js/ui/components/networkAgent.js:667
#: js/ui/components/networkAgent.js:304 js/ui/components/networkAgent.js:672
msgid "DSL authentication"
msgstr "DSL-autentisering"
#: js/ui/components/networkAgent.js:311 js/ui/components/networkAgent.js:673
#: js/ui/components/networkAgent.js:311 js/ui/components/networkAgent.js:678
msgid "PIN code required"
msgstr "PIN-kod krävs"
#: js/ui/components/networkAgent.js:312 js/ui/components/networkAgent.js:674
#: js/ui/components/networkAgent.js:312 js/ui/components/networkAgent.js:679
msgid "PIN code is needed for the mobile broadband device"
msgstr "PIN-koden krävs för den mobila bredbandsenheten"
@@ -926,17 +926,17 @@ msgstr "PIN-koden krävs för den mobila bredbandsenheten"
msgid "PIN: "
msgstr "PIN-kod: "
#: js/ui/components/networkAgent.js:320 js/ui/components/networkAgent.js:680
#: js/ui/components/networkAgent.js:320 js/ui/components/networkAgent.js:685
msgid "Mobile broadband network password"
msgstr "Lösenord för mobilt bredbandsnätverk"
#: js/ui/components/networkAgent.js:321 js/ui/components/networkAgent.js:664
#: js/ui/components/networkAgent.js:668 js/ui/components/networkAgent.js:681
#: js/ui/components/networkAgent.js:321 js/ui/components/networkAgent.js:669
#: js/ui/components/networkAgent.js:673 js/ui/components/networkAgent.js:686
#, javascript-format
msgid "A password is required to connect to “%s”."
msgstr "Ett lösenord krävs för att ansluta till ”%s”."
#: js/ui/components/networkAgent.js:648 js/ui/status/network.js:1691
#: js/ui/components/networkAgent.js:653 js/ui/status/network.js:1704
msgid "Network Manager"
msgstr "Nätverkshanterare"
@@ -956,7 +956,7 @@ msgstr "Autentisera"
#. * requested authentication was not gained; this can happen
#. * because of an authentication error (like invalid password),
#. * for instance.
#: js/ui/components/polkitAgent.js:281 js/ui/shellMountOperation.js:327
#: js/ui/components/polkitAgent.js:283 js/ui/shellMountOperation.js:327
msgid "Sorry, that didnt work. Please try again."
msgstr "Tyvärr, det fungerade inte. Försök igen."
@@ -1287,13 +1287,13 @@ msgid "Leave On"
msgstr "Lämna påslagen"
#: js/ui/kbdA11yDialog.js:59 js/ui/status/bluetooth.js:143
#: js/ui/status/network.js:1281
#: js/ui/status/network.js:1294
msgid "Turn On"
msgstr "Slå på"
#: js/ui/kbdA11yDialog.js:67 js/ui/status/bluetooth.js:143
#: js/ui/status/network.js:154 js/ui/status/network.js:337
#: js/ui/status/network.js:1281 js/ui/status/network.js:1396
#: js/ui/status/network.js:1294 js/ui/status/network.js:1409
#: js/ui/status/nightLight.js:47 js/ui/status/rfkill.js:90
#: js/ui/status/rfkill.js:117
msgid "Turn Off"
@@ -1355,7 +1355,7 @@ msgstr "Visa källa"
msgid "Web Page"
msgstr "Webbsida"
#: js/ui/messageTray.js:1493
#: js/ui/messageTray.js:1495
msgid "System Information"
msgstr "Systeminformation"
@@ -1367,6 +1367,10 @@ msgstr "Okänd artist"
msgid "Unknown title"
msgstr "Okänd titel"
#: js/ui/osdWindow.js:32 js/ui/status/volume.js:204
msgid "Volume"
msgstr "Volym"
#: js/ui/overview.js:83
msgid "Undo"
msgstr "Ångra"
@@ -1409,42 +1413,42 @@ msgstr "Tilldela tangenttryckning"
msgid "Done"
msgstr "Färdig"
#: js/ui/padOsd.js:740
#: js/ui/padOsd.js:742
msgid "Edit…"
msgstr "Redigera…"
#: js/ui/padOsd.js:782 js/ui/padOsd.js:887
#: js/ui/padOsd.js:784 js/ui/padOsd.js:889
msgid "None"
msgstr "Ingen"
#: js/ui/padOsd.js:841
#: js/ui/padOsd.js:843
msgid "Press a button to configure"
msgstr "Tryck på en knapp för att konfigurera"
#: js/ui/padOsd.js:842
#: js/ui/padOsd.js:844
msgid "Press Esc to exit"
msgstr "Tryck Esc för att avsluta"
#: js/ui/padOsd.js:845
#: js/ui/padOsd.js:847
msgid "Press any key to exit"
msgstr "Tryck på valfri tangent för att avsluta"
#: js/ui/panel.js:355
#: js/ui/panel.js:356
msgid "Quit"
msgstr "Avsluta"
#. Translators: If there is no suitable word for "Activities"
#. in your language, you can use the word for "Overview".
#: js/ui/panel.js:411
#: js/ui/panel.js:412
msgid "Activities"
msgstr "Aktiviteter"
#: js/ui/panel.js:692
#: js/ui/panel.js:693
msgctxt "System menu in the top bar"
msgid "System"
msgstr "System"
#: js/ui/panel.js:811
#: js/ui/panel.js:816
msgid "Top Bar"
msgstr "Systemrad"
@@ -1453,23 +1457,23 @@ msgstr "Systemrad"
#. "ON" and "OFF") or "toggle-switch-intl" (for toggle
#. switches containing "◯" and "|"). Other values will
#. simply result in invisible toggle switches.
#: js/ui/popupMenu.js:291
#: js/ui/popupMenu.js:300
msgid "toggle-switch-us"
msgstr "toggle-switch-intl"
#: js/ui/runDialog.js:70
#: js/ui/runDialog.js:74
msgid "Enter a Command"
msgstr "Ange ett kommando"
#: js/ui/runDialog.js:110 js/ui/windowMenu.js:175
#: js/ui/runDialog.js:114 js/ui/windowMenu.js:174
msgid "Close"
msgstr "Stäng"
#: js/ui/runDialog.js:273
#: js/ui/runDialog.js:278
msgid "Restart is not available on Wayland"
msgstr "Omstart är inte tillgänglig i Wayland"
#: js/ui/runDialog.js:278
#: js/ui/runDialog.js:283
msgid "Restarting…"
msgstr "Startar om…"
@@ -1493,7 +1497,7 @@ msgid_plural "%d new notifications"
msgstr[0] "%d ny avisering"
msgstr[1] "%d nya aviseringar"
#: js/ui/screenShield.js:451 js/ui/status/system.js:283
#: js/ui/screenShield.js:451 js/ui/status/system.js:294
msgid "Lock"
msgstr "Lås"
@@ -1674,7 +1678,7 @@ msgid "<unknown>"
msgstr "<okänd>"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:441 js/ui/status/network.js:1310
#: js/ui/status/network.js:441 js/ui/status/network.js:1323
#, javascript-format
msgid "%s Off"
msgstr "%s avslagen"
@@ -1700,7 +1704,7 @@ msgid "%s Disconnecting"
msgstr "%s kopplar från"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:459 js/ui/status/network.js:1302
#: js/ui/status/network.js:459 js/ui/status/network.js:1315
#, javascript-format
msgid "%s Connecting"
msgstr "%s ansluter"
@@ -1740,7 +1744,7 @@ msgid "Mobile Broadband Settings"
msgstr "Inställningar för mobilt bredband"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:578 js/ui/status/network.js:1307
#: js/ui/status/network.js:578 js/ui/status/network.js:1320
#, javascript-format
msgid "%s Hardware Disabled"
msgstr "Hårdvara för %s inaktiverad"
@@ -1797,81 +1801,81 @@ msgstr "Inga nätverk"
msgid "Use hardware switch to turn off"
msgstr "Använd hårdvarubrytare för att slå av"
#: js/ui/status/network.js:1173
#: js/ui/status/network.js:1186
msgid "Select Network"
msgstr "Välj nätverk"
#: js/ui/status/network.js:1179
#: js/ui/status/network.js:1192
msgid "Wi-Fi Settings"
msgstr "Inställningar för trådlösa nätverk"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:1298
#: js/ui/status/network.js:1311
#, javascript-format
msgid "%s Hotspot Active"
msgstr "Surfzon för %s aktiv"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:1313
#: js/ui/status/network.js:1326
#, javascript-format
msgid "%s Not Connected"
msgstr "%s ej ansluten"
#: js/ui/status/network.js:1413
#: js/ui/status/network.js:1426
msgid "connecting…"
msgstr "ansluter…"
#. Translators: this is for network connections that require some kind of key or password
#: js/ui/status/network.js:1416
#: js/ui/status/network.js:1429
msgid "authentication required"
msgstr "autentisering krävs"
#: js/ui/status/network.js:1418
#: js/ui/status/network.js:1431
msgid "connection failed"
msgstr "anslutningen misslyckades"
#: js/ui/status/network.js:1472
#: js/ui/status/network.js:1485
msgid "VPN Settings"
msgstr "VPN-inställningar"
#: js/ui/status/network.js:1485
#: js/ui/status/network.js:1498
msgid "VPN"
msgstr "VPN"
#: js/ui/status/network.js:1495
#: js/ui/status/network.js:1508
msgid "VPN Off"
msgstr "VPN avslaget"
#: js/ui/status/network.js:1559 js/ui/status/rfkill.js:93
#: js/ui/status/network.js:1572 js/ui/status/rfkill.js:93
msgid "Network Settings"
msgstr "Nätverksinställningar"
#: js/ui/status/network.js:1588
#: js/ui/status/network.js:1601
#, javascript-format
msgid "%s Wired Connection"
msgid_plural "%s Wired Connections"
msgstr[0] "%s trådbunden anslutning"
msgstr[1] "%s trådbundna anslutningar"
#: js/ui/status/network.js:1592
#: js/ui/status/network.js:1605
#, javascript-format
msgid "%s Wi-Fi Connection"
msgid_plural "%s Wi-Fi Connections"
msgstr[0] "%s trådlös anslutning"
msgstr[1] "%s trådlösa anslutningar"
#: js/ui/status/network.js:1596
#: js/ui/status/network.js:1609
#, javascript-format
msgid "%s Modem Connection"
msgid_plural "%s Modem Connections"
msgstr[0] "%s modemanslutning"
msgstr[1] "%s modemanslutningar"
#: js/ui/status/network.js:1728
#: js/ui/status/network.js:1741
msgid "Connection failed"
msgstr "Anslutningen misslyckades"
#: js/ui/status/network.js:1729
#: js/ui/status/network.js:1742
msgid "Activation of network connection failed"
msgstr "Aktivering av nätverksanslutning misslyckades"
@@ -1922,6 +1926,14 @@ msgstr "%d%02d tills fulladdad (%d %%)"
msgid "%d%%"
msgstr "%d%%"
#: js/ui/status/remoteAccess.js:46
msgid "Screen is Being Shared"
msgstr "Skärmen delas"
#: js/ui/status/remoteAccess.js:48
msgid "Turn off"
msgstr "Stäng av"
#. The menu only appears when airplane mode is on, so just
#. statically build it as if it was on, rather than dynamically
#. changing the menu contents.
@@ -1941,28 +1953,28 @@ msgstr "Logga ut"
msgid "Account Settings"
msgstr "Kontoinställningar"
#: js/ui/status/system.js:268
#: js/ui/status/system.js:279
msgid "Orientation Lock"
msgstr "Skärmrotation"
#: js/ui/status/system.js:294
#: js/ui/status/system.js:305
msgid "Suspend"
msgstr "Vänteläge"
#: js/ui/status/system.js:304
#: js/ui/status/system.js:315
msgid "Power Off"
msgstr "Stäng av"
#: js/ui/status/thunderbolt.js:294
#: js/ui/status/thunderbolt.js:298
msgid "Thunderbolt"
msgstr "Thunderbolt"
#. we are done
#: js/ui/status/thunderbolt.js:350
#: js/ui/status/thunderbolt.js:354
msgid "Unknown Thunderbolt device"
msgstr "Okänd Thunderbolt-enhet"
#: js/ui/status/thunderbolt.js:351
#: js/ui/status/thunderbolt.js:355
msgid ""
"New device has been detected while you were away. Please disconnect and "
"reconnect the device to start using it."
@@ -1970,23 +1982,19 @@ msgstr ""
"En ny enhet har upptäckts medan du var borta. Koppla från och anslut enheten "
"igen för att börja använda den."
#: js/ui/status/thunderbolt.js:356
#: js/ui/status/thunderbolt.js:360
msgid "Thunderbolt authorization error"
msgstr "Thunderbolt-auktoriseringsfel"
#: js/ui/status/thunderbolt.js:357
#: js/ui/status/thunderbolt.js:361
#, javascript-format
msgid "Could not authorize the Thunderbolt device: %s"
msgstr "Kunde inte auktorisera Thunderbolt-enheten: %s"
#: js/ui/status/volume.js:128
#: js/ui/status/volume.js:135
msgid "Volume changed"
msgstr "Volymen ändrades"
#: js/ui/status/volume.js:170
msgid "Volume"
msgstr "Volym"
#. Translators: this is for display mirroring i.e. cloning.
#. * Try to keep it under around 15 characters.
#.
@@ -2036,22 +2044,22 @@ msgstr "Sök"
msgid "“%s” is ready"
msgstr "”%s” är redo"
#: js/ui/windowManager.js:72
#: js/ui/windowManager.js:74
msgid "Do you want to keep these display settings?"
msgstr "Vill du behålla dessa skärminställningar?"
#. Translators: this and the following message should be limited in lenght,
#. to avoid ellipsizing the labels.
#.
#: js/ui/windowManager.js:84
#: js/ui/windowManager.js:86
msgid "Revert Settings"
msgstr "Återställ inställningar"
#: js/ui/windowManager.js:87
#: js/ui/windowManager.js:89
msgid "Keep Changes"
msgstr "Behåll ändringar"
#: js/ui/windowManager.js:105
#: js/ui/windowManager.js:107
#, javascript-format
msgid "Settings changes will revert in %d second"
msgid_plural "Settings changes will revert in %d seconds"
@@ -2060,7 +2068,7 @@ msgstr[1] "Inställningarna kommer återställas om %d sekunder"
#. Translators: This represents the size of a window. The first number is
#. * the width of the window and the second is the height.
#: js/ui/windowManager.js:660
#: js/ui/windowManager.js:689
#, javascript-format
msgid "%d × %d"
msgstr "%d × %d"
@@ -2113,19 +2121,19 @@ msgstr "Flytta till arbetsyta ovan"
msgid "Move to Workspace Down"
msgstr "Flytta till arbetsyta nedan"
#: js/ui/windowMenu.js:140
#: js/ui/windowMenu.js:139
msgid "Move to Monitor Up"
msgstr "Flytta till skärm uppåt"
#: js/ui/windowMenu.js:149
#: js/ui/windowMenu.js:148
msgid "Move to Monitor Down"
msgstr "Flytta till skärm nedåt"
#: js/ui/windowMenu.js:158
#: js/ui/windowMenu.js:157
msgid "Move to Monitor Left"
msgstr "Flytta till skärm åt vänster"
#: js/ui/windowMenu.js:167
#: js/ui/windowMenu.js:166
msgid "Move to Monitor Right"
msgstr "Flytta till skärm åt höger"
@@ -2138,28 +2146,28 @@ msgstr "Evolution-kalender"
msgid "evolution"
msgstr "evolution"
#: src/main.c:432
#: src/main.c:410
msgid "Print version"
msgstr "Skriv ut version"
#: src/main.c:438
#: src/main.c:416
msgid "Mode used by GDM for login screen"
msgstr "Läge som används av GDM för inloggningsskärmen"
#: src/main.c:444
#: src/main.c:422
msgid "Use a specific mode, e.g. “gdm” for login screen"
msgstr "Använd ett specifikt läge, t.ex. ”gdm” för inloggningsskärm"
#: src/main.c:450
#: src/main.c:428
msgid "List possible modes"
msgstr "Lista möjliga lägen"
#: src/shell-app.c:270
#: src/shell-app.c:272
msgctxt "program"
msgid "Unknown"
msgstr "Okänt"
#: src/shell-app.c:511
#: src/shell-app.c:523
#, c-format
msgid "Failed to launch “%s”"
msgstr "Misslyckades med att starta ”%s”"

985
po/vi.po

File diff suppressed because it is too large Load Diff